diff --git a/.env.example b/.env.example index aee4c12a0d..e73f3203f1 100644 --- a/.env.example +++ b/.env.example @@ -737,6 +737,12 @@ NEXT_PUBLIC_CLOUD_URL= ENABLE_SOCKS5_PROXY=true NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=true +# Opt-in feature flag (default off; a dashboard DB override wins over this value): proxy pools +# and per-account rotation stop re-serving a member that just failed (TCP probe refused, or a +# 429 received through it) for a period that doubles on each repeat, up to a cap. No proxy +# status is written. "true" (or 1, yes) enables it; unset keeps plain selection. +# PROXY_SKIP_RECENTLY_FAILED=false + # Standard proxy variables (lowercase variants also supported). # HTTP_PROXY=http://127.0.0.1:7890 # HTTPS_PROXY=http://127.0.0.1:7890 @@ -1686,6 +1692,8 @@ CURSOR_USER_AGENT="Cursor/3.4" # ── TLS client (wreq-js fingerprint proxy) ── # TLS_CLIENT_TIMEOUT_MS=600000 # Inherits from FETCH_TIMEOUT_MS by default # TLS_FIRST_BYTE_WATCHDOG_MS=10000 # #12656: bounds time-to-first-byte on the wreq body (0 disables) +# OPENCODE_RESPONSES_STALL_ROTATION=false # #13484 feature flag (Settings → Feature Flags wins): rotate once when a streamed Responses reply stalls before its first byte +# RESPONSES_FIRST_BYTE_TIMEOUT_MS=15000 # #13484: OpenCode Responses first-byte window, only used when the OPENCODE_RESPONSES_STALL_ROTATION flag is on (0 disables) # ── API Bridge (/v1 proxy server) ── # API_BRIDGE_PROXY_TIMEOUT_MS=600000 # Proxy hop timeout (default: 10min) @@ -2231,6 +2239,11 @@ APP_LOG_TO_FILE=true # proxy — only the operator sets active/inactive (a flaky probe must not strand an # assigned proxy; #6246). Set "true" to restore the legacy test-and-set behaviour. # PROXY_HEALTH_AUTO_DEACTIVATE=false +# Opt-in feature flag (default off; a dashboard DB override wins over this value): show, +# under a proxy pool in the dashboard, how many observed egress IPs served its members over +# the last 24 h and how many connections used them (read-only, computed from the proxy log, +# never used for routing). "true" (or 1, yes) enables it. +# PROXY_POOL_EGRESS_OBSERVATION=false # Allow OAuth and provider validation flows to bypass a pinned proxy and connect # directly when proxy reachability pre-checks fail. Default: false. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e06150f575..f9317e3102 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -511,9 +511,11 @@ jobs: - run: node scripts/i18n/check-ui-keys-coverage.mjs --threshold=65 # Real-translation ratchet: a leaf copied verbatim from en.json passes key # parity above but is still English to the user (es shipped 55% English). - # Advisory in PR-0; flipped to blocking once the backlog is retranslated (PR-4). - - name: i18n real-translation ratio (advisory) - run: node scripts/i18n/check-translation-ratio.mjs --warn + # Blocking since PR-4 retranslated the verbatim-English backlog: the share of + # untranslated leaves per locale may only fall (ratchet baseline in + # config/quality/i18n-translation-baseline.json; `npm run i18n:check-ratio:update`). + - name: i18n real-translation ratio + run: node scripts/i18n/check-translation-ratio.mjs # #8463: a rewritten English value used to leave its 39 translations behind # silently (googleOAuthWarning shipped wrong copy in 39 locales for months). # Key parity above cannot see it — a stale translation counts as covered. diff --git a/.gitleaks.toml b/.gitleaks.toml index 86e5f49649..3768394fbe 100644 --- a/.gitleaks.toml +++ b/.gitleaks.toml @@ -97,4 +97,11 @@ # credential; the generic-api-key rule flags the long hyphenated string. '''omniroute-cheaperinference-sponsor-banner-dismissed-v\d+''', '''SunbreakWebUI1''', + # Uzbek dashboard catalog (#13727, src/i18n/messages/uz.json `outputTokenDesc`): + # "Yakunlash/javob tokenlari" = "completion/response tokens". The rule reads the + # `...TokenDesc` key as a token assignment and the translated words as its value. + '''Yakunlash/javob''', + # Feature-flag id from #13439 (src/shared/constants/featureFlagDefinitions.ts): + # `key: "PROTECTED_PRIORITY_INFRA_502_ENABLED"` is a flag name, not a credential. + '''PROTECTED_PRIORITY_INFRA_502_ENABLED''', ] diff --git a/AGENTS.md b/AGENTS.md index 947377b8d1..69e81b7ab3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -56,7 +56,7 @@ Repository map and Reference Documentation sections below. | Translators | `open-sse/translator/` | Format conversion (OpenAI↔Claude↔Gemini) | | Transformer | `open-sse/transformer/` | Responses API ↔ Chat Completions | | Services | `open-sse/services/` | Combo routing, rate limits, caching, etc | -| Database | `src/lib/db/` | SQLite domain modules (175 migrations) | +| Database | `src/lib/db/` | SQLite domain modules (176 migrations) | | Domain/Policy | `src/domain/` | Policy engine, cost rules, fallback logic | | MCP Server | `open-sse/mcp-server/` | 110 tools (45 canonical + memory/skill/GitHub/pool/gamification/plugin/Notion/Obsidian/local-corpus/RTK modules), 3 transports (stdio / SSE / Streamable HTTP), 33 scopes | | A2A Server | `src/lib/a2a/` | JSON-RPC 2.0 agent protocol | diff --git a/README.md b/README.md index 3208e32b04..edca9ae592 100644 --- a/README.md +++ b/README.md @@ -1268,7 +1268,7 @@ Métricas canônicas em 2026-08-24: **1.029 vídeos únicos** · **11.132.922 vi
>=22.22.2 <23 || >=24.0.0 <27src/ and open-sse/ (zero any in core since v2.0)+ {text} +
+ ); +} diff --git a/src/app/(dashboard)/dashboard/settings/components/ProxyRegistryManager.tsx b/src/app/(dashboard)/dashboard/settings/components/ProxyRegistryManager.tsx index 3af5b91361..2978266e08 100644 --- a/src/app/(dashboard)/dashboard/settings/components/ProxyRegistryManager.tsx +++ b/src/app/(dashboard)/dashboard/settings/components/ProxyRegistryManager.tsx @@ -8,6 +8,7 @@ import { ProxyStatusBadge } from "./ProxyStatusBadge"; import { ProxyHealthCell } from "./ProxyHealthCell"; import { ProxyBatchActions } from "./ProxyBatchActions"; import { ProxyCheckboxCell } from "./ProxyCheckboxCell"; +import { PoolEgressObservation } from "./PoolEgressObservation"; import { parseBulkImportText, type ParsedProxyEntry, @@ -1238,6 +1239,7 @@ import { +omniglyph. هذه نسخة معاينة وتظل معطلة افتراضيًا حتى تكتمل عملية التحقق الشاملة من البداية للنهاية.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "ملف تعريف الضغط",
+ "profileDescription": "ملف التعريف حدّ أقصى وليس حدًا أدنى: لا يمكن لتجاوز خاص بخطوة أن يخفف قيود ملف تعريف أكثر صرامة. وفقًا للقياسات على قاعدة الشفرة هذه: عند استخدام الوضع الآمن للبرمجة أو المتوازن، لا تُضغط أي بيانات في جلسة لم يتراكم فيها سجل بعد، لأن كليهما يرفع الحد الأدنى لعدد المحارف ويبقي موجّه النظام ومخططات الأدوات ونتائج الأدوات بصيغتها الأصلية.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "قوي (افتراضي)",
+ "description": "السياسة التي قاستها الإيصالات المنشورة. تحوّل موجّه النظام ووثائق الأدوات والسجل الكثيف إلى صور."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "متوازن",
+ "description": "يُبقي الحالة النشطة بصيغتها الأصلية ويحمي آخر 8 جولات؛ ولا يختزل سوى السجل المغلق الأقدم."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "آمن للبرمجة",
+ "description": "يُبقي الصلاحيات ومخططات الأدوات ومخرجات الأدوات المباشرة بصيغتها الأصلية، مع حماية آخر 12 دورًا. لا يضغط أي شيء حتى تتراكم المحفوظات في الجلسة."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "تمرير مباشر",
+ "description": "يوجّه الطلب دون تحويله. يتم تجاوز المحرك وإعادة توجيه الطلب دون أي تعديل."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "حدّد ملف تعريف الضغط OmniGlyph",
"saved": "تم الحفظ.",
"saveFailed": "تعذر الحفظ.",
"enableAria": "تمكين محرك OmniGlyph",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "المتبقي",
"kiloPassRenews": "يتجدد خلال {count} أيام",
"kiloPassUsageLabel": "استخدام هذا الشهر",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "أرصدة الاستخدام الإضافية",
+ "kimiExtraUsage": "الاستخدام الإضافي",
+ "kimiExtraUsageEnabled": "مفعّل",
+ "kimiExtraUsageDisabled": "معطّل",
+ "kimiExtraUsageFrozen": "مجمّد",
+ "kimiExtraUsageUnavailable": "غير متاح",
+ "kimiMonthlyUsed": "المستخدم هذا الشهر",
+ "kimiMonthlyLimit": "الحد الشهري",
+ "kimiMonthlyLimitUnlimited": "غير محدود",
+ "kimiAdditionalCredits": "أرصدة إضافية",
"loggerTab": "المسجل",
"proxyTab": "بروكسي",
"budgetManagement": "إدارة الميزانية",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "تتم مقارنة الاستجابات بالمعايير المتوقعة. راجع النجاح/الفشل لكل حالة باستخدام مقاييس زمن الاستجابة والتعليقات التفصيلية.",
"evalsStrategyContainsLabel": "يحتوي على",
"evalsStrategyExactLabel": "مطابقة تامة",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "تعبير نمطي",
"evalsStrategyCustomLabel": "منطق مخصص",
"evalsStrategyContainsDescription": "يتحقق مما إذا كان إخراج LLM يحتوي على السلسلة الفرعية المتوقعة.",
"evalsStrategyExactDescription": "يتحقق من مطابقة إخراج LLM للقيمة المتوقعة تمامًا.",
@@ -9571,7 +9582,7 @@
"suiteBuilderBuiltInBadge": "مدمج",
"suiteBuilderCaseCardTitle": "حالة الاختبار",
"suiteBuilderDuplicateCase": "مكررة",
- "weeklyLimitPlaceholder": "e.g. 50.00",
+ "weeklyLimitPlaceholder": "مثال: 50.00",
"suiteBuilderCaseTagsHint": "علامات مفصولة بفواصل لتنظيم حالات الاختبار.",
"notifyEvalRunFailedWithReason": "فشل التقييم: {reason}",
"weekly": "أسبوعيا",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "ربط IDE Cursor",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "تسجيل الدخول باستخدام Cursor",
+ "tabImport": "استيراد الرمز المميز",
+ "loginDescription": "يفتح صفحة تسجيل الدخول إلى Cursor في المتصفح. يعمل في Docker — وافق عبر متصفح جهازك المضيف، ثم عُد إلى هنا.",
+ "loginWithCursor": "تسجيل الدخول باستخدام Cursor",
+ "startingLogin": "جارٍ البدء…",
+ "waitingApproval": "في انتظار الموافقة على تسجيل الدخول إلى Cursor…",
+ "openUrlHint": "إذا لم يُفتح المتصفح:",
+ "openLoginLink": "فتح صفحة تسجيل الدخول",
+ "cancelLogin": "إلغاء تسجيل الدخول",
"autoDetecting": "الكشف التلقائي عن الرموز...",
"readingFromCursor": "القراءة من Cursor IDE أو وكيل Cursor",
"tokensAutoDetected": "تم اكتشاف الرموز المميزة تلقائيًا من Cursor IDE!",
"cursorNotDetected": "لم يتم الكشف عن IDE للمؤشر. يرجى لصق الرمز المميز الخاص بك يدويًا.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "هل تعمل في Docker؟ يُفضّل تسجيل الدخول باستخدام Cursor. عادةً لا يتوفر الاستيراد التلقائي من بيئة التطوير المتكاملة وcursor-agent داخل الحاوية. راجع docs/providers/CURSOR-DOCKER.md.",
"accessToken": "رمز الوصول",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "رمز التحديث",
+ "refreshTokenPlaceholder": "اختياري — يتيح التحديث التلقائي للرمز",
"required": "*",
"accessTokenPlaceholder": "سيتم ملء رمز الوصول تلقائيًا...",
"machineId": "معرف الآلة",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "فشل الكشف التلقائي عن الرموز المميزة",
"errorEnterToken": "الرجاء إدخال رمز الوصول",
"errorImportFailed": "فشل الاستيراد",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "فشل بدء تسجيل الدخول إلى Cursor",
+ "errorLoginPoll": "فشل تسجيل الدخول إلى Cursor",
+ "errorLoginTimeout": "انتهت مهلة تسجيل الدخول إلى Cursor — حاول مرة أخرى"
},
"pricingModal": {
"title": "تكوين التسعير",
@@ -10908,7 +10919,7 @@
"assignmentsCount": "{count} المهام",
"noData": "لا توجد بيانات",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} مللي ثانية",
"testFailure": "✗ {error}",
"repair": "إصلاح",
"relayAuthMissing": "المصادقة مفقودة",
@@ -10957,6 +10968,9 @@
"strategyLatency": "محسن لزمن الاستجابة",
"poolMembersLabel": "أعضاء التجمع ({count})",
"poolNoMembers": "لا توجد وكلاء في هذا التجمع بعد.",
+ "poolEgressObservation": "تم استخدام {exits, plural, one {منفذ خروج واحد} other {# منافذ خروج}} بواسطة {connections, plural, one {اتصال واحد} other {# اتصالات}} · حتى {max} على منفذ خروج واحد · آخر {hours} ساعة",
+ "poolEgressObservationEmpty": "لم تُرصد أي حركة مرور خلال آخر {hours} ساعة",
+ "poolEgressObservationHint": "يُحتسب من سجل الوكيل خلال النافذة الزمنية: عناوين IP الصادرة المميزة التي رُصدت لأعضاء هذه المجموعة، واتصالات OmniRoute التي استخدمتها. تعني «على منفذ خروج واحد» خلال النافذة الزمنية، وليس في الوقت نفسه. يؤدي حظر 429 الخاص بكل عنوان IP إلى إيقاف اتصالات عائلة المزوّد نفسها مؤقتًا فقط.",
"poolRemove": "إزالة",
"poolRemoveFailed": "فشل إزالة الوكيل من التجمع",
"poolAddLabel": "إضافة وكيل",
@@ -11013,7 +11027,7 @@
"typeMessagePlaceholder": "اكتب رسالة... (Shift+Enter للسطر الجديد)",
"tabChat": "الدردشة",
"tabCompare": "المقارنة",
- "tabApi": "API",
+ "tabApi": "واجهة برمجة التطبيقات",
"tabBuild": "الإنشاء",
"configPane": "التكوين",
"systemPrompt": "موجه النظام",
@@ -11230,7 +11244,7 @@
"searchResultFallback": "النتيجة {number}",
"noKeysFound": "لم يتم العثور على مفاتيح API. أضف واحدًا في قسم المفاتيح.",
"exampleLabel": "مثال",
- "latency": "{ms}ms",
+ "latency": "{ms} مللي ثانية",
"statsLine": "{ms}ms · {tokensIn} إدخال / {tokensOut} إخراج",
"defaultKey": "(افتراضي)",
"clear": "مسح",
@@ -11303,7 +11317,7 @@
"tps": "TPS",
"duration": "المدة",
"time": "الوقت",
- "conversation": "Conversation",
+ "conversation": "المحادثة",
"ttft": "TTFT"
},
"loadingLogs": "جارٍ تحميل السجلات...",
@@ -11410,8 +11424,8 @@
"correlationId": "معرف الترابط",
"correlationIdValue": "معرّف الارتباط: {id}",
"detailedPayloadInfo": "قم بتمكين تسجيل الدخول التفصيلي أولاً إذا كنت ترغب في عرض الحمولة من أربعة مراحل للعميل/المزود للطلبات الجديدة.",
- "copyAll": "Copy all",
- "copiedAll": "Copied all"
+ "copyAll": "نسخ الكل",
+ "copiedAll": "تم نسخ الكل"
}
},
"proxyLogger": {
@@ -11674,8 +11688,8 @@
"deleteGroupHasPools": "لا تزال هذه المجموعة تحتوي على مجمعات — أعد تعيينها أو احذفها أولاً.",
"ungroupedTitle": "غير مجمع",
"ungroupedHint": "هذه المجمعات غير مخصصة لمجموعة معروفة. قم بتحرير مجمع لنقله إلى مجموعة حقيقية.",
- "removeFailed": "Could not remove this pool.",
- "dismiss": "Dismiss"
+ "removeFailed": "تعذّرت إزالة هذا المجمّع.",
+ "dismiss": "تجاهل"
},
"plugins": {
"title": "الإضافات",
@@ -12172,7 +12186,7 @@
"acp": {
"title": "وكلاء ACP",
"phrase": "واجهات CLI التي يقوم OmniRoute بإنشائها كخلفية تنفيذ (تدفق عكسي)",
- "warning": "Most users can ignore this — use only when an integration requires it.",
+ "warning": "يمكن لمعظم المستخدمين تجاهل هذا — استخدمه فقط عندما يتطلبه أحد عمليات التكامل.",
"flow": "العميل → OmniRoute → إنشاء CLI (stdio/ACP) → الاستجابة",
"seeOther": "عرض →"
}
@@ -12364,7 +12378,7 @@
},
"omni-webhooks": {
"name": "خطافات الويب",
- "description": "__MISSING__:Register, list, test, and remove webhook endpoints. Configure event subscriptions (request.completed, request.failed, quota.exceeded, etc.) and manage delivery retries."
+ "description": "سجّل نقاط نهاية webhook واعرضها واختبرها وأزلها. اضبط اشتراكات الأحداث (request.completed وrequest.failed وquota.exceeded، وغيرها) وأدِر محاولات إعادة التسليم."
},
"omni-mcp": {
"name": "خادم MCP",
@@ -12568,7 +12582,7 @@
"colScore": "الدرجة",
"colAvgScore": "متوسط الدرجة",
"colModels": "النماذج",
- "colType": "Type",
+ "colType": "النوع",
"filterConfiguredOnly": "المهيأة فقط",
"filterAvailableOnly": "المتاحة فقط",
"filterAvailableOnlyHelp": "إخفاء موفري الخدمة الذين تم تقييد معدل جميع اتصالاتهم أو نفدت حصتهم.",
@@ -12582,14 +12596,14 @@
"typeApikey": "مفتاح واجهة برمجة التطبيقات",
"sortTypeFirst": "الأسهل أولاً",
"sortTypeFirstHelp": "التجميع حسب سهولة البدء (من دون تسجيل ← تسجيل دخول OAuth ← مفتاح API)، مع الحفاظ على ترتيب الجودة داخل كل مجموعة",
- "sortByReliability": "__MISSING__:Most reliable first",
- "sortByReliabilityHelp": "__MISSING__:Order providers by the share of calls that succeeded in the selected window. Providers with too few calls to state a rate keep their score order, below the measured ones.",
+ "sortByReliability": "الأكثر موثوقية أولًا",
+ "sortByReliabilityHelp": "رتّب المزوّدين حسب نسبة الاستدعاءات الناجحة ضمن الفترة المحددة. يحتفظ المزوّدون الذين لديهم استدعاءات أقل من أن تكفي لتحديد معدل بترتيب درجاتهم، أسفل المزوّدين الذين تم قياسهم.",
"typeLegend": "من دون تسجيل = لا إعداد مطلوب · تسجيل دخول OAuth = سجّل الدخول بحسابك · مفتاح API = استخدم مفتاحك أو الخطة المجانية للمزود",
- "colReliability": "__MISSING__:Reliability",
- "colReliabilityHelp": "__MISSING__:Share of calls this provider actually answered over the last 24 hours. A dash means it served too little traffic to state a rate.",
- "reliabilitySample": "__MISSING__:{successes} of {requests} calls succeeded in the last {hours}h",
- "reliabilityTooFew": "__MISSING__:Only {requests} calls in the last {hours}h — too few to state a rate",
- "reliabilityNoTraffic": "__MISSING__:No calls recorded in the last 24h"
+ "colReliability": "الموثوقية",
+ "colReliabilityHelp": "نسبة الاستدعاءات التي استجاب لها هذا المزوّد فعليًا خلال آخر 24 ساعة. تعني الشرطة أنه تعامل مع حركة مرور أقل من أن تكفي لتحديد معدل.",
+ "reliabilitySample": "نجح {successes} من أصل {requests} استدعاء خلال آخر {hours} ساعة",
+ "reliabilityTooFew": "فقط {requests} استدعاء خلال آخر {hours} ساعة — عدد أقل من أن يكفي لتحديد معدل",
+ "reliabilityNoTraffic": "لم تُسجّل أي استدعاءات خلال آخر 24 ساعة"
},
"discovery": {
"title": "اكتشاف موفري الخدمة",
@@ -12712,9 +12726,9 @@
},
"badges": {
"radar-supporter": {
- "name": "Radar Supporter",
- "description": "Verified a live OmniRoute Radar supporter feed",
- "criteria": "Verify a signed live Radar supporter feed."
+ "name": "داعم Radar",
+ "description": "تم التحقق من موجز مباشر لداعمي OmniRoute Radar",
+ "criteria": "تحقّق من موجز مباشر وموقّع لداعمي Radar."
},
"first-token": {
"name": "الرمز الأول",
@@ -12941,8 +12955,8 @@
"description": "السماح باتصالات متعددة لكل عقدة توافق."
},
"DISABLE_CONTEXT_WINDOW_CHECKS": {
- "label": "Disable Context Window Checks",
- "description": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active."
+ "label": "تعطيل عمليات التحقق من نافذة السياق",
+ "description": "تجاوز تحقق OmniRoute المحلي من نافذة السياق والحد الأقصى لرموز الإدخال للطلبات المباشرة ذات النموذج الواحد. يظل المزوّدون المنبعون يفرضون حدودهم الفعلية. ويظل ضغط المطالبات وحدود رموز الإخراج مفعّلين."
},
"RESPONSES_PASSTHROUGH_DROP_COMMENTARY": {
"description": "إزالة عناصر مخرجات مرحلة التعليقات الداخلية من تدفقات التمرير الخاصة بـ Responses API قبل إعادة توجيهها إلى العملاء. عطل هذه العلامة لتلقي تعليقات المصدر الأولية."
@@ -12977,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "السماح لاسترداد التدفق بطلب الاستجابة مرة أخرى ودمجها بعد وصول البايتات بالفعل إلى العميل."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "اجعل متابعة منتصف التدفق آمنة لاستدعاءات الأدوات: لا تستأنف أبدًا تدفقًا منقطعًا بعد إرسال استدعاء أداة (سواء كان لا يزال قيد التنفيذ أو انتهى بالفعل)، وتوقف بعد متابعة فارغة واحدة بدلًا من استنفاد كامل ميزانية إعادة المحاولة."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "الانتقال مرة واحدة إلى اتصال شقيق عندما يُغلق التدفق قبل إرسال أي إطار مفيد وتُستنفد إعادة المحاولة المحدودة على الاتصال نفسه. إذا لم يتوفر اتصال شقيق صالح، يُعاد خطأ early-EOF الأصلي. عند التعطيل: يبقى early-EOF نهائيًا بعد إعادة المحاولة."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "تضمين حقول الأسماء المناسبة للعرض في استجابات /v1/models. عطل هذا للعملاء الذين يقبلون معرفات النماذج فقط."
},
@@ -13009,6 +13029,18 @@
},
"SKILLS_SANDBOX_NETWORK_ENABLED": {
"description": "تمكين الوصول إلى الشبكة في بيئة اختبار المهارات المعزولة."
+ },
+ "SERVER_OWNED_TOOL_LOOP_ENABLED": {
+ "label": "حلقة الأدوات المملوكة للخادم",
+ "description": "تابع استدعاءات الأدوات غير المتدفقة والمملوكة للخادم حتى يعيد النموذج استجابة قابلة للاستخدام من جانب العميل."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "مصدر Retry-After",
+ "description": "في استجابات عدم التوفر المجمّعة 429/503، احذف Retry-After عندما لا يكون هناك وقت مستقبلي محدد معروف لإعادة المحاولة بدلًا من إرسال قيمة اصطناعية قدرها 1s، وأضف error.retry_after_provenance، واقرأ تلميحات إعادة المحاولة النصية في مسارات تفريغ المجموعة."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "توقفات البنية التحتية ذات الأولوية المحمية كـ 502",
+ "description": "أعِد 502 بدلًا من 503 عندما يوقف هدف ذو أولوية واحتياطي مخصص للحصة فقط المجموعة لسبب يمكن إثبات أنه ليس متعلقًا بالحصة: قاطع دائرة مفتوح لمزود أو تخطٍ تنبؤي بسبب زمن الاستجابة."
}
}
},
@@ -13150,7 +13182,7 @@
"segmentHint": "كل شريحة = مجمع مجاني واحد · مجمع مفرود من التكرار، عدّ صادق (بدون حدود قصوى مضخمة لمعدل الطلبات).",
"boost": "افتح حوالي {tokens} إضافية/شهرياً بشحن رصيد OpenRouter لمرة واحدة بقيمة 10$ (50 ← 1000 طلب/يوم)",
"uncapped": "مجاني بشكل دائم، بدون حد أقصى معلن (محدود بمعدل الطلبات) — وصول حقيقي، لا يُحتسب في العنوان الرئيسي:",
- "gated": "__MISSING__:~{tokens}/mo more behind a regional identity check (e.g. mainland-China real-name verification) — real quota, not counted in the headline:",
+ "gated": "نحو {tokens}/شهر إضافية خلف فحص هوية إقليمي (مثل التحقق بالاسم الحقيقي في برّ الصين الرئيسي) — حصة فعلية غير محتسبة في الرقم الرئيسي:",
"tosRestricted": "{count, plural, one {# نموذج تم وضع علامة عليه كمقيد بشروط الخدمة} other {# نماذج تم وضع علامة عليها كمقيدة بشروط الخدمة}} — القرار لك",
"provider": "المزود",
"model": "النموذج",
@@ -13403,92 +13435,92 @@
"tierLive": "مباشر (في الوقت الحقيقي)",
"tierCommunity": "مجتمع (تأخير 30 يومًا)",
"activateTitle": "تفعيل الرادار",
- "activateDescription": "__MISSING__:Compare Community and live access, understand what your installation exchanges, and then choose how to activate Radar.",
- "activateButton": "__MISSING__:Activate Community",
+ "activateDescription": "قارن بين وصول Community والوصول المباشر، وافهم ما تتبادله عملية التثبيت لديك، ثم اختر كيفية تفعيل Radar.",
+ "accessScaleTitle": "افهم وصول Radar قبل التفعيل",
+ "accessScaleIntro": "يظل Radar غير نشط شبكيًا حتى تختار الاشتراك. اختر وصول Community أو فعّل مفتاح داعم شخصيًا بعد مراجعة هذه القواعد.",
+ "accessCommunityRule": "Community — لا يلزم مفتاح: الكتالوج الكامل بتأخير قدره 30 يومًا.",
+ "accessSingleUseRule": "ضع نجمة + تابع — بعد أن يتحقق GitHub OAuth من كليهما، يتلقى حسابك على GitHub قراءة واحدة مباشرة للكتالوج؛ ثم يعود الوصول إلى Community. لا يمكن إعادة إصدار هذا الوصول لمرة واحدة لذلك الحساب.",
+ "accessContributorRule": "المساهمون — تحدد طلبات PR المدمجة والالتزامات والأسطر ترتيب التصنيف الأسبوعي فقط. يحصل أفضل 10 على 365 يومًا؛ وتحصل المراتب 11–100 على 90 يومًا؛ ولا يحصل المساهمون خارج أفضل 100 على أي منحة بغض النظر عن عدد طلبات PR. ولا تؤدي مغادرة التصنيف أبدًا إلى تقصير المدة الممنوحة بالفعل.",
+ "accessSupporterRule": "الداعمون — تمنح عمليات الشراء لمرة واحدة 6 أشهر أو سنة واحدة أو مدى الحياة دون تجديد تلقائي. تتراكم عمليات الشراء والتبرعات وفترات المساهمين والمنح اليدوية؛ ويسود الوصول مدى الحياة دائمًا.",
+ "accessUseTitle": "الاستخدام الشخصي والاسترداد والمراجعة",
+ "accessInstallationRule": "ترخيص شخصي — استخدم المفتاح على عملية تثبيت نشطة واحدة في كل مرة. لا يأخذ OmniRoute بصمة للأجهزة. يؤدي الاسترداد إلى إبطال المفتاح المفقود واستبداله دون إعادة ضبط تاريخ انتهاء صلاحيته.",
+ "accessAbuseRule": "مراجعة إساءة الاستخدام — يؤدي عنوان IP المميز الرابع خلال 24 ساعة إلى إنشاء علامة للمراجعة اليدوية فقط؛ ولا يحظر المفتاح أو يبطله تلقائيًا مطلقًا.",
+ "accessOffersRule": "تُنسّق العروض المباشرة يدويًا وقد تتغير أو تنتهي صلاحيتها.",
+ "privacyTitle": "ما يتبادله Radar",
+ "privacyDownloadsRule": "التنزيلات — تتلقى عملية التثبيت لديك بيانات وصفية للكتالوج والإحالات موقّعة تشفيريًا؛ كما يتيح مفتاح مباشر صالح العروض الموقّعة وIntel.",
+ "privacySendsRule": "الإرسال — ترسل المزامنة من جانب الخادم مفتاح الداعم بوصفه رمز Bearer، وتتلقى بنية HTTPS الأساسية عنوان IP للاتصال. لا تخزّن محاسبة طلبات الموجز أيًا من القيمتين بصورتها الخام؛ بل تحتفظ بتجزئات المفاتيح والاستخدام الإجمالي وHMAC مبتور لعنوان IP يتغير يوميًا لمراجعة إساءة الاستخدام.",
+ "privacyNeverRule": "لا تُجمع مطلقًا — لا تُرسل المطالبات أو الاستجابات أو المحادثات أو بيانات اعتماد المزوّدين أو حركة مرور النماذج أو مدة التشغيل أو زمن الاستجابة أو إعدادات المزوّد المحلي إلى Radar مطلقًا.",
+ "activateButton": "تفعيل Community",
"activating": "جارٍ التفعيل...",
- "keySectionTitle": "Already have a supporter key?",
- "keyInvalidFormatError": "Invalid key format. It must start with \"omr_\" followed by 40 hex characters.",
- "activateWithKeyButton": "Activate supporter",
- "changeKeyButton": "Change key",
- "claimSectionTitle": "Don't have a supporter key yet?",
- "contributorButton": "I'm a contributor",
- "contributorHint": "__MISSING__:GitHub OAuth checks the current weekly ranking: Top 10 get 365 days and ranks 11–100 get 90 days. PR count alone never grants access outside the Top 100.",
- "supporterButton": "Support the project",
- "supporterHint": "__MISSING__:One-time 6-month, 1-year, and lifetime options have no automatic renewal; eligible periods accumulate and lifetime prevails.",
+ "keySectionTitle": "هل لديك مفتاح داعم بالفعل؟",
+ "keyInvalidFormatError": "تنسيق المفتاح غير صالح. يجب أن يبدأ بـ \"omr_\" متبوعًا بـ 40 محرفًا سداسيًا عشريًا.",
+ "activateWithKeyButton": "تفعيل الداعم",
+ "changeKeyButton": "تغيير المفتاح",
+ "claimSectionTitle": "ليس لديك مفتاح داعم بعد؟",
+ "contributorButton": "أنا مساهم",
+ "contributorHint": "يتحقق GitHub OAuth من التصنيف الأسبوعي الحالي: يحصل أصحاب المراكز العشرة الأولى على 365 يومًا، ويحصل أصحاب المراكز من 11 إلى 100 على 90 يومًا. لا يمنح عدد طلبات PR وحده إمكانية الوصول مطلقًا خارج أفضل 100.",
+ "supporterButton": "دعم المشروع",
+ "supporterHint": "لا تتضمن خيارات الستة أشهر والسنة الواحدة ومدى الحياة، التي تُدفع مرة واحدة، تجديدًا تلقائيًا؛ وتتراكم الفترات المؤهلة، فيما تكون الأولوية لخيار مدى الحياة.",
"colProvider": "المزود",
"colModel": "النموذج",
"colQuota": "الحصة",
+ "colLimits": "حدود المعدل",
+ "trainsOnPrompts": "يدرّب على المطالبات",
+ "trainsOnPromptsHelp": "تنص شروط هذا المزوّد على أنه قد يدرّب على المطالبات التي ترسلها. أما النماذج التي لا تحمل هذه الشارة، فإما أنها تنص على أنها لا تفعل ذلك، أو لا توثّق هذا الأمر — وغياب التصريح ليس ضمانًا.",
+ "limitsUnknownHelp": "الحدود المُبلغ عنها من موجز Radar فقط؛ لا توجد حدود منشورة لهذا الإدخال",
+ "contextUnknownHelp": "نافذة السياق غير معروفة لهذا الإدخال",
+ "capabilityUnknownHelp": "الإمكانات غير مُبلغ عنها في الموجز",
"colContext": "السياق",
"colCapabilities": "القدرات",
"colTos": "مخاطر شروط الخدمة",
- "colLimits": "__MISSING__:Rate limits",
- "trainsOnPrompts": "__MISSING__:Trains on prompts",
- "trainsOnPromptsHelp": "__MISSING__:This provider's terms state it may train on the prompts you send. Models without this badge either state they do not, or do not document it — an absent statement is not a guarantee.",
- "limitsUnknownHelp": "__MISSING__:Limits reported by Radar feed only; no published limits for this entry",
- "contextUnknownHelp": "__MISSING__:Context window unknown for this entry",
- "capabilityUnknownHelp": "__MISSING__:Capability not reported by the feed",
"newBadge": "جديد",
"setupGuide": "دليل الإعداد",
"disabledByFeed": "معطل بواسطة تغذية الرادار",
"capTools": "الأدوات",
"capVision": "الرؤية",
"capThinking": "التفكير",
- "catalogTab": "Catalog",
- "freeCreditsTab": "Free credits",
- "freeCreditsSubtitle": "Referral links from Radar-tracked providers — using them costs you nothing extra and helps support OmniRoute.",
- "fixedLinksEmpty": "No referral links available yet. Sync Radar to check for updates.",
- "requiredActionLabel": "What to do:",
- "claimButton": "Claim credits",
- "campaignsTitle": "Limited-time campaigns",
- "campaignsEmpty": "No active campaigns right now — check back later.",
- "campaignsUpsellCommunity": "Limited-time campaigns are a supporter extra. Everything on this page's fixed links stays free for everyone.",
- "campaignsValidUntil": "Valid until {date}",
- "colActions": "Actions",
- "localBadge": "local",
- "editModel": "Edit",
- "saveModel": "Save",
- "cancelEdit": "Cancel",
- "resetModel": "Reset local changes",
- "hideModel": "Hide",
- "restoreModel": "Restore",
- "hiddenModelsTitle": "Hidden models",
- "modelDisplayName": "Local display name",
- "modelEnabled": "Enabled locally",
- "localStateSaveFailed": "Failed to save local Radar settings",
- "guidedCombos": "Guided combos",
- "offers": "Offers",
- "intel": "Intel",
- "accessScaleTitle": "__MISSING__:Understand Radar access before activating",
- "accessScaleIntro": "__MISSING__:Radar stays network-inert until you opt in. Choose Community access or activate a personal supporter key after reviewing these rules.",
- "accessCommunityRule": "__MISSING__:Community — no key required: the complete catalog with a 30-day delay.",
- "accessSingleUseRule": "__MISSING__:Star + follow — after GitHub OAuth verifies both, your GitHub account receives one live catalog read; then access returns to Community. This one-time access cannot be reissued for that account.",
- "accessContributorRule": "__MISSING__:Contributors — merged PRs, commits, and lines only order the weekly ranking. Top 10 receive 365 days; ranks 11–100 receive 90 days; contributors outside the Top 100 receive no grant regardless of PR count. Leaving the ranking never shortens time already granted.",
- "accessSupporterRule": "__MISSING__:Supporters — one-time purchases grant 6 months, 1 year, or lifetime with no automatic renewal. Purchases, donations, contributor periods, and manual grants accumulate; lifetime always prevails.",
- "accessUseTitle": "__MISSING__:Personal use, recovery, and review",
- "accessInstallationRule": "__MISSING__:Personal license — use the key on one active installation at a time. OmniRoute does not fingerprint hardware. Recovery revokes and replaces a lost key without resetting its expiration.",
- "accessAbuseRule": "__MISSING__:Abuse review — the 4th distinct IP in 24 hours creates a manual review flag only; it never blocks or revokes a key automatically.",
- "accessOffersRule": "__MISSING__:Live offers are manually curated and may change or expire.",
- "privacyTitle": "__MISSING__:What Radar exchanges",
- "privacyDownloadsRule": "__MISSING__:Downloads — your installation receives cryptographically signed catalog and referral metadata; a valid live key also unlocks signed offers and Intel.",
- "privacySendsRule": "__MISSING__:Sends — server-side sync sends the supporter key as a Bearer token, and the HTTPS infrastructure receives the connection IP. Feed-request accounting stores neither value raw: it keeps key hashes, aggregate usage, and a daily rotating truncated IP HMAC for abuse review.",
- "privacyNeverRule": "__MISSING__:Never collected — prompts, responses, conversations, provider credentials, model traffic, uptime, latency, and local provider configuration are never sent to Radar."
+ "catalogTab": "الكتالوج",
+ "freeCreditsTab": "أرصدة مجانية",
+ "freeCreditsSubtitle": "روابط إحالة من مزوّدين يتتبعهم Radar — استخدامها لا يكلّفك أي مبلغ إضافي ويساعد في دعم OmniRoute.",
+ "fixedLinksEmpty": "لا تتوفر روابط إحالة بعد. زامِن Radar للتحقق من وجود تحديثات.",
+ "requiredActionLabel": "ما يجب فعله:",
+ "claimButton": "المطالبة بالأرصدة",
+ "campaignsTitle": "حملات محدودة المدة",
+ "campaignsEmpty": "لا توجد حملات نشطة حاليًا — تحقّق مجددًا لاحقًا.",
+ "campaignsUpsellCommunity": "الحملات محدودة المدة ميزة إضافية للداعمين. تظل جميع الروابط الثابتة في هذه الصفحة مجانية للجميع.",
+ "campaignsValidUntil": "صالح حتى {date}",
+ "colActions": "الإجراءات",
+ "localBadge": "محلي",
+ "editModel": "تعديل",
+ "saveModel": "حفظ",
+ "cancelEdit": "إلغاء",
+ "resetModel": "إعادة تعيين التغييرات المحلية",
+ "hideModel": "إخفاء",
+ "restoreModel": "استعادة",
+ "hiddenModelsTitle": "النماذج المخفية",
+ "modelDisplayName": "اسم العرض المحلي",
+ "modelEnabled": "مُمكّن محليًا",
+ "localStateSaveFailed": "فشل حفظ إعدادات Radar المحلية",
+ "guidedCombos": "توليفات موجّهة",
+ "offers": "العروض",
+ "intel": "معلومات"
},
"radarCombosPage": {
- "title": "Radar guided combos",
- "subtitle": "Create priority fallbacks from equivalent free models curated by Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading combo suggestions...",
- "familyLabel": "Model family",
- "modelsLabel": "Priority order",
- "strategyReason": "Priority uses the largest recurring free budget first, then falls back across active providers.",
- "generateButton": "Generate combo",
- "generating": "Generating...",
- "alreadyCreated": "Already created",
- "created": "Combo created",
- "noSuggestions": "No eligible model family currently has active connections to at least two providers.",
- "catalogRequired": "Sync the Radar catalog first to load curated model families.",
- "loadFailed": "Failed to load Radar combo suggestions.",
- "createFailed": "Failed to create the combo. Review your provider connections and try again."
+ "title": "توليفات Radar الموجّهة",
+ "subtitle": "أنشئ بدائل احتياطية حسب الأولوية من نماذج مجانية مكافئة منتقاة بواسطة Radar.",
+ "backToRadar": "العودة إلى Radar",
+ "loading": "جارٍ تحميل اقتراحات التركيبات...",
+ "familyLabel": "عائلة النماذج",
+ "modelsLabel": "ترتيب الأولوية",
+ "strategyReason": "تستخدم الأولوية أكبر ميزانية مجانية متكررة أولًا، ثم تنتقل إلى المزوّدين النشطين الآخرين عند الحاجة.",
+ "generateButton": "إنشاء تركيبة",
+ "generating": "جارٍ الإنشاء...",
+ "alreadyCreated": "تم إنشاؤها بالفعل",
+ "created": "تم إنشاء التركيبة",
+ "noSuggestions": "لا توجد حاليًا عائلة نماذج مؤهلة لديها اتصالات نشطة بمزوّدين اثنين على الأقل.",
+ "catalogRequired": "زامن كتالوج Radar أولًا لتحميل عائلات النماذج المنسّقة.",
+ "loadFailed": "فشل تحميل اقتراحات تركيبات Radar.",
+ "createFailed": "فشل إنشاء التركيبة. راجع اتصالات المزوّدين لديك وحاول مرة أخرى."
},
"radarSetupPage": {
"title": "إعداد المزود",
@@ -13517,12 +13549,12 @@
},
"resilienceConnections": {
"title": "مرونة الاتصال",
- "reassuranceTitle": "Your connections recover automatically",
- "reassuranceDetail": "Usually no action is needed. OmniRoute temporarily rests a connection after failures, then safely tries it again.",
+ "reassuranceTitle": "تتعافى اتصالاتك تلقائيًا",
+ "reassuranceDetail": "لا يلزم اتخاذ أي إجراء عادةً. يوقف OmniRoute الاتصال مؤقتًا بعد حالات الفشل، ثم يعيد تجربته بأمان.",
"plainStates": {
- "healthy": "Requests can be sent",
- "coolingDown": "Trying again soon",
- "lockedOut": "Needs your attention"
+ "healthy": "يمكن إرسال الطلبات",
+ "coolingDown": "ستتم المحاولة مجددًا قريبًا",
+ "lockedOut": "يتطلب انتباهك"
},
"table": {
"status": "الحالة",
@@ -13621,7 +13653,8 @@
}
},
"featureFlagCapabilityFilterEnabledDescription": "رفض الطلبات قبل الإرسال عندما يفتقر النموذج المستهدف إلى القدرات المطلوبة (الرؤية، الأدوات، المخرجات المنظمة، نافذة السياق). يحمي الطلبات المباشرة من مزود واحد التي تتجاوز فلتر توافق الطبقة المجمعة.",
- "featureFlagDisableContextWindowChecksDescription": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active.",
+ "featureFlagDisableContextWindowChecksDescription": "تخطي فحص OmniRoute المحلي لنافذة السياق والحد الأقصى لرموز الإدخال للطلبات المباشرة ذات النموذج الواحد. لا يزال المزوّدون الخارجيون يفرضون حدودهم الفعلية. يظل ضغط المطالبات والحد الأقصى لرموز الإخراج مفعّلين.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "لا تشمل إحصاءات البحث وعمليات البحث الأخيرة إلا المزوّدين الذين لا يزال لديهم اتصال نشط (أما المزوّدون الذين لا يحتاجون إلى مفتاح، مثل duckduckgo-free، فيتم احتسابهم دائمًا). يؤدي إيقاف هذا الخيار إلى الاحتفاظ بكل صف بحث محفوظ يتضمن معرّف مزوّد.",
"publicSystem": {
"notFound": {
"title": "الصفحة غير موجودة",
@@ -13831,7 +13864,7 @@
"authorizeImportant": "مهم: يجب أن تكون مسجلاً الدخول إلى trae.ai في هذا المتصفح أولاً. صفحة التفويض تؤكد فقط وجود جلسة حالية - لا يمكنها تسجيل دخولك. إذا رأيت \"فشل تسجيل الدخول\"، انقر على \"فتح solo.trae.ai\"، سجل الدخول، ثم عد إلى هنا.",
"waitingForAuthorization": "انتظار trae.ai…",
"authorizeWithBrowser": "تفويض باستخدام المتصفح",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "فتح solo.trae.ai",
"orPasteManually": "أو لصق رمز يدويًا",
"manualInstructions": "قم بتسجيل الدخول إلى solo.trae.ai، افتح أدوات المطور → الشبكة، أرسل أي رسالة دردشة، وانسخ JWT من Authorization: Cloud-IDE-JWT {tokenPlaceholder} رأس الطلب. مدة صلاحية JWT حوالي 14 يومًا. تأتي حقول الهوية الاختيارية من common_params في نفس جسم الطلب.",
"accessTokenLabel": "رمز الوصول (Cloud-IDE-JWT)",
@@ -14048,11 +14081,11 @@
"actionApprove": "الموافقة على الخطة",
"actionCancel": "إلغاء",
"actionSeeInGraph": "عرض في الرسم البياني",
+ "actionRepeat": "تكرار",
"actionDone": "تم تطبيق الإجراء",
"actionFailed": "فشل الإجراء: {error}",
"detailFailed": "فشل تحميل التفاصيل: {error}",
"mirroredInA2A": "معكوس في A2A",
- "actionRepeat": "تكرار",
"repeatConfirm": "انقر مرة أخرى للتأكيد",
"repeatDone": "تم إنشاء تشغيل جديد",
"repeatUnavailable": "المُدخل الأصلي غير متاح"
@@ -14060,63 +14093,63 @@
"cliproxyProviderExposure": {
"title": "تعرض المزود",
"description": "تعريض نماذج CLIProxyAPI كهدف توجيه تحت بادئة POST /v1/chat/completions istifadə edin.",
"compressionAnalyticsInfo": "Sıxılma analitikası: Token qənaəti rejim (off, lite, standard, aggressive, ultra, RTK, stacked), mühərrik, sıxılma kombosu və provayder üzrə izlənilir. Təfərrüatlar üçün kursoru qrafiklərin üzərinə gətirin. Fərqli vaxt dövrlərinə baxmaq üçün vaxt seçicisindən istifadə edin.",
"searchAnalyticsTotalSearches": "Ümumi Axtarışlar",
- "searchAnalyticsCacheHitRate": "Cache Hit Rate",
+ "searchAnalyticsCacheHitRate": "Keş uyğunluq nisbəti",
"searchAnalyticsTotalCost": "Ümumi Xərc",
"searchAnalyticsAvgResponse": "Orta Cavab",
"searchAnalyticsNoSearchesYet": "Hələ axtarış yoxdur",
@@ -2184,7 +2188,7 @@
"routeRuntimeScoreNow": "Hazırkı runtime xalı",
"routeWouldSelectNow": "İndi seçərdi",
"routeNoRecomputeCandidates": "Bu sorğu üçün heç bir kombo namizəd sıralaması yenidən hesablana bilməz.",
- "runtime": "Runtime",
+ "runtime": "İcra mühiti",
"routeTopNow": "İndi ən yaxşı",
"routeFetchLogsFailed": "Sorğu jurnallarını əldə etmək mümkün olmadı",
"routeExplainFailed": "Marşrutu izah etmək mümkün olmadı",
@@ -2206,7 +2210,7 @@
"combo": "Kombo",
"routeStep": "Addım",
"tokens": "Tokenlər",
- "notAvailable": "n/a",
+ "notAvailable": "m/y",
"routeTokenCounts": "{input} giriş · {output} çıxış",
"routeEvidence": "Sübut",
"routeFactors": "Marşrutlaşdırma amilləri",
@@ -2233,55 +2237,55 @@
"freeTierAvailable": "Pulsuz səviyyə mövcuddur"
},
"apiManager": {
- "title": "API Keys",
- "createKey": "Create API Key",
- "key": "Key",
- "revokeKey": "Revoke Key",
- "revokeConfirm": "Are you sure you want to revoke this API key?",
- "noKeys": "No API keys yet",
- "noKeysDesc": "Create your first API key to authenticate requests to your endpoint",
- "keyLabel": "Key Label",
- "permissions": "Permissions",
- "expiresAt": "Expires",
- "never": "Never",
- "revoke": "Revoke",
- "showKey": "Show Key",
- "hideKey": "Hide Key",
- "copyKey": "Copy API Key",
- "allModels": "All models",
- "selectedModels": "Selected Models",
- "readOnly": "Read Only",
- "fullAccess": "Full Access",
- "keyManagement": "API Key Management",
- "keyManagementDesc": "Create and manage API keys for authenticating requests to your endpoint",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "title": "API açarları",
+ "createKey": "API açarı yarat",
+ "key": "Açar",
+ "revokeKey": "Açarı ləğv et",
+ "revokeConfirm": "Bu API açarını ləğv etmək istədiyinizə əminsiniz?",
+ "noKeys": "Hələ heç bir API açarı yoxdur",
+ "noKeysDesc": "Endpoint-inizə göndərilən sorğuların autentifikasiyası üçün ilk API açarınızı yaradın",
+ "keyLabel": "Açar etiketi",
+ "permissions": "İcazələr",
+ "expiresAt": "Etibarlılıq müddəti",
+ "never": "Heç vaxt",
+ "revoke": "Ləğv et",
+ "showKey": "Açarı göstər",
+ "hideKey": "Açarı gizlət",
+ "copyKey": "API açarını kopyala",
+ "allModels": "Bütün modellər",
+ "selectedModels": "Seçilmiş modellər",
+ "readOnly": "Yalnız oxuma",
+ "fullAccess": "Tam giriş",
+ "keyManagement": "API açarlarının idarə edilməsi",
+ "keyManagementDesc": "Endpoint-inizə göndərilən sorğuların autentifikasiyası üçün API açarları yaradın və idarə edin",
+ "requestFlowAria": "Tətbiqiniz sorğuları API açarı vasitəsilə OmniRoute-a göndərir",
+ "requestFlowYourApp": "Tətbiqiniz",
+ "requestFlowApiKey": "API açarı",
"requestFlowOmniRoute": "OmniRoute",
- "totalKeys": "Total Keys",
- "restricted": "Restricted",
- "totalRequests": "Total Requests",
- "modelsAvailable": "Models Available",
- "registeredKeys": "Registered Keys",
- "keysRegistered": "{count} keys registered",
- "keyRegistered": "{count} key registered",
- "keysSecurityNote": "Each key isolates usage tracking and can be revoked independently. Keys are masked after creation for security.",
- "createFirstKey": "Create Your First Key",
- "name": "Name",
- "usage": "Usage",
- "created": "Created",
- "actions": "Actions",
- "reqs": "reqs",
- "neverUsed": "Never used",
- "deleteConfirm": "Delete this API key?",
- "usageTips": "Usage Tips",
- "tipAuth": "Use API keys in the Authorization header as Bearer YOUR_KEY",
- "tipSecure": "Keys are only shown once during creation — store them securely",
- "tipSeparate": "Create separate keys for different clients or environments",
- "tipRestrict": "Restrict keys to specific models for better security and cost control",
- "keyName": "Key Name",
- "keyNamePlaceholder": "e.g. Production Key",
- "keyNameDesc": "Choose a descriptive name to identify this key's purpose",
+ "totalKeys": "Ümumi açar sayı",
+ "restricted": "Məhdudlaşdırılmış",
+ "totalRequests": "Ümumi sorğu sayı",
+ "modelsAvailable": "Mövcud modellər",
+ "registeredKeys": "Qeydiyyatdan keçmiş açarlar",
+ "keysRegistered": "{count} açar qeydiyyatdan keçib",
+ "keyRegistered": "{count} açar qeydiyyatdan keçib",
+ "keysSecurityNote": "Hər açar istifadə izləməsini ayrıca saxlayır və müstəqil şəkildə ləğv edilə bilər. Təhlükəsizlik məqsədilə açarlar yaradıldıqdan sonra maskalanır.",
+ "createFirstKey": "İlk açarınızı yaradın",
+ "name": "Ad",
+ "usage": "İstifadə",
+ "created": "Yaradılma tarixi",
+ "actions": "Əməliyyatlar",
+ "reqs": "sorğu",
+ "neverUsed": "Heç vaxt istifadə edilməyib",
+ "deleteConfirm": "Bu API açarı silinsin?",
+ "usageTips": "İstifadə məsləhətləri",
+ "tipAuth": "API açarlarını Authorization başlığında Bearer YOUR_KEY formatında istifadə edin",
+ "tipSecure": "Açarlar yaradılarkən yalnız bir dəfə göstərilir — onları təhlükəsiz şəkildə saxlayın",
+ "tipSeparate": "Müxtəlif müştərilər və ya mühitlər üçün ayrıca açarlar yaradın",
+ "tipRestrict": "Daha yaxşı təhlükəsizlik və xərc nəzarəti üçün açarları konkret modellərlə məhdudlaşdırın",
+ "keyName": "Açarın adı",
+ "keyNamePlaceholder": "məs., İstehsal açarı",
+ "keyNameDesc": "Bu açarın təyinatını müəyyən etmək üçün açıqlayıcı ad seçin",
"managementAccessDesc": "Bu API açarına OmniRoute konfiqurasiyasını idarə etməyə icazə ver.",
"selfServiceVisibility": "Özünəxidmət görünürlüğü",
"selfServiceVisibilityDesc": "Bu açarın öz istifadəsi və paylaşılan yuxarı axın kvotası haqqında nələri görə biləcəyini idarə edin.",
@@ -2292,83 +2296,83 @@
"localUsageCommand": "Yerli istifadə əmrinə icazə verin",
"localUsageCommandDesc": "Bu API açarına yuxarı axın provayderinə müraciət etmədən keşlənmiş istifadə və kvota məlumatlarını əldə etmək üçün @@om-usage istifadə etməyə icazə verir.",
"localUsageCommandBadge": "İstifadə əmri",
- "keyCreated": "API Key Created",
- "keyCreatedSuccess": "Key created successfully!",
- "keyCreatedNote": "Copy and store this key now — it won't be shown again.",
- "done": "Done",
- "savePermissions": "Save Permissions",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "keyCreated": "API açarı yaradıldı",
+ "keyCreatedSuccess": "Açar uğurla yaradıldı!",
+ "keyCreatedNote": "Bu açarı indi kopyalayıb saxlayın — bir daha göstərilməyəcək.",
+ "done": "Hazırdır",
+ "savePermissions": "İcazələri yadda saxla",
+ "endpointRestrictions": "İcazə verilən son nöqtələr",
+ "allEndpointsAllowed": "Bu açar bütün API son nöqtələrinə daxil ola bilər.",
+ "endpointsRestricted": "{count} son nöqtə{count, plural, one {} other {s}} ilə məhdudlaşdırılıb.",
+ "autoResolve": "Avtomatik müəyyənləşdirmə",
+ "autoResolveDesc": "Bu API açarı üçün qeyri-müəyyən model adlarını avtomatik olaraq yerli provayderə uyğunlaşdırın.",
"streamDefaultMode": "Stream standart uyğunluğu",
"streamDefaultModeDesc": "Bu açar üçün buraxılmış `stream` bayraqlarına nəzarət edir. JSON rejimi müştəri açıq şəkildə SSE tələb etmədiyi təqdirdə qeyri-stream cavablar qaytarır.",
"streamDefaultLegacy": "Köhnə",
"streamDefaultJson": "JSON uyğun",
"streamDefaultBadge": "JSON stream standartı",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
- "allowAll": "Allow All",
- "restrict": "Restrict",
- "allowAllInfo": "This key can access all available models.",
- "restrictInfo": "This key can access {selected} of {total} models.",
- "selected": "{count} selected",
- "all": "All",
- "clear": "Clear",
- "searchModels": "Search models by name or provider...",
- "noModelsFound": "No models found",
- "keyNameRequired": "Key name is required",
- "keyNameTooLong": "Key name must be {max} characters or less",
- "keyNameInvalid": "Key name can only contain letters, numbers, spaces, hyphens, and underscores",
- "invalidKeyName": "Invalid key name",
- "failedCreateKey": "Failed to create key",
- "failedCreateKeyRetry": "Failed to create key. Please try again.",
- "invalidKeyId": "Invalid key ID",
- "failedDeleteKey": "Failed to delete key",
- "failedDeleteKeyRetry": "Failed to delete key. Please try again.",
- "invalidModelsSelection": "Invalid models selection",
- "cannotSelectMoreThanModels": "Cannot select more than {max} models",
- "failedUpdatePermissions": "Failed to update permissions",
- "failedUpdatePermissionsRetry": "Failed to update permissions. Please try again.",
- "unknownProvider": "unknown",
- "copyMaskedKey": "Copy masked key",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyActive": "Açar aktivdir",
+ "keyActiveDesc": "Bu API açarını aktivləşdirin və ya deaktiv edin. Deaktiv edilmiş açarlar dərhal 403 xətası ilə rədd edilir.",
+ "accessSchedule": "Giriş cədvəli",
+ "accessScheduleDesc": "Girişi həftənin müəyyən saatları və günləri ilə məhdudlaşdırın.",
+ "scheduleFrom": "Başlanğıc",
+ "scheduleUntil": "Qədər",
+ "scheduleDays": "Günlər",
+ "scheduleTimezone": "Saat qurşağı",
+ "scheduleTimezoneHint": "IANA saat qurşağı adlarından istifadə edin, məsələn, America/New_York, Europe/Berlin",
+ "scheduleActive": "Cədvəl",
+ "disabled": "Deaktiv edilib",
+ "daySun": "Baz",
+ "dayMon": "B.e.",
+ "dayTue": "Ç.a.",
+ "dayWed": "Ç.",
+ "dayThu": "C.a.",
+ "dayFri": "C.",
+ "daySat": "Ş.",
+ "allowAll": "Hamısına icazə ver",
+ "restrict": "Məhdudlaşdır",
+ "allowAllInfo": "Bu açar bütün mövcud modellərə daxil ola bilər.",
+ "restrictInfo": "Bu açar {total} modeldən {selected} modelə daxil ola bilər.",
+ "selected": "{count} seçilib",
+ "all": "Hamısı",
+ "clear": "Təmizlə",
+ "searchModels": "Modelləri ada və ya provayderə görə axtarın...",
+ "noModelsFound": "Heç bir model tapılmadı",
+ "keyNameRequired": "Açarın adı tələb olunur",
+ "keyNameTooLong": "Açarın adı ən çox {max} simvoldan ibarət olmalıdır",
+ "keyNameInvalid": "Açarın adında yalnız hərflər, rəqəmlər, boşluqlar, defislər və alt xətlər ola bilər",
+ "invalidKeyName": "Açarın adı etibarsızdır",
+ "failedCreateKey": "Açarı yaratmaq alınmadı",
+ "failedCreateKeyRetry": "Açarı yaratmaq alınmadı. Yenidən cəhd edin.",
+ "invalidKeyId": "Açar ID-si etibarsızdır",
+ "failedDeleteKey": "Açarı silmək alınmadı",
+ "failedDeleteKeyRetry": "Açarı silmək alınmadı. Yenidən cəhd edin.",
+ "invalidModelsSelection": "Model seçimi etibarsızdır",
+ "cannotSelectMoreThanModels": "{max} modeldən çox seçmək olmaz",
+ "failedUpdatePermissions": "İcazələri yeniləmək alınmadı",
+ "failedUpdatePermissionsRetry": "İcazələri yeniləmək alınmadı. Yenidən cəhd edin.",
+ "unknownProvider": "naməlum",
+ "copyMaskedKey": "Maskalanmış açarı kopyala",
+ "keyOnlyAvailableAtCreation": "Tam açar yalnız yaradılma zamanı əlçatan olur — açarı ilk dəfə yaratdığınız zaman onu kopyalayın",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# cihaz} other {# cihaz}}",
"devicesTooltip": "{count, plural, one {bu açarla görünən # fərqli IP/User-Agent cihazı (son 30 dəq)} other {bu açarla görünən # fərqli IP/User-Agent cihazı (son 30 dəq)}}",
- "lastUsedOn": "Last: {date}",
+ "lastUsedOn": "Son: {date}",
"viewCostsFor": "{name} üçün xərclərə baxın",
- "editPermissions": "Edit permissions",
- "deleteKey": "Delete key",
- "regenerateKey": "Regenerate key",
- "regenerateConfirm": "Are you sure you want to regenerate this API key? The old key will be immediately invalidated.",
- "failedRegenerateKey": "Failed to regenerate API key",
- "failedRegenerateKeyRetry": "Failed to regenerate API key. Please try again.",
+ "editPermissions": "İcazələri redaktə et",
+ "deleteKey": "Açarı sil",
+ "regenerateKey": "Açarı yenidən yarat",
+ "regenerateConfirm": "Bu API açarını yenidən yaratmaq istədiyinizə əminsiniz? Köhnə açar dərhal etibarsız olacaq.",
+ "failedRegenerateKey": "API açarını yenidən yaratmaq alınmadı",
+ "failedRegenerateKeyRetry": "API açarını yenidən yaratmaq alınmadı. Lütfən, yenidən cəhd edin.",
"model": "{count} model",
- "models": "{count} models",
- "permissionsTitle": "Permissions: {name}",
- "allowAllDesc": "This key can access all available models.",
+ "models": "{count} model",
+ "permissionsTitle": "İcazələr: {name}",
+ "allowAllDesc": "Bu açar bütün mövcud modellərə daxil ola bilər.",
"restrictLoading": "Model kataloqu yüklənir…",
"restrictCatalogUnavailable": "Model kataloqu əlçatmazdır; bu açarda {selectedCount} seçilmiş model məhdudiyyəti var.",
- "restrictDesc": "This key can access {selectedCount} of {totalModels} models.",
- "selectedCount": "{count} selected",
+ "restrictDesc": "Bu açar {totalModels} modeldən {selectedCount} modelə daxil ola bilər.",
+ "selectedCount": "{count} seçilib",
"maxActiveSessions": "Maksimum Aktiv Sessiyalar",
"maxActiveSessionsDescription": "0 = limitsiz. Bu açar eyni vaxtda olan sticky seansları keçdikdə 429 qaytarın.",
"throttleDelay": "Throttle gecikməsi",
@@ -2378,8 +2382,8 @@
"allowedCombos": "İcazə verilən kombinasiyalar",
"allCombosAllowed": "Bu açar istənilən kombinasiyanı istifadə edə bilər.",
"restrictedComboCount": "{count, plural, one {# kombinasiya} other {# kombinasiya}} ilə məhdudlaşdırılıb.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "Bu kombinasiya siyahısında olmayan {count, plural, one {# saxlanmış qeyd} other {# saxlanmış qeyd}} (məsələn, marşrutlaşdırma qaydaları) saxlanıldığı kimi qorunacaq.",
+ "preservedComboRuleHint": "Saxlanıldığı kimi qorunur. Bu qeyd yuxarıdakı siyahıda yer alan kombinasiya deyil, buna görə də yalnız API vasitəsilə dəyişdirilə bilər.",
"apiManagerCustomRateLimits": "Fərdi tarif limitləri",
"apiManagerCustomRateLimitsDesc": "Qlobal standart limitləri ləğv edin. Defoltları istifadə etmək üçün boş buraxın.",
"apiManagerRateLimitRequestsPlaceholder": "Sorğular",
@@ -2395,7 +2399,7 @@
"allowedConnections": "İcazəli Bağlantılar",
"searchPlaceholder": "Ad və ya tokenlə axtarın...",
"activeOnly": "Yalnız aktivlər",
- "filterStatus": "STATUS",
+ "filterStatus": "VƏZİYYƏT",
"filterType": "NÖV",
"filterAll": "Hamısı",
"filterStatusActive": "Aktiv",
@@ -2416,53 +2420,53 @@
"bypassProviderQuotaDescription": "Bu açara marşrutlaşdırma zamanı yuxarı provayder/hesab məhdudiyyət siyasətinə məhəl qoymamağa icazə verir. API açarı USD kvotaları hələ də tətbiq olunur.",
"quotaPill": "KVOTA",
"quotaModeOnly": "Yalnız qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Eksklüziv icarə",
+ "exclusiveLeaseNoticeTitle": "Eksklüziv icarə",
+ "exclusiveLeaseNoticeDesc": "Bu API açarı xüsusi bağlantı marşrutlaşdırması üçün eksklüziv icarə icazələrinə malikdir.",
+ "allConnections": "Bütün bağlantılar",
+ "onlySelectedConnections": "Yalnız seçilmiş bağlantılar",
+ "selectAtLeastOneConnection": "Ən azı bir bağlantı seçin və ya Bütün bağlantılar seçimini edin.",
+ "allConnectionsDesc": "Bu açar istənilən aktiv bağlantıdan istifadə edə bilər.",
+ "restrictedToConnections": "{count, plural, one {# bağlantı} other {# bağlantı}} ilə məhdudlaşdırılıb."
},
"auditLog": {
- "title": "Audit Log",
- "searchPlaceholder": "Search actions...",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "ipAddress": "IP Address",
- "timestamp": "Timestamp",
- "noEntries": "No audit entries found",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
+ "title": "Audit jurnalı",
+ "searchPlaceholder": "Əməliyyatları axtarın...",
+ "action": "Əməliyyat",
+ "actor": "İcraçı",
+ "target": "Hədəf",
+ "ipAddress": "IP ünvanı",
+ "timestamp": "Vaxt möhürü",
+ "noEntries": "Audit qeydi tapılmadı",
+ "filterByAction": "Əməliyyata görə filtrləyin...",
+ "filterByActor": "İcraçıya görə filtrləyin...",
+ "filterEntriesAria": "Audit jurnalı qeydlərini filtrləyin",
+ "filterByActionTypeAria": "Əməliyyat növünə görə filtrləyin",
+ "filterByActorAria": "İcraçıya görə filtrləyin",
+ "refreshAuditLogAria": "Audit jurnalını yeniləyin",
+ "tableAria": "Audit jurnalı qeydləri",
+ "failedFetchAuditLog": "Audit jurnalını əldə etmək alınmadı",
"notAvailable": "—",
- "description": "Administrative actions and security events",
- "showing": "Showing {count} entries (offset {offset})",
- "previous": "Previous"
+ "description": "İnzibati əməliyyatlar və təhlükəsizlik hadisələri",
+ "showing": "{count} qeyd göstərilir (ofset {offset})",
+ "previous": "Əvvəlki"
},
"media": {
- "title": "Media Playground",
- "subtitle": "Generate images, videos, and music",
+ "title": "Media Sınaq Meydanı",
+ "subtitle": "Şəkillər, videolar və musiqi yaradın",
"model": "Model",
"prompt": "Prompt",
- "generate": "Generate",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generate": "Yarat",
+ "generating": "Yaradılır...",
+ "loadingModels": "Mövcud modellər yüklənir...",
+ "noModels": "Heç bir model mövcud deyil. Əvvəlcə media imkanlarına malik provayderləri konfiqurasiya edin.",
+ "error": "Yaratma uğursuz oldu",
+ "result": "Nəticə",
+ "imageDescription": "OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI və digər vasitələrdən istifadə edərək mətn sorğuları əsasında şəkillər yaradın.",
+ "videoDescription": "ComfyUI və ya SD WebUI vasitəsilə AnimateDiff, Stable Video Diffusion ilə videolar yaradın.",
+ "musicDescription": "ComfyUI vasitəsilə Stable Audio Open və ya MusicGen istifadə edərək musiqi bəstələyin.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Vektor təqdimatı",
"image": "Şəkil",
"imageToText": "Şəkildən mətnə",
"tts": "Mətndən nitqə",
@@ -2538,114 +2542,114 @@
"openrouterSttDescription": "OpenRouter nitqdan mətbəx modelləri sizin konfiqurasiya edilmiş OpenRouter bağlantınızı istifadə edir. Ayrı bir etimadnaməyə ehtiyac yoxdur."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Axtarış sorğusu",
+ "searchResults": "Axtarış nəticələri",
+ "cachedResult": "Keşlənib",
+ "searchCost": "Xərc",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Provayderlərin müqayisəsi ilə təkmil axtarış sınağı",
+ "compareProviders": "Provayderləri müqayisə et",
+ "rerankResults": "Nəticələri yenidən sırala",
+ "searchHistory": "Axtarış tarixçəsi",
+ "urlOverlap": "URL üst-üstə düşməsi",
+ "noSearchProviders": "Heç bir axtarış provayderi konfiqurasiya edilməyib. Parametrlərdə provayderlər əlavə edin.",
+ "noRerankModels": "Yenidən sıralama modeli mövcud deyil",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Provayder",
+ "searchType": "Axtarış növü",
+ "maxResults": "Maksimum nəticə sayı",
+ "filters": "Filtrlər",
+ "country": "Ölkə",
+ "language": "Dil",
+ "timeRange": "Vaxt aralığı",
+ "includeDomains": "Daxil ediləcək domenlər",
+ "excludeDomains": "İstisna ediləcək domenlər",
+ "safeSearch": "Təhlükəsiz axtarış",
+ "safeSearchOff": "Söndürülüb",
+ "safeSearchModerate": "Orta",
+ "safeSearchStrict": "Sərt",
+ "queryPlaceholder": "Axtarış sorğusunu daxil edin...",
+ "providerAuto": "avtomatik (ən ucuz)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "xəbərlər",
+ "optionAny": "istənilən",
+ "timeRangeDay": "Son gün",
+ "timeRangeWeek": "Son həftə",
+ "timeRangeMonth": "Son ay",
+ "timeRangeYear": "Son il",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Sorğunun vaxtı bitdi ({seconds}s)",
+ "networkError": "Şəbəkə xətası",
+ "formatted": "Formatlanmış",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "keşdə yoxdur",
+ "cacheHit": "keşdə var",
+ "latency": "Gecikmə",
+ "cost": "Xərc",
+ "results": "Nəticələr",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Yenidən sıralama modeli",
+ "positionDelta": "Mövqe dəyişikliyi",
+ "emptyState": "Nəticələri görmək üçün axtarış sorğusu göndərin",
"copy": "Kopyalayın",
"resetToDefault": "Standarta sıfırlayın",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Axtarış",
+ "tabScrape": "Məzmunu çıxar",
+ "tabCompare": "Müqayisə",
+ "modalitiesGuide": "Rejimlər üzrə bələdçi",
+ "searchConceptTitle": "Axtarış",
+ "searchConceptDesc": "Axtarış = veb-nəticələrin siyahısını əldə edir (başlıq, URL, fraqment, uyğunluq xalı)",
+ "scrapeConceptTitle": "Məzmunu çıxar",
+ "scrapeConceptDesc": "Məzmunu çıxar = URL-in tam məzmununu çıxarır (markdown, mətn və ya HTML)",
+ "compareConceptTitle": "Müqayisə",
+ "compareConceptDesc": "Müqayisə = gecikməni, xərci və nəticələrin üst-üstə düşməsini müqayisə etmək üçün eyni sorğunu N provayder üzrə paralel icra edir",
+ "rerankConceptTitle": "Yenidən sırala",
+ "rerankConceptDesc": "Yenidən sırala = sorğu əsasında uyğunluğu yaxşılaşdırmaq üçün nəticələrin sırasını LLM vasitəsilə dəyişir",
+ "autoConceptTitle": "Avtomatik (ən ucuz)",
+ "autoConceptDesc": "Avtomatik (ən ucuz) = konfiqurasiya edilmiş giriş məlumatları olan mövcud provayderlərdən ən ucuzunu avtomatik seçir",
+ "providerCatalogTitle": "Provayder kataloqu",
+ "kindSearch": "Axtarış",
+ "kindFetch": "Əldə et/Məzmunu çıxar",
+ "statusConfigured": "Konfiqurasiya edilib",
+ "statusMissing": "Giriş məlumatı yoxdur",
+ "statusRateLimited": "Sorğu tezliyi məhdudlaşdırılıb",
+ "configureProvider": "Provayderlərdə konfiqurasiya edin",
+ "loadingProviders": "Provayderlər yüklənir…",
+ "failedToLoadProviders": "Provayderləri yükləmək mümkün olmadı",
+ "costPerQuery": "Sorğu başına xərc",
+ "freeQuota": "Pulsuz kvota/ay",
+ "scrapeUrl": "Məlumat çıxarılacaq URL",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL tələb olunur",
"scrapeUrlInvalid": "Yanlış URL — http:// və ya https:// ilə başlamalıdır",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
+ "scrapeExtract": "Çıxar",
+ "scrapeExtracting": "Çıxarılır…",
+ "scrapeFullPage": "Tam səhifə",
"scrapeFormat": "Format",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "Mətn",
+ "scrapePreview": "Önizləmə",
+ "scrapeRaw": "Xam",
+ "scrapeContentTruncated": "(qısaldılıb, xam versiyaya baxın)",
+ "scrapeMetadata": "Metaməlumat",
+ "scrapeProvider": "Provayder",
+ "scrapeSize": "Ölçü",
"scrapeEmptyState": "Məzmununu çıxarmaq üçün URL daxil edin",
"scrapeProvidersAvailable": "Mövcud provayderlər: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Müqayisə et",
+ "compareRunning": "Müqayisə edilir…",
+ "autoProvider": "Avtomatik (ən ucuz)",
+ "configuredStatus": "Konfiqurasiya edilib",
+ "rateLimitedStatus": "Sorğu limiti tətbiq edilib",
+ "noCredential": "Giriş məlumatı yoxdur",
+ "searchTypeLabel": "Növ",
+ "rerankModelLabel": "Yenidən sıralama modeli",
+ "noneOption": "Heç biri",
+ "size": "Ölçü",
"configurationPane": "Konfiqurasiya paneli",
"configuration": "Konfiqurasiya",
- "status": "Status",
+ "status": "Vəziyyət",
"compareProviderHint": "Onları yanaşı müqayisə etmək üçün Müqayisə tabında 4-ə qədər provayder seçin.",
"history": "Tarixçə",
"historyHint": "Tarixçə Axtarış tabında mövcuddur.",
@@ -2660,7 +2664,7 @@
"httpError": "Xəta {status}",
"failed": "Uğursuz oldu",
"requestFailed": "Sorğu uğursuz oldu",
- "embedding": "Embedding",
+ "embedding": "Vektorlaşdırma",
"embeddingSample": "Salam, dünya!",
"image": "Şəkil",
"imageSample": "Qürub çağında dağlar olan sakit mənzərə",
@@ -2697,7 +2701,7 @@
"compareEmptyDescription": "Nəticələr gecikmə, xərc və URL üst-üstə düşməsi ilə yanaşı göstəriləcək"
},
"cliTools": {
- "title": "CLI Tools",
+ "title": "CLI alətləri",
"classifierCompatTitle": "Avtomatik icazə təsnifatçısı uyğunluğu",
"classifierCompatDescription": "Ehtiyat marşrutların qapalı vəziyyətdə xəta verməməsi üçün Claude Code-un --permission-mode auto təhlükəsizlik təsnifatçısını sintetik icazə cavabı ilə yan keçin. Standart olaraq qeyri-aktivdir.",
"classifierCompatCycle": "Dövr: qeyri-aktiv → avtomatik → həmişə",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "Model aşkar edildikdən sonra ~/.codex/*.config.toml faylını yenidən yaradın.",
"claudeProfiles": "Claude Code profilləri",
"claudeProfilesDescription": "Model aşkar edildikdən sonra hər bir ~/.claude/profiles/…/settings.json faylını yenidən yaradın.",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "Aktiv provayder yoxdur",
+ "noActiveProvidersDesc": "CLI alətlərini konfiqurasiya etmək üçün əvvəlcə provayderlər əlavə edib qoşun.",
+ "mapModels": "Modelləri uyğunlaşdır",
+ "testConnection": "Bağlantını sına",
+ "connectionStatus": "Bağlantı statusu",
+ "configureEndpoint": "Son nöqtəni konfiqurasiya et",
+ "instructions": "Təlimatlar",
+ "modelMapping": "Model uyğunlaşdırılması",
"reasoningEffort": "{model} üçün mühakimə səyi",
"effortNone": "Yoxdur",
"effortLow": "Aşağı",
@@ -2743,62 +2747,62 @@
"modelAliases": "Model aliasları",
"addModel": "Model əlavə et",
"routeModelPlaceholder": "{model} modelini yönləndir...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "Baza URL-i",
+ "apiKey": "API açarı",
+ "configured": "Konfiqurasiya edilib",
+ "notConfigured": "Konfiqurasiya edilməyib",
+ "notInstalled": "Quraşdırılmayıb",
+ "custom": "Fərdi",
+ "unknown": "Naməlum",
+ "lastSavedAt": "Son saxlanma: {date}",
+ "never": "Heç vaxt",
+ "justNow": "indicə",
+ "minutesAgoShort": "{count} dəq. əvvəl",
+ "hoursAgoShort": "{count} saat əvvəl",
+ "daysAgoShort": "{count} gün əvvəl",
+ "monthsAgoShort": "{count} ay əvvəl",
+ "yearsAgoShort": "{count} il əvvəl",
+ "runtimeCheckFailed": "İcra mühiti yoxlaması uğursuz oldu",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "Konfiqurasiya uğurla saxlanıldı.",
+ "failedToSave": "Konfiqurasiyanı saxlamaq mümkün olmadı.",
+ "noApiKeysCreateOne": "API açarı yoxdur — Açarlar səhifəsində yaradın",
+ "defaultOmnirouteKey": "sk_omniroute (standart)",
+ "selectModel": "Model seçin",
+ "selectModelForAlias": "{alias} üçün model seçin",
+ "selectModelForTool": "{tool} üçün model seçin",
+ "select": "Seçin",
+ "clear": "Təmizlə",
+ "comingSoon": "Tezliklə",
+ "checkingRuntime": "İcra mühitinin statusu yoxlanılır...",
+ "guideOnlyIntegration": "Yalnız təlimat üzrə inteqrasiya (lokal icra mühiti tələb olunmur)",
+ "cliRuntimeDetected": "CLI icra mühiti aşkarlandı və hazırdır",
+ "cliFoundNotRunnable": "CLI tapıldı, lakin işə salına bilmir{reason}",
+ "cliRuntimeNotDetected": "CLI icra mühiti aşkar edilmədi",
+ "binary": "Binar fayl",
+ "configPath": "Konfiqurasiya yolu",
+ "configPathShort": "Konfiqurasiya",
+ "failedCheckRuntimeStatus": "İcra mühiti statusunu yoxlamaq alınmadı.",
+ "copy": "Kopyala",
+ "copied": "Kopyalandı",
+ "copyConfig": "Konfiqurasiyanı kopyala",
+ "saveConfig": "Konfiqurasiyanı yadda saxla",
+ "selectionSaved": "Seçim yadda saxlanıldı",
+ "guide": "Təlimat",
+ "detected": "Aşkarlandı",
+ "notReady": "Hazır deyil",
+ "active": "Aktiv",
+ "inactive": "Qeyri-aktiv",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM uğurla başladıldı!",
+ "mitmStopped": "MITM uğurla dayandırıldı!",
+ "failedStart": "MITM-i başlatmaq alınmadı",
+ "failedStop": "MITM-i dayandırmaq alınmadı",
+ "saveMappings": "Xəritələndirmələri yadda saxla",
+ "mappingsSaved": "Xəritələndirmələr yadda saxlanıldı!",
+ "failedSaveMappings": "Xəritələndirmələri yadda saxlamaq alınmadı",
"reasoningEffortDefault": "Standart",
"reasoningEffortHint": "Standart seçim agent tərəfindən göndərilən mühakimə səyini qoruyur",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "Yüksək",
"xhigh": "XYüksək"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "İş prinsipi:",
+ "antigravityHowWorksDesc": "Antigravity sorğuları Google-un son nöqtəsinə göndərir. MITM onları ələ keçirərək OmniRoute-a yönləndirir.",
+ "antigravityStep1": "1. Sorğuları OmniRoute vasitəsilə yönləndirmək üçün MITM-i başladın.",
+ "antigravityStep2Prefix": "2. Bunu",
+ "antigravityStep2Suffix": "hosts faylınıza 127.0.0.1 kimi əlavə edin.",
+ "antigravityStep3": "3. Antigravity-ni açın və sorğular proksi vasitəsilə ötürüləcək.",
+ "mitmHowWorksDesc": "{toolName} sorğuları öz provayderinin son nöqtəsinə göndərir. MITM onları ələ keçirərək OmniRoute-a yönləndirir.",
+ "mitmStep1": "1. Sorğuları OmniRoute vasitəsilə yönləndirmək üçün MITM-i başladın.",
+ "mitmStep2Prefix": "2. Bunu",
+ "mitmStep2Suffix": "hosts faylınıza 127.0.0.1 kimi əlavə edin.",
+ "mitmStep3": "3. {toolName} alətini açın və sorğular proksi vasitəsilə ötürüləcək.",
+ "sudoPasswordRequiredTitle": "Sudo parolu tələb olunur",
+ "sudoPasswordHint": "hosts faylını və sistem proksi parametrlərini dəyişdirmək üçün administrator parolu tələb olunur.",
+ "enterSudoPassword": "Sudo parolunu daxil edin",
+ "sudoPasswordRequiredError": "Sudo parolu tələb olunur.",
+ "cancel": "Ləğv et",
+ "confirm": "Təsdiq et",
+ "settingsApplied": "Parametrlər uğurla tətbiq edildi!",
+ "failedApplySettings": "Parametrləri tətbiq etmək alınmadı",
+ "settingsReset": "Parametrlər uğurla sıfırlandı!",
+ "failedResetSettings": "Parametrləri sıfırlamaq alınmadı",
+ "backupRestored": "Ehtiyat nüsxə bərpa edildi!",
+ "failedRestore": "Bərpa etmək alınmadı",
+ "checkingCli": "{tool} CLI yoxlanılır...",
+ "cliNotRunnable": "{tool} CLI quraşdırılıb, lakin işə salına bilmir",
+ "cliNotInstalled": "{tool} CLI quraşdırılmayıb",
+ "cliNotDetected": "{tool} CLI aşkarlanmadı",
+ "cliDetectedReady": "{tool} CLI aşkarlandı və hazırdır",
+ "cliFoundFailedHealthcheck": "{tool} CLI tapıldı, lakin icra mühiti sağlamlıq yoxlamasından keçmədi{reason}.",
+ "installCliPrompt": "Bu funksiyadan istifadə etmək üçün {tool} CLI-ni quraşdırın.",
+ "installCodexPrompt": "Avtomatik tətbiq funksiyasından istifadə etmək üçün Codex CLI-ni quraşdırın.",
+ "hide": "Gizlət",
+ "howToInstall": "Necə quraşdırmalı",
+ "installationGuide": "Quraşdırma təlimatı",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "Quraşdırmadan sonra yoxlamaq üçün",
+ "toVerify": "əmrini icra edin.",
+ "current": "Cari",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "Standart vəziyyətə sıfırla",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "Tətbiq et",
+ "reset": "Sıfırla",
+ "manualConfig": "Əl ilə konfiqurasiya",
+ "backups": "Yedəklər",
+ "configBackups": "Konfiqurasiya yedəkləri",
+ "noBackupsYet": "Hələ heç bir yedək yoxdur. Hər Tətbiq et və ya Sıfırla əməliyyatından əvvəl yedəklər avtomatik yaradılır.",
+ "restore": "Bərpa et",
+ "backupRestoredReloading": "Yedək bərpa edildi! Status yenidən yüklənir...",
+ "failedRestoreBackup": "Yedəyi bərpa etmək alınmadı",
+ "applied": "Tətbiq edildi!",
+ "failed": "Uğursuz oldu",
+ "resetDone": "Sıfırlandı!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute OpenAI ilə uyğun provayder kimi konfiqurasiya edilib",
+ "provider": "Provayder",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "Provayderlər",
+ "auth": "Autentifikasiya",
+ "noApiKeysAvailable": "Heç bir API açarı mövcud deyil",
+ "usingDefaultOmniroute": "Standart istifadə olunur: sk_omniroute",
+ "updateConfig": "Konfiqurasiyanı yenilə",
+ "applyConfig": "Konfiqurasiyanı tətbiq et",
+ "noBackupsAvailable": "Heç bir yedək mövcud deyil.",
+ "profileSaved": "\"{name}\" profili yadda saxlanıldı!",
+ "failedSaveProfile": "Profili yadda saxlamaq alınmadı",
+ "profileActivated": "Profil aktivləşdirildi!",
+ "failedActivateProfile": "Profili aktivləşdirmək mümkün olmadı",
+ "profiles": "Profillər",
+ "savedProfiles": "Yadda saxlanılmış profillər",
+ "noProfilesYet": "Hələ heç bir profil yadda saxlanılmayıb. Aşağıda cari konfiqurasiyanı profil kimi yadda saxlayın.",
+ "activate": "Aktivləşdir",
+ "deleteProfile": "Profili sil",
+ "profileNamePlaceholder": "Profil adı (məsələn, Şəxsi hesab)",
+ "saveCurrent": "Carini yadda saxla",
+ "codexAuthNotePrefix": "Codex istifadə edir",
+ "codexAuthNoteMiddle": "ilə",
+ "codexAuthNoteSuffix": "Avtomatik konfiqurasiya etmək üçün \"Tətbiq et\" düyməsinə klikləyin.",
+ "claudeManualConfiguration": "Claude CLI — Əl ilə konfiqurasiya",
+ "codexManualConfiguration": "Codex CLI — Əl ilə konfiqurasiya",
+ "droidManualConfiguration": "Factory Droid — Əl ilə konfiqurasiya",
+ "openClawManualConfiguration": "Open Claw — Əl ilə konfiqurasiya",
+ "clineManualConfiguration": "Cline üçün əl ilə konfiqurasiya",
+ "kiloManualConfiguration": "Kilo Code üçün əl ilə konfiqurasiya",
+ "whenToUseLabel": "Nə vaxt istifadə edilməlidir",
+ "openToolDocs": "Alətin sənədlərini aç",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "Claude Code ilə güclü planlaşdırma iş axınlarına və bir neçə faylı əhatə edən uzunmüddətli refaktorinqə ehtiyacınız olduqda istifadə edin.",
+ "codex": "Komandanız OpenAI Codex CLI iş axınları və profil əsaslı autentifikasiya üzrə standartlaşdırıldıqda istifadə edin.",
+ "droid": "Sürətli kodlaşdırmaya və əmrlərin ardıcıl icrasına yönəlmiş yüngül terminal agentinə ehtiyacınız olduqda istifadə edin.",
+ "openclaw": "Open Claw üslublu kodlaşdırma agenti istədikdə, lakin onu OmniRoute siyasətləri vasitəsilə yönləndirmək lazım olduqda istifadə edin.",
+ "cline": "Redaktorlarda kodlaşdırma agentlərini konfiqurasiya etdikdə və OmniRoute modelləri ilə istiqamətləndirilən quraşdırma istədikdə istifadə edin.",
+ "kilo": "İş axınınız Kilo Code əmrlərindən və sürətli iterativ redaktələrdən asılı olduqda istifadə edin.",
+ "cursor": "Cursor-da kod yazarkən və OmniRoute vasitəsilə xüsusi OpenAI-uyğun modellərə ehtiyacınız olduqda istifadə edin.",
+ "continue": "Continue-ni IDE-lərdə işlətdikdə və daşına bilən JSON əsaslı provayder konfiqurasiyasına ehtiyacınız olduqda istifadə edin.",
+ "opencode": "Terminala uyğun agent icralarına və OpenCode vasitəsilə skriptləşdirilmiş avtomatlaşdırmaya üstünlük verdikdə istifadə edin.",
+ "kiro": "Kiro-nu inteqrasiya edərkən və model yönləndirməsini OmniRoute-dan mərkəzləşdirilmiş qaydada idarə etmək istədikdə istifadə edin.",
+ "windsurf": "Codeium/Windsurf modelləri OmniRoute vasitəsilə yönləndirilən, süni intellekt yönümlü IDE istədikdə istifadə edin.",
+ "antigravity": "Antigravity/Kiro trafiki MITM vasitəsilə ələ keçirilməli və OmniRoute-a yönləndirilməli olduqda istifadə edin.",
+ "copilot": "OmniRoute açarlarını və yönləndirmə qaydalarını tətbiq etməklə yanaşı, Copilot söhbəti üslubunda istifadəçi təcrübəsi istədikdə istifadə edin.",
+ "amp": "Amp qısaldılmış iş axınlarından istifadə etmək istədikdə, lakin OmniRoute alias və yönləndirmə qaydalarının tətbiqinə də ehtiyacınız olduqda istifadə edin.",
+ "hermes": "Sürətli tapşırıqlar üçün yüngül, terminala uyğun süni intellekt köməkçisinə ehtiyacınız olduqda istifadə edin.",
"hermes-agent": "OmniRoute vasitəsilə yönləndirilən standart, nümayəndəlik, görmə və köməkçi modelləri olan Hermes Agent (Nousresearch tərəfindən) lazım olduqda istifadə edin.",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "Fərdi alət tətbiqləri və ya ümumi OpenAI-uyğun konfiqurasiyalar üçün istifadə edin."
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "MITM ilə Google Antigravity IDE",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "Fərdi provayder dəstəyi olan xAI Grok Build TUI kodlaşdırma agenti",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Factory Droid süni intellekt köməkçisi",
+ "openclaw": "Open Claw süni intellekt köməkçisi",
+ "cline": "Cline süni intellekt kodlaşdırma köməkçisi CLI",
+ "kilo": "Kilo Code AI köməkçisi CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Continue AI köməkçisi",
+ "opencode": "OpenCode AI kodlaşdırma agenti (Terminal)",
+ "kiro": "Amazon Kiro — AI ilə işləyən IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp kodlaşdırma köməkçisi CLI",
+ "hermes": "Hermes AI terminal köməkçisi",
"hermes-agent": "Hermes Agent (Nousresearch tərəfindən) - Çoxmodelli dəstəyə malik qabaqcıl terminal AI (nümayəndəlik, görmə, sıxılma və s.)",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "Ümumi OpenAI-uyğun CLI və ya SDK konfiqurasiya generatoru",
"aider": "OpenAI ilə uyğun baza URL-i olan Aider AI cüt proqramlaşdırma CLI-si",
"forge": "Fərdi provayderi olan ForgeCode kodlaşdırma agenti CLI-si",
"cursor-cli": "Headless agent rejimində Cursor Agent CLI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter avtonom kodlaşdırma agenti CLI-si",
"omp": "Oh My Pi terminal kodlaşdırma agenti",
"letta": "Davamlı yaddaşa və alət istifadəsinə malik Letta CLI agenti",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI-uyğun provayder dəstəyi ilə özünü təkmilləşdirən RLM kodlaşdırma sistemi",
"warp": "Fərdi provayder dəstəyinə malik Warp AI terminalı",
"agent-deck": "Agent Deck çoxagentli orkestratoru",
"5dive": "5dive — öz serverinizdə işləyən kodlaşdırma agentləri parkı; bir auth profili hamısını OmniRoute-a yönəldir"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "Bu funksiyadan istifadə etmək üçün Cursor Pro hesabı tələb olunur.",
+ "1": "Cursor sorğuları öz serveri vasitəsilə yönləndirir, buna görə də lokal son nöqtə dəstəklənmir. Lütfən, Parametrlərdə Bulud son nöqtəsini aktivləşdirin."
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "Parametrləri açın",
+ "desc": "Parametrlər -> Modellər bölməsinə keçin"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI API-ni aktivləşdirin",
+ "desc": "\"OpenAI API key\" seçimini aktivləşdirin"
},
"3": {
- "title": "Base URL"
+ "title": "Baza URL"
},
"4": {
- "title": "API Key"
+ "title": "API açarı"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "Fərdi model əlavə edin",
+ "desc": "\"View All Model\" -> \"Add Custom Model\" üzərinə klikləyin"
},
"6": {
- "title": "Select Model"
+ "title": "Model seçin"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "Konfiqurasiyanı açın",
+ "desc": "Continue konfiqurasiya faylını açın"
},
"2": {
- "title": "API Key"
+ "title": "API açarı"
},
"3": {
- "title": "Select Model"
+ "title": "Model seçin"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "Model konfiqurasiyası əlavə edin",
+ "desc": "Aşağıdakı konfiqurasiyanı models massivinizə əlavə edin:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue JSON konfiqurasiya faylından istifadə edir."
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCode-u quraşdırın",
+ "desc": "npm vasitəsilə quraşdırın: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API açarı"
},
"3": {
- "title": "Set Base URL",
+ "title": "Baza URL-ni təyin edin",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Model seçin"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Düşünmə variantından istifadə edin",
+ "desc": "Düşünmə modelləri üçün --variant high/low/max ilə işə salın (nümunə əmr aşağıdadır)."
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode API açarı konfiqurasiyası tələb edir.",
+ "1": "Baza URL-ni OmniRoute son nöqtənizə təyin edin."
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro parametrlərini açın",
+ "desc": "Parametrlər → AI provayderi bölməsinə keçin"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Baza URL",
+ "desc": "OmniRoute son nöqtə URL-nizi yapışdırın"
},
"3": {
- "title": "API Key"
+ "title": "API açarı"
},
"4": {
- "title": "Select Model"
+ "title": "Model seçin"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro Amazon hesabı tələb edir."
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI parametrlərini açın",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Fərdi provayder əlavə edin",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Baza URL-i",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API açarı",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Model seçin",
+ "desc": "Açılan siyahıdan model seçin"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
- "customCliTab": "Custom CLI",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "autoConfiguredTab": "Avtomatik konfiqurasiya edilib",
+ "toolCategoriesDesc": "AI kodlaşdırma köməkçilərini OmniRoute üzərindən yönləndirmək üçün konfiqurasiya edin",
+ "allToolsTab": "Bütün alətlər",
+ "guidedClientsTab": "Addım-addım qurulan klientlər",
+ "mitmClientsTab": "MITM klientləri",
+ "customCliTab": "Fərdi CLI",
+ "toolCategories": "Alət kateqoriyaları",
+ "visibleToolsCount": "{count} alət mövcuddur",
"customCliBuilderTitle": "OpenAI-a uyğun CLI qurucusu",
"customCliBuilderDescription": "OpenAI-a uyğun əsas URL, API açarı və model ID-ni qəbul edən istənilən CLI və ya SDK üçün env varsları və JSON fraqmentləri yaradın.",
"customCliNoModels": "Model seçicilərini doldurmaq üçün ən azı bir provayderi birləşdirin.",
@@ -3128,7 +3132,7 @@
"hermesRoleTtsAudioTagsDesc": "TTS audio etiketi yaradılması",
"hermesRoleTriageSpecifier": "Triage Təyin Edici",
"hermesRoleTriageSpecifierDesc": "Məsələ və PR triage spesifikasiyası",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Kanban dekompozitoru",
"hermesRoleKanbanDecomposerDesc": "Kanban tapşırıq parçalanması",
"hermesRoleProfileDescriber": "Profil Təsvirçisi",
"hermesRoleProfileDescriberDesc": "İstifadəçi profili təsviri",
@@ -3136,7 +3140,7 @@
"hermesRoleGoalJudgeDesc": "Məqsədin yerinə yetirilməsinin qiymətləndirilməsi",
"hermesRoleCurator": "Kürator",
"hermesRoleCuratorDesc": "Bacarıq və yaddaşın tənzimlənməsi",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Monitorinq",
"hermesRoleMonitorDesc": "Arxa plan monitorinqi",
"hermesRoleBackgroundReview": "Arxa Planın İcmalı",
"hermesRoleBackgroundReviewDesc": "Arxa plan kodu icmalı",
@@ -3199,75 +3203,75 @@
"cliproxyapiVersion": "Versiya"
},
"combos": {
- "title": "Combos",
- "description": "Create model combos with weighted routing and fallback support",
+ "title": "Kombinasiyalar",
+ "description": "Çəkili yönləndirmə və ehtiyat keçid dəstəyi ilə model kombinasiyaları yaradın",
"autoCatalogTitle": "Avtomatik marşrutlaşdırma kataloqu",
"autoCatalogTemplateCount": "{count} şablonları",
"autoCatalogDescription": "Daxili avtomatik/* kombinasiyaları əlaqəli provayderlərdən dinamik şəkildə həll edilir. Model sahəsi kimi bu identifikatorlardan hər hansı birini istifadə edin – quraşdırmaya ehtiyac yoxdur.",
"autoCatalogExpand": "Avtomatik marşrutlaşdırma kataloqunu genişləndirin",
"autoCatalogCollapse": "Avtomatik marşrutlaşdırma kataloqunu yığcamlaşdırın",
- "createCombo": "Create Combo",
- "editCombo": "Edit Combo",
- "deleteCombo": "Delete Combo",
- "noModels": "No models",
- "noModelsYet": "No models added yet",
- "addModel": "Add Model",
- "addModelToCombo": "Add Model to Combo",
- "routingStrategy": "Routing Strategy",
- "maxRetries": "Max Retries",
- "timeout": "Timeout (ms)",
- "healthcheck": "Healthcheck",
- "priority": "Priority",
- "fallback": "Fallback",
+ "createCombo": "Kombinasiya yaradın",
+ "editCombo": "Kombinasiyanı redaktə edin",
+ "deleteCombo": "Kombinasiyanı silin",
+ "noModels": "Model yoxdur",
+ "noModelsYet": "Hələ heç bir model əlavə edilməyib",
+ "addModel": "Model əlavə edin",
+ "addModelToCombo": "Kombinasiyaya model əlavə edin",
+ "routingStrategy": "Yönləndirmə strategiyası",
+ "maxRetries": "Maksimum təkrar cəhd sayı",
+ "timeout": "Taym-aut (ms)",
+ "healthcheck": "Sağlamlıq yoxlaması",
+ "priority": "Prioritet",
+ "fallback": "Ehtiyat keçid",
"roundRobin": "Round Robin",
- "random": "Random",
- "leastLatency": "Least Latency",
- "comboName": "Combo Name",
- "comboNamePlaceholder": "my-combo",
+ "random": "Təsadüfi",
+ "leastLatency": "Ən aşağı gecikmə",
+ "comboName": "Kombinasiyanın adı",
+ "comboNamePlaceholder": "mənim-kombinasiyam",
"comboDescription": "Təsvir",
"comboDescriptionPlaceholder": "Bu kombinasiyanı təsvir edən istəyə bağlı qeyd",
- "deleteConfirm": "Delete this combo?",
- "noCombosYet": "No combos yet",
- "comboCreated": "Combo created successfully",
- "comboUpdated": "Combo updated successfully",
- "comboDeleted": "Combo deleted",
- "failedCreate": "Failed to create combo",
- "failedUpdate": "Failed to update combo",
- "errorCreating": "Error creating combo",
- "errorUpdating": "Error updating combo",
- "errorDeleting": "Error deleting combo",
- "testFailed": "Test request failed",
- "failedToggle": "Failed to toggle combo",
- "testResults": "Test Results — {name}",
- "resolvedBy": "Resolved by:",
- "more": "+{count} more",
- "reqs": "reqs",
- "success": "success",
- "proxyConfigured": "Proxy configured",
- "copyComboName": "Copy combo name",
- "enableCombo": "Enable combo",
- "disableCombo": "Disable combo",
- "testCombo": "Test combo",
- "duplicate": "Duplicate",
- "proxyConfig": "Proxy configuration",
- "nameRequired": "Name is required",
- "nameInvalid": "Only letters, numbers, -, _, / and . allowed",
- "nameHint": "Letters, numbers, -, _, / and . allowed",
- "priorityDesc": "Sequential fallback: tries model 1 first, then 2, etc.",
- "weightedDesc": "Distributes traffic by weight percentage with fallback",
- "roundRobinDesc": "Circular distribution: each request goes to the next model in rotation",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
- "randomDesc": "Uniform random selection, then fallback to remaining models",
- "leastUsedDesc": "Picks the model with fewest requests, balancing load over time",
- "costOptimizedDesc": "Routes to the cheapest model first based on pricing",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
- "resetAware": "Reset-Aware RR",
- "resetAwareDesc": "Balances remaining quota against 5h and weekly resets, then round-robins similar scores",
- "quotaWeighted": "Quota-Weighted",
+ "deleteConfirm": "Bu kombinasiya silinsin?",
+ "noCombosYet": "Hələ heç bir kombinasiya yoxdur",
+ "comboCreated": "Kombinasiya uğurla yaradıldı",
+ "comboUpdated": "Kombinasiya uğurla yeniləndi",
+ "comboDeleted": "Kombinasiya silindi",
+ "failedCreate": "Kombinasiya yaradıla bilmədi",
+ "failedUpdate": "Kombinasiya yenilənə bilmədi",
+ "errorCreating": "Kombinasiya yaradılarkən xəta baş verdi",
+ "errorUpdating": "Kombinasiya yenilənərkən xəta baş verdi",
+ "errorDeleting": "Kombinasiya silinərkən xəta baş verdi",
+ "testFailed": "Test sorğusu uğursuz oldu",
+ "failedToggle": "Kombinasiyanın vəziyyəti dəyişdirilə bilmədi",
+ "testResults": "Test nəticələri — {name}",
+ "resolvedBy": "Həll edən:",
+ "more": "+{count} daha",
+ "reqs": "sorğu",
+ "success": "uğurlu",
+ "proxyConfigured": "Proksi konfiqurasiya edilib",
+ "copyComboName": "Kombinasiya adını kopyala",
+ "enableCombo": "Kombinasiyanı aktivləşdir",
+ "disableCombo": "Kombinasiyanı deaktivləşdir",
+ "testCombo": "Kombinasiyanı sına",
+ "duplicate": "Dublikatını yarat",
+ "proxyConfig": "Proksi konfiqurasiyası",
+ "nameRequired": "Ad tələb olunur",
+ "nameInvalid": "Yalnız hərflər, rəqəmlər, -, _, / və . simvollarına icazə verilir",
+ "nameHint": "Hərflər, rəqəmlər, -, _, / və . simvollarına icazə verilir",
+ "priorityDesc": "Ardıcıl ehtiyat keçidi: əvvəlcə 1-ci modeli, sonra 2-cini və s. sınayır",
+ "weightedDesc": "Trafiki çəki faizinə görə paylayır və ehtiyat keçidini təmin edir",
+ "roundRobinDesc": "Dairəvi paylama: hər sorğu növbə ilə növbəti modelə yönləndirilir",
+ "contextRelay": "Kontekst ötürülməsi",
+ "contextRelayDesc": "Hesablar növbələndikdə ötürmə xülasələri vasitəsilə sessiyanın davamlılığını qoruyur",
+ "randomDesc": "Bərabər ehtimallı təsadüfi seçim edir, sonra qalan modellərə ehtiyat keçidi edir",
+ "leastUsedDesc": "Ən az sorğu almış modeli seçərək yükü zamanla balanslaşdırır",
+ "costOptimizedDesc": "Qiymətlərə əsasən əvvəlcə ən ucuz modelə yönləndirir",
+ "cacheOptimizedDesc": "Hər təkrar istifadə edilə bilən sorğu prefiksini ardıcıl olaraq eyni provayder hesabına yönləndirir",
+ "resetAware": "Sıfırlanmanı nəzərə alan dairəvi paylama",
+ "resetAwareDesc": "Qalan kvotanı 5 saatlıq və həftəlik sıfırlanmalara əsasən balanslaşdırır, sonra oxşar xalları dairəvi qaydada növbələndirir",
+ "quotaWeighted": "Kvotaya görə çəkili",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "Tam təsadüfi",
+ "strictRandomDesc": "Qarışdırılmış dəst — yenidən qarışdırmazdan əvvəl hər modeldən bir dəfə istifadə edir",
"fusion": "Birləşmə",
"fusionDesc": "Sorğunu paralel olaraq hər bir panel modelinə göndərir, sonra isə hakim model bir yekun cavab sintez edir",
"fusionJudgeModel": "Hakim model",
@@ -3278,27 +3282,27 @@
"fusionStragglerGraceMsHelp": "Kvorum əldə edildikdən sonra yavaş panel modellərinin nə qədər gözləniləcəyi (standart 8000).",
"fusionPanelHardTimeoutMs": "Panelin qəti vaxt aşımı (ms)",
"fusionPanelHardTimeoutMsHelp": "Bir donmuş modelin bütün paneli ləngitməməsi üçün mütləq limit (standart 90000).",
- "models": "Models",
- "autoBalance": "Auto-balance",
- "advancedSettings": "Advanced Settings",
- "retryDelay": "Retry Delay (ms)",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
- "advancedHint": "Leave empty to use global defaults. These override per-provider settings.",
+ "models": "Modellər",
+ "autoBalance": "Avtomatik balanslaşdırma",
+ "advancedSettings": "Qabaqcıl parametrlər",
+ "retryDelay": "Təkrar cəhd gecikməsi (ms)",
+ "concurrencyPerModel": "Model üzrə paralellik",
+ "queueTimeout": "Növbənin gözləmə müddəti (ms)",
+ "contextRelayHandoffThreshold": "Ötürmə həddi",
+ "contextRelayHandoffThresholdHelp": "Kvota istifadəsi bu həddə çatdıqda, aktiv hesabın limiti tükənməzdən əvvəl OmniRoute strukturlaşdırılmış ötürmə xülasəsi yaradır.",
+ "contextRelayMaxMessages": "Xülasə üçün maksimum mesaj sayı",
+ "contextRelayMaxMessagesHelp": "Son tarixçənin nə qədər hissəsinin ötürmə xülasəsində yığcamlaşdırılacağını məhdudlaşdırır.",
+ "contextRelaySummaryModel": "Xülasə modeli",
+ "contextRelaySummaryModelHelp": "Yalnız ötürmə xülasəsini yaratmaq üçün istifadə olunan, istəyə bağlı alternativ model. Aktiv kombinasiya modelindən təkrar istifadə etmək üçün boş saxlayın.",
+ "contextRelayProviderNote": "Context Relay hazırda Codex hesablarının rotasiyası üçün ötürmələr yaradır. Ən yaxşı davamlılıq üçün onu eyni provayderə aid bir neçə hesabla birlikdə istifadə edin.",
+ "advancedHint": "Qlobal standart parametrlərdən istifadə etmək üçün boş saxlayın. Bunlar hər provayder üzrə parametrləri əvəz edir.",
"failoverBeforeRetry": "Yenidən cəhd etməzdən əvvəl yüklənmə",
"maxSetRetries": "Maksimum Set Yenidən Sınaqlar",
"setRetryDelayMs": "Yenidən Sınaq Gecikməsini təyin edin (ms)",
- "moveUp": "Move up",
- "moveDown": "Move down",
- "removeModel": "Remove",
- "saving": "Saving...",
+ "moveUp": "Yuxarı daşı",
+ "moveDown": "Aşağı daşı",
+ "removeModel": "Sil",
+ "saving": "Yadda saxlanılır...",
"liveNoProviders": "Hələ heç bir provayder müşahidə edilməyib.",
"liveFleetDataHint": "Donanma məlumatları canlı kombo hadisələri vasitəsilə daxil olur.",
"liveActiveCount": "Aktiv ({count})",
@@ -3338,148 +3342,148 @@
"playgroundEmptyHint": "Marşrutlaşdırma yolunu görmək üçün bir kombo seçin və Marşrutu Simulyasiya Et düyməsinə klikləyin.",
"playgroundNoCombosYet": "Hələ heç bir kombo konfiqurasiya edilməyib.",
"playgroundCreateFirst": "Əvvəlcə birini yaradın",
- "weighted": "Weighted",
- "leastUsed": "Least-Used",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "weighted": "Çəkili",
+ "leastUsed": "Ən az istifadə olunan",
+ "costOpt": "Xərc optimallaşdırması",
+ "strategyGuideTitle": "Bu strategiyadan necə istifadə etməli",
+ "strategyGuideWhen": "Nə vaxt istifadə etməli",
+ "strategyGuideAvoid": "Bu hallarda istifadə etməyin",
+ "strategyGuideExample": "Nümunə",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "Bir üstünlük verdiyiniz modeliniz var və yalnız xəta baş verdikdə ehtiyat modelə keçmək istəyirsiniz.",
+ "avoid": "Sorğuları modellər arasında paylamaq lazımdır.",
+ "example": "Əsas kodlaşdırma modeli və fasilələr üçün daha ucuz ehtiyat model."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "Trafikin modellər arasında nəzarətli şəkildə bölünməsi lazımdır.",
+ "avoid": "Zamanla dəqiq çəkiləri qoruyub saxlaya bilmirsiniz.",
+ "example": "80% stabil model + 20% sınaq modelinin mərhələli tətbiqi."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "Proqnozlaşdırıla bilən və bərabər paylanma istəyirsiniz.",
+ "avoid": "Modellər gecikmə və ya xərc baxımından həddindən artıq fərqlənir.",
+ "example": "Yükü paylamaq üçün bir neçə hesabda eyni model."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "Minimal quraşdırma ilə sadə paylanma istəyirsiniz.",
+ "avoid": "Trafik üzrə ciddi təminatlar lazımdır.",
+ "example": "Ekvivalent modellərlə sürətli prototipləşdirmə."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "Cari tələbə əsaslanan adaptiv balanslaşdırma istəyirsiniz.",
+ "avoid": "İstifadəyə əsaslanan balanslaşdırmadan faydalanmaq üçün trafik çox azdır.",
+ "example": "Bir modelin tez-tez həddindən artıq yükləndiyi qarışıq iş yükləri."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "Xərclərin azaldılması sizin əsas prioritetinizdir.",
+ "avoid": "Qiymət məlumatları yoxdur və ya köhnəlib.",
+ "example": "Daha aşağı xərcə üstünlük verilən fon və ya paket tapşırıqları."
},
"reset-aware": {
- "when": "You route across multiple accounts with quota telemetry and different reset windows.",
- "avoid": "Quota telemetry is unavailable for most accounts.",
- "example": "Prefer a 60% weekly account resetting tomorrow over an 80% account resetting later."
+ "when": "Kvota telemetriyası və fərqli sıfırlanma intervalları olan bir neçə hesab arasında marşrutlaşdırma aparırsınız.",
+ "avoid": "Əksər hesablar üçün kvota telemetriyası əlçatan deyil.",
+ "example": "Daha gec sıfırlanan 80%-lik hesab əvəzinə sabah sıfırlanan 60%-lik həftəlik hesaba üstünlük verin."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Tamamilə bərabər paylanma istədikdə istifadə edin — təkrarlanmadan əvvəl hər model bir dəfə istifadə olunur.",
+ "avoid": "Modellərin keyfiyyəti və ya gecikməsi fərqli olduqda və sıra əhəmiyyət daşıdıqda istifadə etməyin.",
+ "example": "Nümunə: İstifadəni bərabər paylamaq üçün eyni modelin bir neçə hesabı."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Power-of-Two-Choices alqoritmindən istifadə edərək aşağı gecikməli seçim istədikdə istifadə edin.",
+ "avoid": "2 və ya daha az modeli olan kiçik kombinasiyalar üçün istifadə etməyin — round-robin ilə müqayisədə heç bir üstünlüyü yoxdur.",
+ "example": "Nümunə: 4 və ya daha çox ekvivalent model son nöqtəsi arasında yüksək ötürmə qabiliyyətli inferensiya."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Uzun sessiyalar işlək konteksti itirmədən hesab rotasiyasından keçməli olduqda istifadə edin.",
+ "avoid": "Hesab dəyişdirmə nadir olduqda və ya əlavə xülasələşdirmə sorğuları istəmədikdə istifadə etməyin.",
+ "example": "Nümunə: Kvota tükənməsinə yaxın bir neçə hesab arasında rotasiya edilən Codex sessiyaları."
},
"fill-first": {
- "when": "Use when you want to fully exhaust one provider's quota before moving to the next.",
- "avoid": "Avoid when you need request-level load balancing across providers.",
- "example": "Example: Use all $200 Deepgram credits before falling back to Groq."
+ "when": "Növbəti provayderə keçməzdən əvvəl bir provayderin kvotasını tamamilə tükətmək istədikdə istifadə edin.",
+ "avoid": "Provayderlər arasında sorğu səviyyəsində yük balanslaşdırmasına ehtiyacınız olduqda istifadə etməyin.",
+ "example": "Nümunə: Groq-a keçməzdən əvvəl bütün $200 Deepgram kreditindən istifadə edin."
},
"auto": {
- "when": "Use when you need multi-factor scoring routing based on cost, latency, and quality.",
- "avoid": "Avoid when you need strict priority ordering or historical persistence.",
- "example": "Example: Balance requests across models with different strengths."
+ "when": "Xərc, gecikmə və keyfiyyət əsasında çoxamilli qiymətləndirmə ilə marşrutlaşdırmaya ehtiyacınız olduqda istifadə edin.",
+ "avoid": "Sərt prioritet sıralamasına və ya tarixi davamlılığa ehtiyacınız olduqda istifadə etməyin.",
+ "example": "Nümunə: Sorğuları fərqli güclü tərəflərə malik modellər arasında balanslaşdırın."
},
"lkgp": {
- "when": "Use when you want to route based on historical success rates and performance.",
- "avoid": "Avoid when historical data is limited or unreliable.",
- "example": "Example: Route to models with a good track record on specific tasks."
+ "when": "Tarixi uğur göstəriciləri və performans əsasında marşrutlaşdırmaq istədikdə istifadə edin.",
+ "avoid": "Tarixi məlumatlar məhdud və ya etibarsız olduqda istifadə etməyin.",
+ "example": "Nümunə: Sorğuları konkret tapşırıqlarda yaxşı nəticə tarixçəsinə malik modellərə yönləndirin."
},
"context-optimized": {
- "when": "Use when you need to optimize context window usage across models.",
- "avoid": "Avoid when models have similar context lengths or tasks are simple.",
- "example": "Example: Distribute long conversations across models with larger context windows."
+ "when": "Modellər arasında kontekst pəncərəsindən istifadəni optimallaşdırmağa ehtiyacınız olduqda istifadə edin.",
+ "avoid": "Modellərin kontekst uzunluqları oxşar olduqda və ya tapşırıqlar sadə olduqda istifadə etməyin.",
+ "example": "Nümunə: Uzun söhbətləri daha böyük kontekst pəncərələrinə malik modellər arasında paylayın."
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "Sorğu uğursuz hesab edilməzdən əvvəl neçə təkrar cəhdin ediləcəyi.",
+ "retryDelay": "Təkrar cəhdlər arasındakı ilkin gözləmə müddəti. Daha yüksək dəyərlər ani yükü azaldır.",
+ "timeout": "Ləğv edilməzdən əvvəl sorğunun maksimum müddəti.",
+ "healthcheck": "Nasaz modelləri/provayderləri marşrutlaşdırma qərarlarından kənarlaşdırır.",
+ "concurrencyPerModel": "Round-robin rejimində hər model üçün icazə verilən maksimum eyni vaxtlı sorğu sayı.",
+ "queueTimeout": "Vaxt limiti bitməzdən əvvəl sorğunun növbədə nə qədər gözləyə biləcəyi.",
"failoverBeforeRetry": "Aktivləşdirildikdə, istənilən yuxarı xəta bütün təkrar cəhdləri və ehtiyat URL-ləri atlayaraq, dərhal növbəti kombinasiya hədəfinə keçidi tetikler.",
"maxSetRetries": "Hər hədəf uğursuz olduqda tam hədəf setini yenidən sınamaq üçün neçə dəfə. 0 = müəyyən səviyyəli təkrar cəhd yoxdur.",
"setRetryDelayMs": "Müəyyən səviyyəli təkrar cəhdlər arasında gecikmə, keçici məsələlərin həlli üçün vaxt verir.",
"disableSessionStickiness": "Bütün söhbəti ilk mesajın heşinə görə bir bağlantıya bağlamaq əvəzinə, hər sorğuda fərqli bir bağlantıya keçin. Qlobal standartı üstələyir. Çoxdönüşlü söhbətlər üçün prompt-cache hitlərini qorumaq üçün İrsi olaraq saxlayın."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "Sürətli şablonlar",
+ "templatesDescription": "Başlanğıc profilini tətbiq edin, sonra modelləri və konfiqurasiyanı tənzimləyin.",
+ "templateApply": "Şablonu tətbiq et",
+ "templateHighAvailability": "Yüksək əlçatanlıq",
+ "templateHighAvailabilityDesc": "Sağlamlıq yoxlamaları və təhlükəsiz təkrar cəhdlərlə prioritet marşrutlaşdırma.",
+ "templateCostSaver": "Xərcə qənaət",
+ "templateCostSaverDesc": "Büdcənin ön planda olduğu iş yükləri üçün xərc baxımından optimallaşdırılmış marşrutlaşdırma.",
+ "templateBalanced": "Balanslaşdırılmış yük",
+ "templateBalancedDesc": "Tələbi zaman üzrə bölüşdürmək üçün ən az istifadə edilən marşrutlaşdırma.",
+ "usageGuideHide": "Gizlət",
+ "usageGuideDontShowAgain": "Bir daha göstərmə",
+ "usageGuideShow": "Təlimatı göstər",
+ "quickTestTitle": "Kombinasiya yoxlanmağa hazırdır",
+ "quickTestDescription": "Ehtiyat keçidinin və gecikmənin davranışını təsdiqləmək üçün indi sınaq başladın.",
+ "testNow": "İndi sınaqdan keçir",
+ "pricingCoverage": "Qiymət əhatəsi",
+ "pricingCoverageHint": "Xərc baxımından optimallaşdırılmış strategiya bütün kombinasiya modellərinin qiyməti olduqda daha yaxşı işləyir.",
+ "pricingAvailable": "Qiymət mövcuddur",
+ "pricingMissing": "Qiymət yoxdur",
+ "pricingAvailableShort": "qiymətli",
+ "pricingMissingShort": "qiymətsiz",
"fallbackOnlyOnQuotaExhaustion": "Yalnız kvota tükənməsi zamanı irəliləyin",
"fallbackOnlyOnQuotaExhaustionShort": "yalnız kvota ehtiyatı",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
- "readinessCheckPricing": "Pricing data is available",
- "readinessCheckPricingOptional": "Pricing rule not required",
- "saveBlockedTitle": "Save is blocked until the following items are fixed:",
- "saveBlockName": "Define a combo name.",
- "saveBlockModels": "Add at least one model.",
- "saveBlockWeighted": "Set weights to 100% (current: {total}%).",
- "saveBlockPricing": "Add pricing for at least one model or choose a different strategy.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "warningRoundRobinSingleModel": "Dairəvi marşrutlaşdırma ən azı 2 model olduqda daha faydalıdır.",
+ "warningCostOptimizedPartialPricing": "{total} modeldən yalnız {priced} modelin qiyməti var. Marşrutlaşdırma xərcləri qismən nəzərə ala bilər.",
+ "warningCostOptimizedNoPricing": "Bu kombinasiya üçün qiymət məlumatı tapılmadı. Xərc baxımından optimallaşdırılmış strategiya gözlənilməz marşrutlaşdıra bilər.",
+ "filterAll": "Hamısı",
+ "filterIntelligent": "Ağıllı",
+ "filterDeterministic": "Deterministik",
+ "filterEmptyTitle": "Bu strategiya filtrinə uyğun kombinasiya yoxdur.",
+ "filterEmptyIntelligentDescription": "Ağıllı marşrutlaşdırma idarə panelini doldurmaq üçün avtomatik və ya LKGP kombinasiyası yaradın.",
+ "filterEmptyDeterministicDescription": "Hazırda yalnız avtomatik və LKGP kombinasiyaları mövcuddur. Hamısı seçiminə qayıdın və ya deterministik kombinasiya yaradın.",
+ "readinessTitle": "Yadda saxlamağa hazırsınız?",
+ "readinessDescription": "Bu kombinasiyanı yaratmazdan və ya yeniləməzdən əvvəl yoxlama siyahısını nəzərdən keçirin.",
+ "readinessCheckName": "Kombinasiya adı etibarlıdır",
+ "readinessCheckModels": "Ən azı bir model seçilib",
+ "readinessCheckWeights": "Çəkilərin cəmi 100%-dir",
+ "readinessCheckWeightsOptional": "Çəki qaydası tələb olunmur",
+ "readinessCheckPricing": "Qiymət məlumatı mövcuddur",
+ "readinessCheckPricingOptional": "Qiymət qaydası tələb olunmur",
+ "saveBlockedTitle": "Aşağıdakı problemlər aradan qaldırılanadək yadda saxlamaq mümkün deyil:",
+ "saveBlockName": "Kombinasiya adı təyin edin.",
+ "saveBlockModels": "Ən azı bir model əlavə edin.",
+ "saveBlockWeighted": "Çəkiləri 100%-ə təyin edin (hazırda: {total}%).",
+ "saveBlockPricing": "Ən azı bir model üçün qiymət əlavə edin və ya başqa strategiya seçin.",
+ "recommendationsLabel": "Tövsiyə olunan quraşdırma",
+ "applyRecommendations": "Tövsiyələri tətbiq et",
+ "recommendationsUpdated": "Tövsiyələr {strategy} üçün yeniləndi.",
+ "recommendationsApplied": "Tövsiyələr bu kombinasiyaya tətbiq edildi.",
+ "intelligentPanelTitle": "Ağıllı Marşrutlaşdırma İdarə Paneli",
+ "intelligentPanelDesc": "Bu avtomatik marşrutlaşdırma kombinasiyası üçün real vaxt rejimində qiymətləndirmə və sağlamlıq vəziyyəti.",
"configOnlyStatus": "Konfiqurasiya görünüşü",
"configOnlyHint": "Bu panel yalnız marşrutlaşdırma daxiletmələrini göstərir. Canlı breaker vəziyyəti Sağlamlıq səhifəsində mövcuddur.",
"routingInputs": "Marşrutlaşdırma daxiletmələri",
@@ -3501,247 +3505,247 @@
"manualModelUnknownProvider": "Naməlum provayder prefiksi.",
"builderDynamicAccountShort": "Dinamik hesab",
"builderNeedValidName": "Davam etməzdən əvvəl etibarlı kombo adı təyin edin.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Vəziyyətə İcmal",
+ "normalOperation": "Normal İş Rejimi",
+ "allProvidersHealthy": "Provayderlər marşrutlaşdırma şərtlərinin qənaətbəxş olduğunu bildirir.",
+ "incidentMode": "İnsident Rejimi",
+ "highCircuitBreakerRate": "Qoruyucu açarın yüksək işə düşmə tezliyi aşkarlandı.",
+ "activeModePack": "Aktiv Rejim Paketi",
+ "modePackUpdated": "Rejim paketi {pack} olaraq yeniləndi.",
+ "modePackHint": "Kombinasiyanı yenidən qurmadan marşrutlaşdırma mühərrikinin üstünlüklərini dəyişmək üçün əvvəlcədən təyin edilmiş parametrləri dəyişin.",
+ "providerScores": "Provayder Xalları",
+ "allProvidersEvaluated": "Namizəd hovuzu konfiqurasiya edilməyib. Bütün aktiv provayderlər icra zamanı qiymətləndirilir.",
+ "excludedProviders": "İstisna Edilmiş Provayderlər",
+ "excludedProvidersHint": "Qoruyucu açarı OPEN vəziyyətində olan provayderlər marşrutlaşdırmadan müvəqqəti olaraq istisna edilir.",
+ "noExcludedProviders": "Hazırda heç bir provayder istisna edilməyib.",
+ "cooldownMinutes": "Gözləmə müddəti: {minutes} dəq.",
+ "builderIntelligentTitle": "Ağıllı Marşrutlaşdırma Konfiqurasiyası",
+ "builderIntelligentDesc": "Bu avtomatik marşrutlaşdırma kombinasiyası üçün çoxamilli qiymətləndirmə mühərrikini konfiqurasiya edin.",
+ "candidatePoolLabel": "Namizəd Hovuzu",
+ "candidatePoolHint": "Bu mühərrikin hansı provayderləri qiymətləndirməli olduğunu seçin. Bütün aktiv provayderlərdən istifadə etmək üçün boş saxlayın.",
+ "candidatePoolEmpty": "Hələlik aktiv provayder yoxdur.",
+ "candidatePoolAllProviders": "Bütün provayderlər",
+ "modePackLabel": "Rejim Paketi",
+ "routerStrategyLabel": "Marşrutlaşdırıcı Strategiyası",
+ "strategyRules": "Qaydalar (6 Amilli Qiymətləndirmə)",
+ "explorationRateLabel": "Araşdırma Dərəcəsi",
+ "explorationRateHint": "Sorğuların {percent}%-i optimal olmayan provayderləri sınaqdan keçirə bilər.",
+ "budgetCapLabel": "Büdcə Limiti (USD / sorğu)",
+ "budgetCapPlaceholder": "Limit yoxdur",
+ "advancedWeightsTitle": "Qabaqcıl: Qiymətləndirmə Çəkiləri",
"nestedComboFlatten": "İç-içə komboları düzləşdirin",
"nestedComboExecute": "İç-içə komboları hədəf kimi icra edin",
"effectiveRoutingShare": "Effektiv marşrutlaşdırma payı (çəki ÷ cəmi)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Kvota",
+ "weightHealth": "Sağlamlıq",
+ "weightCostInv": "Xərc",
+ "weightLatencyInv": "Gecikmə",
+ "weightTaskFit": "Tapşırığa Uyğunluq",
+ "weightStability": "Sabitlik",
+ "weightTierPriority": "Səviyyə",
+ "weightCacheAffinity": "Keşə Düşmə Meyli",
"weightSessionAvailability": "Sessiya Mövcudluğu",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Ağıllı Marşrutlaşdırma Konfiqurasiyası",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "Nasazlığa davamlı baza səviyyəsi",
+ "description": "Bir əsas modeldən istifadə edin və ehtiyat zəncirini qısa və etibarlı saxlayın.",
+ "tip1": "Ən etibarlı modelinizi birinci yerləşdirin.",
+ "tip2": "Oxşar keyfiyyətə malik 1-2 ehtiyat model saxlayın.",
+ "tip3": "Provayderin müvəqqəti nasazlıqlarını aradan qaldırmaq üçün təhlükəsiz təkrar cəhdlərdən istifadə edin."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "Nəzarətli trafik bölgüsü",
+ "description": "Kanareyka buraxılışları və modellər arasında mərhələli keçid üçün əladır.",
+ "tip1": "90/10 kimi ehtiyatlı bölgü ilə başlayın.",
+ "tip2": "Cəmi 100% səviyyəsində saxlayın və dəyişikliklərdən sonra avtomatik balanslaşdırın.",
+ "tip3": "Kanareykanın payını artırmazdan əvvəl uğur göstəricisini və gecikməni izləyin."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "Proqnozlaşdırıla bilən yük bölgüsü",
+ "description": "Modellər ekvivalent olduqda və yükü rəvan bölüşdürmək lazım gəldikdə ən yaxşı seçimdir.",
+ "tip1": "Ən azı 2 modeldən istifadə edin.",
+ "tip2": "Ani yük artımının yaratdığı həddən artıq yüklənmənin qarşısını almaq üçün paralellik limitləri təyin edin.",
+ "tip3": "Sistem tam yükləndikdə tez xəta vermək üçün növbə gözləmə müddətindən istifadə edin."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "Az quraşdırma ilə sürətli bölgü",
+ "description": "Ciddi zəmanətlər olmadan sadə bölgüyə ehtiyacınız olduqda istifadə edin.",
+ "tip1": "Oxşar gecikmə profilinə malik modellərdən istifadə edin.",
+ "tip2": "Təsadüfi uğursuzluqları aradan qaldırmaq üçün təkrar cəhdləri aktiv saxlayın.",
+ "tip3": "Bunu ciddi SLA-lar üçün deyil, eksperimentlər üçün seçin."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "Adaptiv balanslaşdırma",
+ "description": "Zamanla qaynar nöqtələri azaltmaq üçün sorğuları daha az istifadə olunan modellərə yönləndirir.",
+ "tip1": "Davamlı trafik şəraitində daha yaxşı işləyir.",
+ "tip2": "Daha təhlükəsiz balanslaşdırma üçün sistem vəziyyəti yoxlamaları ilə birlikdə istifadə edin.",
+ "tip3": "Bölgü üzrə qazancları təsdiqləmək üçün hər model üzrə istifadəni izləyin."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "Büdcə prioritetli marşrutlaşdırma",
+ "description": "Qiymət metadatası mövcud olduqda sorğuları daha aşağı xərcli modellərə yönləndirir.",
+ "tip1": "Seçilmiş bütün modellər üçün qiymət məlumatlarının mövcudluğunu təmin edin.",
+ "tip2": "Çətin sorğular üçün keyfiyyətli ehtiyat model saxlayın.",
+ "tip3": "Xərcin əsas KPI olduğu paket və fon tapşırıqları üçün istifadə edin."
},
"reset-aware": {
- "title": "Reset-aware account rotation",
- "description": "Balances remaining provider quota against reset timing.",
- "tip1": "Use explicit account steps or account-tag routing for providers with quota telemetry.",
- "tip2": "Tune session vs weekly weights when short-term exhaustion is more risky.",
- "tip3": "Keep the tie band small so equivalent accounts still rotate fairly."
+ "title": "Sıfırlanmanı nəzərə alan hesab rotasiyası",
+ "description": "Provayderin qalan kvotasını sıfırlanma vaxtına əsasən balanslaşdırır.",
+ "tip1": "Kvota telemetriyası olan provayderlər üçün açıq hesab addımlarından və ya hesab teqlərinə əsaslanan marşrutlaşdırmadan istifadə edin.",
+ "tip2": "Qısamüddətli tükənmə daha riskli olduqda sessiya və həftəlik çəkiləri tənzimləyin.",
+ "tip3": "Ekvivalent hesabların ədalətli şəkildə növbələnməsinə imkan vermək üçün bərabərlik diapazonunu kiçik saxlayın."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Qarışdırılan dəst üzrə bölgü",
+ "description": "Yenidən qarışdırılmadan əvvəl hər dövr ərzində hər modeldən dəqiq bir dəfə istifadə olunur.",
+ "tip1": "Mənalı bölgü üçün ən azı 2 modeldən istifadə edin.",
+ "tip2": "Ekvivalent performanslı modellərlə ən yaxşı şəkildə işləyir.",
+ "tip3": "Bir neçə API hesabı arasında yük balanslaşdırması üçün idealdır."
},
"fill-first": {
- "description": "Exhaust provider quotas sequentially before falling back.",
- "tip1": "Use for quota-based routing with clear fallback chains.",
- "tip2": "Set quotas accurately to avoid premature fallback.",
- "tip3": "Works best with providers offering free tiers or credit buckets.",
- "title": "Quota Exhaustion"
+ "description": "Ehtiyat varianta keçməzdən əvvəl provayder kvotalarını ardıcıl şəkildə tükədin.",
+ "tip1": "Aydın ehtiyat keçid zəncirləri ilə kvota əsaslı yönləndirmə üçün istifadə edin.",
+ "tip2": "Vaxtından əvvəl ehtiyat keçidin qarşısını almaq üçün kvotaları dəqiq təyin edin.",
+ "tip3": "Pulsuz tariflər və ya kredit paketləri təklif edən provayderlərlə ən yaxşı işləyir.",
+ "title": "Kvotanın Tükənməsi"
},
"auto": {
- "description": "Route based on real-time scoring for cost, latency, quality, and health.",
- "tip1": "Let the engine balance multiple factors automatically.",
- "tip2": "Monitor which factors drive routing decisions in logs.",
- "tip3": "Use for complex workloads where no single factor dominates.",
- "title": "Multi-Factor Optimization"
+ "description": "Xərc, gecikmə, keyfiyyət və işləkliyə görə real vaxt qiymətləndirməsi əsasında yönləndirin.",
+ "tip1": "Mühərrikə bir neçə amili avtomatik tarazlaşdırmağa imkan verin.",
+ "tip2": "Jurnallarda yönləndirmə qərarlarına hansı amillərin təsir etdiyini izləyin.",
+ "tip3": "Heç bir amilin üstünlük təşkil etmədiyi mürəkkəb iş yükləri üçün istifadə edin.",
+ "title": "Çoxamilli Optimallaşdırma"
},
"lkgp": {
- "description": "Route based on historical performance and success patterns.",
- "tip1": "Requires sufficient request history for accurate predictions.",
- "tip2": "Good for workloads with consistent model performance patterns.",
- "tip3": "Monitor prediction accuracy and adjust weights as needed.",
- "title": "History-Based Routing"
+ "description": "Tarixi performans və uğur nümunələri əsasında yönləndirin.",
+ "tip1": "Dəqiq proqnozlar üçün kifayət qədər sorğu tarixçəsi tələb olunur.",
+ "tip2": "Ardıcıl model performansı nümunələrinə malik iş yükləri üçün uyğundur.",
+ "tip3": "Proqnoz dəqiqliyini izləyin və çəkiləri lazım gəldikdə tənzimləyin.",
+ "title": "Tarixçə Əsaslı Yönləndirmə"
},
"context-optimized": {
- "description": "Optimize routing based on context window usage and token efficiency.",
- "tip1": "Route long conversations to models with larger context windows.",
- "tip2": "Monitor context utilization to avoid token waste.",
- "tip3": "Best for conversational AI requiring extensive context retention.",
- "title": "Context Optimization"
+ "description": "Kontekst pəncərəsinin istifadəsi və token səmərəliliyi əsasında yönləndirməni optimallaşdırın.",
+ "tip1": "Uzun söhbətləri daha böyük kontekst pəncərələri olan modellərə yönləndirin.",
+ "tip2": "Token israfının qarşısını almaq üçün kontekstdən istifadəni izləyin.",
+ "tip3": "Geniş kontekstin saxlanmasını tələb edən danışıq süni intellekti üçün ən uyğundur.",
+ "title": "Kontekstin Optimallaşdırılması"
},
"context-relay": {
- "description": "Best when account rotation is expected and the next account must inherit a simplified task summary.",
- "tip1": "Use with providers rotating accounts for the same model family.",
- "tip2": "Set handoff threshold below hard quota cutoffs for summary generation time.",
- "tip3": "Only set a dedicated summary model if the primary is too expensive or unstable.",
- "title": "Session Continuity Priority"
+ "description": "Hesab rotasiyası gözlənildikdə və növbəti hesab sadələşdirilmiş tapşırıq xülasəsini qəbul etməli olduqda ən uyğundur.",
+ "tip1": "Eyni model ailəsi üçün hesabları rotasiya edən provayderlərlə istifadə edin.",
+ "tip2": "Xülasə yaratmağa vaxt qalması üçün ötürmə həddini sərt kvota limitlərindən aşağı təyin edin.",
+ "tip3": "Yalnız əsas model çox bahalı və ya qeyri-sabitdirsə, ayrıca xülasə modeli təyin edin.",
+ "title": "Sessiyanın Davamlılığı Prioriteti"
},
"p2c": {
- "description": "Route to the provider with the lowest current load based on real-time metrics.",
- "tip1": "Monitor provider health metrics for accurate load assessment.",
- "tip2": "Works best with homogeneous provider pools.",
- "tip3": "Adjust sensitivity to avoid oscillation during traffic spikes.",
- "title": "Power of Two Choices"
+ "description": "Real vaxt göstəricilərinə əsasən cari yükü ən az olan provayderə yönləndirin.",
+ "tip1": "Yükü dəqiq qiymətləndirmək üçün provayderin işləkliyini göstərən metrikaları izləyin.",
+ "tip2": "Homogen provayder hovuzları ilə ən yaxşı işləyir.",
+ "tip3": "Trafik sıçrayışları zamanı tərəddüdün qarşısını almaq üçün həssaslığı tənzimləyin.",
+ "title": "İki Seçimin Gücü"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
- "auto": "Intelligent Auto",
- "autoDesc": "Self-healing smart routing pool with multi-factor scoring",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Prioritizes the last provider that successfully completed a request",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
- "wizardStep3Desc": "Pick how requests are distributed across your models - 14 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "templateFreeStack": "Pulsuz Paket ($0)",
+ "templateFreeStackDesc": "Bütün pulsuz provayderlər arasında növbəli yönləndirmə: Kiro (Claude), Qoder (5 model), Qwen (4 model). Sıfır xərc, kodlaşdırma heç vaxt dayanmır.",
+ "auto": "Ağıllı Avtomatik Rejim",
+ "autoDesc": "Çoxamilli qiymətləndirməyə malik, özünü bərpa edən ağıllı yönləndirmə hovuzu",
+ "lkgp": "LKGP Rejimi",
+ "lkgpDesc": "Sorğunu sonuncu dəfə uğurla tamamlayan provayderə üstünlük verir",
+ "wizardGuideTitle": "Kombinasiyalarla İşə Başlama",
+ "wizardGuideDesc": "Süni intellekt trafikini ağıllı şəkildə yönləndirmək üçün model kombinasiyaları yaradın",
+ "wizardGuideHint": "və ya yuxarıdakı + Kombinasiya Yarat düyməsinə klikləyin",
+ "createFirstCombo": "İlk Kombinasiyanızı Yaradın",
+ "wizardStep1Title": "Kombinasiyanızı Adlandırın",
+ "wizardStep1Desc": "Marşrutlaşdırma qaydalarında müəyyən etmək üçün kombonuza unikal ad verin",
+ "wizardStep2Title": "Modellər əlavə edin",
+ "wizardStep2Desc": "Süni intellekt modellərini seçin və onların ehtiyat prioritet sırasını tənzimləyin",
+ "wizardStep3Title": "Strategiya seçin",
+ "wizardStep3Desc": "Sorğuların modelləriniz arasında necə paylanacağını seçin — 14 strategiya mövcuddur",
+ "wizardStep4Title": "Nəzərdən keçirin və yadda saxlayın",
+ "wizardStep4Desc": "Konfiqurasiyanızı nəzərdən keçirin və kombonu aktivləşdirin",
+ "usageGuideInvokeTitle": "Bu kombonu necə çağırmalı",
+ "usageGuideInvokeDesc": "Model kimi kombonun dəqiq adını göndərin, məsələn, model: \"my-combo\" (və ya combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto və auto/* kombolarınızdan istifadə etməyən ayrıca, sıfır konfiqurasiyalı marşrutlaşdırıcıdır (kombolardan biri sözün əsl mənasında auto adlandırılmayıbsa).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto OmniRoute aliası deyil, real ödənişli OpenRouter məhsuludur (Auto Best Available) — onu Parametrlər → Marşrutlaşdırma → Ödənişli modelləri gizlət vasitəsilə istisna edin.",
+ "emailVisibilityStateOn": "Aktiv",
+ "emailVisibilityStateOff": "Deaktiv",
+ "reorderHandle": "Sıranı dəyişmək üçün sürükləyin",
+ "failedReorder": "Modellərin sırasını dəyişmək alınmadı",
+ "builderFlowTitle": "Kombo qurucusunun iş axını",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Əsaslar",
+ "description": "Ad və başlanğıc şablonu"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Addımlar",
+ "description": "Provayder, model və hesab seçimi"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Strategiya",
+ "description": "Marşrutlaşdırma davranışı və təkmil parametrlər"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Ağıllı marşrutlaşdırma",
+ "description": "Avtomatik marşrutlaşdırma üçün namizəd hovuzu, əvvəlcədən təyin edilmiş seçimlər və qiymətləndirmə"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Nəzərdən keçirmə",
+ "description": "Yadda saxlamazdan əvvəl yekun yoxlama"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
+ "builderStageVisited": "Mərhələ tamamlandı",
+ "builderStageCurrent": "Cari mərhələ",
+ "builderStagePending": "Gözləmədədir",
+ "builderStageLocked": "Kilidlənib — əvvəlcə əvvəlki mərhələni tamamlayın",
+ "builderTitle": "Kombo yaradın",
+ "builderBrowseCatalog": "Kataloqa baxın",
+ "builderProvider": "Provayder",
+ "builderLoadingProviders": "Provayderlər yüklənir...",
+ "builderSelectProvider": "Provayder seçin",
"builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
- "builderDuplicateExact": "This exact provider/model/account step is already in the combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
- "builderStagesDescription": "Complete each stage in order to define combos, build steps, select routing strategy, and review results.",
- "builderStepsDescription": "Build each combo step in order: provider, model, then account. This allows reusing the same provider and model across different accounts.",
- "selectProvider": "Select Provider",
- "selectProviderPlaceholder": "Select a provider",
- "selectModel": "Select Model",
- "selectModelPlaceholder": "Select a provider first",
- "selectAccount": "Select Account",
- "selectComboToReference": "Select combo to reference",
- "comboReference": "Combo Reference",
- "addComboReference": "Add Combo Reference",
- "addStepBeforeContinue": "Please add at least one step before proceeding to the next stage.",
- "previewNextStep": "Preview next step",
- "autoSelectAccount": "Automatically select account at runtime",
- "modePackBalanced": "Balanced",
- "modePackBudget": "Budget",
- "modePackPerformance": "Performance",
- "modePackCustom": "Custom",
- "browseLegacyCatalog": "Browse legacy combo catalog",
- "agentFeaturesTitle": "Agent Features",
- "agentFeaturesDescription": "Enable advanced features for agents using this combo",
+ "builderSelectModel": "Model seçin",
+ "builderProviderFirst": "Əvvəlcə provayder seçin",
+ "builderAccount": "Hesab",
+ "builderPreview": "Önizləmə",
+ "builderAddStep": "Addım əlavə et",
+ "builderDuplicateExact": "Bu dəqiq provayder/model/hesab addımı artıq kombinasiyadadır.",
+ "builderComboRef": "Kombinasiya istinadı",
+ "builderAddComboRef": "Kombinasiya istinadı əlavə et",
+ "builderComboRefStep": "Kombinasiya istinadı əlavə et",
+ "builderPinnedAccount": "Bərkidilmiş hesab",
+ "builderLegacyEntry": "Köhnə qeyd",
+ "reviewName": "Ad",
+ "reviewStrategy": "Strategiya",
+ "reviewSteps": "Addımlar",
+ "reviewAccounts": "Hesablar",
+ "reviewProviders": "Provayderlər",
+ "reviewComboRefs": "Kombinasiya istinadları",
+ "reviewAdvanced": "Qabaqcıl parametrlər",
+ "reviewAgentFlags": "Agent bayraqları",
+ "reviewSequence": "Model ardıcıllığı",
+ "reviewNoSteps": "Heç bir addım konfiqurasiya edilməyib",
+ "builderStagesDescription": "Kombinasiyaları müəyyənləşdirmək, addımları yaratmaq, marşrutlaşdırma strategiyasını seçmək və nəticələri nəzərdən keçirmək üçün hər mərhələni ardıcıllıqla tamamlayın.",
+ "builderStepsDescription": "Hər kombinasiya addımını bu ardıcıllıqla yaradın: provayder, model, sonra hesab. Bu, eyni provayder və modeldən müxtəlif hesablarda yenidən istifadə etməyə imkan verir.",
+ "selectProvider": "Provayder seçin",
+ "selectProviderPlaceholder": "Provayder seçin",
+ "selectModel": "Model seçin",
+ "selectModelPlaceholder": "Əvvəlcə provayder seçin",
+ "selectAccount": "Hesab seçin",
+ "selectComboToReference": "İstinad ediləcək kombinasiyanı seçin",
+ "comboReference": "Kombinasiya istinadı",
+ "addComboReference": "Kombinasiya istinadı əlavə et",
+ "addStepBeforeContinue": "Növbəti mərhələyə keçməzdən əvvəl ən azı bir addım əlavə edin.",
+ "previewNextStep": "Növbəti addıma önbaxış",
+ "autoSelectAccount": "İcra zamanı hesabı avtomatik seç",
+ "modePackBalanced": "Balanslaşdırılmış",
+ "modePackBudget": "Büdcə",
+ "modePackPerformance": "Performans",
+ "modePackCustom": "Fərdi",
+ "browseLegacyCatalog": "Köhnə kombinasiya kataloquna baxın",
+ "agentFeaturesTitle": "Agent funksiyaları",
+ "agentFeaturesDescription": "Bu kombinasiyadan istifadə edən agentlər üçün qabaqcıl funksiyaları aktivləşdirin",
"responseValidationTitle": "Cavabın yoxlanılması",
"responseValidationHelp": "200 OK gövdəsi bu yoxlamalardan keçmədikdə növbəti hədəfə keçid edin (assistent məzmunu).",
"responseValidationForbidden": "Qadağan olunmuş alt sətirlər (hər sətirdə bir dənə)",
@@ -3749,18 +3753,18 @@
"responseValidationMinLength": "Minimum məzmun uzunluğu (simvol)",
"responseValidationJsonPaths": "JSON-path yoxlamaları",
"responseValidationAddCheck": "+ Yoxlama əlavə et",
- "agentFeaturesSystemMessageOverride": "Override system message",
- "agentFeaturesSystemMessagePlaceholder": "You are an expert assistant...",
- "agentFeaturesSystemMessageHint": "System message override for agents",
+ "agentFeaturesSystemMessageOverride": "Sistem mesajını əvəz et",
+ "agentFeaturesSystemMessagePlaceholder": "Siz ekspert köməkçisiniz...",
+ "agentFeaturesSystemMessageHint": "Agentlər üçün sistem mesajının əvəzlənməsi",
"agentFeaturesToolFilterRegex": "/regex-pattern/",
- "agentFeaturesToolFilterHint": "Tool filter regex for agents",
- "agentFeaturesContextCacheHint": "Enable in-context cache for agent tools",
- "agentFeaturesContextCacheProtection": "Protect cache from agent tool mutations",
- "agentFeaturesContextLength": "Context length",
- "agentFeaturesContextLengthPlaceholder": "e.g. 128000",
- "agentFeaturesContextLengthHint": "Defines the context window for this combo in /v1/models.",
- "agentFeaturesContextLengthErrorInteger": "Context length must be a valid integer",
- "agentFeaturesContextLengthErrorRange": "Context length must be between 1000 and 2000000",
+ "agentFeaturesToolFilterHint": "Agentlər üçün alət filtri regex-i",
+ "agentFeaturesContextCacheHint": "Agent alətləri üçün kontekstdaxili keşi aktivləşdir",
+ "agentFeaturesContextCacheProtection": "Keşi agent alətlərinin dəyişikliklərindən qoru",
+ "agentFeaturesContextLength": "Kontekst uzunluğu",
+ "agentFeaturesContextLengthPlaceholder": "məs. 128000",
+ "agentFeaturesContextLengthHint": "/v1/models daxilində bu kombinasiya üçün kontekst pəncərəsini müəyyən edir.",
+ "agentFeaturesContextLengthErrorInteger": "Kontekst uzunluğu etibarlı tam ədəd olmalıdır",
+ "agentFeaturesContextLengthErrorRange": "Kontekst uzunluğu 1000 ilə 2000000 arasında olmalıdır",
"compressionOverride": "Sıxılmanın ləğvi",
"modePack": "Rejim Paketi",
"disableSessionStickiness": "Sessiya yapışqanlığını söndürün",
@@ -3784,292 +3788,292 @@
"duplicateAutoComboTitle": "{name}-dan statik kombo yarat"
},
"costs": {
- "title": "Costs",
- "pageDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "overview": "Overview",
- "budget": "Budget",
- "totalCost": "Total Cost",
- "breakdown": "Cost Breakdown",
- "noData": "No cost data",
- "byModel": "By Model",
- "byProvider": "By Provider",
- "range7d": "7 Days",
- "range30d": "30 Days",
- "range90d": "90 Days",
- "range180d": "180 Days",
- "range365d": "365 Days",
- "rangeAll": "All Time",
- "spend30d": "Spend 30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
- "overviewTitle": "Cost Overview",
- "spend7d": "Spend 7D",
- "avgCostPerRequest": "Avg Cost / Request",
- "noCostDataDescription": "Start making requests to see cost data appear here. Costs are tracked automatically for all providers.",
- "spendToday": "Spend Today",
- "overviewLoadFailed": "Failed to load cost overview",
- "overviewDescription": "Real-time spending breakdown across all connected providers and models",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
- "noCostDataTitle": "No cost data yet",
- "topModels": "Top Models",
- "requestsInWindow": "Requests in Window",
- "tokenUsage": "Token Usage",
- "totalTokens": "Total Tokens",
- "inputTokens": "Input Tokens",
- "outputTokens": "Output Tokens",
- "inputOutputRatio": "Input/Output Ratio",
- "tokens": "tokens",
- "routingEfficiency": "Routing Efficiency",
- "fallbackCount": "Fallback Requests",
- "fallbackRate": "Fallback Rate",
- "modelCoverage": "Model Coverage",
- "modelCoverageDesc": "% of requests with explicit model",
- "outOfRequests": "out of {total} requests",
- "costByApiKey": "Cost by API Key",
- "costByAccount": "Cost by Account",
- "apiKeyName": "API Key",
- "account": "Account",
- "requests": "Requests",
- "cost": "Cost",
- "dayStreak": "day streak",
- "weeklyUsagePattern": "Weekly Usage Pattern",
- "activityHeatmap": "Activity (365 days)",
- "less": "Less",
- "more": "More",
- "monthlyForecast": "Monthly Forecast",
- "forecastBasis": "Based on last {days} days",
- "avgDailyCost": "Avg. daily cost",
- "daysRemaining": "{days} days remaining",
- "periodComparison": "Period Comparison",
- "previousPeriod": "Previous Half",
- "currentPeriod": "Current Half",
- "exportCSV": "Export as CSV",
- "exportJSON": "Export as JSON",
+ "title": "Xərclər",
+ "pageDescription": "Bütün provayderlər üzrə xərcləri izləyin, tendensiyaları təhlil edin və AI büdcənizi idarə edin",
+ "overview": "İcmal",
+ "budget": "Büdcə",
+ "totalCost": "Ümumi xərc",
+ "breakdown": "Xərclərin bölgüsü",
+ "noData": "Xərc məlumatı yoxdur",
+ "byModel": "Model üzrə",
+ "byProvider": "Provayder üzrə",
+ "range7d": "7 gün",
+ "range30d": "30 gün",
+ "range90d": "90 gün",
+ "range180d": "180 gün",
+ "range365d": "365 gün",
+ "rangeAll": "Bütün dövr",
+ "spend30d": "30 günlük xərc",
+ "activeModels": "Aktiv modellər",
+ "flatRateEstimateNotice": "Sabit tarifli abunəliklər üçün faktiki hesablanmış xərc deyil, token qiyməti təxminləri daxildir.",
+ "flatRateEstimateForecast": "Proqnoza sabit tarif üzrə təxminlər daxildir.",
+ "selectedWindow": "Seçilmiş dövr",
+ "activeProviders": "Aktiv provayderlər",
+ "overviewTitle": "Xərclərə baxış",
+ "spend7d": "7 günlük xərc",
+ "avgCostPerRequest": "Sorğu üzrə orta xərc",
+ "noCostDataDescription": "Xərc məlumatlarının burada görünməsi üçün sorğular göndərməyə başlayın. Xərclər bütün provayderlər üçün avtomatik izlənilir.",
+ "spendToday": "Bugünkü xərc",
+ "overviewLoadFailed": "Xərclərə baxışı yükləmək alınmadı",
+ "overviewDescription": "Bütün qoşulmuş provayderlər və modellər üzrə real vaxt rejimində xərc bölgüsü",
+ "providerShare": "Provayder payı",
+ "topProviders": "Ən çox istifadə olunan provayderlər",
+ "costTrend": "Xərc tendensiyası",
+ "noCostDataTitle": "Hələ xərc məlumatı yoxdur",
+ "topModels": "Ən yaxşı modellər",
+ "requestsInWindow": "Zaman aralığındakı sorğular",
+ "tokenUsage": "Token istifadəsi",
+ "totalTokens": "Ümumi token sayı",
+ "inputTokens": "Giriş tokenləri",
+ "outputTokens": "Çıxış tokenləri",
+ "inputOutputRatio": "Giriş/çıxış nisbəti",
+ "tokens": "token",
+ "routingEfficiency": "Marşrutlaşdırma səmərəliliyi",
+ "fallbackCount": "Ehtiyat sorğular",
+ "fallbackRate": "Ehtiyat marşrutlaşdırma faizi",
+ "modelCoverage": "Model əhatəsi",
+ "modelCoverageDesc": "Açıq şəkildə model göstərilən sorğuların faizi",
+ "outOfRequests": "cəmi {total} sorğudan",
+ "costByApiKey": "API açarı üzrə xərc",
+ "costByAccount": "Hesab üzrə xərc",
+ "apiKeyName": "API açarı",
+ "account": "Hesab",
+ "requests": "Sorğular",
+ "cost": "Xərc",
+ "dayStreak": "günlük ardıcıllıq",
+ "weeklyUsagePattern": "Həftəlik istifadə nümunəsi",
+ "activityHeatmap": "Aktivlik (365 gün)",
+ "less": "Az",
+ "more": "Çox",
+ "monthlyForecast": "Aylıq proqnoz",
+ "forecastBasis": "Son {days} gün əsasında",
+ "avgDailyCost": "Orta gündəlik xərc",
+ "daysRemaining": "{days} gün qalıb",
+ "periodComparison": "Dövrlərin müqayisəsi",
+ "previousPeriod": "Əvvəlki yarı",
+ "currentPeriod": "Cari yarı",
+ "exportCSV": "CSV kimi ixrac et",
+ "exportJSON": "JSON kimi ixrac et",
"legacyFreeLabel": "Köhnə / Pulsuz",
- "costExplorerTitle": "Cost Explorer",
- "costExplorerDescription": "Explore spend by provider, model, API key, account, or service tier.",
- "groupProvider": "Provider",
+ "costExplorerTitle": "Xərc təhlili",
+ "costExplorerDescription": "Provayder, model, API açarı, hesab və ya xidmət səviyyəsi üzrə xərcləri araşdırın.",
+ "groupProvider": "Provayder",
"groupModel": "Model",
- "groupApiKey": "API Key",
- "groupAccount": "Account",
- "groupServiceTier": "Service Tier",
+ "groupApiKey": "API açarı",
+ "groupAccount": "Hesab",
+ "groupServiceTier": "Xidmət səviyyəsi",
"serviceTierFast": "Sürətli",
- "serviceTierFlex": "Flex",
+ "serviceTierFlex": "Çevik",
"serviceTierStandard": "Standart",
"serviceTierBreakdownTitle": "Xidmət səviyyəsi",
"serviceTierBreakdownSubtitle": "Sürətli / Flex / Standart bölgüsü",
"serviceTierUsageSaved": "istifadə yadda saxlanıldı",
"serviceTierCostSaved": "yadda saxlanıldı",
"serviceTierCostShareSuffix": "xərcin",
- "dimension": "Dimension",
- "share": "Share",
- "legacyOrFree": "Legacy / Free",
- "filterRows": "Filter rows…",
- "filterCostExplorerRows": "Filter Cost Explorer rows",
- "noMatchingCostRows": "No matching cost rows",
- "noMatchingCostRowsDescription": "Adjust the search text, grouping, or selected time window.",
- "showingCostRows": "Showing {shown} of {total} matching rows.",
- "showingTopCostRows": "Showing {shown} of {total} matching rows (top 50)."
+ "dimension": "Ölçü",
+ "share": "Pay",
+ "legacyOrFree": "Köhnə / Pulsuz",
+ "filterRows": "Sətirləri filtrləyin…",
+ "filterCostExplorerRows": "Cost Explorer sətirlərini filtrləyin",
+ "noMatchingCostRows": "Uyğun xərc sətri yoxdur",
+ "noMatchingCostRowsDescription": "Axtarış mətnini, qruplaşdırmanı və ya seçilmiş vaxt aralığını dəyişdirin.",
+ "showingCostRows": "Uyğun {total} sətirdən {shown} ədədi göstərilir.",
+ "showingTopCostRows": "Uyğun {total} sətirdən {shown} ədədi göstərilir (ilk 50)."
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
- "available": "Available Endpoints",
+ "title": "API son nöqtəsi",
+ "subtitle": "Əksər SDK və alətlərlə OpenAI uyğun son nöqtədən istifadə edin.",
+ "testEndpoint": "Son nöqtəni sınaqdan keçirin →",
+ "advancedProtocols": "Qabaqcıl protokollar",
+ "available": "Mövcud son nöqtələr",
"cloudProxy": "Cloud Proxy",
- "disableConfirm": "Are you sure you want to disable cloud proxy?",
- "baseUrl": "Base URL",
- "apiKeyLabel": "API Key",
- "registeredKeys": "Registered Keys",
+ "disableConfirm": "Bulud proksisini deaktiv etmək istədiyinizə əminsiniz?",
+ "baseUrl": "Baza URL-i",
+ "apiKeyLabel": "API açarı",
+ "registeredKeys": "Qeydiyyatdan keçmiş açarlar",
"chatCompletions": "Chat Completions",
- "responses": "Responses",
- "listModels": "List Models",
- "usingCloudProxy": "Using Cloud Proxy",
- "usingLocalServer": "Using Local Server",
- "machineId": "Machine ID: {id}...",
- "disableCloud": "Disable Cloud",
- "enableCloud": "Enable Cloud",
- "modelsAcrossEndpoints": "{models} models across {endpoints} endpoints",
- "loadingModels": "Loading available models...",
- "chatDesc": "Streaming & non-streaming chat with all providers",
- "embeddings": "Embeddings",
- "embeddingsDesc": "Text embeddings for search & RAG pipelines",
- "imageGeneration": "Image Generation",
- "imageDesc": "Generate images from text prompts",
+ "responses": "Cavablar",
+ "listModels": "Modelləri sadalayın",
+ "usingCloudProxy": "Bulud proksisindən istifadə olunur",
+ "usingLocalServer": "Lokal serverdən istifadə olunur",
+ "machineId": "Maşın ID-si: {id}...",
+ "disableCloud": "Buludu deaktiv edin",
+ "enableCloud": "Buludu aktiv edin",
+ "modelsAcrossEndpoints": "{endpoints} son nöqtədə {models} model",
+ "loadingModels": "Mövcud modellər yüklənir...",
+ "chatDesc": "Bütün provayderlərlə axınlı və axınsız söhbət",
+ "embeddings": "Vektor təsvirləri",
+ "embeddingsDesc": "Axtarış və RAG konveyerləri üçün mətnin vektor təsvirləri",
+ "imageGeneration": "Şəkil yaratma",
+ "imageDesc": "Mətn sorğularından şəkillər yaradın",
"rerank": "Rerank",
- "rerankDesc": "Rerank documents by relevance to a query",
- "audioTranscription": "Audio Transcription",
- "audioTranscriptionDesc": "Transcribe audio files to text (Whisper)",
- "textToSpeech": "Text to Speech",
- "textToSpeechDesc": "Convert text to natural-sounding speech",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
- "moderations": "Moderations",
- "moderationsDesc": "Content moderation and safety classification",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
- "categoryCore": "Core APIs",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
- "categoryUtility": "Utility & Management",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
- "enableCloudTitle": "Enable Cloud Proxy",
- "whatYouGet": "What you will get",
- "cloudBenefitAccess": "Access your API from anywhere in the world",
- "cloudBenefitShare": "Share endpoint with your team easily",
- "cloudBenefitPorts": "No need to open ports or configure firewall",
- "cloudBenefitEdge": "Fast global edge network",
- "cloudSessionNote": "Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.",
- "cloudUnstableNote": "Cloud is currently unstable with Claude Code OAuth in some cases.",
- "cloudConnected": "Cloud Proxy connected!",
- "connectingToCloud": "Connecting to cloud...",
- "verifyingConnection": "Verifying connection...",
- "connecting": "Connecting...",
- "verifying": "Verifying...",
- "connected": "Connected!",
- "disableCloudTitle": "Disable Cloud Proxy",
- "disableWarning": "All auth sessions will be deleted from cloud.",
- "syncingData": "Syncing latest data...",
- "disablingCloud": "Disabling cloud...",
- "syncing": "Syncing...",
- "disabling": "Disabling...",
- "cloudConnectedVerified": "Cloud Proxy connected and verified!",
- "connectedVerificationPending": "Connected — verification pending",
- "connectedVerificationPendingWithError": "Connected — verification pending: {error}",
- "cloudDisabledSuccess": "Cloud disabled successfully",
- "syncedSuccess": "Synced successfully",
- "failedDisable": "Failed to disable cloud",
- "failedEnable": "Failed to enable cloud",
- "cloudRequestTimeout": "Cloud request timeout",
- "cloudRequestFailed": "Cloud request failed",
- "cloudWorkerUnreachable": "Could not reach cloud worker. Make sure the cloud service is running (npm run dev in /cloud).",
- "connectionFailed": "Connection failed",
- "syncFailed": "Failed to sync cloud data",
+ "rerankDesc": "Sənədləri sorğuya uyğunluğuna görə yenidən sıralayın",
+ "audioTranscription": "Audio transkripsiyası",
+ "audioTranscriptionDesc": "Audio faylları mətnə çevirin (Whisper)",
+ "textToSpeech": "Mətndən nitqə",
+ "textToSpeechDesc": "Mətni təbii səslənən nitqə çevirin",
+ "musicGeneration": "Musiqi generasiyası",
+ "musicDesc": "ComfyUI (Stable Audio, MusicGen) vasitəsilə musiqi və audio treklər yaradın",
+ "moderations": "Moderasiya",
+ "moderationsDesc": "Məzmunun moderasiyası və təhlükəsizlik üzrə təsnifatı",
+ "responsesDesc": "Codex və qabaqcıl agent əsaslı iş axınları üçün OpenAI Responses API",
+ "listModelsDesc": "Bütün qoşulmuş provayderlərdə mövcud olan bütün modelləri siyahılayın",
+ "settingsApiDesc": "API vasitəsilə OmniRoute konfiqurasiyasını oxuyun və dəyişdirin",
+ "settingsApi": "Parametrlər API-si",
+ "categoryCore": "Əsas API-lər",
+ "categoryMedia": "Media və multimodal",
+ "categorySearch": "Axtarış və kəşf",
+ "categoryUtility": "Köməkçi alətlər və idarəetmə",
+ "webSearch": "Veb axtarışı",
+ "webSearchDesc": "Avtomatik ehtiyat provayderə keçid və keşləmə ilə bir neçə provayder üzrə vahid veb axtarışı",
+ "searchProvider": "Axtarış provayderi",
+ "searchProviderDesc": "Bu provayder POST /v1/search vasitəsilə veb axtarışı üçün istifadə olunur. Model konfiqurasiyasına ehtiyac yoxdur — API açarı qoşulduqdan sonra axtarış provayderləri istifadəyə hazır olur.",
+ "enableCloudTitle": "Bulud proksisini aktivləşdirin",
+ "whatYouGet": "Əldə edəcəkləriniz",
+ "cloudBenefitAccess": "API-nizə dünyanın istənilən yerindən daxil olun",
+ "cloudBenefitShare": "Son nöqtəni komandanızla asanlıqla paylaşın",
+ "cloudBenefitPorts": "Portları açmağa və ya təhlükəsizlik divarını konfiqurasiya etməyə ehtiyac yoxdur",
+ "cloudBenefitEdge": "Sürətli qlobal kənar şəbəkə",
+ "cloudSessionNote": "Bulud autentifikasiya sessiyanızı 1 gün saxlayacaq. İstifadə edilməzsə, avtomatik silinəcək.",
+ "cloudUnstableNote": "Hazırda bulud bəzi hallarda Claude Code OAuth ilə qeyri-sabit işləyir.",
+ "cloudConnected": "Bulud proksisi qoşuldu!",
+ "connectingToCloud": "Buluda qoşulur...",
+ "verifyingConnection": "Bağlantı yoxlanılır...",
+ "connecting": "Qoşulur...",
+ "verifying": "Yoxlanılır...",
+ "connected": "Qoşuldu!",
+ "disableCloudTitle": "Bulud proksisini deaktiv edin",
+ "disableWarning": "Bütün autentifikasiya sessiyaları buluddan silinəcək.",
+ "syncingData": "Ən son məlumatlar sinxronlaşdırılır...",
+ "disablingCloud": "Bulud deaktiv edilir...",
+ "syncing": "Sinxronlaşdırılır...",
+ "disabling": "Deaktiv edilir...",
+ "cloudConnectedVerified": "Bulud proksisi qoşuldu və yoxlanıldı!",
+ "connectedVerificationPending": "Qoşuldu — yoxlama gözlənilir",
+ "connectedVerificationPendingWithError": "Qoşuldu — yoxlama gözlənilir: {error}",
+ "cloudDisabledSuccess": "Bulud uğurla deaktiv edildi",
+ "syncedSuccess": "Uğurla sinxronlaşdırıldı",
+ "failedDisable": "Buludu deaktiv etmək mümkün olmadı",
+ "failedEnable": "Buludu aktiv etmək mümkün olmadı",
+ "cloudRequestTimeout": "Bulud sorğusunun vaxtı bitdi",
+ "cloudRequestFailed": "Bulud sorğusu uğursuz oldu",
+ "cloudWorkerUnreachable": "Bulud işçisinə qoşulmaq mümkün olmadı. Bulud xidmətinin işlədiyinə əmin olun (npm run dev in /cloud).",
+ "connectionFailed": "Bağlantı uğursuz oldu",
+ "syncFailed": "Bulud məlumatlarını sinxronlaşdırmaq mümkün olmadı",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
- "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredDescription": "Bu son nöqtə üçün Cloudflare Quick Tunnel yaradın.",
+ "cloudflaredUrlNotice": "Müvəqqəti Cloudflare Quick Tunnel yaradır. URL hər yenidən başladıldıqdan sonra dəyişir.",
+ "cloudflaredEnable": "Tuneli aktivləşdir",
+ "cloudflaredInstallAndEnable": "Quraşdır və aktivləşdir",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "İşləyir",
+ "cloudflaredStarting": "Başladılır",
+ "cloudflaredStoppedState": "Dayandırılıb",
+ "cloudflaredNotInstalled": "Quraşdırılmayıb",
+ "cloudflaredUnsupported": "Dəstəklənmir",
+ "cloudflaredError": "Xəta",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
- "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after every restart.",
- "cloudflaredUnsupportedNote": "This platform is not supported for managed installs. Install cloudflared manually or point CLOUDFLARED_BIN to an existing binary.",
+ "cloudflaredTemporaryNote": "Quick Tunnel URL-ləri müvəqqətidir və hər yenidən başladıldıqdan sonra dəyişəcək.",
+ "cloudflaredUnsupportedNote": "Bu platformada idarə olunan quraşdırmalar dəstəklənmir. cloudflared-i əl ilə quraşdırın və ya CLOUDFLARED_BIN-i mövcud binar fayla yönəldin.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
- "providerModelsTitle": "{provider} — Models",
- "noModelsForProvider": "No models available for this provider.",
+ "cloudflaredLastError": "Son xəta: {error}",
+ "providerModelsTitle": "{provider} — Modellər",
+ "noModelsForProvider": "Bu provayder üçün əlçatan model yoxdur.",
"chat": "Chat",
- "embedding": "Embedding",
- "image": "Image",
- "custom": "custom",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "embedding": "Vektorlaşdırma",
+ "image": "Şəkil",
+ "custom": "xüsusi",
+ "modelsCount": "{count, plural, one {# model} other {# model}}",
+ "sectionTitle": "İnteqrasiya səthi",
+ "sectionDescription": "OpenAI ilə uyğun API-lər və əməliyyat protokolu son nöqtələri",
"tabApis": "API-lər",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "Protokollar",
+ "tabsAria": "Son nöqtə bölmələri",
+ "protocolsTitle": "Protokollar",
+ "protocolsDescription": "MCP və A2A xüsusi müşahidə imkanları və idarəetmə vasitələri olan əsas son nöqtələrdir.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "stdio üzərindən Model Context Protocol",
+ "a2aCardTitle": "A2A Serveri",
+ "a2aCardDescription": "Agent2Agent JSON-RPC son nöqtəsi",
+ "protocolToolsLabel": "Alətlər",
+ "protocolTasksLabel": "Tapşırıqlar",
+ "protocolActiveStreamsLabel": "Aktiv axınlar",
+ "protocolLastActivity": "Son fəaliyyət",
+ "quickStart": "Sürətli başlanğıc",
+ "openMcpDashboard": "MCP idarəetməsini aç",
+ "openA2aDashboard": "A2A idarəetməsini aç",
+ "mcpQuickStartTitle": "MCP üzrə sürətli başlanğıc",
+ "mcpQuickStartStep1": "MCP serverini `omniroute --mcp` vasitəsilə işə salın.",
+ "mcpQuickStartStep2": "MCP müştərinizi stdio nəqliyyatı üzərindən qoşulmaq üçün konfiqurasiya edin.",
+ "mcpQuickStartStep3": "`omniroute_get_health` və `omniroute_list_combos` kimi alətləri çağırın.",
+ "a2aQuickStartTitle": "A2A üzrə sürətli başlanğıc",
+ "a2aQuickStartStep1": "Agent kartını `/.well-known/agent.json` ünvanında aşkarlayın.",
+ "a2aQuickStartStep2": "`message/send` və ya `message/stream` istifadə edərək `POST /a2a` ünvanına JSON-RPC sorğuları göndərin.",
+ "a2aQuickStartStep3": "`tasks/get` və `tasks/cancel` istifadə edərək tapşırıqları izləyin və idarə edin.",
+ "completionsLegacy": "Tamamlamalar (köhnə)",
+ "completionsLegacyDesc": "Köhnə OpenAI mətn tamamlamaları — həm prompt sətri, həm də messages massivi formatını qəbul edir",
"messagesApi": "Mesajlar",
"messagesApiDesc": "Claude uyğun provayderlər üçün Native Anthropic Messages API formatı",
"imageEdits": "Şəkil Redaktələri",
"imageEditsDesc": "AI ilə mövcud şəkilləri redaktə edin və dəyişdirin (rəngləmə, rəngləmə, varyasyonlar)",
"batchApi": "Toplu API",
"batchApiDesc": "Böyük sorğu qruplarını asinxron şəkildə emal edin (OpenAI-a uyğun)",
- "filesApi": "Files API",
+ "filesApi": "Fayllar API-si",
"filesApiDesc": "Toplu emal üçün faylları yükləyin və idarə edin",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Video generasiyası",
+ "videoDesc": "ComfyUI və Stable Video Diffusion kimi AI modellərindən istifadə edərək videolar yaradın.",
+ "tailscaleRequestFailed": "Tailscale statusunu yükləmək mümkün olmadı",
+ "tailscaleEnableFailed": "Tailscale Funnel-i aktivləşdirmək mümkün olmadı",
+ "tailscaleWaitingForLogin": "Açılmış brauzer vərəqində Tailscale girişini tamamlayın. OmniRoute avtomatik olaraq yenidən cəhd edəcək.",
+ "tailscaleLoginTimedOut": "Tailscale girişini gözləyərkən vaxt bitdi",
+ "tailscaleWaitingForFunnel": "Açılmış brauzer vərəqində bu cihaz üçün Funnel-i aktivləşdirin. OmniRoute yoxlamağa davam edəcək.",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel-in aktivləşdirilməsini gözləyərkən vaxt bitdi",
+ "tailscaleStarted": "Tailscale Funnel aktivləşdirildi",
+ "tailscaleDisableFailed": "Tailscale Funnel-i deaktiv etmək mümkün olmadı",
+ "tailscaleStopped": "Tailscale Funnel deaktiv edildi",
+ "tailscaleInstallFailed": "Tailscale-i quraşdırmaq mümkün olmadı",
+ "tailscaleInstallProgress": "İcra olunur...",
+ "tailscaleInstalled": "Tailscale uğurla quraşdırıldı",
+ "tailscaleRunning": "İşləyir",
+ "tailscaleNeedsLogin": "Giriş tələb olunur",
+ "tailscaleStoppedState": "Dayandırılıb",
+ "tailscaleNotInstalled": "Quraşdırılmayıb",
+ "tailscaleUnsupported": "Dəstəklənmir",
+ "tailscaleError": "Xəta",
+ "tailscaleDisable": "Funnel-i dayandır",
+ "tailscaleInstallAndEnable": "Quraşdır və aktivləşdir",
+ "tailscaleLoginAndEnable": "Daxil ol və aktivləşdir",
+ "tailscaleEnable": "Funnel-i aktivləşdir",
+ "tailscaleUrlNotice": "Tailscale .ts.net ünvanınızdan istifadə edir. İlk istifadə zamanı giriş və Funnel təsdiqi tələb oluna bilər.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
- "tailscaleSudoLabel": "Sudo Password (required on macOS/Linux)",
- "ngrokTitle": "ngrok Tunnel",
- "ngrokRunning": "Running",
- "ngrokStarting": "Starting",
- "ngrokStoppedState": "Stopped",
- "ngrokNeedsAuth": "Needs Auth",
- "ngrokNotInstalled": "Not installed",
- "ngrokUnsupported": "Unsupported",
- "ngrokError": "Error",
- "ngrokEnable": "Enable Tunnel",
- "ngrokDisable": "Stop Tunnel",
- "ngrokUrlNotice": "Creates a public ngrok tunnel.",
- "ngrokAuthTokenLabel": "Authtoken (Required if NGROK_AUTHTOKEN not set)",
- "ngrokAuthTokenPlaceholder": "Enter your ngrok authtoken",
- "ngrokLastError": "Last error: {error}",
- "ngrokStarted": "ngrok tunnel started",
- "ngrokStopped": "ngrok tunnel stopped",
- "ngrokRequestFailed": "Failed to update ngrok tunnel",
+ "tailscaleNeedsLoginHint": "Bu maşını Tailscale ilə autentifikasiya edin, sonra Funnel-i aktivləşdirin.",
+ "tailscaleBinaryPath": "Binar fayl: {path}",
+ "tailscaleLastError": "Son xəta: {error}",
+ "tailscaleInstallTitle": "Tailscale-i quraşdırın",
+ "tailscaleInstallIntro": "Tailscale-i bu maşında quraşdırır və OmniRoute-u Funnel-i aktivləşdirmək üçün hazırlayır.",
+ "tailscaleInstallPasswordHint": "macOS və Linux-da paketin quraşdırılması və demonun işə salınması üçün sudo tələb oluna bilər.",
+ "tailscaleSudoPlaceholder": "İstəyə bağlı sudo parolu",
+ "tailscaleInstalling": "Quraşdırılır",
+ "tailscaleSudoLabel": "Sudo parolu (macOS/Linux-da tələb olunur)",
+ "ngrokTitle": "ngrok tuneli",
+ "ngrokRunning": "İşləyir",
+ "ngrokStarting": "Başladılır",
+ "ngrokStoppedState": "Dayandırılıb",
+ "ngrokNeedsAuth": "Autentifikasiya tələb olunur",
+ "ngrokNotInstalled": "Quraşdırılmayıb",
+ "ngrokUnsupported": "Dəstəklənmir",
+ "ngrokError": "Xəta",
+ "ngrokEnable": "Tuneli aktivləşdirin",
+ "ngrokDisable": "Tuneli dayandırın",
+ "ngrokUrlNotice": "İctimai ngrok tuneli yaradır.",
+ "ngrokAuthTokenLabel": "Authtoken (NGROK_AUTHTOKEN təyin edilməyibsə tələb olunur)",
+ "ngrokAuthTokenPlaceholder": "ngrok authtoken-inizi daxil edin",
+ "ngrokLastError": "Son xəta: {error}",
+ "ngrokStarted": "ngrok tuneli başladıldı",
+ "ngrokStopped": "ngrok tuneli dayandırıldı",
+ "ngrokRequestFailed": "ngrok tunelini yeniləmək mümkün olmadı",
"apiEndpointsCatalogUnavailable": "API kataloqu mövcud deyil",
"apiEndpointsSearchPlaceholder": "Son nöqtələri axtarın...",
"apiEndpointsRequiresAuth": "Auth tələb edir",
@@ -4104,7 +4108,7 @@
"all": "Hamısı",
"more": "+{count} daha",
"showInternalTooltip": "Daxili marşrutları göstərin və ya gizlədin (defolt olaraq gizlidir)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Bearer autentifikasiyası",
"requestBody": "Sorğu gövdəsi",
"close": "Bağla",
"tryIt": "Sınayın",
@@ -4135,14 +4139,14 @@
"badgeInternalTooltip": "Bu, daxili sistem son nöqtəsidir",
"tierAll": "Hamısı",
"tierAuth": "Autentifikasiya olunmuş",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Geri dövrə",
"tierAlwaysProtected": "Həmişə Qorunan",
"tierPublic": "İctimai",
"hideInternal": "Daxililəri Gizlət",
"showInternal": "Daxililəri Göstər",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Fərdi sistem promptu",
+ "customSystemPromptDescription": "Hər model sorğusuna fərdi sistem promptu əlavə edin",
+ "customSystemPromptPlaceholder": "məs., Həmişə pirat kimi danış...",
"obsidianEnterToken": "Zəhmət olmasa, Obsidian API tokeni daxil edin",
"obsidianConnectFailed": "Bağlantı qurulmadı",
"obsidianConnectionFailed": "Bağlantı uğursuz oldu",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "Token konfiqurasiya edilib. Notion alətləri MCP vasitəsilə mövcuddur."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "Son nöqtə proksisi",
+ "tabApiEndpoints": "API son nöqtələri",
+ "apiEndpointsTitle": "API son nöqtələri",
+ "apiEndpointsDescription": "Digər tətbiq və xidmətlər tərəfindən istifadə edilə bilən backend API son nöqtələri. Bu bölmədə sənədləşdirmə və sınaq imkanları ilə birlikdə bütün mövcud REST API-lər göstəriləcək.",
+ "comingSoon": "Tezliklə",
+ "plannedFeatures": "Planlaşdırılan funksiyalar",
+ "featureRestApi": "İnteraktiv sənədləşdirmə ilə REST API son nöqtələri kataloqu",
+ "featureWebhooks": "Webhook konfiqurasiyası və hadisə abunəlikləri",
+ "featureSwagger": "OpenAPI / Swagger spesifikasiyasının avtomatik yaradılması",
+ "featureAuth": "Hər son nöqtə üçün API açarı və OAuth əhatə dairəsinin idarə edilməsi"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP idarə paneli yüklənir...",
+ "activate": "aktivləşdir",
+ "deactivate": "deaktivləşdir",
+ "confirmSwitchCombo": "\"{combo}\" kombinasiyasını {action}?",
+ "switchComboFailed": "Kombinasiyanın vəziyyətini dəyişmək alınmadı.",
+ "switchComboSuccess": "\"{combo}\" kombinasiyası yeniləndi.",
+ "confirmApplyProfile": "\"{profile}\" dayanıqlılıq profili tətbiq edilsin?",
+ "applyProfileFailed": "Dayanıqlılıq profilini tətbiq etmək alınmadı.",
+ "applyProfileSuccess": "\"{profile}\" profili tətbiq edildi.",
+ "confirmResetBreakers": "Bütün dövrə qoruyucuları sıfırlansın?",
+ "resetBreakersFailed": "Dövrə qoruyucularını sıfırlamaq alınmadı.",
+ "resetBreakersSuccess": "Dövrə qoruyucuları sıfırlandı.",
+ "processStatus": "Prosesin vəziyyəti",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} deaktiv et",
@@ -4233,119 +4237,119 @@
"mcpStep2": "MCP müştərinizi stdio ötürməsi üzərindən qoşulmaq üçün konfiqurasiya edin.",
"mcpStep3": "{code1} və {code2} kimi alətləri çağırın.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "Sessiyanın işləmə müddəti",
+ "lastHeartbeat": "Son nəbz siqnalı",
+ "activity24h": "Fəaliyyət (24 saat)",
+ "totalCalls": "Ümumi çağırış sayı",
+ "successRate": "Uğur faizi",
+ "avgLatency": "Orta gecikmə",
+ "topTools": "Ən çox istifadə olunan alətlər",
+ "noToolCalls24h": "Son 24 saat ərzində heç bir alət çağırışı olmayıb.",
+ "runtimeDetails": "İcra mühiti təfərrüatları",
+ "transport": "Nəqliyyat",
+ "scopesEnforced": "Əhatə dairələri məcburi tətbiq olunur",
+ "yes": "bəli",
+ "no": "xeyr",
+ "lastCall": "Son çağırış",
+ "heartbeatPath": "Nəbz siqnalının yolu",
+ "operationalControls": "Əməliyyat idarəetmələri",
+ "switchCombo": "Kombinasiyanı dəyiş",
+ "inactive": "qeyri-aktiv",
+ "active": "aktiv",
+ "activateCombo": "Kombinasiyanı aktivləşdir",
+ "deactivateCombo": "Kombinasiyanı deaktivləşdir",
+ "applyResilienceProfile": "Dayanıqlılıq profilini tətbiq et",
+ "profileAggressive": "aqressiv",
+ "profileBalanced": "balanslaşdırılmış",
+ "profileConservative": "mühafizəkar",
+ "applyProfile": "Profili tətbiq et",
+ "resetCircuitBreakers": "Dövrə kəsicilərini sıfırla",
+ "resetCircuitBreakersHelp": "Provayderlər üçün cari kəsici vəziyyətini və uğursuzluq sayğaclarını təmizləyir.",
+ "resetAllBreakers": "Bütün kəsiciləri sıfırla",
+ "toolsAndScopes": "Alətlər və icazə sahələri",
+ "tableTool": "Alət",
+ "tableScopes": "İcazə sahələri",
+ "tablePhase": "Mərhələ",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "Audit jurnalı",
+ "auditSummary": "Çağırışlar: {total} | {totalPages} səhifədən {page}-ci",
+ "allTools": "Bütün alətlər",
+ "allResults": "Bütün nəticələr",
+ "success": "Uğurlu",
+ "failure": "Uğursuz",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
+ "loadingAuditEntries": "Audit qeydləri yüklənir...",
+ "noAuditEntriesForFilters": "Cari filtrlər üzrə audit qeydi tapılmadı.",
+ "tableTimestamp": "Vaxt möhürü",
+ "tableDuration": "Müddət",
+ "tableResult": "Nəticə",
+ "tableApiKey": "API açarı",
+ "failed": "uğursuz oldu",
+ "previous": "Əvvəlki",
+ "next": "Növbəti",
+ "apiKeyId": "API açarının ID-si",
+ "offset": "Başlanğıc mövqeyi",
"limit": "Limit",
- "tool": "Tool"
+ "tool": "Alət"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A idarə paneli yüklənir...",
+ "confirmCancelTask": "{taskId} tapşırığı ləğv edilsin?",
+ "cancelTaskFailed": "Tapşırığı ləğv etmək mümkün olmadı.",
+ "cancelTaskSuccess": "{taskId} tapşırığı ləğv edildi.",
+ "smokeSendFailed": "message/send smoke testi uğursuz oldu.",
+ "smokeSendSuccessWithTask": "message/send uğurludur (tapşırıq {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream smoke testi uğursuz oldu.",
+ "smokeStreamSuccessWithTask": "message/stream uğurludur (tapşırıq {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream tapşırıq ID-si olmadan tamamlandı.",
+ "health": "Sağlamlıq vəziyyəti",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "Ümumi tapşırıqlar",
+ "activeStreams": "Aktiv axınlar",
+ "lastTask": "Son tapşırıq",
+ "taskStateOverview": "Tapşırıq vəziyyətinə ümumi baxış",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "göndərilib",
+ "working": "icra olunur",
+ "completed": "tamamlanıb",
+ "failed": "uğursuz olub",
+ "cancelled": "ləğv edilib"
},
- "agentCard": "Agent card",
+ "agentCard": "Agent kartı",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "Versiya",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "İmkanlar",
+ "agentCardNotAvailable": "Agent kartı mövcud deyil.",
+ "quickValidation": "Sürətli yoxlama",
+ "quickValidationDescription": "Canlı `/a2a` son nöqtəsi vasitəsilə sınaq sorğularını icra edir.",
+ "runMessageSend": "message/send sorğusunu icra et",
+ "runMessageStream": "message/stream sorğusunu icra et",
+ "taskManagement": "Tapşırıqların idarə edilməsi",
+ "taskSummary": "{total} tapşırıq | {totalPages} səhifədən {page}-ci səhifə",
+ "allStates": "hamısı",
+ "allSkills": "bütün bacarıqlar",
+ "loadingTasks": "Tapşırıqlar yüklənir...",
+ "noTasksForFilters": "Cari filtrlərə uyğun tapşırıq tapılmadı.",
+ "tableTask": "Tapşırıq",
+ "tableSkill": "Bacarıq",
+ "tableState": "Vəziyyət",
+ "tableUpdated": "Yenilənib",
+ "tableActions": "Əməliyyatlar",
+ "view": "Bax",
+ "cancel": "Ləğv et",
+ "previous": "Əvvəlki",
+ "next": "Növbəti",
+ "taskDetail": "Tapşırıq təfərrüatları",
+ "close": "Bağla",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
+ "events": "Hadisələr",
+ "artifacts": "Artefaktlar",
+ "tablePhase": "Cədvəl mərhələsi",
+ "offset": "Yerdəyişmə",
"limit": "Limit",
- "skill": "Skill",
+ "skill": "Bacarıq",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "mesaj/göndər",
"rpcMethodStream": "mesaj/axın",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Əməliyyatlar",
+ "addMemory": "Yaddaş əlavə et",
+ "allTypes": "Bütün növlər",
"cancel": "Ləğv et",
"checkHealth": "Sağlamlığı yoxlayın",
"checkingHealth": "Yoxlanır...",
@@ -4378,17 +4382,17 @@
"howWorksToggle": "Necə işləyir",
"howWorksContent": "1. Avtomatik çıxarış: hər cavabın sonunda faktlar və epizodlar avtomatik olaraq aşkar edilir və yadda saxlanılır.\n2. Axtarış: hər cavabdan əvvəl ən uyğun yaddaşlar FTS5 (dəqiq), vektor (semantik) və ya hibrid RRF vasitəsilə axtarılır.\n3. Daxiletmə: cavab keyfiyyətini artırmaq üçün müvafiq yaddaşlar assistent kontekstinə daxil edilir.\n4. İdarəetmə: köhnə yaddaşlara baxmaq, redaktə etmək, ixrac etmək və sıxlaşdırmaq üçün bu səhifədən istifadə edin."
},
- "content": "Content",
+ "content": "Məzmun",
"contentPlaceholder": "Yadda saxlamaq üçün dəyər və ya JSON məzmunu",
- "created": "Created",
- "delete": "Delete",
+ "created": "Yaradılma tarixi",
+ "delete": "Sil",
"deleteConfirmDesc": "Bu əməliyyat geri qaytarıla bilməz. Yaddaş birdəfəlik silinəcək.",
"deleteConfirmTitle": "Yaddaş silinsin?",
- "description": "View and manage stored memory entries",
+ "description": "Saxlanılmış yaddaş qeydlərinə baxın və onları idarə edin",
"editMemory": "Yaddaşı redaktə et",
"editModal": {
"title": "Yaddaşı Redaktə Et",
- "metadataLabel": "Metadata (JSON)",
+ "metadataLabel": "Metaməlumatlar (JSON)",
"metadataInvalid": "Yanlış JSON",
"saveFailed": "Yaddaşı saxlamaq mümkün olmadı"
},
@@ -4429,7 +4433,7 @@
"reindexFailed": "Yenidən indeksləşdirməni başlatmaq mümkün olmadı",
"keywordLabel": "Açar söz (FTS5)",
"keywordReason": "Açar sözlə axtarış həmişə mövcuddur",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Vektorlaşdırma",
"vectorStoreLabel": "Vektor Anbarı",
"qdrantLabel": "Qdrant",
"rerankLabel": "Yenidən sıralama",
@@ -4440,20 +4444,20 @@
"configureCta": "Konfiqurasiya et",
"vectorStoreInstallHint": "Vektor axtarışını aktivləşdirmək üçün: npm install sqlite-vec (yerli Node.js tələb olunur, WASM yox), sonra yenidən başladın."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Epizodik",
+ "export": "İxrac et",
+ "factual": "Faktoloji",
"healthUnknown": "Sağlamlıq məlum deyil",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "Uyğunluq faizi",
+ "import": "İdxal et",
"importError": "Faylı idxal etmək alınmadı",
"importResult": "{imported} idxal edildi, {skipped} buraxıldı",
- "key": "Key",
+ "key": "Açar",
"keyPlaceholder": "məs. istifadəçi.tercihlər.mövzu",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Yaddaş qeydləri",
"next": "Sonrakı",
- "noMemories": "No memories found",
+ "noMemories": "Yaddaş qeydi tapılmadı",
"pageInfo": "{page} səhifədən {totalPages} (cəmi {total})",
"pipelineError": "Boru kəməri xətası",
"pipelineOk": "Boru kəməri OK ({latencyMs}ms)",
@@ -4470,7 +4474,7 @@
"simulate": "Simulyasiya et",
"resultsTitle": "{count} nəticə",
"resolutionTitle": "Axtarışın həlli",
- "resolutionEmbedding": "Embedding",
+ "resolutionEmbedding": "Vektorlaşdırma",
"resolutionStore": "Vektor anbarı",
"resolutionStrategy": "İstifadə olunan strategiya",
"rerankApplied": "Yenidən sıralama tətbiq edildi",
@@ -4481,7 +4485,7 @@
"errorFetch": "Önbaxışı əldə etmək alınmadı"
},
"previous": "Əvvəlki",
- "procedural": "Procedural",
+ "procedural": "Prosedur",
"qdrant": {
"title": "Qdrant (Vektor Anbarı Səviyyə 2)",
"description": "Ölçülə bilən semantik axtarış üçün istəyə bağlı Qdrant inteqrasiyası",
@@ -4530,8 +4534,8 @@
},
"save": "Saxla",
"saving": "Yadda saxlanılır...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Yaddaşda axtar...",
+ "semantic": "Semantik",
"summarize": {
"title": "Köhnə yaddaşları yığcamlaşdır",
"noCandidates": "Yığcamlaşdırma üçün uyğun yaddaş yoxdur (meyar: >30 gün köhnə).",
@@ -4540,11 +4544,11 @@
},
"tabs": {
"memories": "Yaddaşlar",
- "playground": "Playground",
- "engine": "Engine"
+ "playground": "Sınaq meydançası",
+ "engine": "Mühərrik"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Yaddaşın idarə edilməsi",
+ "tokensUsed": "İstifadə edilmiş tokenlər",
"tooltip": {
"totalEntries": "Bu API açarı üçün saxlanılan ümumi yaddaşlar",
"tokensUsed": "Aktiv yaddaşlar tərəfindən tutulan təxmini ümumi tokenlər",
@@ -4554,15 +4558,15 @@
"procedural": "Köməkçinin əməl etməli olduğu prosedurlar, iş axınları və təlimatlar",
"semantic": "Konseptlər, üstünlüklər və domen bilikləri"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "Ümumi qeydlər",
+ "type": "Növ",
"memoryEnabled": "Yaddaş aktivdir"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Bacarıqlar",
+ "description": "Süni intellekt bacarıqlarını idarə və monitorinq edin",
+ "skillsTab": "Bacarıqlar",
+ "executionsTab": "İcralar",
"selectSkillToInspect": "Yoxlamaq üçün soldan bir bacarıq seçin.",
"schemaTab": "Sxem",
"handlerTab": "İşləyici",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "Testi işə sal (yer tutucu)",
"setModeAria": "Rejimi {mode} olaraq təyin et",
"uninstallSkill": "Bacarığı quraşdırmadan çıxar",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "İzolyasiya edilmiş mühit",
+ "loading": "Bacarıqlar yüklənir...",
+ "noSkills": "Heç bir bacarıq tapılmadı",
+ "noExecutions": "Heç bir icra tapılmadı",
+ "enabled": "Aktiv",
+ "disabled": "Deaktiv",
"delete": "Sil",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "Versiya",
+ "tableDescription": "Təsvir",
+ "skill": "Bacarıq",
+ "status": "Vəziyyət",
+ "duration": "Müddət",
+ "time": "Vaxt",
+ "sandboxConfig": "Sandbox konfiqurasiyası",
+ "cpuLimit": "CPU limiti",
+ "cpuLimitDesc": "Hər bacarıq üçün maksimum icra müddəti",
+ "memoryLimit": "Yaddaş limiti",
+ "memoryLimitDesc": "Maksimum yaddaş ayrılması",
+ "timeout": "Taymaut",
+ "timeoutDesc": "Cavab üçün maksimum gözləmə müddəti",
+ "networkAccess": "Şəbəkə girişi",
+ "networkAccessDesc": "Xarici şəbəkə sorğularına icazə ver",
+ "mode": "Rejim",
"q": "Q",
"filterSkillsPlaceholder": "Bacarıqları ad, təsvir və ya etiketlə süzün",
"allModes": "Bütün rejimlər",
@@ -4603,7 +4607,7 @@
"enabledSkills": "Aktivdir",
"totalExecutions": "İcralar",
"successRate": "Uğur dərəcəsi",
- "marketplaceTab": "Marketplace",
+ "marketplaceTab": "Bazar",
"applyFilters": "Filtrləri tətbiq et",
"popularDefaultsLabel": "Seçilmiş provayder üçün standart olaraq populyar:",
"onMode": "AÇIQ",
@@ -4638,93 +4642,93 @@
"installSkill": "Bacarıq quraşdırın"
},
"health": {
- "title": "System Health",
- "description": "Real-time monitoring of your OmniRoute instance",
- "healthy": "Healthy",
- "degraded": "Degraded",
- "down": "Down",
- "uptime": "Uptime",
- "memory": "Memory",
- "memoryRss": "Memory (RSS)",
- "heap": "Heap",
+ "title": "Sistemin vəziyyəti",
+ "description": "OmniRoute instansiyanızın real vaxt rejimində monitorinqi",
+ "healthy": "Sağlam",
+ "degraded": "Qismən nasaz",
+ "down": "İşləmir",
+ "uptime": "Fasiləsiz işləmə müddəti",
+ "memory": "Yaddaş",
+ "memoryRss": "Yaddaş (RSS)",
+ "heap": "Yığın yaddaşı",
"cpu": "CPU",
- "database": "Database",
- "version": "Version",
- "lastCheck": "Last Check",
- "providerHealth": "Provider Health",
- "systemMetrics": "System Metrics",
- "tokenHealth": "Token Health",
- "refreshAll": "Refresh All",
- "checkNow": "Check Now",
- "loadingHealth": "Loading health data...",
- "failedToLoad": "Failed to load health data: {error}",
- "retry": "Retry",
- "allOperational": "All systems operational",
- "issuesDetected": "System issues detected",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
- "updatedAt": "Updated {time}",
- "latency": "Latency",
+ "database": "Verilənlər bazası",
+ "version": "Versiya",
+ "lastCheck": "Son yoxlama",
+ "providerHealth": "Provayderlərin vəziyyəti",
+ "systemMetrics": "Sistem metrikaları",
+ "tokenHealth": "Tokenlərin vəziyyəti",
+ "refreshAll": "Hamısını yenilə",
+ "checkNow": "İndi yoxla",
+ "loadingHealth": "Vəziyyət məlumatları yüklənir...",
+ "failedToLoad": "Vəziyyət məlumatlarını yükləmək alınmadı: {error}",
+ "retry": "Yenidən cəhd et",
+ "allOperational": "Bütün sistemlər işləkdir",
+ "issuesDetected": "Sistem problemləri aşkarlandı",
+ "healthVerdictReady": "OmniRoute hazırdır",
+ "healthVerdictActionRequired": "Tam fəaliyyəti bərpa etmək üçün tədbir tələb olunur",
+ "healthVerdictCoolingDown": "Son dəyişikliklərdən sonra soyuma gedir",
+ "healthSubtitle": "Sistemin sağlamlıq yoxlaması",
+ "advancedDiagnosticsTitle": "Qabaqcıl diaqnostika",
+ "hide": "Gizlət",
+ "show": "Göstər",
+ "updatedAt": "{time} tarixində yeniləndi",
+ "latency": "Gecikmə",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
"millisecondsShort": "{value}ms",
"notAvailable": "—",
- "totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "promptCache": "Prompt Cache",
- "entries": "Entries",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "signatureCache": "Signature Cache",
- "signatureDefaults": "Defaults",
- "signatureTool": "Tool",
- "signatureFamily": "Family",
- "signatureSession": "Session",
- "recovering": "Recovering",
- "noCBData": "No circuit breaker data available. Make some requests first.",
- "providerHealthStatusAria": "Provider health status",
- "issuesLabel": "Issues Detected",
- "operational": "Operational",
- "providers": "Providers",
- "configuredProvidersLabel": "Configured in dashboard",
- "configuredProvidersHint": "Providers with credentials saved in /dashboard/providers, regardless of runtime state.",
- "activeProviders": "{count} active",
- "activeProvidersHint": "Configured providers currently enabled for routing requests.",
- "monitoredProviders": "{count} monitored",
- "monitoredProvidersHint": "Providers currently tracked by circuit-breaker health monitors.",
- "healthyCount": "{count} healthy",
+ "totalRequests": "Ümumi sorğu sayı",
+ "noDataYet": "Hələ məlumat yoxdur",
+ "promptCache": "Sorğu keş yaddaşı",
+ "entries": "Qeydlər",
+ "hitRate": "Keşə düşmə faizi",
+ "hitsMisses": "Uğurlu / uğursuz keş axtarışları",
+ "signatureCache": "İmza keş yaddaşı",
+ "signatureDefaults": "Standart dəyərlər",
+ "signatureTool": "Alət",
+ "signatureFamily": "Ailə",
+ "signatureSession": "Sessiya",
+ "recovering": "Bərpa olunur",
+ "noCBData": "Avtomatik qoruma mexanizmi haqqında məlumat yoxdur. Əvvəlcə bir neçə sorğu göndərin.",
+ "providerHealthStatusAria": "Provayderlərin sağlamlıq vəziyyəti",
+ "issuesLabel": "Problemlər aşkarlandı",
+ "operational": "İşləkdir",
+ "providers": "Provayderlər",
+ "configuredProvidersLabel": "İdarəetmə panelində konfiqurasiya edilib",
+ "configuredProvidersHint": "İcra vəziyyətindən asılı olmayaraq, etimadnamələri /dashboard/providers bölməsində saxlanılan provayderlər.",
+ "activeProviders": "{count} aktiv",
+ "activeProvidersHint": "Hazırda sorğuların yönləndirilməsi üçün aktiv edilmiş konfiqurasiyalı provayderlər.",
+ "monitoredProviders": "{count} izlənilir",
+ "monitoredProvidersHint": "Hazırda avtomatik qoruma mexanizminin sağlamlıq monitorları tərəfindən izlənilən provayderlər.",
+ "healthyCount": "{count} sağlam",
"nodeVersion": "Node {version}",
- "failures": "{count} failure",
- "failuresPlural": "{count} failures",
- "lastFailure": "Last",
- "rateLimitStatus": "Rate Limit Status",
- "activeLimiters": "{count} active limiter",
- "activeLimitersPlural": "{count} active limiters",
- "queued": "Queued",
- "queuedCount": "{count} queued",
- "running": "running",
- "runningCount": "{count} running",
+ "failures": "{count} xəta",
+ "failuresPlural": "{count} xəta",
+ "lastFailure": "Sonuncu",
+ "rateLimitStatus": "Sorğu tezliyi limitinin vəziyyəti",
+ "activeLimiters": "{count} aktiv məhdudlaşdırıcı",
+ "activeLimitersPlural": "{count} aktiv məhdudlaşdırıcı",
+ "queued": "Növbədədir",
+ "queuedCount": "{count} növbədədir",
+ "running": "işləyir",
+ "runningCount": "{count} işləyir",
"ok": "OK",
- "activeLockouts": "Active Lockouts",
- "resetConfirm": "Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.",
- "resetAllTitle": "Reset all circuit breakers to healthy state",
- "resetting": "Resetting...",
- "resetAll": "Reset All",
- "until": "Until {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "activeLockouts": "Aktiv bloklamalar",
+ "resetConfirm": "Bütün dövrə açarları sağlam vəziyyətə sıfırlansın? Bu, bütün nasazlıq saylarını təmizləyəcək və bütün provayderləri işlək vəziyyətə qaytaracaq.",
+ "resetAllTitle": "Bütün dövrə açarlarını sağlam vəziyyətə sıfırla",
+ "resetting": "Sıfırlanır...",
+ "resetAll": "Hamısını sıfırla",
+ "until": "{time} vaxtınadək",
+ "limitExhausted": "Tükənib",
+ "learnedFromHeaders": "Başlıqlardan öyrənilib",
+ "remainingOfLimit": "{remaining}/{limit} qalıb",
+ "throttleStatus": "Məhdudlaşdırma: {value}",
+ "lastHeaderUpdate": "Başlıq yeniləməsi: {age}",
"databaseHealth": "Verilənlər Bazasının Sağlamlığı",
"databaseHealthDescription": "Köhnəlmiş kvota/domen sətirlərini və xətalı kombinasiya istinadlarını diaqnostika və təmir edin.",
- "status": "Status",
+ "status": "Vəziyyət",
"attentionNeeded": "Diqqət tələb olunur",
"repairs": "Təmirlər",
"repairing": "Təmir edilir...",
@@ -4781,131 +4785,131 @@
"lastError": "Son xəta"
},
"telemetry": {
- "title": "System Telemetry",
- "description": "Rolling request, runtime, session, and memory signals from this OmniRoute process.",
- "uptime": "Uptime",
- "totalRequests": "Total Requests",
- "avgLatency": "Avg Latency",
- "errorRate": "Error Rate",
- "activeConnections": "Active Connections",
- "memoryUsage": "Memory Usage",
- "latencyTrend": "Latency trend",
- "throughputTrend": "Throughput trend",
- "memoryTrend": "Memory trend",
- "refresh": "Refresh",
- "updatedAt": "Updated {time}",
- "loadFailed": "Failed to load telemetry.",
- "partialData": "Telemetry is partially available: {error}"
+ "title": "Sistem telemetriyası",
+ "description": "Bu OmniRoute prosesindən sorğular, icra müddəti, sessiya və yaddaş üzrə davamlı yenilənən siqnallar.",
+ "uptime": "İşləmə müddəti",
+ "totalRequests": "Ümumi sorğu sayı",
+ "avgLatency": "Orta gecikmə",
+ "errorRate": "Xəta faizi",
+ "activeConnections": "Aktiv bağlantılar",
+ "memoryUsage": "Yaddaş istifadəsi",
+ "latencyTrend": "Gecikmə tendensiyası",
+ "throughputTrend": "Ötürmə qabiliyyəti tendensiyası",
+ "memoryTrend": "Yaddaş tendensiyası",
+ "refresh": "Yenilə",
+ "updatedAt": "{time} tarixində yeniləndi",
+ "loadFailed": "Telemetriyanı yükləmək alınmadı.",
+ "partialData": "Telemetriya qismən əlçatandır: {error}"
},
"mitm": {
- "title": "MITM Proxy",
- "description": "Transparent proxy for intercepting and routing client requests.",
- "enable": "Enable MITM Proxy",
- "enableDesc": "Start or stop the local interception process and DNS override.",
- "status": "Status",
- "running": "Running",
- "stopped": "Stopped",
- "start": "Start",
- "stop": "Stop",
- "refresh": "Refresh",
- "port": "Proxy Port",
- "apiKey": "Router API Key",
- "apiKeyPlaceholder": "Optional; falls back to a local key",
- "sudoPassword": "Sudo Password",
- "cachedPassword": "Cached for this process",
- "saveSettings": "Save Settings",
- "settingsSaved": "MITM settings saved.",
- "startedSuccess": "MITM proxy started.",
- "stoppedSuccess": "MITM proxy stopped.",
- "saveFailed": "Failed to update MITM settings.",
- "loadFailed": "Failed to load MITM settings.",
- "invalidPort": "Transparent MITM interception currently requires port 443.",
- "certificate": "CA Certificate",
- "certificateReady": "Certificate is available for client trust installation.",
- "certificateMissing": "Certificate has not been generated yet.",
- "available": "Available",
- "missing": "Missing",
- "downloadCert": "Download CA Certificate",
- "regenerateCert": "Regenerate Certificate",
- "regenerateConfirm": "This will invalidate existing client trust. Continue?",
- "regenerateSuccess": "MITM certificate regenerated.",
- "regenerateFailed": "Failed to regenerate MITM certificate.",
- "targetRoutes": "Target Routes",
- "interceptedRequests": "Intercepted Requests",
- "activeConnections": "Active Connections",
- "dnsConfigured": "DNS Configured",
+ "title": "MITM Proksi",
+ "description": "Müştəri sorğularını ələ keçirmək və yönləndirmək üçün şəffaf proksi.",
+ "enable": "MITM Proksini aktivləşdir",
+ "enableDesc": "Lokal ələ keçirmə prosesini və DNS əvəzləməsini başladın və ya dayandırın.",
+ "status": "Vəziyyət",
+ "running": "İşləyir",
+ "stopped": "Dayandırılıb",
+ "start": "Başlat",
+ "stop": "Dayandır",
+ "refresh": "Yenilə",
+ "port": "Proksi portu",
+ "apiKey": "Router API açarı",
+ "apiKeyPlaceholder": "İstəyə bağlıdır; olmadıqda lokal açardan istifadə edilir",
+ "sudoPassword": "Sudo parolu",
+ "cachedPassword": "Bu proses üçün keşlənib",
+ "saveSettings": "Parametrləri yadda saxla",
+ "settingsSaved": "MITM parametrləri yadda saxlanıldı.",
+ "startedSuccess": "MITM proksisi başladıldı.",
+ "stoppedSuccess": "MITM proksisi dayandırıldı.",
+ "saveFailed": "MITM parametrlərini yeniləmək alınmadı.",
+ "loadFailed": "MITM parametrlərini yükləmək alınmadı.",
+ "invalidPort": "Şəffaf MITM ələ keçirməsi hazırda 443 portunu tələb edir.",
+ "certificate": "CA sertifikatı",
+ "certificateReady": "Sertifikat müştəri etimadının quraşdırılması üçün əlçatandır.",
+ "certificateMissing": "Sertifikat hələ yaradılmayıb.",
+ "available": "Əlçatandır",
+ "missing": "Mövcud deyil",
+ "downloadCert": "CA sertifikatını endir",
+ "regenerateCert": "Sertifikatı yenidən yarat",
+ "regenerateConfirm": "Bu, mövcud müştəri etimadını etibarsız edəcək. Davam edilsin?",
+ "regenerateSuccess": "MITM sertifikatı yenidən yaradıldı.",
+ "regenerateFailed": "MITM sertifikatını yenidən yaratmaq alınmadı.",
+ "targetRoutes": "Hədəf marşrutları",
+ "interceptedRequests": "Ələ keçirilmiş sorğular",
+ "activeConnections": "Aktiv bağlantılar",
+ "dnsConfigured": "DNS konfiqurasiya edilib",
"pid": "PID",
- "lastIntercept": "Last Intercept",
- "target": "Target",
+ "lastIntercept": "Son ələ keçirmə",
+ "target": "Hədəf",
"host": "Host",
- "localPort": "Local Port",
- "endpoints": "Endpoints",
- "enabled": "Enabled",
- "configured": "Configured",
- "yes": "Yes",
- "no": "No",
- "noTargets": "No target routes configured."
+ "localPort": "Lokal port",
+ "endpoints": "Son nöqtələr",
+ "enabled": "Aktivdir",
+ "configured": "Konfiqurasiya edilib",
+ "yes": "Bəli",
+ "no": "Xeyr",
+ "noTargets": "Heç bir hədəf marşrut konfiqurasiya edilməyib."
},
"limits": {
- "title": "Limits & Quotas",
- "rateLimit": "Rate Limit",
- "remaining": "Remaining",
- "requestsPerMinute": "Requests/min",
- "tokensPerMinute": "Tokens/min",
- "dailyLimit": "Daily Limit"
+ "title": "Limitlər və kvotalar",
+ "rateLimit": "Sürət limiti",
+ "remaining": "Qalıq",
+ "requestsPerMinute": "Sorğu/dəq",
+ "tokensPerMinute": "Token/dəq",
+ "dailyLimit": "Gündəlik limit"
},
"logs": {
- "title": "Logs",
- "requestLogs": "Request Logs",
- "proxyLogs": "Proxy Logs",
- "auditLog": "Audit Log",
+ "title": "Jurnallar",
+ "requestLogs": "Sorğu jurnalları",
+ "proxyLogs": "Proksi jurnalları",
+ "auditLog": "Audit jurnalı",
"console": "Console",
- "auditLogDesc": "Administrative actions and security events",
- "loading": "Loading...",
- "refresh": "Refresh",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
- "showing": "Showing {count} entries (offset {offset})",
- "search": "Search",
- "timestamp": "Timestamp",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "details": "Details",
- "ipAddress": "IP Address",
+ "auditLogDesc": "İnzibati əməliyyatlar və təhlükəsizlik hadisələri",
+ "loading": "Yüklənir...",
+ "refresh": "Yenilə",
+ "filterByAction": "Əməliyyata görə filtrlə...",
+ "filterByActor": "İcraçıya görə filtrlə...",
+ "filterEntriesAria": "Audit jurnalı qeydlərini filtrlə",
+ "filterByActionTypeAria": "Əməliyyat növünə görə filtrlə",
+ "filterByActorAria": "İcraçıya görə filtrlə",
+ "refreshAuditLogAria": "Audit jurnalını yenilə",
+ "tableAria": "Audit jurnalı qeydləri",
+ "failedFetchAuditLog": "Audit jurnalını əldə etmək mümkün olmadı",
+ "showing": "{count} qeyd göstərilir (yerdəyişmə {offset})",
+ "search": "Axtar",
+ "timestamp": "Vaxt möhürü",
+ "action": "Əməliyyat",
+ "actor": "İcraçı",
+ "target": "Hədəf",
+ "details": "Təfərrüatlar",
+ "ipAddress": "IP ünvanı",
"notAvailable": "—",
- "noEntries": "No audit log entries found",
- "previous": "Previous",
- "next": "Next",
- "providerWarningTitle": "Provider Warnings",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
- "providerWarningDesc": "Some providers returned warnings during request processing",
+ "noEntries": "Audit jurnalı qeydi tapılmadı",
+ "previous": "Əvvəlki",
+ "next": "Növbəti",
+ "providerWarningTitle": "Provayder xəbərdarlıqları",
+ "viewDetails": "Təfərrüatlara bax",
+ "eventMetadata": "Hadisə metadatası",
+ "eventPayload": "Hadisə məlumatları",
+ "requestId": "Sorğu ID-si",
+ "providerWarningDesc": "Sorğunun emalı zamanı bəzi provayderlər xəbərdarlıq qaytardı",
"a": "A",
- "offset": "Offset",
+ "offset": "Ofset",
"limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "status": "Vəziyyət",
+ "resourceType": "Resurs növü",
+ "totalEntries": "Ümumi qeydlər",
+ "tab": "Vərəq",
+ "auditModalSubtitle": "Hadisə təfərrüatları və metadatası",
+ "close": "Bağla",
+ "runningRequests": "Aktiv sorğular",
+ "runningRequestsDesc": "Hazırda icra olunan yuxarı axın sorğularının real vaxt görünüşü",
"clearAll": "Hamısını Sil",
"confirmClearActiveRequests": "Bütün aktiv sorğular silinsin?",
"model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "provider": "Provayder",
+ "account": "Hesab",
+ "elapsed": "Keçən vaxt",
"activeStage": "Mərhələ",
"activeStageUnknown": "Hələ upstream-ə göndərilməyib",
"activeStageRegistered": "Qeydə alındı",
@@ -4915,99 +4919,99 @@
"activeStageRateLimitSlotAcquired": "Rate limit slotu əldə edildi",
"activeStageSendingToProvider": "Upstream-ə göndərilir",
"activeStageProviderResponseStarted": "Upstream cavabı başladı",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "Say",
+ "payloads": "Faydalı yüklər",
+ "viewPayloads": "Bax",
+ "activeCount": "{count} aktiv",
+ "clientPayload": "Müştəri sorğusunun faydalı yükü",
+ "upstreamPayload": "Yuxarı axın provayderinin faydalı yükü",
+ "upstreamNotSentYet": "Hələ yuxarı axına göndərilməyib",
+ "runningRequestDetailMeta": "Hesab: {account} — Keçən vaxt: {elapsed}",
+ "export": "İxrac et",
+ "exporting": "İxrac edilir...",
+ "exportFailed": "İxrac uğursuz oldu",
"cleanHistoryButton": "Tarixçəni təmizlə",
"cleanHistoryTitle": "Jurnal tarixçəsi təmizlənsin?",
"cleanHistoryMessage": "Bu, DATA_DIR/call_logs altındakı bütün sorğu jurnalı sətirlərini, köhnə təfərrüat sətirlərini və yerli artefakt fayllarını həmişəlik təmizləyir. Canlı səhifə təmizləmədən sonra yenilənəcək.",
"cleanHistoryConfirm": "Tarixçəni təmizlə",
"cleanHistoryCancel": "Ləğv et",
"cleanHistorySuccess": "{deleted} jurnal qeydi, {deletedArtifacts} artefakt və {deletedDetailedLogs} köhnə təfərrüat sətri təmizləndi.",
- "cleanHistoryEmpty": "No request log history was found.",
- "cleanHistoryFailed": "Failed to clean log history.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "cleanHistoryEmpty": "Sorğu jurnalı tarixçəsi tapılmadı.",
+ "cleanHistoryFailed": "Jurnal tarixçəsini təmizləmək alınmadı.",
+ "timeRange": "Vaxt aralığı",
+ "lastNHours": "Son {hours}",
+ "defaultRange": "standart",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
- "filterByLevel": "Filter by log level",
- "searchPlaceholder": "Search logs…",
- "searchAria": "Search log entries",
- "disableAutoScroll": "Disable auto-scroll",
- "enableAutoScroll": "Enable auto-scroll",
- "autoScroll": "Auto-scroll",
- "entryCount": "{count, plural, one {# entry} other {# entries}}",
- "lastHour": "Last 1h",
- "updatedAt": "Updated {time}",
- "fileLoggingRequired": "Make sure the application is writing logs to a file (APP_LOG_TO_FILE=true)",
- "consoleAria": "Application console logs",
- "applicationConsole": "Application Console",
- "emptyFileLoggingHint": "Ensure APP_LOG_TO_FILE=true is set in your .env file"
+ "fetchFailed": "Jurnalları əldə etmək alınmadı",
+ "copyFailed": "Jurnal qeydini kopyalamaq alınmadı",
+ "copyLogEntry": "Jurnal qeydini kopyala",
+ "filterByLevel": "Jurnal səviyyəsinə görə filtrlə",
+ "searchPlaceholder": "Jurnallarda axtar…",
+ "searchAria": "Jurnal qeydlərini axtar",
+ "disableAutoScroll": "Avtomatik sürüşdürməni deaktiv et",
+ "enableAutoScroll": "Avtomatik sürüşdürməni aktiv et",
+ "autoScroll": "Avtomatik sürüşdürmə",
+ "entryCount": "{count, plural, one {# qeyd} other {# qeyd}}",
+ "lastHour": "Son 1 saat",
+ "updatedAt": "{time} tarixində yeniləndi",
+ "fileLoggingRequired": "Tətbiqin jurnalları fayla yazdığından əmin olun (APP_LOG_TO_FILE=true)",
+ "consoleAria": "Tətbiq konsolu jurnalları",
+ "applicationConsole": "Tətbiq Konsolu",
+ "emptyFileLoggingHint": ".env faylınızda APP_LOG_TO_FILE=true parametrinin təyin edildiyinə əmin olun"
},
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
- "tokens": "tokens"
+ "compressionLogTitle": "Sıxılma Jurnalı",
+ "compressionLogEmpty": "Hələ sıxılmış sorğu yoxdur. Sorğular sıxılma aktiv halda emal edildikdə sıxılma statistikası burada görünəcək.",
+ "tokens": "tokenlər"
},
"onboarding": {
- "welcome": "Welcome",
- "tiers": "Tiers",
- "security": "Security",
+ "welcome": "Xoş gəlmisiniz",
+ "tiers": "Səviyyələr",
+ "security": "Təhlükəsizlik",
"test": "Test",
- "ready": "Ready!",
- "setPassword": "Set Password",
- "addProvider": "Add your first provider",
- "getStarted": "Get Started",
- "skip": "Skip",
- "skipWizard": "Skip wizard entirely",
- "skipPassword": "Skip password setup",
- "skipAndContinue": "Skip & Continue",
- "passwordLabel": "Password",
- "confirmPassword": "Confirm Password",
- "enterPassword": "Enter password",
- "confirmPasswordPlaceholder": "Confirm password",
- "passwordsMismatch": "Passwords do not match",
- "setupComplete": "Setup Complete!",
- "goToDashboard": "Go to Dashboard →",
- "welcomeDesc": "OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "multiProvider": "Multi-Provider",
- "usageTracking": "Usage Tracking",
- "securityDesc": "Set a password to protect your dashboard, or skip for now.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
- "providerDesc": "Connect your first AI provider. You can add more later.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
- "apiKeyRequired": "API Key (required)",
- "customUrlOptional": "Custom URL (optional)",
- "testDesc": "Let's verify your provider connection works.",
- "runTest": "Run Connection Test",
- "testingConnection": "Testing connection...",
- "connectionSuccessful": "Connection successful! Your provider is ready.",
- "noProviderFound": "No provider found. You can add one from the dashboard later.",
- "testFailed": "Test failed, but you can configure this later.",
- "couldNotTest": "Could not test right now. You can test from the dashboard.",
- "doneDesc": "You're all set! Your OmniRoute instance is configured and ready to proxy AI requests.",
- "yourEndpoint": "Your endpoint:",
- "continue": "Continue",
- "retry": "Retry",
- "failedSetPassword": "Failed to set password. Try again.",
- "failedAddProvider": "Failed to add provider. Try again.",
- "connectionError": "Connection error. Please try again.",
- "provider": "Provider",
+ "ready": "Hazırdır!",
+ "setPassword": "Parol təyin edin",
+ "addProvider": "İlk provayderinizi əlavə edin",
+ "getStarted": "Başlayın",
+ "skip": "Keçin",
+ "skipWizard": "Quraşdırma köməkçisini tamamilə keçin",
+ "skipPassword": "Parol quraşdırmasını keçin",
+ "skipAndContinue": "Keçin və davam edin",
+ "passwordLabel": "Parol",
+ "confirmPassword": "Parolu təsdiqləyin",
+ "enterPassword": "Parolu daxil edin",
+ "confirmPasswordPlaceholder": "Parolu təsdiqləyin",
+ "passwordsMismatch": "Parollar uyğun gəlmir",
+ "setupComplete": "Quraşdırma tamamlandı!",
+ "goToDashboard": "İdarəetmə panelinə keçin →",
+ "welcomeDesc": "OmniRoute yerli AI API proksinizdir. O, yük balanslaşdırması, nasazlıq zamanı ehtiyat keçid və istifadə izləməsi ilə sorğuları bir neçə AI provayderinə yönləndirir.",
+ "multiProvider": "Çoxsaylı provayder",
+ "usageTracking": "İstifadənin izlənməsi",
+ "securityDesc": "İdarəetmə panelinizi qorumaq üçün parol təyin edin və ya hələlik keçin.",
+ "securityDescSkipWarning": "⚠️ Parol olmadan quraşdırma zamanı provayder əlavə edə bilməyəcəksiniz. Parol təyin etdikdən sonra onları idarəetmə panelindən əlavə edə bilərsiniz.",
+ "providerDesc": "İlk AI provayderinizə qoşulun. Daha sonra əlavə provayderlər əlavə edə bilərsiniz.",
+ "providerRequiresPassword": "Provayder əlavə etmək üçün əvvəlcə parol təyin etməlisiniz. Təhlükəsizlik mərhələsinə qayıdıb parol təyin edin və ya provayderləri daha sonra idarəetmə panelindən əlavə edin.",
+ "apiKeyRequired": "API açarı (tələb olunur)",
+ "customUrlOptional": "Fərdi URL (istəyə bağlı)",
+ "testDesc": "Gəlin provayder bağlantınızın işlədiyini yoxlayaq.",
+ "runTest": "Bağlantı testini başladın",
+ "testingConnection": "Bağlantı yoxlanılır...",
+ "connectionSuccessful": "Bağlantı uğurla quruldu! Provayderiniz hazırdır.",
+ "noProviderFound": "Heç bir provayder tapılmadı. Daha sonra idarəetmə panelindən provayder əlavə edə bilərsiniz.",
+ "testFailed": "Sınaq uğursuz oldu, lakin bunu daha sonra konfiqurasiya edə bilərsiniz.",
+ "couldNotTest": "Hazırda sınaqdan keçirmək mümkün olmadı. İdarəetmə panelindən sınaqdan keçirə bilərsiniz.",
+ "doneDesc": "Hər şey hazırdır! OmniRoute instansiyanız konfiqurasiya edilib və AI sorğularını proksi etməyə hazırdır.",
+ "yourEndpoint": "Son nöqtəniz:",
+ "continue": "Davam et",
+ "retry": "Yenidən cəhd et",
+ "failedSetPassword": "Parolu təyin etmək alınmadı. Yenidən cəhd edin.",
+ "failedAddProvider": "Provayderi əlavə etmək alınmadı. Yenidən cəhd edin.",
+ "connectionError": "Bağlantı xətası. Yenidən cəhd edin.",
+ "provider": "Provayder",
"apiKeyHelp": "API açarı AI xidmətləri üçün paroldur. Provayderinizin veb saytından birini əldə edin (məsələn, platform.openai.com, console.anthropic.com).",
"tier": {
"subtitle": "OmniRoute provayderləri üç pillədə təşkil edir ki, marşrutlaşdırma əvvəlcə ən etibarlı, ən ucuz yola üstünlük verir.",
- "flowCaption": "Requests flow through your subscription quotas first, then pay-per-token cheap providers, then free-tier providers — automatic, zero-config.",
- "afterSetup": "after setup.",
+ "flowCaption": "Sorğular əvvəlcə abunəlik kvotalarınızdan, sonra tokenə görə ödənişli ucuz provayderlərdən, daha sonra isə pulsuz tarifli provayderlərdən keçir — avtomatik, konfiqurasiya tələb olunmadan.",
+ "afterSetup": "quraşdırmadan sonra.",
"tier1": {
"label": "Premium müştərilər",
"description": "Doğma auth axınları və əsaslandırma modelləri ilə birinci dərəcəli CLI-lər."
@@ -5045,33 +5049,36 @@
}
},
"providers": {
- "title": "Providers",
- "Account Deactivated": "Account Deactivated",
+ "title": "Provayderlər",
+ "Account Deactivated": "Hesab deaktiv edilib",
"allProviders": "Bütün Provayderlər",
"audioProviders": "Audio Provayderlər",
"showFreeOnly": "Yalnız pulsuz",
- "addProvider": "Add Provider",
+ "addProvider": "Provayder əlavə et",
"addFirstProvider": "İlk provayderinizi əlavə edin",
"addFirstProviderDesc": "OmniRoute vasitəsilə sorğuların yönləndirilməsinə başlamaq üçün AI provayderini birləşdirin. Siz pulsuz provayderlərdən, API açarlarından və ya OAuth hesablarından istifadə edə bilərsiniz.",
"learnMore": "Ətraflı məlumat əldə edin",
- "importFromFile": "Import from file",
- "importFromFileTitle": "Import providers from file",
- "importFromFileDescription": "Upload a CSV or JSON file listing multiple providers (each row can be a different provider type). Review the parsed rows below and pick which ones to import.",
- "importFromFileChoose": "Choose file",
- "importFromFileSelectHint": "{count} of {total} selected",
- "importFromFileColProvider": "Provider",
- "importFromFileColName": "Name",
- "importFromFileColBaseUrl": "Base URL",
- "importFromFileErrorLine": "Row {line}: {reason}",
- "importErrorMissingProvider": "missing provider",
- "importErrorMissingName": "missing name",
- "importErrorMissingApiKey": "missing API key",
- "importErrorInvalidPriority": "invalid priority (must be 1-100)",
- "importErrorMalformedRow": "malformed row",
- "importErrorNotArray": "file must contain a JSON array",
- "importFromFileImporting": "Importing…",
- "importFromFileImport": "Import {count} providers",
- "importFromFileResult": "Imported {success} providers ({failed} failed)",
+ "importFromFile": "Fayldan idxal et",
+ "importFromFileTitle": "Provayderləri fayldan idxal et",
+ "importFromFileDescription": "Bir neçə provayderin siyahısını ehtiva edən CSV və ya JSON faylı yükləyin (hər sətir fərqli provayder növü ola bilər). Aşağıda təhlil edilmiş sətirləri nəzərdən keçirin və idxal ediləcəkləri seçin.",
+ "importFromFileChoose": "Fayl seçin",
+ "importFromFileSelectHint": "{total} elementdən {count} seçilib",
+ "importFromFileColProvider": "Provayder",
+ "importFromFileColName": "Ad",
+ "importFromFileColBaseUrl": "Baza URL-i",
+ "importFromFileErrorLine": "Sətir {line}: {reason}",
+ "importErrorMissingProvider": "provayder yoxdur",
+ "importErrorMissingName": "ad yoxdur",
+ "importErrorMissingApiKey": "API açarı yoxdur",
+ "importErrorInvalidPriority": "prioritet yanlışdır (1–100 arasında olmalıdır)",
+ "importErrorMalformedRow": "sətirin formatı yanlışdır",
+ "importErrorNotArray": "faylda JSON massivi olmalıdır",
+ "importFromFileImporting": "İdxal edilir…",
+ "importFromFileImport": "{count} provayderi idxal et",
+ "importFromFileResult": "{success} provayder idxal edildi ({failed} uğursuz oldu)",
+ "importFromFileDownloadTemplate": "CSV şablonunu endir",
+ "importFromFileMoreErrors": "daha +{count}",
+ "importFromFileSchemaHint": "CSV sütunları mövqeyə görə sıralanır: provider, name, apiKey, baseUrl (istəyə bağlı), priority (istəyə bağlı). provider sütununda mövcud idarə olunan provayder identifikatoru və ya artıq qeydiyyatdan keçmiş OpenAI/Anthropic-uyğun qovşaq identifikatoru olmalıdır — bu idxal yeni son nöqtə qovşaqları yaratmır.",
"adaptaTutorial": {
"title": "Adapta Web-ə necə qoşulmaq olar",
"introPrefix": "Adapta Clerk vasitəsilə autentifikasiyadan keçir. Token",
@@ -5099,31 +5106,31 @@
"tipPrefix": "Həmin",
"tipSuffix": "kukisi uzunömürlüdür, adətən aylarla etibarlıdır. Yalnız sistemdən çıxış etdikdə və ya Adapta sessiyanı ləğv etdikdə onu yeniləməlisiniz."
},
- "editProvider": "Edit Provider",
- "deleteProvider": "Delete Provider",
- "noProviders": "No providers configured",
- "modelAvailability": "Model Availability",
- "accounts": "Accounts",
- "newAccount": "New Account",
- "deleteConfirm": "Are you sure you want to delete this provider?",
- "testing": "Testing...",
- "testConnection": "Test Connection",
- "testSuccess": "Connection successful",
- "testFailed": "Connection failed",
- "available": "Available",
- "cooldown": "Cooldown",
- "unavailable": "Unavailable",
- "unknown": "Unknown",
+ "editProvider": "Provayderi redaktə et",
+ "deleteProvider": "Provayderi sil",
+ "noProviders": "Heç bir provayder konfiqurasiya edilməyib",
+ "modelAvailability": "Model əlçatanlığı",
+ "accounts": "Hesablar",
+ "newAccount": "Yeni hesab",
+ "deleteConfirm": "Bu provayderi silmək istədiyinizə əminsiniz?",
+ "testing": "Sınaqdan keçirilir...",
+ "testConnection": "Bağlantını sınaqdan keçir",
+ "testSuccess": "Bağlantı uğurla quruldu",
+ "testFailed": "Bağlantı uğursuz oldu",
+ "available": "Əlçatandır",
+ "cooldown": "Gözləmə müddəti",
+ "unavailable": "Əlçatan deyil",
+ "unknown": "Naməlum",
"oauthLabel": "OAuth",
- "compatibleLabel": "Compatible",
+ "compatibleLabel": "Uyğundur",
"chat": "Chat",
"responses": "Responses",
"messages": "Messages",
- "oauthProviders": "OAuth Providers",
- "freeProviders": "Free Providers",
- "apiKeyProviders": "API Key Providers",
- "compatibleProviders": "API Key Compatible Providers",
- "testAll": "Test All",
+ "oauthProviders": "OAuth provayderləri",
+ "freeProviders": "Pulsuz provayderlər",
+ "apiKeyProviders": "API açarı provayderləri",
+ "compatibleProviders": "API açarı ilə uyğun provayderlər",
+ "testAll": "Hamısını sınaqdan keçir",
"reorderByAvailability": "Yenidən sırala",
"reorderByAvailabilityTitle": "Bağlantıları əlçatanlığa görə yenidən sırala",
"reorderByAvailabilityError": "Bağlantıları əlçatanlığa görə yenidən sıralamaq alınmadı",
@@ -5131,10 +5138,10 @@
"distributing": "Paylanır...",
"selectedCount": "{count, plural, one {# seçilib} other {# seçilib}}",
"accountsCount": "{count, plural, one {# hesab} other {# hesab}}",
- "testAllOAuth": "Test all OAuth connections",
- "testAllFree": "Test all Free connections",
- "testAllApiKey": "Test all API Key connections",
- "testAllCompatible": "Test all Compatible connections",
+ "testAllOAuth": "Bütün OAuth bağlantılarını sınaqdan keçir",
+ "testAllFree": "Bütün pulsuz bağlantıları sınaqdan keçir",
+ "testAllApiKey": "Bütün API açarı bağlantılarını sınaqdan keçir",
+ "testAllCompatible": "Bütün uyğun bağlantıları sınaqdan keçir",
"testAllModels": "Bütün modelləri test edin",
"testAllModelsConfirm": "Bütün görünən modellər test edilsin? Avtomatik gizlətmə aktivdirsə, xətalı modellər gizlədiləcək.",
"testingAllModels": "{done}/{total} test edilir...",
@@ -5150,9 +5157,9 @@
"filterByVisibility": "Görünürlüyə görə filtrlə",
"autoHideFailed": "Uğursuz modelləri avtomatik gizlət",
"autoHideFailedHint": "Aktiv edildikdə, 'Hamısını sınaqdan keçir' /v1/models kimi ictimai kataloqlardan qeyri-müvəqqəti xətaları gizlədir. Tək model sınaqları heç vaxt avtomatik gizlədilmir.",
- "connected": "{count} Connected",
- "errorCount": "{count} Error ({code})",
- "errorCountNoCode": "{count} Error",
+ "connected": "{count} qoşulub",
+ "errorCount": "{count} xəta ({code})",
+ "errorCountNoCode": "{count} xəta",
"testAllCompleted": "{total} model sınaqdan keçirildi: {ok} OK, {failed} uğursuz",
"modelAutoHidden": "{model} modeli avtomatik gizlədildi (sınaq uğursuz oldu)",
"filterAll": "Hamısı",
@@ -5160,21 +5167,21 @@
"filterHidden": "Yalnız gizlədilənlər",
"modelsHiddenCount": "{count} gizli",
"warningCount": "{count} Xəbərdarlıq",
- "noConnections": "No connections",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
- "freeTier": "Free Tier",
- "freeTierAvailable": "Free tier available",
+ "noConnections": "Bağlantı yoxdur",
+ "expiredBadge": "Müddəti bitib",
+ "expiringSoonBadge": "Müddəti tezliklə bitəcək",
+ "freeTier": "Pulsuz tarif",
+ "freeTierAvailable": "Pulsuz tarif mövcuddur",
"hasFreeTooltip": "Pulsuz paket mövcuddur",
"noAuthLabel": "Autentifikasiyasız",
"noAuthProviders": "Autentifikasiyasız provayderlər",
"upstreamProxyLabel": "Upstream Proksi",
"freeAggregated": "Pulsuz paketi olan bütün provayderlər (həmçinin öz əsas kateqoriyalarında göstərilir)",
- "deprecated": "Deprecated",
- "deprecatedProvider": "This provider has been deprecated",
+ "deprecated": "Köhnəlib",
+ "deprecatedProvider": "Bu provayder köhnəlmiş elan edilib",
"riskNotice": {
"title": "Davam etməzdən əvvəl",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "İstifadə ilə bağlı qeydlər",
"tooltip": "İstifadə xəbərdarlıqları olan provayder — ətraflı məlumat üçün klikləyin",
"oauth": "Bu provayder proksi/router istifadəsi üçün icazə verilməyən rəsmi məhsul sessiyanızdan/OAuth-dan istifadə edir. İntensiv avtonom agent istifadəsini (OpenCloud tərzi, uzun çoxmərhələli axınlar, böyük paketlər) tövsiyə etmirik — upstream xidmət hesabı məhdudlaşdırmaqla və ya bloklamaqla reaksiya verə bilər. Riski öz üzərinizə götürərək istifadə edin.",
"webCookie": "Bu provayder veb sessiya kukiləriniz vasitəsilə autentifikasiya edir. Upstream xidmət istənilən vaxt sessiyanı ləğv edə bilər və bu da yenidən daxil olmağınızı tələb edər. Uzunmüddətli nəzarətsiz əməliyyatlar üçün tövsiyə edilmir. Riski öz üzərinizə götürərək istifadə edin.",
@@ -5184,95 +5191,95 @@
"cancel": "Ləğv et"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} bağlantı işarələnib — son {maxFailures} nasazlığadək{lastFailureSuffix}. Bağlantı vəziyyətinə baxmaq üçün klikləyin.",
+ "lastFailureSuffix": "(son nasazlıq {time})",
+ "ariaLabel": "Bağlantı vəziyyətinin təfərrüatlarına baxın, {count} xəbərdarlıq"
},
- "disabled": "Disabled",
- "enableProvider": "Enable provider",
- "disableProvider": "Disable provider",
- "testResults": "Test Results",
- "noCompatibleYet": "No compatible providers added yet",
- "compatibleHint": "Use the buttons above to add OpenAI or Anthropic compatible endpoints",
- "addOpenAICompatible": "Add OpenAI Compatible",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "addNewProvider": "Add New Provider",
- "backToProviders": "Back to Providers",
- "configureNewProvider": "Configure a new AI provider to use with your applications.",
- "providerLabel": "Provider",
- "selectProvider": "Select a provider",
- "selectedProvider": "Selected provider",
- "authMethod": "Authentication Method",
- "apiKeyLabel": "API Key",
- "apiKeyRequired": "API Key is required",
- "selectProviderRequired": "Please select a provider",
- "enterApiKey": "Enter your API key",
- "apiKeySecure": "Your API key will be encrypted and stored securely.",
- "oauth2Connect": "Connect with OAuth2",
+ "disabled": "Deaktiv edilib",
+ "enableProvider": "Provayderi aktivləşdir",
+ "disableProvider": "Provayderi deaktiv et",
+ "testResults": "Sınaq nəticələri",
+ "noCompatibleYet": "Hələ heç bir uyğun provayder əlavə edilməyib",
+ "compatibleHint": "OpenAI və ya Anthropic ilə uyğun endpointlər əlavə etmək üçün yuxarıdakı düymələrdən istifadə edin",
+ "addOpenAICompatible": "OpenAI ilə uyğun provayder əlavə et",
+ "addAnthropicCompatible": "Anthropic ilə uyğun provayder əlavə et",
+ "addNewProvider": "Yeni provayder əlavə et",
+ "backToProviders": "Provayderlərə qayıt",
+ "configureNewProvider": "Tətbiqlərinizlə istifadə etmək üçün yeni AI provayderi konfiqurasiya edin.",
+ "providerLabel": "Provayder",
+ "selectProvider": "Provayder seçin",
+ "selectedProvider": "Seçilmiş provayder",
+ "authMethod": "Doğrulama üsulu",
+ "apiKeyLabel": "API açarı",
+ "apiKeyRequired": "API açarı tələb olunur",
+ "selectProviderRequired": "Provayder seçin",
+ "enterApiKey": "API açarınızı daxil edin",
+ "apiKeySecure": "API açarınız şifrələnəcək və təhlükəsiz şəkildə saxlanılacaq.",
+ "oauth2Connect": "OAuth2 ilə qoşul",
"oauth2Label": "OAuth2",
- "oauth2Desc": "Connect your account using OAuth2 authentication.",
- "displayName": "Display Name",
- "displayNamePlaceholder": "e.g., Production API, Dev Environment",
- "displayNameHint": "Optional. A friendly name to identify this configuration.",
- "active": "Active",
- "activeDescription": "Enable this provider for use in your applications",
- "cancel": "Cancel",
- "createProvider": "Create Provider",
- "failedCreate": "Failed to create provider",
- "errorOccurred": "An error occurred. Please try again.",
- "modelStatus": "Model Status",
- "showConfiguredOnly": "Configured only",
- "allModelsOperational": "All models operational",
- "modelsWithIssues": "{count} model(s) with issues",
- "allModelsNormal": "All models are responding normally.",
- "cooldownCleared": "Cooldown cleared for {model}",
- "failedClearCooldown": "Failed to clear cooldown",
- "loadingAvailability": "Loading model availability...",
- "clearCooldown": "Clear",
- "clearing": "Clearing...",
- "until": "Until {time}",
- "providerTestFailed": "Provider test failed",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "oauth2Desc": "OAuth2 autentifikasiyasından istifadə edərək hesabınızı qoşun.",
+ "displayName": "Görünən ad",
+ "displayNamePlaceholder": "məs., İstehsal API-si, İnkişaf mühiti",
+ "displayNameHint": "İstəyə bağlıdır. Bu konfiqurasiyanı müəyyən etmək üçün anlaşılan ad.",
+ "active": "Aktiv",
+ "activeDescription": "Tətbiqlərinizdə istifadə etmək üçün bu provayderi aktivləşdirin",
+ "cancel": "Ləğv et",
+ "createProvider": "Provayder yarat",
+ "failedCreate": "Provayder yaratmaq alınmadı",
+ "errorOccurred": "Xəta baş verdi. Yenidən cəhd edin.",
+ "modelStatus": "Model statusu",
+ "showConfiguredOnly": "Yalnız konfiqurasiya edilmişlər",
+ "allModelsOperational": "Bütün modellər işləkdir",
+ "modelsWithIssues": "{count} modeldə problem var",
+ "allModelsNormal": "Bütün modellər normal cavab verir.",
+ "cooldownCleared": "{model} üçün gözləmə müddəti sıfırlandı",
+ "failedClearCooldown": "Gözləmə müddətini sıfırlamaq alınmadı",
+ "loadingAvailability": "Modellərin əlçatanlığı yüklənir...",
+ "clearCooldown": "Təmizlə",
+ "clearing": "Təmizlənir...",
+ "until": "{time} vaxtınadək",
+ "providerTestFailed": "Provayder sınağı uğursuz oldu",
+ "providerTestTimeout": "Provayder sınağının vaxtı bitdi — eyni anda sınaqdan keçirmək üçün həddindən artıq çox bağlantı var",
"modeTest": "{mode} Test",
- "passedCount": "{count} passed",
- "failedCount": "{count} failed",
- "testedCount": "{count} tested",
+ "passedCount": "{count} uğurlu",
+ "failedCount": "{count} uğursuz",
+ "testedCount": "{count} sınaqdan keçirildi",
"millisecondsAbbr": "{value}ms",
"okShort": "OK",
- "errorShort": "ERROR",
- "noActiveConnectionsInGroup": "No active connections found for this group.",
- "allTestsPassed": "All {total} tests passed",
- "testSummary": "{passed}/{total} passed, {failed} failed",
- "nameLabel": "Name",
+ "errorShort": "XƏTA",
+ "noActiveConnectionsInGroup": "Bu qrup üçün aktiv bağlantı tapılmadı.",
+ "allTestsPassed": "Bütün {total} sınaq uğurla keçdi",
+ "testSummary": "{passed}/{total} uğurlu, {failed} uğursuz",
+ "nameLabel": "Ad",
"prefixLabel": "Prefix",
- "baseUrlLabel": "Base URL",
- "apiTypeLabel": "API Type",
- "prefixHint": "Required. Unique prefix for model names.",
- "nameHint": "Required. A friendly label for this node.",
- "baseUrlHint": "Required. Provider API base URL.",
+ "baseUrlLabel": "Baza URL",
+ "apiTypeLabel": "API növü",
+ "prefixHint": "Mütləqdir. Model adları üçün unikal prefiks.",
+ "nameHint": "Mütləqdir. Bu qovşaq üçün anlaşılan etiket.",
+ "baseUrlHint": "Mütləqdir. Provayder API-sinin baza URL-i.",
"iconUrlLabel": "İkon URL-i",
"iconUrlHint": "İstəyə bağlı. Bu provayderin ikonu kimi göstərilən şəkil URL-i.",
"iconUrlInvalid": "Yanlış ikon URL-si. http(s):// və ya data:image/*;base64 URL istifadə edin.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Gündəlik kvotanın sıfırlanma saat qurşağı",
+ "dailyQuotaResetTimezoneHint": "Yuxarı axın X-RateLimit-Reset parametrini təqdim etmədikdə istifadə olunan ixtiyari IANA saat qurşağı. Qısa gözləmə müddətini saxlamaq üçün boş buraxın.",
+ "dailyQuotaResetHourLabel": "Gündəlik kvotanın sıfırlanma saatı",
+ "dailyQuotaResetHourHint": "Yuxarıdakı saat qurşağında 0-23 arası yerli saat. Boş buraxıldıqda qovşaq səviyyəsində vaxt təyin edilmir.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
- "validateConnection": "Validate Connection",
- "validating": "Validating...",
- "connectionValid": "Connection is valid!",
- "connectionFailed": "Connection failed. Check URL and key.",
- "testKeyLabel": "Test API Key",
- "testKeyPlaceholder": "sk-... (for validation only)",
- "providerNotFound": "Provider not found",
- "deleteConnectionConfirm": "Delete this connection?",
+ "validateConnection": "Bağlantını yoxla",
+ "validating": "Yoxlanılır...",
+ "connectionValid": "Bağlantı etibarlıdır!",
+ "connectionFailed": "Bağlantı uğursuz oldu. URL-i və açarı yoxlayın.",
+ "testKeyLabel": "API açarını sınaqdan keçir",
+ "testKeyPlaceholder": "sk-... (yalnız yoxlama üçün)",
+ "providerNotFound": "Provayder tapılmadı",
+ "deleteConnectionConfirm": "Bu bağlantı silinsin?",
"deleteConnectionConfirmNamed": "{name} silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Seçilənləri sil ({count})",
+ "batchDeleteConfirm": "{count} bağlantı silinsin? Bu əməliyyatı geri qaytarmaq mümkün deyil.",
+ "batchDeleteSuccess": "{count} bağlantı silindi",
"batchActivateSelected": "Aktivləşdir",
"batchDeactivateSelected": "Deaktiv et",
"batchRetestSelected": "Yenidən sınaqdan keçir",
@@ -5288,32 +5295,32 @@
"filterError": "Xəta",
"filterBanned": "Qadağan edilib",
"filterCreditsExhausted": "Kreditlər bitib",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Hesablarda axtarış…",
"noFilteredConnections": "Cari filtrə uyğun gələn heç bir bağlantı yoxdur.",
- "failedSetAlias": "Failed to set alias",
+ "failedSetAlias": "Ləqəbi təyin etmək alınmadı",
"setAliasSuccess": "Alias {alias} təyin edildi",
"deleteAliasSuccess": "Alias {alias} silindi",
- "failedSaveConnection": "Failed to save connection",
- "failedSaveConnectionRetry": "Failed to save connection. Please try again.",
- "failedRetestConnection": "Failed to retest connection",
- "deleteCompatibleNodeConfirm": "Delete this {type} Compatible node?",
- "anthropicCompatibleDetails": "Anthropic Compatible Details",
- "openaiCompatibleDetails": "OpenAI Compatible Details",
+ "failedSaveConnection": "Bağlantını saxlamaq alınmadı",
+ "failedSaveConnectionRetry": "Bağlantını saxlamaq alınmadı. Yenidən cəhd edin.",
+ "failedRetestConnection": "Bağlantını yenidən sınaqdan keçirmək alınmadı",
+ "deleteCompatibleNodeConfirm": "Bu {type} Compatible qovşağı silinsin?",
+ "anthropicCompatibleDetails": "Anthropic Compatible təfərrüatları",
+ "openaiCompatibleDetails": "OpenAI Compatible təfərrüatları",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Vektor təsvirləri",
+ "audioTranscriptions": "Audio transkripsiyaları",
+ "audioSpeech": "Audio nitq",
+ "imagesGenerations": "Şəkil generasiyaları",
"chatCompletions": "Chat Completions",
- "importingModels": "Importing...",
- "importFromModels": "Import from /models",
- "modelsImported": "{count} models imported",
- "allModelsAlreadyImported": "All models already imported",
- "noNewModelsToImport": "No new models to import — all models are already in the registry or custom models list",
- "skippingExistingModels": "Skipping {count} existing models",
- "autoSync": "Auto-Sync",
- "autoSyncShort": "Sync",
+ "importingModels": "İdxal edilir...",
+ "importFromModels": "/models-dən idxal et",
+ "modelsImported": "{count} model idxal edildi",
+ "allModelsAlreadyImported": "Bütün modellər artıq idxal edilib",
+ "noNewModelsToImport": "İdxal ediləcək yeni model yoxdur — bütün modellər artıq reyestrdə və ya fərdi modellər siyahısındadır",
+ "skippingExistingModels": "Mövcud {count} model ötürülür",
+ "autoSync": "Avtomatik sinxronizasiya",
+ "autoSyncShort": "Sinxronizasiya et",
"autoFetchModels": "Avtomatik olaraq yuxarı axın modellərini əldə et",
"autoFetchModelsTooltip": "Tələb olunduqda yuxarıdakı modelləri əldə et və keşlə.",
"autoFetchModelsEnabled": "Yuxarı axın modelinin avtomatik yüklənməsi aktivdir",
@@ -5325,52 +5332,52 @@
"resetToUpstreamDefaults": "Yuxarı axın standartlarını bərpa et",
"resetToUpstreamDefaultsSuccess": "Yuxarı axın modelinin standart parametrləri bərpa edildi",
"resetToUpstreamDefaultsFailed": "Yuxarı axın modelinin standartlarını bərpa etmək mümkün olmadı",
- "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)",
- "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically",
- "autoSyncDisabled": "Auto-sync disabled",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
- "autoSyncPartialFailure": "Auto-sync updated for some connections, but not all",
- "clearAllModels": "Clear All Models",
- "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.",
- "clearAllModelsSuccess": "All models cleared",
- "clearAllModelsFailed": "Failed to clear models",
- "addConnectionToImport": "Add a connection to enable importing.",
- "noModelsConfigured": "No models configured",
- "connectionCount": "{count} connection(s)",
- "fetchingModels": "Fetching available models...",
- "failedFetchModels": "Failed to fetch models",
+ "autoSyncTooltip": "Model siyahısını hər 24 saatdan bir avtomatik yenilə (MODEL_SYNC_INTERVAL_HOURS vasitəsilə konfiqurasiya edilə bilər)",
+ "autoSyncEnabled": "Avtomatik sinxronizasiya aktivdir — modellər vaxtaşırı yenilənəcək",
+ "autoSyncDisabled": "Avtomatik sinxronizasiya deaktivdir",
+ "autoSyncToggleFailed": "Avtomatik sinxronizasiya dəyişdirilə bilmədi",
+ "autoSyncPartialFailure": "Avtomatik sinxronizasiya bəzi bağlantılar üçün yeniləndi, lakin hamısı üçün deyil",
+ "clearAllModels": "Bütün modelləri təmizlə",
+ "clearAllModelsConfirm": "Bu provayder üçün bütün modelləri silmək istədiyinizə əminsiniz? Bu əməliyyatı geri qaytarmaq mümkün deyil.",
+ "clearAllModelsSuccess": "Bütün modellər təmizləndi",
+ "clearAllModelsFailed": "Modelləri təmizləmək mümkün olmadı",
+ "addConnectionToImport": "İdxalı aktivləşdirmək üçün bağlantı əlavə edin.",
+ "noModelsConfigured": "Heç bir model konfiqurasiya edilməyib",
+ "connectionCount": "{count} bağlantı",
+ "fetchingModels": "Mövcud modellər əldə edilir...",
+ "failedFetchModels": "Modelləri əldə etmək mümkün olmadı",
"noFreeModelsFound": "Bu provayder üçün pulsuz model tapılmadı — heç nə idxal edilmədi.",
"fetchModelsSuccess": "{count} yeni model tapıldı",
"fetchModelsFailed": "Modelləri avtomatik əldə etmək mümkün olmadı (parametrlərdən yenidən cəhd edə bilərsiniz)",
- "noModelsFound": "No models found",
- "importFailed": "Import failed",
- "noNewModelsAdded": "No new models were added.",
+ "noModelsFound": "Heç bir model tapılmadı",
+ "importFailed": "İdxal baş tutmadı",
+ "noNewModelsAdded": "Heç bir yeni model əlavə edilmədi.",
"adding": "Adding...",
- "close": "Close",
- "importingModelsTitle": "Importing Models",
- "copyModel": "Copy model",
- "filterModels": "Filter models...",
+ "close": "Bağla",
+ "importingModelsTitle": "Modellərin idxalı",
+ "copyModel": "Modeli kopyala",
+ "filterModels": "Modelləri filtrlə...",
"testAllRateLimited": "Sorğu limitinə çatıldı, vaxtından əvvəl dayandırıldı",
"hideFailedAuto": "Uğursuz modelləri avtomatik gizlət",
- "selectAllModels": "Select all",
+ "selectAllModels": "Hamısını seç",
"hideAllModels": "Hamısını gizlət",
- "modelsActive": "Active",
- "showModel": "Show model",
- "hideModel": "Hide model",
- "removeModel": "Remove model",
- "rateLimitProtected": "Protected",
- "rateLimitUnprotected": "Unprotected",
+ "modelsActive": "Aktiv",
+ "showModel": "Modeli göstər",
+ "hideModel": "Modeli gizlət",
+ "removeModel": "Modeli sil",
+ "rateLimitProtected": "Qorunur",
+ "rateLimitUnprotected": "Qorunmur",
"providerQuotaShort": "Kvota",
"hideConnectionFromProviderQuota": "Bu hesabı Provayder Kvotasından gizlət",
"showConnectionInProviderQuota": "Bu hesabı Provayder Kvotasında göstər",
"quotaVisibilityUpdateFailed": "Provayder Kvotası görünürlüyünü yeniləmək mümkün olmadı",
- "enableRateLimitProtection": "Click to enable rate limit protection",
- "disableRateLimitProtection": "Click to disable rate limit protection",
+ "enableRateLimitProtection": "Sorğu tezliyi limiti qorumasını aktivləşdirmək üçün klikləyin",
+ "disableRateLimitProtection": "Sorğu tezliyi limiti qorumasını deaktivləşdirmək üçün klikləyin",
"testAllProgress": "Yoxlanıldı: {done}/{total}",
"testAllFailedHidden": "{count} uğursuz model gizlədildi",
"testAllDone": "Bütün modellər yoxlanıldı",
- "productionKey": "Production Key",
- "enterNewApiKey": "Enter new API key",
+ "productionKey": "İstehsal açarı",
+ "enterNewApiKey": "Yeni API açarını daxil edin",
"codexApplyModalTitle": "Yerli Kodeksə müraciət edin",
"codexApplyTargetLabel": "Hədəf yolu",
"codexApplyBackupLabel": "Yedəkləmələr",
@@ -5382,77 +5389,77 @@
"bulkAddFormatHint": "Hər sətirdə bir açar. Format: ad|apiKey və ya sadəcə apiKey (indeks ilə avtomatik adlandırılır).",
"bulkValidateKeys": "Saxlamadan əvvəl hər bir açarı yoxlayın (daha yavaş)",
"bulkAddAllKeys": "Bütün açarları əlavə edin",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
- "optional": "Optional",
+ "bulkAddedCount": "{count, plural, one {# açar əlavə edildi} other {# açar əlavə edildi}}",
+ "bulkFailedCount": "{count, plural, one {# uğursuz oldu} other {# uğursuz oldu}}",
+ "optional": "İstəyə bağlı",
"anthropicCompatibleName": "Anthropic Compatible",
"openaiCompatibleName": "OpenAI Compatible",
"compatibleDefaultModelLabel": "Standart Model",
"compatibleDefaultModelHint": "Model ID-sini uyğun son nöqtənizin gözlədiyi kimi dəqiq daxil edin. Bu model bağlantı üçün standart olaraq saxlanılacaq.",
- "failedImportModels": "Failed to import models",
- "noModelsReturnedFromEndpoint": "No models returned from /models endpoint.",
- "importingModelsProgress": "Importing {current} of {total} models...",
- "foundModelsStartingImport": "Found {count} models. Starting import...",
- "importingModelById": "Importing {modelId}...",
- "importSuccessCount": "Successfully imported {count, plural, one {# model} other {# models}}!",
- "noNewModelsAddedExisting": "No new models were added (all already exist).",
- "importDoneCount": "✓ Done! {count, plural, one {# model imported.} other {# models imported.}}",
- "unexpectedErrorOccurred": "An unexpected error occurred",
+ "failedImportModels": "Modelləri idxal etmək alınmadı",
+ "noModelsReturnedFromEndpoint": "/models son nöqtəsindən heç bir model qaytarılmadı.",
+ "importingModelsProgress": "{total} modeldən {current}-cisi idxal edilir...",
+ "foundModelsStartingImport": "{count} model tapıldı. İdxal başlayır...",
+ "importingModelById": "{modelId} idxal edilir...",
+ "importSuccessCount": "{count, plural, one {# model uğurla idxal edildi!} other {# model uğurla idxal edildi!}}",
+ "noNewModelsAddedExisting": "Heç bir yeni model əlavə edilmədi (hamısı artıq mövcuddur).",
+ "importDoneCount": "✓ Hazırdır! {count, plural, one {# model idxal edildi.} other {# model idxal edildi.}}",
+ "unexpectedErrorOccurred": "Gözlənilməz xəta baş verdi",
"getApiKey": "API açarını alın",
"getApiKeyDescription": "API açarı üçün qeydiyyatdan keçin və ya qeyd olun.",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# bağlantı} other {# bağlantı}}",
"messagesPath": "messages",
"responsesPath": "responses",
"chatCompletionsPath": "chat/completions",
- "add": "Add",
- "edit": "Edit",
- "delete": "Delete",
+ "add": "Əlavə et",
+ "edit": "Redaktə et",
+ "delete": "Sil",
"anthropic": "Anthropic",
"openai": "OpenAI",
- "singleConnectionPerCompatible": "Only one connection is allowed per compatible node. Add another node if you need more connections.",
- "connections": "Connections",
- "providerProxyTitleConfigured": "Provider proxy: {host}",
- "configured": "configured",
- "providerProxyConfigureHint": "Configure proxy for all connections of this provider",
- "providerProxy": "Provider Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
- "noConnectionsYet": "No connections yet",
- "addFirstConnectionHint": "Add your first connection to get started",
- "addConnection": "Add Connection",
- "availableModels": "Available Models",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
- "pageAutoRefresh": "Page will refresh automatically...",
- "statusDisabled": "disabled",
- "statusConnected": "connected",
- "statusRuntimeIssue": "runtime issue",
- "statusAuthFailed": "auth failed",
- "statusRateLimited": "rate limited",
- "statusNetworkIssue": "network issue",
- "statusTestUnsupported": "test unsupported",
- "statusUnavailable": "unavailable",
- "statusFailed": "failed",
- "statusError": "error",
- "oauthAccount": "OAuth Account",
- "errorTypeRuntime": "Local runtime",
- "errorTypeUpstreamAuth": "Upstream auth",
- "errorTypeMissingCredential": "Missing credential",
- "errorTypeRefreshFailed": "Refresh failed",
- "errorTypeTokenExpired": "Token expired",
- "errorTypeRateLimited": "Rate limited",
- "errorTypeUpstreamUnavailable": "Upstream unavailable",
- "errorTypeNetworkError": "Network error",
- "errorTypeTestUnsupported": "Test unsupported",
- "errorTypeUpstreamError": "Upstream error",
+ "singleConnectionPerCompatible": "Hər uyğun qovşaq üçün yalnız bir bağlantıya icazə verilir. Daha çox bağlantıya ehtiyacınız varsa, başqa qovşaq əlavə edin.",
+ "connections": "Bağlantılar",
+ "providerProxyTitleConfigured": "Provayder proksisi: {host}",
+ "configured": "konfiqurasiya edilib",
+ "providerProxyConfigureHint": "Bu provayderin bütün bağlantıları üçün proksini konfiqurasiya edin",
+ "providerProxy": "Provayder proksisi",
+ "repairEnv": "env faylını bərpa et",
+ "repairEnvWorking": "Bərpa edilir...",
+ "repairEnvHint": "Mövcud dəyərlərin üzərinə yazmadan çatışmayan OAuth standartlarını .env faylına bərpa edin.",
+ "repairEnvSuccess": "OAuth standartları bərpa edildi",
+ "repairEnvFailed": ".env faylını bərpa etmək alınmadı",
+ "noConnectionsYet": "Hələ heç bir bağlantı yoxdur",
+ "addFirstConnectionHint": "Başlamaq üçün ilk bağlantınızı əlavə edin",
+ "addConnection": "Bağlantı əlavə et",
+ "availableModels": "Mövcud modellər",
+ "builtInModels": "Daxili modellər",
+ "builtInModelsHint": "Bu provayder üçün reyestr modelləri. Uyğunluq seçimlərini təyin etmək üçün karandaş işarəsindən istifadə edin.",
+ "pageAutoRefresh": "Səhifə avtomatik yenilənəcək...",
+ "statusDisabled": "deaktiv edilib",
+ "statusConnected": "qoşulub",
+ "statusRuntimeIssue": "icra mühiti problemi",
+ "statusAuthFailed": "identifikasiya uğursuz oldu",
+ "statusRateLimited": "sorğu limiti aşılıb",
+ "statusNetworkIssue": "şəbəkə problemi",
+ "statusTestUnsupported": "test dəstəklənmir",
+ "statusUnavailable": "əlçatan deyil",
+ "statusFailed": "uğursuz oldu",
+ "statusError": "xəta",
+ "oauthAccount": "OAuth hesabı",
+ "errorTypeRuntime": "Lokal icra mühiti",
+ "errorTypeUpstreamAuth": "Yuxarı axın autentifikasiyası",
+ "errorTypeMissingCredential": "Giriş məlumatı çatışmır",
+ "errorTypeRefreshFailed": "Yeniləmə uğursuz oldu",
+ "errorTypeTokenExpired": "Tokenin müddəti bitib",
+ "errorTypeRateLimited": "Sorğu limiti aşılıb",
+ "errorTypeUpstreamUnavailable": "Yuxarı axın əlçatan deyil",
+ "errorTypeNetworkError": "Şəbəkə xətası",
+ "errorTypeTestUnsupported": "Test dəstəklənmir",
+ "errorTypeUpstreamError": "Yuxarı axın xətası",
"errorTypeCreditsExhausted": "Kredit yoxdur",
"errorTypeBanned": "403 Bloklandı",
- "proxySourceGlobal": "Global",
- "proxySourceProvider": "Provider",
- "proxySourceKey": "Key",
+ "proxySourceGlobal": "Qlobal",
+ "proxySourceProvider": "Provayder",
+ "proxySourceKey": "Açar",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"proxyOn": "Proksi Açıqdır",
"proxyOff": "Birbaşa (proksidən yan keç)",
@@ -5464,31 +5471,31 @@
"perKeyProxyDisabledTitle": "Bu provayder üçün açar üzrə proksi təyinatı deaktivdir",
"autoPriority": "Auto: {priority}",
"proxy": "Proxy",
- "retestAuthentication": "Retest authentication",
- "retest": "Retest",
- "disableConnection": "Disable connection",
- "enableConnection": "Enable connection",
- "reauthenticateConnection": "Re-authenticate this connection",
- "proxyConfig": "Proxy config",
- "aliasExistsAlert": "Alias \"{alias}\" already exists. Please use a different model or edit existing alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
- "openRouterAnyModelHint": "OpenRouter supports any model. Add models and create aliases for quick access.",
- "modelIdFromOpenRouter": "Model ID (from OpenRouter)",
+ "retestAuthentication": "Autentifikasiyanı yenidən sınaqdan keçirin",
+ "retest": "Yenidən sınaqdan keçirin",
+ "disableConnection": "Bağlantını deaktiv edin",
+ "enableConnection": "Bağlantını aktiv edin",
+ "reauthenticateConnection": "Bu bağlantı üçün yenidən autentifikasiya edin",
+ "proxyConfig": "Proksi konfiqurasiyası",
+ "aliasExistsAlert": "\"{alias}\" ləqəbi artıq mövcuddur. Fərqli model istifadə edin və ya mövcud ləqəbi redaktə edin.",
+ "aliasInputPlaceholder": "ləqəb adı",
+ "clickToSetAlias": "Ləqəb təyin etmək üçün klikləyin",
+ "clickToEditAlias": "Ləqəb: {alias} (redaktə etmək üçün klikləyin)",
+ "openRouterAnyModelHint": "OpenRouter istənilən modeli dəstəkləyir. Sürətli giriş üçün modellər əlavə edin və ləqəblər yaradın.",
+ "modelIdFromOpenRouter": "Model ID-si (OpenRouter-dən)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
- "customModels": "Custom Models",
- "customModelsHint": "Add model IDs not in the default list. These will be available for routing.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "customModels": "Fərdi modellər",
+ "customModelsHint": "Standart siyahıda olmayan model ID-lərini əlavə edin. Bunlar marşrutlaşdırma üçün əlçatan olacaq.",
+ "normalizeToolCallIdLabel": "Alət çağırışı ID-lərini 9 simvola normallaşdırın (məs., Mistral)",
+ "preserveDeveloperRoleLabel": "OpenAI Responses developer rolunu saxlayın (system roluna uyğunlaşdırmayın)",
+ "compatAdjustmentsTitle": "Uyğunluq",
+ "compatButtonLabel": "Uyğunluq",
+ "compatToolIdShort": "Alət ID-si 9",
+ "compatDeveloperShort": "Developer rolu",
+ "compatDoNotPreserveDeveloper": "Developer rolunu saxlamayın",
+ "compatBadgeNoPreserve": "Saxlamayın",
+ "compatProtocolLabel": "Müştəri sorğusu protokolu",
+ "compatProtocolHint": "Bu seçimlər OmniRoute bu sorğu formatını (OpenAI Chat, Responses API və ya Anthropic Messages) aşkar etdikdə tətbiq olunur.",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,84 +5537,84 @@
"interceptFetchHint": "Yerli web_fetch alət çağırışlarını OmniRoute-un /v1/web/fetch ünvanına yenidən yazın.",
"interceptionLoadError": "Ələ keçirmə parametrlərini yükləmək mümkün olmadı: {error}",
"interceptionSaveError": "Ələ keçirmə parametrlərini yadda saxlamaq mümkün olmadı: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
- "perModelQuotaLabel": "Per-Model Quota",
- "perModelQuotaDescription": "When enabled, 429/404 errors only lock the specific model, not the entire connection. Use for providers with per-model rate limits (e.g., ModelScope).",
+ "ccAliasSectionTitle": "Claude Code-da göstər (claude/…)",
+ "ccAliasSectionHint": "Bu provayderin modellərini claude/<provider>/<model> güzgü ID-ləri altında təqdim edin ki, Claude Code şlüzünün model aşkarlama funksiyası onları siyahıya ala bilsin. Defolt olaraq deaktivdir — bunu aktivləşdirmək bütün müştərilər üçün kataloq qeydlərinin sayını ikiqat artırır.",
+ "ccAliasProviderLevelLabel": "Provayderin defolt ayarı",
+ "ccAliasModelOverridesLabel": "Model üzrə fərdi ayarlar",
+ "ccAliasModelOverrideAriaLabel": "{modelId} üçün fərdi ayar",
+ "ccAliasStateInherit": "Miras al",
+ "ccAliasStateOn": "Aktiv",
+ "ccAliasStateOff": "Deaktiv",
+ "ccAliasAddModelPlaceholder": "Model ID-si (məs., gpt-4o)",
+ "ccAliasAddModelButton": "Fərdi ayar əlavə et",
+ "ccAliasLoadError": "Aşkarlama ləqəbi ayarlarını yükləmək alınmadı: {error}",
+ "ccAliasSaveError": "Aşkarlama ləqəbi ayarını saxlamaq alınmadı: {error}",
+ "compatUpstreamHeadersLabel": "Əlavə yuxarı axın başlıqları",
+ "compatUpstreamHeadersHint": "Yüksək imtiyazlı ayardır — provayderin API giriş məlumatlarını redaktə etməklə eyni etibar səviyyəsinə malikdir; bundan yalnız etibarlı administratorlar istifadə etməlidir. OmniRoute provayderin API açarından autentifikasiya məlumatını əlavə etdikdən sonra birləşdirilir. Fərdi başlıq mövcud başlıqla eyni addan istifadə edərsə (məs., Authorization), daxil etdiyiniz dəyər avtomatik yaradılmış başlığı (Bearer tokeni daxil olmaqla) tamamilə əvəz edir — yuxarı axın yalnız yazdığınızı görür, ayarlardakı açarı deyil. Yanlış konfiqurasiya 401 xətasına və ya yuxarı axın autentifikasiyasının pozulmasına səbəb ola bilər. Hər başlıq üçün bir sətir (məs., bəzi şlüzlər üçün əlavə Authentication). Önizləmək üçün göstəricini dəyərin üzərinə gətirin və ya ona fokuslanın. Fokus itirildikdə, panelin xaricinə kliklədikdə və ya bu panel bağlandıqda yadda saxlanılır.",
+ "compatUpstreamHeaderName": "Başlığın adı",
+ "compatUpstreamHeaderValue": "Dəyər",
+ "compatUpstreamAddRow": "Başlıq əlavə et",
+ "compatUpstreamRemoveRow": "Sətri sil",
+ "compatBadgeUpstreamHeaders": "Başlıqlar",
+ "perModelQuotaLabel": "Model üzrə kvota",
+ "perModelQuotaDescription": "Aktiv olduqda, 429/404 xətaları bütün bağlantını deyil, yalnız konkret modeli kilidləyir. Model üzrə sürət məhdudiyyəti olan provayderlər (məs., ModelScope) üçün istifadə edin.",
"importFreeModelsOnlyLabel": "Yalnız pulsuz modelləri idxal et",
"importFreeModelsOnlyHint": "Aktiv edildikdə, yalnız bu provayderin pulsuz modelləri idxal edilir. Ödənişli modellər buraxılır.",
- "perModelQuotaToggle": "Per-Model Quota Toggle",
- "modelId": "Model ID",
- "customModelPlaceholder": "e.g. gpt-4.5-turbo",
- "loading": "Loading...",
- "removeCustomModel": "Remove custom model",
- "noCustomModels": "No custom models added yet.",
- "allSuggestedAliasesExist": "All suggested aliases already exist. Please choose a different model or remove conflicting aliases.",
- "failedSaveCustomModel": "Failed to save custom model",
- "modelAddedSuccess": "Model {modelId} added successfully",
- "failedAddModelTryAgain": "Failed to add model. Please try again.",
- "failedSaveImportedModel": "Failed to save imported model to custom database",
- "failedImportModelsTryAgain": "Failed to import models. Please try again.",
- "failedRemoveModelFromDatabase": "Failed to remove model from database",
- "modelRemovedSuccess": "Model removed successfully",
- "failedDeleteModelTryAgain": "Failed to delete model. Please try again.",
- "compatibleModelsDescription": "Add {type}-compatible models manually or import them from the /models endpoint.",
+ "perModelQuotaToggle": "Model üzrə kvota keçidi",
+ "modelId": "Model ID-si",
+ "customModelPlaceholder": "məs., gpt-4.5-turbo",
+ "loading": "Yüklənir...",
+ "removeCustomModel": "Fərdi modeli sil",
+ "noCustomModels": "Hələ heç bir fərdi model əlavə edilməyib.",
+ "allSuggestedAliasesExist": "Təklif olunan bütün ləqəblər artıq mövcuddur. Fərqli model seçin və ya ziddiyyət yaradan ləqəbləri silin.",
+ "failedSaveCustomModel": "Fərdi modeli saxlamaq alınmadı",
+ "modelAddedSuccess": "{modelId} modeli uğurla əlavə edildi",
+ "failedAddModelTryAgain": "Modeli əlavə etmək alınmadı. Yenidən cəhd edin.",
+ "failedSaveImportedModel": "İdxal edilmiş modeli fərdi verilənlər bazasında saxlamaq alınmadı",
+ "failedImportModelsTryAgain": "Modelləri idxal etmək alınmadı. Yenidən cəhd edin.",
+ "failedRemoveModelFromDatabase": "Modeli verilənlər bazasından silmək alınmadı",
+ "modelRemovedSuccess": "Model uğurla silindi",
+ "failedDeleteModelTryAgain": "Modeli silmək alınmadı. Yenidən cəhd edin.",
+ "compatibleModelsDescription": "{type} ilə uyğun modelləri əl ilə əlavə edin və ya onları /models son nöqtəsindən idxal edin.",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
- "apiKeyValidationFailed": "API key validation failed. Please check your key and try again.",
- "addProviderApiKeyTitle": "Add {provider} API Key",
- "checking": "Checking...",
- "check": "Check",
- "valid": "Valid",
- "invalid": "Invalid",
- "creating": "Creating...",
- "validationChecksAnthropicCompatible": "Validation checks {provider} by verifying the API key.",
- "validationChecksOpenAiCompatible": "Validation checks {provider} via /models on your base URL.",
- "priorityLabel": "Priority",
- "saving": "Saving...",
- "save": "Save",
- "editConnection": "Edit Connection",
- "accountName": "Account name",
+ "apiKeyValidationFailed": "API açarının doğrulanması uğursuz oldu. Açarınızı yoxlayın və yenidən cəhd edin.",
+ "addProviderApiKeyTitle": "{provider} API açarı əlavə edin",
+ "checking": "Yoxlanılır...",
+ "check": "Yoxla",
+ "valid": "Etibarlıdır",
+ "invalid": "Etibarsızdır",
+ "creating": "Yaradılır...",
+ "validationChecksAnthropicCompatible": "Doğrulama API açarını yoxlayaraq {provider} xidmətini yoxlayır.",
+ "validationChecksOpenAiCompatible": "Doğrulama əsas URL-nizdəki /models vasitəsilə {provider} xidmətini yoxlayır.",
+ "priorityLabel": "Prioritet",
+ "saving": "Yadda saxlanılır...",
+ "save": "Yadda saxla",
+ "editConnection": "Bağlantını redaktə et",
+ "accountName": "Hesab adı",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "Sağlamlıq yoxlaması (dəq)",
"healthCheckHint": "Proactive token refresh interval. 0 = disabled.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
- "failedTestConnection": "Failed to test connection",
- "failed": "Failed",
- "leaveBlankKeepCurrentApiKey": "Leave blank to keep the current API key.",
- "editCompatibleTitle": "Edit {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
- "apiKeyForCheck": "API Key (for Check)",
+ "deselectAllModels": "Bütün seçimləri ləğv et",
+ "modelsActiveCount": "{active}/{total} aktiv",
+ "noModelsMatch": "Heç bir model \"{filter}\" filtrinə uyğun gəlmir",
+ "groupLabel": "Mühit",
+ "groupPlaceholder": "məs., eKaizen, Şəxsi",
+ "failedTestConnection": "Bağlantının sınaqdan keçirilməsi uğursuz oldu",
+ "failed": "Uğursuz oldu",
+ "leaveBlankKeepCurrentApiKey": "Cari API açarını saxlamaq üçün boş buraxın.",
+ "editCompatibleTitle": "{type} ilə uyğunluğu redaktə et",
+ "compatibleBaseUrlHint": "{type} ilə uyğun API-nizin kök URL-i. Fərdi son nöqtə yolları üçün Qabaqcıl parametrlərdən istifadə edin.",
+ "apiKeyForCheck": "API açarı (yoxlama üçün)",
"testModelIdLabel": "Model ID-si (istəyə bağlı)",
"testModelIdPlaceholder": "məs. my-model-id",
"testModelIdHint": "Əgər provayderin /models son nöqtəsi yoxdursa, bunun əvəzinə /chat/completions vasitəsilə yoxlamaq üçün model ID-si daxil edin.",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "compatibleProdPlaceholder": "{type} ilə uyğun (Prod)",
+ "tokenRefreshed": "Token uğurla yeniləndi",
+ "tokenRefreshFailed": "Tokenin yenilənməsi uğursuz oldu",
"cursorSessionUnchanged": "Sessiya artıq aktivdir",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Autentifikasiyanı tətbiq et",
+ "exportCodexAuthFile": "Autentifikasiyanı ixrac et",
"applyClaudeAuthLocal": "Doğrulama tətbiq edin",
"exportClaudeAuthFile": "İxrac avtorizasiyası",
"importClaudeAuth": "İdxal avtorizasiyası",
@@ -5622,7 +5629,7 @@
"claudeAuthApplyFailed": "Claude authunu yerli olaraq tətbiq etmək alınmadı",
"claudeAuthExported": "Klod auth faylı ixrac edildi",
"claudeAuthExportFailed": "Klod doğrulama faylını ixrac etmək alınmadı",
- "claudeImportModalTitle": "Import Claude Auth",
+ "claudeImportModalTitle": "Claude autentifikasiyasını idxal et",
"claudeImportTabSingle": "Subay",
"claudeImportTabBulk": "Toplu",
"claudeImportTabUpload": "Fayl yükləyin",
@@ -5700,7 +5707,7 @@
"codexExternalLinkConnected": "Codex hesabı xarici link vasitəsilə qoşuldu.",
"codexExternalLinkExpired": "Tamamlanmadan əvvəl linkin etibarlılıq müddəti bitdi.",
"importCodexAuth": "İdxal avtorizasiyası",
- "codexImportModalTitle": "Import Codex Auth",
+ "codexImportModalTitle": "Codex autentifikasiyasını idxal et",
"codexImportTabSingle": "Subay",
"codexImportTabBulk": "Toplu",
"codexImportTabUpload": "Fayl yükləyin",
@@ -5732,91 +5739,91 @@
"codexImportBulkFailed": "{count} alınmadı",
"codexImportBulkZipExtracting": "ZIP çıxarılır...",
"codexImportBulkZipError": "ZIP çıxarmaq alınmadı",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Qabaqcıl parametrlər",
+ "chatPathLabel": "Söhbət son nöqtəsinin yolu",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Qeyri-standart API-ləri olan provayderlər üçün fərdi söhbət yolu (məs., /v4/chat/completions)",
+ "modelsPathLabel": "Modellər son nöqtəsinin yolu",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Doğrulama üçün fərdi model yolu (məs., /v4/models)",
"clientIdentityLabel": "Müştəri Kimliyi",
- "clientIdentityHint": "Optional. Adds client fingerprint headers (e.g. User-Agent) matching a known CLI for compatible gateways that expect one.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "clientIdentityHint": "İstəyə bağlıdır. Belə başlıq gözləyən uyğun şlüzlər üçün tanınmış CLI ilə eyni olan müştəri rəqəmsal izi başlıqlarını (məs., User-Agent) əlavə edir.",
+ "statusDeactivated": "Deaktiv edilib (Əl ilə)",
+ "statusBanned": "Qadağan edilib / Sandbox qaydalarının pozulması",
+ "statusCreditsExhausted": "Balans kifayət deyil / Kvota tükənib",
+ "showEmails": "Bütün e-poçt ünvanlarını göstər",
+ "hideEmails": "Bütün e-poçt ünvanlarını gizlət",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
- "addCcCompatible": "Add CC Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
- "enterpriseCloud": "Enterprise & Cloud",
- "apiFormatLabel": "Api Format Label",
+ "addAnotherApiKey": "Başqa API açarı əlavə edin və ya bir neçə açarı yapışdırın",
+ "addCcCompatible": "CC Uyğun əlavə et",
+ "aggregatorsGateways": "Aqreqator şlüzləri",
+ "enterpriseCloud": "Korporativ və bulud",
+ "apiFormatLabel": "API formatı etiketi",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
+ "apiRegionChina": "API regionu: Çin",
+ "apiRegionHint": "API regionu ipucu",
+ "apiRegionInternational": "API regionu: Beynəlxalq",
+ "apiRegionLabel": "API regionu etiketi",
+ "apikey": "API açarı",
"audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
- "cloudAgentProviders": "Cloud Agent Providers",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioProvidersHeading": "Audio provayderləri başlığı",
+ "cloudAgentProviders": "Bulud agenti provayderləri",
+ "audioShortLabel": "Audio qısa etiketi",
+ "azureOpenAiBaseUrlHint": "Azure Open Ai əsas URL ipucu",
+ "bailianBaseUrlHint": "Bailian əsas URL ipucu",
+ "claudeWebCookieHint": "claude.ai saytını açın → DevTools → Application → Cookies → claude.ai bölməsinə keçin və 'sessionKey' dəyərini kopyalayın. Cloudflare üçün həmçinin cf_clearance, __cf_bm, _cfuvid tələb olunur.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web kukisi üçün ipucu",
+ "blackboxWebCookiePlaceholder": "Blackbox Web kukisi üçün yer tutucu",
"t3ChatWebCookieHint": "t3.chat → DevTools → Proqram → Yerli Yaddaş → https://t3.chat açın, 'convex-session-id' kopyalayın. Sonra DevTools → Network açın, istənilən söhbət sorğusundan tam kuki başlığını kopyalayın. Hər iki dəyəri aşağıdakı sahələrə yapışdırın.",
"t3ChatWebCookiePlaceholder": "konveks-sessiya-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web kukisi üçün ipucu",
"blockClaudeExtraUsageDescription": "Aktiv edildikdə, OmniRoute bu Claude bağlantısını istifadənin API-si sıralanan əlavə istifadəni bildirdiyi anda istifadəyə yararsız olaraq işarələyir, beləliklə, ehtiyat başqa bir bağlantıya keçid edir, ödənişə görə əlavə ödəniş etməyə davam etmək əvəzinə.",
"blockClaudeExtraUsageLabel": "Əlavə Claude istifadəsini bloklayın",
"disableCoolingDescription": "Müvəqqəti soyuma müddətini atlayın ki, bu bağlantı bərpa edilə bilən xətalardan sonra belə uyğun qalsın (bloklanmış/vaxtı keçmiş kimi terminal vəziyyətlər hələ də tətbiq olunur).",
"disableCoolingLabel": "Bu bağlantı üçün soyuma müddətini söndürün",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
- "ccCompatibleBaseUrlHint": "Base URL for a Claude Code-only relay. Do not include /messages.",
+ "bulkPasteAdded": "{count, plural, one {1 açar əlavə edildi} other {# açar əlavə edildi}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 dublikat ötürüldü} other {# dublikat ötürüldü}}",
+ "bulkPasteHint": "Hər sətirə bir API açarı yapışdırın. Boş sətirlər nəzərə alınmır, dublikat açarlar isə ötürülür.",
+ "ccCompatibleBaseUrlHint": "Yalnız Claude Code üçün nəzərdə tutulmuş retranslyatorun əsas URL-i. /messages daxil etməyin.",
"ccCompatibleBaseUrlPlaceholder": "https://relay.example.com/v1",
- "ccCompatibleChatPathHint": "Defaults to Claude Code's strict Messages API path. Change only if your relay documents a different path.",
- "ccCompatibleContext1mDescription": "Adds the context-1m beta header when the selected Claude model supports it.",
- "ccCompatibleContext1mLabel": "Enable 1M context beta",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
- "ccCompatibleDetailsTitle": "CC-compatible relay details",
- "ccCompatibleLabel": "CC Compatible",
- "ccCompatibleModelsDescription": "CC-compatible relays do not expose model listing. Add the Claude model IDs your relay accepts.",
- "ccCompatibleNameHint": "Display name for this Claude Code-only relay.",
- "ccCompatibleNamePlaceholder": "CC Relay Production",
- "ccCompatiblePrefixHint": "Used in model aliases such as prefix/model-id.",
+ "ccCompatibleChatPathHint": "Defolt olaraq Claude Code-un ciddi Messages API yolu istifadə olunur. Yalnız retranslyatorunuzun sənədlərində fərqli yol göstərilibsə dəyişdirin.",
+ "ccCompatibleContext1mDescription": "Seçilmiş Claude modeli bunu dəstəklədikdə context-1m beta başlığını əlavə edir.",
+ "ccCompatibleContext1mLabel": "1M kontekst beta versiyasını aktivləşdir",
+ "ccCompatibleRedactThinkingDescription": "Gizli Claude düşünmə axınları tələb edən CC Uyğun yuxarı axınlar üçün redact-thinking beta başlığını əlavə edir.",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking beta versiyasını aktivləşdir",
+ "ccCompatibleSummarizeThinkingDescription": "Dəstəklənən Claude modellərinin görünən düşünmə deltalarını axınla ötürməsi üçün CC Uyğun düşünmə sorğularına `display: \"summarized\"` əlavə edir.",
+ "ccCompatibleSummarizeThinkingLabel": "Ümumiləşdirilmiş düşünmə görünüşünü aktivləşdir",
+ "ccCompatibleDetailsTitle": "CC uyğun retranslyator təfərrüatları",
+ "ccCompatibleLabel": "CC ilə uyğun",
+ "ccCompatibleModelsDescription": "CC ilə uyğun retranslyatorlar model siyahısını göstərmir. Retranslyatorunuzun qəbul etdiyi Claude model ID-lərini əlavə edin.",
+ "ccCompatibleNameHint": "Yalnız Claude Code üçün nəzərdə tutulmuş bu retranslyatorun görünən adı.",
+ "ccCompatibleNamePlaceholder": "CC İstehsal Retranslyatoru",
+ "ccCompatiblePrefixHint": "prefix/model-id kimi model ləqəblərində istifadə olunur.",
"ccCompatiblePrefixPlaceholder": "cc",
- "ccCompatibleValidationHint": "Use this provider only for relays that serve Claude Code clients exclusively. OmniRoute rewrites any incoming request into the Claude Code-compatible wire format so those relays accept it. If you only want to use Claude Code CLI, or you are not sure what this relay type means, use a regular Anthropic-compatible provider instead.",
- "claudeExtraUsageShort": "Extra usage",
- "claudeExtraUsageToggleTitle": "Block Claude extra usage accounting for this connection",
- "codex5hToggleTitle": "Track Codex 5-hour quota for this connection",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
- "codexWeeklyToggleTitle": "Track Codex weekly quota for this connection",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "ccCompatibleValidationHint": "Bu provayderdən yalnız Claude Code müştərilərinə xidmət edən retranslyatorlar üçün istifadə edin. OmniRoute bütün daxil olan sorğuları Claude Code ilə uyğun ötürmə formatına çevirir ki, həmin retranslyatorlar onları qəbul etsin. Yalnız Claude Code CLI istifadə etmək istəyirsinizsə və ya bu retranslyator növünün nə demək olduğuna əmin deyilsinizsə, əvəzinə adi Anthropic ilə uyğun provayderdən istifadə edin.",
+ "claudeExtraUsageShort": "Əlavə istifadə",
+ "claudeExtraUsageToggleTitle": "Bu bağlantı üçün Claude əlavə istifadə uçotunu bloklayın",
+ "codex5hToggleTitle": "Bu bağlantı üçün Codex-in 5 saatlıq kvotasını izləyin",
+ "codexFastServiceTierDescription": "Mümkün olduqda Codex sorğuları üçün prioritet xidmət səviyyəsindən istifadə edin.",
+ "codexFastServiceTierLabel": "Codex sürətli xidmət səviyyəsi",
+ "codexWeeklyToggleTitle": "Bu bağlantı üçün Codex-in həftəlik kvotasını izləyin",
+ "compatUpstreamHeaderNamePlaceholder": "Uyğun yuxarı axın başlığı adının doldurucusu",
+ "compatUpstreamHeaderValuePlaceholder": "Uyğun yuxarı axın başlığı dəyərinin doldurucusu",
+ "compatible": "Uyğun",
+ "configuredCount": "Konfiqurasiya edilmiş say",
+ "consoleApiKeyOracleHint": "Konsol API açarı Oracle ipucu",
+ "consoleApiKeyOracleLabel": "Konsol API açarı Oracle etiketi",
+ "consoleApiKeyOraclePlaceholder": "Konsol API açarı Oracle doldurucusu",
+ "newApiUserIdLabel": "New-API istifadəçi ID-si",
+ "newApiUserIdPlaceholder": "məs., 12345",
+ "newApiUserIdHint": "Kvota balansını əldə etmək üçün konsol API açarı ilə birlikdə istifadə olunan AgentRouter New-Api-User başlıq dəyəri.",
"newApiAggregatorToggleLabel": "Toplanma Qapısı",
"newApiAggregatorToggleHint": "Yeni-API / Bir-API / Sub2API toplayıcı düyünləri üçün balans aşkar etməni aktivləşdirin. İdarəetmə paneli balans nişanını göstərəcək və kvota-preflight yönləndirməsi tükənmiş hesabları atlayacaq.",
"newApiAggregatorConsoleApiKeyHint": "Toplayıcının /api/user/self son nöqtəsi üçün Sistem Giriş Tokeni. Yönləndirmə API açarı deyil.",
@@ -5824,55 +5831,55 @@
"newApiAggregatorQuotaPerUnitLabel": "Vahid Başına Kotа",
"newApiAggregatorQuotaPerUnitHint": "Yeni-API kredit vahidləri $1 üçün (default: 500000). Əgər sizin toplayıcınız fərqli bir dərəcə istifadə edirsə, üstələyin.",
"featureFlagNewApiAggregatorBalanceDescription": "Yeni-API / Bir-API / Sub2API toplayıcı ilə uyğun düyünlər üçün balans aşkar etməni aktivləşdirin",
- "cpaModeDisabledTitle": "CLIProxyAPI compatibility mode is disabled",
- "cpaModeEnabledTitle": "CLIProxyAPI compatibility mode is enabled",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
- "antigravityProjectIdHint": "Optional override for Antigravity Cloud Code requests. Leave blank to use the project discovered during Google OAuth.",
+ "cpaModeDisabledTitle": "CLIProxyAPI uyğunluq rejimi deaktivdir",
+ "cpaModeEnabledTitle": "CLIProxyAPI uyğunluq rejimi aktivdir",
+ "customUserAgentHint": "Fərdi User Agent ipucu",
+ "customUserAgentLabel": "Fərdi User Agent etiketi",
+ "databricksBaseUrlHint": "Databricks əsas URL ipucu",
+ "defaultThinkingStrengthHint": "Sorğuda düşünmə səyi göstərilmədikdə istifadə olunur.",
+ "defaultThinkingStrengthLabel": "Defolt düşünmə gücü",
+ "deleteAllExtraApiKeys": "Hamısını sil",
+ "excludedModelsHint": "İstisna edilmiş modellər üçün ipucu",
+ "excludedModelsLabel": "İstisna edilmiş modellər etiketi",
+ "excludedModelsPlaceholder": "İstisna edilmiş modellər üçün doldurucu",
+ "expirationBannerExpired": "Müddət bitib",
+ "expirationBannerExpiredDesc": "Müddətin bitməsi haqqında bannerin açıqlaması",
+ "expirationBannerExpiringSoon": "Müddət tezliklə bitəcək",
+ "expirationBannerExpiringSoonDesc": "Müddətin tezliklə bitməsi haqqında bannerin açıqlaması",
+ "extraApiKeyMasked": "Açar {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Əlavə API açarları üçün ipucu",
+ "extraApiKeysLabel": "Əlavə API açarları etiketi",
+ "apiKeyHealthLabel": "API açarının vəziyyəti",
+ "apiKeyStatusActive": "Aktiv",
+ "apiKeyStatusWarning": "Xəbərdarlıq ({count} uğursuzluq)",
+ "apiKeyStatusInvalid": "Etibarsız",
+ "primaryKey": "Əsas açar",
+ "apiKeyInvalidAlert": "{connections} bağlantılarındakı autentifikasiya uğursuzluqlarına görə {count} API açarı etibarsız kimi işarələnib. Rotasiya zamanı onlar ötürüləcək. Nəzərdən keçirmək üçün klikləyin.",
+ "apiKeyInvalidAlertTitle": "API açarının vəziyyəti barədə xəbərdarlıq",
+ "apiKeyWarningAlert": "{connections} bağlantılarında yüksək uğursuzluq tezliyinə görə {count} API açarı xəbərdarlıq vəziyyətindədir. Rotasiya problemlərinin qarşısını almaq üçün nəzərdən keçirin.",
+ "apiKeyWarningAlertTitle": "API açarı xəbərdarlığı",
+ "googlePseInfo": "Google PSE məlumatı",
+ "antigravityProjectIdHint": "Antigravity Cloud Code sorğuları üçün istəyə bağlı əvəzləmə. Google OAuth zamanı aşkar edilmiş layihədən istifadə etmək üçün boş saxlayın.",
"antigravityClientProfileLabel": "Müştəri profili",
"antigravityClientProfileHint": "OmniRoute-un API-yə hansı Antigravity müştəri kimliyini təqdim edəcəyini seçin.",
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "Harness / CLI",
"codexFastTierActiveChip": "Codex Fast səviyyəsi aktivdir",
"tierFast": "Sürətli",
- "antigravityProjectIdLabel": "Google Cloud Project ID",
+ "antigravityProjectIdLabel": "Google Cloud layihə ID-si",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
- "videoProviders": "Video Generation",
- "embeddingRerankProviders": "Embeddings & Rerank",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "grokWebCookiePlaceholder": "Grok veb kukisi üçün yer tutucu",
+ "herokuBaseUrlHint": "Heroku əsas URL-i üçün ipucu",
+ "hideEmail": "E-poçtu gizlət",
+ "imageProviders": "Şəkil provayderləri",
+ "videoProviders": "Video generasiyası",
+ "embeddingRerankProviders": "Vektor yerləşdirmələri və yenidən sıralama",
+ "imagesShortLabel": "Şəkillər üçün qısa etiket",
+ "llmProviders": "LLM provayderləri",
+ "localProviderApiKeyOptionalHint": "Lokal provayderin istəyə bağlı API açarı üçün ipucu",
+ "localProviderBaseUrlHint": "Lokal provayderin əsas URL-i üçün ipucu",
+ "localProviders": "Lokal provayderlər",
+ "maxConcurrentWholeNumberError": "Maksimum paralel sorğu sayı tam ədəd olmalıdır",
"m365TierLabel": "Copilot səviyyəsi",
"m365TierHint": "Bu bağlantının hansı Microsoft 365 Copilot interfeysindən istifadə edəcəyini seçin. Fərdi standart istehlakçı BizChat-dır; Təhsil və Müəssisə (iş) öz tenant interfeyslərini seçirlər.",
"m365TierIndividualOption": "Fərdi (standart)",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "Ucuz",
"tierOverridePremium": "Premium",
"tierOverrideHelpText": "OmniRoute-un bunu model qiymətlərindən çıxarmasına icazə vermək əvəzinə, bu provayderi marşrutlaşdırma səviyyəsinə bərkidyin.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark veb kukisi üçün ipucu",
+ "museSparkWebCookiePlaceholder": "Muse Spark veb kukisi üçün yer tutucu",
+ "oauth": "OAuth",
+ "openCliTools": "CLI alətlərini aç",
+ "openSettings": "Parametrləri aç",
+ "openaiResponsesStoreDescription": "Uyğun Responses API sorğularına saxlanmış cavab vəziyyətini qorumağa icazə verin.",
+ "openaiResponsesStoreLabel": "OpenAI Responses yaddaşı",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search ortaq açarı haqqında məlumat",
+ "perplexityWebCookieHint": "Perplexity veb kukisi üçün ipucu",
+ "perplexityWebCookiePlaceholder": "Perplexity veb kukisi üçün yer tutucu",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Sorğu Limiti Üstələmələri",
"rateLimitOverridesMaxConcurrentHint": "Bu bağlantı üçün maksimum eyni vaxtda olan sorğuların üstələnməsi. Hesab səviyyəsindəki limiti üstələyir.",
"rateLimitOverridesMaxConcurrentLabel": "Maksimum Eyni Vaxtda (Sorğu Limiti)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Sorğunun uğursuz olmadan əvvəl sürət məhdudiyyəti növbəsində gözləyə biləcəyi maksimum müddət (ms). Yalnız bu bağlantı üçün qlobal Resilience parametrini əvəz edir.",
+ "rateLimitOverridesMaxWaitMsLabel": "Maksimum növbə gözləmə müddəti (ms)",
"rateLimitOverridesMinTimeHint": "Sorğular arasındakı minimum vaxt (ms). Standart sorğu limiti gecikməsini üstələyir.",
"rateLimitOverridesMinTimeLabel": "Min İnterval (ms)",
"rateLimitOverridesRpdHint": "Bu bağlantı üçün gündəlik maksimum sorğu sayı. Təminatçı standartını ləğv edir.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (Token/gün)",
"rateLimitOverridesTpmHint": "Bu bağlantı üçün dəqiqədə maksimum token sayı. Provayderin standart dəyərini üstələyir.",
"rateLimitOverridesTpmLabel": "TPM (Token/dəq)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
- "searchProviders": "Search Providers",
+ "refreshOauthTokenTitle": "OAuth tokenini yeniləmə başlığı",
+ "regionHint": "Region ipucu",
+ "regionLabel": "Region etiketi",
+ "removeThisKey": "Bu açarı sil",
+ "routingTagsHint": "Marşrutlaşdırma teqləri üçün ipucu",
+ "routingTagsLabel": "Marşrutlaşdırma teqlərinin etiketi",
+ "routingTagsPlaceholder": "Marşrutlaşdırma teqləri üçün yer tutucu",
+ "search": "Axtarış",
+ "searchEngineIdHint": "Axtarış mühərriki ID-si üçün ipucu",
+ "searchEngineIdLabel": "Axtarış mühərriki ID-sinin etiketi",
+ "searchEngineIdRequired": "Axtarış mühərriki ID-si tələb olunur",
+ "searchProvider": "Axtarış provayderi",
+ "searchProviderDesc": "Axtarış provayderinin təsviri",
+ "searchProviders": "Axtarış provayderləri",
"searchByModel": "Modelə görə axtar…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Axtarış provayderləri başlığı",
+ "searxngBaseUrlHint": "Searxng baza URL-si üçün ipucu",
+ "searxngInfo": "Searxng məlumatı",
+ "sessionCookieLabel": "Sessiya kukisinin etiketi",
+ "showEmail": "E-poçtu göstər",
+ "snowflakeBaseUrlHint": "Snowflake baza URL-si üçün ipucu",
"supportedEndpointAudio": "Audio",
- "supportedEndpointChat": "Chat",
- "supportedEndpointEmbeddings": "Embeddings",
- "supportedEndpointImages": "Images",
- "supportedEndpointsLabel": "Supported endpoints",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "supportedEndpointChat": "Çat",
+ "supportedEndpointEmbeddings": "Vektor təqdimatları",
+ "supportedEndpointImages": "Şəkillər",
+ "supportedEndpointsLabel": "Dəstəklənən son nöqtələr",
+ "tagGroupHint": "Teq qrupu üçün ipucu",
+ "tagGroupLabel": "Teq qrupunun etiketi",
+ "tagGroupPlaceholder": "Teq qrupu üçün yer tutucu",
+ "testModel": "Modeli sına",
+ "testingModel": "Model sınaqdan keçirilir",
"modelTestQuotaTooltip": "Kvota bitdi — sabah sıfırlanır və ya əlavə yüklemə tələb olunur",
- "toggleOffShort": "Off",
- "toggleOnShort": "On",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "toggleOffShort": "Söndürülüb",
+ "toggleOnShort": "Aktivdir",
+ "tokenExpiredBadge": "Tokenin müddətinin bitməsi nişanı",
+ "tokenExpiredTitle": "Tokenin müddəti bitib başlığı",
+ "tokenExpiresSoonTitle": "Tokenin müddəti tezliklə bitəcək başlığı",
+ "tokenShort": "Qısa token",
+ "totalKeysRotating": "{count, plural, one {1 açar növbələnir} other {# açar növbələnir}}",
+ "unhideModel": "Modeli yenidən göstər",
+ "upstreamProxyProviders": "Yuxarı axın proksi provayderləri",
"validationModelIdHint": "API açarını yoxlamaq üçün istifadə olunan model. Provayderin ilk mövcud modelindən istifadə etmək üçün boş buraxın.",
"validationModelIdLabel": "Doğrulama modeli",
"validationModelIdPlaceholder": "məs. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Xidmət Hesabı JSON-unuzu ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) və ya OAuth access_token-i yapışdırın",
+ "webCookieProviders": "Veb kuki provayderləri",
+ "weeklyShort": "Həftəlik qısa",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo əsas URL ipucu",
"globalCodexServiceMode": "Qlobal Codex xidmət rejimi",
"connect": "Bağlan",
"manualApiKey": "Əl ilə API açarı",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Zed IDE tərəfindən OS keychain-də saxlanılan AI provayder etibarnamələrini (OpenAI, Anthropic, Google, Mistral, xAI) aşkar edin və onları bağlantı kimi idxal edin. Zed IDE bu cihazda quraşdırılmalıdır.",
"zedImportButton": "Zed-dən İdxal Et",
"zedImportFailed": "Zed idxalı uğursuz oldu",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed idxalı üçün ipucu",
+ "zedImportNetworkError": "Zed idxalı zamanı şəbəkə xətası",
+ "zedImportNone": "Zed idxalı yoxdur",
"zedImportSuccess": "{providers} provayder(lar) üçün Zed-dən {credentials} etibarnamə(ni) idxal edildi",
"zedImporting": "İdxal edilir…",
"zedNoCredentials": "Keychain-də heç bir Zed etibarnaməsi tapılmadı",
@@ -6012,7 +6019,7 @@
"providerDetailFastTierTooltip": "Defolt olaraq bütün Codex bağlantılarına Codex Fast səviyyəsini tətbiq edin",
"providerDetailFastDefaultLabel": "Tez standart",
"providerDetailBrowserManualConnect": "Brauzer/əl ilə əlaqə",
- "providerDetailAuthUrl": "Auth URL",
+ "providerDetailAuthUrl": "Doğrulama URL-i",
"providerDetailCallbackUrl": "Geri zəng URL",
"providerDetailValidClaudeCredentialsFile": "Etibarlı Klod etimadnaməsi faylı",
"providerDetailPathAutoDetectedAllOs": "Yol OS (Linux/Mac/Windows) üzrə avtomatik aşkarlanır.",
@@ -6028,7 +6035,7 @@
"claudeImportEntryName": "giriş {number}",
"claudeImportParseError": "təhlil xətası",
"claudeImportNoValidEntries": "İdxal ediləcək etibarlı giriş tapılmadı",
- "webFetch": "Web Fetch",
+ "webFetch": "Vebdən əldə etmə",
"webFetchTooltip": "Veb URL-lərdən məzmun çıxaran provayderlər (HTML → Markdown, skreypinq, skrinşot)",
"webFetchProvidersHeading": "Web Fetch Provayderləri",
"compatibleProvidersDesc": "Sizin host etdiyiniz və ya konfiqurasiya etdiyiniz OpenAI-uyğun və Anthropic-uyğun son nöqtələr. Hər hansı bir OpenAI SDK-nı öz URL-inizə yönləndirin və sorğuları bura marşrutlaşdırın.",
@@ -6048,7 +6055,7 @@
"imageProvidersDesc": "Təsvir yaratma və vizual analiz provayderləri — mətndən şəkillər yaradın və ya mövcud olanları analiz edin.",
"videoProvidersDesc": "Video yaratma provayderləri. Mətn sorğularından və ya şəkillərdən qısa video çarxlar yaradın.",
"onboardingWizard": "Provayderə qoşulma sehrbazı",
- "onboardingWizardShort": "Onboarding Wizard",
+ "onboardingWizardShort": "İlkin quraşdırma sehrbazı",
"onboardingWizardDescription": "Doğrulama, davamlılıq və dərhal əlaqə testi ilə API açarı, fərdi uyğun və OAuth provayderlərini birləşdirin.",
"onboardingStepType": "Növ",
"onboardingStepProvider": "Provayder",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 daxil olmaqla 40-dan çox model üçün endirimli API proksisi. API açarınızı https://freeaiapikey.com/dashboard ünvanından əldə edin. Baza URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "https://freemodel.dev ünvanında $300 pulsuz API krediti əldə edin — ödəniş məlumatı tələb olunmur. OpenAI ilə uyğun son nöqtə. GPT-5.4 və GPT-5.5 modelləri mövcuddur.",
"friendliai": "Serverless çıxarış üçün pulsuz tarif — kredit kartı tələb olunmur",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio vasitəsilə pulsuz səviyyə; model üzrə kvotalar artıq dərc edilmir (AI Studio-da kvota səhifəsini yoxlayın) — kredit kartı tələb olunmur.",
"gigachat": "GigaChat (Sber)-ı API açarı ilə qoşun.",
"gitlab": "İctimai Code Suggestions API üçün GitLab şəxsi giriş tokeni. gitlab.com istifadə etmədikdə, self-hosted baza URL-i konfiqurasiya edin.",
"gitlawb-gmi": "API açarınızı Gitlawb Opengateway idarəetmə panelindən əldə edin.",
@@ -6180,7 +6187,7 @@
"glm-cn": "GLM Coding (China)-i API açarı ilə qoşun.",
"glmt": "Daha yüksək token büdcəsi, düşünmə aktivləşdirilmiş və daha uzun vaxt aşımı olan hazır GLM profili.",
"getgoapi": "GoAPI-ni API açarı ilə qoşun.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Pulsuz plan: model üzrə limitlər (hər çat modeli üçün gündə 200K token; RPM/RPD üçün console.groq.com/docs/rate-limits səhifəsinə baxın) — hesabda ödəniş üsulu yoxdur.",
"haiper": "API açarını haiper.ai/haiper-api ünvanından əldə edin",
"heroku": "Heroku AI-ı API açarı ilə qoşun.",
"hcnsec": "API açarını api.hcnsec.cn ünvanından əldə edin",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai ünvanında API açarı yaradın, sonra onu bura Bearer tokeni kimi yapışdırın. OpenAI ilə uyğun son nöqtə canlı /v1/models kataloqu ilə https://router.requesty.ai/v1 ünvanındadır.",
"runwayml": "Runway video yaradılması tapşırıq əsaslıdır. OmniRoute mətndən-videoya və ya şəkildən-videoya tapşırıqlarını təqdim edir, /v1/tasks/[id] ünvanını sorğulayır və tamamlanmış video çıxışlarını yenidən OpenAI tipli /v1/videos/generations cavabına normallaşdırır.",
"sambanova": "Qeydiyyatdan keçdikdə $5 pulsuz kredit (30 gün etibarlılıq müddəti), kredit kartı tələb olunmur",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.cc ünvanında API açarı yaradın, sonra onu Bearer tokeni kimi buraya yapışdırın. OpenAI ilə uyğun əsas URL: https://seekai.cc/v1.",
"sap": "Model kəşfi AI_API_URL üzərində /v2/lm/scenarios/foundation-models/models istifadə edir. Söhbət sorğuları deploymentUrl/chat/completions istifadə edir və AI-Resource-Group tələb edir.",
"sarvam": "Sarvam AI OpenAI ilə uyğun gəlir /v1. OmniRoute /v1/models-i yoxlayır və söhbət trafikini /v1/chat/completions-a yönləndirir. Modellər Hind dilləri üçün tənzimlənmişdir.",
"scaleway": "Yeni hesablar üçün 1M pulsuz token — Aİ/GDPR uyğun (Paris), Qwen3 235B və Llama 70B",
@@ -6305,21 +6312,21 @@
"claude": "Claude Code-u mövcud OAuth axını ilə qoşun.",
"cline": "Cline-ı mövcud OAuth axını ilə qoşun.",
"cursor": "Cursor IDE-ni mövcud OAuth axını ilə qoşun.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Cursor-u cursor.com/dashboard/api ünvanından əldə edilən istifadəçi API açarı (crsr_...) ilə qoşun; IDE sessiyasına ehtiyac yoxdur.",
"github": "GitHub Copilot-u mövcud OAuth axını ilə qoşun.",
"gitlab-duo": "ai_features + read_user əhatə dairələri olan OAuth tətbiqi. Bu OmniRoute instansiyasında GITLAB_DUO_OAUTH_CLIENT_ID və istəyə bağlı olaraq GITLAB_DUO_OAUTH_CLIENT_SECRET konfiqurasiya edin.",
"kilocode": "Kilo Code-u mövcud OAuth axını ilə qoşun.",
"kimi-coding": "Kimi Coding-i mövcud OAuth axını ilə qoşun.",
- "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.",
- "codex": "Connect OpenAI Codex with the existing OAuth flow.",
- "qwen": "Connect Qwen Code with the existing OAuth flow.",
+ "kiro": "Pulsuz səviyyə: ayda 50 kredit (~25K–100K token). ⚠️ Kiro istifadə şərtləri üçüncü tərəf proksi/alətlər sistemlərindən istifadəni qadağan edir.",
+ "codex": "OpenAI Codex-i mövcud OAuth axını ilə qoşun.",
+ "qwen": "Qwen Code-u mövcud OAuth axını ilə qoşun.",
"github-models": "github.com/settings/tokens ünvanında 'models: read' əhatə dairəsi ilə GitHub PAT yaradın"
},
"passthroughModelsDescription": "{provider} provayderin yerli model identifikatorlarını qəbul edir. /modellərdən idxal edin və ya marşrutlaşdırma üçün fərdi identifikatorlar əlavə edin.",
"bedrockModelsDescription": "Amazon Bedrock modelləri AWS bölgəsi tərəfindən əhatə olunur. /modellərdən idxal edin və ya seçilmiş regionda aktivləşdirilmiş Bedrock model ID-lərini əlavə edin.",
"bedrockModelPlaceholder": "antropik.claude-sonnet-4-6",
"addProviderSessionCookieTitle": "{provider} sessiya kukisini əlavə edin",
- "openWebProviderSite": "Open {host}",
+ "openWebProviderSite": "{host} ünvanını açın",
"addProviderWebTokenTitle": "{provider} veb nişanı əlavə edin",
"addProviderConnectionTitle": "{provider} əlaqə əlavə edin",
"webTokenCredentialLabel": "Veb sessiya nişanı",
@@ -6338,45 +6345,45 @@
"webSessionGuideStep3": "Tələb olunan etimadnaməni provayderin öz domenindən kopyalayın. Kukilər üçün yalnız Kuki başlıq dəyərini kopyalayın və Kuki: buraxın.",
"webSessionGuideStep3Manual": "Əl ilə yol: brauzerin inkişaf etdirici alətlərini açın (F12 → Şəbəkə), səhifəni yeniləyin, təsdiqlənmiş sorğunu açın və İstək Başlıqlarından Cookie başlıq dəyərini kopyalayın — Cookie: prefiksini atlayın.",
"webSessionGuideStep4": "Bura yapışdırın və əlaqəni yoxlayın. Əgər işləməyi dayandırarsa, yenidən daxil olun və onu təzə dəyərlə əvəz edin.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har faylını idxal edin",
+ "harImportButtonBusy": "İdxal edilir…",
+ "harImportButtonHint": "Ən azı bir çat mesajı göndərdikdən sonra DevTools-un Network bölməsindən ixrac edin.",
+ "harImportStatusValid": "İdxal edildi — təxminən {minutes} dəqiqə etibarlıdır.",
+ "harImportStatusExpiringSoon": "İdxal edildi — cəmi təxminən {minutes} dəqiqə daha etibarlıdır.",
+ "harImportStatusExpired": "İdxal edildi, lakin bu tokenin müddəti artıq bitib ({minutes} dəqiqə əvvəl) — yeni HAR ixrac edin.",
+ "harImportStatusUnknownExpiry": "İdxal edildi. Onun etibarlılıq müddətini oxumaq mümkün olmadı.",
+ "harImportErrorNotJson": "Bu fayl düzgün JSON deyil — həqiqətən .har ixracıdır?",
+ "harImportErrorNoEntries": "Bu HAR-da heç bir şəbəkə qeydi yoxdur.",
+ "harImportErrorNoChathubUrl": "Bu HAR-da Copilot çat bağlantısı tapılmadı. İxrac etməzdən əvvəl m365.cloud.microsoft saytında ən azı bir çat mesajı göndərin.",
+ "harImportErrorUnparsableUrl": "Çat bağlantısı tapıldı, lakin onun URL-i oxuna bilmədi.",
+ "harImportErrorMissingFields": "Çat bağlantısı tapıldı, lakin orada token yox idi.",
+ "harImportErrorReadFailed": "Həmin faylı oxumaq mümkün olmadı.",
+ "harImportErrorUnknown": "Həmin HAR faylından giriş məlumatını çıxarmaq mümkün olmadı.",
"webSessionSecurityHint": "Bunu parol kimi qəbul edin: müddəti bitənə və ya ləğv edilənə qədər o, daxil olduğunuz veb hesabınıza daxil ola bilər.",
"webNoAuthGuideTitle": "Etibarnamə tələb olunmur",
"webNoAuthGuideBody": "{provider} üçün API açarı və ya kuki tələb olunmur. Pulsuz veb son nöqtəsindən istifadə etmək üçün əlaqəni yadda saxlayın.",
"webSessionCredentialValidationFailed": "Sessiya etimadnaməsinin yoxlanılması uğursuz oldu. Yenidən daxil olun, yeni etimadnaməsini kopyalayın və yenidən cəhd edin.",
"checkCookie": "Kuki yoxlayın",
"checkWebToken": "Tokeni yoxlayın",
- "huggingchatLabel": "HuggingChat (Free)",
- "huggingchatDesc": "Free LLM chat via huggingface.co/chat",
- "poeWebLabel": "Poe Web",
- "poeWebDesc": "Multi-model chat via poe.com",
- "veniceWebLabel": "Venice Web",
- "veniceWebDesc": "Privacy-focused AI chat",
- "v0VercelWebLabel": "v0 Vercel Web",
- "v0VercelWebDesc": "AI code generation via v0.dev",
+ "huggingchatLabel": "HuggingChat (Pulsuz)",
+ "huggingchatDesc": "huggingface.co/chat vasitəsilə pulsuz LLM çatı",
+ "poeWebLabel": "Poe Veb",
+ "poeWebDesc": "poe.com vasitəsilə çoxmodelli çat",
+ "veniceWebLabel": "Venice Veb",
+ "veniceWebDesc": "Məxfiliyə yönəlmiş süni intellekt çatı",
+ "v0VercelWebLabel": "v0 Vercel Veb",
+ "v0VercelWebDesc": "v0.dev vasitəsilə süni intellektlə kod yaratma",
"kimiWebLabel": "Kimi Web",
- "kimiWebDesc": "Moonshot AI consumer chat via www.kimi.com (international, Connect-RPC API)",
+ "kimiWebDesc": "www.kimi.com vasitəsilə Moonshot AI istehlakçı çat xidməti (beynəlxalq, Connect-RPC API)",
"doubaoWebLabel": "Dola Web",
- "doubaoWebDesc": "ByteDance AI chat via dola.com",
- "overrideBaseUrlAdvanced": "Advanced: override base URL",
- "overrideBaseUrlHint": "Advanced: point this built-in provider at a custom endpoint. Leave blank to use the default.",
+ "doubaoWebDesc": "dola.com vasitəsilə ByteDance AI çat xidməti",
+ "overrideBaseUrlAdvanced": "Qabaqcıl: əsas URL-i dəyişdirin",
+ "overrideBaseUrlHint": "Qabaqcıl: bu daxili provayderi fərdi son nöqtəyə yönəldin. Standart dəyərdən istifadə etmək üçün boş saxlayın.",
"apiProtocolLabel": "API protokolu",
"apiProtocolDefault": "OpenAI-uyğun (defolt)",
"apiProtocolHint": "Bəzi təminatçılar eyni modelləri bir neçə protokol üzrə yayımlayır. Alternativə ehtiyacınız olmadıqca, standartı saxlayın.",
- "bulkAddFormatHintCloudflare": "One key per line. Format: name|accountId|apiKey (Cloudflare account ID + API token).",
- "lmarenaWebCookieHint": "Open arena.ai, sign in, then copy the full Cookie header from a Network request. Include arena-auth-prod-v1.0 and arena-auth-prod-v1.1 (and further chunks if present), preferably with cf_clearance. Do not paste only the empty arena-auth-prod-v1 cookie. Optional: providerSpecificData.recaptchaV3Token if create-evaluation still returns 403.",
+ "bulkAddFormatHintCloudflare": "Hər sətirdə bir açar. Format: name|accountId|apiKey (Cloudflare hesab ID-si + API tokeni).",
+ "lmarenaWebCookieHint": "arena.ai saytını açın, daxil olun, sonra Network sorğusundan tam Cookie başlığını kopyalayın. arena-auth-prod-v1.0 və arena-auth-prod-v1.1 dəyərlərini (mövcuddursa, sonrakı hissələri də), tercihen cf_clearance ilə birlikdə daxil edin. Yalnız boş arena-auth-prod-v1 kukisini yerləşdirməyin. İstəyə bağlı: create-evaluation hələ də 403 qaytarırsa, providerSpecificData.recaptchaV3Token.",
"kimiOfficialSupporterBadge": "Təsisçi Dost",
"kimiOfficialSupporterTooltip": "Kimi (Moonshot AI) OmniRoute-un təsisçi Açıq Mənbə Dostudur",
"cheaperInferenceSupporterBadge": "Açıq Mənbə Dostu",
@@ -6417,7 +6424,7 @@
"codexServiceModeUpdated": "Codex xidmət rejimi yeniləndi",
"codexServiceTierActive": "Codex {tier} xidmət səviyyəsi aktivdir",
"codexTierFastLabel": "Tez",
- "codexTierFlexLabel": "Flex",
+ "codexTierFlexLabel": "Çevik",
"commandCodeApplyFailed": "Komanda Kodu auth tətbiq etmək mümkün olmadı",
"commandCodeApplyingApproval": "Brauzer təsdiqləndi, tətbiq edilir…",
"commandCodeApplyingKey": "Brauzer tərəfindən təsdiqlənmiş açar tətbiq edilir…",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Komanda Kodu auth müddəti bitdi",
"commandCodeConnected": "Əmr Kodu qoşuldu",
"commandCodeConnectionAdded": "Komanda Kodu bağlantısı əlavə edildi",
+ "clearConnectionCooldown": "Gözləmə müddətini sıfırla",
+ "clearConnectionCooldownInProgress": "Sıfırlanır…",
+ "clearConnectionCooldownTitle": "Gözləmə müddətini indi sıfırlayın — yuxarı mənbədə kvota artıq yenilənibsə istifadə edin",
"commandCodeLinkExpired": "Əmr Kodu bağlantısı müddəti bitdi",
"commandCodeOpeningStudio": "Komanda Kod Studiyasını Açır…",
"commandCodePopupBlocked": "Pop-up bloklandı. Zəhmət olmasa, pop-uplara icazə verin və Command Code Connect-i yenidən cəhd edin.",
"commandCodeStartFailed": "Komanda Kodu auth başlamaqda uğursuz oldu",
"connectionDeleted": "Bağlantı silindi",
"connectionFallback": "bağlantı",
+ "connectionCooldownCleared": "Gözləmə müddəti sıfırlandı — bağlantı yenidən marşrutlaşdırmaya qoşuldu",
"coolingConnectionsDescription": "Bu bağlantılar son sorğudan sonra soyumaqdadır. OmniRoute taymer bitənə qədər onları atlayacaq — əl ilə söndürmək lazım deyil.",
"coolingConnectionsTitle": "Hazırda soyudulur ({count})",
+ "failedClearConnectionCooldown": "Gözləmə müddətini sıfırlamaq alınmadı",
"failedDeleteAlias": "Alias silinmədi",
"failedDeleteConnection": "Bağlantını silmək mümkün olmadı",
"failedDistributeProxies": "Proksiləri paylamaq mümkün olmadı.",
@@ -6466,21 +6478,16 @@
"savedModelEndpointSettings": "Saxlanmış model son nöqtəsi parametrləri",
"searchByModelAria": "Model üzrə axtarış edin",
"selectSupportedEndpoint": "Ən azı bir dəstəklənən son nöqtəni seçin",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Test sistemi / CLI"
},
"settings": {
- "title": "Settings",
- "general": "General",
- "security": "Security",
- "appearance": "Appearance",
- "routing": "Routing",
- "cache": "Cache",
- "resilience": "Resilience",
+ "title": "Parametrlər",
+ "general": "Ümumi",
+ "security": "Təhlükəsizlik",
+ "appearance": "Görünüş",
+ "routing": "Marşrutlaşdırma",
+ "cache": "Keş",
+ "resilience": "Dayanıqlılıq",
"description": "Təsvir",
"enable": "Aktivləşdir",
"disable": "Deaktiv et",
@@ -6523,7 +6530,7 @@
"routingSummarizeDropParagraphContains": "tərkibində bunlar olan paraqrafları sil: {items}",
"routingSummarizeDropParagraphStartsWith": "bunlarla başlayan paraqrafları sil: {items}",
"routingSummarizeReplaceText": "əvəz et \"{match}\" → \"{replacement}\"",
- "routingSummarizeReplaceRegex": "regex /{pattern}/{flags} → \"{replacement}\"",
+ "routingSummarizeReplaceRegex": "müntəzəm ifadə /{pattern}/{flags} → \"{replacement}\"",
"routingSummarizeDropBlockContains": "tərkibində bunlar olan blokları sil: {items}",
"routingSummarizePrependSystemBlock": "bloku əvvələ əlavə et: \"{text}\"",
"routingSummarizeAppendSystemBlock": "bloku sona əlavə et: \"{text}\"",
@@ -6547,25 +6554,25 @@
"routingOpStatusSeparator": " ·",
"resilienceSettingsIntro": "Provayderlər uğursuz olduqda avtomatik yenidən cəhd, soyuma və geri qaytarma.",
"aiSettingsIntro": "Düşüncə büdcəsi, model davranışı və sıxılma üçün süni intellektə xüsusi parametrlər.",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "Sistem təlimatı",
+ "thinkingBudget": "Düşünmə büdcəsi",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP proksisi",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "Proksi bölmələri",
+ "requestBodyLimitTitle": "Sorğu gövdəsi limiti",
+ "requestBodyLimitDescription": "Sorğu gövdəsi emal edilməzdən əvvəl qəbul edilən maksimum API faydalı yük ölçüsü. Xüsusi yükləmə marşrutları ən azı daxili 100 MB limitini saxlayır.",
+ "requestBodyLimitInputLabel": "Sorğu gövdəsi limiti, MB ilə",
+ "requestBodyLimitEmptyError": "MB ilə limit daxil edin",
+ "requestBodyLimitWholeNumberError": "Tam ədəd istifadə edin",
+ "requestBodyLimitMinimumError": "Minimum {min} MB-dir",
+ "requestBodyLimitMaximumError": "Maksimum {max} MB-dir",
+ "requestBodyLimitLoadFailed": "Sorğu limiti parametrlərini yükləmək alınmadı",
+ "requestBodyLimitSaveSuccess": "Sorğu gövdəsi limiti yadda saxlanıldı",
+ "requestBodyLimitSaveFailed": "Sorğu gövdəsi limitini yadda saxlamaq alınmadı",
+ "requestBodyLimitSaving": "Yadda saxlanılır...",
+ "requestBodyLimitSave": "Yadda saxla",
+ "requestBodyLimitCurrent": "Cari: {value}",
"cacheConfigLoadFailed": "Keş parametrlərini yükləmək mümkün olmadı",
"cacheConfigSaveSuccess": "Keş parametrləri saxlanıldı",
"cacheConfigSaveFailed": "Keş parametrlərini saxlamaq mümkün olmadı",
@@ -6578,70 +6585,70 @@
"modelCatalogCacheTtlSaving": "Saxlanılır...",
"modelCatalogCacheTtlSave": "Saxla",
"modelCatalogCacheTtlCurrent": "Cari: {value} ms",
- "mitmProxy": "MITM Proxy",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
- "comboDefaults": "Combo Defaults",
- "fallbackChains": "Fallback Chains",
- "changePassword": "Change Password",
- "enablePassword": "Enable Password",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "mitmProxy": "MITM Proksi",
+ "pricing": "Qiymətləndirmə",
+ "storage": "Yaddaş",
+ "policies": "Siyasətlər",
+ "ipFilter": "IP filtri",
+ "comboDefaults": "Kombinasiya üçün standartlar",
+ "fallbackChains": "Ehtiyat zəncirləri",
+ "changePassword": "Şifrəni dəyiş",
+ "enablePassword": "Şifrəni aktivləşdir",
+ "darkMode": "Qaranlıq rejim",
+ "lightMode": "İşıqlı rejim",
+ "memoryTitle": "Yaddaş",
+ "memoryDesc": "Sessiyalar arasında davamlı danışıq yaddaşı",
+ "memoryEnabled": "Yaddaşı aktivləşdir",
+ "memoryEnabledDesc": "Aktiv olduqda, OmniRoute keçmişdən uyğun konteksti əlavə edəcək.",
"memoryTokenCostWarning": "Diqqət: yaddaş aktiv olduqda, OmniRoute hər çat sorğusuna əldə edilmiş kontekstdən {tokens} tokenə qədər daxil edir — bu, token istifadəsini və xərci artırır. Müəyyən bir sorğu üçün daxiletməni ötürmək üçün \"x-omniroute-no-memory: true\" başlığını göndərin.",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
- "justNow": "Just now",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
- "providers": "Providers",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
- "systemTheme": "System Theme",
- "debugToggle": "Enable Debug Mode",
+ "maxTokens": "Maksimum token sayı",
+ "retentionDays": "Saxlama müddəti",
+ "recent": "Son",
+ "recentDesc": "Xronoloji pəncərə",
+ "semantic": "Semantik",
+ "semanticDesc": "Vektor axtarışı",
+ "hybrid": "Hibrid",
+ "hybridDesc": "Son + Semantik",
+ "skillsTitle": "Bacarıqlar",
+ "skillsDesc": "Modellər üçün alətlər",
+ "skillsEnabled": "Bacarıqları aktivləşdir",
+ "skillsEnabledDesc": "Agentlərə funksiyaları işə salmağa imkan verir.",
+ "skillsComingSoon": "Bacarıqlar marketpleysi tezliklə istifadəyə veriləcək.",
+ "memorySkillsTitle": "Yaddaş və Bacarıqlar",
+ "memorySkillsDesc": "Davamlı kontekst və imkanlar",
+ "modelsDevTitle": "Model verilənlər bazası",
+ "modelsDevDesc": "Qiymətləri, imkanları və spesifikasiyaları models.dev saytından avtomatik sinxronlaşdırın",
+ "modelsDevEnabled": "models.dev sinxronizasiyasını aktivləşdir",
+ "modelsDevEnabledDesc": "Model qiymətlərini, imkanlarını və spesifikasiyalarını açıq mənbəli models.dev verilənlər bazasından əldə edin",
+ "modelsDevInterval": "Sinxronizasiya intervalı",
+ "syncNow": "İndi sinxronlaşdır",
+ "syncing": "Sinxronlaşdırılır...",
+ "lastSync": "Son sinxronizasiya",
+ "never": "Heç vaxt",
+ "justNow": "İndicə",
+ "modelsDevStats": "Sinxronizasiya statistikası",
+ "modelsDevStatsDesc": "Cari models.dev məlumat əhatəsi",
+ "providers": "Provayderlər",
+ "modelsWithPricing": "Qiymətləndirməsi olan modellər",
+ "capabilities": "İmkanlar",
+ "lastSyncCount": "Son sinxronizasiya sayı",
+ "lastSyncFull": "Son tam sinxronizasiya",
+ "modelsDevInfo": "Necə işləyir",
+ "modelsDevInfoDesc": "models.dev, SST/OpenCode komandası tərəfindən idarə olunan, süni intellekt modellərinin spesifikasiyalarını ehtiva edən açıq mənbəli verilənlər bazasıdır. O, 100-dən çox provayder üzrə 4.000-dən çox model üçün qiymətlər, imkanlar, kontekst limitləri və modallıqlar təqdim edir.",
+ "modelsDevInfoResolution": "Qiymətin müəyyənləşdirilməsi ardıcıllığı (ən yüksək prioritetdən başlayaraq):",
+ "modelsDevInfoOrder": "İstifadəçi təyinatı → models.dev → LiteLLM → Sərt kodlaşdırılmış standart dəyər",
+ "systemTheme": "Sistem mövzusu",
+ "debugToggle": "Sazlama rejimini aktivləşdir",
"logToolSourcesToggle": "Alət mənbələrini qeydə al",
"logToolSourcesDescription": "Hər sorğu üçün alət sayını və MCP/hosted/client mənbə bölgüsünü xülasə edən diaqnostik loq sətri çıxarın.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "Məlumatı ana səhifəyə bərkid",
"homePinnedSectionsDesc": "Əsas səhifənin yuxarısına hansı bölmələrin bərkidiləcəyini seçin.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "Provayder kvota limitləri",
+ "homeProviderQuotaLimitsDesc": "Provayder kvotasının status konteynerini («Hamısını yenilə» düyməsi ilə) Ana səhifənin yuxarısına bərkidin.",
+ "homeQuickStart": "Sürətli başlanğıc",
+ "homeQuickStartDesc": "Ana səhifədə Sürətli başlanğıc panelini göstərin.",
+ "homeProviderTopology": "Provayder topologiyası",
+ "homeProviderTopologyDesc": "Ana səhifədə Provayder topologiyasını göstərin.",
"accountEmailVisibility": "Hesab e-poçtunun görünürlüyü",
"accountEmailVisibilityDesc": "Provayderlər, kombolar, loqlar, kvota və playground ekranlarında tam hesab e-poçtlarını göstərin. Onları standart olaraq maskalamaq üçün bunu söndürün.",
"comboConfigMode": "Kombo konfiqurasiya rejimi",
@@ -6657,138 +6664,138 @@
"providerQuotaAutoRefreshInterval": "Yeniləmə intervalı",
"providerQuotaAutoRefreshIntervalDesc": "Kvota görünüşünün nə qədər tez-tez yenilənməli olduğu (saniyə ilə).",
"seconds": "saniyə",
- "sidebarVisibilityToggle": "Show Sidebar Items",
- "enableCache": "Enable Cache",
- "cacheTTL": "Cache TTL",
- "maxCacheSize": "Max Cache Size",
- "clearCache": "Clear Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
- "cacheMisses": "Cache Misses",
- "hitRate": "Hit Rate",
- "cacheEntries": "Cache Entries",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "sidebarVisibilityToggle": "Yan panel elementlərini göstər",
+ "enableCache": "Keşi aktivləşdir",
+ "cacheTTL": "Keşin TTL müddəti",
+ "maxCacheSize": "Maksimum keş ölçüsü",
+ "clearCache": "Keşi təmizlə",
+ "cacheCleared": "Keş uğurla təmizləndi",
+ "clearCacheFailed": "Keşi təmizləmək mümkün olmadı",
+ "cacheHits": "Keş uyğunluqları",
+ "cacheMisses": "Keş uyğunsuzluqları",
+ "hitRate": "Uyğunluq faizi",
+ "cacheEntries": "Keş qeydləri",
+ "cacheSettings": "Keş parametrləri",
+ "semanticCache": "Semantik keş",
+ "maxEntries": "Maksimum qeyd sayı",
+ "ttlMinutes": "TTL (dəqiqə)",
+ "promptCache": "Sorğu keşi",
+ "strategy": "Strategiya",
+ "preserveClientCache": "Müştəri keşini qoruyub saxla",
+ "enabled": "Aktivdir",
"loading": "Loading...",
- "saving": "Saving...",
- "save": "Save",
- "circuitBreaker": "Circuit Breaker",
- "retryPolicy": "Retry Policy",
- "maxRetries": "Max Retries",
- "retryDelay": "Retry Delay",
- "timeoutMs": "Timeout (ms)",
- "enableSystemPrompt": "Enable System Prompt",
- "systemPromptText": "System Prompt Text",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "saving": "Yadda saxlanılır...",
+ "save": "Yadda saxla",
+ "circuitBreaker": "Dövrə qoruyucusu",
+ "retryPolicy": "Təkrar cəhd siyasəti",
+ "maxRetries": "Maksimum təkrar cəhd sayı",
+ "retryDelay": "Təkrar cəhd gecikməsi",
+ "timeoutMs": "Taymaut (ms)",
+ "enableSystemPrompt": "Sistem promptunu aktivləşdir",
+ "systemPromptText": "Sistem promptunun mətni",
+ "autoDisableBannedAccounts": "Bloklanmış hesabları avtomatik deaktiv et",
+ "autoDisableDescription": "Xüsusi yekun bloklanma siqnalları (məsələn, HTTP 403 'hesabınızı təsdiqləyin') qaytaran provayder bağlantılarını həmişəlik deaktiv edilmiş kimi işarələyin. Bu, onları kombinasiya rotasiyasından çıxarır.",
+ "autoDisableThreshold": "Bloklanma həddi",
+ "autoDisableThresholdDesc": "Həmişəlik deaktivləşdirmədən əvvəl tələb olunan ardıcıl bloklanma siqnallarının sayı.",
+ "autoDisableBannedScope": "Avtomatik deaktivləşdirməni bunlara tətbiq et",
+ "autoDisableBannedScopeDesc": "OmniRoute bloklanmadan sonra təkrar cəhdlərə davam edərsə, giriş yerləri (ödənişli abunəliklər və pulsuz hesablar) yuxarı axın xidməti tərəfindən kilidlənə bilər. Ödənişli, əvvəlcədən ödənilmiş API açarlarında bu risk yoxdur — onları hovuzda saxlayın ki, fill-first növbəti açardan istifadə edə bilsin.",
+ "autoDisableBannedScopeAll": "Bütün bağlantılar",
+ "autoDisableBannedScopeAllDesc": "Əvvəlcədən ödənilmiş API açarları daxil olmaqla, daimi bloklanma siqnalı qaytaran hər bir bağlantını deaktiv edin.",
+ "autoDisableBannedScopeSubscription": "Yalnız giriş / abunəlik hesabları",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth, kuki, sessiya və veb-giriş yerlərini (ödənişli və ya pulsuz) deaktiv edin. Əvvəlcədən ödənilmiş API açarları aktiv qalır ki, marşrutlaşdırma alternativə keçə bilsin.",
"customBannedSignals": "Qadağan olunmuş açar sözlər",
"customBannedSignalsDesc": "Hesabın daimi bloklanmasının aşkarlanmasını işə salan əlavə açar sözlər. Daxili açar sözlər həmişə tətbiq olunur.",
"customBannedSignalsPlaceholder": "məs., api key revoked",
"noCustomBannedSignals": "Xüsusi açar söz yoxdur. Yalnız daxili açar sözlər aktivdir.",
- "resilienceStructureTitle": "Resilience Structure",
- "resilienceStructureDesc": "This page only configures behavior. Live breaker state is shown on the Health page. Combo-specific retry and round-robin slot control remain on combo settings.",
- "enableThinking": "Enable Thinking",
- "maxThinkingTokens": "Max Thinking Tokens",
- "enableProxy": "Enable Proxy",
+ "resilienceStructureTitle": "Dayanıqlılıq strukturu",
+ "resilienceStructureDesc": "Bu səhifə yalnız davranışı konfiqurasiya edir. Dövrə qoruyucusunun cari vəziyyəti Sağlamlıq səhifəsində göstərilir. Kombinasiyaya xas təkrar cəhd və dairəvi slot idarəetməsi kombinasiya ayarlarında qalır.",
+ "enableThinking": "Düşünməni aktivləşdir",
+ "maxThinkingTokens": "Maksimum düşünmə tokenlərinin sayı",
+ "enableProxy": "Proksini aktivləşdir",
"perKeyProxyEnabled": "Hər açar üçün proksi təyinatını aktivləşdirin",
"perKeyProxyEnabledDesc": "Aktiv olduqda, hər provayder bağlantısı öz proksi təyinatından istifadə edə bilər",
- "proxyUrl": "Proxy URL",
- "pricingRates": "Pricing Rates Format",
- "currentPricing": "Current Pricing Overview",
- "loadingPricing": "Loading pricing data...",
- "noPricing": "No pricing data available",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
+ "proxyUrl": "Proksi URL-i",
+ "pricingRates": "Qiymət tariflərinin formatı",
+ "currentPricing": "Cari qiymətlərə ümumi baxış",
+ "loadingPricing": "Qiymət məlumatları yüklənir...",
+ "noPricing": "Qiymət məlumatı mövcud deyil",
+ "input": "Giriş",
+ "output": "Çıxış",
+ "cached": "Keşlənmiş",
"reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "customPricing": "Custom Pricing",
- "databaseSize": "Database Size",
- "backupDb": "Backup Database",
- "restoreDb": "Restore Database",
- "exportData": "Export Data",
- "importData": "Import Data",
- "clearData": "Clear All Data",
- "clearDataConfirm": "This will permanently delete all data. Are you sure?",
- "enableRequestLogs": "Enable Request Logs",
- "logRetention": "Log Retention",
- "ipWhitelist": "IP Whitelist",
- "ipBlacklist": "IP Blacklist",
- "addIP": "Add IP",
- "savedSuccessfully": "Settings saved successfully",
+ "cacheCreation": "Keşin yaradılması",
+ "customPricing": "Fərdi qiymətləndirmə",
+ "databaseSize": "Verilənlər bazasının ölçüsü",
+ "backupDb": "Verilənlər bazasının ehtiyat nüsxəsini yarat",
+ "restoreDb": "Verilənlər bazasını bərpa et",
+ "exportData": "Məlumatları ixrac et",
+ "importData": "Məlumatları idxal et",
+ "clearData": "Bütün məlumatları sil",
+ "clearDataConfirm": "Bu əməliyyat bütün məlumatları həmişəlik siləcək. Əminsiniz?",
+ "enableRequestLogs": "Sorğu jurnallarını aktivləşdir",
+ "logRetention": "Jurnalların saxlanma müddəti",
+ "ipWhitelist": "IP ağ siyahısı",
+ "ipBlacklist": "IP qara siyahısı",
+ "addIP": "IP əlavə et",
+ "savedSuccessfully": "Parametrlər uğurla yadda saxlanıldı",
"ai": "AI",
- "advanced": "Advanced",
- "localMode": "Local Mode — All data stored on your machine",
- "settingsSectionsAria": "Settings sections",
- "switchThemes": "Switch between light and dark themes",
- "themeSelectionAria": "Theme selection",
- "themeLight": "Light",
- "themeDark": "Dark",
- "themeSystem": "System",
- "endpointTunnelVisibility": "Endpoint tunnel visibility",
- "endpointTunnelVisibilityDesc": "Hide tunnel controls from the Endpoint page without changing tunnel state.",
+ "advanced": "Qabaqcıl",
+ "localMode": "Lokal rejim — Bütün məlumatlar cihazınızda saxlanılır",
+ "settingsSectionsAria": "Parametr bölmələri",
+ "switchThemes": "Açıq və tünd mövzular arasında keçid edin",
+ "themeSelectionAria": "Mövzu seçimi",
+ "themeLight": "Açıq",
+ "themeDark": "Tünd",
+ "themeSystem": "Sistem",
+ "endpointTunnelVisibility": "Endpoint tunelinin görünməsi",
+ "endpointTunnelVisibilityDesc": "Tunelin vəziyyətini dəyişmədən Endpoint səhifəsində tunel idarəetmələrini gizlədin.",
"showCloudflareTunnel": "Cloudflare Quick Tunnel",
- "showCloudflareTunnelDesc": "Show Cloudflare Quick Tunnel controls on the Endpoint page.",
+ "showCloudflareTunnelDesc": "Endpoint səhifəsində Cloudflare Quick Tunnel idarəetmələrini göstərin.",
"showTailscaleFunnel": "Tailscale Funnel",
- "showTailscaleFunnelDesc": "Show Tailscale Funnel controls on the Endpoint page.",
+ "showTailscaleFunnelDesc": "Endpoint səhifəsində Tailscale Funnel idarəetmələrini göstərin.",
"showNgrokTunnel": "ngrok Tunnel",
- "showNgrokTunnelDesc": "Show ngrok Tunnel controls on the Endpoint page.",
- "sidebarVisibility": "Hide sidebar items",
- "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter without disabling any features",
- "sidebarVisibilityHint": "Any sidebar section is hidden automatically when all of its entries are hidden",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
+ "showNgrokTunnelDesc": "Endpoint səhifəsində ngrok Tunnel idarəetmələrini göstərin.",
+ "sidebarVisibility": "Yan panel elementlərini gizlət",
+ "sidebarVisibilityDesc": "Heç bir funksiyanı deaktiv etmədən vizual qarışıqlığı azaltmaq üçün istənilən yan panel naviqasiya elementini gizlədin",
+ "sidebarVisibilityHint": "Bütün elementləri gizlədildikdə istənilən yan panel bölməsi avtomatik olaraq gizlədilir",
+ "presetAll": "Hamısı",
+ "presetAllDesc": "Hər şeyi göstər",
+ "presetEssentials": "Əsaslar",
+ "presetEssentialsDesc": "Başlanğıc yolu — Qabaqcıl alətlər axtarışda əlçatan qalır",
"presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
- "hideHealthLogs": "Hide Health Check Logs",
- "hideHealthLogsDesc": "When ON, suppress [HealthCheck] messages in server console",
- "themeAccent": "Theme color",
- "themeAccentDesc": "Choose a preset color or create your own theme with one color",
- "themeCreate": "Create theme",
- "themeCustom": "Custom theme",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "presetMinimalDesc": "Yalnız əsas səhifələr",
+ "presetDeveloper": "Tərtibatçı",
+ "presetDeveloperDesc": "Tərtibatçı və proksi alətləri",
+ "presetAdmin": "İnzibatçı",
+ "presetAdminDesc": "Monitorinq və audit",
+ "settingsSidebarTitle": "Yan panelin fərdiləşdirilməsi",
+ "settingsSidebarDesc": "Göstəriləcək yan panel elementlərini seçin. Əsaslar seçimi Qabaqcıl alətləri axtarışda əlçatan saxlayır.",
+ "hideHealthLogs": "Sağlamlıq yoxlaması jurnallarını gizlət",
+ "hideHealthLogsDesc": "AKTİV olduqda, server konsolunda [HealthCheck] mesajlarını göstərmə",
+ "themeAccent": "Mövzu rəngi",
+ "themeAccentDesc": "Hazır rəng seçin və ya bir rənglə öz mövzunuzu yaradın",
+ "themeCreate": "Mövzu yarat",
+ "themeCustom": "Fərdi mövzu",
+ "themeBlue": "Mavi",
+ "themeRed": "Qırmızı",
+ "themeGreen": "Yaşıl",
+ "themeViolet": "Bənövşəyi",
+ "themeOrange": "Narıncı",
+ "themeCyan": "Firuzəyi",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Tətbiqin adını və loqosunu fərdiləşdirin",
+ "appName": "Tətbiqin adı",
+ "appNameDesc": "Yan paneldə və brauzer nişanında göstərilən ad",
+ "customLogo": "Fərdi loqo URL-si",
+ "customLogoDesc": "Fərdi loqo şəklinizin URL-si",
+ "uploadLogo": "Loqo yüklə",
+ "resetLogo": "Standart parametrlərə sıfırla",
+ "logoPreview": "Önizləmə",
+ "customFavicon": "Brauzer favikonu",
+ "customFaviconDesc": "Fərdi favikonunuzun URL-si (brauzer nişanında göstərilir)",
+ "uploadFavicon": "Favikon yüklə",
+ "resetFavicon": "Favikonu sıfırla",
+ "faviconPreview": "Favikonun önizləməsi",
"logoFileTooLarge": "Loqo faylı 500KB-dan az olmalıdır",
"faviconFileTooLarge": "Favikon faylı 50KB-dan az olmalıdır",
"invalidLogoFileType": "Yanlış fayl növü. Zəhmət olmasa PNG, JPG, SVG, GIF və ya WebP yükləyin.",
@@ -6796,15 +6803,15 @@
"failedToReadFile": "Faylı oxumaq mümkün olmadı",
"startOnLogin": "Sistemə daxil olduqda başlat",
"startOnLoginDesc": "Sistem işə düşərkən OmniRoute-u avtomatik başladın və fonda sistem treyində səssiz rejimdə işlədin.",
- "flushCache": "Flush Cache",
- "flushing": "Flushing…",
- "size": "Size",
- "hits": "Hits",
- "evictions": "Evictions",
- "loadingCacheStats": "Loading cache stats…",
- "globalProxy": "Global Proxy",
- "globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
- "noGlobalProxy": "No global proxy configured",
+ "flushCache": "Keşi təmizlə",
+ "flushing": "Təmizlənir…",
+ "size": "Ölçü",
+ "hits": "Sorğular",
+ "evictions": "Çıxarılmalar",
+ "loadingCacheStats": "Keş statistikası yüklənir…",
+ "globalProxy": "Qlobal proksi",
+ "globalProxyDesc": "Bütün API çağırışları üçün qlobal çıxış proksisini konfiqurasiya edin. Ayrı-ayrı provayderlər, kombinasiyalar və açarlar bunu əvəz edə bilər.",
+ "noGlobalProxy": "Qlobal proksi konfiqurasiya edilməyib",
"proxyPool": "Proksi hovuzu",
"freePool": "Pulsuz hovuz",
"proxyDocumentation": "Proksi sənədləri",
@@ -6892,21 +6899,21 @@
"refreshInterval": "Təzələmə Aralığı",
"ruleModeDescription": "Qayda Rejimi Təsviri"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
+ "bulkHealthcheck": "Kütləvi sağlamlıq yoxlaması",
+ "bulkHealthcheckDesc": "Hansılarının işlədiyini müəyyən etmək üçün bütün konfiqurasiya edilmiş proksiləri hədəf URL ilə sınaqdan keçirin.",
+ "healthcheckTesting": "Sınaqdan keçirilir...",
+ "healthcheckAll": "Hamısının sağlamlığını yoxla",
+ "healthcheckFailed": "Sağlamlıq yoxlamasını işə salmaq alınmadı",
+ "healthcheckTestingAll": "Bütün proksilər paralel olaraq yoxlanılır...",
+ "healthcheckTotal": "Cəmi",
+ "healthcheckWorking": "İşlək",
+ "healthcheckFailedLabel": "Uğursuz",
"healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "healthcheckProxyUrl": "Proksi URL-i",
+ "healthcheckLatency": "Gecikmə",
"proxyDocumentationScopeTitle": "Proksi əhatə dairəsinin təyini",
"proxyDocumentationScopeDescBefore": "OmniRoute çıxan proksini prioritet sırası ilə təyin edir:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "combo → hesab → provayder → qlobal",
"proxyDocumentationScopeDescAfter": ". Ən spesifik əhatə dairəsi üstünlük təşkil edir.",
"proxyDocumentationAddTitle": "Fərdi proksinin əlavə edilməsi",
"proxyDocumentationAddDescBefore": "Keçin:",
@@ -6962,22 +6969,22 @@
"proxyFreePoolLoadMore": "Daha çox yüklə",
"close": "Bağla",
"cancel": "Ləğv et",
- "globalLabel": "Global",
- "configure": "Configure",
- "globalSystemPrompt": "Global System Prompt",
- "saved": "Saved",
+ "globalLabel": "Qlobal",
+ "configure": "Konfiqurasiya et",
+ "globalSystemPrompt": "Qlobal Sistem Sorğusu",
+ "saved": "Yadda saxlanıldı",
"beforePromptLabel": "Promptdan əvvəl",
"beforePromptDesc": "Agent/provayder sistem təlimatlarından əvvəl daxil edilir",
"beforePromptPlaceholder": "Agent/provayder promptundan əvvəl daxil edilən təlimatlar...",
"afterPromptLabel": "Promptdan sonra",
"afterPromptDesc": "Agent/provayder sistem təlimatlarından sonra daxil edilir",
"afterPromptPlaceholder": "Agent/provayder promptundan sonra daxil edilən təlimatlar...",
- "chars": "{count} chars",
- "thinkingBudgetTitle": "Thinking Budget",
+ "chars": "{count} simvol",
+ "thinkingBudgetTitle": "Düşünmə Büdcəsi",
"thinkingBudgetDesc": "Control AI reasoning token usage across all requests",
"thinkingBudgetIndependenceHint": "Sıxma, yönləndirmə və token-limit xüsusiyyətləri hər bir rejimdə işləməyə davam edir. Auto \"avtomatik düşüncə göstərmək\" demək deyil - bu, müştəri düşüncə sahələrini çıxarır.",
- "passthrough": "Passthrough",
- "passthroughDesc": "No changes — client controls thinking budget",
+ "passthrough": "Dəyişikliksiz ötürmə",
+ "passthroughDesc": "Dəyişiklik yoxdur — düşünmə büdcəsini müştəri idarə edir",
"thinkingModePassthrough": "Keçid",
"thinkingModePassthroughDesc": "Müştəri səbəblərini dəyişməz saxlayın (səy, xülasə, düşüncə blokları). Codex/Desktop görünən düşüncə üçün tələb olunur. Varsayılan.",
"thinkingModeAuto": "Avtomatik (zolaq)",
@@ -6987,54 +6994,54 @@
"thinkingModeAdaptive": "Uyğunlaşan",
"thinkingModeAdaptiveDesc": "Mesaj sayı, alətlər və təklif uzunluğundan istifadə edərək əsas səydən düşüncə büdcəsini ölçün.",
"auto": "Auto Combo",
- "autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "custom": "Custom",
- "customDesc": "Set a fixed token budget for all requests",
- "adaptive": "Adaptive",
- "adaptiveDesc": "Scale budget based on request complexity",
- "effortNone": "None (0 tokens)",
- "effortLow": "Low (1K tokens)",
- "effortMedium": "Medium (10K tokens)",
- "effortHigh": "High (128K tokens)",
- "tokenBudget": "Token Budget",
- "tokens": "tokens",
- "baseEffortLevel": "Base Effort Level",
+ "autoDesc": "Özünü bərpa edən ağıllı marşrutlaşdırma hovuzu (Performans üçün optimallaşdırılıb)",
+ "custom": "Fərdi",
+ "customDesc": "Bütün sorğular üçün sabit token büdcəsi təyin edin",
+ "adaptive": "Adaptiv",
+ "adaptiveDesc": "Büdcəni sorğunun mürəkkəbliyinə əsasən miqyaslandırın",
+ "effortNone": "Yoxdur (0 token)",
+ "effortLow": "Aşağı (1K token)",
+ "effortMedium": "Orta (10K token)",
+ "effortHigh": "Yüksək (128K token)",
+ "tokenBudget": "Token Büdcəsi",
+ "tokens": "token",
+ "baseEffortLevel": "Baza Səy Səviyyəsi",
"adaptiveHint": "Adaptive mode scales from this base level based on message count, tool usage, and prompt length.",
- "requireLogin": "Require login",
- "requireLoginDesc": "When ON, dashboard requires password. When OFF, access without login.",
- "currentPassword": "Current Password",
- "enterCurrentPassword": "Enter current password",
- "newPassword": "New Password",
- "enterNewPassword": "Enter new password",
- "confirmPassword": "Confirm New Password",
- "confirmPasswordPlaceholder": "Confirm new password",
- "passwordsNoMatch": "Passwords do not match",
- "passwordUpdated": "Password updated successfully",
- "failedUpdatePassword": "Failed to update password",
- "errorOccurred": "An error occurred",
- "updatePassword": "Update Password",
- "setPassword": "Set Password",
- "apiEndpointProtection": "API Endpoint Protection",
- "requireAuthModels": "Require API key for /models",
- "requireAuthModelsDesc": "When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.",
- "authModelHeading": "Active authorization model",
- "authModelClient": "Client API endpoints (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) require a Bearer API key.",
- "authModelManagement": "Management endpoints (/dashboard, /api/*) require a dashboard session or management credential.",
- "authModelPublic": "Only login, health, and bootstrap routes are public.",
- "bruteForceProtection": "Login brute-force protection",
- "bruteForceProtectionDesc": "Throttle and lock /api/auth/login after repeated failures from the same IP.",
- "corsAllowedOrigins": "CORS allowed origins",
- "corsAllowedOriginsDesc": "Comma-separated list of browser origins permitted to call this server. Empty list = no browser CORS access (server-to-server still works). Use CORS_ALLOW_ALL=true env var only for development.",
- "blockedProviders": "Blocked Providers",
- "blockedProvidersDesc": "Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.",
- "providersBlocked": "{count} provider(s) blocked from /models",
- "blockProviderTitle": "Block {provider}",
- "unblockProviderTitle": "Unblock {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "requireLogin": "Giriş tələb et",
+ "requireLoginDesc": "AKTİV olduqda idarə paneli parol tələb edir. DEAKTİV olduqda giriş etmədən istifadə mümkündür.",
+ "currentPassword": "Cari Parol",
+ "enterCurrentPassword": "Cari parolu daxil edin",
+ "newPassword": "Yeni Parol",
+ "enterNewPassword": "Yeni parolu daxil edin",
+ "confirmPassword": "Yeni Parolu Təsdiqləyin",
+ "confirmPasswordPlaceholder": "Yeni parolu təsdiqləyin",
+ "passwordsNoMatch": "Parollar uyğun gəlmir",
+ "passwordUpdated": "Parol uğurla yeniləndi",
+ "failedUpdatePassword": "Parolu yeniləmək mümkün olmadı",
+ "errorOccurred": "Xəta baş verdi",
+ "updatePassword": "Parolu yenilə",
+ "setPassword": "Parol təyin et",
+ "apiEndpointProtection": "API son nöqtələrinin qorunması",
+ "requireAuthModels": "/models üçün API açarı tələb et",
+ "requireAuthModelsDesc": "AKTİV olduqda, /v1/models son nöqtəsi autentifikasiyadan keçməmiş sorğular üçün 404 qaytarır. İcazəsiz istifadəçilərin modelləri aşkar etməsinin qarşısını alır.",
+ "authModelHeading": "Aktiv avtorizasiya modeli",
+ "authModelClient": "Müştəri API son nöqtələri (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) Bearer API açarı tələb edir.",
+ "authModelManagement": "İdarəetmə son nöqtələri (/dashboard, /api/*) idarə paneli sessiyası və ya idarəetmə giriş məlumatı tələb edir.",
+ "authModelPublic": "Yalnız giriş, sağlamlıq yoxlaması və ilkin quraşdırma marşrutları ictimaidir.",
+ "bruteForceProtection": "Giriş zamanı kobud güc hücumlarından qorunma",
+ "bruteForceProtectionDesc": "Eyni IP-dən təkrarlanan uğursuz cəhdlərdən sonra /api/auth/login sorğularını məhdudlaşdır və kilidlə.",
+ "corsAllowedOrigins": "CORS üçün icazə verilən mənbələr",
+ "corsAllowedOriginsDesc": "Bu serverə müraciət etməsinə icazə verilən brauzer mənbələrinin vergüllə ayrılmış siyahısı. Boş siyahı = brauzerdən CORS girişi yoxdur (serverlərarası əlaqə işləməyə davam edir). CORS_ALLOW_ALL=true mühit dəyişənini yalnız proqram təminatının hazırlanması zamanı istifadə edin.",
+ "blockedProviders": "Bloklanmış provayderlər",
+ "blockedProvidersDesc": "Müəyyən provayderləri /v1/models cavabında gizlədin. Bloklanmış provayderlər model siyahılarında görünməyəcək.",
+ "providersBlocked": "{count} provayder /models siyahısından bloklanıb",
+ "blockProviderTitle": "{provider} provayderini blokla",
+ "unblockProviderTitle": "{provider} provayderinin blokunu ləğv et",
+ "cliFingerprint": "CLI rəqəmsal izinin uyğunlaşdırılması",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count} provayder üçün CLI rəqəmsal izi aktivdir",
+ "enableFingerprintTitle": "{provider} üçün rəqəmsal izi aktivləşdir",
+ "disableFingerprintTitle": "{provider} üçün rəqəmsal izi deaktiv et",
"systemTransforms": "Sistem blokunun Transform Boru Kəməri",
"systemTransformsDesc": "Hər provayder yönləndirilməzdən əvvəl sorğu orqanına tətbiq edilən transformasiya boru kəmərini sifariş etdi. İstənilən provayder ID-ni dəstəkləyir.",
"systemTransformsAddProvider": "Provayder əlavə edin",
@@ -7045,33 +7052,33 @@
"systemTransformsOpMoveUp": "Yuxarı hərəkət edin",
"systemTransformsOpMoveDown": "Aşağı hərəkət edin",
"systemTransformsOpDelete": "Silin op",
- "routingStrategy": "Routing Strategy",
- "routingAdvancedGuideTitle": "Advanced routing guidance",
+ "routingStrategy": "Marşrutlaşdırma strategiyası",
+ "routingAdvancedGuideTitle": "Qabaqcıl marşrutlaşdırma təlimatı",
"routingAdvancedGuideHint1": "Use Fill First for predictable priority, Round Robin for fairness, and P2C for latency resilience.",
"routingAdvancedGuideHint2": "If providers vary in quality/cost, start with Cost Opt for background work and Least Used for balanced wear.",
- "fillFirst": "Fill First",
- "fillFirstDesc": "Use accounts in priority order",
+ "fillFirst": "Əvvəlcə doldur",
+ "fillFirstDesc": "Hesablardan prioritet sırasına görə istifadə et",
"roundRobin": "Round Robin",
- "roundRobinDesc": "Cycle through all accounts",
+ "roundRobinDesc": "Bütün hesabları növbə ilə istifadə et",
"p2c": "P2C",
- "p2cDesc": "Pick 2 random, use the healthier one",
- "random": "Random",
- "randomDesc": "Random account each request",
- "leastUsed": "Least Used",
- "leastUsedDesc": "Pick least recently used account",
- "costOpt": "Cost Opt",
- "costOptDesc": "Prefer cheapest available account",
- "resetAware": "Reset-Aware RR",
- "resetAwareDesc": "Prefer accounts with healthy remaining quota and nearer resets",
- "quotaWeighted": "Quota-Weighted",
+ "p2cDesc": "Təsadüfi 2 hesab seç və daha sağlam olanı istifadə et",
+ "random": "Təsadüfi",
+ "randomDesc": "Hər sorğu üçün təsadüfi hesab",
+ "leastUsed": "Ən az istifadə edilən",
+ "leastUsedDesc": "Ən uzun müddətdir istifadə edilməyən hesabı seç",
+ "costOpt": "Xərc optimallaşdırması",
+ "costOptDesc": "Ən ucuz əlçatan hesaba üstünlük ver",
+ "resetAware": "Sıfırlanmanı nəzərə alan dövri seçim",
+ "resetAwareDesc": "Sağlam qalıq kvotası olan və sıfırlanma vaxtı daha yaxın hesablara üstünlük ver",
+ "quotaWeighted": "Kvotaya görə çəkili",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "Ciddi təsadüfi seçim",
+ "strictRandomDesc": "Kolodan təsadüfi seçim — yenidən qarışdırmazdan əvvəl hər hesabdan bir dəfə istifadə edir",
+ "stickyLimit": "Sabit limit",
"stickyLimitDesc": "Calls per account before switching",
"routingStrategyTitle": "Marşrutlaşdırma strategiyası",
"routingStrategySubtitle": "9router ilə uyğunlaşdır: hesabların round-robin paylanması, stiki limitlər və kombo rotasiyası",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Növbəli paylaşdırma",
"accountRoundRobinDesc": "Yükü bölüşdürmək üçün hesablar arasında dövr et",
"comboRoundRobin": "Kombo Round Robin",
"comboRoundRobinDesc": "Həmişə birincidən başlamaq əvəzinə kombo hədəfləri arasında dövr et",
@@ -7085,225 +7092,225 @@
"providerAccountRoutingDesc": "Bu provayder üçün qlobal hesab strategiyasını yenidən təyin et (9router uyğunluğu).",
"providerRoutingStrategy": "Hesab strategiyası",
"providerRoutingInheritGlobal": "Qlobal standartı miras al",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
- "modelAliases": "Model Aliases",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
- "addCustomAlias": "Add Custom Alias",
- "deprecatedModelId": "Deprecated model ID",
- "newModelId": "New model ID",
- "customAliases": "Custom Aliases",
- "builtInAliases": "Built-in Aliases",
- "backgroundDegradationTitle": "Background Task Degradation",
- "backgroundDegradationDesc": "Auto-detect background tasks (titles, summaries) and route to cheaper models",
- "enableDegradation": "Enable Background Degradation",
- "enableDegradationHint": "When enabled, background tasks like title generation and summarization are routed to cheaper models automatically",
- "tasksDetected": "Tasks detected",
- "degradationMap": "Model Degradation Map",
+ "quotaPreflightTitle": "Kvotanın ilkin yoxlama həddi",
+ "quotaPreflightSubtitle": "Sorğunu yuxarı xidmətə göndərməzdən əvvəl kvotası bitmiş hesabları ötürün",
+ "quotaPreflightEnable": "Kvotanın ilkin yoxlanmasını aktivləşdirin",
+ "quotaPreflightEnableDesc": "Hər sorğudan əvvəl hesabın qalan kvotasını yoxlayın (5 saatlıq / həftəlik / aylıq dövrlər). Həddə çatan və ya ondan aşağı olan hesablar yuxarı xidmətə sorğu göndərilmədən ötürülür. Provider Quota səhifəsində hər dövr üçün təyin olunan hədlər həmişə buradakı standart dəyərdən üstün tutulur.",
+ "quotaPreflightCutoff": "Qlobal hədd (minimum qalıq %)",
+ "quotaPreflightCutoffDesc": "Ayrıca həddi olmayan bütün dövrlər üçün hesabın qalan kvotası bu faizə və ya daha aşağı səviyyəyə düşdükdə ondan istifadəni dayandırın. Provider Quota səhifəsindəki qalıq faiz göstəricilərinə uyğundur.",
+ "quotaPreflightWindowsHint": "Öz dövr və ya provayder üzrə həddi olan dövrlərə (Provider Quota səhifəsindəki Cutoff pəncərəsində təyin edilir) bu standart dəyər təsir etmir.",
+ "quotaPreflightLoadFailed": "Kvotanın ilkin yoxlama parametrlərini yükləmək mümkün olmadı.",
+ "modelAliases": "Model ləqəbləri",
+ "modelAliasesTitle": "Model ləqəbləri",
+ "modelAliasesDesc": "Dəqiq uyğunluqlar və ya şablon nümunələri ilə model adlarını yenidən uyğunlaşdırın.",
+ "addCustomAlias": "Fərdi ləqəb əlavə edin",
+ "deprecatedModelId": "Köhnəlmiş model ID-si",
+ "newModelId": "Yeni model ID-si",
+ "customAliases": "Fərdi ləqəblər",
+ "builtInAliases": "Daxili ləqəblər",
+ "backgroundDegradationTitle": "Fon tapşırıqlarının daha sadə modelə keçirilməsi",
+ "backgroundDegradationDesc": "Fon tapşırıqlarını (başlıqlar, xülasələr) avtomatik aşkarlayın və daha ucuz modellərə yönləndirin",
+ "enableDegradation": "Fon tapşırıqlarının daha sadə modelə keçirilməsini aktivləşdirin",
+ "enableDegradationHint": "Aktiv olduqda, başlıq yaratma və xülasələşdirmə kimi fon tapşırıqları avtomatik olaraq daha ucuz modellərə yönləndirilir",
+ "tasksDetected": "Aşkarlanan tapşırıqlar",
+ "degradationMap": "Model sadələşdirmə xəritəsi",
"premiumModel": "Premium model",
- "cheapModel": "Cheap model",
- "detectionPatterns": "Detection Patterns",
- "newPattern": "e.g. \"generate a title\"",
+ "cheapModel": "Ucuz model",
+ "detectionPatterns": "Aşkarlama nümunələri",
+ "newPattern": "məs., \"başlıq yarat\"",
"aliasPatternPlaceholder": "claude-sonnet-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
- "pattern": "Pattern",
- "targetModel": "Target Model",
- "add": "+ Add",
- "session": "Session",
- "sessionDetailsAria": "Session details",
+ "pattern": "Nümunə",
+ "targetModel": "Hədəf model",
+ "add": "+ Əlavə et",
+ "session": "Sessiya",
+ "sessionDetailsAria": "Sessiya təfərrüatları",
"status": "Status",
- "authenticated": "Authenticated",
- "guest": "Guest",
- "loginTime": "Login Time",
- "sessionAge": "Session Age",
- "browser": "Browser",
- "clearLocalData": "Clear Local Data",
- "logout": "Logout",
- "clearLocalDataConfirm": "Clear all local data? This will reset your preferences.",
- "unknown": "Unknown",
- "systemActor": "system",
- "ipAccessControl": "IP Access Control",
- "ipAccessControlDesc": "Block or allow specific IP addresses",
- "ipModeDisabled": "Disabled",
- "ipModeBlacklist": "Blacklist",
- "ipModeWhitelist": "Whitelist",
- "ipModeWhitelistPriority": "WL Priority",
- "addIpAddress": "Add IP Address",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
- "block": "+ Block",
- "allow": "+ Allow",
- "blocked": "Blocked ({count})",
- "allowed": "Allowed ({count})",
- "temporaryBans": "Temporary Bans ({count})",
- "minLeft": "{min}m left",
- "auditLog": "Audit Log",
- "searchAuditLogs": "Search audit logs...",
- "failedLoadAuditLog": "Failed to load audit log",
- "noAuditEvents": "No audit events found",
- "action": "Action",
- "actor": "Actor",
- "details": "Details",
- "time": "Time",
- "fallbackChainsTitle": "Fallback Chains",
- "fallbackChainsDesc": "Define provider fallback order per model",
- "addChain": "+ Add Chain",
- "modelName": "Model Name",
+ "authenticated": "Doğrulanmış",
+ "guest": "Qonaq",
+ "loginTime": "Giriş vaxtı",
+ "sessionAge": "Sessiyanın müddəti",
+ "browser": "Brauzer",
+ "clearLocalData": "Lokal məlumatları təmizlə",
+ "logout": "Çıxış",
+ "clearLocalDataConfirm": "Bütün lokal məlumatlar silinsin? Bu, seçimlərinizi sıfırlayacaq.",
+ "unknown": "Naməlum",
+ "systemActor": "sistem",
+ "ipAccessControl": "IP Girişinə Nəzarət",
+ "ipAccessControlDesc": "Müəyyən IP ünvanlarını bloklayın və ya icazə verin",
+ "ipModeDisabled": "Deaktivdir",
+ "ipModeBlacklist": "Qara siyahı",
+ "ipModeWhitelist": "Ağ siyahı",
+ "ipModeWhitelistPriority": "Ağ siyahı prioriteti",
+ "addIpAddress": "IP ünvanı əlavə et",
+ "ipAddressPlaceholder": "192.168.1.0/24 və ya 10.0.*.*",
+ "block": "+ Blokla",
+ "allow": "+ İcazə ver",
+ "blocked": "Bloklanmış ({count})",
+ "allowed": "İcazə verilmiş ({count})",
+ "temporaryBans": "Müvəqqəti qadağalar ({count})",
+ "minLeft": "{min} dəq qalıb",
+ "auditLog": "Audit jurnalı",
+ "searchAuditLogs": "Audit jurnallarında axtarın...",
+ "failedLoadAuditLog": "Audit jurnalını yükləmək alınmadı",
+ "noAuditEvents": "Heç bir audit hadisəsi tapılmadı",
+ "action": "Əməliyyat",
+ "actor": "İcraçı",
+ "details": "Təfərrüatlar",
+ "time": "Vaxt",
+ "fallbackChainsTitle": "Ehtiyat zəncirləri",
+ "fallbackChainsDesc": "Hər model üçün provayderlərin ehtiyat sırasını müəyyən edin",
+ "addChain": "+ Zəncir əlavə et",
+ "modelName": "Model adı",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
- "providersCommaSeparated": "Providers (comma-separated, in priority order)",
+ "providersCommaSeparated": "Provayderlər (vergüllə ayrılmış, prioritet sırası ilə)",
"providersCommaSeparatedPlaceholder": "anthropic, openai, gemini",
- "createChain": "Create Chain",
- "noFallbackChains": "No Fallback Chains",
- "noFallbackChainsDesc": "Create a chain to define provider fallback order for a model.",
- "loadingFallbackChains": "Loading fallback chains...",
- "deleteChainConfirm": "Delete fallback chain for \"{model}\"?",
- "chainCreated": "Chain created for {model}",
- "chainDeleted": "Chain deleted for {model}",
- "failedCreateChain": "Failed to create chain",
- "failedDeleteChain": "Failed to delete chain",
- "deleteChain": "Delete chain",
- "fillModelAndProviders": "Please fill model name and providers",
- "addAtLeastOneProvider": "Add at least one provider",
- "comboDefaultsTitle": "Combo Defaults",
- "comboDefaultsGuideTitle": "How to tune combo defaults",
- "comboDefaultsGuideHint1": "Keep retries low in low-latency flows; increase timeout only for long generation tasks.",
- "comboDefaultsGuideHint2": "Use provider overrides when one provider needs different timeout/retry behavior than global defaults.",
- "globalComboConfig": "Global combo configuration",
+ "createChain": "Zəncir yarat",
+ "noFallbackChains": "Ehtiyat zənciri yoxdur",
+ "noFallbackChainsDesc": "Model üçün provayderlərin ehtiyat sırasını müəyyən etmək məqsədilə zəncir yaradın.",
+ "loadingFallbackChains": "Ehtiyat zəncirləri yüklənir...",
+ "deleteChainConfirm": "\"{model}\" üçün ehtiyat zənciri silinsin?",
+ "chainCreated": "{model} üçün zəncir yaradıldı",
+ "chainDeleted": "{model} üçün zəncir silindi",
+ "failedCreateChain": "Zəncir yaratmaq alınmadı",
+ "failedDeleteChain": "Zənciri silmək alınmadı",
+ "deleteChain": "Zənciri sil",
+ "fillModelAndProviders": "Zəhmət olmasa, model adını və provayderləri daxil edin",
+ "addAtLeastOneProvider": "Ən azı bir provayder əlavə edin",
+ "comboDefaultsTitle": "Kombinasiya üçün standart parametrlər",
+ "comboDefaultsGuideTitle": "Kombinasiya üçün standart parametrləri necə tənzimləməli",
+ "comboDefaultsGuideHint1": "Aşağı gecikməli axınlarda təkrar cəhdlərin sayını az saxlayın; taymautu yalnız uzun generasiya tapşırıqları üçün artırın.",
+ "comboDefaultsGuideHint2": "Provayderlərdən biri üçün qlobal standartlardan fərqli taymaut və ya təkrar cəhd davranışı tələb olunduqda provayder üzrə əvəzləmələrdən istifadə edin.",
+ "globalComboConfig": "Qlobal kombinasiya konfiqurasiyası",
"moveUp": "Yuxarı daşı",
"moveDown": "Aşağı daşı",
"allProvidersAdded": "Bütün provayderlər əlavə edildi",
"noProvidersFound": "Heç bir provayder tapılmadı",
- "defaultStrategy": "Default Strategy",
+ "defaultStrategy": "Standart strategiya",
"defaultStrategyDesc": "Applied to new combos without explicit strategy",
- "comboStrategyAria": "Combo strategy",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Priority-style routing with automatic context handoffs when account rotation happens",
- "maxRetriesLabel": "Max Retries",
- "retryDelayLabel": "Retry Delay (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
- "healthCheckDesc": "Pre-check provider availability",
- "trackMetrics": "Track Metrics",
- "trackMetricsDesc": "Record per-combo request metrics",
- "providerOverrides": "Provider Overrides",
- "providerOverridesDesc": "Override timeout and retries per provider. Provider settings override global defaults.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
- "removeProviderOverrideAria": "Remove {provider} override",
+ "comboStrategyAria": "Kombinasiya strategiyası",
+ "priority": "Prioritet",
+ "weighted": "Çəkili",
+ "contextRelay": "Kontekst ötürülməsi",
+ "contextRelayDesc": "Hesab rotasiyası baş verdikdə kontekstin avtomatik ötürülməsi ilə prioritet əsaslı yönləndirmə",
+ "maxRetriesLabel": "Maksimum təkrar cəhd sayı",
+ "retryDelayLabel": "Təkrar cəhd gecikməsi (ms)",
+ "timeoutLabel": "Taymaut (ms)",
+ "healthCheck": "Sağlamlıq yoxlaması",
+ "healthCheckDesc": "Provayderin əlçatanlığını əvvəlcədən yoxlayın",
+ "trackMetrics": "Metrikaları izləyin",
+ "trackMetricsDesc": "Hər kombinasiya üzrə sorğu metrikalarını qeydə alın",
+ "providerOverrides": "Provayder üzrə əvəzləmələr",
+ "providerOverridesDesc": "Hər provayder üçün taymautu və təkrar cəhdləri əvəzləyin. Provayder parametrləri qlobal standartları əvəzləyir.",
+ "providerMaxRetriesAria": "{provider} üçün maksimum təkrar cəhd sayı",
+ "providerTimeoutAria": "{provider} üçün taymaut, ms",
+ "removeProviderOverrideAria": "{provider} əvəzləməsini sil",
"selectProviderPlaceholder": "Provayder seçin...",
"searchProviderPlaceholder": "Provayderləri axtarın...",
"searchProviderAria": "Provayderləri axtarın",
- "newProviderNamePlaceholder": "e.g. google, openai...",
- "newProviderNameAria": "New provider name",
- "retries": "retries",
+ "newProviderNamePlaceholder": "məs., google, openai...",
+ "newProviderNameAria": "Yeni provayderin adı",
+ "retries": "təkrar cəhdlər",
"ms": "ms",
- "saveComboDefaults": "Save Combo Defaults",
- "maxNestingDepth": "Max Nesting Depth",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
+ "saveComboDefaults": "Kombinasiya standartlarını yadda saxla",
+ "maxNestingDepth": "Maksimum iç-içə yerləşmə dərinliyi",
+ "concurrencyPerModel": "Paralellik / Model",
+ "queueTimeout": "Növbə taymautu (ms)",
"queueDepth": "Növbə dərinliyi",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
- "providerProfiles": "Provider Profiles",
- "providerProfilesDesc": "Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
- "maxBackoffLevel": "Max Backoff Level",
- "cbThreshold": "CB Threshold",
- "cbResetTime": "CB Reset Time",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
- "defaultSafetyNet": "Default Safety Net",
+ "contextRelayHandoffThreshold": "Ötürmə həddi",
+ "contextRelayMaxMessages": "Xülasə üçün maksimum mesaj sayı",
+ "contextRelaySummaryModel": "Xülasə modeli",
+ "contextRelayProviderNote": "Kontekst ötürülməsi hazırda Codex hesabları üçün ötürmələr yaradır və bu dəyərləri yeni və ya konfiqurasiya edilməmiş kombinasiyalar üçün qlobal standartlar kimi istifadə edir.",
+ "providerProfiles": "Provayder profilləri",
+ "providerProfilesDesc": "OAuth (sessiya əsaslı) və API Key (ölçülən) provayderləri üçün ayrıca dayanıqlılıq parametrləri. OAuth provayderlərində daha aşağı sürət limitlərinə görə daha sərt hədlər var.",
+ "oauthProviders": "OAuth provayderləri",
+ "apiKeyProviders": "API Açarı Provayderləri",
+ "transientCooldown": "Müvəqqəti Soyuma Müddəti",
+ "rateLimitCooldown": "Sorğu Tezliyi Limiti üzrə Soyuma Müddəti",
+ "maxBackoffLevel": "Maksimum Geriçəkilmə Səviyyəsi",
+ "cbThreshold": "CB Həddi",
+ "cbResetTime": "CB Sıfırlama Müddəti",
+ "rateLimiting": "Sorğu Tezliyinin Məhdudlaşdırılması",
+ "rateLimitingDesc": "API açarı provayderləri təhlükəsiz standart parametrlərlə avtomatik olaraq sorğu tezliyi limitinə tabe edilir. Limitlər cavab başlıqlarından öyrənilir və zamanla uyğunlaşdırılır.",
+ "defaultSafetyNet": "Standart Təhlükəsizlik Mexanizmi",
"rpm": "RPM",
- "minGap": "Min Gap",
- "maxConcurrent": "Max Concurrent",
- "activeLimiters": "Active Limiters",
- "noActiveLimiters": "No active rate limiters yet.",
- "reservoir": "Reservoir",
- "running": "Running",
- "queued": "Queued",
- "circuitBreakers": "Circuit Breakers",
- "breakerStateClosed": "Closed",
- "breakerStateOpen": "Open",
- "breakerStateHalfOpen": "Half-Open",
- "tripped": "{count} tripped",
- "healthy": "{count} healthy",
- "resetAll": "Reset All",
- "noCircuitBreakers": "No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.",
- "failures": "{count} failure(s)",
- "policiesLocked": "Policies & Locked Identifiers",
- "allOperational": "All systems operational — no lockouts or tripped breakers",
- "loadingPolicies": "Loading policies...",
- "lockedIdentifiers": "Locked Identifiers",
- "unlockedIdentifier": "Unlocked: {identifier}",
- "sinceDate": "since {date}",
- "forceUnlock": "Force Unlock",
- "unlocking": "Unlocking...",
- "failedUnlock": "Failed to unlock",
- "failedLoadWithStatus": "Failed to load: {status}",
- "failedLoadResilience": "Failed to load resilience status",
- "saveFailed": "Save failed",
- "resetFailed": "Reset failed",
- "loadingResilience": "Loading resilience status...",
- "retry": "Retry",
+ "minGap": "Minimum Fasilə",
+ "maxConcurrent": "Maksimum Paralel Sorğu",
+ "activeLimiters": "Aktiv Məhdudlaşdırıcılar",
+ "noActiveLimiters": "Hələ aktiv sorğu tezliyi məhdudlaşdırıcısı yoxdur.",
+ "reservoir": "Ehtiyat",
+ "running": "İcra Olunur",
+ "queued": "Növbədədir",
+ "circuitBreakers": "Dövrə Qırıcıları",
+ "breakerStateClosed": "Qapalı",
+ "breakerStateOpen": "Açıq",
+ "breakerStateHalfOpen": "Yarıaçıq",
+ "tripped": "{count} işə düşüb",
+ "healthy": "{count} sağlamdır",
+ "resetAll": "Hamısını Sıfırla",
+ "noCircuitBreakers": "Hələ aktiv dövrə qırıcısı yoxdur. Sorğular kombinasiya konveyerindən keçdikdə onlar avtomatik yaradılır.",
+ "failures": "{count} uğursuzluq",
+ "policiesLocked": "Siyasətlər və Kilidlənmiş İdentifikatorlar",
+ "allOperational": "Bütün sistemlər işləkdir — heç bir kilidlənmə və ya işə düşmüş dövrə qırıcısı yoxdur",
+ "loadingPolicies": "Siyasətlər yüklənir...",
+ "lockedIdentifiers": "Kilidlənmiş İdentifikatorlar",
+ "unlockedIdentifier": "Kilid açıldı: {identifier}",
+ "sinceDate": "{date} tarixindən bəri",
+ "forceUnlock": "Məcburi Kilidi Aç",
+ "unlocking": "Kilid açılır...",
+ "failedUnlock": "Kilidi açmaq mümkün olmadı",
+ "failedLoadWithStatus": "Yükləmək mümkün olmadı: {status}",
+ "failedLoadResilience": "Dayanıqlılıq statusunu yükləmək mümkün olmadı",
+ "saveFailed": "Yadda saxlamaq mümkün olmadı",
+ "resetFailed": "Sıfırlamaq mümkün olmadı",
+ "loadingResilience": "Dayanıqlılıq statusu yüklənir...",
+ "retry": "Yenidən Cəhd Et",
"systemStorage": "System & Storage",
- "allDataLocal": "All data stored locally on your machine",
- "databasePath": "Database Path",
+ "allDataLocal": "Bütün məlumatlar lokal olaraq kompüterinizdə saxlanılır",
+ "databasePath": "Verilənlər bazasının yolu",
"export": "İxrac et",
- "exportDatabase": "Export Database",
- "exportAll": "Export All (.tar.gz)",
- "importDatabase": "Import Database",
- "confirmDbImport": "Confirm Database Import",
- "confirmDbImportDesc": "This will replace all current data with the content from {file}. A backup will be created automatically before the import.",
- "yesImport": "Yes, Import",
- "lastBackup": "Last Backup",
- "noBackupYet": "No backup yet",
- "backupNow": "Backup Now",
- "backupRestore": "Backup & Restore",
- "viewBackups": "View Backups",
- "hide": "Hide",
- "backupRetentionDesc": "Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.",
- "loadingBackups": "Loading backups...",
- "noBackupsYet": "No backups available yet. Backups will be created automatically when data changes.",
- "backupsAvailable": "{count} backup(s) available",
- "refresh": "Refresh",
- "confirm": "Confirm?",
- "yes": "Yes",
- "no": "No",
- "restore": "Restore",
- "invalidFileType": "Invalid file type. Only .sqlite files are accepted.",
- "exportFailed": "Export failed",
- "exportFailedWithError": "Export failed: {error}",
- "fullExportFailedWithError": "Full export failed: {error}",
- "backupCreated": "Backup created: {file}",
- "restoreSuccess": "Restored! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "importSuccess": "Database imported! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "minutesAgo": "{count}m ago",
- "hoursAgo": "{count}h ago",
- "daysAgo": "{count}d ago",
- "backupReasonManual": "manual",
- "backupReasonPreRestore": "pre-restore",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
- "noChangesSinceBackup": "No changes since last backup",
- "backupFailed": "Backup failed",
- "restoreFailed": "Restore failed",
- "importFailed": "Import failed",
- "errorDuringRestore": "An error occurred during restore",
- "errorDuringImport": "An error occurred during import",
- "modelPricing": "Model Pricing",
- "modelPricingDesc": "Configure cost rates per model • All rates in $/1M tokens",
+ "exportDatabase": "Verilənlər bazasını ixrac et",
+ "exportAll": "Hamısını ixrac et (.tar.gz)",
+ "importDatabase": "Verilənlər bazasını idxal et",
+ "confirmDbImport": "Verilənlər bazasının idxalını təsdiqləyin",
+ "confirmDbImportDesc": "Bu əməliyyat bütün cari məlumatları {file} faylının məzmunu ilə əvəz edəcək. İdxaldan əvvəl avtomatik olaraq ehtiyat nüsxə yaradılacaq.",
+ "yesImport": "Bəli, idxal et",
+ "lastBackup": "Son ehtiyat nüsxə",
+ "noBackupYet": "Hələ ehtiyat nüsxə yoxdur",
+ "backupNow": "İndi ehtiyat nüsxə yarat",
+ "backupRestore": "Ehtiyat nüsxələmə və bərpa",
+ "viewBackups": "Ehtiyat nüsxələrə bax",
+ "hide": "Gizlət",
+ "backupRetentionDesc": "Verilənlər dəyişdikdə hər 15 dəqiqədən bir və bərpadan əvvəl verilənlər bazasının anlıq surətləri avtomatik yaradılır. Saxlama müddəti: ağıllı rotasiya ilə 24 saatlıq + 30 gündəlik ehtiyat nüsxə.",
+ "loadingBackups": "Ehtiyat nüsxələr yüklənir...",
+ "noBackupsYet": "Hələ əlçatan ehtiyat nüsxə yoxdur. Verilənlər dəyişdikdə ehtiyat nüsxələr avtomatik yaradılacaq.",
+ "backupsAvailable": "{count} ehtiyat nüsxə mövcuddur",
+ "refresh": "Yenilə",
+ "confirm": "Təsdiqləyirsiniz?",
+ "yes": "Bəli",
+ "no": "Xeyr",
+ "restore": "Bərpa et",
+ "invalidFileType": "Fayl növü yanlışdır. Yalnız .sqlite faylları qəbul edilir.",
+ "exportFailed": "İxrac uğursuz oldu",
+ "exportFailedWithError": "İxrac uğursuz oldu: {error}",
+ "fullExportFailedWithError": "Tam ixrac uğursuz oldu: {error}",
+ "backupCreated": "Ehtiyat nüsxə yaradıldı: {file}",
+ "restoreSuccess": "Bərpa edildi! {connections} bağlantı, {nodes} qovşaq, {combos} kombinasiya, {apiKeys} API açarı.",
+ "importSuccess": "Verilənlər bazası idxal edildi! {connections} bağlantı, {nodes} qovşaq, {combos} kombinasiya, {apiKeys} API açarı.",
+ "minutesAgo": "{count} dəq əvvəl",
+ "hoursAgo": "{count} saat əvvəl",
+ "daysAgo": "{count} gün əvvəl",
+ "backupReasonManual": "əl ilə",
+ "backupReasonPreRestore": "bərpadan əvvəl",
+ "connectionsCount": "{count, plural, one {# bağlantı} other {# bağlantı}}",
+ "noChangesSinceBackup": "Son ehtiyat nüsxədən bəri dəyişiklik yoxdur",
+ "backupFailed": "Ehtiyat nüsxələmə uğursuz oldu",
+ "restoreFailed": "Bərpa uğursuz oldu",
+ "importFailed": "İdxal uğursuz oldu",
+ "errorDuringRestore": "Bərpa zamanı xəta baş verdi",
+ "errorDuringImport": "İdxal zamanı xəta baş verdi",
+ "modelPricing": "Model qiymətləri",
+ "modelPricingDesc": "Hər model üçün tarifləri konfiqurasiya edin • Bütün tariflər $/1M tokenlə göstərilir",
"pricingCoverage": "Əhatə dairəsi",
"pricingAuth": "Autentifikasiya",
"pricingSort": "Sırala",
@@ -7325,7 +7332,7 @@
"configured": "konfiqurasiya edilib",
"none": "Heç biri",
"modelOverrideValuePlaceholder": "Ədədi dəyər",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "İngilis dilində vergüllə ayrılmış, məsələn, low, medium, high",
"addKeyValue": "Açar-dəyər əlavə et",
"noModelOverrides": "Bu model üçün heç bir yenidən təyinetmə konfiqurasiya edilməyib.",
"modelOverrideLoadFailed": "Model yenidən təyinetmələrini yükləmək mümkün olmadı",
@@ -7333,66 +7340,66 @@
"modelOverrideRemoved": "Model yenidən təyinetməsi silindi",
"modelOverrideSaveFailed": "Model yenidən təyinetməsini saxlamaq mümkün olmadı",
"modelOverrideRemoveFailed": "Model yenidən təyinetməsini silmək mümkün olmadı",
- "registry": "Registry",
- "priced": "Priced",
- "searchProvidersModels": "Search providers or models...",
- "showAll": "Show All",
- "noProvidersMatch": "No providers match your search.",
- "howPricingWorks": "How Pricing Works",
- "cacheWrite": "Cache Write",
- "unsaved": "unsaved",
+ "registry": "Reyestr",
+ "priced": "Qiymətləndirilmiş",
+ "searchProvidersModels": "Provayderlər və ya modellər üzrə axtarış...",
+ "showAll": "Hamısını göstər",
+ "noProvidersMatch": "Axtarışınıza uyğun provayder yoxdur.",
+ "howPricingWorks": "Qiymətləndirmə necə işləyir",
+ "cacheWrite": "Keşə yazma",
+ "unsaved": "yadda saxlanılmayıb",
"resetDefaults": "Sıfırlama standartları",
- "saveProvider": "Save Provider",
+ "saveProvider": "Provayderi yadda saxla",
"model": "Model",
- "models": "models",
- "moreProviders": "{count} more providers",
- "withPricing": "with pricing configured",
- "policiesCircuitBreakers": "Policies & Circuit Breakers",
- "activeIssuesDetected": "Active issues detected",
- "off": "Off",
- "resetPricingConfirm": "Reset all pricing for {provider} to defaults?",
- "pricingDescInput": "Input: tokens sent to the model",
- "pricingDescOutput": "Output: tokens generated",
- "pricingDescCached": "Cached: reused input (~50% of input rate)",
- "pricingDescReasoning": "Reasoning: thinking tokens (falls back to Output)",
- "pricingDescCacheWrite": "Cache Write: creating cache entries (falls back to Input)",
- "pricingDescFormula": "Cost = (input × input_rate) + (output × output_rate) + (cached × cached_rate) per million tokens.",
- "pricingSettingsTitle": "Pricing Settings",
- "totalModels": "Total Models",
- "active": "Active",
- "costCalculation": "Cost Calculation",
- "costCalculationDesc": "Costs are calculated based on token usage and pricing rates configured for each model.",
- "pricingFormat": "Pricing Format",
- "pricingFormatDesc": "All rates are in $/1M tokens (dollars per million tokens).",
- "tokenTypes": "Token Types",
- "inputTokenDesc": "Standard prompt tokens",
- "outputTokenDesc": "Completion/response tokens",
- "cachedTokenDesc": "Cached input tokens (typically 50% of input rate)",
- "reasoningTokenDesc": "Special reasoning/thinking tokens (fallback to output rate)",
- "cacheCreationTokenDesc": "Tokens used to create cache entries (fallback to input rate)",
- "customPricingNote": "You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.",
- "editPricing": "Edit Pricing",
- "viewFullDetails": "View Full Details",
+ "models": "model",
+ "moreProviders": "daha {count} provayder",
+ "withPricing": "üçün qiymətlər konfiqurasiya edilib",
+ "policiesCircuitBreakers": "Siyasətlər və dövrə kəsiciləri",
+ "activeIssuesDetected": "Aktiv problemlər aşkarlandı",
+ "off": "Söndürülüb",
+ "resetPricingConfirm": "{provider} üçün bütün qiymətləri standart dəyərlərə sıfırlamaq istəyirsiniz?",
+ "pricingDescInput": "Giriş: modelə göndərilən tokenlər",
+ "pricingDescOutput": "Çıxış: yaradılan tokenlər",
+ "pricingDescCached": "Keşlənmiş: təkrar istifadə olunan giriş (~giriş tarifinin 50%-i)",
+ "pricingDescReasoning": "Məntiqi emal: düşünmə tokenləri (Çıxış tarifindən istifadə edir)",
+ "pricingDescCacheWrite": "Keşə yazma: keş qeydlərinin yaradılması (Giriş tarifindən istifadə edir)",
+ "pricingDescFormula": "Xərc = (giriş × giriş_tarifi) + (çıxış × çıxış_tarifi) + (keşlənmiş × keş_tarifi), hər milyon token üçün.",
+ "pricingSettingsTitle": "Qiymət ayarları",
+ "totalModels": "Ümumi model sayı",
+ "active": "Aktiv",
+ "costCalculation": "Xərcin hesablanması",
+ "costCalculationDesc": "Xərclər token istifadəsinə və hər model üçün konfiqurasiya edilmiş qiymət tariflərinə əsasən hesablanır.",
+ "pricingFormat": "Qiymət formatı",
+ "pricingFormatDesc": "Bütün tariflər $/1M tokenlədir (hər milyon token üçün dollar).",
+ "tokenTypes": "Token növləri",
+ "inputTokenDesc": "Standart sorğu tokenləri",
+ "outputTokenDesc": "Tamamlama/cavab tokenləri",
+ "cachedTokenDesc": "Keşlənmiş giriş tokenləri (adətən giriş tarifinin 50%-i)",
+ "reasoningTokenDesc": "Xüsusi məntiqi emal/düşünmə tokenləri (ehtiyat olaraq çıxış tarifindən istifadə edilir)",
+ "cacheCreationTokenDesc": "Keş qeydləri yaratmaq üçün istifadə olunan tokenlər (ehtiyat olaraq giriş tarifindən istifadə edilir)",
+ "customPricingNote": "Müəyyən modellər üçün standart qiymətləri əvəz edə bilərsiniz. Fərdi qiymət əvəzləmələri avtomatik aşkarlanan qiymətlərdən üstündür.",
+ "editPricing": "Qiymətləri redaktə et",
+ "viewFullDetails": "Tam təfərrüatlara bax",
"themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Adaptiv həcm yönləndirməsi",
+ "adaptiveVolumeRoutingDesc": "Faydalı yükün həcminə və ötürmə qabiliyyəti təzyiqinə əsasən bağlantıları dinamik şəkildə miqyaslandırın.",
+ "lkgpToggleTitle": "Son məlum uğurlu provayder (LKGP)",
+ "lkgpToggleDesc": "Aktiv edildikdə, yönləndirici son uğurlu cavabı hansı provayderin təqdim etdiyini yadda saxlayır və sonrakı sorğularda əvvəlcə onu sınayır.",
"echoRequestedModelTitle": "Cavablarda sorğu edilən model adını əks etdir",
"echoRequestedModelDesc": "Aktiv edildikdə, cavabın `model` sahəsi yuxarı axın model adı əvəzinə müştərinin tələb etdiyi ləqəb və ya kombo adını əks etdirir. Modeli sorğu ilə uyğun gəlməyən cavabı rədd edən sərt müştərilərdəki (məsələn, Claude Desktop) xətanı düzəldir.",
"webSearchRouteTitle": "Veb axtarış yönləndirməsi",
"webSearchRouteDesc": "Sorğuya yerli web_search aləti daxil olduqda, bütün sorğunu standart model əvəzinə bu modelə yönləndirin — Anthropic-in web_search server alətini tətbiq etməyən provayderlər üçün faydalıdır. Deaktiv etmək üçün boş buraxın.",
"webSearchRoutePlaceholder": "Model axtarın və ya seçin…",
"paidModelPatternWarning": "Bu şablon yalnız ödənişli modellərə uyğun gəlir — ödənişli modelləri aktiv edin və ya şablonu tənzimləyin.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP keşini təmizlə",
+ "lkgpCacheCleared": "LKGP keşi uğurla təmizləndi",
+ "lkgpCacheClearFailed": "LKGP keşini təmizləmək mümkün olmadı",
+ "days": "Gün",
+ "lkgp": "LKGP rejimi",
+ "lkgpDesc": "Son məlum uğurlu provayder (Proqnozlaşdırıla bilən dayanıqlılıq)",
+ "maintenance": "Texniki xidmət",
+ "purgeExpiredLogs": "Müddəti bitmiş jurnalları təmizlə",
+ "purgeLogsFailed": "Jurnalları təmizləmək mümkün olmadı",
"logsDeleted": "{count, plural, =0 {Müddəti bitmiş heç bir jurnal təmizlənmədi} one {# müddəti bitmiş jurnal təmizləndi} other {# müddəti bitmiş jurnal təmizləndi}}",
"resetUsageData": "İstifadə Məlumatlarını Sıfırla",
"resetUsageDataDesc": "İstifadə, sorğu jurnalları və analitika məlumatlarını nə qədər geriyə silmək istədiyinizi seçin. Provayder konfiqurasiyası, bağlantılar, API açarları, kombolar və parametrlər qorunub saxlanılır. Bu əməliyyat geri qaytarıla bilməz.",
@@ -7409,63 +7416,63 @@
"resetUsageFailed": "İstifadə məlumatlarını sıfırlamaq mümkün olmadı",
"reset": "Sıfırla",
"resetting": "Sıfırlanır...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
- "clearSyncedPricingConfirm": "Clear all synced pricing data? Provider defaults will be used instead.",
- "clearSyncedPricingFailed": "Failed to clear synced pricing",
- "pricingSourceUser": "User Override",
- "pageDescription": "Manage application settings, model aliases, pricing, and routing rules",
- "pricingSyncStatus": "Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
- "pricingLoadFailed": "Failed to load pricing data",
- "pricingSyncDescription": "Automatically sync model pricing from external sources to keep cost calculations accurate",
- "clearSyncedPricingSuccess": "Synced pricing data cleared",
- "clearSyncedPricingFailedWithReason": "Failed to clear pricing: {reason}",
- "pricingSourceDefault": "Built-in Default",
- "pricingSyncSuccess": "Pricing synced successfully",
- "enableSyncError": "Failed to toggle pricing sync",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "contextOpt": "Kontekstə görə optimallaşdırılıb",
+ "contextOptDesc": "Kontekst pəncərəsi tələblərinə və söhbətin uzunluğuna əsasən yönləndirir",
+ "cacheOpt": "Keşə görə optimallaşdırılıb",
+ "cacheOptDesc": "Eyni təkrar istifadə edilə bilən sorğu prefiksini eyni provayder hesabında saxlayır",
+ "priorityDesc": "Ardıcıl ehtiyat keçid — əvvəlcə 1-ci provayderi, sonra 2-ci provayderi və bu qaydada digərlərini sınayır",
+ "weightedDesc": "Trafiki provayderlər arasında faiz çəkilərinə əsasən paylayır",
+ "modelRoutingTitle": "Model yönləndirmə qaydaları",
+ "modelRoutingDesc": "Glob şablonlarından istifadə edərək modelləri avtomatik olaraq müəyyən kombinasiyalara yönləndirin",
+ "addRule": "Qayda əlavə et",
+ "routeToCombo": "Kombinasiyaya yönləndir",
+ "selectCombo": "Kombinasiya seçin...",
+ "priorityHint": "Daha yüksək dəyər = daha əvvəl yoxlanılır. Xüsusi şablonlar üçün 10+ istifadə edin.",
+ "patternHint": "İstənilən simvollar üçün *, tək simvol üçün ? istifadə edin. Böyük-kiçik hərfə həssas deyil.",
+ "noRoutingRules": "Heç bir yönləndirmə qaydası konfiqurasiya edilməyib. Sorğular standart olaraq qlobal kombinasiyadan istifadə edir.",
+ "routingRuleHint": "Sorğuları avtomatik yönləndirmək üçün claude-opus* -> frontier-combo kimi bir qayda əlavə edin.",
+ "deleteRoutingRule": "Bu model yönləndirmə qaydası silinsin?",
+ "exactMatchMode": "Dəqiq uyğunluq",
+ "wildcardPatternMode": "Əvəzedici simvollu şablon",
+ "exactMatchModeDesc": "Köhnəlmiş və ya adı dəyişdirilmiş model ID-ləri üçün dəqiq ləqəblərdən istifadə edin.",
+ "wildcardPatternModeDesc": "Model ailəsini bir hədəflə əlaqələndirmək üçün * və ? işarələri olan əvəzedici simvollu ləqəblərdən istifadə edin.",
+ "noExactAliasesConfigured": "Heç bir dəqiq uyğunluq ləqəbi konfiqurasiya edilməyib.",
+ "wildcardRulesTitle": "Əvəzedici simvol qaydaları",
+ "noWildcardAliasesConfigured": "Heç bir əvəzedici simvollu ləqəb konfiqurasiya edilməyib.",
+ "overview": "Ümumi baxış",
+ "unknownError": "Naməlum xəta",
+ "pricingSourceLiteLLM": "LiteLLM (İcma)",
+ "clearSyncedPricingConfirm": "Bütün sinxronlaşdırılmış qiymət məlumatları silinsin? Əvəzində provayderin standart dəyərləri istifadə olunacaq.",
+ "clearSyncedPricingFailed": "Sinxronlaşdırılmış qiymət məlumatlarını silmək mümkün olmadı",
+ "pricingSourceUser": "İstifadəçi tərəfindən dəyişdirilib",
+ "pageDescription": "Tətbiq ayarlarını, model ləqəblərini, qiymətləri və marşrutlaşdırma qaydalarını idarə edin",
+ "pricingSyncStatus": "Sinxronizasiya statusu",
+ "whitelist": "İcazə siyahısı",
+ "syncDisabled": "Sinxronizasiya deaktivdir",
+ "pricingLoadFailed": "Qiymət məlumatlarını yükləmək mümkün olmadı",
+ "pricingSyncDescription": "Xərc hesablamalarının dəqiqliyini qorumaq üçün model qiymətlərini xarici mənbələrdən avtomatik sinxronlaşdırın",
+ "clearSyncedPricingSuccess": "Sinxronlaşdırılmış qiymət məlumatları silindi",
+ "clearSyncedPricingFailedWithReason": "Qiymətləri silmək mümkün olmadı: {reason}",
+ "pricingSourceDefault": "Daxili standart dəyər",
+ "pricingSyncSuccess": "Qiymətlər uğurla sinxronlaşdırıldı",
+ "enableSyncError": "Qiymət sinxronizasiyasını dəyişdirmək mümkün olmadı",
+ "syncEnabled": "Sinxronizasiya aktivdir",
+ "blacklist": "Qara siyahı",
"pricingSourceModelsDev": "Models.dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
- "pricingSyncTitle": "Pricing Sync",
- "pricingResetFailedWithReason": "Failed to reset pricing: {reason}",
- "tab": "Tab",
- "pricingSavedProvider": "Pricing saved for {provider}",
- "pricingSyncFailed": "Pricing sync failed",
- "pricingSaveFailedWithReason": "Failed to save pricing: {reason}",
- "pricingResetProvider": "Pricing reset for {provider}",
- "nextSync": "Next Sync",
- "pricingSyncFailedWithReason": "Pricing sync failed: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "syncedModels": "Sinxronlaşdırılmış modellər",
+ "budget": "Büdcə",
+ "pricingSyncTitle": "Qiymət sinxronizasiyası",
+ "pricingResetFailedWithReason": "Qiymətləri sıfırlamaq mümkün olmadı: {reason}",
+ "tab": "Vərəq",
+ "pricingSavedProvider": "{provider} üçün qiymətlər yadda saxlanıldı",
+ "pricingSyncFailed": "Qiymət sinxronizasiyası uğursuz oldu",
+ "pricingSaveFailedWithReason": "Qiymətləri yadda saxlamaq mümkün olmadı: {reason}",
+ "pricingResetProvider": "{provider} üçün qiymətlər sıfırlandı",
+ "nextSync": "Növbəti sinxronizasiya",
+ "pricingSyncFailedWithReason": "Qiymət sinxronizasiyası uğursuz oldu: {reason}",
+ "clearSyncedPricing": "Sinxronlaşdırılmış qiymətləri sil",
+ "compressionTitle": "Sorğu sıxışdırılması",
+ "compressionDesc": "Sorğuları provayderlərə göndərməzdən əvvəl sıxışdıraraq token istifadəsini azaldın",
"compressionGuidanceFullGuideLink": "Tam sıxılma bələdçisi",
"compressionGuidanceShow": "Təfərrüatlar",
"compressionGuidanceHide": "Təfərrüatları gizlət",
@@ -7481,41 +7488,41 @@
"tokenSaverInputCompressionDesc": "Kodu, URL-ləri və niyyəti qoruyaraq uyğun söhbət tarixçəsini yenidən yazın.",
"tokenSaverFineTunePrefix": "Hər mühərriki burada incə tənzimləyin",
"tokenSaverFineTuneSuffix": "və ya hər sorğu üzrə mühərrikləri burada birləşdirin",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Sıxışdırma rejimi",
+ "compressionModeOff": "Söndürülüb",
+ "compressionModeOffDesc": "Sıxışdırma tətbiq edilmir",
+ "compressionModeLite": "Yüngül",
+ "compressionModeLiteDesc": "Boşluqların və boş sətirlərin azaldılması",
+ "compressionModeStandard": "Standart (Caveman)",
+ "compressionModeStandardDesc": "30-dan çox şablonla qayda əsaslı sıxılma, kod bloklarını və URL-ləri qoruyur",
+ "compressionModeAggressive": "Aqressiv",
+ "compressionModeAggressiveDesc": "Maksimum qənaət üçün xülasələmə + alət nəticələrinin sıxılması + mərhələli köhnəlmə",
"compressionModeUltra": "Ultra",
- "compressionModeUltraDesc": "Heuristic token pruning with optional local SLM fallback",
- "compressionAggressiveConfig": "Aggressive Engine Configuration",
- "compressionAggressiveConfigDesc": "Fine-tune summarization, tool compression, and aging thresholds",
- "compressionUltraConfig": "Ultra Engine Configuration",
- "compressionUltraConfigDesc": "Fine-tune heuristic pruning, SLM fallback, and per-message thresholds",
- "compressionUltraRate": "Keep Rate",
- "compressionUltraMinScore": "Minimum Score Threshold",
- "compressionUltraSlmFallback": "Fallback to Aggressive",
- "compressionUltraModelPath": "SLM Model Path",
+ "compressionModeUltraDesc": "İstəyə bağlı lokal SLM ehtiyat variantı ilə evristik token seyrəltməsi",
+ "compressionAggressiveConfig": "Aqressiv mühərrik konfiqurasiyası",
+ "compressionAggressiveConfigDesc": "Xülasələmə, alət sıxılması və köhnəlmə hədlərini dəqiq tənzimləyin",
+ "compressionUltraConfig": "Ultra mühərrik konfiqurasiyası",
+ "compressionUltraConfigDesc": "Evristik seyrəltmə, SLM ehtiyat variantı və hər mesaj üzrə hədləri dəqiq tənzimləyin",
+ "compressionUltraRate": "Saxlanma nisbəti",
+ "compressionUltraMinScore": "Minimum bal həddi",
+ "compressionUltraSlmFallback": "Aqressiv rejimə keçid",
+ "compressionUltraModelPath": "SLM modelinin yolu",
"compressionUltraEngine": "Ultra səviyyəsi",
"compressionUltraEngineHeuristic": "Evristik (Tier-A, standart)",
"compressionUltraEngineSlm": "SLM (LLMLingua-2, istəyə bağlı)",
"compressionUltraSlmHint": "SLM ilk istifadədə (soyuq işəsalma) kiçik bir ONNX modelini endirir və vaxt bitdikdə və ya əlçatmaz olduqda şəffaf şəkildə evristik üsula qayıdır.",
"compressionUltraSlmPrewarm": "Aktivləşdirdikdə SLM modelini öncədən qızdır",
- "compressionSummarizerEnabled": "Enable Summarizer",
- "compressionMaxTokensPerMessage": "Max Tokens Per Message",
- "compressionMinSavings": "Min Savings Threshold",
- "compressionAgingThresholds": "Aging Thresholds",
- "compressionAgingThresholdsDesc": "Number of recent messages kept at each aging tier (higher = more preserved)",
- "compressionToolStrategies": "Tool Result Strategies",
- "compressionToolStrategiesDesc": "Toggle compression strategies for different tool result types",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionSummarizerEnabled": "Xülasələyicini aktivləşdirin",
+ "compressionMaxTokensPerMessage": "Hər mesaj üçün maksimum token sayı",
+ "compressionMinSavings": "Minimum qənaət həddi",
+ "compressionAgingThresholds": "Köhnəlmə hədləri",
+ "compressionAgingThresholdsDesc": "Hər köhnəlmə səviyyəsində saxlanılan son mesajların sayı (daha yüksək = daha çoxu qorunur)",
+ "compressionToolStrategies": "Alət nəticəsi strategiyaları",
+ "compressionToolStrategiesDesc": "Müxtəlif alət nəticəsi növləri üçün sıxılma strategiyalarını aktivləşdirin və ya deaktiv edin",
+ "compressionGeneral": "Ümumi parametrlər",
+ "compressionAutoTrigger": "Avtomatik işə düşmə həddi",
+ "compressionCacheTTL": "Keş TTL-i",
+ "compressionPreserveSystem": "Sistem sorğusunu qoruyun",
"compressionPreserveSystemAlways": "Həmişə",
"compressionPreserveSystemWhenNoCache": "Keş olmadıqda",
"compressionPreserveSystemNever": "Heç vaxt",
@@ -7528,87 +7535,87 @@
"compressionExclusionsSaved": "Saxlanıldı",
"compressionExclusionsCount": "{count, plural, one {# istisna} other {# istisnalar}} konfiqurasiya edilib",
"compressionExclusionsEmpty": "Heç bir istisna konfiqurasiya edilməyib — hər bir model/endpoint sıxılma üçün uyğun gəlir (default davranış).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman mühərrikinin konfiqurasiyası",
+ "compressionCavemanConfigDesc": "Qayda əsaslı sıxılma mühərrikini dəqiq tənzimləyin",
"compressionCavemanPanelHint": "Onun aktiv/deaktiv edilməsi və səviyyəsi paneldə təyin olunur:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
- "minutes": "minutes",
+ "compressionRoles": "Mesaj rollarını sıxın",
+ "compressionRoleUser": "İstifadəçi",
+ "compressionRoleAssistant": "Assistent",
+ "compressionRoleSystem": "Sistem",
+ "compressionMinLength": "Minimum mesaj uzunluğu",
+ "compressionSkipRules": "Sıxılma qaydalarını ötürün",
+ "compressionSkipRulesDesc": "Sıxılma zamanı ötürmək üçün qaydaların üzərinə klikləyin",
+ "compressionPreservePatterns": "Qorunacaq şablonlar",
+ "compressionPreservePatternsDesc": "Heç vaxt sıxılmayan regex şablonları (hər sətirdə bir ədəd)",
+ "compressionLogTitle": "Sıxılma jurnalı",
+ "compressionLogEmpty": "Hələ heç bir sorğu sıxılmayıb. Sıxılma aktiv olduqda sorğular emal edilərkən sıxılma statistikası burada görünəcək.",
+ "minutes": "dəqiqə",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
+ "compressionModeRtkDesc": "Əmrləri nəzərə alan alət çıxışı filtrasiyası",
+ "compressionModeCodexResponses": "Responses alətinin çıxışı",
+ "compressionModeCodexResponsesDesc": "Uyğun shell, patch, axtarış, build və JSON çıxışları üçün konservativ sıxışdırma",
+ "compressionModeStacked": "Yığılmış",
+ "compressionModeStackedDesc": "RTK alət çıxışı filtrləməsi, ardınca Caveman mesaj sıxışdırması",
+ "qdrantTitle": "Qdrant (Vektor yaddaşı)",
+ "qdrantDesc": "İstəyə bağlıdır. Daha sürətli əldə etmək üçün semantik yaddaşları xarici vektor verilənlər bazasında indeksləşdirir.",
+ "qdrantStatusActive": "Aktiv",
+ "qdrantStatusError": "Xəta",
+ "qdrantStatusDisabled": "Deaktiv edilib",
+ "qdrantEnable": "Qdrant-ı aktivləşdir",
+ "qdrantEnableDesc": "Aktivləşdirildikdə, semantik/hibrid strategiya yaddaşları əldə etmək üçün Qdrant-dan istifadə edə bilər.",
+ "qdrantTesting": "Sınaqdan keçirilir...",
+ "qdrantTestConnection": "Bağlantını sınaqdan keçir",
+ "qdrantSaved": "Konfiqurasiya yadda saxlanıldı",
+ "qdrantSaveError": "Konfiqurasiyanı yadda saxlamaq alınmadı",
+ "qdrantHostHint": "Portsuz. Nümunə: 127.0.0.1 və ya http://qdrant",
"qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "qdrantPortHint": "Qdrant standartı: 6333",
+ "qdrantCollectionHint": "Yaddaş nöqtələrinin saxlanacağı yer.",
+ "qdrantEmbeddingModel": "Embedding modeli",
+ "qdrantHelpTitle": "Sürətli quraşdırma yardımı",
+ "qdrantHelpQuickTitle": "Sürətli quraşdırma (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Kolleksiya: omniroute_memory.",
+ "qdrantHelpStep2": "2. nvidia/llama-nemotron-embed-vl-1b-v2:free istifadə edilirsə, kolleksiya ölçüsü kimi 2048 seçin.",
+ "qdrantHelpStep3": "3. Model sahəsi: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Yadda saxlayın, bağlantını, sonra isə axtarışı sınaqdan keçirin.",
+ "qdrantEmbeddingQuickSelect": "Aşkarlanmış modellərdən sürətli seçim edin...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
- "optional": "Optional",
- "current": "Current",
- "remove": "Remove",
- "search": "Search",
+ "qdrantEmbeddingHint": "Format: provider/model. Provayderin giriş məlumatları konfiqurasiya edilməlidir.",
+ "qdrantApiKeyPlaceholderKeep": "(cari açarı saxlamaq üçün boş buraxın)",
+ "qdrantApiKeyPlaceholderOptional": "(istifadə edilmirsə, boş buraxın)",
+ "qdrantSaveHint": "İpucu: host/port/collection/model məlumatlarını redaktə edin və Yadda saxla düyməsinə klikləyin. API açarı istəyə bağlıdır.",
+ "qdrantSearchTestTitle": "Axtarış sınağı",
+ "qdrantSearchTestDesc": "Embedding yaradır və Qdrant-da axtarış aparır.",
+ "qdrantSearchPlaceholder": "Nümunə: istifadəçi seçimləri, tarixçə və s.",
+ "qdrantNoResults": "Nəticə yoxdur (və ya Qdrant konfiqurasiya edilməyib).",
+ "qdrantCleanupTitle": "Saxlama müddəti və təmizləmə",
+ "qdrantCleanupDesc": "Müddəti bitmiş və köhnə nöqtələri bunlara əsasən silir:",
+ "searching": "Axtarılır...",
+ "cleaning": "Təmizlənir...",
+ "cleanNow": "İndi təmizlə",
+ "optional": "İstəyə bağlı",
+ "current": "Cari",
+ "remove": "Sil",
+ "search": "Axtar",
"oneproxyTitle": "1proxy Pulsuz Proksi Marketplace",
"oneproxyTotalProxies": "Ümumi Proksilər",
"oneproxyAvgQuality": "Orta keyfiyyət",
"resilienceScope": "Əhatə dairəsi:",
"resilienceTrigger": "Tətik:",
"resilienceEffect": "Effekt:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "Sorğu növbəsi və tezliyi",
+ "resilienceAutoEnableApiKeyProviders": "API açarı təminatçıları üçün avtomatik aktivləşdir",
+ "resilienceRequestsPerMinute": "Dəqiqədə sorğular",
+ "resilienceMinTimeBetweenRequests": "Sorğular arasındakı minimum vaxt",
+ "resilienceConcurrentRequests": "Paralel sorğular",
+ "resilienceConnectionScopeConcurrentRequests": "Hər bağlantı/kvota əhatəsi üzrə paralel sorğular",
+ "resilienceGlobalConcurrentRequests": "Qlobal paralel yuxarı axın sorğuları (0 = deaktivdir)",
"resilienceMaxQueueWaitTime": "Maksimum növbə gözləmə müddəti",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Əsas gözləmə müddəti",
+ "resilienceUseUpstreamRetryHints": "Yuxarı axının təkrar cəhd göstərişlərindən istifadə et",
+ "resilienceDefaultPerProvider": "Defolt (hər təminatçı üzrə)",
+ "resilienceAlwaysOn": "Həmişə aktiv",
+ "resilienceAlwaysOff": "Həmişə deaktiv",
"routingRemoveEntry": "Girişi silin",
"routingNeedlesSubstrings": "İğnələr (uyğunlaşan alt simlər)",
"routingCaseSensitive": "Hərflərə həssasdır",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "Çıxarılmış təsvir orijinal sorğuya yenidən daxil edilməzdən əvvəl görüntü modelinə göndərilir.",
"visionBridgeTimeoutMs": "Zaman aşımı (ms)",
"visionBridgeMaxImagesPerRequest": "İstək Başına Maksimum Şəkillər",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Maksimum geriçəkilmə addımları",
+ "resilienceProviderBreakerTitle": "Hər təminatçı üzrə dövrə açarı",
+ "resilienceFailureThreshold": "Xəta həddi",
+ "resilienceDegradationThreshold": "Deqradasiya həddi",
"resilienceResetTimeout": "Vaxt aşımını sıfırlayın",
"resilienceFailureThresholdLabel": "Uğursuzluq həddi",
"resilienceResetTimeoutLabel": "Vaxt aşımını sıfırlayın",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Bağlantının gözləmə müddəti",
"resilienceUseUpstreamRetryHintsLabel": "Yuxarı təkrar cəhd göstərişlərindən istifadə edin",
"resilienceUseUpstream429BreakerLabel": "Upstream 429 göstərişlərdən istifadə edin (kesici)",
"resilienceMaxBackoffStepsLabel": "Maksimum geri çəkilmə addımları",
"resilienceYes": "Bəli",
"resilienceNo": "yox",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Defolt",
"storageDatabaseBackupRetention": "Verilənlər bazasının ehtiyat nüsxəsinin saxlanması",
"storageDatabaseBackups": "Verilənlər bazası nüsxələri",
"storageBackupRetentionDescription": "Avtomatik SQLite ehtiyat nüsxələri burada saxlanılır:",
@@ -7725,64 +7732,68 @@
"storageDatabaseStatistics": "Verilənlər bazası statistikası",
"storageIntegrityNotChecked": "Yoxlanılmayıb",
"backupRetentionSaved": "Ehtiyat nüsxəsinin saxlama müddəti yadda saxlanıldı.",
- "backupRetentionSaveFailed": "Failed to save backup retention",
- "backupCleanupSuccess": "Deleted {backups} backup set(s) and {files} file(s).",
- "backupCleanupFailed": "Failed to clean database backups",
- "purgeQuotaSnapshotsSuccess": "Purged {count} quota snapshots",
- "purgeQuotaSnapshotsFailed": "Failed to purge quota snapshots",
- "purgeCallLogsSuccess": "Purged {count} call logs",
- "purgeCallLogsFailed": "Failed to purge call logs",
- "purgeDetailedLogsSuccess": "Purged {count} detailed logs",
- "purgeDetailedLogsFailed": "Failed to purge detailed logs",
- "vacuumCompleted": "VACUUM completed",
- "vacuumFailed": "VACUUM failed",
- "jsonExportFailed": "JSON export failed",
- "invalidJsonFileType": "Invalid file type. Only .json files are allowed.",
- "legacyJsonImportSuccess": "Legacy JSON imported successfully!",
- "jsonImportFailed": "Failed to import JSON",
- "jsonImportError": "Error during JSON import",
+ "backupRetentionSaveFailed": "Yedəkləmələrin saxlanma parametrini yadda saxlamaq alınmadı",
+ "backupCleanupSuccess": "{backups} yedəkləmə dəsti və {files} fayl silindi.",
+ "backupCleanupFailed": "Verilənlər bazası yedəkləmələrini təmizləmək alınmadı",
+ "purgeQuotaSnapshotsSuccess": "{count} kvota ani görüntüsü təmizləndi",
+ "purgeQuotaSnapshotsFailed": "Kvota ani görüntülərini təmizləmək alınmadı",
+ "purgeCallLogsSuccess": "{count} çağırış jurnalı təmizləndi",
+ "purgeCallLogsFailed": "Çağırış jurnallarını təmizləmək alınmadı",
+ "purgeDetailedLogsSuccess": "{count} ətraflı jurnal təmizləndi",
+ "purgeDetailedLogsFailed": "Ətraflı jurnalları təmizləmək alınmadı",
+ "vacuumCompleted": "VACUUM tamamlandı",
+ "vacuumFailed": "VACUUM uğursuz oldu",
+ "jsonExportFailed": "JSON ixracı uğursuz oldu",
+ "invalidJsonFileType": "Yanlış fayl növü. Yalnız .json fayllarına icazə verilir.",
+ "legacyJsonImportSuccess": "Köhnə formatlı JSON uğurla idxal edildi!",
+ "jsonImportFailed": "JSON-u idxal etmək alınmadı",
+ "jsonImportError": "JSON idxalı zamanı xəta baş verdi",
+ "jsonImportAuthRequired": "Köhnə JSON konfiqurasiyasını idxal etmək üçün autentifikasiya tələb olunur. Zəhmət olmasa, əvvəlcə daxil olun və ya quraşdırmanı tamamlayın.",
+ "databaseSettingsAuthRequiredTitle": "Autentifikasiya tələb olunur",
+ "databaseSettingsAuthRequiredBody": "Verilənlər bazası parametrləri və JSON idxalı yalnız autentifikasiyadan keçmiş administrator üçün əlçatandır. Onlara baxmaq və redaktə etmək üçün daxil olun və ya quraşdırmanı tamamlayın.",
+ "databaseSettingsAuthRequiredCta": "Daxil olun",
"storagePurgeData": "Məlumatların təmizlənməsi",
- "storagePurgeDataDesc": "Immediately delete all records without applying retention checks. Use with caution.",
- "storageRetentionCleanup": "Retention Settings",
- "storageRetentionCleanupDesc": "Configure operational record retention and database backup cleanup.",
- "retentionCallDays": "Call {count}d",
- "retentionAppDays": "App {count}d",
- "retentionRows": "{count} rows",
+ "storagePurgeDataDesc": "Saxlama müddəti yoxlamalarını tətbiq etmədən bütün qeydləri dərhal silin. Ehtiyatla istifadə edin.",
+ "storageRetentionCleanup": "Saxlama müddəti parametrləri",
+ "storageRetentionCleanupDesc": "Əməliyyat qeydlərinin saxlanma müddətini və verilənlər bazası ehtiyat nüsxələrinin təmizlənməsini konfiqurasiya edin.",
+ "retentionCallDays": "Zəng {count} gün",
+ "retentionAppDays": "Tətbiq {count} gün",
+ "retentionRows": "{count} sətir",
"retentionQuotaSnapshots": "Kvota Snapshotları (günlər)",
- "retentionCompressionAnalytics": "Compression Analytics (days)",
+ "retentionCompressionAnalytics": "Sıxılma analitikası (gün)",
"retentionMcpAudit": "MCP Auditi (günlər)",
"retentionA2aEvents": "A2A Hadisələri (günlər)",
"retentionCallLogs": "Zəng qeydləri (günlər)",
"retentionUsageHistory": "İstifadə Tarixçəsi (günlər)",
"retentionMemoryEntries": "Yaddaş Girişləri (günlər)",
- "retentionXpAuditLog": "XP Audit Log (days)",
- "saveRetentionSettings": "Save retention settings",
+ "retentionXpAuditLog": "XP audit jurnalı (gün)",
+ "saveRetentionSettings": "Saxlama müddəti parametrlərini yadda saxlayın",
"storageAutoVacuumMode": "Avtomatik vakuum rejimi",
"storageScheduledVacuum": "Planlaşdırılmış vakuum",
"storageVacuumHour": "Vakuum Saatı (0-23)",
"storagePageSize": "Səhifə ölçüsü (bayt)",
- "storageOptimizationSettings": "Optimization Settings",
- "storageJournalModeNone": "None",
- "storageJournalModeFull": "Full",
- "storageJournalModeIncremental": "Incremental",
- "storageVacuumNever": "Never",
- "storageVacuumDaily": "Daily",
- "storageVacuumWeekly": "Weekly",
- "storageVacuumMonthly": "Monthly",
- "storageCacheSizeKb": "Cache Size (KB)",
- "storageOptimizeOnStartup": "Optimize on Startup",
- "storageSaveOptimization": "Save Optimization Settings",
- "storageCompressionAggregation": "Compression & Aggregation Settings",
- "storageEnableAggregation": "Enable Data Aggregation",
- "storageRawDataRetention": "Raw Data Retention (days)",
- "storageGranularity": "Granularity",
+ "storageOptimizationSettings": "Optimallaşdırma parametrləri",
+ "storageJournalModeNone": "Heç biri",
+ "storageJournalModeFull": "Tam",
+ "storageJournalModeIncremental": "Artımlı",
+ "storageVacuumNever": "Heç vaxt",
+ "storageVacuumDaily": "Gündəlik",
+ "storageVacuumWeekly": "Həftəlik",
+ "storageVacuumMonthly": "Aylıq",
+ "storageCacheSizeKb": "Keş ölçüsü (KB)",
+ "storageOptimizeOnStartup": "Başlanğıcda optimallaşdır",
+ "storageSaveOptimization": "Optimallaşdırma parametrlərini yadda saxlayın",
+ "storageCompressionAggregation": "Sıxılma və aqreqasiya parametrləri",
+ "storageEnableAggregation": "Verilənlərin aqreqasiyasını aktivləşdirin",
+ "storageRawDataRetention": "Xam verilənlərin saxlanma müddəti (gün)",
+ "storageGranularity": "Dənəvərlik",
"storageHourly": "Saatlıq",
"storageDaily": "Günlük",
"storageWeekly": "Həftəlik",
"storageSaveAggregation": "Aqreqasiya parametrlərini yadda saxla",
"exportJson": "JSON-u ixrac et",
"importJson": "JSON-u idxal et",
- "manualVacuum": "Manual VACUUM",
+ "manualVacuum": "Əl ilə VACUUM",
"purgeQuotaSnapshots": "Kvota anlıq görüntülərini təmizlə",
"purgeCallLogs": "Zəng qeydlərini təmizlə",
"purgeDetailedLogs": "Ətraflı qeydləri təmizlə",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "rejim: {mode}",
"compressionAdaptiveOff": "Adaptiv kontekst büdcəsi: qapalı (köhnə avtomatik tətikləyici)",
"compressionAdaptiveTarget": "Adaptiv ({mode}, siyasət: {policy}) — hədəf ≈ {target, number} token ({contextLimit, number}-tokenlik pəncərə üçün)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Adaptiv kontekst büdcəsi",
+ "compressionAdaptiveModeOff": "Söndürülüb (köhnə avtomatik işəsalma)",
+ "compressionAdaptiveModeFloor": "Minimum hədd (həmişə sığmanı təmin et)",
+ "compressionAdaptiveModeReplace": "Avtomatik işəsalmanı əvəz et",
+ "compressionAdaptivePolicy": "Büdcə siyasəti",
+ "compressionAdaptivePolicyReserve": "Çıxış üçün ehtiyat",
+ "compressionAdaptivePolicyPercentage": "Pəncərənin faizi",
+ "compressionAdaptivePolicyAbsolute": "Mütləq token büdcəsi",
"compressionOutputStylesDescription": "Provayder çıxışını yenidən yazmadan cavab-formalaşdıran təlimatları daxil edin. Sərbəst şəkildə birləşdirin.",
"mcpAccessibilityDescription": "MCP alət çıxışlarını əhatə edir (ayrıca depo).",
"compressionStylesTileSummary": "{tokens, number} tokenə qənaət edilib · {runs, plural, one {# işəsalma üslublaşdırılıb} other {# işəsalma üslublaşdırılıb}}",
@@ -7840,8 +7851,8 @@
"minimal": "Minimal",
"standard": "Standart",
"aggressive": "Aqressiv",
- "lite": "Lite",
- "full": "Full",
+ "lite": "Yüngül",
+ "full": "Tam",
"ultra": "Ultra"
},
"compressionEngine": {
@@ -7854,7 +7865,7 @@
"description": "Məzmun ünvanlı axtarış markerləri."
},
"lite": {
- "label": "Lite",
+ "label": "Yüngül",
"description": "Boşluq və format təmizlənməsi."
},
"rtk": {
@@ -7862,11 +7873,11 @@
"description": "Komanda çıxışının filtrlənməsi."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses alətinin çıxışı",
+ "description": "Dəstəklənən Responses aləti çıxışları üçün konservativ sıxılma."
},
"headroom": {
- "label": "Headroom",
+ "label": "Ehtiyat payı",
"description": "Cədvəl formalı JSON sıxışdırılması."
},
"relevance": {
@@ -7874,7 +7885,7 @@
"description": "Son istifadəçi sorğusuna əsasən ekstraktiv cümlə qiymətləndirilməsi."
},
"caveman": {
- "label": "Caveman",
+ "label": "Mağara adamı",
"description": "Qaydalara əsaslanan nəsr sıxılması."
},
"aggressive": {
@@ -7904,12 +7915,12 @@
"description": "YAGNI pilləkəni: ən kiçik işlək dəyişiklik, tələb olunmayan mücərrədliklər olmadan."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "At quyruğu (tənbəl baş proqramçı)",
+ "description": "Tənbəl baş proqramçı intizamı: YAGNI pilləkəni ilə qalxın, əsas səbəbi aradan qaldırın, işləyən ən kiçik fərqi tətbiq edin."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Məndə ADHD var (əvvəlcə əməl)",
+ "description": "Əvvəlcə əməl formatında çıxış: növbəti əməl öndə verilir, addımlar nömrələnir, bir konkret növbəti addım göstərilir, giriş verilmir."
},
"terse-cjk": {
"label": "Yığcam CJK (文言)",
@@ -7920,13 +7931,21 @@
"resilienceEnableServerSideWait": "Server tərəfində gözləməyi aktivləşdirin",
"resilienceMaximumRetries": "Maksimum təkrar cəhdlər",
"resilienceMaximumWaitPerRetry": "Hər təkrar cəhd üçün maksimum gözləmə",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "SkillsMP Marketi",
"memorySkillsFailedToSave": "Yadda saxlamaq alınmadı",
"memorySkillsApiKey": "API Açarı",
"memorySkillsActiveSkillsProvider": "Aktiv Bacarıqlar Provayderi",
- "cliproxyapiFallback": "CLIProxyAPI Fallback",
+ "cliproxyapiFallback": "CLIProxyAPI ehtiyat variantı",
"cliproxyapiEnableFallback": "CLIProxyAPI Fallback-i aktivləşdirin",
- "cliproxyapiUrl": "CLIProxyAPI URL",
+ "cliproxyapiUrl": "CLIProxyAPI URL-i",
+ "headroomProxyTitle": "Headroom proksisi",
+ "headroomProxyDesc": "İstəyə bağlı Headroom token qənaətçisi proksisinin URL-i. Boş saxlanarsa, HEADROOM_URL və ya http://localhost:8787 istifadə olunur.",
+ "headroomProxyUrl": "Headroom URL-i",
+ "headroomProxyUrlHint": "Geri döngə URL-ləri bu səhifədən başladıla bilər. Xarici URL-lər yalnız yoxlanılır.",
+ "headroomProxySave": "Yadda saxla",
+ "headroomProxyStart": "Başlat",
+ "headroomProxyStop": "Dayandır",
+ "headroomProxyExternalHint": "Bu URL geri döngə ünvanı deyil, buna görə OmniRoute yerli CLI-ni işə salmayacaq.",
"cliproxyapiStatus": "CLIProxyAPI Vəziyyəti",
"cliproxyapiNotDetected": "Aşkarlanmadı",
"cliproxyapiImportAuthTitle": "Hesabları CLIProxyAPI-dən idxal edin",
@@ -7981,23 +8000,23 @@
"responsesStateModePreserve": "Qoru",
"responsesStateHint": "Bağlantı OpenAI Responses yaddaşını açıq şəkildə aktivləşdirmədikdə, Avtomatik rejim previous_response_id-ni silir. Sil rejimi VS Code Custom Endpoint kimi vəziyyətsiz müştərilər üçün ən təhlükəsizidir; bu halda kontekst müştərinin tam tarixçəni göndərməsindən asılı olur.",
"responsesStateSaveError": "Cavabların vəziyyəti parametrini yeniləmək mümkün olmadı",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Codex sürətli səviyyəsi",
"codexFastTierDesc": "Qlobal olaraq OpenAI Codex sorğuları üçün service_tier=priority daxil edin.",
"codexFastTierHint": "Aktivləşdirildikdə, OmniRoute artıq səviyyəni təyin etməyən bağlantılar üçün gedən Kodeks sorğularına service_tier=priority əlavə edir. Prioritet səviyyəsi OpenAI Enterprise API açarı və ya ChatGPT-auth Codex yolunu tələb edir; digər açar növləri OpenAI-dən səviyyə ilə bağlı xəta alacaq. Codex provayder səhifəsində hər bir əlaqə parametrləri üstünlük təşkil edir.",
"codexFastTierSaveError": "Codex Fast Tier ayarını yeniləmək alınmadı",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex kvotasının avtomatik yoxlanması",
+ "codexAutoPingDesc": "Hər bağlantı üçün ayrıca aktivləşdirilir: Codex sessiya pəncərəsi sıfırlandıqdan dərhal sonra kiçik bir sorğu göndərir ki, ehtiyacınız olanda soyuq vəziyyətdə olmasın.",
+ "codexAutoPingWarning": "Hər yoxlamada az miqdarda real Codex kvotası sərf olunur. Defolt olaraq söndürülüb — yalnız aktiv şəkildə etibar etdiyiniz bağlantılar üçün qoşun.",
+ "codexAutoPingSaveError": "Codex avtomatik yoxlama ayarını yeniləmək alınmadı",
+ "codexAutoPingToggleAria": "{connection} üçün Codex kvotasının avtomatik yoxlanmasını dəyişdirin",
"codexFastTierTierLabel": "Xidmət səviyyəsi",
"codexFastTierTierPriority": "Prioritet",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierFlex": "Çevik",
"codexFastTierTierDefault": "Defolt",
"codexFastTierModelsLabel": "Fast-tier modelləri",
"codexFastTierModelsHint": "Fast Tier aktiv olduqda, yalnız seçilmiş modellər service_tier qəbul edir.",
"codexFastTierModelCheckbox": "{model} üçün Fast Tier-i aktiv et",
- "claudeFastModeTitle": "Claude Fast Mode",
+ "claudeFastModeTitle": "Claude sürətli rejimi",
"claudeFastModeDesc": "Seçilmiş Klod sorğularını Antropik Sürətli Rejimə seçin (sürət: \"sürətli\").",
"claudeFastModeHint": "Anthropic rəsmi olaraq SDK tipli müştərilər üçün Sürətli rejimi dəstəkləmir. Aktivləşdirildikdə, OmniRoute X-CPA-Force-Fast-Mode başlığını yönləndirir ki, qoşalaşmış CLIProxyAPI quruluşu giriş nöqtəsini saxtalaşdıra bilsin. Yalnız sadalanan Opus modelləri Anthropic-in müştəri tərəfi yoxlamasından keçir. Abunəlik səviyyəsi, Maksimum plan və Sürətli Rejim kredit balansı hələ də server tərəfində tətbiq edilir — Anthropic keçid aktiv olduqda belə, kreditdən kənara qayıda bilər.",
"claudeFastModeModelsLabel": "Modellərə tətbiq olunur ({count})",
@@ -8018,13 +8037,13 @@
"LOCAL_ONLY": "Yalnız lokal",
"ALWAYS_PROTECTED": "Həmişə qorunur",
"MANAGEMENT": "İdarəetmə",
- "CLIENT_API": "Client API",
+ "CLIENT_API": "Müştəri API-si",
"PUBLIC": "Açıq"
},
"bypass": {
- "section": "Manage-scope bypass",
+ "section": "İdarəetmə əhatəsinin yan keçilməsi",
"kill_switch": {
- "label": "Bypass kill-switch",
+ "label": "Fövqəladə dayandırma mexanizmindən yan keçmə",
"desc": "Əsas keçid. Sönülü olduqda, hər prefiks siyahısından asılı olmayaraq, qeyri-loopback-dən heç bir LOCAL_ONLY prefiksinə əlçatanlıq olmur."
},
"prefix": {
@@ -8054,7 +8073,7 @@
"auth_required": "Autentifikasiya tələb olunur",
"public": "Açıq",
"always_protected": "Həmişə qorunur",
- "spawn_capable": "Spawn-capable"
+ "spawn_capable": "Proses başlatma imkanlı"
},
"error": {
"PASSWORD_REQUIRED": "Bu dəyişiklikləri tətbiq etmək üçün cari şifrə tələb olunur.",
@@ -8066,40 +8085,40 @@
"remove": "Silin"
},
"resilienceBaseCooldownLabel": "Baza soyutma",
- "scopeLabel": "Scope",
- "triggerLabel": "Trigger",
- "effectLabel": "Effect",
- "statusEnabled": "Enabled",
- "statusDisabled": "Disabled",
- "resilienceRequestQueueScope": "Per request queue",
- "resilienceRequestQueueTrigger": "Before sending to the upstream",
- "resilienceRequestQueueEffect": "Queues requests, limits concurrency, and spaces out calls",
- "resilienceRequestQueueDesc": "This layer only controls queueing and pacing. It does not store cooldowns or open circuit breakers.",
- "resilienceAutoEnableApiKeyProvidersDesc": "Enables queue protection by default for active API key connections.",
- "resilienceMaxQueueWait": "Maximum queue wait time",
+ "scopeLabel": "Əhatə dairəsi",
+ "triggerLabel": "Tətikləyici",
+ "effectLabel": "Təsir",
+ "statusEnabled": "Aktivdir",
+ "statusDisabled": "Deaktivdir",
+ "resilienceRequestQueueScope": "Hər sorğu üçün növbə",
+ "resilienceRequestQueueTrigger": "Yuxarı axına göndərməzdən əvvəl",
+ "resilienceRequestQueueEffect": "Sorğuları növbəyə alır, paralelliyi məhdudlaşdırır və çağırışlar arasında fasilə yaradır",
+ "resilienceRequestQueueDesc": "Bu qat yalnız növbəyə alma və tempin tənzimlənməsini idarə edir. Gözləmə müddətlərini saxlamır və dövrə kəsicilərini açmır.",
+ "resilienceAutoEnableApiKeyProvidersDesc": "Aktiv API açarı bağlantıları üçün növbə qorunmasını standart olaraq aktivləşdirir.",
+ "resilienceMaxQueueWait": "Maksimum növbə gözləmə müddəti",
"resilienceMaxExecutionWait": "İcra vaxt limiti (sürət limiti ehtiyat həddi)",
- "resilienceConnectionCooldownScope": "Individual connection",
- "resilienceConnectionCooldownTrigger": "When a connection returns a transient upstream failure",
- "resilienceConnectionCooldownEffect": "Temporarily skips that connection and increases backoff for repeated failures",
- "resilienceConnectionCooldownDesc": "The base cooldown covers transient connection failures. When upstream retry hints are enabled, the provider's explicit window overrides the local cooldown.",
- "resilienceUseUpstreamRetryHintsDesc": "Uses retry-after/reset values from the upstream provider when available.",
- "resilienceUseUpstream429BreakerHints": "Use upstream 429 hints for breaker cooldown",
- "resilienceUseUpstream429BreakerHintsShort": "Use upstream 429 hints",
- "resilienceUseUpstream429BreakerHintsDesc": "Apply Retry-After / quota-exhausted signals from 429 responses to the circuit-breaker cooldown duration. Default uses a per-provider policy: direct cloud providers default on; reverse-proxy, self-hosted, and CLI-backed providers default off. Independent of \"Use upstream retry hints\".",
- "resilienceProviderBreakerScope": "Entire provider",
- "resilienceProviderBreakerTrigger": "Final transport/server failures after connection fallback is exhausted",
- "resilienceProviderBreakerEffect": "Temporarily blocks that provider until the reset time expires",
- "resilienceProviderBreakerDesc": "Live breaker state appears only on the Health page. Connection-scoped 429 rate limits stay in Connection Cooldown and do not trip the provider breaker.",
- "resilienceResetTime": "Reset time",
- "resilienceWaitForCooldownTitle": "Wait For Cooldown",
- "resilienceWaitForCooldownScope": "Current client request",
- "resilienceWaitForCooldownTrigger": "When all candidate connections are already cooling down",
- "resilienceWaitForCooldownEffect": "Waits on the server and retries when the first cooldown expires",
- "resilienceWaitForCooldownDesc": "This only affects the current request. It does not store connection or provider state.",
- "resilienceEnableServerWait": "Enable server-side wait",
- "resilienceEnableServerWaitDesc": "When enabled, OmniRoute waits for the first cooldown to expire and retries automatically.",
- "resilienceMaxAttempts": "Maximum attempts",
- "resilienceMaxWaitPerAttempt": "Maximum wait per attempt",
+ "resilienceConnectionCooldownScope": "Fərdi bağlantı",
+ "resilienceConnectionCooldownTrigger": "Bağlantı yuxarı axından müvəqqəti xəta qaytardıqda",
+ "resilienceConnectionCooldownEffect": "Həmin bağlantını müvəqqəti olaraq ötürür və təkrarlanan xətalar üçün geri çəkilmə müddətini artırır",
+ "resilienceConnectionCooldownDesc": "Baza gözləmə müddəti müvəqqəti bağlantı xətalarını əhatə edir. Yuxarı axının təkrar cəhd göstərişləri aktiv olduqda, provayderin açıq şəkildə göstərdiyi müddət yerli gözləmə müddətini əvəz edir.",
+ "resilienceUseUpstreamRetryHintsDesc": "Mövcud olduqda yuxarı axın provayderinin retry-after/reset dəyərlərindən istifadə edir.",
+ "resilienceUseUpstream429BreakerHints": "Kəsicinin gözləmə müddəti üçün yuxarı axının 429 göstərişlərindən istifadə et",
+ "resilienceUseUpstream429BreakerHintsShort": "Yuxarı axının 429 göstərişlərindən istifadə et",
+ "resilienceUseUpstream429BreakerHintsDesc": "429 cavablarındakı Retry-After / quota-exhausted siqnallarını dövrə kəsicisinin gözləmə müddətinə tətbiq edin. Standart olaraq hər provayder üçün ayrıca siyasət istifadə olunur: birbaşa bulud provayderlərində standart olaraq aktivdir; əks-proksi, öz serverində yerləşdirilən və CLI əsaslı provayderlərdə isə standart olaraq deaktivdir. \"Yuxarı axının təkrar cəhd göstərişlərindən istifadə et\" parametrindən asılı deyil.",
+ "resilienceProviderBreakerScope": "Bütün provayder",
+ "resilienceProviderBreakerTrigger": "Bağlantı üzrə alternativlər tükəndikdən sonra yaranan yekun ötürmə/server xətaları",
+ "resilienceProviderBreakerEffect": "Sıfırlama vaxtı bitənədək həmin provayderi müvəqqəti olaraq bloklayır",
+ "resilienceProviderBreakerDesc": "Kəsicinin cari vəziyyəti yalnız Sağlamlıq səhifəsində göstərilir. Bağlantı səviyyəli 429 tezlik məhdudiyyətləri Bağlantının gözləmə müddətində qalır və provayder kəsicisini işə salmır.",
+ "resilienceResetTime": "Sıfırlama vaxtı",
+ "resilienceWaitForCooldownTitle": "Gözləmə müddətinin bitməsini gözlə",
+ "resilienceWaitForCooldownScope": "Cari müştəri sorğusu",
+ "resilienceWaitForCooldownTrigger": "Bütün uyğun bağlantılar artıq gözləmə müddətində olduqda",
+ "resilienceWaitForCooldownEffect": "Serverdə gözləyir və ilk gözləmə müddəti bitdikdə yenidən cəhd edir",
+ "resilienceWaitForCooldownDesc": "Bu, yalnız cari sorğuya təsir edir. Bağlantı və ya provayder vəziyyətini saxlamır.",
+ "resilienceEnableServerWait": "Server tərəfində gözləməni aktivləşdir",
+ "resilienceEnableServerWaitDesc": "Aktiv olduqda, OmniRoute ilk gözləmə müddətinin bitməsini gözləyir və avtomatik olaraq yenidən cəhd edir.",
+ "resilienceMaxAttempts": "Maksimum cəhd sayı",
+ "resilienceMaxWaitPerAttempt": "Hər cəhd üçün maksimum gözləmə müddəti",
"resilienceComboCooldownWaitTitle": "Quota-share kombo soyuma gözləməsi",
"resilienceComboCooldownWaitDesc": "Yalnız quota-share komboları üçün: dərhal 429 qaytarmaq əvəzinə qısa keçici soyuma müddətini gözləyin və yenidən göndərin. Heç vaxt quota_exhausted zamanı gözləmir.",
"resilienceComboCooldownWaitToggleDesc": "Yalnız quota-share komboları; heç vaxt quota_exhausted zamanı gözləmir.",
@@ -8147,12 +8166,12 @@
"vercelRelayDeploying": "Quraşdırılır...",
"vercelRelayDeploy": "Quraşdır",
"deployRelayButton": "Relay Quraşdır",
- "denoRelayButton": "Deploy Deno Relay",
- "denoRelayModalTitle": "Deploy Deno Relay",
+ "denoRelayButton": "Deno Relay-i yerləşdir",
+ "denoRelayModalTitle": "Deno Relay-i yerləşdir",
"denoRelayWarning": "Xəbərdarlıq: Deno Deploy təşkilat tokeni tələb olunur. Bu token yalnız relay tətbiqini yaratmaq üçün istifadə olunacaq və heç vaxt OmniRoute tərəfindən saxlanılmayacaq.",
"denoRelayTokenLabel": "Deno Deploy Təşkilat Tokeni",
- "denoRelayOrgDomainLabel": "Organization Domain",
- "denoRelayProjectNameLabel": "Deno App Name",
+ "denoRelayOrgDomainLabel": "Təşkilat domeni",
+ "denoRelayProjectNameLabel": "Deno tətbiqinin adı",
"denoRelayFreeTierNote": "Deno Deploy v2 qlobal edge şəbəkəsində işləyir. Pulsuz paket: ayda 1M sorğu və 100GiB çıxış trafiki, sorğu başına CPU limiti yoxdur, 20-yə qədər aktiv tətbiq və 50 fərdi domen.",
"denoRelayDeploying": "Yerləşdirilir...",
"denoRelayDeploy": "Yerləşdir",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "Soyuma müddətinin artması dayanmazdan əvvəl maksimum geri çəkilmə addımlarının sayı. Əksər konfiqurasiyalarda ilk olaraq Maksimum Soyuma limitinə çatılır, bu da Maksimum Soyuma artırıldıqda bunu təhlükəsizlik tavanı edir.",
"disableSessionStickiness": "Sessiya bağlılığını söndür",
"disableSessionStickinessDesc": "Round-robin və təsadüfi kombinasiyalar, bütün söhbəti ilk mesajın heşinə görə bir bağlantıya bağlamaq əvəzinə, hər sorğuda fərqli bir bağlantıya keçid edir. Çoxmərhələli söhbətlər üçün prompt-cache hitlərini qorumaq üçün bunu söndürülmüş saxlayın. Hər kombinasiya üçün üstünlüklər prioritet təşkil edir.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Prompt keşinin lokallığına əsaslanan marşrutlaşdırma",
+ "promptCacheAffinityDesc": "Sağlamlıq və kvota üzrə alternativə keçidi qorumaqla uyğun prompt keşi açarları üçün eyni provayder hesabına üstünlük verin.",
+ "reasoningTokenBuffer": "Düşünmə tokeni buferi",
+ "reasoningTokenBufferDesc": "Tam bufer məlum çıxış limitinə sığdıqda, kombinə edilmiş marşrutlaşdırmaya yalnız məlum əsaslandırma modelləri üçün max_tokens ehtiyatı əlavə etməyə icazə verin.",
+ "zeroLatencyOptimizations": "Sıfır gecikmə optimallaşdırmaları",
+ "zeroLatencyOptimizationsDesc": "Hedcinqi, proqnozlaşdırıcı TTFT keçidlərini və proaktiv ehtiyat sorğu sıxılmasını aktivləşdirin. Bu gecikmə funksiyalarının hədəflərlə yarışmasının və ya ehtiyat sorğuları sıxmasının qarşısını almaq üçün deaktiv saxlayın.",
"credentialRedaction": "Kimlik məlumatlarının gizlədilməsi",
"credentialRedactionDesc": "Provayderlərə göndərilən kontekstdən və cavablardan API açarlarını, tokenləri və gizli məlumatları gizlədin.",
"enableCredentialRedaction": "Kimlik məlumatlarının gizlədilməsini aktivləşdirin",
"enableCredentialRedactionDesc": "Mesajlardan, alət çağırışlarından və cavablardan API açarlarını, tokenləri, şəxsi açarları və JWT-ləri təmizləyir.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Avtomatik sinxronizasiya deaktivdir",
+ "pricingAutoSyncEnabled": "Avtomatik sinxronizasiya aktivdir",
"modalityBridgeIntro": "Multimodal məzmunu yalnız mətn modellərinə çatmazdan əvvəl mətnə çevirin. Görüntü, Audio və Video körpüləri əlçatandır və konfiqurasiya edilə bilər.",
"modalityBridgeVisionTab": "Görmə",
"modalityBridgeAudioTab": "Səs",
@@ -8305,7 +8324,7 @@
"oneproxyCountry": "Oneproxy Ölkəsi",
"oneproxyDelete": "Oneproxy Silin",
"oneproxyEmpty": "Oneproxy Boşdur",
- "oneproxyHost": "Oneproxy Host",
+ "oneproxyHost": "Oneproxy hostu",
"oneproxyLatency": "Oneproxy Gecikməsi",
"oneproxyProtocol": "Oneproxy Protokolu",
"oneproxyQuality": "Oneproxy Keyfiyyəti",
@@ -8360,60 +8379,52 @@
"cliproxyapiHealth": "Sağlamlıq",
"cliproxyapiPort": "Port",
"qdrantHost": "Ev sahibi",
- "qdrantCollection": "Kolleksiya",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Kolleksiya"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
+ "title": "RTK Mühərriki",
+ "description": "Alət çıxışı, terminal jurnalları və qurma nəticələri üçün əmrləri nəzərə alan sıxılma.",
+ "enabled": "Aktivdir",
+ "intensity": "İntensivlik",
"intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "intensityStandard": "Standart",
+ "intensityAggressive": "Aqressiv",
+ "toolResults": "Alət nəticələri",
+ "assistantMessages": "Assistent mesajları",
+ "codeBlocks": "Kod blokları",
"filterCatalog": "Filtr kataloqu",
"filterCatalogDesc": "Kateqoriya üzrə mövcud çıxış filtrləri",
"guidedConfig": "Konfiqurasiya",
"guidedConfigDesc": "RTK-nın terminal çıxışınızı necə filtrlədiyini tənzimləyin",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
- "deduplicateThreshold": "Deduplicate threshold",
- "customFilters": "Custom filters",
+ "maxLines": "Maksimum sətir sayı",
+ "maxChars": "Maksimum simvol sayı",
+ "deduplicateThreshold": "Dublikatların silinməsi həddi",
+ "customFilters": "Fərdi filtrlər",
"detectedType": "Aşkar edilmiş növ",
"confidence": "Güvən",
"beforeAfter": "Əvvəl / Sonra",
- "trustProjectFilters": "Trust project filters",
- "rawOutputRetention": "Raw output retention",
- "rawOutputNever": "Never",
- "rawOutputFailures": "Failures",
- "rawOutputAlways": "Always",
- "rawOutputMaxBytes": "Raw output max bytes",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "trustProjectFilters": "Layihə filtrlərinə etibar edin",
+ "rawOutputRetention": "Xam çıxışın saxlanması",
+ "rawOutputNever": "Heç vaxt",
+ "rawOutputFailures": "Uğursuzluqlar",
+ "rawOutputAlways": "Həmişə",
+ "rawOutputMaxBytes": "Xam çıxışın maksimum bayt sayı",
+ "filterTesting": "Filtrlərin sınaqdan keçirilməsi",
+ "pasteOutput": "Filtrləməni sınaqdan keçirmək üçün alət çıxışını yapışdırın...",
"presetHigh": "Aqressiv",
"presetLow": "İşıq",
"presetMaxChars": "Maksimum çıxış simvolları",
"presetMaxLines": "Maksimum çıxış xətləri",
"presetMedium": "Standart",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "İşə salın",
+ "result": "Nəticə",
+ "previewEmpty": "RTK çıxışına önizləmə etmək üçün nümunəni işə salın.",
+ "detected": "Aşkarlandı",
"masterSwitchOffAlert": "Token Saver əsas açarı QAPALIDIR — Endpoint səhifəsindən onu aktivləşdirməyənə qədər bu parametrlər sorğulara təsir etməyəcək.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "Filtrlənmiş tokenlər",
+ "filtersActive": "Aktiv filtrlər",
+ "requests": "Sorğular",
+ "avgSavings": "Orta qənaət",
"simpleMode": "Sadə",
"advancedMode": "Qabaqcıl",
"searchFilters": "Axtarış filtrləri...",
@@ -8495,7 +8506,7 @@
"description": "Aşkar sətir sayı markerləri olan bircinsli JSON massivlərinin itkisiz cədvəl sıxılması."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "Sessiya deduplifikasiyası",
"description": "Bərpa oluna bilən məzmun markerləri ilə növbələrarası blok deduplikasiyası."
},
"ccr": {
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "Sıxılma kombinasiyaları",
+ "description": "Müxtəlif marşrutlaşdırma ssenariləri üçün mühərriklərin necə birləşdiriləcəyini müəyyənləşdirin.",
+ "createCombo": "Sıxılma kombinasiyası yaradın",
+ "editCombo": "Redaktə et",
+ "deleteCombo": "Sil",
+ "deleteConfirm": "Bu sıxılma kombinasiyası silinsin?",
+ "pipeline": "Emal ardıcıllığı",
+ "addStep": "Addım əlavə et",
+ "removeStep": "Sil",
+ "name": "Ad",
+ "descriptionField": "Təsvir",
+ "languagePacks": "Dil paketləri",
+ "outputMode": "Çıxış rejimi",
+ "assignToRouting": "Marşrutlaşdırma kombinasiyalarına təyin et",
+ "noAssignments": "Heç bir marşrutlaşdırma kombinasiyası mövcud deyil",
+ "default": "Defolt",
+ "setAsDefault": "Defolt olaraq təyin et",
+ "save": "Yadda saxla",
+ "cancel": "Ləğv et",
+ "enabled": "Aktivdir",
"loading": "Yüklənir…",
"hubTitle": "Sıxılma Mərkəzi",
"hubDescription": "Qlobal olaraq hansı sıxılma profilinin işləyəcəyini seçin.",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "Hazırda yalnız Claude (Anthropic) üçün əlçatandır. Bu, həvalə edilmiş rejimdir: provayder server tərəfində köhnə alət istifadəsi bloklarını təmizləyir — biz mesajı yenidən yazmırıq. Digər provayderlərə təsir etmir.",
"namedCombos": "Adlı kombinasiyalar",
"namedCombosDescription": "Müxtəlif konveyerləri yadda saxlayın və onları xüsusi marşrutlaşdırma kombinasiyalarına təyin edin.",
+ "activeProfileMasterSwitchOffWarning": "Əsas \"Sorğu sıxılması\" keçidi aktiv edilməyənədək aşağıdakı aktiv profil işləməyəcək.",
+ "activeProfileMasterSwitchOffCta": "Parametrlərdə aktiv edin",
"comboNamePlaceholder": "Kombinasiya adı",
"descriptionPlaceholder": "Təsvir",
"nameRequired": "Yadda saxlamazdan əvvəl kombinasiya adını daxil edin.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "Dil paketləri: {packs}",
"dragToReorder": "Addımın sırasını dəyişmək üçün sürükləyin",
"engine": "Mühərrik",
- "intensity": "İntensivlik",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "İntensivlik"
},
"compressionStudio": {
"noRun": "Heç bir sıxılma icrası mövcud deyil.",
@@ -8701,7 +8712,7 @@
"run": "İcra et",
"laneRejected": "rədd edildi: {reason}",
"error": "xəta",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Birləşdirilmiş emal ardıcıllığına önbaxış uğursuz oldu: {reason}",
"combinedFlow": "Kombinə edilmiş axın",
"eachLayer": "Hər qat ayrıca",
"diff": "Fərq",
@@ -8759,7 +8770,7 @@
"why": "Yalnız Fable 5 sıx səhifələri 100% dəqiqliklə oxuyur (ölçülmüş, n=30). GPT-5.5 və Gemini 2.5 Flash bloklanıb."
},
"transport": {
- "label": "Transport",
+ "label": "Ötürmə",
"pass": "birbaşa Anthropic",
"why": "Aqreqatorlar şəkilləri yenidən nümunələyir və oxunaqlılığı pozur — yalnız birbaşa marşrut etibarlıdır."
},
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Mühərriki aktivləşdir",
"enableDescription": "Yığında ən son işləyir (RTK/Caveman mətni təmizlədikdən sonra OmniGlyph qalan hissəni şəkillərə çevirir) və həmçinin omniglyph rejimi vasitəsilə müstəqil işləyir. Bu, ilkin baxışdır və başdan-başa yoxlama tamamlanana qədər standart olaraq söndürülmüş qalır.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Sıxılma profili",
+ "profileDescription": "Profil aşağı hədd deyil, yuxarı həddir: daha sərt profil hər addım üzrə ləğvetmə ilə yenidən yumşaldıla bilməz. Bu kod bazasında aparılan ölçmələrə görə, Kodlaşdırma üçün təhlükəsiz və ya Balanslaşdırılmış profil seçildikdə, hələ tarixçə toplamamış sessiyada heç nə sıxılmır, çünki hər ikisi minimum simvol həddini artırır və sistem promptunu, alət sxemlərini və alət nəticələrini orijinal formada saxlayır.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aqressiv (standart)",
+ "description": "Dərc edilmiş hesabatlarda ölçülən siyasət. Sistem promptunu, alət sənədlərini və sıx tarixçəni təsvirə çevirir."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Balanslaşdırılmış",
+ "description": "Aktiv vəziyyəti orijinal formada saxlayır və son 8 gedişi qoruyur; yalnız daha köhnə, bağlanmış tarixçəni yığcamlaşdırır."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Kodlaşdırma üçün təhlükəsiz",
+ "description": "Səlahiyyət məlumatlarını, alət sxemlərini və aktiv alət çıxışını orijinal formada saxlayaraq son 12 gedişi qoruyur. Sessiya tarixçə toplayana qədər heç nəyi sıxmır."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Dəyişmədən ötürmə",
+ "description": "Heç bir çevrilmə aparmadan yönləndirir. Mühərrik keçilir və sorğu toxunulmadan ötürülür."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph sıxılma profilini seçin",
"saved": "Saxlanıldı.",
"saveFailed": "Saxlamaq mümkün olmadı.",
"enableAria": "OmniGlyph mühərrikini aktivləşdir",
@@ -8898,38 +8909,38 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Qaydalara əsaslanan mesaj sıxılması, dil paketləri, analitika və çıxış rejimi idarəetmələri.",
"advancedConfig": "Qabaqcıl Konfiqurasiya",
"advancedConfigDesc": "Sıxılma davranışını incə tənzimləyin",
"aggressiveSettings": "Aqressiv Parametrlər",
"aggressiveSettingsDesc": "Potensial keyfiyyət dəyişikliyi ilə maksimum sıxılma",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Sorğular",
+ "tokensSaved": "Qənaət edilən tokenlər",
+ "savingsPercent": "Qənaət %",
+ "avgLatency": "Orta gecikmə",
+ "languagePacks": "Dil paketləri",
+ "languagePacksDesc": "Müəyyən dillər üçün sıxılma qaydalarını aktivləşdirin.",
"labelAutoTrigger": "Kontekst aşdıqda avtomatik sıxın",
"labelCompressionRate": "Sıxılma gücü",
"labelMaxTokens": "Mesaj başına hədəf nişanları",
"labelMinLength": "Minimum mesaj uzunluğu",
"labelMinSavings": "Saxlamaq üçün minimum nişanlar",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Aktivdir",
+ "autoDetect": "Dili avtomatik aşkarlayın",
+ "rulesCount": "{count} qayda",
"inputCompressionTitle": "Girişin sıxılması",
"inputCompressionDesc": "Söhbət tarixçəsini daha qısa ifadələrlə yenidən yazın. Giriş tokenlərini təxminən 50% azaldır.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Sıxılma analitikası",
+ "noAnalytics": "Hələ sıxılma analitikası yoxdur.",
"masterDisabledWarning": "Token Saver əsas açarı QAPALIDIR — Sıxılma Parametrlərindən onu aktivləşdirənə və ya buradan dəyişdirənə qədər bu parametrlər sorğulara təsir etməyəcək.",
"outputMode": "Çıxış rejimi",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Çıxış rejimi",
"quickSettings": "Sürətli Parametrlər",
"quickSettingsDesc": "Başlamaq üçün əsas sıxılma parametrləri",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
- "bypassConditionsList": "security, irreversible, clarification, order-sensitive",
+ "autoClarity": "Avtomatik aydınlıq keçidi",
+ "bypassConditions": "Keçid şərtləri",
+ "bypassConditionsList": "təhlükəsizlik, geri dönməzlik, aydınlaşdırma, ardıcıllıqdan asılılıq",
"simpleMode": "Sadə",
"advancedMode": "Qabaqcıl",
"tooltipAutoTrigger": "Kontekst bu ölçüsü keçdikdə avtomatik sıxın.",
@@ -8940,147 +8951,147 @@
"ultraSettings": "Ultra Parametrlər",
"ultraSettingsDesc": "SLM ilə dəstəklənən semantik sıxılma",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Yığcam cavab verin. Texniki terminləri, kodu, xətaları, URL-ləri və identifikatorları qoruyun.",
+ "full": "Qısa və yığcam cavab verin. Bütün texniki məzmunu qoruyun.",
+ "ultra": "Ümumi texniki ixtisarlardan istifadə edərək son dərəcə qısa cavab verin. Simvolları olduğu kimi qoruyun."
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "Tərcüməçi",
+ "metaTitle": "Tərcüməçi sınaq meydançası | OmniRoute",
+ "metaDescription": "Provayderlər arasında API formatı çevirmələrini sazlayın, sınaqdan keçirin və vizuallaşdırın",
+ "playgroundTitle": "Tərcüməçi sınaq meydançası",
+ "playground": "Sınaq meydançası",
+ "realtime": "Real vaxt rejimində tərcümə fəaliyyəti",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "Sınaq stendi",
+ "liveMonitor": "Canlı Monitorinq",
+ "modeDescriptionPlayground": "İstənilən API sorğusunun gövdəsini yapışdırın və OmniRoute-un onu provayder formatları arasında necə çevirdiyinə baxın (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
+ "modeDescriptionChatTester": "Real çat sorğularını OmniRoute vasitəsilə göndərin və tam gediş-gəlişi yoxlayın: giriş, çevrilmiş sorğu, provayder cavabı və çevrilmiş çıxış.",
+ "modeDescriptionTestBench": "Əvvəlcədən müəyyən edilmiş ssenariləri işə salın və provayderlər və modellər üzrə uyğunluğu müqayisə edin.",
+ "modeDescriptionLiveMonitor": "Sorğular OmniRoute-dan keçərkən çevirmə hadisələrini real vaxtda izləyin.",
+ "modeDescriptionFallback": "OmniRoute-un API sorğularını provayderlər arasında necə çevirdiyini sazlayın, sınaqdan keçirin və vizuallaşdırın.",
+ "recentTranslations": "Son Çevirmələr",
+ "noTranslations": "Hələ heç bir çevirmə yoxdur",
+ "source": "Mənbə",
+ "target": "Hədəf",
+ "time": "Vaxt",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "Gecikmə",
+ "totalTranslations": "Ümumi Çevirmələr",
+ "successful": "Uğurlu",
+ "errors": "Xətalar",
+ "avgLatency": "Orta Gecikmə",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
- "chatTesterTab": "Chat Tester tab",
- "testBenchTab": "Test Bench tab",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "liveAutoRefreshing": "Canlı — Avtomatik yenilənir",
+ "paused": "Dayandırılıb",
+ "eventsAppearHint": "Sorğular OmniRoute-dan keçərkən çevirmə hadisələri burada görünür. Hadisələr yaratmaq üçün bu üsullardan hər hansı birini istifadə edin:",
+ "chatTesterTab": "Çat Sınaqçısı vərəqi",
+ "testBenchTab": "Sınaq Stendi vərəqi",
+ "externalApiCalls": "Xarici API çağırışları",
+ "ideCliIntegrations": "IDE/CLI inteqrasiyaları",
+ "inMemoryNote": "Qeyd: Hadisələr yaddaşda saxlanılır və server yenidən başladıldıqda sıfırlanır.",
"ok": "OK",
- "errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
- "translationPathHubSpoke": "{source} → OpenAI (intermediate) → {target}",
- "translationPathDirect": "{source} → {target} (direct translator)",
- "translationPathPassthrough": "Same format — no translation needed",
- "openaiIntermediatePanel": "OpenAI Intermediate",
- "autoFeaturesTitle": "What OmniRoute does automatically",
- "autoFeaturesCount": "8 features",
- "featureReasoningCache": "Reasoning Cache",
- "featureReasoningCacheDesc": "Re-injects cached reasoning_content for thinking-mode models (DeepSeek V4, Kimi K2, Qwen) when clients omit it from conversation history.",
- "featureSchemaCoercion": "Schema Coercion",
- "featureSchemaCoercionDesc": "Fixes broken tool schemas: adds missing additionalProperties, sanitizes long descriptions, normalizes nested objects.",
- "featureRoleNormalization": "Role Normalization",
- "featureRoleNormalizationDesc": "Maps developer→system for non-OpenAI targets. Maps system→user for models that don't support system role.",
- "featureToolCallIds": "Tool Call ID Normalization",
- "featureToolCallIdsDesc": "Generates unique tool_call IDs when missing. Normalizes to 9-char format for providers like Mistral.",
- "featureMissingToolResponse": "Tool Response Injection",
- "featureMissingToolResponseDesc": "Injects empty tool_result messages when clients send tool_calls without corresponding responses.",
- "featureThinkingBudget": "Thinking Budget",
+ "errorShort": "XƏTA",
+ "formatConverter": "Format Çeviricisi",
+ "formatConverterDescription": "JSON sorğusunun gövdəsini yapışdırın və ya yazın. Çevirici mənbə formatını avtomatik müəyyən edib onu hədəf formata çevirəcək. OmniRoute-un sorğuları formatlar arasında necə çevirdiyini sazlamaq üçün bundan istifadə edin (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "translationPathHubSpoke": "{source} → OpenAI (aralıq) → {target}",
+ "translationPathDirect": "{source} → {target} (birbaşa çevirici)",
+ "translationPathPassthrough": "Eyni format — çevirməyə ehtiyac yoxdur",
+ "openaiIntermediatePanel": "OpenAI Aralıq Formatı",
+ "autoFeaturesTitle": "OmniRoute-un avtomatik etdikləri",
+ "autoFeaturesCount": "8 funksiya",
+ "featureReasoningCache": "Məntiqi Düşünmə Keşi",
+ "featureReasoningCacheDesc": "Müştərilər onu söhbət tarixçəsinə daxil etmədikdə düşünmə rejimli modellər (DeepSeek V4, Kimi K2, Qwen) üçün keşlənmiş reasoning_content məlumatını yenidən əlavə edir.",
+ "featureSchemaCoercion": "Sxemin Məcburi Uyğunlaşdırılması",
+ "featureSchemaCoercionDesc": "Pozulmuş alət sxemlərini düzəldir: çatışmayan additionalProperties əlavə edir, uzun təsvirləri təmizləyir, iç-içə obyektləri normallaşdırır.",
+ "featureRoleNormalization": "Rolun Normallaşdırılması",
+ "featureRoleNormalizationDesc": "OpenAI olmayan hədəflər üçün developer→system uyğunlaşdırmasını aparır. system rolunu dəstəkləməyən modellər üçün system→user uyğunlaşdırmasını aparır.",
+ "featureToolCallIds": "Alət Çağırışı ID-sinin Normallaşdırılması",
+ "featureToolCallIdsDesc": "Çatışmadıqda unikal tool_call ID-ləri yaradır. Mistral kimi provayderlər üçün 9 simvolluq formata normallaşdırır.",
+ "featureMissingToolResponse": "Alət cavabının əlavə edilməsi",
+ "featureMissingToolResponseDesc": "Müştərilər uyğun cavablar olmadan tool_calls göndərdikdə boş tool_result mesajları əlavə edir.",
+ "featureThinkingBudget": "Düşünmə büdcəsi",
"featureThinkingBudgetDesc": "Automatically manages thinking config. Removes thinking parameters when the last message is not from the user.",
- "featureDirectPaths": "Direct Translation Paths",
- "featureDirectPathsDesc": "Some format pairs (Claude→Gemini) have direct translators that bypass the OpenAI hub, producing more accurate output.",
- "featureImageMapping": "Image Size Mapping",
- "featureImageMappingDesc": "Translates image dimension conventions between API formats (e.g., OpenAI detail levels → Gemini dimensions).",
- "input": "Input",
- "output": "Output",
+ "featureDirectPaths": "Birbaşa tərcümə yolları",
+ "featureDirectPathsDesc": "Bəzi format cütlərinin (Claude→Gemini) OpenAI mərkəzindən yan keçən və daha dəqiq nəticə yaradan birbaşa tərcüməçiləri var.",
+ "featureImageMapping": "Şəkil ölçüsünün uyğunlaşdırılması",
+ "featureImageMappingDesc": "API formatları arasında şəkil ölçüsü qaydalarını çevirir (məs., OpenAI detal səviyyələri → Gemini ölçüləri).",
+ "input": "Giriş",
+ "output": "Çıxış",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "Formatların yerini dəyiş",
+ "translateAction": "Tərcümə et",
+ "clear": "Təmizlə",
+ "inputPlaceholder": "Sorğunun gövdəsini buraya yapışdırın və ya aşağıdan bir şablon seçin...",
+ "exampleTemplates": "Nümunə şablonlar",
+ "exampleTemplatesHint": "— Yükləmək üçün klikləyin",
+ "templateLoadHint": "Şablon sorğunu {format} formatında yükləyir. Fərqli formatda yükləmək üçün Mənbə formatını dəyişin.",
+ "compatibilityTester": "Uyğunluq test aləti",
+ "compatibilityReport": "Uyğunluq hesabatı",
+ "testBenchDescription": "Tərcümə və provayder uyğunluğunu yoxlamaq üçün əvvəlcədən təyin edilmiş ssenariləri (Sadə söhbət, Alət çağırışı və s.) işə salın. Mənbə formatını və hədəf provayderi seçin, sonra uyğunluq faizini görmək üçün bütün testləri işə salın. Provayderlər arasında hansı funksiyaların işlədiyini müəyyən etmək üçün bundan istifadə edin.",
+ "targetProvider": "Hədəf provayder",
+ "runAllTests": "Bütün testləri işə sal",
+ "runTest": "Testi işə sal",
+ "reRun": "Yenidən işə sal",
+ "running": "İcra olunur...",
+ "passed": "keçdi",
+ "failed": "uğursuz oldu",
+ "passedIconLabel": "✅ Keçdi",
+ "chunks": "fraqment",
+ "scenarioSimpleChat": "Sadə söhbət",
+ "scenarioToolCalling": "Alət çağırışı",
+ "scenarioMultiTurn": "Çoxmərhələli",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "Sistem təlimatı",
+ "scenarioStreaming": "Axınlı ötürmə",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "Sadə söhbət",
+ "tool-calling": "Alət çağırışı",
+ "multi-turn": "Çoxmərhələli",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "Sistem təlimatı",
+ "streaming": "Axınlı ötürmə",
"vision": "Görmə",
"schema-coercion": "Sxem məcburiyyəti"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "Sadə mətn mesajı",
+ "tool-calling": "Funksiya/alət çağırışı",
+ "multi-turn": "Söhbət tarixçəsi olan dialoq",
+ "thinking": "Genişləndirilmiş düşünmə / əsaslandırma",
+ "system-prompt": "Mürəkkəb sistem təlimatları",
+ "streaming": "SSE axın sorğusu",
"vision": "Şəkil daxiletməsi ilə multimodal sorğu",
"schema-coercion": "Strukturlaşdırılmış çıxış / JSON sxeminin tətbiqi"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "Siz faydalı bir köməkçisiniz.",
+ "userGreeting": "Salam! Bu gün necəsiniz?"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "São Pauloda hava necədir?",
+ "toolDescription": "Məkan üçün cari hava məlumatını əldə edin",
+ "cityNameDescription": "Şəhər adı"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "Siz proqramlaşdırma üzrə köməkçisiniz.",
+ "userInitial": "Python-da massivi çeşidləmək üçün funksiya yazın.",
+ "assistantExample": "Budur sadə bir çeşidləmə funksiyası: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "İndi onu azalan sıra ilə çeşidləyin."
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "İlk 100 sadə ədədin cəmi nədir?"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "Siz paylanmış sistemlər üzrə ixtisaslaşmış baş proqram mühəndisisiniz. Suallara sənayenin ən yaxşı təcrübələrindən istifadə edərək qısa cavab verin. Uyğun olduqda həmişə kod nümunələri təqdim edin. Cavablarınızı markdown istifadə edərək formatlayın.",
+ "question": "Dövrə qırıcı nümunəsini necə tətbiq edə bilərəm?"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "Rəsm çəkməyi öyrənən robot haqqında qısa hekayə danışın."
},
"vision": {
"system": "Siz şəkilləri dəqiq təsvir edən köməkçisiniz.",
@@ -9093,12 +9104,12 @@
"cityDescription": "Sorğu ediləcək şəhər, məs. \"Tokio\" və ya \"Nyu York\"."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "OpenAI ilə uyğun",
+ "anthropicCompatibleLabel": "Anthropic ilə uyğun",
+ "noTemplateForFormat": "Bu format üçün şablon yoxdur",
+ "translationFailed": "Tərcümə uğursuz oldu: {error}",
+ "pipelineDebugger": "Konveyer sazlayıcısı",
+ "translationPipeline": "Tərcümə konveyeri",
"loading": "Yüklənir…",
"compressionOriginal": "Orijinal",
"compressionCompressed": "Sıxılmış",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "Pipeline addımları",
"copyIntermediateJson": "Aralıq JSON-u kopyalayın",
"copyOutputJson": "Çıxış JSON-unu kopyalayın",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
- "liveMonitorMemoryNote": "Events are stored in memory and lost on restart.",
- "liveMonitorMemoryCapNote": "Max 200 events retained.",
- "eventSourcesLabel": "Event sources:",
- "eventSourceTranslatorPage": "• Translator page (Chat Tester, Test Bench)",
- "eventSourceMainPipeline": "• Main request pipeline (CLI/IDE/API traffic)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "pipelineVisualization": "Konveyerin vizuallaşdırılması",
+ "pipelineVisualizationHint": "Sorğunuzun aşkarlama → tərcümə → provayder çağırışı mərhələlərindən necə keçdiyini görmək üçün mesaj göndərin.",
+ "chatTesterDescription": "Mesajları müəyyən müştəri formatında göndərin və tərcümə konveyerinin hər bir mərhələsini yoxlayın.",
+ "chatTesterFlow": "Müştəri sorğusu → Formatın aşkarlanması → OpenAI aralıq formatı → Provayder formatı → Cavab",
+ "clickStepToInspect": "Həmin mərhələdəki məlumatları yoxlamaq üçün istənilən mərhələyə klikləyin.",
+ "clientFormat": "Müştəri formatı",
+ "provider": "Provayder",
+ "modelPlaceholder": "Model adını seçin və ya daxil edin...",
+ "sendMessageToSeePipeline": "Tərcümə konveyerini görmək üçün mesaj göndərin",
+ "chatMessageHintPrefix": "Mesajınız",
+ "chatMessageHintSuffix": "sorğusu kimi formatlanacaq, konveyer vasitəsilə tərcümə ediləcək və seçilmiş provayderə göndəriləcək.",
+ "youWithFormat": "Siz ({format})",
+ "assistant": "Köməkçi",
+ "typeMessage": "Mesaj yazın...",
+ "send": "Göndər",
+ "clientRequest": "Müştəri sorğusu",
+ "clientRequestDescription": "Müştərinizin göndərəcəyi sorğu gövdəsi",
+ "formatDetected": "Aşkarlanan format",
+ "formatDetectedDescription": "OmniRoute sorğunun strukturuna əsasən API formatını avtomatik aşkarlayır",
+ "openaiIntermediate": "OpenAI aralıq formatı",
+ "openaiIntermediateDescription": "Bütün formatlar əvvəlcə OpenAI formatına (universal körpüyə) normallaşdırılır",
+ "providerFormat": "Provayder formatı",
+ "providerFormatDescription": "OpenAI formatı provayderin yerli formatına çevrilir",
+ "providerResponse": "Provayder cavabı",
+ "providerResponseRawDescription": "Provayder API-sindən gələn xam cavab",
+ "providerResponseSseDescription": "Provayder API-sindən gələn xam SSE axını",
+ "unexpectedError": "Gözlənilməz xəta baş verdi",
+ "error": "Xəta",
+ "errorMessage": "Xəta: {message}",
+ "requestFailed": "Sorğu uğursuz oldu",
+ "noTextExtracted": "(Heç bir mətn çıxarılmadı)",
+ "liveMonitorMemoryNote": "Hadisələr yaddaşda saxlanılır və yenidən başladıldıqda itirilir.",
+ "liveMonitorMemoryCapNote": "Maksimum 200 hadisə saxlanılır.",
+ "eventSourcesLabel": "Hadisə mənbələri:",
+ "eventSourceTranslatorPage": "• Tərcüməçi səhifəsi (Söhbət testeri, Test stendi)",
+ "eventSourceMainPipeline": "• Əsas sorğu emalı xətti (CLI/IDE/API trafiki)",
+ "liveMonitorDescriptionPrefix": "API çağırışları OmniRoute-dan keçərkən tərcümə hadisələrini göstərir. Hadisələr yaddaşdakı buferdən gəlir (yenidən başladıldıqda sıfırlanır). Hadisələr yaratmaq üçün istifadə edin",
+ "liveMonitorDescriptionSuffix": ", və ya xarici API çağırışlarından istifadə edin.",
"streamTransformer": "Axın transformatoru",
"modeDescriptionStreamTransformer": "Cavablar transformatoru vasitəsilə söhbət tamamlamalarını SSE axınlarını işə salın.",
"streamTransformerTitle": "Cavab axını transformatoru",
@@ -9153,7 +9164,7 @@
"loadToolSample": "Alət çağırışı nümunəsini yükləyin",
"transformToResponses": "Cavablara çevirin",
"rawChatSseInput": "Raw chat tamamlayır SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Çevrilmiş Responses API SSE",
"noResultsYet": "Hələ nəticə yoxdur",
"transformedEvents": "Dəyişdirilmiş hadisələr",
"uniqueEventTypes": "Unikal hadisə növləri",
@@ -9166,7 +9177,7 @@
"comboRouted": "Kombo yönləndirildi",
"uniqueEndpoints": "Unikal son nöqtələr",
"routeDetails": "Marşrut təfərrüatları",
- "comboBadge": "Combo",
+ "comboBadge": "Kombinə edilmiş",
"routeEndpointLabel": "Son nöqtə",
"routeConnectionLabel": "Əlaqə",
"scenarioVision": "Vizyon (şəkil anlayışı)",
@@ -9177,12 +9188,12 @@
"conceptHeadline": "Tətbiqiniz bir API-nin \"dilində\" danışır. Tərcüməçi onu başqa provayderdən istifadə etmək üçün çevirir.",
"conceptDiagramAppLabel": "Tətbiqiniz",
"conceptDiagramSourceLabel": "Mənbə formatı",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (mərkəz)",
"conceptDiagramTargetLabel": "Hədəf provayder",
"conceptDiagramExampleApp": "məs. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
"conceptDiagramExampleTarget": "Gemini",
- "conceptHowItWorksToggle": "How it works",
+ "conceptHowItWorksToggle": "İş prinsipi",
"conceptHowItWorksBody": "Tətbiqiniz sorğunu öz formatında göndərir. Translator formatı müəyyən edir, onu aralıq qovşaq kimi OpenAI vasitəsilə (və ya birbaşa tərcüməçi mövcud olduqda birbaşa) çevirir, seçilmiş provayderə göndərir və cavabı tətbiqinizin formatına geri çevirərək qaytarır.",
"tabTranslate": "Tərcümə",
"tabMonitor": "Monitorinq",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "JSON sorğusunu yapışdırın; format avtomatik olaraq aşkar edilir.",
"advancedPipelineTitle": "OpenAI aralıq pipeline-ı",
"advancedPipelineSubtitle": "Hər bir tərcümə addımını vizuallaşdırın (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Axın çeviricisi (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Chat Completions SSE-ni Responses API-yə çevirir.",
"advancedTestBenchTitle": "Test stendi (8 ssenari)",
"advancedTestBenchSubtitle": "Bütün ssenariləri işə salır və uğurlu/uğursuz statusunu + uyğunluq %-ni hesabat verir.",
@@ -9255,13 +9266,13 @@
"streamTransformFailed": "Axını çevirmək mümkün olmadı"
},
"usage": {
- "title": "Usage",
+ "title": "İstifadə",
"grokExtraUsageCredits": "Əlavə İstifadə Krediti",
"grokAutoTopUp": "Avtomatik Yükləmə",
"grokAutoTopUpUnavailable": "Mövcud deyil",
"grokAutoTopUpEnabled": "Aktivdir",
"grokAutoTopUpDisabled": "Deaktiv edilmiş",
- "grokAutoTopUpAt": "at",
+ "grokAutoTopUpAt": "tarixində",
"grokAutoTopUpAdd": "əlavə et",
"grokAutoTopUpMax": "maksimum",
"grokAutoTopUpMonth": "ay",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "Qalan",
"kiloPassRenews": "{count} gündən sonra yenilənir",
"kiloPassUsageLabel": "Bu ayın istifadəsi",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Əlavə istifadə kreditləri",
+ "kimiExtraUsage": "Əlavə istifadə",
+ "kimiExtraUsageEnabled": "Aktivdir",
+ "kimiExtraUsageDisabled": "Deaktivdir",
+ "kimiExtraUsageFrozen": "Dondurulub",
+ "kimiExtraUsageUnavailable": "Əlçatan deyil",
+ "kimiMonthlyUsed": "Bu ay istifadə edilib",
+ "kimiMonthlyLimit": "Aylıq limit",
+ "kimiMonthlyLimitUnlimited": "Limitsiz",
+ "kimiAdditionalCredits": "Əlavə kreditlər",
+ "loggerTab": "Jurnal",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "Büdcənin idarə edilməsi",
+ "budgetSaved": "Büdcə limitləri yadda saxlanıldı",
+ "budgetSaveFailed": "Büdcəni yadda saxlamaq alınmadı",
+ "loadingBudgetData": "Büdcə məlumatları yüklənir...",
+ "noApiKeysTitle": "API açarı yoxdur",
+ "noApiKeysDescription": "Büdcə limitlərini təyin etmək üçün əvvəlcə API açarları əlavə edin.",
+ "apiKey": "API açarı",
+ "todaysSpend": "Bugünkü xərc",
+ "thisMonth": "Bu ay",
+ "setLimits": "Limitləri təyin edin",
+ "dailyLimitUsd": "Gündəlik limit (USD)",
+ "monthlyLimitUsd": "Aylıq limit (USD)",
+ "warningThresholdPercent": "Xəbərdarlıq həddi (%)",
+ "dailyLimitPlaceholder": "məs. 5.00",
+ "monthlyLimitPlaceholder": "məs. 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "Limitləri yadda saxlayın",
+ "budgetOk": "Büdcə qaydasındadır — {remaining} qalıb",
+ "budgetExceeded": "Büdcə aşılıb — sorğular bloklana bilər",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "Hələ məlumat yoxdur",
+ "latency": "Gecikmə",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "Prompt keşi",
+ "systemHealth": "Sistem vəziyyəti",
+ "entries": "Qeydlər",
+ "activeCount": "{count} aktiv",
+ "openCircuitBreakersDetected": "Açıq dövrə kəsiciləri aşkarlandı",
+ "hitRate": "Uyğunluq faizi",
+ "hitsMisses": "Uyğunluqlar / Uyğunsuzluqlar",
+ "circuitBreakers": "Dövrə kəsiciləri",
+ "lockedIPs": "Bloklanmış IP-lər",
+ "lockoutsAutoRefreshHint": "Model üzrə sürət limiti kilidləri • Avtomatik yenilənmə: 10 san.",
+ "lockedCount": "{count, plural, one {# kilidlənib} other {# kilidlənib}}",
+ "timeLeft": "{time} qalıb",
+ "howItWorks": "Necə işləyir",
+ "howItWorksSubtitle": "Qiymətləndirmələrin LLM cavablarınızı necə yoxladığını öyrənin",
+ "define": "Müəyyən edin",
+ "defineStepDescription": "«Daxildir», müntəzəm ifadə və ya dəqiq uyğunluq kimi strategiyalardan istifadə edərək giriş promptları və gözlənilən çıxış meyarları ilə test nümunələri yaradın.",
+ "run": "İşə sal",
+ "runStepDescription": "OmniRoute vasitəsilə test ssenarilərini LLM son nöqtələrinizdə icra edin. Hər bir ssenari real API sorğusu kimi göndərilir.",
+ "evaluate": "Qiymətləndir",
+ "evaluateStepDescription": "Cavablar gözlənilən meyarlarla müqayisə edilir. Gecikmə göstəriciləri və ətraflı rəylə birlikdə hər bir ssenarinin uğurlu/uğursuz nəticəsini görün.",
"evalsStrategyContainsLabel": "İçərir",
"evalsStrategyExactLabel": "Dəqiq uyğunluq",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Müntəzəm ifadə",
"evalsStrategyCustomLabel": "Fərdi məntiq",
"evalsStrategyContainsDescription": "LLM çıxışının gözlənilən alt-satri ehtiva edib-etmədiyini yoxlayır.",
"evalsStrategyExactDescription": "LLM çıxışının gözlənilən dəyərlə dəqiq uyğun gəlib-gəlmədiyini yoxlayır.",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "Keçid dərəcəsi",
"historyColumnAvgLatencyMs": "Ortalama gecikmə",
"historyColumnCreatedAt": "İcra edildi",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "Qiymətləndirmə dəstləri",
+ "evalSuitesHint": "Test ssenarilərinə baxmaq üçün dəstə klikləyin, sonra LLM son nöqtələrinizi qiymətləndirmək üçün işə salın",
+ "evalsLoading": "Qiymətləndirmə dəstləri yüklənir...",
+ "noEvalSuitesFound": "Qiymətləndirmə dəsti tapılmadı",
+ "noEvalSuitesDescription": "Qiymətləndirmə dəstləri API vasitəsilə və ya kodda müəyyən edilə bilər. Onlar model nəticələrini «ehtiva edir», müntəzəm ifadə, dəqiq uyğunluq və fərdi funksiyalar kimi strategiyalardan istifadə etməklə gözlənilən nəticələrə qarşı yoxlayır.",
+ "columnCase": "Ssenari",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "Gecikmə",
+ "columnDetails": "Təfərrüatlar",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "Strategiya",
+ "columnExpected": "Gözlənilən",
+ "statsSuites": "Dəstlər",
+ "statsTestCases": "Test ssenariləri",
+ "statsModels": "Modellər",
+ "statsCoverage": "Əhatə dairəsi",
+ "statsStrategiesCount": "{count} strategiya",
+ "evaluationStrategies": "Qiymətləndirmə strategiyaları",
+ "modelsUnderTest": "Sınaqdan keçirilən modellər",
+ "searchSuitesPlaceholder": "Dəstlərdə axtarın...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
- "runAllSuites": "Run All",
- "runAllRunning": "Running all...",
- "runAllProgress": "Running {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
- "runAllCompleted": "Ran {suites} suites — {passed} passed, {failed} failed",
- "runAllCompletedWithFailures": "Ran {completed} suites; {failedSuites} failed to complete",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
- "resultPassed": "Passed",
- "resultFailed": "Failed",
- "expandResult": "Expand result details",
- "collapseResult": "Collapse result details",
- "detailsContains": "Contains: \"{term}\"",
+ "casesCount": "{count, plural, one {# ssenari} other {# ssenari}}",
+ "runEval": "Qiymətləndirməni işə sal",
+ "runAllSuites": "Hamısını işə sal",
+ "runAllRunning": "Hamısı işə salınır...",
+ "runAllProgress": "İcra olunur {current}/{total}: {name}",
+ "runAllFailedSuites": "{count, plural, one {# dəst uğursuz oldu} other {# dəst uğursuz oldu}}",
+ "runAllCompleted": "{suites} dəst icra edildi — {passed} uğurlu, {failed} uğursuz",
+ "runAllCompletedWithFailures": "{completed} dəst icra edildi; {failedSuites} dəstin icrası tamamlanmadı",
+ "runningProgress": "İcra olunur {current}/{total}...",
+ "passRate": "uğur faizi",
+ "summaryBreakdown": "{passed} uğurlu · {failed} uğursuz · cəmi {total}",
+ "passedIconLabel": "✅ Uğurlu",
+ "failedIconLabel": "❌ Uğursuz",
+ "resultPassed": "Uğurlu",
+ "resultFailed": "Uğursuz",
+ "expandResult": "Nəticə təfərrüatlarını genişləndir",
+ "collapseResult": "Nəticə təfərrüatlarını yığcamlaşdır",
+ "detailsContains": "Tərkibində var: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
- "expectedOutputLabel": "Expected Output",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "detailsExpected": "Gözlənilən: \"{expected}\"",
+ "expectedOutputLabel": "Gözlənilən çıxış",
+ "noResultsYet": "Hələ nəticə yoxdur",
+ "testCasesCount": "Test halları ({count})",
+ "noTestCasesDefined": "Heç bir test halı müəyyən edilməyib",
+ "runEvalHint": "Bütün halları LLM son nöqtənizdə icra etmək üçün \"Qiymətləndirməni işə sal\" düyməsinə klikləyin. Hər test OmniRoute vasitəsilə real sorğu göndərir.",
+ "notifyNoTestCases": "Bu dəst üçün heç bir test halı müəyyən edilməyib",
+ "notifyAllCasesPassed": "Bütün {total} hal uğurla keçdi ✅",
+ "notifySomeCasesFailed": "{passed}/{total} keçdi, {failed} uğursuz oldu",
+ "notifyEvalRunFailed": "Qiymətləndirmə uğursuz oldu",
+ "notifyEvalTitle": "Qiymətləndirmə: {name}",
+ "modelEvals": "Model qiymətləndirmələri",
+ "evalsHeroDescription": "Əvvəlcədən müəyyən edilmiş qiymətləndirmə dəstlərini işə salaraq LLM son nöqtələrinizi test və təsdiq edin. Hər dəstdə OmniRoute vasitəsilə real sorğular göndərən və cavabları gözlənilən meyarlarla müqayisə edən test halları var — bu, reqressiyaları aşkarlamağa, modelləri müqayisə etməyə və provayderlər üzrə cavab keyfiyyətini təmin etməyə kömək edir.",
+ "qualityValidation": "Keyfiyyətin yoxlanılması",
+ "modelComparison": "Modellərin müqayisəsi",
+ "regressionDetection": "Reqressiyanın aşkarlanması",
+ "latencyBenchmarks": "Gecikmə göstəriciləri",
+ "modelLockouts": "Model bloklamaları",
+ "noLockouts": "Hazırda bloklanmış model yoxdur",
+ "activeSessions": "Aktiv sessiyalar",
+ "noSessions": "Aktiv sessiya yoxdur",
+ "sessionsHint": "Sorğular proksi vasitəsilə keçdikcə sessiyalar burada görünür",
+ "sessionsTrackedHint": "Sorğu barmaq izi ilə izlənilir • Hər 5 saniyədən bir avtomatik yenilənir",
+ "session": "Sessiya",
+ "age": "Müddət",
+ "requests": "Sorğular",
+ "connection": "Bağlantı",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "Provayder limitləri",
+ "noProviders": "Heç bir provayder qoşulmayıb",
+ "connectProvidersForQuota": "API kvota limitlərinizi və istifadənizi izləmək üçün OAuth vasitəsilə provayderlərə qoşulun.",
+ "accountsCount": "{count, plural, one {# hesab} other {# hesab}}",
+ "filteredFromCount": "({count} nəticədən filtrlənib)",
+ "autoRefresh": "Avtomatik yeniləmə",
+ "refreshAll": "Hamısını yenilə",
+ "loadingQuotas": "Yüklənir...",
"showMoreQuotas": "Daha {count} göstər",
"showLessQuotas": "Daha az göstər",
"hideQuotaRow": "Bu kvota sətrini gizlət",
"showQuotaRow": "Bu kvota sətrini göstər",
"hiddenQuotaRowsLabel": "Gizlədilib:",
"quotaVisibilityUpdateFailed": "Kvota görünürlüyünü yeniləmək mümkün olmadı",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
+ "account": "Hesab",
+ "modelQuotas": "Model kvotaları",
+ "lastUsed": "Son yenilənmə",
+ "actions": "Əməliyyatlar",
+ "refreshQuota": "Kvotanı yenilə",
+ "today": "Bu gün",
+ "tomorrow": "Sabah",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "{duration} sonra",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "Xam plan: {plan}",
+ "noPlanFromProvider": "Provayderdən plan yoxdur",
"tokenExpiresIn": "Tokenin vaxtı {time} sonra bitir",
"tokenExpired": "Tokenin istifadə müddəti bitib",
- "noQuotaData": "No quota data",
+ "noQuotaData": "Kvota məlumatı yoxdur",
"cardExpand": "Genişləndir",
"cardCollapse": "Yığcamlaşdır",
"moreQuotas": "+{count} daha çox",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "Qruplaşdırılmamış",
+ "viewFlat": "Düz",
+ "viewByEnvironment": "Mühitə görə",
+ "noQuotaDataAvailable": "Kvota məlumatı mövcud deyil",
+ "noAccountsForTierFilter": "Tarif filtri üçün hesab tapılmadı",
+ "tierAll": "Hamısı",
+ "tierEnterprise": "Korporativ",
+ "tierTeam": "Komanda",
+ "tierBusiness": "Biznes",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
- "tierLite": "Lite",
- "tierUnknown": "Unknown",
+ "tierFree": "Pulsuz",
+ "tierLite": "Yüngül",
+ "tierUnknown": "Naməlum",
"statTotal": "Ümumi",
"statCritical": "Kritik",
"statAlert": "Xəbərdarlıq",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "Səviyyə",
"purchaseAll": "Hamısı",
"purchaseOauthSub": "Abunəlik",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth Pulsuz",
"purchaseApiKey": "API açarı",
"creditsLabel": "Kreditlər",
"creditBalanceHint": "Qalıq balans",
@@ -9500,117 +9511,117 @@
"confirmRedeemResetCreditButton": "Krediti istifadə et",
"resetCreditRedeemed": "Sıfırlama istifadə edildi",
"resetCreditRedeemFailed": "Sıfırlama kreditini istifadə etmək mümkün olmadı",
- "suiteBuilderSaveFailed": "Failed to save suite",
- "clone": "Clone",
- "exportSuite": "Export",
- "importSuite": "Import",
- "suiteExported": "Suite exported",
- "suiteExportFailed": "Failed to export suite",
- "suiteImportReady": "Suite import loaded for review",
- "suiteImportFailed": "Failed to import suite",
- "suiteImportInvalid": "Invalid eval suite JSON",
- "suiteBuilderCloneSuffix": "copy",
- "suiteBuilderImportedSuite": "Imported Suite",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "suiteBuilderSaveFailed": "Dəsti saxlamaq mümkün olmadı",
+ "clone": "Klonla",
+ "exportSuite": "İxrac et",
+ "importSuite": "İdxal et",
+ "suiteExported": "Dəst ixrac edildi",
+ "suiteExportFailed": "Dəsti ixrac etmək mümkün olmadı",
+ "suiteImportReady": "Dəstin idxalı nəzərdən keçirmək üçün yükləndi",
+ "suiteImportFailed": "Dəsti idxal etmək mümkün olmadı",
+ "suiteImportInvalid": "Qiymətləndirmə dəstinin JSON-u etibarsızdır",
+ "suiteBuilderCloneSuffix": "nüsxə",
+ "suiteBuilderImportedSuite": "İdxal edilmiş dəst",
+ "scorecardTitle": "Qiymətləndirmə cədvəli",
+ "evalApiKey": "API Açarı",
+ "scorecardPassRate": "Keçid faizi",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
- "suiteBuilderCaseExpectedPlaceholderContains": "e.g. def fibonacci",
- "suiteBuilderCaseExpectedPlaceholderExact": "Paste the exact expected response",
- "suiteBuilderCaseExpectedPlaceholderRegex": "e.g. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
- "suiteBuilderCaseExpectedHintRegex": "Use a JavaScript regular expression without wrapping slashes.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
- "suiteBuilderDuplicateCase": "Duplicate",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "actualOutputLabel": "Faktiki çıxış",
+ "evalTargetHint": "Qiymətləndirmək üçün model və ya kombinasiya seçin.",
+ "suiteBuilderDeleted": "Dəst uğurla silindi",
+ "suiteBuilderCaseCardHint": "Giriş sorğusunu və gözlənilən çıxış meyarlarını müəyyənləşdirin.",
+ "nextResetUtc": "Növbəti sıfırlanma (UTC)",
+ "scorecardHint": "Bütün qiymətləndirmə paketləri üzrə ümumiləşdirilmiş keçid faizləri.",
+ "suiteLatestRunsHint": "Bu paket üçün ən son qiymətləndirmə icraları.",
+ "saving": "Yadda saxlanılır",
+ "suiteBuilderCaseModelLabel": "Model (istəyə bağlı)",
+ "evalControlsTitle": "Qiymətləndirmə idarəetmələri",
+ "suiteBuilderEditTitle": "Qiymətləndirmə paketini redaktə et",
+ "suiteBuilderCaseStrategyLabel": "Doğrulama strategiyası",
+ "notifySelectDifferentCompareTarget": "Müqayisə üçün fərqli bir hədəf seçin",
+ "recentRunsHint": "Ən son qiymətləndirmə icraları göstərilir. Ətraflı nəticələrə baxmaq üçün icraya klikləyin.",
+ "evalCompareHint": "Nəticələri istəyə bağlı olaraq ikinci hədəflə müqayisə edin.",
+ "suiteBuilderCaseInvalid": "Bu nümunədə doğrulama xətaları var. Yadda saxlamazdan əvvəl onları düzəldin.",
+ "historyEmpty": "Hələ qiymətləndirmə tarixçəsi yoxdur",
+ "suiteBuilderUpdated": "Paket uğurla yeniləndi",
+ "resetInterval": "Sıfırlama intervalı",
+ "suiteBuilderCreateTitle": "Qiymətləndirmə paketi yarat",
+ "activePeriodSpend": "Aktiv dövr üzrə xərc",
+ "evalApiKeyHint": "Qiymətləndirmə sorğuları üçün istifadə ediləcək API açarını seçin.",
+ "evalCompareOptional": "Müqayisə et (istəyə bağlı)",
+ "suiteBuilderDeleteFailed": "Paketi silmək alınmadı",
+ "suiteBuilderCaseSystemPromptPlaceholder": "İstəyə bağlı sistem təlimatları...",
+ "scorecardCases": "Nümunələr",
+ "runCompletedWithScore": "Qiymətləndirmə tamamlandı — keçid faizi: {score}%",
+ "suiteBuilderCustomBadge": "Fərdi",
+ "targetSuiteDefaults": "Paketin standart parametrləri",
+ "suiteBuilderDeleteConfirm": "Bu paketi silmək istədiyinizə əminsiniz? Bu əməliyyatı geri qaytarmaq mümkün deyil.",
+ "suiteBuilderNameLabel": "Paketin adı",
+ "scorecardSuites": "Paketlər",
+ "evalCompareTarget": "Müqayisə hədəfi",
+ "suiteBuilderCaseModelPlaceholder": "məs., gpt-4o-mini",
+ "evalControlsHint": "Qiymətləndirmə hədəfinizi və API açarınızı konfiqurasiya edin, sonra modelin keyfiyyətini yoxlamaq üçün paketləri işə salın.",
+ "recentRunsTitle": "Son icralar",
+ "suiteBuilderCaseSystemPromptLabel": "Sistem promptu",
+ "suiteBuilderCaseExpectedPlaceholder": "məs., def fibonacci",
+ "suiteBuilderCaseExpectedPlaceholderContains": "məs., def fibonacci",
+ "suiteBuilderCaseExpectedPlaceholderExact": "Gözlənilən dəqiq cavabı daxil edin",
+ "suiteBuilderCaseExpectedPlaceholderRegex": "məs., ^\\\\s*\\\\{.*\\\\}\\\\s*$",
+ "suiteBuilderCaseExpectedHintRegex": "Əhatə edən əyri xətlər olmadan JavaScript müntəzəm ifadəsindən istifadə edin.",
+ "suiteBuilderNamePlaceholder": "məs., Kodlaşdırma keyfiyyəti paketi",
+ "suiteBuilderAddCase": "Nümunə əlavə et",
+ "cancel": "Ləğv et",
+ "evalTarget": "Hədəf",
+ "suiteBuilderCaseNameLabel": "Ssenari adı",
+ "weeklyLimitUsd": "Həftəlik limit (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "məs., Python-da fibonacci funksiyası yazın",
+ "suiteBuilderNameRequired": "Dəst adı tələb olunur",
+ "suiteBuilderCaseUserPromptLabel": "İstifadəçi sorğusu",
+ "daily": "Gündəlik",
+ "resultErrorLabel": "Xəta",
+ "suiteBuilderBuiltInBadge": "Daxili",
+ "suiteBuilderCaseCardTitle": "Test ssenarisi",
+ "suiteBuilderDuplicateCase": "Dublikat yarat",
+ "weeklyLimitPlaceholder": "məs., 50.00",
+ "suiteBuilderCaseTagsHint": "Test ssenarilərini təşkil etmək üçün vergüllə ayrılmış teqlər.",
+ "notifyEvalRunFailedWithReason": "Qiymətləndirmə uğursuz oldu: {reason}",
+ "weekly": "Həftəlik",
+ "runEvalRunning": "Qiymətləndirmə aparılır...",
+ "delete": "Sil",
+ "resetTimeUtc": "Sıfırlanma vaxtı (UTC)",
+ "evalApiKeyAuto": "Avtomatik (standartı istifadə et)",
+ "suiteBuilderDescriptionPlaceholder": "Bu dəstin nəyi test etdiyinə dair istəyə bağlı təsvir...",
+ "targetComparisonTitle": "Hədəflərin müqayisəsi",
+ "save": "Yadda saxla",
+ "suiteBuilderCreated": "Dəst uğurla yaradıldı",
+ "suiteLatestRuns": "Son icralar",
+ "suiteBuilderCaseExpectedLabel": "Gözlənilən dəyər",
+ "historyLatency": "Gecikmə",
+ "suiteBuilderCaseTagsPlaceholder": "məs., kodlaşdırma, python",
+ "targetTypeCombo": "Kombinə edilmiş",
+ "scorecardPassed": "Keçdi",
+ "suiteBuilderCaseTagsLabel": "Teqlər",
+ "suiteBuilderNewSuite": "Yeni dəst",
+ "notifyEvalLoadFailed": "Qiymətləndirmə məlumatlarını yükləmək alınmadı",
+ "notConfigured": "Konfiqurasiya edilməyib",
+ "suiteBuilderCaseNamePlaceholder": "məs., Python fibonacci testi",
+ "intervalLabel": "İnterval",
+ "suiteBuilderCreateAction": "Dəst yarat",
+ "suiteBuilderCasesHint": "Hər ssenari bir sorğu göndərir və cavabı yoxlayır.",
+ "suiteBuilderUpdatedAt": "Yeniləndi",
+ "errorBadge": "Xəta",
+ "suiteBuilderCasesTitle": "Test halları",
+ "edit": "Redaktə et",
+ "monthly": "Aylıq",
+ "suiteBuilderCasesRequired": "Ən azı bir test halı tələb olunur",
+ "weeklyLimitSummary": "Həftəlik büdcə limitinin xülasəsi",
+ "suiteBuilderDescriptionLabel": "Təsvir",
+ "targetComparisonHint": "Hədəflər üzrə qiymətləndirmə nəticələrinin yan-yana müqayisəsi.",
+ "compareCompletedWithScore": "Müqayisə tamamlandı — keçid faizi {score}%",
+ "staleQuotaTooltip": "Son yeniləmə uğursuz oldu — keşlənmiş məlumatlar göstərilir",
"quotaThresholdLabel": "Cutoff",
"quotaCutoffsColumnHelp": "Stop using this account when any window's remaining quota drops to its cutoff. Numbers match the dashboard bars (remaining %).",
- "quotaCutoffsButtonDefault": "Default",
+ "quotaCutoffsButtonDefault": "Defolt",
"quotaCutoffsButtonHelp": "Click to set per-window cutoffs for this account (in remaining %).",
"quotaCutoffsButtonDisabled": "Quota data hasn't loaded yet — refresh this row to enable cutoffs.",
"deactivateAccount": "Hesabı deaktiv et (yönləndirməni dayandır)",
@@ -9621,7 +9632,7 @@
"quotaCutoffsTitle": "Quota cutoffs — {name} ({provider})",
"quotaCutoffsExplainer": "Stop using this account when any window's REMAINING quota drops to the value below — same units as the dashboard bars. Empty inherits the resilience-settings default.",
"quotaCutoffsDefaultHint": "Default: stop at {default}% remaining",
- "quotaCutoffsResetAll": "Reset all",
+ "quotaCutoffsResetAll": "Hamısını sıfırla",
"quotaCutoffsNoWindows": "This provider has no registered quota windows.",
"quotaThresholdInvalid": "Enter an integer 0–100, or leave blank to inherit the default.",
"budgetKpiToday": "Bu gün",
@@ -9646,8 +9657,8 @@
"budgetTemplateApplied": "\"{template}\" {count, plural, one {# açara} other {# açara}} tətbiq edildi",
"budgetTemplateApplyFailed": "Şablonu tətbiq etmək mümkün olmadı",
"budgetTemplateNames": {
- "tpl-prod": "Production",
- "tpl-dev": "Development",
+ "tpl-prod": "İstehsal",
+ "tpl-dev": "İnkişaf",
"tpl-ci": "CI"
},
"budgetStatus": {
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "Qoşulmuş hesablar üzrə canlı status"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "Avtorizasiya gözlənilir",
+ "verificationUrl": "Doğrulama URL-i",
+ "yourCode": "Kodunuz",
+ "remoteAccess": "Uzaqdan giriş:",
+ "connectedSuccess": "Uğurla qoşuldu!",
+ "connectionFailed": "Qoşulma uğursuz oldu",
+ "chooseAuthMethod": "Autentifikasiya üsulunuzu seçin:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Google Hesabı",
+ "githubAccount": "GitHub Hesabı",
+ "importToken": "Tokeni idxal et",
+ "pasteToken": "Kiro IDE-dən yeniləmə tokenini yapışdırın.",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "Tokenlər avtomatik aşkarlanır...",
+ "readingFromCache": "AWS SSO keşindən oxunur",
+ "readingFromCursor": "Cursor IDE verilənlər bazasından oxunur",
+ "initializing": "Başladılır...",
+ "pricingConfig": "Qiymət konfiqurasiyası",
+ "loadingPricing": "Qiymət məlumatları yüklənir...",
+ "pricingRatesFormat": "Qiymət tariflərinin formatı",
+ "noPricingData": "Qiymət məlumatı mövcud deyil",
+ "noModelsFound": "Heç bir model tapılmadı"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "Bütün Provayderlər",
+ "allModels": "Bütün Modellər",
+ "allAccounts": "Bütün Hesablar",
+ "allApiKeys": "Bütün API Açarları",
+ "allTypes": "Bütün Növlər",
+ "allLevels": "Bütün səviyyələr",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "Jurnallar yüklənir...",
+ "loadingProxyLogs": "Proksi jurnalları yüklənir...",
+ "noLogEntries": "Heç bir jurnal qeydi tapılmadı",
+ "noPayloadData": "Bu jurnal qeydi üçün heç bir faydalı yük məlumatı mövcud deyil.",
+ "proxyEvent": "Proksi hadisəsi",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "Səviyyə",
+ "directNative": "Birbaşa (yerli)",
+ "combo": "Kombinə edilmiş",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "İstifadəyə ümumi baxış",
+ "outputTokens": "Çıxış tokenləri",
+ "totalCost": "Ümumi xərc",
+ "usageByModel": "Model üzrə istifadə",
+ "usageByAccount": "Hesab üzrə istifadə",
+ "failedToLoad": "İstifadə statistikasını yükləmək mümkün olmadı.",
+ "tokenHealth": "Tokenlərin vəziyyəti",
+ "totalOAuth": "Ümumi OAuth",
+ "healthy": "Sağlam",
+ "warning": "Xəbərdarlıq",
+ "errored": "Xətalı",
+ "lastCheck": "Son yoxlama",
+ "noData": "Məlumat yoxdur",
+ "share": "Paylaş",
+ "unableToLoad": "Sistem göstəricilərini yükləmək mümkün deyil",
+ "product": "Məhsul",
+ "resources": "Resurslar",
+ "company": "Şirkət",
"tokenHealthTooltips": {
"allHealthy": "Bütün tokenlər sağlamdır",
"needsAttention": "Bəzi tokenlərə diqqət yetirilməlidir",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Sistem metrikaları",
"memory": "Yaddaş",
- "memoryShort": "mem",
+ "memoryShort": "yaddaş",
"uptime": "İşləmə müddəti",
"ariaLabel": "Sistem Monitorinqi",
"title": "Sistem Monitoru",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "Hələlik hesab spesifik istifadəsi qeydə alınmayıb. Məlumatları burada görmək üçün OAuth hesabları ilə sorğular edin."
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "Xoş gəlmisiniz",
+ "signIn": "Daxil olun",
+ "enterPassword": "Davam etmək üçün parolunuzu daxil edin",
+ "password": "Parol",
+ "unifiedProxy": "Vahid AI API proksisi",
+ "unifiedAiApiProxy": "Vahid AI API proksisi",
+ "unifiedAiApiProxyDesc": "Sorğuları vahid son nöqtə vasitəsilə bir neçə AI provayderinə yönləndirin. Yük balanslaşdırılması, nasazlıq zamanı keçid və istifadə izlənməsi daxildir.",
+ "passwordNotEnabled": "Parol qorunması aktiv deyil",
+ "loading": "Yüklənir...",
+ "invalidPassword": "Yanlış parol",
+ "errorOccurredRetry": "Xəta baş verdi. Zəhmət olmasa, yenidən cəhd edin.",
+ "configureInstance": "Gəlin OmniRoute instansiyanızı konfiqurasiya edək",
+ "runOnboardingWizard": "Parolunuzu təyin etmək və ilk AI provayderinizi qoşmaq üçün ilkin quraşdırma sehrbazını başladın.",
+ "startOnboarding": "İlkin quraşdırmaya başlayın",
+ "secureYourInstance": "İnstansiyanızın təhlükəsizliyini təmin edin",
+ "setPasswordDescription": "İdarəetmə panelinizi qorumaq və API son nöqtələrinizi icazəsiz girişdən mühafizə etmək üçün parol təyin edin.",
+ "configurePassword": "Parolu konfiqurasiya edin",
+ "continue": "Davam edin",
+ "windowWillClose": "Bu pəncərə avtomatik bağlanacaq...",
+ "closeTabNow": "İndi bu tabı bağlaya bilərsiniz.",
+ "copyUrlManual": "Lütfən, URL-i ünvan sətrindən kopyalayıb tətbiqə yapışdırın.",
+ "accessDeniedDescription": "Bu resursa giriş icazəniz yoxdur. API açarınızı yoxlayın və ya administratorla əlaqə saxlayın.",
+ "goToDashboard": "İdarəetmə panelinə keçin",
+ "featureMultiProviderTitle": "Çoxsaylı provayderlər",
+ "featureMultiProviderDesc": "OpenAI, Anthropic, Google və digərləri",
+ "featureLoadBalancingTitle": "Yük balanslaşdırılması",
+ "featureLoadBalancingDesc": "Sorğuları ağıllı şəkildə paylayın",
+ "featureUsageTrackingTitle": "İstifadənin izlənməsi",
+ "featureUsageTrackingDesc": "Xərcləri və tokenləri izləyin",
+ "resetPassword": "Parolu sıfırlayın",
+ "resetDescription": "İdarəetmə panelinizə girişi bərpa etmək üçün üsul seçin",
+ "stopServer": "OmniRoute serverini dayandırın",
+ "processing": "Emal edilir...",
+ "pleaseWait": "Avtorizasiyanı tamamlayana qədər gözləyin.",
+ "authSuccess": "Avtorizasiya uğurla tamamlandı!",
+ "copyUrl": "Bu URL-i kopyalayın",
+ "accessDenied": "Giriş rədd edildi",
+ "methodCliTitle": "Üsul 1: CLI vasitəsilə sıfırlama",
+ "methodCliDescription": "OmniRoute-un işlədiyi serverdə aşağıdakı əmri icra edin:",
+ "methodCliHint": "Bu, sizdən yeni parol təyin etməyinizi istəyəcək. Əvvəlcə server dayandırılmalıdır.",
+ "methodManualTitle": "Üsul 2: Əl ilə sıfırlama",
+ "methodManualDescription": "Parolu verilənlər bazasından silin və işə salınarkən yenisini təyin edin:",
+ "setPasswordInYour": "Yeni parolu",
+ "fileLabelSuffix": "faylınızda təyin edin:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "Silin",
+ "orRemovePasswordHashField": "və ya passwordHash sahəsini silin",
+ "restartServerWithNewPassword": "Serveri yenidən başladın — yeni paroldan istifadə ediləcək",
+ "backToLogin": "Giriş səhifəsinə qayıdın",
+ "forgotPassword": "Parolu unutmusunuz?",
"continueWithOidc": "OIDC ilə davam et",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
- "Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "defaultPasswordHint": "Standart parol: CHANGEME (INITIAL_PASSWORD təyin edilməyibsə)",
+ "Authorization": "Avtorizasiya",
+ "Content-Disposition": "Məzmunun yerləşdirilməsi",
+ "waitingForAuthorization": "Avtorizasiya gözlənilir...",
+ "waitingForGoogleAuthorization": "Google avtorizasiyası gözlənilir...",
+ "waitingForOpenAIAuthorization": "OpenAI avtorizasiyası gözlənilir...",
+ "waitingForAntigravityAuthorization": "Antigravity avtorizasiyası gözlənilir...",
+ "waitingForQoderAuthorization": "Qoder avtorizasiyası gözlənilir...",
+ "exchangingCodeForTokens": "Kod tokenlərlə dəyişdirilir...",
+ "nodeIncompatibleTitle": "Uyğun olmayan Node.js versiyası",
+ "nodeIncompatibleDesc": "İstifadə etdiyiniz Node.js {version} versiyası OmniRoute-un dəstəklədiyi təhlükəsiz icra mühiti siyasətinə uyğun deyil. Təhlükəsizlik yeniləmələri tətbiq edilmiş Node.js 20.x və ya 22.x LTS buraxılışından istifadə edin.",
+ "nodeIncompatibleFixLabel": "Həll: təhlükəsizlik yeniləmələri tətbiq edilmiş Node.js 22 LTS buraxılışını quraşdırın",
+ "nodeIncompatibleHint": "OmniRoute üçün Node.js 22.22.2+ (22.x LTS) və ya 24.0.0+ (24.x LTS) tələb olunur. Node 24 LTS tövsiyə edilir.",
"resetViaAppDataTitle": "Tətbiq Məlumatı İlə Sıfırlayın",
"resetViaAppDataDescription": "Şifrənizi sıfırlamaq üçün tətbiq məlumatları qovluğundan konfiqurasiya faylını silin:",
"quitDesktopApp": "OmniRoute masaüstü tətbiqini tamamilə bağlayın",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "Ana səhifəyə keçin",
+ "toggleMenu": "Menyunu açın/bağlayın",
+ "featuresLink": "İmkanlar",
+ "docsLink": "Sənədlər",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
+ "versionLive": "v1.0 artıq istifadəyə verilib",
+ "oneEndpoint": "Bir giriş nöqtəsi ilə",
+ "allProviders": "Bütün AI provayderləri",
+ "heroDescription": "Veb idarəetmə panelinə malik AI giriş nöqtəsi proksisi — CLIProxyAPI-nin JavaScript portu. Claude Code, OpenAI Codex, Cline, RooCode və digər CLI alətləri ilə problemsiz işləyir.",
+ "getStarted": "Başlayın",
+ "viewOnGithub": "GitHub-da baxın",
+ "powerfulFeatures": "Güclü imkanlar",
+ "featuresSubtitle": "AI infrastrukturunuzu bir yerdən idarə etmək üçün lazım olan hər şey — miqyaslanma nəzərə alınaraq hazırlanıb.",
+ "featureUnifiedEndpointTitle": "Vahid giriş nöqtəsi",
+ "featureUnifiedEndpointDesc": "Bütün provayderlərə vahid standart API URL-i vasitəsilə daxil olun.",
+ "featureEasySetupTitle": "Asan quraşdırma",
+ "featureEasySetupDesc": "npx əmri ilə bir neçə dəqiqə ərzində işə başlayın.",
+ "featureModelFallbackTitle": "Ehtiyat modelə keçid",
+ "featureModelFallbackDesc": "Nasazlıq və ya yüksək gecikmə zamanı avtomatik olaraq başqa provayderə keçin.",
+ "featureUsageTrackingTitle": "İstifadənin izlənməsi",
+ "featureUsageTrackingDesc": "Bütün modellər üzrə ətraflı analitika və xərc monitorinqi.",
+ "featureOAuthApiKeysTitle": "OAuth və API açarları",
+ "featureOAuthApiKeysDesc": "Giriş məlumatlarını vahid seyfdə təhlükəsiz şəkildə idarə edin.",
+ "featureCloudSyncTitle": "Bulud sinxronizasiyası",
+ "featureCloudSyncDesc": "Konfiqurasiyalarınızı cihazlar arasında dərhal sinxronlaşdırın.",
+ "featureCliSupportTitle": "CLI dəstəyi",
+ "featureCliSupportDesc": "Claude Code, Codex, Cline, Cursor və digər alətlərlə işləyir.",
+ "featureDashboardTitle": "İdarəetmə paneli",
+ "featureDashboardDesc": "Real vaxt trafik təhlili üçün vizual idarəetmə paneli.",
+ "howItWorks": "OmniRoute necə işləyir",
+ "howItWorksDescription": "Məlumatlar tətbiqinizdən ağıllı marşrutlaşdırma qatımız vasitəsilə müvafiq tapşırıq üçün ən yaxşı provayderə fasiləsiz ötürülür.",
+ "howItWorksStep1Title": "1. CLI və SDK-lar",
+ "howItWorksStep1Description": "Sorğularınız sevimli alətlərinizdən və ya vahid SDK-mızdan başlayır. Sadəcə əsas URL-i dəyişdirin.",
"howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
+ "howItWorksStep2Description": "Mühərrikimiz sorğunu təhlil edir, provayderin vəziyyətini yoxlayır və ən aşağı gecikmə və ya xərc üçün marşrutlaşdırır.",
+ "howItWorksStep3Title": "3. Süni intellekt provayderləri",
+ "howItWorksStep3Description": "Sorğu OpenAI, Anthropic, Gemini və ya digərləri tərəfindən dərhal yerinə yetirilir.",
+ "getStartedIn30Seconds": "30 saniyəyə başlayın",
+ "getStartedDescription": "OmniRoute-u quraşdırın, provayderlərinizi veb idarəetmə paneli vasitəsilə konfiqurasiya edin və süni intellekt sorğularını marşrutlaşdırmağa başlayın.",
+ "installOmniRoute": "OmniRoute-u quraşdırın",
+ "installStepDescription": "Serveri dərhal işə salmaq üçün npx əmrini icra edin",
+ "openDashboard": "İdarəetmə panelini açın",
+ "openDashboardStepDescription": "Provayderləri və API açarlarını veb interfeysi vasitəsilə konfiqurasiya edin",
+ "routeRequests": "Sorğuları marşrutlaşdırın",
+ "routeRequestsStepDescription": "CLI alətlərinizi {endpoint} ünvanına yönləndirin",
"terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "copy": "Kopyala",
+ "copied": "✓ Kopyalandı",
+ "startingOmniRoute": "OmniRoute işə salınır...",
+ "serverRunningOnLabel": "Server bu ünvanda işləyir:",
+ "dashboardLabel": "İdarəetmə paneli",
+ "readyToRoute": "Marşrutlaşdırmaya hazırdır! ✓",
+ "configureProvidersNote": "📝 Provayderləri idarəetmə panelində konfiqurasiya edin və ya mühit dəyişənlərindən istifadə edin",
+ "dataLocation": "Məlumatların yerləşdiyi yer:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "Məhsul",
+ "dashboardLink": "İdarəetmə paneli",
+ "changelog": "Dəyişiklik jurnalı",
+ "resources": "Resurslar",
+ "documentation": "Sənədlər",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "Hüquqi məlumat",
+ "mitLicense": "MIT Lisenziyası",
+ "footerTagline": "Süni intellekt generasiyası üçün vahid son nöqtə. Süni intellekt provayderlərinizi asanlıqla qoşun, marşrutlaşdırın və idarə edin.",
+ "copyright": "© {year} OmniRoute. Bütün hüquqlar qorunur.",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,17 +10011,17 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "İnteraktiv diaqram masaüstü cihazlarda görünür",
+ "ctaTitle": "Süni intellekt infrastrukturunuzu sadələşdirməyə hazırsınız?",
+ "ctaDescription": "OmniRoute ilə süni intellekt inteqrasiyalarını optimallaşdıran tərtibatçılara qoşulun. Açıq mənbəlidir və başlamaq pulsuzdur.",
+ "startFree": "Pulsuz başlayın",
+ "readDocumentation": "Sənədləri oxuyun",
"company": "Şirkət",
"pricing": "Qiymətləndirmə",
"apiReference": "API İstinadı",
"helpCenter": "Yardım Mərkəzi",
"about": "Haqqında",
- "blog": "Blog",
+ "blog": "Bloq",
"contact": "Əlaqə",
"terms": "Şərtlər",
"privacy": "Məxfilik",
@@ -10019,213 +10030,213 @@
"communityDiscussions": "İcma Müzakirələri"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
- "deploymentGuides": "Deployment Guides",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
- "docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor, and 20+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "title": "Sənədlər",
+ "quickStart": "Sürətli başlanğıc",
+ "deploymentGuides": "Yerləşdirmə təlimatları",
+ "features": "Xüsusiyyətlər",
+ "supportedProviders": "Dəstəklənən provayderlər",
+ "supportedProvidersToc": "Provayderlər",
+ "commonUseCases": "Ümumi istifadə halları",
+ "clientCompatibility": "Klient uyğunluğu",
+ "protocolsToc": "Protokollar",
+ "apiReference": "API arayışı",
+ "managementApiReference": "İdarəetmə API-si üzrə arayış",
+ "managementApiDescription": "Proksi reyestri, əhatə dairəsi təyinatları və köhnə proksilərin miqrasiyası üçün avtomatlaşdırma son nöqtələri.",
+ "method": "Metod",
+ "path": "Yol",
+ "notes": "Qeydlər",
+ "modelPrefixes": "Model prefiksləri",
+ "prefix": "Prefiks",
+ "troubleshooting": "Problemlərin aradan qaldırılması",
+ "supportsChat": "Həm söhbət, həm də cavab son nöqtələrini dəstəkləyir.",
+ "oauthAutoRefresh": "Tokenin avtomatik yenilənməsi ilə OAuth bağlantısı.",
+ "fullStreaming": "Bütün modellər üçün tam axın dəstəyi.",
+ "docsLabel": "Sənədlər",
+ "docsHeroDescription": "Çoxsaylı provayderlərin LLM-ləri üçün AI şlüzü. OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor və daha 20-dən çox provayder üçün vahid son nöqtə.",
+ "openDashboard": "İdarəetmə panelini açın",
+ "endpointPage": "Son nöqtə səhifəsi",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
- "deploySetupTitle": "Setup Guide",
- "deploySetupText": "Step-by-step installation, environment configuration, and first-run walkthrough for OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
- "deployElectronText": "Run OmniRoute as a native desktop application on Windows, macOS, and Linux.",
+ "reportIssue": "Problem bildirin",
+ "onThisPage": "Bu səhifədə",
+ "documentationVersion": "Sənədlər — v{version}",
+ "quickStartStep1Title": "1. Quraşdırın və işə salın",
+ "quickStartStep1Prefix": "İşə salın",
+ "quickStartStep1Middle": "və ya GitHub-dan klonlayıb işə salın",
+ "quickStartStep2Title": "2. API açarı yaradın",
+ "quickStartStep2Text": "Endpoint -> Registered Keys bölməsinə keçin. Hər mühit üçün bir açar yaradın.",
+ "quickStartStep3Title": "3. Provayderləri qoşun",
+ "quickStartStep3Text": "OAuth girişi, API açarı və ya pulsuz səviyyəyə avtomatik qoşulma vasitəsilə provayder hesabları əlavə edin.",
+ "quickStartStep4Title": "4. Klientin baza URL-sini təyin edin",
+ "quickStartStep4Prefix": "IDE-nizi və ya API klientinizi bu ünvana yönəldin:",
+ "quickStartStep4Suffix": "Provayder prefiksindən istifadə edin, məsələn",
+ "deploySetupTitle": "Quraşdırma təlimatı",
+ "deploySetupText": "OmniRoute üçün addım-addım quraşdırma, mühit konfiqurasiyası və ilk işəsalma üzrə təlimat.",
+ "deployElectronTitle": "Electron masaüstü tətbiqi",
+ "deployElectronText": "OmniRoute-u Windows, macOS və Linux-da yerli masaüstü tətbiqi kimi işlədin.",
"deployDockerTitle": "Docker",
- "deployDockerText": "Containerized deployment with Docker Compose; ready for production stacks and Kubernetes.",
- "deployVmTitle": "Virtual Machine",
- "deployVmText": "Self-host on any Linux VM. Includes systemd unit, log rotation, and backup tooling.",
+ "deployDockerText": "Docker Compose ilə konteynerləşdirilmiş yerləşdirmə; istehsal stekləri və Kubernetes üçün hazırdır.",
+ "deployVmTitle": "Virtual maşın",
+ "deployVmText": "İstənilən Linux VM-də özünüz hostinq edin. systemd vahidi, jurnal rotasiyası və ehtiyat nüsxələmə alətləri daxildir.",
"deployFlyTitle": "Fly.io",
- "deployFlyText": "Deploy to Fly.io edge runtime with one fly.toml and a single deploy command.",
+ "deployFlyText": "Bir fly.toml faylı və tək yerləşdirmə əmri ilə Fly.io kənar icra mühitinə yerləşdirin.",
"deployPwaTitle": "PWA",
- "deployPwaText": "Install OmniRoute as a Progressive Web App on Android, iOS, and desktop browsers.",
+ "deployPwaText": "OmniRoute-u Android, iOS və masaüstü brauzerlərdə Proqressiv Veb Tətbiqi kimi quraşdırın.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "OmniRoute-u Termux vasitəsilə Android-də başsız rejimdə işlədin. İdarəetmə panelinə mobil brauzerinizdən daxil olun.",
+ "featureRoutingTitle": "Çoxprovayderli marşrutlaşdırma",
+ "featureRoutingText": "Sorğuları OpenAI ilə uyğun vahid son nöqtə vasitəsilə 30-dan çox AI provayderinə yönləndirin. Söhbət, cavab, audio və şəkil API-lərini dəstəkləyir.",
+ "featureCombosTitle": "Kombinasiyalar və balanslaşdırma",
+ "featureCombosText": "Ehtiyat keçid zəncirləri və balanslaşdırma strategiyaları ilə model kombinasiyaları yaradın: növbəli, prioritet, təsadüfi, ən az istifadə olunan və xərc baxımından optimallaşdırılmış.",
+ "featureUsageTitle": "İstifadə və xərclərin izlənməsi",
+ "featureUsageText": "Real vaxt rejimində tokenlərin sayılması, hər provayder/model üzrə xərclərin hesablanması və API açarı və hesab üzrə ətraflı istifadə bölgüsü.",
+ "featureAnalyticsTitle": "Analitika paneli",
+ "featureAnalyticsText": "Zaman üzrə sorğular, tokenlər, xətalar, gecikmə, xərclər və modellərin populyarlığı üçün qrafiklərlə vizual analitika.",
+ "featureHealthTitle": "Sağlamlıq monitorinqi",
+ "featureHealthText": "Canlı sağlamlıq yoxlamaları, provayder statusu, dövrə kəsicisinin vəziyyətləri və eksponensial geri çəkilmə ilə sürət məhdudiyyətinin avtomatik aşkarlanması.",
+ "featureCliTitle": "CLI alətləri",
+ "featureCliText": "IDE konfiqurasiyalarını idarə edin, ehtiyat nüsxələri ixrac/idxal edin, codex profillərini aşkar edin və parametrləri idarəetmə panelindən konfiqurasiya edin.",
+ "featureSecurityTitle": "Təhlükəsizlik və siyasətlər",
+ "featureSecurityText": "API açarı ilə autentifikasiya, IP filtrasiyası, prompt inyeksiyasından qorunma, domen siyasətləri, sessiyaların idarə edilməsi və audit jurnallarının aparılması.",
+ "featureCloudSyncTitle": "Buludla sinxronizasiya",
+ "featureCloudSyncText": "Şifrələnmiş giriş məlumatları və avtomatik ehtiyat keçidlə uzaqdan giriş üçün konfiqurasiyanızı Cloudflare Workers ilə sinxronlaşdırın.",
+ "providersAcrossConnectionTypes": "Üç bağlantı növü üzrə {count} provayder.",
+ "manageProviders": "Provayderləri idarə edin",
+ "providersCount": "{count} provayder",
+ "providerTypeFree": "Pulsuz səviyyə",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "API açarı",
+ "useCaseSingleEndpointTitle": "Çoxsaylı provayderlər üçün vahid son nöqtə",
+ "useCaseSingleEndpointText": "Klientləri bir əsas URL-ə yönəldin və model prefiksinə görə marşrutlaşdırın (məsələn: gh/, cc/, kr/, openai/).",
+ "useCaseFallbackTitle": "Kombinasiyalarla ehtiyat keçid və model dəyişdirmə",
+ "useCaseFallbackText": "Dashboard-da model kombinasiyaları yaradın və provayderlər daxildə dəyişdirilərkən klient konfiqurasiyasını sabit saxlayın.",
+ "useCaseUsageVisibilityTitle": "İstifadə, xərc və sazlama görünürlüğü",
+ "useCaseUsageVisibilityText": "İstifadə və Analitika tablarında tokenləri və xərcləri provayder, hesab və API açarı üzrə izləyin.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "Əsas URL",
+ "chatEndpointLabel": "Çat son nöqtəsi",
+ "modelRecommendationLabel": "Model tövsiyəsi: açıq prefiks",
+ "clientCodexTitle": "Codex / GitHub Copilot Modelləri",
+ "clientCodexBullet1": "Model ID-lərini bununla istifadə edin:",
+ "clientCodexBullet2": "Codex ailəsinə aid modellər avtomatik olaraq buraya yönləndirilir:",
+ "clientCodexBullet3": "Codex olmayan modellər burada davam edir:",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "İstifadə edin:",
+ "clientCursorBullet1Suffix": "Cursor modelləri üçün prefiks.",
+ "clientCursorBullet2": "OAuth bağlantısı — Provayderlər səhifəsindən daxil olun.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "İstifadə edin:",
+ "clientClaudeBullet1Middle": "(Claude) və ya",
+ "clientClaudeBullet1Suffix": "(Antigravity) prefiksi.",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "OmniRoute-u OpenAI ilə uyğun əsas URL kimi istifadə edin və deterministik yönləndirmə üçün açıq provayder prefikslərini saxlayın.",
+ "clientWindsurfBullet2": "Ümumi trafik üçün modelləri `/v1/chat/completions` ünvanına yönəldin və Codex üslublu axınlar üçün `/v1/responses` ünvanını saxlayın.",
+ "clientWindsurfBullet3": "Hazır Windsurf konfiqurasiya təlimatı üçün İdarəetmə paneli -> CLI Alətləri bölməsindən istifadə edin.",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "Cline açıq provayder/model prefiksləri ilə daha yaxşı işləyir, beləliklə, yönləndiricinin arxa sistemi təxmin etməsinə ehtiyac qalmır.",
+ "clientClineBullet2": "Ümumi modellər üçün `/v1/chat/completions` istifadə edin və eyni OmniRoute əsas URL-sini müxtəlif hesablar arasında təkrar istifadə edin.",
+ "clientClineBullet3": "Cline icra mühiti problemlərini sazlamadan əvvəl OAuth/API açarını yoxlamaq üçün Provayderlər idarəetmə panelindən istifadə edin.",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "Arxa planda hesabları və ya provayder kombinasiyalarını dəyişərkən OmniRoute-u sabit əsas URL kimi istifadə edin.",
+ "clientKimiBullet2": "Kodlaşdırma axınlarında prefiksli modellərə üstünlük verin ki, ehtiyat yönləndirmə və audit izi açıq şəkildə qalsın.",
+ "clientKimiBullet3": "Alətlərdən istifadə edən müştərilər üçün yerli Responses üslublu yönləndirmə istədikdə `/v1/responses` istifadə edin.",
+ "protocolsTitle": "Protokollar: MCP və A2A",
+ "protocolsDescription": "OmniRoute, OpenAI ilə uyğun API-lərə əlavə olaraq iki əməliyyat protokolunu təqdim edir: alətlərin icrası üçün MCP və agentlərarası iş axınları üçün A2A.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Müştərilərin audit görünürlüğü ilə OmniRoute alətlərini aşkarlayıb çağırmasına imkan vermək üçün stdio üzərindən MCP istifadə edin.",
+ "protocolMcpStep1": "MCP nəqlini `omniroute --mcp` ilə başladın.",
+ "protocolMcpStep2": "MCP müştərinizi stdio nəqlinə yönəldin.",
+ "protocolMcpStep3": "Bağlantını yoxlamaq üçün `omniroute_get_health` və `omniroute_list_combos` çağırın.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
- "mcpToolsCompressionTitle": "Compression Engines",
- "mcpToolsCompressionDesc": "Configure RTK/Brotli compression, swap engines, and inspect compression analytics by combo.",
- "mcpToolsOneProxyTitle": "1Proxy / Tunnels",
- "mcpToolsOneProxyDesc": "Manage outbound proxies, rotate residential IPs, and inspect proxy health.",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "protocolA2aDesc": "Tapşırıqları sinxron şəkildə və ya SSE axını vasitəsilə göndərmək üçün A2A JSON-RPC istifadə edin.",
+ "protocolA2aStep1": "Agentin aşkarlanması üçün `/.well-known/agent.json` faylını oxuyun.",
+ "protocolA2aStep2": "`POST /a2a` ünvanına `message/send` və ya `message/stream` sorğuları göndərin.",
+ "protocolA2aStep3": "Tapşırığın həyat dövrünü `tasks/get` və `tasks/cancel` ilə idarə edin.",
+ "protocolTroubleshootingTitle": "Protokol problemlərinin aradan qaldırılması",
+ "protocolTroubleshooting1": "MCP statusu oflayndırsa, stdio prosesinin işlədiyini və heartbeat faylının yeniləndiyini yoxlayın.",
+ "protocolTroubleshooting2": "A2A tapşırıqları `working` vəziyyətində qalarsa, yekun vəziyyəti müəyyən etmək üçün `/api/a2a/tasks/:id` ünvanını və axın hadisələrini yoxlayın.",
+ "protocolTroubleshooting3": "Əməliyyat idarəetməsi və audit görünürlüğü üçün `/dashboard/mcp` və `/dashboard/a2a` istifadə edin.",
+ "endpointChatNote": "OpenAI ilə uyğun söhbət son nöqtəsi (standart).",
+ "endpointResponsesNote": "Responses API son nöqtəsi (Codex, o-seriyası).",
+ "endpointModelsNote": "Bütün qoşulmuş provayderlər üçün model kataloqu.",
+ "endpointAudioNote": "Audio transkripsiyası (Deepgram, AssemblyAI).",
+ "endpointSpeechNote": "Mətndən nitqə generasiya (ElevenLabs, OpenAI TTS).",
+ "endpointEmbeddingsNote": "Mətn embeddinqlərinin generasiyası (OpenAI, Cohere, Voyage).",
+ "endpointImagesNote": "Şəkil generasiyası (NanoBanana).",
+ "endpointRewriteChatNote": "/v1 dəstəyi olmayan müştərilər üçün yenidən yazma köməkçisi.",
+ "endpointRewriteResponsesNote": "/v1 dəstəyi olmayan Responses üçün yenidən yazma köməkçisi.",
+ "endpointRewriteModelsNote": "/v1 dəstəyi olmayan model aşkarlanması üçün yenidən yazma köməkçisi.",
+ "mgmtProxiesListNote": "Saxlanılmış proksi reyestri elementlərini siyahılayın (səhifələməni dəstəkləyir).",
+ "mgmtProxiesCreateNote": "Reyestrdə təkrar istifadə edilə bilən proksi elementi yaradın.",
+ "mgmtProxiesHealthNote": "Proksi jurnallarından hər saxlanılmış proksi üzrə 24 saatlıq/sürüşən sağlamlıq metrikalarını əldə edin.",
+ "mgmtProxiesBulkAssignNote": "Bir sorğuda çoxsaylı əhatə dairəsi ID-lərinə bir proksi təyin edin və ya onu silin.",
+ "mgmtAssignmentsListNote": "Proksi təyinatlarını scope, scope_id və ya proxy_id üzrə siyahılayın.",
+ "mgmtAssignmentsUpdateNote": "Qlobal/provayder/hesab/kombinasiya əhatə dairəsi üçün proksi təyin edin və ya silin.",
+ "mgmtLegacyMigrationNote": "Köhnə proxyConfig xəritələrini reyestr təyinatlarına idxal edin.",
+ "modelPrefixesDescriptionStart": "Konkret provayderə yönləndirmək üçün model adından əvvəl provayder prefiksindən istifadə edin. Nümunə:",
+ "modelPrefixesDescriptionEnd": "GitHub Copilot-a yönləndirir.",
+ "provider": "Provayder",
+ "type": "Növ",
+ "troubleshootingModelRouting": "Müştəridə model yönləndirilməsi uğursuz olarsa, provayder/modeli açıq şəkildə göstərin (məsələn: gh/gpt-5.1-codex).",
+ "troubleshootingAmbiguousModels": "Qeyri-müəyyən model xətaları alsanız, yalnız model ID-si əvəzinə provayder prefiksini seçin.",
+ "troubleshootingCodexFamily": "GitHub Codex ailəsi modelləri üçün modeli gh/codex-model kimi saxlayın; yönləndirici /responses son nöqtəsini avtomatik seçir.",
+ "troubleshootingTestConnection": "IDE-lərdən və ya xarici müştərilərdən sınaqdan keçirməzdən əvvəl Dashboard > Providers > Test Connection istifadə edin.",
+ "troubleshootingCircuitBreaker": "Provayderdə dövrə açarının açıq olduğu göstərilirsə, soyuma müddətinin bitməsini gözləyin və ya təfərrüatlar üçün Health səhifəsini yoxlayın.",
+ "troubleshootingOAuth": "OAuth provayderləri üçün tokenlərin müddəti bitdikdə yenidən autentifikasiya edin. Provayder kartındakı status indikatorunu yoxlayın.",
+ "endpointCompletionsNote": "Mətn generasiyası üçün köhnə tamamlama son nöqtəsi.",
+ "endpointModerationsNote": "Məzmun moderasiyası və təhlükəsizlik təsnifatı.",
+ "endpointRerankNote": "Axtarışla zənginləşdirilmiş generasiya üçün sənədlərin yenidən sıralanması (Cohere, Jina).",
+ "endpointSearchNote": "5 provayderlə veb axtarışı (Serper, Brave, Exa, Tavily, Perplexity).",
+ "endpointSearchAnalyticsNote": "Axtarış sorğuları üçün analitika və metrikalar.",
+ "endpointVideoNote": "Video generasiyası (ComfyUI, SD WebUI iş axınları).",
+ "endpointMusicNote": "ComfyUI iş axınları vasitəsilə musiqi generasiyası.",
+ "endpointMessagesNote": "Anthropic-ə məxsus mesajlar son nöqtəsi.",
+ "endpointCountTokensNote": "Verilmiş mesaj məlumat yükü üçün tokenləri hesablayın.",
+ "endpointFilesNote": "Multimodal girişlər üçün fayl yükləmə.",
+ "endpointBatchesNote": "Kütləvi API sorğuları üçün paket emalı.",
+ "endpointWsNote": "Real vaxt rejimində axın üçün WebSocket son nöqtəsi.",
+ "mgmtProvidersListNote": "Bütün qeydiyyatdan keçmiş provayder bağlantılarını siyahıya alın.",
+ "mgmtProvidersCreateNote": "Yeni provayder bağlantısı yaradın.",
+ "mgmtProvidersUpdateNote": "Mövcud provayder bağlantısını yeniləyin.",
+ "mgmtProvidersDeleteNote": "Provayder bağlantısını silin.",
+ "mgmtProvidersTestNote": "Provayder üçün bağlantını və autentifikasiyanı yoxlayın.",
+ "mgmtProvidersModelsNote": "Konkret provayder üçün mövcud modelləri siyahıya alın.",
+ "mgmtSettingsGetNote": "Cari tətbiq parametrlərini əldə edin.",
+ "mgmtSettingsUpdateNote": "Tətbiq parametrlərini yeniləyin.",
+ "mgmtPayloadRulesGetNote": "Faydalı yükün transformasiya qaydalarını əldə edin.",
+ "mgmtPayloadRulesUpdateNote": "Faydalı yükün transformasiya qaydalarını yeniləyin.",
+ "mcpToolsTitle": "MCP Alətləri",
+ "mcpToolsDescription": "OmniRoute agentlərin orkestrasiyası üçün Model Context Protocol vasitəsilə {count} alət təqdim edir.",
+ "mcpToolsCount": "{count} alət",
+ "mcpToolsToc": "MCP Alətləri",
+ "mcpToolsRoutingTitle": "Marşrutlaşdırma və Aşkarlama",
+ "mcpToolsRoutingDesc": "Sağlamlıq yoxlamaları, kombinasiya idarəetməsi, kvota monitorinqi, xərc hesabatları və model kataloquna giriş.",
+ "mcpToolsOperationsTitle": "Əməliyyatlar və Strategiya",
+ "mcpToolsOperationsDesc": "Marşrut simulyasiyası, büdcə məhdudiyyətləri, strategiya dəyişdirmə, dayanıqlılıq profilləri və provayder göstəriciləri.",
+ "mcpToolsCacheTitle": "Keş İdarəetməsi",
+ "mcpToolsCacheDesc": "Keş statistikasına baxın və semantik və ya imza keşlərini təmizləyin.",
+ "mcpToolsCompressionTitle": "Sıxışdırma Mühərrikləri",
+ "mcpToolsCompressionDesc": "RTK/Brotli sıxışdırmasını konfiqurasiya edin, mühərrikləri dəyişdirin və kombinasiyalar üzrə sıxışdırma analitikasını nəzərdən keçirin.",
+ "mcpToolsOneProxyTitle": "1Proxy / Tunellər",
+ "mcpToolsOneProxyDesc": "Çıxış proksilərini idarə edin, rezident IP-ləri rotasiya edin və proksi vəziyyətini yoxlayın.",
+ "mcpToolsMemoryTitle": "Yaddaş",
+ "mcpToolsMemoryDesc": "Davamlı söhbət yaddaşı qeydlərini axtarın, əlavə edin və təmizləyin.",
+ "mcpToolsSkillsTitle": "Bacarıqlar",
+ "mcpToolsSkillsDesc": "Fərdi bacarıq icralarını siyahıya alın, aktivləşdirin, icra edin və izləyin.",
+ "featureAutoComboTitle": "Avtomatik Kombinasiya",
+ "featureAutoComboText": "Qoşulmuş provayderləriniz, istifadə nümunələriniz və model imkanları əsasında optimallaşdırılmış kombinasiyaları avtomatik yaradın.",
+ "featureSearchTitle": "Veb Axtarışı",
+ "featureSearchText": "Analitika və xərc izləməsi daxil olmaqla 5 provayderlə (Serper, Brave, Exa, Tavily, Perplexity) inteqrasiya olunmuş veb axtarışı.",
+ "featureMemoryTitle": "Yaddaş Sistemi",
+ "featureMemoryText": "Sessiyalar arasında çıxarış, daxil etmə, əldə etmə və ümumiləşdirmə imkanlarına malik davamlı söhbət yaddaşı.",
+ "featureSkillsTitle": "Bacarıqlar Çərçivəsi",
+ "featureSkillsText": "Daxili və fərdi bacarıqlar, qum qutusu mühitində icra, sorğuların ələ keçirilməsi və kontekst daxil edilməsi imkanlarına malik genişləndirilə bilən bacarıq sistemi.",
+ "featureAcpTitle": "Agent Kommunikasiyası",
+ "featureAcpText": "Agentlərarası iş axınlarını və alət orkestrasiyasını idarə etmək üçün Agent Communication Protocol (ACP) reyestri.",
+ "protocolAcpTitle": "ACP (Agent Kommunikasiyası)",
+ "protocolAcpDesc": "Agentlərarası kommunikasiya və alət paylaşımı üçün ACP reyestri vasitəsilə agentləri qeydiyyatdan keçirin və idarə edin.",
+ "protocolAcpStep1": "Qeydiyyatdan keçmiş ACP agentlərinə baxmaq üçün İdarəetmə paneli → Agentlər bölməsinə keçin.",
+ "protocolAcpStep2": "İmkanları və son nöqtə konfiqurasiyası ilə yeni agentləri qeydiyyatdan keçirin.",
+ "protocolAcpStep3": "Agentlərin kommunikasiya kanallarını konfiqurasiya etmək üçün CLI Alətlərindən istifadə edin.",
"metadataTitleTemplate": "%s — OmniRoute Sənədləri",
"metadataDefaultTitle": "OmniRoute Sənədləri",
"metadataDescription": "OmniRoute AI qapısı üçün ətraflı sənədləşmə — qurma, API, sıxma, yerləşdirmə və daha çox.",
@@ -10253,7 +10264,7 @@
"apiExplorerDescription": "OmniRoute son nöqtələrini canlı sınayın. Bir son nöqtə seçin, tələbinizi konfiqurasiya edin və cavabı real vaxtda görün.",
"apiExplorerSseStarted": "SSE axını başladı — real vaxt çıxışı üçün terminal/devtools-u yoxlayın.",
"apiExplorerError": "Xəta: {message}",
- "apiExplorerAuth": "auth",
+ "apiExplorerAuth": "autentifikasiya",
"apiExplorerResponseLabel": "Cavab",
"apiExplorerSelectEndpoint": "Araşdırmaq üçün bir son nöqtə seçin",
"apiExplorerChooseApi": "Yan menyudan bir API seçin, detalları görmək və onu canlı sınaqdan keçirmək üçün",
@@ -10272,128 +10283,128 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "Məxfilik Siyasəti",
+ "termsOfService": "Xidmət Şərtləri",
+ "providerConfigurations": "Provayder konfiqurasiyaları",
+ "apiKeys": "API açarları",
+ "usageLogs": "İstifadə jurnalları",
+ "applicationSettings": "Tətbiq parametrləri",
+ "viewExportAnalytics": "İstifadə analitikasına baxın və onu ixrac edin",
+ "clearHistory": "İstifadə tarixçəsini istənilən vaxt təmizləyin",
+ "configureRetention": "Jurnalların saxlanma siyasətlərini konfiqurasiya edin",
+ "backupRestore": "Verilənlər bazanızın ehtiyat nüsxəsini yaradın və bərpa edin",
+ "privacyMetadataTitle": "Məxfilik Siyasəti | OmniRoute",
+ "privacyMetadataDescription": "OmniRoute AI API proksi marşrutlayıcısı üçün məxfilik siyasəti.",
+ "termsMetadataTitle": "Xidmət Şərtləri | OmniRoute",
+ "termsMetadataDescription": "OmniRoute AI API proksi marşrutlayıcısı üçün xidmət şərtləri.",
+ "backToHome": "Ana səhifəyə qayıt",
+ "lastUpdated": "Son yenilənmə: {date}",
+ "policyLastUpdatedDate": "13 fevral 2026-cı il",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "Suallarınız var? Ziyarət edin:",
+ "githubRepository": "GitHub repozitoriyamız",
+ "privacySection1Title": "1. Lokal-prioritetli arxitektura",
+ "privacySection1Text": "OmniRoute lokal-prioritetli tətbiq kimi hazırlanıb. Bütün məlumatların emalı və saxlanması tamamilə sizin cihazınızda həyata keçirilir. Məlumatlarınızı toplayan mərkəzləşdirilmiş server yoxdur.",
+ "privacySection2Title": "2. Saxladığımız məlumatlar",
+ "privacyDataStoredIn": "Aşağıdakı məlumatlar lokal olaraq burada saxlanılır:",
+ "privacyDataProviderConfigurationsDesc": "bağlantı URL-ləri, provayder növləri və prioritet parametrləri",
+ "privacyDataApiKeysDesc": "şifrələnir və AI provayderlərində autentifikasiya üçün lokal olaraq saxlanılır",
+ "privacyDataUsageLogsDesc": "sorğu sayları, token istifadəsi, model adları, vaxt möhürləri və cavab müddətləri",
+ "privacyDataApplicationSettingsDesc": "mövzu tərcihləri, marşrutlaşdırma strategiyası və kombinasiya konfiqurasiyaları",
+ "privacySection3Title": "3. Telemetriya yoxdur",
+ "privacySection3Text": "OmniRoute telemetriya, analitika və ya qəza hesabatları toplamır. Bizə və ya hər hansı üçüncü tərəfə heç bir məlumat göndərilmir. İstifadə nümunələriniz, API çağırışlarınız və konfiqurasiyalarınız tamamilə məxfi qalır.",
+ "privacySection4Title": "4. Üçüncü tərəf AI provayderləri",
+ "privacySection4Text": "OmniRoute vasitəsilə API çağırışları etdiyiniz zaman sorğularınız konfiqurasiya etdiyiniz AI provayderlərinə (məsələn: OpenAI, Anthropic, Google) yönləndirilir. Bu provayderlərin məlumatlarınızı necə idarə etdiklərini tənzimləyən öz məxfilik siyasətləri var. Zəhmət olmasa, nəzərdən keçirin:",
+ "privacyOpenAiPolicy": "OpenAI Məxfilik Siyasəti",
+ "privacyAnthropicPolicy": "Anthropic Məxfilik Siyasəti",
+ "privacyGooglePolicy": "Google Məxfilik Siyasəti",
+ "privacySection5Title": "5. Bulud Sinxronizasiyası (İstəyə bağlı)",
+ "privacySection5Text": "İstəyə bağlı bulud sinxronizasiyası funksiyasını aktivləşdirsəniz, provayder konfiqurasiyaları və API açarları konfiqurasiya edilmiş bulud son nöqtəsinə ötürülə bilər. Bu funksiya standart olaraq deaktivdir və açıq şəkildə razılıq verilməsini tələb edir.",
+ "privacySection6Title": "6. Jurnallaşdırma",
+ "privacyLoggingIntro": "Sorğu jurnallarını idarəetmə panelinin parametrləri vasitəsilə konfiqurasiya edə bilərsiniz. Siz bunları edə bilərsiniz:",
+ "privacySection7Title": "7. Hüquqlarınız",
+ "privacySection7TextStart": "Bütün məlumatlar lokal olaraq saxlandığı üçün tam nəzarət sizdədir. Məlumatlarınızı istənilən vaxt",
+ "privacySection7TextEnd": "qovluğunu silməklə və ya idarəetmə panelində verilənlər bazasının ehtiyat nüsxələmə və bərpa funksiyalarından istifadə etməklə silə bilərsiniz.",
+ "termsSection1Title": "1. Ümumi baxış",
+ "termsSection1Text": "OmniRoute tamamilə cihazınızda işləyən, ilk növbədə lokal istifadəyə əsaslanan süni intellekt API proksi marşrutlaşdırıcısıdır. O, yük balanslaşdırması, nasazlıq zamanı ehtiyat mexanizmə keçid və istifadə izləməsi ilə sorğuları bir neçə süni intellekt provayderinə yönləndirir.",
+ "termsSection2Title": "2. İstifadəçinin öhdəlikləri",
+ "termsResponsibilityApiKeys": "Üçüncü tərəf süni intellekt provayderləri (OpenAI, Anthropic, Google və s.) üçün öz API açarlarınızı və giriş məlumatlarınızı idarə etməyə yalnız siz cavabdehsiniz.",
+ "termsResponsibilityCompliance": "OmniRoute vasitəsilə API-sinə daxil olduğunuz hər bir süni intellekt provayderinin xidmət şərtlərinə əməl etməlisiniz.",
+ "termsResponsibilitySecurity": "Parol təyin etmək və şəbəkə girişini məhdudlaşdırmaq da daxil olmaqla, lokal OmniRoute quraşdırmanızın təhlükəsizliyinə siz cavabdehsiniz.",
+ "termsSection3Title": "3. İş prinsipi",
+ "termsSection3Text": "OmniRoute vasitəçi proksi kimi fəaliyyət göstərir. OmniRoute-a göndərilən API çağırışları çevrilir və konfiqurasiya etdiyiniz süni intellekt provayderlərinə yönləndirilir. OmniRoute zəruri protokol çevirməsindən əlavə, sorğu və ya cavablarınızın məzmununu dəyişdirmir.",
+ "termsSection4Title": "4. Məlumatların emalı",
+ "termsDataStoredLocally": "Bütün məlumatlar cihazınızdakı SQLite verilənlər bazasında lokal olaraq saxlanılır.",
+ "termsNoTransmission": "Bulud sinxronlaşdırma funksiyalarını açıq şəkildə aktivləşdirmədiyiniz halda, OmniRoute heç bir məlumatı xarici serverlərə ötürmür.",
+ "termsDataLocationText": "İstifadə jurnalları, API açarları və konfiqurasiya burada saxlanılır:",
+ "termsSection5Title": "5. İmtina bildirişi",
+ "termsSection5Text": "OmniRoute heç bir zəmanət verilmədən \"olduğu kimi\" təqdim edilir. API istifadəsi nəticəsində yaranan xərclərə, xidmət fasilələrinə və ya məlumat itkisinə görə məsuliyyət daşımırıq. Konfiqurasiyanızın ehtiyat nüsxələrini həmişə saxlayın.",
+ "termsSection6Title": "6. Açıq mənbə",
+ "termsSection6Text": "OmniRoute açıq mənbəli proqram təminatıdır. Lisenziyasının şərtlərinə uyğun olaraq onu yoxlamaq, dəyişdirmək və yaymaqda sərbəstsiniz."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
- "cliToolsRedirectTitle": "Looking to configure your IDE?",
- "cliToolsRedirectDesc": "If you want to point Claude Code, Cursor, Codex, or any IDE at OmniRoute as a proxy, go to CLI Tools instead. This page is for the reverse — using local CLI binaries as execution targets that OmniRoute can spawn and route requests through.",
- "spawnArgsPlaceholder": "e.g., --quiet, --json, --no-auto-commits",
- "binaryNamePlaceholder": "e.g., my-agent or /usr/local/bin/llm-cli",
- "versionCommandPlaceholder": "e.g., my-agent --version",
- "architectureTitle": "How Agent Targets Work",
- "flowLocalBinary": "3 · CLI process with its own auth",
- "flowOmniRoute": "1 · Request arrives at OmniRoute",
- "agentNamePlaceholder": "e.g., My Custom Agent",
- "architectureDescription": "When a request arrives, OmniRoute can spawn a local CLI binary (e.g., claude, codex, goose) and pipe the request through it. The CLI processes the request using its own credentials and returns the result back through OmniRoute.",
- "flowExecute": "4 · Response returned to client",
- "flowSpawn": "2 · OmniRoute spawns local binary",
- "cliToolsRedirectCta": "Go to CLI Tools →",
- "comparisonTitle": "CLI Tools vs Agent Targets — What's the Difference?",
- "comparisonCliToolsLabel": "CLI Tools page",
- "comparisonCliToolsTitle": "Your IDE sends requests through OmniRoute",
- "comparisonCliToolsDesc": "Configure Claude Code, Codex, Cursor, and other IDEs to use OmniRoute as their API base URL. OmniRoute acts as a proxy, routing requests to your configured providers.",
- "comparisonAgentsLabel": "This page (Agent Targets)",
- "comparisonAgentsTitle": "OmniRoute sends requests into local CLI tools",
- "comparisonAgentsDesc": "OmniRoute can spawn local CLI binaries (claude, codex, goose) as execution backends. The CLI tool processes the request using its own authentication and returns the result.",
- "comparisonSummary": "In short: CLI Tools = you configure tools to point at OmniRoute. Agent Targets = OmniRoute uses tools as its endpoints.",
- "agentUseCaseHint": "Can be used as an execution target via ACP protocol",
- "flowDiagramClient": "Client App",
- "flowDiagramClientDesc": "SDK, API, or upstream service",
+ "title": "CLI agentləri",
+ "description": "Sisteminizdə quraşdırılmış CLI agentlərini aşkar edin. Avtomatik aşkarlama üçün fərdi agentlər əlavə edin.",
+ "refresh": "Yenilə",
+ "installed": "Quraşdırılıb",
+ "notFound": "Tapılmadı",
+ "builtIn": "Daxili",
+ "custom": "Fərdi",
+ "remove": "Sil",
+ "addCustomAgent": "Fərdi agent əlavə et",
+ "addCustomAgentDesc": "Aşkarlama üçün istənilən CLI alətini qeydiyyatdan keçirin. Yeniləmə zamanı o, avtomatik skan ediləcək.",
+ "agentName": "Agentin adı",
+ "binaryName": "Binar faylın adı",
+ "versionCommand": "Versiya əmri",
+ "spawnArgs": "İşəsalma arqumentləri",
+ "addAgent": "Agent əlavə et",
+ "scanning": "Sistem CLI agentləri üçün skan edilir...",
+ "opencodeIntegration": "OpenCode inteqrasiyası",
+ "opencodeDetected": "opencode {version} aşkarlandı",
+ "opencodeDesc": "OmniRoute əsas URL-iniz və bütün mövcud modellərlə istifadəyə hazır {configFile} yaradın — onu layihənizin kök qovluğuna yerləşdirin və {command} əmrini icra edin.",
+ "downloadConfig": "{file} faylını endir",
+ "downloaded": "Endirildi!",
+ "setupGuideTitle": "Quraşdırma təlimatı",
+ "openCliTools": "CLI Alətlərini aç",
+ "setupGuideDetectCliTitle": "Quraşdırılmış CLI-ləri aşkar et",
+ "setupGuideDetectCliDesc": "CLI quraşdırdıqdan və ya yenilədikdən sonra OmniRoute-un binar faylları və versiyaları yenidən skan etməsi üçün Yenilə düyməsinə klikləyin.",
+ "setupGuideCustomAgentTitle": "Fərdi binar faylı qeydiyyatdan keçir",
+ "setupGuideCustomAgentDesc": "CLI-niz daxili siyahıda olmadıqda Fərdi Agent Əlavə Et seçimindən istifadə edin. Binar faylın adını və versiya əmrini daxil edin.",
+ "setupGuideCommandMissingTitle": "'command not found' xətasını düzəlt",
+ "setupGuideCommandMissingDesc": "CLI əmrinin PATH-də mövcud olduğuna əmin olun, yeni terminal sessiyası açın və Yenilə əmrini yenidən işə salın.",
+ "cliToolsRedirectTitle": "IDE-nizi konfiqurasiya etmək istəyirsiniz?",
+ "cliToolsRedirectDesc": "Claude Code, Cursor, Codex və ya hər hansı IDE-ni proksi kimi OmniRoute-a yönəltmək istəyirsinizsə, bunun əvəzinə CLI Alətlərinə keçin. Bu səhifə əks məqsəd üçündür — yerli CLI binar fayllarından OmniRoute-un işə sala və sorğuları onların üzərindən yönləndirə biləcəyi icra hədəfləri kimi istifadə etmək.",
+ "spawnArgsPlaceholder": "məs., --quiet, --json, --no-auto-commits",
+ "binaryNamePlaceholder": "məs., my-agent və ya /usr/local/bin/llm-cli",
+ "versionCommandPlaceholder": "məs., my-agent --version",
+ "architectureTitle": "Agent Hədəfləri Necə İşləyir",
+ "flowLocalBinary": "3 · Öz autentifikasiyası olan CLI prosesi",
+ "flowOmniRoute": "1 · Sorğu OmniRoute-a daxil olur",
+ "agentNamePlaceholder": "məs., Mənim Fərdi Agentim",
+ "architectureDescription": "Sorğu daxil olduqda OmniRoute yerli CLI binar faylını (məs., claude, codex, goose) işə sala və sorğunu onun üzərindən ötürə bilər. CLI sorğunu öz giriş məlumatlarından istifadə edərək emal edir və nəticəni OmniRoute vasitəsilə geri qaytarır.",
+ "flowExecute": "4 · Cavab müştəriyə qaytarılır",
+ "flowSpawn": "2 · OmniRoute yerli binar faylı işə salır",
+ "cliToolsRedirectCta": "CLI Alətlərinə keç →",
+ "comparisonTitle": "CLI Alətləri və Agent Hədəfləri — Fərq Nədir?",
+ "comparisonCliToolsLabel": "CLI Alətləri səhifəsi",
+ "comparisonCliToolsTitle": "IDE-niz sorğuları OmniRoute vasitəsilə göndərir",
+ "comparisonCliToolsDesc": "Claude Code, Codex, Cursor və digər IDE-ləri API baza URL-i kimi OmniRoute-dan istifadə etmək üçün konfiqurasiya edin. OmniRoute proksi kimi fəaliyyət göstərərək sorğuları konfiqurasiya etdiyiniz provayderlərə yönləndirir.",
+ "comparisonAgentsLabel": "Bu səhifə (Agent Hədəfləri)",
+ "comparisonAgentsTitle": "OmniRoute sorğuları yerli CLI alətlərinə göndərir",
+ "comparisonAgentsDesc": "OmniRoute yerli CLI binar fayllarını (claude, codex, goose) icra mexanizmləri kimi işə sala bilər. CLI aləti sorğunu öz autentifikasiyasından istifadə edərək emal edir və nəticəni qaytarır.",
+ "comparisonSummary": "Qısaca: CLI Alətləri = alətləri OmniRoute-a yönələcək şəkildə konfiqurasiya edirsiniz. Agent Hədəfləri = OmniRoute alətlərdən son nöqtələri kimi istifadə edir.",
+ "agentUseCaseHint": "ACP protokolu vasitəsilə icra hədəfi kimi istifadə edilə bilər",
+ "flowDiagramClient": "Müştəri Tətbiqi",
+ "flowDiagramClientDesc": "SDK, API və ya yuxarı səviyyəli xidmət",
"flowDiagramOmniRoute": "OmniRoute",
- "flowDiagramOmniRouteDesc": "Receives request and selects target",
- "flowDiagramSpawn": "Spawn Process",
- "flowDiagramSpawnDesc": "Launches CLI binary via stdio",
- "flowDiagramCli": "CLI Agent",
- "flowDiagramCliDesc": "Processes with own auth/model",
- "fingerprintSettingsHint": "CLI Fingerprint matching (disguise requests as specific CLI tools) can be configured in",
- "settingsRoutingLink": "Settings/Routing",
- "openSettings": "Settings",
+ "flowDiagramOmniRouteDesc": "Sorğunu qəbul edir və hədəfi seçir",
+ "flowDiagramSpawn": "Prosesi İşə Sal",
+ "flowDiagramSpawnDesc": "CLI binar faylını stdio vasitəsilə işə salır",
+ "flowDiagramCli": "CLI Agenti",
+ "flowDiagramCliDesc": "Öz autentifikasiyası/modeli ilə emal edir",
+ "fingerprintSettingsHint": "CLI barmaq izi uyğunluğu (sorğuları xüsusi CLI alətləri kimi maskalamaq) burada konfiqurasiya edilə bilər:",
+ "settingsRoutingLink": "Parametrlər/Marşrutlaşdırma",
+ "openSettings": "Parametrlər",
"copyRawUrlTitle": "Xam URL-ni panoya kopyalayın",
"copied": "Kopyalandı!",
"copyUrl": "URL-i kopyalayın",
@@ -10412,22 +10423,22 @@
"howToUseStep3": "Agent SKILL.md faylını əldə edir və OmniRoute-un API və ya CLI-sını öyrənir — heç bir mexaniki sənədləşməyə ehtiyac yoxdur."
},
"cloudAgents": {
- "title": "Cloud Agents",
- "description": "Manage autonomous coding agents (Jules, Devin, Codex Cloud)",
- "loading": "Loading tasks...",
- "aboutTitle": "About Cloud Agents",
- "aboutDescription": "Cloud agents are remote AI coding assistants that can execute tasks autonomously. They work differently from local CLI agents - you interact with them through OmniRoute's API.",
- "howItWorksTitle": "How it works:",
- "howItWorksDesc": "Create a task → Agent analyzes and proposes a plan → You approve → Agent executes → Results returned",
- "newTaskTitle": "Create New Task",
- "newTaskDescription": "Start a new task with a cloud agent",
- "selectAgent": "Select Agent",
- "taskDescription": "Task Description",
- "taskDescriptionPlaceholder": "Describe what you want the agent to do...",
- "startTask": "Start Task",
- "tasks": "Tasks",
- "taskDetail": "Task Detail",
- "noTasks": "No tasks yet. Create one to get started.",
+ "title": "Bulud agentləri",
+ "description": "Avtonom kodlaşdırma agentlərini (Jules, Devin, Codex Cloud) idarə edin",
+ "loading": "Tapşırıqlar yüklənir...",
+ "aboutTitle": "Bulud agentləri haqqında",
+ "aboutDescription": "Bulud agentləri tapşırıqları avtonom şəkildə yerinə yetirə bilən uzaq AI kodlaşdırma köməkçiləridir. Onlar yerli CLI agentlərindən fərqli işləyir — onlarla OmniRoute API-si vasitəsilə qarşılıqlı əlaqə qurursunuz.",
+ "howItWorksTitle": "İş prinsipi:",
+ "howItWorksDesc": "Tapşırıq yaradın → Agent təhlil edib plan təklif edir → Siz təsdiqləyirsiniz → Agent icra edir → Nəticələr qaytarılır",
+ "newTaskTitle": "Yeni tapşırıq yaradın",
+ "newTaskDescription": "Bulud agenti ilə yeni tapşırığa başlayın",
+ "selectAgent": "Agent seçin",
+ "taskDescription": "Tapşırığın təsviri",
+ "taskDescriptionPlaceholder": "Agentin nə etməsini istədiyinizi təsvir edin...",
+ "startTask": "Tapşırığı başladın",
+ "tasks": "Tapşırıqlar",
+ "taskDetail": "Tapşırıq təfərrüatları",
+ "noTasks": "Hələ tapşırıq yoxdur. Başlamaq üçün birini yaradın.",
"noTasksTitle": "Hələ ki tapşırıq yoxdur",
"noTasksDesc": "Başlamaq üçün ilk tapşırığınızı yaradın.",
"tasksTab": "Tapşırıqlar",
@@ -10450,24 +10461,24 @@
"settingAutoPRDesc": "Tapşırıq tamamlandıqda, dəyişikliklərlə birlikdə avtomatik olaraq Pull Request yaradın.",
"settingRequireApproval": "Planın təsdiqlənməsini tələb et",
"settingRequireApprovalDesc": "Agent təklif olunan planı icra etməzdən əvvəl həmişə əl ilə təsdiqləməni gözləyin.",
- "untitledTask": "Untitled Task",
- "created": "Created",
- "conversation": "Conversation",
- "result": "Result",
- "error": "Error",
- "planReady": "Plan Ready for Approval",
- "approvePlan": "Approve Plan",
- "rejectPlan": "Reject & Cancel",
- "sendMessagePlaceholder": "Send a message to the agent...",
- "cancel": "Cancel",
- "delete": "Delete",
- "selectTaskPrompt": "Select a task to view details",
- "statusPending": "Pending",
- "statusRunning": "Running",
- "statusWaitingApproval": "Waiting Approval",
- "statusCompleted": "Completed",
- "statusFailed": "Failed",
- "statusCancelled": "Cancelled",
+ "untitledTask": "Adsız tapşırıq",
+ "created": "Yaradıldı",
+ "conversation": "Söhbət",
+ "result": "Nəticə",
+ "error": "Xəta",
+ "planReady": "Plan təsdiq üçün hazırdır",
+ "approvePlan": "Planı təsdiqləyin",
+ "rejectPlan": "Rədd edin və ləğv edin",
+ "sendMessagePlaceholder": "Agentə mesaj göndərin...",
+ "cancel": "Ləğv edin",
+ "delete": "Silin",
+ "selectTaskPrompt": "Təfərrüatlara baxmaq üçün tapşırıq seçin",
+ "statusPending": "Gözləyir",
+ "statusRunning": "İcra olunur",
+ "statusWaitingApproval": "Təsdiq gözləyir",
+ "statusCompleted": "Tamamlandı",
+ "statusFailed": "Uğursuz oldu",
+ "statusCancelled": "Ləğv edildi",
"repositoryName": "Repozitor adı",
"repositoryUrl": "Repozitor URL",
"branch": "Filial",
@@ -10487,175 +10498,175 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "Sadə söhbət",
+ "streaming": "Axın rejimi",
+ "system-prompt": "Sistem təlimatı",
+ "thinking": "Düşünmə",
+ "tool-calling": "Alət çağırışı",
+ "multi-turn": "Çoxnövbəli",
"vision": "Görmə",
"schema-coercion": "Sxem məcburiyyəti"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "Sistem mesajı ilə əsas söhbət şablonu",
+ "streaming": "Axın şəklində cavablar üçün şablon",
+ "system-prompt": "Fərdi sistem təlimatı ilə şablon",
+ "thinking": "Əsaslandırma/düşünmə büdcəsi olan şablon",
+ "tool-calling": "Alət/funksiya çağırışı üçün şablon",
+ "multi-turn": "Çoxnövbəli söhbətlər üçün şablon",
"vision": "Şəkil daxiletməsi ilə multimodal şablon",
"schema-coercion": "Strukturlaşdırılmış çıxış / JSON sxeminin tətbiqi"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "Siz kömək etməyə hazır olan süni intellekt köməkçisisiniz.",
+ "userGreeting": "Salam! Bu gün sizə necə kömək edə bilərəm?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "Haqqında hekayə yazın:"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "Həyatın mənası nədir?",
+ "systemInstruction": "Düşünülmüş, fəlsəfi cavab verin."
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "Kvant hesablamasını izah edin"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "Hava məlumatının əldə ediləcəyi şəhərin adı",
+ "toolDescription": "Məkan üçün cari hava məlumatını əldə edin",
+ "userWeather": "Tokioda hava necədir?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "Siz kömək etməyə hazır olan köməkçisiniz.",
+ "assistantExample": "Bu məsələdə sizə kömək etməkdən məmnun olaram.",
+ "userInitial": "Bu mövzuda köməyə ehtiyacım var:",
+ "userFollowUp": "Bunu daha ətraflı izah edə bilərsiniz?"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "Keşin idarə edilməsi",
+ "description": "Provayder sorğu keşinin səmərəliliyini və yerli semantik cavabların təkrar istifadəsini izləyin.",
+ "refresh": "Yenilə",
+ "clearAll": "Semantik keşi təmizlə",
+ "memoryEntries": "Yaddaşdakı qeydlər",
+ "memoryEntriesSub": "Operativ yaddaşdakı LRU",
+ "dbEntries": "Verilənlər bazasındakı qeydlər",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Keş uyğunluqları",
+ "cacheHitsSub": "cəmi {total} qeyddən",
+ "tokensSaved": "Qənaət edilən tokenlər",
+ "tokensSavedSub": "Uyğunluqlar əsasında təxmin edilib",
+ "hitRate": "Uyğunluq faizi",
+ "performance": "Keşin performansı",
+ "autoRefresh": "Hər {seconds} saniyədən bir avtomatik yenilənir",
+ "hits": "Uyğunluqlar",
+ "misses": "Uyğunsuzluqlar",
+ "total": "Cəmi",
+ "behavior": "Keş davranışı",
+ "behaviorDeterministic": "Yalnız temperature=0 olan axınsız sorğular keşlənir.",
+ "behaviorBypass": "{header} başlığı ilə yan keçin.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "Standart TTL: 30 dəqiqə. {envVar} vasitəsilə konfiqurasiya edin.",
+ "idempotency": "İdempotentlik qatı",
+ "activeDedupKeys": "Aktiv dublikatlaşdırmanın qarşısını alma açarları",
+ "dedupWindow": "Dublikatlaşdırmanın qarşısını alma müddəti",
+ "clearSuccess": "Semantik keş təmizləndi. {count} qeyd silindi.",
+ "clearError": "Keşi təmizləmək alınmadı.",
+ "unavailable": "Keş əlçatan deyil",
+ "unavailableDesc": "Keş statistikasını əldə etmək mümkün olmadı. Serverin işlədiyinə əmin olun.",
"loadingCacheAria": "Keş yüklənir",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "Sorğu keşi (provayder tərəfində)",
+ "semanticCache": "Semantik keş",
+ "promptCacheSectionDesc": "Keşə nəzarətin harada aktiv olduğunu və giriş məlumatlarının nə qədər təkrar istifadə edildiyini görməyiniz üçün istifadə tarixçəsindəki provayder tərəfli sorğu keşləmə fəaliyyətini göstərir.",
+ "promptTrendDesc": "Son 24 saat üzrə saatlıq sorğu həcmi, keş əhatəsi və keşdən oxuma həcmi.",
+ "cachedRequests": "Keşlənmiş sorğular",
+ "cachedRequests24h": "Keşlənmiş sorğular (24 saat)",
+ "cacheHitRate": "Keşə düşmə faizi",
+ "cacheRate": "Keş faizi",
+ "cacheRateDesc": "ümumi sorğuların",
+ "cachedTokens": "Keşdən oxunan tokenlər",
+ "cacheCreationTokens": "Keşə yazılan tokenlər",
+ "cacheMetrics": "Sorğu keşi göstəriciləri",
+ "withCacheControl": "Keşə nəzarət ilə",
+ "cachedTokensRead": "Keşdən oxundu",
+ "cacheCreationWrite": "Keşə yazıldı",
+ "cacheReuseRatio": "Keşin təkrar istifadə nisbəti",
+ "cacheReuseRatioDesc": "Keşdən oxunan tokenlər / Ümumi giriş tokenləri",
+ "estCostSaved": "Təxmini qənaət edilən xərc",
+ "lastUpdated": "Son yenilənmə",
+ "hoursTracked": "izlənilən saat",
+ "busiestHour": "Ən sıx saat",
+ "peakCacheRate": "Ən yüksək keş faizi",
+ "trendHour": "Saat",
+ "activityVolume": "Fəaliyyət",
+ "requestsShort": "sorğu",
+ "inputShort": "Giriş",
+ "cachedShort": "Keşlənib",
+ "writeShort": "Yazma",
+ "resetting": "Sıfırlanır...",
+ "resetMetrics": "Metrikaları sıfırla",
+ "byProvider": "Provayder üzrə bölgü",
+ "providerCacheRateDesc": "Hər bir provayder ümumi giriş tokenlərini, keşdən oxunan tokenləri və keşə yazılan tokenləri göstərir ki, təkrar istifadə nisbətini ilkin ümumi göstəricilərlə müqayisə edə biləsiniz.",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "Sorğular",
+ "inputTokens": "Ümumi giriş tokenləri",
+ "cachedTokensCol": "Keşdən oxuma",
+ "cacheCreation": "Keşə yazma",
+ "trend24h": "Keş tendensiyası (24 saat)",
+ "peakCached": "Keşlənən maksimum",
+ "cached": "Keşlənib",
+ "overview": "İcmal",
"tableProvider": "Provayder",
"tableModel": "Model",
"performanceTitle": "Performans",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute-un öz deterministik cavab keşi. Aktiv olduqda, təkrarlanan, axınsız temperature=0 sorğuları yuxarı axın provayderinə müraciət etmədən lokal olaraq cavablandırıla bilər.",
+ "semanticCacheDisabledDesc": "Semantik keş deaktivdir. Ayarlarda onu yenidən aktiv edənədək OmniRoute lokal cavabların təkrar istifadəsini ötürəcək.",
+ "semanticEntriesDesc": "Hazırda SQLite-da saxlanılan qalıcı semantik keş qeydləri. Provayder tərəfli prompt keşi fəaliyyəti burada göstərilmir.",
+ "searchEntries": "Qeydləri axtarın...",
+ "search": "Axtarış",
+ "loading": "Yüklənir...",
+ "entriesLoadError": "Semantik keş qeydlərini yükləmək alınmadı.",
+ "noEntries": "Keş qeydi tapılmadı",
+ "noPromptCacheData": "Hələ heç bir provayder tərəfli prompt keşi fəaliyyəti qeydə alınmayıb.",
+ "noTrendData": "Son 24 saat ərzində heç bir prompt keşi fəaliyyəti qeydə alınmayıb.",
+ "signature": "İmza",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
- "reasoningCache": "Reasoning Replay",
- "reasoningCacheDesc": "Preserves model thinking for multi-turn tool calling flows",
- "reasoningEntries": "Active Entries",
- "reasoningReplayRate": "Replay Rate",
- "reasoningReplays": "Total Replays",
- "reasoningCharsCached": "Characters Cached",
- "reasoningMisses": "Cache Misses",
- "reasoningByProvider": "By Provider",
- "reasoningByModel": "By Model",
- "reasoningRecentEntries": "Recent Entries",
- "reasoningToolCallId": "Tool Call ID",
- "reasoningChars": "Characters",
- "reasoningAge": "Age",
- "reasoningView": "View",
- "reasoningDetail": "Reasoning Content",
- "reasoningBehavior": "Behavior",
- "reasoningBehaviorCapture": "Captures reasoning_content from streaming responses",
- "reasoningBehaviorReplay": "Re-injects on next turn when client omits it",
- "reasoningBehaviorFallback": "Memory-first with SQLite fallback for crash recovery",
- "reasoningBehaviorTtl": "TTL: 2 hours | Max entries: 2,000 (memory)",
- "reasoningBehaviorModels": "Supported: DeepSeek, Kimi, Qwen-Thinking, GLM",
- "reasoningClearAll": "Clear Reasoning Cache",
- "reasoningClearSuccess": "Cleared {count} reasoning cache entries",
- "reasoningClearError": "Failed to clear reasoning cache",
- "reasoningNoData": "No reasoning entries cached yet. Entries appear when thinking models use tool calling.",
+ "created": "Yaradılıb",
+ "expires": "Bitmə vaxtı",
+ "actions": "Əməliyyatlar",
+ "deduplicatedRequests": "Dublikatları aradan qaldırılmış sorğular",
+ "savedCalls": "Qənaət edilmiş API çağırışları",
+ "totalProcessed": "Emal edilmiş ümumi sorğular",
+ "disabled": "Deaktivdir",
+ "totalRequests": "Ümumi sorğular",
+ "reasoningCache": "Məntiqi düşünmənin təkrar oynadılması",
+ "reasoningCacheDesc": "Çoxaddımlı alət çağırışı axınlarında modelin düşünmə prosesini qoruyur",
+ "reasoningEntries": "Aktiv qeydlər",
+ "reasoningReplayRate": "Təkrar oynatma nisbəti",
+ "reasoningReplays": "Ümumi təkrar oynatmalar",
+ "reasoningCharsCached": "Keşlənmiş simvollar",
+ "reasoningMisses": "Keş buraxılmaları",
+ "reasoningByProvider": "Provayder üzrə",
+ "reasoningByModel": "Model üzrə",
+ "reasoningRecentEntries": "Son qeydlər",
+ "reasoningToolCallId": "Alət çağırışı ID-si",
+ "reasoningChars": "Simvollar",
+ "reasoningAge": "Yaş",
+ "reasoningView": "Baxış",
+ "reasoningDetail": "Əsaslandırma məzmunu",
+ "reasoningBehavior": "Davranış",
+ "reasoningBehaviorCapture": "Axın cavablarından reasoning_content-i əldə edir",
+ "reasoningBehaviorReplay": "Müştəri onu buraxdıqda növbəti gedişdə yenidən daxil edir",
+ "reasoningBehaviorFallback": "Qəza sonrası bərpa üçün SQLite ehtiyatı ilə əvvəlcə yaddaşdan istifadə edir",
+ "reasoningBehaviorTtl": "TTL: 2 saat | Maks. qeyd sayı: 2,000 (yaddaşda)",
+ "reasoningBehaviorModels": "Dəstəklənir: DeepSeek, Kimi, Qwen-Thinking, GLM",
+ "reasoningClearAll": "Əsaslandırma keşini təmizlə",
+ "reasoningClearSuccess": "Əsaslandırma keşinin {count} qeydi təmizləndi",
+ "reasoningClearError": "Əsaslandırma keşini təmizləmək alınmadı",
+ "reasoningNoData": "Hələ heç bir əsaslandırma qeydi keşlənməyib. Düşünmə modelləri alət çağırışından istifadə etdikdə qeydlər görünəcək.",
"cachePerformanceRetry": "Yenidən cəhd edin",
- "cachePerformanceHitRate": "Hit Rate",
+ "cachePerformanceHitRate": "Uyğunluq faizi",
"cachePerformanceAvgLatency": "Orta gecikmə (ms)",
"cachePerformanceP95Latency": "p95 Gecikmə (ms)",
"retry": "Yenidən cəhd edin",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes} dəq əvvəl",
"hoursAgo": "{hours} saat əvvəl",
"daysAgo": "{days} gün əvvəl",
- "entries": "Entries"
+ "entries": "Qeydlər"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
+ "levelGlobal": "Qlobal",
+ "levelProvider": "Provayder",
+ "levelCombo": "Kombinasiya",
+ "levelKey": "Açar",
+ "levelDirect": "Birbaşa (proksisiz)",
+ "titleGlobal": "Qlobal proksi konfiqurasiyası",
+ "titleLevel": "{level} proksisi — {label}",
+ "loading": "Proksi konfiqurasiyası yüklənir...",
+ "inheritingFrom": "Miras alınır:",
+ "source": "Mənbə",
+ "savedProxy": "Yadda saxlanmış proksi",
+ "custom": "Fərdi",
+ "selectSavedProxyPlaceholder": "Yadda saxlanmış proksini seçin...",
+ "proxyType": "Proksi növü",
"host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
+ "hostPlaceholder": "1.2.3.4 və ya proxy.example.com",
"port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
+ "authOptional": "Autentifikasiya (istəyə bağlı)",
+ "username": "İstifadəçi adı",
+ "usernamePlaceholder": "İstifadəçi adı",
+ "password": "Parol",
+ "passwordPlaceholder": "Parol",
+ "connected": "Qoşuldu",
"ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "connectionFailed": "Bağlantı uğursuz oldu",
+ "testConnection": "Bağlantını yoxla",
+ "clear": "Təmizlə",
+ "cancel": "Ləğv et",
+ "save": "Yadda saxla",
+ "errorSelectSavedProxy": "Əvvəlcə yadda saxlanmış proksi seçin.",
+ "errorSelectProxyFirst": "Əvvəlcə proksi seçin.",
+ "errorProxyNotFound": "Seçilmiş proksi tapılmadı.",
+ "errorClearSavedProxy": "Yadda saxlanmış proksini təmizləmək mümkün olmadı",
+ "errorSaveProxy": "Proksi konfiqurasiyasını yadda saxlamaq mümkün olmadı",
+ "errorClearProxy": "Proksi konfiqurasiyasını təmizləmək mümkün olmadı",
+ "errorSocks5Hidden": "SOCKS5 konfiqurasiya edilib, lakin NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false olduğu üçün gizlədilib."
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "{providerName} ilə qoşul",
+ "waiting": "Avtorizasiya gözlənilir",
+ "completeAuthInPopup": "Avtorizasiyanı açılan pəncərədə tamamlayın.",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "Açılan pəncərə bloklanıb? URL-ni əl ilə daxil edin",
+ "deviceCodeVisitUrl": "Aşağıdakı URL-yə keçin və kodu daxil edin:",
+ "deviceCodeVerificationUrl": "Doğrulama URL-si",
+ "deviceCodeYourCode": "Kodunuz",
+ "deviceCodeWaiting": "Avtorizasiya gözlənilir...",
"googleLoopbackTitle": "Google ilə daxil olma bu ünvandan tamamlana bilmir",
"googleLoopbackWhatHappens": "Google yalnızca avtorizasiya kodunu {redirectUri} brauzerdən daxil olan giriş təsdiq edildikdə buraxır. Burada bu ünvan bu kompüterə işarə edir, OmniRoute serverinə deyil — buna görə də razılıq ekranı yönləndirilmir və kopyalanacaq geri çağırma URL-si yoxdur.",
"googleLoopbackRecommended": "Tövsiyə olunur — bunu öz kompüterinizdə işlədin, sonra nəticəni aşağıda yapışdırın:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "Yoxsa SSH üzərindən panel portunu irəliləyin və OmniRoute-u tunel vasitəsilə yenidən yükləyin:",
"googleLoopbackTunnelNote": "{userPlaceholder} yerinə SSH istifadəçi adınızı daxil edin, terminalı açıq saxlayın, sonra {localUrl} ünvanını açın və oradan yenidən qoşulun.",
"googleLoopbackHeadlessAlt": "Tamamilə başsız istifadə üçün heç bir yerli geri çağırma olmadan, öz Google OAuth akreditasiyalarınızı və bir ictimai əsas URL-i konfiqurasiya edin.",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "Uzaqdan giriş: OmniRoute-a uzaqdan daxil olduğunuz üçün avtorizasiyadan sonra xəta səhifəsi görəcəksiniz (localhost tapılmadı). Bu normaldır — sadəcə brauzerinizin ünvan sətrindən tam URL-ni kopyalayıb aşağıya yapışdırın.",
"loopbackMismatchTitle": "Bu ünvandan daxil olmaq mümkün deyil.",
"loopbackMismatchWhatHappened": "Nə baş verir",
"loopbackMismatchExplanation": "Girişinizi təsdiqlədikdən sonra, {providerName} həmişə brauzeri {redirectUri} ünvanına geri göndərir. Bu ünvan bu brauzeri işlədən kompüterə işarə edir, OmniRoute serverinə deyil — buna görə də, avtorizasiya kodu OmniRoute-a çatmır və provayder səhv mesajı göstərmədən daxil olmağı uğursuz edir.",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "Bu brauzerdə OmniRoute-u tunel vasitəsilə yenidən açın:",
"loopbackMismatchStep3": "Sonra yeni tabdan {providerName} ilə yenidən qoşulun. İndi geri çağırma serverə çatır və giriş normal şəkildə tamamlanır.",
"loopbackMismatchAlternative": "SSH girişiniz yoxdur? Əgər bu təminatçı token idxalı sekmesini təklif edirsə, token ilə qoşulun — bu yol döngə geri çağırma istifadə etmir.",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "Addım 1: Bu URL-ni brauzerinizdə açın",
+ "copy": "Kopyala",
+ "step2PasteCallback": "Addım 2: Geri çağırış URL-sini və ya avtorizasiya kodunu buraya yapışdırın",
+ "step2Hint": "Avtorizasiyadan sonra tam geri çağırış URL-sini yapışdırın. Claude Code və Cline üçün autentifikasiya kodunu da birbaşa yapışdıra bilərsiniz, məsələn, code#state.",
+ "connect": "Qoşul",
+ "cancel": "Ləğv et",
+ "success": "Bağlantı uğurla quruldu!",
+ "successMessage": "{providerName} hesabınız qoşuldu.",
+ "done": "Hazırdır",
+ "error": "Bağlantı uğursuz oldu",
+ "tryAgain": "Yenidən cəhd edin",
"errorSessionIncomplete": "OAuth sessiyası tamamlanmayıb (yenidən yönləndirmə URI və ya kod təsdiqləyici yoxdur). Bağlantını yenidən başladın və yenidən cəhd edin.",
"errorExchangeFailed": "Mübadilə baş tutmadı",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: Default Google OAuth kimlik bilgileri yalnızca localhost-da işləyir. Uzaqdan istifadə üçün öz OAuth kimlik bilgilerinizi mühit dəyişənləri vasitəsilə konfiqurasiya edin: ANTIGRAVITY_OAUTH_CLIENT_ID və ANTIGRAVITY_OAUTH_CLIENT_SECRET. 'Uzaq Serverdə OAuth' README bölməsinə baxın.",
@@ -10772,7 +10783,7 @@
"saveConnection": "Bağlantını Saxla",
"gheDescription": "GitHub Enterprise instansiyanızın əsas URL-sini daxil edin (məsələn, https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise URL-si",
"gheUrlRequired": "GitHub Enterprise URL tələb olunur",
"gitlabDuoSetupTitle": "GitLab Duo OAuth qurulması",
"gitlabDuoSetupMessage": "GitLab Duo OAuth konfiqurasiya edilməyib. {applicationsUrl} ünvanında yönləndirmə URI {redirectUri} və \"scopes\" \"{scopes}\" ilə OAuth tətbiqi qeydiyyatdan keçirin, sonra {clientIdEnv} (və istəyə bağlı olaraq {clientSecretEnv}) təyin edin və yenidən başladın.",
@@ -10781,82 +10792,82 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Cursor ilə daxil olun",
+ "tabImport": "Tokenu idxal et",
+ "loginDescription": "Cursor brauzer girişini açır. Docker-də işləyir — host brauzerinizdə təsdiqləyin, sonra buraya qayıdın.",
+ "loginWithCursor": "Cursor ilə daxil ol",
+ "startingLogin": "Başladılır…",
+ "waitingApproval": "Cursor girişinin təsdiqlənməsi gözlənilir…",
+ "openUrlHint": "Brauzer açılmadısa:",
+ "openLoginLink": "Giriş səhifəsini aç",
+ "cancelLogin": "Girişi ləğv et",
+ "autoDetecting": "Tokenlər avtomatik aşkarlanır...",
+ "readingFromCursor": "Cursor IDE və ya cursor-agent-dən oxunur",
+ "tokensAutoDetected": "Tokenlər Cursor IDE-dən uğurla avtomatik aşkarlandı!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Docker-də işləyirsiniz? Cursor ilə daxil olmağı üstün tutun. IDE-dən avtomatik idxal və cursor-agent adətən konteyner daxilində əlçatan olmur. docs/providers/CURSOR-DOCKER.md sənədinə baxın.",
+ "accessToken": "Giriş tokeni",
+ "refreshToken": "Yeniləmə tokeni",
+ "refreshTokenPlaceholder": "İstəyə bağlıdır — tokenin avtomatik yenilənməsini aktivləşdirir",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "Giriş tokeni avtomatik doldurulacaq...",
+ "machineId": "Maşın ID-si",
+ "optional": "(istəyə bağlı)",
+ "machineIdPlaceholder": "Maşın ID-si avtomatik doldurulacaq...",
+ "importing": "İdxal edilir...",
+ "importToken": "Tokenu idxal et",
+ "cancel": "Ləğv et",
+ "errorAutoDetect": "Tokenləri avtomatik aşkarlamaq mümkün olmadı",
+ "errorAutoDetectFailed": "Tokenlərin avtomatik aşkarlanması uğursuz oldu",
+ "errorEnterToken": "Lütfən, giriş tokenini daxil edin",
+ "errorImportFailed": "İdxal uğursuz oldu",
+ "errorLoginStart": "Cursor girişini başlatmaq mümkün olmadı",
+ "errorLoginPoll": "Cursor girişi uğursuz oldu",
+ "errorLoginTimeout": "Cursor girişinin vaxtı bitdi — yenidən cəhd edin"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
+ "title": "Qiymət konfiqurasiyası",
+ "loading": "Qiymət məlumatları yüklənir...",
+ "pricingRatesFormat": "Qiymət tariflərinin formatı",
+ "ratesDescription": "Bütün tariflər bir milyon token üçün dollarla göstərilir ($/1M token). Məsələn: 2.50 giriş tarifi 1.000.000 giriş tokeni üçün $2.50 deməkdir.",
"model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "input": "Giriş",
+ "output": "Çıxış",
+ "cached": "Keşlənmiş",
+ "reasoning": "Əsaslandırma",
+ "cacheCreation": "Keşin yaradılması",
+ "noPricingData": "Qiymət məlumatı mövcud deyil",
+ "resetToDefaults": "Standart parametrlərə sıfırla",
+ "cancel": "Ləğv et",
+ "saving": "Yadda saxlanılır...",
+ "saveChanges": "Dəyişiklikləri yadda saxla",
+ "resetConfirm": "Bütün qiymətlər standart dəyərlərə sıfırlansın? Bu əməliyyatı geri qaytarmaq mümkün deyil.",
+ "errorSaveFailed": "Qiymətləri yadda saxlamaq alınmadı",
+ "errorResetFailed": "Qiymətləri sıfırlamaq alınmadı"
},
"proxyRegistry": {
"selectAllProxies": "Bütün proksiləri seçin",
"selectProxy": "{name} seçin",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "Proksi reyestri",
+ "description": "Təkrar istifadə edilə bilən proksiləri saxlayın və təyinatları izləyin.",
+ "importLegacy": "Köhnə məlumatları idxal et",
+ "bulkAssign": "Kütləvi təyin et",
+ "addProxy": "Proksi əlavə et",
+ "loading": "Proksilər yüklənir...",
+ "noProxies": "Hələ saxlanmış proksi yoxdur.",
+ "tableName": "Ad",
+ "tableEndpoint": "Son nöqtə",
+ "tableStatus": "Vəziyyət",
+ "tableHealth": "Sağlamlıq (24 saat)",
+ "tableUsage": "İstifadə",
+ "tableActions": "Əməliyyatlar",
+ "test": "Sına",
+ "edit": "Redaktə et",
+ "delete": "Sil",
+ "modalCreateTitle": "Proksi yarat",
+ "modalEditTitle": "Proksini redaktə et",
+ "labelName": "Ad",
+ "labelType": "Növ",
"labelFamily": "IP ailəsi",
"familyAuto": "Avtomatik (dual-stack)",
"familyIpv4": "Yalnız IPv4",
@@ -10864,48 +10875,48 @@
"familyHint": "Çıxış ünvanı ailəsi. Avtomatik dual-stack saxlayır; IPv4/IPv6 bu proksini həmin ailəyə bağlayır (yalnız IPv6 proksisi altında v4 sızmasının qarşısını alır).",
"labelHost": "Host",
"labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
+ "labelUsername": "İstifadəçi adı",
+ "labelPassword": "Şifrə",
"labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelStatus": "Vəziyyət",
+ "labelNotes": "Qeydlər",
+ "usernamePlaceholderEdit": "Cari istifadəçi adını saxlamaq üçün boş buraxın",
+ "passwordPlaceholderEdit": "Cari şifrəni saxlamaq üçün boş buraxın",
+ "statusActive": "Aktiv",
+ "statusInactive": "Qeyri-aktiv",
+ "cancel": "Ləğv et",
+ "save": "Yadda saxla",
+ "bulkModalTitle": "Kütləvi proksi təyinatı",
+ "bulkLabelScope": "Əhatə dairəsi",
+ "bulkLabelProxy": "Proksi",
+ "bulkClearAssignment": "(Təyinatı sil)",
+ "bulkLabelScopeIds": "Əhatə dairəsi ID-ləri (vergül və ya yeni sətirlə ayrılmış)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "Tətbiq et",
"labelScope": "Əhatə dairəsi",
"labelProxy": "Proksi",
"scopeGlobal": "qlobal",
"scopeProvider": "provayder",
"scopeAccount": "hesab",
"scopeCombo": "kombo",
- "bulkImportErrorMissingName": "Missing NAME",
- "bulkImportErrorMissingHost": "Missing HOST",
- "bulkImportErrorInvalidPort": "Invalid PORT (must be 1-65535)",
- "bulkImportErrorInvalidType": "Invalid TYPE (use http, https, or socks5)",
- "bulkImportErrorInvalidStatus": "Invalid STATUS (use active or inactive)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "bulkImportErrorMissingName": "NAME çatışmır",
+ "bulkImportErrorMissingHost": "HOST çatışmır",
+ "bulkImportErrorInvalidPort": "Yanlış PORT (1-65535 arasında olmalıdır)",
+ "bulkImportErrorInvalidType": "Yanlış TYPE (http, https və ya socks5 istifadə edin)",
+ "bulkImportErrorInvalidStatus": "Yanlış STATUS (active və ya inactive istifadə edin)",
+ "errorLoadFailed": "Proksi reyestrini yükləmək alınmadı",
+ "errorNameHostRequired": "Ad və host tələb olunur",
+ "errorSaveFailed": "Proksini yadda saxlamaq alınmadı",
+ "errorDeleteFailed": "Proksini silmək alınmadı",
+ "errorForceDeleteConfirm": "Bu proksi hələ də təyin olunub. Məcburi silinsin və bütün təyinatlar ləğv edilsin?",
+ "errorMigrateFailed": "Köhnə proksi konfiqurasiyasını köçürmək alınmadı",
+ "errorBulkFailed": "Kütləvi təyinatı icra etmək alınmadı",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "Uğursuz oldu",
+ "successRate": "{rate}% uğurlu",
+ "avgLatency": "Orta hesabla {latency}ms",
+ "assignmentsCount": "{count} təyinat",
"noData": "—",
"testSuccess": "✓ {ip}",
"testLatency": "{latency}ms",
@@ -10917,20 +10928,20 @@
"relayRepairFailed": "Relay təmiri uğursuz oldu",
"relayRepairError": "təmir uğursuz oldu",
"relayProbeSummary": "Relay zondları: {alive}/{tested} aktivdir",
- "bulkImport": "Bulk Import",
- "bulkImportTitle": "Bulk Import Proxies",
+ "bulkImport": "Kütləvi idxal",
+ "bulkImportTitle": "Proksilərin kütləvi idxalı",
"bulkImportDescription": "Paste proxy profiles using pipe-delimited format. One proxy per line. Existing proxies (same host + port) will be updated.",
- "bulkImportParse": "Parse",
- "bulkImportImport": "Import {count} Proxies",
- "bulkImportImporting": "Importing...",
- "bulkImportParsed": "{count} proxies parsed",
- "bulkImportSkipped": "{count} lines skipped",
- "bulkImportParseErrors": "{count} errors",
- "bulkImportNoValidEntries": "No valid entries found. Check the format and try again.",
- "bulkImportSuccess": "Import complete: {created} created, {updated} updated, {failed} failed",
- "bulkImportErrorLine": "Line {line}: {reason}",
- "bulkImportMaxExceeded": "Maximum 100 proxies per import",
- "bulkImportPreview": "Preview",
+ "bulkImportParse": "Təhlil et",
+ "bulkImportImport": "{count} proksini idxal et",
+ "bulkImportImporting": "İdxal edilir...",
+ "bulkImportParsed": "{count} proksi təhlil edildi",
+ "bulkImportSkipped": "{count} sətir ötürüldü",
+ "bulkImportParseErrors": "{count} xəta",
+ "bulkImportNoValidEntries": "Etibarlı qeyd tapılmadı. Formatı yoxlayıb yenidən cəhd edin.",
+ "bulkImportSuccess": "İdxal tamamlandı: {created} yaradıldı, {updated} yeniləndi, {failed} uğursuz oldu",
+ "bulkImportErrorLine": "Sətir {line}: {reason}",
+ "bulkImportMaxExceeded": "Hər idxal üçün maksimum 100 proksi",
+ "bulkImportPreview": "Önizləmə",
"clearAssignment": "(aydın tapşırıq)",
"bulkProxyAssignment": "Toplu Proksi Təyinatı",
"testAll": "Hamısını test et",
@@ -10943,7 +10954,7 @@
"managePool": "Hovuzu idarə et",
"poolTitle": "Proksi hovuzu və rotasiyası",
"poolDescription": "Çoxsaylı proksiləri bir scope-a qoşun və çıxış IP-lərini onlar arasında rotasiya edin. Tək proksisi olan scope tamamilə adi təyinat kimi davranır.",
- "poolScopeIdLabel": "Scope ID",
+ "poolScopeIdLabel": "Əhatə dairəsi ID-si",
"poolScopeIdPlaceholder": "provayder ID / bağlantı ID / kombo ID",
"poolScopeIdRequired": "Provayder, hesab və ya kombo scope-u üçün scope ID-si tələb olunur.",
"poolLoad": "Hovuzu yüklə",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Rotasiya strategiyası",
"poolStrategyHint": "round-robin üzvləri növbə ilə dövr etdirir; random bərabər şəkildə seçir; sticky bir üzvü müəyyən pəncərə üçün saxlayır; latency-optimized isə loqlara əsasən ən sürətlisini seçir.",
"poolStrategyFailed": "Rotasiya strategiyasını yeniləmək mümkün olmadı",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Növbəli",
"strategyRandom": "Təsadüfi",
- "strategySticky": "Sticky",
+ "strategySticky": "Sabit",
"strategyLatency": "Gecikməyə görə optimallaşdırılmış",
"poolMembersLabel": "Hovuz üzvləri ({count})",
"poolNoMembers": "Bu hovuzda hələ proksi yoxdur.",
+ "poolEgressObservation": "{exits, plural, one {# çıxış} other {# çıxış}}, {connections, plural, one {# bağlantı} other {# bağlantı}} tərəfindən istifadə edilib · bir çıxışda maksimum {max} · son {hours} saat",
+ "poolEgressObservationEmpty": "Son {hours} saat ərzində trafik müşahidə edilməyib",
+ "poolEgressObservationHint": "Bu zaman intervalı üzrə proksi jurnalından hesablanıb: bu hovuzun üzvləri üçün müşahidə edilən fərqli çıxış IP-ləri və onlardan istifadə edən OmniRoute bağlantıları. \"Bir çıxışda\" eyni anda deyil, zaman intervalı ərzində deməkdir. Hər IP üzrə 429 bloklanması yalnız eyni provayder ailəsinə aid bağlantıları müvəqqəti dayandırır.",
"poolRemove": "Çıxar",
"poolRemoveFailed": "Proksini hovuzdan çıxarmaq mümkün olmadı",
"poolAddLabel": "Proksi əlavə et",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "Hovuz təyinatını yadda saxlamaq mümkün olmadı"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "title": "Model Sınaq Meydanı",
+ "description": "İstənilən modeli birbaşa idarəetmə panelindən sınaqdan keçirin. Provayderi, modeli və son nöqtə növünü seçin, sonra xam cavabı görmək üçün sorğu göndərin.",
+ "endpoint": "Son nöqtə",
+ "provider": "Provayder",
"model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "accountKey": "Hesab / Açar",
+ "autoAccounts": "Avtomatik ({count} hesab)",
+ "noAccounts": "Hesab yoxdur",
+ "send": "Göndər",
+ "cancel": "Ləğv et",
+ "audioFile": "Audio fayl",
+ "attachImages": "Şəkillər əlavə et (Vision)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "4-dək şəkil",
+ "selectAudioFile": "Transkripsiya üçün audio fayl seçin (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "Hamısını təmizlə",
+ "request": "Sorğu",
+ "response": "Cavab",
+ "transcription": "Transkripsiya",
+ "copy": "Kopyala",
+ "resetToDefault": "Standart vəziyyətə sıfırla",
+ "downloadAudio": "Audionu endir",
+ "copyText": "Mətni kopyala",
+ "transcriptionHint": "Transkripsiya multipart/form-data istifadə edir. Audio faylı yuxarıda yükləyin — aşağıdakı JSON əlavə parametrləri (model, dil) idarə edir.",
+ "imagesGenerated": "{count} şəkil yaradıldı",
+ "generatedImage": "Yaradılmış şəkil {index}",
+ "save": "Saxla",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "Söhbət tamamlamaları",
+ "responses": "Cavablar",
"completions": "Tamamlamalar",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "Şəkil yaratma",
+ "embeddings": "Vektor təsvirləri",
+ "speech": "Mətndən nitqə",
+ "transcription": "Audio transkripsiya",
+ "video": "Video generasiyası",
+ "music": "Musiqi generasiyası",
"moderations": "Moderasiyalar",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "Yenidən sıralama",
+ "search": "Veb axtarış",
"webFetch": "Veb gətirmə"
},
"conversationalChat": "Danışıq Söhbəti",
"clearChat": "Söhbəti təmizləyin",
"typeMessagePlaceholder": "Mesaj yazın... (yeni sətir üçün Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Söhbət",
+ "tabCompare": "Müqayisə et",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Yarat",
+ "configPane": "Konfiqurasiya",
+ "systemPrompt": "Sistem təlimatı",
+ "systemPromptPlaceholder": "Siz faydalı bir köməkçisiniz.",
+ "modelPlaceholder": "məs. openai/gpt-4o",
+ "endpointLabel": "Son nöqtə",
+ "parametersLabel": "Parametrlər",
+ "collapseConfig": "Konfiqurasiya panelini yığışdır",
+ "expandConfig": "Konfiqurasiya panelini genişləndir",
+ "temperature": "Temperatur",
+ "maxTokens": "Maksimum token sayı",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Mövcudluq cəriməsi",
+ "frequencyPenalty": "Tezlik cəriməsi",
"reasoningLabel": "Mühakimə",
"thinking": "Düşünmə",
"effort": "Səy",
"effortDefault": "Standart",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Təsadüfi (boş saxlayın)",
+ "presetsLabel": "Hazır ayarlar",
+ "loadPreset": "Hazır ayarı yüklə",
+ "savePreset": "Hazır ayarı yadda saxla",
+ "noPresets": "Hazır ayar yoxdur",
+ "presetNamePlaceholder": "Hazır ayarın adı",
+ "savingPreset": "Yadda saxlanılır…",
+ "nameRequired": "Ad tələb olunur",
+ "failedToSavePreset": "Hazır ayarı yadda saxlamaq mümkün olmadı",
+ "improvePrompt": "Sorğunu təkmilləşdir",
+ "improvingPrompt": "Təkmilləşdirilir…",
+ "improvePromptTitle": "Sorğunuzu AI ilə təkmilləşdirin",
+ "setModelFirst": "Əvvəlcə model təyin edin",
"setModelInConfigFirst": "Əvvəlcə Konfiqurasiya panelində model təyin edin.",
"improvePromptFailed": "Promptun təkmilləşdirilməsi uğursuz oldu.",
"improvePromptAria": "AI ilə promptu təkmilləşdir",
"confirmImprovePrompt": "Promptun təkmilləşdirilməsini təsdiqlə",
"improvePromptDescription": "Bu, təkmilləşdirilmiş versiya yaratmaq üçün cari sistem promptunuzu trae.ai saytına bu brauzerdə daxil olmalısınız. Təsdiq səhifəsi yalnız mövcud sessiyanı təsdiqləyir — sizi daxil edə bilmir. \"Daxil Olma Uğursuz Oldu\" mesajını görsəniz, \"solo.trae.ai aç\" düyməsini basın, daxil olun, sonra bura qayıdın.",
"waitingForAuthorization": "trae.ai üçün gözləyir…",
"authorizeWithBrowser": "Brauzer ilə Təsdiqləyin",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai saytını aç",
"orPasteManually": "və ya token-i əl ilə yapışdırın",
"manualInstructions": "solo.trae.ai saytına daxil olun, DevTools → Şəbəkə bölməsini açın, istənilən çat mesajını göndərin və Authorization: Cloud-IDE-JWT {tokenPlaceholder} sorğu başlığından JWT-ni kopyalayın. JWT-nin ömrü ~14 gündür. İstəyə bağlı şəxsiyyət sahələri eyni sorğu bədənindəki common_params -dan gəlir.",
- "accessTokenLabel": "Access Token (Cloud-IDE-JWT)",
+ "accessTokenLabel": "Giriş tokeni (Cloud-IDE-JWT)",
"webId": "Veb ID",
"optional": "isteğe bağlı",
"bizUserId": "Biz İstifadəçi ID-si",
@@ -13854,7 +13887,7 @@
}
},
"providerTest": {
- "dialogLabel": "Test {provider}",
+ "dialogLabel": "{provider} sınağı",
"deprecated": "istifadədən çıxmış",
"risk": "risk",
"close": "Bağla",
@@ -13864,7 +13897,7 @@
"clearConversation": "Söhbəti təmizlə",
"clear": "Təmizlə",
"tabs": {
- "test": "Test",
+ "test": "Sınaq",
"logs": "Girişlər"
},
"loadingLogs": "Yüklənir qeydlər…",
@@ -13913,7 +13946,7 @@
"followDescription": "Ox sürüşdürülür, İNDİ xətti 75%-də qalır",
"now": "İndi",
"nowDescription": "Cari vaxta keçid, İNDİ xətti mərkəzə sıfırlanır",
- "pan": "Pan",
+ "pan": "Panorama",
"panDescription": "Sürüşdürərək kəşf edin, fon donmuşdur"
},
"reset": "Sıfırla",
@@ -13934,7 +13967,7 @@
"metadata": {
"compressionTitle": "Sıxma",
"compressionDescription": "Kontekst sıxma parametrlərini tənzimləyin ki, token istifadəsini və xərcləri azaltsın.",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — Relay Proksiləri",
"relayDescription": "Serverless relay proxy son nöqtələri sizin AI infrastrukturunuz üçün",
"trafficInspectorTitle": "Trafik Müfəttişi — OmniRoute",
"trafficInspectorDescription": "LLM çağrılarını izləyin + hər hansı bir tətbiqin HTTPS trafikini düzəldin"
@@ -13945,14 +13978,14 @@
"runners": "İdmançılar",
"tasks": "Tapşırıqlar",
"colName": "Ad",
- "colClis": "CLIs",
+ "colClis": "CLI-lər",
"colStatus": "Status",
"colTask": "Tapşırıq",
"colMode": "Rejim",
"colRunner": "İcraçı",
"colSummary": "Xülasə",
"online": "onlayn",
- "offline": "offline",
+ "offline": "oflayn",
"draining": "boşaltma",
"hubOffline": "İdarəedici mərkəzi offline və ya konfiqurasiya edilməyib (CONDUCTOR_HUB_URL) — köhnəlmiş məlumatlar əvəzinə heç nə göstərmir.",
"noRunners": "Heç bir iştirakçı qeydiyyatdan keçməyib",
@@ -14048,11 +14081,11 @@
"actionApprove": "Planı təsdiqlə",
"actionCancel": "Ləğv et",
"actionSeeInGraph": "Qrafikdə bax",
+ "actionRepeat": "Təkrarla",
"actionDone": "Əməliyyat tətbiq edildi",
"actionFailed": "Əməliyyat uğursuz oldu: {error}",
"detailFailed": "Detallar yüklənmədi: {error}",
"mirroredInA2A": "A2A-da əks olunub",
- "actionRepeat": "Təkrarla",
"repeatConfirm": "Təsdiqləmək üçün yenidən klikləyin",
"repeatDone": "Yeni icra yaradıldı",
"repeatUnavailable": "Orijinal giriş mövcud deyil"
@@ -14066,57 +14099,57 @@
"networkError": "Şəbəkə xətası — təminatçı açıq parametrlərini yeniləmək mümkün olmadı"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "Dəstəkçi təklifləri",
+ "subtitle": "Radar-dan rəsmi endirimlər, kreditlər, sınaq müddətləri və nəzərdən keçirilmiş tərəfdaş üstünlükləri.",
+ "backToRadar": "Radar-a qayıt",
+ "loading": "Təkliflər yüklənir...",
+ "refresh": "Təklifləri yenilə",
+ "refreshing": "Yenilənir...",
+ "loadFailed": "Təklifləri yeniləyə bilmədik. Son təsdiqlənmiş lokal keş saxlanılıb.",
+ "empty": "Hazırda aktiv təklif yoxdur.",
+ "keyRequiredTitle": "Dəstəkçi açarı tələb olunur",
+ "keyRequiredDescription": "Təkliflər Radar-ın canlı üstünlüyüdür. Radar ekranında mövcud dəstəkçi açarını əlavə edin, töhfəçi statusunuzu təsdiqləyin və ya açar əldə etmək üçün layihəni dəstəkləyin.",
+ "contributorButton": "Mən töhfəçiyəm",
+ "supporterButton": "Layihəni dəstəklə",
+ "partnerBadge": "Tərəfdaş",
+ "officialBadge": "Rəsmi",
+ "conditionsLabel": "Şərtlər:",
+ "validUntil": "{date} tarixinədək etibarlıdır",
+ "noExpiry": "Bitmə tarixi elan edilməyib",
+ "openOffer": "Təklifə bax",
+ "trialDays": "{days, plural, one {# gün} other {# gün}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
+ "title": "Radar Analitikası",
+ "subtitle": "Radar-a məxsus ELO reytinqləri və kataloqdakı faktiki dəyişikliklər.",
+ "backToRadar": "Radar-a qayıt",
+ "loading": "Analitika yüklənir...",
+ "refresh": "Analitikanı yenilə",
+ "syncing": "Yenilənir...",
+ "loadFailed": "Analitikanı yeniləyə bilmədik. Son təsdiqlənmiş lokal keş saxlanılıb.",
+ "empty": "Hələlik təsdiqlənmiş Intel snapshot-ı mövcud deyil.",
+ "supporterBadge": "Radar dəstəkçisi",
+ "methodology": "Metodologiya",
+ "eloMethod": "ELO, ilkin {initial}, K={factor}",
+ "freshness": "Kataloqun yeniliyi",
+ "ageDays": "{days, plural, one {# günlük} other {# günlük}}",
+ "trend": "Kataloq tendensiyası",
+ "modelDelta": "{current} model, +{added} / -{removed}",
+ "ranking": "Model reytinqi",
+ "noRankings": "Hələlik təsdiqlənmiş müqayisələr mövcud deyil.",
"model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "category": "Kateqoriya",
+ "rating": "Reytinq",
+ "matches": "Qarşılaşmalar",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Yeni",
+ "aging": "Köhnələn",
+ "stale": "Köhnəlmiş"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "Artan",
+ "stable": "Sabit",
+ "shrinking": "Azalan"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "Sorğu təminatçının kontekst pəncərəsini aşır"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference OmniRoute Açıq Mənbə Dostudur",
+ "description": "Onlarla qabaqcıl modeli OpenAI ilə uyğun vahid endpoint vasitəsilə yenidən satan, qiymətə görə sıralanmış şlüz — hər sorğunu siyahı qiymətini heç vaxt aşmadan uyğun provayderlər arasında ən ucuzuna yönləndirir.",
+ "cta": "API açarı əldə edin",
+ "partnerLinkNote": "Tərəfdaş keçidi",
+ "dismissAriaLabel": "Bağla"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models kataloqunda düşünmə səviyyəsi variantlarının (məsələn, -low, -medium, -high) yaradılmasını deaktiv edin."
}
diff --git a/src/i18n/messages/bg.json b/src/i18n/messages/bg.json
index 53a43ecc88..5ea8ef1e4c 100644
--- a/src/i18n/messages/bg.json
+++ b/src/i18n/messages/bg.json
@@ -31,7 +31,7 @@
"active": "Активен",
"inactive": "Неактивен",
"noData": "Няма налични данни",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Все още няма нищо тук",
"configure": "Конфигуриране",
"manualConfig": "Ръчна конфигурация",
"manage": "Управлявайте",
@@ -47,7 +47,7 @@
"time": "време",
"details": "Подробности",
"created": "Създаден",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Последно обновяване",
"loadMore": "Зареди още",
"noResults": "Няма намерени резултати",
"reloadPage": "Презареди страницата",
@@ -70,14 +70,14 @@
"note": "Забележка",
"free": "безплатно",
"skipToContent": "Преминете към съдържанието",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Сървърът изпитва затруднения. Някои функции може да не са достъпни.",
+ "maintenanceServerUnreachable": "Сървърът е недостъпен. Повторно свързване...",
"accept": "Приеми",
"accountId": "ID на акаунта",
"alias": "Псевдоним",
"apiKeyId": "ID на API ключ",
"apiKeyName": "Име на API ключ",
- "apiKeySecret": "API Key Secret",
+ "apiKeySecret": "Таен API ключ",
"authorization": "Упълномощаване",
"content-type": "Тип съдържание",
"content-length": "Дължина на съдържанието",
@@ -131,7 +131,7 @@
"resolve_connection_id": "Разрешете ИД на връзката",
"scope_id": "ID на обхвата",
"scopeId": "ID на обхвата",
- "jwtSecret": "JWT Secret",
+ "jwtSecret": "JWT тайна",
"keytar": "Keytar",
"better-sqlite3": "по-добре-sqlite3",
"undici": "undici",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "Неуспешно нулиране на цените",
"apikey": "API ключ",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Към таблото за управление",
+ "checkSystemStatus": "Проверка на състоянието на системата",
+ "selectModel": "Изберете модел",
"addModel": "Добавяне на модел",
"effortNone": "Няма",
"effortLow": "Ниско",
@@ -162,12 +162,12 @@
"effortMax": "Максимално",
"effortUltra": "Ултра",
"reasoningEffort": "Усилие за разсъждение",
- "wireApi": "Wire API",
+ "wireApi": "Свързване на API",
"modelAliases": "Псевдоними на модели",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Комбинации",
+ "noModelsFound": "Няма намерени модели",
+ "clear": "Изчистване",
+ "done": "Готово",
"selectAll": "Избери всички",
"unselectAll": "Отмени избора",
"visibleModels": "видими",
@@ -184,519 +184,519 @@
"selectAllProviders": "Проверете всички доставчици",
"clearProviderSelection": "Премахнете отметката от доставчиците",
"providersSelectedCount": "Проверени {count} доставчици",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Възникна грешка",
+ "comboDeleted": "Комбинацията е изтрита",
+ "hide": "Скриване",
+ "creating": "Създаване",
+ "comboCreated": "Комбинацията е създадена",
+ "swapFormats": "Размяна на форматите",
+ "daysAgo": "Преди дни",
+ "retries": "Повторни опити",
+ "errorDuringRestore": "Грешка при възстановяването",
+ "eventsAppearHint": "Подсказка за показване на събития",
+ "noLockouts": "Няма блокирания",
+ "webSearchDesc": "Описание на уеб търсенето",
+ "audioProvidersHeading": "Заглавие на доставчиците на аудио",
"cloudAgentProviders": "Доставчици на облачни агенти",
- "minutesAgo": "Minutes Ago",
- "a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "minutesAgo": "Преди минути",
+ "a": "А",
+ "liveAutoRefreshing": "Автоматично обновяване на живо",
+ "webSearch": "Уеб търсене",
+ "anthropicPrefixPlaceholder": "Заместващ текст за префикс на Anthropic",
+ "addModelToCombo": "Добавяне на модел към комбинацията",
+ "failedToLoad": "Неуспешно зареждане",
+ "categoryMedia": "Категория „Медия“",
+ "enableCloud": "Активиране на облака",
+ "expirationBannerExpiringSoon": "Банер за предстоящо изтичане",
+ "retry": "Повторен опит",
+ "embeddings": "Векторни представяния",
+ "errorCount": "Брой грешки",
+ "backupReasonManual": "Причина за архивиране: ръчно",
+ "safeSearchModerate": "Умерено безопасно търсене",
+ "activeLimiters": "Активни ограничители",
+ "a2aCardTitle": "Заглавие на A2A картата",
+ "cloudWorkerUnreachable": "Облачният работник е недостъпен",
+ "testFailed": "Тестът е неуспешен",
+ "compatibleBaseUrlHint": "Подсказка за съвместим базов URL",
+ "usageTracking": "Проследяване на използването",
+ "disableCloudTitle": "Заглавие за деактивиране на облака",
+ "noConnections": "Няма връзки",
+ "providerHealth": "Състояние на доставчика",
+ "confirmDbImport": "Потвърждаване на импортирането на базата данни",
+ "notAvailableSymbol": "Символ за недостъпност",
+ "backupsAvailable": "Налични резервни копия",
+ "providerAuto": "Автоматичен избор на доставчик",
+ "newProviderNamePlaceholder": "Заместващ текст за името на новия доставчик",
+ "a2aQuickStartStep2": "Стъпка 2 от бързото начало за A2A",
+ "ok": "Добре",
+ "available": "Налично",
+ "noBackupYet": "Все още няма резервно копие",
+ "more": "Още",
+ "noCompatibleYet": "Все още няма съвместими",
+ "multiProvider": "Множество доставчици",
+ "repairEnvHint": "Подсказка за поправка на средата",
+ "disablingCloud": "Деактивиране на облака",
+ "testBench": "Тестова среда",
+ "valid": "Валидно",
+ "cloudBenefitShare": "Споделяне на предимствата на облака",
+ "mcpCardTitle": "Заглавие на Mcp картата",
+ "disableConfirm": "Потвърждение за деактивиране",
+ "filters": "Филтри",
+ "expirationBannerExpiredDesc": "Описание на банера за изтекъл срок",
+ "saveComboDefaults": "Запазване на настройките по подразбиране за комбинацията",
+ "cloudConnectedVerified": "Облачната връзка е потвърдена",
+ "uptime": "Време на работа",
+ "compatibleProdPlaceholder": "Заместващ текст за съвместима продукционна среда",
+ "fallbackChainsTitle": "Вериги за резервно превключване",
+ "oauthLabel": "Етикет за OAuth",
+ "a2aCardDescription": "Описание на A2A картата",
+ "okShort": "ОК",
+ "maintenance": "Поддръжка",
+ "formatConverter": "Конвертор на формати",
+ "zedImportNetworkError": "Мрежова грешка при импортиране от Zed",
+ "apiKeyLabel": "Етикет за API ключ",
+ "noModelsForProvider": "Няма модели за доставчика",
+ "mcpCardDescription": "Описание на MCP картата",
+ "apiTypeLabel": "Етикет за типа на API",
+ "configuredProvidersLabel": "Етикет за конфигурираните доставчици",
+ "maxRetriesLabel": "Етикет за максималния брой повторни опити",
+ "title": "Заглавие",
+ "output": "Резултат",
+ "prefixHint": "Подсказка за префикс",
+ "skipWizard": "Пропускане на съветника",
+ "failedCount": "Брой неуспешни",
+ "confirmDbImportDesc": "Описание за потвърждение на импортирането на базата данни",
+ "entries": "Записи",
+ "until": "До",
+ "disableCombo": "Деактивиране на комбинацията",
+ "liveMonitorDescriptionPrefix": "Префикс на описанието за наблюдение в реално време",
+ "runningCount": "Брой изпълняващи се",
+ "noActiveConnectionsInGroup": "Няма активни връзки в групата",
+ "savedSuccessfully": "Запазено успешно",
+ "systemStorage": "Системно хранилище",
+ "videoDesc": "Описание на видеото",
+ "maxResults": "Максимален брой резултати",
+ "timeRangeMonth": "Времеви диапазон: месец",
+ "testSummary": "Обобщение на теста",
+ "failedSetPassword": "Задаването на парола е неуспешно",
+ "audio": "Аудио",
+ "restore": "Възстановяване",
+ "disableWarning": "Предупреждение при деактивиране",
+ "moderationsDesc": "Описание на модерациите",
+ "providerHealthStatusAria": "ARIA етикет за състоянието на доставчика",
+ "modelNamePlaceholder": "Заместващ текст за името на модела",
+ "mcpQuickStartStep2": "Стъпка 2 от бързото стартиране на MCP",
+ "quickStart": "Бързо стартиране",
+ "fullExportFailedWithError": "Пълното експортиране е неуспешно поради грешка",
+ "loadingBackups": "Зареждане на резервни копия",
+ "anthropicBaseUrlPlaceholder": "Заместващ текст за основния URL адрес на Anthropic",
+ "description": "Описание",
+ "noProviderFound": "Не е намерен доставчик",
+ "auto": "Автоматично",
+ "protocolsDescription": "Описание на протоколите",
+ "cloudSessionNote": "Бележка за облачната сесия",
+ "advancedSettings": "Разширени настройки",
+ "defaultStrategy": "Стратегия по подразбиране",
+ "purgeExpiredLogs": "Изчистване на изтеклите регистрационни файлове",
+ "justNow": "Току-що",
+ "providerTestFailed": "Тестът на доставчика е неуспешен",
+ "openaiBaseUrlPlaceholder": "Заместващ текст за основния URL адрес на Openai",
+ "image": "Изображение",
+ "failedCreateChain": "Неуспешно създаване на верига",
+ "importDatabase": "Импортиране на база данни",
+ "allDataLocal": "Всички данни са локални",
+ "sectionTitle": "Заглавие на раздела",
+ "failedToggle": "Неуспешно превключване",
+ "editCombo": "Редактиране на комбинация",
+ "testResults": "Резултати от теста",
+ "searchQuery": "Заявка за търсене",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "Дублиране",
+ "createCombo": "Създаване на комбинация",
+ "searchTypeWeb": "Тип търсене: уеб",
+ "addChain": "Добавяне на верига",
+ "prefixLabel": "Етикет на префикса",
+ "listModelsDesc": "Описание на списъка с модели",
+ "databaseSize": "Размер на базата данни",
+ "chainCreated": "Веригата е създадена",
+ "providerTestTimeout": "Времето за тест на доставчика изтече",
+ "routingStrategy": "Стратегия за маршрутизиране",
+ "translateAction": "Действие за превод",
+ "exportFailed": "Неуспешно експортиране",
+ "connectedVerificationPending": "Свързано, предстои проверка",
+ "a2aQuickStartTitle": "Заглавие на бързото ръководство за A2A",
+ "couldNotTest": "Тестът не можа да бъде извършен",
+ "testAllCompatible": "Тестване на всички съвместими",
+ "anthropicCompatibleName": "Име на съвместимия с Anthropic доставчик",
+ "disabling": "Деактивиране",
+ "failedEnable": "Неуспешно активиране",
+ "categoryUtility": "Категория: помощни инструменти",
+ "customUrlOptional": "Персонализиран URL адрес (незадължително)",
+ "localProviders": "Локални доставчици",
+ "comboNamePlaceholder": "Заместващ текст за име на комбинацията",
+ "memoryRss": "Резидентна памет",
+ "disableProvider": "Деактивиране на доставчика",
+ "welcomeDesc": "Описание на приветствието",
+ "nameLabel": "Етикет за име",
+ "allOperational": "Всички работят нормално",
+ "backupNow": "Архивиране сега",
+ "providerMaxRetriesAria": "ARIA етикет за максимален брой повторни опити на доставчика",
+ "textToSpeechDesc": "Описание на преобразуването на текст в реч",
+ "machineId": "Идентификатор на машината",
+ "globalProxy": "Глобален прокси сървър",
+ "hitsMisses": "Попадения и пропуски",
+ "testDesc": "Описание на теста",
+ "chatDesc": "Описание на чата",
+ "importSuccess": "Успешно импортиране",
+ "chat": "Чат",
+ "a2aQuickStartStep1": "Стъпка 1 от бързото стартиране на A2A",
+ "importFailed": "Неуспешно импортиране",
+ "inputPlaceholder": "Заместващ текст за полето за въвеждане",
+ "providerModelsTitle": "Заглавие на моделите на доставчика",
+ "lastBackup": "Последно архивиране",
+ "yourEndpoint": "Вашата крайна точка",
+ "autoDisableThresholdDesc": "Описание на прага за автоматично деактивиране",
+ "rerankDesc": "Описание на преподреждането",
+ "modelsPathPlaceholder": "Заместващ текст за пътя до моделите",
+ "noCombosYet": "Все още няма комбинации",
+ "connectedVerificationPendingWithError": "Свързано, предстои проверка, с грешка",
+ "comboDefaultsGuideHint1": "Подсказка 1 от ръководството за настройки по подразбиране на комбинациите",
+ "enableCloudTitle": "Заглавие за активиране на облака",
+ "configuredProvidersHint": "Подсказка за конфигурираните доставчици",
+ "paused": "Поставено на пауза",
+ "llmProviders": "Доставчици на LLM",
+ "enableCombo": "Активиране на комбинацията",
+ "removeProviderOverrideAria": "ARIA етикет за премахване на персоналната настройка на доставчика",
+ "nodeVersion": "Версия на Node",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Неуспешно експортиране с грешка",
+ "proxyConfigured": "Прокси сървърът е конфигуриран",
+ "concurrencyPerModel": "Паралелни заявки за модел",
+ "protocolTasksLabel": "Етикет за задачи на протокола",
+ "oauthProviders": "OAuth доставчици",
+ "lockedCount": "Брой заключени",
+ "deleteChainConfirm": "Потвърждение за изтриване на веригата",
+ "recentTranslations": "Скорошни преводи",
+ "zedImportButton": "Бутон за импортиране от Zed",
+ "responsesDesc": "Описание на отговорите",
+ "testedCount": "Брой тествани",
+ "providersCommaSeparatedPlaceholder": "Заместващ текст за доставчици, разделени със запетаи",
+ "signatureDefaults": "Стойности по подразбиране за подписа",
+ "errorCreating": "Грешка при създаването",
+ "timeRangeYear": "Времеви диапазон: година",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Облакът е деактивиран успешно",
+ "deleteConfirm": "Потвърждение за изтриване",
+ "check": "Проверка",
+ "safeSearch": "Безопасно търсене",
+ "protocolLastActivity": "Последна активност на протокола",
+ "openMcpDashboard": "Отваряне на таблото за управление на MCP",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Етикет за пътя на чата",
+ "retryDelay": "Забавяне преди повторен опит",
+ "errorUpdating": "Грешка при актуализирането",
+ "ideCliIntegrations": "Интеграции с IDE и CLI",
+ "imageGeneration": "Генериране на изображения",
+ "apiKeyRequired": "Изисква се API ключ",
+ "resetAllTitle": "Нулиране на всичко",
+ "connectionError": "Грешка при свързването",
+ "modelName": "Име на модела",
+ "apiKeyForCheck": "API ключ за проверка",
+ "cloudRequestTimeout": "Изтече времето за облачната заявка",
+ "showConfiguredOnly": "Показване само на конфигурираните",
"showFreeOnly": "Само безплатно",
"addFirstProvider": "Добавете първия си доставчик",
"addFirstProviderDesc": "Свържете доставчик на AI, за да започнете да маршрутизирате заявки през OmniRoute. Можете да използвате безплатни доставчици, API ключове или OAuth акаунти.",
"learnMore": "Научете повече",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Включване на домейни",
+ "promptCache": "Кеш на подканите",
+ "cloudConnected": "Облакът е свързан",
+ "deleteChain": "Изтриване на веригата",
+ "chatPathPlaceholder": "Заместващ текст за пътя на чата",
+ "databasePath": "Път до базата данни",
+ "usingLocalServer": "Използване на локален сървър",
+ "globalComboConfig": "Глобална комбинирана конфигурация",
+ "backupFailed": "Неуспешно архивиране",
+ "tabProtocols": "Раздел „Протоколи“",
+ "continue": "Продължи",
+ "categorySearch": "Търсене по категория",
+ "rateLimitStatus": "Състояние на ограничението на заявките",
+ "repairEnvSuccess": "Успешно възстановяване на средата",
+ "nameRequired": "Името е задължително",
+ "country": "Държава",
+ "trackMetricsDesc": "Проследяване на показателите — описание",
+ "durationSecondsShort": "Продължителност в секунди (кратко)",
+ "formatConverterDescription": "Описание на конвертора на формати",
+ "cloudBenefitAccess": "Достъп до предимствата на облака",
+ "maxRetries": "Максимален брой повторни опити",
+ "queueTimeout": "Време за изчакване на опашката",
"queueDepth": "Дълбочина на опашката",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Добавяне на доставчик",
+ "realtime": "В реално време",
+ "totalTranslations": "Общо преводи",
+ "protocolActiveStreamsLabel": "Етикет за активните потоци на протокола",
+ "repairEnv": "Възстановяване на средата",
+ "modelsCount": "Брой модели",
+ "viewBackups": "Преглед на резервните копия",
+ "responsesApi": "API за отговори",
+ "copyComboName": "Копиране на името на комбинацията",
+ "failures": "Неуспехи",
+ "failedUpdate": "Неуспешно актуализиране",
+ "imageDesc": "Описание на изображението",
+ "failedCreate": "Неуспешно създаване",
+ "remainingOfLimit": "Оставащи от лимита",
+ "protocolsTitle": "Заглавие на протоколите",
+ "expirationBannerExpiringSoonDesc": "Описание на банера за предстоящо изтичане",
+ "source": "Източник",
+ "failed": "Неуспешно",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "Стъпка 1 от бързото начало за MCP",
+ "runTest": "Изпълнение на тест",
+ "loadingFallbackChains": "Зареждане на резервните вериги",
+ "healthy": "Изправно",
+ "version": "Версия",
+ "saveBlockWeighted": "Запазване на претегления блок",
+ "zedImportNone": "Няма импортиране от Zed",
+ "noBackupsYet": "Все още няма резервни копия",
+ "noGlobalProxy": "Няма глобален прокси сървър",
+ "noModels": "Няма модели",
+ "stickyLimit": "Постоянен лимит",
+ "passedCount": "Брой успешни",
+ "zedImportFailed": "Неуспешно импортиране от Zed",
+ "saving": "Запазване",
+ "testAll": "Тестване на всички",
+ "globalProxyDesc": "Описание на глобалния прокси сървър",
+ "latencyP99": "Латентност P99",
+ "connectingToCloud": "Свързване с облака",
+ "responses": "Отговори",
+ "errorDeleting": "Грешка при изтриване",
+ "openaiPrefixPlaceholder": "Заместващ текст за префикса на Openai",
+ "enterPassword": "Въведете парола",
+ "openA2aDashboard": "Отваряне на таблото A2A",
+ "enableProvider": "Активиране на доставчика",
+ "modeTest": "Тестов режим",
+ "failedDeleteChain": "Неуспешно изтриване на веригата",
+ "providerDesc": "Описание на доставчика",
+ "templateLoadHint": "Подсказка за зареждане на шаблон",
+ "lastFailure": "Последен неуспех",
+ "moveDown": "Преместване надолу",
+ "providerLabel": "Етикет на доставчика",
+ "clearCacheFailed": "Неуспешно изчистване на кеша",
+ "imagesGenerations": "Генериране на изображения",
+ "repairEnvWorking": "Поправяне на работната среда",
+ "millisecondsShort": "мс",
+ "globalLabel": "Глобален етикет",
+ "failuresPlural": "Неуспехи",
+ "completionsLegacyDesc": "Описание на наследените довършвания",
+ "searchProviders": "Търсене на доставчици",
+ "chatPathHint": "Подсказка за пътя за чат",
+ "defaultStrategyDesc": "Описание на стратегията по подразбиране",
+ "latencyP95": "Латентност P95",
+ "textToSpeech": "Преобразуване на текст в реч",
+ "searchType": "Тип търсене",
+ "messages": "Съобщения",
+ "aggregatorsGateways": "Агрегатори и шлюзове",
+ "comboStrategyAria": "Комбинирана стратегия Aria",
+ "input": "Вход",
+ "testingConnection": "Тестване на връзката",
+ "excludeDomains": "Изключване на домейни",
+ "webCookieProviders": "Доставчици на уеб бисквитки",
+ "allTestsPassed": "Всички тестове са успешни",
+ "openaiCompatibleName": "Име за съвместимост с OpenAI",
+ "warningCostOptimizedPartialPricing": "Предупреждение за частично ценообразуване с оптимизирани разходи",
+ "comboDefaultsGuideTitle": "Заглавие на ръководството за настройки по подразбиране на комбинациите",
+ "hoursAgo": "часа по-рано",
+ "notAvailable": "Не е налично",
+ "skipAndContinue": "Пропускане и продължаване",
+ "moderations": "Модериране",
+ "proxyConfig": "Конфигурация на прокси",
+ "upstreamProxyProviders": "Доставчици на прокси нагоре по веригата",
+ "exportAll": "Експортиране на всички",
+ "queuedCount": "Брой в опашката",
+ "resetAll": "Нулиране на всички",
+ "noTranslations": "Няма преводи",
+ "avgLatency": "Средна латентност",
+ "throttleStatus": "Състояние на ограничаването",
+ "backupRetentionDesc": "Описание на срока за съхранение на резервни копия",
+ "noCBData": "Няма данни за Cb",
+ "chainDeleted": "Веригата е изтрита",
+ "timeLeft": "Оставащо време",
+ "expirationBannerExpired": "Банер за изтекъл срок",
+ "language": "Език",
+ "invalidFileType": "Невалиден тип файл",
+ "monitoredProviders": "Наблюдавани доставчици",
+ "errors": "Грешки",
+ "heap": "Динамична памет",
+ "chatCompletions": "Завършвания на чат",
+ "exampleTemplatesHint": "Подсказка за примерни шаблони",
+ "retryDelayLabel": "Етикет за забавяне при повторен опит",
+ "audioTranscription": "Транскрибиране на аудио",
+ "fallbackChainsDesc": "Описание на резервните вериги",
+ "exampleTemplates": "Примерни шаблони",
+ "connectionsCount": "Брой връзки",
+ "modelsPathLabel": "Етикет за пътя до моделите",
+ "activeProvidersHint": "Подсказка за активните доставчици",
+ "activeLockouts": "Активни блокировки",
+ "invalid": "Невалидно",
+ "skipPassword": "Пропускане на паролата",
+ "moveUp": "Преместване нагоре",
+ "timeRange": "Времеви диапазон",
+ "stickyLimitDesc": "Описание на постоянния лимит",
+ "cloudBenefitEdge": "Предимство на облака Edge",
+ "custom": "Персонализирано",
+ "verifying": "Проверява се",
+ "baseUrlLabel": "Етикет за основния URL",
+ "setPassword": "Задаване на парола",
+ "safeSearchStrict": "Строго безопасно търсене",
+ "noChangesSinceBackup": "Няма промени след архивирането",
+ "modelsPathHint": "Подсказка за пътя към моделите",
+ "audioTranscriptions": "Аудиотранскрипции",
+ "testCombo": "Тестване на комбинацията",
+ "mcpQuickStartTitle": "Заглавие за бърз старт на MCP",
+ "comboUpdated": "Комбинацията е актуализирана",
+ "weighted": "Претеглено",
+ "providers": "Доставчици",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Описание при липса на резервни вериги",
+ "yesImport": "Да, импортиране",
+ "lockoutsAutoRefreshHint": "Подсказка за автоматично обновяване на блокиранията",
+ "tabApis": "Раздел „API“",
+ "sectionDescription": "Описание на раздела",
+ "filter": "Филтър",
+ "purgeLogsFailed": "Неуспешно изчистване на регистрационните файлове",
+ "latency": "Закъснение",
+ "testAllOAuth": "Тестване на всички OAuth",
+ "mcpQuickStartStep3": "Стъпка 3 от бързия старт на MCP",
+ "repairEnvFailed": "Неуспешно възстановяване на средата",
+ "zedImportHint": "Подсказка за импортиране от Zed",
+ "modelsAcrossEndpoints": "Модели в различните крайни точки",
+ "autoDisableBannedAccounts": "Автоматично деактивиране на блокирани акаунти",
+ "securityDesc": "Описание на сигурността",
+ "listModels": "Списък с модели",
+ "backupRestore": "Архивиране и възстановяване",
+ "target": "Цел",
+ "zedImportSuccess": "Успешно импортиране от Zed",
+ "lastHeaderUpdate": "Последна актуализация на заглавката",
+ "categoryCore": "Основна категория",
+ "noFallbackChains": "Няма резервни вериги",
+ "noSearchProviders": "Няма доставчици за търсене",
+ "autoBalance": "Автоматично балансиране",
+ "noModelsYet": "Все още няма модели",
+ "signatureFamily": "Семейство подписи",
+ "externalApiCalls": "Външни API извиквания",
+ "providerOverridesDesc": "Описание на замените за доставчика",
+ "signatureTool": "Инструмент за подписване",
+ "connectionFailed": "Неуспешно свързване",
+ "activeLimitersPlural": "Активни ограничители",
+ "doneDesc": "Описание на завършването",
+ "down": "Не работи",
+ "noDataYet": "Все още няма данни",
+ "activeProviders": "Активни доставчици",
+ "nameInvalid": "Невалидно име",
+ "skip": "Пропускане",
+ "createChain": "Създаване на верига",
+ "audioSpeech": "Аудиореч",
+ "cacheCleared": "Кешът е изчистен",
+ "searchTypeNews": "Тип търсене: новини",
+ "durationMillisecondsShort": "Продължителност (мс)",
+ "addOpenAICompatible": "Добавяне на OpenAI-съвместим доставчик",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "На опашката",
+ "domainPlaceholder": "Заместващ текст за домейн",
+ "durationMinutesShort": "Продължителност (мин)",
+ "verifyingConnection": "Проверка на връзката",
+ "imageProviders": "Доставчици на изображения",
+ "protocolToolsLabel": "Етикет за протоколни инструменти",
+ "queryPlaceholder": "Заместващ текст за заявка",
+ "videoGeneration": "Генериране на видео",
+ "timeRangeWeek": "Период: седмица",
+ "limitExhausted": "Лимитът е изчерпан",
+ "failedDisable": "Неуспешно деактивиране",
+ "inMemoryNote": "Бележка за съхранение в паметта",
+ "compatibleHint": "Съвет за съвместимост",
+ "errorShort": "Грешка",
+ "advancedHint": "Съвет за разширени настройки",
+ "restoreFailed": "Неуспешно възстановяване",
+ "searchProvidersHeading": "Доставчици за търсене",
+ "comboName": "Име на комбинацията",
+ "autoDisableDescription": "Описание на автоматичното деактивиране",
+ "embeddingsDesc": "Описание на векторните представяния",
+ "operational": "Работи",
+ "testAllApiKey": "Тестване на всички API ключове",
+ "backupCreated": "Архивното копие е създадено",
+ "errorDuringImport": "Грешка по време на импортирането",
+ "comboDefaultsGuideHint2": "Подсказка 2 от ръководството за комбинирани настройки по подразбиране",
+ "connecting": "Свързване",
+ "fillModelAndProviders": "Попълнете модела и доставчиците",
+ "syncing": "Синхронизиране",
+ "resetConfirm": "Потвърждение за нулиране",
+ "trackMetrics": "Проследяване на показатели",
+ "successful": "Успешно",
+ "recovering": "Възстановяване",
+ "autoDisableThreshold": "Праг за автоматично деактивиране",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Синхронизиране на данни",
+ "cloudBenefitPorts": "Предимства на облака: портове",
+ "compatibleProviders": "Съвместими доставчици",
"freeTierProviders": "Доставчици на безплатни нива",
"freeTierLabel": "Налично безплатно ниво",
"freeTierProvidersDesc": "Доставчици с безплатни нива — някои изискват регистрация на API ключ, други изобщо не се нуждаят от идентификационни данни.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "Изчистване на кеша",
+ "reqs": "Заявки",
+ "addAnthropicCompatible": "Добавяне на доставчик, съвместим с Anthropic",
+ "apiKeyProviders": "Доставчици на API ключове",
+ "tabsAria": "ARIA за раздели",
+ "resetting": "Нулиране",
+ "millisecondsAbbr": "мс",
+ "backupReasonPreRestore": "Причина за архивиране преди възстановяване",
+ "disableCloud": "Деактивиране на облака",
+ "newProviderNameAria": "ARIA за име на нов доставчик",
+ "passwordsMismatch": "Паролите не съвпадат",
+ "a2aQuickStartStep3": "Стъпка 3 от бързото ръководство за A2A",
+ "liveMonitorDescriptionSuffix": "Суфикс към описанието на наблюдението в реално време",
+ "failedAddProvider": "Неуспешно добавяне на доставчик",
+ "addAtLeastOneProvider": "Добавете поне един доставчик",
+ "reasonSeparator": "Разделител за причината",
+ "zedImporting": "Импортиране на Zed",
+ "confirmPasswordPlaceholder": "Потвърдете паролата",
+ "whatYouGet": "Какво получавате",
+ "signatureSession": "Подпис на сесията",
+ "errorCountNoCode": "Брой грешки без код",
+ "testing": "Тестване",
+ "providersCommaSeparated": "Доставчици, разделени със запетаи",
+ "exportDatabase": "Експортиране на базата данни",
+ "hitRate": "Процент попадения",
+ "completionsLegacy": "Остарели довършвания",
+ "removeModel": "Премахване на модел",
+ "timeRangeDay": "Времеви диапазон: ден",
+ "cloudRequestFailed": "Неуспешна облачна заявка",
+ "updatedAt": "Актуализирано на",
+ "monitoredProvidersHint": "Подсказка за наблюдаваните доставчици",
+ "connectionSuccessful": "Успешна връзка",
+ "latencyP50": "Латентност P50",
+ "logsDeleted": "Регистрационните файлове са изтрити",
+ "chatTester": "Тестер за чат",
+ "safeSearchOff": "Безопасното търсене е изключено",
+ "nameHint": "Подсказка за име",
+ "debugToggle": "Превключвател за отстраняване на грешки",
+ "embedding": "Векторно представяне",
+ "issuesLabel": "Етикет за проблеми",
+ "optionAny": "Опция „Всички“",
+ "maxNestingDepth": "Максимална дълбочина на влагане",
+ "rerank": "Преранжиране",
+ "checking": "Проверка",
+ "getStarted": "Първи стъпки",
+ "restoreSuccess": "Успешно възстановяване",
+ "issuesDetected": "Открити проблеми",
+ "signatureCache": "Кеш за подписи",
+ "modelLockouts": "Блокирания на модели",
+ "usingCloudProxy": "Използва се облачно прокси",
+ "loadingHealth": "Зареждане на състоянието",
+ "providerOverrides": "Заместващи настройки за доставчици",
+ "audioTranscriptionDesc": "Описание на аудиотранскрипцията",
+ "learnedFromHeaders": "Научено от заглавките",
+ "totalRequests": "Общо заявки",
+ "cloudUnstableNote": "Бележка за нестабилност на облачната услуга",
"gamificationAdmin": "Администратор на Gamification",
"monitorAnomaliesAndHealth": "Наблюдавайте аномалии и изправност на системата",
"flaggedAnomalies": "Маркирани аномалии",
@@ -704,7 +704,7 @@
"apiKey": "API ключ",
"xpLastHour": "XP (1 ч)",
"zScore": "Z-резултат",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Подозрително",
"tokensCommunityServers": "Общностни сървъри",
"tokensServerNamePlaceholder": "Име на сървъра",
"tokensApiKeyPlaceholder": "API ключ",
@@ -738,7 +738,7 @@
"tokensSent": "Изпратено",
"tokensReceived": "Получено",
"tokensCreatingInvite": "Създаване...",
- "tokensCreateInvite": "Create Invite",
+ "tokensCreateInvite": "Създаване на покана",
"tokensInviteCreated": "Кодът за покана е създаден",
"tokensRedeeming": "Активиране...",
"tokensRedeem": "Активиране",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Зареждат се още...",
"recommended": "Препоръчително",
"understand": "Разбирам",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "Пакетна обработка",
+ "batchConceptSubtitle": "Обработвайте асинхронно хиляди заявки на ~50% от цената (в рамките на 24 часа). Идеално за оценки, класификация и векторни представяния.",
+ "batchConceptHowItWorks": "Как работи",
+ "batchConceptBenefit50pct": "50% отстъпка за входни + изходни токени",
+ "batchConceptAsync24h": "Асинхронно, с 24-часов срок за завършване",
+ "batchConceptUseCases": "Най-подходящо за масова класификация, оценки и векторни представяния",
+ "batchHeaderSubtitle": "Изпълнете много заявки като една задача",
+ "batchStep1": "1 · Качване на JSONL",
+ "batchStep1Desc": "Добавяне на заявки",
+ "batchStep2": "2 · Създаване на пакет",
+ "batchStep2Desc": "Изпълнение на задачата",
+ "batchStep3": "3 · Получаване на резултатите",
+ "batchStep3Desc": "Изтегляне на резултатите",
+ "filesConceptTitle": "Пакетни файлове",
+ "filesConceptSubtitle": "JSONL файлове, използвани от пакетите: входни заявки, резултати и грешки.",
+ "filesConceptInput": "Вход — вашият JSONL с по една заявка на ред",
+ "filesConceptOutput": "Изход — резултати от завършените заявки",
+ "filesConceptError": "Грешки — неуспешни заявки",
+ "filesConceptRetention": "Срок на съхранение: 30 дни по подразбиране (29 дни при Anthropic)",
+ "wizardTitle": "Нов пакет",
+ "wizardClose": "Затваряне",
+ "wizardNext": "Напред",
+ "wizardBack": "Назад",
+ "wizardCancel": "Отказ",
+ "wizardCreate": "Създаване на пакет",
+ "wizardCreating": "Създаване…",
+ "wizardStep1Destination": "Местоназначение",
+ "wizardStep2Input": "Вход",
+ "wizardStep3Validate": "Валидиране",
+ "wizardStep4Cost": "Цена и създаване",
+ "wizardProviderLabel": "Доставчик",
+ "wizardEndpointLabel": "Крайна точка",
+ "wizardModelLabel": "Модел",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (ще го преобразуваме)",
+ "wizardDropOrPick": "Пуснете файл тук или щракнете, за да изберете",
+ "wizardCsvMappingTitle": "Съпоставяне на колоните в CSV → полета на заявката",
+ "wizardCsvMappingAddField": "Добавяне на поле",
"wizardCsvNoColumns": "Не са открити колони в заглавната част на CSV файла.",
"wizardCsvIgnoreColumn": "— игнориране —",
"wizardCsvCustomIdMapped": "custom_id е съпоставен",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} реда са анализирани",
"wizardCsvRowsSkipped": "{count} реда са прескочени",
"wizardCsvRowError": "Ред {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Всички редове са валидни",
"wizardValidating": "Валидиране…",
"wizardValidationParseFailed": "Валидирането неуспешно — съдържанието не може да бъде анализирано.",
"wizardValidationSummary": "{lines} реда · {ids} уникални custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Открити са дублиращи се custom_ids:",
"wizardValidationFirstErrors": "Грешки (първите {count}):",
"wizardValidationLine": "Ред {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Грешки при валидирането",
+ "wizardValidationPreview": "Преглед (първите 5 заявки)",
+ "wizardValidationSamplingNote": "Файлът е голям — валидиран е чрез извадка (първите 1000 + последните 100 реда). Пълното валидиране се извършва на сървъра.",
+ "wizardCostSync": "Цена при синхронно изпълнение",
+ "wizardCostBatch": "Цена за пакет (-50%)",
+ "wizardCostSavings": "Спестявания",
+ "wizardCostEstimatedNotice": "Прогнозна цена — действителното таксуване може да се различава.",
+ "wizardErrorUpload": "Неуспешно качване на файла. Опитайте отново.",
+ "wizardErrorCreate": "Неуспешно създаване на партидата. Опитайте отново.",
+ "wizardEmptyProviders": "Свържете доставчик с поддръжка на партиди (OpenAI, Anthropic или Gemini), за да създадете партида.",
+ "uploadModalTitle": "Качване на файл за партида",
+ "uploadModalDropOrPick": "Пуснете .jsonl файл тук или щракнете, за да изберете",
+ "uploadModalUpload": "Качване",
+ "uploadModalCancel": "Отказ",
+ "uploadModalError": "Качването не бе успешно. Опитайте отново.",
+ "uploadModalSuccess": "Качено",
+ "uploadModalSizeLimit": "Макс. 512 MB",
+ "batchListNewButton": "Нова партида",
+ "batchListAutoRefresh": "Автоматично опресняване на 30 сек.",
+ "batchListCostColumn": "Цена",
+ "batchActionCancel": "Отказ",
+ "batchActionDownloadOutput": "Изтегляне на резултата",
+ "batchActionDownloadErrors": "Изтегляне на грешките",
+ "batchActionRetry": "Повторен опит за неуспешните",
+ "batchActionRetryConfirm": "Да се изпратят ли отново {n} неуспешни заявки? Крайната цена зависи от действително използваните токени.",
+ "expirationBadgeCritical": "Критично",
+ "expirationBadgeWarning": "Скоро",
+ "expirationBadgeNormal": "Изчаква",
+ "expirationBadgeExpired": "Изтекло",
+ "filesListUploadButton": "Качване",
+ "filesListUsedByColumn": "Използва се от",
+ "filesListUsedByNone": "Няма",
+ "filesListUsedByRoleInput": "вход",
+ "filesListUsedByRoleOutput": "изход",
+ "filesListUsedByRoleError": "грешка",
+ "filesListSizeColumn": "Размер",
+ "batchListProgressPartial": "(частично)",
+ "batchListProviderColumn": "Доставчик",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
- "batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListProviderOther": "Други",
+ "batchListTitle": "Партиди",
+ "batchListCount": "{count} партиди",
+ "batchListRemovingCompleted": "Премахване…",
+ "batchListRemoveCompleted": "Премахване на завършените",
+ "batchListTableStatus": "Състояние",
+ "batchListTableId": "ИД",
+ "batchListTableEndpoint": "Крайна точка",
+ "batchListTableModel": "Модел",
+ "batchListTableProgress": "Напредък",
+ "batchListTableCreated": "Създадено",
+ "batchListTableExpires": "Изтича",
+ "batchListLoading": "Зареждане…",
+ "batchListEmpty": "Няма намерени пакети",
+ "batchListValidating": "Проверка…",
+ "batchStatusAll": "Всички състояния",
+ "batchStatusInProgress": "В процес",
+ "batchStatusValidating": "Проверява се",
+ "batchStatusFinalizing": "Финализиране",
+ "batchStatusCompleted": "Завършено",
+ "batchStatusFailed": "Неуспешно",
+ "batchStatusCancelled": "Отменено",
+ "batchStatusCancelling": "Отменяне",
+ "batchStatusExpired": "Изтекло",
+ "batchStatusCompletedWithFailures": "завършено с неуспешни заявки",
+ "batchStatusInProgressWithFailures": "в процес (с неуспешни заявки)",
+ "batchStatusFinalizingWithFailures": "финализиране (с неуспешни заявки)",
+ "batchStatusCancelledWithFailures": "отменено с неуспешни заявки",
+ "batchStatusExpiredWithFailures": "изтекло (частично)",
+ "wizardCostEstimating": "Изчисляване на разходите…",
+ "wizardCostRequests": "Заявки",
+ "wizardCostInputTok": "входни токени",
+ "wizardCostOutputTok": "изходни токени",
+ "wizardCostWindow": "Прозорец",
+ "wizardDestinationSelectProvider": "Изберете доставчик…",
+ "wizardDestinationSelectModel": "Изберете модел…",
+ "wizardDestinationConnectProvider": "Свързване на доставчик",
+ "batchListBatchCreated": "Пакетът {id} е създаден — списъкът се обновява…",
+ "batchListBatchCreatedDismiss": "Отхвърляне",
+ "batchListRefreshing": "Обновяване…",
+ "batchListRefresh": "Обновяване",
+ "uploadFileModalRemove": "Премахване",
+ "uploadFileModalUploading": "Качване…",
+ "wizardInputReading": "Четене на файла…",
+ "wizardInputReady": "Готово",
+ "wizardInputLargeFileLabel": "Голям файл — проверка чрез извадка",
+ "wizardInputCsvJsonlReady": "JSONL е генериран — готов за проверка.",
+ "wizardInputLargeFileWarning": "Открит е голям файл — проверката се извършва чрез извадка (първите 5 MB + последните 100 KB). Пълната проверка се извършва от страна на сървъра.",
+ "wizardCostWindow24h": "24-часов срок за завършване",
+ "wizardValidationFieldsOk": "задължителните полета са валидни",
+ "filesListDelete": "Изтриване",
+ "filesListDownload": "Изтегляне",
+ "batchDetailActionCancel": "Отказване на пакета",
+ "batchDetailActionRetry": "Повторен опит за неуспешните заявки",
+ "batchDetailCancelling": "Отказване…",
+ "batchDetailRetrying": "Подготовка за повторен опит…",
+ "batchDetailCancelConfirm": "Да се откаже ли този пакет? Изпълняваните заявки ще бъдат спрени.",
+ "batchActionCancelError": "Пакетът не можа да бъде отказан. Опитайте отново.",
+ "batchActionRetryError": "Неуспешните заявки не можаха да бъдат изпратени повторно. Опитайте отново.",
+ "batchConceptRetentionNote": "Файловете с резултати и грешки се съхраняват 30 дни (Anthropic: 29 дни)",
"batchFilesSizeColumn": "Размер",
"toggleNoAuthProvider": "Превключване на доставчик без удостоверяване",
"loadingModels": "Зареждане на модели…",
@@ -988,10 +988,14 @@
"disabled": "Деактивирано",
"featureFlagOmnirouteEmergencyFallbackDescription": "Маршрутизиране на заявки с изчерпан бюджет към аварийния безплатен резервен доставчик/модел.",
"featureFlagArenaEloSyncEnabledDescription": "Активиране на периодична синхронизация на ELO от класацията на Arena AI за класиране на интелигентността на моделите.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Генериране и вмъкване на обобщения на разговорите, когато комбинираното маршрутизиране превключва между модели. Деактивирайте, за да третирате превключванията между модели независимо и да предотвратите фонови заявки за предаване за всички съществуващи и бъдещи комбинации.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Рекламирайте claude/<provider>/<model> mirror идентификатори на /v1/models, така че списъкът с модели на Claude Code gateway да включва неклаудови модели. Внимание: удвоява записите в каталога за всички клиенти, когато е активирано глобално.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Главен превключвател за псевдонимите на шлюза no-think/<provider>/<model>. Включено (по подразбиране): /v1/models показва вариант без разсъждение за всеки отговарящ на условията модел Claude с възможност за разсъждение, а идентификатор no-think/, изпратен в заявка, се преобразува обратно към реалния модел с потиснато разсъждение. Изключено: не се показват варианти и идентификатор no-think/ се третира като всеки друг неизвестен идентификатор на модел. Индивидуалната настройка за включване/изключване ModelSpec.noThinkingAlias за всеки модел продължава да се прилага, докато тази опция е включена.",
"featureFlagChatVirtualLanesEnabledDescription": "Активирайте адаптивни виртуални ленти за допускане за всеки наемател (tenant) при изпращане към доставчици (#9654): скокът в натоварването на един наемател вече не връща 503 на друг. Променливата на средата OMNIROUTE_CHAT_VIRTUAL_LANES има предимство пред тази настройка в таблото; промените влизат в сила след рестартиране на сървъра.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Страници на доставчиците в таблото: показва значката „Безплатно“ само при сигнали, които доставчикът зачита — премахва евристиката за показваното име, небулевите полета за безплатен достъп и суфиксите :free при регистрирани доставчици без документиран безплатен план. При „Изкл.“ се запазва предишното правило за значката.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Пуловете от проксита и ротацията на opencode за всеки акаунт временно спират повторното използване на прокси, което току-що е дало грешка (отказана TCP проверка или получен чрез него отговор 429), за период в рамките на процеса, който се удвоява при всяко повторение до достигане на максимална стойност. Не се записва състояние на проксито; ако всички кандидати бъдат временно изключени, изборът остава непроменен. Изключено по подразбиране: редът на избор е точно този на обикновената ротация.",
+ "featureFlagProxyPoolEgressObservationDescription": "Показва под пул от проксита в таблото колко наблюдавани изходящи IP адреса са обслужвали членовете му през последните 24 ч., колко връзки са ги използвали и най-големия брой връзки зад един IP адрес. Само за четене, изчислява се от дневника на проксито и никога не се използва за маршрутизиране. Изключено по подразбиране: редакторът на пула остава непроменен, а маршрутът за наблюдение връща null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "При проверката на състоянието на прокситата позволява на проверка, отказана от целта (401/403/429: проксито е препратило заявката, но местоназначението е отказало този изходящ IP адрес), да нулира поредицата от последователни неуспехи на проксито, както при успешно обслужена проверка. Изключено по подразбиране: отказът остава неутрален и запазва поредицата. Отговор 5xx остава неубедителен и в двата случая, а отказът никога не премахва, деактивира или активира повторно прокси.",
"sidebar": {
"home": "Начало",
"dashboard": "Табло",
@@ -1008,11 +1012,11 @@
"settings": "Настройки",
"translator": "Преводач",
"playground": "Площадка",
- "searchTools": "Search Tools",
+ "searchTools": "Инструменти за търсене",
"agents": "Агенти",
"cloudAgents": "Облачни агенти",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Памет",
+ "skills": "Умения",
"omniSkills": "OmniSkills",
"agentSkills": "AgentSkills",
"chaosConfig": "Режим Хаос",
@@ -1065,50 +1069,50 @@
"cliToolsShort": "Инструменти",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "Пакетни задачи",
+ "themeSystem": "Система за теми",
+ "whitelabelingDesc": "Описание на персонализираното брандиране",
+ "switchThemes": "Превключване на темите",
+ "themeAccentDesc": "Описание на акцентния цвят на темата",
+ "uploadFavicon": "Качване на икона на сайта",
+ "themeDark": "Тъмна тема",
+ "customLogoDesc": "Описание на персонализираното лого",
+ "sidebarVisibilityToggle": "Превключване на видимостта на страничната лента",
+ "themeAccent": "Акцентен цвят на темата",
+ "resetFavicon": "Нулиране на иконата на сайта",
+ "whitelabeling": "Персонализирано брандиране",
+ "darkMode": "Тъмен режим",
+ "uploadLogo": "Качване на лого",
+ "themeLight": "Светла тема",
+ "appName": "Име на приложението",
+ "appNameDesc": "Описание на името на приложението",
+ "resetLogo": "Нулиране на логото",
+ "customFavicon": "Персонализирана икона на сайта",
+ "hideHealthLogs": "Скриване на журналите за състоянието",
+ "customLogo": "Персонализирано лого",
+ "appearance": "Външен вид",
+ "themeSelectionAria": "ARIA етикет за избор на тема",
+ "themeCreate": "Създаване на тема",
+ "customFaviconDesc": "Описание на персонализираната фавикона",
+ "logoPreview": "Преглед на логото",
+ "themeCustom": "Персонализирана тема",
+ "hideHealthLogsDesc": "Описание за скриване на журналите за състоянието",
+ "faviconPreview": "Преглед на фавиконата",
+ "changelog": "Списък с промени",
+ "contextSection": "Контекст и кеш",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Комбинации от енджини",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
- "contextUltra": "Ultra",
+ "contextUltra": "Ултра",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Настройки за компресиране",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Студио за комбинации",
"combosLiveSubtitle": "Каскада на маршрутизиране в реално време",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Изключения",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Каскада на двигатели в реално време",
"compressionExclusionsSubtitle": "Заобикаляне на всеки модел/краен пункт",
"chaosConfigSubtitle": "Паралелно изпълнение на множество модели",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Маршрутизиране",
+ "protocolsSection": "Протоколи",
+ "agentsAiSection": "Агенти и ИИ",
+ "cacheContextSection": "Кеш и контекст",
+ "analyticsSection": "Анализи",
+ "costsSection": "Разходи",
+ "monitoringSection": "Наблюдение",
+ "auditSecuritySection": "Одит и сигурност",
+ "devtoolsSection": "Инструменти за разработчици",
+ "configurationSection": "Конфигурация",
+ "aiFeaturesSection": "Функции с ИИ",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Плъгини",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "Крайни точки на API",
+ "batchFiles": "Файлове",
+ "analyticsEvals": "Оценки",
+ "analyticsSearch": "Търсене",
+ "analyticsUtilization": "Използване",
+ "analyticsComboHealth": "Състояние на комбинациите",
+ "analyticsCompression": "Компресия",
+ "costsBudget": "Бюджет",
"costsFreeTiers": "Бюджет за безплатния план",
"costsFreeTiersSubtitle": "Месечни лимити за безплатни токени",
"freeProviderRankings": "Класация на безплатните доставчици",
"freeProviderRankingsSubtitle": "Най-добрите безплатни доставчици, класирани по ELO резултати на моделите",
"radar": "Каталог на радара",
"radarSubtitle": "Безплатен модел каталог, обогатен от общността",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Споделяне на квота",
+ "costsPricing": "Ценообразуване",
+ "logsProxy": "Логове на проксито",
+ "logsConsole": "Конзола",
+ "logsActivity": "Активност",
+ "auditMcp": "Одит на MCP",
"auditA2a": "A2A одит",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Външен вид",
+ "settingsAi": "Настройки на AI",
+ "settingsSecurity": "Сигурност",
"settingsAccessTokens": "Токени за достъп",
"settingsFeatureFlags": "Флагове за функции",
"settingsCache": "Кеш",
"settingsAuthz": "Авторизация",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsRouting": "Маршрутизиране",
+ "settingsResilience": "Устойчивост",
"modelLockout": "Блокиране на модел",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Разширени",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Квота на доставчика",
+ "providerQuota": "Квота на доставчика",
+ "runtime": "Среда за изпълнение",
+ "consoleLogs": "Конзолни логове",
+ "logsTimeline": "Хронология",
"logsTimelineSubtitle": "Визуален времеви график на заявките",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Разговори",
+ "conversationsSubtitle": "Многоходови агентни разговори",
+ "globalRouting": "Глобално маршрутизиране",
+ "mitmProxy": "MITM прокси",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "agenticFeaturesSection": "Агентни функции",
+ "otherFeaturesSection": "Други функции",
+ "compressionContextGroup": "Компресия на контекста",
+ "gamificationGroup": "Геймификация",
+ "toolsGroup": "Инструменти",
+ "integrationsGroup": "Интеграции",
+ "proxyGroup": "Прокси",
+ "costsParametersGroup": "Параметри на разходите",
+ "auditGroup": "Одит",
+ "batchGroup": "Пакетна обработка",
+ "homeSubtitle": "Общ преглед на таблото",
+ "providersSubtitle": "Управление на доставчиците на AI",
+ "quotaTrackerSubtitle": "Проследяване на ограниченията за използване",
+ "providerQuotaSubtitle": "Проследяване на ограниченията за използване при доставчика",
+ "runtimeSubtitle": "Устойчивост в реално време и сесии",
+ "contextCombosSubtitle": "Комбиниране на механизми за компресиране",
+ "cliToolsSubtitle": "Конфигуриране на среди за изпълнение на CLI",
+ "agentsSubtitle": "Управление на локални агенти",
+ "cloudAgentsSubtitle": "Управление на облачни агенти",
+ "apiEndpointsSubtitle": "Предоставяне на персонализирани крайни точки",
+ "proxySubtitle": "Настройки на HTTP прокси",
+ "mitmProxySubtitle": "MITM прихващане",
+ "oneProxySubtitle": "Публичен прокси шлюз",
+ "leaderboard": "Класация",
+ "profile": "Профил",
+ "tokens": "Токени",
+ "gamificationAdmin": "Администриране на геймификацията",
+ "leaderboardSubtitle": "Класации и постижения",
+ "profileSubtitle": "Акаунт и предпочитания",
+ "tokensSubtitle": "Използване на токени и бюджети",
+ "gamificationAdminSubtitle": "Наблюдение за аномалии и предотвратяване на измами",
+ "usageSubtitle": "Статистика за трафика и използването",
+ "analyticsComboHealthSubtitle": "Надеждност на комбинираната цел",
+ "analyticsUtilizationSubtitle": "Използване на доставчиците",
+ "costsSubtitle": "Разбивка на разходите",
+ "cacheSubtitle": "Процент попадения в кеша",
+ "analyticsCompressionSubtitle": "Статистика за спестените токени",
+ "analyticsSearchSubtitle": "Анализи на инструмента за търсене",
+ "analyticsEvalsSubtitle": "Резултати от набора за оценяване",
"providerStats": "Статистика на доставчиците",
"providerStatsSubtitle": "Метрики за латентност и производителност",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Регистрационни файлове на приложението",
+ "logsProxySubtitle": "Регистрационни файлове за прокси трафика",
+ "consoleLogsSubtitle": "Изход от конзолата",
+ "logsActivitySubtitle": "Дневник на потребителската активност",
+ "healthSubtitle": "Проверка на състоянието на системата",
+ "costsPricingSubtitle": "Правила за ценообразуване по модели",
+ "costsBudgetSubtitle": "Бюджетни лимити",
+ "costsQuotaShareSubtitle": "Споделяне на квотите на доставчика между ключовете",
+ "auditLogSubtitle": "Одит на оторизацията",
+ "auditMcpSubtitle": "Одит на MCP сървъра",
+ "auditA2aSubtitle": "Одит на A2A протокола",
+ "translatorSubtitle": "Преобразуване на формати",
+ "playgroundSubtitle": "Тестване на подкани в реално време",
+ "searchToolsSubtitle": "Регистър на инструменти за търсене",
+ "memorySubtitle": "Постоянна памет на агента",
+ "omniSkillsSubtitle": "Регистър на уменията в Sandbox",
+ "agentSkillsSubtitle": "Регистър на A2A уменията",
+ "mcpSubtitle": "Контроли за MCP сървъра",
+ "a2aSubtitle": "Сървър за протокола A2A",
"pluginsSubtitle": "Магазин за плъгини и инсталации",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Кеширани мултимедийни файлове",
+ "batchFilesSubtitle": "Файлове за пакетен вход/изход",
+ "settingsSubtitle": "Всички настройки",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Тема и оформление",
+ "settingsAiSubtitle": "Настройки по подразбиране за поведението на AI",
+ "globalRoutingSubtitle": "Глобални правила за маршрутизиране",
+ "settingsResilienceSubtitle": "Повторни опити и прекъсвачи",
+ "settingsAdvancedSubtitle": "Опции за напреднали потребители",
+ "settingsSecuritySubtitle": "Удостоверяване и шифроване",
"settingsAccessTokensSubtitle": "Ограничени CLI токени за отдалечен режим",
"settingsFeatureFlagsSubtitle": "Превключване на системните възможности",
"settingsCacheSubtitle": "Каталог на модели и кеширане на отговори",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Странична лента",
+ "settingsSidebarSubtitle": "Персонализиране на оформлението на страничната лента",
"settingsAuthzSubtitle": "Инвентар на маршрутите и политика за заобикаляне",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Документация",
+ "issuesSubtitle": "Докладване на грешка",
+ "changelogSubtitle": "Бележки по изданието",
"costsQuotaPlans": "Планове и квоти",
"costsQuotaPlansSubtitle": "Конфигуриране на планове по доставчик",
"activity": "Активност",
@@ -1274,8 +1278,8 @@
"agentBridge": "Agent Bridge",
"agentBridgeSubtitle": "Прихващане на трафик от IDE агенти",
"trafficInspector": "Инспектор на трафика",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Преглеждайте трафика на заявките и отговорите от приложенията си",
+ "trafficInspectorPurpose": "Вижте точно какво изпраща приложението ви до доставчиците на AI и какво получава от тях. Работи с всеки клиент, съвместим с OpenAI.",
"cliCode": "CLI код",
"cliCodeSubtitle": "Инструменти за код, насочени към OmniRoute",
"cliAgents": "CLI агенти",
@@ -1341,7 +1345,7 @@
"refresh": "Опресняване",
"loading": "Уеб кукичките се зареждат...",
"never": "Никога",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {няма неуспехи} one {# неуспех} other {# неуспеха}}",
"testWebhook": "Изпрати тест",
"testSuccess": "Тестовата уебкукичка е изпратена успешно.",
"testFailed": "Тестът на уеб кукичката е неуспешен.",
@@ -1374,64 +1378,64 @@
"step3": "Проверете конфигурацията, като изпратите тестови данни (payload), за да се уверите, че крайната точка ги получава.",
"step4": "Защитете вашата крайна точка, като валидирате заглавката X-Webhook-Signature HMAC-SHA256 с помощта на тайната на уебхука.",
"title": "Как работят уебхуковете",
- "customOnly": "Only applicable for custom endpoint integrations.",
- "hmacRecipeTitle": "HMAC Verification Recipe",
- "hmacRecipe": "To verify webhook payloads in Node.js, compute the HMAC-SHA256 of the raw request body using your secret key. Compare it to the X-Webhook-Signature header using timingSafeEqual.",
- "timeoutNote": "Webhook deliveries have a timeout of 10 seconds.",
- "retryNote": "Failed deliveries are retried up to 5 times with exponential backoff.",
- "docsLink": "Read the full Webhooks developer guide",
- "hmacRecipePython": "Python HMAC verification: hmac.new(secret, body, hashlib.sha256).hexdigest()",
- "hmacRecipeBash": "Bash HMAC verification: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
+ "customOnly": "Приложимо е само за интеграции с персонализирани крайни точки.",
+ "hmacRecipeTitle": "Рецепта за проверка с HMAC",
+ "hmacRecipe": "За да проверите полезните данни на уебхук в Node.js, изчислете HMAC-SHA256 на необработеното тяло на заявката, като използвате тайния си ключ. Сравнете го със заглавката X-Webhook-Signature чрез timingSafeEqual.",
+ "timeoutNote": "Доставките на уебхукове имат време за изчакване от 10 секунди.",
+ "retryNote": "Неуспешните доставки се опитват повторно до 5 пъти с експоненциално увеличаване на интервала.",
+ "docsLink": "Прочетете пълното ръководство за разработчици за Webhooks",
+ "hmacRecipePython": "Проверка на HMAC с Python: hmac.new(secret, body, hashlib.sha256).hexdigest()",
+ "hmacRecipeBash": "Проверка на HMAC с Bash: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
},
"deliveries": {
- "title": "Delivery Logs",
- "loadFailed": "Failed to load webhook delivery logs.",
- "empty": "No deliveries recorded yet. Trigger an event or send a test payload.",
- "status": "Status",
- "event": "Event",
- "latency": "Latency",
- "at": "Sent At"
+ "title": "Регистри на доставките",
+ "loadFailed": "Регистрите за доставките на уебхукове не можаха да се заредят.",
+ "empty": "Все още няма регистрирани доставки. Задействайте събитие или изпратете тестови полезни данни.",
+ "status": "Състояние",
+ "event": "Събитие",
+ "latency": "Закъснение",
+ "at": "Изпратено на"
},
"kinds": {
- "comingSoon": "Coming Soon",
+ "comingSoon": "Очаквайте скоро",
"slack": "Slack",
- "slackDesc": "Post system events directly into a Slack channel",
+ "slackDesc": "Публикувайте системни събития директно в канал в Slack",
"telegram": "Telegram",
- "telegramDesc": "Send event messages using a Telegram bot",
+ "telegramDesc": "Изпращайте съобщения за събития чрез Telegram бот",
"discord": "Discord",
- "discordDesc": "Deliver real-time updates directly to a Discord server",
- "custom": "Custom Webhook",
- "customDesc": "Deliver system event payloads to any HTTPS endpoint",
- "email": "Email Notification",
- "emailDesc": "Receive summary updates via email",
+ "discordDesc": "Доставяйте актуализации в реално време директно до Discord сървър",
+ "custom": "Персонализиран Webhook",
+ "customDesc": "Доставяйте данни за системни събития до всяка HTTPS крайна точка",
+ "email": "Известие по имейл",
+ "emailDesc": "Получавайте обобщени актуализации по имейл",
"pagerduty": "PagerDuty",
- "pagerdutyDesc": "Trigger alerts on PagerDuty for critical system issues",
+ "pagerdutyDesc": "Задействайте сигнали в PagerDuty при критични системни проблеми",
"teams": "Microsoft Teams",
- "teamsDesc": "Forward system notifications to Microsoft Teams channels"
+ "teamsDesc": "Препращайте системни известия към канали в Microsoft Teams"
},
- "testPayloadSent": "Test Payload Sent",
- "testResponse": "Test Response",
+ "testPayloadSent": "Тестовите данни са изпратени",
+ "testResponse": "Тестов отговор",
"validateUrl": {
- "checking": "Checking URL...",
- "ok": "URL is valid",
- "blockedPrivate": "URL is a blocked private address",
- "invalidUrl": "Invalid URL format"
+ "checking": "Проверка на URL...",
+ "ok": "URL адресът е валиден",
+ "blockedPrivate": "URL адресът е блокиран частен адрес",
+ "invalidUrl": "Невалиден формат на URL адреса"
},
"custom": {
- "endpointUrl": "Endpoint URL",
+ "endpointUrl": "URL адрес на крайната точка",
"endpointUrlPlaceholder": "https://api.yourdomain.com/webhook",
- "secretKey": "Secret Key",
- "secretKeyPlaceholder": "Enter secret key or leave blank to auto-generate",
+ "secretKey": "Таен ключ",
+ "secretKeyPlaceholder": "Въведете таен ключ или оставете празно за автоматично генериране",
"secretKeyHint": "Използва се за подписване на заглавката на полезния товар за удостоверяване."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "URL адрес на Discord Webhook",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "URL адресът на уебхука, копиран от настройките за интеграция на вашия Discord канал.",
"tutorial": "Как да създадете Discord уебхук:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "URL адрес на Slack Webhook",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "URL адресът на уебхука, копиран от вашата интеграция на Slack Incoming Webhooks.",
"tutorial": "Как да създадете Slack уебхук:"
@@ -1587,12 +1591,12 @@
"cliToolsDescription": "Конфигурирайте CLI инструменти",
"home": "Начало",
"homeDescription": "Добре дошли в OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Крайни точки",
+ "endpointDescription": "Управлявайте прокси крайни точки, MCP, A2A и API крайни точки",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Управление и инструменти за сървъра на Model Context Protocol",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Задачи и наблюдаемост на протокола Agent-to-Agent",
"settings": "Настройки",
"settingsDescription": "Управлявайте вашите предпочитания",
"openaiCompatible": "Съвместим с OpenAI",
@@ -1601,49 +1605,49 @@
"mediaDescription": "Генериране на изображения, видеоклипове и музика",
"themes": "Теми",
"themesDescription": "Изберете цветова тема за целия панел на таблото",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "costsDescription": "Проследявайте разходите, анализирайте тенденциите и управлявайте бюджета си за ИИ за всички доставчици",
+ "cacheDescription": "Наблюдавайте ефективността на кеша за подкани на доставчиците и локалното семантично повторно използване на отговори.",
+ "limitsDescription": "Конфигурирайте ограничения на честотата и квоти за всеки API ключ и доставчик",
+ "runtimeDescription": "Наблюдаемост на изпълнението в реално време — прекъсвачи на вериги, периоди на изчакване, блокиране на модели, сесии и сигнали за квоти",
+ "apiManagerDescription": "Управлявайте API ключовете и контрола на достъпа за вашия екземпляр на OmniRoute",
+ "batchDescription": "Обработвайте асинхронно големи обеми заявки чрез групирани API извиквания",
+ "contextCavemanDescription": "Компресиране на съобщения въз основа на правила, езикови пакети, анализи и контроли на режима на изхода.",
+ "contextRtkDescription": "Компресиране, съобразено с командите, за изходни данни от инструменти, терминални журнали и резултати от компилации.",
+ "contextCombosDescription": "Определете как се комбинират енджините за различни сценарии на маршрутизиране.",
+ "changelogDescription": "Бъдете в крак с най-новите функции и съобщения за платформата.",
+ "agentsDescription": "Управлявайте и конфигурирайте инструменти за AI агенти: Codex, Devin, Jules и персонализирани агенти",
+ "cloudAgentsDescription": "Оркестрирайте облачно базирани AI агенти с проследяване на задачите в реално време и одобрение на планове",
+ "memoryDescription": "Постоянна памет за разговори със семантично търсене и FTS5 пълнотекстово индексиране",
+ "skillsDescription": "Инсталирайте и управлявайте умения в изолирана среда за автоматизирано изпълнение на подкани и инструменти",
+ "agentSkillsDescription": "Каталог с умения за агенти и копиране на URL с едно щракване за интеграция с AI клиенти",
+ "translatorDescription": "Превеждайте и тествайте подкани между API формати: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Тествайте подкани интерактивно с отговори от доставчиците в реално време и преглед на формата",
+ "searchToolsDescription": "Анализи на търсенето, разбивка по доставчици, нива на попадения в кеша и проследяване на разходите",
+ "logsDescription": "Регистри на заявките в реално време, трасировки на грешки и инспектор на поточни събития",
+ "auditDescription": "Одитна следа за съответствие при използването на API ключове, извикванията на MCP инструменти и събитията, свързани с правилата",
+ "webhooksDescription": "Конфигурирайте webhook крайни точки за получаване на известия за събития в реално време",
+ "healthDescription": "Общ преглед на състоянието на системата: доставчици, прекъсвачи на вериги, ограничения на честотата и база данни",
+ "proxyDescription": "Конфигурирайте настройките на прокси сървъра нагоре по веригата за изходящи връзки към доставчици",
+ "apiEndpointsDescription": "Управлявайте персонализирани конфигурации на API крайни точки и замествания на маршрутизирането",
+ "batchFilesDescription": "Преглеждайте и управлявайте изходните файлове и резултатите от пакетни задания",
+ "analyticsEvalsDescription": "Резултати от оценяване на модели и сравнителни показатели за производителност",
+ "analyticsSearchDescription": "Анализи на заявките за търсене, нива на попадения в кеша и проследяване на разходите",
+ "analyticsUtilizationDescription": "Показатели за използването на доставчиците и планиране на капацитета",
+ "analyticsComboHealthDescription": "Състояние и производителност в реално време на конфигурациите за комбинирано маршрутизиране",
+ "analyticsCompressionDescription": "Анализи на компресирането на контекста и спестяванията на токени",
+ "costsBudgetDescription": "Бюджетни ограничения и предупреждения за разходи по API ключ и доставчик",
+ "costsPricingDescription": "Персонализирана конфигурация на ценообразуването за изчисляване на разходите за токени",
+ "logsProxyDescription": "Регистри на заявките към прокси сървъра нагоре по веригата и инспектиране на трафика",
+ "logsConsoleDescription": "Изходни данни от конзолата на приложението и регистри за отстраняване на грешки",
+ "logsActivityDescription": "Одитна следа на действията на потребителите и системните събития",
+ "auditMcpDescription": "Одитна следа на извикванията на MCP инструменти и записи за съответствие",
"auditA2a": "A2A одит",
"auditA2aDescription": "Одитна пътека за изпълнение на задачи A2A, преходи на състояния и записи за извикване на умения",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Тема, брандиране и визуално персонализиране",
+ "settingsAiDescription": "Поведение на AI, бюджети за мисловен процес, визуални възможности и настройки на паметта",
"settingsCacheDescription": "TTL за кеш записи на моделния каталог",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Настройки за удостоверяване, оторизация и контрол на достъпа",
"featureFlags": "Флагове за функции",
"featureFlagsDescription": "Възможности на системата за управление и експериментални функции",
"featureFlagsActive": "{count} активен",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Няма знамена, които отговарят на вашето търсене",
"featureFlagsSaved": "Знамето е актуализирано",
"featureFlagsError": "Неуспешно актуализиране на флага",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Правила за маршрутизиране, псевдоними на модели, настройки по подразбиране за комбинации и настройки за деградация",
+ "settingsResilienceDescription": "Конфигурация на прекъсвача на веригата, повторните опити и резервните варианти",
+ "settingsAdvancedDescription": "Разширени правила за полезния товар, ограничения на заявките и настройки на прокси API",
+ "mitmProxyDescription": "Конфигурирайте настройките на MITM прокси сървъра за инспектиране на трафика и отстраняване на грешки",
+ "oneProxyDescription": "Конфигурирайте настройките на 1Proxy за разширено свързване на прокси сървъри във верига",
"omniSkillsDescription": "Инсталиране и управление на умения в пясъчник за автоматизирано изпълнение на подкани и инструменти"
},
"cloudSyncStatus": {
@@ -1704,7 +1708,7 @@
"console": "Конзола",
"logger": "Логър",
"translator": "Преводач",
- "playground": "Playground",
+ "playground": "Тестова среда",
"add": "Добавяне",
"edit": "Редактиране",
"apiKeys": "API ключове",
@@ -1758,7 +1762,7 @@
"discovery": "Откриване",
"freeProviderRankings": "Класации на безплатни доставчици",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Настройка",
"freeTiers": "Безплатни нива",
"gamification": "Геймификация",
"leaderboard": "Класация",
@@ -1808,7 +1812,7 @@
"reportIssue": "Докладвайте за проблем",
"activeError": "{active} активен · {errors} грешка",
"topologyLegendActive": "Активен",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Скорошни",
"topologyLegendError": "Грешка",
"oauthLabel": "OAuth",
"apiKeyLabel": "API ключ",
@@ -1822,11 +1826,11 @@
"updateStarted": "Актуализацията започна...",
"reloadingPageAutomatically": "Страницата се презарежда автоматично...",
"providerTopology": "Топология на доставчика",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Скорошни заявки",
+ "recentRequestsEmpty": "Все още няма заявки.",
+ "recentRequestsModel": "Модел",
+ "recentRequestsTokens": "Вход / Изход",
+ "recentRequestsWhen": "Кога",
"downloadDmg": "Изтеглете DMG (macOS)",
"downloadDmgDescription": "Налична е нова версия на настолната апликация OmniRoute. Моля, изтеглете и инсталирайте DMG инсталатора за macOS, за да актуализирате (текуща: v{version}).",
"downloadExe": "Изтеглете EXE (Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "Бележки за изданието",
"readMore": "Прочетете повече",
"noAuthLabel": "Без удостоверяване",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Пригответе се за маршрутизиране",
+ "readinessTitle": "Изпратете първата си заявка",
+ "readinessSubtitle": "Четири кратки стъпки. OmniRoute проверява готовността ви в движение.",
+ "readinessStep1": "Свържете доставчик",
+ "readinessStep2": "Конфигурирайте удостоверяването на крайната точка",
+ "readinessStep3": "Копирайте крайната си точка",
+ "readinessStep4": "Изпратете тестова заявка",
+ "readinessContinue": "Продължете настройката",
+ "readinessDismiss": "Отхвърлете засега"
},
"analytics": {
"title": "Анализ",
@@ -1963,7 +1967,7 @@
"period7D": "7Д",
"period30D": "30Д",
"period90D": "90Д",
- "periodYTD": "YTD",
+ "periodYTD": "От началото на годината",
"periodAll": "Всички",
"totalTokens": "Общо токени",
"inputTokens": "Входящи токени",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Грешка",
"comboHealth": "Здраве на комбинацията",
"comboHealthDescription": "Квота на ниво комбинация, разпределение на използването и метрики на производителността",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Анализ на компресията",
+ "compressionAnalyticsDescription": "Анализ на компресията — спестени токени, разбивка по режими и статистика за доставчиците.",
"autoRoutingTotalAutoRequests": "Общ брой автоматични заявки",
"autoRoutingAvgSelectionScore": "Ср. резултат за избор",
"autoRoutingExplorationRate": "Степен на проучване",
@@ -2254,9 +2258,9 @@
"fullAccess": "Пълен достъп",
"keyManagement": "Управление на API ключове",
"keyManagementDesc": "Създавайте и управлявайте API ключове за удостоверяване на заявки към вашата крайна точка",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Приложението ви изпраща заявки към OmniRoute чрез API ключ",
+ "requestFlowYourApp": "Вашето приложение",
+ "requestFlowApiKey": "API ключ",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Общо ключове",
"restricted": "Ограничен",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Копирайте и запазете този ключ сега — няма да се показва отново.",
"done": "Готово",
"savePermissions": "Запазване на разрешенията",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Разрешени крайни точки",
+ "allEndpointsAllowed": "Този ключ има достъп до всички API крайни точки.",
+ "endpointsRestricted": "{count, plural, one {Ограничено до {count} крайна точка.} other {Ограничено до {count} крайни точки.}}",
+ "autoResolve": "Автоматично определяне",
+ "autoResolveDesc": "Автоматично съпоставяне на двусмислени имена на модели с техния основен доставчик за този API ключ.",
"streamDefaultMode": "Съвместимост на потока по подразбиране",
"streamDefaultModeDesc": "Контролира пропуснатите флагове `stream` за този ключ. Режимът JSON връща непоточни отговори, освен ако клиентът изрично не поиска SSE.",
"streamDefaultLegacy": "Наследен",
"streamDefaultJson": "Съвместим с JSON",
"streamDefaultBadge": "Поток по подразбиране за JSON",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Ключът е активен",
+ "keyActiveDesc": "Активирайте или деактивирайте този API ключ. Деактивираните ключове се отхвърлят незабавно с код 403.",
+ "accessSchedule": "График за достъп",
+ "accessScheduleDesc": "Ограничете достъпа до определени часове и дни от седмицата.",
+ "scheduleFrom": "От",
+ "scheduleUntil": "До",
+ "scheduleDays": "Дни",
+ "scheduleTimezone": "Часова зона",
+ "scheduleTimezoneHint": "Използвайте имена на часови зони по IANA, напр. America/New_York, Europe/Berlin",
+ "scheduleActive": "График",
+ "disabled": "Деактивирано",
+ "daySun": "Нед",
+ "dayMon": "Пон",
+ "dayTue": "Вто",
+ "dayWed": "Сря",
+ "dayThu": "Чет",
+ "dayFri": "Пет",
+ "daySat": "Съб",
"allowAll": "Разреши всички",
"restrict": "Ограничете",
"allowAllInfo": "Този ключ има достъп до всички налични модели.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Неуспешно актуализиране на разрешенията. Моля, опитайте отново.",
"unknownProvider": "неизвестен",
"copyMaskedKey": "Копиране на маскиран ключ",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Пълният ключ е наличен само при създаването — копирайте го, когато създадете ключа за първи път",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# устройство} other {# устройства}}",
"devicesTooltip": "{count, plural, one {# уникално IP/User-Agent устройство, видяно с този ключ (последните 30 мин)} other {# уникални IP/User-Agent устройства, видени с този ключ (последните 30 мин)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Разрешени комбинации",
"allCombosAllowed": "Този ключ може да използва всяка комбинация.",
"restrictedComboCount": "Ограничено до {count, plural, one {# комбинация} other {# комбинации}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# съхранен запис не е} other {# съхранени записа не са}} в този комбиниран списък (например правила за маршрутизиране) и ще бъдат запазени във вида, в който са съхранени.",
+ "preservedComboRuleHint": "Запазено във вида, в който е съхранено. Този запис не е опция в комбинирания списък по-горе, така че може да бъде променен само чрез API.",
"apiManagerCustomRateLimits": "Персонализирани ограничения на скоростта",
"apiManagerCustomRateLimitsDesc": "Замяна на глобалните ограничения по подразбиране. Оставете празно, за да използвате настройките по подразбиране.",
"apiManagerRateLimitRequestsPlaceholder": "Заявки",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Позволява на този ключ да игнорира политиката за ограничаване на вънния доставчик/акаунт по време на маршрутизиране. Квотите в USD за API ключа все още се прилагат.",
"quotaPill": "КВОТА",
"quotaModeOnly": "само qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Ексклузивен наем",
+ "exclusiveLeaseNoticeTitle": "Ексклузивен наем",
+ "exclusiveLeaseNoticeDesc": "Този API ключ има разрешения за ексклузивен наем за маршрутизиране чрез специално предназначена връзка.",
+ "allConnections": "Всички връзки",
+ "onlySelectedConnections": "Само избраните връзки",
+ "selectAtLeastOneConnection": "Изберете поне една връзка или изберете „Всички връзки“.",
+ "allConnectionsDesc": "Този ключ може да използва всяка активна връзка.",
+ "restrictedToConnections": "Ограничено до {count, plural, one {# връзка} other {# връзки}}."
},
"auditLog": {
"title": "Дневник за одит",
@@ -2453,14 +2457,14 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Генерирай",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Генериране...",
+ "loadingModels": "Зареждане на наличните модели...",
+ "noModels": "Няма налични модели. Първо конфигурирайте доставчици с мултимедийни възможности.",
+ "error": "Генерирането е неуспешно",
+ "result": "Резултат",
+ "imageDescription": "Генерирайте изображения от текстови подкани с OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI и други.",
+ "videoDescription": "Създавайте видеоклипове с AnimateDiff, Stable Video Diffusion чрез ComfyUI или SD WebUI.",
+ "musicDescription": "Композирайте музика със Stable Audio Open или MusicGen чрез ComfyUI.",
"kinds": {
"embedding": "Вграждане",
"image": "Изображение",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "Моделите за преобразуване на реч в текст на OpenRouter използват вашата конфигурирана връзка с OpenRouter. Не се изискват отделни удостоверения."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Заявка за търсене",
+ "searchResults": "Резултати от търсенето",
+ "cachedResult": "Кеширано",
+ "searchCost": "Цена",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Разширено тестване на търсенето със сравнение на доставчици",
+ "compareProviders": "Сравняване на доставчици",
+ "rerankResults": "Преранжиране на резултатите",
+ "searchHistory": "История на търсенията",
+ "urlOverlap": "Припокриване на URL адреси",
+ "noSearchProviders": "Няма конфигурирани доставчици на търсене. Добавете доставчици в „Настройки“.",
+ "noRerankModels": "Няма наличен модел за преранжиране",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Доставчик",
+ "searchType": "Тип търсене",
+ "maxResults": "Максимален брой резултати",
+ "filters": "Филтри",
+ "country": "Държава",
+ "language": "Език",
+ "timeRange": "Времеви период",
+ "includeDomains": "Включени домейни",
+ "excludeDomains": "Изключени домейни",
+ "safeSearch": "Безопасно търсене",
+ "safeSearchOff": "Изключено",
+ "safeSearchModerate": "Умерено",
+ "safeSearchStrict": "Строго",
+ "queryPlaceholder": "Въведете заявка за търсене...",
+ "providerAuto": "автоматично (най-евтино)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "новини",
+ "optionAny": "всички",
+ "timeRangeDay": "Последното денонощие",
+ "timeRangeWeek": "Последната седмица",
+ "timeRangeMonth": "Последният месец",
+ "timeRangeYear": "Последната година",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Времето за заявката изтече ({seconds} сек.)",
+ "networkError": "Мрежова грешка",
+ "formatted": "Форматирано",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "няма попадение в кеша",
+ "cacheHit": "попадение в кеша",
+ "latency": "Латентност",
+ "cost": "Цена",
+ "results": "Резултати",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Модел за преранжиране",
+ "positionDelta": "Промяна на позицията",
+ "emptyState": "Изпратете заявка за търсене, за да видите резултатите",
"copy": "копие",
"resetToDefault": "Възстановяване по подразбиране",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Търсене",
+ "tabScrape": "Извличане",
+ "tabCompare": "Сравняване",
+ "modalitiesGuide": "Ръководство за режимите",
+ "searchConceptTitle": "Търсене",
+ "searchConceptDesc": "Търсене = извлича списък с уеб резултати (заглавие, URL, откъс, оценка за релевантност)",
+ "scrapeConceptTitle": "Извличане",
+ "scrapeConceptDesc": "Извличане = извлича цялото съдържание на URL (Markdown, текст или HTML)",
+ "compareConceptTitle": "Сравняване",
+ "compareConceptDesc": "Сравняване = изпълнява една и съща заявка паралелно при N доставчика, за да сравни времето за отговор, разходите и припокриването на резултатите",
+ "rerankConceptTitle": "Пренареждане",
+ "rerankConceptDesc": "Пренареждане = пренарежда резултатите чрез LLM, за да подобри релевантността им спрямо заявката",
+ "autoConceptTitle": "Автоматично (най-евтино)",
+ "autoConceptDesc": "Автоматично (най-евтино) = автоматично избира най-евтиния наличен доставчик с конфигурирани идентификационни данни",
+ "providerCatalogTitle": "Каталог с доставчици",
+ "kindSearch": "Търсене",
+ "kindFetch": "Извличане/обхождане",
+ "statusConfigured": "Конфигуриран",
+ "statusMissing": "Няма идентификационни данни",
+ "statusRateLimited": "Ограничена честота на заявките",
+ "configureProvider": "Конфигуриране в „Доставчици“",
+ "loadingProviders": "Зареждане на доставчиците…",
+ "failedToLoadProviders": "Неуспешно зареждане на доставчиците",
+ "costPerQuery": "Цена/заявка",
+ "freeQuota": "Безплатна квота/мес.",
+ "scrapeUrl": "URL за извличане",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "Изисква се URL адрес",
"scrapeUrlInvalid": "Невалиден URL адрес — трябва да започва с http:// или https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "Извличане",
+ "scrapeExtracting": "Извличане…",
+ "scrapeFullPage": "Цяла страница",
+ "scrapeFormat": "Формат",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "Текст",
+ "scrapePreview": "Преглед",
+ "scrapeRaw": "Необработен вид",
+ "scrapeContentTruncated": "(съкратено, вижте необработения вид)",
+ "scrapeMetadata": "Метаданни",
+ "scrapeProvider": "Доставчик",
+ "scrapeSize": "Размер",
"scrapeEmptyState": "Въведете URL адрес, за да извлечете съдържанието му",
"scrapeProvidersAvailable": "Налични доставчици: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Сравняване",
+ "compareRunning": "Сравняване…",
+ "autoProvider": "Автоматично (най-евтиното)",
+ "configuredStatus": "Конфигурирано",
+ "rateLimitedStatus": "Ограничена честота на заявките",
+ "noCredential": "Няма идентификационни данни",
+ "searchTypeLabel": "Тип",
+ "rerankModelLabel": "Модел за преподреждане",
+ "noneOption": "Няма",
+ "size": "Размер",
"configurationPane": "Панел за конфигуриране",
"configuration": "Конфигурация",
"status": "Статус",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Добавете",
"antigravityStep2Suffix": "към вашия хост файл като 127.0.0.1.",
"antigravityStep3": "3. Отворете Antigravity и заявките ще бъдат проксиирани.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} изпраща заявки към крайната точка на своя доставчик. MITM ги прихваща и пренасочва към OmniRoute.",
+ "mitmStep1": "1. Стартирайте MITM, за да насочите заявките през OmniRoute.",
+ "mitmStep2Prefix": "2. Добавете",
+ "mitmStep2Suffix": "към hosts файла си като 127.0.0.1.",
+ "mitmStep3": "3. Отворете {toolName} и заявките ще преминават през прокси сървър.",
"sudoPasswordRequiredTitle": "Изисква се парола за Sudo",
"sudoPasswordHint": "Необходима е администраторска парола, за да промените настройките на хост файла и системния прокси.",
"enterSudoPassword": "Въведете sudo парола",
@@ -2904,7 +2908,7 @@
"continue": "Използвайте, когато изпълнявате Continue в IDE и имате нужда от преносима JSON-базирана конфигурация на доставчик.",
"opencode": "Използвайте, когато предпочитате нативни за терминални агенти и скриптова автоматизация чрез OpenCode.",
"kiro": "Използвайте, когато интегрирате Kiro и контролирате маршрутизирането на модела централно от OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Използвайте, когато искате IDE с фокус върху ИИ, в която моделите Codeium/Windsurf се маршрутизират през OmniRoute.",
"antigravity": "Използвайте, когато трафикът на Antigravity/Kiro трябва да бъде прихванат чрез MITM и насочен към OmniRoute.",
"copilot": "Използвайте, когато искате UX в стил на чат Copilot, като същевременно налагате OmniRoute ключове и правила за маршрутизиране.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2918,18 +2922,18 @@
"codex": "OpenAI Codex CLI",
"grok-build": "xAI Grok Build TUI агент за програмиране с поддръжка на персонализиран доставчик",
"droid": "Фабричен Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "openclaw": "Отворете Claw AI Assistant",
+ "cline": "Cline AI асистент за програмиране CLI",
+ "kilo": "Kilo Code AI асистент CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
"continue": "Продължете AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "OpenCode AI агент за програмиране (терминал)",
+ "kiro": "Amazon Kiro — IDE с възможности за ИИ",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp асистент за програмиране CLI",
+ "hermes": "Hermes AI терминален асистент",
"hermes-agent": "Hermes Agent (от Nousresearch) - усъвършенстван терминален изкуствен интелект с поддръжка на множество модели (делегиране, компютърно зрение, компресия и др.)",
"custom": "Generic OpenAI-съвместим CLI или SDK генератор на конфигурация",
"aider": "Aider AI CLI за съвместно програмиране с базов URL адрес, съвместим с OpenAI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter CLI автономен агент за програмиране",
"omp": "Oh My Pi терминален агент за програмиране",
"letta": "Letta CLI агент с постоянна памет и използване на инструменти",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — самоусъвършенстваща се RLM среда за програмиране с поддръжка на доставчици, съвместими с OpenAI",
"warp": "Warp AI терминал с поддръжка на персонализиран доставчик",
"agent-deck": "Agent Deck мултиагентен оркестратор",
"5dive": "5dive — самостоятелно хостван флот от кодиращи агенти; един auth профил насочва всички към OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Инсталирайте OpenCode",
+ "desc": "Инсталирайте чрез npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API ключ"
},
"3": {
- "title": "Set Base URL",
+ "title": "Задайте основния URL адрес",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Изберете модел"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Използвайте вариант с разсъждение",
+ "desc": "За модели с разсъждение стартирайте с --variant high/low/max (примерна команда по-долу)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Отворете настройките на Kiro",
+ "desc": "Отидете в Настройки → Доставчик на ИИ"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Основен URL адрес",
+ "desc": "Поставете URL адреса на крайната си точка в OmniRoute"
},
"3": {
- "title": "API Key"
+ "title": "API ключ"
},
"4": {
- "title": "Select Model"
+ "title": "Изберете модел"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Отворете настройките за ИИ",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Добавете персонализиран доставчик",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Основен URL адрес",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API ключ",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Избор на модел",
+ "desc": "Изберете модел от падащото меню"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Персонализиран CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Категории инструменти",
"visibleToolsCount": "{count} налични инструменти",
"customCliBuilderTitle": "CLI създател, съвместим с OpenAI",
"customCliBuilderDescription": "Генерирайте env vars и JSON фрагменти за всеки CLI или SDK, който приема OpenAI-съвместим основен URL, API ключ и ID на модела.",
@@ -3106,7 +3110,7 @@
"refreshAll": "Опресняване на всички",
"hermesRoleDefault": "По подразбиране (основен)",
"hermesRoleDefaultDesc": "Основен модел за разговор",
- "hermesRoleDelegation": "Delegation (subagents)",
+ "hermesRoleDelegation": "Делегиране (подагенти)",
"hermesRoleDelegationDesc": "Модел с оркестратор и подагенти",
"hermesRoleVision": "Зрение",
"hermesRoleVisionDesc": "Разбиране на изображения и екранни снимки",
@@ -3155,7 +3159,7 @@
"hermesRolesWillUpdate": "{count, plural, one {# роля ще бъде актуализирана} other {# роли ще бъдат актуализирани}}",
"hermesPreviewPath": "Предварителен преглед — ще се запише в ~/.hermes/config.yaml",
"hermesSaveDescription": "Запазва избрания модел за всяка роля в",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "Генератор на конфигурация за GitHub Copilot",
"copilotGeneratorDescriptionPrefix": "Генерира",
"copilotGeneratorDescriptionSuffix": "блок за VS Code GitHub Copilot, използвайки модела на Azure доставчик. Изберете моделите, които искате, след което копирайте JSON кода във вашия конфигурационен файл.",
"copilotCompatibilityWarning": "Тази конфигурация използва заобиколното решение за Azure доставчик за персонализирани списъци с модели. Тествано с omniglyph. Това е предварителна версия и остава изключена по подразбиране, докато не приключи цялостната валидация.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Профил за компресиране",
+ "profileDescription": "Профилът е горна, а не долна граница: по-строг профил не може да бъде разхлабен чрез замяна на настройката за отделна стъпка. Измерено в тази кодова база: при coding-safe или balanced сесия, която все още няма натрупана история, не компресира нищо, защото и двата профила повишават минималния праг за брой знаци и запазват системната подкана, схемите на инструментите и резултатите от инструментите в оригинален вид.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Агресивен (по подразбиране)",
+ "description": "Политиката, измерена в публикуваните отчети. Превръща в изображения системната подкана, документацията на инструментите и наситената история."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Балансиран",
+ "description": "Запазва активното състояние в оригинален вид и защитава последните 8 хода; свива само по-старата приключена история."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Безопасен за програмен код",
+ "description": "Запазва указанията с приоритет, схемите на инструментите и активния изход от инструментите в оригинален вид, като защитава последните 12 хода. Не компресира нищо, докато сесията не натрупа история."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Директно предаване",
+ "description": "Маршрутизира без преобразуване. Енджинът се пропуска и заявката се препраща непроменена."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Изберете профила за компресиране на OmniGlyph",
"saved": "Запазено.",
"saveFailed": "Неуспешно запазване.",
"enableAria": "Активиране на енджина OmniGlyph",
@@ -8881,7 +8892,7 @@
"fallbackRouting": "Резервно маршрутизиране",
"fallbackRoutingDescription": "Повторен опит за неуспешни заявки към доставчика чрез CLIProxyAPI",
"enableFallback": "Активиране на резервен вариант",
- "cliproxyUrl": "CLIProxyAPI URL",
+ "cliproxyUrl": "URL адрес на CLIProxyAPI",
"fallbackCodes": "Кодове на състоянието за резервен вариант (разделени със запетая)",
"invalidUrl": "Невалиден URL адрес — трябва да започва с http:// или https://",
"saved": "Запазено",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Компресиране на съобщения въз основа на правила, езикови пакети, анализи и контроли за режима на изхода.",
"advancedConfig": "Разширена конфигурация",
"advancedConfigDesc": "Фина настройка на поведението на компресия",
"aggressiveSettings": "Агресивни настройки",
"aggressiveSettingsDesc": "Максимална компресия с потенциални компромиси в качеството",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Заявки",
+ "tokensSaved": "Спестени токени",
+ "savingsPercent": "Спестяване в %",
+ "avgLatency": "Средна латентност",
+ "languagePacks": "Езикови пакети",
+ "languagePacksDesc": "Активирайте правилата за компресиране за определени езици.",
"labelAutoTrigger": "Автоматично компресиране, когато контекстът надвишава",
"labelCompressionRate": "Сила на натиск",
"labelMaxTokens": "Целеви токени на съобщение",
"labelMinLength": "Минимална дължина на съобщението",
"labelMinSavings": "Минимум токени за запазване",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Активирано",
+ "autoDetect": "Автоматично разпознаване на езика",
+ "rulesCount": "{count} правила",
"inputCompressionTitle": "Компресиране на входа",
"inputCompressionDesc": "Пренаписване на хронологията на чата с по-кратки формулировки. Намалява входящите токени с ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Анализи на компресирането",
+ "noAnalytics": "Все още няма анализи на компресирането.",
"masterDisabledWarning": "Главният превключвател на Token Saver е ИЗКЛЮЧЕН — тези настройки няма да повлияят на заявките, докато не го включите от Настройки за компресиране или не го промените тук.",
"outputMode": "Изходен режим",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Режим на изхода",
"quickSettings": "Бързи настройки",
"quickSettingsDesc": "Основни настройки за компресиране, за да започнете",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Автоматично заобикаляне за яснота",
+ "bypassConditions": "Условия за заобикаляне",
"bypassConditionsList": "сигурност, необратим, изясняване, чувствителен към ред",
"simpleMode": "просто",
"advancedMode": "Разширено",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ултра настройки",
"ultraSettingsDesc": "Захранвана от SLM семантична компресия",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Отговаряй кратко. Запазвай техническите термини, кода, грешките, URL адресите и идентификаторите.",
+ "full": "Отговаряй лаконично и стегнато. Запазвай цялото техническо съдържание.",
+ "ultra": "Отговаряй свръхлаконично с общоприети технически съкращения. Запазвай точните символи."
}
},
"translator": {
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Вашето приложение говори „езика“ на един API. Преводачът го преобразува, за да използва друг доставчик.",
"conceptDiagramAppLabel": "Вашето приложение",
"conceptDiagramSourceLabel": "Формат на източника",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (централен възел)",
"conceptDiagramTargetLabel": "Целеви доставчик",
"conceptDiagramExampleApp": "напр. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Поставете JSON заявка; форматът се разпознава автоматично.",
"advancedPipelineTitle": "Междинен пайплайн на OpenAI",
"advancedPipelineSubtitle": "Визуализирайте всяка стъпка от превода (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Потоков трансформатор (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Преобразува Chat Completions SSE в Responses API.",
"advancedTestBenchTitle": "Тестов стенд (8 сценария)",
"advancedTestBenchSubtitle": "Изпълнява всички сценарии и отчита успех/неуспех + % съвместимост.",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Оставащо",
"kiloPassRenews": "Подновява се след {count} дни",
"kiloPassUsageLabel": "Потребление за този месец",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Допълнителни кредити за използване",
+ "kimiExtraUsage": "Допълнително използване",
+ "kimiExtraUsageEnabled": "Активирано",
+ "kimiExtraUsageDisabled": "Деактивирано",
+ "kimiExtraUsageFrozen": "Замразено",
+ "kimiExtraUsageUnavailable": "Недостъпно",
+ "kimiMonthlyUsed": "Използвано този месец",
+ "kimiMonthlyLimit": "Месечен лимит",
+ "kimiMonthlyLimitUnlimited": "Неограничено",
+ "kimiAdditionalCredits": "Допълнителни кредити",
"loggerTab": "Дървосекач",
"proxyTab": "Прокси",
"budgetManagement": "Управление на бюджета",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Автоматични прекъсвачи",
"lockedIPs": "Заключени IP адреси",
"lockoutsAutoRefreshHint": "Заключвания на ограничение на скоростта за модел • Автоматично опресняване 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# заключен} other {# заключени}}",
"timeLeft": "Остава {time}",
"howItWorks": "Как работи",
"howItWorksSubtitle": "Научете как оценките валидират вашите LLM отговори",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Тествани модели",
"searchSuitesPlaceholder": "Търсене на апартаменти...",
"passSuffix": "пас",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# случай} other {# случая}}",
"runEval": "Стартирайте Eval",
"runAllSuites": "Пусни всички",
"runAllRunning": "Изпълнява се всичко...",
"runAllProgress": "Работи {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# неуспешен набор} other {# неуспешни набора}}",
"runAllCompleted": "Изпълних {suites} пакети — {passed} премина, {failed} не успя",
"runAllCompletedWithFailures": "Изпълних {completed} пакети; {failedSuites} не успя да завърши",
"runningProgress": "Изпълнява се {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Ограничения на доставчика",
"noProviders": "Няма свързани доставчици",
"connectProvidersForQuota": "Свържете се с доставчици с OAuth, за да проследите вашите ограничения на квотата и използването на API.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# акаунт} other {# акаунта}}",
"filteredFromCount": "(филтриран от {count})",
"autoRefresh": "Автоматично опресняване",
"refreshAll": "Опресни всички",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Неуспешно актуализиране на видимостта на квотата",
"account": "акаунт",
"modelQuotas": "Моделни квоти",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Последно обновяване",
"actions": "Действия",
"refreshQuota": "Опресняване на квотата",
"today": "Днес",
@@ -9448,9 +9459,9 @@
"cardExpand": "Разгъване",
"cardCollapse": "Свиване",
"moreQuotas": "+ още {count}",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Негрупирани",
+ "viewFlat": "Плосък списък",
+ "viewByEnvironment": "По среда",
"noQuotaDataAvailable": "Няма налични данни за квота",
"noAccountsForTierFilter": "Няма намерени акаунти за филтър за ниво",
"tierAll": "Всички",
@@ -9461,7 +9472,7 @@
"tierPro": "Професионалист",
"tierPlus": "плюс",
"tierFree": "безплатно",
- "tierLite": "Lite",
+ "tierLite": "Олекотен",
"tierUnknown": "неизвестен",
"statTotal": "Общо",
"statCritical": "Критично",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Осребряване на кредит",
"resetCreditRedeemed": "Нулирането е осребрено",
"resetCreditRedeemFailed": "Неуспешно осребряване на кредита за нулиране",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Неуспешно запазване на набора",
"clone": "Клонинг",
"exportSuite": "Експортиране",
"importSuite": "Импортиране",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Невалиден JSON пакет за оценка",
"suiteBuilderCloneSuffix": "копие",
"suiteBuilderImportedSuite": "Импортиран пакет",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Карта с резултати",
+ "evalApiKey": "API ключ",
+ "scorecardPassRate": "Процент на успеваемост",
+ "targetTypeModel": "Модел",
+ "actualOutputLabel": "Действителен резултат",
+ "evalTargetHint": "Изберете модел или комбинация за оценяване.",
+ "suiteBuilderDeleted": "Наборът е изтрит успешно",
+ "suiteBuilderCaseCardHint": "Дефинирайте входната подкана и критериите за очаквания резултат.",
+ "nextResetUtc": "Следващо нулиране (UTC)",
+ "scorecardHint": "Обобщени проценти на успеваемост за всички набори за оценяване.",
+ "suiteLatestRunsHint": "Най-скорошните оценъчни изпълнения за този набор.",
+ "saving": "Запазване",
+ "suiteBuilderCaseModelLabel": "Модел (незадължително)",
+ "evalControlsTitle": "Контроли за оценяване",
+ "suiteBuilderEditTitle": "Редактиране на набора за оценяване",
+ "suiteBuilderCaseStrategyLabel": "Стратегия за валидиране",
+ "notifySelectDifferentCompareTarget": "Моля, изберете друга цел за сравнение",
+ "recentRunsHint": "Показани са най-скорошните оценъчни изпълнения. Щракнете върху изпълнение, за да видите подробни резултати.",
+ "evalCompareHint": "По избор сравнете резултатите с втора цел.",
+ "suiteBuilderCaseInvalid": "Този случай има грешки при валидирането. Моля, коригирайте ги, преди да запазите.",
+ "historyEmpty": "Все още няма история на оценяванията",
+ "suiteBuilderUpdated": "Пакетът е актуализиран успешно",
+ "resetInterval": "Нулиране на интервала",
+ "suiteBuilderCreateTitle": "Създаване на пакет за оценяване",
+ "activePeriodSpend": "Разходи за активния период",
+ "evalApiKeyHint": "Изберете кой API ключ да се използва за заявките за оценяване.",
+ "evalCompareOptional": "Сравнение (по избор)",
+ "suiteBuilderDeleteFailed": "Неуспешно изтриване на пакета",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Незадължителни системни инструкции...",
+ "scorecardCases": "Случаи",
+ "runCompletedWithScore": "Оценяването завърши — {score}% успеваемост",
+ "suiteBuilderCustomBadge": "Персонализиран",
+ "targetSuiteDefaults": "Настройки по подразбиране на пакета",
+ "suiteBuilderDeleteConfirm": "Сигурни ли сте, че искате да изтриете този пакет? Това действие не може да бъде отменено.",
+ "suiteBuilderNameLabel": "Име на пакета",
+ "scorecardSuites": "Пакети",
+ "evalCompareTarget": "Цел за сравнение",
+ "suiteBuilderCaseModelPlaceholder": "напр. gpt-4o-mini",
+ "evalControlsHint": "Конфигурирайте целта за оценяване и API ключа, след което изпълнете пакетите, за да проверите качеството на модела.",
+ "recentRunsTitle": "Скорошни изпълнения",
+ "suiteBuilderCaseSystemPromptLabel": "Системна подкана",
+ "suiteBuilderCaseExpectedPlaceholder": "напр. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "напр. дефиниция на фибоначи",
"suiteBuilderCaseExpectedPlaceholderExact": "Поставете точния очакван отговор",
"suiteBuilderCaseExpectedPlaceholderRegex": "напр. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Използвайте регулярен израз на JavaScript без обвиване на наклонени черти.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "напр. Пакет за оценка на качеството на кода",
+ "suiteBuilderAddCase": "Добавяне на случай",
+ "cancel": "Отказ",
+ "evalTarget": "Цел",
+ "suiteBuilderCaseNameLabel": "Име на случая",
+ "weeklyLimitUsd": "Седмичен лимит (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "напр. Напиши функция за Fibonacci на Python",
+ "suiteBuilderNameRequired": "Името на пакета е задължително",
+ "suiteBuilderCaseUserPromptLabel": "Потребителска подкана",
+ "daily": "Ежедневно",
+ "resultErrorLabel": "Грешка",
+ "suiteBuilderBuiltInBadge": "Вграден",
+ "suiteBuilderCaseCardTitle": "Тестов случай",
"suiteBuilderDuplicateCase": "Дубликат",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "напр. 50.00",
+ "suiteBuilderCaseTagsHint": "Тагове, разделени със запетаи, за организиране на тестовите случаи.",
+ "notifyEvalRunFailedWithReason": "Оценяването е неуспешно: {reason}",
+ "weekly": "Ежеседмично",
+ "runEvalRunning": "Изпълнява се оценяване...",
+ "delete": "Изтриване",
+ "resetTimeUtc": "Час на нулиране (UTC)",
+ "evalApiKeyAuto": "Автоматично (използване на стойността по подразбиране)",
+ "suiteBuilderDescriptionPlaceholder": "Незадължително описание на това, което тества този набор...",
+ "targetComparisonTitle": "Сравнение на цели",
+ "save": "Запазване",
+ "suiteBuilderCreated": "Наборът е създаден успешно",
+ "suiteLatestRuns": "Последни изпълнения",
+ "suiteBuilderCaseExpectedLabel": "Очаквана стойност",
+ "historyLatency": "Латентност",
+ "suiteBuilderCaseTagsPlaceholder": "напр. coding, python",
+ "targetTypeCombo": "Комбинирано",
+ "scorecardPassed": "Успешно",
+ "suiteBuilderCaseTagsLabel": "Етикети",
+ "suiteBuilderNewSuite": "Нов набор",
+ "notifyEvalLoadFailed": "Неуспешно зареждане на данните за оценяване",
+ "notConfigured": "Не е конфигурирано",
+ "suiteBuilderCaseNamePlaceholder": "напр. тест на Фибоначи с Python",
+ "intervalLabel": "Интервал",
+ "suiteBuilderCreateAction": "Създаване на набор",
+ "suiteBuilderCasesHint": "Всеки тестов случай изпраща подкана и валидира отговора.",
+ "suiteBuilderUpdatedAt": "Актуализирано",
+ "errorBadge": "Грешка",
+ "suiteBuilderCasesTitle": "Тестови случаи",
+ "edit": "Редактиране",
+ "monthly": "Ежемесечно",
+ "suiteBuilderCasesRequired": "Необходим е поне един тестов случай",
+ "weeklyLimitSummary": "Обобщение на седмичния бюджетен лимит",
+ "suiteBuilderDescriptionLabel": "Описание",
+ "targetComparisonHint": "Паралелно сравнение на резултатите от оценяването между целите.",
+ "compareCompletedWithScore": "Сравнението завърши — {score}% успеваемост",
+ "staleQuotaTooltip": "Последното опресняване беше неуспешно — показват се кеширани данни",
"quotaThresholdLabel": "Остава мин",
"quotaCutoffsColumnHelp": "Спрете заявките, когато оставащата квота падне до този процент или по-малко.",
"quotaCutoffsButtonDefault": "По подразбиране",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Системни метрики",
"memory": "Памет",
- "memoryShort": "mem",
+ "memoryShort": "памет",
"uptime": "Наличност",
"ariaLabel": "Системно наблюдение",
"title": "Системен Монитор",
@@ -9859,7 +9870,7 @@
"backToLogin": "Назад към Вход",
"forgotPassword": "Забравена парола?",
"continueWithOidc": "Продължете с OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Парола по подразбиране: CHANGEME (освен ако не е зададена INITIAL_PASSWORD)",
"Authorization": "Упълномощаване",
"Content-Disposition": "Съдържание-разположение",
"waitingForAuthorization": "Чака се оторизация...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Изчаква се разрешение за антигравитация...",
"waitingForQoderAuthorization": "Изчаква се разрешение за Qoder...",
"exchangingCodeForTokens": "Размяна на код за токени...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Несъвместима версия на Node.js",
+ "nodeIncompatibleDesc": "Използвате Node.js {version}, която е извън политиката на OmniRoute за поддържани защитени среди за изпълнение. Използвайте коригирана LTS версия на Node.js 20.x или 22.x.",
+ "nodeIncompatibleFixLabel": "Решение: инсталирайте коригирана LTS версия на Node.js 22",
+ "nodeIncompatibleHint": "OmniRoute изисква Node.js 22.22.2+ (22.x LTS) или 24.0.0+ (24.x LTS). Препоръчва се Node 24 LTS.",
"resetViaAppDataTitle": "Нулиране чрез данни на приложението",
"resetViaAppDataDescription": "Изтрийте файла с настройки от директорията на приложението, за да нулирате паролата си:",
"quitDesktopApp": "Напуснете напълно настолното приложение OmniRoute",
@@ -10029,8 +10040,8 @@
"clientCompatibility": "Съвместимост на клиента",
"protocolsToc": "Протоколи",
"apiReference": "Справка за API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Справочник за API за управление",
+ "managementApiDescription": "Крайни точки за автоматизация на регистъра на прокси сървъри, присвояването на обхвати и миграцията на наследени прокси конфигурации.",
"method": "Метод",
"path": "Пътека",
"notes": "Бележки",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Използвайте например префикс на доставчика",
"deploySetupTitle": "Ръководство за настройка",
"deploySetupText": "Стъпка по стъпка инсталация, конфигуриране на средата и ръководство за първи път за OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Настолно приложение Electron",
"deployElectronText": "Стартирайте OmniRoute като собствено настолно приложение на Windows, macOS и Linux.",
"deployDockerTitle": "Докер",
"deployDockerText": "Разгръщане в контейнери с Docker Compose; готови за производство стекове и Kubernetes.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Инсталирайте OmniRoute като прогресивно уеб приложение на Android, iOS и настолни браузъри.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Стартирайте OmniRoute без графичен интерфейс на Android чрез Termux. Отворете таблото за управление от мобилния си браузър.",
"featureRoutingTitle": "Маршрутизиране с множество доставчици",
"featureRoutingText": "Насочвайте заявки към 30+ доставчици на AI чрез една крайна точка, съвместима с OpenAI. Поддържа API за чат, отговори, аудио и изображения.",
"featureCombosTitle": "Комбинации и балансиране",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Помощник за пренаписване за клиенти без /v1.",
"endpointRewriteResponsesNote": "Помощник за пренаписване за отговори без /v1.",
"endpointRewriteModelsNote": "Помощник за пренаписване за откриване на модел без /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Показване на запазените елементи в регистъра на прокси сървъри (поддържа страниране).",
+ "mgmtProxiesCreateNote": "Създаване на многократно използваем елемент за прокси сървър в регистъра.",
+ "mgmtProxiesHealthNote": "Получаване на здравни показатели за 24 часа/подвижен период за всеки запазен прокси сървър от регистрационните файлове.",
+ "mgmtProxiesBulkAssignNote": "Присвояване или премахване на един прокси сървър за множество идентификатори на обхвати с една заявка.",
+ "mgmtAssignmentsListNote": "Показване на присвояванията на прокси сървъри по обхват, scope_id или proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Присвояване или премахване на прокси сървър за глобален обхват, доставчик, акаунт или комбинация.",
+ "mgmtLegacyMigrationNote": "Импортиране на наследени съпоставяния proxyConfig в присвояванията в регистъра.",
"modelPrefixesDescriptionStart": "Използвайте префикса на доставчика преди името на модела, за да насочите към конкретен доставчик. Пример:",
"modelPrefixesDescriptionEnd": "маршрути към GitHub Copilot.",
"provider": "Доставчик",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute е софтуер с отворен код. Вие сте свободни да го инспектирате, модифицирате и разпространявате съгласно условията на неговия лиценз."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI агенти",
+ "description": "Открийте инсталираните CLI агенти в системата си. Добавете персонализирани агенти за автоматично откриване.",
+ "refresh": "Опресняване",
+ "installed": "Инсталиран",
+ "notFound": "Не е намерен",
+ "builtIn": "Вграден",
+ "custom": "Персонализиран",
+ "remove": "Премахване",
+ "addCustomAgent": "Добавяне на персонализиран агент",
+ "addCustomAgentDesc": "Регистрирайте произволен CLI инструмент за откриване. Той ще бъде сканиран автоматично при опресняване.",
+ "agentName": "Име на агента",
+ "binaryName": "Име на изпълнимия файл",
+ "versionCommand": "Команда за версията",
+ "spawnArgs": "Аргументи за стартиране",
+ "addAgent": "Добавяне на агент",
+ "scanning": "Системата се сканира за CLI агенти...",
+ "opencodeIntegration": "Интеграция с OpenCode",
+ "opencodeDetected": "Открит е opencode {version}",
+ "opencodeDesc": "Генерирайте готов за използване {configFile} с основния URL адрес на OmniRoute и всички налични модели — поставете го в основната директория на проекта си и изпълнете {command}.",
+ "downloadConfig": "Изтегляне на {file}",
+ "downloaded": "Изтеглено!",
+ "setupGuideTitle": "Ръководство за настройка",
+ "openCliTools": "Отваряне на CLI инструментите",
+ "setupGuideDetectCliTitle": "Откриване на инсталираните CLI инструменти",
+ "setupGuideDetectCliDesc": "Щракнете върху „Обновяване“, след като инсталирате или актуализирате CLI инструмент, за да може OmniRoute отново да сканира изпълнимите файлове и версиите.",
+ "setupGuideCustomAgentTitle": "Регистриране на персонализиран изпълним файл",
+ "setupGuideCustomAgentDesc": "Използвайте „Добавяне на персонализиран агент“, когато вашият CLI инструмент не е във вградения списък. Посочете името на изпълнимия файл и командата за проверка на версията.",
+ "setupGuideCommandMissingTitle": "Отстраняване на грешката „командата не е намерена“",
+ "setupGuideCommandMissingDesc": "Уверете се, че CLI командата съществува в PATH, отворете нова терминална сесия и стартирайте отново „Обновяване“.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Управление на кеша",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Обновяване",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Записи в паметта",
+ "memoryEntriesSub": "LRU в паметта",
+ "dbEntries": "Записи в базата данни",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Попадения в кеша",
+ "cacheHitsSub": "от общо {total}",
+ "tokensSaved": "Спестени токени",
+ "tokensSavedSub": "Прогнозно въз основа на попаденията",
+ "hitRate": "Процент попадения",
+ "performance": "Производителност на кеша",
+ "autoRefresh": "Автоматично обновяване на всеки {seconds} сек.",
+ "hits": "Попадения",
+ "misses": "Пропуски",
+ "total": "Общо",
+ "behavior": "Поведение на кеша",
+ "behaviorDeterministic": "Кешират се само заявки без поточно предаване и с temperature=0.",
+ "behaviorBypass": "Заобикаляне чрез заглавката {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL по подразбиране: 30 минути. Конфигурирайте чрез {envVar}.",
+ "idempotency": "Слой за идемпотентност",
+ "activeDedupKeys": "Активни ключове за дедупликация",
+ "dedupWindow": "Прозорец за дедупликация",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Неуспешно изчистване на кеша.",
+ "unavailable": "Кешът не е достъпен",
+ "unavailableDesc": "Статистическите данни за кеша не можаха да бъдат извлечени. Уверете се, че сървърът работи.",
"loadingCacheAria": "Зареждане на кеша",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Кеш на подканите (от страна на доставчика)",
+ "semanticCache": "Семантичен кеш",
+ "promptCacheSectionDesc": "Показва активността по кеширане на подкани от страна на доставчика въз основа на хронологията на използване, за да можете да видите къде е активно управлението на кеша и каква част от входните данни се използва повторно.",
+ "promptTrendDesc": "Почасов обем на заявките, покритие на кеша и обем на прочетените от кеша данни през последните 24 часа.",
+ "cachedRequests": "Кеширани заявки",
+ "cachedRequests24h": "Кеширани заявки (24 ч.)",
+ "cacheHitRate": "Процент попадения в кеша",
+ "cacheRate": "Процент кеширане",
+ "cacheRateDesc": "от общия брой заявки",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Показатели за кеша на промптове",
+ "withCacheControl": "С управление на кеша",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Коефициент на повторно използване на кеша",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Прогнозно спестени разходи",
+ "lastUpdated": "Последно обновяване",
+ "hoursTracked": "проследени часа",
+ "busiestHour": "Най-натоварен час",
+ "peakCacheRate": "Пиков процент на кеширане",
+ "trendHour": "Час",
+ "activityVolume": "Активност",
+ "requestsShort": "заявки",
+ "inputShort": "Входящи",
+ "cachedShort": "Кеширани",
+ "writeShort": "Запис",
+ "resetting": "Нулиране...",
+ "resetMetrics": "Нулиране на показателите",
+ "byProvider": "Разбивка по доставчик",
+ "providerCacheRateDesc": "Всеки доставчик показва общия брой входни токени, токените, прочетени от кеша, и токените, записани в кеша, за да можете да сверите коефициента на повторно използване със суровите общи стойности.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Заявки",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Тенденция на кеша (24 ч.)",
+ "peakCached": "Пиково кеширане",
+ "cached": "Кеширани",
+ "overview": "Общ преглед",
"tableProvider": "Доставчик",
"tableModel": "Модел",
"performanceTitle": "Производителност",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "Собственият детерминиран кеш за отговори на OmniRoute. Когато е активиран, повтарящите се заявки без поточно предаване с temperature=0 могат да се обслужват локално, без да достигат до външния доставчик.",
+ "semanticCacheDisabledDesc": "Семантичният кеш е деактивиран. OmniRoute ще пропуска локалното повторно използване на отговори, докато не го активирате отново в настройките.",
+ "semanticEntriesDesc": "Текущо съхранявани в SQLite записи на семантичния кеш. Активността на кеша за промптове от страна на доставчика не е показана тук.",
+ "searchEntries": "Търсене в записите...",
+ "search": "Търсене",
+ "loading": "Зареждане...",
+ "entriesLoadError": "Зареждането на записите от семантичния кеш бе неуспешно.",
+ "noEntries": "Не са намерени записи в кеша",
+ "noPromptCacheData": "Все още не е регистрирана активност на кеша за промптове от страна на доставчика.",
+ "noTrendData": "През последните 24 часа не е регистрирана активност на кеша за промптове.",
+ "signature": "Сигнатура",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Създадено",
+ "expires": "Изтича",
+ "actions": "Действия",
+ "deduplicatedRequests": "Дедупликирани заявки",
+ "savedCalls": "Спестени API извиквания",
+ "totalProcessed": "Общо обработени заявки",
+ "disabled": "Деактивирано",
+ "totalRequests": "Общо заявки",
"reasoningCache": "Повторение на разсъждението",
"reasoningCacheDesc": "Запазва моделното мислене за потоците за извикване на многооборотни инструменти",
"reasoningEntries": "Активни записи",
@@ -10665,7 +10676,7 @@
"minutesAgo": "преди {minutes} мин.",
"hoursAgo": "преди {hours} ч.",
"daysAgo": "преди {days} дни",
- "entries": "Entries"
+ "entries": "Записи"
},
"proxyConfigModal": {
"levelGlobal": "Глобален",
@@ -10772,7 +10783,7 @@
"saveConnection": "Запази връзката",
"gheDescription": "Въведете основния URL адрес на вашия GitHub Enterprise инстанция (напр. https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "URL адрес на GitHub Enterprise",
"gheUrlRequired": "Изисква се URL адрес на GitHub Enterprise",
"gitlabDuoSetupTitle": "Настройка на GitLab Duo OAuth",
"gitlabDuoSetupMessage": "GitLab Duo OAuth не е конфигуриран. Регистрирайте OAuth приложение на {applicationsUrl} с URI за пренасочване {redirectUri} и обхвати \"{scopes}\", след което задайте {clientIdEnv} (и по желание {clientSecretEnv}) и рестартирайте.",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Свържете Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Вход с Cursor",
+ "tabImport": "Импортиране на токен",
+ "loginDescription": "Отваря страницата за вход на Cursor в браузъра. Работи в Docker — потвърдете в браузъра на хост системата си, след което се върнете тук.",
+ "loginWithCursor": "Вход с Cursor",
+ "startingLogin": "Стартиране…",
+ "waitingApproval": "Изчакване на потвърждение за вход в Cursor…",
+ "openUrlHint": "Ако браузърът не се е отворил:",
+ "openLoginLink": "Отваряне на страницата за вход",
+ "cancelLogin": "Отказ от влизането",
"autoDetecting": "Автоматично откриване на токени...",
"readingFromCursor": "Четене от Cursor IDE или cursor-agent",
"tokensAutoDetected": "Токените са успешно автоматично открити от Cursor IDE!",
"cursorNotDetected": "IDE на курсора не е открит. Моля, поставете ръчно вашето означение.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Работите в Docker? Препоръчваме „Вход с Cursor“. Автоматичното импортиране от IDE и cursor-agent обикновено не са налични в контейнера. Вижте docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Токен за достъп",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Токен за опресняване",
+ "refreshTokenPlaceholder": "Незадължително — активира автоматичното опресняване на токена",
"required": "*",
"accessTokenPlaceholder": "Токенът за достъп ще се попълни автоматично...",
"machineId": "ID на машината",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Автоматичното откриване на токени не бе успешно",
"errorEnterToken": "Моля, въведете токен за достъп",
"errorImportFailed": "Неуспешно импортиране",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Неуспешно стартиране на входа в Cursor",
+ "errorLoginPoll": "Неуспешен вход в Cursor",
+ "errorLoginTimeout": "Времето за вход в Cursor изтече — опитайте отново"
},
"pricingModal": {
"title": "Конфигурация на цените",
@@ -10839,9 +10850,9 @@
"selectProxy": "Избиране на {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Импортиране от стара версия",
+ "bulkAssign": "Групово присвояване",
+ "addProxy": "Добавяне на прокси",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Тестване",
+ "edit": "Редактиране",
+ "delete": "Изтриване",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Неуспешно",
"successRate": "{rate}% успех",
"avgLatency": "{latency}ms средно",
"assignmentsCount": "{count} задачи",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} мс",
"testFailure": "✗ {error}",
"repair": "Поправка",
"relayAuthMissing": "липсва удостоверяване",
@@ -10938,7 +10949,7 @@
"batchSelectedCount": "{count} избрани",
"batchDeleteSelected": "Изтриване на {count} избрани",
"batchActivateSelected": "Активиране на {count} избрани",
- "testPassed": "✓ OK",
+ "testPassed": "✓ ОК",
"close": "Затваряне",
"managePool": "Управление на пула",
"poolTitle": "Пул от проксита и ротация",
@@ -10957,6 +10968,9 @@
"strategyLatency": "Оптимизирано по латентност (Latency-optimized)",
"poolMembersLabel": "Членове на пула ({count})",
"poolNoMembers": "Все още няма проксита в този пул.",
+ "poolEgressObservation": "Използвани са {exits, plural, one {# изход} other {# изхода}} от {connections, plural, one {# връзка} other {# връзки}} · до {max} на един изход · последните {hours} ч",
+ "poolEgressObservationEmpty": "Не е наблюдаван трафик през последните {hours} ч",
+ "poolEgressObservationHint": "Изчислено от регистрационния файл на прокси сървъра за периода: отделните изходящи IP адреси, наблюдавани за членовете на този пул, и връзките на OmniRoute, които са ги използвали. „На един изход“ означава за целия период, а не едновременно. Блокирането за 429 за отделен IP адрес поставя на пауза само връзките от същото семейство доставчици.",
"poolRemove": "Премахване",
"poolRemoveFailed": "Неуспешно премахване на проксито от пула",
"poolAddLabel": "Добавяне на прокси",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Крайна точка",
+ "provider": "Доставчик",
+ "model": "Модел",
"accountKey": "Account Key",
"autoAccounts": "Автоматично ({count} акаунта)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Изпращане",
+ "cancel": "Отказ",
+ "audioFile": "Аудиофайл",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Изчистване на всичко",
+ "request": "Заявка",
+ "response": "Отговор",
+ "transcription": "Транскрипция",
+ "copy": "Копиране",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Генерирани {count} изображения",
"generatedImage": "Генерирано изображение {index}",
- "save": "Save",
+ "save": "Запазване",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Отговори",
"completions": "Довършвания",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Вграждания",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Модерации",
- "rerank": "Rerank",
+ "rerank": "Преранжиране",
"search": "Search",
"webFetch": "Уеб извличане"
},
"conversationalChat": "Разговорен чат",
"clearChat": "Изчистване на чата",
"typeMessagePlaceholder": "Въведете съобщение... (Shift+Enter за нов ред)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Чат",
+ "tabCompare": "Сравняване",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Изграждане",
+ "configPane": "Конфигурация",
+ "systemPrompt": "Системна подкана",
+ "systemPromptPlaceholder": "Вие сте полезен асистент.",
+ "modelPlaceholder": "напр. openai/gpt-4o",
+ "endpointLabel": "Крайна точка",
+ "parametersLabel": "Параметри",
+ "collapseConfig": "Свиване на панела за конфигурация",
+ "expandConfig": "Разгъване на панела за конфигурация",
+ "temperature": "Температура",
+ "maxTokens": "Максимален брой токени",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Наказание за присъствие",
+ "frequencyPenalty": "Наказание за честота",
"reasoningLabel": "Разсъждение",
"thinking": "Мислене",
"effort": "Усилие",
"effortDefault": "По подразбиране",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Произволно (оставете празно)",
+ "presetsLabel": "Предварителни настройки",
+ "loadPreset": "Зареждане на предварителна настройка",
+ "savePreset": "Запазване на предварителна настройка",
+ "noPresets": "Няма предварителни настройки",
+ "presetNamePlaceholder": "Име на предварителната настройка",
+ "savingPreset": "Запазване…",
+ "nameRequired": "Името е задължително",
+ "failedToSavePreset": "Неуспешно запазване на предварителната настройка",
+ "improvePrompt": "Подобряване на подканата",
+ "improvingPrompt": "Подобряване…",
+ "improvePromptTitle": "Подобрете подканата си с AI",
+ "setModelFirst": "Първо задайте модел",
"setModelInConfigFirst": "Първо задайте модел в панела за конфигуриране.",
"improvePromptFailed": "Неуспешно подобряване на подканата.",
"improvePromptAria": "Подобряване на подканата с AI",
"confirmImprovePrompt": "Потвърждаване на подобряването на подканата",
"improvePromptDescription": "Това ще изпрати текущата ви системна подкана към --permission-mode auto সিকিউরিটি ক্লাসিফায়ারকে শর্ট-সার্কিট করুন যাতে ফলব্যাক রুটগুলি ফেইল ক্লোজড না হয়। ডিফল্টভাবে বন্ধ।",
"classifierCompatCycle": "সাইকেল: off → auto → always",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "মডেল আবিষ্কারের পরে ~/.codex/*.config.toml পুনরায় তৈরি করুন।",
"claudeProfiles": "Claude Code প্রোফাইল",
"claudeProfilesDescription": "মডেল আবিষ্কারের পরে প্রতিটি ~/.claude/profiles/…/settings.json পুনরায় তৈরি করুন।",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "কোনো সক্রিয় প্রোভাইডার নেই",
+ "noActiveProvidersDesc": "CLI টুল কনফিগার করতে প্রথমে প্রোভাইডার যোগ করে সংযুক্ত করুন।",
+ "mapModels": "মডেল ম্যাপ করুন",
+ "testConnection": "সংযোগ পরীক্ষা করুন",
+ "connectionStatus": "সংযোগের স্থিতি",
+ "configureEndpoint": "এন্ডপয়েন্ট কনফিগার করুন",
+ "instructions": "নির্দেশাবলি",
+ "modelMapping": "মডেল ম্যাপিং",
"reasoningEffort": "{model}-এর জন্য রিজনিং এফোর্ট",
"effortNone": "কোনোটিই নয়",
"effortLow": "কম",
@@ -2743,62 +2747,62 @@
"modelAliases": "মডেল অ্যালিয়াস",
"addModel": "মডেল যোগ করুন",
"routeModelPlaceholder": "{model}-কে এখানে রাউট করুন...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "বেস URL",
+ "apiKey": "API কী",
+ "configured": "কনফিগার করা হয়েছে",
+ "notConfigured": "কনফিগার করা হয়নি",
+ "notInstalled": "ইনস্টল করা নেই",
+ "custom": "কাস্টম",
+ "unknown": "অজানা",
+ "lastSavedAt": "সর্বশেষ সংরক্ষণ: {date}",
+ "never": "কখনোই নয়",
+ "justNow": "এইমাত্র",
+ "minutesAgoShort": "{count} মিনিট আগে",
+ "hoursAgoShort": "{count} ঘণ্টা আগে",
+ "daysAgoShort": "{count} দিন আগে",
+ "monthsAgoShort": "{count} মাস আগে",
+ "yearsAgoShort": "{count} বছর আগে",
+ "runtimeCheckFailed": "রানটাইম যাচাই ব্যর্থ হয়েছে",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "কনফিগারেশন সফলভাবে সংরক্ষিত হয়েছে।",
+ "failedToSave": "কনফিগারেশন সংরক্ষণ করা যায়নি।",
+ "noApiKeysCreateOne": "কোনো API কী নেই — Keys পৃষ্ঠায় একটি তৈরি করুন",
+ "defaultOmnirouteKey": "sk_omniroute (ডিফল্ট)",
+ "selectModel": "মডেল নির্বাচন করুন",
+ "selectModelForAlias": "{alias}-এর জন্য মডেল নির্বাচন করুন",
+ "selectModelForTool": "{tool}-এর জন্য মডেল নির্বাচন করুন",
+ "select": "নির্বাচন করুন",
+ "clear": "মুছুন",
+ "comingSoon": "শীঘ্রই আসছে",
+ "checkingRuntime": "রানটাইমের অবস্থা যাচাই করা হচ্ছে...",
+ "guideOnlyIntegration": "শুধু নির্দেশিকাভিত্তিক ইন্টিগ্রেশন (লোকাল রানটাইমের প্রয়োজন নেই)",
+ "cliRuntimeDetected": "CLI রানটাইম শনাক্ত হয়েছে এবং প্রস্তুত",
+ "cliFoundNotRunnable": "CLI পাওয়া গেছে, কিন্তু চালানো যাচ্ছে না{reason}",
+ "cliRuntimeNotDetected": "CLI রানটাইম শনাক্ত হয়নি",
+ "binary": "বাইনারি",
+ "configPath": "কনফিগ পাথ",
+ "configPathShort": "কনফিগ",
+ "failedCheckRuntimeStatus": "রানটাইমের অবস্থা যাচাই করা যায়নি।",
+ "copy": "কপি করুন",
+ "copied": "কপি করা হয়েছে",
+ "copyConfig": "কনফিগ কপি করুন",
+ "saveConfig": "কনফিগ সংরক্ষণ করুন",
+ "selectionSaved": "নির্বাচন সংরক্ষিত হয়েছে",
+ "guide": "নির্দেশিকা",
+ "detected": "শনাক্ত হয়েছে",
+ "notReady": "প্রস্তুত নয়",
+ "active": "সক্রিয়",
+ "inactive": "নিষ্ক্রিয়",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM সফলভাবে চালু হয়েছে!",
+ "mitmStopped": "MITM সফলভাবে বন্ধ হয়েছে!",
+ "failedStart": "MITM চালু করতে ব্যর্থ হয়েছে",
+ "failedStop": "MITM বন্ধ করতে ব্যর্থ হয়েছে",
+ "saveMappings": "ম্যাপিং সংরক্ষণ করুন",
+ "mappingsSaved": "ম্যাপিং সংরক্ষিত হয়েছে!",
+ "failedSaveMappings": "ম্যাপিং সংরক্ষণ করতে ব্যর্থ হয়েছে",
"reasoningEffortDefault": "ডিফল্ট",
"reasoningEffortHint": "ডিফল্ট এজেন্ট দ্বারা প্রেরিত রিজনিং এফোর্ট বজায় রাখে",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "উচ্চ",
"xhigh": "XHigh"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "এটি যেভাবে কাজ করে:",
+ "antigravityHowWorksDesc": "Antigravity Google-এর এন্ডপয়েন্টে অনুরোধ পাঠায়। MITM সেগুলো ইন্টারসেপ্ট করে OmniRoute-এ রিডাইরেক্ট করে।",
+ "antigravityStep1": "১. OmniRoute-এর মাধ্যমে অনুরোধ রাউট করতে MITM চালু করুন।",
+ "antigravityStep2Prefix": "২. যোগ করুন",
+ "antigravityStep2Suffix": "আপনার hosts ফাইলে 127.0.0.1 হিসেবে।",
+ "antigravityStep3": "৩. Antigravity খুলুন, এরপর অনুরোধগুলো প্রক্সি করা হবে।",
+ "mitmHowWorksDesc": "{toolName} তার প্রোভাইডার এন্ডপয়েন্টে অনুরোধ পাঠায়। MITM সেগুলো ইন্টারসেপ্ট করে OmniRoute-এ রিডাইরেক্ট করে।",
+ "mitmStep1": "১. OmniRoute-এর মাধ্যমে অনুরোধ রাউট করতে MITM চালু করুন।",
+ "mitmStep2Prefix": "২. যোগ করুন",
+ "mitmStep2Suffix": "আপনার hosts ফাইলে 127.0.0.1 হিসেবে।",
+ "mitmStep3": "৩. {toolName} খুলুন, এরপর অনুরোধগুলো প্রক্সি করা হবে।",
+ "sudoPasswordRequiredTitle": "Sudo পাসওয়ার্ড প্রয়োজন",
+ "sudoPasswordHint": "hosts ফাইল এবং সিস্টেম প্রক্সি সেটিংস পরিবর্তন করতে অ্যাডমিনিস্ট্রেটর পাসওয়ার্ড প্রয়োজন।",
+ "enterSudoPassword": "sudo পাসওয়ার্ড লিখুন",
+ "sudoPasswordRequiredError": "Sudo পাসওয়ার্ড প্রয়োজন।",
+ "cancel": "বাতিল করুন",
+ "confirm": "নিশ্চিত করুন",
+ "settingsApplied": "সেটিংস সফলভাবে প্রয়োগ করা হয়েছে!",
+ "failedApplySettings": "সেটিংস প্রয়োগ করতে ব্যর্থ হয়েছে",
+ "settingsReset": "সেটিংস সফলভাবে রিসেট করা হয়েছে!",
+ "failedResetSettings": "সেটিংস রিসেট করতে ব্যর্থ হয়েছে",
+ "backupRestored": "ব্যাকআপ পুনরুদ্ধার করা হয়েছে!",
+ "failedRestore": "পুনরুদ্ধার করতে ব্যর্থ হয়েছে",
+ "checkingCli": "{tool} CLI পরীক্ষা করা হচ্ছে...",
+ "cliNotRunnable": "{tool} CLI ইনস্টল করা আছে, কিন্তু চালানো যাচ্ছে না",
+ "cliNotInstalled": "{tool} CLI ইনস্টল করা নেই",
+ "cliNotDetected": "{tool} CLI শনাক্ত করা যায়নি",
+ "cliDetectedReady": "{tool} CLI শনাক্ত হয়েছে এবং প্রস্তুত",
+ "cliFoundFailedHealthcheck": "{tool} CLI পাওয়া গেছে, কিন্তু রানটাইম স্বাস্থ্য পরীক্ষা ব্যর্থ হয়েছে{reason}।",
+ "installCliPrompt": "এই ফিচারটি ব্যবহার করতে অনুগ্রহ করে {tool} CLI ইনস্টল করুন।",
+ "installCodexPrompt": "স্বয়ংক্রিয়ভাবে প্রয়োগ করার ফিচারটি ব্যবহার করতে অনুগ্রহ করে Codex CLI ইনস্টল করুন।",
+ "hide": "লুকান",
+ "howToInstall": "ইনস্টল করার পদ্ধতি",
+ "installationGuide": "ইনস্টলেশন নির্দেশিকা",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "ইনস্টলেশনের পরে, চালান",
+ "toVerify": "যাচাই করতে।",
+ "current": "বর্তমান",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "ডিফল্টে রিসেট করুন",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "প্রয়োগ করুন",
+ "reset": "রিসেট করুন",
+ "manualConfig": "ম্যানুয়াল কনফিগ",
+ "backups": "ব্যাকআপসমূহ",
+ "configBackups": "কনফিগ ব্যাকআপসমূহ",
+ "noBackupsYet": "এখনও কোনো ব্যাকআপ নেই। প্রতিবার প্রয়োগ বা রিসেট করার আগে স্বয়ংক্রিয়ভাবে ব্যাকআপ তৈরি হয়।",
+ "restore": "পুনরুদ্ধার করুন",
+ "backupRestoredReloading": "ব্যাকআপ পুনরুদ্ধার করা হয়েছে! স্ট্যাটাস পুনরায় লোড হচ্ছে...",
+ "failedRestoreBackup": "ব্যাকআপ পুনরুদ্ধার করা যায়নি",
+ "applied": "প্রয়োগ করা হয়েছে!",
+ "failed": "ব্যর্থ হয়েছে",
+ "resetDone": "রিসেট করা হয়েছে!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute-কে OpenAI-সামঞ্জস্যপূর্ণ প্রোভাইডার হিসেবে কনফিগার করা হয়েছে",
+ "provider": "প্রোভাইডার",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "প্রোভাইডারসমূহ",
+ "auth": "প্রমাণীকরণ",
+ "noApiKeysAvailable": "কোনো API কী উপলভ্য নেই",
+ "usingDefaultOmniroute": "ডিফল্ট ব্যবহার করা হচ্ছে: sk_omniroute",
+ "updateConfig": "কনফিগ আপডেট করুন",
+ "applyConfig": "কনফিগ প্রয়োগ করুন",
+ "noBackupsAvailable": "কোনো ব্যাকআপ উপলভ্য নেই।",
+ "profileSaved": "প্রোফাইল \"{name}\" সংরক্ষণ করা হয়েছে!",
+ "failedSaveProfile": "প্রোফাইল সংরক্ষণ করা যায়নি",
+ "profileActivated": "প্রোফাইল সক্রিয় করা হয়েছে!",
+ "failedActivateProfile": "প্রোফাইল সক্রিয় করা যায়নি",
+ "profiles": "প্রোফাইলসমূহ",
+ "savedProfiles": "সংরক্ষিত প্রোফাইলসমূহ",
+ "noProfilesYet": "এখনও কোনো প্রোফাইল সংরক্ষিত হয়নি। নিচে বর্তমান কনফিগটি প্রোফাইল হিসেবে সংরক্ষণ করুন।",
+ "activate": "সক্রিয় করুন",
+ "deleteProfile": "প্রোফাইল মুছুন",
+ "profileNamePlaceholder": "প্রোফাইলের নাম (যেমন: ব্যক্তিগত অ্যাকাউন্ট)",
+ "saveCurrent": "বর্তমানটি সংরক্ষণ করুন",
+ "codexAuthNotePrefix": "Codex ব্যবহার করে",
+ "codexAuthNoteMiddle": "এর সাথে",
+ "codexAuthNoteSuffix": "স্বয়ংক্রিয়ভাবে কনফিগার করতে \"প্রয়োগ করুন\"-এ ক্লিক করুন।",
+ "claudeManualConfiguration": "Claude CLI - ম্যানুয়াল কনফিগারেশন",
+ "codexManualConfiguration": "Codex CLI - ম্যানুয়াল কনফিগারেশন",
+ "droidManualConfiguration": "Factory Droid - ম্যানুয়াল কনফিগারেশন",
+ "openClawManualConfiguration": "Open Claw - ম্যানুয়াল কনফিগারেশন",
+ "clineManualConfiguration": "Cline ম্যানুয়াল কনফিগারেশন",
+ "kiloManualConfiguration": "Kilo Code ম্যানুয়াল কনফিগারেশন",
+ "whenToUseLabel": "কখন ব্যবহার করবেন",
+ "openToolDocs": "টুলের ডকুমেন্টেশন খুলুন",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "Claude Code-এর মাধ্যমে শক্তিশালী পরিকল্পনা ওয়ার্কফ্লো এবং দীর্ঘ মাল্টি-ফাইল রিফ্যাক্টর করতে চাইলে ব্যবহার করুন।",
+ "codex": "আপনার টিম OpenAI Codex CLI ফ্লো এবং প্রোফাইল-ভিত্তিক প্রমাণীকরণে মানসম্মত হলে ব্যবহার করুন।",
+ "droid": "দ্রুত কোডিং এবং কমান্ড এক্সিকিউশন লুপে কেন্দ্রীভূত হালকা টার্মিনাল এজেন্টের প্রয়োজন হলে ব্যবহার করুন।",
+ "openclaw": "Open Claw-ধাঁচের কোডিং এজেন্ট চাইলে, তবে সেটিকে OmniRoute নীতিমালার মাধ্যমে রাউট করতে হলে ব্যবহার করুন।",
+ "cline": "এডিটরের ভেতরে কোডিং এজেন্ট কনফিগার করার সময় OmniRoute মডেলসহ নির্দেশিত সেটআপ চাইলে ব্যবহার করুন।",
+ "kilo": "আপনার ওয়ার্কফ্লো Kilo Code কমান্ড এবং দ্রুত পুনরাবৃত্তিমূলক সম্পাদনার ওপর নির্ভর করলে ব্যবহার করুন।",
+ "cursor": "Cursor-এ কোডিং করার সময় OmniRoute-এর মাধ্যমে কাস্টম OpenAI-সামঞ্জস্যপূর্ণ মডেলের প্রয়োজন হলে ব্যবহার করুন।",
+ "continue": "IDE-তে Continue চালানোর সময় বহনযোগ্য JSON-ভিত্তিক প্রোভাইডার কনফিগারেশনের প্রয়োজন হলে ব্যবহার করুন।",
+ "opencode": "OpenCode-এর মাধ্যমে টার্মিনাল-নেটিভ এজেন্ট রান এবং স্ক্রিপ্টেড অটোমেশন পছন্দ করলে ব্যবহার করুন।",
+ "kiro": "Kiro ইন্টিগ্রেট করার সময় OmniRoute থেকে কেন্দ্রীয়ভাবে মডেল রাউটিং নিয়ন্ত্রণ করতে চাইলে ব্যবহার করুন।",
+ "windsurf": "OmniRoute-এর মাধ্যমে রাউট করা Codeium/Windsurf মডেলসহ AI-প্রধান IDE চাইলে ব্যবহার করুন।",
+ "antigravity": "Antigravity/Kiro ট্রাফিক MITM-এর মাধ্যমে ইন্টারসেপ্ট করে OmniRoute-এ রাউট করতে হলে ব্যবহার করুন।",
+ "copilot": "OmniRoute কী এবং রাউটিং নিয়ম প্রয়োগের পাশাপাশি Copilot চ্যাট-ধাঁচের UX চাইলে ব্যবহার করুন।",
+ "amp": "Amp শর্টহ্যান্ড ওয়ার্কফ্লো চাইলে, তবে OmniRoute অ্যালিয়াস এবং রাউটিং নিয়ম প্রয়োগেরও প্রয়োজন হলে ব্যবহার করুন।",
+ "hermes": "দ্রুত কাজের জন্য হালকা, টার্মিনাল-নেটিভ AI সহকারীর প্রয়োজন হলে ব্যবহার করুন।",
"hermes-agent": "যখন আপনার OmniRoute-এর মাধ্যমে রাউট করা ডিফল্ট, ডেলিগেশন, ভিশন এবং অক্সিলিয়ারি মডেল সহ Hermes Agent (Nousresearch দ্বারা)-এর প্রয়োজন হবে তখন এটি ব্যবহার করুন।",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "কাস্টম টুল বাস্তবায়ন বা সাধারণ OpenAI-সামঞ্জস্যপূর্ণ কনফিগারেশনের জন্য ব্যবহার করুন।"
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "MITM-সহ Google Antigravity IDE",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "কাস্টম প্রোভাইডার সাপোর্ট সহ xAI Grok Build TUI কোডিং এজেন্ট",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Factory Droid AI সহকারী",
+ "openclaw": "Open Claw AI সহকারী",
+ "cline": "Cline AI কোডিং সহকারী CLI",
+ "kilo": "Kilo Code AI সহকারী CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Continue AI সহকারী",
+ "opencode": "OpenCode AI কোডিং এজেন্ট (টার্মিনাল)",
+ "kiro": "Amazon Kiro — AI-চালিত IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp কোডিং সহকারী CLI",
+ "hermes": "Hermes AI টার্মিনাল সহকারী",
"hermes-agent": "Hermes Agent (Nousresearch দ্বারা) - মাল্টি-মডেল সাপোর্ট (ডেলিগেশন, ভিশন, কম্প্রেশন ইত্যাদি) সহ উন্নত টার্মিনাল AI",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "সাধারণ OpenAI-সামঞ্জস্যপূর্ণ CLI বা SDK কনফিগারেশন জেনারেটর",
"aider": "OpenAI-সামঞ্জস্যপূর্ণ বেস URL সহ Aider AI পেয়ার-প্রোগ্রামিং CLI",
"forge": "কাস্টম প্রোভাইডার সহ ForgeCode কোডিং এজেন্ট CLI",
"cursor-cli": "হেডলেস এজেন্ট মোডে Cursor Agent CLI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter স্বায়ত্তশাসিত কোডিং এজেন্ট CLI",
"omp": "Oh My Pi টার্মিনাল কোডিং এজেন্ট",
"letta": "পারসিস্টেন্ট মেমরি এবং টুল ব্যবহারের সুবিধা সহ Letta CLI এজেন্ট",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI-সামঞ্জস্যপূর্ণ প্রোভাইডার সমর্থনসহ স্ব-উন্নয়নশীল RLM কোডিং হারনেস",
"warp": "কাস্টম প্রোভাইডার সাপোর্ট সহ Warp AI টার্মিনাল",
"agent-deck": "Agent Deck মাল্টি-এজেন্ট অর্কেস্ট্রেটর",
"5dive": "5dive — নিজে হোস্ট করা কোডিং এজেন্টের বহর; একটি auth প্রোফাইল সবগুলোকে OmniRoute-এ নির্দেশ করে"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "এই ফিচারটি ব্যবহার করতে Cursor Pro অ্যাকাউন্ট প্রয়োজন।",
+ "1": "Cursor তার নিজস্ব সার্ভারের মাধ্যমে অনুরোধ রাউট করে, তাই লোকাল এন্ডপয়েন্ট সমর্থিত নয়। অনুগ্রহ করে Settings-এ Cloud Endpoint সক্রিয় করুন।"
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "Settings খুলুন",
+ "desc": "Settings -> Models-এ যান"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI API সক্ষম করুন",
+ "desc": "\"OpenAI API key\" বিকল্পটি সক্ষম করুন"
},
"3": {
- "title": "Base URL"
+ "title": "বেস URL"
},
"4": {
- "title": "API Key"
+ "title": "API কী"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "কাস্টম মডেল যোগ করুন",
+ "desc": "\"সমস্ত মডেল দেখুন\" -> \"কাস্টম মডেল যোগ করুন\"-এ ক্লিক করুন"
},
"6": {
- "title": "Select Model"
+ "title": "মডেল নির্বাচন করুন"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "কনফিগ খুলুন",
+ "desc": "Continue কনফিগারেশন ফাইল খুলুন"
},
"2": {
- "title": "API Key"
+ "title": "API কী"
},
"3": {
- "title": "Select Model"
+ "title": "মডেল নির্বাচন করুন"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "মডেল কনফিগ যোগ করুন",
+ "desc": "আপনার models অ্যারেতে নিম্নলিখিত কনফিগারেশন যোগ করুন:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue একটি JSON কনফিগ ফাইল ব্যবহার করে।"
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCode ইনস্টল করুন",
+ "desc": "npm-এর মাধ্যমে ইনস্টল করুন: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API কী"
},
"3": {
- "title": "Set Base URL",
+ "title": "বেস URL সেট করুন",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "মডেল নির্বাচন করুন"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "থিঙ্কিং ভ্যারিয়েন্ট ব্যবহার করুন",
+ "desc": "থিঙ্কিং মডেলের জন্য --variant high/low/max দিয়ে চালান (নিচে উদাহরণ কমান্ড দেওয়া হয়েছে)।"
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode-এর জন্য API কী কনফিগারেশন প্রয়োজন।",
+ "1": "আপনার OmniRoute এন্ডপয়েন্টকে বেস URL হিসেবে সেট করুন।"
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro সেটিংস খুলুন",
+ "desc": "সেটিংস → AI প্রদানকারী-তে যান"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "বেস URL",
+ "desc": "আপনার OmniRoute এন্ডপয়েন্ট URL পেস্ট করুন"
},
"3": {
- "title": "API Key"
+ "title": "API কী"
},
"4": {
- "title": "Select Model"
+ "title": "মডেল নির্বাচন করুন"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro-এর জন্য Amazon অ্যাকাউন্ট প্রয়োজন।"
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI সেটিংস খুলুন",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "কাস্টম প্রদানকারী যোগ করুন",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "বেস URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API কী",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "মডেল নির্বাচন করুন",
+ "desc": "ড্রপডাউন থেকে একটি মডেল বেছে নিন"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "স্বয়ংক্রিয়ভাবে কনফিগার করা হয়েছে",
+ "toolCategoriesDesc": "OmniRoute-এর মাধ্যমে রাউট করার জন্য AI কোডিং অ্যাসিস্ট্যান্টগুলো কনফিগার করুন",
+ "allToolsTab": "সমস্ত টুল",
+ "guidedClientsTab": "নির্দেশিত ক্লায়েন্ট",
+ "mitmClientsTab": "MITM ক্লায়েন্ট",
"customCliTab": "কাস্টম CLI",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "টুলের বিভাগসমূহ",
+ "visibleToolsCount": "{count}টি টুল উপলভ্য",
"customCliBuilderTitle": "OpenAI- সামঞ্জস্যপূর্ণ CLI নির্মাতা",
"customCliBuilderDescription": "যে কোনো CLI বা SDK-এর জন্য env vars এবং JSON স্নিপেট তৈরি করুন যা একটি OpenAI- সামঞ্জস্যপূর্ণ বেস URL, API কী এবং মডেল আইডি গ্রহণ করে।",
"customCliNoModels": "মডেল নির্বাচকদের তৈরি করতে কমপক্ষে একটি প্রদানকারীকে সংযুক্ত করুন৷",
@@ -3106,7 +3110,7 @@
"refreshAll": "সব রিফ্রেশ করুন",
"hermesRoleDefault": "ডিফল্ট (প্রধান)",
"hermesRoleDefaultDesc": "প্রাথমিক কথোপকথন মডেল",
- "hermesRoleDelegation": "Delegation (subagents)",
+ "hermesRoleDelegation": "দায়িত্ব অর্পণ (সাব-এজেন্ট)",
"hermesRoleDelegationDesc": "অরকেস্ট্রেটর এবং সাব-এজেন্ট মডেল",
"hermesRoleVision": "ভিশন",
"hermesRoleVisionDesc": "ছবি এবং স্ক্রিনশট বোঝার ক্ষমতা",
@@ -3199,75 +3203,75 @@
"cliproxyapiVersion": "সংস্করণ"
},
"combos": {
- "title": "Combos",
- "description": "Create model combos with weighted routing and fallback support",
+ "title": "কম্বোসমূহ",
+ "description": "ওজনভিত্তিক রাউটিং ও ফলব্যাক সমর্থনসহ মডেল কম্বো তৈরি করুন",
"autoCatalogTitle": "স্বয়ংক্রিয়-রাউটিং ক্যাটালগ",
"autoCatalogTemplateCount": "{count} টেমপ্লেট",
"autoCatalogDescription": "অন্তর্নির্মিত স্বয়ংক্রিয়/* কম্বোগুলি সংযুক্ত প্রদানকারীদের থেকে গতিশীলভাবে সমাধান করা হয়েছে। মডেল ক্ষেত্র হিসাবে এই আইডিগুলির যে কোনও একটি ব্যবহার করুন — কোনও সেটআপের প্রয়োজন নেই৷",
"autoCatalogExpand": "স্বয়ংক্রিয়-রাউটিং ক্যাটালগ প্রসারিত করুন",
"autoCatalogCollapse": "স্বয়ংক্রিয়-রাউটিং ক্যাটালগ সঙ্কুচিত করুন",
- "createCombo": "Create Combo",
- "editCombo": "Edit Combo",
- "deleteCombo": "Delete Combo",
- "noModels": "No models",
- "noModelsYet": "No models added yet",
- "addModel": "Add Model",
- "addModelToCombo": "Add Model to Combo",
- "routingStrategy": "Routing Strategy",
- "maxRetries": "Max Retries",
- "timeout": "Timeout (ms)",
- "healthcheck": "Healthcheck",
- "priority": "Priority",
- "fallback": "Fallback",
+ "createCombo": "কম্বো তৈরি করুন",
+ "editCombo": "কম্বো সম্পাদনা করুন",
+ "deleteCombo": "কম্বো মুছুন",
+ "noModels": "কোনো মডেল নেই",
+ "noModelsYet": "এখনও কোনো মডেল যোগ করা হয়নি",
+ "addModel": "মডেল যোগ করুন",
+ "addModelToCombo": "কম্বোতে মডেল যোগ করুন",
+ "routingStrategy": "রাউটিং কৌশল",
+ "maxRetries": "সর্বোচ্চ পুনঃচেষ্টা",
+ "timeout": "সময়সীমা (ms)",
+ "healthcheck": "স্বাস্থ্য পরীক্ষা",
+ "priority": "অগ্রাধিকার",
+ "fallback": "ফলব্যাক",
"roundRobin": "Round Robin",
- "random": "Random",
- "leastLatency": "Least Latency",
- "comboName": "Combo Name",
+ "random": "এলোমেলো",
+ "leastLatency": "সর্বনিম্ন বিলম্ব",
+ "comboName": "কম্বোর নাম",
"comboNamePlaceholder": "my-combo",
"comboDescription": "বিবরণ",
"comboDescriptionPlaceholder": "এই কম্বোটি বর্ণনা করার জন্য ঐচ্ছিক নোট",
- "deleteConfirm": "Delete this combo?",
- "noCombosYet": "No combos yet",
- "comboCreated": "Combo created successfully",
- "comboUpdated": "Combo updated successfully",
- "comboDeleted": "Combo deleted",
- "failedCreate": "Failed to create combo",
- "failedUpdate": "Failed to update combo",
- "errorCreating": "Error creating combo",
- "errorUpdating": "Error updating combo",
- "errorDeleting": "Error deleting combo",
- "testFailed": "Test request failed",
- "failedToggle": "Failed to toggle combo",
- "testResults": "Test Results — {name}",
- "resolvedBy": "Resolved by:",
- "more": "+{count} more",
- "reqs": "reqs",
- "success": "success",
- "proxyConfigured": "Proxy configured",
- "copyComboName": "Copy combo name",
- "enableCombo": "Enable combo",
- "disableCombo": "Disable combo",
- "testCombo": "Test combo",
- "duplicate": "Duplicate",
- "proxyConfig": "Proxy configuration",
- "nameRequired": "Name is required",
- "nameInvalid": "Only letters, numbers, -, _, / and . allowed",
- "nameHint": "Letters, numbers, -, _, / and . allowed",
- "priorityDesc": "Sequential fallback: tries model 1 first, then 2, etc.",
- "weightedDesc": "Distributes traffic by weight percentage with fallback",
- "roundRobinDesc": "Circular distribution: each request goes to the next model in rotation",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
- "randomDesc": "Uniform random selection, then fallback to remaining models",
- "leastUsedDesc": "Picks the model with fewest requests, balancing load over time",
- "costOptimizedDesc": "Routes to the cheapest model first based on pricing",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "deleteConfirm": "এই কম্বোটি মুছবেন?",
+ "noCombosYet": "এখনও কোনো কম্বো নেই",
+ "comboCreated": "কম্বো সফলভাবে তৈরি হয়েছে",
+ "comboUpdated": "কম্বো সফলভাবে হালনাগাদ হয়েছে",
+ "comboDeleted": "কম্বো মুছে ফেলা হয়েছে",
+ "failedCreate": "কম্বো তৈরি করতে ব্যর্থ হয়েছে",
+ "failedUpdate": "কম্বো হালনাগাদ করতে ব্যর্থ হয়েছে",
+ "errorCreating": "কম্বো তৈরিতে ত্রুটি",
+ "errorUpdating": "কম্বো হালনাগাদে ত্রুটি",
+ "errorDeleting": "কম্বো মুছতে ত্রুটি",
+ "testFailed": "পরীক্ষামূলক অনুরোধ ব্যর্থ হয়েছে",
+ "failedToggle": "কম্বোর অবস্থা পরিবর্তন করতে ব্যর্থ হয়েছে",
+ "testResults": "পরীক্ষার ফলাফল — {name}",
+ "resolvedBy": "সমাধান করেছে:",
+ "more": "+আরও {count}টি",
+ "reqs": "অনুরোধ",
+ "success": "সফল",
+ "proxyConfigured": "প্রক্সি কনফিগার করা হয়েছে",
+ "copyComboName": "কম্বোর নাম কপি করুন",
+ "enableCombo": "কম্বো সক্রিয় করুন",
+ "disableCombo": "কম্বো নিষ্ক্রিয় করুন",
+ "testCombo": "কম্বো পরীক্ষা করুন",
+ "duplicate": "অনুলিপি তৈরি করুন",
+ "proxyConfig": "প্রক্সি কনফিগারেশন",
+ "nameRequired": "নাম আবশ্যক",
+ "nameInvalid": "শুধু অক্ষর, সংখ্যা, -, _, / এবং . ব্যবহার করা যাবে",
+ "nameHint": "অক্ষর, সংখ্যা, -, _, / এবং . ব্যবহার করা যাবে",
+ "priorityDesc": "ক্রমিক ফলব্যাক: প্রথমে মডেল ১, তারপর ২, এভাবে চেষ্টা করে।",
+ "weightedDesc": "ফলব্যাকসহ ওজনের শতাংশ অনুযায়ী ট্রাফিক বণ্টন করে",
+ "roundRobinDesc": "চক্রাকার বণ্টন: প্রতিটি অনুরোধ পর্যায়ক্রমে পরবর্তী মডেলে যায়",
+ "contextRelay": "কনটেক্সট রিলে",
+ "contextRelayDesc": "অ্যাকাউন্ট পরিবর্তনের সময় হ্যান্ডঅফ সারাংশ ব্যবহার করে সেশনের ধারাবাহিকতা বজায় রাখে",
+ "randomDesc": "সমানভাবে র্যান্ডম নির্বাচন করে, তারপর অবশিষ্ট মডেলগুলোতে ফলব্যাক করে",
+ "leastUsedDesc": "সবচেয়ে কম অনুরোধ পাওয়া মডেলটি বেছে নিয়ে সময়ের সাথে লোডের ভারসাম্য বজায় রাখে",
+ "costOptimizedDesc": "মূল্যের ভিত্তিতে প্রথমে সবচেয়ে সাশ্রয়ী মডেলে রুট করে",
+ "cacheOptimizedDesc": "প্রতিটি পুনর্ব্যবহারযোগ্য প্রম্পট প্রিফিক্সকে ধারাবাহিকভাবে একই প্রোভাইডার অ্যাকাউন্টে রুট করে",
"resetAware": "রিসেট-সচেতন RR",
"resetAwareDesc": "5h এবং সাপ্তাহিক রিসেটের বিপরীতে অবশিষ্ট কোটা ব্যালেন্স করে, তারপর রাউন্ড-রবিনের অনুরূপ স্কোর",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "কোটা-ভিত্তিক ওজন",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "কঠোর র্যান্ডম",
+ "strictRandomDesc": "শাফল ডেক — পুনরায় শাফল করার আগে প্রতিটি মডেল একবার ব্যবহার করে",
"fusion": "ফিউশন",
"fusionDesc": "প্রম্পটটি সমান্তরালভাবে প্রতিটি প্যানেল মডেলে পাঠায়, তারপর একটি বিচারক মডেল একটি চূড়ান্ত উত্তর সংশ্লেষ করে",
"fusionJudgeModel": "বিচারক মডেল",
@@ -3278,27 +3282,27 @@
"fusionStragglerGraceMsHelp": "কোরাম পূর্ণ হওয়ার পর ধীরগতির প্যানেল মডেলগুলোর জন্য কতক্ষণ অপেক্ষা করতে হবে (ডিফল্ট ৮০০০)।",
"fusionPanelHardTimeoutMs": "প্যানেল হার্ড টাইমআউট (ms)",
"fusionPanelHardTimeoutMsHelp": "পরম সীমা যাতে একটি হ্যাং হওয়া মডেল পুরো প্যানেলকে স্থবির করে দিতে না পারে (ডিফল্ট ৯০০০০)।",
- "models": "Models",
- "autoBalance": "Auto-balance",
- "advancedSettings": "Advanced Settings",
- "retryDelay": "Retry Delay (ms)",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
- "advancedHint": "Leave empty to use global defaults. These override per-provider settings.",
+ "models": "মডেলসমূহ",
+ "autoBalance": "স্বয়ংক্রিয় ভারসাম্য",
+ "advancedSettings": "উন্নত সেটিংস",
+ "retryDelay": "পুনঃচেষ্টার বিলম্ব (ms)",
+ "concurrencyPerModel": "সমসাময়িকতা / মডেল",
+ "queueTimeout": "সারির সময়সীমা (ms)",
+ "contextRelayHandoffThreshold": "হ্যান্ডঅফ থ্রেশহোল্ড",
+ "contextRelayHandoffThresholdHelp": "কোটা ব্যবহার এই থ্রেশহোল্ডে পৌঁছালে, সক্রিয় অ্যাকাউন্টের কোটা শেষ হওয়ার আগেই OmniRoute একটি কাঠামোবদ্ধ হ্যান্ডঅফ সারাংশ তৈরি করে।",
+ "contextRelayMaxMessages": "সারাংশের জন্য সর্বোচ্চ বার্তা",
+ "contextRelayMaxMessagesHelp": "সাম্প্রতিক ইতিহাসের কতটুকু রিলে সারাংশে সংক্ষিপ্ত করা হবে তা সীমিত করে।",
+ "contextRelaySummaryModel": "সারাংশের মডেল",
+ "contextRelaySummaryModelHelp": "শুধু হ্যান্ডঅফ সারাংশ তৈরির জন্য ব্যবহৃত ঐচ্ছিক ওভাররাইড মডেল। সক্রিয় কম্বো মডেল পুনরায় ব্যবহার করতে খালি রাখুন।",
+ "contextRelayProviderNote": "কনটেক্সট রিলে বর্তমানে Codex অ্যাকাউন্ট রোটেশনের জন্য হ্যান্ডঅফ তৈরি করে। সর্বোত্তম ধারাবাহিকতার জন্য একই প্রোভাইডারের একাধিক অ্যাকাউন্টের সঙ্গে এটি ব্যবহার করুন।",
+ "advancedHint": "গ্লোবাল ডিফল্ট ব্যবহার করতে খালি রাখুন। এগুলো প্রতিটি প্রোভাইডারের সেটিংসকে ওভাররাইড করে।",
"failoverBeforeRetry": "পুনরায় চেষ্টা করার আগে ব্যর্থতা",
"maxSetRetries": "সর্বোচ্চ সেট পুনরায় চেষ্টা",
"setRetryDelayMs": "পুনরায় চেষ্টা করার বিলম্ব সেট করুন (ms)",
- "moveUp": "Move up",
- "moveDown": "Move down",
- "removeModel": "Remove",
- "saving": "Saving...",
+ "moveUp": "উপরে সরান",
+ "moveDown": "নিচে সরান",
+ "removeModel": "সরিয়ে দিন",
+ "saving": "সংরক্ষণ করা হচ্ছে...",
"liveNoProviders": "এখনও কোনো প্রোভাইডার দেখা যায়নি।",
"liveFleetDataHint": "ফ্লিট ডেটা লাইভ কম্বো ইভেন্টের মাধ্যমে আসে।",
"liveActiveCount": "সক্রিয় ({count})",
@@ -3338,43 +3342,43 @@
"playgroundEmptyHint": "একটি কম্বো নির্বাচন করুন এবং রাউটিং পাথ দেখতে Simulate Route-এ ক্লিক করুন।",
"playgroundNoCombosYet": "এখনও কোনো কম্বো কনফিগার করা হয়নি।",
"playgroundCreateFirst": "প্রথমে একটি তৈরি করুন",
- "weighted": "Weighted",
- "leastUsed": "Least-Used",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "weighted": "ওজনভিত্তিক",
+ "leastUsed": "সর্বনিম্ন-ব্যবহৃত",
+ "costOpt": "খরচ-অনুকূল",
+ "strategyGuideTitle": "এই কৌশলটি কীভাবে ব্যবহার করবেন",
+ "strategyGuideWhen": "কখন ব্যবহার করবেন",
+ "strategyGuideAvoid": "কখন এড়িয়ে চলবেন",
+ "strategyGuideExample": "উদাহরণ",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "আপনার একটি পছন্দের মডেল আছে এবং শুধু ব্যর্থ হলে বিকল্প মডেল ব্যবহার করতে চান।",
+ "avoid": "আপনার মডেলগুলোর মধ্যে অনুরোধ বণ্টন করা প্রয়োজন।",
+ "example": "বিভ্রাটের সময় সাশ্রয়ী ব্যাকআপসহ প্রাথমিক কোডিং মডেল।"
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "আপনার মডেলগুলোর মধ্যে নিয়ন্ত্রিত ট্রাফিক বিভাজন প্রয়োজন।",
+ "avoid": "আপনি সময়ের সাথে সঠিক ওজন বজায় রাখতে পারবেন না।",
+ "example": "৮০% স্থিতিশীল মডেল + ২০% ক্যানারি মডেল রোলআউট।"
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "আপনি পূর্বানুমানযোগ্য ও সমান বণ্টন চান।",
+ "avoid": "মডেলগুলোর ল্যাটেন্সি বা খরচে অত্যধিক পার্থক্য রয়েছে।",
+ "example": "থ্রুপুট ছড়িয়ে দিতে একাধিক অ্যাকাউন্টে একই মডেল।"
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "আপনি ন্যূনতম সেটআপে সহজ বণ্টন চান।",
+ "avoid": "আপনার কঠোর ট্রাফিক নিশ্চয়তা প্রয়োজন।",
+ "example": "সমতুল্য মডেল দিয়ে দ্রুত প্রোটোটাইপ তৈরি।"
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "আপনি বর্তমান চাহিদার ভিত্তিতে অভিযোজিত ভারসাম্য চান।",
+ "avoid": "ব্যবহারভিত্তিক ভারসাম্য থেকে সুবিধা পাওয়ার জন্য ট্রাফিক অত্যন্ত কম।",
+ "example": "মিশ্র ওয়ার্কলোড, যেখানে একটি মডেল প্রায়ই অতিরিক্ত চাপে পড়ে।"
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "খরচ কমানো আপনার সর্বোচ্চ অগ্রাধিকার।",
+ "avoid": "মূল্যসংক্রান্ত ডেটা অনুপস্থিত বা পুরোনো।",
+ "example": "ব্যাকগ্রাউন্ড বা ব্যাচ জব, যেখানে কম খরচ অগ্রাধিকার পায়।"
},
"reset-aware": {
"when": "আপনি কোটা টেলিমেট্রি এবং বিভিন্ন রিসেট উইন্ডো সহ একাধিক অ্যাকাউন্ট জুড়ে রুট করেন।",
@@ -3382,104 +3386,104 @@
"example": "আগামীকাল একটি 60% সাপ্তাহিক অ্যাকাউন্ট রিসেট করা পছন্দ করুন এবং পরে 80% অ্যাকাউন্ট রিসেট করুন৷"
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "যখন সম্পূর্ণ সমান বণ্টন চান তখন ব্যবহার করুন—পুনরাবৃত্তির আগে প্রতিটি মডেল একবার করে ব্যবহৃত হবে।",
+ "avoid": "মডেলগুলোর গুণমান বা ল্যাটেন্সি ভিন্ন এবং ক্রম গুরুত্বপূর্ণ হলে এড়িয়ে চলুন।",
+ "example": "উদাহরণ: ব্যবহার সমানভাবে বণ্টনের জন্য একই মডেলের একাধিক অ্যাকাউন্ট।"
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Power-of-Two-Choices অ্যালগরিদম ব্যবহার করে কম-ল্যাটেন্সির নির্বাচন চাইলে ব্যবহার করুন।",
+ "avoid": "২টি বা তার কম মডেলের ছোট কম্বোর ক্ষেত্রে এড়িয়ে চলুন—রাউন্ড-রবিনের তুলনায় কোনো সুবিধা নেই।",
+ "example": "উদাহরণ: ৪টির বেশি সমতুল্য মডেল এন্ডপয়েন্ট জুড়ে উচ্চ-থ্রুপুট ইনফারেন্স।"
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "কার্যকর প্রসঙ্গ না হারিয়ে দীর্ঘ সেশনগুলোকে অ্যাকাউন্ট রোটেশনের মধ্যেও সচল রাখতে হলে ব্যবহার করুন।",
+ "avoid": "অ্যাকাউন্ট বদলানো বিরল হলে বা অতিরিক্ত সারসংক্ষেপের অনুরোধ না চাইলে এড়িয়ে চলুন।",
+ "example": "উদাহরণ: কোটার সীমা প্রায় শেষ হয়ে এলে একাধিক অ্যাকাউন্টের মধ্যে রোটেট করা Codex সেশন।"
},
"fill-first": {
- "when": "Use when you want to fully exhaust one provider's quota before moving to the next.",
- "avoid": "Avoid when you need request-level load balancing across providers.",
- "example": "Example: Use all $200 Deepgram credits before falling back to Groq."
+ "when": "পরবর্তী প্রোভাইডারে যাওয়ার আগে একটি প্রোভাইডারের কোটা সম্পূর্ণ শেষ করতে চাইলে ব্যবহার করুন।",
+ "avoid": "প্রোভাইডারগুলোর মধ্যে অনুরোধ-স্তরের লোড ব্যালান্সিং প্রয়োজন হলে এড়িয়ে চলুন।",
+ "example": "উদাহরণ: Groq-এ ফলব্যাক করার আগে Deepgram-এর সম্পূর্ণ $200 ক্রেডিট ব্যবহার করুন।"
},
"auto": {
- "when": "Use when you need multi-factor scoring routing based on cost, latency, and quality.",
- "avoid": "Avoid when you need strict priority ordering or historical persistence.",
- "example": "Example: Balance requests across models with different strengths."
+ "when": "খরচ, ল্যাটেন্সি ও গুণমানের ভিত্তিতে বহু-ফ্যাক্টর স্কোরিং রাউটিং প্রয়োজন হলে ব্যবহার করুন।",
+ "avoid": "কঠোর অগ্রাধিকারক্রম বা ঐতিহাসিক স্থায়িত্ব প্রয়োজন হলে এড়িয়ে চলুন।",
+ "example": "উদাহরণ: বিভিন্ন সক্ষমতার মডেলগুলোর মধ্যে অনুরোধের ভারসাম্য বজায় রাখুন।"
},
"lkgp": {
- "when": "Use when you want to route based on historical success rates and performance.",
- "avoid": "Avoid when historical data is limited or unreliable.",
- "example": "Example: Route to models with a good track record on specific tasks."
+ "when": "ঐতিহাসিক সাফল্যের হার ও পারফরম্যান্সের ভিত্তিতে রাউট করতে চাইলে ব্যবহার করুন।",
+ "avoid": "ঐতিহাসিক ডেটা সীমিত বা অবিশ্বস্ত হলে এড়িয়ে চলুন।",
+ "example": "উদাহরণ: নির্দিষ্ট কাজে ভালো সাফল্যের রেকর্ড রয়েছে এমন মডেলে রাউট করুন।"
},
"context-optimized": {
- "when": "Use when you need to optimize context window usage across models.",
- "avoid": "Avoid when models have similar context lengths or tasks are simple.",
- "example": "Example: Distribute long conversations across models with larger context windows."
+ "when": "মডেলগুলোর মধ্যে কনটেক্সট উইন্ডোর ব্যবহার অপ্টিমাইজ করার প্রয়োজন হলে ব্যবহার করুন।",
+ "avoid": "মডেলগুলোর কনটেক্সটের দৈর্ঘ্য একই রকম হলে বা কাজগুলো সহজ হলে এড়িয়ে চলুন।",
+ "example": "উদাহরণ: বড় কনটেক্সট উইন্ডোসহ মডেলগুলোর মধ্যে দীর্ঘ কথোপকথন বিতরণ করুন।"
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "কোনো অনুরোধ ব্যর্থ হওয়ার আগে কতবার পুনরায় চেষ্টা করা হবে।",
+ "retryDelay": "পুনরায় চেষ্টার মধ্যবর্তী প্রাথমিক অপেক্ষার সময়। বেশি মান আকস্মিক চাপ কমায়।",
+ "timeout": "বাতিল করার আগে অনুরোধের সর্বোচ্চ সময়কাল।",
+ "healthcheck": "রাউটিংয়ের সিদ্ধান্ত থেকে অস্বাস্থ্যকর মডেল/প্রোভাইডার বাদ দেয়।",
+ "concurrencyPerModel": "রাউন্ড-রবিনে প্রতি মডেলের জন্য অনুমোদিত সর্বোচ্চ সমসাময়িক অনুরোধ।",
+ "queueTimeout": "টাইম আউট হওয়ার আগে একটি অনুরোধ কতক্ষণ সারিতে অপেক্ষা করতে পারবে।",
"failoverBeforeRetry": "সক্রিয় করা হলে, যেকোনো আপস্ট্রিম ত্রুটি পরবর্তী কম্বো টার্গেটে অবিলম্বে ব্যর্থতা ট্রিগার করে, সমস্ত পুনঃপ্রচার এবং ফলব্যাক URL এড়িয়ে যায়।",
"maxSetRetries": "প্রতিটি লক্ষ্য ব্যর্থ হলে পূর্ণ লক্ষ্য সেট করার জন্য পুনরায় চেষ্টা করার সংখ্যা। 0 = কোনো সেট-লেভেল পুনঃপ্রচেষ্টা নয়।",
"setRetryDelayMs": "সেট-লেভেলের পুনঃপ্রচেষ্টার মধ্যে বিলম্ব, ক্ষণস্থায়ী সমস্যা সমাধানের জন্য সময় দেয়।",
"disableSessionStickiness": "প্রথম-বার্তার হ্যাশ দ্বারা একটি সম্পূর্ণ কথোপকথনকে একটি সংযোগে পিন করার পরিবর্তে প্রতিটি অনুরোধে একটি ভিন্ন সংযোগে রোটেট করুন। গ্লোবাল ডিফল্ট ওভাররাইড করে। মাল্টি-টার্ন চ্যাটের জন্য প্রম্পট-ক্যাশ হিট সংরক্ষণ করতে Inherit-এ রেখে দিন।"
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "দ্রুত টেমপ্লেট",
+ "templatesDescription": "একটি প্রারম্ভিক প্রোফাইল প্রয়োগ করুন, তারপর মডেল ও কনফিগ সমন্বয় করুন।",
+ "templateApply": "টেমপ্লেট প্রয়োগ করুন",
+ "templateHighAvailability": "উচ্চ প্রাপ্যতা",
+ "templateHighAvailabilityDesc": "স্বাস্থ্য পরীক্ষা ও নিরাপদ পুনঃচেষ্টাসহ অগ্রাধিকারভিত্তিক রাউটিং।",
+ "templateCostSaver": "খরচ সাশ্রয়ী",
+ "templateCostSaverDesc": "বাজেট-অগ্রাধিকার ওয়ার্কলোডের জন্য খরচ-অপ্টিমাইজড রাউটিং।",
+ "templateBalanced": "ভারসাম্যপূর্ণ লোড",
+ "templateBalancedDesc": "সময়ের সাথে চাহিদা ছড়িয়ে দিতে সবচেয়ে কম ব্যবহৃত মডেলভিত্তিক রাউটিং।",
+ "usageGuideHide": "লুকান",
+ "usageGuideDontShowAgain": "আবার দেখাবেন না",
+ "usageGuideShow": "গাইড দেখান",
+ "quickTestTitle": "কম্বো যাচাইয়ের জন্য প্রস্তুত",
+ "quickTestDescription": "ফলব্যাক ও লেটেন্সির আচরণ নিশ্চিত করতে এখনই একটি পরীক্ষা চালান।",
+ "testNow": "এখনই পরীক্ষা করুন",
+ "pricingCoverage": "মূল্য-তথ্যের আওতা",
+ "pricingCoverageHint": "সব কম্বো মডেলের মূল্য-তথ্য থাকলে খরচ-অপ্টিমাইজড রাউটিং সবচেয়ে ভালো কাজ করে।",
+ "pricingAvailable": "মূল্য-তথ্য উপলভ্য",
+ "pricingMissing": "কোনো মূল্য-তথ্য নেই",
+ "pricingAvailableShort": "মূল্যযুক্ত",
+ "pricingMissingShort": "মূল্যহীন",
"fallbackOnlyOnQuotaExhaustion": "কেবল কোটা শেষ হলে অগ্রসর হন",
"fallbackOnlyOnQuotaExhaustionShort": "কোটার-শুধুমাত্র ব্যাকআপ",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
- "readinessCheckPricing": "Pricing data is available",
- "readinessCheckPricingOptional": "Pricing rule not required",
- "saveBlockedTitle": "Save is blocked until the following items are fixed:",
- "saveBlockName": "Define a combo name.",
- "saveBlockModels": "Add at least one model.",
- "saveBlockWeighted": "Set weights to 100% (current: {total}%).",
- "saveBlockPricing": "Add pricing for at least one model or choose a different strategy.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "warningRoundRobinSingleModel": "অন্তত ২টি মডেল থাকলে রাউন্ড-রবিন সবচেয়ে কার্যকর।",
+ "warningCostOptimizedPartialPricing": "{total}টি মডেলের মধ্যে কেবল {priced}টির মূল্য-তথ্য রয়েছে। রাউটিং আংশিকভাবে খরচ-সচেতন হতে পারে।",
+ "warningCostOptimizedNoPricing": "এই কম্বোর জন্য কোনো মূল্য-তথ্য পাওয়া যায়নি। খরচ-অপ্টিমাইজড রাউটিং অপ্রত্যাশিতভাবে কাজ করতে পারে।",
+ "filterAll": "সব",
+ "filterIntelligent": "বুদ্ধিমান",
+ "filterDeterministic": "নির্ধারিত",
+ "filterEmptyTitle": "এই কৌশল ফিল্টারের সঙ্গে কোনো কম্বো মেলে না।",
+ "filterEmptyIntelligentDescription": "ইন্টেলিজেন্ট রাউটিং ড্যাশবোর্ডে তথ্য দেখাতে একটি অটো বা LKGP কম্বো তৈরি করুন।",
+ "filterEmptyDeterministicDescription": "এই মুহূর্তে শুধু অটো এবং LKGP কম্বো রয়েছে। All-এ ফিরে যান অথবা একটি নির্ধারিত কম্বো তৈরি করুন।",
+ "readinessTitle": "সংরক্ষণ করতে প্রস্তুত?",
+ "readinessDescription": "এই কম্বো তৈরি বা আপডেট করার আগে চেকলিস্টটি পর্যালোচনা করুন।",
+ "readinessCheckName": "কম্বোর নাম বৈধ",
+ "readinessCheckModels": "অন্তত একটি মডেল নির্বাচিত হয়েছে",
+ "readinessCheckWeights": "মোট ওজন 100%",
+ "readinessCheckWeightsOptional": "ওজনের নিয়ম প্রয়োজন নেই",
+ "readinessCheckPricing": "মূল্য নির্ধারণের ডেটা উপলভ্য",
+ "readinessCheckPricingOptional": "মূল্য নির্ধারণের নিয়ম প্রয়োজন নেই",
+ "saveBlockedTitle": "নিচের বিষয়গুলো ঠিক না করা পর্যন্ত সংরক্ষণ করা যাবে না:",
+ "saveBlockName": "কম্বোর একটি নাম নির্ধারণ করুন।",
+ "saveBlockModels": "অন্তত একটি মডেল যোগ করুন।",
+ "saveBlockWeighted": "ওজন 100%-এ সেট করুন (বর্তমান: {total}%)।",
+ "saveBlockPricing": "অন্তত একটি মডেলের জন্য মূল্য যোগ করুন অথবা ভিন্ন কৌশল বেছে নিন।",
+ "recommendationsLabel": "প্রস্তাবিত সেটআপ",
+ "applyRecommendations": "সুপারিশগুলো প্রয়োগ করুন",
+ "recommendationsUpdated": "{strategy}-এর জন্য সুপারিশগুলো আপডেট করা হয়েছে।",
+ "recommendationsApplied": "এই কম্বোতে সুপারিশগুলো প্রয়োগ করা হয়েছে।",
+ "intelligentPanelTitle": "ইন্টেলিজেন্ট রাউটিং ড্যাশবোর্ড",
+ "intelligentPanelDesc": "এই অটো-রাউটিং কম্বোর রিয়েল-টাইম স্কোরিং ও স্বাস্থ্যগত অবস্থা।",
"configOnlyStatus": "কনফিগারেশন ভিউ",
"configOnlyHint": "এই প্যানেলটি শুধুমাত্র রাউটিং ইনপুট দেখায়। লাইভ ব্রেকার স্টেট Health পেজে উপলব্ধ।",
"routingInputs": "রাউটিং ইনপুট",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "অজানা প্রোভাইডার প্রিফিক্স।",
"builderDynamicAccountShort": "ডায়নামিক অ্যাকাউন্ট",
"builderNeedValidName": "চালিয়ে যাওয়ার আগে একটি বৈধ কম্বো নাম নির্ধারণ করুন।",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "অবস্থার সারসংক্ষেপ",
+ "normalOperation": "স্বাভাবিক কার্যক্রম",
+ "allProvidersHealthy": "প্রোভাইডারগুলো রাউটিং পরিস্থিতি স্বাভাবিক বলে জানাচ্ছে।",
+ "incidentMode": "ঘটনা মোড",
+ "highCircuitBreakerRate": "সার্কিট ব্রেকার ট্রিপের উচ্চ হার শনাক্ত হয়েছে।",
+ "activeModePack": "সক্রিয় মোড প্যাক",
+ "modePackUpdated": "মোড প্যাক {pack}-এ আপডেট করা হয়েছে।",
+ "modePackHint": "কম্বো পুনর্নির্মাণ না করেই রাউটিং ইঞ্জিনকে অগ্রাধিকার দিতে প্রিসেট পরিবর্তন করুন।",
+ "providerScores": "প্রোভাইডার স্কোর",
+ "allProvidersEvaluated": "কোনো প্রার্থী পুল কনফিগার করা নেই। রানটাইমে সব সক্রিয় প্রোভাইডার মূল্যায়ন করা হয়।",
+ "excludedProviders": "বাদ দেওয়া প্রোভাইডার",
+ "excludedProvidersHint": "OPEN সার্কিট ব্রেকার থাকা প্রোভাইডারগুলোকে সাময়িকভাবে রাউটিং থেকে বাদ দেওয়া হয়েছে।",
+ "noExcludedProviders": "বর্তমানে কোনো প্রোভাইডার বাদ দেওয়া নেই।",
+ "cooldownMinutes": "কুলডাউন: {minutes}মি",
+ "builderIntelligentTitle": "ইন্টেলিজেন্ট রাউটিং কনফিগারেশন",
+ "builderIntelligentDesc": "এই অটো-রাউটিং কম্বোর জন্য মাল্টি-ফ্যাক্টর স্কোরিং ইঞ্জিন কনফিগার করুন।",
+ "candidatePoolLabel": "প্রার্থী পুল",
+ "candidatePoolHint": "এই ইঞ্জিন কোন প্রোভাইডারগুলো মূল্যায়ন করবে তা নির্বাচন করুন। সব সক্রিয় প্রোভাইডার ব্যবহার করতে এটি খালি রাখুন।",
+ "candidatePoolEmpty": "এখনও কোনো সক্রিয় প্রোভাইডার উপলভ্য নেই।",
+ "candidatePoolAllProviders": "সব প্রোভাইডার",
+ "modePackLabel": "মোড প্যাক",
+ "routerStrategyLabel": "রাউটার কৌশল",
+ "strategyRules": "নিয়মাবলি (৬-ফ্যাক্টর স্কোরিং)",
+ "explorationRateLabel": "এক্সপ্লোরেশন হার",
+ "explorationRateHint": "{percent}% অনুরোধ অপ্টিমাল নয় এমন প্রোভাইডার অন্বেষণ করতে পারে।",
+ "budgetCapLabel": "বাজেট সীমা (USD / অনুরোধ)",
+ "budgetCapPlaceholder": "কোনো সীমা নেই",
+ "advancedWeightsTitle": "উন্নত: স্কোরিংয়ের ওজন",
"nestedComboFlatten": "নেস্টেড কম্বোগুলো ফ্ল্যাটেন করুন",
"nestedComboExecute": "টার্গেট হিসেবে নেস্টেড কম্বোগুলো এক্সিকিউট করুন",
"effectiveRoutingShare": "কার্যকর রাউটিং শেয়ার (ওজন ÷ মোট)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "কোটা",
+ "weightHealth": "স্বাস্থ্য",
+ "weightCostInv": "খরচ",
+ "weightLatencyInv": "ল্যাটেন্সি",
+ "weightTaskFit": "কাজের উপযোগিতা",
+ "weightStability": "স্থিতিশীলতা",
+ "weightTierPriority": "স্তর",
+ "weightCacheAffinity": "ক্যাশ হিট অ্যাফিনিটি",
"weightSessionAvailability": "সেশন উপলব্ধতা",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "বুদ্ধিমান রাউটিং কনফিগারেশন",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "ফেইল-সেফ বেসলাইন",
+ "description": "একটি প্রাথমিক মডেল ব্যবহার করুন এবং ফলব্যাক চেইনটি সংক্ষিপ্ত ও নির্ভরযোগ্য রাখুন।",
+ "tip1": "আপনার সবচেয়ে নির্ভরযোগ্য মডেলটি প্রথমে রাখুন।",
+ "tip2": "একই মানের ১-২টি ব্যাকআপ মডেল রাখুন।",
+ "tip3": "প্রোভাইডারের সাময়িক ব্যর্থতা সামাল দিতে নিরাপদ পুনঃচেষ্টা ব্যবহার করুন।"
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "নিয়ন্ত্রিত ট্রাফিক বিভাজন",
+ "description": "ক্যানারি রোলআউট এবং মডেলগুলোর মধ্যে ধীরে ধীরে স্থানান্তরের জন্য দারুণ।",
+ "tip1": "৯০/১০-এর মতো রক্ষণশীল বিভাজন দিয়ে শুরু করুন।",
+ "tip2": "মোট পরিমাণ ১০০% রাখুন এবং পরিবর্তনের পর স্বয়ংক্রিয়ভাবে ভারসাম্য বজায় রাখুন।",
+ "tip3": "ক্যানারির ওজন বাড়ানোর আগে সাফল্য ও ল্যাটেন্সি পর্যবেক্ষণ করুন।"
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "অনুমানযোগ্য লোড বণ্টন",
+ "description": "মডেলগুলো সমতুল্য হলে এবং মসৃণ বণ্টনের প্রয়োজন হলে এটি সর্বোত্তম।",
+ "tip1": "অন্তত ২টি মডেল ব্যবহার করুন।",
+ "tip2": "হঠাৎ অতিরিক্ত চাপ এড়াতে কনকারেন্সি সীমা নির্ধারণ করুন।",
+ "tip3": "স্যাচুরেশনের সময় দ্রুত ব্যর্থ হতে কিউ টাইমআউট ব্যবহার করুন।"
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "কম সেটআপে দ্রুত বণ্টন",
+ "description": "কঠোর নিশ্চয়তা ছাড়াই সহজ বণ্টনের প্রয়োজন হলে ব্যবহার করুন।",
+ "tip1": "একই ধরনের ল্যাটেন্সি প্রোফাইলের মডেল ব্যবহার করুন।",
+ "tip2": "এলোমেলো মিস সামাল দিতে পুনঃচেষ্টা সক্রিয় রাখুন।",
+ "tip3": "কঠোর SLA-এর পরিবর্তে পরীক্ষামূলক কাজের জন্য এটি বেছে নিন।"
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "অভিযোজিত ভারসাম্য",
+ "description": "সময়ের সাথে সাথে হটস্পট কমাতে কম ব্যবহৃত মডেলগুলিতে রুট করে।",
+ "tip1": "ধারাবাহিক ট্রাফিকের ক্ষেত্রে আরও ভালো কাজ করে।",
+ "tip2": "নিরাপদ ভারসাম্যের জন্য স্বাস্থ্য পরীক্ষার সঙ্গে একত্রে ব্যবহার করুন।",
+ "tip3": "বণ্টনের উন্নতি যাচাই করতে প্রতিটি মডেলের ব্যবহার ট্র্যাক করুন।"
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "বাজেট-অগ্রাধিকারভিত্তিক রাউটিং",
+ "description": "মূল্যসংক্রান্ত মেটাডেটা উপলভ্য থাকলে কম খরচের মডেলগুলিতে রুট করে।",
+ "tip1": "নির্বাচিত সব মডেলের জন্য মূল্যতথ্য রয়েছে কি না নিশ্চিত করুন।",
+ "tip2": "কঠিন প্রম্পটের জন্য মানসম্মত একটি ফলব্যাক রাখুন।",
+ "tip3": "যেসব ব্যাচ/ব্যাকগ্রাউন্ড জবে খরচই প্রধান KPI, সেগুলোর জন্য ব্যবহার করুন।"
},
"reset-aware": {
"title": "রিসেট-সচেতন অ্যাকাউন্ট ঘূর্ণন",
@@ -3593,155 +3597,155 @@
"tip3": "টাই ব্যান্ড ছোট রাখুন যাতে সমান অ্যাকাউন্টগুলি এখনও মোটামুটিভাবে ঘোরে।"
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "শাফল ডেক বণ্টন",
+ "description": "পুনরায় শাফল করার আগে প্রতিটি চক্রে প্রত্যেক মডেল ঠিক একবার ব্যবহার করা হয়।",
+ "tip1": "অর্থবহ বণ্টনের জন্য অন্তত ২টি মডেল ব্যবহার করুন।",
+ "tip2": "সমমানের কর্মদক্ষতাসম্পন্ন মডেলগুলোর সঙ্গে সবচেয়ে ভালো কাজ করে।",
+ "tip3": "একাধিক API অ্যাকাউন্টের মধ্যে লোড ব্যালান্সিংয়ের জন্য আদর্শ।"
},
"fill-first": {
- "description": "Exhaust provider quotas sequentially before falling back.",
- "tip1": "Use for quota-based routing with clear fallback chains.",
- "tip2": "Set quotas accurately to avoid premature fallback.",
- "tip3": "Works best with providers offering free tiers or credit buckets.",
- "title": "Quota Exhaustion"
+ "description": "ফলব্যাকে যাওয়ার আগে প্রোভাইডারের কোটা পর্যায়ক্রমে সম্পূর্ণ ব্যবহার করে।",
+ "tip1": "সুস্পষ্ট ফলব্যাক চেইনসহ কোটাভিত্তিক রাউটিংয়ের জন্য ব্যবহার করুন।",
+ "tip2": "অকাল ফলব্যাক এড়াতে কোটা নির্ভুলভাবে নির্ধারণ করুন।",
+ "tip3": "ফ্রি টিয়ার বা ক্রেডিট বাকেট প্রদানকারী প্রোভাইডারদের সঙ্গে সবচেয়ে ভালো কাজ করে।",
+ "title": "কোটা নিঃশেষকরণ"
},
"auto": {
- "description": "Route based on real-time scoring for cost, latency, quality, and health.",
- "tip1": "Let the engine balance multiple factors automatically.",
- "tip2": "Monitor which factors drive routing decisions in logs.",
- "tip3": "Use for complex workloads where no single factor dominates.",
- "title": "Multi-Factor Optimization"
+ "description": "খরচ, ল্যাটেন্সি, গুণমান ও স্বাস্থ্যসংক্রান্ত রিয়েল-টাইম স্কোরিংয়ের ভিত্তিতে রুট করে।",
+ "tip1": "ইঞ্জিনকে একাধিক বিষয় স্বয়ংক্রিয়ভাবে ভারসাম্য করতে দিন।",
+ "tip2": "লগে কোন বিষয়গুলো রাউটিং সিদ্ধান্তকে প্রভাবিত করে তা পর্যবেক্ষণ করুন।",
+ "tip3": "যেসব জটিল ওয়ার্কলোডে কোনো একক বিষয় প্রাধান্য পায় না, সেগুলোর জন্য ব্যবহার করুন।",
+ "title": "বহু-বিষয়ক অপ্টিমাইজেশন"
},
"lkgp": {
- "description": "Route based on historical performance and success patterns.",
- "tip1": "Requires sufficient request history for accurate predictions.",
- "tip2": "Good for workloads with consistent model performance patterns.",
- "tip3": "Monitor prediction accuracy and adjust weights as needed.",
- "title": "History-Based Routing"
+ "description": "ঐতিহাসিক কর্মদক্ষতা ও সাফল্যের প্যাটার্নের ভিত্তিতে রুট করে।",
+ "tip1": "নির্ভুল পূর্বাভাসের জন্য পর্যাপ্ত রিকোয়েস্ট ইতিহাস প্রয়োজন।",
+ "tip2": "ধারাবাহিক মডেল-পারফরম্যান্স প্যাটার্নযুক্ত ওয়ার্কলোডের জন্য উপযোগী।",
+ "tip3": "পূর্বাভাসের নির্ভুলতা পর্যবেক্ষণ করুন এবং প্রয়োজন অনুযায়ী ওয়েট সমন্বয় করুন।",
+ "title": "ইতিহাসভিত্তিক রাউটিং"
},
"context-optimized": {
- "description": "Optimize routing based on context window usage and token efficiency.",
- "tip1": "Route long conversations to models with larger context windows.",
- "tip2": "Monitor context utilization to avoid token waste.",
- "tip3": "Best for conversational AI requiring extensive context retention.",
- "title": "Context Optimization"
+ "description": "কনটেক্সট উইন্ডোর ব্যবহার ও টোকেন দক্ষতার ভিত্তিতে রাউটিং অপ্টিমাইজ করে।",
+ "tip1": "দীর্ঘ কথোপকথনগুলোকে বড় কনটেক্সট উইন্ডোযুক্ত মডেলে রুট করুন।",
+ "tip2": "টোকেনের অপচয় এড়াতে কনটেক্সটের ব্যবহার পর্যবেক্ষণ করুন।",
+ "tip3": "বিস্তৃত কনটেক্সট ধরে রাখা প্রয়োজন এমন কথোপকথনমূলক AI-এর জন্য সর্বোত্তম।",
+ "title": "কনটেক্সট অপ্টিমাইজেশন"
},
"context-relay": {
- "description": "Best when account rotation is expected and the next account must inherit a simplified task summary.",
- "tip1": "Use with providers rotating accounts for the same model family.",
- "tip2": "Set handoff threshold below hard quota cutoffs for summary generation time.",
- "tip3": "Only set a dedicated summary model if the primary is too expensive or unstable.",
- "title": "Session Continuity Priority"
+ "description": "অ্যাকাউন্ট রোটেশন প্রত্যাশিত হলে এবং পরবর্তী অ্যাকাউন্টকে কাজটির সরলীকৃত সারসংক্ষেপ গ্রহণ করতে হলে সর্বোত্তম।",
+ "tip1": "একই মডেল পরিবারের জন্য অ্যাকাউন্ট রোটেট করে এমন প্রোভাইডারদের সঙ্গে ব্যবহার করুন।",
+ "tip2": "সারসংক্ষেপ তৈরির সময় নিশ্চিত করতে হার্ড কোটা কাটঅফের নিচে হ্যান্ডঅফ থ্রেশহোল্ড নির্ধারণ করুন।",
+ "tip3": "প্রাইমারি মডেলটি অতিরিক্ত ব্যয়বহুল বা অস্থিতিশীল হলেই কেবল একটি ডেডিকেটেড সারাংশ মডেল নির্ধারণ করুন।",
+ "title": "সেশন ধারাবাহিকতার অগ্রাধিকার"
},
"p2c": {
- "description": "Route to the provider with the lowest current load based on real-time metrics.",
- "tip1": "Monitor provider health metrics for accurate load assessment.",
- "tip2": "Works best with homogeneous provider pools.",
- "tip3": "Adjust sensitivity to avoid oscillation during traffic spikes.",
- "title": "Power of Two Choices"
+ "description": "রিয়েল-টাইম মেট্রিক্সের ভিত্তিতে বর্তমানে সর্বনিম্ন লোডযুক্ত প্রোভাইডারের কাছে রুট করে।",
+ "tip1": "সঠিক লোড মূল্যায়নের জন্য প্রদানকারীর স্বাস্থ্যসংক্রান্ত মেট্রিক পর্যবেক্ষণ করুন।",
+ "tip2": "সমজাতীয় প্রদানকারী পুলের সঙ্গে সবচেয়ে ভালো কাজ করে।",
+ "tip3": "ট্রাফিকের আকস্মিক বৃদ্ধির সময় দোদুল্যমানতা এড়াতে সংবেদনশীলতা সামঞ্জস্য করুন।",
+ "title": "দুটি বিকল্পের ক্ষমতা"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
- "auto": "Intelligent Auto",
- "autoDesc": "Self-healing smart routing pool with multi-factor scoring",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Prioritizes the last provider that successfully completed a request",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "templateFreeStack": "বিনামূল্যের স্ট্যাক ($0)",
+ "templateFreeStackDesc": "সব বিনামূল্যের প্রদানকারীর মধ্যে রাউন্ড-রবিন: Kiro (Claude), Qoder (5 মডেল), Qwen (4 মডেল)। কোনো খরচ নেই, কোডিং কখনো থামে না।",
+ "auto": "বুদ্ধিমান স্বয়ংক্রিয় ব্যবস্থা",
+ "autoDesc": "বহু-উপাদানভিত্তিক স্কোরিংসহ স্বয়ংক্রিয়ভাবে পুনরুদ্ধারক্ষম স্মার্ট রাউটিং পুল",
+ "lkgp": "LKGP মোড",
+ "lkgpDesc": "সর্বশেষ যে প্রদানকারী সফলভাবে একটি অনুরোধ সম্পন্ন করেছে, তাকে অগ্রাধিকার দেয়",
+ "wizardGuideTitle": "কম্বো ব্যবহার শুরু করুন",
+ "wizardGuideDesc": "AI ট্রাফিক বুদ্ধিমত্তার সঙ্গে রাউট করতে মডেল কম্বো তৈরি করুন",
+ "wizardGuideHint": "অথবা উপরে + কম্বো তৈরি করুন-এ ক্লিক করুন",
+ "createFirstCombo": "আপনার প্রথম কম্বো তৈরি করুন",
+ "wizardStep1Title": "আপনার কম্বোর নাম দিন",
+ "wizardStep1Desc": "রাউটিং নিয়মে শনাক্ত করার জন্য আপনার কম্বোকে একটি অনন্য নাম দিন",
+ "wizardStep2Title": "মডেল যোগ করুন",
+ "wizardStep2Desc": "AI মডেল নির্বাচন করুন এবং তাদের ফলব্যাক অগ্রাধিকারের ক্রম সাজান",
+ "wizardStep3Title": "কৌশল বেছে নিন",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "পর্যালোচনা ও সংরক্ষণ করুন",
+ "wizardStep4Desc": "আপনার কনফিগারেশন পর্যালোচনা করুন এবং কম্বোটি সক্রিয় করুন",
+ "usageGuideInvokeTitle": "এই কম্বোটি যেভাবে কল করবেন",
+ "usageGuideInvokeDesc": "মডেল হিসেবে কম্বোর হুবহু নাম পাঠান, যেমন model: \"my-combo\" (অথবা combo/my-combo)।",
+ "usageGuideInvokeAutoNote": "auto এবং auto/* হলো একটি পৃথক শূন্য-কনফিগারেশন রাউটার, যা আপনার কম্বোগুলো ব্যবহার করে না (যদি না কোনো কম্বোর নাম আক্ষরিক অর্থেই auto হয়)।",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto একটি প্রকৃত অর্থপ্রদত্ত OpenRouter পণ্য (Auto Best Available), OmniRoute-এর কোনো উপনাম নয় — Settings → Routing → Hide paid models-এর মাধ্যমে এটি বাদ দিন।",
+ "emailVisibilityStateOn": "চালু",
+ "emailVisibilityStateOff": "বন্ধ",
+ "reorderHandle": "ক্রম পরিবর্তন করতে টেনে আনুন",
+ "failedReorder": "মডেলগুলোর ক্রম পরিবর্তন করা যায়নি",
+ "builderFlowTitle": "কম্বো বিল্ডার প্রবাহ",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "মৌলিক বিষয়াবলি",
+ "description": "নাম ও প্রাথমিক টেমপ্লেট"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "ধাপসমূহ",
+ "description": "প্রদানকারী, মডেল ও অ্যাকাউন্ট নির্বাচন"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "কৌশল",
+ "description": "রাউটিং আচরণ ও উন্নত সেটিংস"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "স্মার্ট রাউটিং",
+ "description": "স্বয়ংক্রিয় রাউটিংয়ের প্রার্থী পুল, প্রিসেট ও স্কোরিং"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "পর্যালোচনা",
+ "description": "সংরক্ষণের আগে চূড়ান্ত যাচাই"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
- "builderDuplicateExact": "This exact provider/model/account step is already in the combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
- "builderStagesDescription": "Complete each stage in order to define combos, build steps, select routing strategy, and review results.",
- "builderStepsDescription": "Build each combo step in order: provider, model, then account. This allows reusing the same provider and model across different accounts.",
- "selectProvider": "Select Provider",
- "selectProviderPlaceholder": "Select a provider",
- "selectModel": "Select Model",
- "selectModelPlaceholder": "Select a provider first",
- "selectAccount": "Select Account",
- "selectComboToReference": "Select combo to reference",
- "comboReference": "Combo Reference",
- "addComboReference": "Add Combo Reference",
- "addStepBeforeContinue": "Please add at least one step before proceeding to the next stage.",
- "previewNextStep": "Preview next step",
- "autoSelectAccount": "Automatically select account at runtime",
- "modePackBalanced": "Balanced",
- "modePackBudget": "Budget",
- "modePackPerformance": "Performance",
- "modePackCustom": "Custom",
- "browseLegacyCatalog": "Browse legacy combo catalog",
- "agentFeaturesTitle": "Agent Features",
- "agentFeaturesDescription": "Enable advanced features for agents using this combo",
+ "builderStageVisited": "ধাপ সম্পন্ন হয়েছে",
+ "builderStageCurrent": "বর্তমান ধাপ",
+ "builderStagePending": "অপেক্ষমাণ",
+ "builderStageLocked": "লক করা আছে — আগে পূর্ববর্তী ধাপটি সম্পন্ন করুন",
+ "builderTitle": "একটি কম্বো তৈরি করুন",
+ "builderBrowseCatalog": "ক্যাটালগ ব্রাউজ করুন",
+ "builderProvider": "প্রোভাইডার",
+ "builderLoadingProviders": "প্রোভাইডার লোড হচ্ছে...",
+ "builderSelectProvider": "প্রোভাইডার নির্বাচন করুন",
+ "builderModel": "মডেল",
+ "builderSelectModel": "মডেল নির্বাচন করুন",
+ "builderProviderFirst": "প্রথমে প্রোভাইডার নির্বাচন করুন",
+ "builderAccount": "অ্যাকাউন্ট",
+ "builderPreview": "প্রিভিউ",
+ "builderAddStep": "ধাপ যোগ করুন",
+ "builderDuplicateExact": "এই নির্দিষ্ট প্রোভাইডার/মডেল/অ্যাকাউন্ট ধাপটি ইতিমধ্যেই কম্বোতে রয়েছে।",
+ "builderComboRef": "কম্বো রেফারেন্স",
+ "builderAddComboRef": "কম্বো রেফারেন্স যোগ করুন",
+ "builderComboRefStep": "কম্বো রেফারেন্স যোগ করুন",
+ "builderPinnedAccount": "পিন করা অ্যাকাউন্ট",
+ "builderLegacyEntry": "লিগ্যাসি এন্ট্রি",
+ "reviewName": "নাম",
+ "reviewStrategy": "কৌশল",
+ "reviewSteps": "ধাপসমূহ",
+ "reviewAccounts": "অ্যাকাউন্টসমূহ",
+ "reviewProviders": "প্রোভাইডারসমূহ",
+ "reviewComboRefs": "কম্বো রেফারেন্সসমূহ",
+ "reviewAdvanced": "উন্নত সেটিংস",
+ "reviewAgentFlags": "এজেন্ট ফ্ল্যাগসমূহ",
+ "reviewSequence": "মডেলের ক্রম",
+ "reviewNoSteps": "কোনো ধাপ কনফিগার করা হয়নি",
+ "builderStagesDescription": "কম্বো নির্ধারণ, ধাপ তৈরি, রাউটিং কৌশল নির্বাচন এবং ফলাফল পর্যালোচনা করতে প্রতিটি ধাপ ক্রমানুসারে সম্পন্ন করুন।",
+ "builderStepsDescription": "প্রতিটি কম্বো ধাপ এই ক্রমে তৈরি করুন: প্রোভাইডার, মডেল, তারপর অ্যাকাউন্ট। এতে বিভিন্ন অ্যাকাউন্টে একই প্রোভাইডার ও মডেল পুনরায় ব্যবহার করা যায়।",
+ "selectProvider": "প্রোভাইডার নির্বাচন করুন",
+ "selectProviderPlaceholder": "একটি প্রোভাইডার নির্বাচন করুন",
+ "selectModel": "মডেল নির্বাচন করুন",
+ "selectModelPlaceholder": "প্রথমে একটি প্রোভাইডার নির্বাচন করুন",
+ "selectAccount": "অ্যাকাউন্ট নির্বাচন করুন",
+ "selectComboToReference": "রেফারেন্সের জন্য কম্বো নির্বাচন করুন",
+ "comboReference": "কম্বো রেফারেন্স",
+ "addComboReference": "কম্বো রেফারেন্স যোগ করুন",
+ "addStepBeforeContinue": "পরবর্তী ধাপে যাওয়ার আগে অনুগ্রহ করে অন্তত একটি ধাপ যোগ করুন।",
+ "previewNextStep": "পরবর্তী ধাপের পূর্বরূপ",
+ "autoSelectAccount": "রানটাইমে স্বয়ংক্রিয়ভাবে অ্যাকাউন্ট নির্বাচন করুন",
+ "modePackBalanced": "ভারসাম্যপূর্ণ",
+ "modePackBudget": "বাজেট",
+ "modePackPerformance": "পারফরম্যান্স",
+ "modePackCustom": "কাস্টম",
+ "browseLegacyCatalog": "পুরোনো কম্বো ক্যাটালগ ব্রাউজ করুন",
+ "agentFeaturesTitle": "এজেন্ট ফিচারসমূহ",
+ "agentFeaturesDescription": "এই কম্বো ব্যবহারকারী এজেন্টগুলোর জন্য উন্নত ফিচার সক্রিয় করুন",
"responseValidationTitle": "রেসপন্স ভ্যালিডেশন",
"responseValidationHelp": "যখন একটি 200 OK বডি এই চেকগুলোতে (অ্যাসিস্ট্যান্ট কন্টেন্ট) ব্যর্থ হয় তখন পরবর্তী টার্গেটে ফেইল ওভার করুন।",
"responseValidationForbidden": "নিষিদ্ধ সাবস্ট্রিং (প্রতি লাইনে একটি)",
@@ -3749,13 +3753,13 @@
"responseValidationMinLength": "সর্বনিম্ন কন্টেন্ট দৈর্ঘ্য (অক্ষর)",
"responseValidationJsonPaths": "JSON-path চেকসমূহ",
"responseValidationAddCheck": "+ চেক যোগ করুন",
- "agentFeaturesSystemMessageOverride": "Override system message",
- "agentFeaturesSystemMessagePlaceholder": "You are an expert assistant...",
- "agentFeaturesSystemMessageHint": "System message override for agents",
+ "agentFeaturesSystemMessageOverride": "সিস্টেম মেসেজ ওভাররাইড করুন",
+ "agentFeaturesSystemMessagePlaceholder": "আপনি একজন বিশেষজ্ঞ সহকারী...",
+ "agentFeaturesSystemMessageHint": "এজেন্টদের জন্য সিস্টেম মেসেজ ওভাররাইড",
"agentFeaturesToolFilterRegex": "/regex-pattern/",
- "agentFeaturesToolFilterHint": "Tool filter regex for agents",
- "agentFeaturesContextCacheHint": "Enable in-context cache for agent tools",
- "agentFeaturesContextCacheProtection": "Protect cache from agent tool mutations",
+ "agentFeaturesToolFilterHint": "এজেন্টদের জন্য টুল ফিল্টার regex",
+ "agentFeaturesContextCacheHint": "এজেন্ট টুলগুলোর জন্য ইন-কনটেক্সট ক্যাশ সক্রিয় করুন",
+ "agentFeaturesContextCacheProtection": "এজেন্ট টুলের পরিবর্তন থেকে ক্যাশ সুরক্ষিত রাখুন",
"agentFeaturesContextLength": "প্রসঙ্গ দৈর্ঘ্য",
"agentFeaturesContextLengthPlaceholder": "যেমন 128000",
"agentFeaturesContextLengthHint": "/v1/মডেলে এই কম্বোর জন্য প্রসঙ্গ উইন্ডো সংজ্ঞায়িত করে।",
@@ -3784,40 +3788,40 @@
"duplicateAutoComboTitle": "{name} থেকে একটি স্ট্যাটিক কম্বো তৈরি করুন"
},
"costs": {
- "title": "Costs",
- "pageDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "overview": "Overview",
- "budget": "Budget",
- "totalCost": "Total Cost",
- "breakdown": "Cost Breakdown",
- "noData": "No cost data",
- "byModel": "By Model",
- "byProvider": "By Provider",
- "range7d": "7 Days",
- "range30d": "30 Days",
- "range90d": "90 Days",
- "range180d": "180 Days",
- "range365d": "365 Days",
- "rangeAll": "All Time",
- "spend30d": "Spend 30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
- "overviewTitle": "Cost Overview",
- "spend7d": "Spend 7D",
- "avgCostPerRequest": "Avg Cost / Request",
- "noCostDataDescription": "Start making requests to see cost data appear here. Costs are tracked automatically for all providers.",
- "spendToday": "Spend Today",
- "overviewLoadFailed": "Failed to load cost overview",
- "overviewDescription": "Real-time spending breakdown across all connected providers and models",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
- "noCostDataTitle": "No cost data yet",
- "topModels": "Top Models",
- "requestsInWindow": "Requests in Window",
+ "title": "খরচ",
+ "pageDescription": "সব প্রদানকারীর ক্ষেত্রে ব্যয় ট্র্যাক করুন, প্রবণতা বিশ্লেষণ করুন এবং আপনার AI বাজেট পরিচালনা করুন",
+ "overview": "সারসংক্ষেপ",
+ "budget": "বাজেট",
+ "totalCost": "মোট খরচ",
+ "breakdown": "খরচের বিশ্লেষণ",
+ "noData": "খরচের কোনো ডেটা নেই",
+ "byModel": "মডেল অনুযায়ী",
+ "byProvider": "প্রদানকারী অনুযায়ী",
+ "range7d": "৭ দিন",
+ "range30d": "৩০ দিন",
+ "range90d": "৯০ দিন",
+ "range180d": "১৮০ দিন",
+ "range365d": "৩৬৫ দিন",
+ "rangeAll": "সর্বকালীন",
+ "spend30d": "গত ৩০ দিনের ব্যয়",
+ "activeModels": "সক্রিয় মডেল",
+ "flatRateEstimateNotice": "ফ্ল্যাট-রেট সাবস্ক্রিপশনের জন্য টোকেন-মূল্যের আনুমানিক হিসাব অন্তর্ভুক্ত; এটি বিল করা খরচ নয়।",
+ "flatRateEstimateForecast": "প্রক্ষেপণে ফ্ল্যাট-রেটের আনুমানিক হিসাব অন্তর্ভুক্ত রয়েছে।",
+ "selectedWindow": "নির্বাচিত সময়সীমা",
+ "activeProviders": "সক্রিয় প্রদানকারী",
+ "overviewTitle": "খরচের সারসংক্ষেপ",
+ "spend7d": "গত ৭ দিনের ব্যয়",
+ "avgCostPerRequest": "প্রতি অনুরোধের গড় খরচ",
+ "noCostDataDescription": "খরচের ডেটা এখানে দেখতে অনুরোধ করা শুরু করুন। সব প্রদানকারীর খরচ স্বয়ংক্রিয়ভাবে ট্র্যাক করা হয়।",
+ "spendToday": "আজকের ব্যয়",
+ "overviewLoadFailed": "খরচের সারসংক্ষেপ লোড করা যায়নি",
+ "overviewDescription": "সংযুক্ত সব প্রদানকারী ও মডেলের রিয়েল-টাইম ব্যয়ের বিবরণ",
+ "providerShare": "প্রদানকারীর অংশ",
+ "topProviders": "শীর্ষ প্রদানকারীরা",
+ "costTrend": "খরচের প্রবণতা",
+ "noCostDataTitle": "এখনও খরচের কোনো ডেটা নেই",
+ "topModels": "শীর্ষ মডেলগুলো",
+ "requestsInWindow": "সময়সীমার মধ্যে অনুরোধ",
"tokenUsage": "টোকেন ব্যবহার",
"totalTokens": "মোট টোকেন",
"inputTokens": "ইনপুট টোকেন",
@@ -3877,139 +3881,139 @@
"showingTopCostRows": "{total}টি মিল থাকা সারির মধ্যে {shown}টি দেখানো হচ্ছে (শীর্ষ ৫০)।"
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
- "available": "Available Endpoints",
+ "title": "API এন্ডপয়েন্ট",
+ "subtitle": "বেশিরভাগ SDK ও টুলের সঙ্গে OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট ব্যবহার করুন।",
+ "testEndpoint": "এন্ডপয়েন্ট পরীক্ষা করুন →",
+ "advancedProtocols": "উন্নত প্রোটোকল",
+ "available": "উপলভ্য এন্ডপয়েন্টসমূহ",
"cloudProxy": "Cloud Proxy",
- "disableConfirm": "Are you sure you want to disable cloud proxy?",
- "baseUrl": "Base URL",
- "apiKeyLabel": "API Key",
- "registeredKeys": "Registered Keys",
+ "disableConfirm": "আপনি কি নিশ্চিত যে ক্লাউড প্রক্সি নিষ্ক্রিয় করতে চান?",
+ "baseUrl": "বেস URL",
+ "apiKeyLabel": "API কী",
+ "registeredKeys": "নিবন্ধিত কীসমূহ",
"chatCompletions": "Chat Completions",
- "responses": "Responses",
- "listModels": "List Models",
- "usingCloudProxy": "Using Cloud Proxy",
- "usingLocalServer": "Using Local Server",
- "machineId": "Machine ID: {id}...",
- "disableCloud": "Disable Cloud",
- "enableCloud": "Enable Cloud",
- "modelsAcrossEndpoints": "{models} models across {endpoints} endpoints",
- "loadingModels": "Loading available models...",
- "chatDesc": "Streaming & non-streaming chat with all providers",
- "embeddings": "Embeddings",
- "embeddingsDesc": "Text embeddings for search & RAG pipelines",
- "imageGeneration": "Image Generation",
- "imageDesc": "Generate images from text prompts",
+ "responses": "রেসপন্স",
+ "listModels": "মডেলের তালিকা",
+ "usingCloudProxy": "ক্লাউড প্রক্সি ব্যবহার করা হচ্ছে",
+ "usingLocalServer": "লোকাল সার্ভার ব্যবহার করা হচ্ছে",
+ "machineId": "মেশিন ID: {id}...",
+ "disableCloud": "ক্লাউড নিষ্ক্রিয় করুন",
+ "enableCloud": "ক্লাউড সক্রিয় করুন",
+ "modelsAcrossEndpoints": "{endpoints}টি এন্ডপয়েন্টজুড়ে {models}টি মডেল",
+ "loadingModels": "উপলভ্য মডেলগুলো লোড হচ্ছে...",
+ "chatDesc": "সব প্রদানকারীর সঙ্গে স্ট্রিমিং ও নন-স্ট্রিমিং চ্যাট",
+ "embeddings": "এম্বেডিং",
+ "embeddingsDesc": "সার্চ ও RAG পাইপলাইনের জন্য টেক্সট এম্বেডিং",
+ "imageGeneration": "ইমেজ জেনারেশন",
+ "imageDesc": "টেক্সট প্রম্পট থেকে ছবি তৈরি করুন",
"rerank": "Rerank",
- "rerankDesc": "Rerank documents by relevance to a query",
- "audioTranscription": "Audio Transcription",
- "audioTranscriptionDesc": "Transcribe audio files to text (Whisper)",
- "textToSpeech": "Text to Speech",
- "textToSpeechDesc": "Convert text to natural-sounding speech",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
- "moderations": "Moderations",
- "moderationsDesc": "Content moderation and safety classification",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
- "categoryCore": "Core APIs",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
- "categoryUtility": "Utility & Management",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
- "enableCloudTitle": "Enable Cloud Proxy",
- "whatYouGet": "What you will get",
- "cloudBenefitAccess": "Access your API from anywhere in the world",
- "cloudBenefitShare": "Share endpoint with your team easily",
- "cloudBenefitPorts": "No need to open ports or configure firewall",
- "cloudBenefitEdge": "Fast global edge network",
- "cloudSessionNote": "Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.",
- "cloudUnstableNote": "Cloud is currently unstable with Claude Code OAuth in some cases.",
- "cloudConnected": "Cloud Proxy connected!",
- "connectingToCloud": "Connecting to cloud...",
- "verifyingConnection": "Verifying connection...",
- "connecting": "Connecting...",
- "verifying": "Verifying...",
- "connected": "Connected!",
- "disableCloudTitle": "Disable Cloud Proxy",
- "disableWarning": "All auth sessions will be deleted from cloud.",
- "syncingData": "Syncing latest data...",
- "disablingCloud": "Disabling cloud...",
- "syncing": "Syncing...",
- "disabling": "Disabling...",
- "cloudConnectedVerified": "Cloud Proxy connected and verified!",
- "connectedVerificationPending": "Connected — verification pending",
- "connectedVerificationPendingWithError": "Connected — verification pending: {error}",
- "cloudDisabledSuccess": "Cloud disabled successfully",
- "syncedSuccess": "Synced successfully",
- "failedDisable": "Failed to disable cloud",
- "failedEnable": "Failed to enable cloud",
- "cloudRequestTimeout": "Cloud request timeout",
- "cloudRequestFailed": "Cloud request failed",
- "cloudWorkerUnreachable": "Could not reach cloud worker. Make sure the cloud service is running (npm run dev in /cloud).",
- "connectionFailed": "Connection failed",
- "syncFailed": "Failed to sync cloud data",
+ "rerankDesc": "কোয়েরির সঙ্গে প্রাসঙ্গিকতা অনুযায়ী ডকুমেন্ট পুনরায় র্যাঙ্ক করুন",
+ "audioTranscription": "অডিও ট্রান্সক্রিপশন",
+ "audioTranscriptionDesc": "অডিও ফাইলকে টেক্সটে ট্রান্সক্রাইব করুন (Whisper)",
+ "textToSpeech": "টেক্সট টু স্পিচ",
+ "textToSpeechDesc": "টেক্সটকে স্বাভাবিক-শ্রুতির কথনে রূপান্তর করুন",
+ "musicGeneration": "সঙ্গীত তৈরি",
+ "musicDesc": "ComfyUI-এর মাধ্যমে সঙ্গীত ও অডিও ট্র্যাক তৈরি করুন (Stable Audio, MusicGen)",
+ "moderations": "মডারেশন",
+ "moderationsDesc": "কনটেন্ট মডারেশন ও নিরাপত্তা শ্রেণিবিন্যাস",
+ "responsesDesc": "Codex ও উন্নত এজেন্টিক ওয়ার্কফ্লোর জন্য OpenAI Responses API",
+ "listModelsDesc": "সংযুক্ত সব প্রোভাইডারে উপলভ্য সমস্ত মডেলের তালিকা দেখুন",
+ "settingsApiDesc": "API-এর মাধ্যমে OmniRoute-এর কনফিগারেশন পড়ুন ও পরিবর্তন করুন",
+ "settingsApi": "সেটিংস API",
+ "categoryCore": "মূল API-সমূহ",
+ "categoryMedia": "মিডিয়া ও মাল্টি-মোডাল",
+ "categorySearch": "অনুসন্ধান ও আবিষ্কার",
+ "categoryUtility": "ইউটিলিটি ও ব্যবস্থাপনা",
+ "webSearch": "ওয়েব অনুসন্ধান",
+ "webSearchDesc": "স্বয়ংক্রিয় ফেইলওভার ও ক্যাশিংসহ একাধিক প্রোভাইডারজুড়ে সমন্বিত ওয়েব অনুসন্ধান",
+ "searchProvider": "অনুসন্ধান প্রোভাইডার",
+ "searchProviderDesc": "এই প্রোভাইডারটি POST /v1/search-এর মাধ্যমে ওয়েব অনুসন্ধানের জন্য ব্যবহৃত হয়। কোনো মডেল কনফিগারেশনের প্রয়োজন নেই — একটি API কী সংযুক্ত করলেই অনুসন্ধান প্রোভাইডারগুলো ব্যবহারের জন্য প্রস্তুত।",
+ "enableCloudTitle": "Cloud Proxy সক্রিয় করুন",
+ "whatYouGet": "আপনি যা পাবেন",
+ "cloudBenefitAccess": "বিশ্বের যেকোনো স্থান থেকে আপনার API অ্যাক্সেস করুন",
+ "cloudBenefitShare": "সহজেই আপনার দলের সঙ্গে এন্ডপয়েন্ট শেয়ার করুন",
+ "cloudBenefitPorts": "পোর্ট খোলা বা ফায়ারওয়াল কনফিগার করার প্রয়োজন নেই",
+ "cloudBenefitEdge": "দ্রুত বৈশ্বিক এজ নেটওয়ার্ক",
+ "cloudSessionNote": "Cloud আপনার অথ সেশন ১ দিন ধরে রাখবে। ব্যবহার না করা হলে এটি স্বয়ংক্রিয়ভাবে মুছে যাবে।",
+ "cloudUnstableNote": "কিছু ক্ষেত্রে Claude Code OAuth-এর সঙ্গে Cloud বর্তমানে অস্থিতিশীল।",
+ "cloudConnected": "Cloud Proxy সংযুক্ত হয়েছে!",
+ "connectingToCloud": "Cloud-এর সঙ্গে সংযোগ করা হচ্ছে...",
+ "verifyingConnection": "সংযোগ যাচাই করা হচ্ছে...",
+ "connecting": "সংযোগ করা হচ্ছে...",
+ "verifying": "যাচাই করা হচ্ছে...",
+ "connected": "সংযুক্ত হয়েছে!",
+ "disableCloudTitle": "Cloud Proxy নিষ্ক্রিয় করুন",
+ "disableWarning": "Cloud থেকে সব অথ সেশন মুছে ফেলা হবে।",
+ "syncingData": "সর্বশেষ ডেটা সিঙ্ক করা হচ্ছে...",
+ "disablingCloud": "Cloud নিষ্ক্রিয় করা হচ্ছে...",
+ "syncing": "সিঙ্ক করা হচ্ছে...",
+ "disabling": "নিষ্ক্রিয় করা হচ্ছে...",
+ "cloudConnectedVerified": "Cloud Proxy সংযুক্ত ও যাচাইকৃত হয়েছে!",
+ "connectedVerificationPending": "সংযুক্ত হয়েছে — যাচাইকরণ অপেক্ষমাণ",
+ "connectedVerificationPendingWithError": "সংযুক্ত হয়েছে — যাচাইকরণ অপেক্ষমাণ: {error}",
+ "cloudDisabledSuccess": "Cloud সফলভাবে নিষ্ক্রিয় করা হয়েছে",
+ "syncedSuccess": "সফলভাবে সিঙ্ক হয়েছে",
+ "failedDisable": "ক্লাউড নিষ্ক্রিয় করতে ব্যর্থ হয়েছে",
+ "failedEnable": "ক্লাউড সক্রিয় করতে ব্যর্থ হয়েছে",
+ "cloudRequestTimeout": "ক্লাউড অনুরোধের সময়সীমা শেষ হয়েছে",
+ "cloudRequestFailed": "ক্লাউড অনুরোধ ব্যর্থ হয়েছে",
+ "cloudWorkerUnreachable": "ক্লাউড ওয়ার্কারের সঙ্গে সংযোগ স্থাপন করা যায়নি। নিশ্চিত করুন যে ক্লাউড পরিষেবাটি চলছে (npm run dev in /cloud)।",
+ "connectionFailed": "সংযোগ ব্যর্থ হয়েছে",
+ "syncFailed": "ক্লাউড ডেটা সিঙ্ক করতে ব্যর্থ হয়েছে",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
- "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredDescription": "এই এন্ডপয়েন্টের জন্য একটি Cloudflare Quick Tunnel তৈরি করুন।",
+ "cloudflaredUrlNotice": "একটি অস্থায়ী Cloudflare Quick Tunnel তৈরি করে। প্রতিবার পুনরায় চালু করার পর URL পরিবর্তিত হয়।",
+ "cloudflaredEnable": "টানেল সক্রিয় করুন",
+ "cloudflaredInstallAndEnable": "ইনস্টল ও সক্রিয় করুন",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "চলছে",
+ "cloudflaredStarting": "শুরু হচ্ছে",
+ "cloudflaredStoppedState": "বন্ধ আছে",
+ "cloudflaredNotInstalled": "ইনস্টল করা নেই",
+ "cloudflaredUnsupported": "সমর্থিত নয়",
+ "cloudflaredError": "ত্রুটি",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
- "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after every restart.",
- "cloudflaredUnsupportedNote": "This platform is not supported for managed installs. Install cloudflared manually or point CLOUDFLARED_BIN to an existing binary.",
+ "cloudflaredTemporaryNote": "Quick Tunnel URL-গুলো অস্থায়ী এবং প্রতিবার পুনরায় চালু করার পর পরিবর্তিত হবে।",
+ "cloudflaredUnsupportedNote": "এই প্ল্যাটফর্মে পরিচালিত ইনস্টল সমর্থিত নয়। cloudflared ম্যানুয়ালি ইনস্টল করুন অথবা CLOUDFLARED_BIN-কে বিদ্যমান বাইনারির দিকে নির্দেশ করুন।",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
- "providerModelsTitle": "{provider} — Models",
- "noModelsForProvider": "No models available for this provider.",
+ "cloudflaredLastError": "সর্বশেষ ত্রুটি: {error}",
+ "providerModelsTitle": "{provider} — মডেলসমূহ",
+ "noModelsForProvider": "এই প্রোভাইডারের জন্য কোনো মডেল উপলভ্য নেই।",
"chat": "Chat",
- "embedding": "Embedding",
- "image": "Image",
- "custom": "custom",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "embedding": "এম্বেডিং",
+ "image": "ছবি",
+ "custom": "কাস্টম",
+ "modelsCount": "{count, plural, one {#টি মডেল} other {#টি মডেল}}",
+ "sectionTitle": "ইন্টিগ্রেশন সারফেস",
+ "sectionDescription": "OpenAI-সামঞ্জস্যপূর্ণ API এবং পরিচালনাগত প্রোটোকল এন্ডপয়েন্ট",
"tabApis": "এপিআইগুলি",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "প্রোটোকলসমূহ",
+ "tabsAria": "এন্ডপয়েন্ট বিভাগসমূহ",
+ "protocolsTitle": "প্রোটোকলসমূহ",
+ "protocolsDescription": "MCP এবং A2A হলো নিবেদিত পর্যবেক্ষণযোগ্যতা ও নিয়ন্ত্রণসহ প্রথম-শ্রেণির এন্ডপয়েন্ট।",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "stdio-এর মাধ্যমে Model Context Protocol",
+ "a2aCardTitle": "A2A সার্ভার",
+ "a2aCardDescription": "Agent2Agent JSON-RPC এন্ডপয়েন্ট",
+ "protocolToolsLabel": "টুলসমূহ",
+ "protocolTasksLabel": "টাস্কসমূহ",
+ "protocolActiveStreamsLabel": "সক্রিয় স্ট্রিমসমূহ",
+ "protocolLastActivity": "সর্বশেষ কার্যকলাপ",
+ "quickStart": "দ্রুত শুরু",
+ "openMcpDashboard": "MCP ব্যবস্থাপনা খুলুন",
+ "openA2aDashboard": "A2A ব্যবস্থাপনা খুলুন",
+ "mcpQuickStartTitle": "MCP দ্রুত শুরু",
+ "mcpQuickStartStep1": "`omniroute --mcp` ব্যবহার করে MCP সার্ভার চালান।",
+ "mcpQuickStartStep2": "stdio ট্রান্সপোর্টের মাধ্যমে সংযোগ করতে আপনার MCP ক্লায়েন্ট কনফিগার করুন।",
+ "mcpQuickStartStep3": "`omniroute_get_health` এবং `omniroute_list_combos`-এর মতো টুল ব্যবহার করুন।",
+ "a2aQuickStartTitle": "A2A দ্রুত শুরু",
+ "a2aQuickStartStep1": "`/.well-known/agent.json`-এ এজেন্ট কার্ডটি খুঁজে নিন।",
+ "a2aQuickStartStep2": "`message/send` অথবা `message/stream` ব্যবহার করে `POST /a2a`-তে JSON-RPC অনুরোধ পাঠান।",
+ "a2aQuickStartStep3": "`tasks/get` এবং `tasks/cancel` ব্যবহার করে টাস্ক ট্র্যাক ও নিয়ন্ত্রণ করুন।",
+ "completionsLegacy": "কমপ্লিশন (লিগ্যাসি)",
+ "completionsLegacyDesc": "লিগ্যাসি OpenAI টেক্সট কমপ্লিশন — prompt স্ট্রিং এবং messages অ্যারে উভয় ফরম্যাটই গ্রহণ করে",
"messagesApi": "বার্তা",
"messagesApiDesc": "Claude-সামঞ্জস্যপূর্ণ প্রদানকারীদের জন্য নেটিভ নৃতাত্ত্বিক বার্তা API বিন্যাস",
"imageEdits": "ছবি সম্পাদনা",
@@ -4018,41 +4022,41 @@
"batchApiDesc": "অ্যাসিঙ্ক্রোনাসভাবে অনুরোধের বড় ব্যাচ প্রক্রিয়া করুন (ওপেনএআই-সামঞ্জস্যপূর্ণ)",
"filesApi": "ফাইল API",
"filesApiDesc": "ব্যাচ প্রক্রিয়াকরণের জন্য ফাইলগুলি আপলোড এবং পরিচালনা করুন",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "ভিডিও তৈরি",
+ "videoDesc": "ComfyUI এবং Stable Video Diffusion-এর মতো AI মডেল ব্যবহার করে ভিডিও তৈরি করুন।",
+ "tailscaleRequestFailed": "Tailscale-এর স্থিতি লোড করা যায়নি",
+ "tailscaleEnableFailed": "Tailscale Funnel সক্রিয় করা যায়নি",
+ "tailscaleWaitingForLogin": "খোলা ব্রাউজার ট্যাবে Tailscale লগইন সম্পন্ন করুন। OmniRoute স্বয়ংক্রিয়ভাবে আবার চেষ্টা করবে।",
+ "tailscaleLoginTimedOut": "Tailscale লগইনের অপেক্ষায় সময়সীমা শেষ হয়েছে",
+ "tailscaleWaitingForFunnel": "খোলা ব্রাউজার ট্যাবে এই ডিভাইসের জন্য Funnel সক্রিয় করুন। OmniRoute পর্যায়ক্রমে পরীক্ষা করতে থাকবে।",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel সক্রিয় হওয়ার অপেক্ষায় সময়সীমা শেষ হয়েছে",
+ "tailscaleStarted": "Tailscale Funnel সক্রিয় করা হয়েছে",
+ "tailscaleDisableFailed": "Tailscale Funnel নিষ্ক্রিয় করা যায়নি",
+ "tailscaleStopped": "Tailscale Funnel নিষ্ক্রিয় করা হয়েছে",
+ "tailscaleInstallFailed": "Tailscale ইনস্টল করা যায়নি",
+ "tailscaleInstallProgress": "কাজ চলছে...",
+ "tailscaleInstalled": "Tailscale সফলভাবে ইনস্টল করা হয়েছে",
+ "tailscaleRunning": "চলছে",
+ "tailscaleNeedsLogin": "লগইন প্রয়োজন",
+ "tailscaleStoppedState": "বন্ধ",
+ "tailscaleNotInstalled": "ইনস্টল করা নেই",
+ "tailscaleUnsupported": "সমর্থিত নয়",
+ "tailscaleError": "ত্রুটি",
+ "tailscaleDisable": "Funnel বন্ধ করুন",
+ "tailscaleInstallAndEnable": "ইনস্টল ও সক্রিয় করুন",
+ "tailscaleLoginAndEnable": "লগইন ও সক্রিয় করুন",
+ "tailscaleEnable": "Funnel সক্রিয় করুন",
+ "tailscaleUrlNotice": "আপনার Tailscale .ts.net ঠিকানা ব্যবহার করে। প্রথমবার ব্যবহারের সময় লগইন ও Funnel অনুমোদনের প্রয়োজন হতে পারে।",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
- "tailscaleSudoLabel": "Sudo Password (required on macOS/Linux)",
+ "tailscaleNeedsLoginHint": "Tailscale দিয়ে এই মেশিনটি প্রমাণীকরণ করুন, তারপর Funnel সক্রিয় করুন।",
+ "tailscaleBinaryPath": "বাইনারি: {path}",
+ "tailscaleLastError": "সর্বশেষ ত্রুটি: {error}",
+ "tailscaleInstallTitle": "Tailscale ইনস্টল করুন",
+ "tailscaleInstallIntro": "এই মেশিনে Tailscale ইনস্টল করে এবং Funnel সক্রিয় করার জন্য OmniRoute প্রস্তুত করে।",
+ "tailscaleInstallPasswordHint": "macOS এবং Linux-এ প্যাকেজ ইনস্টল ও ডেমন চালু করতে sudo প্রয়োজন হতে পারে।",
+ "tailscaleSudoPlaceholder": "ঐচ্ছিক sudo পাসওয়ার্ড",
+ "tailscaleInstalling": "ইনস্টল করা হচ্ছে",
+ "tailscaleSudoLabel": "Sudo পাসওয়ার্ড (macOS/Linux-এ আবশ্যক)",
"ngrokTitle": "ngrok টানেল",
"ngrokRunning": "চলমান",
"ngrokStarting": "শুরু হচ্ছে",
@@ -4104,7 +4108,7 @@
"all": "সব",
"more": "আরও +{count}",
"showInternalTooltip": "অভ্যন্তরীণ রুটগুলো দেখান বা লুকান (ডিফল্টরূপে লুকানো থাকে)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "বেয়ারার প্রমাণীকরণ",
"requestBody": "রিকোয়েস্ট বডি",
"close": "বন্ধ করুন",
"tryIt": "চেষ্টা করে দেখুন",
@@ -4140,9 +4144,9 @@
"tierPublic": "পাবলিক",
"hideInternal": "অভ্যন্তরীণ লুকান",
"showInternal": "অভ্যন্তরীণ দেখান",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "কাস্টম সিস্টেম প্রম্পট",
+ "customSystemPromptDescription": "প্রতিটি মডেল অনুরোধে একটি কাস্টম সিস্টেম প্রম্পট যুক্ত করুন",
+ "customSystemPromptPlaceholder": "যেমন: সবসময় জলদস্যুর ভাষায় উত্তর দিন...",
"obsidianEnterToken": "অনুগ্রহ করে একটি Obsidian API টোকেন লিখুন",
"obsidianConnectFailed": "সংযোগ করতে ব্যর্থ হয়েছে",
"obsidianConnectionFailed": "সংযোগ ব্যর্থ হয়েছে",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "টোকেন কনফিগার করা হয়েছে। Notion টুলগুলি MCP এর মাধ্যমে উপলব্ধ।"
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "এন্ডপয়েন্ট প্রক্সি",
+ "tabApiEndpoints": "API এন্ডপয়েন্টসমূহ",
+ "apiEndpointsTitle": "API এন্ডপয়েন্টসমূহ",
+ "apiEndpointsDescription": "ব্যাকএন্ড API এন্ডপয়েন্ট, যা অন্যান্য অ্যাপ্লিকেশন ও পরিষেবা ব্যবহার করতে পারে। এই বিভাগে ডকুমেন্টেশন ও পরীক্ষার সুবিধাসহ উপলভ্য সব REST API তালিকাভুক্ত থাকবে।",
+ "comingSoon": "শীঘ্রই আসছে",
+ "plannedFeatures": "পরিকল্পিত ফিচারসমূহ",
+ "featureRestApi": "ইন্টার্যাক্টিভ ডকুমেন্টেশনসহ REST API এন্ডপয়েন্ট ক্যাটালগ",
+ "featureWebhooks": "Webhook কনফিগারেশন ও ইভেন্ট সাবস্ক্রিপশন",
+ "featureSwagger": "OpenAPI / Swagger স্পেসিফিকেশন স্বয়ংক্রিয়ভাবে তৈরি",
+ "featureAuth": "প্রতি এন্ডপয়েন্টের জন্য API কী ও OAuth স্কোপ ব্যবস্থাপনা"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP ড্যাশবোর্ড লোড হচ্ছে...",
+ "activate": "সক্রিয় করুন",
+ "deactivate": "নিষ্ক্রিয় করুন",
+ "confirmSwitchCombo": "কম্বো \"{combo}\" {action} করার বিষয়টি নিশ্চিত করবেন?",
+ "switchComboFailed": "কম্বোর অবস্থা পরিবর্তন করা যায়নি।",
+ "switchComboSuccess": "কম্বো \"{combo}\" আপডেট করা হয়েছে।",
+ "confirmApplyProfile": "স্থিতিস্থাপকতা প্রোফাইল \"{profile}\" প্রয়োগ করবেন?",
+ "applyProfileFailed": "স্থিতিস্থাপকতা প্রোফাইল প্রয়োগ করা যায়নি।",
+ "applyProfileSuccess": "প্রোফাইল \"{profile}\" প্রয়োগ করা হয়েছে।",
+ "confirmResetBreakers": "সব সার্কিট ব্রেকার রিসেট করবেন?",
+ "resetBreakersFailed": "সার্কিট ব্রেকারগুলো রিসেট করা যায়নি।",
+ "resetBreakersSuccess": "সার্কিট ব্রেকারগুলো রিসেট করা হয়েছে।",
+ "processStatus": "প্রক্রিয়ার স্থিতি",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} নিষ্ক্রিয় করুন",
@@ -4233,119 +4237,119 @@
"mcpStep2": "stdio ট্রান্সপোর্টের মাধ্যমে সংযোগ করতে আপনার MCP ক্লায়েন্ট কনফিগার করুন।",
"mcpStep3": "{code1} এবং {code2}-এর মতো টুলগুলো ইনভোক করুন।",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "সেশনের সচল সময়",
+ "lastHeartbeat": "সর্বশেষ হার্টবিট",
+ "activity24h": "কার্যকলাপ (২৪ ঘণ্টা)",
+ "totalCalls": "মোট কল",
+ "successRate": "সাফল্যের হার",
+ "avgLatency": "গড় ল্যাটেন্সি",
+ "topTools": "শীর্ষ টুলসমূহ",
+ "noToolCalls24h": "গত ২৪ ঘণ্টায় কোনো টুল কল হয়নি।",
+ "runtimeDetails": "রানটাইমের বিস্তারিত",
+ "transport": "ট্রান্সপোর্ট",
+ "scopesEnforced": "স্কোপ প্রয়োগ করা হয়েছে",
+ "yes": "হ্যাঁ",
+ "no": "না",
+ "lastCall": "সর্বশেষ কল",
+ "heartbeatPath": "হার্টবিট পাথ",
+ "operationalControls": "পরিচালনাগত নিয়ন্ত্রণ",
+ "switchCombo": "কম্বো পরিবর্তন করুন",
+ "inactive": "নিষ্ক্রিয়",
+ "active": "সক্রিয়",
+ "activateCombo": "কম্বো সক্রিয় করুন",
+ "deactivateCombo": "কম্বো নিষ্ক্রিয় করুন",
+ "applyResilienceProfile": "রেজিলিয়েন্স প্রোফাইল প্রয়োগ করুন",
+ "profileAggressive": "আক্রমণাত্মক",
+ "profileBalanced": "ভারসাম্যপূর্ণ",
+ "profileConservative": "রক্ষণশীল",
+ "applyProfile": "প্রোফাইল প্রয়োগ করুন",
+ "resetCircuitBreakers": "সার্কিট ব্রেকার রিসেট করুন",
+ "resetCircuitBreakersHelp": "প্রোভাইডারগুলোর বর্তমান ব্রেকার স্টেট এবং ব্যর্থতার কাউন্টার মুছে দেয়।",
+ "resetAllBreakers": "সব ব্রেকার রিসেট করুন",
+ "toolsAndScopes": "টুল ও স্কোপ",
+ "tableTool": "টুল",
+ "tableScopes": "স্কোপ",
+ "tablePhase": "পর্যায়",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "অডিট লগ",
+ "auditSummary": "কল: {total} | পৃষ্ঠা {page} / {totalPages}",
+ "allTools": "সব টুল",
+ "allResults": "সব ফলাফল",
+ "success": "সফল",
+ "failure": "ব্যর্থ",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "অডিট এন্ট্রি লোড হচ্ছে...",
+ "noAuditEntriesForFilters": "বর্তমান ফিল্টারগুলোর জন্য কোনো অডিট এন্ট্রি পাওয়া যায়নি।",
+ "tableTimestamp": "টাইমস্ট্যাম্প",
+ "tableDuration": "সময়কাল",
+ "tableResult": "ফলাফল",
+ "tableApiKey": "API কী",
+ "failed": "ব্যর্থ",
+ "previous": "পূর্ববর্তী",
+ "next": "পরবর্তী",
+ "apiKeyId": "API কী আইডি",
+ "offset": "অফসেট",
+ "limit": "সীমা",
+ "tool": "টুল"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A ড্যাশবোর্ড লোড হচ্ছে...",
+ "confirmCancelTask": "টাস্ক {taskId} বাতিল করবেন?",
+ "cancelTaskFailed": "টাস্ক বাতিল করা যায়নি।",
+ "cancelTaskSuccess": "টাস্ক {taskId} বাতিল করা হয়েছে।",
+ "smokeSendFailed": "message/send স্মোক টেস্ট ব্যর্থ হয়েছে।",
+ "smokeSendSuccessWithTask": "message/send সফল হয়েছে (টাস্ক {taskId})।",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream স্মোক টেস্ট ব্যর্থ হয়েছে।",
+ "smokeStreamSuccessWithTask": "message/stream সফল হয়েছে (টাস্ক {taskId}{stateSuffix})।",
+ "smokeStreamNoTaskId": "টাস্ক আইডি ছাড়াই message/stream শেষ হয়েছে।",
+ "health": "স্বাস্থ্য",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "মোট টাস্ক",
+ "activeStreams": "সক্রিয় স্ট্রিম",
+ "lastTask": "সর্বশেষ টাস্ক",
+ "taskStateOverview": "টাস্কের অবস্থার সারসংক্ষেপ",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "জমা দেওয়া হয়েছে",
+ "working": "কাজ চলছে",
+ "completed": "সম্পন্ন",
+ "failed": "ব্যর্থ",
+ "cancelled": "বাতিল"
},
- "agentCard": "Agent card",
+ "agentCard": "এজেন্ট কার্ড",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "সংস্করণ",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "সক্ষমতাসমূহ",
+ "agentCardNotAvailable": "এজেন্ট কার্ড উপলভ্য নয়।",
+ "quickValidation": "দ্রুত যাচাইকরণ",
+ "quickValidationDescription": "সক্রিয় `/a2a` এন্ডপয়েন্টের মাধ্যমে স্মোক কল চালায়।",
+ "runMessageSend": "message/send চালান",
+ "runMessageStream": "message/stream চালান",
+ "taskManagement": "টাস্ক ব্যবস্থাপনা",
+ "taskSummary": "{total}টি টাস্ক | {totalPages}টির মধ্যে পৃষ্ঠা {page}",
+ "allStates": "সব",
+ "allSkills": "সব দক্ষতা",
+ "loadingTasks": "কাজগুলো লোড হচ্ছে...",
+ "noTasksForFilters": "বর্তমান ফিল্টারের জন্য কোনো কাজ পাওয়া যায়নি।",
+ "tableTask": "কাজ",
+ "tableSkill": "দক্ষতা",
+ "tableState": "অবস্থা",
+ "tableUpdated": "আপডেট করা হয়েছে",
+ "tableActions": "অ্যাকশন",
+ "view": "দেখুন",
+ "cancel": "বাতিল করুন",
+ "previous": "পূর্ববর্তী",
+ "next": "পরবর্তী",
+ "taskDetail": "কাজের বিস্তারিত",
+ "close": "বন্ধ করুন",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "ইভেন্ট",
+ "artifacts": "আর্টিফ্যাক্ট",
+ "tablePhase": "টেবিল পর্যায়",
+ "offset": "অফসেট",
+ "limit": "সীমা",
+ "skill": "দক্ষতা",
"rpcEndpoint": "পোস্ট /a2a",
"rpcMethodSend": "বার্তা/পাঠান",
"rpcMethodStream": "বার্তা/প্রবাহ",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "অ্যাকশন",
+ "addMemory": "মেমরি যোগ করুন",
+ "allTypes": "সব ধরন",
"cancel": "বাতিল করুন",
"checkHealth": "স্বাস্থ্য পরীক্ষা করুন",
"checkingHealth": "পরীক্ষা করা হচ্ছে...",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "এটি যেভাবে কাজ করে",
"howWorksContent": "1. স্বয়ংক্রিয় নিষ্কাশন: প্রতিটি প্রতিক্রিয়ার শেষে, তথ্য এবং পর্বগুলো স্বয়ংক্রিয়ভাবে সনাক্ত এবং সংরক্ষণ করা হয়।\n2. পুনরুদ্ধার: প্রতিটি প্রতিক্রিয়ার আগে, FTS5 (সঠিক), ভেক্টর (শব্দার্থিক), বা হাইব্রিড RRF-এর মাধ্যমে সবচেয়ে প্রাসঙ্গিক মেমরিগুলো অনুসন্ধান করা হয়।\n3. ইনজেকশন: প্রতিক্রিয়ার গুণমান উন্নত করতে প্রাসঙ্গিক মেমরিগুলো অ্যাসিস্ট্যান্টের কনটেক্সটে ইনজেক্ট করা হয়।\n4. ব্যবস্থাপনা: পুরোনো মেমরিগুলো দেখতে, সম্পাদনা করতে, রপ্তানি করতে এবং সংকুচিত করতে এই পৃষ্ঠাটি ব্যবহার করুন।"
},
- "content": "Content",
+ "content": "বিষয়বস্তু",
"contentPlaceholder": "মনে রাখতে মান বা JSON সামগ্রী",
- "created": "Created",
- "delete": "Delete",
+ "created": "তৈরি হয়েছে",
+ "delete": "মুছুন",
"deleteConfirmDesc": "এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না। মেমরি স্থায়ীভাবে মুছে ফেলা হবে।",
"deleteConfirmTitle": "মেমরি মুছে ফেলবেন?",
- "description": "View and manage stored memory entries",
+ "description": "সংরক্ষিত মেমরি এন্ট্রি দেখুন ও পরিচালনা করুন",
"editMemory": "মেমরি সম্পাদনা করুন",
"editModal": {
"title": "মেমরি সম্পাদনা করুন",
@@ -4412,7 +4416,7 @@
"customEndpointSaveFailed": "কাস্টম এম্বেডিং এন্ডপয়েন্ট সংরক্ষণ করা যায়নি।",
"staticEnabledLabel": "Static Potion সক্ষম করুন",
"staticEnabledDesc": "স্থানীয়ভাবে potion-base-8M মডেল ডাউনলোড এবং ব্যবহার করুন",
- "transformersEnabledLabel": "Enable Transformers.js",
+ "transformersEnabledLabel": "Transformers.js সক্রিয় করুন",
"transformersEnabledDesc": "লোকাল MiniLM-এর জন্য অপ্ট-ইন করুন (~400MB RAM, ~3s কোল্ড স্টার্ট)",
"transformersWarning": "প্রথম শব্দার্থিক কোয়েরিতে ~400MB RAM এবং ~3s কোল্ড স্টার্ট প্রয়োজন।"
},
@@ -4440,20 +4444,20 @@
"configureCta": "কনফিগার করুন",
"vectorStoreInstallHint": "ভেক্টর অনুসন্ধান সক্ষম করতে: npm install sqlite-vec (নেটিভ Node.js প্রয়োজন, WASM নয়) রান করুন, তারপর পুনরায় চালু করুন।"
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "ঘটনাভিত্তিক",
+ "export": "রপ্তানি করুন",
+ "factual": "তথ্যভিত্তিক",
"healthUnknown": "স্বাস্থ্য অজানা",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "হিট রেট",
+ "import": "আমদানি করুন",
"importError": "ফাইল ইম্পোর্ট করতে ব্যর্থ হয়েছে",
"importResult": "{imported}টি ইম্পোর্ট করা হয়েছে, {skipped}টি এড়িয়ে যাওয়া হয়েছে",
- "key": "Key",
+ "key": "কী",
"keyPlaceholder": "যেমন user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "মেমরি",
"next": "পরবর্তী",
- "noMemories": "No memories found",
+ "noMemories": "কোনো স্মৃতি পাওয়া যায়নি",
"pageInfo": "পৃষ্ঠা {page} এর {totalPages} ({total} মোট)",
"pipelineError": "পাইপলাইনের ত্রুটি",
"pipelineOk": "পাইপলাইন ঠিক আছে ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "প্রিভিউ লোড করতে ব্যর্থ হয়েছে"
},
"previous": "আগের",
- "procedural": "Procedural",
+ "procedural": "প্রক্রিয়াগত",
"qdrant": {
"title": "Qdrant (ভেক্টর স্টোর টিয়ার ২)",
"description": "স্কেলযোগ্য সিম্যান্টিক অনুসন্ধানের জন্য ঐচ্ছিক Qdrant ইন্টিগ্রেশন",
@@ -4530,8 +4534,8 @@
},
"save": "সংরক্ষণ করুন",
"saving": "সংরক্ষণ করা হচ্ছে...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "স্মৃতি খুঁজুন...",
+ "semantic": "অর্থগত",
"summarize": {
"title": "পুরোনো মেমরিগুলো কম্প্যাক্ট করুন",
"noCandidates": "কম্প্যাকশনের জন্য উপযুক্ত কোনো মেমরি নেই (শর্ত: >30 দিন পুরোনো)।",
@@ -4543,8 +4547,8 @@
"playground": "প্লেগ্রাউন্ড",
"engine": "ইঞ্জিন"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "স্মৃতি ব্যবস্থাপনা",
+ "tokensUsed": "ব্যবহৃত টোকেন",
"tooltip": {
"totalEntries": "এই API key-এর জন্য সংরক্ষিত মোট মেমরি",
"tokensUsed": "সক্রিয় মেমরি দ্বারা ব্যবহৃত আনুমানিক মোট টোকেন",
@@ -4554,15 +4558,15 @@
"procedural": "সহকারীর অনুসরণ করা উচিত এমন পদ্ধতি, ওয়ার্কফ্লো এবং নির্দেশাবলী",
"semantic": "ধারণা, পছন্দ এবং ডোমেন জ্ঞান"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "মোট এন্ট্রি",
+ "type": "ধরন",
"memoryEnabled": "মেমরি সক্রিয়"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "দক্ষতাসমূহ",
+ "description": "AI দক্ষতা পরিচালনা ও পর্যবেক্ষণ করুন",
+ "skillsTab": "দক্ষতাসমূহ",
+ "executionsTab": "এক্সিকিউশনসমূহ",
"selectSkillToInspect": "পরিদর্শন করতে বাম দিক থেকে একটি স্কিল নির্বাচন করুন।",
"schemaTab": "স্কিমা",
"handlerTab": "হ্যান্ডলার",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "টেস্ট চালান (প্লেসহোল্ডার)",
"setModeAria": "মোড {mode} সেট করুন",
"uninstallSkill": "স্কিল আনইনস্টল করুন",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "স্যান্ডবক্স",
+ "loading": "দক্ষতাসমূহ লোড হচ্ছে...",
+ "noSkills": "কোনো দক্ষতা পাওয়া যায়নি",
+ "noExecutions": "কোনো এক্সিকিউশন পাওয়া যায়নি",
+ "enabled": "সক্রিয়",
+ "disabled": "নিষ্ক্রিয়",
"delete": "মুছুন",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "সংস্করণ",
+ "tableDescription": "বিবরণ",
+ "skill": "দক্ষতা",
+ "status": "অবস্থা",
+ "duration": "সময়কাল",
+ "time": "সময়",
+ "sandboxConfig": "স্যান্ডবক্স কনফিগারেশন",
+ "cpuLimit": "CPU সীমা",
+ "cpuLimitDesc": "প্রতি দক্ষতার সর্বোচ্চ এক্সিকিউশন সময়",
+ "memoryLimit": "মেমরি সীমা",
+ "memoryLimitDesc": "সর্বোচ্চ মেমরি বরাদ্দ",
+ "timeout": "টাইমআউট",
+ "timeoutDesc": "প্রতিক্রিয়ার জন্য সর্বোচ্চ অপেক্ষার সময়",
+ "networkAccess": "নেটওয়ার্ক অ্যাক্সেস",
+ "networkAccessDesc": "বহির্গামী নেটওয়ার্ক অনুরোধের অনুমতি দিন",
+ "mode": "মোড",
"q": "Q",
"filterSkillsPlaceholder": "নাম, বিবরণ, বা ট্যাগ দ্বারা ফিল্টার দক্ষতা",
"allModes": "সব মোড",
@@ -4638,90 +4642,90 @@
"installSkill": "দক্ষতা ইনস্টল করুন"
},
"health": {
- "title": "System Health",
- "description": "Real-time monitoring of your OmniRoute instance",
- "healthy": "Healthy",
- "degraded": "Degraded",
- "down": "Down",
- "uptime": "Uptime",
- "memory": "Memory",
- "memoryRss": "Memory (RSS)",
- "heap": "Heap",
+ "title": "সিস্টেমের স্বাস্থ্য",
+ "description": "আপনার OmniRoute ইনস্ট্যান্সের রিয়েল-টাইম পর্যবেক্ষণ",
+ "healthy": "সুস্থ",
+ "degraded": "অবনত",
+ "down": "অচল",
+ "uptime": "আপটাইম",
+ "memory": "মেমরি",
+ "memoryRss": "মেমরি (RSS)",
+ "heap": "হিপ",
"cpu": "CPU",
- "database": "Database",
- "version": "Version",
- "lastCheck": "Last Check",
- "providerHealth": "Provider Health",
- "systemMetrics": "System Metrics",
- "tokenHealth": "Token Health",
- "refreshAll": "Refresh All",
- "checkNow": "Check Now",
- "loadingHealth": "Loading health data...",
- "failedToLoad": "Failed to load health data: {error}",
- "retry": "Retry",
- "allOperational": "All systems operational",
- "issuesDetected": "System issues detected",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
- "updatedAt": "Updated {time}",
- "latency": "Latency",
+ "database": "ডেটাবেস",
+ "version": "সংস্করণ",
+ "lastCheck": "সর্বশেষ পরীক্ষা",
+ "providerHealth": "প্রোভাইডারের স্বাস্থ্য",
+ "systemMetrics": "সিস্টেম মেট্রিক্স",
+ "tokenHealth": "টোকেনের স্বাস্থ্য",
+ "refreshAll": "সব রিফ্রেশ করুন",
+ "checkNow": "এখনই পরীক্ষা করুন",
+ "loadingHealth": "স্বাস্থ্যসংক্রান্ত ডেটা লোড হচ্ছে...",
+ "failedToLoad": "স্বাস্থ্যসংক্রান্ত ডেটা লোড করতে ব্যর্থ: {error}",
+ "retry": "পুনরায় চেষ্টা করুন",
+ "allOperational": "সব সিস্টেম সচল রয়েছে",
+ "issuesDetected": "সিস্টেমে সমস্যা শনাক্ত হয়েছে",
+ "healthVerdictReady": "OmniRoute প্রস্তুত",
+ "healthVerdictActionRequired": "সম্পূর্ণ কার্যক্রম পুনরুদ্ধার করতে পদক্ষেপ নেওয়া প্রয়োজন",
+ "healthVerdictCoolingDown": "সাম্প্রতিক পরিবর্তনের পর কুলডাউন চলছে",
+ "healthSubtitle": "সিস্টেমের স্বাস্থ্য পরীক্ষা",
+ "advancedDiagnosticsTitle": "উন্নত ডায়াগনস্টিকস",
+ "hide": "লুকান",
+ "show": "দেখান",
+ "updatedAt": "{time}-এ আপডেট করা হয়েছে",
+ "latency": "ল্যাটেন্সি",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
"millisecondsShort": "{value}ms",
"notAvailable": "—",
- "totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "promptCache": "Prompt Cache",
- "entries": "Entries",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "signatureCache": "Signature Cache",
- "signatureDefaults": "Defaults",
- "signatureTool": "Tool",
- "signatureFamily": "Family",
- "signatureSession": "Session",
- "recovering": "Recovering",
- "noCBData": "No circuit breaker data available. Make some requests first.",
- "providerHealthStatusAria": "Provider health status",
- "issuesLabel": "Issues Detected",
- "operational": "Operational",
- "providers": "Providers",
- "configuredProvidersLabel": "Configured in dashboard",
- "configuredProvidersHint": "Providers with credentials saved in /dashboard/providers, regardless of runtime state.",
- "activeProviders": "{count} active",
- "activeProvidersHint": "Configured providers currently enabled for routing requests.",
- "monitoredProviders": "{count} monitored",
- "monitoredProvidersHint": "Providers currently tracked by circuit-breaker health monitors.",
- "healthyCount": "{count} healthy",
+ "totalRequests": "মোট অনুরোধ",
+ "noDataYet": "এখনও কোনো ডেটা নেই",
+ "promptCache": "প্রম্পট ক্যাশ",
+ "entries": "এন্ট্রি",
+ "hitRate": "হিট রেট",
+ "hitsMisses": "হিট / মিস",
+ "signatureCache": "সিগনেচার ক্যাশ",
+ "signatureDefaults": "ডিফল্ট",
+ "signatureTool": "টুল",
+ "signatureFamily": "ফ্যামিলি",
+ "signatureSession": "সেশন",
+ "recovering": "পুনরুদ্ধার হচ্ছে",
+ "noCBData": "কোনো সার্কিট ব্রেকার ডেটা উপলভ্য নেই। প্রথমে কিছু অনুরোধ করুন।",
+ "providerHealthStatusAria": "প্রোভাইডারের স্বাস্থ্যস্থিতি",
+ "issuesLabel": "সমস্যা শনাক্ত হয়েছে",
+ "operational": "কার্যকর",
+ "providers": "প্রোভাইডার",
+ "configuredProvidersLabel": "ড্যাশবোর্ডে কনফিগার করা হয়েছে",
+ "configuredProvidersHint": "রানটাইম অবস্থা নির্বিশেষে /dashboard/providers-এ সংরক্ষিত ক্রেডেনশিয়ালসহ প্রোভাইডার।",
+ "activeProviders": "{count}টি সক্রিয়",
+ "activeProvidersHint": "রাউটিং অনুরোধের জন্য বর্তমানে সক্রিয় থাকা কনফিগার করা প্রোভাইডার।",
+ "monitoredProviders": "{count}টি পর্যবেক্ষণাধীন",
+ "monitoredProvidersHint": "বর্তমানে সার্কিট-ব্রেকার হেলথ মনিটর দ্বারা পর্যবেক্ষণ করা প্রোভাইডার।",
+ "healthyCount": "{count}টি সুস্থ",
"nodeVersion": "Node {version}",
- "failures": "{count} failure",
- "failuresPlural": "{count} failures",
- "lastFailure": "Last",
- "rateLimitStatus": "Rate Limit Status",
- "activeLimiters": "{count} active limiter",
- "activeLimitersPlural": "{count} active limiters",
- "queued": "Queued",
- "queuedCount": "{count} queued",
- "running": "running",
- "runningCount": "{count} running",
+ "failures": "{count}টি ব্যর্থতা",
+ "failuresPlural": "{count}টি ব্যর্থতা",
+ "lastFailure": "সর্বশেষ",
+ "rateLimitStatus": "রেট লিমিটের অবস্থা",
+ "activeLimiters": "{count}টি সক্রিয় লিমিটার",
+ "activeLimitersPlural": "{count}টি সক্রিয় লিমিটার",
+ "queued": "সারিতে রয়েছে",
+ "queuedCount": "{count}টি সারিতে রয়েছে",
+ "running": "চলমান",
+ "runningCount": "{count}টি চলমান",
"ok": "OK",
- "activeLockouts": "Active Lockouts",
- "resetConfirm": "Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.",
- "resetAllTitle": "Reset all circuit breakers to healthy state",
- "resetting": "Resetting...",
- "resetAll": "Reset All",
- "until": "Until {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "activeLockouts": "সক্রিয় লকআউট",
+ "resetConfirm": "সব সার্কিট ব্রেকারকে সুস্থ অবস্থায় রিসেট করবেন? এটি সব ব্যর্থতার সংখ্যা মুছে দেবে এবং সব প্রোভাইডারকে কার্যকর অবস্থায় ফিরিয়ে আনবে।",
+ "resetAllTitle": "সব সার্কিট ব্রেকারকে সুস্থ অবস্থায় রিসেট করুন",
+ "resetting": "রিসেট করা হচ্ছে...",
+ "resetAll": "সব রিসেট করুন",
+ "until": "{time} পর্যন্ত",
+ "limitExhausted": "নিঃশেষিত",
+ "learnedFromHeaders": "হেডার থেকে প্রাপ্ত",
+ "remainingOfLimit": "{remaining}/{limit} অবশিষ্ট",
+ "throttleStatus": "থ্রটল: {value}",
+ "lastHeaderUpdate": "হেডার আপডেট: {age}",
"databaseHealth": "ডাটাবেস স্বাস্থ্য",
"databaseHealthDescription": "পুরোনো quota/domain সারি এবং ভাঙা combo রেফারেন্স নির্ণয় ও মেরামত করুন।",
"status": "স্ট্যাটাস",
@@ -4847,65 +4851,65 @@
"noTargets": "কোনো টার্গেট রুট কনফিগার করা নেই।"
},
"limits": {
- "title": "Limits & Quotas",
- "rateLimit": "Rate Limit",
- "remaining": "Remaining",
- "requestsPerMinute": "Requests/min",
- "tokensPerMinute": "Tokens/min",
- "dailyLimit": "Daily Limit"
+ "title": "সীমা ও কোটা",
+ "rateLimit": "রেট লিমিট",
+ "remaining": "অবশিষ্ট",
+ "requestsPerMinute": "অনুরোধ/মিনিট",
+ "tokensPerMinute": "টোকেন/মিনিট",
+ "dailyLimit": "দৈনিক সীমা"
},
"logs": {
- "title": "Logs",
- "requestLogs": "Request Logs",
- "proxyLogs": "Proxy Logs",
- "auditLog": "Audit Log",
+ "title": "লগ",
+ "requestLogs": "অনুরোধের লগ",
+ "proxyLogs": "প্রক্সি লগ",
+ "auditLog": "অডিট লগ",
"console": "Console",
- "auditLogDesc": "Administrative actions and security events",
- "loading": "Loading...",
- "refresh": "Refresh",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
- "showing": "Showing {count} entries (offset {offset})",
- "search": "Search",
- "timestamp": "Timestamp",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "details": "Details",
- "ipAddress": "IP Address",
+ "auditLogDesc": "প্রশাসনিক কার্যক্রম ও নিরাপত্তা ইভেন্ট",
+ "loading": "লোড হচ্ছে...",
+ "refresh": "রিফ্রেশ",
+ "filterByAction": "অ্যাকশন অনুযায়ী ফিল্টার করুন...",
+ "filterByActor": "সম্পাদনকারী অনুযায়ী ফিল্টার করুন...",
+ "filterEntriesAria": "অডিট লগ এন্ট্রি ফিল্টার করুন",
+ "filterByActionTypeAria": "অ্যাকশনের ধরন অনুযায়ী ফিল্টার করুন",
+ "filterByActorAria": "সম্পাদনকারী অনুযায়ী ফিল্টার করুন",
+ "refreshAuditLogAria": "অডিট লগ রিফ্রেশ করুন",
+ "tableAria": "অডিট লগ এন্ট্রি",
+ "failedFetchAuditLog": "অডিট লগ আনতে ব্যর্থ হয়েছে",
+ "showing": "{count}টি এন্ট্রি দেখানো হচ্ছে (অফসেট {offset})",
+ "search": "অনুসন্ধান",
+ "timestamp": "টাইমস্ট্যাম্প",
+ "action": "অ্যাকশন",
+ "actor": "সম্পাদনকারী",
+ "target": "লক্ষ্য",
+ "details": "বিস্তারিত",
+ "ipAddress": "IP ঠিকানা",
"notAvailable": "—",
- "noEntries": "No audit log entries found",
- "previous": "Previous",
- "next": "Next",
- "providerWarningTitle": "Provider Warnings",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
- "providerWarningDesc": "Some providers returned warnings during request processing",
+ "noEntries": "কোনো অডিট লগ এন্ট্রি পাওয়া যায়নি",
+ "previous": "পূর্ববর্তী",
+ "next": "পরবর্তী",
+ "providerWarningTitle": "প্রোভাইডার সতর্কতা",
+ "viewDetails": "বিস্তারিত দেখুন",
+ "eventMetadata": "ইভেন্ট মেটাডেটা",
+ "eventPayload": "ইভেন্ট পেলোড",
+ "requestId": "রিকোয়েস্ট আইডি",
+ "providerWarningDesc": "রিকোয়েস্ট প্রক্রিয়াকরণের সময় কিছু প্রোভাইডার সতর্কতা দিয়েছে",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "offset": "অফসেট",
+ "limit": "সীমা",
+ "status": "স্ট্যাটাস",
+ "resourceType": "রিসোর্সের ধরন",
+ "totalEntries": "মোট এন্ট্রি",
+ "tab": "ট্যাব",
+ "auditModalSubtitle": "ইভেন্টের বিস্তারিত ও মেটাডেটা",
+ "close": "বন্ধ করুন",
+ "runningRequests": "সক্রিয় রিকোয়েস্ট",
+ "runningRequestsDesc": "বর্তমানে চলমান আপস্ট্রিম অনুরোধগুলোর রিয়েল-টাইম দৃশ্য",
"clearAll": "সমস্ত সাফ করুন",
"confirmClearActiveRequests": "সমস্ত সক্রিয় অনুরোধ সাফ করবেন?",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "মডেল",
+ "provider": "প্রোভাইডার",
+ "account": "অ্যাকাউন্ট",
+ "elapsed": "অতিবাহিত সময়",
"activeStage": "পর্যায়",
"activeStageUnknown": "এখনও আপস্ট্রিমে পাঠানো হয়নি",
"activeStageRegistered": "নিবন্ধিত",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "রেট লিমিট স্লট পাওয়া গেছে",
"activeStageSendingToProvider": "আপস্ট্রিমে পাঠানো হচ্ছে",
"activeStageProviderResponseStarted": "আপস্ট্রিম প্রতিক্রিয়া শুরু হয়েছে",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "সংখ্যা",
+ "payloads": "পেলোডসমূহ",
+ "viewPayloads": "দেখুন",
+ "activeCount": "{count}টি সক্রিয়",
+ "clientPayload": "ক্লায়েন্ট অনুরোধের পেলোড",
+ "upstreamPayload": "আপস্ট্রিম প্রোভাইডারের পেলোড",
+ "upstreamNotSentYet": "এখনও আপস্ট্রিমে পাঠানো হয়নি",
+ "runningRequestDetailMeta": "অ্যাকাউন্ট: {account} — অতিবাহিত সময়: {elapsed}",
+ "export": "এক্সপোর্ট করুন",
+ "exporting": "এক্সপোর্ট করা হচ্ছে...",
+ "exportFailed": "এক্সপোর্ট ব্যর্থ হয়েছে",
"cleanHistoryButton": "হিস্ট্রি পরিষ্কার করুন",
"cleanHistoryTitle": "লগ হিস্ট্রি পরিষ্কার করবেন?",
"cleanHistoryMessage": "এটি DATA_DIR/call_logs-এর অধীনে থাকা সমস্ত রিকোয়েস্ট লগ সারি, লেগ্যাসি বিস্তারিত সারি এবং লোকাল আর্টিফ্যাক্ট ফাইল স্থায়ীভাবে মুছে ফেলবে। পরিষ্কার করার পর লাইভ পেজটি রিফ্রেশ হবে।",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "{deleted} টি লগ এন্ট্রি, {deletedArtifacts} টি আর্টিফ্যাক্ট এবং {deletedDetailedLogs} টি লেগ্যাসি বিস্তারিত সারি মুছে ফেলা হয়েছে।",
"cleanHistoryEmpty": "কোনো রিকোয়েস্ট লগ হিস্ট্রি পাওয়া যায়নি।",
"cleanHistoryFailed": "লগ হিস্ট্রি পরিষ্কার করতে ব্যর্থ হয়েছে।",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "সময়সীমা",
+ "lastNHours": "গত {hours}",
+ "defaultRange": "ডিফল্ট",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "লগ আনতে ব্যর্থ হয়েছে",
+ "copyFailed": "লগ এন্ট্রি কপি করতে ব্যর্থ হয়েছে",
+ "copyLogEntry": "লগ এন্ট্রি কপি করুন",
"filterByLevel": "লগ লেভেল অনুযায়ী ফিল্টার করুন",
"searchPlaceholder": "লগ খুঁজুন…",
"searchAria": "লগ এন্ট্রি খুঁজুন",
@@ -4960,49 +4964,49 @@
"tokens": "টোকেন"
},
"onboarding": {
- "welcome": "Welcome",
+ "welcome": "স্বাগতম",
"tiers": "টিয়ার",
- "security": "Security",
+ "security": "নিরাপত্তা",
"test": "Test",
- "ready": "Ready!",
- "setPassword": "Set Password",
- "addProvider": "Add your first provider",
- "getStarted": "Get Started",
- "skip": "Skip",
- "skipWizard": "Skip wizard entirely",
- "skipPassword": "Skip password setup",
- "skipAndContinue": "Skip & Continue",
- "passwordLabel": "Password",
- "confirmPassword": "Confirm Password",
- "enterPassword": "Enter password",
- "confirmPasswordPlaceholder": "Confirm password",
- "passwordsMismatch": "Passwords do not match",
- "setupComplete": "Setup Complete!",
- "goToDashboard": "Go to Dashboard →",
- "welcomeDesc": "OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "multiProvider": "Multi-Provider",
- "usageTracking": "Usage Tracking",
- "securityDesc": "Set a password to protect your dashboard, or skip for now.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
- "providerDesc": "Connect your first AI provider. You can add more later.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
- "apiKeyRequired": "API Key (required)",
- "customUrlOptional": "Custom URL (optional)",
- "testDesc": "Let's verify your provider connection works.",
- "runTest": "Run Connection Test",
- "testingConnection": "Testing connection...",
- "connectionSuccessful": "Connection successful! Your provider is ready.",
- "noProviderFound": "No provider found. You can add one from the dashboard later.",
- "testFailed": "Test failed, but you can configure this later.",
- "couldNotTest": "Could not test right now. You can test from the dashboard.",
- "doneDesc": "You're all set! Your OmniRoute instance is configured and ready to proxy AI requests.",
- "yourEndpoint": "Your endpoint:",
- "continue": "Continue",
- "retry": "Retry",
- "failedSetPassword": "Failed to set password. Try again.",
- "failedAddProvider": "Failed to add provider. Try again.",
- "connectionError": "Connection error. Please try again.",
- "provider": "Provider",
+ "ready": "প্রস্তুত!",
+ "setPassword": "পাসওয়ার্ড সেট করুন",
+ "addProvider": "আপনার প্রথম প্রোভাইডার যোগ করুন",
+ "getStarted": "শুরু করুন",
+ "skip": "এড়িয়ে যান",
+ "skipWizard": "সম্পূর্ণ উইজার্ড এড়িয়ে যান",
+ "skipPassword": "পাসওয়ার্ড সেটআপ এড়িয়ে যান",
+ "skipAndContinue": "এড়িয়ে গিয়ে চালিয়ে যান",
+ "passwordLabel": "পাসওয়ার্ড",
+ "confirmPassword": "পাসওয়ার্ড নিশ্চিত করুন",
+ "enterPassword": "পাসওয়ার্ড লিখুন",
+ "confirmPasswordPlaceholder": "পাসওয়ার্ড নিশ্চিত করুন",
+ "passwordsMismatch": "পাসওয়ার্ড দুটি মেলেনি",
+ "setupComplete": "সেটআপ সম্পূর্ণ হয়েছে!",
+ "goToDashboard": "ড্যাশবোর্ডে যান →",
+ "welcomeDesc": "OmniRoute হলো আপনার স্থানীয় AI API প্রক্সি। এটি লোড ব্যালেন্সিং, ফেইলওভার এবং ব্যবহার ট্র্যাকিংসহ একাধিক AI প্রোভাইডারের কাছে অনুরোধ রাউট করে।",
+ "multiProvider": "মাল্টি-প্রোভাইডার",
+ "usageTracking": "ব্যবহার ট্র্যাকিং",
+ "securityDesc": "আপনার ড্যাশবোর্ড সুরক্ষিত রাখতে একটি পাসওয়ার্ড সেট করুন, অথবা আপাতত এড়িয়ে যান।",
+ "securityDescSkipWarning": "⚠️ পাসওয়ার্ড ছাড়া, সেটআপের সময় আপনি প্রোভাইডার যোগ করতে পারবেন না। পাসওয়ার্ড সেট করার পর ড্যাশবোর্ড থেকে সেগুলো যোগ করতে পারবেন।",
+ "providerDesc": "আপনার প্রথম AI প্রোভাইডার সংযুক্ত করুন। পরে আরও যোগ করতে পারবেন।",
+ "providerRequiresPassword": "প্রোভাইডার যোগ করতে প্রথমে আপনাকে একটি পাসওয়ার্ড সেট করতে হবে। অনুগ্রহ করে নিরাপত্তা ধাপে ফিরে গিয়ে একটি পাসওয়ার্ড সেট করুন, অথবা পরে ড্যাশবোর্ড থেকে প্রোভাইডার যোগ করুন।",
+ "apiKeyRequired": "API কী (আবশ্যক)",
+ "customUrlOptional": "কাস্টম URL (ঐচ্ছিক)",
+ "testDesc": "চলুন যাচাই করি আপনার প্রোভাইডার সংযোগ কাজ করছে কি না।",
+ "runTest": "সংযোগ পরীক্ষা চালান",
+ "testingConnection": "সংযোগ পরীক্ষা করা হচ্ছে...",
+ "connectionSuccessful": "সংযোগ সফল হয়েছে! আপনার প্রোভাইডার প্রস্তুত।",
+ "noProviderFound": "কোনো প্রোভাইডার পাওয়া যায়নি। পরে ড্যাশবোর্ড থেকে একটি যোগ করতে পারবেন।",
+ "testFailed": "পরীক্ষা ব্যর্থ হয়েছে, তবে আপনি পরে এটি কনফিগার করতে পারবেন।",
+ "couldNotTest": "এই মুহূর্তে পরীক্ষা করা যায়নি। আপনি ড্যাশবোর্ড থেকে পরীক্ষা করতে পারবেন।",
+ "doneDesc": "সবকিছু প্রস্তুত! আপনার OmniRoute ইনস্ট্যান্স কনফিগার করা হয়েছে এবং AI অনুরোধ প্রক্সি করার জন্য প্রস্তুত।",
+ "yourEndpoint": "আপনার এন্ডপয়েন্ট:",
+ "continue": "চালিয়ে যান",
+ "retry": "আবার চেষ্টা করুন",
+ "failedSetPassword": "পাসওয়ার্ড সেট করা যায়নি। আবার চেষ্টা করুন।",
+ "failedAddProvider": "প্রোভাইডার যোগ করা যায়নি। আবার চেষ্টা করুন।",
+ "connectionError": "সংযোগে ত্রুটি। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "provider": "প্রোভাইডার",
"apiKeyHelp": "একটি API কী AI পরিষেবাগুলির জন্য একটি পাসওয়ার্ড। আপনার প্রদানকারীর ওয়েবসাইট থেকে একটি পান (যেমন, platform.openai.com, console.anthropic.com)।",
"tier": {
"subtitle": "OmniRoute প্রদানকারীদেরকে তিনটি স্তরে সংগঠিত করে তাই রাউটিং প্রথমে সবচেয়ে নির্ভরযোগ্য, সর্বনিম্ন-খরচের পথ পছন্দ করে।",
@@ -5045,12 +5049,12 @@
}
},
"providers": {
- "title": "Providers",
+ "title": "প্রোভাইডারসমূহ",
"Account Deactivated": "অ্যাকাউন্ট নিষ্ক্রিয় করা হয়েছে",
"allProviders": "সমস্ত প্রদানকারী",
"audioProviders": "অডিও প্রদানকারী",
"showFreeOnly": "শুধুমাত্র বিনামূল্যে",
- "addProvider": "Add Provider",
+ "addProvider": "প্রোভাইডার যোগ করুন",
"addFirstProvider": "আপনার প্রথম প্রদানকারী যোগ করুন",
"addFirstProviderDesc": "OmniRoute এর মাধ্যমে রাউটিং অনুরোধ শুরু করতে একটি AI প্রদানকারীকে সংযুক্ত করুন। আপনি বিনামূল্যে প্রদানকারী, API কী, বা OAuth অ্যাকাউন্ট ব্যবহার করতে পারেন।",
"learnMore": "আরও জানুন",
@@ -5061,7 +5065,7 @@
"importFromFileSelectHint": "{total} টির মধ্যে {count} টি নির্বাচিত",
"importFromFileColProvider": "প্রোভাইডার",
"importFromFileColName": "নাম",
- "importFromFileColBaseUrl": "Base URL",
+ "importFromFileColBaseUrl": "বেস URL",
"importFromFileErrorLine": "সারি {line}: {reason}",
"importErrorMissingProvider": "প্রোভাইডার অনুপস্থিত",
"importErrorMissingName": "নাম অনুপস্থিত",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "ইম্পোর্ট করা হচ্ছে…",
"importFromFileImport": "{count}টি প্রোভাইডার ইম্পোর্ট করুন",
"importFromFileResult": "{success}টি প্রোভাইডার ইম্পোর্ট করা হয়েছে ({failed}টি ব্যর্থ হয়েছে)",
+ "importFromFileDownloadTemplate": "CSV টেমপ্লেট ডাউনলোড করুন",
+ "importFromFileMoreErrors": "+{count}টি আরও",
+ "importFromFileSchemaHint": "CSV কলামগুলো অবস্থানভিত্তিক: provider, name, apiKey, baseUrl (ঐচ্ছিক), priority (ঐচ্ছিক)। provider কলামে অবশ্যই বিদ্যমান কোনো পরিচালিত প্রোভাইডারের id অথবা ইতোমধ্যে নিবন্ধিত OpenAI/Anthropic-সামঞ্জস্যপূর্ণ নোডের id থাকতে হবে—এই ইমপোর্ট নতুন এন্ডপয়েন্ট নোড তৈরি করে না।",
"adaptaTutorial": {
"title": "Adapta Web কীভাবে কানেক্ট করবেন",
"introPrefix": "Adapta Clerk-এর মাধ্যমে প্রমাণীকরণ করে। টোকেনটি",
@@ -5099,31 +5106,31 @@
"tipPrefix": "এই",
"tipSuffix": "কুকিটি দীর্ঘস্থায়ী, সাধারণত কয়েক মাসের জন্য। আপনি সাইন আউট করলে বা Adapta সেশনটি বাতিল করলেই কেবল এটি পুনর্নবীকরণ করতে হবে।"
},
- "editProvider": "Edit Provider",
- "deleteProvider": "Delete Provider",
- "noProviders": "No providers configured",
- "modelAvailability": "Model Availability",
- "accounts": "Accounts",
- "newAccount": "New Account",
- "deleteConfirm": "Are you sure you want to delete this provider?",
- "testing": "Testing...",
- "testConnection": "Test Connection",
- "testSuccess": "Connection successful",
- "testFailed": "Connection failed",
- "available": "Available",
- "cooldown": "Cooldown",
- "unavailable": "Unavailable",
- "unknown": "Unknown",
+ "editProvider": "প্রোভাইডার সম্পাদনা করুন",
+ "deleteProvider": "প্রোভাইডার মুছুন",
+ "noProviders": "কোনো প্রোভাইডার কনফিগার করা নেই",
+ "modelAvailability": "মডেলের প্রাপ্যতা",
+ "accounts": "অ্যাকাউন্টসমূহ",
+ "newAccount": "নতুন অ্যাকাউন্ট",
+ "deleteConfirm": "আপনি কি নিশ্চিত যে এই প্রোভাইডারটি মুছতে চান?",
+ "testing": "পরীক্ষা করা হচ্ছে...",
+ "testConnection": "সংযোগ পরীক্ষা করুন",
+ "testSuccess": "সংযোগ সফল হয়েছে",
+ "testFailed": "সংযোগ ব্যর্থ হয়েছে",
+ "available": "উপলভ্য",
+ "cooldown": "কুলডাউন",
+ "unavailable": "অনুপলভ্য",
+ "unknown": "অজানা",
"oauthLabel": "OAuth",
- "compatibleLabel": "Compatible",
+ "compatibleLabel": "সামঞ্জস্যপূর্ণ",
"chat": "Chat",
"responses": "Responses",
"messages": "Messages",
- "oauthProviders": "OAuth Providers",
- "freeProviders": "Free Providers",
- "apiKeyProviders": "API Key Providers",
- "compatibleProviders": "API Key Compatible Providers",
- "testAll": "Test All",
+ "oauthProviders": "OAuth প্রদানকারী",
+ "freeProviders": "বিনামূল্যের প্রদানকারী",
+ "apiKeyProviders": "API Key প্রদানকারী",
+ "compatibleProviders": "API Key-সামঞ্জস্যপূর্ণ প্রদানকারী",
+ "testAll": "সব পরীক্ষা করুন",
"reorderByAvailability": "পুনর্বিন্যাস",
"reorderByAvailabilityTitle": "প্রাপ্যতা অনুসারে সংযোগ পুনর্বিন্যাস করুন",
"reorderByAvailabilityError": "প্রাপ্যতা অনুসারে সংযোগ পুনর্বিন্যাস করা যায়নি",
@@ -5131,10 +5138,10 @@
"distributing": "বিতরণ করা হচ্ছে...",
"selectedCount": "{count, plural, one {#টি নির্বাচিত} other {#টি নির্বাচিত}}",
"accountsCount": "{count, plural, one {#টি অ্যাকাউন্ট} other {#টি অ্যাকাউন্ট}}",
- "testAllOAuth": "Test all OAuth connections",
- "testAllFree": "Test all Free connections",
- "testAllApiKey": "Test all API Key connections",
- "testAllCompatible": "Test all Compatible connections",
+ "testAllOAuth": "সব OAuth সংযোগ পরীক্ষা করুন",
+ "testAllFree": "সব বিনামূল্যের সংযোগ পরীক্ষা করুন",
+ "testAllApiKey": "সব API Key সংযোগ পরীক্ষা করুন",
+ "testAllCompatible": "সব সামঞ্জস্যপূর্ণ সংযোগ পরীক্ষা করুন",
"testAllModels": "সব মডেল পরীক্ষা করুন",
"testAllModelsConfirm": "সব দৃশ্যমান মডেল পরীক্ষা করবেন? auto-hide সক্রিয় থাকলে ব্যর্থ মডেলগুলো লুকানো হবে।",
"testingAllModels": "{done}/{total} পরীক্ষা করা হচ্ছে...",
@@ -5150,9 +5157,9 @@
"filterByVisibility": "দৃশ্যমানতা দ্বারা ফিল্টার করুন",
"autoHideFailed": "ব্যর্থ মডেলগুলো স্বয়ংক্রিয়ভাবে লুকান",
"autoHideFailedHint": "সক্রিয় থাকলে, Test all পাবলিক ক্যাটালগ (যেমন /v1/models) থেকে স্থায়ী নয় এমন ব্যর্থতাগুলো লুকিয়ে রাখে। একক-মডেল পরীক্ষাগুলো কখনই স্বয়ংক্রিয়ভাবে লুকায় না।",
- "connected": "{count} Connected",
- "errorCount": "{count} Error ({code})",
- "errorCountNoCode": "{count} Error",
+ "connected": "{count}টি সংযুক্ত",
+ "errorCount": "{count}টি ত্রুটি ({code})",
+ "errorCountNoCode": "{count}টি ত্রুটি",
"testAllCompleted": "পরীক্ষা করা হয়েছে {total} টি মডেল: {ok} টি ঠিক আছে, {failed} টি ব্যর্থ হয়েছে",
"modelAutoHidden": "মডেল {model} স্বয়ংক্রিয়ভাবে লুকানো হয়েছে (পরীক্ষা ব্যর্থ হয়েছে)",
"filterAll": "সব",
@@ -5160,9 +5167,9 @@
"filterHidden": "শুধুমাত্র লুকানো",
"modelsHiddenCount": "{count} টি লুকানো",
"warningCount": "{count} সতর্কতা",
- "noConnections": "No connections",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "noConnections": "কোনো সংযোগ নেই",
+ "expiredBadge": "মেয়াদোত্তীর্ণ",
+ "expiringSoonBadge": "শীঘ্রই মেয়াদ শেষ হবে",
"freeTier": "বিনামূল্যের স্তর",
"freeTierAvailable": "বিনামূল্যে স্তর উপলব্ধ",
"hasFreeTooltip": "ফ্রি টিয়ার উপলব্ধ",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "এই প্রদানকারীকে অবমূল্যায়ন করা হয়েছে",
"riskNotice": {
"title": "এগিয়ে যাওয়ার আগে",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "ব্যবহারের সীমাবদ্ধতা",
"tooltip": "ব্যবহারের সতর্কতা সহ প্রদানকারী — বিস্তারিত জানতে ক্লিক করুন",
"oauth": "এই প্রদানকারীটি আপনার অফিসিয়াল প্রোডাক্ট সেশন/OAuth ব্যবহার করে, যা প্রক্সি/রাউটার ব্যবহারের জন্য অনুমোদিত নয়। আমরা নিবিড় স্বায়ত্তশাসিত এজেন্ট ব্যবহার (OpenCloud-স্টাইল, দীর্ঘ বহু-ধাপের ফ্লো, বড় ব্যাচ) সুপারিশ করি না — আপস্ট্রিম অ্যাকাউন্টটি সীমাবদ্ধ বা নিষিদ্ধ করে প্রতিক্রিয়া জানাতে পারে। নিজের ঝুঁকিতে ব্যবহার করুন।",
"webCookie": "এই প্রদানকারীটি আপনার ওয়েব সেশন কুকিজের মাধ্যমে প্রমাণীকরণ করে। আপস্ট্রিম পরিষেবাটি যেকোনো সময় সেশনটি বাতিল করতে পারে, যার ফলে আপনাকে আবার লগ ইন করতে হবে। দীর্ঘ সময় ধরে অযত্নে রেখে কাজ চালানোর জন্য প্রস্তাবিত নয়। নিজের ঝুঁকিতে ব্যবহার করুন।",
@@ -5184,95 +5191,95 @@
"cancel": "বাতিল করুন"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count}টি সংযোগ চিহ্নিত হয়েছে — সাম্প্রতিক সর্বোচ্চ {maxFailures}টি ব্যর্থতা{lastFailureSuffix}। সংযোগের অবস্থা দেখতে ক্লিক করুন।",
+ "lastFailureSuffix": "(সর্বশেষ ব্যর্থতা {time})",
+ "ariaLabel": "সংযোগের অবস্থার বিস্তারিত দেখুন, {count}টি সতর্কতা"
},
- "disabled": "Disabled",
- "enableProvider": "Enable provider",
- "disableProvider": "Disable provider",
- "testResults": "Test Results",
- "noCompatibleYet": "No compatible providers added yet",
- "compatibleHint": "Use the buttons above to add OpenAI or Anthropic compatible endpoints",
- "addOpenAICompatible": "Add OpenAI Compatible",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "addNewProvider": "Add New Provider",
- "backToProviders": "Back to Providers",
- "configureNewProvider": "Configure a new AI provider to use with your applications.",
- "providerLabel": "Provider",
- "selectProvider": "Select a provider",
- "selectedProvider": "Selected provider",
- "authMethod": "Authentication Method",
- "apiKeyLabel": "API Key",
- "apiKeyRequired": "API Key is required",
- "selectProviderRequired": "Please select a provider",
- "enterApiKey": "Enter your API key",
- "apiKeySecure": "Your API key will be encrypted and stored securely.",
- "oauth2Connect": "Connect with OAuth2",
+ "disabled": "নিষ্ক্রিয়",
+ "enableProvider": "প্রদানকারী সক্রিয় করুন",
+ "disableProvider": "প্রদানকারী নিষ্ক্রিয় করুন",
+ "testResults": "পরীক্ষার ফলাফল",
+ "noCompatibleYet": "এখনও কোনো সামঞ্জস্যপূর্ণ প্রদানকারী যোগ করা হয়নি",
+ "compatibleHint": "OpenAI বা Anthropic-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট যোগ করতে উপরের বোতামগুলো ব্যবহার করুন",
+ "addOpenAICompatible": "OpenAI-সামঞ্জস্যপূর্ণ যোগ করুন",
+ "addAnthropicCompatible": "Anthropic-সামঞ্জস্যপূর্ণ যোগ করুন",
+ "addNewProvider": "নতুন প্রদানকারী যোগ করুন",
+ "backToProviders": "প্রদানকারীদের তালিকায় ফিরে যান",
+ "configureNewProvider": "আপনার অ্যাপ্লিকেশনগুলোর সঙ্গে ব্যবহারের জন্য একটি নতুন AI প্রদানকারী কনফিগার করুন।",
+ "providerLabel": "প্রদানকারী",
+ "selectProvider": "একটি প্রদানকারী নির্বাচন করুন",
+ "selectedProvider": "নির্বাচিত প্রদানকারী",
+ "authMethod": "প্রমাণীকরণ পদ্ধতি",
+ "apiKeyLabel": "API কী",
+ "apiKeyRequired": "API কী আবশ্যক",
+ "selectProviderRequired": "অনুগ্রহ করে একটি প্রোভাইডার নির্বাচন করুন",
+ "enterApiKey": "আপনার API কী লিখুন",
+ "apiKeySecure": "আপনার API কী এনক্রিপ্ট করে নিরাপদে সংরক্ষণ করা হবে।",
+ "oauth2Connect": "OAuth2 দিয়ে সংযুক্ত করুন",
"oauth2Label": "OAuth2",
- "oauth2Desc": "Connect your account using OAuth2 authentication.",
- "displayName": "Display Name",
- "displayNamePlaceholder": "e.g., Production API, Dev Environment",
- "displayNameHint": "Optional. A friendly name to identify this configuration.",
- "active": "Active",
- "activeDescription": "Enable this provider for use in your applications",
- "cancel": "Cancel",
- "createProvider": "Create Provider",
- "failedCreate": "Failed to create provider",
- "errorOccurred": "An error occurred. Please try again.",
- "modelStatus": "Model Status",
- "showConfiguredOnly": "Configured only",
- "allModelsOperational": "All models operational",
- "modelsWithIssues": "{count} model(s) with issues",
- "allModelsNormal": "All models are responding normally.",
- "cooldownCleared": "Cooldown cleared for {model}",
- "failedClearCooldown": "Failed to clear cooldown",
- "loadingAvailability": "Loading model availability...",
- "clearCooldown": "Clear",
- "clearing": "Clearing...",
- "until": "Until {time}",
- "providerTestFailed": "Provider test failed",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "oauth2Desc": "OAuth2 প্রমাণীকরণ ব্যবহার করে আপনার অ্যাকাউন্ট সংযুক্ত করুন।",
+ "displayName": "প্রদর্শিত নাম",
+ "displayNamePlaceholder": "যেমন, প্রোডাকশন API, ডেভ পরিবেশ",
+ "displayNameHint": "ঐচ্ছিক। এই কনফিগারেশনটি শনাক্ত করার জন্য একটি সহজ নাম।",
+ "active": "সক্রিয়",
+ "activeDescription": "আপনার অ্যাপ্লিকেশনগুলোতে ব্যবহারের জন্য এই প্রোভাইডারটি সক্রিয় করুন",
+ "cancel": "বাতিল",
+ "createProvider": "প্রোভাইডার তৈরি করুন",
+ "failedCreate": "প্রোভাইডার তৈরি করা যায়নি",
+ "errorOccurred": "একটি ত্রুটি ঘটেছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "modelStatus": "মডেলের স্থিতি",
+ "showConfiguredOnly": "শুধু কনফিগার করা মডেল",
+ "allModelsOperational": "সব মডেল সচল",
+ "modelsWithIssues": "{count}টি মডেলে সমস্যা রয়েছে",
+ "allModelsNormal": "সব মডেল স্বাভাবিকভাবে সাড়া দিচ্ছে।",
+ "cooldownCleared": "{model}-এর কুলডাউন সাফ করা হয়েছে",
+ "failedClearCooldown": "কুলডাউন সাফ করা যায়নি",
+ "loadingAvailability": "মডেলের উপলভ্যতা লোড হচ্ছে...",
+ "clearCooldown": "সাফ করুন",
+ "clearing": "সাফ করা হচ্ছে...",
+ "until": "{time} পর্যন্ত",
+ "providerTestFailed": "প্রোভাইডার পরীক্ষা ব্যর্থ হয়েছে",
+ "providerTestTimeout": "প্রোভাইডার পরীক্ষার সময়সীমা শেষ হয়েছে — একসঙ্গে অনেক বেশি সংযোগ পরীক্ষা করা হচ্ছে",
"modeTest": "{mode} Test",
- "passedCount": "{count} passed",
- "failedCount": "{count} failed",
- "testedCount": "{count} tested",
+ "passedCount": "{count}টি সফল",
+ "failedCount": "{count}টি ব্যর্থ",
+ "testedCount": "{count}টি পরীক্ষিত",
"millisecondsAbbr": "{value}ms",
"okShort": "OK",
- "errorShort": "ERROR",
- "noActiveConnectionsInGroup": "No active connections found for this group.",
- "allTestsPassed": "All {total} tests passed",
- "testSummary": "{passed}/{total} passed, {failed} failed",
- "nameLabel": "Name",
+ "errorShort": "ত্রুটি",
+ "noActiveConnectionsInGroup": "এই গ্রুপের জন্য কোনো সক্রিয় সংযোগ পাওয়া যায়নি।",
+ "allTestsPassed": "মোট {total}টি পরীক্ষাই সফল হয়েছে",
+ "testSummary": "{passed}/{total}টি সফল, {failed}টি ব্যর্থ",
+ "nameLabel": "নাম",
"prefixLabel": "Prefix",
- "baseUrlLabel": "Base URL",
- "apiTypeLabel": "API Type",
- "prefixHint": "Required. Unique prefix for model names.",
- "nameHint": "Required. A friendly label for this node.",
- "baseUrlHint": "Required. Provider API base URL.",
+ "baseUrlLabel": "বেস URL",
+ "apiTypeLabel": "API-এর ধরন",
+ "prefixHint": "আবশ্যক। মডেলের নামগুলোর জন্য একটি অনন্য উপসর্গ।",
+ "nameHint": "আবশ্যক। এই নোডের জন্য একটি সহজবোধ্য লেবেল।",
+ "baseUrlHint": "আবশ্যক। Provider API-এর বেস URL।",
"iconUrlLabel": "আইকন URL",
"iconUrlHint": "ঐচ্ছিক। এই প্রদানকারীর আইকন হিসেবে দেখানোর জন্য ছবির URL।",
"iconUrlInvalid": "অবৈধ আইকন URL। একটি http(s):// অথবা data:image/*;base64 URL ব্যবহার করুন।",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "দৈনিক কোটা রিসেটের টাইমজোন",
+ "dailyQuotaResetTimezoneHint": "ঐচ্ছিক IANA টাইমজোন, যা upstream থেকে X-RateLimit-Reset না এলে ব্যবহার করা হবে। সংক্ষিপ্ত cooldown বজায় রাখতে খালি রাখুন।",
+ "dailyQuotaResetHourLabel": "দৈনিক কোটা রিসেটের ঘণ্টা",
+ "dailyQuotaResetHourHint": "উপরের টাইমজোন অনুযায়ী স্থানীয় ঘণ্টা 0-23। খালি রাখলে node-স্তরের কোনো ঘড়ি থাকবে না।",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
- "validateConnection": "Validate Connection",
- "validating": "Validating...",
- "connectionValid": "Connection is valid!",
- "connectionFailed": "Connection failed. Check URL and key.",
- "testKeyLabel": "Test API Key",
- "testKeyPlaceholder": "sk-... (for validation only)",
- "providerNotFound": "Provider not found",
- "deleteConnectionConfirm": "Delete this connection?",
+ "validateConnection": "সংযোগ যাচাই করুন",
+ "validating": "যাচাই করা হচ্ছে...",
+ "connectionValid": "সংযোগটি বৈধ!",
+ "connectionFailed": "সংযোগ ব্যর্থ হয়েছে। URL এবং key পরীক্ষা করুন।",
+ "testKeyLabel": "API Key পরীক্ষা করুন",
+ "testKeyPlaceholder": "sk-... (শুধু যাচাইয়ের জন্য)",
+ "providerNotFound": "Provider পাওয়া যায়নি",
+ "deleteConnectionConfirm": "এই সংযোগটি মুছবেন?",
"deleteConnectionConfirmNamed": "আপনি কি নিশ্চিত যে আপনি {name} মুছতে চান? এই কাজটি বাতিল করা যাবে না।",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "নির্বাচিতগুলো মুছুন ({count})",
+ "batchDeleteConfirm": "{count}টি সংযোগ মুছবেন? এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।",
+ "batchDeleteSuccess": "{count}টি সংযোগ মুছে ফেলা হয়েছে",
"batchActivateSelected": "সক্রিয় করুন",
"batchDeactivateSelected": "নিষ্ক্রিয় করুন",
"batchRetestSelected": "পুনরায় পরীক্ষা করুন",
@@ -5288,32 +5295,32 @@
"filterError": "ত্রুটি",
"filterBanned": "নিষিদ্ধ",
"filterCreditsExhausted": "ক্রেডিট শেষ",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "অ্যাকাউন্ট খুঁজুন…",
"noFilteredConnections": "বর্তমান ফিল্টারের সাথে কোনো সংযোগ মিলছে না।",
- "failedSetAlias": "Failed to set alias",
+ "failedSetAlias": "alias সেট করা যায়নি",
"setAliasSuccess": "অ্যালিয়াস {alias} সেট করা হয়েছে",
"deleteAliasSuccess": "অ্যালিয়াস {alias} মুছে ফেলা হয়েছে",
- "failedSaveConnection": "Failed to save connection",
- "failedSaveConnectionRetry": "Failed to save connection. Please try again.",
- "failedRetestConnection": "Failed to retest connection",
- "deleteCompatibleNodeConfirm": "Delete this {type} Compatible node?",
- "anthropicCompatibleDetails": "Anthropic Compatible Details",
- "openaiCompatibleDetails": "OpenAI Compatible Details",
+ "failedSaveConnection": "সংযোগ সংরক্ষণ করা যায়নি",
+ "failedSaveConnectionRetry": "সংযোগ সংরক্ষণ করা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "failedRetestConnection": "সংযোগ পুনরায় পরীক্ষা করা যায়নি",
+ "deleteCompatibleNodeConfirm": "এই {type} Compatible nodeটি মুছবেন?",
+ "anthropicCompatibleDetails": "Anthropic Compatible-এর বিস্তারিত",
+ "openaiCompatibleDetails": "OpenAI Compatible-এর বিস্তারিত",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "এম্বেডিংস",
+ "audioTranscriptions": "অডিও ট্রান্সক্রিপশন",
+ "audioSpeech": "অডিও স্পিচ",
+ "imagesGenerations": "ছবি তৈরি",
"chatCompletions": "Chat Completions",
- "importingModels": "Importing...",
- "importFromModels": "Import from /models",
- "modelsImported": "{count} models imported",
- "allModelsAlreadyImported": "All models already imported",
- "noNewModelsToImport": "No new models to import — all models are already in the registry or custom models list",
- "skippingExistingModels": "Skipping {count} existing models",
- "autoSync": "Auto-Sync",
- "autoSyncShort": "Sync",
+ "importingModels": "ইম্পোর্ট করা হচ্ছে...",
+ "importFromModels": "/models থেকে ইম্পোর্ট করুন",
+ "modelsImported": "{count}টি মডেল ইম্পোর্ট করা হয়েছে",
+ "allModelsAlreadyImported": "সব মডেল ইতিমধ্যেই ইম্পোর্ট করা হয়েছে",
+ "noNewModelsToImport": "ইম্পোর্ট করার মতো কোনো নতুন মডেল নেই — সব মডেল ইতিমধ্যেই registry বা custom models তালিকায় রয়েছে",
+ "skippingExistingModels": "বিদ্যমান {count}টি মডেল এড়িয়ে যাওয়া হচ্ছে",
+ "autoSync": "স্বয়ংক্রিয় সিঙ্ক",
+ "autoSyncShort": "সিঙ্ক",
"autoFetchModels": "আপস্ট্রিম মডেলগুলি স্বয়ংক্রিয়ভাবে আনুন",
"autoFetchModelsTooltip": "প্রয়োজন হলে আপস্ট্রিম মডেলগুলি ফেচ এবং ক্যাশ করুন",
"autoFetchModelsEnabled": "আপস্ট্রিম মডেল স্বয়ংক্রিয়-ফেচ সক্ষম করা হয়েছে",
@@ -5325,52 +5332,52 @@
"resetToUpstreamDefaults": "আপস্ট্রিম ডিফল্টগুলি পুনরুদ্ধার করুন",
"resetToUpstreamDefaultsSuccess": "আপস্ট্রিম মডেল ডিফল্টগুলি পুনরুদ্ধার করা হয়েছে",
"resetToUpstreamDefaultsFailed": "আপস্ট্রিম মডেল ডিফল্টগুলি পুনরুদ্ধার করতে ব্যর্থ হয়েছে",
- "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)",
- "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically",
- "autoSyncDisabled": "Auto-sync disabled",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
- "autoSyncPartialFailure": "Auto-sync updated for some connections, but not all",
- "clearAllModels": "Clear All Models",
- "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.",
- "clearAllModelsSuccess": "All models cleared",
- "clearAllModelsFailed": "Failed to clear models",
- "addConnectionToImport": "Add a connection to enable importing.",
- "noModelsConfigured": "No models configured",
- "connectionCount": "{count} connection(s)",
- "fetchingModels": "Fetching available models...",
- "failedFetchModels": "Failed to fetch models",
+ "autoSyncTooltip": "প্রতি 24 ঘণ্টায় স্বয়ংক্রিয়ভাবে মডেলের তালিকা রিফ্রেশ করুন (MODEL_SYNC_INTERVAL_HOURS-এর মাধ্যমে কনফিগারযোগ্য)",
+ "autoSyncEnabled": "স্বয়ংক্রিয় সিঙ্ক চালু আছে — মডেলগুলো নির্দিষ্ট সময় পরপর রিফ্রেশ হবে",
+ "autoSyncDisabled": "স্বয়ংক্রিয় সিঙ্ক বন্ধ আছে",
+ "autoSyncToggleFailed": "স্বয়ংক্রিয় সিঙ্কের অবস্থা পরিবর্তন করা যায়নি",
+ "autoSyncPartialFailure": "কিছু সংযোগের জন্য স্বয়ংক্রিয় সিঙ্ক আপডেট হয়েছে, তবে সবগুলোর জন্য নয়",
+ "clearAllModels": "সব মডেল মুছুন",
+ "clearAllModelsConfirm": "আপনি কি নিশ্চিত যে এই প্রোভাইডারের সব মডেল সরাতে চান? এটি পূর্বাবস্থায় ফেরানো যাবে না।",
+ "clearAllModelsSuccess": "সব মডেল মুছে ফেলা হয়েছে",
+ "clearAllModelsFailed": "মডেলগুলো মুছতে ব্যর্থ হয়েছে",
+ "addConnectionToImport": "ইমপোর্ট সক্রিয় করতে একটি সংযোগ যোগ করুন।",
+ "noModelsConfigured": "কোনো মডেল কনফিগার করা নেই",
+ "connectionCount": "{count}টি সংযোগ",
+ "fetchingModels": "উপলভ্য মডেলগুলো আনা হচ্ছে...",
+ "failedFetchModels": "মডেলগুলো আনতে ব্যর্থ হয়েছে",
"noFreeModelsFound": "এই প্রদানকারীর জন্য কোনো ফ্রি মডেল পাওয়া যায়নি — কিছুই ইম্পোর্ট করা হয়নি।",
"fetchModelsSuccess": "{count} টি নতুন মডেল পাওয়া গেছে",
"fetchModelsFailed": "মডেলগুলি স্বয়ংক্রিয়ভাবে আনা যায়নি (আপনি সেটিংস থেকে আবার চেষ্টা করতে পারেন)",
- "noModelsFound": "No models found",
- "importFailed": "Import failed",
- "noNewModelsAdded": "No new models were added.",
+ "noModelsFound": "কোনো মডেল পাওয়া যায়নি",
+ "importFailed": "ইমপোর্ট ব্যর্থ হয়েছে",
+ "noNewModelsAdded": "কোনো নতুন মডেল যোগ করা হয়নি।",
"adding": "Adding...",
- "close": "Close",
- "importingModelsTitle": "Importing Models",
- "copyModel": "Copy model",
- "filterModels": "Filter models...",
+ "close": "বন্ধ করুন",
+ "importingModelsTitle": "মডেল ইমপোর্ট করা হচ্ছে",
+ "copyModel": "মডেল কপি করুন",
+ "filterModels": "মডেল ফিল্টার করুন...",
"testAllRateLimited": "রেট লিমিট শেষ হয়েছে, আগেই বন্ধ করা হয়েছে",
"hideFailedAuto": "ব্যর্থ মডেলগুলি স্বয়ংক্রিয়ভাবে লুকান",
- "selectAllModels": "Select all",
+ "selectAllModels": "সব নির্বাচন করুন",
"hideAllModels": "সব লুকান",
- "modelsActive": "Active",
- "showModel": "Show model",
- "hideModel": "Hide model",
- "removeModel": "Remove model",
- "rateLimitProtected": "Protected",
- "rateLimitUnprotected": "Unprotected",
+ "modelsActive": "সক্রিয়",
+ "showModel": "মডেল দেখান",
+ "hideModel": "মডেল লুকান",
+ "removeModel": "মডেল সরান",
+ "rateLimitProtected": "সুরক্ষিত",
+ "rateLimitUnprotected": "অসুরক্ষিত",
"providerQuotaShort": "কোটা",
"hideConnectionFromProviderQuota": "প্রোভাইডার কোটা থেকে এই অ্যাকাউন্টটি লুকান",
"showConnectionInProviderQuota": "প্রোভাইডার কোটাতে এই অ্যাকাউন্টটি দেখান",
"quotaVisibilityUpdateFailed": "প্রোভাইডার কোটার দৃশ্যমানতা আপডেট করতে ব্যর্থ হয়েছে",
- "enableRateLimitProtection": "Click to enable rate limit protection",
- "disableRateLimitProtection": "Click to disable rate limit protection",
+ "enableRateLimitProtection": "রেট লিমিট সুরক্ষা সক্রিয় করতে ক্লিক করুন",
+ "disableRateLimitProtection": "রেট লিমিট সুরক্ষা নিষ্ক্রিয় করতে ক্লিক করুন",
"testAllProgress": "পরীক্ষিত {done}/{total}",
"testAllFailedHidden": "{count}টি ব্যর্থ মডেল লুকানো হয়েছে",
"testAllDone": "সমস্ত মডেল পরীক্ষা করা হয়েছে",
- "productionKey": "Production Key",
- "enterNewApiKey": "Enter new API key",
+ "productionKey": "প্রোডাকশন কী",
+ "enterNewApiKey": "নতুন API কী লিখুন",
"codexApplyModalTitle": "স্থানীয় কোডেক্সে আবেদন করুন",
"codexApplyTargetLabel": "লক্ষ্য পথ",
"codexApplyBackupLabel": "ব্যাকআপ",
@@ -5382,77 +5389,77 @@
"bulkAddFormatHint": "প্রতি লাইনে একটি কী। বিন্যাস: নাম|apiKey বা শুধু apiKey (সূচী দ্বারা স্বয়ংক্রিয় নামকরণ)।",
"bulkValidateKeys": "সংরক্ষণ করার আগে প্রতিটি কী যাচাই করুন (ধীরে)",
"bulkAddAllKeys": "সমস্ত কী যোগ করুন",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
- "optional": "Optional",
+ "bulkAddedCount": "{count, plural, one {#টি কী যোগ করা হয়েছে} other {#টি কী যোগ করা হয়েছে}}",
+ "bulkFailedCount": "{count, plural, one {#টি ব্যর্থ হয়েছে} other {#টি ব্যর্থ হয়েছে}}",
+ "optional": "ঐচ্ছিক",
"anthropicCompatibleName": "Anthropic Compatible",
"openaiCompatibleName": "OpenAI Compatible",
"compatibleDefaultModelLabel": "ডিফল্ট মডেল",
"compatibleDefaultModelHint": "মডেল আইডিটি ঠিক সেভাবেই লিখুন যেভাবে আপনার সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট এটি আশা করে। এই মডেলটি সংযোগের ডিফল্ট হিসেবে সংরক্ষিত হবে।",
- "failedImportModels": "Failed to import models",
- "noModelsReturnedFromEndpoint": "No models returned from /models endpoint.",
- "importingModelsProgress": "Importing {current} of {total} models...",
- "foundModelsStartingImport": "Found {count} models. Starting import...",
- "importingModelById": "Importing {modelId}...",
- "importSuccessCount": "Successfully imported {count, plural, one {# model} other {# models}}!",
- "noNewModelsAddedExisting": "No new models were added (all already exist).",
- "importDoneCount": "✓ Done! {count, plural, one {# model imported.} other {# models imported.}}",
- "unexpectedErrorOccurred": "An unexpected error occurred",
+ "failedImportModels": "মডেল ইমপোর্ট করতে ব্যর্থ হয়েছে",
+ "noModelsReturnedFromEndpoint": "/models endpoint থেকে কোনো মডেল ফেরত আসেনি।",
+ "importingModelsProgress": "{total}টি মডেলের মধ্যে {current}টি ইমপোর্ট করা হচ্ছে...",
+ "foundModelsStartingImport": "{count}টি মডেল পাওয়া গেছে। ইমপোর্ট শুরু হচ্ছে...",
+ "importingModelById": "{modelId} ইমপোর্ট করা হচ্ছে...",
+ "importSuccessCount": "সফলভাবে {count, plural, one {#টি মডেল} other {#টি মডেল}} ইমপোর্ট করা হয়েছে!",
+ "noNewModelsAddedExisting": "কোনো নতুন মডেল যোগ করা হয়নি (সবগুলো ইতিমধ্যেই বিদ্যমান)।",
+ "importDoneCount": "✓ সম্পন্ন! {count, plural, one {#টি মডেল ইমপোর্ট করা হয়েছে।} other {#টি মডেল ইমপোর্ট করা হয়েছে।}}",
+ "unexpectedErrorOccurred": "একটি অপ্রত্যাশিত ত্রুটি ঘটেছে",
"getApiKey": "এপিআই কী পান",
"getApiKeyDescription": "একটি API কী-এর জন্য নিবন্ধন করুন বা সাইন আপ করুন",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {#টি সংযোগ} other {#টি সংযোগ}}",
"messagesPath": "messages",
"responsesPath": "responses",
"chatCompletionsPath": "chat/completions",
- "add": "Add",
- "edit": "Edit",
- "delete": "Delete",
+ "add": "যোগ করুন",
+ "edit": "সম্পাদনা করুন",
+ "delete": "মুছুন",
"anthropic": "Anthropic",
"openai": "OpenAI",
- "singleConnectionPerCompatible": "Only one connection is allowed per compatible node. Add another node if you need more connections.",
- "connections": "Connections",
- "providerProxyTitleConfigured": "Provider proxy: {host}",
- "configured": "configured",
- "providerProxyConfigureHint": "Configure proxy for all connections of this provider",
- "providerProxy": "Provider Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
- "noConnectionsYet": "No connections yet",
- "addFirstConnectionHint": "Add your first connection to get started",
- "addConnection": "Add Connection",
- "availableModels": "Available Models",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
- "pageAutoRefresh": "Page will refresh automatically...",
- "statusDisabled": "disabled",
- "statusConnected": "connected",
- "statusRuntimeIssue": "runtime issue",
- "statusAuthFailed": "auth failed",
- "statusRateLimited": "rate limited",
- "statusNetworkIssue": "network issue",
- "statusTestUnsupported": "test unsupported",
- "statusUnavailable": "unavailable",
- "statusFailed": "failed",
- "statusError": "error",
- "oauthAccount": "OAuth Account",
- "errorTypeRuntime": "Local runtime",
- "errorTypeUpstreamAuth": "Upstream auth",
- "errorTypeMissingCredential": "Missing credential",
- "errorTypeRefreshFailed": "Refresh failed",
- "errorTypeTokenExpired": "Token expired",
- "errorTypeRateLimited": "Rate limited",
- "errorTypeUpstreamUnavailable": "Upstream unavailable",
- "errorTypeNetworkError": "Network error",
- "errorTypeTestUnsupported": "Test unsupported",
- "errorTypeUpstreamError": "Upstream error",
+ "singleConnectionPerCompatible": "প্রতিটি সামঞ্জস্যপূর্ণ নোডে শুধুমাত্র একটি সংযোগ অনুমোদিত। আরও সংযোগের প্রয়োজন হলে আরেকটি নোড যোগ করুন।",
+ "connections": "সংযোগসমূহ",
+ "providerProxyTitleConfigured": "প্রোভাইডার প্রক্সি: {host}",
+ "configured": "কনফিগার করা হয়েছে",
+ "providerProxyConfigureHint": "এই প্রোভাইডারের সব সংযোগের জন্য প্রক্সি কনফিগার করুন",
+ "providerProxy": "প্রোভাইডার প্রক্সি",
+ "repairEnv": ".env মেরামত করুন",
+ "repairEnvWorking": "মেরামত করা হচ্ছে...",
+ "repairEnvHint": "বিদ্যমান মান ওভাররাইট না করে অনুপস্থিত OAuth ডিফল্টগুলো .env-এ পুনরুদ্ধার করুন।",
+ "repairEnvSuccess": "OAuth ডিফল্টগুলো পুনরুদ্ধার করা হয়েছে",
+ "repairEnvFailed": ".env মেরামত করা যায়নি",
+ "noConnectionsYet": "এখনও কোনো সংযোগ নেই",
+ "addFirstConnectionHint": "শুরু করতে আপনার প্রথম সংযোগটি যোগ করুন",
+ "addConnection": "সংযোগ যোগ করুন",
+ "availableModels": "উপলভ্য মডেলসমূহ",
+ "builtInModels": "বিল্ট-ইন মডেলসমূহ",
+ "builtInModelsHint": "এই প্রোভাইডারের জন্য রেজিস্ট্রি মডেলসমূহ। সামঞ্জস্যতার বিকল্প নির্ধারণ করতে পেন্সিল আইকনটি ব্যবহার করুন।",
+ "pageAutoRefresh": "পৃষ্ঠা স্বয়ংক্রিয়ভাবে রিফ্রেশ হবে...",
+ "statusDisabled": "নিষ্ক্রিয়",
+ "statusConnected": "সংযুক্ত",
+ "statusRuntimeIssue": "রানটাইম সমস্যা",
+ "statusAuthFailed": "প্রমাণীকরণ ব্যর্থ হয়েছে",
+ "statusRateLimited": "রেট সীমিত",
+ "statusNetworkIssue": "নেটওয়ার্ক সমস্যা",
+ "statusTestUnsupported": "পরীক্ষা সমর্থিত নয়",
+ "statusUnavailable": "অনুপলভ্য",
+ "statusFailed": "ব্যর্থ",
+ "statusError": "ত্রুটি",
+ "oauthAccount": "OAuth অ্যাকাউন্ট",
+ "errorTypeRuntime": "লোকাল রানটাইম",
+ "errorTypeUpstreamAuth": "আপস্ট্রিম প্রমাণীকরণ",
+ "errorTypeMissingCredential": "ক্রেডেনশিয়াল অনুপস্থিত",
+ "errorTypeRefreshFailed": "রিফ্রেশ ব্যর্থ হয়েছে",
+ "errorTypeTokenExpired": "টোকেনের মেয়াদ শেষ হয়েছে",
+ "errorTypeRateLimited": "রেট সীমিত",
+ "errorTypeUpstreamUnavailable": "আপস্ট্রিম অনুপলভ্য",
+ "errorTypeNetworkError": "নেটওয়ার্ক ত্রুটি",
+ "errorTypeTestUnsupported": "পরীক্ষা সমর্থিত নয়",
+ "errorTypeUpstreamError": "আপস্ট্রিম ত্রুটি",
"errorTypeCreditsExhausted": "কোনো ক্রেডিট নেই",
"errorTypeBanned": "403 নিষিদ্ধ",
- "proxySourceGlobal": "Global",
- "proxySourceProvider": "Provider",
- "proxySourceKey": "Key",
+ "proxySourceGlobal": "গ্লোবাল",
+ "proxySourceProvider": "প্রোভাইডার",
+ "proxySourceKey": "কী",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"proxyOn": "প্রক্সি চালু",
"proxyOff": "সরাসরি (প্রক্সি বাইপাস)",
@@ -5464,31 +5471,31 @@
"perKeyProxyDisabledTitle": "এই প্রোভাইডারের জন্য প্রতি-কী প্রক্সি অ্যাসাইনমেন্ট নিষ্ক্রিয় করা হয়েছে",
"autoPriority": "Auto: {priority}",
"proxy": "Proxy",
- "retestAuthentication": "Retest authentication",
- "retest": "Retest",
- "disableConnection": "Disable connection",
- "enableConnection": "Enable connection",
- "reauthenticateConnection": "Re-authenticate this connection",
- "proxyConfig": "Proxy config",
- "aliasExistsAlert": "Alias \"{alias}\" already exists. Please use a different model or edit existing alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
- "openRouterAnyModelHint": "OpenRouter supports any model. Add models and create aliases for quick access.",
- "modelIdFromOpenRouter": "Model ID (from OpenRouter)",
+ "retestAuthentication": "প্রমাণীকরণ পুনরায় পরীক্ষা করুন",
+ "retest": "পুনরায় পরীক্ষা করুন",
+ "disableConnection": "সংযোগ নিষ্ক্রিয় করুন",
+ "enableConnection": "সংযোগ সক্রিয় করুন",
+ "reauthenticateConnection": "এই সংযোগটি পুনরায় প্রমাণীকরণ করুন",
+ "proxyConfig": "প্রক্সি কনফিগারেশন",
+ "aliasExistsAlert": "\"{alias}\" উপনামটি ইতিমধ্যে বিদ্যমান। অনুগ্রহ করে অন্য একটি মডেল ব্যবহার করুন অথবা বিদ্যমান উপনামটি সম্পাদনা করুন।",
+ "aliasInputPlaceholder": "উপনামের নাম",
+ "clickToSetAlias": "উপনাম সেট করতে ক্লিক করুন",
+ "clickToEditAlias": "উপনাম: {alias} (সম্পাদনা করতে ক্লিক করুন)",
+ "openRouterAnyModelHint": "OpenRouter যেকোনো মডেল সমর্থন করে। দ্রুত অ্যাক্সেসের জন্য মডেল যোগ করুন এবং উপনাম তৈরি করুন।",
+ "modelIdFromOpenRouter": "মডেল আইডি (OpenRouter থেকে)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
- "customModels": "Custom Models",
- "customModelsHint": "Add model IDs not in the default list. These will be available for routing.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "customModels": "কাস্টম মডেল",
+ "customModelsHint": "ডিফল্ট তালিকায় নেই এমন মডেল আইডি যোগ করুন। এগুলো রাউটিংয়ের জন্য উপলভ্য হবে।",
+ "normalizeToolCallIdLabel": "টুল কল আইডিগুলোকে ৯ অক্ষরে স্বাভাবিক করুন (যেমন Mistral)",
+ "preserveDeveloperRoleLabel": "OpenAI Responses-এর developer ভূমিকা বজায় রাখুন (system-এ ম্যাপ করবেন না)",
+ "compatAdjustmentsTitle": "সামঞ্জস্যতা",
+ "compatButtonLabel": "সামঞ্জস্যতা",
+ "compatToolIdShort": "টুল আইডি ৯",
+ "compatDeveloperShort": "Developer ভূমিকা",
+ "compatDoNotPreserveDeveloper": "Developer ভূমিকা সংরক্ষণ করবেন না",
+ "compatBadgeNoPreserve": "সংরক্ষণ নয়",
+ "compatProtocolLabel": "ক্লায়েন্ট অনুরোধ প্রোটোকল",
+ "compatProtocolHint": "OmniRoute যখন এই অনুরোধের ধরন শনাক্ত করে (OpenAI Chat, Responses API অথবা Anthropic Messages), তখন এই বিকল্পগুলো প্রযোজ্য হয়।",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,84 +5537,84 @@
"interceptFetchHint": "নেটিভ web_fetch টুল কলগুলিকে OmniRoute-এর /v1/web/fetch-এ রিরাইট করুন।",
"interceptionLoadError": "ইন্টারসেপশন সেটিংস লোড করতে ব্যর্থ হয়েছে: {error}",
"interceptionSaveError": "ইন্টারসেপশন সেটিংস সংরক্ষণ করতে ব্যর্থ হয়েছে: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
- "perModelQuotaLabel": "Per-Model Quota",
- "perModelQuotaDescription": "When enabled, 429/404 errors only lock the specific model, not the entire connection. Use for providers with per-model rate limits (e.g., ModelScope).",
+ "ccAliasSectionTitle": "Claude Code-এ প্রকাশ করুন (claude/…)",
+ "ccAliasSectionHint": "এই প্রোভাইডারের মডেলগুলোকে claude/<provider>/<model> মিরর আইডির অধীনে প্রচার করুন, যাতে Claude Code-এর গেটওয়ে মডেল অনুসন্ধান সেগুলো তালিকাভুক্ত করতে পারে। ডিফল্টভাবে বন্ধ — এটি সক্রিয় করলে সব ক্লায়েন্টের জন্য ক্যাটালগ এন্ট্রির সংখ্যা দ্বিগুণ হয়।",
+ "ccAliasProviderLevelLabel": "প্রোভাইডারের ডিফল্ট",
+ "ccAliasModelOverridesLabel": "প্রতি-মডেল ওভাররাইড",
+ "ccAliasModelOverrideAriaLabel": "{modelId}-এর জন্য ওভাররাইড",
+ "ccAliasStateInherit": "উত্তরাধিকারসূত্রে নিন",
+ "ccAliasStateOn": "চালু",
+ "ccAliasStateOff": "বন্ধ",
+ "ccAliasAddModelPlaceholder": "মডেল আইডি (যেমন gpt-4o)",
+ "ccAliasAddModelButton": "ওভাররাইড যোগ করুন",
+ "ccAliasLoadError": "ডিসকভারি-অ্যালিয়াস সেটিংস লোড করতে ব্যর্থ হয়েছে: {error}",
+ "ccAliasSaveError": "ডিসকভারি-অ্যালিয়াস সেটিং সংরক্ষণ করতে ব্যর্থ হয়েছে: {error}",
+ "compatUpstreamHeadersLabel": "অতিরিক্ত আপস্ট্রিম হেডার",
+ "compatUpstreamHeadersHint": "উচ্চ-অধিকারসম্পন্ন সেটিং — প্রোভাইডারের API ক্রেডেনশিয়াল সম্পাদনার সমান আস্থার স্তর; কেবল বিশ্বস্ত অ্যাডমিনদের এটি ব্যবহার করা উচিত। প্রোভাইডারের API কী থেকে OmniRoute প্রমাণীকরণ যোগ করার পর এটি মার্জ করা হয়। কোনো কাস্টম হেডারের নাম বিদ্যমান কোনো হেডারের নামের সঙ্গে একই হলে (যেমন Authorization), আপনার মানটি স্বয়ংক্রিয়ভাবে তৈরি হেডারকে সম্পূর্ণরূপে প্রতিস্থাপন করে (Bearer টোকেনসহ) — আপস্ট্রিম কেবল আপনার টাইপ করা মানটিই দেখে, সেটিংসের কীটি নয়। ভুল কনফিগারেশনের কারণে 401 বা আপস্ট্রিম প্রমাণীকরণে সমস্যা হতে পারে। প্রতি হেডারে একটি সারি (যেমন কিছু গেটওয়ের জন্য অতিরিক্ত Authentication)। প্রিভিউ দেখতে মানটির ওপর হোভার বা ফোকাস করুন। ফোকাস সরে গেলে, বাইরে ক্লিক করলে বা এই প্যানেল বন্ধ করলে সংরক্ষিত হয়।",
+ "compatUpstreamHeaderName": "হেডারের নাম",
+ "compatUpstreamHeaderValue": "মান",
+ "compatUpstreamAddRow": "হেডার যোগ করুন",
+ "compatUpstreamRemoveRow": "সারি সরান",
+ "compatBadgeUpstreamHeaders": "হেডারসমূহ",
+ "perModelQuotaLabel": "প্রতি-মডেল কোটা",
+ "perModelQuotaDescription": "সক্রিয় থাকলে, 429/404 ত্রুটি কেবল নির্দিষ্ট মডেলটিকে লক করে, পুরো সংযোগটিকে নয়। প্রতি-মডেল রেট লিমিট থাকা প্রোভাইডারদের জন্য ব্যবহার করুন (যেমন ModelScope)।",
"importFreeModelsOnlyLabel": "শুধুমাত্র ফ্রি মডেলগুলি ইম্পোর্ট করুন",
"importFreeModelsOnlyHint": "এটি সক্রিয় থাকলে, শুধুমাত্র এই প্রোভাইডারের ফ্রি মডেলগুলি ইম্পোর্ট করা হয়। পেইড মডেলগুলি এড়িয়ে যাওয়া হয়।",
- "perModelQuotaToggle": "Per-Model Quota Toggle",
- "modelId": "Model ID",
- "customModelPlaceholder": "e.g. gpt-4.5-turbo",
- "loading": "Loading...",
- "removeCustomModel": "Remove custom model",
- "noCustomModels": "No custom models added yet.",
- "allSuggestedAliasesExist": "All suggested aliases already exist. Please choose a different model or remove conflicting aliases.",
- "failedSaveCustomModel": "Failed to save custom model",
- "modelAddedSuccess": "Model {modelId} added successfully",
- "failedAddModelTryAgain": "Failed to add model. Please try again.",
- "failedSaveImportedModel": "Failed to save imported model to custom database",
- "failedImportModelsTryAgain": "Failed to import models. Please try again.",
- "failedRemoveModelFromDatabase": "Failed to remove model from database",
- "modelRemovedSuccess": "Model removed successfully",
- "failedDeleteModelTryAgain": "Failed to delete model. Please try again.",
- "compatibleModelsDescription": "Add {type}-compatible models manually or import them from the /models endpoint.",
+ "perModelQuotaToggle": "প্রতি-মডেল কোটা টগল",
+ "modelId": "মডেল আইডি",
+ "customModelPlaceholder": "যেমন gpt-4.5-turbo",
+ "loading": "লোড হচ্ছে...",
+ "removeCustomModel": "কাস্টম মডেল সরান",
+ "noCustomModels": "এখনও কোনো কাস্টম মডেল যোগ করা হয়নি।",
+ "allSuggestedAliasesExist": "প্রস্তাবিত সব অ্যালিয়াস ইতিমধ্যেই বিদ্যমান। অনুগ্রহ করে অন্য একটি মডেল বেছে নিন অথবা পরস্পরবিরোধী অ্যালিয়াসগুলো সরান।",
+ "failedSaveCustomModel": "কাস্টম মডেল সংরক্ষণ করতে ব্যর্থ হয়েছে",
+ "modelAddedSuccess": "মডেল {modelId} সফলভাবে যোগ করা হয়েছে",
+ "failedAddModelTryAgain": "মডেল যোগ করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "failedSaveImportedModel": "ইমপোর্ট করা মডেলটি কাস্টম ডেটাবেসে সংরক্ষণ করতে ব্যর্থ হয়েছে",
+ "failedImportModelsTryAgain": "মডেল ইমপোর্ট করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "failedRemoveModelFromDatabase": "ডেটাবেস থেকে মডেল সরাতে ব্যর্থ হয়েছে",
+ "modelRemovedSuccess": "মডেল সফলভাবে সরানো হয়েছে",
+ "failedDeleteModelTryAgain": "মডেল মুছতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "compatibleModelsDescription": "{type}-সামঞ্জস্যপূর্ণ মডেল ম্যানুয়ালি যোগ করুন অথবা /models এন্ডপয়েন্ট থেকে ইমপোর্ট করুন।",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
- "apiKeyValidationFailed": "API key validation failed. Please check your key and try again.",
- "addProviderApiKeyTitle": "Add {provider} API Key",
- "checking": "Checking...",
- "check": "Check",
- "valid": "Valid",
- "invalid": "Invalid",
- "creating": "Creating...",
- "validationChecksAnthropicCompatible": "Validation checks {provider} by verifying the API key.",
- "validationChecksOpenAiCompatible": "Validation checks {provider} via /models on your base URL.",
- "priorityLabel": "Priority",
- "saving": "Saving...",
- "save": "Save",
- "editConnection": "Edit Connection",
- "accountName": "Account name",
+ "apiKeyValidationFailed": "API কী যাচাই ব্যর্থ হয়েছে। অনুগ্রহ করে আপনার কী পরীক্ষা করে আবার চেষ্টা করুন।",
+ "addProviderApiKeyTitle": "{provider} API কী যোগ করুন",
+ "checking": "পরীক্ষা করা হচ্ছে...",
+ "check": "পরীক্ষা করুন",
+ "valid": "বৈধ",
+ "invalid": "অবৈধ",
+ "creating": "তৈরি করা হচ্ছে...",
+ "validationChecksAnthropicCompatible": "যাচাইকরণ API কী পরীক্ষা করে {provider} যাচাই করে।",
+ "validationChecksOpenAiCompatible": "যাচাইকরণ আপনার বেস URL-এর /models-এর মাধ্যমে {provider} যাচাই করে।",
+ "priorityLabel": "অগ্রাধিকার",
+ "saving": "সংরক্ষণ করা হচ্ছে...",
+ "save": "সংরক্ষণ করুন",
+ "editConnection": "সংযোগ সম্পাদনা করুন",
+ "accountName": "অ্যাকাউন্টের নাম",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "স্বাস্থ্য পরীক্ষা (মিনিট)",
"healthCheckHint": "Proactive token refresh interval. 0 = disabled.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
- "failedTestConnection": "Failed to test connection",
- "failed": "Failed",
- "leaveBlankKeepCurrentApiKey": "Leave blank to keep the current API key.",
- "editCompatibleTitle": "Edit {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
- "apiKeyForCheck": "API Key (for Check)",
+ "deselectAllModels": "সব নির্বাচন বাতিল করুন",
+ "modelsActiveCount": "{active}/{total} সক্রিয়",
+ "noModelsMatch": "\"{filter}\"-এর সঙ্গে কোনো মডেল মেলেনি",
+ "groupLabel": "পরিবেশ",
+ "groupPlaceholder": "যেমন eKaizen, ব্যক্তিগত",
+ "failedTestConnection": "সংযোগ পরীক্ষা করা যায়নি",
+ "failed": "ব্যর্থ",
+ "leaveBlankKeepCurrentApiKey": "বর্তমান API কী রাখতে ফাঁকা রাখুন।",
+ "editCompatibleTitle": "{type} সামঞ্জস্যপূর্ণ সম্পাদনা করুন",
+ "compatibleBaseUrlHint": "আপনার {type}-সামঞ্জস্যপূর্ণ API-এর রুট URL। কাস্টম এন্ডপয়েন্ট পাথের জন্য উন্নত সেটিংস ব্যবহার করুন।",
+ "apiKeyForCheck": "API কী (পরীক্ষার জন্য)",
"testModelIdLabel": "মডেল আইডি (ঐচ্ছিক)",
"testModelIdPlaceholder": "যেমন: my-model-id",
"testModelIdHint": "প্রোভাইডারের যদি কোনো /models এন্ডপয়েন্ট না থাকে, তবে পরিবর্তে /chat/completions-এর মাধ্যমে যাচাই করতে একটি মডেল আইডি লিখুন।",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "compatibleProdPlaceholder": "{type} সামঞ্জস্যপূর্ণ (প্রোডাকশন)",
+ "tokenRefreshed": "টোকেন সফলভাবে রিফ্রেশ করা হয়েছে",
+ "tokenRefreshFailed": "টোকেন রিফ্রেশ ব্যর্থ হয়েছে",
"cursorSessionUnchanged": "সেশন ইতিমধ্যে বর্তমান",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "প্রমাণীকরণ প্রয়োগ করুন",
+ "exportCodexAuthFile": "প্রমাণীকরণ এক্সপোর্ট করুন",
"applyClaudeAuthLocal": "প্রমাণীকরণ প্রয়োগ করুন",
"exportClaudeAuthFile": "রপ্তানি অনুমোদন",
"importClaudeAuth": "আমদানি অনুমোদন",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} ব্যর্থ হয়েছে৷",
"codexImportBulkZipExtracting": "জিপ বের করা হচ্ছে...",
"codexImportBulkZipError": "ZIP এক্সট্র্যাক্ট করা যায়নি",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "উন্নত সেটিংস",
+ "chatPathLabel": "চ্যাট এন্ডপয়েন্ট পাথ",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "অ-মানক API-সহ প্রদানকারীদের জন্য কাস্টম চ্যাট পাথ (যেমন /v4/chat/completions)",
+ "modelsPathLabel": "মডেল এন্ডপয়েন্ট পাথ",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "যাচাইকরণের জন্য কাস্টম মডেল পাথ (যেমন /v4/models)",
"clientIdentityLabel": "ক্লায়েন্ট আইডেন্টিটি",
"clientIdentityHint": "ঐচ্ছিক। সামঞ্জস্যপূর্ণ গেটওয়ে যা এটি আশা করে তার জন্য একটি পরিচিত CLI-এর সাথে সামঞ্জস্যপূর্ণ ক্লায়েন্ট ফিঙ্গারপ্রিন্ট হেডার (যেমন User-Agent) যোগ করে।",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "নিষ্ক্রিয় করা হয়েছে (ম্যানুয়াল)",
+ "statusBanned": "নিষিদ্ধ / স্যান্ডবক্স নীতি লঙ্ঘন",
+ "statusCreditsExhausted": "অপর্যাপ্ত ব্যালেন্স / কোটা শেষ",
+ "showEmails": "সব ইমেল দেখান",
+ "hideEmails": "সব ইমেল লুকান",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "আরেকটি API কী যোগ করুন অথবা একাধিক কী পেস্ট করুন",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "অ্যাগ্রিগেটর গেটওয়ে",
"enterpriseCloud": "এন্টারপ্রাইজ এবং ক্লাউড",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "API ফরম্যাট লেবেল",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "API অঞ্চল চীন",
+ "apiRegionHint": "API অঞ্চলসংক্রান্ত ইঙ্গিত",
+ "apiRegionInternational": "API অঞ্চল আন্তর্জাতিক",
+ "apiRegionLabel": "API অঞ্চল লেবেল",
+ "apikey": "API কী",
+ "audio": "অডিও",
+ "audioProvidersHeading": "অডিও প্রদানকারীর শিরোনাম",
"cloudAgentProviders": "ক্লাউড এজেন্ট প্রদানকারী",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "অডিওর সংক্ষিপ্ত লেবেল",
+ "azureOpenAiBaseUrlHint": "Azure Open Ai বেস URL-এর ইঙ্গিত",
+ "bailianBaseUrlHint": "Bailian বেস URL-এর ইঙ্গিত",
+ "claudeWebCookieHint": "claude.ai খুলুন → DevTools → Application → Cookies → claude.ai-এ যান এবং 'sessionKey' মানটি কপি করুন। Cloudflare-এর জন্য cf_clearance, __cf_bm, _cfuvid-ও প্রয়োজন।",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web কুকির ইঙ্গিত",
+ "blackboxWebCookiePlaceholder": "Blackbox Web কুকির স্থানধারক",
"t3ChatWebCookieHint": "t3.chat → DevTools → Application → Local Storage → https://t3.chat খুলুন, 'convex-session-id' কপি করুন। তারপর DevTools → Network খুলুন, যেকোনো চ্যাট অনুরোধ থেকে সম্পূর্ণ কুকি হেডারটি কপি করুন। নীচের ক্ষেত্রগুলিতে উভয় মান আটকান।",
"t3ChatWebCookiePlaceholder": "উত্তল-সেশন-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web কুকির ইঙ্গিত",
"blockClaudeExtraUsageDescription": "যখন সক্ষম করা হয়, OmniRoute এই Claude সংযোগটিকে অপ্রাপ্য হিসাবে চিহ্নিত করে যত তাড়াতাড়ি ব্যবহারের API কিউড অতিরিক্ত ব্যবহারের রিপোর্ট করে, তাই ফ fallback অন্য সংযোগে পরিবর্তিত হয় পরিবর্তে পে-এজ-ইউ-গো অতিরিক্ত বিলিং চালিয়ে যাওয়ার।",
"blockClaudeExtraUsageLabel": "অতিরিক্ত Claude ব্যবহার ব্লক করুন",
"disableCoolingDescription": "অস্থায়ী কুলডাউন এড়িয়ে যান যাতে পুনরুদ্ধারযোগ্য ত্রুটির পরেও এই সংযোগটি যোগ্য থাকে (নিষিদ্ধ/মেয়াদোত্তীর্ণের মতো টার্মিনাল অবস্থাগুলি এখনও প্রযোজ্য)।",
"disableCoolingLabel": "এই সংযোগের জন্য কুলডাউন নিষ্ক্রিয় করুন",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {১টি কী যোগ করা হয়েছে} other {#টি কী যোগ করা হয়েছে}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {১টি সদৃশ বাদ দেওয়া হয়েছে} other {#টি সদৃশ বাদ দেওয়া হয়েছে}}",
+ "bulkPasteHint": "প্রতি লাইনে একটি করে API কী পেস্ট করুন। ফাঁকা লাইন উপেক্ষা করা হবে এবং সদৃশ কীগুলো বাদ দেওয়া হবে।",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "যেসব CC Compatible আপস্ট্রিমে Claude-এর চিন্তন স্ট্রিম গোপন রাখা আবশ্যক, সেগুলোর জন্য redact-thinking বিটা হেডার যোগ করে।",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking বিটা সক্রিয় করুন",
+ "ccCompatibleSummarizeThinkingDescription": "CC Compatible চিন্তন অনুরোধে `display: \"summarized\"` যোগ করে, যাতে সমর্থিত Claude মডেলগুলো দৃশ্যমান চিন্তন ডেল্টা স্ট্রিম করে।",
+ "ccCompatibleSummarizeThinkingLabel": "সংক্ষিপ্ত চিন্তন প্রদর্শন সক্রিয় করুন",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "উপলভ্য থাকলে Codex অনুরোধের জন্য অগ্রাধিকারমূলক সার্ভিস টিয়ার ব্যবহার করুন।",
+ "codexFastServiceTierLabel": "Codex দ্রুত সার্ভিস টিয়ার",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "Compat আপস্ট্রিম হেডার নামের স্থানধারক",
+ "compatUpstreamHeaderValuePlaceholder": "Compat আপস্ট্রিম হেডার মানের স্থানধারক",
+ "compatible": "সামঞ্জস্যপূর্ণ",
+ "configuredCount": "কনফিগার করা সংখ্যা",
+ "consoleApiKeyOracleHint": "কনসোল API কী Oracle-এর ইঙ্গিত",
+ "consoleApiKeyOracleLabel": "কনসোল API কী Oracle-এর লেবেল",
+ "consoleApiKeyOraclePlaceholder": "কনসোল API কী Oracle-এর স্থানধারক",
+ "newApiUserIdLabel": "New-API ব্যবহারকারী ID",
+ "newApiUserIdPlaceholder": "যেমন 12345",
+ "newApiUserIdHint": "AgentRouter New-Api-User হেডারের মান, যা কোটার ব্যালেন্স আনতে কনসোল API কী-এর সঙ্গে ব্যবহৃত হয়।",
"newApiAggregatorToggleLabel": "এগ্রিগেটর গেটওয়ে",
"newApiAggregatorToggleHint": "নতুন-এপিআই / ওয়ান-এপিআই / সাব2এপিআই অ্যাগ্রিগেটর নোডগুলির জন্য ব্যালেন্স সনাক্তকরণ সক্ষম করুন। ড্যাশবোর্ড ব্যালেন্স ব্যাজ দেখাবে এবং কোটা-পূর্ব ফ্লাইট রাউটিং ক্লান্ত অ্যাকাউন্টগুলি বাদ দেবে।",
"newApiAggregatorConsoleApiKeyHint": "এগ্রিগেটরের /api/user/self এন্ডপয়েন্টের জন্য সিস্টেম অ্যাক্সেস টোকেন। রাউটিং API কী নয়।",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "নতুন-এপিআই / ওয়ান-এপিআই / সাব2এপিআই অ্যাগ্রিগেটর সামঞ্জস্যপূর্ণ নোডগুলির জন্য ব্যালেন্স শনাক্তকরণ সক্ষম করুন",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "কাস্টম User Agent-এর ইঙ্গিত",
+ "customUserAgentLabel": "কাস্টম User Agent-এর লেবেল",
+ "databricksBaseUrlHint": "Databricks বেস URL-এর ইঙ্গিত",
+ "defaultThinkingStrengthHint": "কোনো অনুরোধে reasoning effort নির্দিষ্ট করা না থাকলে এটি ব্যবহৃত হয়।",
+ "defaultThinkingStrengthLabel": "ডিফল্ট চিন্তন শক্তি",
+ "deleteAllExtraApiKeys": "সব মুছুন",
+ "excludedModelsHint": "বাদ দেওয়া মডেলগুলোর ইঙ্গিত",
+ "excludedModelsLabel": "বাদ দেওয়া মডেলগুলোর লেবেল",
+ "excludedModelsPlaceholder": "বাদ দেওয়া মডেলগুলোর স্থানধারক",
+ "expirationBannerExpired": "মেয়াদোত্তীর্ণ ব্যানার",
+ "expirationBannerExpiredDesc": "মেয়াদোত্তীর্ণ ব্যানারের বিবরণ",
+ "expirationBannerExpiringSoon": "শিগগিরই মেয়াদ শেষ হওয়ার ব্যানার",
+ "expirationBannerExpiringSoonDesc": "মেয়াদ শেষ হওয়ার ব্যানারের শিগগিরই মেয়াদ শেষ হওয়ার বিবরণ",
+ "extraApiKeyMasked": "কী {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "অতিরিক্ত API কীগুলোর ইঙ্গিত",
+ "extraApiKeysLabel": "অতিরিক্ত API কীগুলোর লেবেল",
+ "apiKeyHealthLabel": "API কী-এর অবস্থা",
+ "apiKeyStatusActive": "সক্রিয়",
+ "apiKeyStatusWarning": "সতর্কতা ({count}টি ব্যর্থতা)",
+ "apiKeyStatusInvalid": "অবৈধ",
+ "primaryKey": "প্রাথমিক কী",
+ "apiKeyInvalidAlert": "সংযোগগুলোতে প্রমাণীকরণ ব্যর্থতার কারণে {count}টি API কী অবৈধ হিসেবে চিহ্নিত হয়েছে: {connections}। রোটেশনের সময় এগুলো এড়িয়ে যাওয়া হবে। পর্যালোচনা করতে ক্লিক করুন।",
+ "apiKeyInvalidAlertTitle": "API কী-এর অবস্থা-সংক্রান্ত সতর্কতা",
+ "apiKeyWarningAlert": "সংযোগগুলোতে ব্যর্থতার হার বেড়ে যাওয়ার কারণে {count}টি API কী সতর্কতা অবস্থায় রয়েছে: {connections}। রোটেশন-সংক্রান্ত সমস্যা এড়াতে পর্যালোচনা করুন।",
+ "apiKeyWarningAlertTitle": "API কী সতর্কতা",
+ "googlePseInfo": "Google PSE-এর তথ্য",
"antigravityProjectIdHint": "অ্যান্টিগ্র্যাভিটি ক্লাউড কোড অনুরোধের জন্য ঐচ্ছিক ওভাররাইড। Google OAuth সময় আবিষ্কৃত প্রকল্প ব্যবহার করতে ফাঁকা ছেড়ে দিন।",
"antigravityClientProfileLabel": "ক্লায়েন্ট প্রোফাইল",
"antigravityClientProfileHint": "OmniRoute কোন Antigravity ক্লায়েন্ট পরিচয় API-এর কাছে উপস্থাপন করবে তা চয়ন করুন।",
@@ -5861,47 +5868,47 @@
"tierFast": "দ্রুত",
"antigravityProjectIdLabel": "Google ক্লাউড প্রকল্প আইডি",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok ওয়েব কুকির প্লেসহোল্ডার",
+ "herokuBaseUrlHint": "Heroku বেস URL-এর ইঙ্গিত",
+ "hideEmail": "ইমেল লুকান",
+ "imageProviders": "ছবি প্রদানকারীরা",
"videoProviders": "ভিডিও জেনারেশন",
"embeddingRerankProviders": "এমবেডিং এবং রির্যাঙ্ক",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "ছবি",
+ "llmProviders": "LLM প্রদানকারীরা",
+ "localProviderApiKeyOptionalHint": "স্থানীয় প্রদানকারীর API কী ঐচ্ছিক হওয়ার ইঙ্গিত",
+ "localProviderBaseUrlHint": "স্থানীয় প্রদানকারীর বেস URL-এর ইঙ্গিত",
+ "localProviders": "স্থানীয় প্রদানকারীরা",
+ "maxConcurrentWholeNumberError": "সর্বোচ্চ সমসাময়িক মানটি অবশ্যই একটি পূর্ণসংখ্যা হতে হবে",
"m365TierLabel": "Copilot টিয়ার",
"m365TierHint": "এই সংযোগটি কোন Microsoft 365 Copilot সারফেস ব্যবহার করবে তা চয়ন করুন। Individual হলো ডিফল্ট কনজিউমার BizChat; Education এবং Enterprise (work) তাদের টেন্যান্ট সারফেসে অপ্ট-ইন করে।",
"m365TierIndividualOption": "Individual (ডিফল্ট)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "শিক্ষা",
+ "m365TierEnterpriseOption": "এন্টারপ্রাইজ / কর্মক্ষেত্র",
"tierOverrideLabel": "টিয়ার ওভাররাইড",
"tierOverrideAuto": "স্বয়ংক্রিয় (রাউটিং নির্ধারণ করে)",
"tierOverrideFree": "ফ্রি",
"tierOverrideCheap": "সস্তা",
"tierOverridePremium": "প্রিমিয়াম",
"tierOverrideHelpText": "মডেলের মূল্য নির্ধারণ থেকে OmniRoute-কে এটি অনুমান করতে দেওয়ার পরিবর্তে এই প্রদানকারীকে একটি রাউটিং টিয়ারে পিন করুন।",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark ওয়েব কুকির ইঙ্গিত",
+ "museSparkWebCookiePlaceholder": "Muse Spark ওয়েব কুকির প্লেসহোল্ডার",
+ "oauth": "OAuth",
+ "openCliTools": "CLI টুল খুলুন",
+ "openSettings": "সেটিংস খুলুন",
+ "openaiResponsesStoreDescription": "সামঞ্জস্যপূর্ণ Responses API অনুরোধগুলোকে সংরক্ষিত প্রতিক্রিয়ার অবস্থা বজায় রাখার অনুমতি দিন।",
+ "openaiResponsesStoreLabel": "OpenAI Responses স্টোর",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search শেয়ার্ড কী-এর তথ্য",
+ "perplexityWebCookieHint": "Perplexity ওয়েব কুকির ইঙ্গিত",
+ "perplexityWebCookiePlaceholder": "Perplexity ওয়েব কুকির প্লেসহোল্ডার",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "রেট লিমিট ওভাররাইড",
"rateLimitOverridesMaxConcurrentHint": "এই সংযোগের জন্য সর্বোচ্চ সমবর্তী অনুরোধের ওভাররাইড। অ্যাকাউন্ট-স্তরের সীমা ওভাররাইড করে।",
"rateLimitOverridesMaxConcurrentLabel": "সর্বোচ্চ সমবর্তী (রেট লিমিট)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "ব্যর্থ হওয়ার আগে কোনো অনুরোধ রেট-লিমিট স্লটের জন্য সর্বোচ্চ যত সময় (ms) অপেক্ষা করতে পারে। এটি শুধু এই সংযোগের জন্য গ্লোবাল Resilience সেটিং ওভাররাইড করে।",
+ "rateLimitOverridesMaxWaitMsLabel": "সর্বোচ্চ কিউ অপেক্ষার সময় (ms)",
"rateLimitOverridesMinTimeHint": "অনুরোধগুলোর মধ্যে ন্যূনতম সময় (ms)। ডিফল্ট রেট লিমিটারের বিলম্ব ওভাররাইড করে।",
"rateLimitOverridesMinTimeLabel": "ন্যূনতম ব্যবধান (ms)",
"rateLimitOverridesRpdHint": "এই সংযোগের জন্য প্রতিদিন সর্বাধিক অনুরোধ। প্রদানকারীর ডিফল্ট ওভাররাইড করে।",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (টোকেন/দিন)",
"rateLimitOverridesTpmHint": "এই সংযোগের জন্য প্রতি মিনিটে সর্বোচ্চ টোকেন। প্রদানকারীর ডিফল্ট ওভাররাইড করে।",
"rateLimitOverridesTpmLabel": "TPM (টোকেন/মিনিট)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
- "searchProviders": "Search Providers",
+ "refreshOauthTokenTitle": "Oauth টোকেন রিফ্রেশের শিরোনাম",
+ "regionHint": "অঞ্চলের ইঙ্গিত",
+ "regionLabel": "অঞ্চলের লেবেল",
+ "removeThisKey": "এই কীটি সরান",
+ "routingTagsHint": "রাউটিং ট্যাগের ইঙ্গিত",
+ "routingTagsLabel": "রাউটিং ট্যাগের লেবেল",
+ "routingTagsPlaceholder": "রাউটিং ট্যাগের স্থানধারক",
+ "search": "অনুসন্ধান",
+ "searchEngineIdHint": "সার্চ ইঞ্জিন আইডির ইঙ্গিত",
+ "searchEngineIdLabel": "সার্চ ইঞ্জিন আইডির লেবেল",
+ "searchEngineIdRequired": "সার্চ ইঞ্জিন আইডি আবশ্যক",
+ "searchProvider": "সার্চ প্রদানকারী",
+ "searchProviderDesc": "সার্চ প্রদানকারীর বিবরণ",
+ "searchProviders": "সার্চ প্রদানকারীরা",
"searchByModel": "মডেল দিয়ে খুঁজুন…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "সার্চ প্রদানকারীদের শিরোনাম",
+ "searxngBaseUrlHint": "Searxng বেস URL-এর ইঙ্গিত",
+ "searxngInfo": "Searxng-এর তথ্য",
+ "sessionCookieLabel": "সেশন কুকির লেবেল",
+ "showEmail": "ইমেইল দেখান",
+ "snowflakeBaseUrlHint": "Snowflake বেস URL-এর ইঙ্গিত",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "ট্যাগ গ্রুপের ইঙ্গিত",
+ "tagGroupLabel": "ট্যাগ গ্রুপের লেবেল",
+ "tagGroupPlaceholder": "ট্যাগ গ্রুপের স্থানধারক",
+ "testModel": "মডেল পরীক্ষা করুন",
+ "testingModel": "মডেল পরীক্ষা করা হচ্ছে",
"modelTestQuotaTooltip": "কোটার সীমা শেষ — আগামীকাল পুনরায় সেট হবে অথবা একটি টপ-আপ প্রয়োজন",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "টোকেনের মেয়াদ শেষ ব্যাজ",
+ "tokenExpiredTitle": "টোকেনের মেয়াদ শেষ শিরোনাম",
+ "tokenExpiresSoonTitle": "টোকেনের মেয়াদ শিগগিরই শেষ হবে শিরোনাম",
+ "tokenShort": "টোকেন",
+ "totalKeysRotating": "{count, plural, one {1টি কী পর্যায়ক্রমে ব্যবহৃত হচ্ছে} other {#টি কী পর্যায়ক্রমে ব্যবহৃত হচ্ছে}}",
+ "unhideModel": "মডেলটি আবার দেখান",
+ "upstreamProxyProviders": "আপস্ট্রিম প্রক্সি প্রদানকারীরা",
"validationModelIdHint": "API কী যাচাই করতে ব্যবহৃত মডেল। প্রোভাইডারের প্রথম উপলব্ধ মডেল ব্যবহার করতে ফাঁকা রাখুন।",
"validationModelIdLabel": "যাচাইকরণ মডেল",
"validationModelIdPlaceholder": "যেমন: meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "আপনার Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) অথবা একটি OAuth access_token পেস্ট করুন",
+ "webCookieProviders": "ওয়েব কুকি প্রদানকারীরা",
+ "weeklyShort": "সাপ্তাহিক",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo বেস URL-এর ইঙ্গিত",
"globalCodexServiceMode": "গ্লোবাল Codex সার্ভিস মোড",
"connect": "সংযোগ করুন",
"manualApiKey": "ম্যানুয়াল API কী",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "OS কীচেইনে Zed IDE দ্বারা সংরক্ষিত AI প্রোভাইডার ক্রেডেনশিয়াল (OpenAI, Anthropic, Google, Mistral, xAI) খুঁজুন এবং সেগুলিকে কানেকশন হিসেবে ইম্পোর্ট করুন। এই মেশিনে Zed IDE ইনস্টল করা থাকতে হবে।",
"zedImportButton": "Zed থেকে আমদানি করুন",
"zedImportFailed": "Zed আমদানি ব্যর্থ হয়েছে",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed ইমপোর্টের ইঙ্গিত",
+ "zedImportNetworkError": "Zed ইমপোর্টে নেটওয়ার্ক ত্রুটি",
+ "zedImportNone": "Zed ইমপোর্টে কিছুই নেই",
"zedImportSuccess": "{providers} প্রদানকারীর জন্য Zed থেকে {credentials} শংসাপত্র(গুলি) আমদানি করা হয়েছে",
"zedImporting": "আমদানি হচ্ছে…",
"zedNoCredentials": "কীচেইনে কোনো Zed ক্রেডেনশিয়াল পাওয়া যায়নি",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 সহ 40+ মডেলের জন্য ডিসকাউন্টেড API প্রক্সি। https://freeaiapikey.com/dashboard থেকে আপনার API কী পান। বেস URL: https://freeaiapikey.com/v1।",
"freemodel-dev": "https://freemodel.dev থেকে $300 ফ্রি API ক্রেডিট পান — কোনো পেমেন্ট তথ্যের প্রয়োজন নেই। OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট। GPT-5.4 and GPT-5.5 মডেলগুলো উপলব্ধ।",
"friendliai": "সার্ভারলেস ইনফারেন্সের জন্য ফ্রি টিয়ার — কোনো ক্রেডিট কার্ডের প্রয়োজন নেই",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio-এর মাধ্যমে বিনামূল্যের স্তর; প্রতি-মডেলের কোটা আর প্রকাশ করা হয় না (AI Studio-এর কোটা পৃষ্ঠাটি দেখুন) — কোনো ক্রেডিট কার্ডের প্রয়োজন নেই।",
"gigachat": "একটি API কী দিয়ে GigaChat (Sber) কানেক্ট করুন।",
"gitlab": "পাবলিক Code Suggestions API-এর জন্য GitLab পার্সোনাল অ্যাক্সেস টোকেন। gitlab.com ব্যবহার না করার সময় একটি সেলফ-হোস্টেড বেস URL কনফিগার করুন।",
"gitlawb-gmi": "Gitlawb Opengateway ড্যাশবোর্ড থেকে আপনার API কী পান।",
@@ -6180,7 +6187,7 @@
"glm-cn": "একটি API কী দিয়ে GLM Coding (China) কানেক্ট করুন।",
"glmt": "উচ্চতর টোকেন বাজেট, থিংকিং সক্রিয় এবং দীর্ঘতর টাইমআউট সহ প্রিসেট GLM প্রোফাইল।",
"getgoapi": "একটি API কী দিয়ে GoAPI কানেক্ট করুন।",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "ফ্রি প্ল্যান: প্রতি-মডেল সীমা (প্রতি চ্যাট মডেলে দৈনিক 200K টোকেন; RPM/RPD-এর জন্য console.groq.com/docs/rate-limits দেখুন) — কোনো পেমেন্ট মেথড সংরক্ষিত নেই।",
"haiper": "haiper.ai/haiper-api থেকে API কী পান",
"heroku": "একটি API কী দিয়ে Heroku AI কানেক্ট করুন।",
"hcnsec": "api.hcnsec.cn-এ API কী পান",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai-এ একটি API কী তৈরি করুন, তারপর এটি এখানে Bearer টোকেন হিসেবে পেস্ট করুন। https://router.requesty.ai/v1-এ OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্ট, সাথে একটি লাইভ /v1/models ক্যাটালগ রয়েছে।",
"runwayml": "Runway ভিডিও জেনারেশন টাস্ক-ভিত্তিক। OmniRoute টেক্সট-টু-ভিডিও বা ইমেজ-টু-ভিডিও জব সাবমিট করে, /v1/tasks/[id] পোল করে এবং সমাপ্ত ভিডিও আউটপুটগুলোকে আবার OpenAI-এর মতো /v1/videos/generations রেসপন্সে নরমালাইজ করে।",
"sambanova": "সাইন আপ করার সময় $5 ফ্রি ক্রেডিট (৩০ দিনের মেয়াদ), কোনো ক্রেডিট কার্ডের প্রয়োজন নেই",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.cc-এ একটি API কী তৈরি করুন, তারপর Bearer টোকেন হিসেবে সেটি এখানে পেস্ট করুন। OpenAI-সামঞ্জস্যপূর্ণ বেস URL: https://seekai.cc/v1।",
"sap": "মডেল ডিসকভারি AI_API_URL-এ /v2/lm/scenarios/foundation-models/models ব্যবহার করে। চ্যাট রিকোয়েস্টগুলো deploymentUrl/chat/completions ব্যবহার করে এবং এর জন্য AI-Resource-Group প্রয়োজন।",
"sarvam": "Sarvam AI OpenAI-সঙ্গত /v1-এ। OmniRoute /v1/models-এ প্রোব করে এবং চ্যাট ট্রাফিককে /v1/chat/completions-এ রাউট করে। মডেলগুলি ইন্ডিক ভাষার জন্য টিউন করা হয়েছে।",
"scaleway": "নতুন অ্যাকাউন্টের জন্য 1M ফ্রি টোকেন — EU/GDPR কমপ্লায়েন্ট (প্যারিস), Qwen3 235B এবং Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "বিদ্যমান OAuth ফ্লো দিয়ে Claude Code সংযুক্ত করুন।",
"cline": "বিদ্যমান OAuth ফ্লো দিয়ে Cline সংযুক্ত করুন।",
"cursor": "বিদ্যমান OAuth ফ্লো দিয়ে Cursor IDE সংযুক্ত করুন।",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "cursor.com/dashboard/api থেকে একটি ব্যবহারকারী API কী (crsr_...) দিয়ে Cursor সংযুক্ত করুন; কোনো IDE সেশনের প্রয়োজন নেই।",
"github": "বিদ্যমান OAuth ফ্লো দিয়ে GitHub Copilot সংযুক্ত করুন।",
"gitlab-duo": "ai_features + read_user স্কোপ সহ OAuth অ্যাপ্লিকেশন। এই OmniRoute ইনস্ট্যান্সে GITLAB_DUO_OAUTH_CLIENT_ID এবং ঐচ্ছিকভাবে GITLAB_DUO_OAUTH_CLIENT_SECRET কনফিগার করুন।",
"kilocode": "বিদ্যমান OAuth ফ্লো দিয়ে Kilo Code সংযুক্ত করুন।",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "প্রদানকারীর নিজস্ব ডোমেন থেকে প্রয়োজনীয় শংসাপত্রটি অনুলিপি করুন। কুকির জন্য, শুধুমাত্র কুকি হেডার মান কপি করুন এবং কুকি বাদ দিন:",
"webSessionGuideStep3Manual": "ম্যানুয়াল পাথ: ব্রাউজারের ডেভেলপার টুলস খুলুন (F12 → নেটওয়ার্ক), পৃষ্ঠা রিফ্রেশ করুন, একটি প্রমাণীকৃত অনুরোধ খুলুন, এবং অনুরোধের হেডার থেকে কুকি হেডার মান কপি করুন — কুকি: প্রিফিক্সটি বাদ দিন।",
"webSessionGuideStep4": "এটি এখানে পেস্ট করুন এবং সংযোগ পরীক্ষা করুন। যদি এটি কাজ করা বন্ধ করে দেয়, আবার সাইন ইন করুন এবং একটি নতুন মান দিয়ে প্রতিস্থাপন করুন।",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har ফাইল ইমপোর্ট করুন",
+ "harImportButtonBusy": "ইমপোর্ট করা হচ্ছে…",
+ "harImportButtonHint": "অন্তত একটি চ্যাট বার্তা পাঠানোর পর DevTools-এর Network ট্যাব থেকে এক্সপোর্ট করুন।",
+ "harImportStatusValid": "ইমপোর্ট করা হয়েছে — প্রায় {minutes} মিনিটের জন্য বৈধ।",
+ "harImportStatusExpiringSoon": "ইমপোর্ট করা হয়েছে — আর মাত্র প্রায় {minutes} মিনিটের জন্য বৈধ।",
+ "harImportStatusExpired": "ইমপোর্ট করা হয়েছে, কিন্তু এই টোকেনটির মেয়াদ ইতিমধ্যেই শেষ হয়েছে ({minutes} মিনিট আগে) — একটি নতুন HAR এক্সপোর্ট করুন।",
+ "harImportStatusUnknownExpiry": "ইমপোর্ট করা হয়েছে। এর মেয়াদ শেষ হওয়ার সময় পড়া যায়নি।",
+ "harImportErrorNotJson": "ফাইলটি বৈধ JSON নয় — এটি কি সত্যিই একটি .har এক্সপোর্ট?",
+ "harImportErrorNoEntries": "এই HAR-এ কোনো নেটওয়ার্ক এন্ট্রি রেকর্ড করা নেই।",
+ "harImportErrorNoChathubUrl": "এই HAR-এ কোনো Copilot চ্যাট সংযোগ পাওয়া যায়নি। এক্সপোর্ট করার আগে m365.cloud.microsoft-এ অন্তত একটি চ্যাট বার্তা পাঠান।",
+ "harImportErrorUnparsableUrl": "চ্যাট সংযোগটি পাওয়া গেছে, কিন্তু এর URL পড়া যায়নি।",
+ "harImportErrorMissingFields": "চ্যাট সংযোগটি পাওয়া গেছে, কিন্তু এতে টোকেনটি অনুপস্থিত ছিল।",
+ "harImportErrorReadFailed": "ফাইলটি পড়া যায়নি।",
+ "harImportErrorUnknown": "ওই HAR ফাইল থেকে কোনো ক্রেডেনশিয়াল বের করা যায়নি।",
"webSessionSecurityHint": "এটিকে একটি পাসওয়ার্ডের মতো ব্যবহার করুন: এটি মেয়াদ শেষ না হওয়া বা প্রত্যাহার না হওয়া পর্যন্ত এটি আপনার সাইন-ইন করা ওয়েব অ্যাকাউন্ট অ্যাক্সেস করতে পারে৷",
"webNoAuthGuideTitle": "কোন শংসাপত্র প্রয়োজন",
"webNoAuthGuideBody": "{provider} এর একটি API কী বা কুকির প্রয়োজন নেই৷ এর বিনামূল্যের ওয়েব এন্ডপয়েন্ট ব্যবহার করতে সংযোগটি সংরক্ষণ করুন।",
@@ -6360,15 +6367,15 @@
"checkWebToken": "টোকেন চেক করুন",
"huggingchatLabel": "HuggingChat (ফ্রি)",
"huggingchatDesc": "huggingface.co/chat-এর মাধ্যমে ফ্রি LLM চ্যাট",
- "poeWebLabel": "Poe Web",
+ "poeWebLabel": "Poe ওয়েব",
"poeWebDesc": "poe.com-এর মাধ্যমে মাল্টি-মডেল চ্যাট",
- "veniceWebLabel": "Venice Web",
+ "veniceWebLabel": "Venice ওয়েব",
"veniceWebDesc": "গোপনীয়তা-কেন্দ্রিক AI চ্যাট",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "v0 Vercel ওয়েব",
"v0VercelWebDesc": "v0.dev-এর মাধ্যমে AI কোড জেনারেশন",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Kimi ওয়েব",
"kimiWebDesc": "www.kimi.com-এর মাধ্যমে Moonshot AI কনজিউমার চ্যাট (আন্তর্জাতিক, Connect-RPC API)",
- "doubaoWebLabel": "Dola Web",
+ "doubaoWebLabel": "Dola ওয়েব",
"doubaoWebDesc": "dola.com-এর মাধ্যমে ByteDance AI চ্যাট",
"overrideBaseUrlAdvanced": "উন্নত: বেস URL ওভাররাইড করুন",
"overrideBaseUrlHint": "উন্নত: এই বিল্ট-ইন প্রোভাইডারটিকে একটি কাস্টম এন্ডপয়েন্টে নির্দেশ করুন। ডিফল্ট ব্যবহার করতে ফাঁকা রাখুন।",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "কমান্ড কোড প্রমাণীকরণ মেয়াদ শেষ হয়েছে",
"commandCodeConnected": "কমান্ড কোড সংযুক্ত হয়েছে",
"commandCodeConnectionAdded": "কমান্ড কোড সংযোগ যোগ করা হয়েছে",
+ "clearConnectionCooldown": "কুলডাউন মুছুন",
+ "clearConnectionCooldownInProgress": "মোছা হচ্ছে…",
+ "clearConnectionCooldownTitle": "এখনই কুলডাউন মুছুন — আপস্ট্রিমে কোটা ইতিমধ্যেই রিফ্রেশ হয়ে থাকলে এটি ব্যবহার করুন",
"commandCodeLinkExpired": "কমান্ড কোডের লিঙ্ক মেয়াদ শেষ হয়ে গেছে",
"commandCodeOpeningStudio": "কমান্ড কোড স্টুডিও খুলছে…",
"commandCodePopupBlocked": "পপআপ ব্লক করা হয়েছে। দয়া করে পপআপগুলি অনুমোদন করুন এবং আবার Command Code Connect চেষ্টা করুন।",
"commandCodeStartFailed": "Command Code auth শুরু করতে ব্যর্থ হয়েছে",
"connectionDeleted": "সংযোগ মুছে ফেলা হয়েছে",
"connectionFallback": "সংযোগ",
+ "connectionCooldownCleared": "কুলডাউন মোছা হয়েছে — সংযোগটি আবার রাউটিংয়ে যুক্ত হয়েছে",
"coolingConnectionsDescription": "এই সংযোগগুলি শেষ অনুরোধের পর ঠান্ডা হচ্ছে। টাইমার শেষ না হওয়া পর্যন্ত OmniRoute সেগুলি এড়িয়ে যাবে — হাতে বন্ধ করার দরকার নেই।",
"coolingConnectionsTitle": "বর্তমানে শীতলকরণ ({count})",
+ "failedClearConnectionCooldown": "কুলডাউন মোছা যায়নি",
"failedDeleteAlias": "অ্যালিয়াস মুছতে ব্যর্থ হয়েছে",
"failedDeleteConnection": "সংযোগ মুছতে ব্যর্থ হয়েছে",
"failedDistributeProxies": "প্রক্সি বিতরণ করতে ব্যর্থ হয়েছে।",
@@ -6461,26 +6473,21 @@
"providerDetailConnectionPriorityActive": "কোডেক্স প্রায়োরিটি সার্ভিস টিয়ার এই সংযোগের জন্য সক্রিয় রয়েছে",
"providerDetailGlobalFlexActive": "গ্লোবাল কোডেক্স ফ্লেক্স সার্ভিস টিয়ার সক্রিয় আছে",
"providerDetailGlobalPriorityActive": "গ্লোবাল কোডেক্স প্রাধান্য সেবা স্তর সক্রিয় আছে",
- "proxiesDistributed": "Distributed {assigned} proxy assignment(s) across {tagLabel}{total} connection(s).",
+ "proxiesDistributed": "{tagLabel}{total}টি সংযোগে {assigned}টি প্রক্সি অ্যাসাইনমেন্ট বিতরণ করা হয়েছে।",
"rerankEndpoint": "পুনর্ক্রমবিন্যাস",
"savedModelEndpointSettings": "সংরক্ষিত মডেল এন্ডপয়েন্ট সেটিংস",
"searchByModelAria": "মডেল দ্বারা অনুসন্ধান করুন",
"selectSupportedEndpoint": "কমপক্ষে একটি সমর্থিত এন্ডপয়েন্ট নির্বাচন করুন",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
- "title": "Settings",
- "general": "General",
- "security": "Security",
- "appearance": "Appearance",
- "routing": "Routing",
- "cache": "Cache",
- "resilience": "Resilience",
+ "title": "সেটিংস",
+ "general": "সাধারণ",
+ "security": "নিরাপত্তা",
+ "appearance": "চেহারা",
+ "routing": "রাউটিং",
+ "cache": "ক্যাশ",
+ "resilience": "স্থিতিস্থাপকতা",
"description": "বিবরণ",
"enable": "সক্রিয় করুন",
"disable": "নিষ্ক্রিয় করুন",
@@ -6547,25 +6554,25 @@
"routingOpStatusSeparator": " ·",
"resilienceSettingsIntro": "প্রদানকারী ব্যর্থ হলে স্বয়ংক্রিয়ভাবে পুনরায় চেষ্টা, কুলডাউন এবং ফলব্যাক।",
"aiSettingsIntro": "চিন্তা বাজেট, মডেল আচরণ এবং সংকোচনের জন্য AI-নির্দিষ্ট সেটিংস।",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "সিস্টেম প্রম্পট",
+ "thinkingBudget": "থিংকিং বাজেট",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP প্রক্সি",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "প্রক্সি বিভাগসমূহ",
+ "requestBodyLimitTitle": "অনুরোধের বডির সীমা",
+ "requestBodyLimitDescription": "অনুরোধের বডি পার্স করার আগে গৃহীত সর্বোচ্চ API পেলোডের আকার। নির্দিষ্ট আপলোড রুটগুলোতে অন্তত তাদের অন্তর্নির্মিত 100 MB সীমা বজায় থাকে।",
+ "requestBodyLimitInputLabel": "অনুরোধের বডির সীমা (MB)",
+ "requestBodyLimitEmptyError": "MB-তে একটি সীমা লিখুন",
+ "requestBodyLimitWholeNumberError": "একটি পূর্ণসংখ্যা ব্যবহার করুন",
+ "requestBodyLimitMinimumError": "সর্বনিম্ন {min} MB",
+ "requestBodyLimitMaximumError": "সর্বোচ্চ {max} MB",
+ "requestBodyLimitLoadFailed": "অনুরোধের সীমার সেটিংস লোড করা যায়নি",
+ "requestBodyLimitSaveSuccess": "অনুরোধের বডির সীমা সংরক্ষিত হয়েছে",
+ "requestBodyLimitSaveFailed": "অনুরোধের বডির সীমা সংরক্ষণ করা যায়নি",
+ "requestBodyLimitSaving": "সংরক্ষণ করা হচ্ছে...",
+ "requestBodyLimitSave": "সংরক্ষণ করুন",
+ "requestBodyLimitCurrent": "বর্তমান: {value}",
"cacheConfigLoadFailed": "ক্যাশ সেটিংস লোড করতে ব্যর্থ হয়েছে",
"cacheConfigSaveSuccess": "ক্যাশ সেটিংস সংরক্ষিত হয়েছে",
"cacheConfigSaveFailed": "ক্যাশ সেটিংস সংরক্ষণ করতে ব্যর্থ হয়েছে",
@@ -6579,69 +6586,69 @@
"modelCatalogCacheTtlSave": "সংরক্ষণ করুন",
"modelCatalogCacheTtlCurrent": "বর্তমান: {value} ms",
"mitmProxy": "এমআইটিএম প্রক্সি",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
- "comboDefaults": "Combo Defaults",
- "fallbackChains": "Fallback Chains",
- "changePassword": "Change Password",
- "enablePassword": "Enable Password",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "pricing": "মূল্য নির্ধারণ",
+ "storage": "স্টোরেজ",
+ "policies": "নীতিমালা",
+ "ipFilter": "IP ফিল্টার",
+ "comboDefaults": "কম্বোর ডিফল্ট মান",
+ "fallbackChains": "ফলব্যাক চেইন",
+ "changePassword": "পাসওয়ার্ড পরিবর্তন করুন",
+ "enablePassword": "পাসওয়ার্ড সক্রিয় করুন",
+ "darkMode": "ডার্ক মোড",
+ "lightMode": "লাইট মোড",
+ "memoryTitle": "মেমোরি",
+ "memoryDesc": "সেশনজুড়ে স্থায়ী কথোপকথনমূলক মেমোরি",
+ "memoryEnabled": "মেমোরি সক্রিয় করুন",
+ "memoryEnabledDesc": "সক্রিয় করা হলে, OmniRoute অতীতের প্রাসঙ্গিক প্রসঙ্গ সংযোজন করবে।",
"memoryTokenCostWarning": "সতর্কবার্তা: মেমরি সক্রিয় থাকলে, OmniRoute প্রতিটি চ্যাট অনুরোধে পুনরুদ্ধার করা কনটেক্সটের সর্বোচ্চ {tokens} টোকেন ইনজেক্ট করে — এটি টোকেন ব্যবহার এবং খরচ বৃদ্ধি করে। নির্দিষ্ট কোনো অনুরোধের জন্য ইনজেকশন এড়াতে, \"x-omniroute-no-memory: true\" হেডার পাঠান।",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
- "justNow": "Just now",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
- "providers": "Providers",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
- "systemTheme": "System Theme",
- "debugToggle": "Enable Debug Mode",
+ "maxTokens": "সর্বোচ্চ টোকেন",
+ "retentionDays": "সংরক্ষণকাল",
+ "recent": "সাম্প্রতিক",
+ "recentDesc": "কালানুক্রমিক উইন্ডো",
+ "semantic": "সিমান্টিক",
+ "semanticDesc": "ভেক্টর অনুসন্ধান",
+ "hybrid": "হাইব্রিড",
+ "hybridDesc": "সাম্প্রতিক + সিমান্টিক",
+ "skillsTitle": "দক্ষতা",
+ "skillsDesc": "মডেলের জন্য টুলসমূহ",
+ "skillsEnabled": "স্কিল সক্রিয় করুন",
+ "skillsEnabledDesc": "এজেন্টদের ফাংশন ট্রিগার করার অনুমতি দেয়।",
+ "skillsComingSoon": "স্কিল মার্কেটপ্লেস শীঘ্রই আসছে।",
+ "memorySkillsTitle": "মেমোরি ও স্কিল",
+ "memorySkillsDesc": "স্থায়ী কনটেক্সট ও সক্ষমতা",
+ "modelsDevTitle": "মডেল ডেটাবেস",
+ "modelsDevDesc": "models.dev থেকে মূল্য, সক্ষমতা ও স্পেসিফিকেশন স্বয়ংক্রিয়ভাবে সিঙ্ক করুন",
+ "modelsDevEnabled": "models.dev সিঙ্ক সক্রিয় করুন",
+ "modelsDevEnabledDesc": "ওপেন-সোর্স models.dev ডেটাবেস থেকে মডেলের মূল্য, সক্ষমতা ও স্পেসিফিকেশন সংগ্রহ করুন",
+ "modelsDevInterval": "সিঙ্কের ব্যবধান",
+ "syncNow": "এখনই সিঙ্ক করুন",
+ "syncing": "সিঙ্ক হচ্ছে...",
+ "lastSync": "সর্বশেষ সিঙ্ক",
+ "never": "কখনও নয়",
+ "justNow": "এইমাত্র",
+ "modelsDevStats": "সিঙ্কের পরিসংখ্যান",
+ "modelsDevStatsDesc": "বর্তমান models.dev ডেটা কভারেজ",
+ "providers": "প্রোভাইডার",
+ "modelsWithPricing": "মূল্যসহ মডেল",
+ "capabilities": "সক্ষমতা",
+ "lastSyncCount": "সর্বশেষ সিঙ্কের সংখ্যা",
+ "lastSyncFull": "সর্বশেষ পূর্ণ সিঙ্ক",
+ "modelsDevInfo": "এটি যেভাবে কাজ করে",
+ "modelsDevInfoDesc": "models.dev হলো SST/OpenCode টিম দ্বারা রক্ষণাবেক্ষণ করা AI মডেল স্পেসিফিকেশনের একটি ওপেন-সোর্স ডেটাবেস। এটি 100+ প্রোভাইডারের 4,000+ মডেলের মূল্য, সক্ষমতা, কনটেক্সট সীমা ও মোডালিটি প্রদান করে।",
+ "modelsDevInfoResolution": "মূল্য নির্ধারণের ক্রম (সর্বোচ্চ অগ্রাধিকার প্রথমে):",
+ "modelsDevInfoOrder": "ব্যবহারকারীর ওভাররাইড → models.dev → LiteLLM → হার্ডকোড করা ডিফল্ট",
+ "systemTheme": "সিস্টেম থিম",
+ "debugToggle": "ডিবাগ মোড সক্রিয় করুন",
"logToolSourcesToggle": "টুল সোর্স লগ করুন",
"logToolSourcesDescription": "টুলের সংখ্যা এবং MCP/hosted/client সোর্সের বিভাজন সংক্ষেপে তুলে ধরে প্রতি অনুরোধে একটি ডায়াগনস্টিক লগ লাইন তৈরি করুন।",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "হোম পেজে তথ্য পিন করুন",
"homePinnedSectionsDesc": "হোম পেজের শীর্ষে কোন বিভাগগুলো পিন করবেন তা বেছে নিন।",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "প্রোভাইডারের কোটা সীমা",
+ "homeProviderQuotaLimitsDesc": "প্রোভাইডারের কোটা স্ট্যাটাস কনটেইনারটি (Refresh All বোতামসহ) হোম পেজের শীর্ষে পিন করুন।",
+ "homeQuickStart": "দ্রুত শুরু",
+ "homeQuickStartDesc": "হোম পেজে দ্রুত শুরু প্যানেলটি দেখান।",
+ "homeProviderTopology": "প্রোভাইডার টপোলজি",
+ "homeProviderTopologyDesc": "হোম পেজে প্রোভাইডার টপোলজি দেখান।",
"accountEmailVisibility": "অ্যাকাউন্ট ইমেলের দৃশ্যমানতা",
"accountEmailVisibilityDesc": "প্রোভাইডার, কম্বো, লগ, কোটা এবং প্লেগ্রাউন্ড স্ক্রিন জুড়ে সম্পূর্ণ অ্যাকাউন্ট ইমেল দেখান। ডিফল্টভাবে এগুলো মাস্ক করতে এটি বন্ধ করুন।",
"comboConfigMode": "কম্বো কনফিগারেশন মোড",
@@ -6657,89 +6664,89 @@
"providerQuotaAutoRefreshInterval": "রিফ্রেশ ব্যবধান",
"providerQuotaAutoRefreshIntervalDesc": "কোটা ভিউ কত ঘন ঘন রিফ্রেশ হওয়া উচিত, সেকেন্ডে।",
"seconds": "সেকেন্ড",
- "sidebarVisibilityToggle": "Show Sidebar Items",
- "enableCache": "Enable Cache",
- "cacheTTL": "Cache TTL",
- "maxCacheSize": "Max Cache Size",
- "clearCache": "Clear Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
- "cacheMisses": "Cache Misses",
- "hitRate": "Hit Rate",
- "cacheEntries": "Cache Entries",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "sidebarVisibilityToggle": "সাইডবারের আইটেমগুলো দেখান",
+ "enableCache": "ক্যাশ সক্রিয় করুন",
+ "cacheTTL": "ক্যাশ TTL",
+ "maxCacheSize": "ক্যাশের সর্বোচ্চ আকার",
+ "clearCache": "ক্যাশ সাফ করুন",
+ "cacheCleared": "ক্যাশ সফলভাবে পরিষ্কার করা হয়েছে",
+ "clearCacheFailed": "ক্যাশ পরিষ্কার করতে ব্যর্থ হয়েছে",
+ "cacheHits": "ক্যাশ হিট",
+ "cacheMisses": "ক্যাশ মিস",
+ "hitRate": "হিট রেট",
+ "cacheEntries": "ক্যাশ এন্ট্রি",
+ "cacheSettings": "ক্যাশ সেটিংস",
+ "semanticCache": "সেমান্টিক ক্যাশ",
+ "maxEntries": "সর্বাধিক এন্ট্রি",
+ "ttlMinutes": "TTL (মিনিট)",
+ "promptCache": "প্রম্পট ক্যাশ",
+ "strategy": "কৌশল",
+ "preserveClientCache": "ক্লায়েন্ট ক্যাশ সংরক্ষণ করুন",
+ "enabled": "সক্রিয়",
"loading": "Loading...",
- "saving": "Saving...",
- "save": "Save",
- "circuitBreaker": "Circuit Breaker",
- "retryPolicy": "Retry Policy",
- "maxRetries": "Max Retries",
- "retryDelay": "Retry Delay",
- "timeoutMs": "Timeout (ms)",
- "enableSystemPrompt": "Enable System Prompt",
- "systemPromptText": "System Prompt Text",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "saving": "সংরক্ষণ করা হচ্ছে...",
+ "save": "সংরক্ষণ করুন",
+ "circuitBreaker": "সার্কিট ব্রেকার",
+ "retryPolicy": "পুনঃচেষ্টা নীতি",
+ "maxRetries": "সর্বাধিক পুনঃচেষ্টা",
+ "retryDelay": "পুনঃচেষ্টার বিলম্ব",
+ "timeoutMs": "টাইমআউট (ms)",
+ "enableSystemPrompt": "সিস্টেম প্রম্পট সক্রিয় করুন",
+ "systemPromptText": "সিস্টেম প্রম্পটের টেক্সট",
+ "autoDisableBannedAccounts": "নিষিদ্ধ অ্যাকাউন্ট স্বয়ংক্রিয়ভাবে নিষ্ক্রিয় করুন",
+ "autoDisableDescription": "প্রোভাইডার সংযোগগুলো নির্দিষ্ট চূড়ান্ত নিষেধাজ্ঞার সংকেত (যেমন HTTP 403 'verify your account') ফেরত দিলে সেগুলোকে স্থায়ীভাবে নিষ্ক্রিয় হিসেবে চিহ্নিত করুন। এটি সেগুলোকে কম্বো রোটেশন থেকে সরিয়ে দেয়।",
+ "autoDisableThreshold": "নিষেধাজ্ঞার সীমা",
+ "autoDisableThresholdDesc": "স্থায়ীভাবে নিষ্ক্রিয় করার আগে প্রয়োজনীয় ধারাবাহিক নিষেধাজ্ঞার সংকেতের সংখ্যা।",
+ "autoDisableBannedScope": "স্বয়ংক্রিয় নিষ্ক্রিয়করণ প্রয়োগ করুন",
+ "autoDisableBannedScopeDesc": "নিষেধাজ্ঞার পর OmniRoute পুনঃচেষ্টা চালিয়ে গেলে আপস্ট্রিম দ্বারা লগইন সিটগুলো (পেইড সাবস্ক্রিপশন ও ফ্রি অ্যাকাউন্ট) লক করা হতে পারে। পেইড প্রিপেইড API keys-এর ক্ষেত্রে এই ঝুঁকি নেই—সেগুলো পুলে রাখুন, যাতে fill-first পরবর্তী key ব্যবহার করতে পারে।",
+ "autoDisableBannedScopeAll": "সব সংযোগ",
+ "autoDisableBannedScopeAllDesc": "প্রিপেইড API keys-সহ স্থায়ী নিষেধাজ্ঞার সংকেত ফেরত দেওয়া প্রতিটি সংযোগ নিষ্ক্রিয় করুন।",
+ "autoDisableBannedScopeSubscription": "শুধু লগইন / সাবস্ক্রিপশন অ্যাকাউন্ট",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth, cookie, session এবং web-login সিটগুলো (পেইড বা ফ্রি) নিষ্ক্রিয় করুন। প্রিপেইড API keys সক্রিয় থাকবে, যাতে রাউটিং ফেইলওভার করতে পারে।",
"customBannedSignals": "নিষিদ্ধ কীওয়ার্ড",
"customBannedSignalsDesc": "অতিরিক্ত কীওয়ার্ড যা স্থায়ী অ্যাকাউন্ট ব্যান সনাক্তকরণ ট্রিগার করে। বিল্ট-ইন কীওয়ার্ড সর্বদা প্রযোজ্য।",
"customBannedSignalsPlaceholder": "যেমন: api key revoked",
"noCustomBannedSignals": "কোনো কাস্টম কীওয়ার্ড নেই। শুধুমাত্র বিল্ট-ইন কীওয়ার্ড সক্রিয় রয়েছে।",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "স্থিতিস্থাপকতার কাঠামো",
"resilienceStructureDesc": "এই পৃষ্ঠাটি শুধুমাত্র আচরণ কনফিগার করে। স্বাস্থ্য পৃষ্ঠায় লাইভ ব্রেকার স্টেট দেখানো হয়েছে। কম্বো-নির্দিষ্ট পুনরায় চেষ্টা এবং রাউন্ড-রবিন স্লট নিয়ন্ত্রণ কম্বো সেটিংসে থাকে।",
- "enableThinking": "Enable Thinking",
- "maxThinkingTokens": "Max Thinking Tokens",
- "enableProxy": "Enable Proxy",
+ "enableThinking": "চিন্তন সক্রিয় করুন",
+ "maxThinkingTokens": "সর্বাধিক চিন্তন টোকেন",
+ "enableProxy": "প্রক্সি সক্রিয় করুন",
"perKeyProxyEnabled": "প্রতি-কী প্রক্সি অ্যাসাইনমেন্ট সক্ষম করুন",
"perKeyProxyEnabledDesc": "সক্রিয় করা হলে, প্রতিটি প্রোভাইডার সংযোগ নিজস্ব প্রক্সি অ্যাসাইনমেন্ট ব্যবহার করতে পারে",
- "proxyUrl": "Proxy URL",
- "pricingRates": "Pricing Rates Format",
- "currentPricing": "Current Pricing Overview",
- "loadingPricing": "Loading pricing data...",
- "noPricing": "No pricing data available",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
+ "proxyUrl": "প্রক্সি URL",
+ "pricingRates": "মূল্যহারের ফরম্যাট",
+ "currentPricing": "বর্তমান মূল্য নির্ধারণের সারসংক্ষেপ",
+ "loadingPricing": "মূল্য নির্ধারণের ডেটা লোড হচ্ছে...",
+ "noPricing": "কোনো মূল্য নির্ধারণের ডেটা উপলভ্য নেই",
+ "input": "ইনপুট",
+ "output": "আউটপুট",
+ "cached": "ক্যাশ করা",
"reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "customPricing": "Custom Pricing",
- "databaseSize": "Database Size",
- "backupDb": "Backup Database",
- "restoreDb": "Restore Database",
- "exportData": "Export Data",
- "importData": "Import Data",
- "clearData": "Clear All Data",
- "clearDataConfirm": "This will permanently delete all data. Are you sure?",
- "enableRequestLogs": "Enable Request Logs",
- "logRetention": "Log Retention",
- "ipWhitelist": "IP Whitelist",
- "ipBlacklist": "IP Blacklist",
- "addIP": "Add IP",
- "savedSuccessfully": "Settings saved successfully",
+ "cacheCreation": "ক্যাশ তৈরি",
+ "customPricing": "কাস্টম মূল্য নির্ধারণ",
+ "databaseSize": "ডেটাবেসের আকার",
+ "backupDb": "ডেটাবেস ব্যাকআপ করুন",
+ "restoreDb": "ডেটাবেস পুনরুদ্ধার করুন",
+ "exportData": "ডেটা এক্সপোর্ট করুন",
+ "importData": "ডেটা ইমপোর্ট করুন",
+ "clearData": "সমস্ত ডেটা মুছুন",
+ "clearDataConfirm": "এটি স্থায়ীভাবে সমস্ত ডেটা মুছে ফেলবে। আপনি কি নিশ্চিত?",
+ "enableRequestLogs": "রিকোয়েস্ট লগ সক্রিয় করুন",
+ "logRetention": "লগ সংরক্ষণের সময়কাল",
+ "ipWhitelist": "IP অনুমোদন তালিকা",
+ "ipBlacklist": "IP ব্লক তালিকা",
+ "addIP": "IP যোগ করুন",
+ "savedSuccessfully": "সেটিংস সফলভাবে সংরক্ষণ করা হয়েছে",
"ai": "AI",
- "advanced": "Advanced",
- "localMode": "Local Mode — All data stored on your machine",
- "settingsSectionsAria": "Settings sections",
- "switchThemes": "Switch between light and dark themes",
- "themeSelectionAria": "Theme selection",
- "themeLight": "Light",
- "themeDark": "Dark",
- "themeSystem": "System",
+ "advanced": "উন্নত",
+ "localMode": "লোকাল মোড — সমস্ত ডেটা আপনার মেশিনে সংরক্ষিত থাকে",
+ "settingsSectionsAria": "সেটিংসের বিভাগসমূহ",
+ "switchThemes": "লাইট ও ডার্ক থিমের মধ্যে পরিবর্তন করুন",
+ "themeSelectionAria": "থিম নির্বাচন",
+ "themeLight": "লাইট",
+ "themeDark": "ডার্ক",
+ "themeSystem": "সিস্টেম",
"endpointTunnelVisibility": "এন্ডপয়েন্ট টানেলের দৃশ্যমানতা",
"endpointTunnelVisibilityDesc": "টানেলের অবস্থা পরিবর্তন না করে এন্ডপয়েন্ট পৃষ্ঠা থেকে টানেল নিয়ন্ত্রণ লুকান।",
"showCloudflareTunnel": "ক্লাউডফ্লেয়ার কুইক টানেল",
@@ -6748,47 +6755,47 @@
"showTailscaleFunnelDesc": "এন্ডপয়েন্ট পৃষ্ঠায় টেলস্কেল ফানেল নিয়ন্ত্রণগুলি দেখান৷",
"showNgrokTunnel": "ngrok টানেল",
"showNgrokTunnelDesc": "এন্ডপয়েন্ট পৃষ্ঠায় ngrok টানেল নিয়ন্ত্রণ দেখান।",
- "sidebarVisibility": "Hide sidebar items",
- "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter without disabling any features",
- "sidebarVisibilityHint": "Any sidebar section is hidden automatically when all of its entries are hidden",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
- "hideHealthLogs": "Hide Health Check Logs",
- "hideHealthLogsDesc": "When ON, suppress [HealthCheck] messages in server console",
- "themeAccent": "Theme color",
- "themeAccentDesc": "Choose a preset color or create your own theme with one color",
- "themeCreate": "Create theme",
- "themeCustom": "Custom theme",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "sidebarVisibility": "সাইডবারের আইটেম লুকান",
+ "sidebarVisibilityDesc": "কোনো ফিচার নিষ্ক্রিয় না করেই দৃশ্যমান জটিলতা কমাতে সাইডবারের যেকোনো নেভিগেশন এন্ট্রি লুকান",
+ "sidebarVisibilityHint": "কোনো সাইডবার বিভাগের সব এন্ট্রি লুকানো থাকলে বিভাগটি স্বয়ংক্রিয়ভাবে লুকানো হয়",
+ "presetAll": "সব",
+ "presetAllDesc": "সবকিছু দেখান",
+ "presetEssentials": "অপরিহার্য",
+ "presetEssentialsDesc": "নতুন ব্যবহারকারীর পথ - উন্নত টুলগুলো অনুসন্ধানযোগ্য থাকবে",
+ "presetMinimal": "ন্যূনতম",
+ "presetMinimalDesc": "শুধু মূল পৃষ্ঠাগুলো",
+ "presetDeveloper": "ডেভেলপার",
+ "presetDeveloperDesc": "ডেভেলপমেন্ট ও প্রক্সি টুল",
+ "presetAdmin": "অ্যাডমিন",
+ "presetAdminDesc": "পর্যবেক্ষণ ও অডিট",
+ "settingsSidebarTitle": "সাইডবার কাস্টমাইজেশন",
+ "settingsSidebarDesc": "সাইডবারে কোন আইটেমগুলো দেখানো হবে তা বেছে নিন। অপরিহার্য মোডে উন্নত টুলগুলো অনুসন্ধানযোগ্য থাকে।",
+ "hideHealthLogs": "স্বাস্থ্য পরীক্ষা লগ লুকান",
+ "hideHealthLogsDesc": "চালু থাকলে, সার্ভার কনসোলে [HealthCheck] বার্তাগুলো প্রদর্শন করা হবে না",
+ "themeAccent": "থিমের রং",
+ "themeAccentDesc": "একটি পূর্বনির্ধারিত রং বেছে নিন অথবা একটি রং দিয়ে নিজের থিম তৈরি করুন",
+ "themeCreate": "থিম তৈরি করুন",
+ "themeCustom": "কাস্টম থিম",
+ "themeBlue": "নীল",
+ "themeRed": "লাল",
+ "themeGreen": "সবুজ",
+ "themeViolet": "বেগুনি",
+ "themeOrange": "কমলা",
+ "themeCyan": "সায়ান",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "অ্যাপ্লিকেশনের নাম ও লোগো কাস্টমাইজ করুন",
+ "appName": "অ্যাপ্লিকেশনের নাম",
+ "appNameDesc": "সাইডবার ও ব্রাউজার ট্যাবে দেখানো নাম",
+ "customLogo": "কাস্টম লোগোর URL",
+ "customLogoDesc": "আপনার কাস্টম লোগো ছবির URL",
+ "uploadLogo": "লোগো আপলোড করুন",
+ "resetLogo": "ডিফল্টে রিসেট করুন",
+ "logoPreview": "প্রিভিউ",
+ "customFavicon": "ব্রাউজার ফ্যাভিকন",
+ "customFaviconDesc": "আপনার কাস্টম ফ্যাভিকনের URL (ব্রাউজার ট্যাবে দেখানো হয়)",
+ "uploadFavicon": "ফ্যাভিকন আপলোড করুন",
+ "resetFavicon": "ফ্যাভিকন রিসেট করুন",
+ "faviconPreview": "ফ্যাভিকন প্রিভিউ",
"logoFileTooLarge": "লোগো ফাইল অবশ্যই 500KB-এর কম হতে হবে",
"faviconFileTooLarge": "ফ্যাভিকন ফাইল অবশ্যই 50KB-এর কম হতে হবে",
"invalidLogoFileType": "অবৈধ ফাইলের ধরন। অনুগ্রহ করে PNG, JPG, SVG, GIF, বা WebP আপলোড করুন।",
@@ -6796,15 +6803,15 @@
"failedToReadFile": "ফাইল পড়তে ব্যর্থ হয়েছে",
"startOnLogin": "লগইনে চালু করুন",
"startOnLoginDesc": "সিস্টেম স্টার্টআপে স্বয়ংক্রিয়ভাবে OmniRoute চালু করুন এবং ব্যাকগ্রাউন্ড ট্রেতে নীরবে চালান।",
- "flushCache": "Flush Cache",
- "flushing": "Flushing…",
- "size": "Size",
- "hits": "Hits",
- "evictions": "Evictions",
- "loadingCacheStats": "Loading cache stats…",
- "globalProxy": "Global Proxy",
- "globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
- "noGlobalProxy": "No global proxy configured",
+ "flushCache": "ক্যাশ খালি করুন",
+ "flushing": "খালি করা হচ্ছে…",
+ "size": "আকার",
+ "hits": "হিট",
+ "evictions": "উচ্ছেদ",
+ "loadingCacheStats": "ক্যাশের পরিসংখ্যান লোড হচ্ছে…",
+ "globalProxy": "গ্লোবাল প্রক্সি",
+ "globalProxyDesc": "সব API কলের জন্য একটি গ্লোবাল আউটবাউন্ড প্রক্সি কনফিগার করুন। পৃথক প্রোভাইডার, কম্বো ও কী এটি ওভাররাইড করতে পারে।",
+ "noGlobalProxy": "কোনো গ্লোবাল প্রক্সি কনফিগার করা নেই",
"proxyPool": "প্রক্সি পুল",
"freePool": "ফ্রি পুল",
"proxyDocumentation": "প্রক্সি ডকুমেন্টেশন",
@@ -6892,21 +6899,21 @@
"refreshInterval": "রিফ্রেশ ইন্টারভ্যাল",
"ruleModeDescription": "নিয়ম মোড বর্ণনা"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "বাল্ক স্বাস্থ্য পরীক্ষা",
+ "bulkHealthcheckDesc": "কোনগুলো কাজ করে তা জানতে একটি লক্ষ্য URL-এর বিপরীতে কনফিগার করা সব প্রক্সি পরীক্ষা করুন।",
+ "healthcheckTesting": "পরীক্ষা করা হচ্ছে...",
+ "healthcheckAll": "সবগুলোর স্বাস্থ্য পরীক্ষা",
+ "healthcheckFailed": "স্বাস্থ্য পরীক্ষা চালানো যায়নি",
+ "healthcheckTestingAll": "সব প্রক্সি সমান্তরালভাবে পরীক্ষা করা হচ্ছে...",
+ "healthcheckTotal": "মোট",
+ "healthcheckWorking": "সচল",
+ "healthcheckFailedLabel": "ব্যর্থ",
+ "healthcheckStatus": "অবস্থা",
+ "healthcheckProxyUrl": "প্রক্সি URL",
+ "healthcheckLatency": "বিলম্ব",
"proxyDocumentationScopeTitle": "প্রক্সি স্কোপ রেজোলিউশন",
"proxyDocumentationScopeDescBefore": "OmniRoute অগ্রাধিকারের ক্রমানুসারে আউটবাউন্ড প্রক্সি সমাধান করে:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "combo → অ্যাকাউন্ট → প্রদানকারী → গ্লোবাল",
"proxyDocumentationScopeDescAfter": ". সবচেয়ে নির্দিষ্ট স্কোপটি অগ্রাধিকার পায়।",
"proxyDocumentationAddTitle": "একটি কাস্টম প্রক্সি যোগ করা",
"proxyDocumentationAddDescBefore": "যান",
@@ -6941,7 +6948,7 @@
"proxyFreePoolAddSelected": "নির্বাচিতগুলি পুলে যোগ করুন",
"proxyFreePoolAddVisible": "দৃশ্যমান সবগুলি পুলে যোগ করুন",
"proxyFreePoolSource": "উৎস",
- "proxyFreePoolHostPort": "Host:Port",
+ "proxyFreePoolHostPort": "হোস্ট:পোর্ট",
"proxyFreePoolType": "ধরন",
"proxyFreePoolCountry": "দেশ",
"proxyFreePoolQuality": "গুণমান",
@@ -6962,22 +6969,22 @@
"proxyFreePoolLoadMore": "আরও লোড করুন",
"close": "বন্ধ করুন",
"cancel": "বাতিল করুন",
- "globalLabel": "Global",
- "configure": "Configure",
- "globalSystemPrompt": "Global System Prompt",
- "saved": "Saved",
+ "globalLabel": "গ্লোবাল",
+ "configure": "কনফিগার করুন",
+ "globalSystemPrompt": "গ্লোবাল সিস্টেম প্রম্পট",
+ "saved": "সংরক্ষিত",
"beforePromptLabel": "প্রম্পটের আগে",
"beforePromptDesc": "এজেন্ট/প্রোভাইডার সিস্টেম নির্দেশাবলীর আগে ইনজেক্ট করা হয়েছে",
"beforePromptPlaceholder": "এজেন্ট/প্রোভাইডার প্রম্পটের আগে নির্দেশাবলী সন্নিবেশ করা হয়েছে...",
"afterPromptLabel": "প্রম্পটের পরে",
"afterPromptDesc": "এজেন্ট/প্রোভাইডার সিস্টেম নির্দেশাবলীর পরে ইনজেক্ট করা হয়েছে",
"afterPromptPlaceholder": "এজেন্ট/প্রোভাইডার প্রম্পটের পরে নির্দেশাবলী সন্নিবেশ করা হয়েছে...",
- "chars": "{count} chars",
- "thinkingBudgetTitle": "Thinking Budget",
+ "chars": "{count} অক্ষর",
+ "thinkingBudgetTitle": "চিন্তন বাজেট",
"thinkingBudgetDesc": "Control AI reasoning token usage across all requests",
"thinkingBudgetIndependenceHint": "সংকোচন, রাউটিং, এবং টোকেন-সীমা বৈশিষ্ট্যগুলি প্রতিটি মোডে কাজ করতে থাকে। অটো মানে “অটো-শো চিন্তা” নয় — এটি ক্লায়েন্টের যুক্তি ক্ষেত্রগুলি মুছে ফেলে।",
- "passthrough": "Passthrough",
- "passthroughDesc": "No changes — client controls thinking budget",
+ "passthrough": "অপরিবর্তিতভাবে প্রেরণ",
+ "passthroughDesc": "কোনো পরিবর্তন নয় — ক্লায়েন্ট চিন্তন বাজেট নিয়ন্ত্রণ করে",
"thinkingModePassthrough": "পাসথ্রু",
"thinkingModePassthroughDesc": "ক্লায়েন্টের যুক্তি অপরিবর্তিত রাখুন (প্রয়াস, সারসংক্ষেপ, চিন্তার ব্লক)। Codex/Desktop দৃশ্যমান চিন্তার জন্য প্রয়োজনীয়। ডিফল্ট।",
"thinkingModeAuto": "অটো (স্ট্রিপ)",
@@ -6987,36 +6994,36 @@
"thinkingModeAdaptive": "অ্যাডাপটিভ",
"thinkingModeAdaptiveDesc": "বার্তা সংখ্যা, সরঞ্জাম এবং প্রম্পট দৈর্ঘ্য ব্যবহার করে একটি ভিত্তি প্রচেষ্টার থেকে চিন্তার বাজেট স্কেল করুন।",
"auto": "Auto Combo",
- "autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "custom": "Custom",
- "customDesc": "Set a fixed token budget for all requests",
- "adaptive": "Adaptive",
- "adaptiveDesc": "Scale budget based on request complexity",
- "effortNone": "None (0 tokens)",
- "effortLow": "Low (1K tokens)",
- "effortMedium": "Medium (10K tokens)",
- "effortHigh": "High (128K tokens)",
- "tokenBudget": "Token Budget",
- "tokens": "tokens",
- "baseEffortLevel": "Base Effort Level",
+ "autoDesc": "স্বয়ংক্রিয়ভাবে ত্রুটি সারানো স্মার্ট রাউটিং পুল (পারফরম্যান্সের জন্য অপ্টিমাইজ করা)",
+ "custom": "কাস্টম",
+ "customDesc": "সব অনুরোধের জন্য একটি নির্দিষ্ট টোকেন বাজেট সেট করুন",
+ "adaptive": "অভিযোজিত",
+ "adaptiveDesc": "অনুরোধের জটিলতার ভিত্তিতে বাজেট সমন্বয় করুন",
+ "effortNone": "কোনোটিই নয় (0 টোকেন)",
+ "effortLow": "কম (1K টোকেন)",
+ "effortMedium": "মাঝারি (10K টোকেন)",
+ "effortHigh": "উচ্চ (128K টোকেন)",
+ "tokenBudget": "টোকেন বাজেট",
+ "tokens": "টোকেন",
+ "baseEffortLevel": "মূল প্রচেষ্টার স্তর",
"adaptiveHint": "Adaptive mode scales from this base level based on message count, tool usage, and prompt length.",
- "requireLogin": "Require login",
- "requireLoginDesc": "When ON, dashboard requires password. When OFF, access without login.",
- "currentPassword": "Current Password",
- "enterCurrentPassword": "Enter current password",
- "newPassword": "New Password",
- "enterNewPassword": "Enter new password",
- "confirmPassword": "Confirm New Password",
- "confirmPasswordPlaceholder": "Confirm new password",
- "passwordsNoMatch": "Passwords do not match",
- "passwordUpdated": "Password updated successfully",
- "failedUpdatePassword": "Failed to update password",
- "errorOccurred": "An error occurred",
- "updatePassword": "Update Password",
- "setPassword": "Set Password",
- "apiEndpointProtection": "API Endpoint Protection",
- "requireAuthModels": "Require API key for /models",
- "requireAuthModelsDesc": "When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.",
+ "requireLogin": "লগইন আবশ্যক",
+ "requireLoginDesc": "চালু থাকলে ড্যাশবোর্ডে প্রবেশের জন্য পাসওয়ার্ড প্রয়োজন। বন্ধ থাকলে লগইন ছাড়াই প্রবেশ করা যাবে।",
+ "currentPassword": "বর্তমান পাসওয়ার্ড",
+ "enterCurrentPassword": "বর্তমান পাসওয়ার্ড লিখুন",
+ "newPassword": "নতুন পাসওয়ার্ড",
+ "enterNewPassword": "নতুন পাসওয়ার্ড লিখুন",
+ "confirmPassword": "নতুন পাসওয়ার্ড নিশ্চিত করুন",
+ "confirmPasswordPlaceholder": "নতুন পাসওয়ার্ডটি আবার লিখুন",
+ "passwordsNoMatch": "পাসওয়ার্ডগুলো মিলছে না",
+ "passwordUpdated": "পাসওয়ার্ড সফলভাবে আপডেট করা হয়েছে",
+ "failedUpdatePassword": "পাসওয়ার্ড আপডেট করা যায়নি",
+ "errorOccurred": "একটি ত্রুটি ঘটেছে",
+ "updatePassword": "পাসওয়ার্ড আপডেট করুন",
+ "setPassword": "পাসওয়ার্ড সেট করুন",
+ "apiEndpointProtection": "API এন্ডপয়েন্ট সুরক্ষা",
+ "requireAuthModels": "/models-এর জন্য API কী আবশ্যক করুন",
+ "requireAuthModelsDesc": "চালু থাকলে, অননুমোদিত অনুরোধের ক্ষেত্রে /v1/models এন্ডপয়েন্ট 404 ফেরত দেয়। এটি অননুমোদিত ব্যবহারকারীদের মডেল শনাক্ত করা প্রতিরোধ করে।",
"authModelHeading": "সক্রিয় অনুমোদন মডেল",
"authModelClient": "ক্লায়েন্ট API এন্ডপয়েন্ট (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) এর জন্য একটি Bearer API কী প্রয়োজন।",
"authModelManagement": "ম্যানেজমেন্ট এন্ডপয়েন্টের (/ড্যাশবোর্ড, /api/*) একটি ড্যাশবোর্ড সেশন বা ম্যানেজমেন্ট শংসাপত্র প্রয়োজন।",
@@ -7025,16 +7032,16 @@
"bruteForceProtectionDesc": "একই IP থেকে বারবার ব্যর্থতার পর থ্রোটল এবং লক /api/auth/login করুন।",
"corsAllowedOrigins": "CORS অনুমোদিত উত্স",
"corsAllowedOriginsDesc": "এই সার্ভারে কল করার জন্য অনুমোদিত ব্রাউজার উত্সের কমা দ্বারা পৃথক করা তালিকা৷ খালি তালিকা = কোন ব্রাউজার CORS অ্যাক্সেস নেই (সার্ভার থেকে সার্ভার এখনও কাজ করে)। শুধুমাত্র উন্নয়নের জন্য CORS_ALLOW_ALL=true env var ব্যবহার করুন।",
- "blockedProviders": "Blocked Providers",
- "blockedProvidersDesc": "Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.",
- "providersBlocked": "{count} provider(s) blocked from /models",
- "blockProviderTitle": "Block {provider}",
- "unblockProviderTitle": "Unblock {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "blockedProviders": "ব্লক করা প্রোভাইডার",
+ "blockedProvidersDesc": "/v1/models-এর রেসপন্স থেকে নির্দিষ্ট প্রোভাইডার লুকান। ব্লক করা প্রোভাইডারগুলো মডেল তালিকায় দেখা যাবে না।",
+ "providersBlocked": "/models থেকে {count}টি প্রোভাইডার ব্লক করা হয়েছে",
+ "blockProviderTitle": "{provider}-কে ব্লক করুন",
+ "unblockProviderTitle": "{provider}-এর ব্লক তুলে নিন",
+ "cliFingerprint": "CLI ফিঙ্গারপ্রিন্ট মিলকরণ",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count}টি প্রোভাইডারের CLI ফিঙ্গারপ্রিন্ট সক্রিয়",
+ "enableFingerprintTitle": "{provider}-এর জন্য ফিঙ্গারপ্রিন্ট সক্রিয় করুন",
+ "disableFingerprintTitle": "{provider}-এর জন্য ফিঙ্গারপ্রিন্ট নিষ্ক্রিয় করুন",
"systemTransforms": "সিস্টেম-ব্লক ট্রান্সফর্ম পাইপলাইন",
"systemTransformsDesc": "প্রতি-প্রদানকারী ফরওয়ার্ড করার আগে অনুরোধের বডিতে প্রয়োগ করা রূপান্তরের পাইপলাইন অর্ডার করেছে। যেকোনো প্রদানকারী আইডি সমর্থন করে।",
"systemTransformsAddProvider": "প্রদানকারী যোগ করুন",
@@ -7045,29 +7052,29 @@
"systemTransformsOpMoveUp": "উপরে সরান",
"systemTransformsOpMoveDown": "নিচে সরান",
"systemTransformsOpDelete": "অপশন মুছুন",
- "routingStrategy": "Routing Strategy",
- "routingAdvancedGuideTitle": "Advanced routing guidance",
+ "routingStrategy": "রাউটিং কৌশল",
+ "routingAdvancedGuideTitle": "উন্নত রাউটিং নির্দেশনা",
"routingAdvancedGuideHint1": "Use Fill First for predictable priority, Round Robin for fairness, and P2C for latency resilience.",
"routingAdvancedGuideHint2": "If providers vary in quality/cost, start with Cost Opt for background work and Least Used for balanced wear.",
- "fillFirst": "Fill First",
- "fillFirstDesc": "Use accounts in priority order",
+ "fillFirst": "প্রথমটি পূরণ করুন",
+ "fillFirstDesc": "অগ্রাধিকারের ক্রমে অ্যাকাউন্ট ব্যবহার করুন",
"roundRobin": "Round Robin",
- "roundRobinDesc": "Cycle through all accounts",
+ "roundRobinDesc": "সব অ্যাকাউন্ট পর্যায়ক্রমে ব্যবহার করুন",
"p2c": "P2C",
- "p2cDesc": "Pick 2 random, use the healthier one",
- "random": "Random",
- "randomDesc": "Random account each request",
- "leastUsed": "Least Used",
- "leastUsedDesc": "Pick least recently used account",
- "costOpt": "Cost Opt",
- "costOptDesc": "Prefer cheapest available account",
+ "p2cDesc": "এলোমেলোভাবে ২টি বেছে নিয়ে বেশি কার্যকরটি ব্যবহার করুন",
+ "random": "এলোমেলো",
+ "randomDesc": "প্রতিটি অনুরোধে এলোমেলো অ্যাকাউন্ট",
+ "leastUsed": "সবচেয়ে কম ব্যবহৃত",
+ "leastUsedDesc": "সবচেয়ে বেশি সময় ধরে অব্যবহৃত অ্যাকাউন্টটি বেছে নিন",
+ "costOpt": "খরচ অনুকূলকরণ",
+ "costOptDesc": "সবচেয়ে সস্তা উপলভ্য অ্যাকাউন্টকে অগ্রাধিকার দিন",
"resetAware": "রিসেট-সচেতন RR",
"resetAwareDesc": "স্বাস্থ্যকর অবশিষ্ট কোটা এবং কাছাকাছি রিসেট সহ অ্যাকাউন্ট পছন্দ করুন",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "কোটা-ভিত্তিক ওজন",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "কঠোর এলোমেলো",
+ "strictRandomDesc": "ডেক শাফল—পুনরায় শাফল করার আগে প্রতিটি অ্যাকাউন্ট একবার করে ব্যবহার করে",
+ "stickyLimit": "স্টিকি সীমা",
"stickyLimitDesc": "Calls per account before switching",
"routingStrategyTitle": "রাউটিং কৌশল",
"routingStrategySubtitle": "9router-এর সাথে মিল রাখুন: অ্যাকাউন্ট রাউন্ড-রবিন, স্টিকি লিমিট এবং কম্বো রোটেশন",
@@ -7085,225 +7092,225 @@
"providerAccountRoutingDesc": "এই প্রোভাইডারের জন্য গ্লোবাল অ্যাকাউন্ট কৌশল ওভাররাইড করুন (9router প্যারিটি)।",
"providerRoutingStrategy": "অ্যাকাউন্ট কৌশল",
"providerRoutingInheritGlobal": "গ্লোবাল ডিফল্ট ইনহেরিট করুন",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
- "modelAliases": "Model Aliases",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
- "addCustomAlias": "Add Custom Alias",
- "deprecatedModelId": "Deprecated model ID",
- "newModelId": "New model ID",
- "customAliases": "Custom Aliases",
- "builtInAliases": "Built-in Aliases",
- "backgroundDegradationTitle": "Background Task Degradation",
- "backgroundDegradationDesc": "Auto-detect background tasks (titles, summaries) and route to cheaper models",
- "enableDegradation": "Enable Background Degradation",
- "enableDegradationHint": "When enabled, background tasks like title generation and summarization are routed to cheaper models automatically",
- "tasksDetected": "Tasks detected",
- "degradationMap": "Model Degradation Map",
- "premiumModel": "Premium model",
- "cheapModel": "Cheap model",
- "detectionPatterns": "Detection Patterns",
- "newPattern": "e.g. \"generate a title\"",
+ "quotaPreflightTitle": "কোটা প্রিফ্লাইট কাটঅফ",
+ "quotaPreflightSubtitle": "আপস্ট্রিমে অনুরোধ পাঠানোর আগে কোটা শেষ হয়ে যাওয়া অ্যাকাউন্টগুলো এড়িয়ে যান",
+ "quotaPreflightEnable": "কোটা প্রিফ্লাইট সক্রিয় করুন",
+ "quotaPreflightEnableDesc": "প্রতিটি অনুরোধের আগে অ্যাকাউন্টের অবশিষ্ট কোটা (৫ ঘণ্টা / সাপ্তাহিক / মাসিক সময়সীমা) পরীক্ষা করুন। কাটঅফের সমান বা কম থাকা অ্যাকাউন্টগুলো কোনো আপস্ট্রিম কল ছাড়াই এড়িয়ে যাওয়া হয়। Provider Quota পৃষ্ঠায় নির্ধারিত প্রতিটি সময়সীমার কাটঅফ সবসময় এখানকার ডিফল্টের ওপর অগ্রাধিকার পায়।",
+ "quotaPreflightCutoff": "গ্লোবাল কাটঅফ (ন্যূনতম অবশিষ্ট %)",
+ "quotaPreflightCutoffDesc": "নিজস্ব কাটঅফবিহীন প্রতিটি সময়সীমার ক্ষেত্রে কোনো অ্যাকাউন্টের অবশিষ্ট কোটা এই শতাংশ বা তার নিচে নেমে গেলে সেটি ব্যবহার করা বন্ধ করুন। এটি Provider Quota পৃষ্ঠার অবশিষ্ট-% বারগুলোর সঙ্গে সামঞ্জস্যপূর্ণ।",
+ "quotaPreflightWindowsHint": "যেসব উইন্ডোর নিজস্ব প্রতি-উইন্ডো বা প্রতি-প্রোভাইডার কাটঅফ রয়েছে (Provider Quota পৃষ্ঠার Cutoff মোডালে সেট করা), সেগুলো এই ডিফল্ট দ্বারা প্রভাবিত হয় না।",
+ "quotaPreflightLoadFailed": "কোটা প্রিফ্লাইট সেটিংস লোড করা যায়নি।",
+ "modelAliases": "মডেল উপনাম",
+ "modelAliasesTitle": "মডেল উপনাম",
+ "modelAliasesDesc": "হুবহু মিল বা ওয়াইল্ডকার্ড প্যাটার্ন ব্যবহার করে মডেলের নাম পুনরায় ম্যাপ করুন।",
+ "addCustomAlias": "কাস্টম উপনাম যোগ করুন",
+ "deprecatedModelId": "অপ্রচলিত মডেল ID",
+ "newModelId": "নতুন মডেল ID",
+ "customAliases": "কাস্টম উপনাম",
+ "builtInAliases": "বিল্ট-ইন উপনাম",
+ "backgroundDegradationTitle": "ব্যাকগ্রাউন্ড টাস্কের অবনমন",
+ "backgroundDegradationDesc": "ব্যাকগ্রাউন্ড টাস্ক (শিরোনাম, সারসংক্ষেপ) স্বয়ংক্রিয়ভাবে শনাক্ত করে কম খরচের মডেলে রাউট করুন",
+ "enableDegradation": "ব্যাকগ্রাউন্ড অবনমন সক্ষম করুন",
+ "enableDegradationHint": "সক্ষম করা হলে, শিরোনাম তৈরি ও সারসংক্ষেপের মতো ব্যাকগ্রাউন্ড টাস্কগুলো স্বয়ংক্রিয়ভাবে কম খরচের মডেলে রাউট করা হয়",
+ "tasksDetected": "শনাক্ত করা টাস্ক",
+ "degradationMap": "মডেল অবনমন ম্যাপ",
+ "premiumModel": "প্রিমিয়াম মডেল",
+ "cheapModel": "কম খরচের মডেল",
+ "detectionPatterns": "শনাক্তকরণ প্যাটার্ন",
+ "newPattern": "যেমন, \"একটি শিরোনাম তৈরি করুন\"",
"aliasPatternPlaceholder": "claude-sonnet-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
- "pattern": "Pattern",
- "targetModel": "Target Model",
- "add": "+ Add",
- "session": "Session",
- "sessionDetailsAria": "Session details",
+ "pattern": "প্যাটার্ন",
+ "targetModel": "লক্ষ্য মডেল",
+ "add": "+ যোগ করুন",
+ "session": "সেশন",
+ "sessionDetailsAria": "সেশনের বিবরণ",
"status": "Status",
- "authenticated": "Authenticated",
- "guest": "Guest",
- "loginTime": "Login Time",
- "sessionAge": "Session Age",
- "browser": "Browser",
- "clearLocalData": "Clear Local Data",
- "logout": "Logout",
- "clearLocalDataConfirm": "Clear all local data? This will reset your preferences.",
- "unknown": "Unknown",
- "systemActor": "system",
- "ipAccessControl": "IP Access Control",
- "ipAccessControlDesc": "Block or allow specific IP addresses",
- "ipModeDisabled": "Disabled",
- "ipModeBlacklist": "Blacklist",
- "ipModeWhitelist": "Whitelist",
- "ipModeWhitelistPriority": "WL Priority",
- "addIpAddress": "Add IP Address",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
- "block": "+ Block",
- "allow": "+ Allow",
- "blocked": "Blocked ({count})",
- "allowed": "Allowed ({count})",
- "temporaryBans": "Temporary Bans ({count})",
- "minLeft": "{min}m left",
- "auditLog": "Audit Log",
- "searchAuditLogs": "Search audit logs...",
- "failedLoadAuditLog": "Failed to load audit log",
- "noAuditEvents": "No audit events found",
- "action": "Action",
- "actor": "Actor",
- "details": "Details",
- "time": "Time",
- "fallbackChainsTitle": "Fallback Chains",
- "fallbackChainsDesc": "Define provider fallback order per model",
- "addChain": "+ Add Chain",
- "modelName": "Model Name",
+ "authenticated": "প্রমাণীকৃত",
+ "guest": "অতিথি",
+ "loginTime": "লগইনের সময়",
+ "sessionAge": "সেশনের বয়স",
+ "browser": "ব্রাউজার",
+ "clearLocalData": "লোকাল ডেটা মুছুন",
+ "logout": "লগআউট",
+ "clearLocalDataConfirm": "সব লোকাল ডেটা মুছবেন? এতে আপনার পছন্দসমূহ রিসেট হবে।",
+ "unknown": "অজানা",
+ "systemActor": "সিস্টেম",
+ "ipAccessControl": "IP অ্যাক্সেস নিয়ন্ত্রণ",
+ "ipAccessControlDesc": "নির্দিষ্ট IP ঠিকানা ব্লক করুন বা অনুমতি দিন",
+ "ipModeDisabled": "নিষ্ক্রিয়",
+ "ipModeBlacklist": "ব্ল্যাকলিস্ট",
+ "ipModeWhitelist": "হোয়াইটলিস্ট",
+ "ipModeWhitelistPriority": "WL অগ্রাধিকার",
+ "addIpAddress": "IP ঠিকানা যোগ করুন",
+ "ipAddressPlaceholder": "192.168.1.0/24 বা 10.0.*.*",
+ "block": "+ ব্লক করুন",
+ "allow": "+ অনুমতি দিন",
+ "blocked": "ব্লক করা হয়েছে ({count})",
+ "allowed": "অনুমোদিত ({count})",
+ "temporaryBans": "অস্থায়ী নিষেধাজ্ঞা ({count})",
+ "minLeft": "আর {min}মি বাকি",
+ "auditLog": "অডিট লগ",
+ "searchAuditLogs": "অডিট লগ অনুসন্ধান করুন...",
+ "failedLoadAuditLog": "অডিট লগ লোড করা যায়নি",
+ "noAuditEvents": "কোনো অডিট ইভেন্ট পাওয়া যায়নি",
+ "action": "অ্যাকশন",
+ "actor": "সম্পাদনকারী",
+ "details": "বিস্তারিত",
+ "time": "সময়",
+ "fallbackChainsTitle": "ফলব্যাক চেইন",
+ "fallbackChainsDesc": "প্রতিটি মডেলের জন্য প্রদানকারীর ফলব্যাক ক্রম নির্ধারণ করুন",
+ "addChain": "+ চেইন যোগ করুন",
+ "modelName": "মডেলের নাম",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
- "providersCommaSeparated": "Providers (comma-separated, in priority order)",
+ "providersCommaSeparated": "প্রদানকারীরা (কমা দিয়ে পৃথক করা, অগ্রাধিকারের ক্রমানুসারে)",
"providersCommaSeparatedPlaceholder": "anthropic, openai, gemini",
- "createChain": "Create Chain",
- "noFallbackChains": "No Fallback Chains",
- "noFallbackChainsDesc": "Create a chain to define provider fallback order for a model.",
- "loadingFallbackChains": "Loading fallback chains...",
- "deleteChainConfirm": "Delete fallback chain for \"{model}\"?",
- "chainCreated": "Chain created for {model}",
- "chainDeleted": "Chain deleted for {model}",
- "failedCreateChain": "Failed to create chain",
- "failedDeleteChain": "Failed to delete chain",
- "deleteChain": "Delete chain",
- "fillModelAndProviders": "Please fill model name and providers",
- "addAtLeastOneProvider": "Add at least one provider",
- "comboDefaultsTitle": "Combo Defaults",
- "comboDefaultsGuideTitle": "How to tune combo defaults",
- "comboDefaultsGuideHint1": "Keep retries low in low-latency flows; increase timeout only for long generation tasks.",
- "comboDefaultsGuideHint2": "Use provider overrides when one provider needs different timeout/retry behavior than global defaults.",
- "globalComboConfig": "Global combo configuration",
+ "createChain": "চেইন তৈরি করুন",
+ "noFallbackChains": "কোনো ফলব্যাক চেইন নেই",
+ "noFallbackChainsDesc": "একটি মডেলের জন্য প্রদানকারীর ফলব্যাক ক্রম নির্ধারণ করতে একটি চেইন তৈরি করুন।",
+ "loadingFallbackChains": "ফলব্যাক চেইন লোড হচ্ছে...",
+ "deleteChainConfirm": "\"{model}\"-এর ফলব্যাক চেইন মুছবেন?",
+ "chainCreated": "{model}-এর জন্য চেইন তৈরি করা হয়েছে",
+ "chainDeleted": "{model}-এর চেইন মুছে ফেলা হয়েছে",
+ "failedCreateChain": "চেইন তৈরি করা যায়নি",
+ "failedDeleteChain": "চেইন মুছে ফেলা যায়নি",
+ "deleteChain": "চেইন মুছুন",
+ "fillModelAndProviders": "অনুগ্রহ করে মডেলের নাম ও প্রদানকারীদের তথ্য পূরণ করুন",
+ "addAtLeastOneProvider": "অন্তত একজন প্রদানকারী যোগ করুন",
+ "comboDefaultsTitle": "কম্বো ডিফল্ট",
+ "comboDefaultsGuideTitle": "কম্বো ডিফল্ট কীভাবে সমন্বয় করবেন",
+ "comboDefaultsGuideHint1": "কম লেটেন্সির ফ্লোতে পুনঃচেষ্টার সংখ্যা কম রাখুন; শুধু দীর্ঘ জেনারেশন টাস্কের জন্য টাইমআউট বাড়ান।",
+ "comboDefaultsGuideHint2": "কোনো প্রদানকারীর জন্য গ্লোবাল ডিফল্টের চেয়ে আলাদা টাইমআউট/পুনঃচেষ্টা আচরণ প্রয়োজন হলে প্রদানকারী ওভাররাইড ব্যবহার করুন।",
+ "globalComboConfig": "গ্লোবাল কম্বো কনফিগারেশন",
"moveUp": "উপরে সরান",
"moveDown": "নিচে সরান",
"allProvidersAdded": "সব প্রোভাইডার যোগ করা হয়েছে",
"noProvidersFound": "কোনো প্রোভাইডার পাওয়া যায়নি",
- "defaultStrategy": "Default Strategy",
+ "defaultStrategy": "ডিফল্ট কৌশল",
"defaultStrategyDesc": "Applied to new combos without explicit strategy",
- "comboStrategyAria": "Combo strategy",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Priority-style routing with automatic context handoffs when account rotation happens",
- "maxRetriesLabel": "Max Retries",
- "retryDelayLabel": "Retry Delay (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
- "healthCheckDesc": "Pre-check provider availability",
- "trackMetrics": "Track Metrics",
- "trackMetricsDesc": "Record per-combo request metrics",
- "providerOverrides": "Provider Overrides",
- "providerOverridesDesc": "Override timeout and retries per provider. Provider settings override global defaults.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
- "removeProviderOverrideAria": "Remove {provider} override",
+ "comboStrategyAria": "কম্বো কৌশল",
+ "priority": "অগ্রাধিকার",
+ "weighted": "ওজনভিত্তিক",
+ "contextRelay": "কনটেক্সট রিলে",
+ "contextRelayDesc": "অ্যাকাউন্ট রোটেশন ঘটলে স্বয়ংক্রিয় কনটেক্সট হ্যান্ডঅফসহ অগ্রাধিকার-ধাঁচের রাউটিং",
+ "maxRetriesLabel": "সর্বোচ্চ পুনঃচেষ্টা",
+ "retryDelayLabel": "পুনঃচেষ্টার বিলম্ব (ms)",
+ "timeoutLabel": "টাইমআউট (ms)",
+ "healthCheck": "স্বাস্থ্য পরীক্ষা",
+ "healthCheckDesc": "প্রোভাইডারের উপলভ্যতা আগেই পরীক্ষা করুন",
+ "trackMetrics": "মেট্রিক্স ট্র্যাক করুন",
+ "trackMetricsDesc": "প্রতি-কম্বো অনুরোধের মেট্রিক্স রেকর্ড করুন",
+ "providerOverrides": "প্রোভাইডার ওভাররাইড",
+ "providerOverridesDesc": "প্রতিটি প্রোভাইডারের জন্য টাইমআউট ও পুনঃচেষ্টা ওভাররাইড করুন। প্রোভাইডারের সেটিংস গ্লোবাল ডিফল্টকে ওভাররাইড করে।",
+ "providerMaxRetriesAria": "{provider}-এর সর্বোচ্চ পুনঃচেষ্টা",
+ "providerTimeoutAria": "{provider}-এর টাইমআউট ms",
+ "removeProviderOverrideAria": "{provider} ওভাররাইড সরান",
"selectProviderPlaceholder": "প্রোভাইডার নির্বাচন করুন...",
"searchProviderPlaceholder": "প্রোভাইডার খুঁজুন...",
"searchProviderAria": "প্রোভাইডার খুঁজুন",
- "newProviderNamePlaceholder": "e.g. google, openai...",
- "newProviderNameAria": "New provider name",
- "retries": "retries",
+ "newProviderNamePlaceholder": "যেমন google, openai...",
+ "newProviderNameAria": "নতুন প্রোভাইডারের নাম",
+ "retries": "পুনঃচেষ্টা",
"ms": "ms",
- "saveComboDefaults": "Save Combo Defaults",
- "maxNestingDepth": "Max Nesting Depth",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
+ "saveComboDefaults": "কম্বোর ডিফল্ট সংরক্ষণ করুন",
+ "maxNestingDepth": "সর্বোচ্চ নেস্টিং গভীরতা",
+ "concurrencyPerModel": "সমসাময়িকতা / মডেল",
+ "queueTimeout": "সারির টাইমআউট (ms)",
"queueDepth": "কিউ ডেপথ",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
- "providerProfiles": "Provider Profiles",
- "providerProfilesDesc": "Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
- "maxBackoffLevel": "Max Backoff Level",
- "cbThreshold": "CB Threshold",
- "cbResetTime": "CB Reset Time",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
- "defaultSafetyNet": "Default Safety Net",
+ "contextRelayHandoffThreshold": "হ্যান্ডঅফ থ্রেশহোল্ড",
+ "contextRelayMaxMessages": "সারাংশের জন্য সর্বোচ্চ বার্তা",
+ "contextRelaySummaryModel": "সারাংশ মডেল",
+ "contextRelayProviderNote": "Context Relay বর্তমানে Codex অ্যাকাউন্টগুলোর জন্য হ্যান্ডঅফ তৈরি করে এবং নতুন বা কনফিগার না করা কম্বোগুলোর গ্লোবাল ডিফল্ট হিসেবে এই মানগুলো ব্যবহার করে।",
+ "providerProfiles": "প্রোভাইডার প্রোফাইল",
+ "providerProfilesDesc": "OAuth (সেশন-ভিত্তিক) এবং API Key (ব্যবহার-পরিমাপভিত্তিক) প্রোভাইডারগুলোর জন্য পৃথক স্থিতিস্থাপকতা সেটিংস। কম রেট লিমিটের কারণে OAuth প্রোভাইডারগুলোর থ্রেশহোল্ড আরও কঠোর।",
+ "oauthProviders": "OAuth প্রোভাইডার",
+ "apiKeyProviders": "API Key প্রোভাইডার",
+ "transientCooldown": "ক্ষণস্থায়ী কুলডাউন",
+ "rateLimitCooldown": "রেট লিমিট কুলডাউন",
+ "maxBackoffLevel": "সর্বোচ্চ ব্যাকঅফ স্তর",
+ "cbThreshold": "CB থ্রেশহোল্ড",
+ "cbResetTime": "CB রিসেট সময়",
+ "rateLimiting": "রেট লিমিটিং",
+ "rateLimitingDesc": "API Key প্রোভাইডারগুলো নিরাপদ ডিফল্ট ব্যবহার করে স্বয়ংক্রিয়ভাবে রেট-লিমিট করা হয়। রেসপন্স হেডার থেকে সীমা শেখা হয় এবং সময়ের সঙ্গে তা অভিযোজিত হয়।",
+ "defaultSafetyNet": "ডিফল্ট সুরক্ষা ব্যবস্থা",
"rpm": "RPM",
- "minGap": "Min Gap",
- "maxConcurrent": "Max Concurrent",
- "activeLimiters": "Active Limiters",
- "noActiveLimiters": "No active rate limiters yet.",
- "reservoir": "Reservoir",
- "running": "Running",
- "queued": "Queued",
- "circuitBreakers": "Circuit Breakers",
- "breakerStateClosed": "Closed",
- "breakerStateOpen": "Open",
- "breakerStateHalfOpen": "Half-Open",
- "tripped": "{count} tripped",
- "healthy": "{count} healthy",
- "resetAll": "Reset All",
- "noCircuitBreakers": "No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.",
- "failures": "{count} failure(s)",
- "policiesLocked": "Policies & Locked Identifiers",
- "allOperational": "All systems operational — no lockouts or tripped breakers",
- "loadingPolicies": "Loading policies...",
- "lockedIdentifiers": "Locked Identifiers",
- "unlockedIdentifier": "Unlocked: {identifier}",
- "sinceDate": "since {date}",
- "forceUnlock": "Force Unlock",
- "unlocking": "Unlocking...",
- "failedUnlock": "Failed to unlock",
- "failedLoadWithStatus": "Failed to load: {status}",
- "failedLoadResilience": "Failed to load resilience status",
- "saveFailed": "Save failed",
- "resetFailed": "Reset failed",
- "loadingResilience": "Loading resilience status...",
- "retry": "Retry",
+ "minGap": "ন্যূনতম ব্যবধান",
+ "maxConcurrent": "সর্বোচ্চ সমসাময়িক",
+ "activeLimiters": "সক্রিয় সীমা-নিয়ন্ত্রক",
+ "noActiveLimiters": "এখনও কোনো সক্রিয় হার-সীমা নিয়ন্ত্রক নেই।",
+ "reservoir": "রিজার্ভয়ার",
+ "running": "চলমান",
+ "queued": "সারিবদ্ধ",
+ "circuitBreakers": "সার্কিট ব্রেকার",
+ "breakerStateClosed": "বন্ধ",
+ "breakerStateOpen": "খোলা",
+ "breakerStateHalfOpen": "অর্ধ-খোলা",
+ "tripped": "{count}টি ট্রিপ হয়েছে",
+ "healthy": "{count}টি সুস্থ",
+ "resetAll": "সব রিসেট করুন",
+ "noCircuitBreakers": "এখনও কোনো সার্কিট ব্রেকার সক্রিয় নেই। কম্বো পাইপলাইনের মধ্য দিয়ে অনুরোধ প্রবাহিত হলে এগুলো স্বয়ংক্রিয়ভাবে তৈরি হয়।",
+ "failures": "{count}টি ব্যর্থতা",
+ "policiesLocked": "নীতিমালা ও লক করা শনাক্তকারী",
+ "allOperational": "সব সিস্টেম সচল — কোনো লকআউট বা ট্রিপ হওয়া ব্রেকার নেই",
+ "loadingPolicies": "নীতিমালা লোড হচ্ছে...",
+ "lockedIdentifiers": "লক করা শনাক্তকারী",
+ "unlockedIdentifier": "আনলক করা হয়েছে: {identifier}",
+ "sinceDate": "{date} থেকে",
+ "forceUnlock": "জোরপূর্বক আনলক করুন",
+ "unlocking": "আনলক করা হচ্ছে...",
+ "failedUnlock": "আনলক করতে ব্যর্থ হয়েছে",
+ "failedLoadWithStatus": "লোড করতে ব্যর্থ হয়েছে: {status}",
+ "failedLoadResilience": "স্থিতিস্থাপকতার অবস্থা লোড করতে ব্যর্থ হয়েছে",
+ "saveFailed": "সংরক্ষণ ব্যর্থ হয়েছে",
+ "resetFailed": "রিসেট ব্যর্থ হয়েছে",
+ "loadingResilience": "স্থিতিস্থাপকতার অবস্থা লোড হচ্ছে...",
+ "retry": "পুনরায় চেষ্টা করুন",
"systemStorage": "System & Storage",
- "allDataLocal": "All data stored locally on your machine",
- "databasePath": "Database Path",
+ "allDataLocal": "সমস্ত ডেটা আপনার মেশিনে স্থানীয়ভাবে সংরক্ষিত",
+ "databasePath": "ডেটাবেসের পাথ",
"export": "এক্সপোর্ট",
- "exportDatabase": "Export Database",
- "exportAll": "Export All (.tar.gz)",
- "importDatabase": "Import Database",
- "confirmDbImport": "Confirm Database Import",
- "confirmDbImportDesc": "This will replace all current data with the content from {file}. A backup will be created automatically before the import.",
- "yesImport": "Yes, Import",
- "lastBackup": "Last Backup",
- "noBackupYet": "No backup yet",
- "backupNow": "Backup Now",
- "backupRestore": "Backup & Restore",
- "viewBackups": "View Backups",
- "hide": "Hide",
- "backupRetentionDesc": "Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.",
- "loadingBackups": "Loading backups...",
- "noBackupsYet": "No backups available yet. Backups will be created automatically when data changes.",
- "backupsAvailable": "{count} backup(s) available",
- "refresh": "Refresh",
- "confirm": "Confirm?",
- "yes": "Yes",
- "no": "No",
- "restore": "Restore",
- "invalidFileType": "Invalid file type. Only .sqlite files are accepted.",
- "exportFailed": "Export failed",
- "exportFailedWithError": "Export failed: {error}",
- "fullExportFailedWithError": "Full export failed: {error}",
- "backupCreated": "Backup created: {file}",
- "restoreSuccess": "Restored! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "importSuccess": "Database imported! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "minutesAgo": "{count}m ago",
- "hoursAgo": "{count}h ago",
- "daysAgo": "{count}d ago",
- "backupReasonManual": "manual",
- "backupReasonPreRestore": "pre-restore",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
- "noChangesSinceBackup": "No changes since last backup",
- "backupFailed": "Backup failed",
- "restoreFailed": "Restore failed",
- "importFailed": "Import failed",
- "errorDuringRestore": "An error occurred during restore",
- "errorDuringImport": "An error occurred during import",
- "modelPricing": "Model Pricing",
- "modelPricingDesc": "Configure cost rates per model • All rates in $/1M tokens",
+ "exportDatabase": "ডেটাবেস এক্সপোর্ট করুন",
+ "exportAll": "সব এক্সপোর্ট করুন (.tar.gz)",
+ "importDatabase": "ডেটাবেস ইমপোর্ট করুন",
+ "confirmDbImport": "ডেটাবেস ইমপোর্ট নিশ্চিত করুন",
+ "confirmDbImportDesc": "এটি বর্তমান সব ডেটা {file}-এর বিষয়বস্তু দিয়ে প্রতিস্থাপন করবে। ইমপোর্টের আগে স্বয়ংক্রিয়ভাবে একটি ব্যাকআপ তৈরি করা হবে।",
+ "yesImport": "হ্যাঁ, ইমপোর্ট করুন",
+ "lastBackup": "সর্বশেষ ব্যাকআপ",
+ "noBackupYet": "এখনও কোনো ব্যাকআপ নেই",
+ "backupNow": "এখনই ব্যাকআপ নিন",
+ "backupRestore": "ব্যাকআপ ও পুনরুদ্ধার",
+ "viewBackups": "ব্যাকআপ দেখুন",
+ "hide": "লুকান",
+ "backupRetentionDesc": "পুনরুদ্ধারের আগে এবং ডেটা পরিবর্তিত হলে প্রতি ১৫ মিনিটে স্বয়ংক্রিয়ভাবে ডেটাবেস স্ন্যাপশট তৈরি করা হয়। সংরক্ষণকাল: স্মার্ট রোটেশনসহ ২৪টি ঘণ্টাভিত্তিক + ৩০টি দৈনিক ব্যাকআপ।",
+ "loadingBackups": "ব্যাকআপ লোড হচ্ছে...",
+ "noBackupsYet": "এখনও কোনো ব্যাকআপ উপলভ্য নেই। ডেটা পরিবর্তিত হলে স্বয়ংক্রিয়ভাবে ব্যাকআপ তৈরি করা হবে।",
+ "backupsAvailable": "{count}টি ব্যাকআপ উপলভ্য",
+ "refresh": "রিফ্রেশ করুন",
+ "confirm": "নিশ্চিত করবেন?",
+ "yes": "হ্যাঁ",
+ "no": "না",
+ "restore": "পুনরুদ্ধার করুন",
+ "invalidFileType": "ফাইলের ধরন সঠিক নয়। শুধু .sqlite ফাইল গ্রহণ করা হয়।",
+ "exportFailed": "এক্সপোর্ট ব্যর্থ হয়েছে",
+ "exportFailedWithError": "এক্সপোর্ট ব্যর্থ হয়েছে: {error}",
+ "fullExportFailedWithError": "সম্পূর্ণ এক্সপোর্ট ব্যর্থ হয়েছে: {error}",
+ "backupCreated": "ব্যাকআপ তৈরি হয়েছে: {file}",
+ "restoreSuccess": "পুনরুদ্ধার সম্পন্ন! {connections}টি সংযোগ, {nodes}টি নোড, {combos}টি কম্বো, {apiKeys}টি API কী।",
+ "importSuccess": "ডেটাবেস ইমপোর্ট হয়েছে! {connections}টি সংযোগ, {nodes}টি নোড, {combos}টি কম্বো, {apiKeys}টি API কী।",
+ "minutesAgo": "{count} মিনিট আগে",
+ "hoursAgo": "{count} ঘণ্টা আগে",
+ "daysAgo": "{count} দিন আগে",
+ "backupReasonManual": "ম্যানুয়াল",
+ "backupReasonPreRestore": "পুনরুদ্ধারের পূর্ববর্তী",
+ "connectionsCount": "{count, plural, one {#টি সংযোগ} other {#টি সংযোগ}}",
+ "noChangesSinceBackup": "শেষ ব্যাকআপের পর কোনো পরিবর্তন হয়নি",
+ "backupFailed": "ব্যাকআপ ব্যর্থ হয়েছে",
+ "restoreFailed": "পুনরুদ্ধার ব্যর্থ হয়েছে",
+ "importFailed": "ইমপোর্ট ব্যর্থ হয়েছে",
+ "errorDuringRestore": "পুনরুদ্ধারের সময় একটি ত্রুটি ঘটেছে",
+ "errorDuringImport": "ইমপোর্টের সময় একটি ত্রুটি ঘটেছে",
+ "modelPricing": "মডেলের মূল্য নির্ধারণ",
+ "modelPricingDesc": "প্রতি মডেলের খরচের হার কনফিগার করুন • সব হার $/1M টোকেনে",
"pricingCoverage": "কভারেজ",
"pricingAuth": "অথ",
"pricingSort": "সর্ট করুন",
@@ -7325,7 +7332,7 @@
"configured": "কনফিগার করা হয়েছে",
"none": "কোনোটিই নয়",
"modelOverrideValuePlaceholder": "সংখ্যাসূচক মান",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "ইংরেজিতে কমা দিয়ে আলাদা করা, যেমন low, medium, high",
"addKeyValue": "কী ভ্যালু যোগ করুন",
"noModelOverrides": "এই মডেলের জন্য কোনো ওভাররাইড কনফিগার করা হয়নি।",
"modelOverrideLoadFailed": "মডেল ওভাররাইড লোড করতে ব্যর্থ হয়েছে",
@@ -7333,66 +7340,66 @@
"modelOverrideRemoved": "মডেল ওভাররাইড সরিয়ে ফেলা হয়েছে",
"modelOverrideSaveFailed": "মডেল ওভাররাইড সংরক্ষণ করতে ব্যর্থ হয়েছে",
"modelOverrideRemoveFailed": "মডেল ওভাররাইড সরিয়ে ফেলতে ব্যর্থ হয়েছে",
- "registry": "Registry",
- "priced": "Priced",
- "searchProvidersModels": "Search providers or models...",
- "showAll": "Show All",
- "noProvidersMatch": "No providers match your search.",
- "howPricingWorks": "How Pricing Works",
- "cacheWrite": "Cache Write",
- "unsaved": "unsaved",
+ "registry": "রেজিস্ট্রি",
+ "priced": "মূল্য নির্ধারিত",
+ "searchProvidersModels": "প্রোভাইডার বা মডেল খুঁজুন...",
+ "showAll": "সব দেখান",
+ "noProvidersMatch": "আপনার অনুসন্ধানের সঙ্গে কোনো প্রদানকারী মেলেনি।",
+ "howPricingWorks": "মূল্য নির্ধারণ যেভাবে কাজ করে",
+ "cacheWrite": "ক্যাশ লেখা",
+ "unsaved": "অসংরক্ষিত",
"resetDefaults": "ডিফল্ট রিসেট করুন",
- "saveProvider": "Save Provider",
+ "saveProvider": "প্রদানকারী সংরক্ষণ করুন",
"model": "Model",
- "models": "models",
- "moreProviders": "{count} more providers",
- "withPricing": "with pricing configured",
- "policiesCircuitBreakers": "Policies & Circuit Breakers",
- "activeIssuesDetected": "Active issues detected",
- "off": "Off",
- "resetPricingConfirm": "Reset all pricing for {provider} to defaults?",
- "pricingDescInput": "Input: tokens sent to the model",
- "pricingDescOutput": "Output: tokens generated",
- "pricingDescCached": "Cached: reused input (~50% of input rate)",
- "pricingDescReasoning": "Reasoning: thinking tokens (falls back to Output)",
- "pricingDescCacheWrite": "Cache Write: creating cache entries (falls back to Input)",
- "pricingDescFormula": "Cost = (input × input_rate) + (output × output_rate) + (cached × cached_rate) per million tokens.",
- "pricingSettingsTitle": "Pricing Settings",
- "totalModels": "Total Models",
- "active": "Active",
- "costCalculation": "Cost Calculation",
- "costCalculationDesc": "Costs are calculated based on token usage and pricing rates configured for each model.",
- "pricingFormat": "Pricing Format",
- "pricingFormatDesc": "All rates are in $/1M tokens (dollars per million tokens).",
- "tokenTypes": "Token Types",
- "inputTokenDesc": "Standard prompt tokens",
- "outputTokenDesc": "Completion/response tokens",
- "cachedTokenDesc": "Cached input tokens (typically 50% of input rate)",
- "reasoningTokenDesc": "Special reasoning/thinking tokens (fallback to output rate)",
- "cacheCreationTokenDesc": "Tokens used to create cache entries (fallback to input rate)",
- "customPricingNote": "You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.",
- "editPricing": "Edit Pricing",
- "viewFullDetails": "View Full Details",
+ "models": "মডেল",
+ "moreProviders": "আরও {count}টি প্রদানকারী",
+ "withPricing": "মূল্য নির্ধারণ কনফিগার করা আছে",
+ "policiesCircuitBreakers": "নীতি ও সার্কিট ব্রেকার",
+ "activeIssuesDetected": "সক্রিয় সমস্যা শনাক্ত হয়েছে",
+ "off": "বন্ধ",
+ "resetPricingConfirm": "{provider}-এর সব মূল্য নির্ধারণ ডিফল্টে রিসেট করবেন?",
+ "pricingDescInput": "ইনপুট: মডেলে পাঠানো টোকেন",
+ "pricingDescOutput": "আউটপুট: তৈরি করা টোকেন",
+ "pricingDescCached": "ক্যাশ করা: পুনর্ব্যবহৃত ইনপুট (ইনপুট রেটের ~50%)",
+ "pricingDescReasoning": "রিজনিং: চিন্তন টোকেন (আউটপুটে ফলব্যাক করে)",
+ "pricingDescCacheWrite": "ক্যাশ লেখা: ক্যাশ এন্ট্রি তৈরি করা (ইনপুটে ফলব্যাক করে)",
+ "pricingDescFormula": "খরচ = (ইনপুট × ইনপুট_রেট) + (আউটপুট × আউটপুট_রেট) + (ক্যাশ করা × ক্যাশড_রেট), প্রতি দশ লক্ষ টোকেনে।",
+ "pricingSettingsTitle": "মূল্য নির্ধারণ সেটিংস",
+ "totalModels": "মোট মডেল",
+ "active": "সক্রিয়",
+ "costCalculation": "খরচ গণনা",
+ "costCalculationDesc": "প্রতিটি মডেলের জন্য কনফিগার করা টোকেন ব্যবহার ও মূল্যহারের ভিত্তিতে খরচ গণনা করা হয়।",
+ "pricingFormat": "মূল্য নির্ধারণের বিন্যাস",
+ "pricingFormatDesc": "সব মূল্যহার $/1M টোকেনে (প্রতি দশ লক্ষ টোকেনে ডলার) দেওয়া হয়েছে।",
+ "tokenTypes": "টোকেনের ধরন",
+ "inputTokenDesc": "স্ট্যান্ডার্ড প্রম্পট টোকেন",
+ "outputTokenDesc": "কমপ্লিশন/রেসপন্স টোকেন",
+ "cachedTokenDesc": "ক্যাশ করা ইনপুট টোকেন (সাধারণত ইনপুট রেটের 50%)",
+ "reasoningTokenDesc": "বিশেষ রিজনিং/চিন্তন টোকেন (আউটপুট রেটে ফলব্যাক)",
+ "cacheCreationTokenDesc": "ক্যাশ এন্ট্রি তৈরিতে ব্যবহৃত টোকেন (ইনপুট রেটে ফলব্যাক)",
+ "customPricingNote": "আপনি নির্দিষ্ট মডেলের জন্য ডিফল্ট মূল্য নির্ধারণ ওভাররাইড করতে পারেন। কাস্টম ওভাররাইড স্বয়ংক্রিয়ভাবে শনাক্ত করা মূল্য নির্ধারণের চেয়ে অগ্রাধিকার পায়।",
+ "editPricing": "মূল্য নির্ধারণ সম্পাদনা করুন",
+ "viewFullDetails": "সম্পূর্ণ বিবরণ দেখুন",
"themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "অভিযোজিত ভলিউম রাউটিং",
+ "adaptiveVolumeRoutingDesc": "পেলোডের পরিমাণ ও থ্রুপুটের চাপের ভিত্তিতে সংযোগগুলো গতিশীলভাবে স্কেল করুন।",
+ "lkgpToggleTitle": "সর্বশেষ কার্যকর প্রদানকারী (LKGP)",
+ "lkgpToggleDesc": "সক্রিয় করা হলে, রাউটারটি সর্বশেষ কোন প্রদানকারী সফল প্রতিক্রিয়া দিয়েছিল তা মনে রাখে এবং পরবর্তী অনুরোধগুলোতে প্রথমে সেটিকেই চেষ্টা করে।",
"echoRequestedModelTitle": "রেসপন্সে অনুরোধকৃত মডেলের নাম ইকো করুন",
"echoRequestedModelDesc": "সক্রিয় করা হলে, রেসপন্সের `model` ফিল্ডটি আপস্ট্রিম মডেল নামের পরিবর্তে ক্লায়েন্ট অনুরোধ করা অ্যালিয়াস বা কম্বো নামটি প্রতিধ্বনিত করে। এটি কঠোর ক্লায়েন্টদের (যেমন Claude Desktop) সমস্যা সমাধান করে যা এমন রেসপন্স প্রত্যাখ্যান করে যার মডেল অনুরোধের সাথে মেলে না।",
"webSearchRouteTitle": "ওয়েব অনুসন্ধান রাউটিং",
"webSearchRouteDesc": "যখন একটি অনুরোধে একটি নেটিভ web_search টুল অন্তর্ভুক্ত থাকে, তখন ডিফল্টের পরিবর্তে পুরো অনুরোধটি এই মডেলে রাউট করুন — এটি এমন প্রোভাইডারদের জন্য দরকারী যারা Anthropic-এর web_search সার্ভার টুল ইমপ্লিমেন্ট করে না। নিষ্ক্রিয় করতে ফাঁকা রাখুন।",
"webSearchRoutePlaceholder": "একটি মডেল খুঁজুন বা নির্বাচন করুন…",
"paidModelPatternWarning": "এই প্যাটার্নটি শুধুমাত্র পেইড মডেলগুলোর সাথে মেলে — পেইড মডেলগুলো সক্রিয় করুন অথবা প্যাটার্নটি সামঞ্জস্য করুন।",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP ক্যাশ পরিষ্কার করুন",
+ "lkgpCacheCleared": "LKGP ক্যাশ সফলভাবে সাফ করা হয়েছে",
+ "lkgpCacheClearFailed": "LKGP ক্যাশ সাফ করতে ব্যর্থ হয়েছে",
+ "days": "দিন",
+ "lkgp": "LKGP মোড",
+ "lkgpDesc": "সর্বশেষ কার্যকর প্রোভাইডার (অনুমানযোগ্য স্থিতিস্থাপকতা)",
+ "maintenance": "রক্ষণাবেক্ষণ",
+ "purgeExpiredLogs": "মেয়াদোত্তীর্ণ লগ মুছুন",
+ "purgeLogsFailed": "লগ মুছতে ব্যর্থ হয়েছে",
"logsDeleted": "{count, plural, =0 {কোনো মেয়াদোত্তীর্ণ লগ মুছে ফেলা হয়নি} one {#টি মেয়াদোত্তীর্ণ লগ মুছে ফেলা হয়েছে} other {#টি মেয়াদোত্তীর্ণ লগ মুছে ফেলা হয়েছে}}",
"resetUsageData": "ব্যবহারের ডেটা রিসেট করুন",
"resetUsageDataDesc": "আপনি কতদিন আগের ব্যবহারের ডেটা, অনুরোধের লগ এবং অ্যানালিটিক্স ডেটা মুছে ফেলতে চান তা নির্বাচন করুন। প্রোভাইডার কনফিগারেশন, কানেকশন, API কী, কম্বো এবং সেটিংস সংরক্ষিত থাকবে। এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।",
@@ -7409,63 +7416,63 @@
"resetUsageFailed": "ব্যবহারের ডেটা রিসেট করতে ব্যর্থ হয়েছে",
"reset": "রিসেট করুন",
"resetting": "রিসেট করা হচ্ছে...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
- "clearSyncedPricingConfirm": "Clear all synced pricing data? Provider defaults will be used instead.",
- "clearSyncedPricingFailed": "Failed to clear synced pricing",
- "pricingSourceUser": "User Override",
- "pageDescription": "Manage application settings, model aliases, pricing, and routing rules",
- "pricingSyncStatus": "Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
- "pricingLoadFailed": "Failed to load pricing data",
- "pricingSyncDescription": "Automatically sync model pricing from external sources to keep cost calculations accurate",
- "clearSyncedPricingSuccess": "Synced pricing data cleared",
- "clearSyncedPricingFailedWithReason": "Failed to clear pricing: {reason}",
- "pricingSourceDefault": "Built-in Default",
- "pricingSyncSuccess": "Pricing synced successfully",
- "enableSyncError": "Failed to toggle pricing sync",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "contextOpt": "কনটেক্সটের জন্য অপ্টিমাইজ করা",
+ "contextOptDesc": "কনটেক্সট উইন্ডোর প্রয়োজনীয়তা এবং কথোপকথনের দৈর্ঘ্যের ভিত্তিতে রুট নির্ধারণ করে",
+ "cacheOpt": "ক্যাশের জন্য অপ্টিমাইজ করা",
+ "cacheOptDesc": "একই পুনর্ব্যবহারযোগ্য প্রম্পট প্রিফিক্স একই প্রোভাইডার অ্যাকাউন্টে রাখে",
+ "priorityDesc": "ক্রমিক ফলব্যাক—প্রথমে প্রোভাইডার ১, তারপর প্রোভাইডার ২ এবং এভাবে পর্যায়ক্রমে চেষ্টা করে",
+ "weightedDesc": "শতাংশভিত্তিক ওজন অনুযায়ী প্রোভাইডারগুলোর মধ্যে ট্রাফিক বিতরণ করে",
+ "modelRoutingTitle": "মডেল রাউটিং নিয়ম",
+ "modelRoutingDesc": "গ্লব প্যাটার্ন ব্যবহার করে মডেলগুলোকে স্বয়ংক্রিয়ভাবে নির্দিষ্ট কম্বোতে রুট করুন",
+ "addRule": "নিয়ম যোগ করুন",
+ "routeToCombo": "কম্বোতে রুট করুন",
+ "selectCombo": "কম্বো নির্বাচন করুন...",
+ "priorityHint": "মান যত বেশি, তত আগে পরীক্ষা করা হবে। নির্দিষ্ট প্যাটার্নের জন্য 10+ ব্যবহার করুন।",
+ "patternHint": "যেকোনো সংখ্যক অক্ষরের জন্য * এবং একটি অক্ষরের জন্য ? ব্যবহার করুন। অক্ষরের ছাঁদ সংবেদনশীল নয়।",
+ "noRoutingRules": "কোনো রাউটিং নিয়ম কনফিগার করা নেই। ডিফল্টভাবে অনুরোধগুলো গ্লোবাল কম্বো ব্যবহার করে।",
+ "routingRuleHint": "অনুরোধগুলো স্বয়ংক্রিয়ভাবে রুট করতে claude-opus* -> frontier-combo-এর মতো একটি নিয়ম যোগ করুন।",
+ "deleteRoutingRule": "এই মডেল রাউটিং নিয়মটি মুছবেন?",
+ "exactMatchMode": "হুবহু মিল",
+ "wildcardPatternMode": "ওয়াইল্ডকার্ড প্যাটার্ন",
+ "exactMatchModeDesc": "অপ্রচলিত বা নতুন নাম দেওয়া মডেল ID-গুলোর জন্য হুবহু অ্যালিয়াস ব্যবহার করুন।",
+ "wildcardPatternModeDesc": "একটি মডেল পরিবারের সব মডেলকে একই টার্গেটে ম্যাপ করতে * এবং ? সহ ওয়াইল্ডকার্ড অ্যালিয়াস ব্যবহার করুন।",
+ "noExactAliasesConfigured": "কোনো হুবহু-মিলের অ্যালিয়াস কনফিগার করা নেই।",
+ "wildcardRulesTitle": "ওয়াইল্ডকার্ড নিয়ম",
+ "noWildcardAliasesConfigured": "কোনো ওয়াইল্ডকার্ড অ্যালিয়াস কনফিগার করা নেই।",
+ "overview": "সংক্ষিপ্ত বিবরণ",
+ "unknownError": "অজানা ত্রুটি",
+ "pricingSourceLiteLLM": "LiteLLM (কমিউনিটি)",
+ "clearSyncedPricingConfirm": "সিঙ্ক করা মূল্যের সব ডেটা সাফ করবেন? এর পরিবর্তে প্রোভাইডারের ডিফল্ট মান ব্যবহার করা হবে।",
+ "clearSyncedPricingFailed": "সিঙ্ক করা মূল্য সাফ করতে ব্যর্থ হয়েছে",
+ "pricingSourceUser": "ব্যবহারকারীর ওভাররাইড",
+ "pageDescription": "অ্যাপ্লিকেশন সেটিংস, মডেল অ্যালিয়াস, মূল্য এবং রাউটিং নিয়ম পরিচালনা করুন",
+ "pricingSyncStatus": "সিঙ্কের স্থিতি",
+ "whitelist": "অনুমোদিত তালিকা",
+ "syncDisabled": "সিঙ্ক নিষ্ক্রিয়",
+ "pricingLoadFailed": "মূল্য নির্ধারণের ডেটা লোড করতে ব্যর্থ হয়েছে",
+ "pricingSyncDescription": "খরচের হিসাব নির্ভুল রাখতে বাহ্যিক উৎস থেকে মডেলের মূল্য স্বয়ংক্রিয়ভাবে সিঙ্ক করুন",
+ "clearSyncedPricingSuccess": "সিঙ্ক করা মূল্য নির্ধারণের ডেটা মুছে ফেলা হয়েছে",
+ "clearSyncedPricingFailedWithReason": "মূল্য নির্ধারণের ডেটা মুছতে ব্যর্থ হয়েছে: {reason}",
+ "pricingSourceDefault": "বিল্ট-ইন ডিফল্ট",
+ "pricingSyncSuccess": "মূল্য নির্ধারণ সফলভাবে সিঙ্ক হয়েছে",
+ "enableSyncError": "মূল্য সিঙ্ক টগল করতে ব্যর্থ হয়েছে",
+ "syncEnabled": "সিঙ্ক সক্রিয়",
+ "blacklist": "ব্ল্যাকলিস্ট",
"pricingSourceModelsDev": "Models.dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
- "pricingSyncTitle": "Pricing Sync",
- "pricingResetFailedWithReason": "Failed to reset pricing: {reason}",
- "tab": "Tab",
- "pricingSavedProvider": "Pricing saved for {provider}",
- "pricingSyncFailed": "Pricing sync failed",
- "pricingSaveFailedWithReason": "Failed to save pricing: {reason}",
- "pricingResetProvider": "Pricing reset for {provider}",
- "nextSync": "Next Sync",
- "pricingSyncFailedWithReason": "Pricing sync failed: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "syncedModels": "সিঙ্ক করা মডেলসমূহ",
+ "budget": "বাজেট",
+ "pricingSyncTitle": "মূল্য সিঙ্ক",
+ "pricingResetFailedWithReason": "মূল্য নির্ধারণ রিসেট করতে ব্যর্থ হয়েছে: {reason}",
+ "tab": "ট্যাব",
+ "pricingSavedProvider": "{provider}-এর জন্য মূল্য নির্ধারণ সংরক্ষিত হয়েছে",
+ "pricingSyncFailed": "মূল্য সিঙ্ক ব্যর্থ হয়েছে",
+ "pricingSaveFailedWithReason": "মূল্য নির্ধারণ সংরক্ষণ করতে ব্যর্থ হয়েছে: {reason}",
+ "pricingResetProvider": "{provider}-এর জন্য মূল্য নির্ধারণ রিসেট হয়েছে",
+ "nextSync": "পরবর্তী সিঙ্ক",
+ "pricingSyncFailedWithReason": "মূল্য সিঙ্ক ব্যর্থ হয়েছে: {reason}",
+ "clearSyncedPricing": "সিঙ্ক করা মূল্য নির্ধারণ মুছুন",
+ "compressionTitle": "প্রম্পট কম্প্রেশন",
+ "compressionDesc": "প্রোভাইডারদের কাছে পাঠানোর আগে প্রম্পট কম্প্রেস করে টোকেনের ব্যবহার কমান",
"compressionGuidanceFullGuideLink": "সম্পূর্ণ কম্প্রেশন গাইড",
"compressionGuidanceShow": "বিস্তারিত",
"compressionGuidanceHide": "বিস্তারিত লুকান",
@@ -7481,13 +7488,13 @@
"tokenSaverInputCompressionDesc": "কোড, URL এবং উদ্দেশ্য সংরক্ষণ করে উপযুক্ত চ্যাট ইতিহাস পুনরায় লিখুন।",
"tokenSaverFineTunePrefix": "প্রতিটি ইঞ্জিন ফাইন-টিউন করুন এখানে:",
"tokenSaverFineTuneSuffix": "অথবা প্রতি অনুরোধে ইঞ্জিনগুলো একত্রিত করুন এখানে:",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
+ "compressionMode": "কম্প্রেশন মোড",
+ "compressionModeOff": "বন্ধ",
+ "compressionModeOffDesc": "কোনো কম্প্রেশন প্রয়োগ করা হয়নি",
+ "compressionModeLite": "লাইট",
+ "compressionModeLiteDesc": "হোয়াইটস্পেস ও ফাঁকা লাইন হ্রাস",
+ "compressionModeStandard": "স্ট্যান্ডার্ড (Caveman)",
+ "compressionModeStandardDesc": "৩০টির বেশি প্যাটার্নসহ নিয়মভিত্তিক কম্প্রেশন, যা কোড ব্লক ও URLs অপরিবর্তিত রাখে",
"compressionModeAggressive": "আক্রমণাত্মক",
"compressionModeAggressiveDesc": "সংক্ষিপ্তকরণ + টুল ফলাফল কম্প্রেশন + সর্বাধিক সঞ্চয়ের জন্য প্রগতিশীল বার্ধক্য",
"compressionModeUltra": "আল্ট্রা",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "প্রতিটি বার্ধক্য স্তরে রাখা সাম্প্রতিক বার্তাগুলির সংখ্যা (উচ্চতর = আরও সংরক্ষিত)",
"compressionToolStrategies": "টুল ফলাফল কৌশল",
"compressionToolStrategiesDesc": "বিভিন্ন টুল ফলাফল প্রকারের জন্য কম্প্রেশন কৌশল টগল করুন",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "সাধারণ সেটিংস",
+ "compressionAutoTrigger": "স্বয়ংক্রিয়ভাবে সক্রিয় হওয়ার সীমা",
+ "compressionCacheTTL": "ক্যাশ TTL",
+ "compressionPreserveSystem": "সিস্টেম প্রম্পট অপরিবর্তিত রাখুন",
"compressionPreserveSystemAlways": "সবসময়",
"compressionPreserveSystemWhenNoCache": "যখন কোনো ক্যাশ নেই",
"compressionPreserveSystemNever": "কখনোই নয়",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "সংরক্ষিত",
"compressionExclusionsCount": "{count, plural, one {# বাদ} other {# বাদগুলো}} কনফিগার করা হয়েছে",
"compressionExclusionsEmpty": "কোনো বাদ দেওয়া কনফিগার করা হয়নি — প্রতিটি মডেল/এন্ডপয়েন্ট সংকোচনের জন্য যোগ্য (ডিফল্ট আচরণ)।",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman ইঞ্জিন কনফিগারেশন",
+ "compressionCavemanConfigDesc": "নিয়মভিত্তিক কম্প্রেশন ইঞ্জিন সূক্ষ্মভাবে সমন্বয় করুন",
"compressionCavemanPanelHint": "এর অন/অফ এবং লেভেল প্যানেলে সেট করা আছে:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "মেসেজ রোল কম্প্রেস করুন",
+ "compressionRoleUser": "ব্যবহারকারী",
+ "compressionRoleAssistant": "সহকারী",
+ "compressionRoleSystem": "সিস্টেম",
+ "compressionMinLength": "বার্তার ন্যূনতম দৈর্ঘ্য",
+ "compressionSkipRules": "কম্প্রেশন নিয়ম এড়িয়ে যান",
+ "compressionSkipRulesDesc": "কম্প্রেশনের সময় নিয়মগুলো এড়িয়ে যেতে সেগুলোতে ক্লিক করুন",
+ "compressionPreservePatterns": "প্যাটার্ন সংরক্ষণ করুন",
+ "compressionPreservePatternsDesc": "যেসব Regex প্যাটার্ন কখনো কম্প্রেস করা হয় না (প্রতি লাইনে একটি)",
+ "compressionLogTitle": "কম্প্রেশন লগ",
+ "compressionLogEmpty": "এখনও কোনো অনুরোধ কম্প্রেস করা হয়নি। কম্প্রেশন সক্রিয় রেখে অনুরোধ প্রক্রিয়া করা হলে কম্প্রেশনের পরিসংখ্যান এখানে দেখা যাবে।",
"minutes": "মিনিট",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "কমান্ড-সচেতন টুল আউটপুট ফিল্টারিং",
+ "compressionModeCodexResponses": "Responses টুলের আউটপুট",
+ "compressionModeCodexResponsesDesc": "উপযুক্ত shell, patch, search, build এবং JSON আউটপুটের জন্য সতর্কতামূলক কম্প্রেশন",
+ "compressionModeStacked": "স্তরীকৃত",
+ "compressionModeStackedDesc": "RTK টুল-আউটপুট ফিল্টারিংয়ের পরে Caveman বার্তা কম্প্রেশন",
+ "qdrantTitle": "Qdrant (ভেক্টর মেমোরি)",
+ "qdrantDesc": "ঐচ্ছিক। দ্রুত পুনরুদ্ধারের জন্য একটি বাহ্যিক ভেক্টর ডেটাবেসে সেমান্টিক মেমোরিগুলো ইন্ডেক্স করে।",
+ "qdrantStatusActive": "সক্রিয়",
+ "qdrantStatusError": "ত্রুটি",
+ "qdrantStatusDisabled": "নিষ্ক্রিয়",
+ "qdrantEnable": "Qdrant সক্রিয় করুন",
+ "qdrantEnableDesc": "সক্রিয় থাকলে, সেমান্টিক/হাইব্রিড কৌশল মেমোরি পুনরুদ্ধার করতে Qdrant ব্যবহার করতে পারে।",
+ "qdrantTesting": "পরীক্ষা করা হচ্ছে...",
+ "qdrantTestConnection": "সংযোগ পরীক্ষা করুন",
+ "qdrantSaved": "কনফিগারেশন সংরক্ষিত হয়েছে",
+ "qdrantSaveError": "কনফিগারেশন সংরক্ষণ করা যায়নি",
+ "qdrantHostHint": "পোর্ট ছাড়া। উদাহরণ: 127.0.0.1 বা http://qdrant",
+ "qdrantPort": "পোর্ট",
+ "qdrantPortHint": "Qdrant-এর ডিফল্ট: 6333",
+ "qdrantCollectionHint": "যেখানে মেমোরি পয়েন্টগুলো সংরক্ষণ করা হবে।",
+ "qdrantEmbeddingModel": "এমবেডিং মডেল",
+ "qdrantHelpTitle": "দ্রুত সেটআপ সহায়তা",
+ "qdrantHelpQuickTitle": "দ্রুত সেটআপ (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. হোস্ট: Qdrant IP/URL, পোর্ট: 6333, কালেকশন: omniroute_memory।",
+ "qdrantHelpStep2": "2. nvidia/llama-nemotron-embed-vl-1b-v2:free ব্যবহার করলে, কালেকশনের ডাইমেনশন 2048 ব্যবহার করুন।",
+ "qdrantHelpStep3": "3. মডেল ফিল্ড: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free।",
+ "qdrantHelpStep4": "4. সংরক্ষণ করুন, সংযোগ পরীক্ষা করুন, তারপর অনুসন্ধান পরীক্ষা করুন।",
+ "qdrantEmbeddingQuickSelect": "শনাক্ত করা মডেলগুলো থেকে দ্রুত নির্বাচন করুন...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "ফরম্যাট: provider/model। প্রোভাইডারের ক্রেডেনশিয়াল অবশ্যই কনফিগার করা থাকতে হবে।",
+ "qdrantApiKeyPlaceholderKeep": "(বর্তমান কী রাখতে খালি রাখুন)",
+ "qdrantApiKeyPlaceholderOptional": "(ব্যবহার না করলে খালি রাখুন)",
+ "qdrantSaveHint": "পরামর্শ: host/port/collection/model সম্পাদনা করে Save-এ ক্লিক করুন। API key ঐচ্ছিক।",
+ "qdrantSearchTestTitle": "অনুসন্ধান পরীক্ষা",
+ "qdrantSearchTestDesc": "এম্বেডিং তৈরি করে Qdrant-এ অনুসন্ধান করে।",
+ "qdrantSearchPlaceholder": "উদাহরণ: ব্যবহারকারীর পছন্দ, ইতিহাস ইত্যাদি",
+ "qdrantNoResults": "কোনো ফলাফল নেই (অথবা Qdrant কনফিগার করা নেই)।",
+ "qdrantCleanupTitle": "সংরক্ষণকাল ও পরিষ্কারকরণ",
+ "qdrantCleanupDesc": "এর ভিত্তিতে মেয়াদোত্তীর্ণ ও পুরোনো পয়েন্ট সরিয়ে দেয়",
+ "searching": "অনুসন্ধান করা হচ্ছে...",
+ "cleaning": "পরিষ্কার করা হচ্ছে...",
+ "cleanNow": "এখনই পরিষ্কার করুন",
"optional": "ঐচ্ছিক",
"current": "কারেন্ট",
"remove": "সরান",
@@ -7596,19 +7603,19 @@
"resilienceScope": "সুযোগ:",
"resilienceTrigger": "ট্রিগার:",
"resilienceEffect": "প্রভাব:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "অনুরোধের সারি ও হার",
+ "resilienceAutoEnableApiKeyProviders": "API-key প্রদানকারীদের জন্য স্বয়ংক্রিয়ভাবে সক্রিয় করুন",
+ "resilienceRequestsPerMinute": "প্রতি মিনিটে অনুরোধ",
+ "resilienceMinTimeBetweenRequests": "অনুরোধগুলোর মধ্যকার সর্বনিম্ন সময়",
+ "resilienceConcurrentRequests": "সমসাময়িক অনুরোধ",
+ "resilienceConnectionScopeConcurrentRequests": "প্রতি সংযোগ/কোটা পরিসরে সমসাময়িক অনুরোধ",
+ "resilienceGlobalConcurrentRequests": "সার্বিক সমসাময়িক আপস্ট্রিম অনুরোধ (0 = নিষ্ক্রিয়)",
"resilienceMaxQueueWaitTime": "সর্বোচ্চ সারি অপেক্ষার সময়",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "প্রাথমিক কুলডাউন",
+ "resilienceUseUpstreamRetryHints": "আপস্ট্রিম পুনঃচেষ্টার ইঙ্গিত ব্যবহার করুন",
+ "resilienceDefaultPerProvider": "ডিফল্ট (প্রতি প্রদানকারী)",
+ "resilienceAlwaysOn": "সর্বদা চালু",
+ "resilienceAlwaysOff": "সর্বদা বন্ধ",
"routingRemoveEntry": "এন্ট্রি সরান",
"routingNeedlesSubstrings": "সূঁচ (মেলে সাবস্ট্রিং)",
"routingCaseSensitive": "কেস সংবেদনশীল",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "এক্সট্র্যাক্ট করা বিবরণটি মূল অনুরোধে পুনরায় ইনজেক্ট করার আগে ভিশন মডেলে পাঠানো হয়েছে।",
"visionBridgeTimeoutMs": "টাইমআউট (মিসে)",
"visionBridgeMaxImagesPerRequest": "অনুরোধ প্রতি সর্বোচ্চ ছবি",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "সর্বোচ্চ ব্যাকঅফ ধাপ",
+ "resilienceProviderBreakerTitle": "প্রতি প্রদানকারীর জন্য সার্কিট ব্রেকার",
+ "resilienceFailureThreshold": "ব্যর্থতার সীমা",
+ "resilienceDegradationThreshold": "অবনতির সীমা",
"resilienceResetTimeout": "টাইমআউট রিসেট করুন",
"resilienceFailureThresholdLabel": "ব্যর্থতার থ্রেশহোল্ড",
"resilienceResetTimeoutLabel": "টাইমআউট রিসেট করুন",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "সংযোগ কুলডাউন",
"resilienceUseUpstreamRetryHintsLabel": "আপস্ট্রিম পুনরায় চেষ্টা ইঙ্গিত ব্যবহার করুন",
"resilienceUseUpstream429BreakerLabel": "আপস্ট্রিম 429 ইঙ্গিত ব্যবহার করুন (ব্রেকার)",
"resilienceMaxBackoffStepsLabel": "সর্বোচ্চ ব্যাকঅফ পদক্ষেপ",
"resilienceYes": "হ্যাঁ",
"resilienceNo": "না",
- "resilienceDefault": "Default",
+ "resilienceDefault": "ডিফল্ট",
"storageDatabaseBackupRetention": "ডাটাবেস ব্যাকআপ ধরে রাখা",
"storageDatabaseBackups": "ডাটাবেস ব্যাকআপ",
"storageBackupRetentionDescription": "স্বয়ংক্রিয় SQLite ব্যাকআপগুলো এখানে সংরক্ষিত থাকে",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "লেগ্যাসি JSON সফলভাবে ইম্পোর্ট করা হয়েছে!",
"jsonImportFailed": "JSON ইম্পোর্ট করতে ব্যর্থ হয়েছে",
"jsonImportError": "JSON ইম্পোর্ট করার সময় ত্রুটি ঘটেছে",
+ "jsonImportAuthRequired": "একটি পুরোনো JSON কনফিগারেশন আমদানি করতে প্রমাণীকরণ আবশ্যক। অনুগ্রহ করে প্রথমে সাইন ইন করুন অথবা সেটআপ সম্পূর্ণ করুন।",
+ "databaseSettingsAuthRequiredTitle": "প্রমাণীকরণ আবশ্যক",
+ "databaseSettingsAuthRequiredBody": "ডেটাবেস সেটিংস এবং JSON আমদানি শুধু প্রমাণীকৃত অ্যাডমিনের জন্য উপলভ্য। এগুলো দেখতে ও সম্পাদনা করতে সাইন ইন করুন অথবা সেটআপ সম্পূর্ণ করুন।",
+ "databaseSettingsAuthRequiredCta": "সাইন ইন করুন",
"storagePurgeData": "ডেটা শুদ্ধ করুন",
"storagePurgeDataDesc": "রিটেনশন চেক প্রয়োগ না করেই অবিলম্বে সমস্ত রেকর্ড মুছে ফেলুন। সতর্কতার সাথে ব্যবহার করুন।",
"storageRetentionCleanup": "রিটেনশন সেটিংস",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "মোড: {mode}",
"compressionAdaptiveOff": "অ্যাডাপ্টিভ কনটেক্সট বাজেট: বন্ধ (লেগাসি অটো-ট্রিগার)",
"compressionAdaptiveTarget": "অ্যাডাপ্টিভ ({mode}, পলিসি: {policy}) — টার্গেট ≈ {target, number} টোকেন ({contextLimit, number}-টোকেন উইন্ডোর জন্য)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "অভিযোজিত কনটেক্সট বাজেট",
+ "compressionAdaptiveModeOff": "বন্ধ (পুরোনো স্বয়ংক্রিয় ট্রিগার)",
+ "compressionAdaptiveModeFloor": "ন্যূনতম সীমা (সর্বদা ফিট হওয়া নিশ্চিত করুন)",
+ "compressionAdaptiveModeReplace": "স্বয়ংক্রিয় ট্রিগার প্রতিস্থাপন করুন",
+ "compressionAdaptivePolicy": "বাজেট নীতি",
+ "compressionAdaptivePolicyReserve": "আউটপুট সংরক্ষণ",
+ "compressionAdaptivePolicyPercentage": "উইন্ডোর শতাংশ",
+ "compressionAdaptivePolicyAbsolute": "নির্দিষ্ট টোকেন বাজেট",
"compressionOutputStylesDescription": "প্রোভাইডার আউটপুট রিরাইট না করেই রেসপন্স-শেপিং নির্দেশাবলী ইনজেক্ট করুন। অবাধে একত্রিত করুন।",
"mcpAccessibilityDescription": "MCP টুল আউটপুট স্কোপ করে (আলাদা স্টোর)।",
"compressionStylesTileSummary": "{tokens, number} টোকেন সাশ্রয় হয়েছে · {runs, plural, one {#টি রান স্টাইল করা হয়েছে} other {#টি রান স্টাইল করা হয়েছে}}",
@@ -7862,8 +7873,8 @@
"description": "কমান্ড-আউটপুট ফিল্টারিং।"
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses Tool আউটপুট",
+ "description": "সমর্থিত Responses tool আউটপুটের জন্য সতর্কতামূলক কম্প্রেশন।"
},
"headroom": {
"label": "হেডরুম",
@@ -7904,12 +7915,12 @@
"description": "YAGNI ল্যাডার: ক্ষুদ্রতম কার্যকরী পরিবর্তন, কোনো অনুরোধহীন অ্যাবস্ট্রাকশন নয়।"
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (অলস সিনিয়র ডেভেলপার)",
+ "description": "অলস সিনিয়র-ডেভেলপার শৃঙ্খলা: YAGNI ধাপ বেয়ে এগোন, মূল কারণ ঠিক করুন, সবচেয়ে ছোট কার্যকর diff ব্যবহার করুন।"
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "আমার ADHD আছে (কাজ-আগে)",
+ "description": "কাজ-আগে আউটপুট: পরবর্তী কাজটি প্রথমে থাকবে, ধাপগুলো নম্বরযুক্ত হবে, একটি সুনির্দিষ্ট পরবর্তী ধাপ থাকবে, কোনো ভূমিকা থাকবে না।"
},
"terse-cjk": {
"label": "সংক্ষিপ্ত CJK (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI ফলব্যাক",
"cliproxyapiEnableFallback": "CLIProxyAPI ফলব্যাক সক্ষম করুন৷",
"cliproxyapiUrl": "CLIProxyAPI URL",
+ "headroomProxyTitle": "Headroom প্রক্সি",
+ "headroomProxyDesc": "ঐচ্ছিক Headroom টোকেন-সাশ্রয়ী প্রক্সির URL। খালি রাখলে HEADROOM_URL অথবা http://localhost:8787 ব্যবহার করা হবে।",
+ "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrlHint": "লুপব্যাক URL-গুলো এই পৃষ্ঠা থেকে চালু করা যায়। বাহ্যিক URL-গুলো শুধু পরীক্ষা করা হয়।",
+ "headroomProxySave": "সংরক্ষণ করুন",
+ "headroomProxyStart": "শুরু করুন",
+ "headroomProxyStop": "বন্ধ করুন",
+ "headroomProxyExternalHint": "এই URL-টি লুপব্যাক নয়, তাই OmniRoute স্থানীয় CLI চালু করবে না।",
"cliproxyapiStatus": "CLIProxyAPI স্থিতি",
"cliproxyapiNotDetected": "সনাক্ত করা হয়নি",
"cliproxyapiImportAuthTitle": "CLIProxyAPI থেকে অ্যাকাউন্ট ইম্পোর্ট করুন",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "ওপেনএআই কোডেক্স অনুরোধের জন্য বিশ্বব্যাপী service_tier=প্রোরিটি ইনজেক্ট করুন।",
"codexFastTierHint": "যখন সক্রিয় করা হয়, OmniRoute সংযোগের জন্য আউটবাউন্ড কোডেক্স অনুরোধগুলিতে service_tier=priority যোগ করে যা ইতিমধ্যে একটি স্তর নির্দিষ্ট করে না। অগ্রাধিকার স্তরের জন্য একটি OpenAI Enterprise API কী বা ChatGPT-auth Codex পাথ প্রয়োজন; অন্যান্য কী ধরনের OpenAI থেকে একটি স্তর-সম্পর্কিত ত্রুটি পাবে। কোডেক্স প্রদানকারী পৃষ্ঠায় প্রতি-সংযোগ সেটিংস অগ্রাধিকার নেয়।",
"codexFastTierSaveError": "কোডেক্স ফাস্ট টিয়ার সেটিং আপডেট করতে ব্যর্থ হয়েছে",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex কোটা অটো-পিং",
+ "codexAutoPingDesc": "প্রতি সংযোগে অপ্ট-ইন: Codex সেশন উইন্ডো রিসেট হওয়ার ঠিক পরে একটি ক্ষুদ্র অনুরোধ পাঠায়, যাতে প্রয়োজনের সময় এটি কোল্ড না থাকে।",
+ "codexAutoPingWarning": "প্রতিটি পিংয়ে অল্প পরিমাণ প্রকৃত Codex কোটা ব্যবহৃত হয়। ডিফল্টভাবে বন্ধ—শুধু যেসব সংযোগের ওপর আপনি সক্রিয়ভাবে নির্ভর করেন, সেগুলোর জন্য এটি চালু করুন।",
+ "codexAutoPingSaveError": "Codex অটো-পিং সেটিং আপডেট করা যায়নি",
+ "codexAutoPingToggleAria": "{connection}-এর জন্য Codex কোটা অটো-পিং টগল করুন",
"codexFastTierTierLabel": "সার্ভিস টিয়ার",
"codexFastTierTierPriority": "অগ্রাধিকার",
"codexFastTierTierFlex": "ফ্লেক্স",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "বৈশ্বিক পরীক্ষার ব্যবধান",
"resilienceCredentialHealthEveryMinutes": "প্রতি {minutes} মিনিট",
"resilienceCredentialHealthHint": "0 পটভূমি স্ক্যান বন্ধ করে (সর্বোচ্চ 1440 মিনিট = 24 ঘণ্টা)। নিজস্ব স্বাস্থ্য পরীক্ষা মানযুক্ত সংযোগ এই বৈশ্বিক ডিফল্ট উপেক্ষা করে; কোনো সংযোগে 0 সেট করলে বৈশ্বিক স্ক্যান চালু থাকলেও সেটি বাদ পড়ে।",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "{provider}-এর জন্য সর্বদা চালু—OAuth অ্যাকাউন্টের নিরাপত্তার জন্য আবশ্যক; বন্ধ করা যাবে না।",
+ "forcedFingerprintBadge": "আবশ্যক",
"sessionAffinityTitle": "সেশন অ্যাফিনিটি",
"sessionAffinityDesc": "যেকোনো প্রোভাইডারের জন্য, এত সেকেন্ডের জন্য একই অ্যাকাউন্টে একটি কথোপকথন বজায় রাখে। 0 এটি নিষ্ক্রিয় করে।",
"sessionAffinityTtl": "অ্যাফিনিটি TTL (সেকেন্ড)",
@@ -8183,14 +8202,14 @@
"removeErrorCode": "{code} সরান",
"addErrorCode": "এরর কোড যোগ করুন...",
"suggestions": "পরামর্শ:",
- "modelLockoutMaxCooldownHint": "≥ Base Cooldown — 3,600,000ms",
+ "modelLockoutMaxCooldownHint": "≥ বেস কুলডাউন—3,600,000ms",
"modelLockoutEnabled": "মডেল লকআউট সক্ষম করুন",
"modelLockoutEnabledDescription": "সক্ষম করা হলে, কনফিগার করা এরর কোড সহ ব্যর্থ হওয়া মডেলগুলি রিট্রাই লুপ প্রতিরোধ করতে সাময়িকভাবে লক করা হয়।",
"modelLockoutErrorCodes": "এরর কোড",
"modelLockoutErrorCodesDescription": "HTTP স্ট্যাটাস কোড যা মডেল লকআউট ট্রিগার করে। একটি কোড টাইপ করুন এবং Add ক্লিক করুন, অথবা পরামর্শ থেকে নির্বাচন করুন।",
- "modelLockoutBaseCooldown": "Base Cooldown (ms)",
+ "modelLockoutBaseCooldown": "বেস কুলডাউন (ms)",
"modelLockoutBaseCooldownDescription": "একটি মডেল পুনরায় চেষ্টা করার আগে মিলিসেকেন্ডে প্রাথমিক কুলডাউন সময়কাল।",
- "modelLockoutMaxCooldown": "Max Cooldown (ms)",
+ "modelLockoutMaxCooldown": "সর্বোচ্চ কুলডাউন (ms)",
"modelLockoutMaxCooldownDescription": "মিলিসেকেন্ডে সর্বোচ্চ কুলডাউন সময়কাল। অতিরিক্ত দীর্ঘ লকআউট প্রতিরোধ করে।",
"modelLockoutExponentialBackoff": "এক্সপোনেনশিয়াল ব্যাকঅফ",
"modelLockoutExponentialBackoffDescription": "সক্রিয় করা থাকলে, প্রতিটি ধারাবাহিক ব্যর্থতা কুলডাউন সময়কাল এক্সপোনেনশিয়ালি বৃদ্ধি করে।",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "কুলডাউন বৃদ্ধি বন্ধ হওয়ার আগে ব্যাকঅফ ধাপের সর্বোচ্চ সংখ্যা। বেশিরভাগ কনফিগারেশনে Max Cooldown সীমায় প্রথমে পৌঁছায়, ফলে Max Cooldown বাড়ানো হলে এটি একটি সুরক্ষা সীমা হিসেবে কাজ করে।",
"disableSessionStickiness": "সেশন স্টিকিনেস নিষ্ক্রিয় করুন",
"disableSessionStickinessDesc": "রাউন্ড-রবিন এবং র্যান্ডম কম্বোগুলি প্রথম বার্তার হ্যাশ দ্বারা একটি সম্পূর্ণ কথোপকথনকে একটি সংযোগে পিন করার পরিবর্তে প্রতিটি অনুরোধে একটি ভিন্ন সংযোগে রোটেট করে। মাল্টি-টার্ন চ্যাটের জন্য প্রম্পট-ক্যাশ হিট সংরক্ষণ করতে এটি বন্ধ রাখুন। প্রতি-কম্বো ওভাররাইড অগ্রাধিকার পাবে।",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "প্রম্পট-ক্যাশ লোক্যালিটি রাউটিং",
+ "promptCacheAffinityDesc": "স্বাস্থ্য ও কোটা ফেইলওভার বজায় রেখে মিলে যাওয়া প্রম্পট-ক্যাশ কিগুলোর জন্য একই প্রোভাইডার অ্যাকাউন্টকে অগ্রাধিকার দিন।",
+ "reasoningTokenBuffer": "রিজনিং টোকেন বাফার",
+ "reasoningTokenBufferDesc": "শুধু পরিচিত রিজনিং মডেলগুলোর জন্য কম্বো রাউটিংকে max_tokens হেডরুম যোগ করার অনুমতি দিন, যখন সম্পূর্ণ বাফারটি একটি পরিচিত আউটপুট সীমার মধ্যে মানানসই হয়।",
+ "zeroLatencyOptimizations": "শূন্য-বিলম্ব অপ্টিমাইজেশন",
+ "zeroLatencyOptimizationsDesc": "হেজিং, পূর্বাভাসমূলক TTFT স্কিপ এবং সক্রিয় ফলব্যাক কম্প্রেশনের জন্য অপ্ট-ইন করুন। এই লেটেন্সি ফিচারগুলোকে টার্গেটের সঙ্গে প্রতিযোগিতা করা বা ফলব্যাক অনুরোধ কম্প্রেস করা থেকে বিরত রাখতে এটি বন্ধ রাখুন।",
"credentialRedaction": "ক্রেডেনশিয়াল রিডাকশন",
"credentialRedactionDesc": "প্রোভাইডারদের কাছে পাঠানো কনটেক্সট এবং প্রতিক্রিয়া থেকে API কী, টোকেন এবং সিক্রেট রিডাক্ট করুন।",
"enableCredentialRedaction": "ক্রেডেনশিয়াল রিডাকশন সক্রিয় করুন",
"enableCredentialRedactionDesc": "বার্তা, টুল কল এবং প্রতিক্রিয়া থেকে API কী, টোকেন, প্রাইভেট কী এবং JWT মুছে ফেলে।",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "স্বয়ংক্রিয় সিঙ্ক নিষ্ক্রিয়",
+ "pricingAutoSyncEnabled": "স্বয়ংক্রিয় সিঙ্ক সক্রিয়",
"modalityBridgeIntro": "শুধু-টেক্সট মডেলে পৌঁছানোর আগে মাল্টিমোডাল বিষয়বস্তুকে টেক্সটে রূপান্তর করুন। ভিশন, অডিও ও ভিডিও ব্রিজ উপলভ্য এবং কনফিগারযোগ্য।",
"modalityBridgeVisionTab": "দৃষ্টি",
"modalityBridgeAudioTab": "অডিও",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "স্বাস্থ্য",
"cliproxyapiPort": "পোর্ট",
"qdrantHost": "হোস্ট",
- "qdrantCollection": "সংগ্রহ",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "সংগ্রহ"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "RTK ইঞ্জিন",
+ "description": "টুল আউটপুট, টার্মিনাল লগ এবং বিল্ড ফলাফলের জন্য কমান্ড-সচেতন কম্প্রেশন।",
+ "enabled": "সক্রিয়",
+ "intensity": "তীব্রতা",
+ "intensityMinimal": "ন্যূনতম",
+ "intensityStandard": "মানক",
+ "intensityAggressive": "আক্রমণাত্মক",
+ "toolResults": "টুলের ফলাফল",
+ "assistantMessages": "সহকারীর বার্তা",
+ "codeBlocks": "কোড ব্লক",
"filterCatalog": "ফিল্টার ক্যাটালগ",
"filterCatalogDesc": "বিভাগ দ্বারা উপলব্ধ আউটপুট ফিল্টার",
"guidedConfig": "কনফিগারেশন",
"guidedConfigDesc": "RTK কীভাবে আপনার টার্মিনাল আউটপুট ফিল্টার করে তা সামঞ্জস্য করুন",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "সর্বোচ্চ লাইন",
+ "maxChars": "সর্বোচ্চ অক্ষর",
"deduplicateThreshold": "ডিডুপ্লিকেট থ্রেশহোল্ড",
"customFilters": "কাস্টম ফিল্টার",
"detectedType": "সনাক্ত করা টাইপ",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "ব্যর্থতা",
"rawOutputAlways": "সর্বদা",
"rawOutputMaxBytes": "কাঁচা আউটপুট সর্বোচ্চ বাইট",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "ফিল্টার পরীক্ষা",
+ "pasteOutput": "ফিল্টারিং পরীক্ষা করতে টুলের আউটপুট পেস্ট করুন...",
"presetHigh": "আক্রমণাত্মক",
"presetLow": "আলো",
"presetMaxChars": "সর্বোচ্চ আউটপুট অক্ষর",
"presetMaxLines": "সর্বোচ্চ আউটপুট লাইন",
"presetMedium": "স্ট্যান্ডার্ড",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "চালান",
+ "result": "ফলাফল",
+ "previewEmpty": "RTK আউটপুটের প্রিভিউ দেখতে একটি নমুনা চালান।",
+ "detected": "শনাক্ত হয়েছে",
"masterSwitchOffAlert": "Token Saver মাস্টার সুইচ OFF — আপনি Endpoint পৃষ্ঠা থেকে এটি চালু না করা পর্যন্ত এই সেটিংস অনুরোধগুলিকে প্রভাবিত করবে না।",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "ফিল্টার করা টোকেন",
+ "filtersActive": "সক্রিয় ফিল্টার",
+ "requests": "অনুরোধ",
+ "avgSavings": "গড় সাশ্রয়",
"simpleMode": "সরল",
"advancedMode": "উন্নত",
"searchFilters": "ফিল্টার অনুসন্ধান করুন...",
@@ -8495,7 +8506,7 @@
"description": "স্পষ্ট রো-কাউন্ট মার্কার সহ সমজাতীয় JSON অ্যারে-র লসলেস ট্যাবুলার কম্প্যাকশন."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "সেশন ডিডুপ্লিকেশন",
"description": "পুনরুদ্ধারযোগ্য কন্টেন্ট মার্কার সহ ক্রস-টার্ন ব্লক ডিডুপ্লিকেশন।"
},
"ccr": {
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "কম্প্রেশন কম্বো",
+ "description": "বিভিন্ন রাউটিং পরিস্থিতিতে ইঞ্জিনগুলো কীভাবে একত্রিত হবে তা নির্ধারণ করুন।",
+ "createCombo": "কম্প্রেশন কম্বো তৈরি করুন",
+ "editCombo": "সম্পাদনা",
+ "deleteCombo": "মুছুন",
+ "deleteConfirm": "এই কম্প্রেশন কম্বোটি মুছবেন?",
+ "pipeline": "পাইপলাইন",
+ "addStep": "ধাপ যোগ করুন",
+ "removeStep": "সরান",
+ "name": "নাম",
+ "descriptionField": "বিবরণ",
+ "languagePacks": "ভাষা প্যাক",
+ "outputMode": "আউটপুট মোড",
+ "assignToRouting": "রাউটিং কম্বোতে বরাদ্দ করুন",
+ "noAssignments": "কোনো রাউটিং কম্বিনেশন উপলভ্য নেই",
+ "default": "ডিফল্ট",
+ "setAsDefault": "ডিফল্ট হিসেবে সেট করুন",
+ "save": "সংরক্ষণ করুন",
+ "cancel": "বাতিল করুন",
+ "enabled": "সক্রিয়",
"loading": "লোড হচ্ছে…",
"hubTitle": "কম্প্রেশন হাব",
"hubDescription": "সার্বজনীনভাবে কোন কম্প্রেশন প্রোফাইল চলবে তা বেছে নিন।",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "বর্তমানে শুধুমাত্র Claude (Anthropic)-এর জন্য উপলব্ধ। এটি একটি ডেলিগেটেড মোড: প্রোভাইডার সার্ভার-সাইডে পুরানো টুল-ইউজ ব্লকগুলি মুছে ফেলে — আমরা মেসেজ পুনরায় লিখি না। এটি অন্যান্য প্রোভাইডারদের প্রভাবিত করে না।",
"namedCombos": "নামযুক্ত কম্বো",
"namedCombosDescription": "বিভিন্ন পাইপলাইন সংরক্ষণ করুন এবং নির্দিষ্ট রাউটিং কম্বোতে সেগুলি বরাদ্দ করুন।",
+ "activeProfileMasterSwitchOffWarning": "মূল \"Prompt Compression\" সুইচটি চালু না করা পর্যন্ত নিচের সক্রিয় প্রোফাইলটি চলবে না।",
+ "activeProfileMasterSwitchOffCta": "Settings-এ এটি চালু করুন",
"comboNamePlaceholder": "কম্বোর নাম",
"descriptionPlaceholder": "বিবরণ",
"nameRequired": "সংরক্ষণ করার আগে একটি কম্বোর নাম লিখুন।",
@@ -8670,9 +8683,7 @@
"languagePacksList": "ভাষা প্যাক: {packs}",
"dragToReorder": "ধাপের ক্রম পরিবর্তন করতে টেনে আনুন",
"engine": "ইঞ্জিন",
- "intensity": "তীব্রতা",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "তীব্রতা"
},
"compressionStudio": {
"noRun": "কোনো কম্প্রেশন রান উপলব্ধ নেই।",
@@ -8701,7 +8712,7 @@
"run": "রান করুন",
"laneRejected": "প্রত্যাখ্যাত: {reason}",
"error": "ত্রুটি",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "সমন্বিত পাইপলাইন প্রিভিউ ব্যর্থ হয়েছে: {reason}",
"combinedFlow": "সম্মিলিত ফ্লো",
"eachLayer": "প্রতিটি লেয়ার আলাদাভাবে",
"diff": "পার্থক্য",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "ইঞ্জিনটি সক্রিয় করুন",
"enableDescription": "স্ট্যাকের সবার শেষে চলে (RTK/Caveman টেক্সট পরিষ্কার করার পর, OmniGlyph বাকি অংশকে ইমেজে রূপান্তর করে) এবং omniglyph মোডের মাধ্যমে এককভাবেও চলে। এটি একটি প্রিভিউ এবং এন্ড-টু-এন্ড যাচাইকরণ সম্পন্ন না হওয়া পর্যন্ত ডিফল্টরূপে বন্ধ থাকবে।",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "কম্প্রেশন প্রোফাইল",
+ "profileDescription": "প্রোফাইলটি সর্বোচ্চ সীমা, সর্বনিম্ন নয়: আরও কঠোর প্রোফাইলকে প্রতি-ধাপের ওভাররাইড দিয়ে শিথিল করা যাবে না। এই কোডবেসে পরিমাপ অনুযায়ী: coding-safe বা balanced ব্যবহার করলে, যে সেশনে এখনো কোনো ইতিহাস জমেনি সেটি কিছুই কম্প্রেস করে না, কারণ উভয়ই ন্যূনতম অক্ষরের সীমা বাড়ায় এবং সিস্টেম প্রম্পট, টুল স্কিমা ও টুলের ফলাফল অপরিবর্তিত রাখে।",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "আক্রমণাত্মক (ডিফল্ট)",
+ "description": "প্রকাশিত রসিদগুলোতে পরিমাপ করা নীতি। সিস্টেম প্রম্পট, টুল ডকুমেন্টেশন এবং ঘন ইতিহাসের ইমেজ তৈরি করে।"
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "ভারসাম্যপূর্ণ",
+ "description": "লাইভ স্টেট অপরিবর্তিত রাখে এবং শেষ ৮টি টার্ন সুরক্ষিত রাখে; শুধু পুরোনো বন্ধ ইতিহাস সংকুচিত করে।"
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "কোডিং-নিরাপদ",
+ "description": "কর্তৃত্ব, টুল স্কিমা এবং লাইভ টুল আউটপুট অপরিবর্তিত রেখে শেষ ১২টি টার্ন সুরক্ষিত রাখে। সেশনে ইতিহাস জমা না হওয়া পর্যন্ত কিছুই কম্প্রেস করে না।"
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "পাসথ্রু",
+ "description": "কোনো রূপান্তর ছাড়াই রাউট করে। ইঞ্জিনটি এড়িয়ে অনুরোধটি অপরিবর্তিত অবস্থায় ফরওয়ার্ড করা হয়।"
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph কম্প্রেশন প্রোফাইল নির্বাচন করুন",
"saved": "সংরক্ষিত হয়েছে।",
"saveFailed": "সংরক্ষণ করা যায়নি।",
"enableAria": "OmniGlyph ইঞ্জিনটি সক্রিয় করুন",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "নিয়ম-ভিত্তিক বার্তা কম্প্রেশন, ভাষা প্যাক, অ্যানালিটিক্স এবং আউটপুট মোড নিয়ন্ত্রণ।",
"advancedConfig": "উন্নত কনফিগারেশন",
"advancedConfigDesc": "ফাইন-টিউন কম্প্রেশন আচরণ",
"aggressiveSettings": "আক্রমণাত্মক সেটিংস",
"aggressiveSettingsDesc": "সম্ভাব্য মানের ট্রেড-অফ সহ সর্বাধিক কম্প্রেশন",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "অনুরোধ",
+ "tokensSaved": "সাশ্রয় করা টোকেন",
+ "savingsPercent": "সাশ্রয় %",
+ "avgLatency": "গড় ল্যাটেন্সি",
+ "languagePacks": "ভাষা প্যাক",
+ "languagePacksDesc": "নির্দিষ্ট ভাষার জন্য কম্প্রেশন নিয়ম সক্রিয় করুন।",
"labelAutoTrigger": "প্রসঙ্গ ছাড়িয়ে গেলে স্বয়ংক্রিয়-সংকোচন করুন",
"labelCompressionRate": "কম্প্রেশন শক্তি",
"labelMaxTokens": "বার্তা প্রতি লক্ষ্য টোকেন",
"labelMinLength": "ন্যূনতম বার্তা দৈর্ঘ্য",
"labelMinSavings": "সংরক্ষণ করার জন্য ন্যূনতম টোকেন",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "সক্রিয়",
+ "autoDetect": "স্বয়ংক্রিয়ভাবে ভাষা শনাক্ত করুন",
+ "rulesCount": "{count}টি নিয়ম",
"inputCompressionTitle": "ইনপুট কম্প্রেশন",
"inputCompressionDesc": "চ্যাট হিস্ট্রি আরও ছোট শব্দে পুনরায় লিখুন। এটি ইনপুট টোকেন প্রায় ৫০% হ্রাস করে।",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "কম্প্রেশন অ্যানালিটিক্স",
+ "noAnalytics": "এখনো কোনো কম্প্রেশন অ্যানালিটিক্স নেই।",
"masterDisabledWarning": "Token Saver মাস্টার সুইচটি বন্ধ রয়েছে — আপনি Compression Settings থেকে এটি চালু না করা পর্যন্ত বা এখান থেকে পরিবর্তন না করা পর্যন্ত এই সেটিংস অনুরোধগুলিকে প্রভাবিত করবে না।",
"outputMode": "আউটপুট মোড",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "আউটপুট মোড",
"quickSettings": "দ্রুত সেটিংস",
"quickSettingsDesc": "শুরু করার জন্য প্রাথমিক কম্প্রেশন সেটিংস",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "স্বয়ংক্রিয়-স্পষ্টতা বাইপাস",
+ "bypassConditions": "বাইপাসের শর্তাবলি",
"bypassConditionsList": "নিরাপত্তা, অপরিবর্তনীয়, স্পষ্টীকরণ, আদেশ-সংবেদনশীল",
"simpleMode": "সরল",
"advancedMode": "উন্নত",
@@ -8940,52 +8951,52 @@
"ultraSettings": "আল্ট্রা সেটিংস",
"ultraSettingsDesc": "SLM-চালিত শব্দার্থিক কম্প্রেশন",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "সংক্ষেপে উত্তর দিন। প্রযুক্তিগত পরিভাষা, কোড, ত্রুটি, URLs এবং শনাক্তকারী অপরিবর্তিত রাখুন।",
+ "full": "সংক্ষিপ্ত ও আঁটসাঁটভাবে উত্তর দিন। সব প্রযুক্তিগত তথ্য অক্ষুণ্ণ রাখুন।",
+ "ultra": "প্রচলিত প্রযুক্তিগত সংক্ষিপ্ত রূপ ব্যবহার করে অত্যন্ত সংক্ষেপে উত্তর দিন। সঠিক প্রতীকগুলো অক্ষুণ্ণ রাখুন।"
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "অনুবাদক",
+ "metaTitle": "অনুবাদক প্লেগ্রাউন্ড | OmniRoute",
+ "metaDescription": "প্রোভাইডারগুলোর মধ্যে API ফরম্যাটের অনুবাদ ডিবাগ, পরীক্ষা ও ভিজুয়ালাইজ করুন",
+ "playgroundTitle": "অনুবাদক প্লেগ্রাউন্ড",
+ "playground": "প্লেগ্রাউন্ড",
+ "realtime": "রিয়েল-টাইম অনুবাদ কার্যকলাপ",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "টেস্ট বেঞ্চ",
+ "liveMonitor": "লাইভ মনিটর",
+ "modeDescriptionPlayground": "যেকোনো API রিকোয়েস্ট বডি পেস্ট করুন এবং দেখুন OmniRoute কীভাবে সেটিকে প্রোভাইডার ফরম্যাটগুলোর মধ্যে অনুবাদ করে (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
+ "modeDescriptionChatTester": "OmniRoute-এর মাধ্যমে বাস্তব চ্যাট রিকোয়েস্ট পাঠান এবং সম্পূর্ণ রাউন্ড-ট্রিপ পরিদর্শন করুন: ইনপুট, অনূদিত রিকোয়েস্ট, প্রোভাইডারের রেসপন্স এবং অনূদিত আউটপুট।",
+ "modeDescriptionTestBench": "পূর্বনির্ধারিত দৃশ্যপট চালান এবং প্রোভাইডার ও মডেলগুলোর মধ্যে সামঞ্জস্য তুলনা করুন।",
+ "modeDescriptionLiveMonitor": "OmniRoute-এর মধ্য দিয়ে রিকোয়েস্ট প্রবাহিত হওয়ার সময় রিয়েল-টাইমে অনুবাদ ইভেন্ট দেখুন।",
+ "modeDescriptionFallback": "OmniRoute কীভাবে প্রোভাইডারগুলোর মধ্যে API রিকোয়েস্ট অনুবাদ করে তা ডিবাগ, পরীক্ষা ও ভিজুয়ালাইজ করুন।",
+ "recentTranslations": "সাম্প্রতিক অনুবাদ",
+ "noTranslations": "এখনও কোনো অনুবাদ নেই",
+ "source": "উৎস",
+ "target": "লক্ষ্য",
+ "time": "সময়",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "ল্যাটেন্সি",
+ "totalTranslations": "মোট অনুবাদ",
+ "successful": "সফল",
+ "errors": "ত্রুটি",
+ "avgLatency": "গড় ল্যাটেন্সি",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "লাইভ — স্বয়ংক্রিয়ভাবে রিফ্রেশ হচ্ছে",
+ "paused": "বিরতিতে",
+ "eventsAppearHint": "OmniRoute-এর মধ্য দিয়ে রিকোয়েস্ট প্রবাহিত হওয়ার সময় অনুবাদ ইভেন্টগুলো এখানে দেখা যায়। ইভেন্ট তৈরি করতে নিচের যেকোনো পদ্ধতি ব্যবহার করুন:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "বাহ্যিক API কল",
+ "ideCliIntegrations": "IDE/CLI ইন্টিগ্রেশন",
+ "inMemoryNote": "দ্রষ্টব্য: ইভেন্টগুলো মেমরিতে সংরক্ষিত থাকে এবং সার্ভার রিস্টার্ট হলে রিসেট হয়।",
"ok": "OK",
- "errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "errorShort": "ত্রুটি",
+ "formatConverter": "ফরম্যাট কনভার্টার",
+ "formatConverterDescription": "একটি JSON রিকোয়েস্ট বডি পেস্ট বা টাইপ করুন। অনুবাদক স্বয়ংক্রিয়ভাবে উৎস ফরম্যাট শনাক্ত করে সেটিকে লক্ষ্য ফরম্যাটে রূপান্তর করবে। OmniRoute কীভাবে ফরম্যাটগুলোর মধ্যে রিকোয়েস্ট অনুবাদ করে তা ডিবাগ করতে এটি ব্যবহার করুন (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)।",
"translationPathHubSpoke": "{source} → OpenAI (ইন্টারমিডিয়েট) → {target}",
"translationPathDirect": "{source} → {target} (সরাসরি অনুবাদক)",
"translationPathPassthrough": "একই বিন্যাস — কোন অনুবাদের প্রয়োজন নেই",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "কিছু ফরম্যাট জোড়ার (Claude→Jemini) সরাসরি অনুবাদক আছে যা OpenAI হাবকে বাইপাস করে, আরও সঠিক আউটপুট তৈরি করে।",
"featureImageMapping": "ইমেজ সাইজ ম্যাপিং",
"featureImageMappingDesc": "API ফরম্যাটের মধ্যে চিত্রের মাত্রা কনভেনশন অনুবাদ করে (যেমন, OpenAI বিস্তারিত মাত্রা → মিথুন মাত্রা)।",
- "input": "Input",
- "output": "Output",
+ "input": "ইনপুট",
+ "output": "আউটপুট",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "ফরম্যাট অদলবদল করুন",
+ "translateAction": "অনুবাদ করুন",
+ "clear": "মুছুন",
+ "inputPlaceholder": "এখানে একটি রিকোয়েস্ট বডি পেস্ট করুন অথবা নিচ থেকে একটি টেমপ্লেট নির্বাচন করুন...",
+ "exampleTemplates": "উদাহরণ টেমপ্লেট",
+ "exampleTemplatesHint": "— লোড করতে ক্লিক করুন",
+ "templateLoadHint": "টেমপ্লেটটি অনুরোধটিকে {format} ফরম্যাটে লোড করে। ভিন্ন ফরম্যাটে লোড করতে উৎস ফরম্যাট পরিবর্তন করুন।",
+ "compatibilityTester": "সামঞ্জস্য পরীক্ষক",
+ "compatibilityReport": "সামঞ্জস্য প্রতিবেদন",
+ "testBenchDescription": "অনুবাদ ও প্রোভাইডার সামঞ্জস্য যাচাই করতে পূর্বনির্ধারিত পরিস্থিতিগুলো (সাধারণ চ্যাট, টুল কলিং ইত্যাদি) চালান। একটি উৎস ফরম্যাট ও লক্ষ্য প্রোভাইডার নির্বাচন করুন, তারপর সামঞ্জস্যের শতাংশ দেখতে সব পরীক্ষা চালান। কোন কোন ফিচার বিভিন্ন প্রোভাইডারে কাজ করে তা জানতে এটি ব্যবহার করুন।",
+ "targetProvider": "লক্ষ্য প্রোভাইডার",
+ "runAllTests": "সব পরীক্ষা চালান",
+ "runTest": "পরীক্ষা চালান",
+ "reRun": "আবার চালান",
+ "running": "চলছে...",
+ "passed": "সফল",
+ "failed": "ব্যর্থ",
+ "passedIconLabel": "✅ সফল",
+ "chunks": "চাঙ্ক",
+ "scenarioSimpleChat": "সাধারণ চ্যাট",
+ "scenarioToolCalling": "টুল কলিং",
+ "scenarioMultiTurn": "বহু-পালা",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "সিস্টেম প্রম্পট",
+ "scenarioStreaming": "স্ট্রিমিং",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "সাধারণ চ্যাট",
+ "tool-calling": "টুল কলিং",
+ "multi-turn": "বহু-পালা",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "সিস্টেম প্রম্পট",
+ "streaming": "স্ট্রিমিং",
"vision": "দৃষ্টি",
"schema-coercion": "স্কিমা জবরদস্তি"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "সাধারণ টেক্সট বার্তা",
+ "tool-calling": "ফাংশন/টুল আহ্বান",
+ "multi-turn": "পূর্ববর্তী কথোপকথনসহ আলাপ",
+ "thinking": "বিস্তৃত চিন্তাভাবনা / যুক্তি",
+ "system-prompt": "জটিল সিস্টেম নির্দেশনা",
+ "streaming": "SSE স্ট্রিমিং অনুরোধ",
"vision": "ইমেজ ইনপুট সহ মাল্টিমোডাল অনুরোধ",
"schema-coercion": "স্ট্রাকচার্ড-আউটপুট / JSON স্কিমা এনফোর্সমেন্ট"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "আপনি একজন সহায়ক সহকারী।",
+ "userGreeting": "হ্যালো! আজ আপনি কেমন আছেন?"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "São Paulo-এর আবহাওয়া কেমন?",
+ "toolDescription": "কোনো অবস্থানের বর্তমান আবহাওয়া জানুন",
+ "cityNameDescription": "শহরের নাম"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "আপনি একজন কোডিং সহকারী।",
+ "userInitial": "Python-এ একটি অ্যারে সাজানোর জন্য একটি ফাংশন লিখুন।",
+ "assistantExample": "এখানে একটি সাধারণ সর্ট ফাংশন রয়েছে: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "এখন এটিকে অবরোহ ক্রমে সাজানোর উপযোগী করুন।"
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "প্রথম ১০০টি মৌলিক সংখ্যার যোগফল কত?"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "আপনি ডিস্ট্রিবিউটেড সিস্টেমে বিশেষজ্ঞ একজন সিনিয়র সফটওয়্যার ইঞ্জিনিয়ার। ইন্ডাস্ট্রির সেরা অনুশীলন অনুসরণ করে সংক্ষেপে প্রশ্নের উত্তর দিন। প্রাসঙ্গিক ক্ষেত্রে সবসময় কোডের উদাহরণ দিন। markdown ব্যবহার করে আপনার উত্তর ফরম্যাট করুন।",
+ "question": "আমি কীভাবে সার্কিট ব্রেকার প্যাটার্ন বাস্তবায়ন করব?"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "ছবি আঁকা শিখছে এমন একটি রোবটকে নিয়ে একটি ছোট গল্প বলুন।"
},
"vision": {
"system": "আপনি একজন সহকারী যিনি চিত্রগুলিকে সুনির্দিষ্টভাবে বর্ণনা করেন৷",
@@ -9093,12 +9104,12 @@
"cityDescription": "প্রশ্ন করার জন্য শহর, যেমন 'টোকিও' বা 'নিউ ইয়র্ক'।"
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "OpenAI-এর সাথে সামঞ্জস্যপূর্ণ",
+ "anthropicCompatibleLabel": "Anthropic-এর সাথে সামঞ্জস্যপূর্ণ",
+ "noTemplateForFormat": "এই ফরম্যাটের জন্য কোনো টেমপ্লেট নেই",
+ "translationFailed": "অনুবাদ ব্যর্থ হয়েছে: {error}",
+ "pipelineDebugger": "পাইপলাইন ডিবাগার",
+ "translationPipeline": "অনুবাদ পাইপলাইন",
"loading": "লোড হচ্ছে…",
"compressionOriginal": "মূল",
"compressionCompressed": "সংকুচিত",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "পাইপলাইন ধাপসমূহ",
"copyIntermediateJson": "অন্তর্বর্তীকালীন JSON কপি করুন",
"copyOutputJson": "আউটপুট JSON কপি করুন",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "পাইপলাইন ভিজ্যুয়ালাইজেশন",
+ "pipelineVisualizationHint": "শনাক্তকরণ → অনুবাদ → প্রোভাইডার কলের মধ্য দিয়ে আপনার অনুরোধ কীভাবে প্রবাহিত হয় তা দেখতে একটি বার্তা পাঠান।",
+ "chatTesterDescription": "একটি নির্দিষ্ট ক্লায়েন্ট ফরম্যাটে বার্তা পাঠান এবং অনুবাদ পাইপলাইনের প্রতিটি ধাপ পরিদর্শন করুন।",
+ "chatTesterFlow": "ক্লায়েন্ট অনুরোধ → ফরম্যাট শনাক্তকরণ → OpenAI মধ্যবর্তী ফরম্যাট → প্রোভাইডার ফরম্যাট → প্রতিক্রিয়া",
+ "clickStepToInspect": "সেই পর্যায়ের ডেটা পরিদর্শন করতে যেকোনো ধাপে ক্লিক করুন।",
+ "clientFormat": "ক্লায়েন্ট ফরম্যাট",
+ "provider": "প্রোভাইডার",
+ "modelPlaceholder": "একটি মডেলের নাম নির্বাচন করুন বা লিখুন...",
+ "sendMessageToSeePipeline": "অনুবাদ পাইপলাইন দেখতে একটি বার্তা পাঠান",
+ "chatMessageHintPrefix": "আপনার বার্তাটি এই ফরম্যাটে রূপান্তরিত হবে:",
+ "chatMessageHintSuffix": "অনুরোধ, যা পাইপলাইনের মধ্য দিয়ে অনূদিত হয়ে নির্বাচিত প্রোভাইডারের কাছে পাঠানো হবে।",
+ "youWithFormat": "আপনি ({format})",
+ "assistant": "সহকারী",
+ "typeMessage": "একটি বার্তা লিখুন...",
+ "send": "পাঠান",
+ "clientRequest": "ক্লায়েন্ট অনুরোধ",
+ "clientRequestDescription": "আপনার ক্লায়েন্ট যেভাবে অনুরোধের বডি পাঠাবে",
+ "formatDetected": "শনাক্ত করা ফরম্যাট",
+ "formatDetectedDescription": "OmniRoute অনুরোধের কাঠামো থেকে স্বয়ংক্রিয়ভাবে API ফরম্যাট শনাক্ত করে",
+ "openaiIntermediate": "OpenAI মধ্যবর্তী ফরম্যাট",
+ "openaiIntermediateDescription": "সব ফরম্যাট প্রথমে OpenAI ফরম্যাটে স্বাভাবিকীকরণ করা হয় (সার্বজনীন সেতু)",
+ "providerFormat": "প্রোভাইডার ফরম্যাট",
+ "providerFormatDescription": "OpenAI ফরম্যাটটি প্রোভাইডারের নিজস্ব ফরম্যাটে অনুবাদ করা হয়",
+ "providerResponse": "প্রোভাইডারের প্রতিক্রিয়া",
+ "providerResponseRawDescription": "প্রোভাইডার API থেকে পাওয়া অপরিবর্তিত প্রতিক্রিয়া",
+ "providerResponseSseDescription": "প্রোভাইডার API থেকে পাওয়া অপরিবর্তিত SSE স্ট্রিম",
+ "unexpectedError": "একটি অপ্রত্যাশিত ত্রুটি ঘটেছে",
+ "error": "ত্রুটি",
+ "errorMessage": "ত্রুটি: {message}",
+ "requestFailed": "অনুরোধ ব্যর্থ হয়েছে",
+ "noTextExtracted": "(কোনো টেক্সট বের করা যায়নি)",
"liveMonitorMemoryNote": "ইভেন্টগুলি মেমরিতে সংরক্ষণ করা হয় এবং পুনরায় চালু করার সময় হারিয়ে যায়।",
"liveMonitorMemoryCapNote": "সর্বোচ্চ 200টি ইভেন্ট রাখা হয়েছে।",
"eventSourcesLabel": "ইভেন্ট সূত্র:",
"eventSourceTranslatorPage": "• অনুবাদক পৃষ্ঠা (চ্যাট টেস্টার, টেস্ট বেঞ্চ)",
"eventSourceMainPipeline": "• প্রধান অনুরোধ পাইপলাইন (CLI/IDE/API ট্র্যাফিক)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "OmniRoute-এর মাধ্যমে API কল প্রবাহিত হওয়ার সময় অনুবাদের ইভেন্টগুলো দেখায়। ইভেন্টগুলো ইন-মেমরি বাফার থেকে আসে (পুনরায় চালু করলে রিসেট হয়)। ব্যবহার করুন",
+ "liveMonitorDescriptionSuffix": ", অথবা ইভেন্ট তৈরি করতে বাহ্যিক API কল ব্যবহার করুন।",
"streamTransformer": "স্ট্রিম ট্রান্সফরমার",
"modeDescriptionStreamTransformer": "রেসপন্স ট্রান্সফরমারের মাধ্যমে চ্যাট সমাপ্তি SSE স্ট্রীম চালান।",
"streamTransformerTitle": "প্রতিক্রিয়া স্ট্রীম ট্রান্সফরমার",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "আপনার অ্যাপটি একটি নির্দিষ্ট API-এর \"ভাষা\" বোঝে। অনুবাদক এটিকে অন্য প্রোভাইডার ব্যবহার করার জন্য রূপান্তর করে।",
"conceptDiagramAppLabel": "আপনার অ্যাপ",
"conceptDiagramSourceLabel": "উৎস ফরম্যাট",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (হাব)",
"conceptDiagramTargetLabel": "টার্গেট প্রোভাইডার",
"conceptDiagramExampleApp": "যেমন Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "স্ট্রিম রূপান্তর করতে ব্যর্থ হয়েছে"
},
"usage": {
- "title": "Usage",
+ "title": "ব্যবহার",
"grokExtraUsageCredits": "অতিরিক্ত ব্যবহার ক্রেডিট",
"grokAutoTopUp": "অটো টপ-আপ",
"grokAutoTopUpUnavailable": "অপলব্ধ",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "অবশিষ্ট",
"kiloPassRenews": "{count} দিনের মধ্যে নবায়ন হবে",
"kiloPassUsageLabel": "এই মাসের ব্যবহার",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "অতিরিক্ত ব্যবহারের ক্রেডিট",
+ "kimiExtraUsage": "অতিরিক্ত ব্যবহার",
+ "kimiExtraUsageEnabled": "সক্রিয়",
+ "kimiExtraUsageDisabled": "নিষ্ক্রিয়",
+ "kimiExtraUsageFrozen": "স্থগিত",
+ "kimiExtraUsageUnavailable": "অনুপলভ্য",
+ "kimiMonthlyUsed": "এই মাসে ব্যবহৃত",
+ "kimiMonthlyLimit": "মাসিক সীমা",
+ "kimiMonthlyLimitUnlimited": "সীমাহীন",
+ "kimiAdditionalCredits": "অতিরিক্ত ক্রেডিট",
+ "loggerTab": "লগার",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "বাজেট ব্যবস্থাপনা",
+ "budgetSaved": "বাজেটের সীমা সংরক্ষণ করা হয়েছে",
+ "budgetSaveFailed": "বাজেট সংরক্ষণ করা যায়নি",
+ "loadingBudgetData": "বাজেটের ডেটা লোড হচ্ছে...",
+ "noApiKeysTitle": "কোনো API কী নেই",
+ "noApiKeysDescription": "বাজেটের সীমা নির্ধারণ করতে প্রথমে API কী যোগ করুন।",
+ "apiKey": "API কী",
+ "todaysSpend": "আজকের ব্যয়",
+ "thisMonth": "এই মাসে",
+ "setLimits": "সীমা নির্ধারণ করুন",
+ "dailyLimitUsd": "দৈনিক সীমা (USD)",
+ "monthlyLimitUsd": "মাসিক সীমা (USD)",
+ "warningThresholdPercent": "সতর্কতার সীমা (%)",
+ "dailyLimitPlaceholder": "যেমন 5.00",
+ "monthlyLimitPlaceholder": "যেমন 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "সীমা সংরক্ষণ করুন",
+ "budgetOk": "বাজেট ঠিক আছে — {remaining} অবশিষ্ট",
+ "budgetExceeded": "বাজেট অতিক্রান্ত — অনুরোধগুলো ব্লক করা হতে পারে",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "এখনও কোনো ডেটা নেই",
+ "latency": "বিলম্ব",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "প্রম্পট ক্যাশ",
+ "systemHealth": "সিস্টেমের স্বাস্থ্য",
+ "entries": "এন্ট্রি",
+ "activeCount": "{count}টি সক্রিয়",
+ "openCircuitBreakersDetected": "খোলা সার্কিট ব্রেকার শনাক্ত হয়েছে",
+ "hitRate": "হিট রেট",
+ "hitsMisses": "হিট / মিস",
+ "circuitBreakers": "সার্কিট ব্রেকার",
+ "lockedIPs": "লক করা IP",
+ "lockoutsAutoRefreshHint": "প্রতি-মডেল রেট লিমিট লক • প্রতি 10 সেকেন্ডে স্বয়ংক্রিয় রিফ্রেশ",
+ "lockedCount": "{count, plural, one {#টি লক করা} other {#টি লক করা}}",
+ "timeLeft": "{time} বাকি",
+ "howItWorks": "এটি যেভাবে কাজ করে",
+ "howItWorksSubtitle": "ইভ্যালুয়েশন কীভাবে আপনার LLM-এর প্রতিক্রিয়া যাচাই করে তা জানুন",
+ "define": "সংজ্ঞায়িত করুন",
+ "defineStepDescription": "contains, regex বা exact match-এর মতো কৌশল ব্যবহার করে ইনপুট প্রম্পট ও প্রত্যাশিত আউটপুটের মানদণ্ডসহ টেস্ট কেস তৈরি করুন।",
+ "run": "চালান",
+ "runStepDescription": "OmniRoute-এর মাধ্যমে আপনার LLM এন্ডপয়েন্টে টেস্ট কেস চালান। প্রতিটি কেস একটি বাস্তব API অনুরোধ হিসেবে পাঠানো হয়।",
+ "evaluate": "মূল্যায়ন করুন",
+ "evaluateStepDescription": "প্রতিক্রিয়াগুলো প্রত্যাশিত মানদণ্ডের সঙ্গে তুলনা করা হয়। ল্যাটেন্সি মেট্রিক ও বিস্তারিত ফিডব্যাকসহ প্রতিটি কেসের পাস/ফেল দেখুন।",
"evalsStrategyContainsLabel": "রয়েছে",
"evalsStrategyExactLabel": "হুবহু মিল",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "রেগেক্স",
"evalsStrategyCustomLabel": "কাস্টম লজিক",
"evalsStrategyContainsDescription": "LLM আউটপুটে প্রত্যাশিত সাবস্ট্রিং রয়েছে কিনা তা পরীক্ষা করে।",
"evalsStrategyExactDescription": "LLM আউটপুট প্রত্যাশিত মানের সাথে হুবহু মেলে কিনা তা পরীক্ষা করে।",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "পাস রেট",
"historyColumnAvgLatencyMs": "গড় লেটেন্সি",
"historyColumnCreatedAt": "সম্পাদিত",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "ইভ্যালুয়েশন স্যুট",
+ "evalSuitesHint": "টেস্ট কেস দেখতে একটি স্যুটে ক্লিক করুন, তারপর আপনার LLM এন্ডপয়েন্ট মূল্যায়ন করতে সেটি চালান",
+ "evalsLoading": "ইভ্যালুয়েশন স্যুট লোড হচ্ছে...",
+ "noEvalSuitesFound": "কোনো ইভ্যালুয়েশন স্যুট পাওয়া যায়নি",
+ "noEvalSuitesDescription": "ইভ্যালুয়েশন স্যুট API-এর মাধ্যমে বা কোডে সংজ্ঞায়িত করা যায়। এগুলো contains, regex, exact match এবং কাস্টম ফাংশনের মতো কৌশল ব্যবহার করে প্রত্যাশিত ফলাফলের বিপরীতে মডেলের আউটপুট পরীক্ষা করে।",
+ "columnCase": "কেস",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "ল্যাটেন্সি",
+ "columnDetails": "বিস্তারিত",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "কৌশল",
+ "columnExpected": "প্রত্যাশিত",
+ "statsSuites": "স্যুট",
+ "statsTestCases": "টেস্ট কেস",
+ "statsModels": "মডেল",
+ "statsCoverage": "কভারেজ",
+ "statsStrategiesCount": "{count}টি কৌশল",
+ "evaluationStrategies": "ইভ্যালুয়েশন কৌশল",
+ "modelsUnderTest": "পরীক্ষাধীন মডেল",
+ "searchSuitesPlaceholder": "স্যুট খুঁজুন...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {#টি কেস} other {#টি কেস}}",
+ "runEval": "মূল্যায়ন চালান",
"runAllSuites": "সব চালান",
"runAllRunning": "সব চলছে...",
"runAllProgress": "চলছে {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {#টি স্যুট ব্যর্থ হয়েছে} other {#টি স্যুট ব্যর্থ হয়েছে}}",
"runAllCompleted": "{suites} স্যুট চালিয়েছে — {passed} পাস করেছে, {failed} ব্যর্থ হয়েছে",
"runAllCompletedWithFailures": "{completed} স্যুট চালান; {failedSuites} সম্পূর্ণ হতে ব্যর্থ হয়েছে৷",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "চলছে {current}/{total}...",
+ "passRate": "পাসের হার",
+ "summaryBreakdown": "{passed}টি পাস · {failed}টি ব্যর্থ · মোট {total}টি",
+ "passedIconLabel": "✅ পাস হয়েছে",
+ "failedIconLabel": "❌ ব্যর্থ হয়েছে",
"resultPassed": "পাস করেছে",
"resultFailed": "ব্যর্থ হয়েছে",
"expandResult": "ফলাফলের বিবরণ প্রসারিত করুন",
"collapseResult": "ফলাফলের বিবরণ আড়াল করুন",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "রয়েছে: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "প্রত্যাশিত: \"{expected}\"",
"expectedOutputLabel": "প্রত্যাশিত আউটপুট",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "এখনও কোনো ফলাফল নেই",
+ "testCasesCount": "টেস্ট কেস ({count})",
+ "noTestCasesDefined": "কোনো টেস্ট কেস নির্ধারিত নেই",
+ "runEvalHint": "আপনার LLM এন্ডপয়েন্টে সব কেস চালাতে \"মূল্যায়ন চালান\"-এ ক্লিক করুন। প্রতিটি টেস্ট OmniRoute-এর মাধ্যমে একটি বাস্তব অনুরোধ পাঠায়।",
+ "notifyNoTestCases": "এই স্যুটের জন্য কোনো টেস্ট কেস নির্ধারিত নেই",
+ "notifyAllCasesPassed": "সব {total}টি কেস পাস হয়েছে ✅",
+ "notifySomeCasesFailed": "{passed}/{total}টি পাস হয়েছে, {failed}টি ব্যর্থ হয়েছে",
+ "notifyEvalRunFailed": "মূল্যায়ন চালানো ব্যর্থ হয়েছে",
+ "notifyEvalTitle": "মূল্যায়ন: {name}",
+ "modelEvals": "মডেল মূল্যায়ন",
+ "evalsHeroDescription": "পূর্বনির্ধারিত মূল্যায়ন স্যুট চালিয়ে আপনার LLM এন্ডপয়েন্টগুলো পরীক্ষা ও যাচাই করুন। প্রতিটি স্যুটে এমন টেস্ট কেস থাকে, যেগুলো OmniRoute-এর মাধ্যমে বাস্তব প্রম্পট পাঠায় এবং প্রত্যাশিত মানদণ্ডের সঙ্গে প্রতিক্রিয়া তুলনা করে—যা আপনাকে রিগ্রেশন শনাক্ত করতে, মডেল তুলনা করতে এবং বিভিন্ন প্রোভাইডারে প্রতিক্রিয়ার গুণমান নিশ্চিত করতে সহায়তা করে।",
+ "qualityValidation": "গুণমান যাচাই",
+ "modelComparison": "মডেল তুলনা",
+ "regressionDetection": "রিগ্রেশন শনাক্তকরণ",
+ "latencyBenchmarks": "ল্যাটেন্সি বেঞ্চমার্ক",
+ "modelLockouts": "মডেল লকআউট",
+ "noLockouts": "বর্তমানে কোনো মডেল লক করা নেই",
+ "activeSessions": "সক্রিয় সেশন",
+ "noSessions": "কোনো সক্রিয় সেশন নেই",
+ "sessionsHint": "প্রক্সির মধ্য দিয়ে অনুরোধ প্রবাহিত হলে সেশনগুলো এখানে দেখা যাবে",
+ "sessionsTrackedHint": "অনুরোধের ফিঙ্গারপ্রিন্টের মাধ্যমে ট্র্যাক করা হয় • প্রতি ৫ সেকেন্ডে স্বয়ংক্রিয় রিফ্রেশ",
+ "session": "সেশন",
+ "age": "বয়স",
+ "requests": "অনুরোধ",
+ "connection": "সংযোগ",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "প্রোভাইডারের সীমা",
+ "noProviders": "কোনো প্রোভাইডার সংযুক্ত নেই",
+ "connectProvidersForQuota": "আপনার API কোটা সীমা ও ব্যবহার ট্র্যাক করতে OAuth-এর মাধ্যমে প্রোভাইডারদের সঙ্গে সংযোগ করুন।",
+ "accountsCount": "{count, plural, one {#টি অ্যাকাউন্ট} other {#টি অ্যাকাউন্ট}}",
+ "filteredFromCount": "({count}টি থেকে ফিল্টার করা)",
+ "autoRefresh": "স্বয়ংক্রিয় রিফ্রেশ",
+ "refreshAll": "সব রিফ্রেশ করুন",
+ "loadingQuotas": "লোড হচ্ছে...",
"showMoreQuotas": "আরও {count}টি দেখান",
"showLessQuotas": "কম দেখান",
"hideQuotaRow": "এই কোটা সারিটি লুকান",
"showQuotaRow": "এই কোটা সারিটি দেখান",
"hiddenQuotaRowsLabel": "লুকানো:",
"quotaVisibilityUpdateFailed": "কোটার দৃশ্যমানতা আপডেট করতে ব্যর্থ হয়েছে",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
+ "account": "অ্যাকাউন্ট",
+ "modelQuotas": "মডেল কোটা",
+ "lastUsed": "সর্বশেষ রিফ্রেশ",
+ "actions": "অ্যাকশন",
+ "refreshQuota": "কোটা রিফ্রেশ করুন",
+ "today": "আজ",
+ "tomorrow": "আগামীকাল",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "{duration} পরে",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "মূল প্ল্যান: {plan}",
+ "noPlanFromProvider": "প্রোভাইডার থেকে কোনো প্ল্যান পাওয়া যায়নি",
"tokenExpiresIn": "টোকেনের মেয়াদ {time}-এর মধ্যে শেষ হবে",
"tokenExpired": "টোকেনের মেয়াদ শেষ",
- "noQuotaData": "No quota data",
+ "noQuotaData": "কোনো কোটা ডেটা নেই",
"cardExpand": "প্রসারিত করুন",
"cardCollapse": "সংকুচিত করুন",
"moreQuotas": "+আরও {count}টি",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "গ্রুপবিহীন",
+ "viewFlat": "সমতল",
+ "viewByEnvironment": "এনভায়রনমেন্ট অনুযায়ী",
+ "noQuotaDataAvailable": "কোনো কোটা ডেটা উপলভ্য নেই",
+ "noAccountsForTierFilter": "টিয়ার ফিল্টারের জন্য কোনো অ্যাকাউন্ট পাওয়া যায়নি",
+ "tierAll": "সব",
+ "tierEnterprise": "এন্টারপ্রাইজ",
+ "tierTeam": "টিম",
+ "tierBusiness": "বিজনেস",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "ফ্রি",
"tierLite": "লাইট",
- "tierUnknown": "Unknown",
+ "tierUnknown": "অজানা",
"statTotal": "মোট",
"statCritical": "গুরুতর",
"statAlert": "অ্যালার্ট",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "ক্রেডিট রিডিম করুন",
"resetCreditRedeemed": "রিসেট রিডিম করা হয়েছে",
"resetCreditRedeemFailed": "রিসেট ক্রেডিট রিডিম করতে ব্যর্থ হয়েছে",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "স্যুট সংরক্ষণ করা যায়নি",
"clone": "ক্লোন",
"exportSuite": "রপ্তানি",
"importSuite": "আমদানি",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "অবৈধ eval স্যুট JSON",
"suiteBuilderCloneSuffix": "অনুলিপি",
"suiteBuilderImportedSuite": "আমদানিকৃত স্যুট",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "স্কোরকার্ড",
+ "evalApiKey": "API কী",
+ "scorecardPassRate": "পাসের হার",
+ "targetTypeModel": "মডেল",
+ "actualOutputLabel": "প্রকৃত আউটপুট",
+ "evalTargetHint": "মূল্যায়নের জন্য একটি মডেল বা কম্বো নির্বাচন করুন।",
+ "suiteBuilderDeleted": "স্যুট সফলভাবে মুছে ফেলা হয়েছে",
+ "suiteBuilderCaseCardHint": "ইনপুট প্রম্পট এবং প্রত্যাশিত আউটপুটের মানদণ্ড নির্ধারণ করুন।",
+ "nextResetUtc": "পরবর্তী রিসেট (UTC)",
+ "scorecardHint": "সমস্ত মূল্যায়ন স্যুটের সমন্বিত পাসের হার।",
+ "suiteLatestRunsHint": "এই স্যুটের সাম্প্রতিকতম মূল্যায়ন রানসমূহ।",
+ "saving": "সংরক্ষণ করা হচ্ছে",
+ "suiteBuilderCaseModelLabel": "মডেল (ঐচ্ছিক)",
+ "evalControlsTitle": "মূল্যায়ন নিয়ন্ত্রণ",
+ "suiteBuilderEditTitle": "ইভ্যাল স্যুট সম্পাদনা করুন",
+ "suiteBuilderCaseStrategyLabel": "যাচাইকরণ কৌশল",
+ "notifySelectDifferentCompareTarget": "তুলনার জন্য অনুগ্রহ করে একটি ভিন্ন টার্গেট নির্বাচন করুন",
+ "recentRunsHint": "সাম্প্রতিকতম ইভ্যালুয়েশন রানগুলো দেখানো হচ্ছে। বিস্তারিত ফলাফল দেখতে কোনো রানে ক্লিক করুন।",
+ "evalCompareHint": "ঐচ্ছিকভাবে দ্বিতীয় একটি টার্গেটের সঙ্গে ফলাফল তুলনা করুন।",
+ "suiteBuilderCaseInvalid": "এই কেসটিতে যাচাইকরণ ত্রুটি রয়েছে। সংরক্ষণ করার আগে অনুগ্রহ করে সেগুলো ঠিক করুন।",
+ "historyEmpty": "এখনও কোনো ইভ্যালুয়েশন ইতিহাস নেই",
+ "suiteBuilderUpdated": "স্যুট সফলভাবে আপডেট হয়েছে",
+ "resetInterval": "রিসেটের ব্যবধান",
+ "suiteBuilderCreateTitle": "ইভ্যাল স্যুট তৈরি করুন",
+ "activePeriodSpend": "সক্রিয় সময়কালের ব্যয়",
+ "evalApiKeyHint": "ইভ্যালুয়েশন অনুরোধের জন্য কোন API key ব্যবহার করতে হবে তা নির্বাচন করুন।",
+ "evalCompareOptional": "তুলনা করুন (ঐচ্ছিক)",
+ "suiteBuilderDeleteFailed": "স্যুট মুছতে ব্যর্থ হয়েছে",
+ "suiteBuilderCaseSystemPromptPlaceholder": "ঐচ্ছিক সিস্টেম নির্দেশনা...",
+ "scorecardCases": "কেসসমূহ",
+ "runCompletedWithScore": "ইভ্যালুয়েশন সম্পন্ন হয়েছে — {score}% পাসের হার",
+ "suiteBuilderCustomBadge": "কাস্টম",
+ "targetSuiteDefaults": "স্যুটের ডিফল্ট মান",
+ "suiteBuilderDeleteConfirm": "আপনি কি নিশ্চিত যে এই স্যুটটি মুছে ফেলতে চান? এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না।",
+ "suiteBuilderNameLabel": "স্যুটের নাম",
+ "scorecardSuites": "স্যুটসমূহ",
+ "evalCompareTarget": "তুলনার টার্গেট",
+ "suiteBuilderCaseModelPlaceholder": "যেমন, gpt-4o-mini",
+ "evalControlsHint": "আপনার ইভ্যালুয়েশন টার্গেট এবং API key কনফিগার করুন, তারপর মডেলের গুণমান যাচাই করতে স্যুট চালান।",
+ "recentRunsTitle": "সাম্প্রতিক রানসমূহ",
+ "suiteBuilderCaseSystemPromptLabel": "সিস্টেম প্রম্পট",
+ "suiteBuilderCaseExpectedPlaceholder": "যেমন, def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "যেমন ডিফ ফিবোনাচি",
"suiteBuilderCaseExpectedPlaceholderExact": "সঠিক প্রত্যাশিত প্রতিক্রিয়া আটকান",
"suiteBuilderCaseExpectedPlaceholderRegex": "যেমন ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "স্ল্যাশগুলি মোড়ানো ছাড়াই একটি জাভাস্ক্রিপ্ট রেগুলার এক্সপ্রেশন ব্যবহার করুন।",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "যেমন, Coding Quality Suite",
+ "suiteBuilderAddCase": "কেস যোগ করুন",
+ "cancel": "বাতিল করুন",
+ "evalTarget": "টার্গেট",
+ "suiteBuilderCaseNameLabel": "কেসের নাম",
+ "weeklyLimitUsd": "সাপ্তাহিক সীমা (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "যেমন, Python-এ একটি fibonacci ফাংশন লিখুন",
+ "suiteBuilderNameRequired": "স্যুটের নাম আবশ্যক",
+ "suiteBuilderCaseUserPromptLabel": "ব্যবহারকারীর প্রম্পট",
+ "daily": "দৈনিক",
+ "resultErrorLabel": "ত্রুটি",
+ "suiteBuilderBuiltInBadge": "বিল্ট-ইন",
+ "suiteBuilderCaseCardTitle": "টেস্ট কেস",
"suiteBuilderDuplicateCase": "ডুপ্লিকেট",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "যেমন 50.00",
+ "suiteBuilderCaseTagsHint": "টেস্ট কেস সংগঠিত করার জন্য কমা দিয়ে পৃথক করা ট্যাগ।",
+ "notifyEvalRunFailedWithReason": "মূল্যায়ন ব্যর্থ হয়েছে: {reason}",
+ "weekly": "সাপ্তাহিক",
+ "runEvalRunning": "মূল্যায়ন চলছে...",
+ "delete": "মুছুন",
+ "resetTimeUtc": "রিসেটের সময় (UTC)",
+ "evalApiKeyAuto": "স্বয়ংক্রিয় (ডিফল্ট ব্যবহার করুন)",
+ "suiteBuilderDescriptionPlaceholder": "এই স্যুটটি কী পরীক্ষা করে তার ঐচ্ছিক বিবরণ...",
+ "targetComparisonTitle": "লক্ষ্য তুলনা",
+ "save": "সংরক্ষণ করুন",
+ "suiteBuilderCreated": "স্যুট সফলভাবে তৈরি হয়েছে",
+ "suiteLatestRuns": "সর্বশেষ রানসমূহ",
+ "suiteBuilderCaseExpectedLabel": "প্রত্যাশিত মান",
+ "historyLatency": "বিলম্ব",
+ "suiteBuilderCaseTagsPlaceholder": "যেমন coding, python",
+ "targetTypeCombo": "কম্বো",
+ "scorecardPassed": "উত্তীর্ণ",
+ "suiteBuilderCaseTagsLabel": "ট্যাগ",
+ "suiteBuilderNewSuite": "নতুন স্যুট",
+ "notifyEvalLoadFailed": "মূল্যায়নের ডেটা লোড করা যায়নি",
+ "notConfigured": "কনফিগার করা হয়নি",
+ "suiteBuilderCaseNamePlaceholder": "যেমন Python fibonacci test",
+ "intervalLabel": "বিরতি",
+ "suiteBuilderCreateAction": "স্যুট তৈরি করুন",
+ "suiteBuilderCasesHint": "প্রতিটি কেস একটি প্রম্পট পাঠায় এবং প্রতিক্রিয়াটি যাচাই করে।",
+ "suiteBuilderUpdatedAt": "আপডেট করা হয়েছে",
+ "errorBadge": "ত্রুটি",
+ "suiteBuilderCasesTitle": "টেস্ট কেসসমূহ",
+ "edit": "সম্পাদনা করুন",
+ "monthly": "মাসিক",
+ "suiteBuilderCasesRequired": "অন্তত একটি টেস্ট কেস আবশ্যক",
+ "weeklyLimitSummary": "সাপ্তাহিক বাজেট সীমার সারাংশ",
+ "suiteBuilderDescriptionLabel": "বিবরণ",
+ "targetComparisonHint": "লক্ষ্যগুলোর মধ্যে মূল্যায়নের ফলাফলের পাশাপাশি তুলনা।",
+ "compareCompletedWithScore": "তুলনা সম্পন্ন হয়েছে — {score}% পাসের হার",
+ "staleQuotaTooltip": "সর্বশেষ রিফ্রেশ ব্যর্থ হয়েছে — ক্যাশে করা ডেটা দেখানো হচ্ছে",
"quotaThresholdLabel": "মিনিট বাকি",
"quotaCutoffsColumnHelp": "অবশিষ্ট কোটা এই শতাংশে বা তার নিচে পড়লে অনুরোধগুলি বন্ধ করুন।",
"quotaCutoffsButtonDefault": "ডিফল্ট",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "সংযুক্ত অ্যাকাউন্টগুলোর লাইভ স্ট্যাটাস"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "অনুমোদনের জন্য অপেক্ষা করা হচ্ছে",
+ "verificationUrl": "যাচাইকরণ URL",
+ "yourCode": "আপনার কোড",
+ "remoteAccess": "রিমোট অ্যাক্সেস:",
+ "connectedSuccess": "সফলভাবে সংযুক্ত হয়েছে!",
+ "connectionFailed": "সংযোগ ব্যর্থ হয়েছে",
+ "chooseAuthMethod": "আপনার প্রমাণীকরণ পদ্ধতি বেছে নিন:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Google অ্যাকাউন্ট",
+ "githubAccount": "GitHub অ্যাকাউন্ট",
+ "importToken": "টোকেন আমদানি করুন",
+ "pasteToken": "Kiro IDE থেকে রিফ্রেশ টোকেন পেস্ট করুন।",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "স্বয়ংক্রিয়ভাবে টোকেন শনাক্ত করা হচ্ছে...",
+ "readingFromCache": "AWS SSO ক্যাশ থেকে পড়া হচ্ছে",
+ "readingFromCursor": "Cursor IDE ডেটাবেস থেকে পড়া হচ্ছে",
+ "initializing": "শুরু করা হচ্ছে...",
+ "pricingConfig": "মূল্য নির্ধারণ কনফিগারেশন",
+ "loadingPricing": "মূল্য সংক্রান্ত ডেটা লোড হচ্ছে...",
+ "pricingRatesFormat": "মূল্যহারের ফরম্যাট",
+ "noPricingData": "মূল্য সংক্রান্ত কোনো ডেটা উপলভ্য নেই",
+ "noModelsFound": "কোনো মডেল পাওয়া যায়নি"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "সব প্রোভাইডার",
+ "allModels": "সব মডেল",
+ "allAccounts": "সব অ্যাকাউন্ট",
+ "allApiKeys": "সব API কী",
+ "allTypes": "সব ধরন",
+ "allLevels": "সব স্তর",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "লগ লোড হচ্ছে...",
+ "loadingProxyLogs": "প্রক্সি লগ লোড হচ্ছে...",
+ "noLogEntries": "কোনো লগ এন্ট্রি পাওয়া যায়নি",
+ "noPayloadData": "এই লগ এন্ট্রির জন্য কোনো পেলোড ডেটা উপলভ্য নেই।",
+ "proxyEvent": "প্রক্সি ইভেন্ট",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "স্তর",
+ "directNative": "সরাসরি (নেটিভ)",
+ "combo": "কম্বো",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "ব্যবহারের সারসংক্ষেপ",
+ "outputTokens": "আউটপুট টোকেন",
+ "totalCost": "মোট খরচ",
+ "usageByModel": "মডেল অনুযায়ী ব্যবহার",
+ "usageByAccount": "অ্যাকাউন্ট অনুযায়ী ব্যবহার",
+ "failedToLoad": "ব্যবহারের পরিসংখ্যান লোড করা যায়নি।",
+ "tokenHealth": "টোকেনের অবস্থা",
+ "totalOAuth": "মোট OAuth",
+ "healthy": "স্বাভাবিক",
+ "warning": "সতর্কতা",
+ "errored": "ত্রুটিযুক্ত",
+ "lastCheck": "সর্বশেষ পরীক্ষা",
+ "noData": "কোনো ডেটা নেই",
+ "share": "শেয়ার করুন",
+ "unableToLoad": "সিস্টেম মেট্রিক্স লোড করা যায়নি",
+ "product": "প্রোডাক্ট",
+ "resources": "রিসোর্স",
+ "company": "কোম্পানি",
"tokenHealthTooltips": {
"allHealthy": "সব টোকেন স্বাস্থ্যকর",
"needsAttention": "কিছু টোকেনের যত্ন নেওয়া প্রয়োজন",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "এখনো কোনো অ্যাকাউন্ট-নির্দিষ্ট ব্যবহার রেকর্ড করা হয়নি। এখানে ডেটা দেখতে OAuth অ্যাকাউন্ট ব্যবহার করে অনুরোধ করুন।"
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "স্বাগতম",
+ "signIn": "সাইন ইন করুন",
+ "enterPassword": "চালিয়ে যেতে আপনার পাসওয়ার্ড লিখুন",
+ "password": "পাসওয়ার্ড",
+ "unifiedProxy": "ইউনিফায়েড AI API প্রক্সি",
+ "unifiedAiApiProxy": "ইউনিফায়েড AI API প্রক্সি",
+ "unifiedAiApiProxyDesc": "একটি একক এন্ডপয়েন্টের মাধ্যমে একাধিক AI প্রোভাইডারের কাছে রিকোয়েস্ট রাউট করুন। লোড ব্যালান্সিং, ফেইলওভার এবং ব্যবহার ট্র্যাকিং বিল্ট-ইন।",
+ "passwordNotEnabled": "পাসওয়ার্ড সুরক্ষা সক্রিয় নেই",
+ "loading": "লোড হচ্ছে...",
+ "invalidPassword": "অবৈধ পাসওয়ার্ড",
+ "errorOccurredRetry": "একটি ত্রুটি ঘটেছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "configureInstance": "চলুন আপনার OmniRoute ইনস্ট্যান্স কনফিগার করি",
+ "runOnboardingWizard": "আপনার পাসওয়ার্ড সেট আপ করতে এবং প্রথম AI প্রোভাইডার সংযুক্ত করতে অনবোর্ডিং উইজার্ড চালান।",
+ "startOnboarding": "অনবোর্ডিং শুরু করুন",
+ "secureYourInstance": "আপনার ইনস্ট্যান্স সুরক্ষিত করুন",
+ "setPasswordDescription": "আপনার ড্যাশবোর্ড সুরক্ষিত রাখতে এবং অননুমোদিত অ্যাক্সেস থেকে API এন্ডপয়েন্টগুলো রক্ষা করতে একটি পাসওয়ার্ড সেট করুন।",
+ "configurePassword": "পাসওয়ার্ড কনফিগার করুন",
+ "continue": "চালিয়ে যান",
+ "windowWillClose": "এই উইন্ডোটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে...",
+ "closeTabNow": "আপনি এখন এই ট্যাবটি বন্ধ করতে পারেন।",
+ "copyUrlManual": "অনুগ্রহ করে অ্যাড্রেস বার থেকে URL কপি করে অ্যাপ্লিকেশনে পেস্ট করুন।",
+ "accessDeniedDescription": "এই রিসোর্স অ্যাক্সেস করার অনুমতি আপনার নেই। আপনার API key পরীক্ষা করুন অথবা অ্যাডমিনিস্ট্রেটরের সঙ্গে যোগাযোগ করুন।",
+ "goToDashboard": "ড্যাশবোর্ডে যান",
+ "featureMultiProviderTitle": "মাল্টি-প্রোভাইডার",
+ "featureMultiProviderDesc": "OpenAI, Anthropic, Google এবং আরও অনেক",
+ "featureLoadBalancingTitle": "লোড ব্যালান্সিং",
+ "featureLoadBalancingDesc": "বুদ্ধিমত্তার সঙ্গে রিকোয়েস্ট বিতরণ করুন",
+ "featureUsageTrackingTitle": "ব্যবহার ট্র্যাকিং",
+ "featureUsageTrackingDesc": "খরচ এবং টোকেন পর্যবেক্ষণ করুন",
+ "resetPassword": "পাসওয়ার্ড রিসেট করুন",
+ "resetDescription": "আপনার ড্যাশবোর্ডে অ্যাক্সেস পুনরুদ্ধারের জন্য একটি পদ্ধতি বেছে নিন",
+ "stopServer": "OmniRoute সার্ভার বন্ধ করুন",
+ "processing": "প্রক্রিয়া চলছে...",
+ "pleaseWait": "আমরা অনুমোদন সম্পন্ন করা পর্যন্ত অনুগ্রহ করে অপেক্ষা করুন।",
+ "authSuccess": "অনুমোদন সফল হয়েছে!",
+ "copyUrl": "এই URL কপি করুন",
+ "accessDenied": "অ্যাক্সেস প্রত্যাখ্যাত হয়েছে",
+ "methodCliTitle": "পদ্ধতি ১: CLI রিসেট",
+ "methodCliDescription": "OmniRoute যে সার্ভারে চলছে, সেখানে নিম্নলিখিত কমান্ডটি চালান:",
+ "methodCliHint": "এটি আপনাকে একটি নতুন পাসওয়ার্ড সেট করতে বলবে। প্রথমে সার্ভারটি বন্ধ করতে হবে।",
+ "methodManualTitle": "পদ্ধতি ২: ম্যানুয়াল রিসেট",
+ "methodManualDescription": "ডেটাবেস থেকে পাসওয়ার্ডটি মুছে দিন এবং চালু হওয়ার সময় একটি নতুন পাসওয়ার্ড সেট করুন:",
+ "setPasswordInYour": "আপনার",
+ "fileLabelSuffix": "ফাইলে একটি নতুন পাসওয়ার্ড সেট করুন:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "মুছে দিন",
+ "orRemovePasswordHashField": "অথবা passwordHash ফিল্ডটি সরিয়ে দিন",
+ "restartServerWithNewPassword": "সার্ভারটি পুনরায় চালু করুন—এটি নতুন পাসওয়ার্ড ব্যবহার করবে",
+ "backToLogin": "লগইনে ফিরে যান",
+ "forgotPassword": "পাসওয়ার্ড ভুলে গেছেন?",
"continueWithOidc": "OIDC দিয়ে এগিয়ে যান",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "ডিফল্ট পাসওয়ার্ড: CHANGEME (যদি INITIAL_PASSWORD সেট করা না হয়ে থাকে)",
+ "Authorization": "অনুমোদন",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "অনুমোদনের জন্য অপেক্ষা করা হচ্ছে...",
+ "waitingForGoogleAuthorization": "Google অনুমোদনের জন্য অপেক্ষা করা হচ্ছে...",
+ "waitingForOpenAIAuthorization": "OpenAI অনুমোদনের জন্য অপেক্ষা করা হচ্ছে...",
+ "waitingForAntigravityAuthorization": "Antigravity অনুমোদনের জন্য অপেক্ষা করা হচ্ছে...",
+ "waitingForQoderAuthorization": "Qoder অনুমোদনের জন্য অপেক্ষা করা হচ্ছে...",
+ "exchangingCodeForTokens": "কোডের বিনিময়ে টোকেন নেওয়া হচ্ছে...",
+ "nodeIncompatibleTitle": "অসামঞ্জস্যপূর্ণ Node.js সংস্করণ",
+ "nodeIncompatibleDesc": "আপনি Node.js {version} চালাচ্ছেন, যা OmniRoute-এর সমর্থিত নিরাপদ রানটাইম নীতির আওতার বাইরে। প্যাচ করা Node.js 20.x বা 22.x LTS রিলিজ ব্যবহার করুন।",
+ "nodeIncompatibleFixLabel": "সমাধান: প্যাচ করা Node.js 22 LTS রিলিজ ইনস্টল করুন",
+ "nodeIncompatibleHint": "OmniRoute-এর জন্য Node.js 22.22.2+ (22.x LTS) অথবা 24.0.0+ (24.x LTS) প্রয়োজন। Node 24 LTS ব্যবহারের পরামর্শ দেওয়া হয়।",
"resetViaAppDataTitle": "অ্যাপ ডেটার মাধ্যমে রিসেট করুন",
"resetViaAppDataDescription": "অ্যাপ ডেটা ডিরেক্টরি থেকে সেটিংস ফাইলটি মুছে ফেলুন আপনার পাসওয়ার্ড রিসেট করতে:",
"quitDesktopApp": "OmniRoute ডেস্ক অ্যাপটি সম্পূর্ণরূপে বন্ধ করুন",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "হোমে যান",
+ "toggleMenu": "মেনু টগল করুন",
+ "featuresLink": "বৈশিষ্ট্যসমূহ",
+ "docsLink": "ডকুমেন্টেশন",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "versionLive": "v1.0 এখন লাইভ",
+ "oneEndpoint": "একটি এন্ডপয়েন্টে",
+ "allProviders": "সব AI প্রদানকারী",
+ "heroDescription": "ওয়েব ড্যাশবোর্ডসহ AI এন্ডপয়েন্ট প্রক্সি—CLIProxyAPI-এর একটি JavaScript পোর্ট। Claude Code, OpenAI Codex, Cline, RooCode এবং অন্যান্য CLI টুলের সঙ্গে নির্বিঘ্নে কাজ করে।",
+ "getStarted": "শুরু করুন",
+ "viewOnGithub": "GitHub-এ দেখুন",
+ "powerfulFeatures": "শক্তিশালী ফিচারসমূহ",
+ "featuresSubtitle": "আপনার AI অবকাঠামো এক জায়গায় পরিচালনার জন্য প্রয়োজনীয় সবকিছু, যা বৃহৎ পরিসরে ব্যবহারের উপযোগী করে তৈরি।",
+ "featureUnifiedEndpointTitle": "একীভূত এন্ডপয়েন্ট",
+ "featureUnifiedEndpointDesc": "একটি আদর্শ API URL-এর মাধ্যমে সব প্রদানকারী ব্যবহার করুন।",
+ "featureEasySetupTitle": "সহজ সেটআপ",
+ "featureEasySetupDesc": "npx কমান্ড ব্যবহার করে কয়েক মিনিটেই চালু করুন।",
+ "featureModelFallbackTitle": "মডেল ফলব্যাক",
+ "featureModelFallbackDesc": "ব্যর্থতা বা উচ্চ ল্যাটেন্সির ক্ষেত্রে স্বয়ংক্রিয়ভাবে প্রদানকারী পরিবর্তন করুন।",
+ "featureUsageTrackingTitle": "ব্যবহার ট্র্যাকিং",
+ "featureUsageTrackingDesc": "সব মডেলের বিস্তারিত বিশ্লেষণ ও খরচ পর্যবেক্ষণ।",
+ "featureOAuthApiKeysTitle": "OAuth ও API কী",
+ "featureOAuthApiKeysDesc": "একটি ভল্টে নিরাপদে পরিচয়পত্র পরিচালনা করুন।",
+ "featureCloudSyncTitle": "ক্লাউড সিঙ্ক",
+ "featureCloudSyncDesc": "ডিভাইসগুলোর মধ্যে আপনার কনফিগারেশন তাৎক্ষণিকভাবে সিঙ্ক করুন।",
+ "featureCliSupportTitle": "CLI সমর্থন",
+ "featureCliSupportDesc": "Claude Code, Codex, Cline, Cursor এবং আরও অনেক কিছুর সঙ্গে কাজ করে।",
+ "featureDashboardTitle": "ড্যাশবোর্ড",
+ "featureDashboardDesc": "রিয়েল-টাইম ট্রাফিক বিশ্লেষণের জন্য ভিজ্যুয়াল ড্যাশবোর্ড।",
+ "howItWorks": "OmniRoute যেভাবে কাজ করে",
+ "howItWorksDescription": "আপনার অ্যাপ্লিকেশন থেকে ডেটা আমাদের বুদ্ধিমান রাউটিং স্তরের মাধ্যমে নির্বিঘ্নে প্রবাহিত হয়ে কাজটির জন্য সেরা প্রদানকারীর কাছে পৌঁছায়।",
+ "howItWorksStep1Title": "১. CLI ও SDK",
+ "howItWorksStep1Description": "আপনার পছন্দের টুল বা আমাদের একীভূত SDK থেকে অনুরোধ শুরু হয়। শুধু বেস URL পরিবর্তন করুন।",
+ "howItWorksStep2Title": "২. OmniRoute হাব",
+ "howItWorksStep2Description": "আমাদের ইঞ্জিন প্রম্পট বিশ্লেষণ করে, প্রদানকারীর অবস্থা যাচাই করে এবং সর্বনিম্ন ল্যাটেন্সি বা খরচ অনুযায়ী রাউট করে।",
+ "howItWorksStep3Title": "৩. AI প্রদানকারী",
+ "howItWorksStep3Description": "অনুরোধটি OpenAI, Anthropic, Gemini বা অন্য কোনো প্রদানকারী তাৎক্ষণিকভাবে সম্পন্ন করে।",
+ "getStartedIn30Seconds": "৩০ সেকেন্ডে শুরু করুন",
+ "getStartedDescription": "OmniRoute ইনস্টল করুন, ওয়েব ড্যাশবোর্ডের মাধ্যমে আপনার প্রদানকারীদের কনফিগার করুন এবং AI অনুরোধ রাউট করা শুরু করুন।",
+ "installOmniRoute": "OmniRoute ইনস্টল করুন",
+ "installStepDescription": "তাৎক্ষণিকভাবে সার্ভার চালু করতে npx কমান্ড ব্যবহার করুন",
+ "openDashboard": "ড্যাশবোর্ড খুলুন",
+ "openDashboardStepDescription": "ওয়েব ইন্টারফেসের মাধ্যমে প্রদানকারী ও API কী কনফিগার করুন",
+ "routeRequests": "অনুরোধ রাউট করুন",
+ "routeRequestsStepDescription": "আপনার CLI টুলগুলোকে {endpoint}-এ নির্দেশ করুন",
+ "terminal": "টার্মিনাল",
+ "copy": "কপি করুন",
+ "copied": "✓ কপি করা হয়েছে",
+ "startingOmniRoute": "OmniRoute চালু হচ্ছে...",
+ "serverRunningOnLabel": "সার্ভার চলছে এখানে:",
+ "dashboardLabel": "ড্যাশবোর্ড",
+ "readyToRoute": "রাউট করার জন্য প্রস্তুত! ✓",
+ "configureProvidersNote": "📝 ড্যাশবোর্ডে প্রোভাইডার কনফিগার করুন অথবা এনভায়রনমেন্ট ভেরিয়েবল ব্যবহার করুন",
+ "dataLocation": "ডেটার অবস্থান:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "প্রোডাক্ট",
+ "dashboardLink": "ড্যাশবোর্ড",
+ "changelog": "পরিবর্তনের তালিকা",
+ "resources": "রিসোর্স",
+ "documentation": "ডকুমেন্টেশন",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "আইনি তথ্য",
+ "mitLicense": "MIT লাইসেন্স",
+ "footerTagline": "AI জেনারেশনের জন্য সমন্বিত এন্ডপয়েন্ট। সহজেই আপনার AI প্রোভাইডারগুলো সংযুক্ত, রাউট ও পরিচালনা করুন।",
+ "copyright": "© {year} OmniRoute। সর্বস্বত্ব সংরক্ষিত।",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "ইন্টার্যাক্টিভ ডায়াগ্রামটি ডেস্কটপে দৃশ্যমান",
+ "ctaTitle": "আপনার AI অবকাঠামোকে আরও সহজ করতে প্রস্তুত?",
+ "ctaDescription": "OmniRoute ব্যবহার করে নিজেদের AI ইন্টিগ্রেশনকে আরও কার্যকর করছেন—এমন ডেভেলপারদের সঙ্গে যোগ দিন। এটি ওপেন সোর্স এবং বিনামূল্যে শুরু করা যায়।",
+ "startFree": "বিনামূল্যে শুরু করুন",
+ "readDocumentation": "ডকুমেন্টেশন পড়ুন",
"company": "কোম্পানি",
"pricing": "মূল্য নির্ধারণ",
"apiReference": "এপিআই রেফারেন্স",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "কমিউনিটি আলোচনা"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "ডকুমেন্টেশন",
+ "quickStart": "দ্রুত শুরু",
"deploymentGuides": "স্থাপনার নির্দেশিকা",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "ফিচারসমূহ",
+ "supportedProviders": "সমর্থিত প্রোভাইডার",
+ "supportedProvidersToc": "প্রোভাইডার",
+ "commonUseCases": "সাধারণ ব্যবহারের ক্ষেত্র",
+ "clientCompatibility": "ক্লায়েন্ট সামঞ্জস্যতা",
+ "protocolsToc": "প্রোটোকল",
+ "apiReference": "API রেফারেন্স",
+ "managementApiReference": "ম্যানেজমেন্ট API রেফারেন্স",
+ "managementApiDescription": "প্রক্সি রেজিস্ট্রি, স্কোপ অ্যাসাইনমেন্ট এবং লিগ্যাসি প্রক্সি মাইগ্রেশনের জন্য অটোমেশন এন্ডপয়েন্ট।",
+ "method": "মেথড",
+ "path": "পাথ",
+ "notes": "নোট",
+ "modelPrefixes": "মডেল প্রিফিক্স",
+ "prefix": "প্রিফিক্স",
+ "troubleshooting": "সমস্যা সমাধান",
+ "supportsChat": "চ্যাট এবং রেসপন্স—উভয় এন্ডপয়েন্ট সমর্থন করে।",
+ "oauthAutoRefresh": "স্বয়ংক্রিয় টোকেন রিফ্রেশসহ OAuth সংযোগ।",
+ "fullStreaming": "সব মডেলের জন্য পূর্ণ স্ট্রিমিং সমর্থন।",
+ "docsLabel": "ডকুমেন্টেশন",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "ড্যাশবোর্ড খুলুন",
+ "endpointPage": "এন্ডপয়েন্ট পৃষ্ঠা",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "সমস্যা জানান",
+ "onThisPage": "এই পৃষ্ঠায়",
+ "documentationVersion": "ডকুমেন্টেশন - v{version}",
+ "quickStartStep1Title": "1. ইনস্টল করুন এবং চালান",
+ "quickStartStep1Prefix": "চালান",
+ "quickStartStep1Middle": "অথবা GitHub থেকে ক্লোন করে চালান",
+ "quickStartStep2Title": "2. API কী তৈরি করুন",
+ "quickStartStep2Text": "Endpoint -> Registered Keys-এ যান। প্রতিটি এনভায়রনমেন্টের জন্য একটি করে কী তৈরি করুন।",
+ "quickStartStep3Title": "3. প্রোভাইডার সংযুক্ত করুন",
+ "quickStartStep3Text": "OAuth লগইন, API কী অথবা ফ্রি-টিয়ার স্বয়ংক্রিয় সংযোগের মাধ্যমে প্রোভাইডার অ্যাকাউন্ট যোগ করুন।",
+ "quickStartStep4Title": "4. ক্লায়েন্টের বেস URL সেট করুন",
+ "quickStartStep4Prefix": "আপনার IDE বা API ক্লায়েন্টকে এখানে নির্দেশ করুন",
+ "quickStartStep4Suffix": "প্রোভাইডার প্রিফিক্স ব্যবহার করুন, উদাহরণস্বরূপ",
"deploySetupTitle": "সেটআপ গাইড",
"deploySetupText": "ধাপে ধাপে ইনস্টলেশন, পরিবেশ কনফিগারেশন, এবং OmniRoute-এর জন্য প্রথম-রান ওয়াকথ্রু।",
"deployElectronTitle": "ইলেক্ট্রন ডেস্কটপ",
@@ -10071,161 +10082,161 @@
"deployPwaTitle": "পিডব্লিউএ",
"deployPwaText": "Android, iOS এবং ডেস্কটপ ব্রাউজারে একটি প্রগতিশীল ওয়েব অ্যাপ হিসাবে OmniRoute ইনস্টল করুন।",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "Termux-এর মাধ্যমে Android-এ OmniRoute হেডলেস মোডে চালান। আপনার মোবাইল ব্রাউজার থেকে ড্যাশবোর্ড অ্যাক্সেস করুন।",
+ "featureRoutingTitle": "মাল্টি-প্রোভাইডার রাউটিং",
+ "featureRoutingText": "একটি OpenAI-সামঞ্জস্যপূর্ণ এন্ডপয়েন্টের মাধ্যমে 30টিরও বেশি AI প্রোভাইডারে অনুরোধ রাউট করুন। চ্যাট, রেসপন্স, অডিও এবং ইমেজ API সমর্থন করে।",
+ "featureCombosTitle": "কম্বো ও ভারসাম্যকরণ",
+ "featureCombosText": "ফলব্যাক চেইন এবং ভারসাম্যকরণ কৌশলসহ মডেল কম্বো তৈরি করুন: রাউন্ড-রবিন, অগ্রাধিকার, র্যান্ডম, সর্বনিম্ন-ব্যবহৃত এবং খরচ-অপ্টিমাইজড।",
+ "featureUsageTitle": "ব্যবহার ও খরচ ট্র্যাকিং",
+ "featureUsageText": "রিয়েল-টাইম টোকেন গণনা, প্রতিটি প্রোভাইডার/মডেলের খরচ হিসাব এবং API কী ও অ্যাকাউন্ট অনুযায়ী ব্যবহারের বিস্তারিত বিভাজন।",
+ "featureAnalyticsTitle": "অ্যানালিটিক্স ড্যাশবোর্ড",
+ "featureAnalyticsText": "সময়ের সঙ্গে অনুরোধ, টোকেন, ত্রুটি, ল্যাটেন্সি, খরচ এবং মডেলের জনপ্রিয়তার চার্টসহ ভিজ্যুয়াল অ্যানালিটিক্স।",
+ "featureHealthTitle": "স্বাস্থ্য পর্যবেক্ষণ",
+ "featureHealthText": "লাইভ স্বাস্থ্য পরীক্ষা, প্রোভাইডারের অবস্থা, সার্কিট ব্রেকারের অবস্থা এবং এক্সপোনেনশিয়াল ব্যাকঅফসহ স্বয়ংক্রিয় রেট লিমিট শনাক্তকরণ।",
+ "featureCliTitle": "CLI টুলস",
+ "featureCliText": "IDE কনফিগারেশন পরিচালনা করুন, ব্যাকআপ এক্সপোর্ট/ইমপোর্ট করুন, codex প্রোফাইল খুঁজুন এবং ড্যাশবোর্ড থেকে সেটিংস কনফিগার করুন।",
+ "featureSecurityTitle": "নিরাপত্তা ও নীতিমালা",
+ "featureSecurityText": "API কী প্রমাণীকরণ, IP ফিল্টারিং, প্রম্পট ইনজেকশন প্রতিরোধ, ডোমেইন নীতিমালা, সেশন ব্যবস্থাপনা এবং অডিট লগিং।",
+ "featureCloudSyncTitle": "ক্লাউড সিঙ্ক",
+ "featureCloudSyncText": "এনক্রিপ্ট করা ক্রেডেনশিয়াল এবং স্বয়ংক্রিয় ফেলওভারসহ দূরবর্তী অ্যাক্সেসের জন্য আপনার কনফিগারেশন Cloudflare Workers-এ সিঙ্ক করুন।",
+ "providersAcrossConnectionTypes": "তিন ধরনের সংযোগজুড়ে {count}টি প্রোভাইডার।",
+ "manageProviders": "প্রোভাইডার পরিচালনা করুন",
+ "providersCount": "{count}টি প্রোভাইডার",
+ "providerTypeFree": "বিনামূল্যের স্তর",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "API কী",
+ "useCaseSingleEndpointTitle": "অনেক প্রোভাইডারের জন্য একটি এন্ডপয়েন্ট",
+ "useCaseSingleEndpointText": "ক্লায়েন্টগুলোকে একটি বেস URL-এ নির্দেশ করুন এবং মডেল প্রিফিক্স অনুযায়ী রাউট করুন (উদাহরণ: gh/, cc/, kr/, openai/)।",
+ "useCaseFallbackTitle": "কম্বোর মাধ্যমে ফলব্যাক ও মডেল পরিবর্তন",
+ "useCaseFallbackText": "Dashboard-এ কম্বো মডেল তৈরি করুন এবং অভ্যন্তরীণভাবে প্রোভাইডার পরিবর্তিত হলেও ক্লায়েন্ট কনফিগ স্থিতিশীল রাখুন।",
+ "useCaseUsageVisibilityTitle": "ব্যবহার, খরচ ও ডিবাগের দৃশ্যমানতা",
+ "useCaseUsageVisibilityText": "Usage ও Analytics ট্যাবে প্রোভাইডার, অ্যাকাউন্ট এবং API কী অনুযায়ী টোকেন ও খরচ ট্র্যাক করুন।",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "বেস URL",
+ "chatEndpointLabel": "চ্যাট এন্ডপয়েন্ট",
+ "modelRecommendationLabel": "মডেল সুপারিশ: সুস্পষ্ট প্রিফিক্স",
+ "clientCodexTitle": "Codex / GitHub Copilot মডেলসমূহ",
+ "clientCodexBullet1": "এই প্রিফিক্সসহ মডেল ID ব্যবহার করুন:",
+ "clientCodexBullet2": "Codex-পরিবারের মডেলগুলো স্বয়ংক্রিয়ভাবে এখানে রাউট হয়:",
+ "clientCodexBullet3": "Codex-বহির্ভূত মডেলগুলো এখানে চলতে থাকে:",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "ব্যবহার করুন",
+ "clientCursorBullet1Suffix": "Cursor মডেলের জন্য প্রিফিক্স।",
+ "clientCursorBullet2": "OAuth সংযোগ—Providers পৃষ্ঠা থেকে লগইন করুন।",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "ব্যবহার করুন",
+ "clientClaudeBullet1Middle": "(Claude) অথবা",
+ "clientClaudeBullet1Suffix": "(Antigravity) প্রিফিক্স।",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "OmniRoute-কে OpenAI-সামঞ্জস্যপূর্ণ বেস URL হিসেবে ব্যবহার করুন এবং নির্ধারিত রাউটিংয়ের জন্য সুস্পষ্ট প্রোভাইডার প্রিফিক্স বজায় রাখুন।",
+ "clientWindsurfBullet2": "সাধারণ ট্রাফিকের জন্য মডেলগুলোকে `/v1/chat/completions`-এ নির্দেশ করুন এবং Codex-ধাঁচের ফ্লোর জন্য `/v1/responses` বজায় রাখুন।",
+ "clientWindsurfBullet3": "প্রস্তুত Windsurf কনফিগারেশন নির্দেশিকার জন্য Dashboard -> CLI Tools ব্যবহার করুন।",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "সুস্পষ্ট প্রোভাইডার/মডেল প্রিফিক্সের সঙ্গে Cline সবচেয়ে ভালো কাজ করে, যাতে রাউটারকে কখনো ব্যাকএন্ড অনুমান করতে না হয়।",
+ "clientClineBullet2": "সাধারণ মডেলের জন্য `/v1/chat/completions` ব্যবহার করুন এবং বিভিন্ন অ্যাকাউন্টে একই OmniRoute বেস URL পুনরায় ব্যবহার করুন।",
+ "clientClineBullet3": "Cline রানটাইমের সমস্যা ডিবাগ করার আগে OAuth/API কী যাচাই করতে Providers ড্যাশবোর্ড ব্যবহার করুন।",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "অন্তর্নিহিত অ্যাকাউন্ট বা প্রোভাইডার কম্বো পরিবর্তনের সময় OmniRoute-কে একটি স্থিতিশীল বেস URL হিসেবে ব্যবহার করুন।",
+ "clientKimiBullet2": "কোডিং ফ্লোতে প্রিফিক্সযুক্ত মডেলকে অগ্রাধিকার দিন, যাতে ফলব্যাক ও অডিট ট্রেইল সুস্পষ্ট থাকে।",
+ "clientKimiBullet3": "টুল ব্যবহারকারী ক্লায়েন্টের জন্য নেটিভ Responses-ধাঁচের রাউটিং চাইলে `/v1/responses` ব্যবহার করুন।",
+ "protocolsTitle": "প্রোটোকল: MCP ও A2A",
+ "protocolsDescription": "OpenAI-সামঞ্জস্যপূর্ণ API-এর পাশাপাশি OmniRoute দুটি অপারেশনাল প্রোটোকল প্রদান করে: টুল এক্সিকিউশনের জন্য MCP এবং এজেন্ট-টু-এজেন্ট ওয়ার্কফ্লোর জন্য A2A।",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "ক্লায়েন্টগুলোকে অডিটের দৃশ্যমানতাসহ OmniRoute টুল আবিষ্কার ও কল করার সুযোগ দিতে stdio-এর মাধ্যমে MCP ব্যবহার করুন।",
+ "protocolMcpStep1": "`omniroute --mcp` দিয়ে MCP ট্রান্সপোর্ট চালু করুন।",
+ "protocolMcpStep2": "আপনার MCP ক্লায়েন্টকে stdio ট্রান্সপোর্টে নির্দেশ করুন।",
+ "protocolMcpStep3": "সংযোগ যাচাই করতে `omniroute_get_health` এবং `omniroute_list_combos` কল করুন।",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "সিঙ্ক্রোনাসভাবে বা SSE স্ট্রিমিংয়ের মাধ্যমে টাস্ক জমা দিতে A2A JSON-RPC ব্যবহার করুন।",
+ "protocolA2aStep1": "এজেন্ট আবিষ্কারের জন্য `/.well-known/agent.json` পড়ুন।",
+ "protocolA2aStep2": "`POST /a2a`-এ `message/send` অথবা `message/stream` অনুরোধ পাঠান।",
+ "protocolA2aStep3": "`tasks/get` এবং `tasks/cancel` দিয়ে টাস্কের জীবনচক্র পরিচালনা করুন।",
+ "protocolTroubleshootingTitle": "প্রোটোকল সমস্যা সমাধান",
+ "protocolTroubleshooting1": "MCP স্ট্যাটাস অফলাইন থাকলে, stdio প্রসেসটি চলছে এবং heartbeat ফাইলটি আপডেট হচ্ছে কি না যাচাই করুন।",
+ "protocolTroubleshooting2": "A2A টাস্কগুলো `working` অবস্থায় আটকে থাকলে, `/api/a2a/tasks/:id` পরিদর্শন করুন এবং চূড়ান্ত অবস্থার জন্য ইভেন্ট স্ট্রিম দেখুন।",
+ "protocolTroubleshooting3": "অপারেশনাল নিয়ন্ত্রণ এবং অডিট দৃশ্যমানতার জন্য `/dashboard/mcp` ও `/dashboard/a2a` ব্যবহার করুন।",
+ "endpointChatNote": "OpenAI-সামঞ্জস্যপূর্ণ চ্যাট এন্ডপয়েন্ট (ডিফল্ট)।",
+ "endpointResponsesNote": "Responses API এন্ডপয়েন্ট (Codex, o-series)।",
+ "endpointModelsNote": "সংযুক্ত সব প্রোভাইডারের মডেল ক্যাটালগ।",
+ "endpointAudioNote": "অডিও ট্রান্সক্রিপশন (Deepgram, AssemblyAI)।",
+ "endpointSpeechNote": "টেক্সট-টু-স্পিচ তৈরি (ElevenLabs, OpenAI TTS)।",
+ "endpointEmbeddingsNote": "টেক্সট এমবেডিং তৈরি (OpenAI, Cohere, Voyage)।",
+ "endpointImagesNote": "ছবি তৈরি (NanoBanana)।",
+ "endpointRewriteChatNote": "/v1 ছাড়া ক্লায়েন্টগুলোর জন্য রিরাইট সহায়ক।",
+ "endpointRewriteResponsesNote": "/v1 ছাড়া Responses-এর জন্য রিরাইট সহায়ক।",
+ "endpointRewriteModelsNote": "/v1 ছাড়া মডেল আবিষ্কারের জন্য রিরাইট সহায়ক।",
+ "mgmtProxiesListNote": "সংরক্ষিত প্রক্সি রেজিস্ট্রি আইটেমের তালিকা দেখুন (পেজিনেশন সমর্থিত)।",
+ "mgmtProxiesCreateNote": "রেজিস্ট্রিতে পুনর্ব্যবহারযোগ্য একটি প্রক্সি আইটেম তৈরি করুন।",
+ "mgmtProxiesHealthNote": "প্রক্সি লগ থেকে প্রতিটি সংরক্ষিত প্রক্সির ২৪ ঘণ্টার/রোলিং স্বাস্থ্য মেট্রিক্স পান।",
+ "mgmtProxiesBulkAssignNote": "একটি অনুরোধে বহু স্কোপ ID-তে একটি প্রক্সি বরাদ্দ করুন অথবা সরিয়ে দিন।",
+ "mgmtAssignmentsListNote": "স্কোপ, scope_id অথবা proxy_id অনুযায়ী প্রক্সি বরাদ্দের তালিকা দেখুন।",
+ "mgmtAssignmentsUpdateNote": "গ্লোবাল/প্রোভাইডার/অ্যাকাউন্ট/কম্বো স্কোপের জন্য প্রক্সি বরাদ্দ করুন অথবা সরিয়ে দিন।",
+ "mgmtLegacyMigrationNote": "লিগ্যাসি proxyConfig ম্যাপগুলো রেজিস্ট্রি বরাদ্দে ইমপোর্ট করুন।",
+ "modelPrefixesDescriptionStart": "নির্দিষ্ট কোনো প্রোভাইডারে রাউট করতে মডেলের নামের আগে প্রোভাইডার প্রিফিক্স ব্যবহার করুন। উদাহরণ:",
+ "modelPrefixesDescriptionEnd": "GitHub Copilot-এ রাউট করে।",
+ "provider": "প্রোভাইডার",
+ "type": "ধরন",
+ "troubleshootingModelRouting": "মডেল রাউটিংয়ে ক্লায়েন্ট ব্যর্থ হলে, স্পষ্ট provider/model ব্যবহার করুন (উদাহরণ: gh/gpt-5.1-codex)।",
+ "troubleshootingAmbiguousModels": "অস্পষ্ট মডেল-সংক্রান্ত ত্রুটি পেলে, শুধু মডেল ID-এর পরিবর্তে একটি প্রোভাইডার প্রিফিক্স বেছে নিন।",
+ "troubleshootingCodexFamily": "GitHub Codex-পরিবারের মডেলগুলোর ক্ষেত্রে মডেলটি gh/codex-model হিসেবেই রাখুন; রাউটার স্বয়ংক্রিয়ভাবে /responses নির্বাচন করে।",
+ "troubleshootingTestConnection": "IDEs অথবা বাহ্যিক ক্লায়েন্ট থেকে পরীক্ষা করার আগে Dashboard > Providers > Test Connection ব্যবহার করুন।",
+ "troubleshootingCircuitBreaker": "কোনো প্রোভাইডারে সার্কিট ব্রেকার খোলা দেখালে, কুলডাউন শেষ হওয়া পর্যন্ত অপেক্ষা করুন অথবা বিস্তারিত জানতে Health পৃষ্ঠা দেখুন।",
+ "troubleshootingOAuth": "OAuth প্রোভাইডারের ক্ষেত্রে টোকেনের মেয়াদ শেষ হলে পুনরায় প্রমাণীকরণ করুন। প্রোভাইডার কার্ডের স্ট্যাটাস নির্দেশক পরীক্ষা করুন।",
+ "endpointCompletionsNote": "টেক্সট তৈরির জন্য লিগ্যাসি কমপ্লিশনস এন্ডপয়েন্ট।",
+ "endpointModerationsNote": "কনটেন্ট মডারেশন এবং নিরাপত্তা শ্রেণিবিন্যাস।",
+ "endpointRerankNote": "রিট্রিভাল-অগমেন্টেড জেনারেশনের জন্য ডকুমেন্ট রির্যাঙ্কিং (Cohere, Jina)।",
+ "endpointSearchNote": "৫টি প্রোভাইডারের মাধ্যমে ওয়েব অনুসন্ধান (Serper, Brave, Exa, Tavily, Perplexity)।",
+ "endpointSearchAnalyticsNote": "সার্চ অনুরোধের অ্যানালিটিক্স ও মেট্রিক্স।",
+ "endpointVideoNote": "ভিডিও তৈরি (ComfyUI, SD WebUI ওয়ার্কফ্লো)।",
+ "endpointMusicNote": "ComfyUI ওয়ার্কফ্লোর মাধ্যমে সংগীত তৈরি।",
+ "endpointMessagesNote": "Anthropic-এর নেটিভ মেসেজ এন্ডপয়েন্ট।",
+ "endpointCountTokensNote": "প্রদত্ত মেসেজ পেলোডের টোকেন গণনা করুন।",
+ "endpointFilesNote": "মাল্টিমোডাল ইনপুটের জন্য ফাইল আপলোড।",
+ "endpointBatchesNote": "বাল্ক API অনুরোধের জন্য ব্যাচ প্রসেসিং।",
+ "endpointWsNote": "রিয়েল-টাইম স্ট্রিমিংয়ের জন্য WebSocket এন্ডপয়েন্ট।",
+ "mgmtProvidersListNote": "নিবন্ধিত সব প্রোভাইডার সংযোগের তালিকা দেখুন।",
+ "mgmtProvidersCreateNote": "একটি নতুন প্রোভাইডার সংযোগ তৈরি করুন।",
+ "mgmtProvidersUpdateNote": "বিদ্যমান প্রোভাইডার সংযোগ আপডেট করুন।",
+ "mgmtProvidersDeleteNote": "একটি প্রোভাইডার সংযোগ মুছুন।",
+ "mgmtProvidersTestNote": "একটি প্রোভাইডারের সংযোগক্ষমতা ও প্রমাণীকরণ পরীক্ষা করুন।",
+ "mgmtProvidersModelsNote": "নির্দিষ্ট প্রোভাইডারের জন্য উপলভ্য মডেলগুলোর তালিকা দেখুন।",
+ "mgmtSettingsGetNote": "বর্তমান অ্যাপ্লিকেশন সেটিংস দেখুন।",
+ "mgmtSettingsUpdateNote": "অ্যাপ্লিকেশন সেটিংস আপডেট করুন।",
+ "mgmtPayloadRulesGetNote": "পেলোড রূপান্তরের নিয়মগুলো দেখুন।",
+ "mgmtPayloadRulesUpdateNote": "পেলোড রূপান্তরের নিয়মগুলো আপডেট করুন।",
+ "mcpToolsTitle": "MCP টুলসমূহ",
+ "mcpToolsDescription": "এজেন্ট অর্কেস্ট্রেশনের জন্য OmniRoute, Model Context Protocol-এর মাধ্যমে {count}টি টুল উন্মুক্ত করে।",
+ "mcpToolsCount": "{count}টি টুল",
+ "mcpToolsToc": "MCP টুলসমূহ",
+ "mcpToolsRoutingTitle": "রাউটিং ও ডিসকভারি",
+ "mcpToolsRoutingDesc": "স্বাস্থ্য পরীক্ষা, কম্বো ব্যবস্থাপনা, কোটা পর্যবেক্ষণ, খরচের প্রতিবেদন এবং মডেল ক্যাটালগে অ্যাক্সেস।",
+ "mcpToolsOperationsTitle": "অপারেশন ও কৌশল",
+ "mcpToolsOperationsDesc": "রুট সিমুলেশন, বাজেট গার্ড, কৌশল পরিবর্তন, রেজিলিয়েন্স প্রোফাইল এবং প্রোভাইডার মেট্রিক্স।",
+ "mcpToolsCacheTitle": "ক্যাশ ব্যবস্থাপনা",
+ "mcpToolsCacheDesc": "ক্যাশের পরিসংখ্যান দেখুন এবং সেমান্টিক বা সিগনেচার ক্যাশ খালি করুন।",
"mcpToolsCompressionTitle": "কম্প্রেশন ইঞ্জিন",
"mcpToolsCompressionDesc": "RTK/Brotli কম্প্রেশন কনফিগার করুন, সোয়াপ ইঞ্জিন, এবং কম্বো দ্বারা কম্প্রেশন বিশ্লেষণ পরিদর্শন করুন।",
"mcpToolsOneProxyTitle": "1 প্রক্সি / টানেল",
"mcpToolsOneProxyDesc": "আউটবাউন্ড প্রক্সিগুলি পরিচালনা করুন, আবাসিক আইপিগুলি ঘোরান এবং প্রক্সি স্বাস্থ্য পরিদর্শন করুন৷",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "মেমোরি",
+ "mcpToolsMemoryDesc": "স্থায়ী কথোপকথনমূলক মেমোরি এন্ট্রি খুঁজুন, যোগ করুন এবং মুছুন।",
+ "mcpToolsSkillsTitle": "স্কিলসমূহ",
+ "mcpToolsSkillsDesc": "কাস্টম স্কিলের এক্সিকিউশন তালিকাভুক্ত, সক্রিয়, সম্পাদন এবং পর্যবেক্ষণ করুন।",
+ "featureAutoComboTitle": "অটো-কম্বো",
+ "featureAutoComboText": "আপনার সংযুক্ত প্রোভাইডার, ব্যবহারের ধরন এবং মডেলের সক্ষমতার ভিত্তিতে স্বয়ংক্রিয়ভাবে অপ্টিমাইজড কম্বো তৈরি করুন।",
+ "featureSearchTitle": "ওয়েব সার্চ",
+ "featureSearchText": "অ্যানালিটিক্স ও খরচ ট্র্যাকিংসহ ৫টি প্রোভাইডার (Serper, Brave, Exa, Tavily, Perplexity) দ্বারা সমন্বিত ওয়েব সার্চ।",
+ "featureMemoryTitle": "মেমোরি সিস্টেম",
+ "featureMemoryText": "সেশনজুড়ে এক্সট্র্যাকশন, ইনজেকশন, পুনরুদ্ধার ও সারসংক্ষেপসহ স্থায়ী কথোপকথনমূলক মেমোরি।",
+ "featureSkillsTitle": "স্কিল ফ্রেমওয়ার্ক",
+ "featureSkillsText": "বিল্ট-ইন ও কাস্টম স্কিল, স্যান্ডবক্স এক্সিকিউশন, অনুরোধ ইন্টারসেপশন এবং কনটেক্সট ইনজেকশনসহ সম্প্রসারণযোগ্য স্কিল সিস্টেম।",
+ "featureAcpTitle": "এজেন্ট যোগাযোগ",
+ "featureAcpText": "এজেন্ট-টু-এজেন্ট কর্মপ্রবাহ ও টুল অর্কেস্ট্রেশন পরিচালনার জন্য Agent Communication Protocol (ACP) রেজিস্ট্রি।",
+ "protocolAcpTitle": "ACP (এজেন্ট যোগাযোগ)",
+ "protocolAcpDesc": "এজেন্টদের মধ্যে যোগাযোগ ও টুল শেয়ারিংয়ের জন্য ACP রেজিস্ট্রির মাধ্যমে এজেন্ট নিবন্ধন ও পরিচালনা করুন।",
+ "protocolAcpStep1": "নিবন্ধিত ACP এজেন্ট দেখতে ড্যাশবোর্ড → এজেন্টসমূহে যান।",
+ "protocolAcpStep2": "সক্ষমতা ও এন্ডপয়েন্ট কনফিগারেশনসহ নতুন এজেন্ট নিবন্ধন করুন।",
+ "protocolAcpStep3": "এজেন্ট যোগাযোগের চ্যানেল কনফিগার করতে CLI টুলস ব্যবহার করুন।",
"metadataTitleTemplate": "%s — OmniRoute ডকস",
"metadataDefaultTitle": "OmniRoute ডকুমেন্টেশন",
"metadataDescription": "OmniRoute AI গেটওয়ের জন্য ব্যাপক ডকুমেন্টেশন — সেটআপ, API, সংকোচন, মোতায়েন, এবং আরও অনেক কিছু।",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "গোপনীয়তা নীতি",
+ "termsOfService": "পরিষেবার শর্তাবলি",
+ "providerConfigurations": "প্রোভাইডার কনফিগারেশনসমূহ",
+ "apiKeys": "API কীসমূহ",
+ "usageLogs": "ব্যবহারের লগসমূহ",
+ "applicationSettings": "অ্যাপ্লিকেশন সেটিংস",
+ "viewExportAnalytics": "ব্যবহারের বিশ্লেষণ দেখুন ও এক্সপোর্ট করুন",
+ "clearHistory": "যেকোনো সময় ব্যবহারের ইতিহাস মুছে ফেলুন",
+ "configureRetention": "লগ সংরক্ষণ নীতি কনফিগার করুন",
+ "backupRestore": "আপনার ডেটাবেস ব্যাকআপ ও পুনরুদ্ধার করুন",
+ "privacyMetadataTitle": "গোপনীয়তা নীতি | OmniRoute",
+ "privacyMetadataDescription": "OmniRoute AI API প্রক্সি রাউটারের গোপনীয়তা নীতি।",
+ "termsMetadataTitle": "পরিষেবার শর্তাবলি | OmniRoute",
+ "termsMetadataDescription": "OmniRoute AI API প্রক্সি রাউটারের পরিষেবার শর্তাবলি।",
+ "backToHome": "হোমে ফিরে যান",
+ "lastUpdated": "সর্বশেষ হালনাগাদ: {date}",
+ "policyLastUpdatedDate": "১৩ ফেব্রুয়ারি, ২০২৬",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "কোনো প্রশ্ন আছে? আমাদের দেখুন",
+ "githubRepository": "GitHub রিপোজিটরি",
+ "privacySection1Title": "১. লোকাল-ফার্স্ট আর্কিটেকচার",
+ "privacySection1Text": "OmniRoute একটি লোকাল-ফার্স্ট অ্যাপ্লিকেশন হিসেবে তৈরি। সমস্ত ডেটা প্রক্রিয়াকরণ ও সংরক্ষণ সম্পূর্ণভাবে আপনার নিজস্ব মেশিনে সম্পন্ন হয়। আপনার তথ্য সংগ্রহ করে এমন কোনো কেন্দ্রীভূত সার্ভার নেই।",
+ "privacySection2Title": "২. আমরা যে ডেটা সংরক্ষণ করি",
+ "privacyDataStoredIn": "নিম্নলিখিত ডেটা স্থানীয়ভাবে সংরক্ষিত হয়",
+ "privacyDataProviderConfigurationsDesc": "সংযোগের URL, প্রোভাইডারের ধরন এবং অগ্রাধিকার সেটিংস",
+ "privacyDataApiKeysDesc": "AI প্রোভাইডারদের সঙ্গে প্রমাণীকরণের জন্য এনক্রিপ্ট করে স্থানীয়ভাবে সংরক্ষিত",
+ "privacyDataUsageLogsDesc": "রিকোয়েস্টের সংখ্যা, টোকেন ব্যবহার, মডেলের নাম, টাইমস্ট্যাম্প এবং রেসপন্সের সময়",
+ "privacyDataApplicationSettingsDesc": "থিমের পছন্দ, রাউটিং কৌশল এবং কম্বো কনফিগারেশন",
+ "privacySection3Title": "৩. কোনো টেলিমেট্রি নেই",
+ "privacySection3Text": "OmniRoute কোনো টেলিমেট্রি, অ্যানালিটিক্স বা ক্র্যাশ রিপোর্ট সংগ্রহ করে না। আমাদের বা কোনো তৃতীয় পক্ষের কাছে কোনো ডেটা পাঠানো হয় না। আপনার ব্যবহারের ধরন, API কল এবং কনফিগারেশন সম্পূর্ণ ব্যক্তিগত থাকে।",
+ "privacySection4Title": "৪. তৃতীয়-পক্ষের AI প্রোভাইডার",
+ "privacySection4Text": "আপনি OmniRoute-এর মাধ্যমে API কল করলে, আপনার রিকোয়েস্টগুলো আপনার কনফিগার করা AI প্রোভাইডারদের কাছে ফরওয়ার্ড করা হয় (উদাহরণস্বরূপ: OpenAI, Anthropic, Google)। এই প্রোভাইডারদের নিজস্ব গোপনীয়তা নীতি রয়েছে, যা তারা কীভাবে আপনার ডেটা পরিচালনা করে তা নিয়ন্ত্রণ করে। অনুগ্রহ করে পর্যালোচনা করুন:",
+ "privacyOpenAiPolicy": "OpenAI-এর গোপনীয়তা নীতি",
+ "privacyAnthropicPolicy": "Anthropic-এর গোপনীয়তা নীতি",
+ "privacyGooglePolicy": "Google গোপনীয়তা নীতি",
+ "privacySection5Title": "৫. ক্লাউড সিঙ্ক (ঐচ্ছিক)",
+ "privacySection5Text": "আপনি ঐচ্ছিক ক্লাউড সিঙ্ক ফিচারটি সক্রিয় করলে, প্রোভাইডার কনফিগারেশন এবং API কীগুলো কনফিগার করা কোনো ক্লাউড এন্ডপয়েন্টে পাঠানো হতে পারে। এই ফিচারটি ডিফল্টভাবে নিষ্ক্রিয় থাকে এবং এটি সক্রিয় করতে স্পষ্ট সম্মতি প্রয়োজন।",
+ "privacySection6Title": "৬. লগিং",
+ "privacyLoggingIntro": "ড্যাশবোর্ড সেটিংসের মাধ্যমে অনুরোধের লগ কনফিগার করা যায়। আপনি যা করতে পারেন:",
+ "privacySection7Title": "৭. আপনার অধিকার",
+ "privacySection7TextStart": "যেহেতু সব ডেটা স্থানীয়ভাবে সংরক্ষণ করা হয়, তাই এর ওপর আপনার পূর্ণ নিয়ন্ত্রণ রয়েছে। আপনি যেকোনো সময় নিম্নলিখিতটি অপসারণ করে আপনার ডেটা মুছতে পারেন:",
+ "privacySection7TextEnd": "ডিরেক্টরি, অথবা ড্যাশবোর্ডের ডেটাবেস ব্যাকআপ ও পুনরুদ্ধার ফিচার ব্যবহার করে।",
+ "termsSection1Title": "১. সারসংক্ষেপ",
+ "termsSection1Text": "OmniRoute হলো স্থানীয়ভাবে পরিচালিত একটি AI API প্রক্সি রাউটার, যা সম্পূর্ণভাবে আপনার মেশিনে কাজ করে। এটি লোড ব্যালান্সিং, ফেইলওভার এবং ব্যবহার ট্র্যাকিংসহ একাধিক AI প্রোভাইডারের কাছে অনুরোধ রাউট করে।",
+ "termsSection2Title": "২. ব্যবহারকারীর দায়িত্ব",
+ "termsResponsibilityApiKeys": "তৃতীয় পক্ষের AI প্রোভাইডারগুলোর (OpenAI, Anthropic, Google ইত্যাদি) জন্য আপনার নিজস্ব API কী ও পরিচয়পত্র পরিচালনার সম্পূর্ণ দায়িত্ব আপনার।",
+ "termsResponsibilityCompliance": "OmniRoute-এর মাধ্যমে যেসব AI প্রোভাইডারের API ব্যবহার করেন, তাদের প্রত্যেকের পরিষেবার শর্তাবলি আপনাকে মেনে চলতে হবে।",
+ "termsResponsibilitySecurity": "পাসওয়ার্ড নির্ধারণ এবং নেটওয়ার্ক অ্যাক্সেস সীমিত করাসহ আপনার স্থানীয় OmniRoute ইনস্টলেশনের নিরাপত্তার দায়িত্ব আপনার।",
+ "termsSection3Title": "৩. এটি যেভাবে কাজ করে",
+ "termsSection3Text": "OmniRoute একটি মধ্যস্থতাকারী প্রক্সি হিসেবে কাজ করে। OmniRoute-এ পাঠানো API কলগুলো রূপান্তর করে আপনার কনফিগার করা AI প্রোভাইডারদের কাছে ফরোয়ার্ড করা হয়। প্রয়োজনীয় প্রোটোকল রূপান্তর ছাড়া OmniRoute আপনার অনুরোধ বা প্রতিক্রিয়ার বিষয়বস্তু পরিবর্তন করে না।",
+ "termsSection4Title": "৪. ডেটা ব্যবস্থাপনা",
+ "termsDataStoredLocally": "সব ডেটা আপনার মেশিনের একটি SQLite ডেটাবেসে স্থানীয়ভাবে সংরক্ষণ করা হয়।",
+ "termsNoTransmission": "আপনি স্পষ্টভাবে ক্লাউড সিঙ্ক ফিচার সক্রিয় না করলে OmniRoute কোনো ডেটা বাহ্যিক সার্ভারে পাঠায় না।",
+ "termsDataLocationText": "ব্যবহারের লগ, API কী এবং কনফিগারেশন এখানে সংরক্ষণ করা হয়:",
+ "termsSection5Title": "৫. দায়-অস্বীকার",
+ "termsSection5Text": "OmniRoute কোনো ধরনের নিশ্চয়তা ছাড়াই \"যেমন আছে\" ভিত্তিতে সরবরাহ করা হয়। API ব্যবহারের ফলে সৃষ্ট কোনো খরচ, পরিষেবা বিঘ্ন বা ডেটা হারানোর জন্য আমরা দায়ী নই। সবসময় আপনার কনফিগারেশনের ব্যাকআপ রাখুন।",
+ "termsSection6Title": "৬. ওপেন সোর্স",
+ "termsSection6Text": "OmniRoute একটি ওপেন-সোর্স সফটওয়্যার। এর লাইসেন্সের শর্তাবলি অনুযায়ী আপনি এটি পরিদর্শন, পরিবর্তন এবং বিতরণ করতে পারবেন।"
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI এজেন্ট",
+ "description": "আপনার সিস্টেমে ইনস্টল করা CLI এজেন্টগুলো খুঁজে বের করুন। স্বয়ংক্রিয় শনাক্তকরণের জন্য কাস্টম এজেন্ট যোগ করুন।",
+ "refresh": "রিফ্রেশ করুন",
+ "installed": "ইনস্টল করা আছে",
+ "notFound": "পাওয়া যায়নি",
+ "builtIn": "বিল্ট-ইন",
+ "custom": "কাস্টম",
+ "remove": "সরান",
+ "addCustomAgent": "কাস্টম এজেন্ট যোগ করুন",
+ "addCustomAgentDesc": "শনাক্তকরণের জন্য যেকোনো CLI টুল নিবন্ধন করুন। রিফ্রেশ করলে এটি স্বয়ংক্রিয়ভাবে স্ক্যান করা হবে।",
+ "agentName": "এজেন্টের নাম",
+ "binaryName": "বাইনারির নাম",
+ "versionCommand": "ভার্সন কমান্ড",
+ "spawnArgs": "স্পন আর্গুমেন্ট",
+ "addAgent": "এজেন্ট যোগ করুন",
+ "scanning": "CLI এজেন্টের জন্য সিস্টেম স্ক্যান করা হচ্ছে...",
+ "opencodeIntegration": "OpenCode ইন্টিগ্রেশন",
+ "opencodeDetected": "opencode {version} শনাক্ত হয়েছে",
+ "opencodeDesc": "আপনার OmniRoute বেস URL এবং উপলভ্য সব মডেলসহ একটি ব্যবহার-উপযোগী {configFile} তৈরি করুন—এটি আপনার প্রজেক্ট রুটে রাখুন এবং {command} চালান।",
+ "downloadConfig": "{file} ডাউনলোড করুন",
+ "downloaded": "ডাউনলোড হয়েছে!",
+ "setupGuideTitle": "সেটআপ নির্দেশিকা",
+ "openCliTools": "CLI টুল খুলুন",
+ "setupGuideDetectCliTitle": "ইনস্টল করা CLI শনাক্ত করুন",
+ "setupGuideDetectCliDesc": "কোনো CLI ইনস্টল বা আপডেট করার পর Refresh-এ ক্লিক করুন, যাতে OmniRoute বাইনারি ও সংস্করণগুলো আবার স্ক্যান করতে পারে।",
+ "setupGuideCustomAgentTitle": "কাস্টম বাইনারি নিবন্ধন করুন",
+ "setupGuideCustomAgentDesc": "আপনার CLI বিল্ট-ইন তালিকায় না থাকলে Add Custom Agent ব্যবহার করুন। বাইনারির নাম ও সংস্করণ কমান্ড দিন।",
+ "setupGuideCommandMissingTitle": "'command not found' সমস্যার সমাধান করুন",
+ "setupGuideCommandMissingDesc": "CLI কমান্ডটি PATH-এ আছে কি না নিশ্চিত করুন, একটি নতুন টার্মিনাল সেশন খুলুন এবং আবার Refresh চালান।",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "সাধারণ চ্যাট",
+ "streaming": "স্ট্রিমিং",
+ "system-prompt": "সিস্টেম প্রম্পট",
+ "thinking": "চিন্তন",
+ "tool-calling": "টুল কলিং",
+ "multi-turn": "মাল্টি-টার্ন",
"vision": "দৃষ্টি",
"schema-coercion": "স্কিমা জবরদস্তি"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "সিস্টেম বার্তাসহ মৌলিক চ্যাট টেমপ্লেট",
+ "streaming": "স্ট্রিমিং প্রতিক্রিয়ার টেমপ্লেট",
+ "system-prompt": "কাস্টম সিস্টেম প্রম্পটসহ টেমপ্লেট",
+ "thinking": "যুক্তি/চিন্তন বাজেটসহ টেমপ্লেট",
+ "tool-calling": "টুল/ফাংশন কলিংয়ের টেমপ্লেট",
+ "multi-turn": "মাল্টি-টার্ন কথোপকথনের টেমপ্লেট",
"vision": "ইমেজ ইনপুট সহ মাল্টিমোডাল টেমপ্লেট",
"schema-coercion": "স্ট্রাকচার্ড-আউটপুট / JSON স্কিমা এনফোর্সমেন্ট"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "আপনি একজন সহায়ক AI সহকারী।",
+ "userGreeting": "হ্যালো! আজ আমি আপনাকে কীভাবে সাহায্য করতে পারি?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "এটি নিয়ে একটি গল্প লিখুন:"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "জীবনের অর্থ কী?",
+ "systemInstruction": "একটি সুচিন্তিত, দার্শনিক উত্তর দিন।"
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "কোয়ান্টাম কম্পিউটিং ব্যাখ্যা করুন"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "যে শহরের আবহাওয়া জানতে হবে, তার নাম",
+ "toolDescription": "কোনো স্থানের বর্তমান আবহাওয়া জানুন",
+ "userWeather": "Tokyo-র আবহাওয়া কেমন?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "আপনি একজন সহায়ক সহকারী।",
+ "assistantExample": "এ বিষয়ে আপনাকে সাহায্য করতে পেরে আমি আনন্দিত হব।",
+ "userInitial": "আমার এটি নিয়ে সাহায্য দরকার:",
+ "userFollowUp": "আপনি কি এ বিষয়ে আরও বিস্তারিত বলতে পারেন?"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "ক্যাশ ব্যবস্থাপনা",
+ "description": "প্রোভাইডারের প্রম্পট ক্যাশের দক্ষতা এবং স্থানীয় সেমান্টিক রেসপন্স পুনঃব্যবহার পর্যবেক্ষণ করুন।",
+ "refresh": "রিফ্রেশ করুন",
+ "clearAll": "সেমান্টিক ক্যাশ সাফ করুন",
+ "memoryEntries": "মেমরি এন্ট্রি",
+ "memoryEntriesSub": "ইন-মেমরি LRU",
+ "dbEntries": "DB এন্ট্রি",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "ক্যাশ হিট",
+ "cacheHitsSub": "মোট {total}-এর মধ্যে",
+ "tokensSaved": "সাশ্রয় হওয়া টোকেন",
+ "tokensSavedSub": "হিট থেকে আনুমানিক হিসাব",
+ "hitRate": "হিটের হার",
+ "performance": "ক্যাশের কার্যক্ষমতা",
+ "autoRefresh": "প্রতি {seconds}s পর স্বয়ংক্রিয়ভাবে রিফ্রেশ হয়",
+ "hits": "হিট",
+ "misses": "মিস",
+ "total": "মোট",
+ "behavior": "ক্যাশের আচরণ",
+ "behaviorDeterministic": "শুধু temperature=0-সহ নন-স্ট্রিমিং রিকোয়েস্ট ক্যাশ করা হয়।",
+ "behaviorBypass": "{header} হেডার দিয়ে বাইপাস করুন।",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "ডিফল্ট TTL: ৩০ মিনিট। {envVar}-এর মাধ্যমে কনফিগার করুন।",
+ "idempotency": "আইডেমপোটেন্সি স্তর",
+ "activeDedupKeys": "সক্রিয় ডিডুপ কী",
+ "dedupWindow": "ডিডুপ উইন্ডো",
+ "clearSuccess": "সেমান্টিক ক্যাশ সাফ করা হয়েছে। {count}টি এন্ট্রি সরানো হয়েছে।",
+ "clearError": "ক্যাশ সাফ করা যায়নি।",
+ "unavailable": "ক্যাশ অনুপলভ্য",
+ "unavailableDesc": "ক্যাশের পরিসংখ্যান আনা যায়নি। সার্ভারটি চলছে কি না নিশ্চিত করুন।",
"loadingCacheAria": "ক্যাশ লোড হচ্ছে",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "প্রম্পট ক্যাশ (প্রোভাইডার-সাইড)",
+ "semanticCache": "সেমান্টিক ক্যাশ",
+ "promptCacheSectionDesc": "ব্যবহারের ইতিহাস থেকে প্রোভাইডার-সাইড প্রম্পট ক্যাশিংয়ের কার্যকলাপ দেখায়, যাতে কোথায় ক্যাশ নিয়ন্ত্রণ সক্রিয় এবং ইনপুট কতটা পুনঃব্যবহার হচ্ছে তা দেখতে পারেন।",
+ "promptTrendDesc": "গত ২৪ ঘণ্টার প্রতি ঘণ্টার রিকোয়েস্টের পরিমাণ, ক্যাশ কভারেজ এবং ক্যাশ রিডের পরিমাণ।",
+ "cachedRequests": "ক্যাশ করা রিকোয়েস্ট",
+ "cachedRequests24h": "ক্যাশ করা রিকোয়েস্ট (২৪ ঘণ্টা)",
+ "cacheHitRate": "ক্যাশ হিটের হার",
+ "cacheRate": "ক্যাশের হার",
+ "cacheRateDesc": "মোট রিকোয়েস্টের মধ্যে",
+ "cachedTokens": "ক্যাশ রিড টোকেন",
+ "cacheCreationTokens": "ক্যাশ রাইট টোকেন",
+ "cacheMetrics": "প্রম্পট ক্যাশের মেট্রিক্স",
+ "withCacheControl": "ক্যাশ নিয়ন্ত্রণসহ",
+ "cachedTokensRead": "ক্যাশ থেকে পড়া হয়েছে",
+ "cacheCreationWrite": "ক্যাশে লেখা হয়েছে",
+ "cacheReuseRatio": "ক্যাশ পুনর্ব্যবহারের অনুপাত",
+ "cacheReuseRatioDesc": "ক্যাশ থেকে পড়া টোকেন / মোট ইনপুট টোকেন",
+ "estCostSaved": "আনুমানিক সাশ্রয়কৃত খরচ",
+ "lastUpdated": "সর্বশেষ আপডেট",
+ "hoursTracked": "ঘণ্টা ট্র্যাক করা হয়েছে",
+ "busiestHour": "ব্যস্ততম ঘণ্টা",
+ "peakCacheRate": "সর্বোচ্চ ক্যাশ হার",
+ "trendHour": "ঘণ্টা",
+ "activityVolume": "কার্যকলাপ",
+ "requestsShort": "অনুরোধ",
+ "inputShort": "ইনপুট",
+ "cachedShort": "ক্যাশ করা",
+ "writeShort": "লেখা",
+ "resetting": "রিসেট করা হচ্ছে...",
+ "resetMetrics": "মেট্রিক্স রিসেট করুন",
+ "byProvider": "প্রদানকারী অনুযায়ী বিভাজন",
+ "providerCacheRateDesc": "প্রতিটি প্রদানকারী মোট ইনপুট টোকেন, ক্যাশ থেকে পড়া টোকেন এবং ক্যাশে লেখা টোকেন দেখায়, যাতে আপনি মূল মোট সংখ্যার সঙ্গে পুনর্ব্যবহারের অনুপাত যাচাই করতে পারেন।",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "অনুরোধসমূহ",
+ "inputTokens": "মোট ইনপুট টোকেন",
+ "cachedTokensCol": "ক্যাশ থেকে পড়া",
+ "cacheCreation": "ক্যাশে লেখা",
+ "trend24h": "ক্যাশের প্রবণতা (২৪ ঘণ্টা)",
+ "peakCached": "সর্বোচ্চ ক্যাশ করা",
+ "cached": "ক্যাশ করা",
+ "overview": "সারসংক্ষেপ",
"tableProvider": "প্রোভাইডার",
"tableModel": "মডেল",
"performanceTitle": "পারফরম্যান্স",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute-এর নিজস্ব নির্ধারণমূলক রেসপন্স ক্যাশ। এটি সক্রিয় থাকলে, একই non-streaming temperature=0 অনুরোধ বারবার এলে আপস্ট্রিম প্রদানকারীর কাছে না পাঠিয়ে স্থানীয়ভাবে রেসপন্স দেওয়া যায়।",
+ "semanticCacheDisabledDesc": "সেমান্টিক ক্যাশ নিষ্ক্রিয় আছে। Settings-এ এটি আবার চালু না করা পর্যন্ত OmniRoute স্থানীয় রেসপন্স পুনর্ব্যবহার এড়িয়ে যাবে।",
+ "semanticEntriesDesc": "বর্তমানে SQLite-এ সংরক্ষিত স্থায়ী সেমান্টিক ক্যাশ রেকর্ড। প্রদানকারী-পক্ষের প্রম্পট ক্যাশ কার্যকলাপ এখানে তালিকাভুক্ত নয়।",
+ "searchEntries": "এন্ট্রি খুঁজুন...",
+ "search": "অনুসন্ধান",
+ "loading": "লোড হচ্ছে...",
+ "entriesLoadError": "সেমান্টিক ক্যাশ এন্ট্রি লোড করা যায়নি।",
+ "noEntries": "কোনো ক্যাশ এন্ট্রি পাওয়া যায়নি",
+ "noPromptCacheData": "এখনও প্রদানকারী-পক্ষের কোনো প্রম্পট ক্যাশ কার্যকলাপ রেকর্ড করা হয়নি।",
+ "noTrendData": "গত ২৪ ঘণ্টায় কোনো প্রম্পট ক্যাশ কার্যকলাপ রেকর্ড করা হয়নি।",
+ "signature": "স্বাক্ষর",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "তৈরি হয়েছে",
+ "expires": "মেয়াদ শেষ হবে",
+ "actions": "অ্যাকশনসমূহ",
+ "deduplicatedRequests": "অনুলিপিমুক্ত অনুরোধসমূহ",
+ "savedCalls": "সংরক্ষিত API কলসমূহ",
+ "totalProcessed": "প্রক্রিয়াকৃত মোট অনুরোধ",
+ "disabled": "নিষ্ক্রিয়",
+ "totalRequests": "মোট অনুরোধ",
"reasoningCache": "রিজনিং রিপ্লে",
"reasoningCacheDesc": "মাল্টি-টার্ন টুল কলিং প্রবাহের জন্য মডেল চিন্তা সংরক্ষণ করে",
"reasoningEntries": "সক্রিয় এন্ট্রি",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}মি আগে",
"hoursAgo": "{hours}ঘণ্টা আগে",
"daysAgo": "{days}দিন আগে",
- "entries": "Entries"
+ "entries": "এন্ট্রিসমূহ"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
- "ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "levelGlobal": "গ্লোবাল",
+ "levelProvider": "প্রোভাইডার",
+ "levelCombo": "কম্বো",
+ "levelKey": "কী",
+ "levelDirect": "সরাসরি (প্রক্সি ছাড়া)",
+ "titleGlobal": "গ্লোবাল প্রক্সি কনফিগারেশন",
+ "titleLevel": "{level} প্রক্সি — {label}",
+ "loading": "প্রক্সি কনফিগারেশন লোড হচ্ছে...",
+ "inheritingFrom": "যেখান থেকে উত্তরাধিকারসূত্রে প্রাপ্ত",
+ "source": "উৎস",
+ "savedProxy": "সংরক্ষিত প্রক্সি",
+ "custom": "কাস্টম",
+ "selectSavedProxyPlaceholder": "সংরক্ষিত প্রক্সি নির্বাচন করুন...",
+ "proxyType": "প্রক্সির ধরন",
+ "host": "হোস্ট",
+ "hostPlaceholder": "1.2.3.4 অথবা proxy.example.com",
+ "port": "পোর্ট",
+ "authOptional": "প্রমাণীকরণ (ঐচ্ছিক)",
+ "username": "ব্যবহারকারীর নাম",
+ "usernamePlaceholder": "ব্যবহারকারীর নাম",
+ "password": "পাসওয়ার্ড",
+ "passwordPlaceholder": "পাসওয়ার্ড",
+ "connected": "সংযুক্ত",
+ "ip": "আইপি:",
+ "connectionFailed": "সংযোগ ব্যর্থ হয়েছে",
+ "testConnection": "সংযোগ পরীক্ষা করুন",
+ "clear": "মুছুন",
+ "cancel": "বাতিল",
+ "save": "সংরক্ষণ করুন",
+ "errorSelectSavedProxy": "অনুগ্রহ করে প্রথমে একটি সংরক্ষিত প্রক্সি নির্বাচন করুন।",
+ "errorSelectProxyFirst": "অনুগ্রহ করে প্রথমে একটি প্রক্সি নির্বাচন করুন।",
+ "errorProxyNotFound": "নির্বাচিত প্রক্সি পাওয়া যায়নি।",
+ "errorClearSavedProxy": "সংরক্ষিত প্রক্সি মুছতে ব্যর্থ হয়েছে",
+ "errorSaveProxy": "প্রক্সি কনফিগারেশন সংরক্ষণ করতে ব্যর্থ হয়েছে",
+ "errorClearProxy": "প্রক্সি কনফিগারেশন মুছতে ব্যর্থ হয়েছে",
+ "errorSocks5Hidden": "SOCKS5 কনফিগার করা আছে, তবে NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false হওয়ায় এটি লুকানো রয়েছে।"
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "{providerName}-এর সাথে সংযোগ করুন",
+ "waiting": "অনুমোদনের জন্য অপেক্ষা করা হচ্ছে",
+ "completeAuthInPopup": "পপআপে অনুমোদন সম্পন্ন করুন।",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "পপআপ ব্লক হয়েছে? ম্যানুয়ালি URL লিখুন",
+ "deviceCodeVisitUrl": "নিচের URL-এ যান এবং কোড লিখুন:",
+ "deviceCodeVerificationUrl": "যাচাইকরণ URL",
+ "deviceCodeYourCode": "আপনার কোড",
+ "deviceCodeWaiting": "অনুমোদনের জন্য অপেক্ষা করা হচ্ছে...",
"googleLoopbackTitle": "এই ঠিকানা থেকে গুগল সাইন-ইন সম্পন্ন করা যাচ্ছে না",
"googleLoopbackWhatHappens": "গুগল শুধুমাত্র অনুমোদন কোডটি প্রকাশ করে যখন {redirectUri} ব্রাউজার থেকে পৌঁছানো যায় যা সাইন-ইন অনুমোদন করে। এখানে সেই ঠিকানা এই কম্পিউটারের দিকে নির্দেশ করে, OmniRoute সার্ভারের দিকে নয় — তাই সম্মতি স্ক্রীন ঝুলে থাকে পরিবর্তে পুনঃনির্দেশিত হওয়ার, এবং কপি করার জন্য কোন কলব্যাক URL নেই।",
"googleLoopbackRecommended": "প্রস্তাবিত — এটি আপনার নিজের কম্পিউটারে চালান, তারপর ফলাফলটি নিচে পেস্ট করুন:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "অথবা SSH এর মাধ্যমে ড্যাশবোর্ড পোর্ট ফরওয়ার্ড করুন এবং টানেলের মাধ্যমে OmniRoute পুনরায় লোড করুন:",
"googleLoopbackTunnelNote": "আপনার SSH ব্যবহারকারীর নামের সাথে {userPlaceholder} প্রতিস্থাপন করুন, টার্মিনাল খোলা রাখুন, তারপর {localUrl} খুলুন এবং সেখান থেকে আবার সংযোগ করুন।",
"googleLoopbackHeadlessAlt": "সম্পূর্ণ হেডলেস ব্যবহারের জন্য কোন স্থানীয় কলব্যাক ছাড়াই, আপনার নিজস্ব Google OAuth শংসাপত্র কনফিগার করুন এবং একটি পাবলিক বেস URL।",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "রিমোট অ্যাক্সেস: যেহেতু আপনি রিমোটভাবে OmniRoute অ্যাক্সেস করছেন, অনুমোদনের পরে আপনি একটি ত্রুটির পৃষ্ঠা দেখতে পাবেন (localhost পাওয়া যায়নি)। এটি স্বাভাবিক—শুধু আপনার ব্রাউজারের অ্যাড্রেস বার থেকে সম্পূর্ণ URL কপি করে নিচে পেস্ট করুন।",
"loopbackMismatchTitle": "এই ঠিকানা থেকে সাইন-ইন সম্পন্ন করা যাচ্ছে না",
"loopbackMismatchWhatHappened": "কি হচ্ছে",
"loopbackMismatchExplanation": "লগইন অনুমোদন করার পর, {providerName} সর্বদা ব্রাউজারটিকে {redirectUri} এ ফিরিয়ে পাঠায়। সেই ঠিকানা এই ব্রাউজারটি চালানো কম্পিউটারের দিকে নির্দেশ করে, OmniRoute সার্ভারের দিকে নয় — তাই অনুমোদন কোড কখনো OmniRoute এ পৌঁছায় না এবং প্রদানকারী একটি ত্রুটি ছাড়াই সাইন-ইন ব্যর্থ হয়।",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "এই ব্রাউজারে, টানেলের মাধ্যমে OmniRoute পুনরায় খুলুন:",
"loopbackMismatchStep3": "এরপর নতুন ট্যাব থেকে আবার {providerName} এর সাথে সংযোগ করুন। এখন কলব্যাক সার্ভারে পৌঁছায় এবং লগইন স্বাভাবিকভাবে সম্পন্ন হয়।",
"loopbackMismatchAlternative": "SSH অ্যাক্সেস নেই? যদি এই প্রদানকারী একটি টোকেন আমদানি ট্যাব অফার করে, তাহলে একটি টোকেনের মাধ্যমে সংযোগ করুন — সেই পথটি লুপব্যাক কলব্যাক ব্যবহার করে না।",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "ধাপ ১: আপনার ব্রাউজারে এই URL খুলুন",
+ "copy": "কপি করুন",
+ "step2PasteCallback": "ধাপ ২: এখানে কলব্যাক URL বা অনুমোদন কোড পেস্ট করুন",
+ "step2Hint": "অনুমোদনের পরে সম্পূর্ণ কলব্যাক URL পেস্ট করুন। Claude Code এবং Cline-এর ক্ষেত্রে আপনি সরাসরি প্রমাণীকরণ কোডও পেস্ট করতে পারেন, যেমন code#state।",
+ "connect": "সংযোগ করুন",
+ "cancel": "বাতিল করুন",
+ "success": "সংযোগ সফল হয়েছে!",
+ "successMessage": "আপনার {providerName} অ্যাকাউন্ট সংযুক্ত হয়েছে।",
+ "done": "সম্পন্ন",
+ "error": "সংযোগ ব্যর্থ হয়েছে",
+ "tryAgain": "আবার চেষ্টা করুন",
"errorSessionIncomplete": "OAuth সেশন অসম্পূর্ণ (পুনঃনির্দেশ URI বা কোড যাচাইকরণ অনুপস্থিত)। সংযোগটি পুনরায় শুরু করুন এবং আবার চেষ্টা করুন।",
"errorExchangeFailed": "বিনিময় ব্যর্থ হয়েছে",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: ডিফল্ট Google OAuth শংসাপত্রগুলি শুধুমাত্র localhost-এ কাজ করে। দূরবর্তী ব্যবহারের জন্য, পরিবেশ ভেরিয়েবলগুলির মাধ্যমে আপনার নিজস্ব OAuth শংসাপত্র কনফিগার করুন: ANTIGRAVITY_OAUTH_CLIENT_ID এবং ANTIGRAVITY_OAUTH_CLIENT_SECRET। README বিভাগের 'দূরবর্তী সার্ভারে OAuth' দেখুন।",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Cursor দিয়ে লগইন করুন",
+ "tabImport": "টোকেন ইমপোর্ট করুন",
+ "loginDescription": "Cursor-এর ব্রাউজার লগইন খোলে। Docker-এ কাজ করে—আপনার হোস্ট ব্রাউজারে অনুমোদন করুন, তারপর এখানে ফিরে আসুন।",
+ "loginWithCursor": "Cursor দিয়ে লগইন করুন",
+ "startingLogin": "শুরু হচ্ছে…",
+ "waitingApproval": "Cursor লগইন অনুমোদনের জন্য অপেক্ষা করা হচ্ছে…",
+ "openUrlHint": "ব্রাউজার না খুললে:",
+ "openLoginLink": "লগইন পৃষ্ঠা খুলুন",
+ "cancelLogin": "লগইন বাতিল করুন",
+ "autoDetecting": "স্বয়ংক্রিয়ভাবে টোকেন শনাক্ত করা হচ্ছে...",
+ "readingFromCursor": "Cursor IDE বা cursor-agent থেকে পড়া হচ্ছে",
+ "tokensAutoDetected": "Cursor IDE থেকে টোকেন সফলভাবে স্বয়ংক্রিয়ভাবে শনাক্ত হয়েছে!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Docker-এ চালাচ্ছেন? Cursor দিয়ে লগইন করাই ভালো। সাধারণত কন্টেইনারের ভিতরে IDE অটো-ইমপোর্ট এবং cursor-agent উপলভ্য থাকে না। docs/providers/CURSOR-DOCKER.md দেখুন।",
+ "accessToken": "অ্যাক্সেস টোকেন",
+ "refreshToken": "রিফ্রেশ টোকেন",
+ "refreshTokenPlaceholder": "ঐচ্ছিক — স্বয়ংক্রিয় টোকেন রিফ্রেশ সক্রিয় করে",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "অ্যাক্সেস টোকেন স্বয়ংক্রিয়ভাবে পূরণ হবে...",
+ "machineId": "মেশিন ID",
+ "optional": "(ঐচ্ছিক)",
+ "machineIdPlaceholder": "মেশিন ID স্বয়ংক্রিয়ভাবে পূরণ হবে...",
+ "importing": "ইমপোর্ট করা হচ্ছে...",
+ "importToken": "টোকেন ইমপোর্ট করুন",
+ "cancel": "বাতিল",
+ "errorAutoDetect": "স্বয়ংক্রিয়ভাবে টোকেন শনাক্ত করা যায়নি",
+ "errorAutoDetectFailed": "স্বয়ংক্রিয় টোকেন শনাক্তকরণ ব্যর্থ হয়েছে",
+ "errorEnterToken": "অনুগ্রহ করে অ্যাক্সেস টোকেন লিখুন",
+ "errorImportFailed": "ইমপোর্ট ব্যর্থ হয়েছে",
+ "errorLoginStart": "Cursor লগইন শুরু করা যায়নি",
+ "errorLoginPoll": "Cursor লগইন ব্যর্থ হয়েছে",
+ "errorLoginTimeout": "Cursor লগইনের সময়সীমা শেষ হয়ে গেছে — আবার চেষ্টা করুন"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "মূল্য নির্ধারণ কনফিগারেশন",
+ "loading": "মূল্য নির্ধারণের ডেটা লোড হচ্ছে...",
+ "pricingRatesFormat": "মূল্যহারের ফরম্যাট",
+ "ratesDescription": "সব হার প্রতি মিলিয়ন টোকেনে ডলারে ($/1M tokens) দেওয়া হয়েছে। উদাহরণ: 2.50 ইনপুট হার মানে প্রতি 1,000,000 ইনপুট টোকেনের জন্য $2.50।",
+ "model": "মডেল",
+ "input": "ইনপুট",
+ "output": "আউটপুট",
+ "cached": "ক্যাশকৃত",
+ "reasoning": "যুক্তি বিশ্লেষণ",
+ "cacheCreation": "ক্যাশ তৈরি",
+ "noPricingData": "মূল্য নির্ধারণের কোনো ডেটা উপলভ্য নেই",
+ "resetToDefaults": "ডিফল্টে রিসেট করুন",
+ "cancel": "বাতিল",
+ "saving": "সংরক্ষণ করা হচ্ছে...",
+ "saveChanges": "পরিবর্তনগুলো সংরক্ষণ করুন",
+ "resetConfirm": "সব মূল্যহার ডিফল্টে রিসেট করবেন? এটি পূর্বাবস্থায় ফেরানো যাবে না।",
+ "errorSaveFailed": "মূল্য নির্ধারণ সংরক্ষণ করা যায়নি",
+ "errorResetFailed": "মূল্য নির্ধারণ রিসেট করা যায়নি"
},
"proxyRegistry": {
"selectAllProxies": "সমস্ত প্রক্সি নির্বাচন করুন",
"selectProxy": "{name} নির্বাচন করুন",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "প্রক্সি রেজিস্ট্রি",
+ "description": "পুনর্ব্যবহারযোগ্য প্রক্সি সংরক্ষণ করুন এবং অ্যাসাইনমেন্ট ট্র্যাক করুন।",
+ "importLegacy": "লিগ্যাসি ইমপোর্ট করুন",
+ "bulkAssign": "একসাথে বরাদ্দ করুন",
+ "addProxy": "প্রক্সি যোগ করুন",
+ "loading": "প্রক্সিগুলো লোড হচ্ছে...",
+ "noProxies": "এখনও কোনো সংরক্ষিত প্রক্সি নেই।",
+ "tableName": "নাম",
+ "tableEndpoint": "এন্ডপয়েন্ট",
+ "tableStatus": "স্ট্যাটাস",
+ "tableHealth": "স্বাস্থ্য (২৪ ঘণ্টা)",
+ "tableUsage": "ব্যবহার",
+ "tableActions": "অ্যাকশন",
+ "test": "পরীক্ষা করুন",
+ "edit": "সম্পাদনা করুন",
+ "delete": "মুছুন",
+ "modalCreateTitle": "প্রক্সি তৈরি করুন",
+ "modalEditTitle": "প্রক্সি সম্পাদনা করুন",
+ "labelName": "নাম",
+ "labelType": "ধরন",
"labelFamily": "IP ফ্যামিলি",
"familyAuto": "স্বয়ংক্রিয় (dual-stack)",
"familyIpv4": "শুধুমাত্র IPv4",
"familyIpv6": "শুধুমাত্র IPv6",
"familyHint": "ইগ্রেস অ্যাড্রেস ফ্যামিলি। Auto ডুয়াল-স্ট্যাক বজায় রাখে; IPv4/IPv6 এই প্রক্সিকে সেই ফ্যামিলিতে পিন করে (একটি IPv6-only প্রক্সির অধীনে v4 লিক প্রতিরোধ করে)।",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "হোস্ট",
+ "labelPort": "পোর্ট",
+ "labelUsername": "ব্যবহারকারীর নাম",
+ "labelPassword": "পাসওয়ার্ড",
+ "labelRegion": "অঞ্চল",
+ "labelStatus": "স্ট্যাটাস",
+ "labelNotes": "নোট",
+ "usernamePlaceholderEdit": "বর্তমান ব্যবহারকারীর নাম রাখতে ফাঁকা রাখুন",
+ "passwordPlaceholderEdit": "বর্তমান পাসওয়ার্ড রাখতে ফাঁকা রাখুন",
+ "statusActive": "সক্রিয়",
+ "statusInactive": "নিষ্ক্রিয়",
+ "cancel": "বাতিল",
+ "save": "সংরক্ষণ করুন",
+ "bulkModalTitle": "একসাথে প্রক্সি বরাদ্দ",
+ "bulkLabelScope": "পরিধি",
+ "bulkLabelProxy": "প্রক্সি",
+ "bulkClearAssignment": "(বরাদ্দ মুছুন)",
+ "bulkLabelScopeIds": "পরিধির আইডি (কমা বা নতুন লাইন দিয়ে পৃথক করা)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "প্রয়োগ করুন",
"labelScope": "স্কোপ",
"labelProxy": "প্রক্সি",
"scopeGlobal": "গ্লোবাল",
@@ -10893,19 +10904,19 @@
"bulkImportErrorInvalidPort": "অবৈধ PORT (1-65535 হতে হবে)",
"bulkImportErrorInvalidType": "অবৈধ TYPE (http, https, বা মোজা5 ব্যবহার করুন)",
"bulkImportErrorInvalidStatus": "অবৈধ স্ট্যাটাস (সক্রিয় বা নিষ্ক্রিয় ব্যবহার করুন)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "প্রক্সি রেজিস্ট্রি লোড করা যায়নি",
+ "errorNameHostRequired": "নাম এবং হোস্ট আবশ্যক",
+ "errorSaveFailed": "প্রক্সি সংরক্ষণ করা যায়নি",
+ "errorDeleteFailed": "প্রক্সি মুছে ফেলা যায়নি",
+ "errorForceDeleteConfirm": "এই প্রক্সিটি এখনও বরাদ্দ করা আছে। জোরপূর্বক মুছে দিয়ে সব বরাদ্দ সরাবেন?",
+ "errorMigrateFailed": "লিগ্যাসি প্রক্সি কনফিগ মাইগ্রেট করা যায়নি",
+ "errorBulkFailed": "বাল্ক বরাদ্দ সম্পাদন করা যায়নি",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "ব্যর্থ",
+ "successRate": "{rate}% সফল",
+ "avgLatency": "গড় {latency}ms",
+ "assignmentsCount": "{count}টি বরাদ্দ",
"noData": "—",
"testSuccess": "✓ {ip}",
"testLatency": "{latency}ms",
@@ -10944,7 +10955,7 @@
"poolTitle": "প্রক্সি পুল এবং রোটেশন",
"poolDescription": "একটি স্কোপে একাধিক প্রক্সি সংযুক্ত করুন এবং সেগুলোর মধ্যে ইগ্রেস IP রোটেট করুন। একটি একক প্রক্সি বিশিষ্ট স্কোপ সাধারণ অ্যাসাইনমেন্টের মতোই কাজ করে।",
"poolScopeIdLabel": "স্কোপ ID",
- "poolScopeIdPlaceholder": "provider id / connection id / combo id",
+ "poolScopeIdPlaceholder": "প্রোভাইডার আইডি / সংযোগ আইডি / কম্বো আইডি",
"poolScopeIdRequired": "provider, account, বা combo স্কোপের জন্য একটি স্কোপ ID প্রয়োজন।",
"poolLoad": "পুল লোড করুন",
"poolLoadFailed": "প্রক্সি পুল লোড করতে ব্যর্থ হয়েছে",
@@ -10957,6 +10968,9 @@
"strategyLatency": "লেটেন্সি-অপ্টিমাইজড",
"poolMembersLabel": "পুলের সদস্য ({count})",
"poolNoMembers": "এই পুলে এখনও কোনো প্রক্সি নেই।",
+ "poolEgressObservation": "{connections, plural, one {#টি সংযোগ} other {#টি সংযোগ}} দ্বারা {exits, plural, one {#টি এক্সিট} other {#টি এক্সিট}} ব্যবহৃত · একটি এক্সিটে সর্বোচ্চ {max}টি · গত {hours} ঘণ্টা",
+ "poolEgressObservationEmpty": "গত {hours} ঘণ্টায় কোনো ট্রাফিক দেখা যায়নি",
+ "poolEgressObservationHint": "নির্ধারিত সময়সীমায় প্রক্সি লগ থেকে গণনা করা হয়েছে: এই পুলের সদস্যদের জন্য পর্যবেক্ষণ করা স্বতন্ত্র ইগ্রেস IP এবং সেগুলো ব্যবহার করা OmniRoute সংযোগ। \"একটি এক্সিটে\" বলতে নির্ধারিত সময়সীমার মধ্যে বোঝায়, একই সময়ে নয়। প্রতি-IP 429 লকআউট শুধু একই প্রোভাইডার পরিবারের সংযোগগুলোকে বিরতি দেয়।",
"poolRemove": "সরান",
"poolRemoveFailed": "পুল থেকে প্রক্সি সরাতে ব্যর্থ হয়েছে",
"poolAddLabel": "একটি প্রক্সি যোগ করুন",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "পুল অ্যাসাইনমেন্ট সংরক্ষণ করতে ব্যর্থ হয়েছে"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "মডেল প্লেগ্রাউন্ড",
+ "description": "ড্যাশবোর্ড থেকে সরাসরি যেকোনো মডেল পরীক্ষা করুন। প্রদানকারী, মডেল ও এন্ডপয়েন্টের ধরন নির্বাচন করুন, তারপর অপরিবর্তিত প্রতিক্রিয়া দেখতে একটি অনুরোধ পাঠান।",
+ "endpoint": "এন্ডপয়েন্ট",
+ "provider": "প্রদানকারী",
+ "model": "মডেল",
+ "accountKey": "অ্যাকাউন্ট / কী",
+ "autoAccounts": "স্বয়ংক্রিয় ({count}টি অ্যাকাউন্ট)",
+ "noAccounts": "কোনো অ্যাকাউন্ট নেই",
+ "send": "পাঠান",
+ "cancel": "বাতিল করুন",
+ "audioFile": "অডিও ফাইল",
+ "attachImages": "ছবি সংযুক্ত করুন (ভিশন)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "সর্বোচ্চ ৪টি ছবি",
+ "selectAudioFile": "ট্রান্সক্রিপশনের জন্য অডিও ফাইল নির্বাচন করুন (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "সব মুছুন",
+ "request": "অনুরোধ",
+ "response": "প্রতিক্রিয়া",
+ "transcription": "ট্রান্সক্রিপশন",
+ "copy": "কপি করুন",
+ "resetToDefault": "ডিফল্টে রিসেট করুন",
+ "downloadAudio": "অডিও ডাউনলোড করুন",
+ "copyText": "টেক্সট কপি করুন",
+ "transcriptionHint": "ট্রান্সক্রিপশনে multipart/form-data ব্যবহৃত হয়। উপরে অডিও ফাইলটি আপলোড করুন — নিচের JSON অতিরিক্ত প্যারামিটার (model, language) নিয়ন্ত্রণ করে।",
+ "imagesGenerated": "{count}টি ছবি তৈরি হয়েছে",
+ "generatedImage": "তৈরি করা ছবি {index}",
+ "save": "সংরক্ষণ করুন",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "চ্যাট সম্পূর্ণকরণ",
+ "responses": "প্রতিক্রিয়া",
"completions": "কমপ্লিশন",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "ছবি তৈরি",
+ "embeddings": "এম্বেডিং",
+ "speech": "টেক্সট-টু-স্পিচ",
+ "transcription": "অডিও ট্রান্সক্রিপশন",
+ "video": "ভিডিও তৈরি",
+ "music": "সংগীত তৈরি",
"moderations": "মডারেশন",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "পুনঃর্যাঙ্ক",
+ "search": "ওয়েব অনুসন্ধান",
"webFetch": "ওয়েব ফেচ"
},
"conversationalChat": "কথোপকথন চ্যাট",
"clearChat": "পরিষ্কার চ্যাট",
"typeMessagePlaceholder": "একটি বার্তা টাইপ করুন... (নতুন লাইনের জন্য Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "চ্যাট",
+ "tabCompare": "তুলনা করুন",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
- "topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "tabBuild": "তৈরি করুন",
+ "configPane": "কনফিগারেশন",
+ "systemPrompt": "সিস্টেম প্রম্পট",
+ "systemPromptPlaceholder": "আপনি একজন সহায়ক সহকারী।",
+ "modelPlaceholder": "যেমন openai/gpt-4o",
+ "endpointLabel": "এন্ডপয়েন্ট",
+ "parametersLabel": "প্যারামিটার",
+ "collapseConfig": "কনফিগারেশন প্যান সংকুচিত করুন",
+ "expandConfig": "কনফিগারেশন প্যান প্রসারিত করুন",
+ "temperature": "তাপমাত্রা",
+ "maxTokens": "সর্বোচ্চ টোকেন",
+ "topP": "টপ-p",
+ "presencePenalty": "প্রেজেন্স পেনাল্টি",
+ "frequencyPenalty": "ফ্রিকোয়েন্সি পেনাল্টি",
"reasoningLabel": "যুক্তি",
"thinking": "চিন্তাভাবনা",
"effort": "প্রচেষ্টা",
"effortDefault": "ডিফল্ট",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "এলোমেলো (খালি রাখুন)",
+ "presetsLabel": "প্রিসেট",
+ "loadPreset": "প্রিসেট লোড করুন",
+ "savePreset": "প্রিসেট সংরক্ষণ করুন",
+ "noPresets": "কোনো প্রিসেট নেই",
+ "presetNamePlaceholder": "প্রিসেটের নাম",
+ "savingPreset": "সংরক্ষণ করা হচ্ছে…",
+ "nameRequired": "নাম আবশ্যক",
+ "failedToSavePreset": "প্রিসেট সংরক্ষণ করা যায়নি",
+ "improvePrompt": "প্রম্পট উন্নত করুন",
+ "improvingPrompt": "উন্নত করা হচ্ছে…",
+ "improvePromptTitle": "AI দিয়ে আপনার প্রম্পট উন্নত করুন",
+ "setModelFirst": "প্রথমে একটি মডেল সেট করুন",
"setModelInConfigFirst": "প্রথমে Config প্যানে একটি মডেল সেট করুন।",
"improvePromptFailed": "প্রম্পট উন্নত করা ব্যর্থ হয়েছে।",
"improvePromptAria": "AI ব্যবহার করে প্রম্পট উন্নত করুন",
"confirmImprovePrompt": "প্রম্পট উন্নতকরণ নিশ্চিত করুন",
"improvePromptDescription": "এটি একটি উন্নত সংস্করণ তৈরি করতে আপনার বর্তমান সিস্টেম প্রম্পটটি trae.ai এর মাধ্যমে অনুমোদন করুন। টোকেন আমদানি হলে পপআপটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে।",
"authorizeImportant": "গুরুতর: আপনাকে প্রথমে trae.ai এ এই ব্রাউজারে লগ ইন করতে হবে। অনুমোদন পৃষ্ঠা কেবল একটি বিদ্যমান সেশন নিশ্চিত করে — এটি আপনাকে লগ ইন করতে পারে না। যদি আপনি \"লগইন ব্যর্থ\" দেখেন, \"solo.trae.ai খুলুন\" এ ক্লিক করুন, লগ ইন করুন, তারপর এখানে ফিরে আসুন।",
"waitingForAuthorization": "trae.ai এর জন্য অপেক্ষা করা হচ্ছে…",
"authorizeWithBrowser": "ব্রাউজারের মাধ্যমে অনুমোদন করুন",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai খুলুন",
"orPasteManually": "অথবা একটি টোকেন ম্যানুয়ালি পেস্ট করুন",
"manualInstructions": "solo.trae.ai এ সাইন ইন করুন, DevTools → Network খুলুন, যেকোনো চ্যাট বার্তা পাঠান, এবং Authorization: Cloud-IDE-JWT {tokenPlaceholder} অনুরোধ হেডার থেকে JWT কপি করুন। JWT এর আয়ু ~14 দিন। ঐচ্ছিক পরিচয় ক্ষেত্রগুলি একই অনুরোধের শরীরে common_params থেকে আসে।",
"accessTokenLabel": "অ্যাক্সেস টোকেন (Cloud-IDE-JWT)",
@@ -14048,11 +14081,11 @@
"actionApprove": "পরিকল্পনা অনুমোদন করুন",
"actionCancel": "বাতিল করুন",
"actionSeeInGraph": "গ্রাফে দেখুন",
+ "actionRepeat": "পুনরাবৃত্তি করুন",
"actionDone": "কার্যক্রম প্রয়োগ করা হয়েছে",
"actionFailed": "কার্যক্রম ব্যর্থ হয়েছে: {error}",
"detailFailed": "বিবরণ লোড করতে ব্যর্থ: {error}",
"mirroredInA2A": "A2A-তে প্রতিফলিত",
- "actionRepeat": "পুনরাবৃত্তি করুন",
"repeatConfirm": "নিশ্চিত করতে আবার ক্লিক করুন",
"repeatDone": "নতুন রান তৈরি হয়েছে",
"repeatUnavailable": "মূল ইনপুট উপলব্ধ নেই"
@@ -14066,57 +14099,57 @@
"networkError": "নেটওয়ার্ক ত্রুটি — প্রদানকারী এক্সপোজার সেটিং আপডেট করা যায়নি"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "সমর্থকদের জন্য অফার",
+ "subtitle": "Radar থেকে অফিসিয়াল ছাড়, ক্রেডিট, ট্রায়াল এবং পর্যালোচিত অংশীদার সুবিধা।",
+ "backToRadar": "Radar-এ ফিরে যান",
+ "loading": "অফার লোড হচ্ছে...",
+ "refresh": "অফার রিফ্রেশ করুন",
+ "refreshing": "রিফ্রেশ করা হচ্ছে...",
+ "loadFailed": "আমরা অফারগুলো রিফ্রেশ করতে পারিনি। সর্বশেষ যাচাইকৃত স্থানীয় ক্যাশ সংরক্ষিত আছে।",
+ "empty": "এই মুহূর্তে কোনো সক্রিয় অফার নেই।",
+ "keyRequiredTitle": "একটি সমর্থক কী প্রয়োজন",
+ "keyRequiredDescription": "অফারগুলো Radar-এর একটি লাইভ সুবিধা। Radar স্ক্রিনে একটি বিদ্যমান সমর্থক কী যোগ করুন, আপনার অবদানকারীর স্ট্যাটাস যাচাই করুন অথবা একটি কী পেতে প্রকল্পটিকে সমর্থন করুন।",
+ "contributorButton": "আমি একজন অবদানকারী",
+ "supporterButton": "প্রকল্পটিকে সমর্থন করুন",
+ "partnerBadge": "অংশীদার",
+ "officialBadge": "অফিসিয়াল",
+ "conditionsLabel": "শর্তাবলি:",
+ "validUntil": "{date} পর্যন্ত বৈধ",
+ "noExpiry": "মেয়াদ শেষ হওয়ার কোনো তারিখ ঘোষণা করা হয়নি",
+ "openOffer": "অফার দেখুন",
+ "trialDays": "{days, plural, one {# দিন} other {# দিন}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "রাডার ইন্টেলিজেন্স",
+ "subtitle": "Radar-এর নিজস্ব ELO র্যাঙ্কিং এবং ক্যাটালগের তথ্যভিত্তিক পরিবর্তন।",
+ "backToRadar": "Radar-এ ফিরে যান",
+ "loading": "ইন্টেল লোড হচ্ছে...",
+ "refresh": "ইন্টেল রিফ্রেশ করুন",
+ "syncing": "রিফ্রেশ হচ্ছে...",
+ "loadFailed": "আমরা ইন্টেল রিফ্রেশ করতে পারিনি। সর্বশেষ যাচাইকৃত স্থানীয় ক্যাশ সংরক্ষিত রয়েছে।",
+ "empty": "এখনও কোনো যাচাইকৃত ইন্টেল স্ন্যাপশট উপলভ্য নেই।",
+ "supporterBadge": "রাডার সমর্থক",
+ "methodology": "পদ্ধতি",
+ "eloMethod": "ELO, প্রাথমিক {initial}, K={factor}",
+ "freshness": "ক্যাটালগের হালনাগাদ অবস্থা",
+ "ageDays": "{days, plural, one {# দিন পুরোনো} other {# দিন পুরোনো}}",
+ "trend": "ক্যাটালগের প্রবণতা",
+ "modelDelta": "{current}টি মডেল, +{added} / -{removed}",
+ "ranking": "মডেল র্যাঙ্কিং",
+ "noRankings": "এখনও কোনো নিশ্চিত তুলনা উপলভ্য নেই।",
+ "model": "মডেল",
+ "category": "বিভাগ",
+ "rating": "রেটিং",
+ "matches": "ম্যাচ",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "সদ্য হালনাগাদ",
+ "aging": "পুরোনো হচ্ছে",
+ "stale": "অচল"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "বাড়ছে",
+ "stable": "স্থিতিশীল",
+ "shrinking": "কমছে"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "অনুরোধটি প্রদানকারীর প্রসঙ্গ উইন্ডো অতিক্রম করেছে"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference হলো OmniRoute-এর একজন ওপেন সোর্স বন্ধু",
+ "description": "একটি খরচভিত্তিক র্যাঙ্ক করা গেটওয়ে, যা OpenAI-সামঞ্জস্যপূর্ণ একটি এন্ডপয়েন্টের মাধ্যমে কয়েক ডজন ফ্রন্টিয়ার মডেল পুনর্বিক্রি করে—প্রতিটি অনুরোধকে সবচেয়ে সস্তা যোগ্য প্রদানকারীর কাছে রাউট করে, কখনোই তালিকাভুক্ত মূল্যের বেশি নয়।",
+ "cta": "একটি API Key নিন",
+ "partnerLinkNote": "অংশীদার লিঙ্ক",
+ "dismissAriaLabel": "বন্ধ করুন"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models ক্যাটালগে চিন্তার স্তরের ভ্যারিয়েন্ট (যেমন -low, -medium, -high) তৈরি করা বন্ধ করুন।"
}
diff --git a/src/i18n/messages/cs.json b/src/i18n/messages/cs.json
index df7ff0803e..a6d823ccdc 100644
--- a/src/i18n/messages/cs.json
+++ b/src/i18n/messages/cs.json
@@ -31,7 +31,7 @@
"active": "Aktivní",
"inactive": "Neaktivní",
"noData": "Žádné údaje k dispozici",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Zatím zde nic není",
"configure": "Konfigurovat",
"manualConfig": "Ruční konfigurace",
"manage": "Spravovat",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "Nepodařilo se resetovat ceny",
"apikey": "API klíč",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Přejít na řídicí panel",
+ "checkSystemStatus": "Zkontrolovat stav systému",
+ "selectModel": "Vybrat model",
"addModel": "Přidat model",
"effortNone": "Žádný",
"effortLow": "Nízká",
@@ -164,10 +164,10 @@
"reasoningEffort": "Úsilí při uvažování",
"wireApi": "Wire API",
"modelAliases": "Aliasy modelů",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Kombinace",
+ "noModelsFound": "Nebyly nalezeny žádné modely",
+ "clear": "Vymazat",
+ "done": "Hotovo",
"selectAll": "Vybrat vše",
"unselectAll": "Zrušit výběr",
"visibleModels": "viditelné",
@@ -184,519 +184,519 @@
"selectAllProviders": "Zkontrolovat všechny poskytovatele",
"clearProviderSelection": "Zrušit zaškrtnutí poskytovatelů",
"providersSelectedCount": "Zkontrolováno {count} poskytovatelů",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Došlo k chybě",
+ "comboDeleted": "Kombinace byla odstraněna",
+ "hide": "Skrýt",
+ "creating": "Vytváření",
+ "comboCreated": "Kombinace byla vytvořena",
+ "swapFormats": "Prohodit formáty",
+ "daysAgo": "Před několika dny",
+ "retries": "Opakované pokusy",
+ "errorDuringRestore": "Chyba při obnovení",
+ "eventsAppearHint": "Zde se zobrazí události",
+ "noLockouts": "Žádná blokování",
+ "webSearchDesc": "Popis webového vyhledávání",
+ "audioProvidersHeading": "Poskytovatelé zvuku",
"cloudAgentProviders": "Poskytovatelé cloudových agentů",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Před několika minutami",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "Živě, automaticky se obnovuje",
+ "webSearch": "Webové vyhledávání",
+ "anthropicPrefixPlaceholder": "Zástupný text předpony Anthropic",
+ "addModelToCombo": "Přidat model do kombinace",
+ "failedToLoad": "Načtení se nezdařilo",
+ "categoryMedia": "Kategorie médií",
+ "enableCloud": "Povolit cloud",
+ "expirationBannerExpiringSoon": "Platnost brzy vyprší",
+ "retry": "Zkusit znovu",
+ "embeddings": "Vektorové reprezentace",
+ "errorCount": "Počet chyb",
+ "backupReasonManual": "Ruční zálohování",
+ "safeSearchModerate": "Středně přísné bezpečné vyhledávání",
+ "activeLimiters": "Aktivní omezovače",
+ "a2aCardTitle": "Název karty A2A",
+ "cloudWorkerUnreachable": "Cloud Worker je nedostupný",
+ "testFailed": "Test se nezdařil",
+ "compatibleBaseUrlHint": "Nápověda ke kompatibilní základní URL",
+ "usageTracking": "Sledování využití",
+ "disableCloudTitle": "Název pro deaktivaci cloudu",
+ "noConnections": "Žádná připojení",
+ "providerHealth": "Stav poskytovatele",
+ "confirmDbImport": "Potvrdit import databáze",
+ "notAvailableSymbol": "Symbol nedostupnosti",
+ "backupsAvailable": "Dostupné zálohy",
+ "providerAuto": "Automatický výběr poskytovatele",
+ "newProviderNamePlaceholder": "Zástupný text názvu nového poskytovatele",
+ "a2aQuickStartStep2": "Krok 2 rychlého startu A2A",
+ "ok": "OK",
+ "available": "Dostupné",
+ "noBackupYet": "Zatím žádná záloha",
+ "more": "Více",
+ "noCompatibleYet": "Zatím žádný kompatibilní poskytovatel",
+ "multiProvider": "Více poskytovatelů",
+ "repairEnvHint": "Nápověda k opravě prostředí",
+ "disablingCloud": "Deaktivace cloudu",
+ "testBench": "Testovací prostředí",
+ "valid": "Platné",
+ "cloudBenefitShare": "Sdílení výhod cloudu",
+ "mcpCardTitle": "Název karty MCP",
+ "disableConfirm": "Potvrdit deaktivaci",
+ "filters": "Filtry",
+ "expirationBannerExpiredDesc": "Popis banneru po vypršení platnosti",
+ "saveComboDefaults": "Uložit výchozí kombinace",
+ "cloudConnectedVerified": "Připojení ke cloudu ověřeno",
+ "uptime": "Doba provozu",
+ "compatibleProdPlaceholder": "Zástupný text kompatibilního produkčního prostředí",
+ "fallbackChainsTitle": "Název řetězců náhradních poskytovatelů",
+ "oauthLabel": "Popisek OAuth",
+ "a2aCardDescription": "Popis karty A2A",
+ "okShort": "OK",
+ "maintenance": "Údržba",
+ "formatConverter": "Převodník formátů",
+ "zedImportNetworkError": "Chyba sítě při importu ze Zed",
+ "apiKeyLabel": "Popisek klíče API",
+ "noModelsForProvider": "Pro poskytovatele nejsou k dispozici žádné modely",
+ "mcpCardDescription": "Popis karty MCP",
+ "apiTypeLabel": "Popisek typu API",
+ "configuredProvidersLabel": "Popisek nakonfigurovaných poskytovatelů",
+ "maxRetriesLabel": "Popisek maximálního počtu opakování",
+ "title": "Název",
+ "output": "Výstup",
+ "prefixHint": "Nápověda k prefixu",
+ "skipWizard": "Přeskočit průvodce",
+ "failedCount": "Počet neúspěšných",
+ "confirmDbImportDesc": "Popis potvrzení importu databáze",
+ "entries": "Položky",
+ "until": "Do",
+ "disableCombo": "Zakázat kombinaci",
+ "liveMonitorDescriptionPrefix": "Prefix popisu živého monitorování",
+ "runningCount": "Počet spuštěných",
+ "noActiveConnectionsInGroup": "Ve skupině nejsou žádná aktivní připojení",
+ "savedSuccessfully": "Úspěšně uloženo",
+ "systemStorage": "Systémové úložiště",
+ "videoDesc": "Popis videa",
+ "maxResults": "Maximální počet výsledků",
+ "timeRangeMonth": "Časový rozsah: měsíc",
+ "testSummary": "Souhrn testu",
+ "failedSetPassword": "Nastavení hesla se nezdařilo",
+ "audio": "Zvuk",
+ "restore": "Obnovit",
+ "disableWarning": "Upozornění na zakázání",
+ "moderationsDesc": "Popis moderování",
+ "providerHealthStatusAria": "ARIA popisek stavu poskytovatele",
+ "modelNamePlaceholder": "Zástupný text názvu modelu",
+ "mcpQuickStartStep2": "Krok 2 rychlého spuštění MCP",
+ "quickStart": "Rychlé spuštění",
+ "fullExportFailedWithError": "Úplný export selhal s chybou",
+ "loadingBackups": "Načítání záloh",
+ "anthropicBaseUrlPlaceholder": "Zástupný text základní URL adresy Anthropic",
+ "description": "Popis",
+ "noProviderFound": "Nebyl nalezen žádný poskytovatel",
+ "auto": "Automaticky",
+ "protocolsDescription": "Popis protokolů",
+ "cloudSessionNote": "Poznámka ke cloudové relaci",
+ "advancedSettings": "Pokročilá nastavení",
+ "defaultStrategy": "Výchozí strategie",
+ "purgeExpiredLogs": "Vymazat protokoly s prošlou platností",
+ "justNow": "Právě teď",
+ "providerTestFailed": "Test poskytovatele se nezdařil",
+ "openaiBaseUrlPlaceholder": "Zástupný text základní URL Openai",
+ "image": "Obrázek",
+ "failedCreateChain": "Řetězec se nepodařilo vytvořit",
+ "importDatabase": "Importovat databázi",
+ "allDataLocal": "Všechna data jsou místní",
+ "sectionTitle": "Nadpis sekce",
+ "failedToggle": "Přepnutí se nezdařilo",
+ "editCombo": "Upravit kombinaci",
+ "testResults": "Výsledky testu",
+ "searchQuery": "Vyhledávací dotaz",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
+ "duplicate": "Duplikovat",
+ "createCombo": "Vytvořit kombinaci",
+ "searchTypeWeb": "Typ vyhledávání: web",
+ "addChain": "Přidat řetězec",
+ "prefixLabel": "Popisek předpony",
+ "listModelsDesc": "Popis seznamu modelů",
+ "databaseSize": "Velikost databáze",
+ "chainCreated": "Řetězec byl vytvořen",
+ "providerTestTimeout": "Vypršel časový limit testu poskytovatele",
+ "routingStrategy": "Strategie směrování",
+ "translateAction": "Akce překladu",
+ "exportFailed": "Export se nezdařil",
+ "connectedVerificationPending": "Připojeno, čeká se na ověření",
+ "a2aQuickStartTitle": "Nadpis rychlého startu A2A",
+ "couldNotTest": "Test nebylo možné provést",
+ "testAllCompatible": "Otestovat všechny kompatibilní",
+ "anthropicCompatibleName": "Název kompatibilní s Anthropic",
+ "disabling": "Deaktivace",
+ "failedEnable": "Aktivace se nezdařila",
+ "categoryUtility": "Kategorie: nástroje",
+ "customUrlOptional": "Volitelná vlastní URL",
+ "localProviders": "Místní poskytovatelé",
+ "comboNamePlaceholder": "Zástupný text názvu kombinace",
+ "memoryRss": "Rezidentní paměť (RSS)",
+ "disableProvider": "Zakázat poskytovatele",
+ "welcomeDesc": "Popis uvítání",
+ "nameLabel": "Popisek názvu",
+ "allOperational": "Vše v provozu",
+ "backupNow": "Zálohovat nyní",
+ "providerMaxRetriesAria": "ARIA popisek maximálního počtu opakovaných pokusů poskytovatele",
+ "textToSpeechDesc": "Popis převodu textu na řeč",
+ "machineId": "ID zařízení",
+ "globalProxy": "Globální proxy",
+ "hitsMisses": "Zásahy a minutí",
+ "testDesc": "Popis testu",
+ "chatDesc": "Popis chatu",
+ "importSuccess": "Import byl úspěšný",
"chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
- "openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "a2aQuickStartStep1": "1. krok rychlého spuštění A2A",
+ "importFailed": "Import se nezdařil",
+ "inputPlaceholder": "Zástupný text vstupu",
+ "providerModelsTitle": "Název modelů poskytovatele",
+ "lastBackup": "Poslední záloha",
+ "yourEndpoint": "Váš koncový bod",
+ "autoDisableThresholdDesc": "Popis prahové hodnoty automatického zakázání",
+ "rerankDesc": "Popis přeřazení",
+ "modelsPathPlaceholder": "Zástupný text cesty k modelům",
+ "noCombosYet": "Zatím žádné kombinace",
+ "connectedVerificationPendingWithError": "Připojeno, čeká se na ověření s chybou",
+ "comboDefaultsGuideHint1": "1. tip průvodce výchozím nastavením kombinace",
+ "enableCloudTitle": "Povolit cloud",
+ "configuredProvidersHint": "Nápověda ke konfigurovaným poskytovatelům",
+ "paused": "Pozastaveno",
+ "llmProviders": "Poskytovatelé LLM",
+ "enableCombo": "Povolit kombinaci",
+ "removeProviderOverrideAria": "ARIA popisek odebrání přepsání poskytovatele",
+ "nodeVersion": "Verze Node",
+ "openai": "OpenAI",
+ "exportFailedWithError": "Export se nezdařil s chybou",
+ "proxyConfigured": "Proxy je nakonfigurována",
+ "concurrencyPerModel": "Souběžnost na model",
+ "protocolTasksLabel": "Popisek úloh protokolu",
+ "oauthProviders": "Poskytovatelé OAuth",
+ "lockedCount": "Počet uzamčených",
+ "deleteChainConfirm": "Potvrzení odstranění řetězce",
+ "recentTranslations": "Nedávné překlady",
+ "zedImportButton": "Tlačítko importu Zed",
+ "responsesDesc": "Popis odpovědí",
+ "testedCount": "Počet otestovaných",
+ "providersCommaSeparatedPlaceholder": "Zástupný text pro poskytovatele oddělené čárkami",
+ "signatureDefaults": "Výchozí nastavení podpisu",
+ "errorCreating": "Chyba při vytváření",
+ "timeRangeYear": "Časový rozsah: rok",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Cloud byl úspěšně deaktivován",
+ "deleteConfirm": "Potvrzení odstranění",
+ "check": "Zkontrolovat",
+ "safeSearch": "Bezpečné vyhledávání",
+ "protocolLastActivity": "Poslední aktivita protokolu",
+ "openMcpDashboard": "Otevřít řídicí panel Mcp",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Popisek cesty chatu",
+ "retryDelay": "Prodleva před opakováním",
+ "errorUpdating": "Chyba při aktualizaci",
+ "ideCliIntegrations": "Integrace IDE a CLI",
+ "imageGeneration": "Generování obrázků",
+ "apiKeyRequired": "Je vyžadován klíč API",
+ "resetAllTitle": "Obnovit vše",
+ "connectionError": "Chyba připojení",
+ "modelName": "Název modelu",
+ "apiKeyForCheck": "Klíč API pro kontrolu",
+ "cloudRequestTimeout": "Vypršel časový limit cloudového požadavku",
+ "showConfiguredOnly": "Zobrazit pouze nakonfigurované",
"showFreeOnly": "Pouze zdarma",
"addFirstProvider": "Přidejte svého prvního poskytovatele",
"addFirstProviderDesc": "Připojte poskytovatele AI a začněte směrovat požadavky přes OmniRoute. Můžete použít bezplatné poskytovatele, klíče API nebo účty OAuth.",
"learnMore": "Zjistěte více",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Zahrnout domény",
+ "promptCache": "Mezipaměť promptů",
+ "cloudConnected": "Cloud je připojen",
+ "deleteChain": "Odstranit řetězec",
+ "chatPathPlaceholder": "Zástupný text cesty chatu",
+ "databasePath": "Cesta k databázi",
+ "usingLocalServer": "Používá se místní server",
+ "globalComboConfig": "Globální kombinovaná konfigurace",
+ "backupFailed": "Zálohování se nezdařilo",
+ "tabProtocols": "Karta Protokoly",
+ "continue": "Pokračovat",
+ "categorySearch": "Vyhledávání kategorií",
+ "rateLimitStatus": "Stav omezení rychlosti",
+ "repairEnvSuccess": "Oprava prostředí proběhla úspěšně",
+ "nameRequired": "Název je povinný",
+ "country": "Země",
+ "trackMetricsDesc": "Popis sledování metrik",
+ "durationSecondsShort": "Doba trvání (s)",
+ "formatConverterDescription": "Popis převodníku formátů",
+ "cloudBenefitAccess": "Přístup k výhodám cloudu",
+ "maxRetries": "Maximální počet opakování",
+ "queueTimeout": "Časový limit fronty",
"queueDepth": "Hloubka fronty",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Přidat poskytovatele",
+ "realtime": "V reálném čase",
+ "totalTranslations": "Celkem překladů",
+ "protocolActiveStreamsLabel": "Aktivní streamy protokolu",
+ "repairEnv": "Opravit prostředí",
+ "modelsCount": "Počet modelů",
+ "viewBackups": "Zobrazit zálohy",
+ "responsesApi": "Responses API",
+ "copyComboName": "Kopírovat název kombinace",
+ "failures": "Selhání",
+ "failedUpdate": "Aktualizace se nezdařila",
+ "imageDesc": "Popis obrázku",
+ "failedCreate": "Vytvoření se nezdařilo",
+ "remainingOfLimit": "Zbývá z limitu",
+ "protocolsTitle": "Protokoly",
+ "expirationBannerExpiringSoonDesc": "Popis upozornění na blížící se vypršení platnosti",
+ "source": "Zdroj",
+ "failed": "Neúspěšné",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "1. krok rychlého spuštění MCP",
+ "runTest": "Spustit test",
+ "loadingFallbackChains": "Načítání záložních řetězců",
+ "healthy": "V pořádku",
+ "version": "Verze",
+ "saveBlockWeighted": "Uložit vážený blok",
+ "zedImportNone": "Žádné položky k importu ze Zed",
+ "noBackupsYet": "Zatím žádné zálohy",
+ "noGlobalProxy": "Žádný globální proxy server",
+ "noModels": "Žádné modely",
+ "stickyLimit": "Limit přidružení",
+ "passedCount": "Počet úspěšných",
+ "zedImportFailed": "Import ze Zed se nezdařil",
+ "saving": "Ukládání",
+ "testAll": "Otestovat vše",
+ "globalProxyDesc": "Popis globálního proxy",
+ "latencyP99": "Latence P99",
+ "connectingToCloud": "Připojování ke cloudu",
+ "responses": "Odpovědi",
+ "errorDeleting": "Chyba při odstraňování",
+ "openaiPrefixPlaceholder": "Zástupný text prefixu Openai",
+ "enterPassword": "Zadejte heslo",
+ "openA2aDashboard": "Otevřít řídicí panel A2A",
+ "enableProvider": "Povolit poskytovatele",
+ "modeTest": "Režim testování",
+ "failedDeleteChain": "Řetězec se nepodařilo odstranit",
+ "providerDesc": "Popis poskytovatele",
+ "templateLoadHint": "Nápověda k načtení šablony",
+ "lastFailure": "Poslední selhání",
+ "moveDown": "Posunout dolů",
+ "providerLabel": "Označení poskytovatele",
+ "clearCacheFailed": "Vymazání mezipaměti se nezdařilo",
+ "imagesGenerations": "Generování obrázků",
+ "repairEnvWorking": "Oprava pracovního prostředí",
+ "millisecondsShort": "ms",
+ "globalLabel": "Globální označení",
+ "failuresPlural": "Selhání",
+ "completionsLegacyDesc": "Popis staršího rozhraní completions",
+ "searchProviders": "Hledat poskytovatele",
+ "chatPathHint": "Nápověda k cestě chatu",
+ "defaultStrategyDesc": "Popis výchozí strategie",
+ "latencyP95": "Latence P95",
+ "textToSpeech": "Převod textu na řeč",
+ "searchType": "Typ vyhledávání",
+ "messages": "Zprávy",
+ "aggregatorsGateways": "Agregátory a brány",
+ "comboStrategyAria": "Kombinovaná strategie Aria",
+ "input": "Vstup",
+ "testingConnection": "Testování připojení",
+ "excludeDomains": "Vyloučit domény",
+ "webCookieProviders": "Poskytovatelé webových cookies",
+ "allTestsPassed": "Všechny testy proběhly úspěšně",
+ "openaiCompatibleName": "Název kompatibilní s Openai",
+ "warningCostOptimizedPartialPricing": "Upozornění na částečné ceny optimalizované podle nákladů",
+ "comboDefaultsGuideTitle": "Název průvodce výchozím nastavením kombinací",
+ "hoursAgo": "Před hodinami",
+ "notAvailable": "Není k dispozici",
+ "skipAndContinue": "Přeskočit a pokračovat",
+ "moderations": "Moderování",
+ "proxyConfig": "Konfigurace proxy",
+ "upstreamProxyProviders": "Poskytovatelé nadřazených proxy serverů",
+ "exportAll": "Exportovat vše",
+ "queuedCount": "Počet ve frontě",
+ "resetAll": "Obnovit vše",
+ "noTranslations": "Žádné překlady",
+ "avgLatency": "Průměrná latence",
+ "throttleStatus": "Stav omezení",
+ "backupRetentionDesc": "Popis uchovávání záloh",
+ "noCBData": "Žádná data CB",
+ "chainDeleted": "Řetězec byl odstraněn",
+ "timeLeft": "Zbývající čas",
+ "expirationBannerExpired": "Banner vypršení platnosti – platnost vypršela",
+ "language": "Jazyk",
+ "invalidFileType": "Neplatný typ souboru",
+ "monitoredProviders": "Sledovaní poskytovatelé",
+ "errors": "Chyby",
+ "heap": "Halda",
+ "chatCompletions": "Dokončování chatu",
+ "exampleTemplatesHint": "Nápověda k ukázkovým šablonám",
+ "retryDelayLabel": "Popisek zpoždění opakování",
+ "audioTranscription": "Přepis zvuku",
+ "fallbackChainsDesc": "Popis záložních řetězců",
+ "exampleTemplates": "Ukázkové šablony",
+ "connectionsCount": "Počet připojení",
+ "modelsPathLabel": "Popisek cesty k modelům",
+ "activeProvidersHint": "Nápověda k aktivním poskytovatelům",
+ "activeLockouts": "Aktivní blokování",
+ "invalid": "Neplatné",
+ "skipPassword": "Přeskočit heslo",
+ "moveUp": "Posunout nahoru",
+ "timeRange": "Časový rozsah",
+ "stickyLimitDesc": "Popis pevného limitu",
+ "cloudBenefitEdge": "Výhoda cloudu: Edge",
+ "custom": "Vlastní",
+ "verifying": "Ověřování",
+ "baseUrlLabel": "Popisek základní URL",
+ "setPassword": "Nastavit heslo",
+ "safeSearchStrict": "Přísné bezpečné vyhledávání",
+ "noChangesSinceBackup": "Od zálohy nedošlo k žádným změnám",
+ "modelsPathHint": "Nápověda k cestě k modelům",
+ "audioTranscriptions": "Přepisy zvuku",
+ "testCombo": "Otestovat kombinaci",
+ "mcpQuickStartTitle": "Rychlý start s MCP",
+ "comboUpdated": "Kombinace aktualizována",
+ "weighted": "Vážené",
+ "providers": "Poskytovatelé",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Popis chybějících záložních řetězců",
+ "yesImport": "Ano, importovat",
+ "lockoutsAutoRefreshHint": "Nápověda k automatickému obnovení blokací",
+ "tabApis": "Karta API",
+ "sectionDescription": "Popis sekce",
+ "filter": "Filtrovat",
+ "purgeLogsFailed": "Vymazání protokolů se nezdařilo",
+ "latency": "Latence",
+ "testAllOAuth": "Otestovat všechna OAuth",
+ "mcpQuickStartStep3": "Krok 3 rychlého startu s MCP",
+ "repairEnvFailed": "Oprava prostředí se nezdařila",
+ "zedImportHint": "Nápověda k importu ze Zed",
+ "modelsAcrossEndpoints": "Modely napříč koncovými body",
+ "autoDisableBannedAccounts": "Automaticky deaktivovat zablokované účty",
+ "securityDesc": "Popis zabezpečení",
+ "listModels": "Vypsat modely",
+ "backupRestore": "Zálohování a obnovení",
+ "target": "Cíl",
+ "zedImportSuccess": "Import ze Zed byl úspěšný",
+ "lastHeaderUpdate": "Poslední aktualizace hlavičky",
+ "categoryCore": "Kategorie Jádro",
+ "noFallbackChains": "Žádné záložní řetězce",
+ "noSearchProviders": "Žádní poskytovatelé vyhledávání",
+ "autoBalance": "Automatické vyvažování",
+ "noModelsYet": "Zatím žádné modely",
+ "signatureFamily": "Rodina podpisů",
+ "externalApiCalls": "Externí volání API",
+ "providerOverridesDesc": "Popis přepsání poskytovatelů",
+ "signatureTool": "Nástroj pro podpisy",
+ "connectionFailed": "Připojení se nezdařilo",
+ "activeLimitersPlural": "Aktivní omezovače",
+ "doneDesc": "Popis dokončení",
+ "down": "Mimo provoz",
+ "noDataYet": "Zatím žádná data",
+ "activeProviders": "Aktivní poskytovatelé",
+ "nameInvalid": "Neplatný název",
+ "skip": "Přeskočit",
+ "createChain": "Vytvořit řetězec",
+ "audioSpeech": "Zvuková řeč",
+ "cacheCleared": "Mezipaměť vymazána",
+ "searchTypeNews": "Typ vyhledávání: zprávy",
+ "durationMillisecondsShort": "Doba trvání v ms",
+ "addOpenAICompatible": "Přidat kompatibilní s OpenAI",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "Zařazeno do fronty",
+ "domainPlaceholder": "Zástupný text domény",
+ "durationMinutesShort": "Doba trvání v min",
+ "verifyingConnection": "Ověřování připojení",
+ "imageProviders": "Poskytovatelé obrázků",
+ "protocolToolsLabel": "Popisek nástrojů protokolu",
+ "queryPlaceholder": "Zástupný text dotazu",
+ "videoGeneration": "Generování videa",
+ "timeRangeWeek": "Časové období: týden",
+ "limitExhausted": "Limit vyčerpán",
+ "failedDisable": "Zakázání se nezdařilo",
+ "inMemoryNote": "Poznámka k ukládání v paměti",
+ "compatibleHint": "Tip ke kompatibilitě",
+ "errorShort": "Chyba",
+ "advancedHint": "Tip k pokročilým nastavením",
+ "restoreFailed": "Obnovení se nezdařilo",
+ "searchProvidersHeading": "Nadpis poskytovatelů vyhledávání",
+ "comboName": "Název kombinace",
+ "autoDisableDescription": "Popis automatického zakázání",
+ "embeddingsDesc": "Popis vektorových reprezentací",
+ "operational": "Provozuschopné",
+ "testAllApiKey": "Otestovat všechny klíče API",
+ "backupCreated": "Záloha vytvořena",
+ "errorDuringImport": "Chyba při importu",
+ "comboDefaultsGuideHint2": "Nápověda k výchozím hodnotám kombinace 2",
+ "connecting": "Připojování",
+ "fillModelAndProviders": "Vyplňte model a poskytovatele",
+ "syncing": "Synchronizace",
+ "resetConfirm": "Potvrzení obnovení",
+ "trackMetrics": "Sledovat metriky",
+ "successful": "Úspěšné",
+ "recovering": "Obnovování",
+ "autoDisableThreshold": "Prahová hodnota automatického zakázání",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Synchronizace dat",
+ "cloudBenefitPorts": "Výhody cloudu – porty",
+ "compatibleProviders": "Kompatibilní poskytovatelé",
"freeTierProviders": "Poskytovatelé bezplatných úrovní",
"freeTierLabel": "Volná úroveň k dispozici",
"freeTierProvidersDesc": "Poskytovatelé s bezplatnými úrovněmi – někteří vyžadují registraci klíče API, jiní nepotřebují vůbec žádné přihlašovací údaje.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "Vymazat mezipaměť",
+ "reqs": "Požadavky",
+ "addAnthropicCompatible": "Přidat poskytovatele kompatibilního s Anthropic",
+ "apiKeyProviders": "Poskytovatelé API klíčů",
+ "tabsAria": "ARIA karet",
+ "resetting": "Obnovování",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Důvod zálohy před obnovením",
+ "disableCloud": "Zakázat cloud",
+ "newProviderNameAria": "ARIA názvu nového poskytovatele",
+ "passwordsMismatch": "Hesla se neshodují",
+ "a2aQuickStartStep3": "Rychlý start A2A – krok 3",
+ "liveMonitorDescriptionSuffix": "Přípona popisu živého monitorování",
+ "failedAddProvider": "Poskytovatele se nepodařilo přidat",
+ "addAtLeastOneProvider": "Přidejte alespoň jednoho poskytovatele",
+ "reasonSeparator": "Oddělovač důvodu",
+ "zedImporting": "Import do Zed",
+ "confirmPasswordPlaceholder": "Potvrďte heslo",
+ "whatYouGet": "Co získáte",
+ "signatureSession": "Relace podpisu",
+ "errorCountNoCode": "Počet chyb bez kódu",
+ "testing": "Testování",
+ "providersCommaSeparated": "Poskytovatelé oddělení čárkami",
+ "exportDatabase": "Exportovat databázi",
+ "hitRate": "Míra zásahů",
+ "completionsLegacy": "Dokončení (zastaralé)",
+ "removeModel": "Odebrat model",
+ "timeRangeDay": "Časový rozsah: den",
+ "cloudRequestFailed": "Cloudový požadavek selhal",
+ "updatedAt": "Aktualizováno",
+ "monitoredProvidersHint": "Nápověda k monitorovaným poskytovatelům",
+ "connectionSuccessful": "Připojení bylo úspěšné",
+ "latencyP50": "Latence P50",
+ "logsDeleted": "Protokoly byly odstraněny",
+ "chatTester": "Tester chatu",
+ "safeSearchOff": "Bezpečné vyhledávání vypnuto",
+ "nameHint": "Nápověda k názvu",
+ "debugToggle": "Přepínač ladění",
+ "embedding": "Vkládání",
+ "issuesLabel": "Označení problémů",
+ "optionAny": "Možnost Libovolná",
+ "maxNestingDepth": "Maximální hloubka vnoření",
+ "rerank": "Přeřazení",
+ "checking": "Probíhá kontrola",
+ "getStarted": "Začít",
+ "restoreSuccess": "Obnovení bylo úspěšné",
+ "issuesDetected": "Zjištěny problémy",
+ "signatureCache": "Mezipaměť podpisů",
+ "modelLockouts": "Blokace modelů",
+ "usingCloudProxy": "Používá se cloudový proxy server",
+ "loadingHealth": "Načítání stavu",
+ "providerOverrides": "Přepsání nastavení poskytovatelů",
+ "audioTranscriptionDesc": "Popis přepisu zvuku",
+ "learnedFromHeaders": "Zjištěno z hlaviček",
+ "totalRequests": "Celkový počet požadavků",
+ "cloudUnstableNote": "Poznámka k nestabilitě cloudu",
"gamificationAdmin": "Správce gamifikace",
"monitorAnomaliesAndHealth": "Sledujte anomálie a stav systému",
"flaggedAnomalies": "Označené anomálie",
@@ -704,7 +704,7 @@
"apiKey": "Klíč API",
"xpLastHour": "XP (1 h)",
"zScore": "Z-skóre",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Podezřelé",
"tokensCommunityServers": "Komunitní servery",
"tokensServerNamePlaceholder": "Název serveru",
"tokensApiKeyPlaceholder": "API klíč",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Načítání dalších…",
"recommended": "Doporučeno",
"understand": "Rozumím",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
+ "batchConceptTitle": "Dávkové zpracování",
+ "batchConceptSubtitle": "Zpracujte tisíce požadavků asynchronně za přibližně 50 % nákladů (v rámci 24 hodin). Ideální pro vyhodnocování, klasifikaci a vkládání.",
+ "batchConceptHowItWorks": "Jak to funguje",
+ "batchConceptBenefit50pct": "50% sleva na vstupní a výstupní tokeny",
+ "batchConceptAsync24h": "Asynchronní zpracování s dokončením do 24 hodin",
+ "batchConceptUseCases": "Nejvhodnější pro hromadnou klasifikaci, vyhodnocování a vkládání",
+ "batchHeaderSubtitle": "Spusťte mnoho požadavků jako jednu úlohu",
+ "batchStep1": "1 · Nahrát JSONL",
+ "batchStep1Desc": "Přidat požadavky",
+ "batchStep2": "2 · Vytvořit dávku",
+ "batchStep2Desc": "Spustit úlohu",
+ "batchStep3": "3 · Získat výsledky",
+ "batchStep3Desc": "Stáhnout výstup",
+ "filesConceptTitle": "Dávkové soubory",
+ "filesConceptSubtitle": "Soubory JSONL používané dávkami: vstupní požadavky, výsledky a chyby.",
+ "filesConceptInput": "Vstup — váš soubor JSONL s jedním požadavkem na řádek",
+ "filesConceptOutput": "Výstup — výsledky dokončených požadavků",
+ "filesConceptError": "Chyby — požadavky, které selhaly",
+ "filesConceptRetention": "Uchovávání: ve výchozím nastavení 30 dní (29 dní u Anthropic)",
+ "wizardTitle": "Nová dávka",
+ "wizardClose": "Zavřít",
+ "wizardNext": "Další",
+ "wizardBack": "Zpět",
+ "wizardCancel": "Zrušit",
+ "wizardCreate": "Vytvořit dávku",
+ "wizardCreating": "Vytváření…",
+ "wizardStep1Destination": "Cíl",
+ "wizardStep2Input": "Vstup",
+ "wizardStep3Validate": "Ověřit",
+ "wizardStep4Cost": "Cena a vytvoření",
+ "wizardProviderLabel": "Poskytovatel",
+ "wizardEndpointLabel": "Koncový bod",
"wizardModelLabel": "Model",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (převedeme ho)",
+ "wizardDropOrPick": "Přetáhněte sem soubor nebo kliknutím vyberte",
+ "wizardCsvMappingTitle": "Namapovat sloupce CSV → pole požadavku",
+ "wizardCsvMappingAddField": "Přidat pole",
"wizardCsvNoColumns": "V hlavičce CSV nebyly detekovány žádné sloupce.",
"wizardCsvIgnoreColumn": "— ignorovat —",
"wizardCsvCustomIdMapped": "custom_id namapováno",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} řádků zpracováno",
"wizardCsvRowsSkipped": "{count} řádků přeskočeno",
"wizardCsvRowError": "Řádek {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Všechny řádky jsou platné",
"wizardValidating": "Ověřování…",
"wizardValidationParseFailed": "Ověření selhalo — nepodařilo se analyzovat obsah.",
"wizardValidationSummary": "{lines} řádků · {ids} unikátních custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Detekovány duplicitní custom_ids:",
"wizardValidationFirstErrors": "Chyby (prvních {count}):",
"wizardValidationLine": "Řádek {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Chyby ověření",
+ "wizardValidationPreview": "Náhled (prvních 5 požadavků)",
+ "wizardValidationSamplingNote": "Soubor je velký — byl ověřen pomocí vzorku (prvních 1000 a posledních 100 řádků). Úplné ověření proběhne na serveru.",
+ "wizardCostSync": "Cena synchronního zpracování",
+ "wizardCostBatch": "Cena dávkového zpracování (-50 %)",
+ "wizardCostSavings": "Úspora",
+ "wizardCostEstimatedNotice": "Odhadovaná cena — skutečná fakturace se může lišit.",
+ "wizardErrorUpload": "Soubor se nepodařilo nahrát. Zkuste to znovu.",
+ "wizardErrorCreate": "Dávku se nepodařilo vytvořit. Zkuste to znovu.",
+ "wizardEmptyProviders": "Chcete-li vytvořit dávku, připojte poskytovatele s podporou dávkového zpracování (OpenAI, Anthropic nebo Gemini).",
+ "uploadModalTitle": "Nahrát dávkový soubor",
+ "uploadModalDropOrPick": "Přetáhněte sem soubor .jsonl nebo kliknutím vyberte",
+ "uploadModalUpload": "Nahrát",
+ "uploadModalCancel": "Zrušit",
+ "uploadModalError": "Nahrání se nezdařilo. Zkuste to znovu.",
+ "uploadModalSuccess": "Nahráno",
+ "uploadModalSizeLimit": "Max. 512 MB",
+ "batchListNewButton": "Nová dávka",
+ "batchListAutoRefresh": "Automatické obnovení po 30 s",
+ "batchListCostColumn": "Náklady",
+ "batchActionCancel": "Zrušit",
+ "batchActionDownloadOutput": "Stáhnout výstup",
+ "batchActionDownloadErrors": "Stáhnout chyby",
+ "batchActionRetry": "Opakovat neúspěšné",
+ "batchActionRetryConfirm": "Opakovat {n} neúspěšných požadavků? Konečné náklady závisí na skutečně spotřebovaných tokenech.",
+ "expirationBadgeCritical": "Kritické",
+ "expirationBadgeWarning": "Brzy",
+ "expirationBadgeNormal": "Čeká na vyřízení",
+ "expirationBadgeExpired": "Vypršelo",
+ "filesListUploadButton": "Nahrát",
+ "filesListUsedByColumn": "Používá",
+ "filesListUsedByNone": "Žádné",
+ "filesListUsedByRoleInput": "vstup",
+ "filesListUsedByRoleOutput": "výstup",
+ "filesListUsedByRoleError": "chyba",
+ "filesListSizeColumn": "Velikost",
+ "batchListProgressPartial": "(částečné)",
+ "batchListProviderColumn": "Poskytovatel",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "Ostatní",
+ "batchListTitle": "Dávky",
+ "batchListCount": "Počet dávek: {count}",
+ "batchListRemovingCompleted": "Odebírání…",
+ "batchListRemoveCompleted": "Odebrat dokončené",
+ "batchListTableStatus": "Stav",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "Koncový bod",
"batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableProgress": "Průběh",
+ "batchListTableCreated": "Vytvořeno",
+ "batchListTableExpires": "Vyprší",
+ "batchListLoading": "Načítání…",
+ "batchListEmpty": "Nebyly nalezeny žádné dávky",
+ "batchListValidating": "Ověřování…",
+ "batchStatusAll": "Všechny stavy",
+ "batchStatusInProgress": "Probíhá",
+ "batchStatusValidating": "Ověřování",
+ "batchStatusFinalizing": "Dokončování",
+ "batchStatusCompleted": "Dokončeno",
+ "batchStatusFailed": "Selhalo",
+ "batchStatusCancelled": "Zrušeno",
+ "batchStatusCancelling": "Rušení",
+ "batchStatusExpired": "Vypršelo",
+ "batchStatusCompletedWithFailures": "dokončeno s chybami",
+ "batchStatusInProgressWithFailures": "probíhá (s chybami)",
+ "batchStatusFinalizingWithFailures": "dokončování (s chybami)",
+ "batchStatusCancelledWithFailures": "zrušeno s chybami",
+ "batchStatusExpiredWithFailures": "vypršelo (částečně)",
+ "wizardCostEstimating": "Odhad nákladů…",
+ "wizardCostRequests": "Požadavky",
+ "wizardCostInputTok": "vstupní tokeny",
+ "wizardCostOutputTok": "výstupní tokeny",
+ "wizardCostWindow": "Okno",
+ "wizardDestinationSelectProvider": "Vyberte poskytovatele…",
+ "wizardDestinationSelectModel": "Vyberte model…",
+ "wizardDestinationConnectProvider": "Připojit poskytovatele",
+ "batchListBatchCreated": "Dávka {id} byla vytvořena — aktualizace seznamu…",
+ "batchListBatchCreatedDismiss": "Zavřít",
+ "batchListRefreshing": "Aktualizace…",
+ "batchListRefresh": "Aktualizovat",
+ "uploadFileModalRemove": "Odebrat",
+ "uploadFileModalUploading": "Nahrávání…",
+ "wizardInputReading": "Načítání souboru…",
+ "wizardInputReady": "Připraveno",
+ "wizardInputLargeFileLabel": "Velký soubor — ověření vzorku",
+ "wizardInputCsvJsonlReady": "Soubor JSONL byl vygenerován — připraven k ověření.",
+ "wizardInputLargeFileWarning": "Byl zjištěn velký soubor — ověření probíhá na vzorku (prvních 5 MB + posledních 100 KB). Úplné ověření proběhne na straně serveru.",
+ "wizardCostWindow24h": "24hodinové okno pro dokončení",
+ "wizardValidationFieldsOk": "povinná pole jsou platná",
+ "filesListDelete": "Smazat",
+ "filesListDownload": "Stáhnout",
+ "batchDetailActionCancel": "Zrušit dávku",
+ "batchDetailActionRetry": "Zopakovat neúspěšné požadavky",
+ "batchDetailCancelling": "Rušení…",
+ "batchDetailRetrying": "Příprava opakování…",
+ "batchDetailCancelConfirm": "Zrušit tuto dávku? Probíhající požadavky budou zastaveny.",
+ "batchActionCancelError": "Dávku se nepodařilo zrušit. Zkuste to znovu.",
+ "batchActionRetryError": "Neúspěšné požadavky se nepodařilo zopakovat. Zkuste to znovu.",
+ "batchConceptRetentionNote": "Výsledky a soubory s chybami jsou uchovávány po dobu 30 dnů (Anthropic: 29 dnů)",
"batchFilesSizeColumn": "Velikost",
"toggleNoAuthProvider": "Přepnout poskytovatele bez autentizace",
"loadingModels": "Načítání modelů…",
@@ -988,10 +988,14 @@
"disabled": "Zakázáno",
"featureFlagOmnirouteEmergencyFallbackDescription": "Směrovat požadavky s vyčerpaným rozpočtem na nouzového bezplatného záložního poskytovatele/model.",
"featureFlagArenaEloSyncEnabledDescription": "Povolit periodickou synchronizaci ELO z žebříčku Arena AI pro hodnocení inteligence modelů.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Generovat a vkládat souhrny konverzací, když kombinované směrování přepíná mezi modely. Vypnutím se přepnutí modelů budou zpracovávat nezávisle a zabrání se požadavkům na předání na pozadí u všech stávajících i budoucích kombinací.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Inzerujte claude/<provider>/<model> zrcadlové ID na /v1/models, aby seznam objevování modelů brány Claude Code zahrnoval modely, které nejsou Claude. Upozornění: při globálním povolení zdvojuje katalogové položky pro všechny klienty.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Hlavní přepínač pro aliasy brány no-think/<provider>/<model>. Zapnuto (výchozí): /v1/models uvádí variantu bez přemýšlení pro každý podporovaný model Claude schopný přemýšlení a id no-think/ odeslané v požadavku se převede zpět na skutečný model s potlačeným uvažováním. Vypnuto: žádné varianty nejsou uváděny a id no-think/ se považuje za jakékoli jiné neznámé id modelu. Přihlášení či odhlášení jednotlivých modelů prostřednictvím ModelSpec.noThinkingAlias se uplatňuje i tehdy, když je tato možnost zapnutá.",
"featureFlagChatVirtualLanesEnabledDescription": "Povolte adaptivní virtuální vstupní pruhy pro každého tenanta při odesílání poskytovatelům (#9654): špička jednoho tenanta už nezpůsobí 503 u jiného. Proměnná prostředí OMNIROUTE_CHAT_VIRTUAL_LANES má přednost před tímto nastavením na řídicím panelu; změny se projeví po restartu serveru.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Stránky poskytovatelů na řídicím panelu: zobrazí odznak Zdarma pouze u signálů, které poskytovatel respektuje — přestane používat heuristiku zobrazovaného názvu, nepravdivostní pole free a přípony :free u registrovaných poskytovatelů bez zdokumentované bezplatné úrovně. Vypnutí zachová původní pravidlo pro odznak.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Fondy proxy serverů a rotace opencode pro jednotlivé účty dočasně přestanou znovu nabízet proxy server, který právě selhal (odmítnutá sonda TCP nebo odpověď 429 přijatá přes tento server), a to na dobu v rámci procesu, která se při každém opakování zdvojnásobí až do stanoveného maxima. Stav proxy serveru se nezapisuje; pokud jsou odloženi všichni kandidáti, volba se nemění. Ve výchozím nastavení vypnuto: pořadí výběru přesně odpovídá prosté rotaci.",
+ "featureFlagProxyPoolEgressObservationDescription": "Zobrazit pod fondem proxy serverů na řídicím panelu, kolik pozorovaných odchozích IP adres obsluhovalo jeho členy za posledních 24 h, kolik připojení je použilo a jaký byl nejvyšší počet připojení zaznamenaný za jednou IP adresou. Pouze pro čtení, vypočítáváno z protokolu proxy serveru a nikdy nepoužíváno ke směrování. Ve výchozím nastavení vypnuto: editor fondu zůstává beze změny a trasa pozorování vrací null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Při kontrole stavu proxy serveru umožnit, aby sonda odmítnutá cílem (401/403/429: proxy server požadavek předal, ale cíl odmítl tuto odchozí IP adresu) vynulovala řadu po sobě jdoucích selhání proxy serveru stejně jako úspěšně obsloužená sonda. Ve výchozím nastavení vypnuto: odmítnutí zůstává neutrální a řadu zachovává. Odpověď 5xx zůstává v obou případech neprůkazná a odmítnutí nikdy neodebere, nezakáže ani znovu neaktivuje proxy server.",
"sidebar": {
"home": "Domov",
"dashboard": "Nástěnka",
@@ -1065,50 +1069,50 @@
"cliToolsShort": "Nástroje",
"cache": "Mezipaměť",
"cacheShort": "Mezipaměť",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "Dávkové úlohy",
+ "themeSystem": "Systém motivů",
+ "whitelabelingDesc": "Popis přizpůsobení značce",
+ "switchThemes": "Přepínání motivů",
+ "themeAccentDesc": "Popis barvy zvýraznění motivu",
+ "uploadFavicon": "Nahrát faviconu",
+ "themeDark": "Tmavý motiv",
+ "customLogoDesc": "Popis vlastního loga",
+ "sidebarVisibilityToggle": "Přepínač viditelnosti postranního panelu",
+ "themeAccent": "Barva zvýraznění motivu",
+ "resetFavicon": "Obnovit faviconu",
+ "whitelabeling": "Přizpůsobení značce",
+ "darkMode": "Tmavý režim",
+ "uploadLogo": "Nahrát logo",
+ "themeLight": "Světlý motiv",
+ "appName": "Název aplikace",
+ "appNameDesc": "Popis názvu aplikace",
+ "resetLogo": "Obnovit logo",
+ "customFavicon": "Vlastní favicon",
+ "hideHealthLogs": "Skrýt protokoly stavu",
+ "customLogo": "Vlastní logo",
+ "appearance": "Vzhled",
+ "themeSelectionAria": "Popisek ARIA pro výběr motivu",
+ "themeCreate": "Vytvořit motiv",
+ "customFaviconDesc": "Popis vlastní favicony",
+ "logoPreview": "Náhled loga",
+ "themeCustom": "Vlastní motiv",
+ "hideHealthLogsDesc": "Popis skrytí protokolů stavu",
+ "faviconPreview": "Náhled favicony",
+ "changelog": "Přehled změn",
+ "contextSection": "Kontext a mezipaměť",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Kombinace enginů",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Nastavení komprese",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Studio kombinací",
"combosLiveSubtitle": "Živá kaskáda směrování",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Vyloučení",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Živá kaskáda enginů",
"compressionExclusionsSubtitle": "Obcházení na základě modelu/koncového bodu",
"chaosConfigSubtitle": "Paralelní spouštění více modelů",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Směrování",
+ "protocolsSection": "Protokoly",
+ "agentsAiSection": "Agenti a AI",
+ "cacheContextSection": "Mezipaměť a kontext",
+ "analyticsSection": "Analytika",
+ "costsSection": "Náklady",
+ "monitoringSection": "Monitorování",
+ "auditSecuritySection": "Audit a zabezpečení",
+ "devtoolsSection": "Vývojářské nástroje",
+ "configurationSection": "Konfigurace",
+ "aiFeaturesSection": "Funkce AI",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Pluginy",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "Koncové body API",
+ "batchFiles": "Soubory",
+ "analyticsEvals": "Vyhodnocení",
+ "analyticsSearch": "Vyhledávání",
+ "analyticsUtilization": "Využití",
+ "analyticsComboHealth": "Stav kombinací",
+ "analyticsCompression": "Komprese",
+ "costsBudget": "Rozpočet",
"costsFreeTiers": "Rozpočet bezplatné úrovně",
"costsFreeTiersSubtitle": "Měsíční příděly bezplatných tokenů",
"freeProviderRankings": "Žebříčky bezplatných poskytovatelů",
"freeProviderRankingsSubtitle": "Nejlepší bezplatní poskytovatelé seřazení podle ELO skóre modelů",
"radar": "Radar katalog",
"radarSubtitle": "Bezplatný modelový katalog obohacený komunitou",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Sdílení kvót",
+ "costsPricing": "Ceny",
+ "logsProxy": "Protokoly proxy",
+ "logsConsole": "Konzole",
+ "logsActivity": "Aktivita",
+ "auditMcp": "Audit MCP",
"auditA2a": "Audit A2A",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Vzhled",
+ "settingsAi": "Nastavení AI",
+ "settingsSecurity": "Zabezpečení",
"settingsAccessTokens": "Přístupové tokeny",
"settingsFeatureFlags": "Příznaky funkcí",
"settingsCache": "Mezipaměť",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "Autorizace",
+ "settingsRouting": "Směrování",
+ "settingsResilience": "Odolnost",
"modelLockout": "Uzamčení modelů",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Pokročilé",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Kvóta poskytovatele",
+ "providerQuota": "Kvóta poskytovatele",
+ "runtime": "Běhové prostředí",
+ "consoleLogs": "Protokoly konzole",
+ "logsTimeline": "Časová osa",
"logsTimelineSubtitle": "Vizualizace časové osy požadavků",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Konverzace",
+ "conversationsSubtitle": "Vícekolové agentní konverzace",
+ "globalRouting": "Globální směrování",
+ "mitmProxy": "MITM proxy",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Agentní funkce",
+ "otherFeaturesSection": "Další funkce",
+ "compressionContextGroup": "Komprese kontextu",
+ "gamificationGroup": "Gamifikace",
+ "toolsGroup": "Nástroje",
+ "integrationsGroup": "Integrace",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
+ "costsParametersGroup": "Parametry nákladů",
"auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "batchGroup": "Dávkové zpracování",
+ "homeSubtitle": "Přehled řídicího panelu",
+ "providersSubtitle": "Správa poskytovatelů AI",
+ "quotaTrackerSubtitle": "Sledování limitů využití",
+ "providerQuotaSubtitle": "Sledování limitů využití poskytovatelů",
+ "runtimeSubtitle": "Odolnost a relace v reálném čase",
+ "contextCombosSubtitle": "Kombinace kompresních modulů",
+ "cliToolsSubtitle": "Konfigurace běhových prostředí CLI",
+ "agentsSubtitle": "Správa místních agentů",
+ "cloudAgentsSubtitle": "Správa cloudových agentů",
+ "apiEndpointsSubtitle": "Zpřístupnění vlastních koncových bodů",
+ "proxySubtitle": "Nastavení HTTP proxy",
+ "mitmProxySubtitle": "MITM zachytávání",
+ "oneProxySubtitle": "Veřejná proxy brána",
+ "leaderboard": "Žebříček",
+ "profile": "Profil",
+ "tokens": "Tokeny",
+ "gamificationAdmin": "Správa gamifikace",
+ "leaderboardSubtitle": "Pořadí a úspěchy",
+ "profileSubtitle": "Účet a předvolby",
+ "tokensSubtitle": "Využití tokenů a rozpočty",
+ "gamificationAdminSubtitle": "Monitorování anomálií a ochrana proti podvádění",
+ "usageSubtitle": "Statistiky provozu a využití",
+ "analyticsComboHealthSubtitle": "Spolehlivost kombinovaných cílů",
+ "analyticsUtilizationSubtitle": "Využití poskytovatelů",
+ "costsSubtitle": "Rozpis výdajů",
+ "cacheSubtitle": "Míry úspěšnosti mezipaměti",
+ "analyticsCompressionSubtitle": "Statistiky úspor tokenů",
+ "analyticsSearchSubtitle": "Analytika vyhledávacího nástroje",
+ "analyticsEvalsSubtitle": "Výsledky evaluační sady",
"providerStats": "Statistiky poskytovatelů",
"providerStatsSubtitle": "Metriky latence a výkonu",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Protokoly aplikace",
+ "logsProxySubtitle": "Protokoly provozu proxy",
+ "consoleLogsSubtitle": "Výstup konzole",
+ "logsActivitySubtitle": "Protokol aktivity uživatelů",
+ "healthSubtitle": "Kontrola stavu systému",
+ "costsPricingSubtitle": "Cenová pravidla pro jednotlivé modely",
+ "costsBudgetSubtitle": "Rozpočtové limity",
+ "costsQuotaShareSubtitle": "Sdílení kvót poskytovatelů mezi klíči",
+ "auditLogSubtitle": "Audit autorizace",
+ "auditMcpSubtitle": "Audit serveru MCP",
+ "auditA2aSubtitle": "Audit protokolu A2A",
+ "translatorSubtitle": "Převod formátu",
+ "playgroundSubtitle": "Testování promptů v reálném čase",
+ "searchToolsSubtitle": "Registr vyhledávacích nástrojů",
+ "memorySubtitle": "Trvalá paměť agenta",
+ "omniSkillsSubtitle": "Registr dovedností sandboxu",
+ "agentSkillsSubtitle": "Registr dovedností A2A",
+ "mcpSubtitle": "Ovládací prvky serveru MCP",
+ "a2aSubtitle": "Server protokolu A2A",
"pluginsSubtitle": "Tržiště a instalace pluginů",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Mediální soubory v mezipaměti",
+ "batchFilesSubtitle": "Soubory dávkového vstupu/výstupu",
+ "settingsSubtitle": "Všechna nastavení",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Motiv a rozvržení",
+ "settingsAiSubtitle": "Výchozí chování AI",
+ "globalRoutingSubtitle": "Globální pravidla směrování",
+ "settingsResilienceSubtitle": "Opakované pokusy a jističe",
+ "settingsAdvancedSubtitle": "Možnosti pro pokročilé uživatele",
+ "settingsSecuritySubtitle": "Ověřování a šifrování",
"settingsAccessTokensSubtitle": "CLI tokeny s omezeným rozsahem pro vzdálený režim",
"settingsFeatureFlagsSubtitle": "Přepínání možností systému",
"settingsCacheSubtitle": "Katalog modelů a mezipaměť odpovědí",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Postranní panel",
+ "settingsSidebarSubtitle": "Přizpůsobit rozvržení postranního panelu",
"settingsAuthzSubtitle": "Inventář tras a zásady obcházení",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Dokumentace",
+ "issuesSubtitle": "Nahlásit chybu",
+ "changelogSubtitle": "Poznámky k vydání",
"costsQuotaPlans": "Plány a kvóty",
"costsQuotaPlansSubtitle": "Konfigurovat plány podle poskytovatele",
"activity": "Aktivita",
@@ -1271,11 +1275,11 @@
"systemGroup": "Systém",
"costsOverview": "Přehled",
"costsOverviewSubtitle": "Konsolidovaná analýza nákladů",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Most agenta",
"agentBridgeSubtitle": "Zachytávat provoz agenta IDE",
"trafficInspector": "Inspektor provozu",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Kontrolujte provoz požadavků a odpovědí z vašich aplikací",
+ "trafficInspectorPurpose": "Podívejte se přesně, co vaše aplikace odesílá poskytovatelům AI a co od nich přijímá. Funguje s jakýmkoli klientem kompatibilním s OpenAI.",
"cliCode": "CLI kód",
"cliCodeSubtitle": "Nástroje pro kód odkazující na OmniRoute",
"cliAgents": "Agenti CLI",
@@ -1341,7 +1345,7 @@
"refresh": "Obnovit",
"loading": "Načítání webhooků...",
"never": "Nikdy",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {žádná selhání} one {# selhání} few {# selhání} other {# selhání}}",
"testWebhook": "Odeslat test",
"testSuccess": "Testovací webhook byl úspěšně odeslán.",
"testFailed": "Test webhooku se nezdařil.",
@@ -1457,7 +1461,7 @@
"eventTypePlaceholder": "Filtrujte podle akce nebo typu události",
"severity": "Závažnost",
"allSeverities": "Všechny závažnosti",
- "info": "Info",
+ "info": "Informace",
"warning": "Varování",
"critical": "Kritické",
"sourceIp": "Zdrojová IP",
@@ -1601,49 +1605,49 @@
"mediaDescription": "Generování obrázků, videí a hudby",
"themes": "Motivy",
"themesDescription": "Vyberte barevný motiv pro celý panel nástěnky",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "costsDescription": "Sledujte výdaje, analyzujte trendy a spravujte svůj rozpočet na AI napříč všemi poskytovateli",
+ "cacheDescription": "Sledujte efektivitu mezipaměti promptů poskytovatelů a místní opakované využití sémantických odpovědí.",
+ "limitsDescription": "Nastavte limity četnosti a kvóty pro jednotlivé klíče API a poskytovatele",
+ "runtimeDescription": "Sledování běhového prostředí v reálném čase — jističe, doby obnovení, blokování modelů, relace a upozornění na kvóty",
+ "apiManagerDescription": "Spravujte klíče API a řízení přístupu pro svou instanci OmniRoute",
+ "batchDescription": "Zpracovávejte velké objemy požadavků asynchronně pomocí dávkových volání API",
+ "contextCavemanDescription": "Komprese zpráv založená na pravidlech, jazykové balíčky, analytika a nastavení režimu výstupu.",
+ "contextRtkDescription": "Komprese zohledňující příkazy pro výstup nástrojů, terminálové protokoly a výsledky sestavení.",
+ "contextCombosDescription": "Definujte, jak se enginy kombinují pro různé scénáře směrování.",
+ "changelogDescription": "Mějte přehled o nejnovějších funkcích platformy a oznámeních.",
+ "agentsDescription": "Správa a konfigurace nástrojů AI agentů: Codex, Devin, Jules a vlastní agenti",
+ "cloudAgentsDescription": "Orchestrace cloudových AI agentů s živým sledováním úloh a schvalováním plánů",
+ "memoryDescription": "Trvalá konverzační paměť se sémantickým vyhledáváním a fulltextovým indexováním FTS5",
+ "skillsDescription": "Instalace a správa dovedností v sandboxu pro automatizované spouštění promptů a nástrojů",
+ "agentSkillsDescription": "Katalog dovedností připravených pro agenty s kopírováním URL jedním kliknutím pro integraci s AI klienty",
+ "translatorDescription": "Překlad a testování promptů napříč formáty API: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Interaktivní testování promptů s živými odpověďmi poskytovatelů a kontrolou formátu",
+ "searchToolsDescription": "Analýza vyhledávání, přehled podle poskytovatelů, míra zásahů mezipaměti a sledování nákladů",
+ "logsDescription": "Protokoly požadavků v reálném čase, trasování chyb a inspektor streamovaných událostí",
+ "auditDescription": "Auditní stopa pro zajištění souladu zahrnující používání klíčů API, volání nástrojů MCP a události zásad",
+ "webhooksDescription": "Konfigurace koncových bodů webhooků pro příjem oznámení o událostech v reálném čase",
+ "healthDescription": "Přehled stavu systému: poskytovatelé, jističe, limity požadavků a databáze",
+ "proxyDescription": "Konfigurace nastavení nadřazeného proxy serveru pro odchozí připojení k poskytovatelům",
+ "apiEndpointsDescription": "Správa vlastních konfigurací koncových bodů API a přepsání směrování",
+ "batchFilesDescription": "Procházení a správa výstupních souborů a výsledků dávkových úloh",
+ "analyticsEvalsDescription": "Výsledky hodnocení modelů a výkonnostní benchmarky",
+ "analyticsSearchDescription": "Analýza vyhledávacích dotazů, míra zásahů mezipaměti a sledování nákladů",
+ "analyticsUtilizationDescription": "Metriky využití poskytovatelů a plánování kapacity",
+ "analyticsComboHealthDescription": "Stav a výkon kombinovaných konfigurací směrování v reálném čase",
+ "analyticsCompressionDescription": "Analýza komprese kontextu a úspory tokenů",
+ "costsBudgetDescription": "Rozpočtové limity a upozornění na výdaje pro jednotlivé klíče API a poskytovatele",
+ "costsPricingDescription": "Vlastní konfigurace cen pro výpočty nákladů na tokeny",
+ "logsProxyDescription": "Protokoly požadavků nadřazeného proxy serveru a kontrola provozu",
+ "logsConsoleDescription": "Výstup aplikační konzole a ladicí protokoly",
+ "logsActivityDescription": "Auditní stopa akcí uživatelů a systémových událostí",
+ "auditMcpDescription": "Auditní stopa volání nástrojů MCP a záznamy o souladu",
"auditA2a": "Audit A2A",
"auditA2aDescription": "Auditní záznam provádění úloh A2A, přechody stavů a záznamy vyvolání dovedností",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Motiv, branding a vizuální přizpůsobení",
+ "settingsAiDescription": "Chování AI, rozpočty pro uvažování, vizuální funkce a nastavení paměti",
"settingsCacheDescription": "TTL pro položky mezipaměti katalogu modelů",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Nastavení ověřování, autorizace a řízení přístupu",
"featureFlags": "Příznaky funkcí",
"featureFlagsDescription": "Možnosti řídicího systému a experimentální funkce",
"featureFlagsActive": "{count} aktivní",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Vašemu vyhledávání neodpovídají žádné příznaky",
"featureFlagsSaved": "Vlajka aktualizována",
"featureFlagsError": "Aktualizace příznaku se nezdařila",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Pravidla směrování, aliasy modelů, výchozí hodnoty kombinací a nastavení degradace",
+ "settingsResilienceDescription": "Konfigurace jističe, opakování a záložních mechanismů",
+ "settingsAdvancedDescription": "Pokročilá pravidla datové části, limity požadavků a nastavení proxy API",
+ "mitmProxyDescription": "Konfigurace nastavení MITM proxy pro kontrolu provozu a ladění",
+ "oneProxyDescription": "Konfigurace nastavení 1Proxy pro pokročilé řetězení proxy serverů",
"omniSkillsDescription": "Instalujte a spravujte dovednosti sandboxu pro automatizované spouštění promptů a nástrojů"
},
"cloudSyncStatus": {
@@ -1704,7 +1708,7 @@
"console": "Konzole",
"logger": "Protokolovač",
"translator": "Překladač",
- "playground": "Playground",
+ "playground": "Testovací prostředí",
"add": "Přidat",
"edit": "Upravit",
"apiKeys": "Klíče API",
@@ -1720,7 +1724,7 @@
"analytics": "Analytika",
"costs": "Náklady",
"health": "Stav",
- "runtime": "Runtime",
+ "runtime": "Běhové prostředí",
"webhooks": "Webhooky",
"home": "Domů",
"activity": "Aktivita",
@@ -1758,7 +1762,7 @@
"discovery": "Průzkum",
"freeProviderRankings": "Žebříčky bezplatných poskytovatelů",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Nastavení",
"freeTiers": "Bezplatné tarify",
"gamification": "Gamifikace",
"leaderboard": "Žebříček",
@@ -1774,7 +1778,7 @@
"sidebar": "Postranní panel",
"tokens": "Tokeny",
"tools": "Nástroje",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Most agentů",
"trafficInspector": "Inspektor provozu",
"usage": "Využití",
"orchestration": "Orchestrace"
@@ -1808,7 +1812,7 @@
"reportIssue": "Nahlásit problém",
"activeError": "{active} aktivní · {errors} chyba",
"topologyLegendActive": "Aktivní",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Nedávné",
"topologyLegendError": "Chyba",
"oauthLabel": "OAuth",
"apiKeyLabel": "API Klíč",
@@ -1822,11 +1826,11 @@
"updateStarted": "Aktualizace začala...",
"reloadingPageAutomatically": "Automatické opětovné načítání stránky...",
"providerTopology": "Topologie poskytovatele",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Nedávné požadavky",
+ "recentRequestsEmpty": "Zatím žádné požadavky.",
+ "recentRequestsModel": "Model",
+ "recentRequestsTokens": "Vstup / výstup",
+ "recentRequestsWhen": "Kdy",
"downloadDmg": "Stáhnout DMG (macOS)",
"downloadDmgDescription": "Nová verze desktopové aplikace OmniRoute je k dispozici. Prosím, stáhněte a nainstalujte macOS DMG instalátor pro aktualizaci (aktuální: v{version}).",
"downloadExe": "Stáhnout EXE (Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "Poznámky k vydání",
"readMore": "Přečíst více",
"noAuthLabel": "Žádná autentizace",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Připravte se na směrování",
+ "readinessTitle": "Odešlete svůj první požadavek",
+ "readinessSubtitle": "Čtyři malé kroky. OmniRoute průběžně kontroluje připravenost.",
+ "readinessStep1": "Připojte poskytovatele",
+ "readinessStep2": "Nakonfigurujte ověřování koncového bodu",
+ "readinessStep3": "Zkopírujte svůj koncový bod",
+ "readinessStep4": "Odešlete testovací požadavek",
+ "readinessContinue": "Pokračovat v nastavení",
+ "readinessDismiss": "Prozatím skrýt"
},
"analytics": {
"title": "Analytika",
@@ -1963,7 +1967,7 @@
"period7D": "7D",
"period30D": "30D",
"period90D": "90D",
- "periodYTD": "YTD",
+ "periodYTD": "Od začátku roku",
"periodAll": "Vše",
"totalTokens": "Celkem tokenů",
"inputTokens": "Vstupní tokeny",
@@ -1996,13 +2000,13 @@
"sectionsAria": "Analytické sekce",
"utilizationDescription": "Trendy využití kvót poskytovatele a sledování limitů rychlosti",
"modelStatus": "Stav modelu",
- "modelStatusCooldown": "Cooldown",
+ "modelStatusCooldown": "Doba čekání",
"modelStatusUnavailable": "Není k dispozici",
"modelStatusError": "Chyba",
"comboHealth": "Zdraví Combo",
"comboHealthDescription": "Kvóta na úrovni kombinace, distribuce využití a metriky výkonu",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Analýza komprese",
+ "compressionAnalyticsDescription": "Analýza komprese — úspora tokenů, přehled režimů a statistiky poskytovatelů.",
"autoRoutingTotalAutoRequests": "Celkový počet automatických požadavků",
"autoRoutingAvgSelectionScore": "Prům. skóre výběru",
"autoRoutingExplorationRate": "Míra průzkumu",
@@ -2184,7 +2188,7 @@
"routeRuntimeScoreNow": "Aktuální skóre při běhu",
"routeWouldSelectNow": "Nyní by vybral",
"routeNoRecomputeCandidates": "Pro tento požadavek nelze přepočítat žádné hodnocení kandidátů combo.",
- "runtime": "Runtime",
+ "runtime": "Doba běhu",
"routeTopNow": "Nyní nejlepší",
"routeFetchLogsFailed": "Nepodařilo se načíst logy požadavků",
"routeExplainFailed": "Nepodařilo se vysvětlit trasu",
@@ -2203,10 +2207,10 @@
"model": "Model",
"account": "Účet",
"connection": "Připojení",
- "combo": "Combo",
+ "combo": "Kombinace",
"routeStep": "Krok",
"tokens": "Tokeny",
- "notAvailable": "n/a",
+ "notAvailable": "není k dispozici",
"routeTokenCounts": "{input} vstup · {output} výstup",
"routeEvidence": "Důkazy",
"routeFactors": "Faktory směrování",
@@ -2254,9 +2258,9 @@
"fullAccess": "Plný přístup",
"keyManagement": "Správa API Klíčů",
"keyManagementDesc": "Vytvářejte a spravujte API klíče pro ověřování požadavků na váš koncový bod",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Vaše aplikace odesílá požadavky prostřednictvím API klíče do OmniRoute",
+ "requestFlowYourApp": "Vaše aplikace",
+ "requestFlowApiKey": "API klíč",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Celkem Klíčů",
"restricted": "Omezený",
@@ -2297,14 +2301,14 @@
"keyCreatedNote": "Teď di zkopírujte a uložte tento klíč – už se vám nezobrazí.",
"done": "Hotovo",
"savePermissions": "Uložit oprávnění",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
+ "endpointRestrictions": "Povolené koncové body",
+ "allEndpointsAllowed": "Tento klíč má přístup ke všem koncovým bodům API.",
+ "endpointsRestricted": "Omezeno na {count} {count, plural, one {koncový bod} few {koncové body} other {koncových bodů}}.",
"autoResolve": "Auto-překlad",
"autoResolveDesc": "Automaticky přeložit nejednoznačné názvy modelů na nativní poskytovatele pro tento API klíč.",
"streamDefaultMode": "Výchozí kompatibilita streamování",
"streamDefaultModeDesc": "Řídí vynechané příznaky `stream` pro tento klíč. Režim JSON vrací nestreamované odpovědi, pokud klient explicitně nepožádá o SSE.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Zastaralé",
"streamDefaultJson": "Kompatibilní s JSON",
"streamDefaultBadge": "Výchozí JSON stream",
"keyActive": "Aktivní Klíč",
@@ -2361,7 +2365,7 @@
"regenerateConfirm": "Jste si jisti, že chcete znovu vygenerovat tento klíč API? Starý klíč bude okamžitě zneplatněn.",
"failedRegenerateKey": "Klíč API se nepodařilo znovu vytvořit",
"failedRegenerateKeyRetry": "Klíč API se nepodařilo znovu vytvořit. Zkuste to prosím znovu.",
- "model": "{count} model",
+ "model": "{count} {count, plural, one {model} few {modely} other {modelů}}",
"models": "{count} modelů",
"permissionsTitle": "Oprávnění: {name}",
"allowAllDesc": "Tento klíč umožňuje přístup ke všem dostupným modelům.",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Povolené kombinace",
"allCombosAllowed": "Tento klíč může použít jakoukoli kombinaci.",
"restrictedComboCount": "Omezeno na {count, plural, one {# kombinaci} few {# kombinace} other {# kombinací}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# uložená položka není} few {# uložené položky nejsou} other {# uložených položek není}} v tomto seznamu kombinací (například pravidla směrování) a {count, plural, one {bude zachována tak, jak je uložena} few {budou zachovány tak, jak jsou uloženy} other {budou zachovány tak, jak jsou uloženy}}.",
+ "preservedComboRuleHint": "Zachováno tak, jak je uloženo. Tato položka není kombinací ve výše uvedeném seznamu, takže ji lze změnit pouze prostřednictvím API.",
"apiManagerCustomRateLimits": "Vlastní limity sazeb",
"apiManagerCustomRateLimitsDesc": "Přepsat globální výchozí limity. Chcete-li použít výchozí hodnoty, ponechte prázdné.",
"apiManagerRateLimitRequestsPlaceholder": "Žádosti",
@@ -2389,7 +2393,7 @@
"apiManagerTimezonePlaceholder": "Amerika/Sao_Paulo",
"noLogPayloadPrivacy": "Soukromí dat bez přihlášení",
"bannedStatus": "Stav zákazu",
- "managementApiAccess": "Management API Access",
+ "managementApiAccess": "Přístup k rozhraní Management API",
"expirationDate": "Datum vypršení platnosti",
"managementAccess": "Přístup pro správu",
"allowedConnections": "Povolená připojení",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Umožňuje tomuto klíči ignorovat zásady limitů upstream poskytovatele/účtu během směrování. USD kvóty API klíče stále platí.",
"quotaPill": "KVÓTA",
"quotaModeOnly": "pouze-qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Výhradní pronájem",
+ "exclusiveLeaseNoticeTitle": "Výhradní pronájem",
+ "exclusiveLeaseNoticeDesc": "Tento API klíč má oprávnění k výhradnímu pronájmu pro směrování vyhrazených připojení.",
+ "allConnections": "Všechna připojení",
+ "onlySelectedConnections": "Pouze vybraná připojení",
+ "selectAtLeastOneConnection": "Vyberte alespoň jedno připojení nebo zvolte Všechna připojení.",
+ "allConnectionsDesc": "Tento klíč může používat libovolné aktivní připojení.",
+ "restrictedToConnections": "Omezeno na {count, plural, one {# připojení} few {# připojení} other {# připojení}}."
},
"auditLog": {
"title": "Audit Protokolů",
@@ -2462,7 +2466,7 @@
"videoDescription": "Vytvářejte videa pomocí AnimateDiff, Stable Video Diffusion přes ComfyUI nebo SD WebUI.",
"musicDescription": "Skládejte hudbu pomocí Stable Audio Open nebo MusicGen přes ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Vkládání",
"image": "Obrázek",
"imageToText": "Obrázek na text",
"tts": "Text na řeč",
@@ -2589,60 +2593,60 @@
"emptyState": "Odešlete vyhledávací dotaz pro zobrazení výsledků",
"copy": "Kopírovat",
"resetToDefault": "Obnovit výchozí",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Vyhledávání",
+ "tabScrape": "Extrakce",
+ "tabCompare": "Porovnání",
+ "modalitiesGuide": "Průvodce modalitami",
+ "searchConceptTitle": "Vyhledávání",
+ "searchConceptDesc": "Vyhledávání = načte seznam výsledků z webu (název, URL, úryvek, skóre relevance)",
+ "scrapeConceptTitle": "Extrakce",
+ "scrapeConceptDesc": "Extrakce = extrahuje úplný obsah URL (markdown, text nebo HTML)",
+ "compareConceptTitle": "Porovnání",
+ "compareConceptDesc": "Porovnat = spustí stejný dotaz souběžně u N poskytovatelů pro porovnání latence, nákladů a překryvu výsledků",
+ "rerankConceptTitle": "Přeřadit",
+ "rerankConceptDesc": "Přeřadit = změní pořadí výsledků pomocí LLM, aby se na základě dotazu zlepšila jejich relevance",
+ "autoConceptTitle": "Automaticky (nejlevnější)",
+ "autoConceptDesc": "Automaticky (nejlevnější) = automaticky vybere nejlevnějšího dostupného poskytovatele s nakonfigurovanými přihlašovacími údaji",
+ "providerCatalogTitle": "Katalog poskytovatelů",
+ "kindSearch": "Vyhledávání",
+ "kindFetch": "Načtení/scraping",
+ "statusConfigured": "Nakonfigurováno",
+ "statusMissing": "Bez přihlašovacích údajů",
+ "statusRateLimited": "Omezeno limitem požadavků",
+ "configureProvider": "Nakonfigurovat v Poskytovatelích",
+ "loadingProviders": "Načítání poskytovatelů…",
+ "failedToLoadProviders": "Poskytovatele se nepodařilo načíst",
+ "costPerQuery": "Cena/dotaz",
+ "freeQuota": "Bezplatná kvóta/měs.",
+ "scrapeUrl": "URL ke scrapování",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "Adresa URL je vyžadována",
"scrapeUrlInvalid": "Neplatná adresa URL — musí začínat na http:// nebo https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "Extrahovat",
+ "scrapeExtracting": "Extrahování…",
+ "scrapeFullPage": "Celá stránka",
+ "scrapeFormat": "Formát",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
"formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
+ "scrapePreview": "Náhled",
+ "scrapeRaw": "Nezpracovaná data",
+ "scrapeContentTruncated": "(zkráceno, zobrazit nezpracovaná data)",
"scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "scrapeProvider": "Poskytovatel",
+ "scrapeSize": "Velikost",
"scrapeEmptyState": "Zadejte adresu URL pro extrakci jejího obsahu",
"scrapeProvidersAvailable": "Dostupní poskytovatelé: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Porovnat",
+ "compareRunning": "Porovnávání…",
+ "autoProvider": "Automaticky (nejlevnější)",
+ "configuredStatus": "Nakonfigurováno",
+ "rateLimitedStatus": "Omezeno limitem požadavků",
+ "noCredential": "Bez přihlašovacích údajů",
+ "searchTypeLabel": "Typ",
+ "rerankModelLabel": "Model pro přeřazení",
+ "noneOption": "Žádný",
+ "size": "Velikost",
"configurationPane": "Panel konfigurace",
"configuration": "Konfigurace",
"status": "Stav",
@@ -2660,7 +2664,7 @@
"httpError": "Chyba {status}",
"failed": "Selhalo",
"requestFailed": "Požadavek selhal",
- "embedding": "Embedding",
+ "embedding": "Vektorová reprezentace",
"embeddingSample": "Ahoj, světe!",
"image": "Obrázek",
"imageSample": "Klidná krajina s horami při západu slunce",
@@ -2672,12 +2676,12 @@
"selectAudioFirst": "Nejprve prosím vyberte zvukový soubor.",
"speechToText": "Převod řeči na text",
"chooseFile": "Vybrat soubor…",
- "audioFormats25Mb": "mp3, wav, m4a, ogg, flac — max 25 MB",
+ "audioFormats25Mb": "mp3, wav, m4a, ogg, flac — max. 25 MB",
"textToSpeech": "Převod textu na řeč",
"ttsSample": "Dobrý den, toto je test převodu textu na řeč.",
"video": "Video",
"videoSample": "Časosběr mraků nad pohořím",
- "webFetch": "Web Fetch",
+ "webFetch": "Načtení webu",
"webSearchSample": "Co je OmniRoute AI gateway?",
"noActiveProviderDescription": "Žádný aktivní poskytovatel vyhledávání. Nakonfigurujte jej v sekci Poskytovatelé.",
"configureProviders": "Nakonfigurovat poskytovatele",
@@ -2704,7 +2708,7 @@
"classifierCompatLoadFailed": "Nepodařilo se načíst nastavení",
"classifierCompatMode": {
"off": "Vypnuto",
- "auto": "Auto",
+ "auto": "Automaticky",
"always": "Vždy"
},
"ccDiscoveryInfoButton": "Jak povolit objevování v Claude Code",
@@ -2904,7 +2908,7 @@
"continue": "Použijte, pokud spouštíte Continue v IDE a potřebujete přenosnou nastavení poskytovatele založenou na JSON.",
"opencode": "Použijte, pokud dáváte přednost spouštění agentů nativně v terminálu a skriptované automatizaci přes OpenCode.",
"kiro": "Použijte při integraci Kiro a centrálním řízení směrování modelů z OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Použijte, pokud chcete IDE zaměřené především na AI s modely Codeium/Windsurf směrovanými přes OmniRoute.",
"antigravity": "Použijte, pokud musí být provoz Antigravity/Kiro zachycen prostřednictvím MITM a směrován do OmniRoute.",
"copilot": "Použijte, pokud chcete uživatelské rozhraní ve stylu Copilot chat a zároveň vynutit klíče a pravidla směrování OmniRoute.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2928,8 +2932,8 @@
"kiro": "Amazon Kiro – AI poháněné IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "CLI programátorského asistenta Sourcegraph Amp",
+ "hermes": "Terminálový asistent Hermes AI",
"hermes-agent": "Hermes Agent (od Nousresearch) - pokročilá terminálová AI s podporou více modelů (delegování, vizuální funkce, komprese atd.)",
"custom": "Generický generátor konfigurace CLI nebo SDK kompatibilní s OpenAI",
"aider": "CLI pro párové programování s AI Aider se základní URL kompatibilní s OpenAI",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI autonomního programovacího agenta Open Interpreter",
"omp": "Terminálový programovací agent Oh My Pi",
"letta": "CLI agent Letta s trvalou pamětí a používáním nástrojů",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — sebezdokonalující se programovací prostředí RLM s podporou poskytovatelů kompatibilních s OpenAI",
"warp": "AI terminál Warp s podporou vlastních poskytovatelů",
"agent-deck": "Multiagentní orchestrátor Agent Deck",
"5dive": "5dive — vlastní flotila kódovacích agentů; jeden auth profil nasměruje všechny na OmniRoute"
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Vlastní CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Kategorie nástrojů",
"visibleToolsCount": "Počet dostupných nástrojů: {count}",
"customCliBuilderTitle": "Tvůrce CLI kompatibilní s OpenAI",
"customCliBuilderDescription": "Generujte env vars a fragmenty JSON pro jakékoli rozhraní CLI nebo SDK, které akceptují základní adresu URL, klíč API a ID modelu kompatibilní s OpenAI.",
@@ -3108,7 +3112,7 @@
"hermesRoleDefaultDesc": "Primární konverzační model",
"hermesRoleDelegation": "Delegování (subagenti)",
"hermesRoleDelegationDesc": "Model orchestrátoru a subagentů",
- "hermesRoleVision": "Vision",
+ "hermesRoleVision": "Obrazové vstupy",
"hermesRoleVisionDesc": "Porozumění obrázkům a snímkům obrazovky",
"hermesRoleCompression": "Komprese",
"hermesRoleCompressionDesc": "Komprese a sumarizace promptů",
@@ -3128,7 +3132,7 @@
"hermesRoleTtsAudioTagsDesc": "Generování audio tagu TTS",
"hermesRoleTriageSpecifier": "Specifikátor triáže",
"hermesRoleTriageSpecifierDesc": "Specifikace triáže problémů a PR",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Dekompozitor Kanbanu",
"hermesRoleKanbanDecomposerDesc": "Decompozice úkolů Kanban",
"hermesRoleProfileDescriber": "Popisovač profilu",
"hermesRoleProfileDescriberDesc": "Popis uživatelského profilu",
@@ -3136,7 +3140,7 @@
"hermesRoleGoalJudgeDesc": "Hodnocení dokončení cíle",
"hermesRoleCurator": "Kurátor",
"hermesRoleCuratorDesc": "Kurace dovedností a paměti",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Monitorování",
"hermesRoleMonitorDesc": "Sledování na pozadí",
"hermesRoleBackgroundReview": "Pozadí Kontroly",
"hermesRoleBackgroundReviewDesc": "Kontrola kódu na pozadí",
@@ -3155,7 +3159,7 @@
"hermesRolesWillUpdate": "{count, plural, one {# role bude aktualizována} few {# role budou aktualizovány} other {# rolí bude aktualizováno}}",
"hermesPreviewPath": "Náhled — zapíše se do ~/.hermes/config.yaml",
"hermesSaveDescription": "Uloží vybraný model pro každou roli do",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "Generátor konfigurace GitHub Copilot",
"copilotGeneratorDescriptionPrefix": "Generuje",
"copilotGeneratorDescriptionSuffix": "blok pro VS Code GitHub Copilot pomocí vzoru dodavatele Azure. Vyberte požadované modely a poté zkopírujte JSON do konfiguračního souboru.",
"copilotCompatibilityWarning": "Tato konfigurace využívá řešení Azure vendor pro vlastní seznamy modelů. Testováno s omniglyph. Toto je náhled a ve výchozím nastavení zůstává vypnutý, dokud nebude dokončeno end-to-end ověření.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profil komprese",
+ "profileDescription": "Profil představuje horní mez, nikoli dolní: přísnější profil nelze zmírnit přepsáním pro jednotlivý krok. Změřeno na této kódové základně: s profilem Coding-safe nebo Balanced se v relaci, ve které se dosud nenashromáždila historie, nic nekomprimuje, protože oba profily zvyšují minimální počet znaků a ponechávají systémovou výzvu, schémata nástrojů a výsledky nástrojů v původní podobě.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressive (výchozí)",
+ "description": "Zásady použité při měření publikovaných záznamů. Převádí systémovou výzvu, dokumentaci nástrojů a obsáhlou historii na obrázky."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Vyvážený",
+ "description": "Ponechává aktuální stav v původní podobě a chrání posledních 8 tahů; slučuje pouze starší uzavřenou historii."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Bezpečný pro kódování",
+ "description": "Ponechává autoritativní pokyny, schémata nástrojů a aktuální výstup nástrojů v původní podobě a chrání posledních 12 tahů. Dokud se v relaci nenashromáždí historie, nic nekomprimuje."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Průchozí",
+ "description": "Směruje bez transformace. Engine se přeskočí a požadavek se předá beze změny."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Vyberte profil komprese OmniGlyph",
"saved": "Uloženo.",
"saveFailed": "Nepodařilo se uložit.",
"enableAria": "Povolit engine OmniGlyph",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Komprese zpráv založená na pravidlech, jazykové balíčky, analytika a ovládání režimu výstupu.",
"advancedConfig": "Pokročilá konfigurace",
"advancedConfigDesc": "Jemné doladění kompresního chování",
"aggressiveSettings": "Agresivní nastavení",
"aggressiveSettingsDesc": "Maximální komprese s potenciálními kompromisy v kvalitě",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Požadavky",
+ "tokensSaved": "Ušetřené tokeny",
+ "savingsPercent": "Úspora v %",
+ "avgLatency": "Průměrná latence",
+ "languagePacks": "Jazykové balíčky",
+ "languagePacksDesc": "Povolte pravidla komprese pro konkrétní jazyky.",
"labelAutoTrigger": "Automatická komprimace při překročení kontextu",
"labelCompressionRate": "Pevnost v tlaku",
"labelMaxTokens": "Cílové tokeny na zprávu",
"labelMinLength": "Minimální délka zprávy",
"labelMinSavings": "Minimální počet tokenů k uložení",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Povoleno",
+ "autoDetect": "Automaticky rozpoznat jazyk",
+ "rulesCount": "{count} pravidel",
"inputCompressionTitle": "Komprese vstupu",
"inputCompressionDesc": "Přepíše historii chatu kratší formulací. Snižuje počet vstupních tokenů o ~50 %.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Analytika komprese",
+ "noAnalytics": "Zatím nejsou k dispozici žádné analytické údaje o kompresi.",
"masterDisabledWarning": "Hlavní přepínač Token Saver je VYPNUTÝ — tato nastavení neovlivní požadavky, dokud jej nezapnete v Nastavení komprese nebo nezměníte zde.",
"outputMode": "Výstupní režim",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Režim výstupu",
"quickSettings": "Rychlé nastavení",
"quickSettingsDesc": "Základní nastavení komprese pro začátek",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Automatické vynechání při dostatečné srozumitelnosti",
+ "bypassConditions": "Podmínky vynechání",
"bypassConditionsList": "zabezpečení, nevratné, objasnění, citlivá na objednávku",
"simpleMode": "Jednoduché",
"advancedMode": "Pokročilé",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra nastavení",
"ultraSettingsDesc": "Sémantická komprese poháněná SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Odpovídej stručně. Zachovej technické termíny, kód, chyby, URL a identifikátory.",
+ "full": "Odpovídej stroze a úsporně. Zachovej veškerý technický obsah.",
+ "ultra": "Odpovídej maximálně stroze a používej běžné technické zkratky. Zachovej přesné symboly."
}
},
"translator": {
@@ -9153,7 +9164,7 @@
"loadToolSample": "Načíst vzorek volání nástroje",
"transformToResponses": "Transformace na odpovědi",
"rawChatSseInput": "Raw chat dokončení SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Transformované SSE Responses API",
"noResultsYet": "Zatím žádné výsledky",
"transformedEvents": "Transformované události",
"uniqueEventTypes": "Jedinečné typy událostí",
@@ -9166,7 +9177,7 @@
"comboRouted": "Combo směrováno",
"uniqueEndpoints": "Jedinečné koncové body",
"routeDetails": "Podrobnosti trasy",
- "comboBadge": "Combo",
+ "comboBadge": "Kombinace",
"routeEndpointLabel": "Koncový bod",
"routeConnectionLabel": "Připojení",
"scenarioVision": "Vize (pochopení obrazu)",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Vaše aplikace mluví \"jazykem\" jednoho API. Překladač ji převede pro použití s jiným poskytovatelem.",
"conceptDiagramAppLabel": "Vaše aplikace",
"conceptDiagramSourceLabel": "Zdrojový formát",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (centrum)",
"conceptDiagramTargetLabel": "Cílový poskytovatel",
"conceptDiagramExampleApp": "např. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Vložte požadavek JSON; formát je detekován automaticky.",
"advancedPipelineTitle": "Zprostředkující pipeline OpenAI",
"advancedPipelineSubtitle": "Vizualizujte jednotlivé kroky překladu (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Transformátor streamu (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Převede Chat Completions SSE na Responses API.",
"advancedTestBenchTitle": "Test Bench (8 scénářů)",
"advancedTestBenchSubtitle": "Spustí všechny scénáře a nahlásí úspěch/neúspěch + % kompatibility.",
@@ -9263,7 +9274,7 @@
"grokAutoTopUpDisabled": "Zakázáno",
"grokAutoTopUpAt": "na",
"grokAutoTopUpAdd": "přidat",
- "grokAutoTopUpMax": "max",
+ "grokAutoTopUpMax": "max.",
"grokAutoTopUpMonth": "měsíc",
"grokAdditionalCredits": "Další kredity",
"kiloAccountBalance": "Zůstatek na účtu",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Zbývá",
"kiloPassRenews": "Obnovuje se za {count} dní",
"kiloPassUsageLabel": "Využití za tento měsíc",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Kredity za využití navíc",
+ "kimiExtraUsage": "Využití navíc",
+ "kimiExtraUsageEnabled": "Povoleno",
+ "kimiExtraUsageDisabled": "Zakázáno",
+ "kimiExtraUsageFrozen": "Zmrazeno",
+ "kimiExtraUsageUnavailable": "Nedostupné",
+ "kimiMonthlyUsed": "Využito tento měsíc",
+ "kimiMonthlyLimit": "Měsíční limit",
+ "kimiMonthlyLimitUnlimited": "Neomezeně",
+ "kimiAdditionalCredits": "Dodatečné kredity",
"loggerTab": "Zapisovač",
"proxyTab": "Proxy",
"budgetManagement": "Správa rozpočtu",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Odpovědi jsou porovnávány s očekávanými kritérii. Pro každý případ se zobrazí výsledky s metrikami latence a podrobnou zpětnou vazbou.",
"evalsStrategyContainsLabel": "Obsahuje",
"evalsStrategyExactLabel": "Přesná shoda",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Regulární výraz",
"evalsStrategyCustomLabel": "Vlastní logika",
"evalsStrategyContainsDescription": "Kontroluje, zda výstup LLM obsahuje očekávaný podřetězec.",
"evalsStrategyExactDescription": "Kontroluje, zda výstup LLM přesně odpovídá očekávané hodnotě.",
@@ -9369,7 +9380,7 @@
"runAllSuites": "Spustit vše",
"runAllRunning": "Vše běží...",
"runAllProgress": "Běží {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# sada selhala} few {# sady selhaly} other {# sad selhalo}}",
"runAllCompleted": "Proběhlo {suites} sad – {passed} úspěšně, {failed} se nezdařilo",
"runAllCompletedWithFailures": "Ran {completed} apartmá; {failedSuites} se nepodařilo dokončit",
"runningProgress": "Běží {current}/{total}...",
@@ -9381,7 +9392,7 @@
"resultFailed": "Nepodařilo se",
"expandResult": "Rozbalte podrobnosti o výsledku",
"collapseResult": "Sbalit podrobnosti výsledku",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "Obsahuje: „{term}“",
"detailsRegex": "Regex: {pattern}",
"detailsExpected": "Očekáváno: \"{expected}\"",
"expectedOutputLabel": "Očekávaný výstup",
@@ -9461,7 +9472,7 @@
"tierPro": "Pro",
"tierPlus": "Plus",
"tierFree": "Zdarma",
- "tierLite": "Lite",
+ "tierLite": "Odlehčený",
"tierUnknown": "Neznámý",
"statTotal": "Celkem",
"statCritical": "Kritické",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "Úroveň",
"purchaseAll": "Vše",
"purchaseOauthSub": "Předplatné",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth zdarma",
"purchaseApiKey": "API klíč",
"creditsLabel": "Kredity",
"creditBalanceHint": "Zbývající zůstatek",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Uplatnit kredit",
"resetCreditRedeemed": "Reset uplatněn",
"resetCreditRedeemFailed": "Nepodařilo se uplatnit resetovací kredit",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Sadu se nepodařilo uložit",
"clone": "Klonovat",
"exportSuite": "Exportovat",
"importSuite": "Importovat",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Neplatný JSON sady eval",
"suiteBuilderCloneSuffix": "kopírovat",
"suiteBuilderImportedSuite": "Importovaná sada",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Přehled výsledků",
+ "evalApiKey": "Klíč API",
+ "scorecardPassRate": "Úspěšnost",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "actualOutputLabel": "Skutečný výstup",
+ "evalTargetHint": "Vyberte model nebo kombinaci k vyhodnocení.",
+ "suiteBuilderDeleted": "Sada byla úspěšně odstraněna",
+ "suiteBuilderCaseCardHint": "Definujte vstupní prompt a kritéria očekávaného výstupu.",
+ "nextResetUtc": "Další obnovení (UTC)",
+ "scorecardHint": "Souhrnné míry úspěšnosti napříč všemi hodnoticími sadami.",
+ "suiteLatestRunsHint": "Nejnovější běhy vyhodnocení této sady.",
+ "saving": "Ukládání",
+ "suiteBuilderCaseModelLabel": "Model (volitelné)",
+ "evalControlsTitle": "Ovládací prvky vyhodnocení",
+ "suiteBuilderEditTitle": "Upravit hodnoticí sadu",
+ "suiteBuilderCaseStrategyLabel": "Strategie validace",
+ "notifySelectDifferentCompareTarget": "Pro porovnání vyberte jiný cíl",
+ "recentRunsHint": "Zobrazují se nejnovější běhy vyhodnocení. Kliknutím na běh zobrazíte podrobné výsledky.",
+ "evalCompareHint": "Volitelně porovnejte výsledky s druhým cílem.",
+ "suiteBuilderCaseInvalid": "Tento případ obsahuje chyby validace. Před uložením je opravte.",
+ "historyEmpty": "Zatím žádná historie vyhodnocení",
+ "suiteBuilderUpdated": "Sada byla úspěšně aktualizována",
+ "resetInterval": "Obnovit interval",
+ "suiteBuilderCreateTitle": "Vytvořit sadu vyhodnocení",
+ "activePeriodSpend": "Útrata v aktivním období",
+ "evalApiKeyHint": "Vyberte klíč API, který se použije pro požadavky na vyhodnocení.",
+ "evalCompareOptional": "Porovnat (volitelné)",
+ "suiteBuilderDeleteFailed": "Sadu se nepodařilo odstranit",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Volitelné systémové pokyny...",
+ "scorecardCases": "Případy",
+ "runCompletedWithScore": "Vyhodnocení dokončeno — úspěšnost {score} %",
+ "suiteBuilderCustomBadge": "Vlastní",
+ "targetSuiteDefaults": "Výchozí nastavení sady",
+ "suiteBuilderDeleteConfirm": "Opravdu chcete tuto sadu odstranit? Tuto akci nelze vrátit zpět.",
+ "suiteBuilderNameLabel": "Název sady",
+ "scorecardSuites": "Sady",
+ "evalCompareTarget": "Cíl porovnání",
+ "suiteBuilderCaseModelPlaceholder": "např. gpt-4o-mini",
+ "evalControlsHint": "Nakonfigurujte cíl vyhodnocení a klíč API a poté spusťte sady, abyste ověřili kvalitu modelu.",
+ "recentRunsTitle": "Nedávná spuštění",
+ "suiteBuilderCaseSystemPromptLabel": "Systémová výzva",
+ "suiteBuilderCaseExpectedPlaceholder": "např. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "např. def Fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Vložte přesnou očekávanou odpověď",
"suiteBuilderCaseExpectedPlaceholderRegex": "např. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Použijte regulární výraz JavaScriptu bez zalamování lomítek.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "např. Sada kvality kódu",
+ "suiteBuilderAddCase": "Přidat případ",
+ "cancel": "Zrušit",
+ "evalTarget": "Cíl",
+ "suiteBuilderCaseNameLabel": "Název případu",
+ "weeklyLimitUsd": "Týdenní limit (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "např. Napište funkci pro výpočet Fibonacciho posloupnosti v Pythonu",
+ "suiteBuilderNameRequired": "Název sady je povinný",
+ "suiteBuilderCaseUserPromptLabel": "Uživatelská výzva",
+ "daily": "Denně",
+ "resultErrorLabel": "Chyba",
+ "suiteBuilderBuiltInBadge": "Vestavěné",
+ "suiteBuilderCaseCardTitle": "Testovací případ",
"suiteBuilderDuplicateCase": "Duplicitní",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
+ "weeklyLimitPlaceholder": "např. 50.00",
+ "suiteBuilderCaseTagsHint": "Značky oddělené čárkami pro uspořádání testovacích případů.",
+ "notifyEvalRunFailedWithReason": "Vyhodnocení se nezdařilo: {reason}",
+ "weekly": "Týdně",
+ "runEvalRunning": "Probíhá vyhodnocení...",
+ "delete": "Smazat",
+ "resetTimeUtc": "Čas resetování (UTC)",
+ "evalApiKeyAuto": "Automaticky (použít výchozí)",
+ "suiteBuilderDescriptionPlaceholder": "Volitelný popis toho, co tato sada testuje...",
+ "targetComparisonTitle": "Porovnání cílů",
+ "save": "Uložit",
+ "suiteBuilderCreated": "Sada byla úspěšně vytvořena",
+ "suiteLatestRuns": "Nejnovější spuštění",
+ "suiteBuilderCaseExpectedLabel": "Očekávaná hodnota",
+ "historyLatency": "Latence",
+ "suiteBuilderCaseTagsPlaceholder": "např. coding, python",
+ "targetTypeCombo": "Kombinace",
+ "scorecardPassed": "Úspěšné",
+ "suiteBuilderCaseTagsLabel": "Štítky",
+ "suiteBuilderNewSuite": "Nová sada",
+ "notifyEvalLoadFailed": "Nepodařilo se načíst data vyhodnocení",
+ "notConfigured": "Nenakonfigurováno",
+ "suiteBuilderCaseNamePlaceholder": "např. test Fibonacciho posloupnosti v Pythonu",
"intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "suiteBuilderCreateAction": "Vytvořit sadu",
+ "suiteBuilderCasesHint": "Každý případ odešle prompt a ověří odpověď.",
+ "suiteBuilderUpdatedAt": "Aktualizováno",
+ "errorBadge": "Chyba",
+ "suiteBuilderCasesTitle": "Testovací případy",
+ "edit": "Upravit",
+ "monthly": "Měsíčně",
+ "suiteBuilderCasesRequired": "Je vyžadován alespoň jeden testovací případ",
+ "weeklyLimitSummary": "Souhrn týdenního rozpočtového limitu",
+ "suiteBuilderDescriptionLabel": "Popis",
+ "targetComparisonHint": "Porovnání výsledků vyhodnocení mezi cíli vedle sebe.",
+ "compareCompletedWithScore": "Porovnání dokončeno — míra úspěšnosti {score} %",
+ "staleQuotaTooltip": "Poslední aktualizace selhala — zobrazují se data z mezipaměti",
"quotaThresholdLabel": "Zbývá min",
"quotaCutoffsColumnHelp": "Zastavit požadavky, když zbývající kvóta klesne na toto procento nebo níže.",
"quotaCutoffsButtonDefault": "Výchozí",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Systémové metriky",
"memory": "Paměť",
- "memoryShort": "mem",
+ "memoryShort": "paměť",
"uptime": "Dostupnost",
"ariaLabel": "Sledování systému",
"title": "Systémový Monitor",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Čekám na Antigravity autorizaci...",
"waitingForQoderAuthorization": "Čekám na Qoder autorizaci...",
"exchangingCodeForTokens": "Vyměňuji kód za tokeny...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Nekompatibilní verze Node.js",
+ "nodeIncompatibleDesc": "Používáte Node.js {version}, která nesplňuje zásady OmniRoute pro podporované zabezpečené běhové prostředí. Použijte opravenou verzi Node.js 20.x nebo 22.x LTS.",
+ "nodeIncompatibleFixLabel": "Řešení: nainstalujte opravenou verzi Node.js 22 LTS",
+ "nodeIncompatibleHint": "OmniRoute vyžaduje Node.js 22.22.2+ (22.x LTS) nebo 24.0.0+ (24.x LTS). Doporučuje se Node 24 LTS.",
"resetViaAppDataTitle": "Obnovit přes data aplikace",
"resetViaAppDataDescription": "Odstraňte soubor nastavení z adresáře dat aplikace pro resetování vašeho hesla:",
"quitDesktopApp": "Úplně ukončete desktopovou aplikaci OmniRoute",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Použijte například prefix poskytovatele",
"deploySetupTitle": "Průvodce nastavením",
"deploySetupText": "Instalace krok za krokem, konfigurace prostředí a návod k prvnímu spuštění pro OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron pro počítače",
"deployElectronText": "Spusťte OmniRoute jako nativní desktopovou aplikaci na Windows, macOS a Linux.",
"deployDockerTitle": "Docker",
"deployDockerText": "Kontejnerové nasazení s Docker Compose; připravené pro produkční zásobníky a Kubernetes.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Nainstalujte OmniRoute jako progresivní webovou aplikaci do prohlížečů Android, iOS a stolních počítačů.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Spusťte OmniRoute v režimu bez grafického rozhraní na Androidu pomocí Termuxu. K ovládacímu panelu můžete přistupovat z mobilního prohlížeče.",
"featureRoutingTitle": "Směrování s více poskytovateli",
"featureRoutingText": "Směrujte požadavky k více než 30 AI poskytovatelům prostřednictvím jediného koncového bodu kompatibilního s OpenAI. Podporuje chat, responses, audio i obrazová API.",
"featureCombosTitle": "Kombinace a vyvažování",
@@ -10211,7 +10222,7 @@
"mcpToolsMemoryDesc": "Vyhledávejte, přidávejte a mažte trvalé záznamy konverzační paměti.",
"mcpToolsSkillsTitle": "Dovednosti",
"mcpToolsSkillsDesc": "Seznamte, povolte, spusťte a sledujte provádění vlastních dovedností.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "Automatická kombinace",
"featureAutoComboText": "Automaticky vytvářejte optimalizovaná komba na základě vašich připojených poskytovatelů, vzorců použití a možností modelu.",
"featureSearchTitle": "Vyhledávání na webu",
"featureSearchText": "Integrované vyhledávání na webu s 5 poskytovateli (Serper, Brave, Exa, Tavily, Perplexity) včetně analýzy a sledování nákladů.",
@@ -10221,7 +10232,7 @@
"featureSkillsText": "Rozšiřitelný systém dovedností s vestavěnými a vlastními dovednostmi, prováděním sandboxu, zachycováním požadavků a vkládáním kontextu.",
"featureAcpTitle": "Komunikace agentů",
"featureAcpText": "Registr Agent Communication Protocol (ACP) pro správu pracovních postupů mezi agenty a orchestraci nástrojů.",
- "protocolAcpTitle": "ACP (Agent Communication)",
+ "protocolAcpTitle": "ACP (komunikace agentů)",
"protocolAcpDesc": "Zaregistrujte a spravujte agenty prostřednictvím registru AKT pro komunikaci mezi agenty a sdílení nástrojů.",
"protocolAcpStep1": "Chcete-li zobrazit registrované agenty AKT, přejděte na Dashboard → Agents.",
"protocolAcpStep2": "Zaregistrujte nové agenty se schopnostmi a konfigurací koncových bodů.",
@@ -10247,7 +10258,7 @@
"nonTechUsersSubtitle": "Začněte rychle — není potřeba technické zázemí",
"techUsersTitle": "Pro technické uživatele",
"techUsersSubtitle": "Hluboké ponoření do architektury, API a vnitřností",
- "apiExplorerMetadataTitle": "API Explorer — OmniRoute Docs",
+ "apiExplorerMetadataTitle": "Průzkumník API — dokumentace OmniRoute",
"apiExplorerMetadataDescription": "Interaktivní API prozkoumávatel — vyzkoušejte koncové body OmniRoute naživo s odpověďmi v reálném čase",
"apiExplorerTitle": "API Průzkumník",
"apiExplorerDescription": "Vyzkoušejte živé koncové body OmniRoute. Vyberte koncový bod, nakonfigurujte svou žádost a sledujte odpověď v reálném čase.",
@@ -10442,14 +10453,14 @@
"connected": "Připojeno",
"notConnected": "Nepřipojeno",
"configure": "Konfigurovat",
- "settingsTitle": "Cloud Agent Settings",
- "settingsDesc": "Configure local preferences for cloud agents.",
- "settingEnableAgents": "Enable cloud agents",
- "settingEnableAgentsDesc": "Allow OmniRoute to orchestrate autonomous coding agents.",
- "settingAutoPR": "Auto-create PR",
- "settingAutoPRDesc": "When a task is completed, automatically create a Pull Request with the changes.",
- "settingRequireApproval": "Require plan approval",
- "settingRequireApprovalDesc": "Always wait for manual approval before an agent executes a proposed plan.",
+ "settingsTitle": "Nastavení cloudových agentů",
+ "settingsDesc": "Nakonfigurujte místní předvolby pro cloudové agenty.",
+ "settingEnableAgents": "Povolit cloudové agenty",
+ "settingEnableAgentsDesc": "Umožnit OmniRoute koordinovat autonomní programovací agenty.",
+ "settingAutoPR": "Automaticky vytvořit PR",
+ "settingAutoPRDesc": "Po dokončení úlohy automaticky vytvořit Pull Request s provedenými změnami.",
+ "settingRequireApproval": "Vyžadovat schválení plánu",
+ "settingRequireApprovalDesc": "Vždy počkat na ruční schválení, než agent provede navržený plán.",
"untitledTask": "Úkol bez názvu",
"created": "Vytvořeno",
"conversation": "Konverzace",
@@ -10566,14 +10577,14 @@
"unavailableDesc": "Nepodařilo se načíst statistiky mezipaměti. Ujistěte se, že server běží.",
"loadingCacheAria": "Načítání mezipaměti",
"promptCache": "Prompt mezipaměť (na straně poskytovatele)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
+ "semanticCache": "Sémantická mezipaměť",
+ "promptCacheSectionDesc": "Zobrazuje aktivitu ukládání promptů do mezipaměti na straně poskytovatele z historie využití, abyste viděli, kde je řízení mezipaměti aktivní a v jaké míře se vstupy opakovaně využívají.",
+ "promptTrendDesc": "Hodinový objem požadavků, pokrytí mezipamětí a objem čtení z mezipaměti za posledních 24 hodin.",
"cachedRequests": "Uložené požadavky",
- "cachedRequests24h": "Cached Requests (24h)",
+ "cachedRequests24h": "Požadavky uložené v mezipaměti (24 h)",
"cacheHitRate": "Míra úspěšnosti mezipaměti",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "cacheRate": "Míra využití mezipaměti",
+ "cacheRateDesc": "z celkového počtu požadavků",
"cachedTokens": "Tokeny v mezipaměti",
"cacheCreationTokens": "Tokeny vytvoření mezipaměti",
"cacheMetrics": "Metriky mezipaměti promptů",
@@ -10583,12 +10594,12 @@
"cacheReuseRatio": "Poměr opětovného použití",
"cacheReuseRatioDesc": "Tokeny v mezipaměti / Celkem vstupních tokenů",
"estCostSaved": "Odhadovaná úspora nákladů",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
+ "lastUpdated": "Naposledy aktualizováno",
+ "hoursTracked": "sledovaných hodin",
+ "busiestHour": "Nejvytíženější hodina",
+ "peakCacheRate": "Nejvyšší míra využití mezipaměti",
+ "trendHour": "Hodina",
+ "activityVolume": "Aktivita",
"requestsShort": "pož.",
"inputShort": "Vstup",
"cachedShort": "V mezipaměti",
@@ -10596,7 +10607,7 @@
"resetting": "Resetuji...",
"resetMetrics": "Resetovat metriky",
"byProvider": "Rozpis podle poskytovatele",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "providerCacheRateDesc": "Každý poskytovatel uvádí celkový počet vstupních tokenů, tokenů načtených z mezipaměti a tokenů zapsaných do mezipaměti, abyste mohli ověřit poměr opakovaného využití vůči hrubým součtům.",
"provider": "Provider",
"requests": "Požadavky",
"inputTokens": "Vstupní tokeny",
@@ -10609,16 +10620,16 @@
"tableProvider": "Poskytovatel",
"tableModel": "Model",
"performanceTitle": "Výkon",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
+ "semanticCacheSectionDesc": "Vlastní deterministická mezipaměť odpovědí OmniRoute. Je-li povolena, lze opakované požadavky bez streamování s temperature=0 obsloužit lokálně bez kontaktování nadřazeného poskytovatele.",
+ "semanticCacheDisabledDesc": "Sémantická mezipaměť je zakázána. OmniRoute nebude lokálně opakovaně používat odpovědi, dokud ji znovu nezapnete v Nastavení.",
+ "semanticEntriesDesc": "Trvalé záznamy sémantické mezipaměti aktuálně uložené v SQLite. Aktivita mezipaměti promptů na straně poskytovatele zde není uvedena.",
"searchEntries": "Hledat položky...",
"search": "Hledat",
"loading": "Načítám...",
- "entriesLoadError": "Failed to load semantic cache entries.",
+ "entriesLoadError": "Záznamy sémantické mezipaměti se nepodařilo načíst.",
"noEntries": "Nebyly nalezeny žádné položky mezipaměti",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
+ "noPromptCacheData": "Dosud nebyla zaznamenána žádná aktivita mezipaměti promptů na straně poskytovatele.",
+ "noTrendData": "Za posledních 24 hodin nebyla zaznamenána žádná aktivita mezipaměti promptů.",
"signature": "Signatura",
"model": "Model",
"created": "Vytvořeno",
@@ -10627,9 +10638,9 @@
"deduplicatedRequests": "Deduplikované požadavky",
"savedCalls": "Uložená API volání",
"totalProcessed": "Celkem zpracováno",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
- "reasoningCache": "Reasoning Replay",
+ "disabled": "Zakázáno",
+ "totalRequests": "Celkový počet požadavků",
+ "reasoningCache": "Opakování uvažování",
"reasoningCacheDesc": "Zachovává modelové myšlení pro toky vyvolání víceotáčkového nástroje",
"reasoningEntries": "Aktivní záznamy",
"reasoningReplayRate": "Rychlost přehrávání",
@@ -10670,11 +10681,11 @@
"proxyConfigModal": {
"levelGlobal": "Globální",
"levelProvider": "Poskytovatel",
- "levelCombo": "Combo",
+ "levelCombo": "Kombinace",
"levelKey": "klíč",
"levelDirect": "Přímé (bez proxy)",
"titleGlobal": "Globální konfigurace proxy",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "Proxy {level} — {label}",
"loading": "Načítání konfigurace proxy...",
"inheritingFrom": "Dědění od",
"source": "Zdroj",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "Vložte existující API klíč Devin z ověřené relace Devin. Dostupnost exportu klíče a kroky se liší podle verze a účtu Devin.",
"devinPasteDescription": "Zadejte svůj WINDSURF_API_KEY (získaný pomocí `devin auth login`, nebo prostřednictvím příkazu \"Windsurf: Poskytnout Auth Token\" v IDE Windsurf).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json pro Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "API Klíč / Token",
"saving": "Ukládání…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Připojte kurzorové IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Přihlásit se pomocí Cursoru",
+ "tabImport": "Importovat token",
+ "loginDescription": "Otevře přihlášení k Cursoru v prohlížeči. Funguje v Dockeru — potvrďte přihlášení v prohlížeči hostitelského systému a poté se vraťte sem.",
+ "loginWithCursor": "Přihlásit se pomocí Cursoru",
+ "startingLogin": "Spouštění…",
+ "waitingApproval": "Čeká se na schválení přihlášení k Cursoru…",
+ "openUrlHint": "Pokud se prohlížeč neotevřel:",
+ "openLoginLink": "Otevřít přihlašovací stránku",
+ "cancelLogin": "Zrušit přihlášení",
"autoDetecting": "Automatická detekce tokenů...",
"readingFromCursor": "Čtení z Cursor IDE nebo kurzorového agenta",
"tokensAutoDetected": "Tokeny byly úspěšně automaticky detekovány z Cursor IDE!",
"cursorNotDetected": "IDE kurzoru nebylo zjištěno. Vložte prosím svůj token ručně.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Používáte Docker? Upřednostněte přihlášení pomocí Cursoru. Automatický import z IDE a cursor-agent obvykle nejsou uvnitř kontejneru dostupné. Viz docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Přístupový token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Obnovovací token",
+ "refreshTokenPlaceholder": "Volitelné — umožňuje automatické obnovování tokenu",
"required": "*",
"accessTokenPlaceholder": "Přístupový token se automaticky vyplní...",
"machineId": "ID stroje",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Automatická detekce tokenů se nezdařila",
"errorEnterToken": "Zadejte přístupový token",
"errorImportFailed": "Import se nezdařil",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Přihlášení k Cursoru se nepodařilo spustit",
+ "errorLoginPoll": "Přihlášení k Cursoru se nezdařilo",
+ "errorLoginTimeout": "Časový limit přihlášení k Cursoru vypršel — zkuste to znovu"
},
"pricingModal": {
"title": "Konfigurace cen",
@@ -10839,9 +10850,9 @@
"selectProxy": "Vybrat {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importovat starší data",
+ "bulkAssign": "Hromadně přiřadit",
+ "addProxy": "Přidat proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,15 +10861,15 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Otestovat",
+ "edit": "Upravit",
+ "delete": "Odstranit",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Typ",
"labelFamily": "Rodina IP",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automaticky (dual-stack)",
"familyIpv4": "Pouze IPv4",
"familyIpv6": "Pouze IPv6",
"familyHint": "Rodina odchozích adres. Volba Auto zachová dual-stack; IPv4/IPv6 připne tuto proxy k dané rodině (zabraňuje úniku v4 pod proxy typu pouze IPv6).",
@@ -10866,7 +10877,7 @@
"labelPort": "Port",
"labelUsername": "Uživatelské jméno",
"labelPassword": "Heslo",
- "labelRegion": "Region",
+ "labelRegion": "Oblast",
"labelStatus": "Stav",
"labelNotes": "Poznámky",
"usernamePlaceholderEdit": "Chcete-li zachovat aktuální uživatelské jméno, ponechte prázdné",
@@ -10877,13 +10888,13 @@
"save": "Uložit",
"bulkModalTitle": "Hromadné přiřazení proxy",
"bulkLabelScope": "Rozsah",
- "bulkLabelProxy": "Proxy",
+ "bulkLabelProxy": "Proxy server",
"bulkClearAssignment": "(Vymazat zadání)",
"bulkLabelScopeIds": "ID rozsahu (oddělené čárkou nebo novým řádkem)",
"bulkScopeIdsPlaceholder": "poskytovatel-openai,poskytovatel-antropický",
"bulkApply": "Použít",
"labelScope": "Rozsah",
- "labelProxy": "Proxy",
+ "labelProxy": "Proxy server",
"scopeGlobal": "globální",
"scopeProvider": "poskytovatel",
"scopeAccount": "účet",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Selhalo",
"successRate": "{rate} % úspěšnosti",
"avgLatency": "průměr {latency} ms",
"assignmentsCount": "{count} úkolů",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Opravit",
"relayAuthMissing": "chybí autorizace",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Strategie rotace",
"poolStrategyHint": "round-robin cyklí členy v pořadí; random vybírá rovnoměrně; sticky drží jednoho člena po určitou dobu; latency-optimized vybírá nejrychlejšího na základě protokolů.",
"poolStrategyFailed": "Nepodařilo se aktualizovat strategii rotace",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Cyklicky",
"strategyRandom": "Náhodně",
- "strategySticky": "Sticky",
+ "strategySticky": "Připnuté",
"strategyLatency": "Optimalizováno podle latence",
"poolMembersLabel": "Členové poolu ({count})",
"poolNoMembers": "V tomto poolu zatím nejsou žádné proxy.",
+ "poolEgressObservation": "Použito {exits, plural, one {# výstup} other {# výstupů}} prostřednictvím {connections, plural, one {# připojení} other {# připojení}} · až {max} na jednom výstupu · za posledních {hours} h",
+ "poolEgressObservationEmpty": "Za posledních {hours} h nebyl zaznamenán žádný provoz",
+ "poolEgressObservationHint": "Počítáno z protokolu proxy za dané období: jedinečné odchozí IP adresy zaznamenané u členů tohoto fondu a připojení OmniRoute, která je použila. „Na jednom výstupu“ znamená za celé období, nikoli současně. Blokace 429 pro jednotlivé IP adresy pozastaví pouze připojení stejné rodiny poskytovatelů.",
"poolRemove": "Odebrat",
"poolRemoveFailed": "Nepodařilo se odebrat proxy z poolu",
"poolAddLabel": "Přidat proxy",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "endpoint": "Koncový bod",
+ "provider": "Poskytovatel",
"model": "Model",
"accountKey": "Account Key",
"autoAccounts": "Auto (počet účtů: {count})",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Odeslat",
+ "cancel": "Zrušit",
+ "audioFile": "Zvukový soubor",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Vymazat vše",
+ "request": "Požadavek",
+ "response": "Odpověď",
+ "transcription": "Přepis",
+ "copy": "Kopírovat",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Vygenerováno {count} obrázků",
"generatedImage": "Vygenerovaný obrázek {index}",
- "save": "Save",
+ "save": "Uložit",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Odpovědi",
"completions": "Doplňování",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Vektorové reprezentace",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderování",
- "rerank": "Rerank",
+ "rerank": "Přeřazení",
"search": "Search",
- "webFetch": "Web fetch"
+ "webFetch": "Načtení webu"
},
"conversationalChat": "Konverzační chat",
"clearChat": "Vymazat chat",
"typeMessagePlaceholder": "Napište zprávu... (Shift+Enter pro nový řádek)",
"tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabCompare": "Porovnat",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Sestavení",
+ "configPane": "Konfigurace",
+ "systemPrompt": "Systémová výzva",
+ "systemPromptPlaceholder": "Jste užitečný asistent.",
+ "modelPlaceholder": "např. openai/gpt-4o",
+ "endpointLabel": "Koncový bod",
+ "parametersLabel": "Parametry",
+ "collapseConfig": "Sbalit panel konfigurace",
+ "expandConfig": "Rozbalit panel konfigurace",
+ "temperature": "Teplota",
+ "maxTokens": "Maximum tokenů",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Penalizace přítomnosti",
+ "frequencyPenalty": "Penalizace frekvence",
"reasoningLabel": "Uvažování",
"thinking": "Přemýšlení",
"effort": "Úsilí",
"effortDefault": "Výchozí",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Náhodně (ponechte prázdné)",
+ "presetsLabel": "Předvolby",
+ "loadPreset": "Načíst předvolbu",
+ "savePreset": "Uložit předvolbu",
+ "noPresets": "Žádné předvolby",
+ "presetNamePlaceholder": "Název předvolby",
+ "savingPreset": "Ukládání…",
+ "nameRequired": "Název je povinný",
+ "failedToSavePreset": "Předvolbu se nepodařilo uložit",
+ "improvePrompt": "Vylepšit prompt",
+ "improvingPrompt": "Vylepšování…",
+ "improvePromptTitle": "Vylepšete svůj prompt pomocí AI",
+ "setModelFirst": "Nejprve nastavte model",
"setModelInConfigFirst": "Nejprve nastavte model v panelu konfigurace.",
"improvePromptFailed": "Vylepšení promptu selhalo.",
"improvePromptAria": "Vylepšit prompt pomocí AI",
"confirmImprovePrompt": "Potvrdit vylepšení promptu",
"improvePromptDescription": "Tímto odešlete svůj aktuální systémový prompt do solo.trae.ai, otevřete DevTools → Síť, odešlete jakoukoli zprávu v chatu a zkopírujte JWT z Authorization: Cloud-IDE-JWT {tokenPlaceholder} hlavičky požadavku. Doba platnosti JWT je přibližně 14 dní. Volitelné identitní pole pocházejí z common_params ve stejném těle požadavku.",
"accessTokenLabel": "Přístupový token (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "webId": "Webové ID",
"optional": "volitelný",
"bizUserId": "ID uživatele Biz",
"userUniqueId": "Jedinečné ID uživatele",
@@ -13854,7 +13887,7 @@
}
},
"providerTest": {
- "dialogLabel": "Test {provider}",
+ "dialogLabel": "Otestovat {provider}",
"deprecated": "zastaralý",
"risk": "riziko",
"close": "Zavřít",
@@ -13864,7 +13897,7 @@
"clearConversation": "Vymazat konverzaci",
"clear": "Vymazat",
"tabs": {
- "test": "Test",
+ "test": "Otestovat",
"logs": "Protokoly"
},
"loadingLogs": "Načítání protokolů…",
@@ -13913,7 +13946,7 @@
"followDescription": "Osa se posouvá doleva, čára NOW zůstává na 75%",
"now": "Nyní",
"nowDescription": "Přejít na aktuální čas, řádek NOW se resetuje na střed",
- "pan": "Pan",
+ "pan": "Posun",
"panDescription": "Přetáhněte pro prozkoumání, pozadí je zmrazené"
},
"reset": "Obnovit",
@@ -13925,7 +13958,7 @@
"tokens": "Tokeny",
"active": "Aktivní",
"other": "Jiné",
- "tenMinutes": "10min",
+ "tenMinutes": "10 min",
"hour": "hodina",
"day": "den",
"unknownModel": "neznámý",
@@ -13934,9 +13967,9 @@
"metadata": {
"compressionTitle": "Komprese",
"compressionDescription": "Nastavte nastavení komprese kontextu pro snížení využití tokenů a nákladů.",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — Relay proxy servery",
"relayDescription": "Serverless relay proxy koncové body pro vaši AI infrastrukturu",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Inspektor provozu — OmniRoute",
"trafficInspectorDescription": "Sledování LLM volání + ladění HTTPS provozu jakékoli aplikace"
},
"conductor": {
@@ -14048,11 +14081,11 @@
"actionApprove": "Schválit plán",
"actionCancel": "Zrušit",
"actionSeeInGraph": "Zobrazit v grafu",
+ "actionRepeat": "Opakovat",
"actionDone": "Akce provedena",
"actionFailed": "Akce selhala: {error}",
"detailFailed": "Nepodařilo se načíst podrobnosti: {error}",
"mirroredInA2A": "Zrcadleno v A2A",
- "actionRepeat": "Opakovat",
"repeatConfirm": "Kliknutím znovu potvrdíte",
"repeatDone": "Vytvořeno nové spuštění",
"repeatUnavailable": "Původní vstup není k dispozici"
@@ -14066,57 +14099,57 @@
"networkError": "Chyba sítě — nelze aktualizovat nastavení expozice poskytovatele"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
+ "title": "Nabídky pro podporovatele",
+ "subtitle": "Oficiální slevy, kredity, zkušební období a prověřené partnerské výhody od Radaru.",
+ "backToRadar": "Zpět na Radar",
+ "loading": "Načítání nabídek...",
+ "refresh": "Obnovit nabídky",
+ "refreshing": "Obnovování...",
+ "loadFailed": "Nabídky se nepodařilo obnovit. Poslední ověřená místní mezipaměť zůstala zachována.",
+ "empty": "Momentálně nejsou k dispozici žádné aktivní nabídky.",
+ "keyRequiredTitle": "Je vyžadován klíč podporovatele",
+ "keyRequiredDescription": "Nabídky jsou aktuální výhodou Radaru. Přidejte existující klíč podporovatele na obrazovce Radaru, ověřte svůj status přispěvatele nebo podpořte projekt a klíč získáte.",
+ "contributorButton": "Jsem přispěvatel",
+ "supporterButton": "Podpořit projekt",
"partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "officialBadge": "Oficiální",
+ "conditionsLabel": "Podmínky:",
+ "validUntil": "Platí do {date}",
+ "noExpiry": "Bez uvedeného data vypršení platnosti",
+ "openOffer": "Zobrazit nabídku",
+ "trialDays": "{days, plural, one {# den} few {# dny} other {# dní}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
+ "title": "Radarová inteligence",
+ "subtitle": "Žebříčky ELO spravované službou Radar a faktické změny v katalogu.",
+ "backToRadar": "Zpět do služby Radar",
+ "loading": "Načítání Intel...",
+ "refresh": "Obnovit Intel",
+ "syncing": "Obnovování...",
+ "loadFailed": "Intel se nepodařilo obnovit. Poslední ověřená místní mezipaměť byla zachována.",
+ "empty": "Zatím není k dispozici žádný ověřený snímek Intel.",
+ "supporterBadge": "Podporovatel služby Radar",
+ "methodology": "Metodika",
+ "eloMethod": "ELO, počáteční {initial}, K={factor}",
+ "freshness": "Aktuálnost katalogu",
+ "ageDays": "{days, plural, one {stáří # den} few {stáří # dny} other {stáří # dní}}",
+ "trend": "Trend katalogu",
+ "modelDelta": "{current} modelů, +{added} / -{removed}",
+ "ranking": "Žebříček modelů",
+ "noRankings": "Zatím nejsou k dispozici žádná potvrzená porovnání.",
"model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "category": "Kategorie",
+ "rating": "Hodnocení",
+ "matches": "Porovnání",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Aktuální",
+ "aging": "Stárnoucí",
+ "stale": "Zastaralé"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "Rostoucí",
+ "stable": "Stabilní",
+ "shrinking": "Klesající"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "Žádost překračuje kontextové okno poskytovatele"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference je přítelem open source projektu OmniRoute",
+ "description": "Brána seřazená podle nákladů, která zpřístupňuje desítky špičkových modelů prostřednictvím jednoho koncového bodu kompatibilního s OpenAI — každý požadavek směruje k nejlevnějšímu vhodnému poskytovateli, nikdy za cenu vyšší než ceníkovou.",
+ "cta": "Získat klíč API",
+ "partnerLinkNote": "Partnerský odkaz",
+ "dismissAriaLabel": "Zavřít"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Zakázat generování variant úrovně přemýšlení (např. -low, -medium, -high) v katalogu /v1/models."
}
diff --git a/src/i18n/messages/da.json b/src/i18n/messages/da.json
index e817957613..f345293d50 100644
--- a/src/i18n/messages/da.json
+++ b/src/i18n/messages/da.json
@@ -31,7 +31,7 @@
"active": "Aktiv",
"inactive": "Inaktiv",
"noData": "Ingen tilgængelige data",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Intet her endnu",
"configure": "Konfigurer",
"manualConfig": "Manuel konfiguration",
"manage": "Administrer",
@@ -47,7 +47,7 @@
"time": "Tid",
"details": "Detaljer",
"created": "Oprettet",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Senest opdateret",
"loadMore": "Indlæs mere",
"noResults": "Ingen resultater fundet",
"reloadPage": "Genindlæs siden",
@@ -70,8 +70,8 @@
"note": "Bemærk",
"free": "Gratis",
"skipToContent": "Gå til indhold",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Serveren oplever problemer. Nogle funktioner er muligvis ikke tilgængelige.",
+ "maintenanceServerUnreachable": "Serveren kan ikke nås. Opretter forbindelse igen...",
"accept": "Accepter",
"accountId": "Konto-id",
"alias": "Alias",
@@ -98,7 +98,7 @@
"skill": "Færdighed",
"sortBy": "Sorter efter",
"sortOrder": "Sorteringsrækkefølge",
- "tab": "Tab",
+ "tab": "Fane",
"text": "Tekst",
"textarea": "Tekstområde",
"tool": "Værktøj",
@@ -120,12 +120,12 @@
"compatible": "Kompatibel",
"chat-completions": "Chatafslutninger",
"oauth": "OAuth",
- "auth_token": "Auth Token",
+ "auth_token": "Godkendelsestoken",
"crypto": "Krypto",
"hours": "Timer",
"selfsigned": "Selvsigneret",
- "proxy_id": "Proxy ID",
- "proxyId": "Proxy ID",
+ "proxy_id": "Proxy-id",
+ "proxyId": "Proxy-id",
"connectionId": "Forbindelses-id",
"resolveConnectionId": "Løs forbindelses-id",
"resolve_connection_id": "Løs forbindelses-id",
@@ -147,12 +147,12 @@
"TOOL_ALLOWLIST": "Værktøjstilladelsesliste",
"TOOL_DENYLIST": "Værktøj Denylist",
"Failed to save pricing": "Kunne ikke gemme prisen",
- "Failed to reset pricing": "Failed to reset pricing",
+ "Failed to reset pricing": "Kunne ikke nulstille priser",
"apikey": "API nøgle",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Gå til kontrolpanel",
+ "checkSystemStatus": "Kontrollér systemstatus",
+ "selectModel": "Vælg model",
"addModel": "Tilføj model",
"effortNone": "Ingen",
"effortLow": "Lav",
@@ -164,10 +164,10 @@
"reasoningEffort": "Ræsonneringsindsats",
"wireApi": "Wire API",
"modelAliases": "Modelaliasser",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Kombinationer",
+ "noModelsFound": "Ingen modeller fundet",
+ "clear": "Ryd",
+ "done": "Færdig",
"selectAll": "Vælg alle",
"unselectAll": "Fravælg alle",
"visibleModels": "synlige",
@@ -184,533 +184,533 @@
"selectAllProviders": "Tjek alle udbydere",
"clearProviderSelection": "Fjern markeringen af udbydere",
"providersSelectedCount": "{count} udbydere tjekket",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Der opstod en fejl",
+ "comboDeleted": "Kombination slettet",
+ "hide": "Skjul",
+ "creating": "Opretter",
+ "comboCreated": "Kombination oprettet",
+ "swapFormats": "Ombyt formater",
+ "daysAgo": "Dage siden",
+ "retries": "Genforsøg",
+ "errorDuringRestore": "Fejl under gendannelse",
+ "eventsAppearHint": "Tip om visning af hændelser",
+ "noLockouts": "Ingen spærringer",
+ "webSearchDesc": "Beskrivelse af websøgning",
+ "audioProvidersHeading": "Overskrift for lydudbydere",
"cloudAgentProviders": "Cloud Agent-udbydere",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Minutter siden",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
+ "liveAutoRefreshing": "Automatisk liveopdatering",
+ "webSearch": "Websøgning",
+ "anthropicPrefixPlaceholder": "Pladsholder for Anthropic-præfiks",
+ "addModelToCombo": "Føj model til kombination",
+ "failedToLoad": "Kunne ikke indlæse",
+ "categoryMedia": "Kategori: Medier",
+ "enableCloud": "Aktivér Cloud",
+ "expirationBannerExpiringSoon": "Udløbsbanner: Udløber snart",
+ "retry": "Prøv igen",
+ "embeddings": "Indlejringer",
+ "errorCount": "Antal fejl",
+ "backupReasonManual": "Årsag til sikkerhedskopiering: Manuel",
+ "safeSearchModerate": "Safe Search: Moderat",
+ "activeLimiters": "Aktive begrænsere",
+ "a2aCardTitle": "Titel på A2A-kort",
+ "cloudWorkerUnreachable": "Cloud Worker kan ikke nås",
+ "testFailed": "Test mislykkedes",
+ "compatibleBaseUrlHint": "Tip til kompatibel Base URL",
+ "usageTracking": "Sporing af forbrug",
+ "disableCloudTitle": "Titel for deaktivering af Cloud",
+ "noConnections": "Ingen forbindelser",
+ "providerHealth": "Provider-status",
+ "confirmDbImport": "Bekræft import af database",
+ "notAvailableSymbol": "Symbol for ikke tilgængelig",
+ "backupsAvailable": "Tilgængelige sikkerhedskopier",
+ "providerAuto": "Automatisk provider",
+ "newProviderNamePlaceholder": "Pladsholder for navn på ny provider",
+ "a2aQuickStartStep2": "A2A-hurtigstart, trin 2",
+ "ok": "OK",
+ "available": "Tilgængelig",
+ "noBackupYet": "Ingen sikkerhedskopi endnu",
+ "more": "Mere",
+ "noCompatibleYet": "Ingen kompatible endnu",
+ "multiProvider": "Flere providere",
+ "repairEnvHint": "Tip til reparation af miljø",
+ "disablingCloud": "Deaktiverer Cloud",
+ "testBench": "Testbænk",
+ "valid": "Gyldig",
+ "cloudBenefitShare": "Fordel ved Cloud-deling",
+ "mcpCardTitle": "Titel på MCP-kort",
+ "disableConfirm": "Bekræft deaktivering",
+ "filters": "Filtre",
+ "expirationBannerExpiredDesc": "Beskrivelse i udløbsbanner: Udløbet",
+ "saveComboDefaults": "Gem standardindstillinger for kombination",
+ "cloudConnectedVerified": "Cloud-forbindelse bekræftet",
+ "uptime": "Oppetid",
+ "compatibleProdPlaceholder": "Pladsholder for kompatibel produktion",
+ "fallbackChainsTitle": "Titel på fallback-kæder",
+ "oauthLabel": "OAuth-etiket",
+ "a2aCardDescription": "Beskrivelse af A2A-kort",
+ "okShort": "OK",
+ "maintenance": "Vedligeholdelse",
+ "formatConverter": "Formatkonvertering",
+ "zedImportNetworkError": "Netværksfejl ved Zed-import",
+ "apiKeyLabel": "API-nøgleetiket",
+ "noModelsForProvider": "Ingen modeller for udbyderen",
+ "mcpCardDescription": "Beskrivelse af MCP-kort",
+ "apiTypeLabel": "Etiket for API-type",
+ "configuredProvidersLabel": "Etiket for konfigurerede udbydere",
+ "maxRetriesLabel": "Etiket for maksimalt antal genforsøg",
+ "title": "Titel",
"output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "prefixHint": "Tip til præfiks",
+ "skipWizard": "Spring guiden over",
+ "failedCount": "Antal mislykkede",
+ "confirmDbImportDesc": "Beskrivelse af bekræftelse af databaseimport",
+ "entries": "Poster",
+ "until": "Indtil",
+ "disableCombo": "Deaktiver kombination",
+ "liveMonitorDescriptionPrefix": "Præfiks til beskrivelse af liveovervågning",
+ "runningCount": "Antal kørende",
+ "noActiveConnectionsInGroup": "Ingen aktive forbindelser i gruppen",
+ "savedSuccessfully": "Gemt",
+ "systemStorage": "Systemlager",
+ "videoDesc": "Videobeskrivelse",
+ "maxResults": "Maksimalt antal resultater",
+ "timeRangeMonth": "Tidsinterval: måned",
+ "testSummary": "Testoversigt",
+ "failedSetPassword": "Kunne ikke indstille adgangskode",
+ "audio": "Lyd",
+ "restore": "Gendan",
+ "disableWarning": "Advarsel om deaktivering",
+ "moderationsDesc": "Beskrivelse af modereringer",
+ "providerHealthStatusAria": "ARIA-label for udbyderens sundhedsstatus",
+ "modelNamePlaceholder": "Pladsholder for modelnavn",
+ "mcpQuickStartStep2": "Mcp-hurtigstart trin 2",
+ "quickStart": "Hurtigstart",
+ "fullExportFailedWithError": "Fuld eksport mislykkedes med fejl",
+ "loadingBackups": "Indlæser sikkerhedskopier",
+ "anthropicBaseUrlPlaceholder": "Pladsholder for Anthropic-basis-URL",
+ "description": "Beskrivelse",
+ "noProviderFound": "Ingen udbyder fundet",
+ "auto": "Automatisk",
+ "protocolsDescription": "Beskrivelse af protokoller",
+ "cloudSessionNote": "Bemærkning om cloudsession",
+ "advancedSettings": "Avancerede indstillinger",
+ "defaultStrategy": "Standardstrategi",
+ "purgeExpiredLogs": "Ryd udløbne logfiler",
+ "justNow": "Lige nu",
+ "providerTestFailed": "Udbydertest mislykkedes",
+ "openaiBaseUrlPlaceholder": "Pladsholder for Openai-basis-URL",
+ "image": "Billede",
+ "failedCreateChain": "Kunne ikke oprette kæde",
+ "importDatabase": "Importér database",
+ "allDataLocal": "Alle data er lokale",
+ "sectionTitle": "Sektionstitel",
+ "failedToggle": "Skift mislykkedes",
+ "editCombo": "Rediger kombination",
+ "testResults": "Testresultater",
+ "searchQuery": "Søgeforespørgsel",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
+ "duplicate": "Dupliker",
+ "createCombo": "Opret kombination",
+ "searchTypeWeb": "Søgetype: web",
+ "addChain": "Tilføj kæde",
+ "prefixLabel": "Præfiksetiket",
+ "listModelsDesc": "Beskrivelse af modelliste",
+ "databaseSize": "Databasestørrelse",
+ "chainCreated": "Kæde oprettet",
+ "providerTestTimeout": "Timeout for udbydertest",
+ "routingStrategy": "Routingstrategi",
+ "translateAction": "Oversæt handling",
+ "exportFailed": "Eksport mislykkedes",
+ "connectedVerificationPending": "Forbundet, afventer bekræftelse",
+ "a2aQuickStartTitle": "Titel på A2A-hurtigstart",
+ "couldNotTest": "Kunne ikke teste",
+ "testAllCompatible": "Test alle kompatible",
+ "anthropicCompatibleName": "Anthropic-kompatibelt navn",
+ "disabling": "Deaktiverer",
+ "failedEnable": "Aktivering mislykkedes",
+ "categoryUtility": "Kategori: hjælpeværktøj",
+ "customUrlOptional": "Brugerdefineret URL (valgfri)",
+ "localProviders": "Lokale udbydere",
+ "comboNamePlaceholder": "Pladsholder for kombinationsnavn",
+ "memoryRss": "Hukommelses-RSS",
+ "disableProvider": "Deaktiver udbyder",
+ "welcomeDesc": "Velkomstbeskrivelse",
+ "nameLabel": "Navneetiket",
+ "allOperational": "Alle fungerer",
+ "backupNow": "Sikkerhedskopiér nu",
+ "providerMaxRetriesAria": "ARIA for maksimalt antal genforsøg hos udbyderen",
+ "textToSpeechDesc": "Beskrivelse af tekst til tale",
+ "machineId": "Maskin-id",
+ "globalProxy": "Global proxy",
+ "hitsMisses": "Træffere og forbiere",
+ "testDesc": "Testbeskrivelse",
+ "chatDesc": "Chatbeskrivelse",
+ "importSuccess": "Import lykkedes",
"chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "a2aQuickStartStep1": "A2A-lynstart, trin 1",
+ "importFailed": "Import mislykkedes",
+ "inputPlaceholder": "Pladsholder for input",
+ "providerModelsTitle": "Titel på udbydermodeller",
+ "lastBackup": "Seneste sikkerhedskopi",
+ "yourEndpoint": "Dit slutpunkt",
+ "autoDisableThresholdDesc": "Beskrivelse af tærskel for automatisk deaktivering",
+ "rerankDesc": "Beskrivelse af omrangering",
+ "modelsPathPlaceholder": "Pladsholder for modelsti",
+ "noCombosYet": "Ingen kombinationer endnu",
+ "connectedVerificationPendingWithError": "Forbundet – afventer bekræftelse med fejl",
+ "comboDefaultsGuideHint1": "Tip 1 i vejledningen til standardindstillinger for kombinationer",
+ "enableCloudTitle": "Aktivér cloud",
+ "configuredProvidersHint": "Tip om konfigurerede udbydere",
+ "paused": "Sat på pause",
+ "llmProviders": "LLM-udbydere",
+ "enableCombo": "Aktivér kombination",
+ "removeProviderOverrideAria": "Fjern aria-label for udbydertilsidesættelse",
+ "nodeVersion": "Node-version",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Eksport mislykkedes med fejl",
+ "proxyConfigured": "Proxy konfigureret",
+ "concurrencyPerModel": "Samtidige anmodninger pr. model",
+ "protocolTasksLabel": "Etiket for protokolopgaver",
+ "oauthProviders": "OAuth-udbydere",
+ "lockedCount": "Antal låste",
+ "deleteChainConfirm": "Bekræft sletning af kæde",
+ "recentTranslations": "Seneste oversættelser",
+ "zedImportButton": "Zed-importknap",
+ "responsesDesc": "Beskrivelse af svar",
+ "testedCount": "Antal testede",
+ "providersCommaSeparatedPlaceholder": "Pladsholder for kommaseparerede udbydere",
+ "signatureDefaults": "Standardsignaturer",
+ "errorCreating": "Fejl under oprettelse",
+ "timeRangeYear": "Tidsinterval: år",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Cloud blev deaktiveret",
+ "deleteConfirm": "Bekræft sletning",
+ "check": "Kontrollér",
+ "safeSearch": "Sikker søgning",
+ "protocolLastActivity": "Seneste protokolaktivitet",
+ "openMcpDashboard": "Åbn MCP-dashboard",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Etiket for chatsti",
+ "retryDelay": "Forsinkelse før nyt forsøg",
+ "errorUpdating": "Fejl under opdatering",
+ "ideCliIntegrations": "IDE- og CLI-integrationer",
+ "imageGeneration": "Billedgenerering",
+ "apiKeyRequired": "API-nøgle påkrævet",
+ "resetAllTitle": "Nulstil alle",
+ "connectionError": "Forbindelsesfejl",
+ "modelName": "Modelnavn",
+ "apiKeyForCheck": "API-nøgle til kontrol",
+ "cloudRequestTimeout": "Timeout for Cloud-anmodning",
+ "showConfiguredOnly": "Vis kun konfigurerede",
"showFreeOnly": "Kun gratis",
"addFirstProvider": "Tilføj din første udbyder",
"addFirstProviderDesc": "Tilslut en AI-udbyder for at starte routinganmodninger gennem OmniRoute. Du kan bruge gratis udbydere, API-nøgler eller OAuth-konti.",
"learnMore": "Få flere oplysninger",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Inkluder domæner",
+ "promptCache": "Promptcache",
+ "cloudConnected": "Cloud er tilsluttet",
+ "deleteChain": "Slet kæde",
+ "chatPathPlaceholder": "Pladsholder for chatsti",
+ "databasePath": "Databasesti",
+ "usingLocalServer": "Bruger lokal server",
+ "globalComboConfig": "Global kombinationskonfiguration",
+ "backupFailed": "Sikkerhedskopiering mislykkedes",
+ "tabProtocols": "Protokoller",
+ "continue": "Fortsæt",
+ "categorySearch": "Kategorisøgning",
+ "rateLimitStatus": "Status for hastighedsbegrænsning",
+ "repairEnvSuccess": "Miljøet blev repareret",
+ "nameRequired": "Navn er påkrævet",
+ "country": "Land",
+ "trackMetricsDesc": "Beskrivelse af registrering af målinger",
+ "durationSecondsShort": "Varighed i sekunder (kort)",
+ "formatConverterDescription": "Beskrivelse af formatkonvertering",
+ "cloudBenefitAccess": "Adgang til cloudfordele",
+ "maxRetries": "Maks. antal genforsøg",
+ "queueTimeout": "Timeout for kø",
"queueDepth": "Kødybde",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Tilføj udbyder",
+ "realtime": "Realtid",
+ "totalTranslations": "Samlet antal oversættelser",
+ "protocolActiveStreamsLabel": "Aktive protokolstreams",
+ "repairEnv": "Reparer miljø",
+ "modelsCount": "Antal modeller",
+ "viewBackups": "Vis sikkerhedskopier",
+ "responsesApi": "Responses API",
+ "copyComboName": "Kopiér kombinationsnavn",
+ "failures": "Fejl",
+ "failedUpdate": "Opdatering mislykkedes",
+ "imageDesc": "Billedbeskrivelse",
+ "failedCreate": "Oprettelse mislykkedes",
+ "remainingOfLimit": "Resterende af grænsen",
+ "protocolsTitle": "Protokoller",
+ "expirationBannerExpiringSoonDesc": "Beskrivelse af banner om snarligt udløb",
+ "source": "Kilde",
+ "failed": "Mislykkedes",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
+ "mcpQuickStartStep1": "MCP-hurtigstart, trin 1",
+ "runTest": "Kør test",
+ "loadingFallbackChains": "Indlæser fallback-kæder",
+ "healthy": "Fungerer korrekt",
"version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
+ "saveBlockWeighted": "Gem vægtet blok",
+ "zedImportNone": "Ingen Zed-import",
+ "noBackupsYet": "Ingen sikkerhedskopier endnu",
+ "noGlobalProxy": "Ingen global proxy",
+ "noModels": "Ingen modeller",
+ "stickyLimit": "Fast grænse",
+ "passedCount": "Antal beståede",
+ "zedImportFailed": "Zed-import mislykkedes",
+ "saving": "Gemmer",
+ "testAll": "Test alle",
+ "globalProxyDesc": "Beskrivelse af global proxy",
+ "latencyP99": "Ventetid P99",
+ "connectingToCloud": "Opretter forbindelse til Cloud",
+ "responses": "Svar",
+ "errorDeleting": "Fejl under sletning",
+ "openaiPrefixPlaceholder": "Pladsholder for Openai-præfiks",
+ "enterPassword": "Indtast adgangskode",
+ "openA2aDashboard": "Åbn A2A-dashboard",
+ "enableProvider": "Aktivér udbyder",
+ "modeTest": "Testtilstand",
+ "failedDeleteChain": "Kæden kunne ikke slettes",
+ "providerDesc": "Beskrivelse af udbyder",
+ "templateLoadHint": "Tip til indlæsning af skabelon",
+ "lastFailure": "Seneste fejl",
+ "moveDown": "Flyt ned",
+ "providerLabel": "Udbyderetiket",
+ "clearCacheFailed": "Rydning af cache mislykkedes",
+ "imagesGenerations": "Billedgenereringer",
+ "repairEnvWorking": "Reparation af miljø er i gang",
+ "millisecondsShort": "ms",
+ "globalLabel": "Global etiket",
+ "failuresPlural": "Fejl",
+ "completionsLegacyDesc": "Beskrivelse af ældre fuldførelser",
+ "searchProviders": "Søg efter udbydere",
+ "chatPathHint": "Tip til chatsti",
+ "defaultStrategyDesc": "Beskrivelse af standardstrategi",
+ "latencyP95": "Ventetid P95",
+ "textToSpeech": "Tekst til tale",
+ "searchType": "Søgetype",
+ "messages": "Beskeder",
+ "aggregatorsGateways": "Aggregatorgateways",
+ "comboStrategyAria": "Kombinationsstrategi Aria",
"input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
+ "testingConnection": "Tester forbindelse",
+ "excludeDomains": "Ekskluder domæner",
+ "webCookieProviders": "Webcookieudbydere",
+ "allTestsPassed": "Alle tests bestået",
+ "openaiCompatibleName": "Openai-kompatibelt navn",
+ "warningCostOptimizedPartialPricing": "Advarsel om omkostningsoptimeret delvis prissætning",
+ "comboDefaultsGuideTitle": "Titel på vejledning til kombinationsstandarder",
+ "hoursAgo": "Timer siden",
+ "notAvailable": "Ikke tilgængelig",
+ "skipAndContinue": "Spring over og fortsæt",
+ "moderations": "Modereringer",
+ "proxyConfig": "Proxykonfiguration",
+ "upstreamProxyProviders": "Upstream-proxyudbydere",
+ "exportAll": "Eksportér alle",
+ "queuedCount": "Antal i kø",
+ "resetAll": "Nulstil alle",
+ "noTranslations": "Ingen oversættelser",
+ "avgLatency": "Gns. latenstid",
+ "throttleStatus": "Begrænsningsstatus",
+ "backupRetentionDesc": "Beskrivelse af sikkerhedskopiers opbevaringsperiode",
+ "noCBData": "Ingen Cb-data",
+ "chainDeleted": "Kæde slettet",
+ "timeLeft": "Resterende tid",
+ "expirationBannerExpired": "Udløbsbanner udløbet",
+ "language": "Sprog",
+ "invalidFileType": "Ugyldig filtype",
+ "monitoredProviders": "Overvågede udbydere",
+ "errors": "Fejl",
"heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "chatCompletions": "Chatfuldførelser",
+ "exampleTemplatesHint": "Tip til eksempelskabeloner",
+ "retryDelayLabel": "Etiket for forsinkelse før nyt forsøg",
+ "audioTranscription": "Lydtransskription",
+ "fallbackChainsDesc": "Beskrivelse af fallback-kæder",
+ "exampleTemplates": "Eksempelskabeloner",
+ "connectionsCount": "Antal forbindelser",
+ "modelsPathLabel": "Etiket for modelsti",
+ "activeProvidersHint": "Tip om aktive udbydere",
+ "activeLockouts": "Aktive spærringer",
+ "invalid": "Ugyldig",
+ "skipPassword": "Spring adgangskode over",
+ "moveUp": "Flyt op",
+ "timeRange": "Tidsinterval",
+ "stickyLimitDesc": "Beskrivelse af fast grænse",
+ "cloudBenefitEdge": "Cloud-fordel ved edge",
+ "custom": "Brugerdefineret",
+ "verifying": "Bekræfter",
+ "baseUrlLabel": "Etiket for basis-URL",
+ "setPassword": "Angiv adgangskode",
+ "safeSearchStrict": "Streng sikker søgning",
+ "noChangesSinceBackup": "Ingen ændringer siden sikkerhedskopieringen",
+ "modelsPathHint": "Tip om modelsti",
+ "audioTranscriptions": "Lydtransskriptioner",
+ "testCombo": "Test kombination",
+ "mcpQuickStartTitle": "Titel på hurtigstart til Mcp",
+ "comboUpdated": "Kombination opdateret",
+ "weighted": "Vægtet",
+ "providers": "Udbydere",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Beskrivelse af ingen fallback-kæder",
+ "yesImport": "Ja, importér",
+ "lockoutsAutoRefreshHint": "Tip om automatisk opdatering af spærringer",
+ "tabApis": "Fanen API'er",
+ "sectionDescription": "Sektionsbeskrivelse",
+ "filter": "Filtrér",
+ "purgeLogsFailed": "Rydning af logfiler mislykkedes",
+ "latency": "Ventetid",
+ "testAllOAuth": "Test al O Auth",
+ "mcpQuickStartStep3": "Trin 3 i hurtigstart til Mcp",
+ "repairEnvFailed": "Reparation af miljø mislykkedes",
+ "zedImportHint": "Tip om import fra Zed",
+ "modelsAcrossEndpoints": "Modeller på tværs af slutpunkter",
+ "autoDisableBannedAccounts": "Deaktivér automatisk udelukkede konti",
+ "securityDesc": "Sikkerhedsbeskrivelse",
+ "listModels": "Vis modeller",
+ "backupRestore": "Sikkerhedskopiering og gendannelse",
+ "target": "Mål",
+ "zedImportSuccess": "Zed-import lykkedes",
+ "lastHeaderUpdate": "Seneste headeropdatering",
+ "categoryCore": "Kerne-kategori",
+ "noFallbackChains": "Ingen fallback-kæder",
+ "noSearchProviders": "Ingen søgeudbydere",
+ "autoBalance": "Automatisk balancering",
+ "noModelsYet": "Ingen modeller endnu",
+ "signatureFamily": "Signaturfamilie",
+ "externalApiCalls": "Eksterne API-kald",
+ "providerOverridesDesc": "Beskrivelse af udbydertilsidesættelser",
+ "signatureTool": "Signaturværktøj",
+ "connectionFailed": "Forbindelsen mislykkedes",
+ "activeLimitersPlural": "Aktive begrænsere i flertal",
+ "doneDesc": "Beskrivelse af færdig",
+ "down": "Nede",
+ "noDataYet": "Ingen data endnu",
+ "activeProviders": "Aktive udbydere",
+ "nameInvalid": "Ugyldigt navn",
+ "skip": "Spring over",
+ "createChain": "Opret kæde",
+ "audioSpeech": "Lydtale",
+ "cacheCleared": "Cachen blev ryddet",
+ "searchTypeNews": "Søgetype: nyheder",
+ "durationMillisecondsShort": "Varighed i millisekunder, kort",
+ "addOpenAICompatible": "Tilføj Open Ai-kompatibel",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "Sat i kø",
+ "domainPlaceholder": "Domænepladsholder",
+ "durationMinutesShort": "Varighed i minutter, kort",
+ "verifyingConnection": "Bekræfter forbindelse",
+ "imageProviders": "Billedudbydere",
+ "protocolToolsLabel": "Etiket for protokolværktøjer",
+ "queryPlaceholder": "Forespørgselspladsholder",
+ "videoGeneration": "Videogenerering",
+ "timeRangeWeek": "Tidsinterval: uge",
+ "limitExhausted": "Grænse nået",
+ "failedDisable": "Deaktivering mislykkedes",
+ "inMemoryNote": "Bemærkning om hukommelsen",
+ "compatibleHint": "Tip om kompatibilitet",
+ "errorShort": "Kort fejlmeddelelse",
+ "advancedHint": "Avanceret tip",
+ "restoreFailed": "Gendannelse mislykkedes",
+ "searchProvidersHeading": "Overskrift til søgning efter udbydere",
+ "comboName": "Kombinationsnavn",
+ "autoDisableDescription": "Beskrivelse af automatisk deaktivering",
+ "embeddingsDesc": "Beskrivelse af embeddings",
+ "operational": "Driftsklar",
+ "testAllApiKey": "Test alle API-nøgler",
+ "backupCreated": "Sikkerhedskopi oprettet",
+ "errorDuringImport": "Fejl under import",
+ "comboDefaultsGuideHint2": "Tip 2 til vejledning om standardindstillinger for kombinationer",
+ "connecting": "Opretter forbindelse",
+ "fillModelAndProviders": "Udfyld model og udbydere",
+ "syncing": "Synkroniserer",
+ "resetConfirm": "Bekræft nulstilling",
+ "trackMetrics": "Registrer målinger",
+ "successful": "Gennemført",
+ "recovering": "Gendanner",
+ "autoDisableThreshold": "Tærskel for automatisk deaktivering",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Synkroniserer data",
+ "cloudBenefitPorts": "Fordele ved cloudporte",
+ "compatibleProviders": "Kompatible udbydere",
"freeTierProviders": "Gratis udbydere",
"freeTierLabel": "Gratis niveau tilgængelig",
"freeTierProvidersDesc": "Udbydere med gratis niveauer - nogle kræver en API-nøgletilmelding, andre behøver slet ingen legitimationsoplysninger.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
- "gamificationAdmin": "Gamification Admin",
+ "clearCache": "Ryd cache",
+ "reqs": "Anmodninger",
+ "addAnthropicCompatible": "Tilføj Anthropic-kompatibel udbyder",
+ "apiKeyProviders": "API-nøgleudbydere",
+ "tabsAria": "ARIA for faner",
+ "resetting": "Nulstiller",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Årsag til sikkerhedskopiering før gendannelse",
+ "disableCloud": "Deaktiver cloud",
+ "newProviderNameAria": "ARIA for nyt udbydernavn",
+ "passwordsMismatch": "Adgangskoderne stemmer ikke overens",
+ "a2aQuickStartStep3": "Trin 3 i hurtigstart til A2A",
+ "liveMonitorDescriptionSuffix": "Suffiks til beskrivelse af liveovervågning",
+ "failedAddProvider": "Udbyderen kunne ikke tilføjes",
+ "addAtLeastOneProvider": "Tilføj mindst én udbyder",
+ "reasonSeparator": "Årsagsseparator",
+ "zedImporting": "Zed importerer",
+ "confirmPasswordPlaceholder": "Pladsholder til bekræftelse af adgangskode",
+ "whatYouGet": "Hvad du får",
+ "signatureSession": "Signatursession",
+ "errorCountNoCode": "Fejlantal uden kode",
+ "testing": "Test",
+ "providersCommaSeparated": "Udbydere adskilt med komma",
+ "exportDatabase": "Eksportér database",
+ "hitRate": "Træfprocent",
+ "completionsLegacy": "Ældre fuldførelser",
+ "removeModel": "Fjern model",
+ "timeRangeDay": "Tidsinterval: Dag",
+ "cloudRequestFailed": "Cloudanmodning mislykkedes",
+ "updatedAt": "Opdateret den",
+ "monitoredProvidersHint": "Tip til overvågede udbydere",
+ "connectionSuccessful": "Forbindelsen blev oprettet",
+ "latencyP50": "Latens P50",
+ "logsDeleted": "Logfiler slettet",
+ "chatTester": "Chattester",
+ "safeSearchOff": "Sikker søgning slået fra",
+ "nameHint": "Navnetip",
+ "debugToggle": "Fejlretning til/fra",
+ "embedding": "Indlejring",
+ "issuesLabel": "Problemfelt",
+ "optionAny": "Valgmulighed: Alle",
+ "maxNestingDepth": "Maksimal indlejringsdybde",
+ "rerank": "Omrangering",
+ "checking": "Kontrollerer",
+ "getStarted": "Kom i gang",
+ "restoreSuccess": "Gendannelse gennemført",
+ "issuesDetected": "Problemer registreret",
+ "signatureCache": "Signaturcache",
+ "modelLockouts": "Modelspærringer",
+ "usingCloudProxy": "Bruger cloudproxy",
+ "loadingHealth": "Indlæser status",
+ "providerOverrides": "Udbydertilsidesættelser",
+ "audioTranscriptionDesc": "Beskrivelse af lydtransskription",
+ "learnedFromHeaders": "Lært fra headers",
+ "totalRequests": "Anmodninger i alt",
+ "cloudUnstableNote": "Bemærkning om ustabil cloudtjeneste",
+ "gamificationAdmin": "Administration af gamification",
"monitorAnomaliesAndHealth": "Overvåg uregelmæssigheder og systemsundhed",
"flaggedAnomalies": "Markerede anomalier",
"noAnomaliesDetected": "Ingen uregelmæssigheder opdaget",
"apiKey": "API nøgle",
"xpLastHour": "XP (1 time)",
"zScore": "Z-score",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Mistænkelig",
"tokensCommunityServers": "Fællesskabsservere",
"tokensServerNamePlaceholder": "Servernavn",
"tokensApiKeyPlaceholder": "API nøgle",
"tokensTokenBalance": "Token balance",
"tokensSendTokens": "Send tokens",
- "tokensRecipientApiKeyId": "Recipient API Key ID",
+ "tokensRecipientApiKeyId": "Modtagerens API-nøgle-id",
"tokensRecipientApiKeyIdPlaceholder": "Indtast modtagerens API-nøgle-id",
"tokensReasonOptional": "Årsag (valgfrit)",
"tokensReasonPlaceholder": "f.eks. bonus, belønning",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Indlæser mere...",
"recommended": "Anbefalet",
"understand": "Jeg forstår",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
+ "batchConceptTitle": "Batchbehandling",
+ "batchConceptSubtitle": "Behandl tusindvis af anmodninger asynkront til ~50 % af prisen (24-timers vindue). Ideelt til evalueringer, klassificering og embeddings.",
+ "batchConceptHowItWorks": "Sådan fungerer det",
+ "batchConceptBenefit50pct": "50 % rabat på input- og outputtokens",
+ "batchConceptAsync24h": "Asynkront med et fuldførelsesvindue på 24 timer",
+ "batchConceptUseCases": "Bedst til masseklassificering, evalueringer og embeddings",
+ "batchHeaderSubtitle": "Kør mange anmodninger som ét job",
"batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
+ "batchStep1Desc": "Tilføj anmodninger",
+ "batchStep2": "2 · Opret batch",
+ "batchStep2Desc": "Kør job",
+ "batchStep3": "3 · Hent resultater",
+ "batchStep3Desc": "Hent output",
+ "filesConceptTitle": "Batchfiler",
+ "filesConceptSubtitle": "JSONL-filer, der bruges af batches: inputanmodninger, resultater og fejl.",
+ "filesConceptInput": "Input — din JSONL med én anmodning pr. linje",
+ "filesConceptOutput": "Output — resultater fra fuldførte anmodninger",
+ "filesConceptError": "Fejl — anmodninger, der mislykkedes",
+ "filesConceptRetention": "Opbevaring: 30 dage som standard (29 dage hos Anthropic)",
+ "wizardTitle": "Ny batch",
+ "wizardClose": "Luk",
+ "wizardNext": "Næste",
+ "wizardBack": "Tilbage",
+ "wizardCancel": "Annuller",
+ "wizardCreate": "Opret batch",
+ "wizardCreating": "Opretter…",
"wizardStep1Destination": "Destination",
"wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
+ "wizardStep3Validate": "Valider",
+ "wizardStep4Cost": "Pris og oprettelse",
+ "wizardProviderLabel": "Udbyder",
+ "wizardEndpointLabel": "Slutpunkt",
"wizardModelLabel": "Model",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (vi konverterer den)",
+ "wizardDropOrPick": "Slip en fil her, eller klik for at vælge",
+ "wizardCsvMappingTitle": "Knyt CSV-kolonner → anmodningsfelter",
+ "wizardCsvMappingAddField": "Tilføj felt",
"wizardCsvNoColumns": "Ingen kolonner registreret i CSV-header.",
"wizardCsvIgnoreColumn": "— ignorer —",
"wizardCsvCustomIdMapped": "custom_id tilknyttet",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} rækker parset",
"wizardCsvRowsSkipped": "{count} rækker sprunget over",
"wizardCsvRowError": "Række {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Alle linjer er gyldige",
"wizardValidating": "Validerer…",
"wizardValidationParseFailed": "Validering mislykkedes — kunne ikke parse indhold.",
"wizardValidationSummary": "{lines} linjer · {ids} unikke custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Duplikerede custom_ids registreret:",
"wizardValidationFirstErrors": "Fejl (første {count}):",
"wizardValidationLine": "Linje {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
+ "wizardValidationErrors": "Valideringsfejl",
+ "wizardValidationPreview": "Forhåndsvisning (de første 5 anmodninger)",
+ "wizardValidationSamplingNote": "Filen er stor — valideret ved stikprøve (de første 1000 + de sidste 100 linjer). Fuld validering kører på serversiden.",
+ "wizardCostSync": "Pris ved synkron behandling",
+ "wizardCostBatch": "Pris ved batchbehandling (-50 %)",
+ "wizardCostSavings": "Besparelse",
+ "wizardCostEstimatedNotice": "Anslået pris — den faktiske fakturering kan variere.",
+ "wizardErrorUpload": "Filen kunne ikke uploades. Prøv igen.",
+ "wizardErrorCreate": "Batchen kunne ikke oprettes. Prøv igen.",
+ "wizardEmptyProviders": "Forbind en udbyder med understøttelse af batchbehandling (OpenAI, Anthropic eller Gemini) for at oprette en batch.",
+ "uploadModalTitle": "Upload batchfil",
+ "uploadModalDropOrPick": "Slip en .jsonl-fil her, eller klik for at vælge",
"uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
+ "uploadModalCancel": "Annuller",
+ "uploadModalError": "Upload mislykkedes. Prøv igen.",
+ "uploadModalSuccess": "Uploadet",
+ "uploadModalSizeLimit": "Maks. 512 MB",
+ "batchListNewButton": "Ny batch",
+ "batchListAutoRefresh": "Automatisk opdatering hvert 30. sek.",
+ "batchListCostColumn": "Pris",
+ "batchActionCancel": "Annuller",
+ "batchActionDownloadOutput": "Hent output",
+ "batchActionDownloadErrors": "Download fejl",
+ "batchActionRetry": "Prøv mislykkede igen",
+ "batchActionRetryConfirm": "Prøv {n} mislykkede anmodning(er) igen? Den endelige pris afhænger af det faktiske antal forbrugte tokens.",
+ "expirationBadgeCritical": "Kritisk",
+ "expirationBadgeWarning": "Snart",
+ "expirationBadgeNormal": "Afventer",
+ "expirationBadgeExpired": "Udløbet",
"filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
+ "filesListUsedByColumn": "Bruges af",
+ "filesListUsedByNone": "Ingen",
"filesListUsedByRoleInput": "input",
"filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "filesListUsedByRoleError": "fejl",
+ "filesListSizeColumn": "Størrelse",
+ "batchListProgressPartial": "(delvis)",
+ "batchListProviderColumn": "Udbyder",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
+ "batchListProviderOther": "Andet",
+ "batchListTitle": "Batchkørsler",
+ "batchListCount": "{count} batchkørsler",
+ "batchListRemovingCompleted": "Fjerner…",
+ "batchListRemoveCompleted": "Fjern fuldførte",
"batchListTableStatus": "Status",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "Slutpunkt",
"batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableProgress": "Fremdrift",
+ "batchListTableCreated": "Oprettet",
+ "batchListTableExpires": "Udløber",
+ "batchListLoading": "Indlæser…",
+ "batchListEmpty": "Ingen batchkørsler fundet",
+ "batchListValidating": "Validerer…",
+ "batchStatusAll": "Alle statusser",
+ "batchStatusInProgress": "I gang",
+ "batchStatusValidating": "Validerer",
+ "batchStatusFinalizing": "Færdiggør",
+ "batchStatusCompleted": "Fuldført",
+ "batchStatusFailed": "Mislykket",
+ "batchStatusCancelled": "Annulleret",
+ "batchStatusCancelling": "Annullerer",
+ "batchStatusExpired": "Udløbet",
+ "batchStatusCompletedWithFailures": "fuldført med fejl",
+ "batchStatusInProgressWithFailures": "i gang (med fejl)",
+ "batchStatusFinalizingWithFailures": "færdiggør (med fejl)",
+ "batchStatusCancelledWithFailures": "annulleret med fejl",
+ "batchStatusExpiredWithFailures": "udløbet (delvist)",
+ "wizardCostEstimating": "Estimerer omkostninger…",
+ "wizardCostRequests": "Anmodninger",
+ "wizardCostInputTok": "inputtokens",
+ "wizardCostOutputTok": "outputtokens",
+ "wizardCostWindow": "Vindue",
+ "wizardDestinationSelectProvider": "Vælg en udbyder…",
+ "wizardDestinationSelectModel": "Vælg en model…",
+ "wizardDestinationConnectProvider": "Tilslut en udbyder",
+ "batchListBatchCreated": "Batch {id} oprettet — opdaterer listen…",
+ "batchListBatchCreatedDismiss": "Luk",
+ "batchListRefreshing": "Opdaterer…",
+ "batchListRefresh": "Opdater",
+ "uploadFileModalRemove": "Fjern",
+ "uploadFileModalUploading": "Uploader…",
+ "wizardInputReading": "Læser fil…",
+ "wizardInputReady": "Klar",
+ "wizardInputLargeFileLabel": "Stor fil — stikprøvevalidering",
+ "wizardInputCsvJsonlReady": "JSONL genereret — klar til validering.",
+ "wizardInputLargeFileWarning": "Stor fil registreret — validering udføres ved stikprøvekontrol (de første 5 MB + de sidste 100 KB). Fuld validering foretages på serversiden.",
+ "wizardCostWindow24h": "24-timers frist for fuldførelse",
+ "wizardValidationFieldsOk": "påkrævede felter er gyldige",
+ "filesListDelete": "Slet",
+ "filesListDownload": "Hent",
+ "batchDetailActionCancel": "Annuller batch",
+ "batchDetailActionRetry": "Prøv mislykkede anmodninger igen",
+ "batchDetailCancelling": "Annullerer…",
+ "batchDetailRetrying": "Forbereder nyt forsøg…",
+ "batchDetailCancelConfirm": "Vil du annullere denne batch? Igangværende anmodninger stoppes.",
+ "batchActionCancelError": "Batchen kunne ikke annulleres. Prøv igen.",
+ "batchActionRetryError": "De mislykkede anmodninger kunne ikke prøves igen. Prøv igen.",
+ "batchConceptRetentionNote": "Resultat- og fejlfiler opbevares i 30 dage (Anthropic: 29 dage)",
"batchFilesSizeColumn": "Størrelse",
"toggleNoAuthProvider": "Skift til no-auth udbyder",
"loadingModels": "Indlæser modeller…",
@@ -988,17 +988,21 @@
"disabled": "Deaktiveret",
"featureFlagOmnirouteEmergencyFallbackDescription": "Diriger budgetudtømte anmodninger til den gratis nød-fallback-udbyder/-model.",
"featureFlagArenaEloSyncEnabledDescription": "Aktivér periodisk ELO-synkronisering fra Arena AI-førertavlen til rangering af modelintelligens.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Generér og indsæt samtaleresuméer, når combo-routing skifter model. Deaktiver dette for at behandle modelskift uafhængigt og forhindre baggrundsanmodninger om overdragelse for alle eksisterende og fremtidige comboer.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Reklamer claude/<provider>/<model> spejl-id'er på /v1/models, så Claude Code gateway modelopdagelse viser ikke-Claude modeller. Advarsel: fordobler katalogposter for alle klienter, når det er aktiveret globalt.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Hovedkontakt til gateway-aliaserne no-think/<provider>/<model>. Til (standard): /v1/models viser en variant uden ræsonnering for hver kvalificeret Claude-model med ræsonneringsfunktion, og et no-think/-id, der sendes i en anmodning, fortolkes som den rigtige model med ræsonnering deaktiveret. Fra: Der vises ingen varianter, og et no-think/-id behandles som ethvert andet ukendt model-id. Til- og fravalget ModelSpec.noThinkingAlias for hver model gælder fortsat, mens dette er slået til.",
"featureFlagChatVirtualLanesEnabledDescription": "Aktivér adaptive virtuelle adgangsbaner pr. tenant til providerudlevering (#9654): en tenants burst giver ikke længere en anden 503. Miljøvariablen OMNIROUTE_CHAT_VIRTUAL_LANES har forrang over denne dashboard-indstilling; ændringer træder i kraft ved genstart af serveren.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Udbydersider i dashboardet: Vis kun Gratis-mærket for signaler, som udbyderen respekterer — dette fjerner heuristikken for visningsnavne, ikke-booleske gratis-felter og :free-suffikser hos registrerede udbydere uden et dokumenteret gratis niveau. Deaktiveret bevarer den tidligere regel for mærket.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy-puljer og opencodes rotation pr. konto undgår i en periode pr. proces, der fordobles ved hver gentagelse op til en øvre grænse, at genbruge en proxy, som netop har fejlet (afvist TCP-probe eller en 429 modtaget gennem den). Der skrives ingen proxy-status; hvis alle kandidater sættes til side, forbliver valget uændret. Deaktiveret som standard: rækkefølgen for valg følger præcis den almindelige rotation.",
+ "featureFlagProxyPoolEgressObservationDescription": "Vis under en proxy-pulje i dashboardet, hvor mange observerede udgående IP-adresser der har betjent dens medlemmer inden for de seneste 24 timer, hvor mange forbindelser der brugte dem, og det højeste antal observeret bag én IP-adresse. Skrivebeskyttet, beregnet ud fra proxy-loggen og aldrig brugt til routing. Deaktiveret som standard: puljeeditoren er uændret, og observationsruten returnerer null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Lad en probe, som målet afviste (401/403/429: proxyen videresendte anmodningen, men destinationen afviste denne udgående IP-adresse), nulstille proxyens række af fortløbende fejl i proxyens helbredskontrol, ligesom en betjent probe. Deaktiveret som standard: En afvisning forbliver neutral og bevarer rækken. En 5xx forbliver uafklaret i begge tilfælde, og en afvisning fjerner, deaktiverer eller genaktiverer aldrig en proxy.",
"sidebar": {
"home": "Hjem",
- "dashboard": "Dashboard",
+ "dashboard": "Kontrolpanel",
"providers": "Udbydere",
- "combos": "Combos",
+ "combos": "Comboer",
"usage": "Brug",
- "analytics": "Analytics",
+ "analytics": "Analyse",
"costs": "Omkostninger",
"health": "Sundhed",
"proxy": "Proxy",
@@ -1008,23 +1012,23 @@
"settings": "Indstillinger",
"translator": "Oversætter",
"playground": "Legeplads",
- "searchTools": "Search Tools",
+ "searchTools": "Søgeværktøjer",
"agents": "Agenter",
"cloudAgents": "Cloud-agenter",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Hukommelse",
+ "skills": "Færdigheder",
"omniSkills": "OmniSkills",
"agentSkills": "AgentSkills",
"chaosConfig": "Kaostilstand",
"docs": "Dokumenter",
"issues": "Problemer",
- "endpoints": "Endpoints",
+ "endpoints": "Slutpunkter",
"endpointsSubtitle": "Dine AI-forbindelses-URL'er",
- "apiManager": "API Keys",
+ "apiManager": "API-nøgler",
"apiManagerSubtitle": "Administrer API-nøgler og adgang",
"embeddedServices": "Integrerede tjenester",
"embeddedServicesSubtitle": "Administrer lokale proxytjenester",
- "logs": "Logs",
+ "logs": "Logfiler",
"webhooks": "Webhooks",
"webhooksSubtitle": "Få besked om begivenheder",
"logExport": "Logeksport",
@@ -1055,7 +1059,7 @@
"presetColors": "Populære farver",
"createTheme": "Opret nyt tema...",
"chooseColor": "Vælg én farve",
- "themeCoral": "Coral",
+ "themeCoral": "Koral",
"themeBlue": "Blå",
"themeRed": "Rød",
"themeGreen": "Grøn",
@@ -1065,45 +1069,45 @@
"cliToolsShort": "Værktøjer",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "batch": "Batchjob",
+ "themeSystem": "Temasystem",
+ "whitelabelingDesc": "Beskrivelse af white-labeling",
+ "switchThemes": "Skift temaer",
+ "themeAccentDesc": "Beskrivelse af temaets accentfarve",
+ "uploadFavicon": "Upload favicon",
+ "themeDark": "Mørkt tema",
+ "customLogoDesc": "Beskrivelse af brugerdefineret logo",
+ "sidebarVisibilityToggle": "Skift synlighed for sidepanel",
+ "themeAccent": "Temaets accentfarve",
+ "resetFavicon": "Nulstil favicon",
+ "whitelabeling": "White-labeling",
+ "darkMode": "Mørk tilstand",
+ "uploadLogo": "Upload logo",
+ "themeLight": "Lyst tema",
+ "appName": "Appnavn",
+ "appNameDesc": "Beskrivelse af appnavn",
+ "resetLogo": "Nulstil logo",
+ "customFavicon": "Brugerdefineret favicon",
+ "hideHealthLogs": "Skjul sundhedslogfiler",
+ "customLogo": "Brugerdefineret logo",
+ "appearance": "Udseende",
+ "themeSelectionAria": "ARIA-label til temavalg",
+ "themeCreate": "Opret tema",
+ "customFaviconDesc": "Beskrivelse af brugerdefineret favicon",
+ "logoPreview": "Forhåndsvisning af logo",
+ "themeCustom": "Brugerdefineret tema",
+ "hideHealthLogsDesc": "Beskrivelse af skjulning af sundhedslogfiler",
+ "faviconPreview": "Forhåndsvisning af favicon",
+ "changelog": "Ændringslog",
+ "contextSection": "Kontekst og cache",
+ "contextCaveman": "Hulemand",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Motorkombinationer",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Komprimeringsindstillinger",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
@@ -1124,27 +1128,27 @@
"compressionStudioSubtitle": "Live motorkaskade",
"compressionExclusionsSubtitle": "Per-model/endpoint omgåelse",
"chaosConfigSubtitle": "Parallel udførelse med flere modeller",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Rutevalg",
+ "protocolsSection": "Protokoller",
+ "agentsAiSection": "Agenter og AI",
+ "cacheContextSection": "Cache og kontekst",
+ "analyticsSection": "Analyse",
+ "costsSection": "Omkostninger",
+ "monitoringSection": "Overvågning",
+ "auditSecuritySection": "Revision og sikkerhed",
+ "devtoolsSection": "Udviklerværktøjer",
+ "configurationSection": "Konfiguration",
+ "aiFeaturesSection": "AI-funktioner",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Plugins",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
+ "apiEndpoints": "API-endepunkter",
+ "batchFiles": "Filer",
+ "analyticsEvals": "Evalueringer",
+ "analyticsSearch": "Søgning",
+ "analyticsUtilization": "Udnyttelse",
+ "analyticsComboHealth": "Combo-status",
+ "analyticsCompression": "Komprimering",
"costsBudget": "Budget",
"costsFreeTiers": "Gratisniveau-budget",
"costsFreeTiersSubtitle": "Månedlige gratis token-tildelinger",
@@ -1152,117 +1156,117 @@
"freeProviderRankingsSubtitle": "Bedste gratis udbydere rangeret efter model-ELO-scorer",
"radar": "Radar Katalog",
"radarSubtitle": "Samfundsberiget gratis modelkatalog",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Deling af kvoter",
+ "costsPricing": "Prissætning",
+ "logsProxy": "Proxylogfiler",
+ "logsConsole": "Konsol",
+ "logsActivity": "Aktivitet",
+ "auditMcp": "MCP-revision",
"auditA2a": "A2A revision",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Udseende",
+ "settingsAi": "AI-indstillinger",
+ "settingsSecurity": "Sikkerhed",
"settingsAccessTokens": "Adgangstokens",
"settingsFeatureFlags": "Feature Flag",
"settingsCache": "Cache",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "Godkendelse",
+ "settingsRouting": "Rutevalg",
+ "settingsResilience": "Robusthed",
"modelLockout": "Modeludelukkelse",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Avanceret",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Udbyderkvote",
+ "providerQuota": "Udbyderkvote",
+ "runtime": "Kørselsmiljø",
+ "consoleLogs": "Konsollogfiler",
+ "logsTimeline": "Tidslinje",
"logsTimelineSubtitle": "Visuel anmodnings tidslinje",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Samtaler",
+ "conversationsSubtitle": "Agentbaserede samtaler med flere runder",
+ "globalRouting": "Global routing",
+ "mitmProxy": "MITM-proxy",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Agentbaserede funktioner",
+ "otherFeaturesSection": "Andre funktioner",
+ "compressionContextGroup": "Kontekstkomprimering",
+ "gamificationGroup": "Gamificering",
+ "toolsGroup": "Værktøjer",
+ "integrationsGroup": "Integrationer",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
+ "costsParametersGroup": "Omkostningsparametre",
+ "auditGroup": "Revision",
"batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
+ "homeSubtitle": "Oversigt over dashboard",
+ "providersSubtitle": "Administrer AI-udbydere",
+ "quotaTrackerSubtitle": "Spor forbrugsgrænser",
+ "providerQuotaSubtitle": "Spor udbydernes forbrugsgrænser",
+ "runtimeSubtitle": "Modstandsdygtighed og sessioner i realtid",
+ "contextCombosSubtitle": "Kombiner komprimeringsmotorer",
+ "cliToolsSubtitle": "Konfigurer CLI-kørselsmiljøer",
+ "agentsSubtitle": "Administrer lokale agenter",
+ "cloudAgentsSubtitle": "Administrer cloudbaserede agenter",
+ "apiEndpointsSubtitle": "Gør brugerdefinerede slutpunkter tilgængelige",
+ "proxySubtitle": "HTTP-proxyindstillinger",
+ "mitmProxySubtitle": "MITM-opfangning",
+ "oneProxySubtitle": "Offentlig proxygateway",
+ "leaderboard": "Rangliste",
+ "profile": "Profil",
"tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "gamificationAdmin": "Administration af gamification",
+ "leaderboardSubtitle": "Placeringer og præstationer",
+ "profileSubtitle": "Konto og præferencer",
+ "tokensSubtitle": "Tokenforbrug og budgetter",
+ "gamificationAdminSubtitle": "Overvågning af uregelmæssigheder og anti-cheat",
+ "usageSubtitle": "Trafik- og brugsstatistik",
+ "analyticsComboHealthSubtitle": "Kombinationsmålets pålidelighed",
+ "analyticsUtilizationSubtitle": "Udbyderudnyttelse",
+ "costsSubtitle": "Fordeling af udgifter",
+ "cacheSubtitle": "Cachetræfrater",
+ "analyticsCompressionSubtitle": "Statistik over tokenbesparelser",
+ "analyticsSearchSubtitle": "Analyse af søgeværktøj",
+ "analyticsEvalsSubtitle": "Resultater fra evalueringspakke",
"providerStats": "Udbyderstatistik",
"providerStatsSubtitle": "Latens- og ydeevnemålinger",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Applikationslogfiler",
+ "logsProxySubtitle": "Logfiler for proxytrafik",
+ "consoleLogsSubtitle": "Konsoloutput",
+ "logsActivitySubtitle": "Brugeraktivitetslog",
+ "healthSubtitle": "Systemtilstandskontrol",
+ "costsPricingSubtitle": "Prissætningsregler pr. model",
+ "costsBudgetSubtitle": "Budgetgrænser",
+ "costsQuotaShareSubtitle": "Del udbyderkvoter på tværs af nøgler",
+ "auditLogSubtitle": "Godkendelsesrevision",
+ "auditMcpSubtitle": "Revision af MCP-server",
+ "auditA2aSubtitle": "Revision af A2A-protokol",
+ "translatorSubtitle": "Formatkonvertering",
+ "playgroundSubtitle": "Test prompter live",
+ "searchToolsSubtitle": "Register over søgeværktøjer",
+ "memorySubtitle": "Permanent agenthukommelse",
+ "omniSkillsSubtitle": "Register over sandbox-færdigheder",
+ "agentSkillsSubtitle": "Register over A2A-færdigheder",
+ "mcpSubtitle": "MCP-serverstyring",
+ "a2aSubtitle": "A2A-protokolserver",
"pluginsSubtitle": "Plugin-markedsplads og installationer",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Cachelagrede mediefiler",
+ "batchFilesSubtitle": "Batchinput-/outputfiler",
+ "settingsSubtitle": "Alle indstillinger",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Tema og layout",
+ "settingsAiSubtitle": "Standardindstillinger for AI-adfærd",
+ "globalRoutingSubtitle": "Globale routingregler",
+ "settingsResilienceSubtitle": "Gentagne forsøg og afbrydere",
+ "settingsAdvancedSubtitle": "Indstillinger for superbrugere",
+ "settingsSecuritySubtitle": "Godkendelse og kryptering",
"settingsAccessTokensSubtitle": "Afgrænsede CLI-tokens til fjerntilstand",
"settingsFeatureFlagsSubtitle": "Skift systemfunktioner",
"settingsCacheSubtitle": "Modelkatalog og responscache",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Sidebjælke",
+ "settingsSidebarSubtitle": "Tilpas sidebjælkens layout",
"settingsAuthzSubtitle": "Ruteoversigt og bypass-politik",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Dokumentation",
+ "issuesSubtitle": "Rapportér en fejl",
+ "changelogSubtitle": "Udgivelsesnoter",
"costsQuotaPlans": "Planer og kvoter",
"costsQuotaPlansSubtitle": "Konfigurer planer efter udbyder",
"activity": "Aktivitet",
@@ -1271,11 +1275,11 @@
"systemGroup": "System",
"costsOverview": "Oversigt",
"costsOverviewSubtitle": "Konsolideret omkostningsanalyse",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Agentbro",
"agentBridgeSubtitle": "Opsnap IDE-agenttrafik",
"trafficInspector": "Trafikinspektør",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Undersøg anmodnings- og svartrafik fra dine apps",
+ "trafficInspectorPurpose": "Se præcis, hvad din applikation sender til og modtager fra AI-udbydere. Fungerer med enhver OpenAI-kompatibel klient.",
"cliCode": "CLI-kode",
"cliCodeSubtitle": "Kodeværktøjer, der peger på OmniRoute",
"cliAgents": "CLI-agenter",
@@ -1291,7 +1295,7 @@
"dragReorderItem": "Træk for at omarrangere",
"cannotHide": "Dette element kan ikke skjules",
"alwaysVisible": "Altid synlig",
- "groupSeparatorLabel": "Separator",
+ "groupSeparatorLabel": "Skillelinje",
"discovery": "Opdagelse",
"discoverySubtitle": "Scan udbydere for gratis adgang",
"conductor": "Konduktør",
@@ -1323,7 +1327,7 @@
"name": "Navn",
"namePlaceholder": "Produktionsovervågning",
"unnamedWebhook": "Unavngiven webhook",
- "url": "Endpoint URL",
+ "url": "Slutpunkt-URL",
"events": "Begivenheder",
"allEvents": "Alle arrangementer",
"secret": "Hemmelighed",
@@ -1341,7 +1345,7 @@
"refresh": "Opdater",
"loading": "Indlæser webhooks...",
"never": "Aldrig",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {ingen fejl} one {# fejl} other {# fejl}}",
"testWebhook": "Send test",
"testSuccess": "Testwebhook blev sendt.",
"testFailed": "Test webhook mislykkedes.",
@@ -1389,7 +1393,7 @@
"empty": "Ingen leveringer registreret endnu. Udløs en begivenhed eller send a test-payload.",
"status": "Status",
"event": "Begivenhed",
- "latency": "Latency",
+ "latency": "Ventetid",
"at": "Sendt"
},
"kinds": {
@@ -1451,7 +1455,7 @@
"auditDescription": "Gennemgå overholdelseshændelser og MCP-værktøjsopkald fra én operationel visning.",
"complianceTab": "Overholdelse",
"mcpTab": "MCP revision",
- "title": "Compliance Audit",
+ "title": "Overholdelsesrevision",
"description": "Politik-, adgangs-, udbyder- og sikkerhedshændelser registreret af overholdelsesrevisionsloggen.",
"eventType": "Begivenhedstype",
"eventTypePlaceholder": "Filtrer efter handling eller begivenhedstype",
@@ -1577,22 +1581,22 @@
"language": "Sprog",
"providers": "Udbydere",
"providerDescription": "Administrer dine AI-udbyderforbindelser",
- "combos": "Combos",
+ "combos": "Kombinationer",
"comboDescription": "Modelkombinationer med fallback",
"usage": "Brug & Analytics",
"usageDescription": "Overvåg dit API-brug, tokenforbrug og anmodningslogfiler",
- "analytics": "Analytics",
+ "analytics": "Analyse",
"analyticsDescription": "Diagrammer, tendenser og evalueringsindsigter",
"cliTools": "CLI værktøjer",
"cliToolsDescription": "Konfigurer CLI-værktøjer",
"home": "Hjem",
"homeDescription": "Velkommen til OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Slutpunkter",
+ "endpointDescription": "Administrer proxy-slutpunkter, MCP-, A2A- og API-slutpunkter",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Administration af Model Context Protocol-servere og -værktøjer",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Opgaver og observerbarhed for Agent-to-Agent-protokollen",
"settings": "Indstillinger",
"settingsDescription": "Administrer dine præferencer",
"openaiCompatible": "OpenAI-kompatibel",
@@ -1601,49 +1605,49 @@
"mediaDescription": "Generer billeder, videoer og musik",
"themes": "Temaer",
"themesDescription": "Vælg et farvetema til hele dashboardpanelet",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "costsDescription": "Spor udgifter, analysér tendenser, og administrer dit AI-budget på tværs af alle udbydere",
+ "cacheDescription": "Overvåg effektiviteten af udbydernes promptcache og lokal semantisk genbrug af svar.",
+ "limitsDescription": "Konfigurer hastighedsbegrænsninger og kvoter pr. API-nøgle og udbyder",
+ "runtimeDescription": "Løbende observerbarhed i realtid — kredsløbsafbrydere, nedkølingsperioder, modelspærringer, sessioner og kvoteadvarsler",
+ "apiManagerDescription": "Administrer API-nøgler og adgangskontrol for din OmniRoute-instans",
+ "batchDescription": "Behandl store mængder anmodninger asynkront med batchvise API-kald",
+ "contextCavemanDescription": "Regelbaseret meddelelseskomprimering, sprogpakker, analyse og styring af outputtilstand.",
+ "contextRtkDescription": "Kommandobevidst komprimering af værktøjsoutput, terminallogfiler og buildresultater.",
+ "contextCombosDescription": "Definer, hvordan motorer kombineres i forskellige routingscenarier.",
+ "changelogDescription": "Hold dig opdateret om de nyeste platformsfunktioner og meddelelser.",
+ "agentsDescription": "Administrer og konfigurer AI-agentværktøjer: Codex, Devin, Jules og brugerdefinerede agenter",
+ "cloudAgentsDescription": "Orkestrer cloudbaserede AI-agenter med løbende opgavesporing og plangodkendelse",
+ "memoryDescription": "Vedvarende samtalehukommelse med semantisk søgning og FTS5-fuldtekstindeksering",
+ "skillsDescription": "Installer og administrer sandbox-færdigheder til automatiseret kørsel af prompts og værktøjer",
+ "agentSkillsDescription": "Agentklart katalog over færdigheder med kopiering af URL med ét klik til integration med AI-klienter",
+ "translatorDescription": "Oversæt og test prompts på tværs af API-formater: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Test prompts interaktivt med live-svar fra udbydere og formatinspektion",
+ "searchToolsDescription": "Søgeanalyse, udbyderfordeling, cachetræfrater og omkostningssporing",
+ "logsDescription": "Anmodningslogfiler i realtid, fejlsporing og inspektion af streaminghændelser",
+ "auditDescription": "Compliance-revisionsspor for brug af API-nøgler, MCP-værktøjskald og politikhændelser",
+ "webhooksDescription": "Konfigurer webhook-slutpunkter til at modtage hændelsesnotifikationer i realtid",
+ "healthDescription": "Oversigt over systemtilstand: udbydere, kredsløbsafbrydere, hastighedsgrænser og database",
+ "proxyDescription": "Konfigurer indstillinger for upstream-proxy til udgående udbyderforbindelser",
+ "apiEndpointsDescription": "Administrer brugerdefinerede konfigurationer af API-slutpunkter og routingtilsidesættelser",
+ "batchFilesDescription": "Gennemse og administrer outputfiler og resultater fra batchjobs",
+ "analyticsEvalsDescription": "Resultater af modelevaluering og ydeevnebenchmarks",
+ "analyticsSearchDescription": "Analyse af søgeforespørgsler, cachetræfrater og omkostningssporing",
+ "analyticsUtilizationDescription": "Målinger af udbyderudnyttelse og kapacitetsplanlægning",
+ "analyticsComboHealthDescription": "Tilstand og ydeevne i realtid for kombinerede routingkonfigurationer",
+ "analyticsCompressionDescription": "Analyse af kontekstkomprimering og tokenbesparelser",
+ "costsBudgetDescription": "Budgetgrænser og forbrugsadvarsler pr. API-nøgle og udbyder",
+ "costsPricingDescription": "Brugerdefineret priskonfiguration til beregning af tokenomkostninger",
+ "logsProxyDescription": "Anmodningslogfiler for upstream-proxy og trafikinspektion",
+ "logsConsoleDescription": "Konsoloutput og fejlfindingslogfiler fra applikationen",
+ "logsActivityDescription": "Revisionsspor for brugerhandlinger og systemhændelser",
+ "auditMcpDescription": "Revisionsspor for MCP-værktøjskald og compliance-registreringer",
"auditA2a": "A2A revision",
"auditA2aDescription": "A2A opgaveudførelse revisionsspor, tilstandsovergange og registreringer af færdighedskald",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Tema, branding og visuel tilpasning",
+ "settingsAiDescription": "AI-adfærd, tænkningsbudgetter, syn og hukommelsesindstillinger",
"settingsCacheDescription": "TTL for modelkatalog cacheposter",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Indstillinger for godkendelse, autorisation og adgangskontrol",
"featureFlags": "Feature Flag",
"featureFlagsDescription": "Styresystemfunktioner og eksperimentelle funktioner",
"featureFlagsActive": "{count} aktiv",
@@ -1654,7 +1658,7 @@
"featureFlagsCategorySecurity": "Sikkerhed",
"featureFlagsCategoryNetwork": "Netværk",
"featureFlagsCategoryPolicies": "Politikker",
- "featureFlagsCategoryRuntime": "Runtime",
+ "featureFlagsCategoryRuntime": "Kørselstid",
"featureFlagsCategoryCli": "CLI",
"featureFlagsCategoryHealth": "Sundhed",
"featureFlagsSourceDb": "DB",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Ingen flag matcher din søgning",
"featureFlagsSaved": "Flag opdateret",
"featureFlagsError": "Flag kunne ikke opdateres",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Routingregler, modelaliasser, standarder for kombinationer og indstillinger for nedgradering",
+ "settingsResilienceDescription": "Konfiguration af kredsløbsafbryder, nye forsøg og fallback",
+ "settingsAdvancedDescription": "Avancerede payloadregler, anmodningsgrænser og proxy-API-indstillinger",
+ "mitmProxyDescription": "Konfigurer MITM-proxyindstillinger til trafikinspektion og fejlfinding",
+ "oneProxyDescription": "Konfigurer 1Proxy-indstillinger til avanceret proxykædning",
"omniSkillsDescription": "Installer og administrer sandbox-færdigheder til automatiseret prompt- og værktøjsafvikling"
},
"cloudSyncStatus": {
@@ -1687,14 +1691,14 @@
},
"breadcrumbs": {
"ariaLabel": "Brødkrumme",
- "dashboard": "Dashboard",
+ "dashboard": "Kontrolpanel",
"providers": "Udbydere",
"combos": "Kombinationer",
"settings": "Indstillinger",
"general": "Generelt",
"appearance": "Udseende",
"ai": "AI-indstillinger",
- "routing": "Routing",
+ "routing": "Rutevalg",
"resilience": "Robusthed",
"advanced": "Avanceret",
"accessTokens": "Adgangstokens",
@@ -1702,9 +1706,9 @@
"logs": "Logfiler",
"auditLog": "Auditlog",
"console": "Konsol",
- "logger": "Logger",
+ "logger": "Logføring",
"translator": "Oversætter",
- "playground": "Playground",
+ "playground": "Testmiljø",
"add": "Tilføj",
"edit": "Rediger",
"apiKeys": "API-nøgler",
@@ -1713,14 +1717,14 @@
"cliAgents": "CLI-agenter",
"acpAgents": "ACP-agenter",
"endpoint": "Endepunkt",
- "apiManager": "API Manager",
+ "apiManager": "API-administrator",
"context": "Kontekst",
"compression": "Komprimering",
"services": "Tjenester",
"analytics": "Analyse",
"costs": "Omkostninger",
"health": "Sundhed",
- "runtime": "Runtime",
+ "runtime": "Kørselsmiljø",
"webhooks": "Webhooks",
"home": "Hjem",
"activity": "Aktivitet",
@@ -1730,22 +1734,22 @@
"search": "Søg",
"utilization": "Udnyttelse",
"apiEndpoints": "API-endepunkter",
- "audit": "Audit",
+ "audit": "Revision",
"a2a": "A2A",
"mcp": "MCP",
"batch": "Batch",
"files": "Filer",
"media": "Medier",
"cache": "Cache",
- "changelog": "Changelog",
+ "changelog": "Ændringslog",
"chaos": "Kaos",
"cloudAgents": "Cloud-agenter",
"live": "Live",
"studio": "Studio",
"aggressive": "Aggressiv",
- "caveman": "Caveman",
+ "caveman": "Hulemand",
"ccr": "CCR",
- "headroom": "Headroom",
+ "headroom": "Råderum",
"lite": "Lite",
"llmlingua": "LLMLingua",
"omniglyph": "OmniGlyph",
@@ -1758,17 +1762,17 @@
"discovery": "Opdagelse",
"freeProviderRankings": "Rangliste over gratis udbydere",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Opsætning",
"freeTiers": "Gratis niveauer",
"gamification": "Gamificering",
- "leaderboard": "Leaderboard",
+ "leaderboard": "Rangliste",
"limits": "Grænser",
"profile": "Profil",
"plugins": "Plugins",
"providerStats": "Udbyderstatistik",
"new": "Ny",
"quota": "Kvote",
- "relay": "Relay",
+ "relay": "Relæ",
"searchTools": "Søgeværktøjer",
"security": "Sikkerhed",
"sidebar": "Sidebjælke",
@@ -1808,7 +1812,7 @@
"reportIssue": "Rapportér problem",
"activeError": "{active} aktiv · {errors} fejl",
"topologyLegendActive": "Aktiv",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Seneste",
"topologyLegendError": "Fejl",
"oauthLabel": "OAuth",
"apiKeyLabel": "API nøgle",
@@ -1822,16 +1826,16 @@
"updateStarted": "Opdatering startet...",
"reloadingPageAutomatically": "Genindlæser siden automatisk...",
"providerTopology": "Udbydertopologi",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
- "downloadDmg": "Download DMG (macOS)",
+ "recentRequests": "Seneste anmodninger",
+ "recentRequestsEmpty": "Ingen anmodninger endnu.",
+ "recentRequestsModel": "Model",
+ "recentRequestsTokens": "Ind / ud",
+ "recentRequestsWhen": "Hvornår",
+ "downloadDmg": "Hent DMG (macOS)",
"downloadDmgDescription": "En ny version af OmniRoute desktopappen er tilgængelig. Download og installer venligst macOS DMG-installationsprogrammet for at opdatere (nuværende: v{version}).",
- "downloadExe": "Download EXE (Windows)",
+ "downloadExe": "Hent EXE (Windows)",
"downloadExeDescription": "En ny version af OmniRoute desktop-appen er tilgængelig. Download og installer venligst Windows EXE-installationsprogrammet for at opdatere (nuværende: v{version}).",
- "downloadAppImage": "Download AppImage (Linux)",
+ "downloadAppImage": "Hent AppImage (Linux)",
"downloadAppImageDescription": "En ny version af OmniRoute desktop-appen er tilgængelig. Download venligst Linux AppImage-pakken for at opdatere (nuværende: v{version}).",
"downloadUpdate": "Download Opdatering",
"downloadUpdateDescription": "En ny version af OmniRoute desktop-appen er tilgængelig. Download venligst det respektive app-format til dit system for at opdatere (aktuel: v{version}).",
@@ -1884,18 +1888,18 @@
"releaseNotes": "Udgivelsesnoter",
"readMore": "Læs Mere",
"noAuthLabel": "Ingen godkendelse",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Gør klar til at dirigere",
+ "readinessTitle": "Send din første anmodning",
+ "readinessSubtitle": "Fire små trin. OmniRoute kontrollerer undervejs, om alt er klar.",
+ "readinessStep1": "Forbind en udbyder",
+ "readinessStep2": "Konfigurer godkendelse af slutpunkt",
+ "readinessStep3": "Kopiér dit slutpunkt",
+ "readinessStep4": "Send en testanmodning",
+ "readinessContinue": "Fortsæt opsætningen",
+ "readinessDismiss": "Afvis indtil videre"
},
"analytics": {
- "title": "Analytics",
+ "title": "Analyse",
"usageAnalyticsTitle": "Forbrugsanalyser",
"diversityScoreTitle": "Udbyder mangfoldighed",
"diversityScoreDesc": "Øjebliksbillede af udbyderkoncentration for det seneste trafikvindue.",
@@ -1910,7 +1914,7 @@
"chartRequests": "Anmodninger",
"chartInput": "Input",
"chartOutput": "Output",
- "chartTotal": "Total",
+ "chartTotal": "I alt",
"chartCost": "Omkostninger",
"chartShare": "Andel",
"chartServiceTier": "Serviceniveau",
@@ -1963,7 +1967,7 @@
"period7D": "7D",
"period30D": "30D",
"period90D": "90D",
- "periodYTD": "YTD",
+ "periodYTD": "ÅTD",
"periodAll": "Alle",
"totalTokens": "Tokens i alt",
"inputTokens": "Input-tokens",
@@ -1989,7 +1993,7 @@
"overviewDescription": "Overvåg dine API-brugsmønstre, tokenforbrug, omkostninger og aktivitetstendenser på tværs af alle udbydere og modeller.",
"evalsDescription": "Kør evalueringspakker for at teste og validere dine LLM-endepunkter. Sammenlign modelkvalitet, detekter regressioner og benchmark-forsinkelse.",
"overview": "Oversigt",
- "evals": "Evals",
+ "evals": "Evalueringer",
"search": "Søg",
"utilization": "Udnyttelse",
"routeTrace": "Rutesporing",
@@ -2001,12 +2005,12 @@
"modelStatusError": "Fejl",
"comboHealth": "Kombosundhed",
"comboHealthDescription": "Komboniveaudkvote, fordeling af brug og ydeevnemålinger",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Komprimeringsanalyse",
+ "compressionAnalyticsDescription": "Komprimeringsanalyse — tokenbesparelser, fordeling efter tilstand og udbyderstatistik.",
"autoRoutingTotalAutoRequests": "Samlede automatiske anmodninger",
"autoRoutingAvgSelectionScore": "Gns. selektionsscore",
"autoRoutingExplorationRate": "Efterforskningshastighed",
- "autoRoutingLkgpHitRate": "LKGP Hit Rate",
+ "autoRoutingLkgpHitRate": "LKGP-træfrate",
"autoRoutingRequestsByVariant": "Forespørgsler efter variant",
"autoRoutingTopRoutedProviders": "Top-rutede udbydere",
"comboHealthWorstQuotaLeft": "Værste kvote tilbage",
@@ -2019,7 +2023,7 @@
"comboHealthTotalRequests": "Samlet antal anmodninger",
"comboHealthExecutionTargets": "Udførelsesmål",
"comboHealthSuccess": "Succes",
- "comboHealthLatency": "Latency",
+ "comboHealthLatency": "Svartid",
"comboHealthQuota": "Kvote",
"comboHealthTitle": "Kombineret sundhed",
"comboHealthUnableToLoad": "Kan ikke indlæse combo-sundhed",
@@ -2038,7 +2042,7 @@
"comboHealthTraffic": "trafik",
"comboHealthProjectedQuota": "Projekteret kvote",
"comboHealthPricingCoverage": "Prisdækning",
- "comboHealthAutopilotTitle": "Combo Health Autopilot",
+ "comboHealthAutopilotTitle": "Autopilot for kombinationsstatus",
"comboHealthAutopilotDescription": "Prioriterede anbefalinger fra combo-sundhed, prognoser, kvoter og udbydersundhed.",
"comboHealthIssues": "Problemer",
"comboHealthActionable": "{count} der kræver handling",
@@ -2055,17 +2059,17 @@
"quota": "Kvote",
"health": "Sundhed",
"costInv": "Omkostning",
- "latencyInv": "Latency",
- "taskFit": "Task fit",
+ "latencyInv": "Svartid",
+ "taskFit": "Opgaveegnethed",
"stability": "Stabilitet",
- "tierPriority": "Tier",
- "tierAffinity": "Tier fit",
+ "tierPriority": "Niveau",
+ "tierAffinity": "Niveauegnethed",
"specificityMatch": "Specificitet",
"contextAffinity": "Kontekst",
"resetWindowAffinity": "Nulstillingsvindue"
},
"comboHealthQuotaValue": "Kvote {value}",
- "comboHealthLatencyValue": "Latency {value}ms",
+ "comboHealthLatencyValue": "Svartid {value} ms",
"comboHealthIssueCount": "Problemer {count}",
"comboHealthNoInspectableTargets": "Ingen inspicerbare mål for denne combo.",
"comboHealthAutopilotState": {
@@ -2088,9 +2092,9 @@
"comboHealthPerformance": "Ydeevne",
"comboHealthPerformanceDescription": "Pålidelighed og gennemstrømning for dirigeret combo-trafik.",
"comboHealthExecutionTargetsDescription": "Kørselstidsmetrikker på trinniveau og kvotesynlighed for strukturerede combo-mål.",
- "comboHealthRequestShort": "{count} req",
+ "comboHealthRequestShort": "{count} anm.",
"comboHealthQuotaScope": "Kvoteområde: {scope}",
- "comboHealthTrendValue": "Trend: {trend}",
+ "comboHealthTrendValue": "Tendens: {trend}",
"comboHealthFetchFailed": "Kunne ikke hente sundhedsdata for combo",
"unknownError": "Ukendt fejl",
"comboHealthIntro": "Overvåg kvotepres, skæv modelbrug og leveringsydeevne efter combo.",
@@ -2106,7 +2110,7 @@
"compressionAnalyticsAvgSavings": "Gnsn. besparelse",
"compressionAnalyticsAvgDuration": "Gns. varighed",
"compressionAnalyticsReceipts": "Kvitteringer",
- "compressionAnalyticsFallbacks": "Fallbacks",
+ "compressionAnalyticsFallbacks": "Reserveløsninger",
"compressionAnalyticsPromptTokens": "Spørg tokens",
"compressionAnalyticsCompletionTokens": "Fuldførelsestokens",
"compressionAnalyticsTotalTokens": "Samlede tokens",
@@ -2184,7 +2188,7 @@
"routeRuntimeScoreNow": "Runtime-score nu",
"routeWouldSelectNow": "Ville vælge nu",
"routeNoRecomputeCandidates": "Ingen rangering af combo-kandidater kan genberegnes for denne anmodning.",
- "runtime": "Runtime",
+ "runtime": "Kørselstid",
"routeTopNow": "Top nu",
"routeFetchLogsFailed": "Kunne ikke hente anmodningslogs",
"routeExplainFailed": "Kunne ikke forklare rute",
@@ -2203,7 +2207,7 @@
"model": "Model",
"account": "Konto",
"connection": "Forbindelse",
- "combo": "Combo",
+ "combo": "Kombination",
"routeStep": "Trin",
"tokens": "Tokens",
"notAvailable": "i/t",
@@ -2254,9 +2258,9 @@
"fullAccess": "Fuld adgang",
"keyManagement": "API nøglestyring",
"keyManagementDesc": "Opret og administrer API-nøgler til godkendelse af anmodninger til dit slutpunkt",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Din app sender anmodninger via en API-nøgle til OmniRoute",
+ "requestFlowYourApp": "Din app",
+ "requestFlowApiKey": "API-nøgle",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Totalnøgler",
"restricted": "Begrænset",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Kopiér og gem denne nøgle nu – den vises ikke igen.",
"done": "Færdig",
"savePermissions": "Gem tilladelser",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Tilladte endpoints",
+ "allEndpointsAllowed": "Denne nøgle har adgang til alle API-endpoints.",
+ "endpointsRestricted": "Begrænset til {count} endpoint{count, plural, one {} other {s}}.",
+ "autoResolve": "Automatisk fortolkning",
+ "autoResolveDesc": "Fortolk automatisk tvetydige modelnavne som den oprindelige udbyder for denne API-nøgle.",
"streamDefaultMode": "Standardkompatibilitet for streaming",
"streamDefaultModeDesc": "Styrer udeladte `stream`-flag for denne nøgle. JSON-tilstand returnerer ikke-streamende svar, medmindre klienten eksplicit anmoder om SSE.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Ældre",
"streamDefaultJson": "JSON-kompatibel",
"streamDefaultBadge": "JSON-streamstandard",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Nøgle aktiv",
+ "keyActiveDesc": "Aktivér eller deaktiver denne API-nøgle. Deaktiverede nøgler afvises straks med 403.",
+ "accessSchedule": "Adgangsplan",
+ "accessScheduleDesc": "Begræns adgang til bestemte tidspunkter og ugedage.",
+ "scheduleFrom": "Fra",
+ "scheduleUntil": "Til",
+ "scheduleDays": "Dage",
+ "scheduleTimezone": "Tidszone",
+ "scheduleTimezoneHint": "Brug IANA-tidszonenavne, f.eks. America/New_York, Europe/Berlin",
+ "scheduleActive": "Tidsplan",
+ "disabled": "Deaktiveret",
+ "daySun": "Søn",
+ "dayMon": "Man",
+ "dayTue": "Tir",
+ "dayWed": "Ons",
+ "dayThu": "Tor",
+ "dayFri": "Fre",
+ "daySat": "Lør",
"allowAll": "Tillad alle",
"restrict": "Begræns",
"allowAllInfo": "Denne nøgle kan få adgang til alle tilgængelige modeller.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Kunne ikke opdatere tilladelser. Prøv venligst igen.",
"unknownProvider": "ukendt",
"copyMaskedKey": "Kopiér maskeret nøgle",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Den fulde nøgle er kun tilgængelig ved oprettelsen — kopiér den, når du opretter nøglen første gang",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# enhed} other {# enheder}}",
"devicesTooltip": "{count, plural, one {# unik IP/User-Agent-enhed set med denne nøgle (sidste 30 min)} other {# unikke IP/User-Agent-enheder set med denne nøgle (sidste 30 min)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Tilladte kombinationer",
"allCombosAllowed": "Denne nøgle kan bruge enhver kombination.",
"restrictedComboCount": "Begrænset til {count, plural, one {# kombination} other {# kombinationer}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# gemt post er} other {# gemte poster er}} ikke på denne kombinationsliste (f.eks. routingregler) og bevares som gemt.",
+ "preservedComboRuleHint": "Bevares som gemt. Denne post er ikke en kombination på listen ovenfor og kan derfor kun ændres via API'et.",
"apiManagerCustomRateLimits": "Brugerdefinerede satsgrænser",
"apiManagerCustomRateLimitsDesc": "Tilsidesæt globale standardgrænser. Lad være tom for at bruge standardindstillinger.",
"apiManagerRateLimitRequestsPlaceholder": "Forespørgsler",
@@ -2415,15 +2419,15 @@
"bypassProviderQuota": "Omgå udbyderens kvotegrænser",
"bypassProviderQuotaDescription": "Tillader denne nøgle at ignorere upstream-udbyderens/kontoens grænsepolitik under routing. API-nøglens USD-kvoter gælder stadig.",
"quotaPill": "KVOTE",
- "quotaModeOnly": "qtSd-only",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "quotaModeOnly": "Kun qtSd",
+ "exclusiveLease": "Eksklusiv leje",
+ "exclusiveLeaseNoticeTitle": "Eksklusiv leje",
+ "exclusiveLeaseNoticeDesc": "Denne API-nøgle har eksklusive lejerettigheder til dedikeret forbindelsesrouting.",
+ "allConnections": "Alle forbindelser",
+ "onlySelectedConnections": "Kun valgte forbindelser",
+ "selectAtLeastOneConnection": "Vælg mindst én forbindelse, eller vælg Alle forbindelser.",
+ "allConnectionsDesc": "Denne nøgle kan bruge enhver aktiv forbindelse.",
+ "restrictedToConnections": "Begrænset til {count, plural, one {# forbindelse} other {# forbindelser}}."
},
"auditLog": {
"title": "Revisionslog",
@@ -2453,16 +2457,16 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Generer",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Genererer...",
+ "loadingModels": "Indlæser tilgængelige modeller...",
+ "noModels": "Ingen modeller er tilgængelige. Konfigurer først udbydere med mediefunktioner.",
+ "error": "Generering mislykkedes",
+ "result": "Resultat",
+ "imageDescription": "Generer billeder ud fra tekstprompter med OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI og flere.",
+ "videoDescription": "Opret videoer med AnimateDiff, Stable Video Diffusion via ComfyUI eller SD WebUI.",
+ "musicDescription": "Komponer musik med Stable Audio Open eller MusicGen via ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Indlejring",
"image": "Billede",
"imageToText": "Billede til tekst",
"tts": "Tekst til tale",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "OpenRouter tale-til-tekst modeller bruger din konfigurerede OpenRouter forbindelse. Ingen separate legitimationsoplysninger er nødvendige."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Søgeforespørgsel",
+ "searchResults": "Søgeresultater",
+ "cachedResult": "Cachelagret",
+ "searchCost": "Pris",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Avanceret søgetest med sammenligning af udbydere",
+ "compareProviders": "Sammenlign udbydere",
+ "rerankResults": "Omrangér resultater",
+ "searchHistory": "Søgehistorik",
+ "urlOverlap": "URL-overlap",
+ "noSearchProviders": "Ingen søgeudbydere er konfigureret. Tilføj udbydere under Indstillinger.",
+ "noRerankModels": "Ingen model til omrangering er tilgængelig",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Udbyder",
+ "searchType": "Søgetype",
+ "maxResults": "Maks. antal resultater",
+ "filters": "Filtre",
+ "country": "Land",
+ "language": "Sprog",
+ "timeRange": "Tidsinterval",
+ "includeDomains": "Inkluder domæner",
+ "excludeDomains": "Ekskluder domæner",
+ "safeSearch": "Sikker søgning",
+ "safeSearchOff": "Fra",
+ "safeSearchModerate": "Moderat",
+ "safeSearchStrict": "Streng",
+ "queryPlaceholder": "Indtast søgeforespørgsel...",
+ "providerAuto": "automatisk (billigst)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "nyheder",
+ "optionAny": "alle",
+ "timeRangeDay": "Seneste døgn",
+ "timeRangeWeek": "Seneste uge",
+ "timeRangeMonth": "Seneste måned",
+ "timeRangeYear": "Seneste år",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Anmodningen fik timeout ({seconds}s)",
+ "networkError": "Netværksfejl",
+ "formatted": "Formateret",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "ikke fundet i cache",
+ "cacheHit": "fundet i cache",
+ "latency": "Svartid",
+ "cost": "Pris",
+ "results": "Resultater",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Model til omrangering",
+ "positionDelta": "Ændring i placering",
+ "emptyState": "Send en søgeforespørgsel for at se resultater",
"copy": "Kopiér",
"resetToDefault": "Nulstil til standard",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Søg",
+ "tabScrape": "Skrab",
+ "tabCompare": "Sammenlign",
+ "modalitiesGuide": "Guide til modaliteter",
+ "searchConceptTitle": "Søgning",
+ "searchConceptDesc": "Søgning = henter en liste over webresultater (titel, URL, uddrag, relevansscore)",
+ "scrapeConceptTitle": "Skrabning",
+ "scrapeConceptDesc": "Skrabning = udtrækker hele indholdet fra en URL (markdown, tekst eller HTML)",
+ "compareConceptTitle": "Sammenligning",
+ "compareConceptDesc": "Sammenligning = kører den samme forespørgsel hos N udbydere side om side for at sammenligne svartid, pris og overlap mellem resultater",
+ "rerankConceptTitle": "Omrangering",
+ "rerankConceptDesc": "Omrangering = ændrer rækkefølgen af resultater via LLM for at forbedre relevansen baseret på forespørgslen",
+ "autoConceptTitle": "Automatisk (billigst)",
+ "autoConceptDesc": "Automatisk (billigst) = vælger automatisk den billigste tilgængelige udbyder med konfigurerede legitimationsoplysninger",
+ "providerCatalogTitle": "Udbyderkatalog",
+ "kindSearch": "Søg",
+ "kindFetch": "Hent/skrabe",
+ "statusConfigured": "Konfigureret",
+ "statusMissing": "Ingen legitimationsoplysninger",
+ "statusRateLimited": "Hastighedsbegrænset",
+ "configureProvider": "Konfigurer under Udbydere",
+ "loadingProviders": "Indlæser udbydere…",
+ "failedToLoadProviders": "Kunne ikke indlæse udbydere",
+ "costPerQuery": "Pris/forespørgsel",
+ "freeQuota": "Gratis kvote/md.",
+ "scrapeUrl": "URL, der skal skrabes",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL er påkrævet",
"scrapeUrlInvalid": "Ugyldig URL — den skal starte med http:// eller https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
+ "scrapeExtract": "Udtræk",
+ "scrapeExtracting": "Udtrækker…",
+ "scrapeFullPage": "Hele siden",
"scrapeFormat": "Format",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
+ "formatText": "Tekst",
+ "scrapePreview": "Forhåndsvisning",
+ "scrapeRaw": "Rådata",
+ "scrapeContentTruncated": "(afkortet, se rådata)",
"scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "scrapeProvider": "Udbyder",
+ "scrapeSize": "Størrelse",
"scrapeEmptyState": "Indtast en URL for at udtrække dens indhold",
"scrapeProvidersAvailable": "Tilgængelige udbydere: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
+ "compareRun": "Sammenlign",
+ "compareRunning": "Sammenligner…",
+ "autoProvider": "Auto (billigst)",
+ "configuredStatus": "Konfigureret",
+ "rateLimitedStatus": "Hastighedsbegrænset",
+ "noCredential": "Ingen legitimationsoplysninger",
"searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "rerankModelLabel": "Genrangeringsmodel",
+ "noneOption": "Ingen",
+ "size": "Størrelse",
"configurationPane": "Konfigurationspanel",
"configuration": "Konfiguration",
"status": "Status",
@@ -2660,7 +2664,7 @@
"httpError": "Fejl {status}",
"failed": "Mislykkedes",
"requestFailed": "Anmodning mislykkedes",
- "embedding": "Embedding",
+ "embedding": "Indlejring",
"embeddingSample": "Hej, verden!",
"image": "Billede",
"imageSample": "Et fredfyldt landskab med bjerge ved solnedgang",
@@ -2704,7 +2708,7 @@
"classifierCompatLoadFailed": "Kunne ikke indlæse indstilling",
"classifierCompatMode": {
"off": "Fra",
- "auto": "Auto",
+ "auto": "Automatisk",
"always": "Altid"
},
"ccDiscoveryInfoButton": "Sådan aktiveres opdagelse i Claude Code",
@@ -2737,7 +2741,7 @@
"effortMedium": "Mellem",
"effortHigh": "Høj",
"effortExtraHigh": "Ekstra høj",
- "effortMax": "Max",
+ "effortMax": "Maks.",
"effortUltra": "Ultra",
"wireApi": "Wire API",
"modelAliases": "Modelaliasser",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Tilføj",
"antigravityStep2Suffix": "til din hosts-fil som 127.0.0.1.",
"antigravityStep3": "3. Åbn Antigravity og anmodninger vil blive fuldført.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} sender anmodninger til sit provider-slutpunkt. MITM opfanger og omdirigerer dem til OmniRoute.",
+ "mitmStep1": "1. Start MITM for at dirigere anmodninger gennem OmniRoute.",
+ "mitmStep2Prefix": "2. Føj",
+ "mitmStep2Suffix": "til din hosts-fil som 127.0.0.1.",
+ "mitmStep3": "3. Åbn {toolName}, hvorefter anmodningerne videresendes via proxy.",
"sudoPasswordRequiredTitle": "Sudo-adgangskode påkrævet",
"sudoPasswordHint": "Administratoradgangskode er påkrævet for at ændre værtsfil- og systemproxyindstillinger.",
"enterSudoPassword": "Indtast sudo adgangskode",
@@ -2865,7 +2869,7 @@
"provider": "Udbyder",
"model": "Model",
"providers": "Udbydere",
- "auth": "Auth",
+ "auth": "Godkendelse",
"noApiKeysAvailable": "Ingen tilgængelige API-nøgler",
"usingDefaultOmniroute": "Bruger standard: sk_omniroute",
"updateConfig": "Opdater konfiguration",
@@ -2904,7 +2908,7 @@
"continue": "Brug, når du kører Continue i IDE'er, og du har brug for bærbar JSON-baseret udbyderkonfiguration.",
"opencode": "Brug, når du foretrækker terminal-native agentkørsler og scriptet automatisering via OpenCode.",
"kiro": "Bruges ved integration af Kiro og styring af modelrouting centralt fra OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Brug dette, når du ønsker et AI-fokuseret IDE med Codeium/Windsurf-modeller dirigeret gennem OmniRoute.",
"antigravity": "Bruges, når Antigravity/Kiro-trafik skal opsnappes gennem MITM og dirigeres til OmniRoute.",
"copilot": "Brug, når du ønsker Copilot-chatstil UX, mens du håndhæver OmniRoute-nøgler og routingregler.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2917,18 +2921,18 @@
"claude": "Antropisk Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "xAI Grok Build TUI-kodningsagent med understøttelse af brugerdefineret udbyder",
- "droid": "Factory Droid AI Assistant",
+ "droid": "Factory Droid AI-assistent",
"openclaw": "Åbn Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
+ "cline": "Cline AI-kodningsassistent til CLI",
"kilo": "Kilokode AI Assistant CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
"continue": "Fortsæt AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "OpenCode AI-kodningsagent (terminal)",
+ "kiro": "Amazon Kiro — AI-drevet IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "Sourcegraph Amp-kodningsassistent til CLI",
"hermes": "Hermes AI terminalassistent",
"hermes-agent": "Hermes Agent (af Nousresearch) - Avanceret terminal-AI med understøttelse af flere modeller (delegation, vision, komprimering osv.)",
"custom": "Generisk OpenAI-kompatibel CLI- eller SDK-konfigurationsgenerator",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter autonom kodningsagent-CLI",
"omp": "Oh My Pi terminal-kodningsagent",
"letta": "Letta CLI-agent med persistent hukommelse og brug af værktøjer",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — selvforbedrende RLM-kodningsramme med understøttelse af OpenAI-kompatible providere",
"warp": "Warp AI-terminal med understøttelse af brugerdefineret udbyder",
"agent-deck": "Agent Deck multi-agent-orkestrator",
"5dive": "5dive — selv-hostet flåde af kodningsagenter; én auth-profil peger dem alle mod OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Installer OpenCode",
+ "desc": "Installer via npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API-nøgle"
},
"3": {
- "title": "Set Base URL",
+ "title": "Angiv basis-URL",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Vælg model"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Brug tænkningsvariant",
+ "desc": "For tænkningsmodeller skal du køre med --variant high/low/max (se eksempelkommandoen nedenfor)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Åbn Kiro-indstillinger",
+ "desc": "Gå til Indstillinger → AI-provider"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Basis-URL",
+ "desc": "Indsæt URL'en til dit OmniRoute-slutpunkt"
},
"3": {
- "title": "API Key"
+ "title": "API-nøgle"
},
"4": {
- "title": "Select Model"
+ "title": "Vælg model"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Åbn AI-indstillinger",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Tilføj brugerdefineret provider",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Basis-URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API-nøgle",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Vælg model",
+ "desc": "Vælg en model i rullemenuen"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Brugerdefineret CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Værktøjskategorier",
"visibleToolsCount": "{count} tilgængelige værktøjer",
"customCliBuilderTitle": "OpenAI-kompatibel CLI-bygger",
"customCliBuilderDescription": "Generer env vars og JSON-uddrag for enhver CLI eller SDK, der accepterer en OpenAI-kompatibel basis-URL, API-nøgle og model-id.",
@@ -3098,7 +3102,7 @@
"customCliTargetModelLabel": "Målmodel",
"customCliEndpointHintLabel": "Sådan tilsluttes endepunktet",
"customCliEndpointHint": "Peg enhver OpenAI-kompatibel klient til OmniRoute /v1-basis-URL'en. Slutpunktet for fuldførelse af rå chat er {endpoint}. Brug JSON-blokken, når værktøjet ønsker et udbyderobjekt, eller env-scriptet, når det læser OPENAI_*-variabler.",
- "customCliEnvBlockTitle": "Env / shell snippet",
+ "customCliEnvBlockTitle": "Miljø-/shell-kodestykke",
"customCliJsonBlockTitle": "Udbyder JSON blok",
"networkError": "Netværksfejl",
"other": "Andet",
@@ -3108,7 +3112,7 @@
"hermesRoleDefaultDesc": "Primær samtalemodel",
"hermesRoleDelegation": "Delegation (subagenter)",
"hermesRoleDelegationDesc": "Orkestrator- og underagentmodel",
- "hermesRoleVision": "Vision",
+ "hermesRoleVision": "Billedforståelse",
"hermesRoleVisionDesc": "Billed- og skærmbilledeforståelse",
"hermesRoleCompression": "Komprimering",
"hermesRoleCompressionDesc": "Prompt-komprimering og opsummering",
@@ -3126,9 +3130,9 @@
"hermesRoleMemoryQueryRewriteDesc": "Hukommelsessøgning forespørgselsomskrivning",
"hermesRoleTtsAudioTags": "TTS Lyd Tags",
"hermesRoleTtsAudioTagsDesc": "TTS lydtaggenerering",
- "hermesRoleTriageSpecifier": "Triage Specifier",
+ "hermesRoleTriageSpecifier": "Triage-specifikator",
"hermesRoleTriageSpecifierDesc": "Specifikation for issue- og PR-triage",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Kanban-dekomponering",
"hermesRoleKanbanDecomposerDesc": "Kanban opgave nedbrydning",
"hermesRoleProfileDescriber": "Profilbeskriver",
"hermesRoleProfileDescriberDesc": "Brugerprofilbeskrivelse",
@@ -3155,7 +3159,7 @@
"hermesRolesWillUpdate": "{count, plural, one {# rolle vil blive opdateret} other {# roller vil blive opdateret}}",
"hermesPreviewPath": "Forhåndsvisning — vil skrive til ~/.hermes/config.yaml",
"hermesSaveDescription": "Gemmer den valgte model for hver rolle i",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "GitHub Copilot-konfigurationsgenerator",
"copilotGeneratorDescriptionPrefix": "Genererer",
"copilotGeneratorDescriptionSuffix": "blokken til VS Code GitHub Copilot ved hjælp af Azure-leverandørmønsteret. Vælg de modeller, du ønsker, og kopier derefter JSON-koden ind i din konfigurationsfil.",
"copilotCompatibilityWarning": "Denne konfiguration bruger Azure-leverandøromvejen til brugerdefinerede modellister. Testet med omniglyph-tilstand. Dette er en forhåndsvisning og forbliver deaktiveret som standard, indtil end-to-end-validering er fuldført.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Komprimeringsprofil",
+ "profileDescription": "Profilen er et loft, ikke et gulv: En strengere profil kan ikke åbnes igen af en tilsidesættelse for et enkelt trin. Målt på denne kodebase: Med coding-safe eller balanced komprimerer en session, der endnu ikke har akkumuleret historik, intet, fordi begge hæver minimumsgrænsen for antal tegn og bevarer systemprompten, værktøjsskemaerne og værktøjsresultaterne i deres oprindelige format.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressiv (standard)",
+ "description": "Den politik, som de offentliggjorte kvitteringer målte. Omdanner systemprompten, værktøjsdokumentationen og den omfattende historik til billeder."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Balanceret",
+ "description": "Bevarer den aktive tilstand i oprindeligt format og beskytter de seneste 8 ture; kun ældre, afsluttet historik komprimeres."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Kodningssikker",
+ "description": "Bevarer autoritet, værktøjsskemaer og aktive værktøjsoutput i oprindeligt format og beskytter de seneste 12 ture. Komprimerer intet, før sessionen har akkumuleret historik."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Direkte videresendelse",
+ "description": "Router uden at transformere. Motoren springes over, og anmodningen videresendes uændret."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Vælg OmniGlyph-komprimeringsprofilen",
"saved": "Gemt.",
"saveFailed": "Kunne ikke gemme.",
"enableAria": "Aktiver OmniGlyph-motoren",
@@ -8826,7 +8837,7 @@
"updating": "Opdaterer…",
"install": "Installer",
"installing": "Installerer…",
- "autoStart": "Auto-start",
+ "autoStart": "Automatisk start",
"autoStartDescription": "Start {name} automatisk, når OmniRoute starter",
"apiKey": "API-nøgle",
"apiKeyDescription": "Nøgle, der bruges af OmniRoute til at godkende over for {name}",
@@ -8869,11 +8880,11 @@
"providerExposureHint": "Når aktiveret, vises opdagede modeller i udbydervælgere på tværs af OmniRoute.",
"providerExposureUpdateFailed": "Kunne ikke opdatere (HTTP {status})",
"providerExposureNetworkFailed": "Netværksfejl — kunne ikke opdatere indstillingen for udbydereksponering",
- "webUi": "9Router Web UI",
+ "webUi": "9Router-webbrugerflade",
"openNewTab": "Åbn i ny fane",
"filterLogs": "Filtrer logfiler…",
"resume": "Genoptag",
- "pause": "Pause",
+ "pause": "Sæt på pause",
"clear": "Ryd",
"download": "Download",
"noLogs": "Ingen logudskrift endnu.",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Regelbaseret meddelelseskomprimering, sprogpakker, analyse og styring af outputtilstand.",
"advancedConfig": "Avanceret konfiguration",
"advancedConfigDesc": "Finjuster kompressionsadfærd",
"aggressiveSettings": "Aggressive indstillinger",
"aggressiveSettingsDesc": "Maksimal komprimering med potentielle kvalitetsafvejninger",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Anmodninger",
+ "tokensSaved": "Sparede tokens",
+ "savingsPercent": "Besparelse i %",
+ "avgLatency": "Gns. latenstid",
+ "languagePacks": "Sprogpakker",
+ "languagePacksDesc": "Aktivér komprimeringsregler for bestemte sprog.",
"labelAutoTrigger": "Auto-komprimer, når konteksten overskrider",
"labelCompressionRate": "Kompressionsstyrke",
"labelMaxTokens": "Mål tokens pr. besked",
"labelMinLength": "Minimum beskedlængde",
"labelMinSavings": "Minimum tokens at gemme",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Aktiveret",
+ "autoDetect": "Registrér sprog automatisk",
+ "rulesCount": "{count} regler",
"inputCompressionTitle": "Inputkomprimering",
"inputCompressionDesc": "Omskriv chathistorik med kortere formuleringer. Reducerer input-tokens med ~50 %.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Komprimeringsanalyse",
+ "noAnalytics": "Ingen komprimeringsanalyse endnu.",
"masterDisabledWarning": "Hovedafbryderen for Token Saver er deaktiveret — disse indstillinger vil ikke påvirke anmodninger, før du aktiverer den under Komprimeringsindstillinger eller ændrer det her.",
"outputMode": "Udgangstilstand",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Outputtilstand",
"quickSettings": "Hurtige indstillinger",
"quickSettingsDesc": "Grundlæggende komprimeringsindstillinger for at komme i gang",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Automatisk omgåelse ved klarhed",
+ "bypassConditions": "Betingelser for omgåelse",
"bypassConditionsList": "sikkerhed, irreversibel, afklaring, ordrefølsom",
"simpleMode": "Simpelt",
"advancedMode": "Avanceret",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra-indstillinger",
"ultraSettingsDesc": "SLM-drevet semantisk komprimering",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Svar kortfattet. Bevar tekniske termer, kode, fejl, URLs og identifikatorer.",
+ "full": "Svar kort og kompakt. Bevar alt teknisk indhold.",
+ "ultra": "Svar ultrakort med almindelige tekniske forkortelser. Bevar de nøjagtige symboler."
}
},
"translator": {
@@ -8954,7 +8965,7 @@
"realtime": "Oversættelsesaktivitet i realtid",
"chatTester": "Chat tester",
"testBench": "Test bænk",
- "liveMonitor": "Live Monitor",
+ "liveMonitor": "Liveovervågning",
"modeDescriptionPlayground": "Indsæt enhver API-anmodningstekst og se, hvordan OmniRoute oversætter den mellem udbyderformater (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
"modeDescriptionChatTester": "Send rigtige chatanmodninger gennem OmniRoute og inspicer hele rundrejsen: input, oversat anmodning, udbydersvar og oversat output.",
"modeDescriptionTestBench": "Kør foruddefinerede scenarier og sammenlign kompatibilitet på tværs af udbydere og modeller.",
@@ -8967,7 +8978,7 @@
"time": "Tid",
"model": "Model",
"status": "Status",
- "latency": "Latency",
+ "latency": "Latenstid",
"totalTranslations": "Samlede oversættelser",
"successful": "Vellykket",
"errors": "Fejl",
@@ -8983,13 +8994,13 @@
"ideCliIntegrations": "IDE/CLI integrationer",
"inMemoryNote": "Bemærk: Hændelser gemmes i hukommelsen og nulstilles, når serveren genstarter.",
"ok": "OK",
- "errorShort": "ERR",
+ "errorShort": "FEJL",
"formatConverter": "Formatkonverter",
"formatConverterDescription": "Indsæt eller skriv en JSON-anmodningstekst. Oversætteren vil automatisk registrere kildeformatet og konvertere det til målformatet. Brug dette til at fejlsøge, hvordan OmniRoute oversætter anmodninger mellem formater (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (mellemliggende) → {target}",
"translationPathDirect": "{source} → {target} (direkte oversætter)",
"translationPathPassthrough": "Samme format - ingen oversættelse nødvendig",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "OpenAI-mellemresultat",
"autoFeaturesTitle": "Hvad OmniRoute gør automatisk",
"autoFeaturesCount": "8 funktioner",
"featureReasoningCache": "Begrundelse Cache",
@@ -9000,7 +9011,7 @@
"featureRoleNormalizationDesc": "Kortudvikler→system til ikke-OpenAI-mål. Kortsystem→bruger til modeller, der ikke understøtter systemrollen.",
"featureToolCallIds": "Værktøj Call ID Normalization",
"featureToolCallIdsDesc": "Genererer unikke tool_call ID'er, når de mangler. Normaliserer til 9-char format for udbydere som Mistral.",
- "featureMissingToolResponse": "Tool Response Injection",
+ "featureMissingToolResponse": "Indsættelse af værktøjssvar",
"featureMissingToolResponseDesc": "Injicerer tomme tool_result-meddelelser, når klienter sender tool_calls uden tilsvarende svar.",
"featureThinkingBudget": "Tænkende budget",
"featureThinkingBudgetDesc": "Administrerer automatisk tankekonfiguration. Fjerner tænkeparametre, når den sidste besked ikke er fra brugeren.",
@@ -9008,8 +9019,8 @@
"featureDirectPathsDesc": "Nogle formatpar (Claude → Gemini) har direkte oversættere, der omgår OpenAI-hubben og producerer mere nøjagtigt output.",
"featureImageMapping": "Kortlægning af billedstørrelse",
"featureImageMappingDesc": "Oversætter billeddimensionskonventioner mellem API-formater (f.eks. OpenAI-detaljeniveauer → Gemini-dimensioner).",
- "input": "Input",
- "output": "Output",
+ "input": "Inddata",
+ "output": "Uddata",
"auto": "Auto",
"swapFormats": "Skift formater",
"translateAction": "Oversæt",
@@ -9043,7 +9054,7 @@
"thinking": "Tænker",
"system-prompt": "Systemprompt",
"streaming": "Streaming",
- "vision": "Vision",
+ "vision": "Billedforståelse",
"schema-coercion": "Skema tvang"
},
"templateDescriptions": {
@@ -9097,7 +9108,7 @@
"anthropicCompatibleLabel": "Antropisk kompatibel",
"noTemplateForFormat": "Ingen skabelon til dette format",
"translationFailed": "Oversættelse mislykkedes: {error}",
- "pipelineDebugger": "Pipeline Debugger",
+ "pipelineDebugger": "Pipeline-fejlfinding",
"translationPipeline": "Oversættelsesrørledning",
"loading": "Indlæser…",
"compressionOriginal": "Original",
@@ -9110,7 +9121,7 @@
"pipelineVisualization": "Pipeline visualisering",
"pipelineVisualizationHint": "Send en besked for at se, hvordan din anmodning flyder gennem registrering → oversættelse → udbyderopkald.",
"chatTesterDescription": "Send beskeder som et specifikt klientformat og inspicér hvert trin i oversættelsespipelinen.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
+ "chatTesterFlow": "Klientanmodning → Formatregistrering → OpenAI-mellemformat → Udbyderformat → Svar",
"clickStepToInspect": "Klik på et trin for at inspicere dataene på det tidspunkt.",
"clientFormat": "Klientformat",
"provider": "Udbyder",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "Anmodningslegemet, som din klient ville sende det",
"formatDetected": "Format fundet",
"formatDetectedDescription": "OmniRoute registrerer automatisk API-formatet fra anmodningsstrukturen",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "OpenAI-mellemformat",
"openaiIntermediateDescription": "Alle formater normaliseres først til OpenAI-format (den universelle bro)",
"providerFormat": "Udbyder format",
"providerFormatDescription": "OpenAI-formatet er oversat til udbyderens oprindelige format",
@@ -9166,7 +9177,7 @@
"comboRouted": "Combo dirigeret",
"uniqueEndpoints": "Unikke endepunkter",
"routeDetails": "Rutedetaljer",
- "comboBadge": "Combo",
+ "comboBadge": "Kombination",
"routeEndpointLabel": "Slutpunkt",
"routeConnectionLabel": "Forbindelse",
"scenarioVision": "Vision (billedforståelse)",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Indsæt en JSON-anmodning; formatet registreres automatisk.",
"advancedPipelineTitle": "OpenAI mellemliggende pipeline",
"advancedPipelineSubtitle": "Visualiser hvert oversættelsestrin (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Stream-transformer (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Konverterer Chat Completions SSE til Responses API.",
"advancedTestBenchTitle": "Testbænk (8 scenarier)",
"advancedTestBenchSubtitle": "Kører alle scenarier og rapporterer bestået/ikke bestået + kompatibilitetsprocent.",
@@ -9228,7 +9239,7 @@
"pipelineStepClientRequestDesc": "Anmodning modtaget i klientformat",
"pipelineStepFormatDetected": "Format registreret",
"pipelineStepFormatDetectedDesc": "Automatisk registreret kildeformat",
- "pipelineStepOpenAIIntermediate": "OpenAI Intermediate",
+ "pipelineStepOpenAIIntermediate": "OpenAI-mellemformat",
"pipelineStepOpenAIIntermediateDesc": "Oversat til OpenAI-hubformat",
"pipelineStepProviderFormat": "Udbyderformat",
"pipelineStepProviderFormatDesc": "Oversat til udbyderens målformat",
@@ -9249,7 +9260,7 @@
"tokens": "tokens",
"pauseAutoRefresh": "Pause automatisk opdatering",
"resumeAutoRefresh": "Genoptag automatisk opdatering",
- "live": "Live",
+ "live": "Direkte",
"copyInput": "Kopiér input",
"copyOutput": "Kopiér output",
"streamTransformFailed": "Kunne ikke transformere stream"
@@ -9273,17 +9284,17 @@
"kiloPassRemaining": "Tilbageværende",
"kiloPassRenews": "Fornyes om {count} dage",
"kiloPassUsageLabel": "Denne måneds forbrug",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Ekstra forbrugskreditter",
+ "kimiExtraUsage": "Ekstra forbrug",
+ "kimiExtraUsageEnabled": "Aktiveret",
+ "kimiExtraUsageDisabled": "Deaktiveret",
+ "kimiExtraUsageFrozen": "Frosset",
+ "kimiExtraUsageUnavailable": "Ikke tilgængelig",
+ "kimiMonthlyUsed": "Brugt denne måned",
+ "kimiMonthlyLimit": "Månedlig grænse",
+ "kimiMonthlyLimitUnlimited": "Ubegrænset",
+ "kimiAdditionalCredits": "Yderligere kreditter",
+ "loggerTab": "Logføring",
"proxyTab": "Fuldmagt",
"budgetManagement": "Budgetstyring",
"budgetSaved": "Budgetgrænser gemt",
@@ -9306,7 +9317,7 @@
"budgetExceeded": "Budget overskredet — anmodninger kan blive blokeret",
"totalRequests": "Samlet antal anmodninger",
"noDataYet": "Ingen data endnu",
- "latency": "Latency",
+ "latency": "Ventetid",
"latencyP50": "p50",
"latencyP95": "s95",
"latencyP99": "s99",
@@ -9316,11 +9327,11 @@
"activeCount": "{count} aktiv",
"openCircuitBreakersDetected": "Åbne afbrydere registreret",
"hitRate": "Hitrate",
- "hitsMisses": "Hits / Misses",
+ "hitsMisses": "Træffere / bommere",
"circuitBreakers": "Strømafbrydere",
"lockedIPs": "Låste IP'er",
"lockoutsAutoRefreshHint": "Låse for hastighedsbegrænsning pr. model • Automatisk opdatering 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# låst} other {# låst}}",
"timeLeft": "{time} tilbage",
"howItWorks": "Hvordan det virker",
"howItWorksSubtitle": "Lær, hvordan evalueringer validerer dine LLM-svar",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Svar sammenlignes med forventede kriterier. Se bestået/ikke bestået for hver sag med latency-metrics og detaljeret feedback.",
"evalsStrategyContainsLabel": "Indeholder",
"evalsStrategyExactLabel": "Eksakt match",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Regulært udtryk",
"evalsStrategyCustomLabel": "Brugerdefineret logik",
"evalsStrategyContainsDescription": "Kontrollerer, om LLM-outputtet indeholder den forventede delstreng.",
"evalsStrategyExactDescription": "Kontrollerer, om LLM-outputtet matcher den forventede værdi nøjagtigt.",
@@ -9350,13 +9361,13 @@
"noEvalSuitesDescription": "Eval-suiter kan defineres via API'et eller i kode. De tester modeloutput mod forventede resultater ved hjælp af strategier som indeholder, regex, eksakt match og brugerdefinerede funktioner.",
"columnCase": "Sag",
"columnStatus": "Status",
- "columnLatency": "Latency",
+ "columnLatency": "Ventetid",
"columnDetails": "Detaljer",
"columnModel": "Model",
"columnStrategy": "Strategi",
"columnExpected": "Forventet",
"statsSuites": "Suiter",
- "statsTestCases": "Test Cases",
+ "statsTestCases": "Testcases",
"statsModels": "Modeller",
"statsCoverage": "Dækning",
"statsStrategiesCount": "{count} strategier",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Modeller under test",
"searchSuitesPlaceholder": "Søg suiter...",
"passSuffix": "bestå",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# testcase} other {# testcases}}",
"runEval": "Kør Eval",
"runAllSuites": "Kør alle",
"runAllRunning": "Kører alle...",
"runAllProgress": "Kører {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# testsamling mislykkedes} other {# testsamlinger mislykkedes}}",
"runAllCompleted": "Kørte {suites} suiter — {passed} bestået, {failed} mislykkedes",
"runAllCompletedWithFailures": "Kørte {completed} suiter; {failedSuites} kunne ikke fuldføres",
"runningProgress": "Kører {current}/{total}...",
@@ -9393,14 +9404,14 @@
"notifyAllCasesPassed": "Alle {total} sager bestået ✅",
"notifySomeCasesFailed": "{passed}/{total} bestået, {failed} mislykkedes",
"notifyEvalRunFailed": "Evalkørsel mislykkedes",
- "notifyEvalTitle": "Eval: {name}",
+ "notifyEvalTitle": "Evaluering: {name}",
"modelEvals": "Modelvurderinger",
"evalsHeroDescription": "Test og valider dine LLM-endepunkter ved at køre foruddefinerede evalueringspakker. Hver suite indeholder testcases, der sender reelle prompter gennem OmniRoute og sammenligner svar med forventede kriterier - hjælper dig med at opdage regression, sammenligne modeller og sikre svarkvalitet på tværs af udbydere.",
"qualityValidation": "Kvalitetsvalidering",
"modelComparison": "Model sammenligning",
"regressionDetection": "Regression detektion",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
+ "latencyBenchmarks": "Benchmarks for ventetid",
+ "modelLockouts": "Modelspærringer",
"noLockouts": "Ingen modeller er låst i øjeblikket",
"activeSessions": "Aktive sessioner",
"noSessions": "Ingen aktive sessioner",
@@ -9419,7 +9430,7 @@
"providerLimits": "Udbydergrænser",
"noProviders": "Ingen udbydere tilsluttet",
"connectProvidersForQuota": "Opret forbindelse til udbydere med OAuth for at spore dine API-kvotegrænser og brug.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# konto} other {# konti}}",
"filteredFromCount": "(filtreret fra {count})",
"autoRefresh": "Automatisk opdatering",
"refreshAll": "Opdater alle",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Kunne ikke opdatere kvotesynlighed",
"account": "Konto",
"modelQuotas": "Modelkvoter",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Senest opdateret",
"actions": "Handlinger",
"refreshQuota": "Opdater kvote",
"today": "I dag",
@@ -9448,13 +9459,13 @@
"cardExpand": "Udvid",
"cardCollapse": "Sammenfold",
"moreQuotas": "+{count} flere",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Ikke-grupperet",
+ "viewFlat": "Flad",
+ "viewByEnvironment": "Efter miljø",
"noQuotaDataAvailable": "Ingen tilgængelige kvotedata",
"noAccountsForTierFilter": "Der blev ikke fundet nogen konti til niveaufilter",
"tierAll": "Alle",
- "tierEnterprise": "Enterprise",
+ "tierEnterprise": "Virksomhed",
"tierTeam": "Team",
"tierBusiness": "Forretning",
"tierUltra": "Ultra",
@@ -9463,7 +9474,7 @@
"tierFree": "Gratis",
"tierLite": "Lite",
"tierUnknown": "Ukendt",
- "statTotal": "Total",
+ "statTotal": "I alt",
"statCritical": "Kritisk",
"statAlert": "Alarm",
"statHealthy": "Sund",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "Niveau",
"purchaseAll": "Alle",
"purchaseOauthSub": "Abonnement",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth gratis",
"purchaseApiKey": "API-nøgle",
"creditsLabel": "Kreditter",
"creditBalanceHint": "Resterende saldo",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Indløs kredit",
"resetCreditRedeemed": "Nulstilling indløst",
"resetCreditRedeemFailed": "Kunne ikke indløse nulstillingskredit",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Kunne ikke gemme testsamlingen",
"clone": "Klon",
"exportSuite": "Eksporter",
"importSuite": "Importer",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Ugyldig eval suite JSON",
"suiteBuilderCloneSuffix": "kopi",
"suiteBuilderImportedSuite": "Importeret Suite",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Resultatoversigt",
+ "evalApiKey": "API-nøgle",
+ "scorecardPassRate": "Beståelsesrate",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "actualOutputLabel": "Faktisk output",
+ "evalTargetHint": "Vælg en model eller kombination, der skal evalueres.",
+ "suiteBuilderDeleted": "Testsamlingen blev slettet",
+ "suiteBuilderCaseCardHint": "Definer inputprompten og kriterierne for det forventede output.",
+ "nextResetUtc": "Næste nulstilling (UTC)",
+ "scorecardHint": "Samlede beståelsesrater på tværs af alle evalueringssamlinger.",
+ "suiteLatestRunsHint": "De seneste evalueringskørsler for denne samling.",
+ "saving": "Gemmer",
+ "suiteBuilderCaseModelLabel": "Model (valgfri)",
+ "evalControlsTitle": "Evalueringsindstillinger",
+ "suiteBuilderEditTitle": "Rediger evalueringssamling",
+ "suiteBuilderCaseStrategyLabel": "Valideringsstrategi",
+ "notifySelectDifferentCompareTarget": "Vælg et andet mål til sammenligning",
+ "recentRunsHint": "Viser de seneste evalueringskørsler. Klik på en kørsel for at se detaljerede resultater.",
+ "evalCompareHint": "Sammenlign eventuelt resultaterne med et andet mål.",
+ "suiteBuilderCaseInvalid": "Denne test har valideringsfejl. Ret dem, før du gemmer.",
+ "historyEmpty": "Ingen evalueringshistorik endnu",
+ "suiteBuilderUpdated": "Evalueringssamlingen blev opdateret",
+ "resetInterval": "Nulstillingsinterval",
+ "suiteBuilderCreateTitle": "Opret evalueringssamling",
+ "activePeriodSpend": "Forbrug i den aktive periode",
+ "evalApiKeyHint": "Vælg, hvilken API-nøgle der skal bruges til evalueringsanmodninger.",
+ "evalCompareOptional": "Sammenlign (valgfrit)",
+ "suiteBuilderDeleteFailed": "Kunne ikke slette evalueringssamlingen",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Valgfri systeminstruktioner...",
+ "scorecardCases": "Tests",
+ "runCompletedWithScore": "Evaluering fuldført — {score}% bestået",
+ "suiteBuilderCustomBadge": "Brugerdefineret",
+ "targetSuiteDefaults": "Standardindstillinger for suite",
+ "suiteBuilderDeleteConfirm": "Er du sikker på, at du vil slette denne suite? Denne handling kan ikke fortrydes.",
+ "suiteBuilderNameLabel": "Suitenavn",
+ "scorecardSuites": "Suiter",
+ "evalCompareTarget": "Sammenligningsmål",
+ "suiteBuilderCaseModelPlaceholder": "f.eks. gpt-4o-mini",
+ "evalControlsHint": "Konfigurer dit evalueringsmål og din API-nøgle, og kør derefter suiter for at validere modellens kvalitet.",
+ "recentRunsTitle": "Seneste kørsler",
+ "suiteBuilderCaseSystemPromptLabel": "Systemprompt",
+ "suiteBuilderCaseExpectedPlaceholder": "f.eks. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "f.eks. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Indsæt det nøjagtige forventede svar",
"suiteBuilderCaseExpectedPlaceholderRegex": "f.eks. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Brug et regulært JavaScript-udtryk uden at ombryde skråstreger.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "f.eks. suite til kodekvalitet",
+ "suiteBuilderAddCase": "Tilføj testtilfælde",
+ "cancel": "Annuller",
+ "evalTarget": "Mål",
+ "suiteBuilderCaseNameLabel": "Navn på testtilfælde",
+ "weeklyLimitUsd": "Ugentlig grænse (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "f.eks. Skriv en fibonacci-funktion i Python",
+ "suiteBuilderNameRequired": "Suitenavn er påkrævet",
+ "suiteBuilderCaseUserPromptLabel": "Brugerprompt",
+ "daily": "Dagligt",
+ "resultErrorLabel": "Fejl",
+ "suiteBuilderBuiltInBadge": "Indbygget",
+ "suiteBuilderCaseCardTitle": "Testtilfælde",
"suiteBuilderDuplicateCase": "Duplikat",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
+ "weeklyLimitPlaceholder": "f.eks. 50.00",
+ "suiteBuilderCaseTagsHint": "Kommaseparerede tags til organisering af testtilfælde.",
+ "notifyEvalRunFailedWithReason": "Evaluering mislykkedes: {reason}",
+ "weekly": "Ugentligt",
+ "runEvalRunning": "Kører evaluering...",
+ "delete": "Slet",
+ "resetTimeUtc": "Nulstillingstidspunkt (UTC)",
+ "evalApiKeyAuto": "Automatisk (brug standard)",
+ "suiteBuilderDescriptionPlaceholder": "Valgfri beskrivelse af, hvad denne suite tester...",
+ "targetComparisonTitle": "Sammenligning af mål",
+ "save": "Gem",
+ "suiteBuilderCreated": "Suiten blev oprettet",
+ "suiteLatestRuns": "Seneste kørsler",
+ "suiteBuilderCaseExpectedLabel": "Forventet værdi",
+ "historyLatency": "Svartid",
+ "suiteBuilderCaseTagsPlaceholder": "f.eks. kodning, python",
+ "targetTypeCombo": "Kombination",
+ "scorecardPassed": "Bestået",
"suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
+ "suiteBuilderNewSuite": "Ny suite",
+ "notifyEvalLoadFailed": "Kunne ikke indlæse evalueringsdata",
+ "notConfigured": "Ikke konfigureret",
+ "suiteBuilderCaseNamePlaceholder": "f.eks. Python Fibonacci-test",
"intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "suiteBuilderCreateAction": "Opret suite",
+ "suiteBuilderCasesHint": "Hver testcase sender en prompt og validerer svaret.",
+ "suiteBuilderUpdatedAt": "Opdateret",
+ "errorBadge": "Fejl",
+ "suiteBuilderCasesTitle": "Testcases",
+ "edit": "Rediger",
+ "monthly": "Månedligt",
+ "suiteBuilderCasesRequired": "Der kræves mindst én testcase",
+ "weeklyLimitSummary": "Oversigt over ugentlig budgetgrænse",
+ "suiteBuilderDescriptionLabel": "Beskrivelse",
+ "targetComparisonHint": "Side om side-sammenligning af evalueringsresultater mellem mål.",
+ "compareCompletedWithScore": "Sammenligning fuldført — {score} % bestået",
+ "staleQuotaTooltip": "Seneste opdatering mislykkedes — viser cachelagrede data",
"quotaThresholdLabel": "Min. tilbage",
"quotaCutoffsColumnHelp": "Stop anmodninger, når den resterende kvote falder til denne procentdel eller derunder.",
"quotaCutoffsButtonDefault": "Standard",
@@ -9741,7 +9752,7 @@
"proxy": "Fuldmagt",
"level": "Niveau",
"directNative": "Direkte (native)",
- "combo": "Combo",
+ "combo": "Kombination",
"inputTokens": "jeg:",
"outputTokens": "O:"
},
@@ -9752,7 +9763,7 @@
"usageByModel": "Brug efter model",
"usageByAccount": "Brug efter konto",
"failedToLoad": "Kunne ikke indlæse brugsstatistikker.",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Tokenstatus",
"totalOAuth": "Samlet OAuth",
"healthy": "Sundt",
"warning": "Advarsel",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Systemmålinger",
"memory": "Hukommelse",
- "memoryShort": "mem",
+ "memoryShort": "huk.",
"uptime": "Oppetid",
"ariaLabel": "Systemovervågning",
"title": "Systemovervågning",
@@ -9812,8 +9823,8 @@
"signIn": "Log ind",
"enterPassword": "Indtast din adgangskode for at fortsætte",
"password": "Adgangskode",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
+ "unifiedProxy": "Samlet AI API-proxy",
+ "unifiedAiApiProxy": "Samlet AI API-proxy",
"unifiedAiApiProxyDesc": "Rut anmodninger til flere AI-udbydere gennem et enkelt slutpunkt. Belastningsbalancering, failover og brugssporing indbygget.",
"passwordNotEnabled": "Adgangskodebeskyttelse er ikke aktiveret",
"loading": "Indlæser...",
@@ -9821,7 +9832,7 @@
"errorOccurredRetry": "Der opstod en fejl. Prøv venligst igen.",
"configureInstance": "Lad os få konfigureret din OmniRoute-instans",
"runOnboardingWizard": "Kør onboarding-guiden for at konfigurere din adgangskode og oprette forbindelse til din første AI-udbyder.",
- "startOnboarding": "Start Onboarding",
+ "startOnboarding": "Start onboarding",
"secureYourInstance": "Sikre din instans",
"setPasswordDescription": "Indstil en adgangskode for at beskytte dit dashboard og sikre dine API-endepunkter mod uautoriseret adgang.",
"configurePassword": "Konfigurer adgangskode",
@@ -9859,7 +9870,7 @@
"backToLogin": "Tilbage til Login",
"forgotPassword": "Glemt adgangskode?",
"continueWithOidc": "Fortsæt med OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Standardadgangskode: CHANGEME (medmindre INITIAL_PASSWORD blev angivet)",
"Authorization": "Autorisation",
"Content-Disposition": "Indhold-Disposition",
"waitingForAuthorization": "Venter på godkendelse...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Venter på antigravity-autorisation...",
"waitingForQoderAuthorization": "Venter på Qoder-godkendelse...",
"exchangingCodeForTokens": "Udveksler kode til tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Inkompatibel Node.js-version",
+ "nodeIncompatibleDesc": "Du kører Node.js {version}, som ikke er omfattet af OmniRoutes politik for understøttede, sikre runtime-miljøer. Brug en sikkerhedsopdateret Node.js 20.x- eller 22.x LTS-version.",
+ "nodeIncompatibleFixLabel": "Løsning: Installér en sikkerhedsopdateret Node.js 22 LTS-version",
+ "nodeIncompatibleHint": "OmniRoute kræver Node.js 22.22.2+ (22.x LTS) eller 24.0.0+ (24.x LTS). Node 24 LTS anbefales.",
"resetViaAppDataTitle": "Nulstil via App Data",
"resetViaAppDataDescription": "Slet indstillingsfilen fra appdata-mappen for at nulstille din adgangskode:",
"quitDesktopApp": "Luk OmniRoute desktop-appen helt",
@@ -9939,21 +9950,21 @@
"viewOnGithub": "Se på GitHub",
"powerfulFeatures": "Kraftige funktioner",
"featuresSubtitle": "Alt hvad du behøver for at administrere din AI-infrastruktur på ét sted, bygget til skala.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
+ "featureUnifiedEndpointTitle": "Samlet slutpunkt",
"featureUnifiedEndpointDesc": "Få adgang til alle udbydere via en enkelt standard API-URL.",
"featureEasySetupTitle": "Nem opsætning",
"featureEasySetupDesc": "Kom i gang på få minutter med npx-kommandoen.",
- "featureModelFallbackTitle": "Model Fallback",
+ "featureModelFallbackTitle": "Model-fallback",
"featureModelFallbackDesc": "Skift automatisk udbyder ved fejl eller høj latenstid.",
"featureUsageTrackingTitle": "Brugssporing",
"featureUsageTrackingDesc": "Detaljerede analyser og omkostningsovervågning på tværs af alle modeller.",
"featureOAuthApiKeysTitle": "OAuth- og API-nøgler",
"featureOAuthApiKeysDesc": "Administrer legitimationsoplysninger sikkert i én boks.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Skysynkronisering",
"featureCloudSyncDesc": "Synkroniser dine konfigurationer på tværs af enheder med det samme.",
"featureCliSupportTitle": "CLI support",
"featureCliSupportDesc": "Fungerer med Claude Code, Codex, Cline, Cursor og mere.",
- "featureDashboardTitle": "Dashboard",
+ "featureDashboardTitle": "Kontrolpanel",
"featureDashboardDesc": "Visuelt dashboard til trafikanalyse i realtid.",
"howItWorks": "Sådan fungerer OmniRoute",
"howItWorksDescription": "Data flyder problemfrit fra din applikation gennem vores intelligente routing-lag til den bedste udbyder til jobbet.",
@@ -9976,14 +9987,14 @@
"copied": "✓ Kopieret",
"startingOmniRoute": "Starter OmniRoute...",
"serverRunningOnLabel": "Server kører på",
- "dashboardLabel": "Dashboard",
+ "dashboardLabel": "Kontrolpanel",
"readyToRoute": "Klar til rute! ✓",
"configureProvidersNote": "📝 Konfigurer udbydere i dashboard eller brug miljøvariabler",
"dataLocation": "Dataplacering:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
"product": "Produkt",
- "dashboardLink": "Dashboard",
+ "dashboardLink": "Kontrolpanel",
"changelog": "Ændringslog",
"resources": "Ressourcer",
"documentation": "Dokumentation",
@@ -10007,7 +10018,7 @@
"readDocumentation": "Læs dokumentation",
"company": "Virksomhed",
"pricing": "Priser",
- "apiReference": "API Reference",
+ "apiReference": "API-reference",
"helpCenter": "Hjælp Center",
"about": "Om",
"blog": "Blog",
@@ -10029,8 +10040,8 @@
"clientCompatibility": "Klientkompatibilitet",
"protocolsToc": "Protokoller",
"apiReference": "API-reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Reference til administrations-API",
+ "managementApiDescription": "Automatiseringsslutpunkter til proxyregister, omfangstildelinger og migrering af ældre proxyer.",
"method": "Metode",
"path": "Sti",
"notes": "Noter",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Brug for eksempel udbyderpræfiks",
"deploySetupTitle": "Opsætningsvejledning",
"deploySetupText": "Trin-for-trin installation, miljøkonfiguration og førstegangsgennemgang for OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron-skrivebord",
"deployElectronText": "Kør OmniRoute som en indbygget desktopapplikation på Windows, macOS og Linux.",
"deployDockerTitle": "Docker",
"deployDockerText": "Containeriseret udrulning med Docker Compose; klar til produktionsstabler og Kubernetes.",
@@ -10071,14 +10082,14 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Installer OmniRoute som en progressiv webapp på Android-, iOS- og desktopbrowsere.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
+ "deployTermuxText": "Kør OmniRoute headless på Android via Termux. Tilgå kontrolpanelet fra din mobilbrowser.",
+ "featureRoutingTitle": "Routing med flere udbydere",
"featureRoutingText": "Rut anmodninger til 30+ AI-udbydere gennem et enkelt OpenAI-kompatibelt slutpunkt. Understøtter chat, svar, lyd og billed-API'er.",
"featureCombosTitle": "Kombinationer og balancering",
"featureCombosText": "Opret modelkombinationer med fallback-kæder og balanceringsstrategier: round-robin, prioritet, tilfældig, mindst brugt og omkostningsoptimeret.",
"featureUsageTitle": "Brug og omkostningssporing",
"featureUsageText": "Tokenoptælling i realtid, omkostningsberegning pr. udbyder/model og detaljeret forbrugsopdeling efter API-nøgle og konto.",
- "featureAnalyticsTitle": "Analytics Dashboard",
+ "featureAnalyticsTitle": "Analysekontrolpanel",
"featureAnalyticsText": "Visuel analyse med diagrammer for anmodninger, tokens, fejl, latens, omkostninger og modelpopularitet over tid.",
"featureHealthTitle": "Sundhedsovervågning",
"featureHealthText": "Live-sundhedstjek, udbyderstatus, strømafbrydertilstande og automatisk hastighedsgrænsedetektering med eksponentiel backoff.",
@@ -10086,7 +10097,7 @@
"featureCliText": "Administrer IDE-konfigurationer, eksporter/importér sikkerhedskopier, find codex-profiler og konfigurer indstillinger fra dashboardet.",
"featureSecurityTitle": "Sikkerhed og politikker",
"featureSecurityText": "API-nøglegodkendelse, IP-filtrering, promptindsprøjtningsbeskyttelse, domænepolitikker, sessionsstyring og revisionslogning.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Skysynkronisering",
"featureCloudSyncText": "Synkroniser din konfiguration med Cloudflare Workers for fjernadgang med krypterede legitimationsoplysninger og automatisk failover.",
"providersAcrossConnectionTypes": "{count} udbydere på tværs af tre forbindelsestyper.",
"manageProviders": "Administrer udbydere",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Omskrivehjælper til klienter uden /v1.",
"endpointRewriteResponsesNote": "Omskriv hjælper til svar uden /v1.",
"endpointRewriteModelsNote": "Omskrivningshjælper til modelopdagelse uden /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Vis gemte elementer i proxyregistret (understøtter paginering).",
+ "mgmtProxiesCreateNote": "Opret et genanvendeligt proxyelement i registret.",
+ "mgmtProxiesHealthNote": "Hent 24-timers/løbende tilstandsmålinger pr. gemt proxy fra proxylogfiler.",
+ "mgmtProxiesBulkAssignNote": "Tildel eller fjern én proxy på tværs af mange omfangs-id'er i én anmodning.",
+ "mgmtAssignmentsListNote": "Vis proxytildelinger efter omfang, scope_id eller proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Tildel eller fjern proxy for globalt/udbyder-/konto-/kombinationsomfang.",
+ "mgmtLegacyMigrationNote": "Importér ældre proxyConfig-maps til registertildelinger.",
"modelPrefixesDescriptionStart": "Brug udbyderpræfikset før modelnavnet for at rute til en bestemt udbyder. Eksempel:",
"modelPrefixesDescriptionEnd": "ruter til GitHub Copilot.",
"provider": "Udbyder",
@@ -10229,7 +10240,7 @@
"metadataTitleTemplate": "%s — OmniRoute Doku",
"metadataDefaultTitle": "OmniRoute Dokumentation",
"metadataDescription": "Omfattende dokumentation for OmniRoute AI gateway — opsætning, API, komprimering, implementering og mere.",
- "layoutNavTitle": "OmniRoute Docs",
+ "layoutNavTitle": "OmniRoute-dokumentation",
"layoutHomeLink": "Dokumenter Hjem",
"layoutDashboardLink": "← Tilbage til Dashboard",
"homeTitle": "OmniRoute Dokumentation",
@@ -10239,7 +10250,7 @@
"homeSearchHint": "Tryk på Ctrl K for at søge i dokumentationen",
"featuredQuickStartTitle": "Hurtig Start",
"featuredQuickStartDescription": "Få OmniRoute til at køre på 3 minutter",
- "featuredAutoComboTitle": "Auto-Combo Guide",
+ "featuredAutoComboTitle": "Auto-Combo-vejledning",
"featuredAutoComboDescription": "Lad OmniRoute vælge den bedste AI til dig",
"featuredProvidersTitle": "Udbyderguide",
"featuredProvidersDescription": "Forbind AI-udbydere på få minutter",
@@ -10247,7 +10258,7 @@
"nonTechUsersSubtitle": "Kom hurtigt i gang — ingen teknisk baggrund nødvendig",
"techUsersTitle": "For Tech Brugere",
"techUsersSubtitle": "Dybdegående indblik i arkitektur, API'er og interne systemer",
- "apiExplorerMetadataTitle": "API Explorer — OmniRoute Docs",
+ "apiExplorerMetadataTitle": "API Explorer — OmniRoute-dokumentation",
"apiExplorerMetadataDescription": "Interaktiv API-udforsker — prøv OmniRoute-endepunkter live med realtids-svar",
"apiExplorerTitle": "API Udforsker",
"apiExplorerDescription": "Prøv OmniRoute-endepunkter live. Vælg et endepunkt, konfigurer din anmodning, og se svaret i realtid.",
@@ -10328,39 +10339,39 @@
"termsDataLocationText": "Brugslogfiler, API-nøgler og konfiguration gemmes i",
"termsSection5Title": "5. Ansvarsfraskrivelse",
"termsSection5Text": "OmniRoute leveres \"som den er\" uden garanti af nogen art. Vi er ikke ansvarlige for omkostninger, der påløber som følge af API-brug, serviceforstyrrelser eller tab af data. Vedligehold altid sikkerhedskopier af din konfiguration.",
- "termsSection6Title": "6. Open Source",
+ "termsSection6Title": "6. Open source",
"termsSection6Text": "OmniRoute er open source-software. Du kan frit inspicere, ændre og distribuere den i henhold til licensbetingelserne."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-agenter",
+ "description": "Find installerede CLI-agenter på dit system. Tilføj brugerdefinerede agenter til automatisk registrering.",
+ "refresh": "Opdater",
+ "installed": "Installeret",
+ "notFound": "Ikke fundet",
+ "builtIn": "Indbygget",
+ "custom": "Brugerdefineret",
+ "remove": "Fjern",
+ "addCustomAgent": "Tilføj brugerdefineret agent",
+ "addCustomAgentDesc": "Registrer ethvert CLI-værktøj til registrering. Det scannes automatisk ved opdatering.",
+ "agentName": "Agentnavn",
+ "binaryName": "Binært navn",
+ "versionCommand": "Versionskommando",
+ "spawnArgs": "Startargumenter",
+ "addAgent": "Tilføj agent",
+ "scanning": "Scanner systemet for CLI-agenter...",
+ "opencodeIntegration": "OpenCode-integration",
+ "opencodeDetected": "opencode {version} registreret",
+ "opencodeDesc": "Generér en brugsklar {configFile} med din OmniRoute-basis-URL og alle tilgængelige modeller — placér den i projektets rodmappe, og kør {command}.",
+ "downloadConfig": "Hent {file}",
+ "downloaded": "Downloadet!",
+ "setupGuideTitle": "Opsætningsvejledning",
+ "openCliTools": "Åbn CLI-værktøjer",
+ "setupGuideDetectCliTitle": "Registrer installerede CLI'er",
+ "setupGuideDetectCliDesc": "Klik på Opdater efter installation eller opdatering af en CLI, så OmniRoute kan genscanne binære filer og versioner.",
+ "setupGuideCustomAgentTitle": "Registrer brugerdefineret binær fil",
+ "setupGuideCustomAgentDesc": "Brug Tilføj brugerdefineret agent, når din CLI ikke findes på den indbyggede liste. Angiv det binære navn og versionskommandoen.",
+ "setupGuideCommandMissingTitle": "Ret 'kommandoen blev ikke fundet'",
+ "setupGuideCommandMissingDesc": "Sørg for, at CLI-kommandoen findes i PATH, åbn en ny terminalsession, og kør Opdater igen.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10469,7 +10480,7 @@
"statusFailed": "Mislykkedes",
"statusCancelled": "Annulleret",
"repositoryName": "Depotnavn",
- "repositoryUrl": "Repository URL",
+ "repositoryUrl": "URL til lager",
"branch": "Filial",
"agentDescriptions": {
"jules": "Googles autonome kodeagent",
@@ -10478,7 +10489,7 @@
"cursorCloud": "Cursors baggrunds-/cloud-agenter (officiel API-nøgle)"
},
"activityTypes": {
- "plan": "Plan",
+ "plan": "Abonnement",
"command": "Kommando",
"code_change": "Kodeændring",
"message": "Besked",
@@ -10493,7 +10504,7 @@
"thinking": "Tænker",
"tool-calling": "Værktøjsopkald",
"multi-turn": "Multivending",
- "vision": "Vision",
+ "vision": "Billedforståelse",
"schema-coercion": "Skema tvang"
},
"templateDescriptions": {
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Cacheadministration",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Opdater",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Poster i hukommelsen",
+ "memoryEntriesSub": "LRU i hukommelsen",
+ "dbEntries": "Databaseposter",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Cachetræffere",
+ "cacheHitsSub": "af {total} i alt",
+ "tokensSaved": "Sparede tokens",
+ "tokensSavedSub": "Estimeret ud fra hits",
+ "hitRate": "Hitrate",
+ "performance": "Cacheydeevne",
+ "autoRefresh": "Opdateres automatisk hvert {seconds}. sekund",
+ "hits": "Træffere",
+ "misses": "Forbier",
+ "total": "I alt",
+ "behavior": "Cacheadfærd",
+ "behaviorDeterministic": "Kun ikke-streamende anmodninger med temperature=0 caches.",
+ "behaviorBypass": "Omgå med headeren {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Standard-TTL: 30 minutter. Konfigurer via {envVar}.",
+ "idempotency": "Idempotenslag",
+ "activeDedupKeys": "Aktive deduplikeringsnøgler",
+ "dedupWindow": "Deduplikeringsvindue",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Cachen kunne ikke ryddes.",
+ "unavailable": "Cache er ikke tilgængelig",
+ "unavailableDesc": "Cachestatistikken kunne ikke hentes. Kontrollér, at serveren kører.",
"loadingCacheAria": "Indlæser cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Promptcache (hos udbyderen)",
+ "semanticCache": "Semantisk cache",
+ "promptCacheSectionDesc": "Viser aktivitet for promptcache hos udbyderen fra brugshistorikken, så du kan se, hvor cachestyring er aktiv, og hvor meget input der genbruges.",
+ "promptTrendDesc": "Anmodningsvolumen pr. time, cachedækning og cachelæsevolumen i løbet af de seneste 24 timer.",
+ "cachedRequests": "Cachede anmodninger",
+ "cachedRequests24h": "Cachede anmodninger (24 t.)",
+ "cacheHitRate": "Cachehitrate",
+ "cacheRate": "Cacheandel",
+ "cacheRateDesc": "af alle anmodninger",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Målinger for promptcache",
+ "withCacheControl": "Med cachestyring",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Genbrugsforhold for cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Estimeret besparelse",
+ "lastUpdated": "Senest opdateret",
+ "hoursTracked": "registrerede timer",
+ "busiestHour": "Travleste time",
+ "peakCacheRate": "Højeste cacheandel",
+ "trendHour": "Time",
+ "activityVolume": "Aktivitet",
+ "requestsShort": "anmodninger",
+ "inputShort": "Input",
+ "cachedShort": "Cachet",
+ "writeShort": "Skriv",
+ "resetting": "Nulstiller...",
+ "resetMetrics": "Nulstil målinger",
+ "byProvider": "Fordeling efter udbyder",
+ "providerCacheRateDesc": "Hver udbyder viser det samlede antal inputtokens, cachelæsetokens og cacheskrivetokens, så du kan kontrollere genbrugsforholdet i forhold til de rå totaler.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Anmodninger",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Cacheudvikling (24 t.)",
+ "peakCached": "Maksimalt cachelagret",
+ "cached": "Cachelagret",
+ "overview": "Oversigt",
"tableProvider": "Udbyder",
"tableModel": "Model",
"performanceTitle": "Ydeevne",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoutes egen deterministiske svarcache. Når den er aktiveret, kan gentagne ikke-streamende anmodninger med temperature=0 besvares lokalt uden at kontakte upstream-udbyderen.",
+ "semanticCacheDisabledDesc": "Den semantiske cache er deaktiveret. OmniRoute springer lokal genbrug af svar over, indtil du aktiverer den igen under Indstillinger.",
+ "semanticEntriesDesc": "Permanent gemte semantiske cacheposter, der aktuelt er lagret i SQLite. Cacheaktivitet for prompts hos udbyderen vises ikke her.",
+ "searchEntries": "Søg i poster...",
+ "search": "Søg",
+ "loading": "Indlæser...",
+ "entriesLoadError": "Kunne ikke indlæse semantiske cacheposter.",
+ "noEntries": "Ingen cacheposter fundet",
+ "noPromptCacheData": "Der er endnu ikke registreret cacheaktivitet for prompts hos udbyderen.",
+ "noTrendData": "Der er ikke registreret cacheaktivitet for prompts inden for de seneste 24 timer.",
+ "signature": "Signatur",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Oprettet",
+ "expires": "Udløber",
+ "actions": "Handlinger",
+ "deduplicatedRequests": "Deduplikerede anmodninger",
+ "savedCalls": "Sparede API-kald",
+ "totalProcessed": "Samlet antal behandlede anmodninger",
+ "disabled": "Deaktiveret",
+ "totalRequests": "Samlet antal anmodninger",
"reasoningCache": "Begrundelse Replay",
"reasoningCacheDesc": "Bevarer modeltænkning for multi-turn tool calling flows",
"reasoningEntries": "Aktive poster",
@@ -10665,16 +10676,16 @@
"minutesAgo": "{minutes}m siden",
"hoursAgo": "{hours}t siden",
"daysAgo": "{days}d siden",
- "entries": "Entries"
+ "entries": "Poster"
},
"proxyConfigModal": {
"levelGlobal": "Globalt",
"levelProvider": "Udbyder",
- "levelCombo": "Combo",
+ "levelCombo": "Kombination",
"levelKey": "Nøgle",
"levelDirect": "Direkte (ingen proxy)",
"titleGlobal": "Global proxy-konfiguration",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "{level}-proxy — {label}",
"loading": "Indlæser proxy-konfiguration...",
"inheritingFrom": "Arver fra",
"source": "Kilde",
@@ -10757,7 +10768,7 @@
"errorSessionNotInitialized": "OAuth-session ikke initialiseret. Genstart forbindelsesflowet og prøv igen.",
"errorNoAuthorizationCode": "Ingen autorisationskode fundet. Indsæt callback-URL'en eller autorisationskoden.",
"tabDeviceCode": "Enhedskode",
- "tabBrowserLogin": "Browser Login",
+ "tabBrowserLogin": "Browserlogin",
"tabImportAuthJson": "Importer auth.json",
"tabPasteApiKey": "Indsæt API-nøgle",
"windsurfPasteDescription": "I Windsurf / VS Code IDE, kør kommandoen \"Windsurf: Provide Auth Token\" fra kommando paletten (eller klik på Jupyter \"Get Windsurf Authentication Token\" knappen), kopier derefter den viste token og indsæt den nedenfor. At åbne windsurf.com/show-auth-token direkte viser kun en \"Redirecting\" side — IDE'en skal initiere flowet.",
@@ -10772,7 +10783,7 @@
"saveConnection": "Gem Forbindelse",
"gheDescription": "Indtast basis-URL'en til din GitHub Enterprise-instans (f.eks. https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise-URL",
"gheUrlRequired": "GitHub Enterprise-URL er påkrævet",
"gitlabDuoSetupTitle": "GitLab Duo OAuth opsætning",
"gitlabDuoSetupMessage": "GitLab Duo OAuth er ikke konfigureret. Registrer en OAuth-applikation på {applicationsUrl} med omdirigerings-URI {redirectUri} og scopes \"{scopes}\", og indstil derefter {clientIdEnv} (og valgfrit {clientSecretEnv}) og genstart.",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Tilslut Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Log ind med Cursor",
+ "tabImport": "Importér token",
+ "loginDescription": "Åbner Cursors browserlogin. Virker i Docker — godkend i browseren på din vært, og vend derefter tilbage hertil.",
+ "loginWithCursor": "Log ind med Cursor",
+ "startingLogin": "Starter…",
+ "waitingApproval": "Venter på godkendelse af Cursor-login…",
+ "openUrlHint": "Hvis browseren ikke åbnede:",
+ "openLoginLink": "Åbn loginside",
+ "cancelLogin": "Annuller login",
"autoDetecting": "Automatisk registrering af tokens...",
"readingFromCursor": "Læser fra Cursor IDE eller cursor-agent",
"tokensAutoDetected": "Tokens blev automatisk registreret fra Cursor IDE!",
"cursorNotDetected": "Markør-IDE blev ikke fundet. Indsæt venligst dit token manuelt.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Kører du i Docker? Brug helst Log ind med Cursor. Automatisk import fra IDE'en og cursor-agent er normalt ikke tilgængelige i containeren. Se docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Adgangstoken",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Opdateringstoken",
+ "refreshTokenPlaceholder": "Valgfrit — muliggør automatisk opdatering af token",
"required": "*",
"accessTokenPlaceholder": "Adgangstoken udfyldes automatisk...",
"machineId": "Maskin-id",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Automatisk registrering af tokens mislykkedes",
"errorEnterToken": "Indtast venligst adgangstoken",
"errorImportFailed": "Import mislykkedes",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Cursor-login kunne ikke startes",
+ "errorLoginPoll": "Cursor-login mislykkedes",
+ "errorLoginTimeout": "Tidsfristen for Cursor-login udløb — prøv igen"
},
"pricingModal": {
"title": "Priskonfiguration",
@@ -10839,9 +10850,9 @@
"selectProxy": "Vælg {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importér ældre data",
+ "bulkAssign": "Massetildel",
+ "addProxy": "Tilføj proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10851,14 +10862,14 @@
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
"test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "edit": "Rediger",
+ "delete": "Slet",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Type",
"labelFamily": "IP-familie",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automatisk (dual-stack)",
"familyIpv4": "Kun IPv4",
"familyIpv6": "Kun IPv6",
"familyHint": "Egress-adressefamilie. Auto bevarer dual-stack; IPv4/IPv6 fastlåser denne proxy til den familie (forhindrer en v4-lækage under en proxy, der kun er IPv6).",
@@ -10866,7 +10877,7 @@
"labelPort": "Havn",
"labelUsername": "Brugernavn",
"labelPassword": "Adgangskode",
- "labelRegion": "Region",
+ "labelRegion": "Område",
"labelStatus": "Status",
"labelNotes": "Noter",
"usernamePlaceholderEdit": "Lad stå tomt for at beholde det nuværende brugernavn",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Mislykkedes",
"successRate": "{rate} % succes",
"avgLatency": "{latency} ms i gennemsnit",
"assignmentsCount": "{count} opgaver",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Reparer",
"relayAuthMissing": "godkendelse mangler",
@@ -10920,7 +10931,7 @@
"bulkImport": "Bulk import",
"bulkImportTitle": "Bulk import fuldmagter",
"bulkImportDescription": "Indsæt proxy-profiler ved hjælp af pipe-separeret format. En proxy pr. linje. Eksisterende proxyer (samme vært + port) vil blive opdateret.",
- "bulkImportParse": "Parse",
+ "bulkImportParse": "Fortolk",
"bulkImportImport": "Importer {count} proxyer",
"bulkImportImporting": "Importerer...",
"bulkImportParsed": "{count} proxyer parset",
@@ -10953,10 +10964,13 @@
"poolStrategyFailed": "Kunne ikke opdatere rotationsstrategien",
"strategyRoundRobin": "Round-robin",
"strategyRandom": "Tilfældig",
- "strategySticky": "Sticky",
+ "strategySticky": "Vedvarende",
"strategyLatency": "Latensoptimeret",
"poolMembersLabel": "Pool-medlemmer ({count})",
"poolNoMembers": "Ingen proxyer i denne pool endnu.",
+ "poolEgressObservation": "{exits, plural, one {# udgang} other {# udgange}} brugt af {connections, plural, one {# forbindelse} other {# forbindelser}} · op til {max} på én udgang · seneste {hours} t.",
+ "poolEgressObservationEmpty": "Ingen trafik observeret inden for de seneste {hours} t.",
+ "poolEgressObservationHint": "Optalt fra proxyloggen i tidsrummet: særskilte udgående IP-adresser observeret for medlemmerne af denne pulje samt de OmniRoute-forbindelser, der brugte dem. \"På én udgang\" betyder i løbet af tidsrummet, ikke på samme tid. 429-spærringen pr. IP sætter kun forbindelser fra samme udbyderfamilie på pause.",
"poolRemove": "Fjern",
"poolRemoveFailed": "Kunne ikke fjerne proxyen fra poolen",
"poolAddLabel": "Tilføj en proxy",
@@ -10968,43 +10982,43 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "endpoint": "Slutpunkt",
+ "provider": "Udbyder",
"model": "Model",
"accountKey": "Account Key",
"autoAccounts": "Auto ({count} konti)",
"noAccounts": "No Accounts",
"send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "cancel": "Annuller",
+ "audioFile": "Lydfil",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Ryd alt",
+ "request": "Anmodning",
+ "response": "Svar",
+ "transcription": "Transskription",
+ "copy": "Kopiér",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Genererede {count} billeder",
"generatedImage": "Genereret billede {index}",
- "save": "Save",
+ "save": "Gem",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Svar",
"completions": "Fuldførelser",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Indlejringer",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Modereringer",
- "rerank": "Rerank",
+ "rerank": "Genrangér",
"search": "Search",
"webFetch": "Webhentning"
},
@@ -11012,50 +11026,50 @@
"clearChat": "Ryd chat",
"typeMessagePlaceholder": "Skriv en besked... (Shift+Enter for ny linje)",
"tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabCompare": "Sammenlign",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Byg",
+ "configPane": "Konfiguration",
+ "systemPrompt": "Systemprompt",
+ "systemPromptPlaceholder": "Du er en hjælpsom assistent.",
+ "modelPlaceholder": "f.eks. openai/gpt-4o",
+ "endpointLabel": "Slutpunkt",
+ "parametersLabel": "Parametre",
+ "collapseConfig": "Skjul konfigurationsruden",
+ "expandConfig": "Udvid konfigurationsruden",
+ "temperature": "Temperatur",
+ "maxTokens": "Maks. antal tokens",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Tilstedeværelsesstraf",
+ "frequencyPenalty": "Frekvensstraf",
"reasoningLabel": "Ræsonnering",
"thinking": "Tænkning",
"effort": "Indsats",
"effortDefault": "Standard",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Tilfældig (lad stå tomt)",
+ "presetsLabel": "Forudindstillinger",
+ "loadPreset": "Indlæs forudindstilling",
+ "savePreset": "Gem forudindstilling",
+ "noPresets": "Ingen forudindstillinger",
+ "presetNamePlaceholder": "Navn på forudindstilling",
+ "savingPreset": "Gemmer…",
+ "nameRequired": "Navn er påkrævet",
+ "failedToSavePreset": "Kunne ikke gemme forudindstilling",
+ "improvePrompt": "Forbedr prompt",
+ "improvingPrompt": "Forbedrer…",
+ "improvePromptTitle": "Forbedr din prompt med AI",
+ "setModelFirst": "Vælg først en model",
"setModelInConfigFirst": "Angiv en model i panelet Konfiguration først.",
"improvePromptFailed": "Forbedring af prompt mislykkedes.",
"improvePromptAria": "Forbedr prompt ved hjælp af AI",
"confirmImprovePrompt": "Bekræft forbedring af prompt",
"improvePromptDescription": "Dette vil sende din nuværende systemprompt til omniglyph-Modus. Dies ist eine Vorschau und bleibt standardmäßig deaktiviert, bis die End-to-End-Validierung abgeschlossen ist.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Komprimierungsprofil",
+ "profileDescription": "Das Profil legt eine Obergrenze und keine Untergrenze fest: Ein strengeres Profil kann nicht durch eine Überschreibung für einen einzelnen Schritt gelockert werden. Gemessen an dieser Codebasis: Bei „Coding-safe“ oder „Ausgewogen“ wird in einer Sitzung, in der sich noch kein Verlauf angesammelt hat, nichts komprimiert, da beide den Schwellenwert für die Mindestzeichenzahl erhöhen und den System-Prompt, die Tool-Schemas und die Tool-Ergebnisse im nativen Format belassen.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressiv (Standard)",
+ "description": "Die Richtlinie, anhand derer die veröffentlichten Belege gemessen wurden. Bildet den System-Prompt, die Tool-Dokumentation und umfangreiche Verläufe ab."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Ausgewogen",
+ "description": "Belässt den aktuellen Zustand im nativen Format und schützt die letzten 8 Gesprächsrunden; nur ältere abgeschlossene Verläufe werden komprimiert."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Codierungssicher",
+ "description": "Belässt Autoritätsinformationen, Tool-Schemas und aktuelle Tool-Ausgaben im nativen Format und schützt die letzten 12 Gesprächsrunden. Komprimiert nichts, bis sich in der Sitzung ein Verlauf angesammelt hat."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Durchleitung",
+ "description": "Leitet ohne Transformation weiter. Die Engine wird übersprungen und die Anfrage unverändert weitergeleitet."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph-Komprimierungsprofil auswählen",
"saved": "Gespeichert.",
"saveFailed": "Konnte nicht gespeichert werden.",
"enableAria": "OmniGlyph-Engine aktivieren",
@@ -8897,38 +8908,38 @@
"save": "Speichern"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Caveman-Engine",
+ "description": "Regelbasierte Nachrichtenkomprimierung, Sprachpakete, Analysen und Steuerung des Ausgabemodus.",
"advancedConfig": "Erweiterte Konfiguration",
"advancedConfigDesc": "Optimieren Sie das Komprimierungsverhalten",
"aggressiveSettings": "Aggressive Einstellungen",
"aggressiveSettingsDesc": "Maximale Komprimierung mit möglichen Qualitätseinbußen",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Anfragen",
+ "tokensSaved": "Eingesparte Tokens",
+ "savingsPercent": "Einsparung in %",
+ "avgLatency": "Durchschn. Latenz",
+ "languagePacks": "Sprachpakete",
+ "languagePacksDesc": "Komprimierungsregeln für bestimmte Sprachen aktivieren.",
"labelAutoTrigger": "Automatische Komprimierung, wenn der Kontext überschritten wird",
"labelCompressionRate": "Kompressionsstärke",
"labelMaxTokens": "Zieltoken pro Nachricht",
"labelMinLength": "Mindestnachrichtenlänge",
"labelMinSavings": "Mindestanzahl an zu speichernden Token",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Aktiviert",
+ "autoDetect": "Sprache automatisch erkennen",
+ "rulesCount": "{count} Regeln",
"inputCompressionTitle": "Eingabekomprimierung",
"inputCompressionDesc": "Chat-Verlauf mit kürzeren Formulierungen umschreiben. Reduziert Eingabe-Tokens um ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Komprimierungsanalyse",
+ "noAnalytics": "Noch keine Komprimierungsanalysen vorhanden.",
"masterDisabledWarning": "Der Token Saver-Hauptschalter ist AUS — diese Einstellungen wirken sich erst auf Anfragen aus, wenn Sie ihn in den Komprimierungseinstellungen aktivieren oder hier ändern.",
"outputMode": "Ausgabemodus",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Ausgabemodus",
"quickSettings": "Schnelleinstellungen",
"quickSettingsDesc": "Grundlegende Komprimierungseinstellungen für den Einstieg",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Auto-Clarity-Umgehung",
+ "bypassConditions": "Umgehungsbedingungen",
"bypassConditionsList": "Sicherheit, irreversibel, klärend, auftragsempfindlich",
"simpleMode": "Einfach",
"advancedMode": "Fortgeschritten",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra-Einstellungen",
"ultraSettingsDesc": "SLM-gestützte semantische Komprimierung",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Antworte prägnant. Behalte technische Begriffe, Code, Fehler, URLs und Bezeichner bei.",
+ "full": "Antworte knapp und kompakt. Behalte alle technischen Inhalte bei.",
+ "ultra": "Antworte extrem knapp und verwende gängige technische Abkürzungen. Behalte alle Symbole exakt bei."
}
},
"translator": {
@@ -8983,7 +8994,7 @@
"ideCliIntegrations": "IDE/CLI-Integrationen",
"inMemoryNote": "Hinweis: Ereignisse werden im Speicher gespeichert und beim Neustart des Servers zurückgesetzt.",
"ok": "Okay",
- "errorShort": "ERR",
+ "errorShort": "FEHLER",
"formatConverter": "Formatkonverter",
"formatConverterDescription": "Fügen Sie einen JSON-Anfragetext ein oder geben Sie ihn ein. Der Übersetzer erkennt das Quellformat automatisch und konvertiert es in das Zielformat. Verwenden Sie dies, um zu debuggen, wie OmniRoute Anfragen zwischen Formaten übersetzt (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (mittel) → {target}",
@@ -9043,7 +9054,7 @@
"thinking": "Denken",
"system-prompt": "Systemaufforderung",
"streaming": "Streaming",
- "vision": "Vision",
+ "vision": "Bildverarbeitung",
"schema-coercion": "Schemazwang"
},
"templateDescriptions": {
@@ -9172,7 +9183,7 @@
"scenarioVision": "Vision (Bildverständnis)",
"scenarioSchemaCoercion": "Schemazwang (strukturierte Ausgabe)",
"techniques": "Techniken:",
- "friendlyTitle": "Translator",
+ "friendlyTitle": "Übersetzer",
"friendlySubtitle": "Verwenden Sie Ihre bestehende App mit jedem Provider — ohne Code umzuschreiben.",
"conceptHeadline": "Ihre App spricht die \"Sprache\" einer API. Der Translator konvertiert sie zur Verwendung eines anderen Providers.",
"conceptDiagramAppLabel": "Ihre App",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Fügen Sie eine JSON-Anfrage ein; das Format wird automatisch erkannt.",
"advancedPipelineTitle": "OpenAI-Zwischenpipeline",
"advancedPipelineSubtitle": "Visualisieren Sie jeden Übersetzungsschritt (Hub-and-Spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Stream-Transformator (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Konvertiert Chat Completions SSE in Responses API.",
"advancedTestBenchTitle": "Test Bench (8 Szenarien)",
"advancedTestBenchSubtitle": "Führt alle Szenarien aus und meldet Bestanden/Fehlgeschlagen + Kompatibilität in %.",
@@ -9266,13 +9277,6 @@
"grokAutoTopUpMax": "max",
"grokAutoTopUpMonth": "Monat",
"grokAdditionalCredits": "Zusätzliche Credits",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
"kiloAccountBalance": "Kontoguthaben",
"kiloPassBonus": "Verfügbarer Bonus",
"kiloPassMeterLabel": "Kilo-Pass-Nutzungsanzeige",
@@ -9280,10 +9284,17 @@
"kiloPassRemaining": "Verbleibend",
"kiloPassRenews": "Erneuert sich in {count} Tagen",
"kiloPassUsageLabel": "Nutzung diesen Monat",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Guthaben für zusätzliche Nutzung",
+ "kimiExtraUsage": "Zusätzliche Nutzung",
+ "kimiExtraUsageEnabled": "Aktiviert",
+ "kimiExtraUsageDisabled": "Deaktiviert",
+ "kimiExtraUsageFrozen": "Eingefroren",
+ "kimiExtraUsageUnavailable": "Nicht verfügbar",
+ "kimiMonthlyUsed": "Diesen Monat verwendet",
+ "kimiMonthlyLimit": "Monatliches Limit",
+ "kimiMonthlyLimitUnlimited": "Unbegrenzt",
+ "kimiAdditionalCredits": "Zusätzliches Guthaben",
+ "loggerTab": "Protokollierung",
"proxyTab": "Stellvertreter",
"budgetManagement": "Budgetverwaltung",
"budgetSaved": "Budgetgrenzen eingespart",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Leistungsschalter",
"lockedIPs": "Gesperrte IPs",
"lockoutsAutoRefreshHint": "Ratenbegrenzungssperren pro Modell • Automatische Aktualisierung 10 Sekunden",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# gesperrt} other {# gesperrt}}",
"timeLeft": "{time} übrig",
"howItWorks": "Wie es funktioniert",
"howItWorksSubtitle": "Erfahren Sie, wie Bewertungen Ihre LLM-Antworten validieren",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Die Antworten werden mit den erwarteten Kriterien verglichen. Sehen Sie sich für jeden Fall das Bestehen/Nichtbestehen mit Latenzmetriken und detailliertem Feedback an.",
"evalsStrategyContainsLabel": "Enthält",
"evalsStrategyExactLabel": "Genaue Übereinstimmung",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Regulärer Ausdruck",
"evalsStrategyCustomLabel": "Benutzerdefinierte Logik",
"evalsStrategyContainsDescription": "Prüft, ob die LLM-Ausgabe die erwartete Teilzeichenfolge enthält.",
"evalsStrategyExactDescription": "Prüft, ob die LLM-Ausgabe genau mit dem erwarteten Wert übereinstimmt.",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Im Test befindliche Modelle",
"searchSuitesPlaceholder": "Suiten suchen...",
"passSuffix": "passieren",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# Fall} other {# Fälle}}",
"runEval": "Führen Sie die Evaluierung aus",
"runAllSuites": "Alle ausführen",
"runAllRunning": "Läuft alles...",
"runAllProgress": "Ausführen von {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# Suite fehlgeschlagen} other {# Suites fehlgeschlagen}}",
"runAllCompleted": "{suites} Suiten ausgeführt – {passed} bestanden, {failed} fehlgeschlagen",
"runAllCompletedWithFailures": "{completed} Suiten ausgeführt; {failedSuites} konnte nicht abgeschlossen werden",
"runningProgress": "Ausführen von {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Anbieterbeschränkungen",
"noProviders": "Keine Anbieter verbunden",
"connectProvidersForQuota": "Stellen Sie über OAuth eine Verbindung zu Anbietern her, um Ihre API-Kontingentgrenzen und -Nutzung zu verfolgen.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# Konto} other {# Konten}}",
"filteredFromCount": "(gefiltert aus {count})",
"autoRefresh": "Automatische Aktualisierung",
"refreshAll": "Alle aktualisieren",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Aktualisierung der Kontingentsichtbarkeit fehlgeschlagen",
"account": "Konto",
"modelQuotas": "Modellkontingente",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Zuletzt aktualisiert",
"actions": "Aktionen",
"refreshQuota": "Kontingent aktualisieren",
"today": "Heute",
@@ -9448,9 +9459,9 @@
"cardExpand": "Erweitern",
"cardCollapse": "Einklappen",
"moreQuotas": "+{count} weitere",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Nicht gruppiert",
+ "viewFlat": "Flach",
+ "viewByEnvironment": "Nach Umgebung",
"noQuotaDataAvailable": "Keine Quotendaten verfügbar",
"noAccountsForTierFilter": "Für den Stufenfilter wurden keine Konten gefunden",
"tierAll": "Alle",
@@ -9471,9 +9482,9 @@
"filterTierLabel": "Stufe",
"purchaseAll": "Alle",
"purchaseOauthSub": "Abonnement",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth kostenlos",
"purchaseApiKey": "API-Schlüssel",
- "creditsLabel": "Credits",
+ "creditsLabel": "Guthaben",
"creditBalanceHint": "Restguthaben",
"unlimitedLabel": "Unbegrenzt",
"refreshing": "Wird aktualisiert",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Credit einlösen",
"resetCreditRedeemed": "Reset eingelöst",
"resetCreditRedeemFailed": "Reset-Credit konnte nicht eingelöst werden",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Suite konnte nicht gespeichert werden",
"clone": "Klonen",
"exportSuite": "Exportieren",
"importSuite": "Importieren",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Ungültiger Evaluierungssuite-JSON",
"suiteBuilderCloneSuffix": "kopieren",
"suiteBuilderImportedSuite": "Importierte Suite",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Bewertungskarte",
+ "evalApiKey": "API-Schlüssel",
+ "scorecardPassRate": "Erfolgsquote",
+ "targetTypeModel": "Modell",
+ "actualOutputLabel": "Tatsächliche Ausgabe",
+ "evalTargetHint": "Wählen Sie ein Modell oder eine Kombination zur Evaluierung aus.",
+ "suiteBuilderDeleted": "Suite erfolgreich gelöscht",
+ "suiteBuilderCaseCardHint": "Definieren Sie den Eingabe-Prompt und die Kriterien für die erwartete Ausgabe.",
+ "nextResetUtc": "Nächste Zurücksetzung (UTC)",
+ "scorecardHint": "Aggregierte Erfolgsquoten über alle Evaluierungssuiten hinweg.",
+ "suiteLatestRunsHint": "Neueste Evaluierungsläufe für diese Suite.",
+ "saving": "Wird gespeichert",
+ "suiteBuilderCaseModelLabel": "Modell (optional)",
+ "evalControlsTitle": "Evaluierungssteuerung",
+ "suiteBuilderEditTitle": "Evaluierungssuite bearbeiten",
+ "suiteBuilderCaseStrategyLabel": "Validierungsstrategie",
+ "notifySelectDifferentCompareTarget": "Bitte wählen Sie ein anderes Ziel für den Vergleich aus",
+ "recentRunsHint": "Die neuesten Evaluierungsläufe werden angezeigt. Klicken Sie auf einen Lauf, um detaillierte Ergebnisse anzuzeigen.",
+ "evalCompareHint": "Vergleichen Sie die Ergebnisse optional mit einem zweiten Ziel.",
+ "suiteBuilderCaseInvalid": "Dieser Fall weist Validierungsfehler auf. Bitte beheben Sie diese vor dem Speichern.",
+ "historyEmpty": "Noch kein Evaluierungsverlauf vorhanden",
+ "suiteBuilderUpdated": "Suite erfolgreich aktualisiert",
+ "resetInterval": "Zurücksetzungsintervall",
+ "suiteBuilderCreateTitle": "Evaluierungssuite erstellen",
+ "activePeriodSpend": "Ausgaben im aktiven Zeitraum",
+ "evalApiKeyHint": "Wählen Sie aus, welcher API-Schlüssel für Evaluierungsanfragen verwendet werden soll.",
+ "evalCompareOptional": "Vergleichen (optional)",
+ "suiteBuilderDeleteFailed": "Suite konnte nicht gelöscht werden",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Optionale Systemanweisungen ...",
+ "scorecardCases": "Fälle",
+ "runCompletedWithScore": "Evaluierung abgeschlossen — Erfolgsquote: {score} %",
+ "suiteBuilderCustomBadge": "Benutzerdefiniert",
+ "targetSuiteDefaults": "Suite-Standardeinstellungen",
+ "suiteBuilderDeleteConfirm": "Möchten Sie diese Suite wirklich löschen? Diese Aktion kann nicht rückgängig gemacht werden.",
+ "suiteBuilderNameLabel": "Suite-Name",
+ "scorecardSuites": "Suiten",
+ "evalCompareTarget": "Vergleichsziel",
+ "suiteBuilderCaseModelPlaceholder": "z. B. gpt-4o-mini",
+ "evalControlsHint": "Konfigurieren Sie Ihr Evaluierungsziel und Ihren API-Schlüssel und führen Sie anschließend Suites aus, um die Modellqualität zu validieren.",
+ "recentRunsTitle": "Letzte Durchläufe",
+ "suiteBuilderCaseSystemPromptLabel": "System-Prompt",
+ "suiteBuilderCaseExpectedPlaceholder": "z. B. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "z.B. auf jeden Fall Fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Fügen Sie die genaue erwartete Antwort ein",
"suiteBuilderCaseExpectedPlaceholderRegex": "z.B. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Verwenden Sie einen regulären JavaScript-Ausdruck ohne Umbruch von Schrägstrichen.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "z. B. Suite für Codequalität",
+ "suiteBuilderAddCase": "Fall hinzufügen",
+ "cancel": "Abbrechen",
+ "evalTarget": "Ziel",
+ "suiteBuilderCaseNameLabel": "Fallname",
+ "weeklyLimitUsd": "Wöchentliches Limit (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "z. B. Schreibe eine Fibonacci-Funktion in Python",
+ "suiteBuilderNameRequired": "Der Suite-Name ist erforderlich",
+ "suiteBuilderCaseUserPromptLabel": "Benutzer-Prompt",
+ "daily": "Täglich",
+ "resultErrorLabel": "Fehler",
+ "suiteBuilderBuiltInBadge": "Integriert",
+ "suiteBuilderCaseCardTitle": "Testfall",
"suiteBuilderDuplicateCase": "Duplizieren",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "z. B. 50.00",
+ "suiteBuilderCaseTagsHint": "Durch Kommas getrennte Tags zur Organisation von Testfällen.",
+ "notifyEvalRunFailedWithReason": "Evaluierung fehlgeschlagen: {reason}",
+ "weekly": "Wöchentlich",
+ "runEvalRunning": "Evaluierung wird ausgeführt ...",
+ "delete": "Löschen",
+ "resetTimeUtc": "Rücksetzzeit (UTC)",
+ "evalApiKeyAuto": "Automatisch (Standardwert verwenden)",
+ "suiteBuilderDescriptionPlaceholder": "Optionale Beschreibung dessen, was diese Suite testet ...",
+ "targetComparisonTitle": "Zielvergleich",
+ "save": "Speichern",
+ "suiteBuilderCreated": "Suite wurde erfolgreich erstellt",
+ "suiteLatestRuns": "Neueste Durchläufe",
+ "suiteBuilderCaseExpectedLabel": "Erwarteter Wert",
+ "historyLatency": "Latenz",
+ "suiteBuilderCaseTagsPlaceholder": "z. B. Programmierung, Python",
+ "targetTypeCombo": "Kombination",
+ "scorecardPassed": "Bestanden",
+ "suiteBuilderCaseTagsLabel": "Schlagwörter",
+ "suiteBuilderNewSuite": "Neue Suite",
+ "notifyEvalLoadFailed": "Evaluierungsdaten konnten nicht geladen werden",
+ "notConfigured": "Nicht konfiguriert",
+ "suiteBuilderCaseNamePlaceholder": "z. B. Python-Fibonacci-Test",
+ "intervalLabel": "Intervall",
+ "suiteBuilderCreateAction": "Suite erstellen",
+ "suiteBuilderCasesHint": "Jeder Testfall sendet einen Prompt und validiert die Antwort.",
+ "suiteBuilderUpdatedAt": "Aktualisiert",
+ "errorBadge": "Fehler",
+ "suiteBuilderCasesTitle": "Testfälle",
+ "edit": "Bearbeiten",
+ "monthly": "Monatlich",
+ "suiteBuilderCasesRequired": "Mindestens ein Testfall ist erforderlich",
+ "weeklyLimitSummary": "Zusammenfassung des wöchentlichen Budgetlimits",
+ "suiteBuilderDescriptionLabel": "Beschreibung",
+ "targetComparisonHint": "Direkter Vergleich der Evaluierungsergebnisse zwischen Zielen.",
+ "compareCompletedWithScore": "Vergleich abgeschlossen – Erfolgsquote: {score} %",
+ "staleQuotaTooltip": "Letzte Aktualisierung fehlgeschlagen – zwischengespeicherte Daten werden angezeigt",
"quotaThresholdLabel": "Min. übrig",
"quotaCutoffsColumnHelp": "Stoppen Sie Anfragen, wenn das verbleibende Kontingent auf diesen Prozentsatz oder darunter fällt.",
"quotaCutoffsButtonDefault": "Standard",
@@ -9680,7 +9691,7 @@
"budgetProjection": "Prognose",
"budgetAboveMonthlyLimit": "⚠ über {limit}/Monat",
"budgetCostBreakdown30d": "Kostenaufschlüsselung (30 Tage)",
- "budgetLimits": "Limits",
+ "budgetLimits": "Grenzwerte",
"budgetResetDaily": "Täglich",
"budgetResetWeekly": "Wöchentlich",
"budgetResetMonthly": "Monatlich",
@@ -9831,7 +9842,7 @@
"copyUrlManual": "Kopieren Sie die URL aus der Adressleiste und fügen Sie sie in die Anwendung ein.",
"accessDeniedDescription": "Sie haben keine Berechtigung, auf diese Ressource zuzugreifen. Überprüfen Sie Ihren API-Schlüssel oder wenden Sie sich an den Administrator.",
"goToDashboard": "Gehen Sie zum Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
+ "featureMultiProviderTitle": "Mehrere Anbieter",
"featureMultiProviderDesc": "OpenAI, Anthropic, Google und mehr",
"featureLoadBalancingTitle": "Lastausgleich",
"featureLoadBalancingDesc": "Verteilen Sie Anfragen intelligent",
@@ -9859,7 +9870,7 @@
"backToLogin": "Zurück zum Anmelden",
"forgotPassword": "Passwort vergessen?",
"continueWithOidc": "Mit OIDC fortfahren",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Standardpasswort: CHANGEME (sofern INITIAL_PASSWORD nicht festgelegt wurde)",
"Authorization": "Autorisierung",
"Content-Disposition": "Inhaltliche Disposition",
"waitingForAuthorization": "Warte auf Autorisierung...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Warte auf Antigravity-Autorisierung...",
"waitingForQoderAuthorization": "Warte auf Qoder-Autorisierung...",
"exchangingCodeForTokens": "Tausche Code gegen Token aus...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Inkompatible Node.js-Version",
+ "nodeIncompatibleDesc": "Sie verwenden Node.js {version}, was nicht den Richtlinien von OmniRoute für unterstützte, sichere Laufzeitumgebungen entspricht. Verwenden Sie eine gepatchte Node.js 20.x- oder 22.x-LTS-Version.",
+ "nodeIncompatibleFixLabel": "Lösung: Installieren Sie eine gepatchte Node.js 22-LTS-Version",
+ "nodeIncompatibleHint": "OmniRoute erfordert Node.js 22.22.2+ (22.x LTS) oder 24.0.0+ (24.x LTS). Node 24 LTS wird empfohlen.",
"resetViaAppDataTitle": "Zurücksetzen über App-Daten",
"resetViaAppDataDescription": "Löschen Sie die Einstellungsdatei aus dem Anwendungsdatenverzeichnis, um Ihr Passwort zurückzusetzen:",
"quitDesktopApp": "Beenden Sie die OmniRoute-Desktopanwendung vollständig",
@@ -9893,7 +9904,7 @@
"codexConnectDescription": "Autorisieren Sie ein ChatGPT-Konto, um diese Verbindung einzurichten.",
"validatingCodexLink": "Link wird validiert…",
"codexGenerateCodeDescription": "Klicken Sie unten, um einen einmaligen Code zu generieren, und melden Sie sich dann bei OpenAI an.",
- "startCodexFlow": "Start",
+ "startCodexFlow": "Starten",
"requestingOpenAiCode": "Code von OpenAI anfordern…",
"codexVerificationInstructions": "1. Öffnen Sie die OpenAI-Überprüfungsseite und 2. geben Sie diesen Code ein. Diese Seite wird automatisch aktualisiert, sobald Sie autorisieren.",
"yourCode": "Ihr Code",
@@ -9988,7 +9999,7 @@
"resources": "Ressourcen",
"documentation": "Dokumentation",
"npm": "NPM",
- "legal": "Legal",
+ "legal": "Rechtliches",
"mitLicense": "MIT-Lizenz",
"footerTagline": "Der einheitliche Endpunkt für die KI-Generierung. Verbinden, leiten und verwalten Sie Ihre KI-Anbieter ganz einfach.",
"copyright": "© {year} OmniRoute. Alle Rechte vorbehalten.",
@@ -10029,8 +10040,8 @@
"clientCompatibility": "Client-Kompatibilität",
"protocolsToc": "Protokolle",
"apiReference": "API-Referenz",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Management-API-Referenz",
+ "managementApiDescription": "Automatisierungsendpunkte für Proxy-Registrierung, Bereichszuweisungen und die Migration älterer Proxys.",
"method": "Methode",
"path": "Pfad",
"notes": "Notizen",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Installieren Sie OmniRoute als Progressive Web App auf Android-, iOS- und Desktop-Browsern.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "OmniRoute ohne Benutzeroberfläche über Termux auf Android ausführen. Greife über deinen mobilen Browser auf das Dashboard zu.",
"featureRoutingTitle": "Multi-Provider-Routing",
"featureRoutingText": "Leiten Sie Anfragen über einen einzigen OpenAI-kompatiblen Endpunkt an über 30 KI-Anbieter weiter. Unterstützt Chat-, Antwort-, Audio- und Bild-APIs.",
"featureCombosTitle": "Combos und Balancing",
@@ -10140,7 +10151,7 @@
"protocolA2aStep1": "Lesen Sie `/.well-known/agent.json` für die Agentenerkennung.",
"protocolA2aStep2": "Senden Sie `message/send`- oder `message/stream`-Anfragen an `POST /a2a`.",
"protocolA2aStep3": "Verwalten Sie den Aufgabenlebenszyklus mit `tasks/get` und `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
+ "protocolTroubleshootingTitle": "Protokoll-Fehlerbehebung",
"protocolTroubleshooting1": "Wenn der MCP-Status offline ist, überprüfen Sie, ob der stdio-Prozess ausgeführt wird und die Heartbeat-Datei aktualisiert wird.",
"protocolTroubleshooting2": "Wenn A2A-Aufgaben in `working` bleiben, überprüfen Sie `/api/a2a/tasks/:id` und streamen Sie Ereignisse auf den Endstatus.",
"protocolTroubleshooting3": "Verwenden Sie `/dashboard/mcp` und `/dashboard/a2a` für betriebliche Kontrollen und Audit-Transparenz.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Rewrite-Helper für Clients ohne /v1.",
"endpointRewriteResponsesNote": "Hilfsprogramm für Antworten ohne /v1 umschreiben.",
"endpointRewriteModelsNote": "Hilfsprogramm für die Modellerkennung ohne /v1 umschreiben.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Gespeicherte Einträge der Proxy-Registrierung auflisten (unterstützt Paginierung).",
+ "mgmtProxiesCreateNote": "Einen wiederverwendbaren Proxy-Eintrag in der Registrierung erstellen.",
+ "mgmtProxiesHealthNote": "24-Stunden-/fortlaufende Integritätsmetriken für jeden gespeicherten Proxy aus den Proxy-Protokollen abrufen.",
+ "mgmtProxiesBulkAssignNote": "Einen Proxy in einer Anfrage mehreren Bereichs-IDs zuweisen oder daraus entfernen.",
+ "mgmtAssignmentsListNote": "Proxy-Zuweisungen nach Bereich, scope_id oder proxy_id auflisten.",
+ "mgmtAssignmentsUpdateNote": "Proxy für einen globalen, Anbieter-, Konto- oder Kombinationsbereich zuweisen oder entfernen.",
+ "mgmtLegacyMigrationNote": "Ältere proxyConfig-Zuordnungen in Registrierungszuweisungen importieren.",
"modelPrefixesDescriptionStart": "Verwenden Sie das Anbieterpräfix vor dem Modellnamen, um an einen bestimmten Anbieter weiterzuleiten. Beispiel:",
"modelPrefixesDescriptionEnd": "Routen zu GitHub Copilot.",
"provider": "Anbieter",
@@ -10211,7 +10222,7 @@
"mcpToolsMemoryDesc": "Suchen, hinzufügen und löschen Sie persistente Konversationsspeichereinträge.",
"mcpToolsSkillsTitle": "Fähigkeiten",
"mcpToolsSkillsDesc": "Listen Sie benutzerdefinierte Skill-Ausführungen auf, aktivieren Sie sie, führen Sie sie aus und überwachen Sie sie.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "Auto-Kombination",
"featureAutoComboText": "Erstellen Sie automatisch optimierte Kombinationen basierend auf Ihren verbundenen Anbietern, Nutzungsmustern und Modellfunktionen.",
"featureSearchTitle": "Websuche",
"featureSearchText": "Integrierte Websuche mit 5 Anbietern (Serper, Brave, Exa, Tavily, Perplexity) inklusive Analyse und Kostenverfolgung.",
@@ -10253,7 +10264,7 @@
"apiExplorerDescription": "Testen Sie die OmniRoute-Endpunkte live. Wählen Sie einen Endpunkt aus, konfigurieren Sie Ihre Anfrage und sehen Sie die Antwort in Echtzeit.",
"apiExplorerSseStarted": "SSE-Stream gestartet — überprüfen Sie das Terminal/devtools auf Echtzeitausgaben.",
"apiExplorerError": "Fehler: {message}",
- "apiExplorerAuth": "auth",
+ "apiExplorerAuth": "Authentifizierung",
"apiExplorerResponseLabel": "Antwort",
"apiExplorerSelectEndpoint": "Wählen Sie einen Endpunkt zum Erkunden aus",
"apiExplorerChooseApi": "Wählen Sie eine API aus der Seitenleiste, um Details zu sehen und sie live auszuprobieren",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute ist Open-Source-Software. Es steht Ihnen frei, es im Rahmen der Lizenzbedingungen zu prüfen, zu ändern und zu verbreiten."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-Agenten",
+ "description": "Auf deinem System installierte CLI-Agenten erkennen. Benutzerdefinierte Agenten für die automatische Erkennung hinzufügen.",
+ "refresh": "Aktualisieren",
+ "installed": "Installiert",
+ "notFound": "Nicht gefunden",
+ "builtIn": "Integriert",
+ "custom": "Benutzerdefiniert",
+ "remove": "Entfernen",
+ "addCustomAgent": "Benutzerdefinierten Agenten hinzufügen",
+ "addCustomAgentDesc": "Ein beliebiges CLI-Tool zur Erkennung registrieren. Es wird bei jeder Aktualisierung automatisch gesucht.",
+ "agentName": "Agentenname",
+ "binaryName": "Binärdateiname",
+ "versionCommand": "Versionsbefehl",
+ "spawnArgs": "Startargumente",
+ "addAgent": "Agenten hinzufügen",
+ "scanning": "System wird nach CLI-Agenten durchsucht ...",
+ "opencodeIntegration": "OpenCode-Integration",
+ "opencodeDetected": "opencode {version} erkannt",
+ "opencodeDesc": "Erstelle eine einsatzbereite {configFile} mit deiner OmniRoute-Basis-URL und allen verfügbaren Modellen – lege sie im Stammverzeichnis deines Projekts ab und führe {command} aus.",
+ "downloadConfig": "{file} herunterladen",
+ "downloaded": "Heruntergeladen!",
+ "setupGuideTitle": "Einrichtungsanleitung",
+ "openCliTools": "CLI-Tools öffnen",
+ "setupGuideDetectCliTitle": "Installierte CLIs erkennen",
+ "setupGuideDetectCliDesc": "Klicken Sie nach der Installation oder Aktualisierung einer CLI auf „Aktualisieren“, damit OmniRoute Binärdateien und Versionen erneut prüfen kann.",
+ "setupGuideCustomAgentTitle": "Benutzerdefinierte Binärdatei registrieren",
+ "setupGuideCustomAgentDesc": "Verwenden Sie „Benutzerdefinierten Agenten hinzufügen“, wenn Ihre CLI nicht in der integrierten Liste enthalten ist. Geben Sie den Namen der Binärdatei und den Versionsbefehl an.",
+ "setupGuideCommandMissingTitle": "„Befehl nicht gefunden“ beheben",
+ "setupGuideCommandMissingDesc": "Stellen Sie sicher, dass der CLI-Befehl in PATH vorhanden ist, öffnen Sie eine neue Terminalsitzung und führen Sie „Aktualisieren“ erneut aus.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10478,7 +10489,7 @@
"cursorCloud": "Cursors Hintergrund- / Cloud-Agenten (offizieller API-Schlüssel)"
},
"activityTypes": {
- "plan": "Plan",
+ "plan": "Tarif",
"command": "Befehl",
"code_change": "Codeänderung",
"message": "Nachricht",
@@ -10493,7 +10504,7 @@
"thinking": "Denken",
"tool-calling": "Werkzeugaufruf",
"multi-turn": "Mehrere Runden",
- "vision": "Vision",
+ "vision": "Bildverarbeitung",
"schema-coercion": "Schemazwang"
},
"templateDescriptions": {
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Cache-Verwaltung",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Aktualisieren",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Speichereinträge",
+ "memoryEntriesSub": "In-Memory-LRU",
+ "dbEntries": "Datenbankeinträge",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Cache-Treffer",
+ "cacheHitsSub": "von insgesamt {total}",
+ "tokensSaved": "Eingesparte Token",
+ "tokensSavedSub": "Anhand der Treffer geschätzt",
+ "hitRate": "Trefferquote",
+ "performance": "Cache-Leistung",
+ "autoRefresh": "Wird alle {seconds} s automatisch aktualisiert",
+ "hits": "Treffer",
+ "misses": "Fehlversuche",
+ "total": "Gesamt",
+ "behavior": "Cache-Verhalten",
+ "behaviorDeterministic": "Nur Nicht-Streaming-Anfragen mit temperature=0 werden zwischengespeichert.",
+ "behaviorBypass": "Mit dem Header {header} umgehen.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Standard-TTL: 30 Minuten. Konfiguration über {envVar}.",
+ "idempotency": "Idempotenzschicht",
+ "activeDedupKeys": "Aktive Deduplizierungsschlüssel",
+ "dedupWindow": "Deduplizierungszeitfenster",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Cache konnte nicht geleert werden.",
+ "unavailable": "Cache nicht verfügbar",
+ "unavailableDesc": "Cache-Statistiken konnten nicht abgerufen werden. Stellen Sie sicher, dass der Server ausgeführt wird.",
"loadingCacheAria": "Cache wird geladen",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Prompt-Cache (anbieterseitig)",
+ "semanticCache": "Semantischer Cache",
+ "promptCacheSectionDesc": "Zeigt die anbieterseitige Prompt-Cache-Aktivität aus dem Nutzungsverlauf, damit Sie sehen können, wo die Cache-Steuerung aktiv ist und wie stark Eingaben wiederverwendet werden.",
+ "promptTrendDesc": "Stündliches Anfragevolumen, Cache-Abdeckung und Cache-Lesevolumen in den letzten 24 Stunden.",
+ "cachedRequests": "Zwischengespeicherte Anfragen",
+ "cachedRequests24h": "Zwischengespeicherte Anfragen (24 Std.)",
+ "cacheHitRate": "Cache-Trefferrate",
+ "cacheRate": "Cache-Rate",
+ "cacheRateDesc": "der gesamten Anfragen",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Prompt-Cache-Metriken",
+ "withCacheControl": "Mit Cache-Steuerung",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Cache-Wiederverwendungsrate",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Geschätzte Kostenersparnis",
+ "lastUpdated": "Zuletzt aktualisiert",
+ "hoursTracked": "erfasste Stunden",
+ "busiestHour": "Anfragestärkste Stunde",
+ "peakCacheRate": "Höchste Cache-Rate",
+ "trendHour": "Stunde",
+ "activityVolume": "Aktivität",
+ "requestsShort": "Anfragen",
+ "inputShort": "Eingabe",
+ "cachedShort": "Zwischengespeichert",
+ "writeShort": "Schreibvorgänge",
+ "resetting": "Wird zurückgesetzt...",
+ "resetMetrics": "Metriken zurücksetzen",
+ "byProvider": "Aufschlüsselung nach Anbieter",
+ "providerCacheRateDesc": "Jeder Anbieter stellt die Gesamtzahl der Eingabe-Token, der aus dem Cache gelesenen Token und der in den Cache geschriebenen Token bereit, damit Sie die Wiederverwendungsrate anhand der Rohsummen überprüfen können.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Anfragen",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
- "tableProvider": "Provider",
+ "trend24h": "Cache-Trend (24 Std.)",
+ "peakCached": "Maximal zwischengespeichert",
+ "cached": "Zwischengespeichert",
+ "overview": "Übersicht",
+ "tableProvider": "Anbieter",
"tableModel": "Modell",
- "performanceTitle": "Performance",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "performanceTitle": "Leistung",
+ "semanticCacheSectionDesc": "OmniRoutes eigener deterministischer Antwort-Cache. Wenn er aktiviert ist, können wiederholte, nicht streamende Anfragen mit temperature=0 lokal beantwortet werden, ohne den vorgelagerten Anbieter aufzurufen.",
+ "semanticCacheDisabledDesc": "Der semantische Cache ist deaktiviert. OmniRoute überspringt die lokale Wiederverwendung von Antworten, bis Sie sie in den Einstellungen wieder aktivieren.",
+ "semanticEntriesDesc": "Derzeit in SQLite gespeicherte persistente semantische Cache-Einträge. Anbieterseitige Prompt-Cache-Aktivitäten werden hier nicht aufgeführt.",
+ "searchEntries": "Einträge durchsuchen...",
+ "search": "Suchen",
+ "loading": "Wird geladen...",
+ "entriesLoadError": "Semantische Cache-Einträge konnten nicht geladen werden.",
+ "noEntries": "Keine Cache-Einträge gefunden",
+ "noPromptCacheData": "Es wurde noch keine anbieterseitige Prompt-Cache-Aktivität erfasst.",
+ "noTrendData": "In den letzten 24 Stunden wurde keine Prompt-Cache-Aktivität erfasst.",
+ "signature": "Signatur",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Erstellt",
+ "expires": "Läuft ab",
+ "actions": "Aktionen",
+ "deduplicatedRequests": "Deduplizierte Anfragen",
+ "savedCalls": "Eingesparte API-Aufrufe",
+ "totalProcessed": "Verarbeitete Anfragen insgesamt",
+ "disabled": "Deaktiviert",
+ "totalRequests": "Anfragen insgesamt",
"reasoningCache": "Argumentationswiederholung",
"reasoningCacheDesc": "Behält das Modelldenken für Multi-Turn-Werkzeugaufrufabläufe bei",
"reasoningEntries": "Aktive Einträge",
@@ -10665,7 +10676,7 @@
"minutesAgo": "vor {minutes}m",
"hoursAgo": "vor {hours}h",
"daysAgo": "vor {days}d",
- "entries": "Entries"
+ "entries": "Einträge"
},
"proxyConfigModal": {
"levelGlobal": "Global",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Verbinden Sie die Cursor-IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Mit Cursor anmelden",
+ "tabImport": "Token importieren",
+ "loginDescription": "Öffnet die Browser-Anmeldung von Cursor. Funktioniert in Docker – genehmigen Sie die Anmeldung im Browser Ihres Hosts und kehren Sie dann hierher zurück.",
+ "loginWithCursor": "Mit Cursor anmelden",
+ "startingLogin": "Wird gestartet…",
+ "waitingApproval": "Warten auf die Genehmigung der Cursor-Anmeldung…",
+ "openUrlHint": "Falls sich der Browser nicht geöffnet hat:",
+ "openLoginLink": "Anmeldeseite öffnen",
+ "cancelLogin": "Anmeldung abbrechen",
"autoDetecting": "Automatische Erkennung von Token...",
"readingFromCursor": "Lesen aus der Cursor-IDE oder dem Cursor-Agenten",
"tokensAutoDetected": "Tokens wurden erfolgreich automatisch von der Cursor-IDE erkannt!",
"cursorNotDetected": "Cursor-IDE nicht erkannt. Bitte fügen Sie Ihr Token manuell ein.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Ausführung in Docker? Verwenden Sie vorzugsweise „Mit Cursor anmelden“. Der automatische IDE-Import und cursor-agent sind innerhalb des Containers normalerweise nicht verfügbar. Siehe docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Zugriffstoken",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Aktualisierungstoken",
+ "refreshTokenPlaceholder": "Optional – ermöglicht die automatische Token-Aktualisierung",
"required": "*",
"accessTokenPlaceholder": "Das Zugriffstoken wird automatisch ausgefüllt...",
"machineId": "Maschinen-ID",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Die automatische Erkennung von Token ist fehlgeschlagen",
"errorEnterToken": "Bitte geben Sie das Zugriffstoken ein",
"errorImportFailed": "Der Import ist fehlgeschlagen",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Cursor-Anmeldung konnte nicht gestartet werden",
+ "errorLoginPoll": "Cursor-Anmeldung fehlgeschlagen",
+ "errorLoginTimeout": "Zeitüberschreitung bei der Cursor-Anmeldung – versuchen Sie es erneut"
},
"pricingModal": {
"title": "Preiskonfiguration",
@@ -10839,9 +10850,9 @@
"selectProxy": "{name} auswählen",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Legacy-Daten importieren",
+ "bulkAssign": "Massenzuweisung",
+ "addProxy": "Proxy hinzufügen",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Testen",
+ "edit": "Bearbeiten",
+ "delete": "Löschen",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10882,12 +10893,12 @@
"bulkLabelScopeIds": "Bereichs-IDs (durch Komma oder Zeilenumbruch getrennt)",
"bulkScopeIdsPlaceholder": "Provider-Openai, Provider-Anthropic",
"bulkApply": "Bewerben",
- "labelScope": "Scope",
+ "labelScope": "Bereich",
"labelProxy": "Proxy",
"scopeGlobal": "global",
- "scopeProvider": "provider",
- "scopeAccount": "account",
- "scopeCombo": "combo",
+ "scopeProvider": "Anbieter",
+ "scopeAccount": "Konto",
+ "scopeCombo": "Kombination",
"bulkImportErrorMissingName": "NAME fehlt",
"bulkImportErrorMissingHost": "Fehlender HOST",
"bulkImportErrorInvalidPort": "Ungültiger PORT (muss 1-65535 sein)",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Fehlgeschlagen",
"successRate": "{rate} % Erfolg",
"avgLatency": "{latency}ms Durchschnitt",
"assignmentsCount": "{count} Aufgaben",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Reparieren",
"relayAuthMissing": "Authentifizierung fehlt",
@@ -10953,10 +10964,13 @@
"poolStrategyFailed": "Fehler beim Aktualisieren der Rotationsstrategie",
"strategyRoundRobin": "Round-Robin",
"strategyRandom": "Zufällig",
- "strategySticky": "Sticky",
+ "strategySticky": "Beständig",
"strategyLatency": "Latenzoptimiert",
"poolMembersLabel": "Pool-Mitglieder ({count})",
"poolNoMembers": "Noch keine Proxys in diesem Pool.",
+ "poolEgressObservation": "{exits, plural, one {# Ausgang} other {# Ausgänge}} verwendet von {connections, plural, one {# Verbindung} other {# Verbindungen}} · bis zu {max} über einen Ausgang · letzte {hours} Std.",
+ "poolEgressObservationEmpty": "In den letzten {hours} Std. wurde kein Datenverkehr beobachtet",
+ "poolEgressObservationHint": "Ermittelt aus dem Proxy-Protokoll innerhalb des Zeitfensters: unterschiedliche ausgehende IP-Adressen, die für die Mitglieder dieses Pools beobachtet wurden, sowie die OmniRoute-Verbindungen, die sie verwendet haben. „Über einen Ausgang“ bezieht sich auf das Zeitfenster, nicht auf eine gleichzeitige Nutzung. Die 429-Sperre pro IP pausiert nur Verbindungen derselben Anbieterfamilie.",
"poolRemove": "Entfernen",
"poolRemoveFailed": "Fehler beim Entfernen des Proxys aus dem Pool",
"poolAddLabel": "Proxy hinzufügen",
@@ -10968,43 +10982,43 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Endpunkt",
+ "provider": "Anbieter",
+ "model": "Modell",
"accountKey": "Account Key",
"autoAccounts": "Automatisch ({count} Konten)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Senden",
+ "cancel": "Abbrechen",
+ "audioFile": "Audiodatei",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Alles löschen",
+ "request": "Anfrage",
+ "response": "Antwort",
+ "transcription": "Transkription",
+ "copy": "Kopieren",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "{count} Bilder generiert",
"generatedImage": "Generiertes Bild {index}",
- "save": "Save",
+ "save": "Speichern",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
- "completions": "Completions",
+ "responses": "Antworten",
+ "completions": "Vervollständigungen",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Einbettungen",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderationen",
- "rerank": "Rerank",
+ "rerank": "Neu bewerten",
"search": "Search",
"webFetch": "Web-Abruf"
},
@@ -11012,50 +11026,50 @@
"clearChat": "Klarer Chat",
"typeMessagePlaceholder": "Geben Sie eine Nachricht ein... (Umschalt+Eingabetaste für neue Zeile)",
"tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabCompare": "Vergleichen",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Erstellen",
+ "configPane": "Konfiguration",
+ "systemPrompt": "Systemanweisung",
+ "systemPromptPlaceholder": "Du bist ein hilfreicher Assistent.",
+ "modelPlaceholder": "z. B. openai/gpt-4o",
+ "endpointLabel": "Endpunkt",
+ "parametersLabel": "Parameter",
+ "collapseConfig": "Konfigurationsbereich einklappen",
+ "expandConfig": "Konfigurationsbereich ausklappen",
+ "temperature": "Temperatur",
+ "maxTokens": "Max. Tokens",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
- "reasoningLabel": "Reasoning",
- "thinking": "Thinking",
+ "presencePenalty": "Präsenzstrafe",
+ "frequencyPenalty": "Häufigkeitsstrafe",
+ "reasoningLabel": "Schlussfolgerung",
+ "thinking": "Denkprozess",
"effort": "Aufwand",
"effortDefault": "Standard",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Zufällig (leer lassen)",
+ "presetsLabel": "Voreinstellungen",
+ "loadPreset": "Voreinstellung laden",
+ "savePreset": "Voreinstellung speichern",
+ "noPresets": "Keine Voreinstellungen",
+ "presetNamePlaceholder": "Name der Voreinstellung",
+ "savingPreset": "Wird gespeichert…",
+ "nameRequired": "Name ist erforderlich",
+ "failedToSavePreset": "Voreinstellung konnte nicht gespeichert werden",
+ "improvePrompt": "Prompt verbessern",
+ "improvingPrompt": "Wird verbessert…",
+ "improvePromptTitle": "Prompt mit KI verbessern",
+ "setModelFirst": "Zuerst ein Modell festlegen",
"setModelInConfigFirst": "Legen Sie zuerst ein Modell im Konfigurationsbereich fest.",
"improvePromptFailed": "Optimierung des Prompts fehlgeschlagen.",
"improvePromptAria": "Prompt mithilfe von KI optimieren",
"confirmImprovePrompt": "Optimierung des Prompts bestätigen",
"improvePromptDescription": "Dies sendet Ihren aktuellen System-Prompt an solo.trae.ai, ανοίξτε το DevTools → Network, στείλτε οποιοδήποτε μήνυμα συνομιλίας και αντιγράψτε το JWT από την κεφαλίδα αιτήματος Authorization: Cloud-IDE-JWT {tokenPlaceholder}. Η διάρκεια ζωής του JWT είναι ~14 ημέρες. Τα προαιρετικά πεδία ταυτότητας προέρχονται από το common_params στο σώμα του ίδιου αιτήματος.",
"accessTokenLabel": "Token πρόσβασης (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "webId": "Αναγνωριστικό ιστού",
"optional": "προαιρετικό",
- "bizUserId": "Biz User ID",
- "userUniqueId": "User Unique ID",
+ "bizUserId": "Αναγνωριστικό επιχειρηματικού χρήστη",
+ "userUniqueId": "Μοναδικό αναγνωριστικό χρήστη",
"scope": "Εύρος",
"tenant": "Μισθωτής",
"region": "Περιοχή",
@@ -13896,7 +13918,7 @@
"requestedModel": "Ζητούμενο μοντέλο",
"provider": "Πάροχος",
"requester": "Αιτών",
- "tokens": "Tokens"
+ "tokens": "Token"
}
},
"proxyLog": {
@@ -13933,7 +13955,7 @@
"duration": "Διάρκεια",
"status": "Κατάσταση",
"provider": "Πάροχος",
- "tokens": "Tokens",
+ "tokens": "Token",
"active": "Ενεργό",
"other": "Άλλο",
"tenMinutes": "10λεπ",
@@ -13962,9 +13984,9 @@
"colMode": "Λειτουργία",
"colRunner": "Εκτελεστής",
"colSummary": "Σύνοψη",
- "online": "online",
- "offline": "offline",
- "draining": "draining",
+ "online": "σε σύνδεση",
+ "offline": "εκτός σύνδεσης",
+ "draining": "σε εκκένωση",
"hubOffline": "Ο κόμβος Conductor είναι offline ή δεν έχει ρυθμιστεί (CONDUCTOR_HUB_URL) — δεν εμφανίζεται τίποτα για αποφυγή παλαιών δεδομένων.",
"noRunners": "Δεν υπάρχουν καταχωρημένοι εκτελεστές",
"noTasks": "Δεν υπάρχουν εργασίες ακόμα",
@@ -14003,7 +14025,7 @@
"orchestration": {
"title": "Ενορχήστρωση",
"description": "Όλα όσα εκτελεί το OmniRoute αυτή τη στιγμή — agents, στόλος και δρομολόγηση",
- "tabAgents": "Agents",
+ "tabAgents": "Πράκτορες",
"tabRouting": "Δρομολόγηση",
"tabOverview": "Επισκόπηση",
"tabHistory": "Ιστορικό",
@@ -14029,7 +14051,7 @@
"filterSources": "Πηγές",
"filterProviders": "Πάροχοι",
"clearFilters": "Εκκαθάριση φίλτρων",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Πράκτορας cloud",
"sourceA2A": "A2A",
"sourceConductor": "Conductor",
"sourceStale": "Ανενεργό από {since}",
diff --git a/src/i18n/messages/en.json b/src/i18n/messages/en.json
index 508e3f4ee2..0a685beed5 100644
--- a/src/i18n/messages/en.json
+++ b/src/i18n/messages/en.json
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Advertise claude/<provider>/<model> mirror ids on /v1/models so Claude Code gateway model discovery lists non-Claude models. Warning: doubles catalog entries for all clients when enabled globally.",
"featureFlagNoThinkingAliasEnabledDescription": "Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
"featureFlagChatVirtualLanesEnabledDescription": "Enable per-tenant adaptive virtual admission lanes for provider dispatch (#9654): one tenant's burst no longer 503s another. The OMNIROUTE_CHAT_VIRTUAL_LANES env var wins over this dashboard override; changes take effect at server restart.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Dashboard provider pages: show the Free badge only on signals the provider honors — drops the display-name heuristic, non-boolean free fields and :free suffixes on registered providers without a documented free tier. Off keeps the historical badge rule.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy pools and the per-account rotation of opencode stop re-serving a proxy that just failed (refused TCP probe, or a 429 received through it) for a per-process period that doubles on each repeat, up to a cap. No proxy status is written; with every candidate set aside the choice is unchanged. Off by default: selection order is exactly the plain rotation.",
+ "featureFlagProxyPoolEgressObservationDescription": "Show, under a proxy pool in the dashboard, how many observed egress IPs served its members over the last 24 h, how many connections used them and the most seen behind one IP. Read-only, computed from the proxy log, never used for routing. Off by default: the pool editor is unchanged and the observation route answers null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "In the proxy health sweep, let a probe the target refused (401/403/429: the proxy relayed, the destination refused this egress IP) reset the consecutive-failure streak of the proxy, like a served probe. Off by default: a refusal stays neutral and keeps the streak. A 5xx stays inconclusive either way, and a refusal never removes, disables or re-activates a proxy.",
"sidebar": {
"home": "Home",
"dashboard": "Dashboard",
@@ -10964,6 +10968,9 @@
"strategyLatency": "Latency-optimized",
"poolMembersLabel": "Pool members ({count})",
"poolNoMembers": "No proxies in this pool yet.",
+ "poolEgressObservation": "{exits, plural, one {# exit} other {# exits}} used by {connections, plural, one {# connection} other {# connections}} · up to {max} on one exit · last {hours} h",
+ "poolEgressObservationEmpty": "No traffic observed in the last {hours} h",
+ "poolEgressObservationHint": "Counted from the proxy log over the window: distinct egress IPs observed for the members of this pool, and the OmniRoute connections that used them. \"On one exit\" means over the window, not at the same time. The per-IP 429 lockout only pauses connections of the same provider family.",
"poolRemove": "Remove",
"poolRemoveFailed": "Failed to remove the proxy from the pool",
"poolAddLabel": "Add a proxy",
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Allow stream recovery to request the response again and stitch it after bytes have already reached the client."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Make mid-stream continuation tool-call safe: never resume a cut stream after a tool call was sent (still in progress or already finished), and stop after one empty continuation instead of using the whole retry budget."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Fail over once to a sibling connection when a stream closes before emitting any useful frame and the bounded same-connection retry is spent. With no usable sibling, the original early-EOF error is returned. Off: early-EOF stays terminal after the retry."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Include display-friendly name fields in /v1/models responses. Disable this for clients that accept model IDs only."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Server-Owned Tool Loop",
"description": "Continue non-streaming server-owned tool calls until the model returns a client-usable response."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After Provenance",
+ "description": "On aggregated 429/503 unavailable responses, omit Retry-After when no concrete future retry time is known instead of sending a synthetic 1s, add error.retry_after_provenance, and read prose retry hints on combo drain paths."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Protected-Priority Infra Stops as 502",
+ "description": "Answer 502 instead of 503 when a quota-only-fallback priority target stops the combo for a cause that is provably not quota: an open provider circuit breaker or a predictive latency skip."
}
}
},
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Reject requests before dispatch when the target model lacks required capabilities (vision, tools, structured output, context window). Protects direct single-provider requests that bypass the combo-layer compatibility filter.",
"featureFlagDisableContextWindowChecksDescription": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Search stats and recent searches only count providers that still have a live connection (keyless providers such as duckduckgo-free always count). Off keeps every retained search row with a provider id.",
"publicSystem": {
"notFound": {
"title": "Page not found",
diff --git a/src/i18n/messages/es.json b/src/i18n/messages/es.json
index 1d2f539aeb..5588aabd00 100644
--- a/src/i18n/messages/es.json
+++ b/src/i18n/messages/es.json
@@ -4,19 +4,19 @@
"cancel": "Cancelar",
"delete": "Eliminar",
"loading": "Cargando...",
- "selectOption": "Select an option",
+ "selectOption": "Seleccionar una opción",
"error": "Se produjo un error",
"success": "Éxito",
"confirm": "¿Estás seguro?",
"refresh": "Actualizar",
"close": "Cerrar",
- "previousPage": "Previous page",
- "nextPage": "Next page",
- "capsLockOn": "Caps Lock is on",
- "dismissNotification": "Dismiss notification",
- "toggleColumns": "Toggle columns",
- "confirmTitle": "Confirm",
- "confirmAction": "Confirm",
+ "previousPage": "Página anterior",
+ "nextPage": "Página siguiente",
+ "capsLockOn": "El bloqueo de mayúsculas está activado",
+ "dismissNotification": "Descartar notificación",
+ "toggleColumns": "Alternar columnas",
+ "confirmTitle": "Confirmar",
+ "confirmAction": "Confirmar",
"add": "Añadir",
"edit": "Editar",
"search": "Buscar",
@@ -31,9 +31,9 @@
"active": "Activo",
"inactive": "Inactivo",
"noData": "No hay datos disponibles",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Aún no hay nada aquí",
"configure": "Configurar",
- "manualConfig": "Manual config",
+ "manualConfig": "Configuración manual",
"manage": "Administrar",
"name": "Nombre",
"actions": "Acciones",
@@ -42,12 +42,12 @@
"model": "Modelo",
"models": "modelos",
"provider": "Proveedor",
- "unknownProvider": "Unknown provider",
+ "unknownProvider": "Proveedor desconocido",
"account": "Cuenta",
"time": "Hora",
"details": "Detalles",
"created": "Creado",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Última actualización",
"loadMore": "Cargar más",
"noResults": "No se encontraron resultados",
"reloadPage": "Recargar página",
@@ -70,8 +70,8 @@
"note": "Nota",
"free": "Gratis",
"skipToContent": "Saltar al contenido",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "El servidor está experimentando problemas. Es posible que algunas funciones no estén disponibles.",
+ "maintenanceServerUnreachable": "No se puede acceder al servidor. Reconectando...",
"accept": "accept",
"accountId": "accountId",
"alias": "alias",
@@ -150,24 +150,24 @@
"Failed to reset pricing": "No se pudo restablecer el precio",
"apikey": "Clave API",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
- "addModel": "Add model",
- "effortNone": "None",
- "effortLow": "Low",
- "effortMedium": "Medium",
- "effortHigh": "High",
- "effortExtraHigh": "Extra high",
- "effortMax": "Max",
+ "goToDashboard": "Ir al panel de control",
+ "checkSystemStatus": "Comprobar el estado del sistema",
+ "selectModel": "Seleccionar modelo",
+ "addModel": "Añadir modelo",
+ "effortNone": "Ninguno",
+ "effortLow": "Bajo",
+ "effortMedium": "Medio",
+ "effortHigh": "Alto",
+ "effortExtraHigh": "Extra alto",
+ "effortMax": "Máximo",
"effortUltra": "Ultra",
- "reasoningEffort": "Reasoning effort",
- "wireApi": "Wire API",
- "modelAliases": "Model aliases",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "reasoningEffort": "Esfuerzo de razonamiento",
+ "wireApi": "API de Wire",
+ "modelAliases": "Alias de modelos",
+ "combos": "Combinaciones",
+ "noModelsFound": "No se encontraron modelos",
+ "clear": "Borrar",
+ "done": "Listo",
"selectAll": "Seleccionar todo",
"unselectAll": "Deseleccionar todo",
"visibleModels": "visibles",
@@ -184,527 +184,527 @@
"selectAllProviders": "Verificar todos los proveedores",
"clearProviderSelection": "Desmarcar proveedores",
"providersSelectedCount": "{count} proveedores verificados",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Se produjo un error",
+ "comboDeleted": "Combinación eliminada",
+ "hide": "Ocultar",
+ "creating": "Creando",
+ "comboCreated": "Combinación creada",
+ "swapFormats": "Intercambiar formatos",
+ "daysAgo": "Días atrás",
+ "retries": "Reintentos",
+ "errorDuringRestore": "Error durante la restauración",
+ "eventsAppearHint": "Sugerencia sobre la aparición de eventos",
+ "noLockouts": "Sin bloqueos",
+ "webSearchDesc": "Descripción de la búsqueda web",
+ "audioProvidersHeading": "Proveedores de audio",
"cloudAgentProviders": "Proveedores de agentes en la nube",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Hace unos minutos",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
+ "liveAutoRefreshing": "Actualización automática en vivo",
+ "webSearch": "Búsqueda web",
+ "anthropicPrefixPlaceholder": "Marcador de posición del prefijo de Anthropic",
+ "addModelToCombo": "Añadir modelo a la combinación",
+ "failedToLoad": "Error al cargar",
+ "categoryMedia": "Categoría multimedia",
+ "enableCloud": "Habilitar la nube",
+ "expirationBannerExpiringSoon": "Aviso de caducidad próxima",
+ "retry": "Reintentar",
+ "embeddings": "Representaciones vectoriales",
+ "errorCount": "Número de errores",
+ "backupReasonManual": "Motivo de la copia de seguridad: manual",
+ "safeSearchModerate": "Búsqueda segura moderada",
+ "activeLimiters": "Limitadores activos",
+ "a2aCardTitle": "Título de la tarjeta A2A",
+ "cloudWorkerUnreachable": "No se puede acceder al worker de la nube",
+ "testFailed": "La prueba ha fallado",
+ "compatibleBaseUrlHint": "Sugerencia de URL base compatible",
+ "usageTracking": "Seguimiento del uso",
+ "disableCloudTitle": "Título para deshabilitar la nube",
+ "noConnections": "Sin conexiones",
+ "providerHealth": "Estado de los proveedores",
+ "confirmDbImport": "Confirmar la importación de la base de datos",
+ "notAvailableSymbol": "Símbolo de no disponible",
+ "backupsAvailable": "Copias de seguridad disponibles",
+ "providerAuto": "Proveedor automático",
+ "newProviderNamePlaceholder": "Marcador de posición del nombre del nuevo proveedor",
+ "a2aQuickStartStep2": "Paso 2 del inicio rápido de A2A",
+ "ok": "Aceptar",
+ "available": "Disponible",
+ "noBackupYet": "Aún no hay ninguna copia de seguridad",
+ "more": "Más",
+ "noCompatibleYet": "Aún no compatible",
+ "multiProvider": "Varios proveedores",
+ "repairEnvHint": "Sugerencia para reparar el entorno",
+ "disablingCloud": "Desactivando la nube",
+ "testBench": "Banco de pruebas",
+ "valid": "Válido",
+ "cloudBenefitShare": "Proporción de beneficios de la nube",
+ "mcpCardTitle": "Título de la tarjeta MCP",
+ "disableConfirm": "Confirmar desactivación",
+ "filters": "Filtros",
+ "expirationBannerExpiredDesc": "Descripción del banner de expiración caducada",
+ "saveComboDefaults": "Guardar valores predeterminados de la combinación",
+ "cloudConnectedVerified": "Conexión a la nube verificada",
+ "uptime": "Tiempo de actividad",
+ "compatibleProdPlaceholder": "Marcador de posición de producción compatible",
+ "fallbackChainsTitle": "Título de las cadenas de respaldo",
+ "oauthLabel": "Etiqueta de OAuth",
+ "a2aCardDescription": "Descripción de la tarjeta A2A",
+ "okShort": "Aceptar",
+ "maintenance": "Mantenimiento",
+ "formatConverter": "Conversor de formatos",
+ "zedImportNetworkError": "Error de red al importar desde Zed",
+ "apiKeyLabel": "Etiqueta de la clave de API",
+ "noModelsForProvider": "No hay modelos para el proveedor",
+ "mcpCardDescription": "Descripción de la tarjeta MCP",
+ "apiTypeLabel": "Etiqueta del tipo de API",
+ "configuredProvidersLabel": "Etiqueta de proveedores configurados",
+ "maxRetriesLabel": "Etiqueta del máximo de reintentos",
+ "title": "Título",
+ "output": "Salida",
+ "prefixHint": "Sugerencia de prefijo",
+ "skipWizard": "Omitir asistente",
+ "failedCount": "Número de fallos",
+ "confirmDbImportDesc": "Descripción de la confirmación de importación de la base de datos",
+ "entries": "Entradas",
+ "until": "Hasta",
+ "disableCombo": "Desactivar combinación",
+ "liveMonitorDescriptionPrefix": "Prefijo de la descripción del monitor en tiempo real",
+ "runningCount": "Número de procesos en ejecución",
+ "noActiveConnectionsInGroup": "No hay conexiones activas en el grupo",
+ "savedSuccessfully": "Guardado correctamente",
+ "systemStorage": "Almacenamiento del sistema",
+ "videoDesc": "Descripción del vídeo",
+ "maxResults": "Resultados máximos",
+ "timeRangeMonth": "Intervalo de tiempo mensual",
+ "testSummary": "Resumen de la prueba",
+ "failedSetPassword": "Error al establecer la contraseña",
"audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "restore": "Restaurar",
+ "disableWarning": "Desactivar advertencia",
+ "moderationsDesc": "Descripción de las moderaciones",
+ "providerHealthStatusAria": "ARIA del estado del proveedor",
+ "modelNamePlaceholder": "Marcador de posición del nombre del modelo",
+ "mcpQuickStartStep2": "Paso 2 del inicio rápido de Mcp",
+ "quickStart": "Inicio rápido",
+ "fullExportFailedWithError": "Error en la exportación completa",
+ "loadingBackups": "Cargando copias de seguridad",
+ "anthropicBaseUrlPlaceholder": "Marcador de posición de la URL base de Anthropic",
+ "description": "Descripción",
+ "noProviderFound": "No se encontró ningún proveedor",
+ "auto": "Automático",
+ "protocolsDescription": "Descripción de los protocolos",
+ "cloudSessionNote": "Nota de la sesión en la nube",
+ "advancedSettings": "Configuración avanzada",
+ "defaultStrategy": "Estrategia predeterminada",
+ "purgeExpiredLogs": "Purgar registros caducados",
+ "justNow": "Ahora mismo",
+ "providerTestFailed": "La prueba del proveedor falló",
+ "openaiBaseUrlPlaceholder": "Marcador de posición de la URL base de Openai",
+ "image": "Imagen",
+ "failedCreateChain": "Error al crear la cadena",
+ "importDatabase": "Importar base de datos",
+ "allDataLocal": "Todos los datos son locales",
+ "sectionTitle": "Título de la sección",
+ "failedToggle": "Error al cambiar el estado",
+ "editCombo": "Editar combinación",
+ "testResults": "Resultados de la prueba",
+ "searchQuery": "Consulta de búsqueda",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
+ "duplicate": "Duplicar",
+ "createCombo": "Crear combinación",
+ "searchTypeWeb": "Tipo de búsqueda web",
+ "addChain": "Añadir cadena",
+ "prefixLabel": "Etiqueta de prefijo",
+ "listModelsDesc": "Descripción de la lista de modelos",
+ "databaseSize": "Tamaño de la base de datos",
+ "chainCreated": "Cadena creada",
+ "providerTestTimeout": "Tiempo de espera de la prueba del proveedor",
+ "routingStrategy": "Estrategia de enrutamiento",
+ "translateAction": "Acción de traducción",
+ "exportFailed": "Error al exportar",
+ "connectedVerificationPending": "Conectado, verificación pendiente",
+ "a2aQuickStartTitle": "Inicio rápido de A2A",
+ "couldNotTest": "No se pudo realizar la prueba",
+ "testAllCompatible": "Probar todos los compatibles",
+ "anthropicCompatibleName": "Nombre compatible con Anthropic",
+ "disabling": "Deshabilitando",
+ "failedEnable": "Error al habilitar",
+ "categoryUtility": "Categoría de utilidades",
+ "customUrlOptional": "URL personalizada opcional",
+ "localProviders": "Proveedores locales",
+ "comboNamePlaceholder": "Marcador de posición del nombre de la combinación",
+ "memoryRss": "Memoria RSS",
+ "disableProvider": "Deshabilitar proveedor",
+ "welcomeDesc": "Descripción de bienvenida",
+ "nameLabel": "Etiqueta de nombre",
+ "allOperational": "Todos operativos",
+ "backupNow": "Crear copia de seguridad ahora",
+ "providerMaxRetriesAria": "ARIA de reintentos máximos del proveedor",
+ "textToSpeechDesc": "Descripción de texto a voz",
+ "machineId": "ID de la máquina",
+ "globalProxy": "Proxy global",
+ "hitsMisses": "Aciertos y fallos",
+ "testDesc": "Descripción de la prueba",
+ "chatDesc": "Descripción del chat",
+ "importSuccess": "Importación correcta",
"chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "a2aQuickStartStep1": "Paso 1 del inicio rápido de A2A",
+ "importFailed": "Error al importar",
+ "inputPlaceholder": "Marcador de posición de entrada",
+ "providerModelsTitle": "Título de modelos del proveedor",
+ "lastBackup": "Última copia de seguridad",
+ "yourEndpoint": "Tu endpoint",
+ "autoDisableThresholdDesc": "Descripción del umbral de desactivación automática",
+ "rerankDesc": "Descripción de la reclasificación",
+ "modelsPathPlaceholder": "Marcador de posición de la ruta de los modelos",
+ "noCombosYet": "Aún no hay combinaciones",
+ "connectedVerificationPendingWithError": "Conectado, verificación pendiente con error",
+ "comboDefaultsGuideHint1": "Primera sugerencia de la guía de valores predeterminados de combinaciones",
+ "enableCloudTitle": "Activar la nube",
+ "configuredProvidersHint": "Sugerencia sobre proveedores configurados",
+ "paused": "En pausa",
+ "llmProviders": "Proveedores de LLM",
+ "enableCombo": "Activar combinación",
+ "removeProviderOverrideAria": "ARIA para eliminar la configuración específica del proveedor",
+ "nodeVersion": "Versión de Node",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Error en la exportación",
+ "proxyConfigured": "Proxy configurado",
+ "concurrencyPerModel": "Concurrencia por modelo",
+ "protocolTasksLabel": "Etiqueta de tareas del protocolo",
+ "oauthProviders": "Proveedores de OAuth",
+ "lockedCount": "Cantidad bloqueada",
+ "deleteChainConfirm": "Confirmar eliminación de la cadena",
+ "recentTranslations": "Traducciones recientes",
+ "zedImportButton": "Botón de importación de Zed",
+ "responsesDesc": "Descripción de las respuestas",
+ "testedCount": "Cantidad probada",
+ "providersCommaSeparatedPlaceholder": "Marcador de posición de proveedores separados por comas",
+ "signatureDefaults": "Valores predeterminados de firma",
+ "errorCreating": "Error al crear",
+ "timeRangeYear": "Intervalo de tiempo: año",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Nube desactivada correctamente",
+ "deleteConfirm": "Confirmar eliminación",
+ "check": "Comprobar",
+ "safeSearch": "Búsqueda segura",
+ "protocolLastActivity": "Última actividad del protocolo",
+ "openMcpDashboard": "Abrir el panel de MCP",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Etiqueta de la ruta del chat",
+ "retryDelay": "Retraso de reintento",
+ "errorUpdating": "Error al actualizar",
+ "ideCliIntegrations": "Integraciones con IDE y CLI",
+ "imageGeneration": "Generación de imágenes",
+ "apiKeyRequired": "Se requiere una clave API",
+ "resetAllTitle": "Restablecer todo",
+ "connectionError": "Error de conexión",
+ "modelName": "Nombre del modelo",
+ "apiKeyForCheck": "Clave API para la comprobación",
+ "cloudRequestTimeout": "Tiempo de espera agotado para la solicitud en la nube",
+ "showConfiguredOnly": "Mostrar solo los configurados",
"showFreeOnly": "Sólo gratis",
"addFirstProvider": "Añade tu primer proveedor",
"addFirstProviderDesc": "Conecte un proveedor de IA para comenzar a enrutar solicitudes a través de OmniRoute. Puede utilizar proveedores gratuitos, claves API o cuentas OAuth.",
"learnMore": "Más información",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
- "queueDepth": "Queue Depth",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "includeDomains": "Incluir dominios",
+ "promptCache": "Caché de prompts",
+ "cloudConnected": "Conectado a la nube",
+ "deleteChain": "Eliminar cadena",
+ "chatPathPlaceholder": "Marcador de posición de la ruta del chat",
+ "databasePath": "Ruta de la base de datos",
+ "usingLocalServer": "Usando el servidor local",
+ "globalComboConfig": "Configuración global de combinaciones",
+ "backupFailed": "Error al crear la copia de seguridad",
+ "tabProtocols": "Protocolos de pestañas",
+ "continue": "Continuar",
+ "categorySearch": "Búsqueda por categoría",
+ "rateLimitStatus": "Estado del límite de solicitudes",
+ "repairEnvSuccess": "Entorno reparado correctamente",
+ "nameRequired": "El nombre es obligatorio",
+ "country": "País",
+ "trackMetricsDesc": "Descripción del seguimiento de métricas",
+ "durationSecondsShort": "Duración (s)",
+ "formatConverterDescription": "Descripción del conversor de formatos",
+ "cloudBenefitAccess": "Acceso a las ventajas de la nube",
+ "maxRetries": "Número máximo de reintentos",
+ "queueTimeout": "Tiempo de espera de la cola",
+ "queueDepth": "Profundidad de la cola",
+ "addProvider": "Añadir proveedor",
+ "realtime": "Tiempo real",
+ "totalTranslations": "Traducciones totales",
+ "protocolActiveStreamsLabel": "Flujos activos del protocolo",
+ "repairEnv": "Reparar entorno",
+ "modelsCount": "Número de modelos",
+ "viewBackups": "Ver copias de seguridad",
+ "responsesApi": "API de Responses",
+ "copyComboName": "Copiar nombre de la combinación",
+ "failures": "Fallos",
+ "failedUpdate": "Error al actualizar",
+ "imageDesc": "Descripción de la imagen",
+ "failedCreate": "Error al crear",
+ "remainingOfLimit": "Restante del límite",
+ "protocolsTitle": "Título de protocolos",
+ "expirationBannerExpiringSoonDesc": "Descripción del banner de próxima expiración",
+ "source": "Origen",
+ "failed": "Fallido",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "Paso 1 del inicio rápido de MCP",
+ "runTest": "Ejecutar prueba",
+ "loadingFallbackChains": "Cargando cadenas de respaldo",
+ "healthy": "Saludable",
+ "version": "Versión",
+ "saveBlockWeighted": "Guardar bloque ponderado",
+ "zedImportNone": "Ninguna importación de Zed",
+ "noBackupsYet": "Aún no hay copias de seguridad",
+ "noGlobalProxy": "Sin proxy global",
+ "noModels": "Sin modelos",
+ "stickyLimit": "Límite de afinidad",
+ "passedCount": "Cantidad de aprobados",
+ "zedImportFailed": "Error al importar desde Zed",
+ "saving": "Guardando",
+ "testAll": "Probar todo",
+ "globalProxyDesc": "Descripción del proxy global",
+ "latencyP99": "Latencia P99",
+ "connectingToCloud": "Conectando con la nube",
+ "responses": "Respuestas",
+ "errorDeleting": "Error al eliminar",
+ "openaiPrefixPlaceholder": "Marcador de posición del prefijo de OpenAI",
+ "enterPassword": "Introducir contraseña",
+ "openA2aDashboard": "Abrir el panel de A2A",
+ "enableProvider": "Habilitar proveedor",
+ "modeTest": "Modo de prueba",
+ "failedDeleteChain": "Error al eliminar la cadena",
+ "providerDesc": "Descripción del proveedor",
+ "templateLoadHint": "Sugerencia para cargar la plantilla",
+ "lastFailure": "Último fallo",
+ "moveDown": "Mover hacia abajo",
+ "providerLabel": "Etiqueta del proveedor",
+ "clearCacheFailed": "Error al borrar la caché",
+ "imagesGenerations": "Generaciones de imágenes",
+ "repairEnvWorking": "Reparación del entorno en curso",
+ "millisecondsShort": "ms",
+ "globalLabel": "Etiqueta global",
+ "failuresPlural": "Fallos",
+ "completionsLegacyDesc": "Descripción de completaciones heredadas",
+ "searchProviders": "Buscar proveedores",
+ "chatPathHint": "Sugerencia de ruta del chat",
+ "defaultStrategyDesc": "Descripción de la estrategia predeterminada",
+ "latencyP95": "Latencia P95",
+ "textToSpeech": "Texto a voz",
+ "searchType": "Tipo de búsqueda",
+ "messages": "Mensajes",
+ "aggregatorsGateways": "Agregadores y puertas de enlace",
+ "comboStrategyAria": "ARIA de estrategia combinada",
+ "input": "Entrada",
+ "testingConnection": "Probando la conexión",
+ "excludeDomains": "Excluir dominios",
+ "webCookieProviders": "Proveedores de cookies web",
+ "allTestsPassed": "Todas las pruebas superadas",
+ "openaiCompatibleName": "Nombre compatible con OpenAI",
+ "warningCostOptimizedPartialPricing": "Advertencia de precios parciales optimizados por coste",
+ "comboDefaultsGuideTitle": "Título de la guía de valores predeterminados de combinación",
+ "hoursAgo": "Horas atrás",
+ "notAvailable": "No disponible",
+ "skipAndContinue": "Omitir y continuar",
+ "moderations": "Moderaciones",
+ "proxyConfig": "Configuración del proxy",
+ "upstreamProxyProviders": "Proveedores de proxy ascendente",
+ "exportAll": "Exportar todo",
+ "queuedCount": "Cantidad en cola",
+ "resetAll": "Restablecer todo",
+ "noTranslations": "Sin traducciones",
+ "avgLatency": "Latencia media",
+ "throttleStatus": "Estado de limitación",
+ "backupRetentionDesc": "Descripción de la retención de copias de seguridad",
+ "noCBData": "Sin datos de CB",
+ "chainDeleted": "Cadena eliminada",
+ "timeLeft": "Tiempo restante",
+ "expirationBannerExpired": "Banner de expiración caducado",
+ "language": "Idioma",
+ "invalidFileType": "Tipo de archivo no válido",
+ "monitoredProviders": "Proveedores monitorizados",
+ "errors": "Errores",
+ "heap": "Montículo",
+ "chatCompletions": "Finalizaciones de chat",
+ "exampleTemplatesHint": "Sugerencia de plantillas de ejemplo",
+ "retryDelayLabel": "Etiqueta del retraso de reintento",
+ "audioTranscription": "Transcripción de audio",
+ "fallbackChainsDesc": "Descripción de las cadenas de respaldo",
+ "exampleTemplates": "Plantillas de ejemplo",
+ "connectionsCount": "Número de conexiones",
+ "modelsPathLabel": "Etiqueta de la ruta de modelos",
+ "activeProvidersHint": "Sugerencia de proveedores activos",
+ "activeLockouts": "Bloqueos activos",
+ "invalid": "No válido",
+ "skipPassword": "Omitir contraseña",
+ "moveUp": "Subir",
+ "timeRange": "Intervalo de tiempo",
+ "stickyLimitDesc": "Descripción del límite persistente",
+ "cloudBenefitEdge": "Ventaja de la nube: Edge",
+ "custom": "Personalizado",
+ "verifying": "Verificando",
+ "baseUrlLabel": "Etiqueta de la URL base",
+ "setPassword": "Establecer contraseña",
+ "safeSearchStrict": "Búsqueda segura estricta",
+ "noChangesSinceBackup": "Sin cambios desde la copia de seguridad",
+ "modelsPathHint": "Sugerencia de la ruta de modelos",
+ "audioTranscriptions": "Transcripciones de audio",
+ "testCombo": "Probar combinación",
+ "mcpQuickStartTitle": "Título de inicio rápido de MCP",
+ "comboUpdated": "Combinación actualizada",
+ "weighted": "Ponderado",
+ "providers": "Proveedores",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Descripción de ausencia de cadenas de respaldo",
+ "yesImport": "Sí, importar",
+ "lockoutsAutoRefreshHint": "Sugerencia de actualización automática de bloqueos",
+ "tabApis": "Pestaña API",
+ "sectionDescription": "Descripción de la sección",
+ "filter": "Filtrar",
+ "purgeLogsFailed": "Error al purgar los registros",
+ "latency": "Latencia",
+ "testAllOAuth": "Probar todas las autenticaciones OAuth",
+ "mcpQuickStartStep3": "Paso 3 del inicio rápido de MCP",
+ "repairEnvFailed": "Error al reparar el entorno",
+ "zedImportHint": "Sugerencia de importación de Zed",
+ "modelsAcrossEndpoints": "Modelos en distintos endpoints",
+ "autoDisableBannedAccounts": "Desactivar automáticamente las cuentas bloqueadas",
+ "securityDesc": "Descripción de seguridad",
+ "listModels": "Listar modelos",
+ "backupRestore": "Copia de seguridad y restauración",
+ "target": "Destino",
+ "zedImportSuccess": "Importación de Zed completada",
+ "lastHeaderUpdate": "Última actualización del encabezado",
+ "categoryCore": "Categoría principal",
+ "noFallbackChains": "No hay cadenas de respaldo",
+ "noSearchProviders": "No hay proveedores de búsqueda",
+ "autoBalance": "Equilibrio automático",
+ "noModelsYet": "Aún no hay modelos",
+ "signatureFamily": "Familia de firmas",
+ "externalApiCalls": "Llamadas a API externas",
+ "providerOverridesDesc": "Descripción de las anulaciones del proveedor",
+ "signatureTool": "Herramienta de firma",
+ "connectionFailed": "Error de conexión",
+ "activeLimitersPlural": "Limitadores activos",
+ "doneDesc": "Descripción de finalización",
+ "down": "Inactivo",
+ "noDataYet": "Aún no hay datos",
+ "activeProviders": "Proveedores activos",
+ "nameInvalid": "Nombre no válido",
+ "skip": "Omitir",
+ "createChain": "Crear cadena",
+ "audioSpeech": "Síntesis de voz",
+ "cacheCleared": "Caché borrada",
+ "searchTypeNews": "Tipo de búsqueda: noticias",
+ "durationMillisecondsShort": "Duración (ms)",
+ "addOpenAICompatible": "Añadir compatibilidad con OpenAI",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "En cola",
+ "domainPlaceholder": "Marcador de posición del dominio",
+ "durationMinutesShort": "Duración en minutos (abreviada)",
+ "verifyingConnection": "Verificando la conexión",
+ "imageProviders": "Proveedores de imágenes",
+ "protocolToolsLabel": "Etiqueta de herramientas de protocolo",
+ "queryPlaceholder": "Marcador de posición de la consulta",
+ "videoGeneration": "Generación de vídeo",
+ "timeRangeWeek": "Intervalo de tiempo: semana",
+ "limitExhausted": "Límite agotado",
+ "failedDisable": "Error al deshabilitar",
+ "inMemoryNote": "Nota en memoria",
+ "compatibleHint": "Consejo de compatibilidad",
+ "errorShort": "Error breve",
+ "advancedHint": "Consejo avanzado",
+ "restoreFailed": "Error al restaurar",
+ "searchProvidersHeading": "Encabezado de proveedores de búsqueda",
+ "comboName": "Nombre de la combinación",
+ "autoDisableDescription": "Descripción de la desactivación automática",
+ "embeddingsDesc": "Descripción de las incrustaciones",
+ "operational": "Operativo",
+ "testAllApiKey": "Probar todas las claves de API",
+ "backupCreated": "Copia de seguridad creada",
+ "errorDuringImport": "Error durante la importación",
+ "comboDefaultsGuideHint2": "Consejo 2 de la guía de valores predeterminados de combinaciones",
+ "connecting": "Conectando",
+ "fillModelAndProviders": "Completa el modelo y los proveedores",
+ "syncing": "Sincronizando",
+ "resetConfirm": "Confirmar restablecimiento",
+ "trackMetrics": "Registrar métricas",
+ "successful": "Correcto",
+ "recovering": "Recuperando",
+ "autoDisableThreshold": "Umbral de desactivación automática",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Sincronizando datos",
+ "cloudBenefitPorts": "Ventaja de los puertos en la nube",
+ "compatibleProviders": "Proveedores compatibles",
"freeTierProviders": "Proveedores de nivel gratuito",
"freeTierLabel": "Nivel gratuito disponible",
"freeTierProvidersDesc": "Proveedores con niveles gratuitos: algunos requieren un registro de clave API, otros no necesitan ninguna credencial.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "Borrar caché",
+ "reqs": "Solicitudes",
+ "addAnthropicCompatible": "Añadir proveedor compatible con Anthropic",
+ "apiKeyProviders": "Proveedores de claves de API",
+ "tabsAria": "ARIA de pestañas",
+ "resetting": "Restableciendo",
+ "millisecondsAbbr": "Abrev. de milisegundos",
+ "backupReasonPreRestore": "Motivo de la copia de seguridad previa a la restauración",
+ "disableCloud": "Desactivar la nube",
+ "newProviderNameAria": "ARIA del nombre del nuevo proveedor",
+ "passwordsMismatch": "Las contraseñas no coinciden",
+ "a2aQuickStartStep3": "Paso 3 del inicio rápido de A2A",
+ "liveMonitorDescriptionSuffix": "Sufijo de la descripción del monitor en tiempo real",
+ "failedAddProvider": "No se pudo añadir el proveedor",
+ "addAtLeastOneProvider": "Añade al menos un proveedor",
+ "reasonSeparator": "Separador de motivos",
+ "zedImporting": "Importando Zed",
+ "confirmPasswordPlaceholder": "Marcador de posición para confirmar la contraseña",
+ "whatYouGet": "Qué obtienes",
+ "signatureSession": "Sesión de firma",
+ "errorCountNoCode": "Recuento de errores sin código",
+ "testing": "Probando",
+ "providersCommaSeparated": "Proveedores separados por comas",
+ "exportDatabase": "Exportar base de datos",
+ "hitRate": "Tasa de aciertos",
+ "completionsLegacy": "Completados heredados",
+ "removeModel": "Eliminar modelo",
+ "timeRangeDay": "Intervalo de tiempo: día",
+ "cloudRequestFailed": "Error en la solicitud a la nube",
+ "updatedAt": "Actualizado el",
+ "monitoredProvidersHint": "Sugerencia de proveedores supervisados",
+ "connectionSuccessful": "Conexión establecida correctamente",
+ "latencyP50": "Latencia P50",
+ "logsDeleted": "Registros eliminados",
+ "chatTester": "Probador de chat",
+ "safeSearchOff": "Búsqueda segura desactivada",
+ "nameHint": "Sugerencia de nombre",
+ "debugToggle": "Selector de depuración",
+ "embedding": "Representación vectorial",
+ "issuesLabel": "Etiqueta de problemas",
+ "optionAny": "Opción cualquiera",
+ "maxNestingDepth": "Profundidad máxima de anidamiento",
+ "rerank": "Reclasificación",
+ "checking": "Comprobando",
+ "getStarted": "Comenzar",
+ "restoreSuccess": "Restauración correcta",
+ "issuesDetected": "Problemas detectados",
+ "signatureCache": "Caché de firmas",
+ "modelLockouts": "Bloqueos de modelos",
+ "usingCloudProxy": "Usando Cloud Proxy",
+ "loadingHealth": "Cargando estado",
+ "providerOverrides": "Anulaciones de proveedores",
+ "audioTranscriptionDesc": "Descripción de la transcripción de audio",
+ "learnedFromHeaders": "Aprendido de los encabezados",
+ "totalRequests": "Solicitudes totales",
+ "cloudUnstableNote": "Nota sobre la inestabilidad de la nube",
"gamificationAdmin": "Administrador de gamificación",
"monitorAnomaliesAndHealth": "Supervisar anomalías y el estado del sistema.",
"flaggedAnomalies": "Anomalías marcadas",
"noAnomaliesDetected": "No se detectaron anomalías",
"apiKey": "Clave API",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 h)",
"zScore": "Puntuación Z",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Sospechoso",
"tokensCommunityServers": "Servidores comunitarios",
"tokensServerNamePlaceholder": "Nombre del servidor",
"tokensApiKeyPlaceholder": "clave API",
@@ -721,42 +721,42 @@
"tokensRedeemCode": "Canjear código",
"tokensRedeemCodePlaceholder": "Introduce el código de invitación",
"tokensYourActiveInvites": "Tus invitaciones activas",
- "tokensTransferSuccess": "Transfer successful ({idempotencyKey})",
- "tokensTransferFailed": "Transfer failed",
- "tokensCreateInviteFailed": "Failed to create invite",
- "tokensRevokeInviteFailed": "Failed to revoke invite",
- "tokensRedeemSuccess": "Invite redeemed. Server: {server}",
- "tokensRedeemFailed": "Failed to redeem invite",
- "tokensConnectServerFailed": "Failed to connect server",
- "tokensDisconnectServerFailed": "Failed to disconnect server",
- "tokensAmount": "Amount",
- "tokensSending": "Sending...",
- "tokensFrom": "From",
- "tokensTo": "To",
- "tokensReason": "Reason",
- "tokensDate": "Date",
- "tokensSent": "Sent",
- "tokensReceived": "Received",
- "tokensCreatingInvite": "Creating...",
- "tokensCreateInvite": "Create Invite",
- "tokensInviteCreated": "Invite code created",
- "tokensRedeeming": "Redeeming...",
- "tokensRedeem": "Redeem",
- "tokensInviteUses": "{used}/{max} uses",
- "tokensRevoked": "REVOKED",
- "tokensRevoke": "Revoke",
- "tokensConnecting": "Connecting...",
- "tokensConnectServer": "Connect Server",
- "tokensNoServersConnected": "No servers connected. Connect to a community server to share leaderboards.",
+ "tokensTransferSuccess": "Transferencia realizada correctamente ({idempotencyKey})",
+ "tokensTransferFailed": "Error en la transferencia",
+ "tokensCreateInviteFailed": "No se pudo crear la invitación",
+ "tokensRevokeInviteFailed": "No se pudo revocar la invitación",
+ "tokensRedeemSuccess": "Invitación canjeada. Servidor: {server}",
+ "tokensRedeemFailed": "No se pudo canjear la invitación",
+ "tokensConnectServerFailed": "No se pudo conectar al servidor",
+ "tokensDisconnectServerFailed": "No se pudo desconectar del servidor",
+ "tokensAmount": "Cantidad",
+ "tokensSending": "Enviando...",
+ "tokensFrom": "De",
+ "tokensTo": "Para",
+ "tokensReason": "Motivo",
+ "tokensDate": "Fecha",
+ "tokensSent": "Enviado",
+ "tokensReceived": "Recibido",
+ "tokensCreatingInvite": "Creando...",
+ "tokensCreateInvite": "Crear invitación",
+ "tokensInviteCreated": "Código de invitación creado",
+ "tokensRedeeming": "Canjeando...",
+ "tokensRedeem": "Canjear",
+ "tokensInviteUses": "{used}/{max} usos",
+ "tokensRevoked": "REVOCADA",
+ "tokensRevoke": "Revocar",
+ "tokensConnecting": "Conectando...",
+ "tokensConnectServer": "Conectar servidor",
+ "tokensNoServersConnected": "No hay servidores conectados. Conéctate a un servidor comunitario para compartir tablas de clasificación.",
"tokensServerStatus": {
- "connected": "Connected",
- "disconnected": "Disconnected",
- "pending": "Pending",
- "syncing": "Syncing",
+ "connected": "Conectado",
+ "disconnected": "Desconectado",
+ "pending": "Pendiente",
+ "syncing": "Sincronizando",
"error": "Error"
},
- "tokensLastSync": "Last sync: {date}",
- "tokensDisconnect": "Disconnect",
+ "tokensLastSync": "Última sincronización: {date}",
+ "tokensDisconnect": "Desconectar",
"tierCoverageTitle": "Cobertura de nivel",
"tierCoverageSubtitle": "Proveedores configurados por nivel alternativo",
"batchDetailCopyId": "Copiar identificación",
@@ -781,179 +781,179 @@
"batchFileDetailCopyId": "Copiar identificación",
"batchFileDetailClose": "Cerrar",
"batchFileDetailFailedToLoad": "No se pudo cargar el contenido del archivo",
- "batchFileDetailLoadError": "Error loading file contents",
+ "batchFileDetailLoadError": "Error al cargar el contenido del archivo",
"batchFilesListSearchPlaceholder": "Buscar por ID o nombre de archivo...",
"batchFilesListFilesTable": "Archivos",
- "batchFilesCount": "{count, plural, one {# file} other {# files}}",
- "batchFilesAllPurposes": "All purposes",
- "batchFilesFilename": "Filename",
- "batchFilesPurpose": "Purpose",
- "batchFilesExpires": "Expires",
- "batchFilesNoneFound": "No files found",
- "batchFilesNeverExpires": "Never",
- "batchFileInUseByActiveBatch": "File in use by an active batch",
+ "batchFilesCount": "{count, plural, one {# archivo} other {# archivos}}",
+ "batchFilesAllPurposes": "Todos los usos",
+ "batchFilesFilename": "Nombre del archivo",
+ "batchFilesPurpose": "Uso",
+ "batchFilesExpires": "Caduca",
+ "batchFilesNoneFound": "No se encontraron archivos",
+ "batchFilesNeverExpires": "Nunca",
+ "batchFileInUseByActiveBatch": "Archivo utilizado por un lote activo",
"batchFilePurpose": {
- "batch": "Batch input",
- "batch-output": "Batch output",
- "fine-tune": "Fine-tuning",
- "assistants": "Assistants"
+ "batch": "Entrada del lote",
+ "batch-output": "Salida del lote",
+ "fine-tune": "Ajuste fino",
+ "assistants": "Asistentes"
},
"batchPageLoadingMore": "Cargando más…",
"recommended": "Recomendado",
- "understand": "I understand",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "understand": "Entiendo",
+ "batchConceptTitle": "Procesamiento por lotes",
+ "batchConceptSubtitle": "Procesa miles de solicitudes de forma asíncrona por aproximadamente el 50 % del coste (plazo de 24 h). Ideal para evaluaciones, clasificación e incrustaciones.",
+ "batchConceptHowItWorks": "Cómo funciona",
+ "batchConceptBenefit50pct": "50 % de descuento en tokens de entrada y salida",
+ "batchConceptAsync24h": "Procesamiento asíncrono con un plazo de finalización de 24 h",
+ "batchConceptUseCases": "Ideal para clasificación masiva, evaluaciones e incrustaciones",
+ "batchHeaderSubtitle": "Ejecuta muchas solicitudes como un solo trabajo",
+ "batchStep1": "1 · Subir JSONL",
+ "batchStep1Desc": "Añadir solicitudes",
+ "batchStep2": "2 · Crear lote",
+ "batchStep2Desc": "Ejecutar trabajo",
+ "batchStep3": "3 · Obtener resultados",
+ "batchStep3Desc": "Descargar salida",
+ "filesConceptTitle": "Archivos de lotes",
+ "filesConceptSubtitle": "Archivos JSONL utilizados por los lotes: solicitudes de entrada, resultados y errores.",
+ "filesConceptInput": "Entrada — tu JSONL con una solicitud por línea",
+ "filesConceptOutput": "Salida — resultados de las solicitudes completadas",
+ "filesConceptError": "Errores — solicitudes que fallaron",
+ "filesConceptRetention": "Retención: 30 días de forma predeterminada (29 días en Anthropic)",
+ "wizardTitle": "Nuevo lote",
+ "wizardClose": "Cerrar",
+ "wizardNext": "Siguiente",
+ "wizardBack": "Atrás",
+ "wizardCancel": "Cancelar",
+ "wizardCreate": "Crear lote",
+ "wizardCreating": "Creando…",
+ "wizardStep1Destination": "Destino",
+ "wizardStep2Input": "Entrada",
+ "wizardStep3Validate": "Validar",
+ "wizardStep4Cost": "Coste y creación",
+ "wizardProviderLabel": "Proveedor",
+ "wizardEndpointLabel": "Punto de conexión",
+ "wizardModelLabel": "Modelo",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
- "wizardCsvNoColumns": "No columns detected in CSV header.",
- "wizardCsvIgnoreColumn": "— ignore —",
- "wizardCsvCustomIdMapped": "custom_id mapped",
- "wizardCsvContentMapped": "Content field mapped (messages, input, or prompt)",
- "wizardCsvApplyMapping": "Apply mapping",
- "wizardCsvRowsParsed": "{count} rows parsed",
- "wizardCsvRowsSkipped": "{count} rows skipped",
- "wizardCsvRowError": "Row {row}: {reason}",
- "wizardValidationOk": "All lines valid",
- "wizardValidating": "Validating…",
- "wizardValidationParseFailed": "Validation failed — could not parse content.",
- "wizardValidationSummary": "{lines} lines · {ids} unique custom_ids",
- "wizardValidationErrorCount": "{count, plural, one {# error} other {# errors}} found",
- "wizardValidationDuplicateIds": "Duplicate custom_ids detected:",
- "wizardValidationFirstErrors": "Errors (first {count}):",
- "wizardValidationLine": "Line {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
+ "wizardInputKindCsv": "CSV (lo convertiremos)",
+ "wizardDropOrPick": "Suelta un archivo o haz clic para seleccionarlo",
+ "wizardCsvMappingTitle": "Asignar columnas CSV → campos de solicitud",
+ "wizardCsvMappingAddField": "Añadir campo",
+ "wizardCsvNoColumns": "No se detectaron columnas en el encabezado CSV.",
+ "wizardCsvIgnoreColumn": "— ignorar —",
+ "wizardCsvCustomIdMapped": "custom_id asignado",
+ "wizardCsvContentMapped": "Campo de contenido asignado (messages, input o prompt)",
+ "wizardCsvApplyMapping": "Aplicar asignación",
+ "wizardCsvRowsParsed": "{count} filas procesadas",
+ "wizardCsvRowsSkipped": "{count} filas omitidas",
+ "wizardCsvRowError": "Fila {row}: {reason}",
+ "wizardValidationOk": "Todas las líneas son válidas",
+ "wizardValidating": "Validando…",
+ "wizardValidationParseFailed": "Error de validación: no se pudo analizar el contenido.",
+ "wizardValidationSummary": "{lines} líneas · {ids} custom_ids únicos",
+ "wizardValidationErrorCount": "Se {count, plural, one {encontró # error} other {encontraron # errores}}",
+ "wizardValidationDuplicateIds": "Se detectaron custom_ids duplicados:",
+ "wizardValidationFirstErrors": "Errores (primeros {count}):",
+ "wizardValidationLine": "Línea {line}",
+ "wizardValidationErrors": "Errores de validación",
+ "wizardValidationPreview": "Vista previa (primeras 5 solicitudes)",
+ "wizardValidationSamplingNote": "El archivo es grande; se ha validado mediante muestreo (las primeras 1000 líneas y las últimas 100). La validación completa se ejecuta en el servidor.",
+ "wizardCostSync": "Sincronizar coste",
+ "wizardCostBatch": "Coste por lotes (-50 %)",
+ "wizardCostSavings": "Ahorro",
+ "wizardCostEstimatedNotice": "Coste estimado — la facturación real puede variar.",
+ "wizardErrorUpload": "No se pudo subir el archivo. Inténtalo de nuevo.",
+ "wizardErrorCreate": "No se pudo crear el lote. Inténtalo de nuevo.",
+ "wizardEmptyProviders": "Conecta un proveedor compatible con lotes (OpenAI, Anthropic o Gemini) para crear un lote.",
+ "uploadModalTitle": "Subir archivo por lotes",
+ "uploadModalDropOrPick": "Suelta un archivo .jsonl o haz clic para seleccionarlo",
+ "uploadModalUpload": "Subir",
+ "uploadModalCancel": "Cancelar",
+ "uploadModalError": "Error al subir. Inténtalo de nuevo.",
+ "uploadModalSuccess": "Subido",
+ "uploadModalSizeLimit": "Máx. 512 MB",
+ "batchListNewButton": "Nuevo lote",
+ "batchListAutoRefresh": "Actualización automática cada 30 s",
+ "batchListCostColumn": "Coste",
+ "batchActionCancel": "Cancelar",
+ "batchActionDownloadOutput": "Descargar resultados",
+ "batchActionDownloadErrors": "Descargar errores",
+ "batchActionRetry": "Reintentar fallidos",
+ "batchActionRetryConfirm": "¿Reintentar {n} solicitud(es) fallida(s)? El coste final depende de los tokens consumidos realmente.",
+ "expirationBadgeCritical": "Crítico",
+ "expirationBadgeWarning": "Próximamente",
+ "expirationBadgeNormal": "Pendiente",
+ "expirationBadgeExpired": "Caducado",
+ "filesListUploadButton": "Subir",
+ "filesListUsedByColumn": "Utilizado por",
+ "filesListUsedByNone": "Ninguno",
+ "filesListUsedByRoleInput": "entrada",
+ "filesListUsedByRoleOutput": "salida",
"filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "filesListSizeColumn": "Tamaño",
+ "batchListProgressPartial": "(parcial)",
+ "batchListProviderColumn": "Proveedor",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "Otro",
+ "batchListTitle": "Lotes",
+ "batchListCount": "{count} lotes",
+ "batchListRemovingCompleted": "Eliminando…",
+ "batchListRemoveCompleted": "Eliminar completados",
+ "batchListTableStatus": "Estado",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "Punto de conexión",
+ "batchListTableModel": "Modelo",
+ "batchListTableProgress": "Progreso",
+ "batchListTableCreated": "Creado",
+ "batchListTableExpires": "Caduca",
+ "batchListLoading": "Cargando…",
+ "batchListEmpty": "No se encontraron lotes",
+ "batchListValidating": "Validando…",
+ "batchStatusAll": "Todos los estados",
+ "batchStatusInProgress": "En curso",
+ "batchStatusValidating": "Validando",
+ "batchStatusFinalizing": "Finalizando",
+ "batchStatusCompleted": "Completado",
+ "batchStatusFailed": "Fallido",
+ "batchStatusCancelled": "Cancelado",
+ "batchStatusCancelling": "Cancelando",
+ "batchStatusExpired": "Caducado",
+ "batchStatusCompletedWithFailures": "completado con errores",
+ "batchStatusInProgressWithFailures": "en curso (con errores)",
+ "batchStatusFinalizingWithFailures": "finalizando (con errores)",
+ "batchStatusCancelledWithFailures": "cancelado con errores",
+ "batchStatusExpiredWithFailures": "caducado (parcial)",
+ "wizardCostEstimating": "Calculando el coste…",
+ "wizardCostRequests": "Solicitudes",
+ "wizardCostInputTok": "tokens de entrada",
+ "wizardCostOutputTok": "tokens de salida",
+ "wizardCostWindow": "Ventana",
+ "wizardDestinationSelectProvider": "Selecciona un proveedor…",
+ "wizardDestinationSelectModel": "Selecciona un modelo…",
+ "wizardDestinationConnectProvider": "Conecta un proveedor",
+ "batchListBatchCreated": "Lote {id} creado — actualizando la lista…",
+ "batchListBatchCreatedDismiss": "Descartar",
+ "batchListRefreshing": "Actualizando…",
+ "batchListRefresh": "Actualizar",
+ "uploadFileModalRemove": "Eliminar",
+ "uploadFileModalUploading": "Subiendo…",
+ "wizardInputReading": "Leyendo archivo…",
+ "wizardInputReady": "Listo",
+ "wizardInputLargeFileLabel": "Archivo grande — validación por muestreo",
+ "wizardInputCsvJsonlReady": "JSONL generado — listo para validar.",
+ "wizardInputLargeFileWarning": "Se ha detectado un archivo grande — la validación se realiza mediante muestreo (primeros 5 MB + últimos 100 KB). La validación completa se realiza en el servidor.",
+ "wizardCostWindow24h": "Plazo de finalización de 24 h",
+ "wizardValidationFieldsOk": "campos obligatorios válidos",
+ "filesListDelete": "Eliminar",
+ "filesListDownload": "Descargar",
+ "batchDetailActionCancel": "Cancelar lote",
+ "batchDetailActionRetry": "Reintentar solicitudes fallidas",
+ "batchDetailCancelling": "Cancelando…",
+ "batchDetailRetrying": "Preparando reintento…",
+ "batchDetailCancelConfirm": "¿Cancelar este lote? Las solicitudes en curso se detendrán.",
+ "batchActionCancelError": "No se pudo cancelar el lote. Inténtalo de nuevo.",
+ "batchActionRetryError": "No se pudieron reintentar las solicitudes fallidas. Inténtalo de nuevo.",
+ "batchConceptRetentionNote": "Los archivos de resultados y errores se conservan durante 30 días (Anthropic: 29 días)",
"batchFilesSizeColumn": "Tamaño",
"toggleNoAuthProvider": "Alternar proveedor sin autenticación",
"loadingModels": "Cargando modelos…",
@@ -985,18 +985,22 @@
"batchFilePreviewTruncated": "Mostrando las primeras {shown} líneas ({total} líneas en total)",
"batchFileDownloadFull": "Descargar Archivo Completo"
},
- "disabled": "Disabled",
- "featureFlagOmnirouteEmergencyFallbackDescription": "Route budget-exhausted requests to the emergency free fallback provider/model.",
- "featureFlagArenaEloSyncEnabledDescription": "Enable periodic Arena AI leaderboard ELO sync for model intelligence rankings.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "disabled": "Deshabilitado",
+ "featureFlagOmnirouteEmergencyFallbackDescription": "Enrutar las solicitudes con el presupuesto agotado al proveedor/modelo alternativo gratuito de emergencia.",
+ "featureFlagArenaEloSyncEnabledDescription": "Habilitar la sincronización periódica del ELO de la clasificación de Arena AI para los rankings de inteligencia de modelos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Generar e insertar resúmenes de conversaciones cuando el enrutamiento combinado cambie de modelo. Deshabilítalo para tratar los cambios de modelo de forma independiente y evitar solicitudes de transferencia en segundo plano para todas las combinaciones actuales y futuras.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Anunciar los ids de espejo claude/<provider>/<model> en /v1/models para que la lista de descubrimiento de modelos del gateway de Claude Code incluya modelos que no son de Claude. Advertencia: duplica las entradas del catálogo para todos los clientes cuando se habilita globalmente.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Interruptor principal para los alias de puerta de enlace no-think/<provider>/<model>. Activado (valor predeterminado): /v1/models anuncia una variante sin razonamiento para cada modelo Claude compatible con razonamiento que cumpla los requisitos, y un id no-think/ enviado en una solicitud se resuelve al modelo real con el razonamiento suprimido. Desactivado: no se anuncia ninguna variante y un id no-think/ se trata como cualquier otro id de modelo desconocido. La opción de inclusión/exclusión por modelo ModelSpec.noThinkingAlias sigue aplicándose mientras esté activado.",
"featureFlagChatVirtualLanesEnabledDescription": "Activa carriles de admisión virtuales adaptativos por tenant para el envío de proveedores (#9654): el pico de un tenant ya no devuelve 503 a otro. La variable de entorno OMNIROUTE_CHAT_VIRTUAL_LANES tiene prioridad sobre esta opción del panel; los cambios surten efecto al reiniciar el servidor.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Páginas de proveedores del panel: muestra la insignia Gratis solo cuando haya indicios de que el proveedor la admite; descarta la heurística basada en el nombre para mostrar, los campos free no booleanos y los sufijos :free en proveedores registrados sin un nivel gratuito documentado. Desactivado mantiene la regla histórica de la insignia.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Los grupos de proxies y la rotación por cuenta de opencode dejan de reutilizar temporalmente un proxy que acaba de fallar (sondeo TCP rechazado o un 429 recibido a través de él) durante un período por proceso que se duplica con cada repetición, hasta alcanzar un límite. No se registra ningún estado del proxy; si se apartan todos los candidatos, la elección no cambia. Desactivado de forma predeterminada: el orden de selección coincide exactamente con la rotación normal.",
+ "featureFlagProxyPoolEgressObservationDescription": "Mostrar, debajo de un grupo de proxies en el panel, cuántas IP de salida observadas utilizaron sus miembros durante las últimas 24 h, cuántas conexiones las usaron y el máximo observado detrás de una sola IP. Es de solo lectura, se calcula a partir del registro del proxy y nunca se utiliza para el enrutamiento. Desactivado de forma predeterminada: el editor de grupos no cambia y la ruta de observación devuelve null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "En la comprobación periódica del estado de los proxies, permitir que un sondeo rechazado por el destino (401/403/429: el proxy lo retransmitió, pero el destino rechazó esta IP de salida) reinicie la racha de fallos consecutivos del proxy, como un sondeo atendido. Desactivado de forma predeterminada: un rechazo sigue siendo neutral y mantiene la racha. Un 5xx sigue sin ser concluyente en ambos casos, y un rechazo nunca elimina, desactiva ni reactiva un proxy.",
"sidebar": {
"home": "Inicio",
"dashboard": "Panel de control",
"providers": "Proveedores",
- "combos": "Combos",
+ "combos": "Combinaciones",
"usage": "Uso",
"analytics": "Analítica",
"costs": "Costos",
@@ -1007,18 +1011,18 @@
"media": "Multimedia",
"settings": "Configuración",
"translator": "Traductor",
- "playground": "Playground",
- "searchTools": "Search Tools",
+ "playground": "Entorno de pruebas",
+ "searchTools": "Herramientas de búsqueda",
"agents": "Agentes",
"cloudAgents": "Agentes de la nube",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Memoria",
+ "skills": "Habilidades",
"omniSkills": "OmniSkills",
"agentSkills": "Habilidades del agente",
- "chaosConfig": "Chaos Mode",
+ "chaosConfig": "Modo caos",
"docs": "Documentación",
"issues": "Problemas",
- "endpoints": "Endpoints",
+ "endpoints": "Puntos de conexión",
"endpointsSubtitle": "Las URL de su conexión de IA",
"apiManager": "Gestor de API",
"apiManagerSubtitle": "Administrar claves API y acceso",
@@ -1065,236 +1069,236 @@
"cliToolsShort": "Herramientas",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "Trabajos por lotes",
+ "themeSystem": "Sistema de temas",
+ "whitelabelingDesc": "Descripción de marca blanca",
+ "switchThemes": "Cambiar temas",
+ "themeAccentDesc": "Descripción del color de acento del tema",
+ "uploadFavicon": "Subir favicon",
+ "themeDark": "Tema oscuro",
+ "customLogoDesc": "Descripción del logotipo personalizado",
+ "sidebarVisibilityToggle": "Alternar visibilidad de la barra lateral",
+ "themeAccent": "Color de acento del tema",
+ "resetFavicon": "Restablecer favicon",
+ "whitelabeling": "Marca blanca",
+ "darkMode": "Modo oscuro",
+ "uploadLogo": "Subir logotipo",
+ "themeLight": "Tema claro",
+ "appName": "Nombre de la aplicación",
+ "appNameDesc": "Descripción del nombre de la aplicación",
+ "resetLogo": "Restablecer logotipo",
+ "customFavicon": "Favicon personalizado",
+ "hideHealthLogs": "Ocultar registros de estado",
+ "customLogo": "Logotipo personalizado",
+ "appearance": "Apariencia",
+ "themeSelectionAria": "ARIA de selección de tema",
+ "themeCreate": "Crear tema",
+ "customFaviconDesc": "Descripción del favicon personalizado",
+ "logoPreview": "Vista previa del logotipo",
+ "themeCustom": "Tema personalizado",
+ "hideHealthLogsDesc": "Descripción de ocultar registros de estado",
+ "faviconPreview": "Vista previa del favicon",
+ "changelog": "Registro de cambios",
+ "contextSection": "Contexto y caché",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Combinaciones de motores",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Configuración de compresión",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
- "combosLiveSubtitle": "Live routing cascade",
+ "combosLive": "Estudio de combinaciones",
+ "combosLiveSubtitle": "Cascada de enrutamiento en tiempo real",
"compressionStudio": "Compression Studio",
- "compressionExclusions": "Exclusions",
- "contextSettingsSubtitle": "Global defaults",
- "contextHeadroomSubtitle": "Tabular compaction",
- "contextSessionDedupSubtitle": "Cross-turn deduplication",
- "contextCcrSubtitle": "Retrieve markers",
- "contextLlmlinguaSubtitle": "Semantic pruning",
- "contextLiteSubtitle": "Fast whitespace cleanup",
- "contextAggressiveSubtitle": "Summary and aging",
- "contextUltraSubtitle": "Heuristic pruning",
- "contextOmniglyphSubtitle": "Context as images",
- "compressionStudioSubtitle": "Live engine cascade",
- "compressionExclusionsSubtitle": "Per-model/endpoint bypass",
- "chaosConfigSubtitle": "Multi-model parallel execution",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "compressionExclusions": "Exclusiones",
+ "contextSettingsSubtitle": "Valores predeterminados globales",
+ "contextHeadroomSubtitle": "Compactación tabular",
+ "contextSessionDedupSubtitle": "Deduplicación entre turnos",
+ "contextCcrSubtitle": "Recuperar marcadores",
+ "contextLlmlinguaSubtitle": "Poda semántica",
+ "contextLiteSubtitle": "Limpieza rápida de espacios en blanco",
+ "contextAggressiveSubtitle": "Resumen y envejecimiento",
+ "contextUltraSubtitle": "Poda heurística",
+ "contextOmniglyphSubtitle": "Contexto como imágenes",
+ "compressionStudioSubtitle": "Cascada de motores en tiempo real",
+ "compressionExclusionsSubtitle": "Omisión por modelo/endpoint",
+ "chaosConfigSubtitle": "Ejecución paralela de varios modelos",
+ "routingSection": "Enrutamiento",
+ "protocolsSection": "Protocolos",
+ "agentsAiSection": "Agentes e IA",
+ "cacheContextSection": "Caché y contexto",
+ "analyticsSection": "Analítica",
+ "costsSection": "Costes",
+ "monitoringSection": "Monitorización",
+ "auditSecuritySection": "Auditoría y seguridad",
+ "devtoolsSection": "Herramientas de desarrollo",
+ "configurationSection": "Configuración",
+ "aiFeaturesSection": "Funciones de IA",
"mcp": "MCP",
"a2a": "A2A",
- "plugins": "Plugins",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
- "costsFreeTiers": "Free-Tier Budget",
- "costsFreeTiersSubtitle": "Monthly free-token allowances",
- "freeProviderRankings": "Free Provider Rankings",
- "freeProviderRankingsSubtitle": "Best free providers ranked by model ELO scores",
+ "plugins": "Complementos",
+ "apiEndpoints": "Endpoints de API",
+ "batchFiles": "Archivos",
+ "analyticsEvals": "Evaluaciones",
+ "analyticsSearch": "Búsqueda",
+ "analyticsUtilization": "Utilización",
+ "analyticsComboHealth": "Estado de las combinaciones",
+ "analyticsCompression": "Compresión",
+ "costsBudget": "Presupuesto",
+ "costsFreeTiers": "Presupuesto del nivel gratuito",
+ "costsFreeTiersSubtitle": "Asignaciones mensuales de tokens gratuitos",
+ "freeProviderRankings": "Clasificación de proveedores gratuitos",
+ "freeProviderRankingsSubtitle": "Mejores proveedores gratuitos clasificados por puntuaciones ELO de los modelos",
"radar": "Catálogo de Radar",
"radarSubtitle": "Catálogo de modelos gratuito enriquecido por la comunidad",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Uso compartido de cuotas",
+ "costsPricing": "Precios",
+ "logsProxy": "Registros del proxy",
+ "logsConsole": "Consola",
+ "logsActivity": "Actividad",
+ "auditMcp": "Auditoría de MCP",
"auditA2a": "Auditoría A2A",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
- "settingsAccessTokens": "Access Tokens",
+ "settingsAppearance": "Apariencia",
+ "settingsAi": "Configuración de IA",
+ "settingsSecurity": "Seguridad",
+ "settingsAccessTokens": "Tokens de acceso",
"settingsFeatureFlags": "Banderas de características",
- "settingsCache": "Cache",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
- "modelLockout": "Model Lockout",
- "settingsAdvanced": "Advanced",
+ "settingsCache": "Caché",
+ "settingsAuthz": "Autorización",
+ "settingsRouting": "Enrutamiento",
+ "settingsResilience": "Resiliencia",
+ "modelLockout": "Bloqueo de modelos",
+ "settingsAdvanced": "Avanzado",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Cuota del proveedor",
+ "providerQuota": "Cuota del proveedor",
+ "runtime": "Entorno de ejecución",
+ "consoleLogs": "Registros de la consola",
+ "logsTimeline": "Cronología",
"logsTimelineSubtitle": "Línea de tiempo de solicitudes visuales",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Conversaciones",
+ "conversationsSubtitle": "Conversaciones agénticas multiturno",
+ "globalRouting": "Enrutamiento global",
+ "mitmProxy": "Proxy MITM",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Funciones agénticas",
+ "otherFeaturesSection": "Otras funciones",
+ "compressionContextGroup": "Compresión de contexto",
+ "gamificationGroup": "Gamificación",
+ "toolsGroup": "Herramientas",
+ "integrationsGroup": "Integraciones",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
+ "costsParametersGroup": "Parámetros de costes",
+ "auditGroup": "Auditoría",
+ "batchGroup": "Procesamiento por lotes",
+ "homeSubtitle": "Resumen del panel",
+ "providersSubtitle": "Gestionar proveedores de IA",
+ "quotaTrackerSubtitle": "Supervisar los límites de uso",
+ "providerQuotaSubtitle": "Supervisar los límites de uso de los proveedores",
+ "runtimeSubtitle": "Resiliencia y sesiones en tiempo real",
+ "contextCombosSubtitle": "Combinar motores de compresión",
+ "cliToolsSubtitle": "Configurar entornos de ejecución de CLI",
+ "agentsSubtitle": "Gestionar agentes locales",
+ "cloudAgentsSubtitle": "Gestionar agentes en la nube",
+ "apiEndpointsSubtitle": "Exponer endpoints personalizados",
+ "proxySubtitle": "Configuración del proxy HTTP",
+ "mitmProxySubtitle": "Intercepción MITM",
+ "oneProxySubtitle": "Puerta de enlace de proxy público",
+ "leaderboard": "Clasificación",
+ "profile": "Perfil",
"tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
- "providerStats": "Provider Stats",
- "providerStatsSubtitle": "Latency and performance metrics",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
- "pluginsSubtitle": "Plugin marketplace & installs",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "gamificationAdmin": "Administración de gamificación",
+ "leaderboardSubtitle": "Clasificaciones y logros",
+ "profileSubtitle": "Cuenta y preferencias",
+ "tokensSubtitle": "Uso de tokens y presupuestos",
+ "gamificationAdminSubtitle": "Supervisión de anomalías y prevención de trampas",
+ "usageSubtitle": "Estadísticas de tráfico y uso",
+ "analyticsComboHealthSubtitle": "Fiabilidad del objetivo combinado",
+ "analyticsUtilizationSubtitle": "Utilización de proveedores",
+ "costsSubtitle": "Desglose de gastos",
+ "cacheSubtitle": "Tasas de aciertos de caché",
+ "analyticsCompressionSubtitle": "Estadísticas de ahorro de tokens",
+ "analyticsSearchSubtitle": "Analítica de la herramienta de búsqueda",
+ "analyticsEvalsSubtitle": "Resultados del conjunto de evaluaciones",
+ "providerStats": "Estadísticas de proveedores",
+ "providerStatsSubtitle": "Métricas de latencia y rendimiento",
+ "logsSubtitle": "Registros de la aplicación",
+ "logsProxySubtitle": "Registros de tráfico del proxy",
+ "consoleLogsSubtitle": "Salida de la consola",
+ "logsActivitySubtitle": "Registro de actividad del usuario",
+ "healthSubtitle": "Comprobación del estado del sistema",
+ "costsPricingSubtitle": "Reglas de precios por modelo",
+ "costsBudgetSubtitle": "Límites presupuestarios",
+ "costsQuotaShareSubtitle": "Compartir las cuotas de los proveedores entre claves",
+ "auditLogSubtitle": "Auditoría de autorización",
+ "auditMcpSubtitle": "Auditoría del servidor MCP",
+ "auditA2aSubtitle": "Auditoría del protocolo A2A",
+ "translatorSubtitle": "Conversión de formato",
+ "playgroundSubtitle": "Probar prompts en vivo",
+ "searchToolsSubtitle": "Registro de herramientas de búsqueda",
+ "memorySubtitle": "Memoria persistente del agente",
+ "omniSkillsSubtitle": "Registro de habilidades de sandbox",
+ "agentSkillsSubtitle": "Registro de habilidades A2A",
+ "mcpSubtitle": "Controles del servidor MCP",
+ "a2aSubtitle": "Servidor del protocolo A2A",
+ "pluginsSubtitle": "Marketplace e instalaciones de plugins",
+ "mediaSubtitle": "Archivos multimedia en caché",
+ "batchFilesSubtitle": "Archivos de entrada/salida por lotes",
+ "settingsSubtitle": "Todos los ajustes",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
- "settingsAccessTokensSubtitle": "Scoped CLI tokens for remote mode",
+ "settingsAppearanceSubtitle": "Tema y diseño",
+ "settingsAiSubtitle": "Valores predeterminados del comportamiento de la IA",
+ "globalRoutingSubtitle": "Reglas globales de enrutamiento",
+ "settingsResilienceSubtitle": "Reintentos y disyuntores",
+ "settingsAdvancedSubtitle": "Opciones para usuarios avanzados",
+ "settingsSecuritySubtitle": "Autenticación y cifrado",
+ "settingsAccessTokensSubtitle": "Tokens de CLI con alcance limitado para el modo remoto",
"settingsFeatureFlagsSubtitle": "Alternar capacidades del sistema",
- "settingsCacheSubtitle": "Model catalog and response caching",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsCacheSubtitle": "Catálogo de modelos y almacenamiento en caché de respuestas",
+ "settingsSidebar": "Barra lateral",
+ "settingsSidebarSubtitle": "Personalizar el diseño de la barra lateral",
"settingsAuthzSubtitle": "Inventario de rutas y política de omisión",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
- "costsQuotaPlans": "Plans & Quotas",
- "costsQuotaPlansSubtitle": "Configure plans by provider",
- "activity": "Activity",
- "activitySubtitle": "Friendly feed of recent events",
- "logsGroup": "Logs",
- "systemGroup": "System",
- "costsOverview": "Overview",
- "costsOverviewSubtitle": "Consolidated cost analysis",
- "agentBridge": "Agent Bridge",
- "agentBridgeSubtitle": "Intercept IDE agent traffic",
+ "docsSubtitle": "Documentación",
+ "issuesSubtitle": "Informar de un error",
+ "changelogSubtitle": "Notas de la versión",
+ "costsQuotaPlans": "Planes y cuotas",
+ "costsQuotaPlansSubtitle": "Configurar planes por proveedor",
+ "activity": "Actividad",
+ "activitySubtitle": "Resumen accesible de eventos recientes",
+ "logsGroup": "Registros",
+ "systemGroup": "Sistema",
+ "costsOverview": "Vista general",
+ "costsOverviewSubtitle": "Análisis consolidado de costes",
+ "agentBridge": "Puente de agentes",
+ "agentBridgeSubtitle": "Interceptar el tráfico de agentes del IDE",
"trafficInspector": "Traffic Inspector",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Inspeccionar el tráfico de solicitudes y respuestas de tus aplicaciones",
+ "trafficInspectorPurpose": "Consulta exactamente qué envía tu aplicación a los proveedores de IA y qué recibe de ellos. Funciona con cualquier cliente compatible con OpenAI.",
"cliCode": "CLI Code",
- "cliCodeSubtitle": "Code tools pointing to OmniRoute",
- "cliAgents": "CLI Agents",
- "cliAgentsSubtitle": "Autonomous CLI agents",
- "acpAgents": "ACP Agents",
- "acpAgentsSubtitle": "CLIs spawned by OmniRoute",
- "skipToContent": "Skip to content",
- "mainNavigation": "Main navigation",
- "unpinSection": "Unpin section",
- "pinSectionOpen": "Pin section open",
- "reloadPage": "Reload Page",
- "dragReorderSection": "Drag to reorder section",
- "dragReorderItem": "Drag to reorder",
- "cannotHide": "This item cannot be hidden",
- "alwaysVisible": "Always visible",
- "groupSeparatorLabel": "Separator",
- "discovery": "Discovery",
- "discoverySubtitle": "Scan providers for free access",
- "conductor": "Conductor",
+ "cliCodeSubtitle": "Herramientas de código que apuntan a OmniRoute",
+ "cliAgents": "Agentes CLI",
+ "cliAgentsSubtitle": "Agentes CLI autónomos",
+ "acpAgents": "Agentes ACP",
+ "acpAgentsSubtitle": "CLI iniciadas por OmniRoute",
+ "skipToContent": "Saltar al contenido",
+ "mainNavigation": "Navegación principal",
+ "unpinSection": "Desfijar sección",
+ "pinSectionOpen": "Mantener abierta la sección",
+ "reloadPage": "Recargar página",
+ "dragReorderSection": "Arrastra para reordenar la sección",
+ "dragReorderItem": "Arrastra para reordenar",
+ "cannotHide": "Este elemento no se puede ocultar",
+ "alwaysVisible": "Siempre visible",
+ "groupSeparatorLabel": "Separador",
+ "discovery": "Descubrimiento",
+ "discoverySubtitle": "Buscar acceso gratuito en los proveedores",
+ "conductor": "Orquestador",
"conductorSubtitle": "Flota de CLI-agent",
"orchestration": "Orquestación",
"orchestrationSubtitle": "Vista en vivo de todo lo que se está ejecutando",
@@ -1341,7 +1345,7 @@
"refresh": "Actualizar",
"loading": "Cargando webhooks...",
"never": "nunca",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {ningún fallo} one {# fallo} other {# fallos}}",
"testWebhook": "Enviar prueba",
"testSuccess": "El webhook de prueba se envió correctamente.",
"testFailed": "El webhook de prueba falló.",
@@ -1384,66 +1388,66 @@
"hmacRecipeBash": "Verificación HMAC en Bash: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
},
"deliveries": {
- "title": "Delivery Logs",
- "loadFailed": "Failed to load webhook delivery logs.",
- "empty": "No deliveries recorded yet. Trigger an event or send a test payload.",
- "status": "Status",
- "event": "Event",
- "latency": "Latency",
- "at": "Sent At"
+ "title": "Registros de entregas",
+ "loadFailed": "No se pudieron cargar los registros de entregas de webhooks.",
+ "empty": "Aún no se ha registrado ninguna entrega. Activa un evento o envía una carga útil de prueba.",
+ "status": "Estado",
+ "event": "Evento",
+ "latency": "Latencia",
+ "at": "Enviado el"
},
"kinds": {
- "comingSoon": "Coming Soon",
+ "comingSoon": "Próximamente",
"slack": "Slack",
- "slackDesc": "Post system events directly into a Slack channel",
+ "slackDesc": "Publica eventos del sistema directamente en un canal de Slack",
"telegram": "Telegram",
- "telegramDesc": "Send event messages using a Telegram bot",
+ "telegramDesc": "Envía mensajes de eventos mediante un bot de Telegram",
"discord": "Discord",
- "discordDesc": "Deliver real-time updates directly to a Discord server",
- "custom": "Custom Webhook",
- "customDesc": "Deliver system event payloads to any HTTPS endpoint",
- "email": "Email Notification",
- "emailDesc": "Receive summary updates via email",
+ "discordDesc": "Envía actualizaciones en tiempo real directamente a un servidor de Discord",
+ "custom": "Webhook personalizado",
+ "customDesc": "Envía cargas útiles de eventos del sistema a cualquier endpoint HTTPS",
+ "email": "Notificación por correo electrónico",
+ "emailDesc": "Recibe resúmenes de las actualizaciones por correo electrónico",
"pagerduty": "PagerDuty",
- "pagerdutyDesc": "Trigger alerts on PagerDuty for critical system issues",
+ "pagerdutyDesc": "Activa alertas en PagerDuty para problemas críticos del sistema",
"teams": "Microsoft Teams",
- "teamsDesc": "Forward system notifications to Microsoft Teams channels"
+ "teamsDesc": "Reenvía las notificaciones del sistema a canales de Microsoft Teams"
},
"testPayloadSent": "Prueba enviada",
"testResponse": "Respuesta de prueba",
"validateUrl": {
- "checking": "Checking URL...",
- "ok": "URL is valid",
- "blockedPrivate": "URL is a blocked private address",
- "invalidUrl": "Invalid URL format"
+ "checking": "Comprobando la URL...",
+ "ok": "La URL es válida",
+ "blockedPrivate": "La URL corresponde a una dirección privada bloqueada",
+ "invalidUrl": "Formato de URL no válido"
},
"custom": {
- "endpointUrl": "Endpoint URL",
+ "endpointUrl": "URL del endpoint",
"endpointUrlPlaceholder": "https://api.yourdomain.com/webhook",
- "secretKey": "Secret Key",
- "secretKeyPlaceholder": "Enter secret key or leave blank to auto-generate",
- "secretKeyHint": "Used to sign the payload header for authentication."
+ "secretKey": "Clave secreta",
+ "secretKeyPlaceholder": "Introduce una clave secreta o déjalo en blanco para generarla automáticamente",
+ "secretKeyHint": "Se utiliza para firmar el encabezado de la carga útil para la autenticación."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "URL del webhook de Discord",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
- "webhookUrlHint": "The webhook URL copied from your Discord channel integration settings.",
- "tutorial": "How to create a Discord webhook:"
+ "webhookUrlHint": "La URL del webhook copiada de la configuración de integración de tu canal de Discord.",
+ "tutorial": "Cómo crear un webhook de Discord:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "URL del webhook de Slack",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
- "webhookUrlHint": "The webhook URL copied from your Slack Incoming Webhooks integration.",
- "tutorial": "How to create a Slack webhook:"
+ "webhookUrlHint": "La URL del webhook copiada de tu integración de Slack Incoming Webhooks.",
+ "tutorial": "Cómo crear un webhook de Slack:"
},
"telegram": {
- "botToken": "Telegram Bot Token",
+ "botToken": "Token del bot de Telegram",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
- "botTokenHint": "The HTTP API token received from @BotFather when creating your bot.",
- "chatId": "Telegram Chat ID / Channel",
- "chatIdPlaceholder": "-100123456789 or @channelname",
- "chatIdHint": "The unique numerical identifier or public username of the chat/channel.",
- "tutorial": "How to configure Telegram webhook:"
+ "botTokenHint": "El token de la API HTTP recibido de @BotFather al crear tu bot.",
+ "chatId": "ID del chat/canal de Telegram",
+ "chatIdPlaceholder": "-100123456789 o @channelname",
+ "chatIdHint": "El identificador numérico único o nombre de usuario público del chat/canal.",
+ "tutorial": "Cómo configurar el webhook de Telegram:"
}
},
"compliance": {
@@ -1514,7 +1518,7 @@
"a2aNoTasks": "No se registraron tareas A2A.",
"a2aLoadingTasks": "Cargando tareas A2A...",
"actor": "Actor",
- "actorPlaceholder": "Filter by actor",
+ "actorPlaceholder": "Filtrar por actor",
"eventTypes": {
"apiKey.activate": "Clave de API activada",
"apiKey.ban": "Clave de API bloqueada",
@@ -1569,15 +1573,15 @@
},
"header": {
"logout": "Cerrar sesión",
- "quickNavigation": "Quick nav",
- "quickNavigationTitle": "Quick navigation (⌘K / Ctrl+K)",
- "openQuickNavigation": "Open quick navigation",
- "switchToLightMode": "Switch to light mode",
- "switchToDarkMode": "Switch to dark mode",
+ "quickNavigation": "Navegación rápida",
+ "quickNavigationTitle": "Navegación rápida (⌘K / Ctrl+K)",
+ "openQuickNavigation": "Abrir la navegación rápida",
+ "switchToLightMode": "Cambiar al modo claro",
+ "switchToDarkMode": "Cambiar al modo oscuro",
"language": "Idioma",
"providers": "Proveedores",
"providerDescription": "Gestiona tus conexiones de proveedores de IA",
- "combos": "Combos",
+ "combos": "Combinaciones",
"comboDescription": "Combinaciones de modelos con fallback",
"usage": "Uso y análisis",
"usageDescription": "Supervise el uso de su API, el consumo de tokens y los registros de solicitudes",
@@ -1587,12 +1591,12 @@
"cliToolsDescription": "Configurar herramientas CLI",
"home": "Inicio",
"homeDescription": "Bienvenido a OmniRoute",
- "endpoint": "Endpoints",
+ "endpoint": "Puntos de conexión",
"endpointDescription": "Gestionar endpoints proxy, MCP, A2A y endpoints de API",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Gestión y herramientas del servidor Model Context Protocol",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Tareas y observabilidad del protocolo Agent-to-Agent",
"settings": "Configuración",
"settingsDescription": "Gestiona tus preferencias",
"openaiCompatible": "Compatible con OpenAI",
@@ -1601,49 +1605,49 @@
"mediaDescription": "Genera imágenes, vídeos y música.",
"themes": "Temas",
"themesDescription": "Elija un tema de color para todo el panel del tablero",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "costsDescription": "Controla el gasto, analiza tendencias y gestiona tu presupuesto de IA en todos los proveedores",
+ "cacheDescription": "Supervisa la eficiencia de la caché de prompts del proveedor y la reutilización local de respuestas semánticas.",
+ "limitsDescription": "Configura límites de frecuencia y cuotas por clave de API y proveedor",
+ "runtimeDescription": "Observabilidad del entorno de ejecución en tiempo real: disyuntores, periodos de espera, bloqueos de modelos, sesiones y alertas de cuota",
+ "apiManagerDescription": "Gestiona las claves de API y el control de acceso de tu instancia de OmniRoute",
+ "batchDescription": "Procesa grandes volúmenes de solicitudes de forma asíncrona mediante llamadas a la API por lotes",
+ "contextCavemanDescription": "Compresión de mensajes basada en reglas, paquetes de idioma, analíticas y controles del modo de salida.",
+ "contextRtkDescription": "Compresión compatible con comandos para la salida de herramientas, los registros del terminal y los resultados de compilación.",
+ "contextCombosDescription": "Define cómo se combinan los motores para distintos escenarios de enrutamiento.",
+ "changelogDescription": "Mantente al día de las últimas funciones y novedades de la plataforma.",
+ "agentsDescription": "Gestiona y configura herramientas de agentes de IA: Codex, Devin, Jules y agentes personalizados",
+ "cloudAgentsDescription": "Orquesta agentes de IA basados en la nube con seguimiento de tareas en tiempo real y aprobación de planes",
+ "memoryDescription": "Memoria conversacional persistente con búsqueda semántica e indexación de texto completo FTS5",
+ "skillsDescription": "Instala y administra habilidades de sandbox para la ejecución automatizada de prompts y herramientas",
+ "agentSkillsDescription": "Catálogo de habilidades listo para agentes con copia de URL en un clic para la integración con clientes de IA",
+ "translatorDescription": "Traduce y prueba prompts entre formatos de API: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Prueba prompts de forma interactiva con respuestas en tiempo real de los proveedores e inspección de formatos",
+ "searchToolsDescription": "Analíticas de búsqueda, desglose por proveedor, tasas de aciertos de caché y seguimiento de costes",
+ "logsDescription": "Registros de solicitudes en tiempo real, trazas de errores e inspector de eventos de streaming",
+ "auditDescription": "Registro de auditoría de cumplimiento sobre el uso de claves de API, llamadas a herramientas MCP y eventos de políticas",
+ "webhooksDescription": "Configura endpoints de webhook para recibir notificaciones de eventos en tiempo real",
+ "healthDescription": "Resumen del estado del sistema: proveedores, disyuntores, límites de velocidad y base de datos",
+ "proxyDescription": "Configura los ajustes del proxy ascendente para las conexiones salientes con proveedores",
+ "apiEndpointsDescription": "Administra configuraciones personalizadas de endpoints de API y anulaciones de enrutamiento",
+ "batchFilesDescription": "Explora y administra archivos de salida y resultados de trabajos por lotes",
+ "analyticsEvalsDescription": "Resultados de evaluación de modelos y pruebas comparativas de rendimiento",
+ "analyticsSearchDescription": "Analíticas de consultas de búsqueda, tasas de aciertos de caché y seguimiento de costes",
+ "analyticsUtilizationDescription": "Métricas de uso de proveedores y planificación de capacidad",
+ "analyticsComboHealthDescription": "Estado y rendimiento en tiempo real de las configuraciones de enrutamiento combinado",
+ "analyticsCompressionDescription": "Analíticas de compresión de contexto y ahorro de tokens",
+ "costsBudgetDescription": "Límites de presupuesto y alertas de gasto por clave de API y proveedor",
+ "costsPricingDescription": "Configuración personalizada de precios para calcular costes de tokens",
+ "logsProxyDescription": "Registros de solicitudes del proxy ascendente e inspección del tráfico",
+ "logsConsoleDescription": "Salida de la consola de la aplicación y registros de depuración",
+ "logsActivityDescription": "Registro de auditoría de acciones de usuarios y eventos del sistema",
+ "auditMcpDescription": "Registro de auditoría de invocaciones de herramientas MCP y registros de cumplimiento",
"auditA2a": "Auditoría A2A",
"auditA2aDescription": "Registro de auditoría de ejecución de tareas A2A, transiciones de estado y registros de invocación de habilidades",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
- "settingsCacheDescription": "TTL for model catalog cache entries",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsAppearanceDescription": "Tema, identidad de marca y personalización visual",
+ "settingsAiDescription": "Comportamientos de IA, presupuestos de razonamiento y ajustes de visión y memoria",
+ "settingsCacheDescription": "TTL de las entradas de caché del catálogo de modelos",
+ "settingsSecurityDescription": "Ajustes de autenticación, autorización y control de acceso",
"featureFlags": "Banderas de características",
"featureFlagsDescription": "Capacidades del sistema de control y características experimentales.",
"featureFlagsActive": "{count} activo",
@@ -1657,7 +1661,7 @@
"featureFlagsCategoryRuntime": "Tiempo de ejecución",
"featureFlagsCategoryCli": "CLI",
"featureFlagsCategoryHealth": "Salud",
- "featureFlagsSourceDb": "DB",
+ "featureFlagsSourceDb": "BD",
"featureFlagsSourceEnv": "ENV",
"featureFlagsSourceDefault": "DEF",
"featureFlagsReset": "Reiniciar",
@@ -1667,116 +1671,116 @@
"featureFlagsNoResults": "Ninguna bandera coincide con tu búsqueda",
"featureFlagsSaved": "Bandera actualizada",
"featureFlagsError": "No se pudo actualizar la bandera",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
- "omniSkillsDescription": "Install and manage sandbox skills for automated prompt and tool execution"
+ "settingsRoutingDescription": "Reglas de enrutamiento, alias de modelos, valores predeterminados de combinaciones y ajustes de degradación",
+ "settingsResilienceDescription": "Configuración de disyuntores, reintentos y mecanismos de respaldo",
+ "settingsAdvancedDescription": "Reglas avanzadas de carga útil, límites de solicitudes y ajustes de la API del proxy",
+ "mitmProxyDescription": "Configura los ajustes del proxy MITM para inspeccionar y depurar el tráfico",
+ "oneProxyDescription": "Configura los ajustes de 1Proxy para el encadenamiento avanzado de proxies",
+ "omniSkillsDescription": "Instala y administra habilidades de sandbox para la ejecución automatizada de prompts y herramientas"
},
"cloudSyncStatus": {
- "synced": "Synced",
- "syncing": "Syncing...",
- "off": "Sync off",
- "error": "Sync error",
- "disabled": "Disabled",
- "connected": "connected",
- "disconnected": "disconnected",
- "lastSync": "Remote settings sync {status} — Last sync: {time}",
- "statusLabel": "Remote settings sync status: {status}"
+ "synced": "Sincronizado",
+ "syncing": "Sincronizando...",
+ "off": "Sincronización desactivada",
+ "error": "Error de sincronización",
+ "disabled": "Deshabilitado",
+ "connected": "conectado",
+ "disconnected": "desconectado",
+ "lastSync": "Sincronización de ajustes remotos: {status} — Última sincronización: {time}",
+ "statusLabel": "Estado de sincronización de ajustes remotos: {status}"
},
"breadcrumbs": {
- "ariaLabel": "Breadcrumb",
- "dashboard": "Dashboard",
- "providers": "Providers",
- "combos": "Combos",
- "settings": "Settings",
+ "ariaLabel": "Migas de pan",
+ "dashboard": "Panel de control",
+ "providers": "Proveedores",
+ "combos": "Combinaciones",
+ "settings": "Ajustes",
"general": "General",
- "appearance": "Appearance",
- "ai": "AI Settings",
- "routing": "Routing",
- "resilience": "Resilience",
- "advanced": "Advanced",
- "accessTokens": "Access Tokens",
- "featureFlags": "Feature Flags",
- "logs": "Logs",
- "auditLog": "Audit Log",
- "console": "Console",
- "logger": "Logger",
- "translator": "Translator",
- "playground": "Playground",
- "add": "Add",
- "edit": "Edit",
- "apiKeys": "API Keys",
- "models": "Models",
- "cliCode": "CLI Code",
- "cliAgents": "CLI Agents",
- "acpAgents": "ACP Agents",
- "endpoint": "Endpoint",
- "apiManager": "API Manager",
- "context": "Context",
- "compression": "Compression",
- "services": "Services",
- "analytics": "Analytics",
- "costs": "Costs",
- "health": "Health",
- "runtime": "Runtime",
+ "appearance": "Apariencia",
+ "ai": "Ajustes de IA",
+ "routing": "Enrutamiento",
+ "resilience": "Resiliencia",
+ "advanced": "Avanzado",
+ "accessTokens": "Tokens de acceso",
+ "featureFlags": "Indicadores de funciones",
+ "logs": "Registros",
+ "auditLog": "Registro de auditoría",
+ "console": "Consola",
+ "logger": "Registrador",
+ "translator": "Traductor",
+ "playground": "Entorno de pruebas",
+ "add": "Añadir",
+ "edit": "Editar",
+ "apiKeys": "Claves de API",
+ "models": "Modelos",
+ "cliCode": "Código de CLI",
+ "cliAgents": "Agentes de CLI",
+ "acpAgents": "Agentes de ACP",
+ "endpoint": "Punto de conexión",
+ "apiManager": "Gestor de API",
+ "context": "Contexto",
+ "compression": "Compresión",
+ "services": "Servicios",
+ "analytics": "Analítica",
+ "costs": "Costes",
+ "health": "Estado",
+ "runtime": "Tiempo de ejecución",
"webhooks": "Webhooks",
- "home": "Home",
- "activity": "Activity",
+ "home": "Inicio",
+ "activity": "Actividad",
"agentSkills": "AgentSkills",
- "comboHealth": "Combo Health",
- "evals": "Evals",
- "search": "Search",
- "utilization": "Utilization",
- "apiEndpoints": "API Endpoints",
- "audit": "Audit",
+ "comboHealth": "Estado combinado",
+ "evals": "Evaluaciones",
+ "search": "Búsqueda",
+ "utilization": "Utilización",
+ "apiEndpoints": "Endpoints de API",
+ "audit": "Auditoría",
"a2a": "A2A",
"mcp": "MCP",
- "batch": "Batch",
- "files": "Files",
- "media": "Media",
- "cache": "Cache",
- "changelog": "Changelog",
- "chaos": "Chaos",
- "cloudAgents": "Cloud Agents",
- "live": "Live",
- "studio": "Studio",
- "aggressive": "Aggressive",
- "caveman": "Caveman",
+ "batch": "Lotes",
+ "files": "Archivos",
+ "media": "Medios",
+ "cache": "Caché",
+ "changelog": "Registro de cambios",
+ "chaos": "Caos",
+ "cloudAgents": "Agentes en la nube",
+ "live": "En vivo",
+ "studio": "Estudio",
+ "aggressive": "Agresivo",
+ "caveman": "Cavernícola",
"ccr": "CCR",
- "headroom": "Headroom",
- "lite": "Lite",
+ "headroom": "Margen",
+ "lite": "Ligero",
"llmlingua": "LLMLingua",
"omniglyph": "OmniGlyph",
"rtk": "RTK",
- "sessionDedup": "Session Dedup",
+ "sessionDedup": "Deduplicación de sesiones",
"ultra": "Ultra",
- "budget": "Budget",
- "pricing": "Pricing",
- "quotaShare": "Quota Share",
- "discovery": "Discovery",
- "freeProviderRankings": "Free Provider Rankings",
+ "budget": "Presupuesto",
+ "pricing": "Precios",
+ "quotaShare": "Reparto de cuota",
+ "discovery": "Descubrimiento",
+ "freeProviderRankings": "Clasificación de proveedores gratuitos",
"radar": "Radar",
- "setup": "Setup",
- "freeTiers": "Free Tiers",
- "gamification": "Gamification",
- "leaderboard": "Leaderboard",
- "limits": "Limits",
- "profile": "Profile",
- "plugins": "Plugins",
- "providerStats": "Provider Stats",
- "new": "New",
- "quota": "Quota",
- "relay": "Relay",
- "searchTools": "Search Tools",
- "security": "Security",
- "sidebar": "Sidebar",
+ "setup": "Configuración",
+ "freeTiers": "Planes gratuitos",
+ "gamification": "Gamificación",
+ "leaderboard": "Clasificación",
+ "limits": "Límites",
+ "profile": "Perfil",
+ "plugins": "Complementos",
+ "providerStats": "Estadísticas de proveedores",
+ "new": "Nuevo",
+ "quota": "Cuota",
+ "relay": "Retransmisión",
+ "searchTools": "Buscar herramientas",
+ "security": "Seguridad",
+ "sidebar": "Barra lateral",
"tokens": "Tokens",
- "tools": "Tools",
- "agentBridge": "Agent Bridge",
- "trafficInspector": "Traffic Inspector",
- "usage": "Usage",
+ "tools": "Herramientas",
+ "agentBridge": "Puente de agentes",
+ "trafficInspector": "Inspector de tráfico",
+ "usage": "Uso",
"orchestration": "Orquestación"
},
"home": {
@@ -1812,7 +1816,7 @@
"topologyLegendError": "Error",
"oauthLabel": "OAuth",
"apiKeyLabel": "Clave API",
- "requestsShort": "{count} reqs",
+ "requestsShort": "{count} solicitudes",
"providerModelsTitle": "{provider} - Modelos",
"copiedModel": "Copiado: {model}",
"aliasLabel": "alias",
@@ -1884,15 +1888,15 @@
"releaseNotes": "Notas de la versión",
"readMore": "Leer Más",
"noAuthLabel": "Sin Autenticación",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Prepárate para enrutar",
+ "readinessTitle": "Envía tu primera solicitud",
+ "readinessSubtitle": "Cuatro pequeños pasos. OmniRoute comprueba que todo esté listo a medida que avanzas.",
+ "readinessStep1": "Conecta un proveedor",
+ "readinessStep2": "Configura la autenticación del endpoint",
+ "readinessStep3": "Copia tu endpoint",
+ "readinessStep4": "Envía una solicitud de prueba",
+ "readinessContinue": "Continuar con la configuración",
+ "readinessDismiss": "Descartar por ahora"
},
"analytics": {
"title": "Analítica",
@@ -1902,98 +1906,98 @@
"diversityShannonEntropy": "Entropía de Shannon",
"diversityWindow": "Ventana: {count} solic. · Últimos {mins} mins",
"diversityHealthy": "Distribución saludable",
- "diversityRiskHigh": "High Vendor Lock-in Risk",
- "diversityRiskModerate": "Moderate Distribution",
- "diversityScoreLabel": "score",
- "diversityHigherExplanation": "Higher values mean traffic is spread across multiple providers.",
- "diversityNoData": "No recent usage data available.",
- "chartRequests": "Requests",
- "chartInput": "Input",
- "chartOutput": "Output",
+ "diversityRiskHigh": "Alto riesgo de dependencia del proveedor",
+ "diversityRiskModerate": "Distribución moderada",
+ "diversityScoreLabel": "puntuación",
+ "diversityHigherExplanation": "Los valores más altos indican que el tráfico se distribuye entre varios proveedores.",
+ "diversityNoData": "No hay datos de uso recientes disponibles.",
+ "chartRequests": "Solicitudes",
+ "chartInput": "Entrada",
+ "chartOutput": "Salida",
"chartTotal": "Total",
- "chartCost": "Cost",
- "chartShare": "Share",
- "chartServiceTier": "Service Tier",
- "chartServiceTierSplit": "Fast / Standard cost split",
- "chartCostPct": "{pct}% of cost",
- "chartUsageDetail": "Usage Detail",
- "chartCacheRead": "Cache read",
- "chartCostByProvider": "Cost by Provider",
- "chartNoCostData": "No cost data",
- "chartModelUsageOverTime": "Model Usage Over Time",
- "chartNoData": "No data",
- "chartWeekly": "Weekly",
- "activitySummary": "{active} active days · {tokens} tokens · {days} days",
+ "chartCost": "Coste",
+ "chartShare": "Compartir",
+ "chartServiceTier": "Nivel de servicio",
+ "chartServiceTierSplit": "Distribución de costes entre Rápido y Estándar",
+ "chartCostPct": "{pct}% del coste",
+ "chartUsageDetail": "Detalle de uso",
+ "chartCacheRead": "Lectura de caché",
+ "chartCostByProvider": "Coste por proveedor",
+ "chartNoCostData": "No hay datos de costes",
+ "chartModelUsageOverTime": "Uso de modelos a lo largo del tiempo",
+ "chartNoData": "No hay datos",
+ "chartWeekly": "Semanal",
+ "activitySummary": "{active} días activos · {tokens} tokens · {days} días",
"activityCellTitle": "{date}: {tokens} tokens",
- "activityLess": "Less",
- "activityMore": "More",
- "chartApiKeyBreakdown": "API Key Breakdown",
- "chartApiKey": "API Key",
- "mostActiveDay": "Most Active Day",
+ "activityLess": "Menos",
+ "activityMore": "Más",
+ "chartApiKeyBreakdown": "Desglose por clave de API",
+ "chartApiKey": "Clave de API",
+ "mostActiveDay": "Día de mayor actividad",
"datedTokenCount": "{date} · {tokens} tokens",
- "noDataLast7Days": "No data in the last 7 days",
- "requestTokenSummary": "{requests} requests · {tokens} tokens",
- "chartByAccount": "By Account",
- "chartByApiKey": "By API Key",
- "unknownApiKey": "Unknown API key",
- "chartModelBreakdown": "Model Breakdown",
- "chartModel": "Model",
- "chartProvider": "Provider",
- "chartProviderBreakdown": "Provider Breakdown",
- "chartDate": "Date",
- "chartRequestsByProviderDate": "Requests by Provider & Date",
- "filterAllKeys": "All Keys",
- "filterSearchKeys": "Search keys…",
- "filterNoKeysMatch": "No keys match",
- "filterOneKey": "1 key",
- "filterMultipleKeys": "{count} keys",
- "rangeToday": "Today",
- "rangeYesterday": "Yesterday",
- "rangeLast3Days": "Last 3 days",
- "rangeThisWeek": "This week",
- "rangeLast14Days": "Last 14 days",
- "rangeThisMonth": "This month",
- "rangeQuickSelect": "Quick Select",
- "rangeStart": "Start",
- "rangeEnd": "End",
- "rangeCancel": "Cancel",
- "rangeApply": "Apply",
- "rangeErrorInvalid": "Start must be before end",
- "period1D": "1D",
- "period7D": "7D",
- "period30D": "30D",
- "period90D": "90D",
- "periodYTD": "YTD",
- "periodAll": "All",
+ "noDataLast7Days": "No hay datos de los últimos 7 días",
+ "requestTokenSummary": "{requests} solicitudes · {tokens} tokens",
+ "chartByAccount": "Por cuenta",
+ "chartByApiKey": "Por clave de API",
+ "unknownApiKey": "Clave de API desconocida",
+ "chartModelBreakdown": "Desglose por modelo",
+ "chartModel": "Modelo",
+ "chartProvider": "Proveedor",
+ "chartProviderBreakdown": "Desglose por proveedor",
+ "chartDate": "Fecha",
+ "chartRequestsByProviderDate": "Solicitudes por proveedor y fecha",
+ "filterAllKeys": "Todas las claves",
+ "filterSearchKeys": "Buscar claves…",
+ "filterNoKeysMatch": "Ninguna clave coincide",
+ "filterOneKey": "1 clave",
+ "filterMultipleKeys": "{count} claves",
+ "rangeToday": "Hoy",
+ "rangeYesterday": "Ayer",
+ "rangeLast3Days": "Últimos 3 días",
+ "rangeThisWeek": "Esta semana",
+ "rangeLast14Days": "Últimos 14 días",
+ "rangeThisMonth": "Este mes",
+ "rangeQuickSelect": "Selección rápida",
+ "rangeStart": "Inicio",
+ "rangeEnd": "Fin",
+ "rangeCancel": "Cancelar",
+ "rangeApply": "Aplicar",
+ "rangeErrorInvalid": "El inicio debe ser anterior al fin",
+ "period1D": "1 d",
+ "period7D": "7 d",
+ "period30D": "30 d",
+ "period90D": "90 d",
+ "periodYTD": "Año hasta la fecha",
+ "periodAll": "Todo",
"totalTokens": "Total de tokens",
- "inputTokens": "Input Tokens",
- "outputTokens": "Output Tokens",
- "estCost": "Est. Cost",
- "infraTitle": "Infrastructure",
- "infraAccounts": "Accounts",
- "infraProviders": "Providers",
- "infraApiKeys": "API Keys",
- "infraModels": "Models",
- "perfTitle": "Performance",
- "perfAvgTokens": "Avg Tokens/Req",
- "perfCostReq": "Cost/Req",
- "perfIoRatio": "I/O Ratio",
- "perfFastReq": "Fast Requests",
- "highlightsTitle": "Highlights",
- "highlightsTopModel": "Top Model",
- "highlightsTopProvider": "Top Provider",
- "highlightsBusiestDay": "Busiest Day",
- "highlightsDiversity": "Diversity",
- "highlightsFallbackRate": "Fallback Rate",
+ "inputTokens": "Tokens de entrada",
+ "outputTokens": "Tokens de salida",
+ "estCost": "Coste est.",
+ "infraTitle": "Infraestructura",
+ "infraAccounts": "Cuentas",
+ "infraProviders": "Proveedores",
+ "infraApiKeys": "Claves de API",
+ "infraModels": "Modelos",
+ "perfTitle": "Rendimiento",
+ "perfAvgTokens": "Tokens prom./solicitud",
+ "perfCostReq": "Coste/solicitud",
+ "perfIoRatio": "Relación E/S",
+ "perfFastReq": "Solicitudes rápidas",
+ "highlightsTitle": "Aspectos destacados",
+ "highlightsTopModel": "Modelo principal",
+ "highlightsTopProvider": "Proveedor principal",
+ "highlightsBusiestDay": "Día con más actividad",
+ "highlightsDiversity": "Diversidad",
+ "highlightsFallbackRate": "Tasa de conmutación por error",
"customRange": "Rango personalizado",
"overviewDescription": "Supervise sus patrones de uso de API, consumo de tokens, costos y tendencias de actividad en todos los proveedores y modelos.",
"evalsDescription": "Ejecute conjuntos de evaluación para probar y validar sus puntos finales de LLM. Compare la calidad del modelo, detecte regresiones y compare la latencia.",
"overview": "Descripción general",
"evals": "evaluaciones",
- "search": "Search",
+ "search": "Buscar",
"utilization": "Utilización",
- "routeTrace": "Route Trace",
- "sectionsAria": "Analytics sections",
+ "routeTrace": "Traza de ruta",
+ "sectionsAria": "Secciones de análisis",
"utilizationDescription": "Tendencias de uso de cuota del proveedor y seguimiento de límites de tasa",
"modelStatus": "Estado del modelo",
"modelStatusCooldown": "Enfriamiento",
@@ -2001,8 +2005,8 @@
"modelStatusError": "error",
"comboHealth": "Salud del combo",
"comboHealthDescription": "Cuota a nivel de combo, distribución de uso y métricas de rendimiento",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Análisis de compresión",
+ "compressionAnalyticsDescription": "Análisis de compresión: ahorro de tokens, desglose por modo y estadísticas de proveedores.",
"autoRoutingTotalAutoRequests": "Total de solicitudes automáticas",
"autoRoutingAvgSelectionScore": "Puntuación de selección promedio",
"autoRoutingExplorationRate": "Tasa de exploración",
@@ -2024,83 +2028,83 @@
"comboHealthTitle": "salud combinada",
"comboHealthUnableToLoad": "No se puede cargar la salud combinada",
"comboHealthGettingStarted": "Empezando",
- "comboHealthForecastTitle": "Cost & quota forecast",
- "comboHealthForecastDescription": "Linear projection from historical combo traffic and quota snapshots.",
- "comboHealthQuotaRisk": "{level} quota risk",
- "comboHealthConfidence": "{level} confidence",
- "comboHealthProjectedCost": "Projected cost",
- "comboHealthCostHistory": "history {total} · {daily}/day",
- "comboHealthProjectedRequests": "Projected requests",
- "comboHealthRequestsInRange": "{count} in selected range",
- "comboHealthWorstProjectedQuota": "Worst projected quota",
- "comboHealthNoDepletionEstimate": "No depletion estimate",
- "comboHealthDaysToExhaust": "{days}d to exhaust",
- "comboHealthTraffic": "traffic",
- "comboHealthProjectedQuota": "Projected quota",
- "comboHealthPricingCoverage": "Pricing coverage",
- "comboHealthAutopilotTitle": "Combo Health Autopilot",
- "comboHealthAutopilotDescription": "Prioritized recommendations from combo health, forecasts, quotas, and provider health.",
- "comboHealthIssues": "Issues",
- "comboHealthActionable": "{count} actionable",
- "comboHealthDown": "Down",
- "comboHealthDegraded": "Degraded",
- "comboHealthHealthy": "Healthy",
- "comboHealthNoActiveIssues": "No active combo health issues detected for the selected range.",
- "comboHealthScoringInspector": "Intelligent scoring inspector",
- "comboHealthReadOnlyRecompute": "Read-only recompute",
- "comboHealthScoringDescription": "Factor-level explanation for target ranking using current health, forecast, and routing heuristics.",
- "comboHealthTask": "Task: {task}",
- "comboHealthSelectedRank": "Selected rank #1",
+ "comboHealthForecastTitle": "Previsión de costes y cuotas",
+ "comboHealthForecastDescription": "Proyección lineal basada en el tráfico combinado histórico y las instantáneas de cuotas.",
+ "comboHealthQuotaRisk": "Riesgo de cuota: {level}",
+ "comboHealthConfidence": "Confianza: {level}",
+ "comboHealthProjectedCost": "Costo proyectado",
+ "comboHealthCostHistory": "historial {total} · {daily}/día",
+ "comboHealthProjectedRequests": "Solicitudes proyectadas",
+ "comboHealthRequestsInRange": "{count} en el intervalo seleccionado",
+ "comboHealthWorstProjectedQuota": "Peor cuota proyectada",
+ "comboHealthNoDepletionEstimate": "Sin estimación de agotamiento",
+ "comboHealthDaysToExhaust": "{days} d para agotarse",
+ "comboHealthTraffic": "tráfico",
+ "comboHealthProjectedQuota": "Cuota proyectada",
+ "comboHealthPricingCoverage": "Cobertura de precios",
+ "comboHealthAutopilotTitle": "Piloto automático de estado de combos",
+ "comboHealthAutopilotDescription": "Recomendaciones priorizadas según el estado de los combos, las previsiones, las cuotas y el estado del proveedor.",
+ "comboHealthIssues": "Problemas",
+ "comboHealthActionable": "{count} procesables",
+ "comboHealthDown": "Caído",
+ "comboHealthDegraded": "Degradado",
+ "comboHealthHealthy": "Saludable",
+ "comboHealthNoActiveIssues": "No se detectaron problemas activos de estado de los combos en el intervalo seleccionado.",
+ "comboHealthScoringInspector": "Inspector de puntuación inteligente",
+ "comboHealthReadOnlyRecompute": "Recálculo de solo lectura",
+ "comboHealthScoringDescription": "Explicación por factores de la clasificación de objetivos mediante el estado actual, la previsión y las heurísticas de enrutamiento.",
+ "comboHealthTask": "Tarea: {task}",
+ "comboHealthSelectedRank": "Clasificación seleccionada n.º 1",
"comboHealthFactor": {
- "quota": "Quota",
- "health": "Health",
- "costInv": "Cost",
- "latencyInv": "Latency",
- "taskFit": "Task fit",
- "stability": "Stability",
- "tierPriority": "Tier",
- "tierAffinity": "Tier fit",
- "specificityMatch": "Specificity",
- "contextAffinity": "Context",
- "resetWindowAffinity": "Reset window"
+ "quota": "Cuota",
+ "health": "Estado",
+ "costInv": "Costo",
+ "latencyInv": "Latencia",
+ "taskFit": "Adecuación a la tarea",
+ "stability": "Estabilidad",
+ "tierPriority": "Nivel",
+ "tierAffinity": "Adecuación al nivel",
+ "specificityMatch": "Especificidad",
+ "contextAffinity": "Contexto",
+ "resetWindowAffinity": "Ventana de restablecimiento"
},
- "comboHealthQuotaValue": "Quota {value}",
- "comboHealthLatencyValue": "Latency {value}ms",
- "comboHealthIssueCount": "Issues {count}",
- "comboHealthNoInspectableTargets": "No inspectable targets for this combo.",
+ "comboHealthQuotaValue": "Cuota {value}",
+ "comboHealthLatencyValue": "Latencia {value} ms",
+ "comboHealthIssueCount": "Problemas {count}",
+ "comboHealthNoInspectableTargets": "No hay objetivos inspeccionables para este combo.",
"comboHealthAutopilotState": {
- "down": "Down",
- "degraded": "Needs attention",
- "healthy": "Healthy"
+ "down": "Caído",
+ "degraded": "Requiere atención",
+ "healthy": "Saludable"
},
- "comboHealthModelProviderCount": "{models} models across {providers} providers",
- "comboHealthGiniCoefficient": "Gini coefficient",
- "comboHealthRequestCount": "{count} requests",
- "comboHealthQuotaHealthDescription": "Lowest remaining quota across providers with short trend signals.",
- "comboHealthRemainingQuota": "Remaining quota {value}",
+ "comboHealthModelProviderCount": "{models} modelos de {providers} proveedores",
+ "comboHealthGiniCoefficient": "Coeficiente de Gini",
+ "comboHealthRequestCount": "{count} solicitudes",
+ "comboHealthQuotaHealthDescription": "Cuota restante más baja entre los proveedores, con breves indicadores de tendencia.",
+ "comboHealthRemainingQuota": "Cuota restante: {value}",
"comboHealthTrend": {
- "improving": "Improving",
- "declining": "Declining",
- "stable": "Stable"
+ "improving": "Mejorando",
+ "declining": "Empeorando",
+ "stable": "Estable"
},
- "comboHealthUsageSkewDescription": "Model request share and token share within this combo.",
- "comboHealthShareSummary": "Request share {requests} · Token share {tokens}",
- "comboHealthPerformance": "Performance",
- "comboHealthPerformanceDescription": "Reliability and throughput for routed combo traffic.",
- "comboHealthExecutionTargetsDescription": "Step-level runtime metrics and quota visibility for structured combo targets.",
- "comboHealthRequestShort": "{count} req",
- "comboHealthQuotaScope": "Quota scope: {scope}",
- "comboHealthTrendValue": "Trend: {trend}",
- "comboHealthFetchFailed": "Failed to fetch combo health data",
- "unknownError": "Unknown error",
- "comboHealthIntro": "Monitor quota pressure, skewed model usage, and delivery performance by combo.",
- "comboHealthForecastHorizon": "{value} forecast",
- "comboHealthNoData": "No combo health data available",
- "comboHealthNoDataDescription": "Combo quota snapshots and routed requests will appear here after traffic starts flowing.",
- "comboHealthStepCreate": "Create combos in Combos with multiple providers",
- "comboHealthStepSend": "Send requests to combo endpoints to generate traffic data",
- "comboHealthStepAutomatic": "Health metrics will appear automatically as requests are routed",
- "comboHealthTracking": "Tracking {count} combos for {range}",
+ "comboHealthUsageSkewDescription": "Proporción de solicitudes y tokens por modelo dentro de esta combinación.",
+ "comboHealthShareSummary": "Proporción de solicitudes: {requests} · Proporción de tokens: {tokens}",
+ "comboHealthPerformance": "Rendimiento",
+ "comboHealthPerformanceDescription": "Fiabilidad y capacidad de procesamiento del tráfico enrutado de la combinación.",
+ "comboHealthExecutionTargetsDescription": "Métricas de tiempo de ejecución por paso y visibilidad de cuotas para objetivos de combinación estructurados.",
+ "comboHealthRequestShort": "{count} sol.",
+ "comboHealthQuotaScope": "Ámbito de la cuota: {scope}",
+ "comboHealthTrendValue": "Tendencia: {trend}",
+ "comboHealthFetchFailed": "No se pudieron obtener los datos de estado de las combinaciones",
+ "unknownError": "Error desconocido",
+ "comboHealthIntro": "Supervisa la presión sobre las cuotas, el uso desigual de modelos y el rendimiento de entrega por combinación.",
+ "comboHealthForecastHorizon": "Pronóstico: {value}",
+ "comboHealthNoData": "No hay datos de estado de combinaciones disponibles",
+ "comboHealthNoDataDescription": "Las instantáneas de cuotas de las combinaciones y las solicitudes enrutadas aparecerán aquí cuando empiece a circular el tráfico.",
+ "comboHealthStepCreate": "Crea combinaciones en Combos con varios proveedores",
+ "comboHealthStepSend": "Envía solicitudes a los endpoints de las combinaciones para generar datos de tráfico",
+ "comboHealthStepAutomatic": "Las métricas de estado aparecerán automáticamente a medida que se enruten las solicitudes",
+ "comboHealthTracking": "Seguimiento de {count} combinaciones durante {range}",
"compressionAnalyticsTotalRequests": "Solicitudes totales",
"compressionAnalyticsTokensSaved": "Fichas guardadas",
"compressionAnalyticsAvgSavings": "Ahorro promedio",
@@ -2112,26 +2116,26 @@
"compressionAnalyticsTotalTokens": "fichas totales",
"compressionAnalyticsCacheTokens": "Fichas de caché",
"compressionAnalyticsNoDataYet": "Aún no hay datos de compresión",
- "compressionAnalyticsLoading": "Loading compression analytics…",
- "compressionAnalyticsNoDataDescription": "Compression requests will appear here after the first request through /v1/chat/completions with compression enabled.",
- "rangeLast24h": "Last 24h",
- "rangeLast7d": "Last 7d",
- "rangeLast30d": "Last 30d",
- "rangeAllTime": "All time",
- "compressionAnalyticsModeStats": "{count} requests · {tokens} tokens saved",
- "compressionAnalyticsSkipped": " · {count} skipped (no-op)",
- "compressionAnalyticsRealTokens": "{count} real tokens",
- "compressionAnalyticsValidationRestores": "validation restores",
- "compressionAnalyticsRealUsageReceipts": "Real Usage Receipts",
- "compressionAnalyticsSources": "Sources",
- "compressionAnalyticsModeBreakdown": "Mode Breakdown",
- "compressionAnalyticsProviderBreakdown": "Provider Breakdown",
- "compressionAnalyticsLast24HoursActivity": "Last 24 Hours (Activity)",
- "compressionAnalyticsChartPoint": "{hour}: {count} requests, {tokens} tokens saved",
- "compressionAnalyticsMaxRequests": "Max requests/hour: {count}",
- "compressionAnalyticsMaxTokens": "Max tokens/hour: {count}",
- "compressionAnalyticsStartTracking": "Use POST /v1/chat/completions with compression configuration to start tracking compression analytics.",
- "compressionAnalyticsInfo": "Compression analytics: Token savings tracked per mode (off, lite, standard, aggressive, ultra, RTK, stacked), engine, compression combo, and provider. Hover over charts for details. Use the time selector to view different time periods.",
+ "compressionAnalyticsLoading": "Cargando análisis de compresión…",
+ "compressionAnalyticsNoDataDescription": "Las solicitudes de compresión aparecerán aquí después de la primera solicitud a través de /v1/chat/completions con la compresión habilitada.",
+ "rangeLast24h": "Últimas 24 h",
+ "rangeLast7d": "Últimos 7 días",
+ "rangeLast30d": "Últimos 30 días",
+ "rangeAllTime": "Todo el período",
+ "compressionAnalyticsModeStats": "{count} solicitudes · {tokens} tokens ahorrados",
+ "compressionAnalyticsSkipped": "· {count} omitidas (sin cambios)",
+ "compressionAnalyticsRealTokens": "{count} tokens reales",
+ "compressionAnalyticsValidationRestores": "restauraciones de validación",
+ "compressionAnalyticsRealUsageReceipts": "Comprobantes de uso real",
+ "compressionAnalyticsSources": "Fuentes",
+ "compressionAnalyticsModeBreakdown": "Desglose por modo",
+ "compressionAnalyticsProviderBreakdown": "Desglose por proveedor",
+ "compressionAnalyticsLast24HoursActivity": "Últimas 24 horas (actividad)",
+ "compressionAnalyticsChartPoint": "{hour}: {count} solicitudes, {tokens} tokens ahorrados",
+ "compressionAnalyticsMaxRequests": "Máximo de solicitudes/hora: {count}",
+ "compressionAnalyticsMaxTokens": "Máximo de tokens/hora: {count}",
+ "compressionAnalyticsStartTracking": "Usa POST /v1/chat/completions con la configuración de compresión para empezar a registrar las analíticas de compresión.",
+ "compressionAnalyticsInfo": "Analíticas de compresión: Ahorro de tokens registrado por modo (off, lite, standard, aggressive, ultra, RTK, stacked), motor, combinación de compresión y proveedor. Pasa el cursor sobre los gráficos para ver los detalles. Usa el selector de tiempo para consultar distintos períodos.",
"searchAnalyticsTotalSearches": "Búsquedas totales",
"searchAnalyticsCacheHitRate": "Tasa de aciertos de caché",
"searchAnalyticsTotalCost": "Costo Total",
@@ -2144,78 +2148,78 @@
"providerUtilizationLatestSnapshot": "Instantánea de la última cuota",
"providerUtilizationRemainingCapacity": "Capacidad restante",
"utilizationRange": {
- "1h": "Last hour",
- "24h": "Last 24 hours",
- "7d": "Last 7 days",
- "30d": "Last 30 days"
+ "1h": "Última hora",
+ "24h": "Últimas 24 horas",
+ "7d": "Últimos 7 días",
+ "30d": "Últimos 30 días"
},
- "providerUtilizationGlobalView": "Global View",
- "providerUtilizationAccountSplit": "Account Split",
- "providerUtilizationLoading": "Loading utilization data…",
- "retrying": "Retrying…",
- "retry": "Retry",
- "providerUtilizationNoDataDescription": "Provider quota snapshots will appear here after utilization data is collected.",
- "providerUtilizationStepConnect": "Connect providers through OAuth or API keys in Providers",
- "providerUtilizationStepEnable": "Enable quota tracking by using the provider in a combo or direct request",
- "providerUtilizationStepAutomatic": "Data will appear automatically as quota snapshots are collected",
- "statusExhausted": "Exhausted",
- "statusLow": "Low",
- "statusHealthy": "Healthy",
- "remainingQuota": "Remaining quota",
- "routeTraceTitle": "Route Trace View",
- "routeTraceDescription": "Inspect the persisted request trace: selected target, routing factors, fallback evidence, current scoring replay, latency, tokens and target health.",
- "routeTraceRequestLog": "Request log",
- "routeWeight": "Weight {weight}%",
- "routeNoRelatedEvidence": "No related target evidence persisted yet.",
- "unknown": "unknown",
- "selected": "Selected",
- "routeNoStepId": "no step id",
- "routeNoStep": "no step",
- "routeMatchesTopTarget": "Matches current top target",
- "routeDiffersFromTop": "Differs from current top",
- "routeTargetMissingNow": "Target missing now",
- "routeNotComboRouted": "Not combo routed",
- "routeWhyTarget": "Why this target?",
- "routeWhyTargetSubtitle": "Exact runtime metadata plus read-only scoring replay",
- "routeExactRuntimeLog": "Exact runtime log",
- "routeCallLogsExact": "call_logs exact",
- "routeReadOnlyRecompute": "Read-only recompute",
- "routeRuntimeRankNow": "Runtime rank now",
- "routeRuntimeScoreNow": "Runtime score now",
- "routeWouldSelectNow": "Would select now",
- "routeNoRecomputeCandidates": "No combo candidate ranking can be recomputed for this request.",
- "runtime": "Runtime",
- "routeTopNow": "Top now",
- "routeFetchLogsFailed": "Failed to fetch request logs",
- "routeExplainFailed": "Failed to explain route",
- "direct": "direct",
- "routeUnableToLoad": "Unable to load route explanation",
- "routeNoRequestLogs": "No request logs available",
- "routeNoRequestLogsDescription": "Send traffic through OmniRoute first. Route explanations are generated from persisted structured call logs.",
- "routeDecisionSummary": "Decision summary",
- "routeConfidence": "{confidence} confidence",
- "routeScore": "Route score",
- "latency": "Latency",
- "routeRecentSuccess": "Recent success",
- "routeAvgTargetLatency": "Avg target latency",
- "routeSelectedTarget": "Selected target",
- "provider": "Provider",
- "model": "Model",
- "account": "Account",
- "connection": "Connection",
- "combo": "Combo",
- "routeStep": "Step",
+ "providerUtilizationGlobalView": "Vista global",
+ "providerUtilizationAccountSplit": "Desglose por cuenta",
+ "providerUtilizationLoading": "Cargando datos de uso…",
+ "retrying": "Reintentando…",
+ "retry": "Reintentar",
+ "providerUtilizationNoDataDescription": "Las instantáneas de cuota de los proveedores aparecerán aquí una vez que se recopilen los datos de uso.",
+ "providerUtilizationStepConnect": "Conecta proveedores mediante OAuth o claves de API en Proveedores",
+ "providerUtilizationStepEnable": "Activa el seguimiento de cuotas usando el proveedor en una combinación o solicitud directa",
+ "providerUtilizationStepAutomatic": "Los datos aparecerán automáticamente a medida que se recopilen instantáneas de cuota",
+ "statusExhausted": "Agotada",
+ "statusLow": "Baja",
+ "statusHealthy": "Saludable",
+ "remainingQuota": "Cuota restante",
+ "routeTraceTitle": "Vista de seguimiento de ruta",
+ "routeTraceDescription": "Inspecciona el seguimiento persistido de la solicitud: destino seleccionado, factores de enrutamiento, evidencia de respaldo, reproducción de la puntuación actual, latencia, tokens y estado del destino.",
+ "routeTraceRequestLog": "Registro de solicitudes",
+ "routeWeight": "Peso {weight}%",
+ "routeNoRelatedEvidence": "Aún no se ha almacenado evidencia relacionada con el destino.",
+ "unknown": "desconocido",
+ "selected": "Seleccionado",
+ "routeNoStepId": "sin id de paso",
+ "routeNoStep": "sin paso",
+ "routeMatchesTopTarget": "Coincide con el destino principal actual",
+ "routeDiffersFromTop": "Difiere del destino principal actual",
+ "routeTargetMissingNow": "El destino ya no existe",
+ "routeNotComboRouted": "No enrutado mediante combinación",
+ "routeWhyTarget": "¿Por qué este destino?",
+ "routeWhyTargetSubtitle": "Metadatos exactos de ejecución y reproducción de puntuación de solo lectura",
+ "routeExactRuntimeLog": "Registro exacto de ejecución",
+ "routeCallLogsExact": "call_logs exactos",
+ "routeReadOnlyRecompute": "Recálculo de solo lectura",
+ "routeRuntimeRankNow": "Clasificación actual en tiempo de ejecución",
+ "routeRuntimeScoreNow": "Puntuación actual en tiempo de ejecución",
+ "routeWouldSelectNow": "Se seleccionaría ahora",
+ "routeNoRecomputeCandidates": "No se puede recalcular la clasificación de candidatos de combinación para esta solicitud.",
+ "runtime": "Tiempo de ejecución",
+ "routeTopNow": "Primero ahora",
+ "routeFetchLogsFailed": "No se pudieron obtener los registros de solicitudes",
+ "routeExplainFailed": "No se pudo explicar la ruta",
+ "direct": "directo",
+ "routeUnableToLoad": "No se puede cargar la explicación de la ruta",
+ "routeNoRequestLogs": "No hay registros de solicitudes disponibles",
+ "routeNoRequestLogsDescription": "Primero, envía tráfico a través de OmniRoute. Las explicaciones de rutas se generan a partir de registros estructurados de llamadas almacenados.",
+ "routeDecisionSummary": "Resumen de la decisión",
+ "routeConfidence": "Confianza: {confidence}",
+ "routeScore": "Puntuación de la ruta",
+ "latency": "Latencia",
+ "routeRecentSuccess": "Éxito reciente",
+ "routeAvgTargetLatency": "Latencia objetivo media",
+ "routeSelectedTarget": "Destino seleccionado",
+ "provider": "Proveedor",
+ "model": "Modelo",
+ "account": "Cuenta",
+ "connection": "Conexión",
+ "combo": "Combinación",
+ "routeStep": "Paso",
"tokens": "Tokens",
- "notAvailable": "n/a",
- "routeTokenCounts": "{input} in · {output} out",
- "routeEvidence": "Evidence",
- "routeFactors": "Routing factors",
- "routeFactorsSubtitle": "Weighted signals used for this explanation",
- "routeFallbackTimeline": "Fallback and target timeline",
- "routeFallbackTimelineSubtitle": "Inferred from persisted call logs around this request",
- "routeRecommendations": "Recommendations",
- "routeLimitations": "Limitations",
- "routeNoKnownLimitations": "No known limitations for this explanation.",
+ "notAvailable": "N/D",
+ "routeTokenCounts": "{input} de entrada · {output} de salida",
+ "routeEvidence": "Evidencia",
+ "routeFactors": "Factores de enrutamiento",
+ "routeFactorsSubtitle": "Señales ponderadas utilizadas para esta explicación",
+ "routeFallbackTimeline": "Cronología de destinos y alternativas",
+ "routeFallbackTimelineSubtitle": "Inferido a partir de registros de llamadas almacenados próximos a esta solicitud",
+ "routeRecommendations": "Recomendaciones",
+ "routeLimitations": "Limitaciones",
+ "routeNoKnownLimitations": "No hay limitaciones conocidas para esta explicación.",
"searchAnalyticsLoading": "Cargando análisis de búsqueda…",
"searchAnalyticsNoData": "No hay datos de búsqueda disponibles aún.",
"searchAnalyticsNoDataDescription": "Las solicitudes de búsqueda aparecerán aquí después de la primera búsqueda a través de /v1/search.",
@@ -2254,9 +2258,9 @@
"fullAccess": "Acceso completo",
"keyManagement": "Gestión de claves API",
"keyManagementDesc": "Cree y administre claves API para autenticar solicitudes en su punto final",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Tu aplicación envía solicitudes a OmniRoute mediante una clave de API",
+ "requestFlowYourApp": "Tu aplicación",
+ "requestFlowApiKey": "Clave de API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Claves totales",
"restricted": "Restringido",
@@ -2289,42 +2293,42 @@
"ownUsageVisibilityDesc": "Permite que esta clave llame a su endpoint de estado para ver su uso en USD, porcentaje de presupuesto y totales de tokens.",
"sharedAccountQuotaVisibility": "Cuota de cuenta compartida",
"sharedAccountQuotaVisibilityDesc": "Permite que esta clave vea la cuota de cuenta upstream compartida cuando hay una conexión explícita configurada.",
- "localUsageCommand": "Allow local usage command",
- "localUsageCommandDesc": "Allows this API key to use @@om-usage to retrieve cached usage and quota information without calling an upstream provider.",
- "localUsageCommandBadge": "Usage cmd",
+ "localUsageCommand": "Permitir comando de uso local",
+ "localUsageCommandDesc": "Permite que esta clave de API use @@om-usage para recuperar información almacenada en caché sobre el uso y la cuota sin llamar a un proveedor ascendente.",
+ "localUsageCommandBadge": "Comando de uso",
"keyCreated": "Clave API creada",
"keyCreatedSuccess": "¡Clave creada exitosamente!",
"keyCreatedNote": "Copie y almacene esta clave ahora; no se volverá a mostrar.",
"done": "hecho",
"savePermissions": "Guardar permisos",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
- "streamDefaultMode": "Stream Default Compatibility",
- "streamDefaultModeDesc": "Controls omitted `stream` flags for this key. JSON mode returns non-streaming responses unless the client explicitly requests SSE.",
- "streamDefaultLegacy": "Legacy",
- "streamDefaultJson": "JSON Compatible",
- "streamDefaultBadge": "JSON stream default",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "endpointRestrictions": "Endpoints permitidos",
+ "allEndpointsAllowed": "Esta clave puede acceder a todos los endpoints de la API.",
+ "endpointsRestricted": "Restringida a {count} {count, plural, one {endpoint} other {endpoints}}.",
+ "autoResolve": "Resolución automática",
+ "autoResolveDesc": "Resuelve automáticamente los nombres de modelos ambiguos seleccionando el proveedor nativo para esta clave de API.",
+ "streamDefaultMode": "Compatibilidad predeterminada de streaming",
+ "streamDefaultModeDesc": "Controla los indicadores `stream` omitidos para esta clave. El modo JSON devuelve respuestas sin streaming, salvo que el cliente solicite SSE explícitamente.",
+ "streamDefaultLegacy": "Heredado",
+ "streamDefaultJson": "Compatible con JSON",
+ "streamDefaultBadge": "Streaming JSON predeterminado",
+ "keyActive": "Clave activa",
+ "keyActiveDesc": "Activa o desactiva esta clave de API. Las claves desactivadas se rechazan inmediatamente con un error 403.",
+ "accessSchedule": "Horario de acceso",
+ "accessScheduleDesc": "Restringe el acceso a horas y días específicos de la semana.",
+ "scheduleFrom": "Desde",
+ "scheduleUntil": "Hasta",
+ "scheduleDays": "Días",
+ "scheduleTimezone": "Zona horaria",
+ "scheduleTimezoneHint": "Usa nombres de zonas horarias de IANA, p. ej., America/New_York, Europe/Berlin",
+ "scheduleActive": "Horario",
+ "disabled": "Desactivado",
+ "daySun": "Dom",
+ "dayMon": "Lun",
+ "dayTue": "Mar",
+ "dayWed": "Mié",
+ "dayThu": "Jue",
+ "dayFri": "Vie",
+ "daySat": "Sáb",
"allowAll": "Permitir todo",
"restrict": "Restringir",
"allowAllInfo": "Esta clave puede acceder a todos los modelos disponibles.",
@@ -2349,12 +2353,12 @@
"failedUpdatePermissionsRetry": "No se pudieron actualizar los permisos. Por favor inténtalo de nuevo.",
"unknownProvider": "desconocido",
"copyMaskedKey": "Copiar clave enmascarada",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "La clave completa solo está disponible en el momento de su creación; cópiala cuando crees la clave por primera vez",
"modelsCount": "{count, plural, one {# model} other {# models}}",
- "devicesCount": "{count, plural, one {# device} other {# devices}}",
- "devicesTooltip": "{count, plural, one {# distinct IP/User-Agent device seen with this key (last 30 min)} other {# distinct IP/User-Agent devices seen with this key (last 30 min)}}",
+ "devicesCount": "{count, plural, one {# dispositivo} other {# dispositivos}}",
+ "devicesTooltip": "{count, plural, one {# dispositivo distinto de IP/User-Agent detectado con esta clave (últimos 30 min)} other {# dispositivos distintos de IP/User-Agent detectados con esta clave (últimos 30 min)}}",
"lastUsedOn": "Último: {date}",
- "viewCostsFor": "View costs for {name}",
+ "viewCostsFor": "Ver los costes de {name}",
"editPermissions": "Editar permisos",
"deleteKey": "Eliminar clave",
"regenerateKey": "Regenerar clave",
@@ -2365,21 +2369,21 @@
"models": "{count} modelos",
"permissionsTitle": "Permisos: {name}",
"allowAllDesc": "Esta clave puede acceder a todos los modelos disponibles.",
- "restrictLoading": "Loading model catalog…",
- "restrictCatalogUnavailable": "Model catalog unavailable; this key has {selectedCount} selected model restrictions.",
+ "restrictLoading": "Cargando el catálogo de modelos…",
+ "restrictCatalogUnavailable": "El catálogo de modelos no está disponible; esta clave tiene restricciones para {selectedCount} modelos seleccionados.",
"restrictDesc": "Esta clave puede acceder a {selectedCount} de {totalModels} modelos.",
"selectedCount": "{count} seleccionado",
"maxActiveSessions": "Sesiones activas máximas",
- "maxActiveSessionsDescription": "0 = unlimited. Return 429 when this key exceeds concurrent sticky sessions.",
- "throttleDelay": "Throttle Delay",
- "throttleDelayDescription": "Add a fixed delay before requests for this key are routed. 0 = no slowdown.",
- "expandClaudeCodeFamilies": "Expand Claude Code families",
- "removeClaudeCodeDefault": "Remove Claude Code default",
- "allowedCombos": "Allowed Combos",
- "allCombosAllowed": "This key can use any combo.",
- "restrictedComboCount": "Restricted to {count, plural, one {# combo} other {# combos}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "maxActiveSessionsDescription": "0 = ilimitado. Devuelve 429 cuando esta clave supere el límite de sesiones persistentes simultáneas.",
+ "throttleDelay": "Retraso de limitación",
+ "throttleDelayDescription": "Añade un retraso fijo antes de enrutar las solicitudes de esta clave. 0 = sin ralentización.",
+ "expandClaudeCodeFamilies": "Ampliar familias de Claude Code",
+ "removeClaudeCodeDefault": "Eliminar valor predeterminado de Claude Code",
+ "allowedCombos": "Combinaciones permitidas",
+ "allCombosAllowed": "Esta clave puede usar cualquier combinación.",
+ "restrictedComboCount": "Restringida a {count, plural, one {# combinación} other {# combinaciones}}.",
+ "preservedComboRules": "{count, plural, one {# entrada almacenada no está} other {# entradas almacenadas no están}} en esta lista de combinaciones (por ejemplo, reglas de enrutamiento) y se conservará tal como se guardó.",
+ "preservedComboRuleHint": "Se conserva tal como está almacenada. Esta entrada no es una combinación de la lista anterior, por lo que solo se puede modificar mediante la API.",
"apiManagerCustomRateLimits": "Límites de tarifas personalizadas",
"apiManagerCustomRateLimitsDesc": "Anule los límites predeterminados globales. Déjelo vacío para usar los valores predeterminados.",
"apiManagerRateLimitRequestsPlaceholder": "Solicitudes",
@@ -2398,32 +2402,32 @@
"filterStatus": "ESTADO",
"filterType": "TIPO",
"filterAll": "Todos",
- "filterStatusActive": "Active",
- "filterStatusDisabled": "Disabled",
- "filterStatusBanned": "Banned",
- "filterStatusExpired": "Expired",
- "filterTypeStandard": "Standard",
- "filterTypeManage": "Manage",
- "filterTypeRestricted": "Restricted",
- "shownOf": "{shown} of {total} shown",
- "emptyFilterTitle": "No keys match your filters",
- "emptyFilterClear": "Clear filters",
- "disableNonPublicModels": "Disable Non-Public Models",
- "disableNonPublicModelsDesc": "Reject requests for models that are not discovered or not marked as public in the provider catalog",
- "normalKeysSection": "Normal keys",
- "quotaKeysSection": "Quota keys",
- "bypassProviderQuota": "Bypass provider quota cutoffs",
- "bypassProviderQuotaDescription": "Allows this key to ignore upstream provider/account cutoff policy during routing. API key USD quotas still apply.",
- "quotaPill": "QUOTA",
- "quotaModeOnly": "qtSd-only",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "filterStatusActive": "Activa",
+ "filterStatusDisabled": "Deshabilitada",
+ "filterStatusBanned": "Bloqueada",
+ "filterStatusExpired": "Caducada",
+ "filterTypeStandard": "Estándar",
+ "filterTypeManage": "Gestionar",
+ "filterTypeRestricted": "Restringida",
+ "shownOf": "Se muestran {shown} de {total}",
+ "emptyFilterTitle": "Ninguna clave coincide con tus filtros",
+ "emptyFilterClear": "Borrar filtros",
+ "disableNonPublicModels": "Deshabilitar modelos no públicos",
+ "disableNonPublicModelsDesc": "Rechaza las solicitudes de modelos que no se hayan detectado o que no estén marcados como públicos en el catálogo del proveedor",
+ "normalKeysSection": "Claves normales",
+ "quotaKeysSection": "Claves de cuota",
+ "bypassProviderQuota": "Omitir los límites de cuota del proveedor",
+ "bypassProviderQuotaDescription": "Permite que esta clave ignore la política de límites del proveedor o de la cuenta de origen durante el enrutamiento. Las cuotas en USD de la clave de API siguen aplicándose.",
+ "quotaPill": "CUOTA",
+ "quotaModeOnly": "Solo qtSd",
+ "exclusiveLease": "Arrendamiento exclusivo",
+ "exclusiveLeaseNoticeTitle": "Arrendamiento exclusivo",
+ "exclusiveLeaseNoticeDesc": "Esta clave de API tiene permisos de arrendamiento exclusivo para el enrutamiento mediante conexiones dedicadas.",
+ "allConnections": "Todas las conexiones",
+ "onlySelectedConnections": "Solo las conexiones seleccionadas",
+ "selectAtLeastOneConnection": "Selecciona al menos una conexión o elige Todas las conexiones.",
+ "allConnectionsDesc": "Esta clave puede usar cualquier conexión activa.",
+ "restrictedToConnections": "Restringida a {count, plural, one {# conexión} other {# conexiones}}."
},
"auditLog": {
"title": "Registro de auditoría",
@@ -2453,84 +2457,84 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Generar",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Generando...",
+ "loadingModels": "Cargando modelos disponibles...",
+ "noModels": "No hay modelos disponibles. Primero configura proveedores con capacidades multimedia.",
+ "error": "Error de generación",
+ "result": "Resultado",
+ "imageDescription": "Genera imágenes a partir de indicaciones de texto con OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI y más.",
+ "videoDescription": "Crea vídeos con AnimateDiff y Stable Video Diffusion mediante ComfyUI o SD WebUI.",
+ "musicDescription": "Compón música con Stable Audio Open o MusicGen mediante ComfyUI.",
"kinds": {
"embedding": "Incrustación (Embedding)",
"image": "Imagen",
"imageToText": "Imagen a Texto",
"tts": "Texto a Voz (TTS)",
"stt": "Voz a Texto (STT)",
- "webSearch": "Web Search",
- "webFetch": "Web Fetch",
+ "webSearch": "Búsqueda web",
+ "webFetch": "Obtención de contenido web",
"video": "Vídeo",
"music": "Música",
"ocr": "OCR"
},
- "noProviders": "No providers configured for this kind yet.",
- "addConnection": "Add Connection",
- "backToProviders": "Back to Providers",
- "connections": "{count} Connections",
- "noConnections": "No connections yet — add one from the provider page.",
- "loading": "Loading...",
- "suggestedModels": "Suggested models from provider",
- "imageGeneration": "Image Generation",
- "imageToText": "Image to Text",
- "imageToTextComingSoon": "The inline Image-to-Text playground will be available when /api/v1/images/understanding is implemented.",
- "disabled": "Disabled",
- "videoGeneration": "Video Generation",
- "musicGeneration": "Music Generation",
- "textToSpeech": "Text to Speech",
- "transcription": "Transcription",
- "imagePromptPlaceholder": "A serene landscape with mountains at sunset...",
- "videoPromptPlaceholder": "A timelapse of a flower blooming...",
- "musicPromptPlaceholder": "Upbeat electronic music with synth pads...",
- "speechTextPlaceholder": "Hello! Welcome to OmniRoute, your intelligent AI gateway...",
- "transcriptionPlaceholder": "Upload an audio file to transcribe...",
- "noImagesReturned": "No images returned. The provider might have accepted the request but returned empty data.",
- "generatedImageAlt": "Generated image {index}",
- "save": "Save",
- "enterTextToSynthesize": "Please enter text to synthesize.",
- "selectAudioToTranscribe": "Please select an audio file to transcribe.",
- "noSpeechDetected": "No speech detected in the audio file. If you uploaded music or a silent file, try an audio file with spoken words. Provider: \"{provider}\".",
- "emptyTranscription": "Transcription returned empty text. The audio may contain no recognizable speech, or the \"{provider}\" API key may be invalid. Check Dashboard → Logs → Proxy for details.",
- "topazRequiresImage": "Topaz requires an input image.",
- "enterPrompt": "Please enter a prompt.",
- "enhanceThisImage": "Enhance this image",
- "failedToReadFile": "Failed to read file",
- "generationFailed": "Generation failed",
- "requestFailed": "Request failed ({status})",
- "provider": "Provider",
- "credentialsRequired": "Requires /api/v1/images/understanding.",
+ "disabled": "Deshabilitado",
+ "videoGeneration": "Generación de vídeos",
+ "musicGeneration": "Generación de música",
+ "textToSpeech": "Texto a voz",
+ "transcription": "Transcripción",
+ "imagePromptPlaceholder": "Un paisaje sereno con montañas al atardecer...",
+ "videoPromptPlaceholder": "Un vídeo a cámara rápida de una flor abriéndose...",
+ "musicPromptPlaceholder": "Música electrónica animada con pads de sintetizador...",
+ "speechTextPlaceholder": "¡Hola! Te damos la bienvenida a OmniRoute, tu puerta de enlace inteligente de IA...",
+ "transcriptionPlaceholder": "Sube un archivo de audio para transcribirlo...",
+ "noImagesReturned": "No se devolvió ninguna imagen. Es posible que el proveedor haya aceptado la solicitud, pero haya devuelto datos vacíos.",
+ "generatedImageAlt": "Imagen generada {index}",
+ "save": "Guardar",
+ "enterTextToSynthesize": "Introduce el texto que quieres sintetizar.",
+ "selectAudioToTranscribe": "Selecciona un archivo de audio para transcribir.",
+ "noSpeechDetected": "No se detectó voz en el archivo de audio. Si subiste música o un archivo silencioso, prueba con un archivo de audio que contenga palabras habladas. Proveedor: \"{provider}\".",
+ "emptyTranscription": "La transcripción devolvió texto vacío. Es posible que el audio no contenga voz reconocible o que la clave de API de \"{provider}\" no sea válida. Consulta Dashboard → Logs → Proxy para obtener más información.",
+ "topazRequiresImage": "Topaz requiere una imagen de entrada.",
+ "enterPrompt": "Introduce una indicación.",
+ "enhanceThisImage": "Mejorar esta imagen",
+ "failedToReadFile": "No se pudo leer el archivo",
+ "generationFailed": "Error de generación",
+ "requestFailed": "Error en la solicitud ({status})",
+ "provider": "Proveedor",
+ "credentialsRequired": "Requiere la clave de API de /api/v1/images/understanding esté implementado.",
"imageToTextBridgeCta": "Configura el puente de Imagen→Texto en la configuración del Puente de Modalidad",
"sttBridgeCta": "Configura el puente de Voz→Texto en la configuración del Puente de Modalidad",
@@ -2538,174 +2542,174 @@
"openrouterSttDescription": "Los modelos de conversión de voz a texto de OpenRouter utilizan tu conexión de OpenRouter configurada. No se requieren credenciales separadas."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Consulta de búsqueda",
+ "searchResults": "Resultados de búsqueda",
+ "cachedResult": "En caché",
+ "searchCost": "Coste",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Pruebas de búsqueda avanzada con comparación de proveedores",
+ "compareProviders": "Comparar proveedores",
+ "rerankResults": "Reordenar resultados",
+ "searchHistory": "Historial de búsqueda",
+ "urlOverlap": "Coincidencia de URL",
+ "noSearchProviders": "No hay proveedores de búsqueda configurados. Añade proveedores en Configuración.",
+ "noRerankModels": "No hay ningún modelo de reordenación disponible",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Proveedor",
+ "searchType": "Tipo de búsqueda",
+ "maxResults": "Máximo de resultados",
+ "filters": "Filtros",
+ "country": "País",
+ "language": "Idioma",
+ "timeRange": "Intervalo de tiempo",
+ "includeDomains": "Incluir dominios",
+ "excludeDomains": "Excluir dominios",
+ "safeSearch": "Búsqueda segura",
+ "safeSearchOff": "Desactivada",
+ "safeSearchModerate": "Moderada",
+ "safeSearchStrict": "Estricta",
+ "queryPlaceholder": "Introduce una consulta de búsqueda...",
+ "providerAuto": "automático (más barato)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "noticias",
+ "optionAny": "cualquiera",
+ "timeRangeDay": "Último día",
+ "timeRangeWeek": "Última semana",
+ "timeRangeMonth": "Último mes",
+ "timeRangeYear": "Último año",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "La solicitud agotó el tiempo de espera ({seconds}s)",
+ "networkError": "Error de red",
+ "formatted": "Con formato",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "fallo de caché",
+ "cacheHit": "acierto de caché",
+ "latency": "Latencia",
+ "cost": "Coste",
+ "results": "Resultados",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Modelo de reclasificación",
+ "positionDelta": "Cambio de posición",
+ "emptyState": "Envía una consulta de búsqueda para ver los resultados",
"copy": "Copiar",
"resetToDefault": "Restablecer los valores predeterminados",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Buscar",
+ "tabScrape": "Extraer",
+ "tabCompare": "Comparar",
+ "modalitiesGuide": "Guía de modalidades",
+ "searchConceptTitle": "Búsqueda",
+ "searchConceptDesc": "Búsqueda = obtiene una lista de resultados web (título, URL, fragmento, puntuación de relevancia)",
+ "scrapeConceptTitle": "Extracción",
+ "scrapeConceptDesc": "Extracción = extrae el contenido completo de una URL (markdown, texto o HTML)",
+ "compareConceptTitle": "Comparación",
+ "compareConceptDesc": "Comparación = ejecuta la misma consulta en N proveedores en paralelo para comparar la latencia, el coste y la coincidencia de resultados",
+ "rerankConceptTitle": "Reordenar",
+ "rerankConceptDesc": "Reordenar = reordena los resultados mediante un LLM para mejorar la relevancia según la consulta",
+ "autoConceptTitle": "Automático (más barato)",
+ "autoConceptDesc": "Automático (más barato) = selecciona automáticamente el proveedor disponible más barato que tenga credenciales configuradas",
+ "providerCatalogTitle": "Catálogo de proveedores",
+ "kindSearch": "Buscar",
+ "kindFetch": "Obtener/extraer",
+ "statusConfigured": "Configurado",
+ "statusMissing": "Sin credenciales",
+ "statusRateLimited": "Límite de solicitudes alcanzado",
+ "configureProvider": "Configurar en Proveedores",
+ "loadingProviders": "Cargando proveedores…",
+ "failedToLoadProviders": "No se pudieron cargar los proveedores",
+ "costPerQuery": "Coste/consulta",
+ "freeQuota": "Cuota gratuita/mes",
+ "scrapeUrl": "URL que extraer",
"scrapeUrlPlaceholder": "https://example.com",
- "scrapeUrlRequired": "URL is required",
- "scrapeUrlInvalid": "Invalid URL — it must start with http:// or https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeUrlRequired": "La URL es obligatoria",
+ "scrapeUrlInvalid": "URL no válida — debe comenzar por http:// o https://",
+ "scrapeExtract": "Extraer",
+ "scrapeExtracting": "Extrayendo…",
+ "scrapeFullPage": "Página completa",
+ "scrapeFormat": "Formato",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
- "scrapeEmptyState": "Enter a URL to extract its content",
- "scrapeProvidersAvailable": "Available providers: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
- "configurationPane": "Configuration pane",
- "configuration": "Configuration",
- "status": "Status",
- "compareProviderHint": "Select up to 4 providers on the Compare tab to compare them side by side.",
- "history": "History",
- "historyHint": "History is available on the Search tab.",
- "noActiveProvider": "No active search provider",
- "configureMoreProviders": "Configure more providers",
- "links": "Links",
- "contentTruncated": "Content truncated to 256 KB (original size: {size})",
- "viewFullRaw": "View full raw content",
- "rawScrapedContent": "Raw scraped content",
- "rawContent": "Raw content — {size}",
- "closeRawModal": "Close raw content modal",
+ "formatText": "Texto",
+ "scrapePreview": "Vista previa",
+ "scrapeRaw": "Sin procesar",
+ "scrapeContentTruncated": "(truncado, ver sin procesar)",
+ "scrapeMetadata": "Metadatos",
+ "scrapeProvider": "Proveedor",
+ "scrapeSize": "Tamaño",
+ "scrapeEmptyState": "Introduce una URL para extraer su contenido",
+ "scrapeProvidersAvailable": "Proveedores disponibles: Firecrawl, Jina Reader, Tavily, TinyFish.",
+ "compareRun": "Comparar",
+ "compareRunning": "Comparando…",
+ "autoProvider": "Automático (más barato)",
+ "configuredStatus": "Configurado",
+ "rateLimitedStatus": "Límite de solicitudes alcanzado",
+ "noCredential": "Sin credenciales",
+ "searchTypeLabel": "Tipo",
+ "rerankModelLabel": "Modelo de reclasificación",
+ "noneOption": "Ninguno",
+ "size": "Tamaño",
+ "configurationPane": "Panel de configuración",
+ "configuration": "Configuración",
+ "status": "Estado",
+ "compareProviderHint": "Selecciona hasta 4 proveedores en la pestaña Comparar para compararlos en paralelo.",
+ "history": "Historial",
+ "historyHint": "El historial está disponible en la pestaña Buscar.",
+ "noActiveProvider": "No hay ningún proveedor de búsqueda activo",
+ "configureMoreProviders": "Configurar más proveedores",
+ "links": "Enlaces",
+ "contentTruncated": "Contenido truncado a 256 KB (tamaño original: {size})",
+ "viewFullRaw": "Ver todo el contenido sin procesar",
+ "rawScrapedContent": "Contenido extraído sin procesar",
+ "rawContent": "Contenido sin procesar — {size}",
+ "closeRawModal": "Cerrar la ventana modal de contenido sin procesar",
"httpError": "Error {status}",
- "failed": "Failed",
- "requestFailed": "Request failed",
- "embedding": "Embedding",
- "embeddingSample": "Hello, world!",
- "image": "Image",
- "imageSample": "A serene landscape with mountains at sunset",
- "music": "Music",
- "musicSample": "Upbeat jazz piano with light percussion",
- "noAudioUrl": "No audio URL in response: {response}",
- "documentUrl": "Document URL",
- "fileTooLarge25Mb": "File too large — max 25 MB",
- "selectAudioFirst": "Please select an audio file first.",
- "speechToText": "Speech to Text",
- "chooseFile": "Choose file…",
- "audioFormats25Mb": "mp3, wav, m4a, ogg, flac — max 25 MB",
- "textToSpeech": "Text to Speech",
- "ttsSample": "Hello, this is a text-to-speech test.",
- "video": "Video",
- "videoSample": "A time-lapse of clouds over a mountain range",
- "webFetch": "Web Fetch",
- "webSearchSample": "What is OmniRoute AI gateway?",
- "noActiveProviderDescription": "No active search provider. Configure one in Providers.",
- "configureProviders": "Configure providers",
- "compareQuery": "Query to compare",
- "compareQueryPlaceholder": "artificial intelligence trends 2026",
- "selectedProviders": "Providers ({count} selected):",
- "selectAll": "Select all",
- "clear": "Clear",
- "maxCompareProviders": "A maximum of {count} providers can be compared at once.",
- "compareResults": "Results — “{query}”",
- "resultCount": "{count} results",
- "noResults": "No results",
- "sharedResultTitle": "In common with another provider",
- "sharedResult": "In common",
- "overlapSummary": "{first} vs {second}: {overlap} in common",
- "compareEmptyTitle": "Select providers and enter a query to compare",
- "compareEmptyDescription": "Results will be shown side by side with latency, cost, and URL overlap"
+ "failed": "Fallido",
+ "requestFailed": "La solicitud ha fallado",
+ "embedding": "Incrustación",
+ "embeddingSample": "¡Hola, mundo!",
+ "image": "Imagen",
+ "imageSample": "Un paisaje sereno con montañas al atardecer",
+ "music": "Música",
+ "musicSample": "Piano de jazz animado con percusión ligera",
+ "noAudioUrl": "No hay ninguna URL de audio en la respuesta: {response}",
+ "documentUrl": "URL del documento",
+ "fileTooLarge25Mb": "El archivo es demasiado grande — máximo 25 MB",
+ "selectAudioFirst": "Selecciona primero un archivo de audio.",
+ "speechToText": "Conversión de voz a texto",
+ "chooseFile": "Elegir archivo…",
+ "audioFormats25Mb": "mp3, wav, m4a, ogg, flac — máximo 25 MB",
+ "textToSpeech": "Conversión de texto a voz",
+ "ttsSample": "Hola, esta es una prueba de conversión de texto a voz.",
+ "video": "Vídeo",
+ "videoSample": "Un vídeo a cámara rápida de nubes sobre una cordillera",
+ "webFetch": "Obtención web",
+ "webSearchSample": "¿Qué es la puerta de enlace de IA OmniRoute?",
+ "noActiveProviderDescription": "No hay ningún proveedor de búsqueda activo. Configura uno en Proveedores.",
+ "configureProviders": "Configurar proveedores",
+ "compareQuery": "Consulta para comparar",
+ "compareQueryPlaceholder": "tendencias de inteligencia artificial en 2026",
+ "selectedProviders": "Proveedores ({count} seleccionados):",
+ "selectAll": "Seleccionar todos",
+ "clear": "Borrar",
+ "maxCompareProviders": "Se puede comparar un máximo de {count} proveedores a la vez.",
+ "compareResults": "Resultados — «{query}»",
+ "resultCount": "{count} resultados",
+ "noResults": "Sin resultados",
+ "sharedResultTitle": "En común con otro proveedor",
+ "sharedResult": "En común",
+ "overlapSummary": "{first} frente a {second}: {overlap} en común",
+ "compareEmptyTitle": "Selecciona proveedores e introduce una consulta para comparar",
+ "compareEmptyDescription": "Los resultados se mostrarán en paralelo con la latencia, el coste y la coincidencia de URL"
},
"cliTools": {
"title": "Herramientas CLI",
- "classifierCompatTitle": "Auto-permission classifier compatibility",
- "classifierCompatDescription": "Short-circuit Claude Code’s --permission-mode auto security classifier with a synthetic allow response so fallback routes do not fail closed. Off by default.",
- "classifierCompatCycle": "Cycle: off → auto → always",
- "classifierCompatLoadFailed": "Failed to load setting",
+ "classifierCompatTitle": "Compatibilidad con el clasificador automático de permisos",
+ "classifierCompatDescription": "Omite el clasificador de seguridad del modo --permission-mode auto de Claude Code mediante una respuesta de autorización sintética para que las rutas alternativas no se bloqueen. Desactivado de forma predeterminada.",
+ "classifierCompatCycle": "Ciclo: desactivado → automático → siempre",
+ "classifierCompatLoadFailed": "No se pudo cargar la configuración",
"classifierCompatMode": {
- "off": "Off",
- "auto": "Auto",
- "always": "Always"
+ "off": "Desactivado",
+ "auto": "Automático",
+ "always": "Siempre"
},
"ccDiscoveryInfoButton": "Cómo habilitar el descubrimiento en Claude Code",
"ccDiscoveryInfoTooltip": "Anunciar modelos no Claude bajo claude/<provider>/<model> IDs de espejo para que el descubrimiento de modelos de la puerta de enlace de Claude Code pueda listarlos. Duplica las entradas del catálogo para todos los clientes cuando está habilitado globalmente.",
@@ -2715,14 +2719,14 @@
"ccOnboardingCopied": "Copiado",
"ccOnboardingKeyPlaceholder": "'thinking).",
- "paramFiltersBlockedLabel": "Blocked parameters",
- "paramFiltersBlockedHint": "These params are stripped from outgoing requests (denylist).",
- "paramFiltersAllowedLabel": "Allowed parameters",
- "paramFiltersAllowedHint": "These params are re-added after denylist stripping (only if the client sent them).",
- "paramFiltersAutoLearnLabel": "Auto-learn from 400 errors",
- "paramFiltersAutoLearnHint": "When enabled, if the upstream returns a 400 with \"Unsupported parameter: X\", the param is automatically added to the block list and the request retried.",
- "paramFiltersSaving": "Saving…",
- "paramFiltersSaveChanges": "Save Changes",
- "paramFiltersResetToDefault": "Reset to Default",
- "paramFiltersLoadError": "Failed to load param filter config: {error}",
- "paramFiltersSaveSuccess": "Param filter config saved",
- "paramFiltersSaveError": "Failed to save param filter config: {error}",
- "paramFiltersResetSuccess": "Param filter config reset to defaults",
- "paramFiltersResetError": "Failed to reset param filter config: {error}",
- "interceptionSectionTitle": "Web Tool Interception",
- "interceptionSectionHint": "Route this provider's native web_search / web_fetch tool calls through OmniRoute's own search and fetch endpoints instead of letting the provider run them natively. Off by default — existing behavior is unchanged.",
- "interceptSearchLabel": "Intercept web_search",
- "interceptSearchHint": "Rewrite native web_search tool calls to OmniRoute's /v1/search.",
- "interceptFetchLabel": "Intercept web_fetch",
- "interceptFetchHint": "Rewrite native web_fetch tool calls to OmniRoute's /v1/web/fetch.",
- "interceptionLoadError": "Failed to load interception settings: {error}",
- "interceptionSaveError": "Failed to save interception settings: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "contextWindowOverrideLabel": "Sobrescritura de la ventana de contexto",
+ "contextWindowOverridePlaceholder": "p. ej., 131072",
+ "contextWindowOverrideHint": "Establece manualmente la ventana de contexto real de este modelo (en tokens) cuando el proveedor la indica de forma incorrecta. Tiene prioridad sobre los valores detectados automáticamente o del catálogo, y evita que el enrutamiento combinado descarte el modelo.",
+ "contextWindowOverrideInvalid": "La sobrescritura de la ventana de contexto debe ser un número entero positivo de tokens",
+ "visionCapableLabel": "Compatible con visión",
+ "visionCapableHint": "Marca manualmente este modelo como compatible con visión cuando los metadatos de detección del proveedor no indican una modalidad de entrada de imágenes (algo habitual en backends locales o autoalojados).",
+ "compatParamFiltersLabel": "Filtros de parámetros",
+ "compatBlockedParamsHint": "Parámetros bloqueados (eliminados de las solicitudes)",
+ "compatAllowedParamsHint": "Parámetros permitidos (restaurados tras la denegación)",
+ "paramFiltersSectionTitle": "Filtros de parámetros",
+ "paramFiltersSectionHint": "Elimina o restaura parámetros de la solicitud antes de enviarla a este proveedor. Se utiliza para evitar errores 400 de proveedores que rechazan determinados parámetros (p. ej., NVIDIA NIM rechaza thinking).",
+ "paramFiltersBlockedLabel": "Parámetros bloqueados",
+ "paramFiltersBlockedHint": "Estos parámetros se eliminan de las solicitudes salientes (lista de denegación).",
+ "paramFiltersAllowedLabel": "Parámetros permitidos",
+ "paramFiltersAllowedHint": "Estos parámetros se restauran después de aplicar la lista de denegación (solo si el cliente los envió).",
+ "paramFiltersAutoLearnLabel": "Aprender automáticamente de errores 400",
+ "paramFiltersAutoLearnHint": "Cuando esta opción está activada, si el proveedor devuelve un error 400 con \"Unsupported parameter: X\", el parámetro se añade automáticamente a la lista de bloqueo y se vuelve a intentar la solicitud.",
+ "paramFiltersSaving": "Guardando…",
+ "paramFiltersSaveChanges": "Guardar cambios",
+ "paramFiltersResetToDefault": "Restablecer valores predeterminados",
+ "paramFiltersLoadError": "No se pudo cargar la configuración de filtros de parámetros: {error}",
+ "paramFiltersSaveSuccess": "Configuración de filtros de parámetros guardada",
+ "paramFiltersSaveError": "No se pudo guardar la configuración de filtros de parámetros: {error}",
+ "paramFiltersResetSuccess": "La configuración de filtros de parámetros se restableció a los valores predeterminados",
+ "paramFiltersResetError": "No se pudo restablecer la configuración de filtros de parámetros: {error}",
+ "interceptionSectionTitle": "Interceptación de herramientas web",
+ "interceptionSectionHint": "Enruta las llamadas nativas de este proveedor a las herramientas web_search / web_fetch a través de los endpoints de búsqueda y obtención de OmniRoute, en lugar de permitir que el proveedor las ejecute de forma nativa. Esta opción está desactivada de forma predeterminada; el comportamiento actual no cambia.",
+ "interceptSearchLabel": "Interceptar web_search",
+ "interceptSearchHint": "Reescribe las llamadas nativas a la herramienta web_search para que usen /v1/search de OmniRoute.",
+ "interceptFetchLabel": "Interceptar web_fetch",
+ "interceptFetchHint": "Reescribe las llamadas nativas a la herramienta web_fetch para que usen /v1/web/fetch de OmniRoute.",
+ "interceptionLoadError": "No se pudo cargar la configuración de interceptación: {error}",
+ "interceptionSaveError": "No se pudo guardar la configuración de interceptación: {error}",
+ "ccAliasSectionTitle": "Exponer en Claude Code (claude/…)",
+ "ccAliasSectionHint": "Publica los modelos de este proveedor con identificadores espejo claude/<provider>/<model> para que el descubrimiento de modelos de la puerta de enlace de Claude Code pueda mostrarlos. Está desactivado de forma predeterminada; al activarlo se duplican las entradas del catálogo para todos los clientes.",
+ "ccAliasProviderLevelLabel": "Valor predeterminado del proveedor",
+ "ccAliasModelOverridesLabel": "Anulaciones por modelo",
+ "ccAliasModelOverrideAriaLabel": "Anulación para {modelId}",
+ "ccAliasStateInherit": "Heredar",
+ "ccAliasStateOn": "Activado",
+ "ccAliasStateOff": "Desactivado",
+ "ccAliasAddModelPlaceholder": "ID del modelo (p. ej., gpt-4o)",
+ "ccAliasAddModelButton": "Añadir anulación",
+ "ccAliasLoadError": "No se pudo cargar la configuración de alias de descubrimiento: {error}",
+ "ccAliasSaveError": "No se pudo guardar la configuración de alias de descubrimiento: {error}",
+ "compatUpstreamHeadersLabel": "Encabezados adicionales del servicio de origen",
+ "compatUpstreamHeadersHint": "Configuración de privilegios elevados: tiene el mismo nivel de confianza que editar las credenciales de la API del proveedor; solo deben usarla administradores de confianza. Se combina después de que OmniRoute añada la autenticación mediante la clave de API del proveedor. Si un encabezado personalizado usa el mismo nombre que uno existente (p. ej., Authorization), su valor sustituye por completo el encabezado generado automáticamente (incluido el token Bearer); el servicio de origen solo verá lo que haya escrito, no la clave de la configuración. Una configuración incorrecta puede provocar errores 401 o impedir la autenticación con el servicio de origen. Una fila por encabezado (p. ej., autenticación adicional para algunas puertas de enlace). Pase el cursor sobre el valor o selecciónelo para obtener una vista previa. Se guarda al perder el foco, al hacer clic fuera o al cerrar este panel.",
+ "compatUpstreamHeaderName": "Nombre del encabezado",
+ "compatUpstreamHeaderValue": "Valor",
+ "compatUpstreamAddRow": "Añadir encabezado",
+ "compatUpstreamRemoveRow": "Eliminar fila",
+ "compatBadgeUpstreamHeaders": "Encabezados",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
- "importFreeModelsOnlyLabel": "Import only free models",
- "importFreeModelsOnlyHint": "When enabled, only this provider's free models are imported. Paid models are skipped.",
+ "importFreeModelsOnlyLabel": "Importar solo modelos gratuitos",
+ "importFreeModelsOnlyHint": "Cuando esta opción está activada, solo se importan los modelos gratuitos de este proveedor. Los modelos de pago se omiten.",
"perModelQuotaToggle": "Alternar cuota por modelo",
"modelId": "ID del modelo",
"customModelPlaceholder": "por ej. gpt-4.5-turbo",
@@ -5588,26 +5595,26 @@
"email": "Correo electrónico",
"healthCheckMinutes": "Control de salud (min)",
"healthCheckHint": "Intervalo de actualización de token proactivo. 0 = deshabilitado.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "deselectAllModels": "Deseleccionar todo",
+ "modelsActiveCount": "{active}/{total} activos",
+ "noModelsMatch": "Ningún modelo coincide con «{filter}»",
+ "groupLabel": "Entorno",
+ "groupPlaceholder": "p. ej., eKaizen, Personal",
"failedTestConnection": "No se pudo probar la conexión",
"failed": "Fallido",
"leaveBlankKeepCurrentApiKey": "Déjelo en blanco para conservar la clave API actual.",
"editCompatibleTitle": "Editar {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "URL raíz de su API compatible con {type}. Use la configuración avanzada para definir rutas de endpoint personalizadas.",
"apiKeyForCheck": "Clave API (para verificación)",
- "testModelIdLabel": "Model ID (optional)",
- "testModelIdPlaceholder": "e.g. my-model-id",
- "testModelIdHint": "If the provider lacks a /models endpoint, enter a model ID to validate via /chat/completions instead.",
+ "testModelIdLabel": "ID del modelo (opcional)",
+ "testModelIdPlaceholder": "p. ej., my-model-id",
+ "testModelIdHint": "Si el proveedor no dispone de un endpoint /models, introduzca un ID de modelo para validarlo mediante /chat/completions.",
"compatibleProdPlaceholder": "{type} Compatible (Prod.)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "Token actualizado correctamente",
+ "tokenRefreshFailed": "Error al actualizar el token",
"cursorSessionUnchanged": "La sesión ya está activa",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Aplicar autenticación",
+ "exportCodexAuthFile": "Exportar autenticación",
"applyClaudeAuthLocal": "Aplicar autenticación",
"exportClaudeAuthFile": "Autenticación de exportación",
"importClaudeAuth": "Importar autenticación",
@@ -5686,19 +5693,19 @@
"codexAuthApplyFailed": "Failed to apply Codex auth.json locally",
"codexAuthExported": "Codex auth.json exported",
"codexAuthExportFailed": "Failed to export Codex auth.json",
- "codexCliGuideButton": "Codex CLI Guide",
- "codexCliGuideTitle": "Codex CLI Guide",
- "codexCliGuideLoading": "Loading guide...",
- "codexCliGuideLoadFailed": "Could not load the guide.",
- "codexExternalLinkButton": "External Codex link",
- "codexExternalLinkModalTitle": "External Codex link",
- "codexExternalLinkModalDescription": "Share this single-use link with the person who will authenticate the Codex account. They open it in their own browser, complete the OpenAI login, and the connection is registered here. The link expires in 15 minutes.",
- "codexExternalLinkGenerating": "Generating link...",
- "codexExternalLinkWaiting": "Waiting for browser authentication. This window refreshes automatically.",
- "codexExternalLinkCreateFailed": "Failed to generate the link.",
- "codexExternalLinkNetworkError": "Could not contact the server.",
- "codexExternalLinkConnected": "Codex account connected through the external link.",
- "codexExternalLinkExpired": "The link expired before completion.",
+ "codexCliGuideButton": "Guía de Codex CLI",
+ "codexCliGuideTitle": "Guía de Codex CLI",
+ "codexCliGuideLoading": "Cargando la guía...",
+ "codexCliGuideLoadFailed": "No se pudo cargar la guía.",
+ "codexExternalLinkButton": "Enlace externo de Codex",
+ "codexExternalLinkModalTitle": "Enlace externo de Codex",
+ "codexExternalLinkModalDescription": "Comparte este enlace de un solo uso con la persona que autenticará la cuenta de Codex. Esa persona debe abrirlo en su propio navegador, completar el inicio de sesión de OpenAI y la conexión se registrará aquí. El enlace caduca en 15 minutos.",
+ "codexExternalLinkGenerating": "Generando enlace...",
+ "codexExternalLinkWaiting": "Esperando la autenticación en el navegador. Esta ventana se actualiza automáticamente.",
+ "codexExternalLinkCreateFailed": "No se pudo generar el enlace.",
+ "codexExternalLinkNetworkError": "No se pudo contactar con el servidor.",
+ "codexExternalLinkConnected": "La cuenta de Codex se conectó mediante el enlace externo.",
+ "codexExternalLinkExpired": "El enlace caducó antes de completar el proceso.",
"importCodexAuth": "Importar autenticación",
"codexImportModalTitle": "Importar autenticación del Codex",
"codexImportTabSingle": "soltero",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} falló",
"codexImportBulkZipExtracting": "Extrayendo ZIP…",
"codexImportBulkZipError": "No se pudo extraer el ZIP",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Configuración avanzada",
+ "chatPathLabel": "Ruta del endpoint de chat",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Ruta de chat personalizada para proveedores con API no estándar (p. ej., /v4/chat/completions)",
+ "modelsPathLabel": "Ruta del endpoint de modelos",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
- "clientIdentityLabel": "Client Identity",
- "clientIdentityHint": "Optional. Adds client fingerprint headers (e.g. User-Agent) matching a known CLI for compatible gateways that expect one.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "modelsPathHint": "Ruta de modelos personalizada para la validación (p. ej., /v4/models)",
+ "clientIdentityLabel": "Identidad del cliente",
+ "clientIdentityHint": "Opcional. Añade encabezados de huella digital del cliente (p. ej., User-Agent) que coincidan con una CLI conocida para puertas de enlace compatibles que los requieran.",
+ "statusDeactivated": "Desactivada (manualmente)",
+ "statusBanned": "Bloqueada / Infracción del entorno aislado",
+ "statusCreditsExhausted": "Saldo insuficiente / Cuota agotada",
+ "showEmails": "Mostrar todos los correos electrónicos",
+ "hideEmails": "Ocultar todos los correos electrónicos",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Añade otra clave de API o pega varias claves",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "Puertas de enlace de agregadores",
"enterpriseCloud": "Empresa y nube",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "Etiqueta del formato de la API",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
+ "apiRegionChina": "Región de la API: China",
+ "apiRegionHint": "Indicación de la región de la API",
+ "apiRegionInternational": "Región de la API: Internacional",
+ "apiRegionLabel": "Etiqueta de la región de la API",
+ "apikey": "Clave de API",
"audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "audioProvidersHeading": "Encabezado de proveedores de audio",
"cloudAgentProviders": "Proveedores de agentes en la nube",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Etiqueta corta de audio",
+ "azureOpenAiBaseUrlHint": "Indicación de la URL base de Azure Open Ai",
+ "bailianBaseUrlHint": "Indicación de la URL base de Bailian",
+ "claudeWebCookieHint": "Abre claude.ai → DevTools → Application → Cookies → claude.ai y copia el valor de 'sessionKey'. También se necesitan cf_clearance, __cf_bm y _cfuvid para Cloudflare.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Indicación de la cookie web de Blackbox",
+ "blackboxWebCookiePlaceholder": "Marcador de posición de la cookie web de Blackbox",
"t3ChatWebCookieHint": "Abra t3.chat → DevTools → Aplicación → Almacenamiento local → https://t3.chat, copie 'convex-session-id'. Luego abra DevTools → Red, copie el encabezado completo de la cookie de cualquier solicitud de chat. Pegue ambos valores en los campos siguientes.",
"t3ChatWebCookiePlaceholder": "ID-sesión-convexa=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Indicación de la cookie web de Grok",
"blockClaudeExtraUsageDescription": "Cuando está activado, OmniRoute marca esta conexión de Claude como no disponible tan pronto como la API de uso informe de uso adicional en cola, para que el fallback cambie a otra conexión en lugar de continuar con la facturación adicional de pago por uso.",
"blockClaudeExtraUsageLabel": "Bloquear el uso adicional de Claude",
- "disableCoolingDescription": "Skip the transient cooldown so this connection stays eligible even after recoverable errors (terminal states like banned/expired still apply).",
- "disableCoolingLabel": "Disable cooldown for this connection",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "disableCoolingDescription": "Omite el tiempo de espera transitorio para que esta conexión siga siendo apta incluso después de errores recuperables (los estados terminales, como bloqueada o caducada, siguen siendo aplicables).",
+ "disableCoolingLabel": "Desactivar el tiempo de espera para esta conexión",
+ "bulkPasteAdded": "{count, plural, one {1 clave añadida} other {# claves añadidas}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicado omitido} other {# duplicados omitidos}}",
+ "bulkPasteHint": "Pega una clave de API por línea. Las líneas vacías se ignoran y las claves duplicadas se omiten.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Añade la cabecera beta redact-thinking para upstreams compatibles con CC que requieren flujos de razonamiento de Claude ocultos.",
+ "ccCompatibleRedactThinkingLabel": "Activar la beta de redact-thinking",
+ "ccCompatibleSummarizeThinkingDescription": "Añade `display: \"summarized\"` a las solicitudes de razonamiento compatibles con CC para que los modelos Claude compatibles transmitan deltas de razonamiento visibles.",
+ "ccCompatibleSummarizeThinkingLabel": "Activar la visualización del razonamiento resumido",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,16 +5811,16 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "Usa el nivel de servicio prioritario para las solicitudes de Codex cuando esté disponible.",
+ "codexFastServiceTierLabel": "Nivel de servicio rápido de Codex",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
+ "compatUpstreamHeaderNamePlaceholder": "Marcador de posición del nombre de la cabecera del upstream compatible",
+ "compatUpstreamHeaderValuePlaceholder": "Marcador de posición del valor de la cabecera del upstream compatible",
"compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
+ "configuredCount": "Cantidad configurada",
+ "consoleApiKeyOracleHint": "Sugerencia de la clave de API de Oracle para la consola",
+ "consoleApiKeyOracleLabel": "Etiqueta de la clave de API de Oracle para la consola",
+ "consoleApiKeyOraclePlaceholder": "Marcador de posición de la clave de API de Oracle para la consola",
"newApiUserIdLabel": "ID de usuario New-API",
"newApiUserIdPlaceholder": "p. ej. 12345",
"newApiUserIdHint": "Valor del encabezado New-Api-User de AgentRouter, usado junto con la clave de API de la consola para consultar el saldo de cuota.",
@@ -5826,182 +5833,182 @@
"featureFlagNewApiAggregatorBalanceDescription": "Habilitar la detección de balance para nodos compatibles con New-API / One-API / Sub2API agregador",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Sugerencia del agente de usuario personalizado",
+ "customUserAgentLabel": "Etiqueta del agente de usuario personalizado",
+ "databricksBaseUrlHint": "Sugerencia de la URL base de Databricks",
+ "defaultThinkingStrengthHint": "Se utiliza cuando una solicitud no especifica el esfuerzo de razonamiento.",
+ "defaultThinkingStrengthLabel": "Intensidad de razonamiento predeterminada",
+ "deleteAllExtraApiKeys": "Eliminar todo",
+ "excludedModelsHint": "Sugerencia de modelos excluidos",
+ "excludedModelsLabel": "Etiqueta de modelos excluidos",
+ "excludedModelsPlaceholder": "Marcador de posición de modelos excluidos",
+ "expirationBannerExpired": "Banner de caducidad: caducado",
+ "expirationBannerExpiredDesc": "Descripción del banner de caducidad: caducado",
+ "expirationBannerExpiringSoon": "Banner de caducidad: caduca pronto",
+ "expirationBannerExpiringSoonDesc": "Descripción del banner de caducidad: caduca pronto",
+ "extraApiKeyMasked": "Clave {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Sugerencia de claves de API adicionales",
+ "extraApiKeysLabel": "Etiqueta de claves de API adicionales",
+ "apiKeyHealthLabel": "Estado de las claves de API",
+ "apiKeyStatusActive": "Activa",
+ "apiKeyStatusWarning": "Advertencia ({count} fallos)",
+ "apiKeyStatusInvalid": "No válida",
+ "primaryKey": "Clave principal",
+ "apiKeyInvalidAlert": "{count} clave(s) de API marcada(s) como no válida(s) debido a fallos de autenticación en las conexiones: {connections}. Se omitirán durante la rotación. Haz clic para revisarlas.",
+ "apiKeyInvalidAlertTitle": "Alerta sobre el estado de las claves de API",
+ "apiKeyWarningAlert": "{count} clave(s) de API en estado de advertencia debido a una tasa elevada de fallos en las conexiones: {connections}. Revísalas para evitar problemas de rotación.",
+ "apiKeyWarningAlertTitle": "Advertencia de clave de API",
+ "googlePseInfo": "Información de Google PSE",
"antigravityProjectIdHint": "Anulación opcional para solicitudes de Antigravity Cloud Code. Déjelo en blanco para utilizar el proyecto descubierto durante Google OAuth.",
- "antigravityClientProfileLabel": "Client profile",
- "antigravityClientProfileHint": "Choose which Antigravity client identity OmniRoute presents to the API.",
+ "antigravityClientProfileLabel": "Perfil del cliente",
+ "antigravityClientProfileHint": "Elige qué identidad de cliente de Antigravity presenta OmniRoute a la API.",
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "Harness / CLI",
- "codexFastTierActiveChip": "Codex Fast tier is active",
- "tierFast": "Fast",
+ "codexFastTierActiveChip": "El nivel rápido de Codex está activo",
+ "tierFast": "Rápido",
"antigravityProjectIdLabel": "ID del proyecto de Google Cloud",
"antigravityProjectIdPlaceholder": "mi-id-proyecto-gcp",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Marcador de posición de la cookie web de Grok",
+ "herokuBaseUrlHint": "Sugerencia de la URL base de Heroku",
+ "hideEmail": "Ocultar correo electrónico",
+ "imageProviders": "Proveedores de imágenes",
"videoProviders": "Generación de vídeo",
"embeddingRerankProviders": "Incrustaciones y reclasificación",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
- "m365TierLabel": "Copilot tier",
- "m365TierHint": "Choose which Microsoft 365 Copilot surface this connection uses. Individual is the default consumer BizChat; Education and Enterprise (work) opt into their tenant surfaces.",
- "m365TierIndividualOption": "Individual (default)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
- "tierOverrideLabel": "Tier override",
- "tierOverrideAuto": "Auto (routing decides)",
- "tierOverrideFree": "Free",
- "tierOverrideCheap": "Cheap",
- "tierOverridePremium": "Premium",
- "tierOverrideHelpText": "Pin this provider to a routing tier instead of letting OmniRoute infer it from model pricing.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "imagesShortLabel": "Etiqueta corta de imágenes",
+ "llmProviders": "Proveedores de LLM",
+ "localProviderApiKeyOptionalHint": "Sugerencia de clave de API opcional del proveedor local",
+ "localProviderBaseUrlHint": "Sugerencia de la URL base del proveedor local",
+ "localProviders": "Proveedores locales",
+ "maxConcurrentWholeNumberError": "Error: el máximo de solicitudes simultáneas debe ser un número entero",
+ "m365TierLabel": "Nivel de Copilot",
+ "m365TierHint": "Elige qué interfaz de Microsoft 365 Copilot usa esta conexión. Individual es la opción predeterminada para consumidores de BizChat; Educación y Empresa (trabajo) habilitan las interfaces de sus respectivos inquilinos.",
+ "m365TierIndividualOption": "Individual (predeterminado)",
+ "m365TierEduOption": "Educación",
+ "m365TierEnterpriseOption": "Empresa / Trabajo",
+ "tierOverrideLabel": "Anulación del nivel",
+ "tierOverrideAuto": "Automático (el enrutamiento decide)",
+ "tierOverrideFree": "Gratis",
+ "tierOverrideCheap": "Económico",
+ "tierOverridePremium": "Prémium",
+ "tierOverrideHelpText": "Fija este proveedor a un nivel de enrutamiento en lugar de permitir que OmniRoute lo deduzca a partir del precio del modelo.",
+ "museSparkWebCookieHint": "Sugerencia de la cookie web de Muse Spark",
+ "museSparkWebCookiePlaceholder": "Marcador de posición de la cookie web de Muse Spark",
+ "oauth": "OAuth",
+ "openCliTools": "Abrir herramientas de CLI",
+ "openSettings": "Abrir configuración",
+ "openaiResponsesStoreDescription": "Permite que las solicitudes compatibles de Responses API conserven el estado de respuesta almacenado.",
+ "openaiResponsesStoreLabel": "Almacenamiento de OpenAI Responses",
+ "perplexitySearchSharedKeyInfo": "Información de la clave compartida de Perplexity Search",
+ "perplexityWebCookieHint": "Sugerencia de la cookie web de Perplexity",
+ "perplexityWebCookiePlaceholder": "Marcador de posición de la cookie web de Perplexity",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
- "rateLimitOverridesSection": "Rate Limit Overrides",
- "rateLimitOverridesMaxConcurrentHint": "Max concurrent requests override for this connection. Overrides the account-level cap.",
- "rateLimitOverridesMaxConcurrentLabel": "Max Concurrent (Rate Limit)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
- "rateLimitOverridesMinTimeHint": "Minimum time (ms) between requests. Overrides the default rate limiter delay.",
- "rateLimitOverridesMinTimeLabel": "Min Interval (ms)",
+ "rateLimitOverridesSection": "Anulaciones de límites de uso",
+ "rateLimitOverridesMaxConcurrentHint": "Anulación del máximo de solicitudes simultáneas para esta conexión. Anula el límite de la cuenta.",
+ "rateLimitOverridesMaxConcurrentLabel": "Máximo de solicitudes simultáneas (límite de tasa)",
+ "rateLimitOverridesMaxWaitMsHint": "Tiempo máximo (ms) que una solicitud puede esperar para obtener un turno según el límite de tasa antes de fallar. Anula la configuración global de Resiliencia únicamente para esta conexión.",
+ "rateLimitOverridesMaxWaitMsLabel": "Espera máxima en cola (ms)",
+ "rateLimitOverridesMinTimeHint": "Tiempo mínimo (ms) entre solicitudes. Anula el retraso predeterminado del limitador de tasa.",
+ "rateLimitOverridesMinTimeLabel": "Intervalo mínimo (ms)",
"rateLimitOverridesRpdHint": "Máximo de solicitudes por día para esta conexión. Anula el valor predeterminado del proveedor.",
"rateLimitOverridesRpdLabel": "RPD (Solicitudes/día)",
- "rateLimitOverridesRpmHint": "Max requests per minute for this connection. Overrides the provider default.",
- "rateLimitOverridesRpmLabel": "RPM (Requests/min)",
- "rateLimitOverridesTpdHint": "Max tokens per day for this connection. Overrides the provider default.",
- "rateLimitOverridesTpdLabel": "TPD (Tokens/day)",
- "rateLimitOverridesTpmHint": "Max tokens per minute for this connection. Overrides the provider default.",
- "rateLimitOverridesTpmLabel": "TPM (Tokens/min)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "rateLimitOverridesRpmHint": "Máximo de solicitudes por minuto para esta conexión. Anula el valor predeterminado del proveedor.",
+ "rateLimitOverridesRpmLabel": "RPM (solicitudes/min)",
+ "rateLimitOverridesTpdHint": "Máximo de tokens por día para esta conexión. Anula el valor predeterminado del proveedor.",
+ "rateLimitOverridesTpdLabel": "TPD (tokens/día)",
+ "rateLimitOverridesTpmHint": "Máximo de tokens por minuto para esta conexión. Anula el valor predeterminado del proveedor.",
+ "rateLimitOverridesTpmLabel": "TPM (tokens/min)",
+ "refreshOauthTokenTitle": "Título para actualizar el token Oauth",
+ "regionHint": "Sugerencia de región",
+ "regionLabel": "Etiqueta de región",
+ "removeThisKey": "Eliminar esta clave",
+ "routingTagsHint": "Ayuda para las etiquetas de enrutamiento",
+ "routingTagsLabel": "Etiqueta de las etiquetas de enrutamiento",
+ "routingTagsPlaceholder": "Marcador de posición de las etiquetas de enrutamiento",
+ "search": "Buscar",
+ "searchEngineIdHint": "Ayuda para el ID del motor de búsqueda",
+ "searchEngineIdLabel": "Etiqueta del ID del motor de búsqueda",
+ "searchEngineIdRequired": "El ID del motor de búsqueda es obligatorio",
+ "searchProvider": "Proveedor de búsqueda",
+ "searchProviderDesc": "Descripción del proveedor de búsqueda",
"searchProviders": "Buscar proveedores...",
- "searchByModel": "Search by model…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchByModel": "Buscar por modelo…",
+ "searchProvidersHeading": "Encabezado de proveedores de búsqueda",
+ "searxngBaseUrlHint": "Ayuda para la URL base de Searxng",
+ "searxngInfo": "Información de Searxng",
+ "sessionCookieLabel": "Etiqueta de la cookie de sesión",
+ "showEmail": "Mostrar correo electrónico",
+ "snowflakeBaseUrlHint": "Ayuda para la URL base de Snowflake",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Ayuda para el grupo de etiquetas",
+ "tagGroupLabel": "Etiqueta del grupo de etiquetas",
+ "tagGroupPlaceholder": "Marcador de posición del grupo de etiquetas",
+ "testModel": "Probar modelo",
+ "testingModel": "Probando modelo",
"modelTestQuotaTooltip": "Cuota agotada — se restablece mañana o necesita una recarga",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Insignia de token caducado",
+ "tokenExpiredTitle": "Título de token caducado",
+ "tokenExpiresSoonTitle": "Título de token próximo a caducar",
+ "tokenShort": "Token corto",
+ "totalKeysRotating": "{count, plural, one {1 clave en rotación} other {# claves en rotación}}",
+ "unhideModel": "Mostrar modelo",
+ "upstreamProxyProviders": "Proveedores de proxy ascendentes",
"validationModelIdHint": "Validation Model Id Hint",
"validationModelIdLabel": "Validation Model Id Label",
"validationModelIdPlaceholder": "Validation Model Id Placeholder",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
- "globalCodexServiceMode": "Global Codex service mode",
- "connect": "Connect",
- "manualApiKey": "Manual API key",
- "addPat": "Add PAT",
- "experimentalOauth": "Experimental OAuth",
- "importAuth": "Import auth",
- "importGrokAuth": "Import Grok Build auth",
- "zedImportTitle": "Import from Zed Keychain",
- "zedImportDescription": "Discover AI provider credentials (OpenAI, Anthropic, Google, Mistral, xAI) stored by Zed IDE in the OS keychain and import them as connections. Zed IDE must be installed on this machine.",
+ "vertexServiceAccountPlaceholder": "Pega el JSON de tu cuenta de servicio ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) o un access_token de OAuth",
+ "webCookieProviders": "Proveedores de cookies web",
+ "weeklyShort": "Resumen semanal",
+ "xiaomiMimoBaseUrlHint": "Sugerencia de URL base de Xiaomi Mimo",
+ "globalCodexServiceMode": "Modo de servicio global de Codex",
+ "connect": "Conectar",
+ "manualApiKey": "Clave de API manual",
+ "addPat": "Añadir PAT",
+ "experimentalOauth": "OAuth experimental",
+ "importAuth": "Importar autenticación",
+ "importGrokAuth": "Importar autenticación de Grok Build",
+ "zedImportTitle": "Importar desde el llavero de Zed",
+ "zedImportDescription": "Descubre las credenciales de proveedores de IA (OpenAI, Anthropic, Google, Mistral, xAI) almacenadas por Zed IDE en el llavero del sistema operativo e impórtalas como conexiones. Zed IDE debe estar instalado en este equipo.",
"zedImportButton": "Importar desde Zed",
"zedImportFailed": "Error al importar desde Zed",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Sugerencia de importación de Zed",
+ "zedImportNetworkError": "Error de red al importar desde Zed",
+ "zedImportNone": "No hay datos para importar desde Zed",
"zedImportSuccess": "Se han importado {credentials} credencial(es) de Zed para {providers} proveedor(es)",
"zedImporting": "Importando…",
- "zedNoCredentials": "No Zed credentials found in the keychain",
- "zedUnsupportedCredentials": "Found {count} keychain credential(s), but none matched supported providers",
- "zedManualTitle": "Manual Token Import",
- "zedManualDescription": "Use this when OmniRoute runs in Docker or the keychain is unavailable. Paste the API key that Zed stored under skip:<reason>).",
+ "beforeAfterTitle": "Antes → después",
+ "blockSavings": "−{percent}% de tokens en este bloque",
+ "realRender": "Una representación real de {characters, number} caracteres de documentación técnica densa, no una maqueta.",
+ "textTokens": "Texto · ≈ {tokens, number} tokens",
+ "renderedTokens": "Página renderizada · ≈ {tokens, number} tokens",
+ "renderedImageAlt": "Página densa renderizada, {width}×{height}px",
+ "gatesTitle": "Cuándo se activa",
+ "gatesDescription": "Cierre seguro: todas las condiciones deben cumplirse; de lo contrario, la solicitud pasa sin modificaciones (cada omisión se registra como skip:<reason>).",
"gates": {
"model": {
- "label": "Model",
+ "label": "Modelo",
"pass": "claude-fable-5",
"why": "Only Fable 5 reads dense pages at 100% accuracy (measured, n=30). GPT-5.5 and Gemini 2.5 Flash are blocked."
},
"transport": {
- "label": "Transport",
+ "label": "Transporte",
"pass": "direct Anthropic",
"why": "Aggregators resample images and destroy legibility — only the direct route is authoritative."
},
"format": {
- "label": "Format",
+ "label": "Formato",
"pass": "native Claude",
"why": "The body must use Claude format and must never put a system role inside messages."
},
"profitable": {
- "label": "Profitable",
- "pass": "dense enough",
- "why": "The exact 28px-patch cost gate decides per request; small or sparse text passes through untouched."
+ "label": "Rentable",
+ "pass": "suficientemente denso",
+ "why": "La condición exacta de coste por parches de 28px decide para cada solicitud; el texto breve o poco denso pasa sin modificaciones."
}
},
- "enableTitle": "Enable the engine",
+ "enableTitle": "Activar el motor",
"enableDescription": "Runs last in the stack (after RTK/Caveman cleans the text, OmniGlyph converts the remainder to images) and also runs standalone through omniglyph mode. This is a preview and remains off by default until end-to-end validation is complete.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Perfil de compresión",
+ "profileDescription": "El perfil es un límite máximo, no mínimo: un perfil más estricto no puede flexibilizarse mediante una anulación por paso. Medido en este código base: con «seguro para código» o «equilibrado», una sesión que aún no ha acumulado historial no comprime nada, porque ambos elevan el umbral mínimo de caracteres y mantienen de forma nativa el prompt del sistema, los esquemas de herramientas y los resultados de las herramientas.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresivo (predeterminado)",
+ "description": "La política medida en los recibos publicados. Convierte en imágenes el prompt del sistema, la documentación de herramientas y el historial denso."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Equilibrado",
+ "description": "Mantiene el estado activo de forma nativa y protege los últimos 8 turnos; solo contrae el historial cerrado más antiguo."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Seguro para código",
+ "description": "Mantiene de forma nativa la autoridad, los esquemas de herramientas y la salida activa de las herramientas, y protege los últimos 12 turnos. No comprime nada hasta que la sesión acumula historial."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Paso directo",
+ "description": "Enruta sin transformar. Se omite el motor y la solicitud se reenvía sin modificaciones."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
- "saved": "Saved.",
- "saveFailed": "Could not save.",
- "enableAria": "Enable the OmniGlyph engine",
+ "profileAria": "Seleccionar el perfil de compresión de OmniGlyph",
+ "saved": "Guardado.",
+ "saveFailed": "No se pudo guardar.",
+ "enableAria": "Activar el motor OmniGlyph",
"title": "OmniGlyph"
},
"embeddedServices": {
- "title": "Embedded Services",
+ "title": "Servicios integrados",
"description": "Local engines managed on demand — CLIProxyAPI, 9Router, Mux, and Bifrost. Accessible on loopback only.",
- "stateRunning": "Running",
- "stateStopped": "Stopped",
- "stateStarting": "Starting",
- "stateStopping": "Stopping",
+ "stateRunning": "En ejecución",
+ "stateStopped": "Detenido",
+ "stateStarting": "Iniciando",
+ "stateStopping": "Deteniendo",
"stateError": "Error",
- "stateNotInstalled": "Not installed",
- "stateUnknown": "Unknown",
- "port": "port {port}",
- "externalBadge": "Externally managed",
- "externalTitle": "External 9Router detected",
- "externalDescription": "OmniRoute found 9Router at {host}:{port}. Its lifecycle, logs, updates, and service key remain managed by the external installation.",
- "start": "Start",
- "starting": "Starting…",
- "stop": "Stop",
- "stopping": "Stopping…",
- "restart": "Restart",
- "restarting": "Restarting…",
- "update": "Update",
- "updating": "Updating…",
- "install": "Install",
- "installing": "Installing…",
- "autoStart": "Auto-start",
- "autoStartDescription": "Launch {name} automatically when OmniRoute starts",
- "apiKey": "API Key",
- "apiKeyDescription": "Key used by OmniRoute to authenticate with {name}",
- "keyRotated": "Key rotated — {name} restarted to apply the new key",
- "keyRotateFailed": "Failed to rotate key",
- "keyRevealFailed": "Failed to reveal key",
- "keyRevealEmpty": "Reveal failed: key not returned",
- "reveal": "Reveal",
- "revealing": "Revealing…",
- "hide": "Hide",
- "rotateKey": "Rotate key",
- "rotating": "Rotating…",
- "keyAutoHide": "Key will be hidden automatically in 30 seconds.",
- "revealTitle": "Reveal API Key",
- "revealConfirm": "Revealing the API key will be logged in the audit trail. Continue?",
- "cancel": "Cancel",
- "install9Router": "Install 9Router",
- "install9RouterDescription": "Downloads and installs 9Router via npm. Requires approximately 500 MB of disk space.",
- "version": "Version",
- "versionHint": "Enter “latest” or a specific version (for example, 1.2.3).",
- "servicePort": "Port",
- "servicePortHint": "OmniRoute and 9Router must use different ports. The default 9Router port is 20130.",
- "installationFailed": "Installation failed (HTTP {status})",
- "installationSucceeded": "9Router installed successfully. Starting up…",
- "networkInstallFailed": "Network error — could not reach the install endpoint",
- "availableModels": "Available Models",
- "modelsLoading": "Loading…",
- "modelsDiscovered": "{count, plural, one {# model discovered} other {# models discovered}}",
- "modelsLoadFailed": "Failed to load models",
- "refreshing": "Refreshing…",
- "refreshNow": "Refresh now",
- "noModels": "No models found. Select “Refresh now” to sync from the running service.",
- "unavailable": "Unavailable",
- "pageOf": "Page {page} of {total}",
- "previous": "Previous",
- "next": "Next",
- "providerExposure": "Provider Exposure",
- "providerExposureDescription": "Expose 9Router models as a routing target under the --permission-mode auto در Claude Code با یک پاسخ allow ساختگی تا مسیرهای fallback مسدود نشوند. بهطور پیشفرض خاموش است.",
"classifierCompatCycle": "چرخه: خاموش → خودکار → همیشه",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "بازتولید ~/.codex/*.config.toml پس از کشف مدل.",
"claudeProfiles": "پروفایلهای Claude Code",
"claudeProfilesDescription": "بازتولید هر ~/.claude/profiles/…/settings.json پس از کشف مدل.",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "هیچ ارائهدهنده فعالی وجود ندارد",
+ "noActiveProvidersDesc": "لطفاً ابتدا ارائهدهندگان را اضافه و متصل کنید تا ابزارهای CLI را پیکربندی کنید.",
+ "mapModels": "نگاشت مدلها",
+ "testConnection": "آزمایش اتصال",
+ "connectionStatus": "وضعیت اتصال",
+ "configureEndpoint": "پیکربندی نقطه پایانی",
+ "instructions": "دستورالعملها",
+ "modelMapping": "نگاشت مدل",
"reasoningEffort": "تلاش استدلال برای {model}",
"effortNone": "هیچ",
"effortLow": "کم",
@@ -2743,62 +2747,62 @@
"modelAliases": "نامهای مستعار مدل",
"addModel": "افزودن مدل",
"routeModelPlaceholder": "مسیریابی {model} به...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "نشانی پایه",
+ "apiKey": "کلید API",
+ "configured": "پیکربندیشده",
+ "notConfigured": "پیکربندینشده",
+ "notInstalled": "نصبنشده",
+ "custom": "سفارشی",
+ "unknown": "ناشناخته",
+ "lastSavedAt": "آخرین ذخیرهسازی: {date}",
+ "never": "هرگز",
+ "justNow": "همین حالا",
+ "minutesAgoShort": "{count} دقیقه پیش",
+ "hoursAgoShort": "{count} ساعت پیش",
+ "daysAgoShort": "{count} روز پیش",
+ "monthsAgoShort": "{count} ماه پیش",
+ "yearsAgoShort": "{count} سال پیش",
+ "runtimeCheckFailed": "بررسی محیط اجرا ناموفق بود",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "پیکربندی با موفقیت ذخیره شد.",
+ "failedToSave": "ذخیره پیکربندی ناموفق بود.",
+ "noApiKeysCreateOne": "هیچ کلید API وجود ندارد — یکی در صفحه کلیدها ایجاد کنید",
+ "defaultOmnirouteKey": "sk_omniroute (پیشفرض)",
+ "selectModel": "انتخاب مدل",
+ "selectModelForAlias": "انتخاب مدل برای {alias}",
+ "selectModelForTool": "انتخاب مدل برای {tool}",
+ "select": "انتخاب",
+ "clear": "پاک کردن",
+ "comingSoon": "بهزودی",
+ "checkingRuntime": "در حال بررسی وضعیت محیط اجرا...",
+ "guideOnlyIntegration": "یکپارچهسازی فقط از طریق راهنما (بدون نیاز به محیط اجرای محلی)",
+ "cliRuntimeDetected": "محیط اجرای CLI شناسایی شد و آماده است",
+ "cliFoundNotRunnable": "CLI پیدا شد، اما قابل اجرا نیست{reason}",
+ "cliRuntimeNotDetected": "محیط اجرای CLI شناسایی نشد",
+ "binary": "فایل اجرایی",
+ "configPath": "مسیر پیکربندی",
+ "configPathShort": "پیکربندی",
+ "failedCheckRuntimeStatus": "بررسی وضعیت محیط اجرا ناموفق بود.",
+ "copy": "کپی",
+ "copied": "کپی شد",
+ "copyConfig": "کپی پیکربندی",
+ "saveConfig": "ذخیره پیکربندی",
+ "selectionSaved": "انتخاب ذخیره شد",
+ "guide": "راهنما",
+ "detected": "شناساییشده",
+ "notReady": "آماده نیست",
+ "active": "فعال",
+ "inactive": "غیرفعال",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM با موفقیت راهاندازی شد!",
+ "mitmStopped": "MITM با موفقیت متوقف شد!",
+ "failedStart": "راهاندازی MITM ناموفق بود",
+ "failedStop": "توقف MITM ناموفق بود",
+ "saveMappings": "ذخیره نگاشتها",
+ "mappingsSaved": "نگاشتها ذخیره شدند!",
+ "failedSaveMappings": "ذخیره نگاشتها ناموفق بود",
"reasoningEffortDefault": "پیشفرض",
"reasoningEffortHint": "پیشفرض، تلاش استدلال ارسالشده توسط عامل را حفظ میکند",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "زیاد",
"xhigh": "فوقالعاده زیاد"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "نحوه کار:",
+ "antigravityHowWorksDesc": "Antigravity درخواستها را به نقطه پایانی Google ارسال میکند. MITM آنها را رهگیری کرده و به OmniRoute هدایت میکند.",
+ "antigravityStep1": "۱. برای هدایت درخواستها از طریق OmniRoute، MITM را راهاندازی کنید.",
+ "antigravityStep2Prefix": "۲. اضافه کنید",
+ "antigravityStep2Suffix": "را با مقدار 127.0.0.1 به فایل hosts خود.",
+ "antigravityStep3": "۳. Antigravity را باز کنید تا درخواستها از طریق پروکسی ارسال شوند.",
+ "mitmHowWorksDesc": "{toolName} درخواستها را به نقطه پایانی ارائهدهنده خود ارسال میکند. MITM آنها را رهگیری کرده و به OmniRoute هدایت میکند.",
+ "mitmStep1": "۱. برای هدایت درخواستها از طریق OmniRoute، MITM را راهاندازی کنید.",
+ "mitmStep2Prefix": "۲. اضافه کنید",
+ "mitmStep2Suffix": "را با مقدار 127.0.0.1 به فایل hosts خود.",
+ "mitmStep3": "۳. {toolName} را باز کنید تا درخواستها از طریق پروکسی ارسال شوند.",
+ "sudoPasswordRequiredTitle": "رمز عبور Sudo لازم است",
+ "sudoPasswordHint": "برای تغییر فایل hosts و تنظیمات پروکسی سیستم، رمز عبور مدیر لازم است.",
+ "enterSudoPassword": "رمز عبور sudo را وارد کنید",
+ "sudoPasswordRequiredError": "رمز عبور Sudo لازم است.",
+ "cancel": "لغو",
+ "confirm": "تأیید",
+ "settingsApplied": "تنظیمات با موفقیت اعمال شدند!",
+ "failedApplySettings": "اعمال تنظیمات ناموفق بود",
+ "settingsReset": "تنظیمات با موفقیت بازنشانی شدند!",
+ "failedResetSettings": "بازنشانی تنظیمات ناموفق بود",
+ "backupRestored": "نسخه پشتیبان بازیابی شد!",
+ "failedRestore": "بازیابی ناموفق بود",
+ "checkingCli": "در حال بررسی CLI مربوط به {tool}...",
+ "cliNotRunnable": "CLI مربوط به {tool} نصب شده است، اما قابل اجرا نیست",
+ "cliNotInstalled": "CLI مربوط به {tool} نصب نشده است",
+ "cliNotDetected": "CLI مربوط به {tool} شناسایی نشد",
+ "cliDetectedReady": "CLI مربوط به {tool} شناسایی شده و آماده است",
+ "cliFoundFailedHealthcheck": "CLI مربوط به {tool} پیدا شد، اما بررسی سلامت زمان اجرا ناموفق بود{reason}.",
+ "installCliPrompt": "برای استفاده از این قابلیت، لطفاً CLI مربوط به {tool} را نصب کنید.",
+ "installCodexPrompt": "برای استفاده از قابلیت اعمال خودکار، لطفاً Codex CLI را نصب کنید.",
+ "hide": "پنهان کردن",
+ "howToInstall": "نحوه نصب",
+ "installationGuide": "راهنمای نصب",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "پس از نصب، اجرا کنید",
+ "toVerify": "برای تأیید.",
+ "current": "فعلی",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "بازنشانی به پیشفرض",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "اعمال",
+ "reset": "بازنشانی",
+ "manualConfig": "پیکربندی دستی",
+ "backups": "نسخههای پشتیبان",
+ "configBackups": "نسخههای پشتیبان پیکربندی",
+ "noBackupsYet": "هنوز نسخه پشتیبانی وجود ندارد. نسخههای پشتیبان پیش از هر بار اعمال یا بازنشانی، بهطور خودکار ایجاد میشوند.",
+ "restore": "بازیابی",
+ "backupRestoredReloading": "نسخه پشتیبان بازیابی شد! در حال بارگیری مجدد وضعیت...",
+ "failedRestoreBackup": "بازیابی نسخه پشتیبان ناموفق بود",
+ "applied": "اعمال شد!",
+ "failed": "ناموفق",
+ "resetDone": "بازنشانی شد!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute بهعنوان ارائهدهنده سازگار با OpenAI پیکربندی شده است",
+ "provider": "ارائهدهنده",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "ارائهدهندگان",
+ "auth": "احراز هویت",
+ "noApiKeysAvailable": "هیچ کلید API در دسترس نیست",
+ "usingDefaultOmniroute": "در حال استفاده از پیشفرض: sk_omniroute",
+ "updateConfig": "بهروزرسانی پیکربندی",
+ "applyConfig": "اعمال پیکربندی",
+ "noBackupsAvailable": "هیچ نسخه پشتیبانی در دسترس نیست.",
+ "profileSaved": "نمایه «{name}» ذخیره شد!",
+ "failedSaveProfile": "ذخیره نمایه ناموفق بود",
+ "profileActivated": "نمایه فعال شد!",
+ "failedActivateProfile": "فعالسازی نمایه ناموفق بود",
+ "profiles": "نمایهها",
+ "savedProfiles": "نمایههای ذخیرهشده",
+ "noProfilesYet": "هنوز نمایهای ذخیره نشده است. پیکربندی فعلی را در زیر بهعنوان یک نمایه ذخیره کنید.",
+ "activate": "فعالسازی",
+ "deleteProfile": "حذف نمایه",
+ "profileNamePlaceholder": "نام نمایه (مثلاً حساب شخصی)",
+ "saveCurrent": "ذخیره پیکربندی فعلی",
+ "codexAuthNotePrefix": "Codex استفاده میکند از",
+ "codexAuthNoteMiddle": "با",
+ "codexAuthNoteSuffix": "برای پیکربندی خودکار روی «اعمال» کلیک کنید.",
+ "claudeManualConfiguration": "Claude CLI - پیکربندی دستی",
+ "codexManualConfiguration": "Codex CLI - پیکربندی دستی",
+ "droidManualConfiguration": "Factory Droid - پیکربندی دستی",
+ "openClawManualConfiguration": "Open Claw - پیکربندی دستی",
+ "clineManualConfiguration": "پیکربندی دستی Cline",
+ "kiloManualConfiguration": "پیکربندی دستی Kilo Code",
+ "whenToUseLabel": "زمان استفاده",
+ "openToolDocs": "باز کردن مستندات ابزار",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "زمانی استفاده کنید که به گردشکارهای قدرتمند برنامهریزی و بازآراییهای طولانیِ چندفایلی با Claude Code نیاز دارید.",
+ "codex": "زمانی استفاده کنید که تیم شما بر گردشکارهای OpenAI Codex CLI و احراز هویت مبتنی بر پروفایل استاندارد شده است.",
+ "droid": "زمانی استفاده کنید که به یک عامل سبکوزن ترمینالی با تمرکز بر کدنویسی سریع و چرخههای اجرای فرمان نیاز دارید.",
+ "openclaw": "زمانی استفاده کنید که یک عامل کدنویسی به سبک Open Claw میخواهید، اما مسیریابی آن از طریق خطمشیهای OmniRoute انجام شود.",
+ "cline": "زمانی استفاده کنید که عاملهای کدنویسی را درون ویرایشگرها پیکربندی میکنید و راهاندازی هدایتشده با مدلهای OmniRoute میخواهید.",
+ "kilo": "زمانی استفاده کنید که گردشکار شما به فرمانهای Kilo Code و ویرایشهای تکرارشونده سریع وابسته است.",
+ "cursor": "زمانی استفاده کنید که در Cursor کدنویسی میکنید و از طریق OmniRoute به مدلهای سفارشی سازگار با OpenAI نیاز دارید.",
+ "continue": "زمانی استفاده کنید که Continue را در محیطهای توسعه یکپارچه اجرا میکنید و به پیکربندی قابلانتقال ارائهدهنده مبتنی بر JSON نیاز دارید.",
+ "opencode": "زمانی استفاده کنید که اجرای عامل بهصورت بومی در ترمینال و خودکارسازی اسکریپتی از طریق OpenCode را ترجیح میدهید.",
+ "kiro": "زمانی استفاده کنید که Kiro را یکپارچه میکنید و میخواهید مسیریابی مدل را بهصورت متمرکز از OmniRoute کنترل کنید.",
+ "windsurf": "زمانی استفاده کنید که یک محیط توسعه یکپارچه با رویکرد اولویتدهی به هوش مصنوعی میخواهید که مدلهای Codeium/Windsurf آن از طریق OmniRoute مسیریابی شوند.",
+ "antigravity": "زمانی استفاده کنید که ترافیک Antigravity/Kiro باید از طریق MITM رهگیری و به OmniRoute مسیریابی شود.",
+ "copilot": "زمانی استفاده کنید که تجربه کاربری به سبک گفتوگوی Copilot میخواهید و همزمان کلیدها و قوانین مسیریابی OmniRoute را اعمال میکنید.",
+ "amp": "زمانی استفاده کنید که گردشکارهای کوتاهنویسی Amp را میخواهید، اما همچنان به اعمال نامهای مستعار و قوانین مسیریابی OmniRoute نیاز دارید.",
+ "hermes": "زمانی استفاده کنید که برای کارهای سریع به یک دستیار هوش مصنوعی سبکوزن و بومی ترمینال نیاز دارید.",
"hermes-agent": "زمانی استفاده کنید که به Hermes Agent (از Nousresearch) با مدلهای پیشفرض، تفویض، بینایی و کمکی مسیریابیشده از طریق OmniRoute نیاز دارید.",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "برای پیادهسازی ابزارهای سفارشی یا پیکربندیهای عمومی سازگار با OpenAI استفاده کنید."
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "محیط توسعه یکپارچه Google Antigravity با MITM",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "عامل کدنویسی TUI برای xAI Grok Build با پشتیبانی از ارائهدهنده سفارشی",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "دستیار هوش مصنوعی Factory Droid",
+ "openclaw": "دستیار هوش مصنوعی Open Claw",
+ "cline": "رابط خط فرمان دستیار کدنویسی هوش مصنوعی Cline",
+ "kilo": "رابط خط فرمان دستیار هوش مصنوعی Kilo Code",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "دستیار هوش مصنوعی Continue",
+ "opencode": "عامل کدنویسی هوش مصنوعی OpenCode (ترمینال)",
+ "kiro": "Amazon Kiro — محیط توسعه یکپارچه مبتنی بر هوش مصنوعی",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "رابط خط فرمان دستیار کدنویسی Sourcegraph Amp",
+ "hermes": "دستیار ترمینالی هوش مصنوعی Hermes",
"hermes-agent": "Hermes Agent (از Nousresearch) - هوش مصنوعی پیشرفته ترمینال با پشتیبانی از چند مدل (تفویض، بینایی، فشردهسازی و غیره)",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "مولد پیکربندی برای رابط خط فرمان یا SDK عمومی سازگار با OpenAI",
"aider": "CLI برنامهنویسی دونفره هوش مصنوعی Aider با URL پایه سازگار با OpenAI",
"forge": "CLI عامل کدنویسی ForgeCode با ارائهدهنده سفارشی",
"cursor-cli": "CLI عامل Cursor در حالت عامل بدون رابط (headless)",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI عامل کدنویسی خودکار Open Interpreter",
"omp": "عامل کدنویسی ترمینال Oh My Pi",
"letta": "عامل Letta CLI با حافظه پایدار و استفاده از ابزار",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — چارچوب کدنویسی خودبهبوددهنده RLM با پشتیبانی از ارائهدهنده سازگار با OpenAI",
"warp": "ترمینال هوش مصنوعی Warp با پشتیبانی از ارائهدهنده سفارشی",
"agent-deck": "ارکستراتور چندعاملی Agent Deck",
"5dive": "5dive — ناوگان خودمیزبان از عاملهای کدنویسی؛ یک پروفایل احراز هویت همه را به OmniRoute هدایت میکند"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "برای استفاده از این قابلیت، حساب Cursor Pro لازم است.",
+ "1": "Cursor درخواستها را از طریق سرور خودش مسیریابی میکند؛ بنابراین نقطه پایانی محلی پشتیبانی نمیشود. لطفاً Cloud Endpoint را در Settings فعال کنید."
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "باز کردن Settings",
+ "desc": "به Settings -> Models بروید"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI API را فعال کنید",
+ "desc": "گزینه «OpenAI API key» را فعال کنید"
},
"3": {
- "title": "Base URL"
+ "title": "نشانی پایه"
},
"4": {
- "title": "API Key"
+ "title": "کلید API"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "افزودن مدل سفارشی",
+ "desc": "روی «View All Model» ← «Add Custom Model» کلیک کنید"
},
"6": {
- "title": "Select Model"
+ "title": "انتخاب مدل"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "باز کردن پیکربندی",
+ "desc": "باز کردن فایل پیکربندی Continue"
},
"2": {
- "title": "API Key"
+ "title": "کلید API"
},
"3": {
- "title": "Select Model"
+ "title": "انتخاب مدل"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "افزودن پیکربندی مدل",
+ "desc": "پیکربندی زیر را به آرایه models خود اضافه کنید:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue از فایل پیکربندی JSON استفاده میکند."
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "نصب OpenCode",
+ "desc": "نصب از طریق npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "کلید API"
},
"3": {
- "title": "Set Base URL",
+ "title": "تنظیم نشانی پایه",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "انتخاب مدل"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "استفاده از گونه Thinking",
+ "desc": "برای مدلهای Thinking، با --variant high/low/max اجرا کنید (فرمان نمونه در زیر آمده است)."
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode به پیکربندی کلید API نیاز دارد.",
+ "1": "نشانی پایه را روی نقطه پایانی OmniRoute خود تنظیم کنید."
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "باز کردن تنظیمات Kiro",
+ "desc": "به Settings ← AI Provider بروید"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "نشانی پایه",
+ "desc": "نشانی URL نقطه پایانی OmniRoute خود را جایگذاری کنید"
},
"3": {
- "title": "API Key"
+ "title": "کلید API"
},
"4": {
- "title": "Select Model"
+ "title": "انتخاب مدل"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro به حساب Amazon نیاز دارد."
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "باز کردن تنظیمات هوش مصنوعی",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "افزودن ارائهدهنده سفارشی",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "نشانی پایه",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "کلید API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "انتخاب مدل",
+ "desc": "یک مدل را از فهرست کشویی انتخاب کنید"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "پیکربندیشده بهصورت خودکار",
+ "toolCategoriesDesc": "دستیارهای کدنویسی هوش مصنوعی را برای مسیریابی از طریق OmniRoute پیکربندی کنید",
+ "allToolsTab": "همه ابزارها",
+ "guidedClientsTab": "کلاینتهای هدایتشده",
+ "mitmClientsTab": "کلاینتهای MITM",
"customCliTab": "CLI سفارشی",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "دستهبندی ابزارها",
+ "visibleToolsCount": "{count} ابزار در دسترس است",
"customCliBuilderTitle": "سازنده CLI سازگار با OpenAI",
"customCliBuilderDescription": "برای هر CLI یا SDK که URL پایه، کلید API و شناسه مدل سازگار با OpenAI را میپذیرد، بستههای env و JSON تولید کنید.",
"customCliNoModels": "حداقل یک ارائه دهنده را برای پر کردن انتخابگرهای مدل وصل کنید.",
@@ -3155,7 +3159,7 @@
"hermesRolesWillUpdate": "{count, plural, one {# نقش بهروزرسانی خواهد شد} other {# نقش بهروزرسانی خواهند شد}}",
"hermesPreviewPath": "پیشنمایش — در ~/.hermes/config.yaml نوشته خواهد شد",
"hermesSaveDescription": "مدل انتخابشده برای هر نقش را ذخیره میکند در",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "مولد پیکربندی GitHub Copilot",
"copilotGeneratorDescriptionPrefix": "تولید میکند",
"copilotGeneratorDescriptionSuffix": "بلاک برای VS Code GitHub Copilot با استفاده از الگوی ارائهدهنده Azure. مدلهای مورد نظر خود را انتخاب کنید، سپس JSON را در فایل پیکربندی خود کپی کنید.",
"copilotCompatibilityWarning": "این پیکربندی از راهکار جایگزین ارائهدهنده Azure برای فهرستهای مدل سفارشی استفاده میکند. با omniglyph اجرا میشود. این یک پیشنمایش است و تا زمان تکمیل اعتبارسنجی سرتاسری بهطور پیشفرض خاموش میماند.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "پروفایل فشردهسازی",
+ "profileDescription": "پروفایل یک سقف است، نه کف: پروفایل سختگیرانهتر را نمیتوان با لغو تنظیم در هر مرحله دوباره باز کرد. بر اساس اندازهگیری روی این پایگاه کد: با حالت امن برای کدنویسی یا متعادل، نشستی که هنوز سابقهای انباشته نکرده است چیزی را فشرده نمیکند، زیرا هر دو آستانه حداقل تعداد نویسهها را افزایش میدهند و پرامپت سیستم، طرحوارههای ابزار و نتایج ابزار را بهصورت بومی نگه میدارند.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "تهاجمی (پیشفرض)",
+ "description": "سیاستی که رسیدهای منتشرشده اندازهگیری کردهاند. پرامپت سیستم، مستندات ابزار و سابقه متراکم را به تصویر تبدیل میکند."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "متعادل",
+ "description": "وضعیت زنده را بهصورت بومی نگه میدارد و از ۸ نوبت آخر محافظت میکند؛ فقط سابقه بستهشده قدیمیتر را فشرده میکند."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "امن برای کدنویسی",
+ "description": "اختیارات، طرحوارههای ابزار و خروجی زنده ابزار را بهصورت بومی نگه میدارد و از ۱۲ نوبت آخر محافظت میکند. تا زمانی که نشست سابقهای انباشته نکند، چیزی را فشرده نمیکند."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "عبور بدون تغییر",
+ "description": "بدون تبدیل مسیریابی میکند. موتور نادیده گرفته میشود و درخواست بدون هیچ تغییری ارسال میشود."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "پروفایل فشردهسازی OmniGlyph را انتخاب کنید",
"saved": "ذخیره شد.",
"saveFailed": "ذخیره نشد.",
"enableAria": "فعالسازی موتور OmniGlyph",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "فشردهسازی پیام مبتنی بر قواعد، بستههای زبانی، تحلیلها و کنترلهای حالت خروجی.",
"advancedConfig": "پیکربندی پیشرفته",
"advancedConfigDesc": "رفتار فشرده سازی دقیق",
"aggressiveSettings": "تنظیمات تهاجمی",
"aggressiveSettingsDesc": "حداکثر فشرده سازی با معاوضه های بالقوه کیفیت",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "درخواستها",
+ "tokensSaved": "توکنهای صرفهجوییشده",
+ "savingsPercent": "درصد صرفهجویی",
+ "avgLatency": "میانگین تأخیر",
+ "languagePacks": "بستههای زبانی",
+ "languagePacksDesc": "قواعد فشردهسازی را برای زبانهای مشخص فعال کنید.",
"labelAutoTrigger": "فشرده سازی خودکار زمانی که زمینه بیش از حد است",
"labelCompressionRate": "قدرت فشار",
"labelMaxTokens": "نشانه های هدف در هر پیام",
"labelMinLength": "حداقل طول پیام",
"labelMinSavings": "حداقل توکن برای ذخیره",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "فعال",
+ "autoDetect": "تشخیص خودکار زبان",
+ "rulesCount": "{count} قانون",
"inputCompressionTitle": "فشردهسازی ورودی",
"inputCompressionDesc": "بازنویسی تاریخچه گفتگو با عبارات کوتاهتر. توکنهای ورودی را تا حدود ۵۰٪ کاهش میدهد.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "تحلیل فشردهسازی",
+ "noAnalytics": "هنوز دادهای برای تحلیل فشردهسازی وجود ندارد.",
"masterDisabledWarning": "کلید اصلی Token Saver خاموش است — این تنظیمات تا زمانی که آن را از تنظیمات فشردهسازی روشن نکنید یا در اینجا تغییر ندهید، روی درخواستها تأثیری نخواهند داشت.",
"outputMode": "حالت خروجی",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "حالت خروجی",
"quickSettings": "تنظیمات سریع",
"quickSettingsDesc": "تنظیمات اولیه فشرده سازی برای شروع",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "عبور خودکار از Clarity",
+ "bypassConditions": "شرایط عبور",
"bypassConditionsList": "امنیت، برگشت ناپذیر، شفاف سازی، حساس به نظم",
"simpleMode": "ساده",
"advancedMode": "پیشرفته",
@@ -8940,56 +8951,56 @@
"ultraSettings": "تنظیمات فوق العاده",
"ultraSettingsDesc": "فشرده سازی معنایی مبتنی بر SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "مختصر پاسخ دهید. اصطلاحات فنی، کد، خطاها، URLها و شناسهها را حفظ کنید.",
+ "full": "کوتاه و فشرده پاسخ دهید. تمام محتوای فنی را حفظ کنید.",
+ "ultra": "بسیار کوتاه و با اختصارات فنی رایج پاسخ دهید. نمادها را دقیقاً حفظ کنید."
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "مترجم",
+ "metaTitle": "محیط آزمایشی مترجم | OmniRoute",
+ "metaDescription": "اشکالزدایی، آزمایش و بصریسازی ترجمه قالبهای API بین ارائهدهندگان",
+ "playgroundTitle": "محیط آزمایشی مترجم",
+ "playground": "محیط آزمایشی",
+ "realtime": "فعالیت ترجمه بلادرنگ",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "میز آزمایش",
+ "liveMonitor": "پایش زنده",
+ "modeDescriptionPlayground": "بدنه هر درخواست API را جایگذاری کنید و ببینید OmniRoute چگونه آن را بین قالبهای ارائهدهندگان ترجمه میکند (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
+ "modeDescriptionChatTester": "درخواستهای واقعی چت را از طریق OmniRoute ارسال کنید و کل رفتوبرگشت را بررسی کنید: ورودی، درخواست ترجمهشده، پاسخ ارائهدهنده و خروجی ترجمهشده.",
+ "modeDescriptionTestBench": "سناریوهای ازپیشتعریفشده را اجرا و سازگاری بین ارائهدهندگان و مدلها را مقایسه کنید.",
+ "modeDescriptionLiveMonitor": "رویدادهای ترجمه را همزمان با عبور درخواستها از OmniRoute، بهصورت بلادرنگ مشاهده کنید.",
+ "modeDescriptionFallback": "نحوه ترجمه درخواستهای API بین ارائهدهندگان توسط OmniRoute را اشکالزدایی، آزمایش و بصریسازی کنید.",
+ "recentTranslations": "ترجمههای اخیر",
+ "noTranslations": "هنوز ترجمهای وجود ندارد",
+ "source": "مبدأ",
+ "target": "مقصد",
+ "time": "زمان",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "تأخیر",
+ "totalTranslations": "مجموع ترجمهها",
+ "successful": "موفق",
+ "errors": "خطاها",
+ "avgLatency": "میانگین تأخیر",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "زنده — بهروزرسانی خودکار",
+ "paused": "متوقفشده",
+ "eventsAppearHint": "هنگام عبور درخواستها از OmniRoute، رویدادهای ترجمه در اینجا نمایش داده میشوند. برای ایجاد رویدادها از هر یک از روشهای زیر استفاده کنید:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "فراخوانیهای API خارجی",
+ "ideCliIntegrations": "یکپارچهسازیهای IDE/CLI",
+ "inMemoryNote": "توجه: رویدادها در حافظه ذخیره میشوند و با راهاندازی مجدد سرور بازنشانی خواهند شد.",
"ok": "OK",
- "errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "errorShort": "خطا",
+ "formatConverter": "مبدل قالب",
+ "formatConverterDescription": "بدنه یک درخواست JSON را جایگذاری یا تایپ کنید. مترجم، قالب مبدأ را بهطور خودکار تشخیص میدهد و آن را به قالب مقصد تبدیل میکند. از این ابزار برای اشکالزدایی نحوه ترجمه درخواستها بین قالبها توسط OmniRoute استفاده کنید (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (متوسط) → {target}",
"translationPathDirect": "{source} → {target} (مترجم مستقیم)",
"translationPathPassthrough": "همان قالب - بدون نیاز به ترجمه",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "واسط OpenAI",
"autoFeaturesTitle": "کاری که OmniRoute به صورت خودکار انجام می دهد",
"autoFeaturesCount": "8 ویژگی",
"featureReasoningCache": "کش استدلال",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "برخی از جفتهای قالب (Claude→Gemini) مترجمهای مستقیمی دارند که هاب OpenAI را دور میزنند و خروجی دقیقتری تولید میکنند.",
"featureImageMapping": "نقشه برداری اندازه تصویر",
"featureImageMappingDesc": "قراردادهای ابعاد تصویر را بین قالبهای API ترجمه میکند (به عنوان مثال، سطوح جزئیات OpenAI → ابعاد Gemini).",
- "input": "Input",
- "output": "Output",
+ "input": "ورودی",
+ "output": "خروجی",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "جابهجایی قالبها",
+ "translateAction": "ترجمه",
+ "clear": "پاک کردن",
+ "inputPlaceholder": "بدنه یک درخواست را اینجا جایگذاری کنید یا یکی از الگوهای زیر را انتخاب کنید...",
+ "exampleTemplates": "الگوهای نمونه",
+ "exampleTemplatesHint": "— برای بارگذاری کلیک کنید",
+ "templateLoadHint": "الگو، درخواست را با قالب {format} بارگذاری میکند. برای بارگذاری با قالبی متفاوت، قالب مبدأ را تغییر دهید.",
+ "compatibilityTester": "آزمایشگر سازگاری",
+ "compatibilityReport": "گزارش سازگاری",
+ "testBenchDescription": "سناریوهای ازپیشتعریفشده (گفتوگوی ساده، فراخوانی ابزار و غیره) را اجرا کنید تا ترجمه و سازگاری ارائهدهنده را بررسی کنید. یک قالب مبدأ و ارائهدهنده مقصد انتخاب کنید، سپس همه آزمایشها را اجرا کنید تا درصد سازگاری را ببینید. از این ابزار برای یافتن قابلیتهایی که بین ارائهدهندگان کار میکنند استفاده کنید.",
+ "targetProvider": "ارائهدهنده مقصد",
+ "runAllTests": "اجرای همه آزمایشها",
+ "runTest": "اجرای آزمایش",
+ "reRun": "اجرای مجدد",
+ "running": "در حال اجرا...",
+ "passed": "موفق",
+ "failed": "ناموفق",
+ "passedIconLabel": "✅ موفق",
+ "chunks": "قطعهها",
+ "scenarioSimpleChat": "گفتوگوی ساده",
+ "scenarioToolCalling": "فراخوانی ابزار",
+ "scenarioMultiTurn": "چندنوبتی",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "پرامپت سیستمی",
+ "scenarioStreaming": "جریانسازی",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "گفتوگوی ساده",
+ "tool-calling": "فراخوانی ابزار",
+ "multi-turn": "چندنوبتی",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "پرامپت سیستمی",
+ "streaming": "جریانسازی",
"vision": "چشم انداز",
"schema-coercion": "طرحواره اجبار"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "پیام متنی ساده",
+ "tool-calling": "فراخوانی تابع/ابزار",
+ "multi-turn": "گفتوگو با تاریخچه",
+ "thinking": "تفکر / استدلال گسترده",
+ "system-prompt": "دستورالعملهای پیچیده سیستمی",
+ "streaming": "درخواست استریم SSE",
"vision": "درخواست چندوجهی با ورودی تصویر",
"schema-coercion": "اجرای طرحواره خروجی ساختاریافته / JSON"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "شما یک دستیار مفید هستید.",
+ "userGreeting": "سلام! امروز چطور هستید؟"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "آبوهوای São Paulo چگونه است؟",
+ "toolDescription": "دریافت آبوهوای فعلی یک مکان",
+ "cityNameDescription": "نام شهر"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "شما یک دستیار برنامهنویسی هستید.",
+ "userInitial": "تابعی برای مرتبسازی یک آرایه در Python بنویسید.",
+ "assistantExample": "این هم یک تابع مرتبسازی ساده: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "حالا آن را طوری تغییر دهید که بهصورت نزولی مرتب کند."
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "مجموع ۱۰۰ عدد اول نخست چقدر است؟"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "شما یک مهندس ارشد نرمافزار با تخصص در سیستمهای توزیعشده هستید. با رعایت بهترین شیوههای صنعت، به پرسشها مختصر پاسخ دهید. هرجا مرتبط بود، همیشه نمونهکد ارائه کنید. پاسخهای خود را با استفاده از markdown قالببندی کنید.",
+ "question": "چگونه الگوی قطعکننده مدار را پیادهسازی کنم؟"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "داستان کوتاهی درباره رباتی بگویید که نقاشیکردن را یاد میگیرد."
},
"vision": {
"system": "شما دستیار هستید که تصاویر را دقیقاً توصیف می کند.",
@@ -9093,12 +9104,12 @@
"cityDescription": "شهر مورد پرس و جو، به عنوان مثال. \"توکیو\" یا \"نیویورک\"."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "سازگار با OpenAI",
+ "anthropicCompatibleLabel": "سازگار با Anthropic",
+ "noTemplateForFormat": "هیچ قالبی برای این فرمت وجود ندارد",
+ "translationFailed": "ترجمه ناموفق بود: {error}",
+ "pipelineDebugger": "اشکالزدای پایپلاین",
+ "translationPipeline": "پایپلاین ترجمه",
"loading": "در حال بارگذاری…",
"compressionOriginal": "اصلی",
"compressionCompressed": "فشردهشده",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "مراحل پایپلاین",
"copyIntermediateJson": "کپی JSON میانی",
"copyOutputJson": "کپی JSON خروجی",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "نمایش بصری پایپلاین",
+ "pipelineVisualizationHint": "پیامی ارسال کنید تا ببینید درخواست شما چگونه از تشخیص → ترجمه → فراخوانی ارائهدهنده عبور میکند.",
+ "chatTesterDescription": "پیامها را با یک فرمت کلاینت مشخص ارسال کنید و هر مرحله از پایپلاین ترجمه را بررسی کنید.",
+ "chatTesterFlow": "درخواست کلاینت → تشخیص فرمت → قالب میانی OpenAI → فرمت ارائهدهنده → پاسخ",
+ "clickStepToInspect": "برای بررسی دادهها در هر مرحله، روی آن کلیک کنید.",
+ "clientFormat": "فرمت کلاینت",
+ "provider": "ارائهدهنده",
+ "modelPlaceholder": "یک نام مدل را انتخاب یا وارد کنید...",
+ "sendMessageToSeePipeline": "پیامی ارسال کنید تا پایپلاین ترجمه را ببینید",
+ "chatMessageHintPrefix": "پیام شما بهصورت یک درخواست با فرمت",
+ "chatMessageHintSuffix": "قالببندی میشود، از پایپلاین ترجمه عبور میکند و به ارائهدهنده انتخابشده ارسال میشود.",
+ "youWithFormat": "شما ({format})",
+ "assistant": "دستیار",
+ "typeMessage": "پیامی بنویسید...",
+ "send": "ارسال",
+ "clientRequest": "درخواست کلاینت",
+ "clientRequestDescription": "بدنه درخواست، همانگونه که کلاینت شما آن را ارسال میکند",
+ "formatDetected": "فرمت شناساییشده",
+ "formatDetectedDescription": "OmniRoute فرمت API را بهصورت خودکار از ساختار درخواست تشخیص میدهد",
+ "openaiIntermediate": "واسط OpenAI",
+ "openaiIntermediateDescription": "همه قالبها ابتدا به قالب OpenAI (پل عمومی) نرمالسازی میشوند",
+ "providerFormat": "قالب ارائهدهنده",
+ "providerFormatDescription": "قالب OpenAI به قالب بومی ارائهدهنده ترجمه میشود",
+ "providerResponse": "پاسخ ارائهدهنده",
+ "providerResponseRawDescription": "پاسخ خام از API ارائهدهنده",
+ "providerResponseSseDescription": "جریان خام SSE از API ارائهدهنده",
+ "unexpectedError": "خطایی غیرمنتظره رخ داد",
+ "error": "خطا",
+ "errorMessage": "خطا: {message}",
+ "requestFailed": "درخواست ناموفق بود",
+ "noTextExtracted": "(هیچ متنی استخراج نشد)",
"liveMonitorMemoryNote": "رویدادها در حافظه ذخیره می شوند و با راه اندازی مجدد از بین می روند.",
"liveMonitorMemoryCapNote": "حداکثر 200 رویداد حفظ شد.",
"eventSourcesLabel": "منابع رویداد:",
"eventSourceTranslatorPage": "• صفحه مترجم (تستر چت، میز تست)",
"eventSourceMainPipeline": "• خط لوله درخواست اصلی (ترافیک CLI/IDE/API)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "رویدادهای ترجمه را هنگام عبور فراخوانیهای API از OmniRoute نمایش میدهد. رویدادها از بافر درونحافظهای میآیند (با راهاندازی مجدد بازنشانی میشود). استفاده کنید از",
+ "liveMonitorDescriptionSuffix": "، یا فراخوانیهای API خارجی برای تولید رویدادها.",
"streamTransformer": "ترانسفورماتور جریان",
"modeDescriptionStreamTransformer": "اجرای کامل چت SSE از طریق ترانسفورماتور Responses جریان می یابد.",
"streamTransformerTitle": "ترانسفورماتور جریان پاسخ",
@@ -9153,7 +9164,7 @@
"loadToolSample": "نمونه تماس ابزار را بارگیری کنید",
"transformToResponses": "تبدیل به پاسخ ها",
"rawChatSseInput": "تکمیل چت خام SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "SSE تبدیلشده Responses API",
"noResultsYet": "هنوز هیچ نتیجه ای وجود ندارد",
"transformedEvents": "رویدادهای دگرگون شده",
"uniqueEventTypes": "انواع رویدادهای منحصر به فرد",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "تبدیل استریم ناموفق بود"
},
"usage": {
- "title": "Usage",
+ "title": "میزان استفاده",
"grokExtraUsageCredits": "اعتبارات اضافی مصرف",
"grokAutoTopUp": "شارژ خودکار",
"grokAutoTopUpUnavailable": "غیرقابل دسترسی",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "باقیمانده",
"kiloPassRenews": "تمدید در {count} روز",
"kiloPassUsageLabel": "مصرف این ماه",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "اعتبارهای اضافی استفاده",
+ "kimiExtraUsage": "استفاده اضافی",
+ "kimiExtraUsageEnabled": "فعال",
+ "kimiExtraUsageDisabled": "غیرفعال",
+ "kimiExtraUsageFrozen": "مسدود",
+ "kimiExtraUsageUnavailable": "دردسترس نیست",
+ "kimiMonthlyUsed": "استفادهشده در این ماه",
+ "kimiMonthlyLimit": "محدودیت ماهانه",
+ "kimiMonthlyLimitUnlimited": "نامحدود",
+ "kimiAdditionalCredits": "اعتبارهای اضافی",
+ "loggerTab": "ثبتکننده",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "مدیریت بودجه",
+ "budgetSaved": "محدودیتهای بودجه ذخیره شدند",
+ "budgetSaveFailed": "ذخیره بودجه ناموفق بود",
+ "loadingBudgetData": "در حال بارگذاری دادههای بودجه...",
+ "noApiKeysTitle": "هیچ کلید API وجود ندارد",
+ "noApiKeysDescription": "برای تنظیم محدودیتهای بودجه، ابتدا کلیدهای API را اضافه کنید.",
+ "apiKey": "کلید API",
+ "todaysSpend": "هزینه امروز",
+ "thisMonth": "این ماه",
+ "setLimits": "تنظیم محدودیتها",
+ "dailyLimitUsd": "محدودیت روزانه (USD)",
+ "monthlyLimitUsd": "محدودیت ماهانه (USD)",
+ "warningThresholdPercent": "آستانه هشدار (%)",
+ "dailyLimitPlaceholder": "مثلاً 5.00",
+ "monthlyLimitPlaceholder": "مثلاً 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "ذخیره محدودیتها",
+ "budgetOk": "بودجه مناسب است — {remaining} باقیمانده",
+ "budgetExceeded": "از بودجه فراتر رفتهاید — ممکن است درخواستها مسدود شوند",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "هنوز دادهای وجود ندارد",
+ "latency": "تأخیر",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "کش پرامپت",
+ "systemHealth": "سلامت سیستم",
+ "entries": "ورودیها",
+ "activeCount": "{count} فعال",
+ "openCircuitBreakersDetected": "قطعکنندههای مدار باز شناسایی شدند",
+ "hitRate": "نرخ اصابت",
+ "hitsMisses": "اصابتها / خطاها",
+ "circuitBreakers": "قطعکنندههای مدار",
+ "lockedIPs": "IPهای قفلشده",
+ "lockoutsAutoRefreshHint": "قفلهای محدودیت نرخ برای هر مدل • تازهسازی خودکار هر ۱۰ ثانیه",
+ "lockedCount": "{count, plural, one {# قفلشده} other {# قفلشده}}",
+ "timeLeft": "{time} باقیمانده",
+ "howItWorks": "نحوه عملکرد",
+ "howItWorksSubtitle": "بیاموزید که ارزیابیها چگونه پاسخهای LLM شما را اعتبارسنجی میکنند",
+ "define": "تعریف",
+ "defineStepDescription": "موارد آزمون را با پرامپتهای ورودی و معیارهای خروجی مورد انتظار، با استفاده از راهبردهایی مانند شامل بودن، عبارت منظم یا تطابق دقیق ایجاد کنید.",
+ "run": "اجرا",
+ "runStepDescription": "موارد آزمون را از طریق OmniRoute روی نقاط پایانی LLM خود اجرا کنید. هر مورد بهعنوان یک درخواست واقعی API ارسال میشود.",
+ "evaluate": "ارزیابی",
+ "evaluateStepDescription": "پاسخها با معیارهای مورد انتظار مقایسه میشوند. نتیجه قبولی/رد هر مورد را بههمراه معیارهای تأخیر و بازخورد دقیق مشاهده کنید.",
"evalsStrategyContainsLabel": "شامل میشود",
"evalsStrategyExactLabel": "تطابق دقیق",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "عبارت منظم",
"evalsStrategyCustomLabel": "منطق سفارشی",
"evalsStrategyContainsDescription": "بررسی میکند که آیا خروجی LLM شامل زیررشته مورد نظر هست یا خیر.",
"evalsStrategyExactDescription": "بررسی میکند که آیا خروجی LLM دقیقاً با مقدار مورد نظر مطابقت دارد یا خیر.",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "نرخ موفقیت",
"historyColumnAvgLatencyMs": "میانگین تأخیر",
"historyColumnCreatedAt": "اجرا شده",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "مجموعههای ارزیابی",
+ "evalSuitesHint": "برای مشاهده موارد آزمون روی یک مجموعه کلیک کنید، سپس آن را برای ارزیابی نقاط پایانی LLM خود اجرا کنید",
+ "evalsLoading": "در حال بارگذاری مجموعههای ارزیابی...",
+ "noEvalSuitesFound": "هیچ مجموعه ارزیابیای یافت نشد",
+ "noEvalSuitesDescription": "مجموعههای ارزیابی را میتوان از طریق API یا در کد تعریف کرد. آنها خروجیهای مدل را با استفاده از راهبردهایی مانند شامل بودن، عبارت منظم، تطابق دقیق و توابع سفارشی در برابر نتایج مورد انتظار آزمایش میکنند.",
+ "columnCase": "مورد",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "تأخیر",
+ "columnDetails": "جزئیات",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "راهبرد",
+ "columnExpected": "مورد انتظار",
+ "statsSuites": "مجموعهها",
+ "statsTestCases": "موارد آزمون",
+ "statsModels": "مدلها",
+ "statsCoverage": "پوشش",
+ "statsStrategiesCount": "{count} راهبرد",
+ "evaluationStrategies": "راهبردهای ارزیابی",
+ "modelsUnderTest": "مدلهای تحت آزمون",
+ "searchSuitesPlaceholder": "جستوجوی مجموعهها...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# مورد} other {# مورد}}",
+ "runEval": "اجرای ارزیابی",
"runAllSuites": "همه را اجرا کنید",
"runAllRunning": "در حال اجرا همه...",
"runAllProgress": "در حال اجرا {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# مجموعه ناموفق بود} other {# مجموعه ناموفق بودند}}",
"runAllCompleted": "سوئیت های {suites} را اجرا کرد — {passed} گذشت، {failed} ناموفق بود",
"runAllCompletedWithFailures": "سوئیت های {completed} را اجرا کرد. {failedSuites} تکمیل نشد",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "در حال اجرا {current}/{total}...",
+ "passRate": "نرخ موفقیت",
+ "summaryBreakdown": "{passed} موفق · {failed} ناموفق · مجموع {total}",
+ "passedIconLabel": "✅ موفق",
+ "failedIconLabel": "❌ ناموفق",
"resultPassed": "گذشت",
"resultFailed": "شکست خورد",
"expandResult": "جزئیات نتیجه را گسترش دهید",
"collapseResult": "کوچک کردن جزئیات نتیجه",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "شامل: «{term}»",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "مورد انتظار: «{expected}»",
"expectedOutputLabel": "خروجی مورد انتظار",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "هنوز نتیجهای وجود ندارد",
+ "testCasesCount": "موارد آزمون ({count})",
+ "noTestCasesDefined": "هیچ مورد آزمونی تعریف نشده است",
+ "runEvalHint": "برای اجرای همه موارد روی نقطه پایانی LLM خود، روی «اجرای ارزیابی» کلیک کنید. هر آزمون یک درخواست واقعی از طریق OmniRoute ارسال میکند.",
+ "notifyNoTestCases": "هیچ مورد آزمونی برای این مجموعه تعریف نشده است",
+ "notifyAllCasesPassed": "هر {total} مورد با موفقیت گذشت ✅",
+ "notifySomeCasesFailed": "{passed}/{total} موفق، {failed} ناموفق",
+ "notifyEvalRunFailed": "اجرای ارزیابی ناموفق بود",
+ "notifyEvalTitle": "ارزیابی: {name}",
+ "modelEvals": "ارزیابیهای مدل",
+ "evalsHeroDescription": "نقاط پایانی LLM خود را با اجرای مجموعههای ارزیابی ازپیشتعریفشده آزمایش و اعتبارسنجی کنید. هر مجموعه شامل موارد آزمونی است که اعلانهای واقعی را از طریق OmniRoute ارسال میکنند و پاسخها را با معیارهای مورد انتظار مقایسه میکنند؛ این کار به شما کمک میکند پسرفتها را شناسایی کنید، مدلها را مقایسه کنید و کیفیت پاسخ را در میان ارائهدهندگان تضمین کنید.",
+ "qualityValidation": "اعتبارسنجی کیفیت",
+ "modelComparison": "مقایسه مدلها",
+ "regressionDetection": "تشخیص پسرفت",
+ "latencyBenchmarks": "معیارهای تأخیر",
+ "modelLockouts": "قفلشدن مدلها",
+ "noLockouts": "در حال حاضر هیچ مدلی قفل نشده است",
+ "activeSessions": "نشستهای فعال",
+ "noSessions": "هیچ نشست فعالی وجود ندارد",
+ "sessionsHint": "با عبور درخواستها از پروکسی، نشستها نمایش داده میشوند",
+ "sessionsTrackedHint": "ردیابی از طریق اثر انگشت درخواست • تازهسازی خودکار هر ۵ ثانیه",
+ "session": "نشست",
+ "age": "مدت",
+ "requests": "درخواستها",
+ "connection": "اتصال",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "محدودیتهای ارائهدهنده",
+ "noProviders": "هیچ ارائهدهندهای متصل نیست",
+ "connectProvidersForQuota": "برای پیگیری محدودیت سهمیه و میزان استفاده از API، از طریق OAuth به ارائهدهندگان متصل شوید.",
+ "accountsCount": "{count, plural, one {# حساب} other {# حساب}}",
+ "filteredFromCount": "(فیلترشده از {count})",
+ "autoRefresh": "تازهسازی خودکار",
+ "refreshAll": "تازهسازی همه",
+ "loadingQuotas": "در حال بارگذاری...",
"showMoreQuotas": "نمایش {count} مورد بیشتر",
"showLessQuotas": "نمایش کمتر",
"hideQuotaRow": "پنهان کردن این ردیف سهمیه",
"showQuotaRow": "نمایش این ردیف سهمیه",
"hiddenQuotaRowsLabel": "پنهان شده:",
"quotaVisibilityUpdateFailed": "خطا در بهروزرسانی وضعیت نمایش سهمیه",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
- "dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "account": "حساب",
+ "modelQuotas": "سهمیههای مدل",
+ "lastUsed": "آخرین تازهسازی",
+ "actions": "عملیات",
+ "refreshQuota": "تازهسازی سهمیه",
+ "today": "امروز",
+ "tomorrow": "فردا",
+ "dayTimeFormat": "{day}، {time}",
+ "inDuration": "تا {duration} دیگر",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "طرح خام: {plan}",
+ "noPlanFromProvider": "هیچ طرحی از ارائهدهنده دریافت نشده است",
"tokenExpiresIn": "توکن در {time} منقضی میشود",
"tokenExpired": "توکن منقضی شده است",
- "noQuotaData": "No quota data",
+ "noQuotaData": "دادهای برای سهمیه وجود ندارد",
"cardExpand": "گسترش",
"cardCollapse": "جمع کردن",
"moreQuotas": "+{count} مورد بیشتر",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "گروهبندینشده",
+ "viewFlat": "تخت",
+ "viewByEnvironment": "بر اساس محیط",
+ "noQuotaDataAvailable": "هیچ دادهای برای سهمیه موجود نیست",
+ "noAccountsForTierFilter": "هیچ حسابی برای فیلتر سطح یافت نشد",
+ "tierAll": "همه",
+ "tierEnterprise": "سازمانی",
+ "tierTeam": "تیمی",
+ "tierBusiness": "کسبوکار",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "رایگان",
"tierLite": "لایت",
- "tierUnknown": "Unknown",
+ "tierUnknown": "ناشناخته",
"statTotal": "کل",
"statCritical": "بحرانی",
"statAlert": "هشدار",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "بازخرید اعتبار",
"resetCreditRedeemed": "بازنشانی بازخرید شد",
"resetCreditRedeemFailed": "بازخرید اعتبار بازنشانی ناموفق بود",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "ذخیره مجموعه ناموفق بود",
"clone": "کلون",
"exportSuite": "صادرات",
"importSuite": "واردات",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "JSON مجموعه ارزیابی نامعتبر است",
"suiteBuilderCloneSuffix": "کپی کنید",
"suiteBuilderImportedSuite": "سوئیت وارداتی",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "کارنامه",
+ "evalApiKey": "کلید API",
+ "scorecardPassRate": "نرخ موفقیت",
+ "targetTypeModel": "مدل",
+ "actualOutputLabel": "خروجی واقعی",
+ "evalTargetHint": "یک مدل یا ترکیب را برای ارزیابی انتخاب کنید.",
+ "suiteBuilderDeleted": "مجموعه با موفقیت حذف شد",
+ "suiteBuilderCaseCardHint": "پرامپت ورودی و معیارهای خروجی مورد انتظار را تعریف کنید.",
+ "nextResetUtc": "بازنشانی بعدی (UTC)",
+ "scorecardHint": "نرخهای قبولی تجمیعشده در همه مجموعههای ارزیابی.",
+ "suiteLatestRunsHint": "جدیدترین اجراهای ارزیابی برای این مجموعه.",
+ "saving": "در حال ذخیره",
+ "suiteBuilderCaseModelLabel": "مدل (اختیاری)",
+ "evalControlsTitle": "کنترلهای ارزیابی",
+ "suiteBuilderEditTitle": "ویرایش مجموعه ارزیابی",
+ "suiteBuilderCaseStrategyLabel": "راهبرد اعتبارسنجی",
+ "notifySelectDifferentCompareTarget": "لطفاً هدف دیگری را برای مقایسه انتخاب کنید",
+ "recentRunsHint": "جدیدترین اجراهای ارزیابی نمایش داده میشوند. برای مشاهده نتایج دقیق، روی یک اجرا کلیک کنید.",
+ "evalCompareHint": "در صورت تمایل، نتایج را با یک هدف دوم مقایسه کنید.",
+ "suiteBuilderCaseInvalid": "این مورد دارای خطاهای اعتبارسنجی است. لطفاً پیش از ذخیره آنها را برطرف کنید.",
+ "historyEmpty": "هنوز سابقه ارزیابی وجود ندارد",
+ "suiteBuilderUpdated": "مجموعه با موفقیت بهروزرسانی شد",
+ "resetInterval": "بازه بازنشانی",
+ "suiteBuilderCreateTitle": "ایجاد مجموعه ارزیابی",
+ "activePeriodSpend": "هزینه دوره فعال",
+ "evalApiKeyHint": "کلید API مورد استفاده برای درخواستهای ارزیابی را انتخاب کنید.",
+ "evalCompareOptional": "مقایسه (اختیاری)",
+ "suiteBuilderDeleteFailed": "حذف مجموعه ناموفق بود",
+ "suiteBuilderCaseSystemPromptPlaceholder": "دستورالعملهای اختیاری سیستم...",
+ "scorecardCases": "موارد",
+ "runCompletedWithScore": "ارزیابی تکمیل شد — نرخ قبولی {score}٪",
+ "suiteBuilderCustomBadge": "سفارشی",
+ "targetSuiteDefaults": "پیشفرضهای مجموعه",
+ "suiteBuilderDeleteConfirm": "آیا مطمئن هستید که میخواهید این مجموعه را حذف کنید؟ این عمل قابل بازگشت نیست.",
+ "suiteBuilderNameLabel": "نام مجموعه",
+ "scorecardSuites": "مجموعهها",
+ "evalCompareTarget": "هدف مقایسه",
+ "suiteBuilderCaseModelPlaceholder": "مثلاً gpt-4o-mini",
+ "evalControlsHint": "هدف ارزیابی و کلید API خود را پیکربندی کنید، سپس مجموعهها را اجرا کنید تا کیفیت مدل اعتبارسنجی شود.",
+ "recentRunsTitle": "اجراهای اخیر",
+ "suiteBuilderCaseSystemPromptLabel": "پرامپت سیستم",
+ "suiteBuilderCaseExpectedPlaceholder": "مثلاً def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "به عنوان مثال تعریف فیبوناچی",
"suiteBuilderCaseExpectedPlaceholderExact": "پاسخ دقیق مورد انتظار را جایگذاری کنید",
"suiteBuilderCaseExpectedPlaceholderRegex": "به عنوان مثال ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "از یک عبارت معمولی جاوا اسکریپت بدون پیچیدن اسلش استفاده کنید.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "مثلاً مجموعه کیفیت کدنویسی",
+ "suiteBuilderAddCase": "افزودن مورد",
+ "cancel": "لغو",
+ "evalTarget": "هدف",
+ "suiteBuilderCaseNameLabel": "نام مورد",
+ "weeklyLimitUsd": "محدودیت هفتگی (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "مثلاً یک تابع فیبوناچی در Python بنویسید",
+ "suiteBuilderNameRequired": "نام مجموعه الزامی است",
+ "suiteBuilderCaseUserPromptLabel": "پرامپت کاربر",
+ "daily": "روزانه",
+ "resultErrorLabel": "خطا",
+ "suiteBuilderBuiltInBadge": "داخلی",
+ "suiteBuilderCaseCardTitle": "مورد آزمایشی",
"suiteBuilderDuplicateCase": "تکراری",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "مثلاً 50.00",
+ "suiteBuilderCaseTagsHint": "برچسبهای جداشده با ویرگول برای سازماندهی موارد آزمایشی.",
+ "notifyEvalRunFailedWithReason": "ارزیابی ناموفق بود: {reason}",
+ "weekly": "هفتگی",
+ "runEvalRunning": "در حال اجرای ارزیابی...",
+ "delete": "حذف",
+ "resetTimeUtc": "زمان بازنشانی (UTC)",
+ "evalApiKeyAuto": "خودکار (استفاده از پیشفرض)",
+ "suiteBuilderDescriptionPlaceholder": "توضیحی اختیاری درباره مواردی که این مجموعه آزمایش میکند...",
+ "targetComparisonTitle": "مقایسه هدف",
+ "save": "ذخیره",
+ "suiteBuilderCreated": "مجموعه با موفقیت ایجاد شد",
+ "suiteLatestRuns": "آخرین اجراها",
+ "suiteBuilderCaseExpectedLabel": "مقدار مورد انتظار",
+ "historyLatency": "تأخیر",
+ "suiteBuilderCaseTagsPlaceholder": "مثلاً coding، python",
+ "targetTypeCombo": "ترکیبی",
+ "scorecardPassed": "موفق",
+ "suiteBuilderCaseTagsLabel": "برچسبها",
+ "suiteBuilderNewSuite": "مجموعه جدید",
+ "notifyEvalLoadFailed": "بارگیری دادههای ارزیابی ناموفق بود",
+ "notConfigured": "پیکربندی نشده",
+ "suiteBuilderCaseNamePlaceholder": "مثلاً آزمایش فیبوناچی Python",
+ "intervalLabel": "بازه زمانی",
+ "suiteBuilderCreateAction": "ایجاد مجموعه",
+ "suiteBuilderCasesHint": "هر مورد یک پرامپت ارسال کرده و پاسخ را اعتبارسنجی میکند.",
+ "suiteBuilderUpdatedAt": "بهروزرسانیشده",
+ "errorBadge": "خطا",
+ "suiteBuilderCasesTitle": "موارد آزمایشی",
+ "edit": "ویرایش",
+ "monthly": "ماهانه",
+ "suiteBuilderCasesRequired": "حداقل یک مورد آزمایشی الزامی است",
+ "weeklyLimitSummary": "خلاصه محدودیت بودجه هفتگی",
+ "suiteBuilderDescriptionLabel": "توضیحات",
+ "targetComparisonHint": "مقایسه کنارهم نتایج ارزیابی بین اهداف.",
+ "compareCompletedWithScore": "مقایسه تکمیل شد — نرخ قبولی {score}٪",
+ "staleQuotaTooltip": "آخرین بهروزرسانی ناموفق بود — دادههای ذخیرهشده نمایش داده میشوند",
"quotaThresholdLabel": "حداقل مانده",
"quotaCutoffsColumnHelp": "وقتی سهمیه باقیمانده به این درصد یا کمتر میرسد، درخواستها را متوقف کنید.",
"quotaCutoffsButtonDefault": "پیش فرض",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "وضعیت لحظهای در حسابهای متصل"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "در انتظار مجوز",
+ "verificationUrl": "URL تأیید",
+ "yourCode": "کد شما",
+ "remoteAccess": "دسترسی از راه دور:",
+ "connectedSuccess": "اتصال با موفقیت انجام شد!",
+ "connectionFailed": "اتصال ناموفق بود",
+ "chooseAuthMethod": "روش احراز هویت خود را انتخاب کنید:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "حساب Google",
+ "githubAccount": "حساب GitHub",
+ "importToken": "وارد کردن توکن",
+ "pasteToken": "توکن تازهسازی را از Kiro IDE جایگذاری کنید.",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "در حال شناسایی خودکار توکنها...",
+ "readingFromCache": "در حال خواندن از حافظه پنهان AWS SSO",
+ "readingFromCursor": "در حال خواندن از پایگاه داده Cursor IDE",
+ "initializing": "در حال راهاندازی...",
+ "pricingConfig": "پیکربندی قیمتگذاری",
+ "loadingPricing": "در حال بارگیری دادههای قیمتگذاری...",
+ "pricingRatesFormat": "قالب نرخهای قیمتگذاری",
+ "noPricingData": "هیچ داده قیمتگذاری موجود نیست",
+ "noModelsFound": "هیچ مدلی یافت نشد"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "همه ارائهدهندگان",
+ "allModels": "همه مدلها",
+ "allAccounts": "همه حسابها",
+ "allApiKeys": "همه کلیدهای API",
+ "allTypes": "همه انواع",
+ "allLevels": "همه سطوح",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "در حال بارگیری گزارشها...",
+ "loadingProxyLogs": "در حال بارگیری گزارشهای پروکسی...",
+ "noLogEntries": "هیچ ورودی گزارشی یافت نشد",
+ "noPayloadData": "هیچ دادهای از محتوای درخواست برای این ورودی گزارش موجود نیست.",
+ "proxyEvent": "رویداد پروکسی",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "سطح",
+ "directNative": "مستقیم (بومی)",
+ "combo": "ترکیبی",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "نمای کلی مصرف",
+ "outputTokens": "توکنهای خروجی",
+ "totalCost": "هزینه کل",
+ "usageByModel": "مصرف بر اساس مدل",
+ "usageByAccount": "مصرف بر اساس حساب",
+ "failedToLoad": "بارگیری آمار مصرف ناموفق بود.",
+ "tokenHealth": "وضعیت توکن",
+ "totalOAuth": "مجموع OAuth",
+ "healthy": "سالم",
+ "warning": "هشدار",
+ "errored": "دارای خطا",
+ "lastCheck": "آخرین بررسی",
+ "noData": "بدون داده",
+ "share": "سهم",
+ "unableToLoad": "بارگیری معیارهای سیستم ممکن نیست",
+ "product": "محصول",
+ "resources": "منابع",
+ "company": "شرکت",
"tokenHealthTooltips": {
"allHealthy": "همه توکنها سالم هستند",
"needsAttention": "برخی از توکنها نیاز به توجه دارند",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "هیچ استفاده خاصی از حساب هنوز ثبت نشده است. برای مشاهده دادهها در اینجا، از حسابهای OAuth درخواست کنید."
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "خوش آمدید",
+ "signIn": "ورود",
+ "enterPassword": "برای ادامه، رمز عبور خود را وارد کنید",
+ "password": "رمز عبور",
+ "unifiedProxy": "پراکسی یکپارچه API هوش مصنوعی",
+ "unifiedAiApiProxy": "پراکسی یکپارچه API هوش مصنوعی",
+ "unifiedAiApiProxyDesc": "درخواستها را از طریق یک نقطه پایانی واحد به چندین ارائهدهنده هوش مصنوعی هدایت کنید. متعادلسازی بار، جایگزینی هنگام خرابی و ردیابی مصرف بهصورت داخلی ارائه شدهاند.",
+ "passwordNotEnabled": "محافظت با رمز عبور فعال نیست",
+ "loading": "در حال بارگیری...",
+ "invalidPassword": "رمز عبور نامعتبر است",
+ "errorOccurredRetry": "خطایی رخ داد. لطفاً دوباره تلاش کنید.",
+ "configureInstance": "بیایید نمونه OmniRoute شما را پیکربندی کنیم",
+ "runOnboardingWizard": "برای تنظیم رمز عبور و اتصال نخستین ارائهدهنده هوش مصنوعی، راهانداز اولیه را اجرا کنید.",
+ "startOnboarding": "شروع راهاندازی اولیه",
+ "secureYourInstance": "ایمنسازی نمونه شما",
+ "setPasswordDescription": "برای محافظت از داشبورد و ایمنسازی نقاط پایانی API خود در برابر دسترسی غیرمجاز، یک رمز عبور تنظیم کنید.",
+ "configurePassword": "پیکربندی رمز عبور",
+ "continue": "ادامه",
+ "windowWillClose": "این پنجره بهطور خودکار بسته خواهد شد...",
+ "closeTabNow": "اکنون میتوانید این زبانه را ببندید.",
+ "copyUrlManual": "لطفاً URL را از نوار آدرس کپی کرده و در برنامه جایگذاری کنید.",
+ "accessDeniedDescription": "شما مجوز دسترسی به این منبع را ندارید. کلید API خود را بررسی کنید یا با مدیر سیستم تماس بگیرید.",
+ "goToDashboard": "رفتن به داشبورد",
+ "featureMultiProviderTitle": "چندارائهدهندهای",
+ "featureMultiProviderDesc": "OpenAI، Anthropic، Google و موارد دیگر",
+ "featureLoadBalancingTitle": "توزیع بار",
+ "featureLoadBalancingDesc": "توزیع هوشمندانه درخواستها",
+ "featureUsageTrackingTitle": "ردیابی میزان استفاده",
+ "featureUsageTrackingDesc": "نظارت بر هزینهها و توکنها",
+ "resetPassword": "بازنشانی رمز عبور",
+ "resetDescription": "روشی را برای بازیابی دسترسی به داشبورد خود انتخاب کنید",
+ "stopServer": "سرور OmniRoute را متوقف کنید",
+ "processing": "در حال پردازش...",
+ "pleaseWait": "لطفاً تا تکمیل فرایند مجوزدهی منتظر بمانید.",
+ "authSuccess": "مجوزدهی با موفقیت انجام شد!",
+ "copyUrl": "کپی کردن این URL",
+ "accessDenied": "دسترسی رد شد",
+ "methodCliTitle": "روش ۱: بازنشانی از طریق CLI",
+ "methodCliDescription": "دستور زیر را روی سروری که OmniRoute در آن اجرا میشود، اجرا کنید:",
+ "methodCliHint": "از شما خواسته میشود رمز عبور جدیدی تنظیم کنید. ابتدا باید سرور متوقف شود.",
+ "methodManualTitle": "روش ۲: بازنشانی دستی",
+ "methodManualDescription": "رمز عبور را از پایگاه داده حذف کنید و هنگام راهاندازی، رمز جدیدی تنظیم کنید:",
+ "setPasswordInYour": "یک رمز عبور جدید در فایل",
+ "fileLabelSuffix": "خود تنظیم کنید:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "حذف کنید",
+ "orRemovePasswordHashField": "یا فیلد passwordHash را حذف کنید",
+ "restartServerWithNewPassword": "سرور را مجدداً راهاندازی کنید؛ از رمز عبور جدید استفاده خواهد کرد",
+ "backToLogin": "بازگشت به ورود",
+ "forgotPassword": "رمز عبور را فراموش کردهاید؟",
"continueWithOidc": "ادامه با OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "رمز عبور پیشفرض: CHANGEME (مگر اینکه INITIAL_PASSWORD تنظیم شده باشد)",
+ "Authorization": "مجوزدهی",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "در انتظار مجوزدهی...",
+ "waitingForGoogleAuthorization": "در انتظار مجوزدهی Google...",
+ "waitingForOpenAIAuthorization": "در انتظار مجوزدهی OpenAI...",
+ "waitingForAntigravityAuthorization": "در انتظار مجوزدهی Antigravity...",
+ "waitingForQoderAuthorization": "در انتظار مجوزدهی Qoder...",
+ "exchangingCodeForTokens": "در حال مبادله کد با توکنها...",
+ "nodeIncompatibleTitle": "نسخه ناسازگار Node.js",
+ "nodeIncompatibleDesc": "شما در حال اجرای Node.js {version} هستید که خارج از سیاست محیط اجرایی امن پشتیبانیشده OmniRoute است. از یک نسخه اصلاحشده LTS از Node.js 20.x یا 22.x استفاده کنید.",
+ "nodeIncompatibleFixLabel": "راهحل: یک نسخه اصلاحشده LTS از Node.js 22 را نصب کنید",
+ "nodeIncompatibleHint": "OmniRoute به Node.js 22.22.2+ (22.x LTS) یا 24.0.0+ (24.x LTS) نیاز دارد. Node 24 LTS توصیه میشود.",
"resetViaAppDataTitle": "تنظیم مجدد از طریق دادههای برنامه",
"resetViaAppDataDescription": "فایل تنظیمات را از دایرکتوری دادههای برنامه حذف کنید تا رمز عبور خود را بازنشانی کنید:",
"quitDesktopApp": "کاملاً از برنامه دسکتاپ OmniRoute خارج شوید",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "رفتن به صفحه اصلی",
+ "toggleMenu": "باز و بسته کردن منو",
+ "featuresLink": "قابلیتها",
+ "docsLink": "مستندات",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "versionLive": "v1.0 اکنون منتشر شده است",
+ "oneEndpoint": "یک نقطه پایانی برای",
+ "allProviders": "همه ارائهدهندگان هوش مصنوعی",
+ "heroDescription": "پروکسی نقطه پایانی هوش مصنوعی با داشبورد وب — نسخه JavaScript از CLIProxyAPI. بهصورت یکپارچه با Claude Code، OpenAI Codex، Cline، RooCode و دیگر ابزارهای CLI کار میکند.",
+ "getStarted": "شروع کنید",
+ "viewOnGithub": "مشاهده در GitHub",
+ "powerfulFeatures": "قابلیتهای قدرتمند",
+ "featuresSubtitle": "هرآنچه برای مدیریت زیرساخت هوش مصنوعی خود در یک مکان نیاز دارید، با قابلیت مقیاسپذیری.",
+ "featureUnifiedEndpointTitle": "نقطه پایانی یکپارچه",
+ "featureUnifiedEndpointDesc": "از طریق یک URL استاندارد API به همه ارائهدهندگان دسترسی پیدا کنید.",
+ "featureEasySetupTitle": "راهاندازی آسان",
+ "featureEasySetupDesc": "با دستور npx در چند دقیقه شروع به کار کنید.",
+ "featureModelFallbackTitle": "جایگزینی خودکار مدل",
+ "featureModelFallbackDesc": "در صورت بروز خطا یا تأخیر زیاد، بهطور خودکار ارائهدهنده را تغییر دهید.",
+ "featureUsageTrackingTitle": "ردیابی مصرف",
+ "featureUsageTrackingDesc": "تحلیلهای دقیق و نظارت بر هزینه در همه مدلها.",
+ "featureOAuthApiKeysTitle": "OAuth و کلیدهای API",
+ "featureOAuthApiKeysDesc": "اعتبارنامهها را بهصورت امن در یک خزانه مدیریت کنید.",
+ "featureCloudSyncTitle": "همگامسازی ابری",
+ "featureCloudSyncDesc": "پیکربندیهای خود را فوراً بین دستگاهها همگامسازی کنید.",
+ "featureCliSupportTitle": "پشتیبانی از CLI",
+ "featureCliSupportDesc": "با Claude Code، Codex، Cline، Cursor و ابزارهای دیگر کار میکند.",
+ "featureDashboardTitle": "داشبورد",
+ "featureDashboardDesc": "داشبورد بصری برای تحلیل لحظهای ترافیک.",
+ "howItWorks": "OmniRoute چگونه کار میکند",
+ "howItWorksDescription": "دادهها بهصورت یکپارچه از برنامه شما، از طریق لایه مسیریابی هوشمند ما، به بهترین ارائهدهنده برای انجام کار منتقل میشوند.",
+ "howItWorksStep1Title": "۱. CLI و SDKها",
+ "howItWorksStep1Description": "درخواستهای شما از ابزارهای دلخواهتان یا SDK یکپارچه ما آغاز میشوند. کافی است URL پایه را تغییر دهید.",
+ "howItWorksStep2Title": "۲. هاب OmniRoute",
+ "howItWorksStep2Description": "موتور ما پرامپت را تحلیل میکند، وضعیت ارائهدهندگان را بررسی میکند و درخواست را بر اساس کمترین تأخیر یا هزینه مسیریابی میکند.",
+ "howItWorksStep3Title": "۳. ارائهدهندگان هوش مصنوعی",
+ "howItWorksStep3Description": "درخواست فوراً توسط OpenAI، Anthropic، Gemini یا سایر ارائهدهندگان انجام میشود.",
+ "getStartedIn30Seconds": "در ۳۰ ثانیه شروع کنید",
+ "getStartedDescription": "OmniRoute را نصب کنید، ارائهدهندگان خود را از طریق داشبورد وب پیکربندی کنید و مسیریابی درخواستهای هوش مصنوعی را آغاز کنید.",
+ "installOmniRoute": "نصب OmniRoute",
+ "installStepDescription": "برای راهاندازی فوری سرور، دستور npx را اجرا کنید",
+ "openDashboard": "باز کردن داشبورد",
+ "openDashboardStepDescription": "ارائهدهندگان و کلیدهای API را از طریق رابط وب پیکربندی کنید",
+ "routeRequests": "مسیریابی درخواستها",
+ "routeRequestsStepDescription": "ابزارهای CLI خود را به {endpoint} متصل کنید",
+ "terminal": "ترمینال",
+ "copy": "کپی",
+ "copied": "✓ کپی شد",
+ "startingOmniRoute": "در حال راهاندازی OmniRoute...",
+ "serverRunningOnLabel": "سرور در حال اجرا است روی",
+ "dashboardLabel": "داشبورد",
+ "readyToRoute": "آمادهٔ مسیریابی! ✓",
+ "configureProvidersNote": "📝 ارائهدهندگان را در داشبورد پیکربندی کنید یا از متغیرهای محیطی استفاده کنید",
+ "dataLocation": "محل دادهها:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "محصول",
+ "dashboardLink": "داشبورد",
+ "changelog": "تغییرات",
+ "resources": "منابع",
+ "documentation": "مستندات",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "حقوقی",
+ "mitLicense": "مجوز MIT",
+ "footerTagline": "نقطهٔ پایانی یکپارچه برای تولید محتوا با هوش مصنوعی. ارائهدهندگان هوش مصنوعی خود را بهآسانی متصل، مسیریابی و مدیریت کنید.",
+ "copyright": "© {year} OmniRoute. تمامی حقوق محفوظ است.",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "نمودار تعاملی در نسخهٔ دسکتاپ قابل مشاهده است",
+ "ctaTitle": "آمادهاید زیرساخت هوش مصنوعی خود را سادهتر کنید؟",
+ "ctaDescription": "به توسعهدهندگانی بپیوندید که یکپارچهسازیهای هوش مصنوعی خود را با OmniRoute سادهتر میکنند. متنباز است و شروع استفاده از آن رایگان است.",
+ "startFree": "شروع رایگان",
+ "readDocumentation": "مطالعهٔ مستندات",
"company": "شرکت",
"pricing": "قیمت گذاری",
"apiReference": "مرجع API",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "بحثهای جامعه"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "مستندات",
+ "quickStart": "شروع سریع",
"deploymentGuides": "راهنماهای استقرار",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "ویژگیها",
+ "supportedProviders": "ارائهدهندگان پشتیبانیشده",
+ "supportedProvidersToc": "ارائهدهندگان",
+ "commonUseCases": "موارد استفادهٔ رایج",
+ "clientCompatibility": "سازگاری کلاینت",
+ "protocolsToc": "پروتکلها",
+ "apiReference": "مرجع API",
+ "managementApiReference": "مرجع API مدیریت",
+ "managementApiDescription": "نقاط پایانی خودکارسازی برای رجیستری پراکسی، تخصیص محدودهها و مهاجرت پراکسیهای قدیمی.",
+ "method": "متد",
+ "path": "مسیر",
+ "notes": "توضیحات",
+ "modelPrefixes": "پیشوندهای مدل",
+ "prefix": "پیشوند",
+ "troubleshooting": "عیبیابی",
+ "supportsChat": "از هر دو نقطه پایانی chat و responses پشتیبانی میکند.",
+ "oauthAutoRefresh": "اتصال OAuth با تازهسازی خودکار توکن.",
+ "fullStreaming": "پشتیبانی کامل از استریم برای همه مدلها.",
+ "docsLabel": "مستندات",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "باز کردن داشبورد",
+ "endpointPage": "صفحه نقطه پایانی",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "گزارش مشکل",
+ "onThisPage": "در این صفحه",
+ "documentationVersion": "مستندات - v{version}",
+ "quickStartStep1Title": "۱. نصب و اجرا",
+ "quickStartStep1Prefix": "اجرا",
+ "quickStartStep1Middle": "یا از GitHub کلون و اجرا کنید",
+ "quickStartStep2Title": "۲. ایجاد کلید API",
+ "quickStartStep2Text": "به نقطه پایانی -> کلیدهای ثبتشده بروید. برای هر محیط یک کلید ایجاد کنید.",
+ "quickStartStep3Title": "۳. اتصال ارائهدهندگان",
+ "quickStartStep3Text": "حسابهای ارائهدهندگان را از طریق ورود OAuth، کلید API یا اتصال خودکار پلن رایگان اضافه کنید.",
+ "quickStartStep4Title": "۴. تنظیم URL پایه کلاینت",
+ "quickStartStep4Prefix": "IDE یا کلاینت API خود را به این آدرس متصل کنید",
+ "quickStartStep4Suffix": "از پیشوند ارائهدهنده استفاده کنید، برای مثال",
"deploySetupTitle": "راهنمای راه اندازی",
"deploySetupText": "نصب گام به گام، پیکربندی محیط، و اولین راهاندازی برای OmniRoute.",
"deployElectronTitle": "دسکتاپ الکترون",
@@ -10071,161 +10082,161 @@
"deployPwaTitle": "PWA",
"deployPwaText": "OmniRoute را به عنوان یک برنامه وب پیشرفته در مرورگرهای اندروید، iOS و دسکتاپ نصب کنید.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "OmniRoute را بهصورت بدون رابط گرافیکی روی Android و از طریق Termux اجرا کنید. از مرورگر موبایل خود به داشبورد دسترسی پیدا کنید.",
+ "featureRoutingTitle": "مسیریابی چندارائهدهندهای",
+ "featureRoutingText": "درخواستها را از طریق یک نقطه پایانی سازگار با OpenAI به بیش از ۳۰ ارائهدهنده هوش مصنوعی هدایت کنید. از APIهای چت، پاسخها، صوت و تصویر پشتیبانی میکند.",
+ "featureCombosTitle": "ترکیبها و متعادلسازی",
+ "featureCombosText": "ترکیبهای مدل را با زنجیرههای جایگزین و راهبردهای متعادلسازی ایجاد کنید: نوبتی، اولویتدار، تصادفی، کماستفادهترین و بهینهسازیشده از نظر هزینه.",
+ "featureUsageTitle": "ردیابی مصرف و هزینه",
+ "featureUsageText": "شمارش بلادرنگ توکنها، محاسبه هزینه بهازای هر ارائهدهنده/مدل و تفکیک دقیق مصرف بر اساس کلید API و حساب.",
+ "featureAnalyticsTitle": "داشبورد تحلیلها",
+ "featureAnalyticsText": "تحلیلهای بصری با نمودارهایی برای درخواستها، توکنها، خطاها، تأخیر، هزینهها و محبوبیت مدلها در طول زمان.",
+ "featureHealthTitle": "پایش سلامت",
+ "featureHealthText": "بررسیهای زنده سلامت، وضعیت ارائهدهندگان، حالتهای قطعکننده مدار و تشخیص خودکار محدودیت نرخ با عقبنشینی نمایی.",
+ "featureCliTitle": "ابزارهای CLI",
+ "featureCliText": "پیکربندیهای IDE را مدیریت کنید، نسخههای پشتیبان را برونبری/درونریزی کنید، پروفایلهای codex را بیابید و تنظیمات را از داشبورد پیکربندی کنید.",
+ "featureSecurityTitle": "امنیت و سیاستها",
+ "featureSecurityText": "احراز هویت با کلید API، فیلترکردن IP، محافظت در برابر تزریق پرامپت، سیاستهای دامنه، مدیریت نشست و ثبت گزارش ممیزی.",
+ "featureCloudSyncTitle": "همگامسازی ابری",
+ "featureCloudSyncText": "پیکربندی خود را برای دسترسی از راه دور، همراه با اعتبارنامههای رمزگذاریشده و جابهجایی خودکار هنگام خرابی، با Cloudflare Workers همگامسازی کنید.",
+ "providersAcrossConnectionTypes": "{count} ارائهدهنده در سه نوع اتصال.",
+ "manageProviders": "مدیریت ارائهدهندگان",
+ "providersCount": "{count} ارائهدهنده",
+ "providerTypeFree": "سطح رایگان",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "کلید API",
+ "useCaseSingleEndpointTitle": "یک نقطه پایانی برای چندین ارائهدهنده",
+ "useCaseSingleEndpointText": "کلاینتها را به یک URL پایه هدایت کنید و مسیریابی را براساس پیشوند مدل انجام دهید (برای مثال: gh/، cc/، kr/، openai/).",
+ "useCaseFallbackTitle": "مسیر جایگزین و تغییر مدل با ترکیبها",
+ "useCaseFallbackText": "مدلهای ترکیبی را در Dashboard ایجاد کنید و درحالیکه ارائهدهندگان در داخل جابهجا میشوند، پیکربندی کلاینت را ثابت نگه دارید.",
+ "useCaseUsageVisibilityTitle": "نمایش میزان استفاده، هزینه و اطلاعات اشکالزدایی",
+ "useCaseUsageVisibilityText": "توکنها و هزینه را به تفکیک ارائهدهنده، حساب و کلید API در زبانههای Usage و Analytics ردیابی کنید.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "URL پایه",
+ "chatEndpointLabel": "نقطه پایانی چت",
+ "modelRecommendationLabel": "توصیه مدل: پیشوند صریح",
+ "clientCodexTitle": "مدلهای Codex / GitHub Copilot",
+ "clientCodexBullet1": "از شناسههای مدل همراه با این مورد استفاده کنید:",
+ "clientCodexBullet2": "مدلهای خانواده Codex بهطور خودکار به این مسیر هدایت میشوند:",
+ "clientCodexBullet3": "مدلهای غیر Codex در این مسیر ادامه میدهند:",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "استفاده کنید از",
+ "clientCursorBullet1Suffix": "پیشوند برای مدلهای Cursor.",
+ "clientCursorBullet2": "اتصال OAuth — از صفحه Providers وارد شوید.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "استفاده کنید از",
+ "clientClaudeBullet1Middle": "پیشوند (Claude) یا",
+ "clientClaudeBullet1Suffix": "پیشوند (Antigravity).",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "از OmniRoute بهعنوان یک URL پایه سازگار با OpenAI استفاده کنید و برای مسیریابی قطعی، پیشوندهای صریح ارائهدهنده را حفظ کنید.",
+ "clientWindsurfBullet2": "برای ترافیک عمومی، مدلها را به `/v1/chat/completions` هدایت کنید و `/v1/responses` را برای جریانهای سبک Codex حفظ کنید.",
+ "clientWindsurfBullet3": "برای راهنمای آماده پیکربندی Windsurf، از Dashboard -> CLI Tools استفاده کنید.",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "Cline با پیشوندهای صریح ارائهدهنده/مدل بهترین عملکرد را دارد تا مسیریاب هرگز مجبور به حدسزدن بکاند نباشد.",
+ "clientClineBullet2": "برای مدلهای عمومی از `/v1/chat/completions` استفاده کنید و همان URL پایه OmniRoute را در حسابهای مختلف بهکار ببرید.",
+ "clientClineBullet3": "پیش از عیبیابی مشکلات زمان اجرای Cline، از داشبورد Providers برای اعتبارسنجی OAuth/API key استفاده کنید.",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "هنگام جابهجایی حسابها یا ترکیبهای ارائهدهندگان در لایه زیرین، از OmniRoute بهعنوان یک URL پایه پایدار استفاده کنید.",
+ "clientKimiBullet2": "در جریانهای کدنویسی، مدلهای پیشونددار را ترجیح دهید تا مسیر جایگزین و ردپای ممیزی صریح باقی بمانند.",
+ "clientKimiBullet3": "هنگامی که برای کلاینتهای استفادهکننده از ابزار به مسیریابی بومی به سبک Responses نیاز دارید، از `/v1/responses` استفاده کنید.",
+ "protocolsTitle": "پروتکلها: MCP و A2A",
+ "protocolsDescription": "OmniRoute علاوه بر APIهای سازگار با OpenAI، دو پروتکل عملیاتی ارائه میدهد: MCP برای اجرای ابزار و A2A برای گردشکارهای عاملبهعامل.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "از MCP روی stdio استفاده کنید تا کلاینتها بتوانند ابزارهای OmniRoute را با قابلیت مشاهده ممیزی کشف و فراخوانی کنند.",
+ "protocolMcpStep1": "انتقال MCP را با `omniroute --mcp` راهاندازی کنید.",
+ "protocolMcpStep2": "کلاینت MCP خود را به انتقال stdio متصل کنید.",
+ "protocolMcpStep3": "برای اعتبارسنجی اتصال، `omniroute_get_health` و `omniroute_list_combos` را فراخوانی کنید.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "برای ارسال وظایف بهصورت همگام یا از طریق پخش جریانی SSE، از A2A JSON-RPC استفاده کنید.",
+ "protocolA2aStep1": "برای کشف عامل، `/.well-known/agent.json` را بخوانید.",
+ "protocolA2aStep2": "درخواستهای `message/send` یا `message/stream` را به `POST /a2a` ارسال کنید.",
+ "protocolA2aStep3": "چرخه عمر وظیفه را با `tasks/get` و `tasks/cancel` مدیریت کنید.",
+ "protocolTroubleshootingTitle": "عیبیابی پروتکل",
+ "protocolTroubleshooting1": "اگر وضعیت MCP آفلاین است، بررسی کنید که فرایند stdio در حال اجرا باشد و فایل ضربان قلب بهروزرسانی شود.",
+ "protocolTroubleshooting2": "اگر وظایف A2A در وضعیت `working` باقی میمانند، `/api/a2a/tasks/:id` و رویدادهای جریان را برای یافتن وضعیت نهایی بررسی کنید.",
+ "protocolTroubleshooting3": "برای کنترلهای عملیاتی و مشاهده ممیزی، از `/dashboard/mcp` و `/dashboard/a2a` استفاده کنید.",
+ "endpointChatNote": "نقطه پایانی چت سازگار با OpenAI (پیشفرض).",
+ "endpointResponsesNote": "نقطه پایانی Responses API (Codex، سری o).",
+ "endpointModelsNote": "فهرست مدلها برای همه ارائهدهندگان متصل.",
+ "endpointAudioNote": "رونویسی صوتی (Deepgram، AssemblyAI).",
+ "endpointSpeechNote": "تولید متنبهگفتار (ElevenLabs، OpenAI TTS).",
+ "endpointEmbeddingsNote": "تولید تعبیهسازی متن (OpenAI، Cohere، Voyage).",
+ "endpointImagesNote": "تولید تصویر (NanoBanana).",
+ "endpointRewriteChatNote": "کمکابزار بازنویسی برای کلاینتهای فاقد /v1.",
+ "endpointRewriteResponsesNote": "کمکابزار بازنویسی برای Responses فاقد /v1.",
+ "endpointRewriteModelsNote": "کمکابزار بازنویسی برای کشف مدل فاقد /v1.",
+ "mgmtProxiesListNote": "فهرستکردن موارد ذخیرهشده رجیستری پروکسی (با پشتیبانی از صفحهبندی).",
+ "mgmtProxiesCreateNote": "ایجاد یک مورد پروکسی قابلاستفاده مجدد در رجیستری.",
+ "mgmtProxiesHealthNote": "دریافت معیارهای سلامت ۲۴ ساعته/غلتان برای هر پروکسی ذخیرهشده از گزارشهای پروکسی.",
+ "mgmtProxiesBulkAssignNote": "اختصاصدادن یا پاککردن یک پروکسی در چندین شناسه دامنه با یک درخواست.",
+ "mgmtAssignmentsListNote": "فهرستکردن تخصیصهای پروکسی بر اساس scope، scope_id یا proxy_id.",
+ "mgmtAssignmentsUpdateNote": "اختصاصدادن یا پاککردن پروکسی برای دامنه global/provider/account/combo.",
+ "mgmtLegacyMigrationNote": "واردکردن نگاشتهای قدیمی proxyConfig به تخصیصهای رجیستری.",
+ "modelPrefixesDescriptionStart": "برای مسیریابی به یک ارائهدهنده خاص، پیشوند ارائهدهنده را پیش از نام مدل قرار دهید. مثال:",
+ "modelPrefixesDescriptionEnd": "به GitHub Copilot مسیریابی میشود.",
+ "provider": "ارائهدهنده",
+ "type": "نوع",
+ "troubleshootingModelRouting": "اگر مسیریابی مدل در کلاینت ناموفق بود، ارائهدهنده/مدل را بهطور صریح مشخص کنید (برای مثال: gh/gpt-5.1-codex).",
+ "troubleshootingAmbiguousModels": "اگر با خطاهای مبهم مدل مواجه شدید، بهجای شناسهٔ مدل بدون پیشوند، یک پیشوند ارائهدهنده انتخاب کنید.",
+ "troubleshootingCodexFamily": "برای مدلهای خانوادهٔ GitHub Codex، مدل را بهصورت gh/codex-model نگه دارید؛ مسیریاب بهطور خودکار /responses را انتخاب میکند.",
+ "troubleshootingTestConnection": "پیش از آزمایش از طریق IDEها یا کلاینتهای خارجی، از داشبورد > ارائهدهندگان > آزمایش اتصال استفاده کنید.",
+ "troubleshootingCircuitBreaker": "اگر برای ارائهدهندهای مدارشکن باز نمایش داده میشود، تا پایان دورهٔ انتظار صبر کنید یا برای جزئیات صفحهٔ سلامت را بررسی کنید.",
+ "troubleshootingOAuth": "برای ارائهدهندگان OAuth، اگر توکنها منقضی شدند، دوباره احراز هویت کنید. نشانگر وضعیت کارت ارائهدهنده را بررسی کنید.",
+ "endpointCompletionsNote": "نقطهٔ پایانی قدیمی تکمیل متن برای تولید متن.",
+ "endpointModerationsNote": "تعدیل محتوا و طبقهبندی ایمنی.",
+ "endpointRerankNote": "رتبهبندی مجدد اسناد برای تولید تقویتشده با بازیابی (Cohere، Jina).",
+ "endpointSearchNote": "جستوجوی وب با ۵ ارائهدهنده (Serper، Brave، Exa، Tavily، Perplexity).",
+ "endpointSearchAnalyticsNote": "تحلیلها و معیارهای درخواستهای جستوجو.",
+ "endpointVideoNote": "تولید ویدئو (گردشکارهای ComfyUI، SD WebUI).",
+ "endpointMusicNote": "تولید موسیقی از طریق گردشکارهای ComfyUI.",
+ "endpointMessagesNote": "نقطهٔ پایانی پیامهای بومی Anthropic.",
+ "endpointCountTokensNote": "شمارش توکنهای یک محمولهٔ پیام مشخص.",
+ "endpointFilesNote": "بارگذاری فایل برای ورودیهای چندوجهی.",
+ "endpointBatchesNote": "پردازش دستهای برای درخواستهای انبوه API.",
+ "endpointWsNote": "نقطهٔ پایانی WebSocket برای پخش جریانی بلادرنگ.",
+ "mgmtProvidersListNote": "فهرستکردن همهٔ اتصالهای ثبتشدهٔ ارائهدهندگان.",
+ "mgmtProvidersCreateNote": "ایجاد اتصال جدید برای ارائهدهنده.",
+ "mgmtProvidersUpdateNote": "بهروزرسانی اتصال موجود ارائهدهنده.",
+ "mgmtProvidersDeleteNote": "حذف اتصال ارائهدهنده.",
+ "mgmtProvidersTestNote": "آزمایش اتصال و احراز هویت یک ارائهدهنده.",
+ "mgmtProvidersModelsNote": "فهرستکردن مدلهای موجود برای یک ارائهدهندهٔ خاص.",
+ "mgmtSettingsGetNote": "دریافت تنظیمات فعلی برنامه.",
+ "mgmtSettingsUpdateNote": "بهروزرسانی تنظیمات برنامه.",
+ "mgmtPayloadRulesGetNote": "دریافت قواعد تبدیل محموله.",
+ "mgmtPayloadRulesUpdateNote": "بهروزرسانی قواعد تبدیل محموله.",
+ "mcpToolsTitle": "ابزارهای MCP",
+ "mcpToolsDescription": "OmniRoute تعداد {count} ابزار را از طریق Model Context Protocol برای هماهنگسازی عاملها ارائه میکند.",
+ "mcpToolsCount": "{count} ابزار",
+ "mcpToolsToc": "ابزارهای MCP",
+ "mcpToolsRoutingTitle": "مسیریابی و کشف",
+ "mcpToolsRoutingDesc": "بررسیهای سلامت، مدیریت ترکیبها، پایش سهمیه، گزارش هزینه و دسترسی به کاتالوگ مدلها.",
+ "mcpToolsOperationsTitle": "عملیات و راهبرد",
+ "mcpToolsOperationsDesc": "شبیهسازی مسیر، محافظهای بودجه، تغییر راهبرد، پروفایلهای تابآوری و معیارهای ارائهدهندگان.",
+ "mcpToolsCacheTitle": "مدیریت حافظهٔ پنهان",
+ "mcpToolsCacheDesc": "مشاهدهٔ آمار حافظهٔ پنهان و پاکسازی حافظههای پنهان معنایی یا امضایی.",
"mcpToolsCompressionTitle": "موتورهای فشرده سازی",
"mcpToolsCompressionDesc": "فشرده سازی RTK/Brotli را پیکربندی کنید، موتورها را تعویض کنید و تجزیه و تحلیل فشرده سازی را با ترکیبی بررسی کنید.",
"mcpToolsOneProxyTitle": "1 پروکسی / تونل",
"mcpToolsOneProxyDesc": "پراکسی های خروجی را مدیریت کنید، IP های مسکونی را بچرخانید، و سلامت پراکسی را بررسی کنید.",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "حافظه",
+ "mcpToolsMemoryDesc": "جستجو، افزودن و پاکسازی ورودیهای حافظهٔ پایدار مکالمه.",
+ "mcpToolsSkillsTitle": "مهارتها",
+ "mcpToolsSkillsDesc": "فهرستکردن، فعالسازی، اجرا و نظارت بر اجرای مهارتهای سفارشی.",
+ "featureAutoComboTitle": "ترکیب خودکار",
+ "featureAutoComboText": "ایجاد خودکار ترکیبهای بهینه بر اساس ارائهدهندگان متصل، الگوهای استفاده و قابلیتهای مدل شما.",
+ "featureSearchTitle": "جستجوی وب",
+ "featureSearchText": "جستجوی یکپارچهٔ وب با ۵ ارائهدهنده (Serper، Brave، Exa، Tavily، Perplexity)، شامل تحلیل و ردیابی هزینه.",
+ "featureMemoryTitle": "سیستم حافظه",
+ "featureMemoryText": "حافظهٔ پایدار مکالمه با قابلیت استخراج، تزریق، بازیابی و خلاصهسازی در نشستهای مختلف.",
+ "featureSkillsTitle": "چارچوب مهارتها",
+ "featureSkillsText": "سیستم مهارت توسعهپذیر با مهارتهای داخلی و سفارشی، اجرای ایزوله، رهگیری درخواستها و تزریق زمینه.",
+ "featureAcpTitle": "ارتباط عاملها",
+ "featureAcpText": "رجیستری پروتکل ارتباط عاملها (ACP) برای مدیریت گردشکارهای عاملبهعامل و هماهنگسازی ابزارها.",
+ "protocolAcpTitle": "ACP (ارتباط عاملها)",
+ "protocolAcpDesc": "ثبت و مدیریت عاملها از طریق رجیستری ACP برای ارتباط بین عاملها و اشتراکگذاری ابزارها.",
+ "protocolAcpStep1": "برای مشاهدهٔ عاملهای ACP ثبتشده، به داشبورد ← عاملها بروید.",
+ "protocolAcpStep2": "عاملهای جدید را همراه با قابلیتها و پیکربندی نقطهٔ پایانی ثبت کنید.",
+ "protocolAcpStep3": "برای پیکربندی کانالهای ارتباطی عاملها از ابزارهای CLI استفاده کنید.",
"metadataTitleTemplate": "%s — مستندات OmniRoute",
"metadataDefaultTitle": "مستندات OmniRoute",
"metadataDescription": "مستندات جامع برای دروازه OmniRoute AI — راهاندازی، API، فشردهسازی، استقرار و بیشتر.",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "سیاست حفظ حریم خصوصی",
+ "termsOfService": "شرایط استفاده از خدمات",
+ "providerConfigurations": "پیکربندیهای ارائهدهندگان",
+ "apiKeys": "کلیدهای API",
+ "usageLogs": "گزارشهای استفاده",
+ "applicationSettings": "تنظیمات برنامه",
+ "viewExportAnalytics": "مشاهده و برونبری تحلیلهای استفاده",
+ "clearHistory": "پاککردن تاریخچهٔ استفاده در هر زمان",
+ "configureRetention": "پیکربندی سیاستهای نگهداری گزارشها",
+ "backupRestore": "پشتیبانگیری و بازیابی پایگاه دادهٔ شما",
+ "privacyMetadataTitle": "سیاست حفظ حریم خصوصی | OmniRoute",
+ "privacyMetadataDescription": "سیاست حفظ حریم خصوصی برای مسیریاب پروکسی API هوش مصنوعی OmniRoute.",
+ "termsMetadataTitle": "شرایط استفاده از خدمات | OmniRoute",
+ "termsMetadataDescription": "شرایط استفاده از خدمات برای مسیریاب پروکسی API هوش مصنوعی OmniRoute.",
+ "backToHome": "بازگشت به صفحهٔ اصلی",
+ "lastUpdated": "آخرین بهروزرسانی: {date}",
+ "policyLastUpdatedDate": "۱۳ فوریهٔ ۲۰۲۶",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "سؤالی دارید؟ از",
+ "githubRepository": "مخزن GitHub ما دیدن کنید",
+ "privacySection1Title": "۱. معماری محلیمحور",
+ "privacySection1Text": "OmniRoute بهعنوان یک برنامهٔ محلیمحور طراحی شده است. تمام پردازش و ذخیرهسازی دادهها بهطور کامل روی دستگاه شما انجام میشود. هیچ سرور متمرکزی اطلاعات شما را جمعآوری نمیکند.",
+ "privacySection2Title": "۲. دادههایی که ذخیره میکنیم",
+ "privacyDataStoredIn": "دادههای زیر بهصورت محلی در این مکان ذخیره میشوند:",
+ "privacyDataProviderConfigurationsDesc": "نشانیهای اتصال، انواع ارائهدهندگان و تنظیمات اولویت",
+ "privacyDataApiKeysDesc": "برای احراز هویت نزد ارائهدهندگان هوش مصنوعی، رمزگذاری و بهصورت محلی ذخیره میشوند",
+ "privacyDataUsageLogsDesc": "تعداد درخواستها، میزان مصرف توکن، نام مدلها، مُهرهای زمانی و زمان پاسخدهی",
+ "privacyDataApplicationSettingsDesc": "ترجیحات پوسته، راهبرد مسیریابی و پیکربندیهای ترکیبی",
+ "privacySection3Title": "۳. بدون تلهمتری",
+ "privacySection3Text": "OmniRoute هیچگونه داده تلهمتری، تحلیلی یا گزارش خرابی جمعآوری نمیکند. هیچ دادهای برای ما یا اشخاص ثالث ارسال نمیشود. الگوهای استفاده، فراخوانیهای API و پیکربندیهای شما کاملاً خصوصی باقی میمانند.",
+ "privacySection4Title": "۴. ارائهدهندگان هوش مصنوعی شخص ثالث",
+ "privacySection4Text": "هنگامی که از طریق OmniRoute فراخوانی API انجام میدهید، درخواستهای شما به ارائهدهندگان هوش مصنوعی پیکربندیشده (برای مثال: OpenAI، Anthropic و Google) هدایت میشوند. نحوه رسیدگی این ارائهدهندگان به دادههای شما تابع سیاستهای حریم خصوصی خودشان است. لطفاً موارد زیر را بررسی کنید:",
+ "privacyOpenAiPolicy": "سیاست حریم خصوصی OpenAI",
+ "privacyAnthropicPolicy": "سیاست حریم خصوصی Anthropic",
+ "privacyGooglePolicy": "سیاست حریم خصوصی Google",
+ "privacySection5Title": "۵. همگامسازی ابری (اختیاری)",
+ "privacySection5Text": "اگر قابلیت اختیاری همگامسازی ابری را فعال کنید، ممکن است پیکربندی ارائهدهندگان و کلیدهای API به یک نقطه پایانی ابری پیکربندیشده ارسال شوند. این قابلیت بهطور پیشفرض غیرفعال است و فعالسازی آن به موافقت صریح شما نیاز دارد.",
+ "privacySection6Title": "۶. ثبت گزارش",
+ "privacyLoggingIntro": "گزارشهای درخواست را میتوان از طریق تنظیمات داشبورد پیکربندی کرد. شما میتوانید:",
+ "privacySection7Title": "۷. حقوق شما",
+ "privacySection7TextStart": "ازآنجاکه همه دادهها بهصورت محلی ذخیره میشوند، کنترل کامل آنها در اختیار شماست. میتوانید در هر زمان با حذف",
+ "privacySection7TextEnd": "دایرکتوری یا استفاده از قابلیتهای پشتیبانگیری و بازیابی پایگاه داده در داشبورد، دادههای خود را حذف کنید.",
+ "termsSection1Title": "۱. نمای کلی",
+ "termsSection1Text": "OmniRoute یک مسیریاب پراکسی محلیمحور برای API هوش مصنوعی است که کاملاً روی دستگاه شما اجرا میشود. این نرمافزار درخواستها را با قابلیت توازن بار، جایگزینی هنگام خرابی و ردیابی مصرف به چندین ارائهدهنده هوش مصنوعی هدایت میکند.",
+ "termsSection2Title": "۲. مسئولیتهای کاربر",
+ "termsResponsibilityApiKeys": "مسئولیت مدیریت کلیدهای API و اطلاعات ورود خود برای ارائهدهندگان هوش مصنوعی شخص ثالث (OpenAI، Anthropic، Google و غیره) صرفاً بر عهده شماست.",
+ "termsResponsibilityCompliance": "شما باید شرایط استفاده هر ارائهدهنده هوش مصنوعی را که از طریق OmniRoute به API آن دسترسی دارید، رعایت کنید.",
+ "termsResponsibilitySecurity": "مسئولیت امنیت نصب محلی OmniRoute، از جمله تعیین رمز عبور و محدود کردن دسترسی شبکه، بر عهده شماست.",
+ "termsSection3Title": "۳. نحوه عملکرد",
+ "termsSection3Text": "OmniRoute بهعنوان یک پراکسی واسط عمل میکند. فراخوانیهای API ارسالشده به OmniRoute ترجمه شده و به ارائهدهندگان هوش مصنوعی پیکربندیشده شما هدایت میشوند. OmniRoute محتوای درخواستها یا پاسخهای شما را فراتر از ترجمه ضروری پروتکل تغییر نمیدهد.",
+ "termsSection4Title": "۴. مدیریت دادهها",
+ "termsDataStoredLocally": "تمام دادهها بهصورت محلی در یک پایگاه داده SQLite روی دستگاه شما ذخیره میشوند.",
+ "termsNoTransmission": "OmniRoute هیچ دادهای را به سرورهای خارجی ارسال نمیکند، مگر اینکه قابلیتهای همگامسازی ابری را صراحتاً فعال کنید.",
+ "termsDataLocationText": "گزارشهای استفاده، کلیدهای API و پیکربندی در این مکان ذخیره میشوند:",
+ "termsSection5Title": "۵. سلب مسئولیت",
+ "termsSection5Text": "OmniRoute «همانگونه که هست» و بدون هیچگونه ضمانتی ارائه میشود. ما مسئول هزینههای ناشی از استفاده از API، اختلال در خدمات یا از دست رفتن دادهها نیستیم. همیشه از پیکربندی خود نسخه پشتیبان تهیه کنید.",
+ "termsSection6Title": "۶. متنباز",
+ "termsSection6Text": "OmniRoute نرمافزاری متنباز است. شما میتوانید طبق شرایط مجوز آن، کد را بررسی، اصلاح و توزیع کنید."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "عاملهای CLI",
+ "description": "عاملهای CLI نصبشده روی سیستم خود را شناسایی کنید. برای شناسایی خودکار، عاملهای سفارشی اضافه کنید.",
+ "refresh": "تازهسازی",
+ "installed": "نصبشده",
+ "notFound": "یافت نشد",
+ "builtIn": "داخلی",
+ "custom": "سفارشی",
+ "remove": "حذف",
+ "addCustomAgent": "افزودن عامل سفارشی",
+ "addCustomAgentDesc": "هر ابزار CLI را برای شناسایی ثبت کنید. هنگام تازهسازی، بهطور خودکار اسکن خواهد شد.",
+ "agentName": "نام عامل",
+ "binaryName": "نام فایل اجرایی",
+ "versionCommand": "فرمان نسخه",
+ "spawnArgs": "آرگومانهای اجرا",
+ "addAgent": "افزودن عامل",
+ "scanning": "در حال اسکن سیستم برای یافتن عاملهای CLI...",
+ "opencodeIntegration": "یکپارچهسازی OpenCode",
+ "opencodeDetected": "opencode {version} شناسایی شد",
+ "opencodeDesc": "یک فایل {configFile} آمادهبهاستفاده با نشانی پایه OmniRoute و همه مدلهای موجود ایجاد کنید — آن را در ریشه پروژه خود قرار دهید و {command} را اجرا کنید.",
+ "downloadConfig": "دانلود {file}",
+ "downloaded": "دانلود شد!",
+ "setupGuideTitle": "راهنمای راهاندازی",
+ "openCliTools": "باز کردن ابزارهای CLI",
+ "setupGuideDetectCliTitle": "شناسایی CLIهای نصبشده",
+ "setupGuideDetectCliDesc": "پس از نصب یا بهروزرسانی یک CLI، روی «تازهسازی» کلیک کنید تا OmniRoute فایلهای اجرایی و نسخهها را دوباره اسکن کند.",
+ "setupGuideCustomAgentTitle": "ثبت فایل اجرایی سفارشی",
+ "setupGuideCustomAgentDesc": "اگر CLI شما در فهرست داخلی نیست، از «افزودن عامل سفارشی» استفاده کنید. نام فایل اجرایی و فرمان نسخه را وارد کنید.",
+ "setupGuideCommandMissingTitle": "رفع خطای «command not found»",
+ "setupGuideCommandMissingDesc": "مطمئن شوید فرمان CLI در PATH وجود دارد، یک نشست ترمینال جدید باز کنید و «تازهسازی» را دوباره اجرا کنید.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,155 +10498,155 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "گفتوگوی ساده",
+ "streaming": "پخش جریانی",
+ "system-prompt": "پرامپت سیستم",
+ "thinking": "تفکر",
+ "tool-calling": "فراخوانی ابزار",
+ "multi-turn": "چندنوبتی",
"vision": "چشم انداز",
"schema-coercion": "طرحواره اجبار"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "الگوی پایه گفتوگو با پیام سیستم",
+ "streaming": "الگوی پاسخهای جریانی",
+ "system-prompt": "الگو با پرامپت سیستم سفارشی",
+ "thinking": "الگو با بودجه استدلال/تفکر",
+ "tool-calling": "الگوی فراخوانی ابزار/تابع",
+ "multi-turn": "الگوی مکالمات چندنوبتی",
"vision": "قالب چند وجهی با ورودی تصویر",
"schema-coercion": "اجرای طرحواره خروجی ساختاریافته / JSON"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "شما یک دستیار هوش مصنوعی مفید هستید.",
+ "userGreeting": "سلام! امروز چطور میتوانم به شما کمک کنم؟"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "داستانی بنویس درباره"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "معنای زندگی چیست؟",
+ "systemInstruction": "پاسخی عمیق و فلسفی ارائه دهید."
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "رایانش کوانتومی را توضیح دهید"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "نام شهری که باید وضعیت آبوهوای آن دریافت شود",
+ "toolDescription": "دریافت وضعیت فعلی آبوهوا برای یک مکان",
+ "userWeather": "آبوهوای توکیو چطور است؟"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "شما یک دستیار مفید هستید.",
+ "assistantExample": "خوشحال میشوم در این مورد به شما کمک کنم.",
+ "userInitial": "در این مورد به کمک نیاز دارم:",
+ "userFollowUp": "میتوانید در این مورد بیشتر توضیح دهید؟"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "مدیریت حافظهٔ نهان",
+ "description": "کارایی حافظهٔ نهان پرامپت ارائهدهنده و استفادهٔ مجدد محلی از پاسخهای معنایی را پایش کنید.",
+ "refresh": "تازهسازی",
+ "clearAll": "پاکسازی حافظهٔ نهان معنایی",
+ "memoryEntries": "ورودیهای حافظه",
+ "memoryEntriesSub": "LRU درونحافظهای",
+ "dbEntries": "ورودیهای پایگاه داده",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "اصابتهای حافظهٔ نهان",
+ "cacheHitsSub": "از مجموع {total}",
+ "tokensSaved": "توکنهای صرفهجوییشده",
+ "tokensSavedSub": "برآوردشده بر اساس اصابتها",
+ "hitRate": "نرخ اصابت",
+ "performance": "عملکرد حافظهٔ نهان",
+ "autoRefresh": "هر {seconds} ثانیه بهطور خودکار تازهسازی میشود",
+ "hits": "اصابتها",
+ "misses": "عدم اصابتها",
+ "total": "مجموع",
+ "behavior": "رفتار حافظهٔ نهان",
+ "behaviorDeterministic": "فقط درخواستهای غیراستریمی با temperature=0 در حافظهٔ نهان ذخیره میشوند.",
+ "behaviorBypass": "با هدر {header} از آن عبور کنید.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "TTL پیشفرض: ۳۰ دقیقه. از طریق {envVar} پیکربندی کنید.",
+ "idempotency": "لایهٔ همتوانی",
+ "activeDedupKeys": "کلیدهای فعال حذف تکرار",
+ "dedupWindow": "بازهٔ حذف تکرار",
+ "clearSuccess": "حافظهٔ نهان معنایی پاک شد. {count} ورودی حذف شد.",
+ "clearError": "پاکسازی حافظهٔ نهان ناموفق بود.",
+ "unavailable": "حافظهٔ نهان در دسترس نیست",
+ "unavailableDesc": "دریافت آمار حافظهٔ نهان ممکن نشد. مطمئن شوید سرور در حال اجرا است.",
"loadingCacheAria": "در حال بارگذاری حافظه پنهان",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "حافظهٔ نهان پرامپت (سمت ارائهدهنده)",
+ "semanticCache": "حافظهٔ نهان معنایی",
+ "promptCacheSectionDesc": "فعالیت کش پرامپت در سمت ارائهدهنده را بر اساس تاریخچه مصرف نمایش میدهد تا ببینید کنترل کش کجا فعال است و چه میزان استفاده مجدد از ورودی دارید.",
+ "promptTrendDesc": "حجم درخواستهای ساعتی، پوشش کش و حجم خواندن از کش در ۲۴ ساعت گذشته.",
+ "cachedRequests": "درخواستهای کششده",
+ "cachedRequests24h": "درخواستهای کششده (۲۴ ساعت)",
+ "cacheHitRate": "نرخ اصابت کش",
+ "cacheRate": "نرخ کش",
+ "cacheRateDesc": "از کل درخواستها",
+ "cachedTokens": "توکنهای خواندهشده از کش",
+ "cacheCreationTokens": "توکنهای نوشتهشده در کش",
+ "cacheMetrics": "معیارهای کش پرامپت",
+ "withCacheControl": "با کنترل کش",
+ "cachedTokensRead": "خواندهشده از کش",
+ "cacheCreationWrite": "نوشتهشده در کش",
+ "cacheReuseRatio": "نسبت استفاده مجدد از کش",
+ "cacheReuseRatioDesc": "توکنهای خواندهشده از کش / کل توکنهای ورودی",
+ "estCostSaved": "صرفهجویی تخمینی در هزینه",
+ "lastUpdated": "آخرین بهروزرسانی",
+ "hoursTracked": "ساعت پایششده",
+ "busiestHour": "پرترافیکترین ساعت",
+ "peakCacheRate": "بیشترین نرخ کش",
+ "trendHour": "ساعت",
+ "activityVolume": "فعالیت",
+ "requestsShort": "درخواست",
+ "inputShort": "ورودی",
+ "cachedShort": "کششده",
+ "writeShort": "نوشتن",
+ "resetting": "در حال بازنشانی...",
+ "resetMetrics": "بازنشانی معیارها",
+ "byProvider": "تفکیک بر اساس ارائهدهنده",
+ "providerCacheRateDesc": "هر ارائهدهنده مجموع توکنهای ورودی، توکنهای خواندهشده از کش و توکنهای نوشتهشده در کش را نمایش میدهد تا بتوانید نسبت استفاده مجدد را با مقادیر خام بررسی کنید.",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "درخواستها",
+ "inputTokens": "کل توکنهای ورودی",
+ "cachedTokensCol": "خواندن از کش",
+ "cacheCreation": "نوشتن در کش",
+ "trend24h": "روند کش (۲۴ ساعت)",
+ "peakCached": "بیشترین مقدار کششده",
+ "cached": "کششده",
+ "overview": "نمای کلی",
"tableProvider": "ارائهدهنده",
"tableModel": "مدل",
"performanceTitle": "عملکرد",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "کش قطعی پاسخ خود OmniRoute. در صورت فعال بودن، درخواستهای تکراری و غیرجریانی با temperature=0 میتوانند بدون مراجعه به ارائهدهنده بالادستی، بهصورت محلی پاسخ داده شوند.",
+ "semanticCacheDisabledDesc": "کش معنایی غیرفعال است. تا زمانی که آن را دوباره در تنظیمات فعال نکنید، OmniRoute از استفاده مجدد محلی پاسخها صرفنظر میکند.",
+ "semanticEntriesDesc": "رکوردهای کش معنایی ماندگار که در حال حاضر در SQLite ذخیره شدهاند. فعالیت کش پرامپت در سمت ارائهدهنده در اینجا فهرست نمیشود.",
+ "searchEntries": "جستجوی ورودیها...",
+ "search": "جستجو",
+ "loading": "در حال بارگذاری...",
+ "entriesLoadError": "بارگذاری ورودیهای کش معنایی ناموفق بود.",
+ "noEntries": "هیچ ورودی کشی یافت نشد",
+ "noPromptCacheData": "هنوز هیچ فعالیتی برای کش پرامپت در سمت ارائهدهنده ثبت نشده است.",
+ "noTrendData": "در ۲۴ ساعت گذشته هیچ فعالیتی برای کش پرامپت ثبت نشده است.",
+ "signature": "امضا",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "ایجادشده",
+ "expires": "انقضا",
+ "actions": "عملیات",
+ "deduplicatedRequests": "درخواستهای تکراری حذفشده",
+ "savedCalls": "فراخوانیهای API صرفهجوییشده",
+ "totalProcessed": "مجموع درخواستهای پردازششده",
+ "disabled": "غیرفعال",
+ "totalRequests": "مجموع درخواستها",
"reasoningCache": "بازپخش استدلال",
"reasoningCacheDesc": "تفکر مدل را برای جریان های فراخوانی ابزار چند چرخشی حفظ می کند",
"reasoningEntries": "ورودی های فعال",
"reasoningReplayRate": "نرخ پخش مجدد",
"reasoningReplays": "مجموع تکرارها",
"reasoningCharsCached": "کاراکترهای ذخیره شده",
- "reasoningMisses": "Cache Misses",
+ "reasoningMisses": "عدم تطابق با کش",
"reasoningByProvider": "توسط ارائه دهنده",
"reasoningByModel": "توسط مدل",
"reasoningRecentEntries": "ورودی های اخیر",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}m پیش",
"hoursAgo": "{hours}h پیش",
"daysAgo": "{days}d پیش",
- "entries": "Entries"
+ "entries": "ورودیها"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
- "ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "levelGlobal": "سراسری",
+ "levelProvider": "ارائهدهنده",
+ "levelCombo": "ترکیب",
+ "levelKey": "کلید",
+ "levelDirect": "مستقیم (بدون پروکسی)",
+ "titleGlobal": "پیکربندی سراسری پروکسی",
+ "titleLevel": "پروکسی {level} — {label}",
+ "loading": "در حال بارگذاری پیکربندی پروکسی...",
+ "inheritingFrom": "ارثبری از",
+ "source": "منبع",
+ "savedProxy": "پروکسی ذخیرهشده",
+ "custom": "سفارشی",
+ "selectSavedProxyPlaceholder": "پروکسی ذخیرهشده را انتخاب کنید...",
+ "proxyType": "نوع پروکسی",
+ "host": "میزبان",
+ "hostPlaceholder": "1.2.3.4 یا proxy.example.com",
+ "port": "درگاه",
+ "authOptional": "احراز هویت (اختیاری)",
+ "username": "نام کاربری",
+ "usernamePlaceholder": "نام کاربری",
+ "password": "رمز عبور",
+ "passwordPlaceholder": "رمز عبور",
+ "connected": "متصل",
+ "ip": "آیپی:",
+ "connectionFailed": "اتصال ناموفق بود",
+ "testConnection": "آزمایش اتصال",
+ "clear": "پاک کردن",
+ "cancel": "لغو",
+ "save": "ذخیره",
+ "errorSelectSavedProxy": "لطفاً ابتدا یک پروکسی ذخیرهشده انتخاب کنید.",
+ "errorSelectProxyFirst": "لطفاً ابتدا یک پروکسی انتخاب کنید.",
+ "errorProxyNotFound": "پروکسی انتخابشده یافت نشد.",
+ "errorClearSavedProxy": "پاک کردن پروکسی ذخیرهشده ناموفق بود",
+ "errorSaveProxy": "ذخیره پیکربندی پروکسی ناموفق بود",
+ "errorClearProxy": "پاک کردن پیکربندی پروکسی ناموفق بود",
+ "errorSocks5Hidden": "SOCKS5 پیکربندی شده است، اما چون NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false است، پنهان شده است."
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "اتصال {providerName}",
+ "waiting": "در انتظار مجوز",
+ "completeAuthInPopup": "مجوزدهی را در پنجره بازشو تکمیل کنید.",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "پنجره بازشو مسدود شده است؟ URL را بهصورت دستی وارد کنید",
+ "deviceCodeVisitUrl": "از URL زیر بازدید کرده و کد را وارد کنید:",
+ "deviceCodeVerificationUrl": "URL تأیید",
+ "deviceCodeYourCode": "کد شما",
+ "deviceCodeWaiting": "در انتظار مجوز...",
"googleLoopbackTitle": "ورود به حساب Google از این آدرس نمیتواند کامل شود",
"googleLoopbackWhatHappens": "گوگل تنها زمانی کد تأیید را منتشر میکند که {redirectUri} از مرورگری که ورود به سیستم را تأیید میکند قابل دسترسی باشد. در اینجا، این آدرس به این کامپیوتر اشاره دارد، نه به سرور OmniRoute — بنابراین صفحه تأیید به جای هدایت، متوقف میشود و هیچ URL بازگشتی برای کپی وجود ندارد.",
"googleLoopbackRecommended": "پیشنهاد شده — این را روی کامپیوتر خود اجرا کنید، سپس نتیجه را در زیر بچسبانید:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "یا پورت داشبورد را از طریق SSH فوروارد کنید و OmniRoute را از طریق تونل بارگذاری کنید:",
"googleLoopbackTunnelNote": "{userPlaceholder} را با نام کاربری SSH خود جایگزین کنید، ترمینال را باز نگه دارید، سپس {localUrl} را باز کنید و دوباره از آنجا متصل شوید.",
"googleLoopbackHeadlessAlt": "برای استفاده کاملاً بدون سر و صدا بدون هیچ بازگشتی محلی، اعتبارنامههای OAuth گوگل خود را پیکربندی کنید به همراه یک URL پایه عمومی.",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "دسترسی از راه دور: از آنجا که از راه دور به OmniRoute دسترسی دارید، پس از مجوزدهی یک صفحه خطا خواهید دید (localhost یافت نشد). این طبیعی است — کافی است URL کامل را از نوار آدرس مرورگرتان کپی کرده و در زیر جایگذاری کنید.",
"loopbackMismatchTitle": "ورود از این آدرس نمیتواند کامل شود",
"loopbackMismatchWhatHappened": "چه اتفاقی در حال وقوع است",
"loopbackMismatchExplanation": "پس از اینکه شما ورود را تأیید کردید، {providerName} همیشه مرورگر را به {redirectUri} بازمیگرداند. آن آدرس به کامپیوتری که این مرورگر را اجرا میکند اشاره دارد، نه به سرور OmniRoute — بنابراین کد تأیید هرگز به OmniRoute نمیرسد و ارائهدهنده بدون نمایش خطا، ورود را ناموفق میکند.",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "در این مرورگر، OmniRoute را از طریق تونل دوباره باز کنید:",
"loopbackMismatchStep3": "سپس {providerName} را دوباره از تب جدید متصل کنید. حالا callback به سرور میرسد و ورود به سیستم به طور عادی کامل میشود.",
"loopbackMismatchAlternative": "دسترسی SSH ندارید؟ اگر این ارائهدهنده یک زبانه وارد کردن توکن ارائه میدهد، به جای آن با یک توکن متصل شوید — آن مسیر از یک بازگشت حلقهای استفاده نمیکند.",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "مرحله ۱: این URL را در مرورگر خود باز کنید",
+ "copy": "کپی",
+ "step2PasteCallback": "مرحله ۲: URL بازگشتی یا کد مجوز را اینجا جایگذاری کنید",
+ "step2Hint": "پس از مجوزدهی، URL بازگشتی کامل را جایگذاری کنید. برای Claude Code و Cline، میتوانید کد احراز هویت را نیز مستقیماً جایگذاری کنید؛ برای مثال code#state.",
+ "connect": "اتصال",
+ "cancel": "لغو",
+ "success": "اتصال با موفقیت انجام شد!",
+ "successMessage": "حساب {providerName} شما متصل شد.",
+ "done": "تمام",
+ "error": "اتصال ناموفق بود",
+ "tryAgain": "تلاش مجدد",
"errorSessionIncomplete": "نشست OAuth ناقص است (URI بازگشت یا تأییدکننده کد گم شده است). اتصال را دوباره راهاندازی کنید و دوباره تلاش کنید.",
"errorExchangeFailed": "تبادل ناموفق بود",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: اعتبارنامههای پیشفرض Google OAuth فقط بر روی localhost کار میکنند. برای استفاده از راه دور، اعتبارنامههای OAuth خود را از طریق متغیرهای محیطی پیکربندی کنید: ANTIGRAVITY_OAUTH_CLIENT_ID و ANTIGRAVITY_OAUTH_CLIENT_SECRET. بخش README را با عنوان 'OAuth on a Remote Server' مشاهده کنید.",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "کلید API موجود Devin را از یک جلسه تأیید شده Devin بچسبانید. در دسترس بودن صادرات کلید و مراحل آن بسته به نسخه و حساب Devin متفاوت است.",
"devinPasteDescription": "کلید API WINDSURF خود را ارائه دهید (که از طریق `devin auth login` یا از طریق دستور \"Windsurf: Provide Auth Token\" در IDE Windsurf به دست آمده است).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "احراز هویت Grok Build در auth.json",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "کلید API / توکن",
"saving": "در حال ذخیرهسازی…",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "ورود با Cursor",
+ "tabImport": "وارد کردن توکن",
+ "loginDescription": "صفحه ورود Cursor را در مرورگر باز میکند. در Docker نیز کار میکند — ورود را در مرورگر میزبان خود تأیید کنید، سپس به اینجا بازگردید.",
+ "loginWithCursor": "ورود با Cursor",
+ "startingLogin": "در حال شروع…",
+ "waitingApproval": "در انتظار تأیید ورود به Cursor…",
+ "openUrlHint": "اگر مرورگر باز نشد:",
+ "openLoginLink": "باز کردن صفحه ورود",
+ "cancelLogin": "لغو ورود",
+ "autoDetecting": "در حال شناسایی خودکار توکنها...",
+ "readingFromCursor": "در حال خواندن از Cursor IDE یا cursor-agent",
+ "tokensAutoDetected": "توکنها با موفقیت بهصورت خودکار از Cursor IDE شناسایی شدند!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "در Docker اجرا میکنید؟ بهتر است از «ورود با Cursor» استفاده کنید. وارد کردن خودکار از IDE و cursor-agent معمولاً درون کانتینر در دسترس نیستند. به docs/providers/CURSOR-DOCKER.md مراجعه کنید.",
+ "accessToken": "توکن دسترسی",
+ "refreshToken": "توکن نوسازی",
+ "refreshTokenPlaceholder": "اختیاری — نوسازی خودکار توکن را فعال میکند",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "توکن دسترسی بهطور خودکار وارد میشود...",
+ "machineId": "شناسه دستگاه",
+ "optional": "(اختیاری)",
+ "machineIdPlaceholder": "شناسه دستگاه بهطور خودکار وارد میشود...",
+ "importing": "در حال وارد کردن...",
+ "importToken": "وارد کردن توکن",
+ "cancel": "لغو",
+ "errorAutoDetect": "شناسایی خودکار توکنها ممکن نشد",
+ "errorAutoDetectFailed": "شناسایی خودکار توکنها ناموفق بود",
+ "errorEnterToken": "لطفاً توکن دسترسی را وارد کنید",
+ "errorImportFailed": "وارد کردن ناموفق بود",
+ "errorLoginStart": "شروع ورود به Cursor ناموفق بود",
+ "errorLoginPoll": "ورود به Cursor ناموفق بود",
+ "errorLoginTimeout": "مهلت ورود به Cursor به پایان رسید — دوباره تلاش کنید"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "پیکربندی قیمتگذاری",
+ "loading": "در حال بارگیری دادههای قیمتگذاری...",
+ "pricingRatesFormat": "قالب نرخهای قیمتگذاری",
+ "ratesDescription": "همه نرخها بر حسب دلار بهازای هر یک میلیون توکن ($/1M tokens) هستند. مثال: نرخ ورودی 2.50 بهمعنای $2.50 برای هر 1,000,000 توکن ورودی است.",
+ "model": "مدل",
+ "input": "ورودی",
+ "output": "خروجی",
+ "cached": "ذخیرهشده در حافظه نهان",
+ "reasoning": "استدلال",
+ "cacheCreation": "ایجاد حافظه نهان",
+ "noPricingData": "هیچ دادهای برای قیمتگذاری موجود نیست",
+ "resetToDefaults": "بازنشانی به پیشفرضها",
+ "cancel": "لغو",
+ "saving": "در حال ذخیره...",
+ "saveChanges": "ذخیره تغییرات",
+ "resetConfirm": "همه قیمتها به مقادیر پیشفرض بازنشانی شوند؟ این عملیات قابل بازگشت نیست.",
+ "errorSaveFailed": "ذخیره قیمتگذاری ناموفق بود",
+ "errorResetFailed": "بازنشانی قیمتگذاری ناموفق بود"
},
"proxyRegistry": {
"selectAllProxies": "انتخاب همه پروکسیها",
"selectProxy": "انتخاب {name}",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "رجیستری پراکسی",
+ "description": "پراکسیهای قابل استفاده مجدد را ذخیره و تخصیصها را پیگیری کنید.",
+ "importLegacy": "وارد کردن دادههای قدیمی",
+ "bulkAssign": "تخصیص گروهی",
+ "addProxy": "افزودن پراکسی",
+ "loading": "در حال بارگذاری پراکسیها...",
+ "noProxies": "هنوز هیچ پراکسیای ذخیره نشده است.",
+ "tableName": "نام",
+ "tableEndpoint": "نقطه پایانی",
+ "tableStatus": "وضعیت",
+ "tableHealth": "سلامت (۲۴ ساعت)",
+ "tableUsage": "میزان استفاده",
+ "tableActions": "عملیات",
+ "test": "آزمایش",
+ "edit": "ویرایش",
+ "delete": "حذف",
+ "modalCreateTitle": "ایجاد پراکسی",
+ "modalEditTitle": "ویرایش پراکسی",
+ "labelName": "نام",
+ "labelType": "نوع",
"labelFamily": "خانواده IP",
"familyAuto": "خودکار (dual-stack)",
"familyIpv4": "فقط IPv4",
"familyIpv6": "فقط IPv6",
"familyHint": "خانواده آدرس خروجی. حالت خودکار dual-stack را حفظ میکند؛ IPv4/IPv6 این پروکسی را به آن خانواده پین میکند (از نشت v4 در پروکسیهای فقط IPv6 جلوگیری میکند).",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "میزبان",
+ "labelPort": "درگاه",
+ "labelUsername": "نام کاربری",
+ "labelPassword": "رمز عبور",
+ "labelRegion": "منطقه",
+ "labelStatus": "وضعیت",
+ "labelNotes": "یادداشتها",
+ "usernamePlaceholderEdit": "برای حفظ نام کاربری فعلی، این قسمت را خالی بگذارید",
+ "passwordPlaceholderEdit": "برای حفظ رمز عبور فعلی، این قسمت را خالی بگذارید",
+ "statusActive": "فعال",
+ "statusInactive": "غیرفعال",
+ "cancel": "لغو",
+ "save": "ذخیره",
+ "bulkModalTitle": "تخصیص گروهی پروکسی",
+ "bulkLabelScope": "دامنه",
+ "bulkLabelProxy": "پروکسی",
+ "bulkClearAssignment": "(پاک کردن تخصیص)",
+ "bulkLabelScopeIds": "شناسههای دامنه (جداشده با ویرگول یا خط جدید)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "اعمال",
"labelScope": "محدوده",
"labelProxy": "پروکسی",
"scopeGlobal": "سراسری",
@@ -10893,22 +10904,22 @@
"bulkImportErrorInvalidPort": "PORT نامعتبر (باید 1-65535 باشد)",
"bulkImportErrorInvalidType": "TYPE نامعتبر (از http، https، یا socks5 استفاده کنید)",
"bulkImportErrorInvalidStatus": "وضعیت نامعتبر (استفاده از فعال یا غیرفعال)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "بارگیری رجیستری پروکسی ناموفق بود",
+ "errorNameHostRequired": "نام و میزبان الزامی هستند",
+ "errorSaveFailed": "ذخیره پروکسی ناموفق بود",
+ "errorDeleteFailed": "حذف پروکسی ناموفق بود",
+ "errorForceDeleteConfirm": "این پروکسی هنوز تخصیص داده شده است. حذف اجباری انجام شود و همه تخصیصها پاک شوند؟",
+ "errorMigrateFailed": "انتقال پیکربندی قدیمی پروکسی ناموفق بود",
+ "errorBulkFailed": "اجرای تخصیص گروهی ناموفق بود",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "ناموفق",
+ "successRate": "{rate}٪ موفقیت",
+ "avgLatency": "میانگین {latency} میلیثانیه",
+ "assignmentsCount": "{count} تخصیص",
"noData": "—",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} میلیثانیه",
"testFailure": "✗ {error}",
"repair": "ترمیم",
"relayAuthMissing": "احراز هویت مفقود شده",
@@ -10957,6 +10968,9 @@
"strategyLatency": "بهینهشده برای تاخیر",
"poolMembersLabel": "اعضای استخر ({count})",
"poolNoMembers": "هنوز هیچ پروکسی در این استخر وجود ندارد.",
+ "poolEgressObservation": "{exits, plural, one {# خروجی} other {# خروجی}} استفادهشده توسط {connections, plural, one {# اتصال} other {# اتصال}} · حداکثر {max} روی یک خروجی · در {hours} ساعت گذشته",
+ "poolEgressObservationEmpty": "در {hours} ساعت گذشته هیچ ترافیکی مشاهده نشد",
+ "poolEgressObservationHint": "محاسبهشده از گزارش پراکسی در بازهٔ زمانی: آدرسهای IP خروجی متمایز مشاهدهشده برای اعضای این مخزن و اتصالهای OmniRoute که از آنها استفاده کردهاند. «روی یک خروجی» به معنای کل بازهٔ زمانی است، نه بهطور همزمان. قفل موقت 429 برای هر IP فقط اتصالهای همان خانوادهٔ ارائهدهنده را متوقف میکند.",
"poolRemove": "حذف",
"poolRemoveFailed": "حذف پروکسی از استخر ناموفق بود",
"poolAddLabel": "افزودن یک پروکسی",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "ذخیره تخصیص استخر ناموفق بود"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "محیط آزمایش مدل",
+ "description": "هر مدلی را مستقیماً از داشبورد آزمایش کنید. ارائهدهنده، مدل و نوع نقطه پایانی را انتخاب کنید، سپس درخواستی ارسال کنید تا پاسخ خام را ببینید.",
+ "endpoint": "نقطه پایانی",
+ "provider": "ارائهدهنده",
+ "model": "مدل",
+ "accountKey": "حساب / کلید",
+ "autoAccounts": "خودکار ({count} حساب)",
+ "noAccounts": "بدون حساب",
+ "send": "ارسال",
+ "cancel": "لغو",
+ "audioFile": "فایل صوتی",
+ "attachImages": "پیوست کردن تصاویر (Vision)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "حداکثر ۴ تصویر",
+ "selectAudioFile": "فایل صوتی را برای رونویسی انتخاب کنید (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "پاک کردن همه",
+ "request": "درخواست",
+ "response": "پاسخ",
+ "transcription": "رونویسی",
+ "copy": "کپی",
+ "resetToDefault": "بازنشانی به پیشفرض",
+ "downloadAudio": "دانلود صدا",
+ "copyText": "کپی متن",
+ "transcriptionHint": "رونویسی از multipart/form-data استفاده میکند. فایل صوتی را در بالا بارگذاری کنید — JSON زیر پارامترهای اضافی (مدل، زبان) را کنترل میکند.",
+ "imagesGenerated": "{count} تصویر تولید شد",
+ "generatedImage": "تصویر تولیدشده {index}",
+ "save": "ذخیره",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "تکمیلهای چت",
+ "responses": "پاسخها",
"completions": "تکمیلها",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "تولید تصویر",
+ "embeddings": "تعبیهها",
+ "speech": "تبدیل متن به گفتار",
+ "transcription": "رونویسی صوتی",
+ "video": "تولید ویدئو",
+ "music": "تولید موسیقی",
"moderations": "نظارتها",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "رتبهبندی مجدد",
+ "search": "جستوجوی وب",
"webFetch": "واکشی وب"
},
"conversationalChat": "چت مکالمه",
"clearChat": "پاک کردن چت",
"typeMessagePlaceholder": "یک پیام تایپ کنید... (Shift+Enter برای خط جدید)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "گفتوگو",
+ "tabCompare": "مقایسه",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "ساخت",
+ "configPane": "پیکربندی",
+ "systemPrompt": "پرامپت سیستم",
+ "systemPromptPlaceholder": "شما یک دستیار مفید هستید.",
+ "modelPlaceholder": "برای مثال openai/gpt-4o",
+ "endpointLabel": "نقطه پایانی",
+ "parametersLabel": "پارامترها",
+ "collapseConfig": "جمع کردن پنل پیکربندی",
+ "expandConfig": "باز کردن پنل پیکربندی",
+ "temperature": "دما",
+ "maxTokens": "حداکثر توکنها",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "جریمه حضور",
+ "frequencyPenalty": "جریمه تکرار",
"reasoningLabel": "استدلال",
"thinking": "تفکر",
"effort": "تلاش",
"effortDefault": "پیشفرض",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "تصادفی (خالی بگذارید)",
+ "presetsLabel": "پیشتنظیمها",
+ "loadPreset": "بارگذاری پیشتنظیم",
+ "savePreset": "ذخیره پیشتنظیم",
+ "noPresets": "هیچ پیشتنظیمی وجود ندارد",
+ "presetNamePlaceholder": "نام پیشتنظیم",
+ "savingPreset": "در حال ذخیره…",
+ "nameRequired": "وارد کردن نام الزامی است",
+ "failedToSavePreset": "ذخیره پیشتنظیم ناموفق بود",
+ "improvePrompt": "بهبود پرامپت",
+ "improvingPrompt": "در حال بهبود…",
+ "improvePromptTitle": "پرامپت خود را با هوش مصنوعی بهبود دهید",
+ "setModelFirst": "ابتدا یک مدل تنظیم کنید",
"setModelInConfigFirst": "ابتدا یک مدل را در پنل پیکربندی تنظیم کنید.",
"improvePromptFailed": "بهبود پرامپت ناموفق بود.",
"improvePromptAria": "بهبود پرامپت با استفاده از هوش مصنوعی",
"confirmImprovePrompt": "تأیید بهبود پرامپت",
"improvePromptDescription": "این کار پرامپت سیستم فعلی شما را به trae.ai در این مرورگر وارد شوید. صفحه تأیید فقط یک جلسه موجود را تأیید میکند — نمیتواند شما را وارد کند. اگر \"ورود ناموفق\" را مشاهده کردید، روی \"باز کردن solo.trae.ai\" کلیک کنید، وارد شوید و سپس به اینجا برگردید.",
"waitingForAuthorization": "در حال انتظار برای trae.ai…",
"authorizeWithBrowser": "با مرورگر تأیید کنید",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai را باز کنید",
"orPasteManually": "یا یک توکن را به صورت دستی بچسبانید",
"manualInstructions": "وارد solo.trae.ai شوید، DevTools → Network را باز کنید، هر پیامی را ارسال کنید و JWT را از هدر درخواست Authorization: Cloud-IDE-JWT {tokenPlaceholder} کپی کنید. عمر JWT حدود ~14 روز است. فیلدهای هویتی اختیاری از common_params در همان بدنه درخواست میآیند.",
"accessTokenLabel": "توکن دسترسی (Cloud-IDE-JWT)",
@@ -14048,11 +14081,11 @@
"actionApprove": "تأیید طرح",
"actionCancel": "لغو",
"actionSeeInGraph": "مشاهده در نمودار",
+ "actionRepeat": "تکرار",
"actionDone": "اقدام اعمال شد",
"actionFailed": "اقدام ناموفق بود: {error}",
"detailFailed": "بارگذاری جزئیات ناموفق بود: {error}",
"mirroredInA2A": "بازتابیافته در A2A",
- "actionRepeat": "تکرار",
"repeatConfirm": "برای تأیید دوباره کلیک کنید",
"repeatDone": "اجرای جدید ایجاد شد",
"repeatUnavailable": "ورودی اصلی در دسترس نیست"
@@ -14066,57 +14099,57 @@
"networkError": "خطای شبکه — نمیتوان تنظیمات نمایانسازی ارائهدهنده را بهروزرسانی کرد"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "پیشنهادهای حامیان",
+ "subtitle": "تخفیفها، اعتبارها، دورههای آزمایشی و مزایای شرکای بررسیشده و رسمی از Radar.",
+ "backToRadar": "بازگشت به Radar",
+ "loading": "در حال بارگیری پیشنهادها...",
+ "refresh": "تازهسازی پیشنهادها",
+ "refreshing": "در حال تازهسازی...",
+ "loadFailed": "نتوانستیم پیشنهادها را تازهسازی کنیم. آخرین حافظه نهان محلی تأییدشده حفظ شده است.",
+ "empty": "در حال حاضر هیچ پیشنهاد فعالی موجود نیست.",
+ "keyRequiredTitle": "کلید حامی الزامی است",
+ "keyRequiredDescription": "پیشنهادها یکی از مزایای زنده Radar هستند. در صفحه Radar یک کلید حامی موجود اضافه کنید، وضعیت مشارکتکننده خود را تأیید کنید یا برای دریافت کلید از پروژه حمایت کنید.",
+ "contributorButton": "من مشارکتکننده هستم",
+ "supporterButton": "حمایت از پروژه",
+ "partnerBadge": "شریک",
+ "officialBadge": "رسمی",
+ "conditionsLabel": "شرایط:",
+ "validUntil": "معتبر تا {date}",
+ "noExpiry": "تاریخ انقضایی اعلام نشده است",
+ "openOffer": "مشاهده پیشنهاد",
+ "trialDays": "{days, plural, one {# روز} other {# روز}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "اطلاعات Radar",
+ "subtitle": "رتبهبندیهای ELO متعلق به Radar و تغییرات واقعی کاتالوگ.",
+ "backToRadar": "بازگشت به Radar",
+ "loading": "در حال بارگیری اطلاعات...",
+ "refresh": "تازهسازی اطلاعات",
+ "syncing": "در حال تازهسازی...",
+ "loadFailed": "نتوانستیم اطلاعات را تازهسازی کنیم. آخرین حافظهٔ پنهان محلی تأییدشده حفظ شده است.",
+ "empty": "هنوز هیچ نمای فوری تأییدشدهای از اطلاعات موجود نیست.",
+ "supporterBadge": "حامی Radar",
+ "methodology": "روششناسی",
+ "eloMethod": "ELO، مقدار اولیه {initial}، K={factor}",
+ "freshness": "تازگی کاتالوگ",
+ "ageDays": "{days, plural, one {# روز از عمر آن میگذرد} other {# روز از عمر آن میگذرد}}",
+ "trend": "روند کاتالوگ",
+ "modelDelta": "{current} مدل، +{added} / -{removed}",
+ "ranking": "رتبهبندی مدلها",
+ "noRankings": "هنوز هیچ مقایسهٔ تأییدشدهای موجود نیست.",
+ "model": "مدل",
+ "category": "دستهبندی",
+ "rating": "امتیاز",
+ "matches": "رقابتها",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "تازه",
+ "aging": "رو به کهنگی",
+ "stale": "قدیمی"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "در حال رشد",
+ "stable": "پایدار",
+ "shrinking": "در حال کوچکشدن"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "درخواست از حد مجاز پنجره زمینه ارائهدهنده فراتر میرود"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference یکی از دوستان متنباز OmniRoute است",
+ "description": "دروازهای با رتبهبندی هزینه که دهها مدل پیشرفته را پشت یک نقطهٔ پایانی سازگار با OpenAI بازفروشی میکند—هر درخواست را به ارزانترین ارائهدهندهٔ واجد شرایط هدایت میکند، بدون آنکه هرگز از قیمت فهرستشده فراتر رود.",
+ "cta": "دریافت کلید API",
+ "partnerLinkNote": "پیوند شریک",
+ "dismissAriaLabel": "بستن"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "تولید گونههای سطح تفکر (برای مثال -low، -medium و -high) را در کاتالوگ /v1/models غیرفعال کنید."
}
diff --git a/src/i18n/messages/fi.json b/src/i18n/messages/fi.json
index 4a1a88098f..b5b5c054da 100644
--- a/src/i18n/messages/fi.json
+++ b/src/i18n/messages/fi.json
@@ -31,7 +31,7 @@
"active": "Aktiivinen",
"inactive": "Ei-aktiivinen",
"noData": "Tietoja ei ole saatavilla",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Täällä ei ole vielä mitään",
"configure": "Määritä",
"manualConfig": "Manuaaliset asetukset",
"manage": "Hallitse",
@@ -47,7 +47,7 @@
"time": "Aika",
"details": "Yksityiskohdat",
"created": "Luotu",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Päivitetty viimeksi",
"loadMore": "Lataa lisää",
"noResults": "Tuloksia ei löytynyt",
"reloadPage": "Lataa sivu uudelleen",
@@ -70,8 +70,8 @@
"note": "Huom",
"free": "Ilmainen",
"skipToContent": "Siirry sisältöön",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Palvelimessa on ongelmia. Jotkin ominaisuudet eivät ehkä ole käytettävissä.",
+ "maintenanceServerUnreachable": "Palvelimeen ei saada yhteyttä. Yhdistetään uudelleen...",
"accept": "Hyväksy",
"accountId": "Tilin tunnus",
"alias": "Alias",
@@ -98,9 +98,9 @@
"skill": "Taito",
"sortBy": "Lajitteluperuste",
"sortOrder": "Lajittelujärjestys",
- "tab": "Tab",
+ "tab": "Sarkain",
"text": "Teksti",
- "textarea": "Textarea",
+ "textarea": "Tekstialue",
"tool": "Työkalu",
"toolId": "Työkalun tunnus",
"web": "Web",
@@ -120,7 +120,7 @@
"compatible": "Yhteensopiva",
"chat-completions": "Chatin loppuun saattaminen",
"oauth": "OAuth",
- "auth_token": "Auth Token",
+ "auth_token": "Todennustunnus",
"crypto": "Krypto",
"hours": "Tuntia",
"selfsigned": "Itse allekirjoitettu",
@@ -131,7 +131,7 @@
"resolve_connection_id": "Ratkaise yhteystunnus",
"scope_id": "Laajuustunnus",
"scopeId": "Laajuustunnus",
- "jwtSecret": "JWT Secret",
+ "jwtSecret": "JWT-salaisuus",
"keytar": "Keytar",
"better-sqlite3": "parempi-sqlite3",
"undici": "undici",
@@ -145,14 +145,14 @@
"social-github": "GitHub",
"social-google": "Google",
"TOOL_ALLOWLIST": "Työkalujen sallittu luettelo",
- "TOOL_DENYLIST": "Tool Denylist",
+ "TOOL_DENYLIST": "Työkalujen estolista",
"Failed to save pricing": "Hinnoittelun tallentaminen epäonnistui",
"Failed to reset pricing": "Hinnoittelun nollaaminen epäonnistui",
"apikey": "API-avain",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Siirry hallintapaneeliin",
+ "checkSystemStatus": "Tarkista järjestelmän tila",
+ "selectModel": "Valitse malli",
"addModel": "Lisää malli",
"effortNone": "Ei mitään",
"effortLow": "Matala",
@@ -164,10 +164,10 @@
"reasoningEffort": "Päättelypanos",
"wireApi": "Wire API",
"modelAliases": "Mallin aliakset",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Yhdistelmät",
+ "noModelsFound": "Malleja ei löytynyt",
+ "clear": "Tyhjennä",
+ "done": "Valmis",
"selectAll": "Valitse kaikki",
"unselectAll": "Poista valinnat",
"visibleModels": "näkyvissä",
@@ -184,527 +184,527 @@
"selectAllProviders": "Tarkista kaikki palveluntarjoajat",
"clearProviderSelection": "Poista valinta tarjoajilta",
"providersSelectedCount": "{count} palveluntarjoajaa tarkistettu",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Tapahtui virhe",
+ "comboDeleted": "Yhdistelmä poistettu",
+ "hide": "Piilota",
+ "creating": "Luodaan",
+ "comboCreated": "Yhdistelmä luotu",
+ "swapFormats": "Vaihda formaatit keskenään",
+ "daysAgo": "Päivää sitten",
+ "retries": "Uudelleenyritykset",
+ "errorDuringRestore": "Virhe palautuksen aikana",
+ "eventsAppearHint": "Tapahtumien näyttövihje",
+ "noLockouts": "Ei lukituksia",
+ "webSearchDesc": "Verkkohaun kuvaus",
+ "audioProvidersHeading": "Äänipalveluntarjoajat",
"cloudAgentProviders": "Pilviagenttipalveluntarjoajat",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Minuuttia sitten",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "Automaattinen reaaliaikainen päivitys",
+ "webSearch": "Verkkohaku",
+ "anthropicPrefixPlaceholder": "Anthropic-etuliitteen paikkamerkki",
+ "addModelToCombo": "Lisää malli yhdistelmään",
+ "failedToLoad": "Lataaminen epäonnistui",
+ "categoryMedia": "Luokka: media",
+ "enableCloud": "Ota pilvipalvelu käyttöön",
+ "expirationBannerExpiringSoon": "Vanhenemisbanneri: vanhenee pian",
+ "retry": "Yritä uudelleen",
+ "embeddings": "Upotukset",
+ "errorCount": "Virheiden määrä",
+ "backupReasonManual": "Varmuuskopioinnin syy: manuaalinen",
+ "safeSearchModerate": "Safe Search: kohtalainen",
+ "activeLimiters": "Aktiiviset rajoittimet",
+ "a2aCardTitle": "A2A-kortin otsikko",
+ "cloudWorkerUnreachable": "Cloud Worker ei ole tavoitettavissa",
+ "testFailed": "Testi epäonnistui",
+ "compatibleBaseUrlHint": "Yhteensopivan perus-URL-osoitteen vihje",
+ "usageTracking": "Käytön seuranta",
+ "disableCloudTitle": "Poista pilvipalvelu käytöstä",
+ "noConnections": "Ei yhteyksiä",
+ "providerHealth": "Palveluntarjoajan tila",
+ "confirmDbImport": "Vahvista tietokannan tuonti",
+ "notAvailableSymbol": "Ei saatavilla -symboli",
+ "backupsAvailable": "Varmuuskopioita saatavilla",
+ "providerAuto": "Automaattinen palveluntarjoaja",
+ "newProviderNamePlaceholder": "Uuden palveluntarjoajan nimen paikkamerkki",
+ "a2aQuickStartStep2": "A2A-pika-aloituksen vaihe 2",
+ "ok": "OK",
+ "available": "Saatavilla",
+ "noBackupYet": "Ei vielä varmuuskopiota",
+ "more": "Lisää",
+ "noCompatibleYet": "Ei vielä yhteensopivia",
+ "multiProvider": "Useita palveluntarjoajia",
+ "repairEnvHint": "Ympäristön korjausvihje",
+ "disablingCloud": "Poistetaan pilvipalvelua käytöstä",
+ "testBench": "Testipenkki",
+ "valid": "Kelvollinen",
+ "cloudBenefitShare": "Pilvipalvelun hyöty: jakaminen",
+ "mcpCardTitle": "MCP-kortin otsikko",
+ "disableConfirm": "Vahvista käytöstä poistaminen",
+ "filters": "Suodattimet",
+ "expirationBannerExpiredDesc": "Vanhenemisbanneri: vanhentunut – kuvaus",
+ "saveComboDefaults": "Tallenna yhdistelmän oletusasetukset",
+ "cloudConnectedVerified": "Pilviyhteys muodostettu ja vahvistettu",
+ "uptime": "Käytettävyysaika",
+ "compatibleProdPlaceholder": "Yhteensopivan tuotantoympäristön paikkamerkki",
+ "fallbackChainsTitle": "Varaketjujen otsikko",
+ "oauthLabel": "OAuth-tunniste",
+ "a2aCardDescription": "A2A-kortin kuvaus",
+ "okShort": "OK",
+ "maintenance": "Ylläpito",
+ "formatConverter": "Muotomuunnin",
+ "zedImportNetworkError": "Zed-tuonnin verkkovirhe",
+ "apiKeyLabel": "API-avaimen tunniste",
+ "noModelsForProvider": "Ei malleja palveluntarjoajalle",
+ "mcpCardDescription": "MCP-kortin kuvaus",
+ "apiTypeLabel": "API-tyypin tunniste",
+ "configuredProvidersLabel": "Määritettyjen palveluntarjoajien tunniste",
+ "maxRetriesLabel": "Uudelleenyritysten enimmäismäärän tunniste",
+ "title": "Otsikko",
+ "output": "Tuloste",
+ "prefixHint": "Etuliitteen vihje",
+ "skipWizard": "Ohita ohjattu toiminto",
+ "failedCount": "Epäonnistuneiden määrä",
+ "confirmDbImportDesc": "Tietokantatuonnin vahvistuksen kuvaus",
+ "entries": "Merkinnät",
+ "until": "Asti",
+ "disableCombo": "Poista yhdistelmä käytöstä",
+ "liveMonitorDescriptionPrefix": "Reaaliaikaisen valvonnan kuvauksen etuliite",
+ "runningCount": "Käynnissä olevien määrä",
+ "noActiveConnectionsInGroup": "Ryhmässä ei ole aktiivisia yhteyksiä",
+ "savedSuccessfully": "Tallennettu onnistuneesti",
+ "systemStorage": "Järjestelmän tallennustila",
+ "videoDesc": "Videon kuvaus",
+ "maxResults": "Tulosten enimmäismäärä",
+ "timeRangeMonth": "Aikaväli: kuukausi",
+ "testSummary": "Testin yhteenveto",
+ "failedSetPassword": "Salasanan asettaminen epäonnistui",
+ "audio": "Ääni",
+ "restore": "Palauta",
+ "disableWarning": "Käytöstä poistamisen varoitus",
+ "moderationsDesc": "Moderointien kuvaus",
+ "providerHealthStatusAria": "Palveluntarjoajan kunnon tilan ARIA-tunniste",
+ "modelNamePlaceholder": "Mallin nimen paikkamerkki",
+ "mcpQuickStartStep2": "MCP-pika-aloituksen vaihe 2",
+ "quickStart": "Pika-aloitus",
+ "fullExportFailedWithError": "Täysi vienti epäonnistui virheen vuoksi",
+ "loadingBackups": "Ladataan varmuuskopioita",
+ "anthropicBaseUrlPlaceholder": "Anthropic-perus-URL-osoitteen paikkamerkki",
+ "description": "Kuvaus",
+ "noProviderFound": "Palveluntarjoajaa ei löytynyt",
+ "auto": "Automaattinen",
+ "protocolsDescription": "Protokollien kuvaus",
+ "cloudSessionNote": "Pilvi-istuntoa koskeva huomautus",
+ "advancedSettings": "Lisäasetukset",
+ "defaultStrategy": "Oletusstrategia",
+ "purgeExpiredLogs": "Poista vanhentuneet lokit",
+ "justNow": "Juuri nyt",
+ "providerTestFailed": "Palveluntarjoajan testi epäonnistui",
+ "openaiBaseUrlPlaceholder": "OpenAI-perus-URL-osoitteen paikkamerkki",
+ "image": "Kuva",
+ "failedCreateChain": "Ketjun luominen epäonnistui",
+ "importDatabase": "Tuo tietokanta",
+ "allDataLocal": "Kaikki tiedot ovat paikallisia",
+ "sectionTitle": "Osion otsikko",
+ "failedToggle": "Tilan vaihtaminen epäonnistui",
+ "editCombo": "Muokkaa yhdistelmää",
+ "testResults": "Testitulokset",
+ "searchQuery": "Hakukysely",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "Monista",
+ "createCombo": "Luo yhdistelmä",
+ "searchTypeWeb": "Hakutyyppi: verkko",
+ "addChain": "Lisää ketju",
+ "prefixLabel": "Etuliitteen tunniste",
+ "listModelsDesc": "Malliluettelon kuvaus",
+ "databaseSize": "Tietokannan koko",
+ "chainCreated": "Ketju luotu",
+ "providerTestTimeout": "Palveluntarjoajan testi aikakatkaistiin",
+ "routingStrategy": "Reititysstrategia",
+ "translateAction": "Käännä",
+ "exportFailed": "Vienti epäonnistui",
+ "connectedVerificationPending": "Yhdistetty, vahvistus odottaa",
+ "a2aQuickStartTitle": "A2A-pika-aloituksen otsikko",
+ "couldNotTest": "Testiä ei voitu suorittaa",
+ "testAllCompatible": "Testaa kaikki yhteensopivat",
+ "anthropicCompatibleName": "Anthropic-yhteensopivan nimi",
+ "disabling": "Poistetaan käytöstä",
+ "failedEnable": "Käyttöönotto epäonnistui",
+ "categoryUtility": "Apuohjelmaluokka",
+ "customUrlOptional": "Mukautettu URL (valinnainen)",
+ "localProviders": "Paikalliset palveluntarjoajat",
+ "comboNamePlaceholder": "Yhdistelmän nimen paikkamerkki",
+ "memoryRss": "Muistin RSS",
+ "disableProvider": "Poista palveluntarjoaja käytöstä",
+ "welcomeDesc": "Tervetulokuvauksen teksti",
+ "nameLabel": "Nimikentän tunniste",
+ "allOperational": "Kaikki toiminnassa",
+ "backupNow": "Varmuuskopioi nyt",
+ "providerMaxRetriesAria": "Palveluntarjoajan uudelleenyritysten enimmäismäärän ARIA-tunniste",
+ "textToSpeechDesc": "Tekstistä puheeksi -toiminnon kuvaus",
+ "machineId": "Laitetunnus",
+ "globalProxy": "Yleinen välityspalvelin",
+ "hitsMisses": "Osumat ja ohitukset",
+ "testDesc": "Testin kuvaus",
+ "chatDesc": "Keskustelun kuvaus",
+ "importSuccess": "Tuonti onnistui",
+ "chat": "Keskustelu",
+ "a2aQuickStartStep1": "A2A-pika-aloituksen vaihe 1",
+ "importFailed": "Tuonti epäonnistui",
+ "inputPlaceholder": "Syötteen paikkamerkki",
+ "providerModelsTitle": "Palveluntarjoajan mallit",
+ "lastBackup": "Viimeisin varmuuskopio",
+ "yourEndpoint": "Päätepisteesi",
+ "autoDisableThresholdDesc": "Automaattisen käytöstäpoiston kynnysarvon kuvaus",
+ "rerankDesc": "Uudelleenjärjestelyn kuvaus",
+ "modelsPathPlaceholder": "Mallien polun paikkamerkki",
+ "noCombosYet": "Ei vielä yhdistelmiä",
+ "connectedVerificationPendingWithError": "Yhdistetty, vahvistus odottaa virheen vuoksi",
+ "comboDefaultsGuideHint1": "Yhdistelmien oletusasetusten oppaan vihje 1",
+ "enableCloudTitle": "Ota pilvipalvelu käyttöön",
+ "configuredProvidersHint": "Määritettyjen palveluntarjoajien vihje",
+ "paused": "Keskeytetty",
+ "llmProviders": "LLM-palveluntarjoajat",
+ "enableCombo": "Ota yhdistelmä käyttöön",
+ "removeProviderOverrideAria": "Palveluntarjoajan ohituksen poiston ARIA-tunniste",
+ "nodeVersion": "Node-versio",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Vienti epäonnistui virheen vuoksi",
+ "proxyConfigured": "Välityspalvelin määritetty",
+ "concurrencyPerModel": "Samanaikaisuus mallia kohden",
+ "protocolTasksLabel": "Protokollatehtävien tunniste",
+ "oauthProviders": "OAuth-palveluntarjoajat",
+ "lockedCount": "Lukittujen määrä",
+ "deleteChainConfirm": "Vahvista ketjun poistaminen",
+ "recentTranslations": "Viimeisimmät käännökset",
+ "zedImportButton": "Zed-tuontipainike",
+ "responsesDesc": "Vastausten kuvaus",
+ "testedCount": "Testattujen määrä",
+ "providersCommaSeparatedPlaceholder": "Pilkuilla eroteltujen palveluntarjoajien paikkamerkki",
+ "signatureDefaults": "Allekirjoituksen oletusarvot",
+ "errorCreating": "Virhe luotaessa",
+ "timeRangeYear": "Aikaväli: vuosi",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Pilvipalvelu poistettu käytöstä",
+ "deleteConfirm": "Vahvista poistaminen",
+ "check": "Tarkista",
+ "safeSearch": "Turvallinen haku",
+ "protocolLastActivity": "Protokollan viimeisin toiminta",
+ "openMcpDashboard": "Avaa MCP-hallintapaneeli",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Keskustelupolun tunniste",
+ "retryDelay": "Uudelleenyrityksen viive",
+ "errorUpdating": "Virhe päivitettäessä",
+ "ideCliIntegrations": "IDE- ja CLI-integraatiot",
+ "imageGeneration": "Kuvien luonti",
+ "apiKeyRequired": "API-avain vaaditaan",
+ "resetAllTitle": "Palauta kaikki – otsikko",
+ "connectionError": "Yhteysvirhe",
+ "modelName": "Mallin nimi",
+ "apiKeyForCheck": "Tarkistukseen käytettävä API-avain",
+ "cloudRequestTimeout": "Pilvipyynnön aikakatkaisu",
+ "showConfiguredOnly": "Näytä vain määritetyt",
"showFreeOnly": "Vain ilmainen",
"addFirstProvider": "Lisää ensimmäinen palveluntarjoajasi",
"addFirstProviderDesc": "Yhdistä AI-palveluntarjoaja aloittaaksesi pyyntöjen reitittämisen OmniRouten kautta. Voit käyttää ilmaisia palveluntarjoajia, API-avaimia tai OAuth-tilejä.",
"learnMore": "Lue lisää",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Sisällytä verkkotunnukset",
+ "promptCache": "Kehotevälimuisti",
+ "cloudConnected": "Pilvipalvelu yhdistetty",
+ "deleteChain": "Poista ketju",
+ "chatPathPlaceholder": "Keskustelupolun paikkamerkki",
+ "databasePath": "Tietokannan polku",
+ "usingLocalServer": "Käytetään paikallista palvelinta",
+ "globalComboConfig": "Yleinen yhdistelmäkokoonpano",
+ "backupFailed": "Varmuuskopiointi epäonnistui",
+ "tabProtocols": "Protokollat-välilehti",
+ "continue": "Jatka",
+ "categorySearch": "Luokkahaku",
+ "rateLimitStatus": "Nopeusrajoituksen tila",
+ "repairEnvSuccess": "Ympäristön korjaus onnistui",
+ "nameRequired": "Nimi vaaditaan",
+ "country": "Maa",
+ "trackMetricsDesc": "Seuraa metriikoiden kuvausta",
+ "durationSecondsShort": "Kesto sekunteina, lyhyt",
+ "formatConverterDescription": "Muotomuuntimen kuvaus",
+ "cloudBenefitAccess": "Pilvipalvelun käyttöetu",
+ "maxRetries": "Uudelleenyritysten enimmäismäärä",
+ "queueTimeout": "Jonon aikakatkaisu",
"queueDepth": "Jonon syvyys",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Lisää palveluntarjoaja",
+ "realtime": "Reaaliaikainen",
+ "totalTranslations": "Käännöksiä yhteensä",
+ "protocolActiveStreamsLabel": "Protokollan aktiivisten virtojen tunniste",
+ "repairEnv": "Korjaa ympäristö",
+ "modelsCount": "Mallien määrä",
+ "viewBackups": "Näytä varmuuskopiot",
+ "responsesApi": "Responses API",
+ "copyComboName": "Kopioi yhdistelmän nimi",
+ "failures": "Epäonnistumiset",
+ "failedUpdate": "Päivitys epäonnistui",
+ "imageDesc": "Kuvan kuvaus",
+ "failedCreate": "Luonti epäonnistui",
+ "remainingOfLimit": "Rajasta jäljellä",
+ "protocolsTitle": "Protokollat",
+ "expirationBannerExpiringSoonDesc": "Pian vanhenevan voimassaolon ilmoituksen kuvaus",
+ "source": "Lähde",
+ "failed": "Epäonnistui",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "MCP-pika-aloituksen vaihe 1",
+ "runTest": "Suorita testi",
+ "loadingFallbackChains": "Varaketjuja ladataan",
+ "healthy": "Kunnossa",
+ "version": "Versio",
+ "saveBlockWeighted": "Tallenna painotettu lohko",
+ "zedImportNone": "Ei tuotavia Zed-kohteita",
+ "noBackupsYet": "Ei vielä varmuuskopioita",
+ "noGlobalProxy": "Ei globaalia välityspalvelinta",
+ "noModels": "Ei malleja",
+ "stickyLimit": "Kiinteä raja",
+ "passedCount": "Hyväksyttyjen määrä",
+ "zedImportFailed": "Zed-tuonti epäonnistui",
+ "saving": "Tallennetaan",
+ "testAll": "Testaa kaikki",
+ "globalProxyDesc": "Globaalin välityspalvelimen kuvaus",
+ "latencyP99": "Viive P99",
+ "connectingToCloud": "Yhdistetään pilveen",
+ "responses": "Vastaukset",
+ "errorDeleting": "Virhe poistettaessa",
+ "openaiPrefixPlaceholder": "Openai-etuliitteen paikkamerkki",
+ "enterPassword": "Anna salasana",
+ "openA2aDashboard": "Avaa A2A-hallintapaneeli",
+ "enableProvider": "Ota palveluntarjoaja käyttöön",
+ "modeTest": "Testitila",
+ "failedDeleteChain": "Ketjun poistaminen epäonnistui",
+ "providerDesc": "Palveluntarjoajan kuvaus",
+ "templateLoadHint": "Mallin latausvihje",
+ "lastFailure": "Viimeisin virhe",
+ "moveDown": "Siirrä alas",
+ "providerLabel": "Palveluntarjoajan tunniste",
+ "clearCacheFailed": "Välimuistin tyhjentäminen epäonnistui",
+ "imagesGenerations": "Kuvien generoinnit",
+ "repairEnvWorking": "Ympäristön korjaus käynnissä",
+ "millisecondsShort": "ms",
+ "globalLabel": "Globaali tunniste",
+ "failuresPlural": "Virheet",
+ "completionsLegacyDesc": "Vanhojen täydennysten kuvaus",
+ "searchProviders": "Hae palveluntarjoajia",
+ "chatPathHint": "Keskustelupolun vihje",
+ "defaultStrategyDesc": "Oletusstrategian kuvaus",
+ "latencyP95": "Viive P95",
+ "textToSpeech": "Tekstistä puheeksi",
+ "searchType": "Hakutyyppi",
+ "messages": "Viestit",
+ "aggregatorsGateways": "Koostajat ja yhdyskäytävät",
+ "comboStrategyAria": "Yhdistelmästrategian ARIA",
+ "input": "Syöte",
+ "testingConnection": "Yhteyttä testataan",
+ "excludeDomains": "Poissuljettavat verkkotunnukset",
+ "webCookieProviders": "Verkkoevästeiden tarjoajat",
+ "allTestsPassed": "Kaikki testit läpäisty",
+ "openaiCompatibleName": "OpenAI-yhteensopiva nimi",
+ "warningCostOptimizedPartialPricing": "Varoitus: kustannusoptimoitu osittainen hinnoittelu",
+ "comboDefaultsGuideTitle": "Yhdistelmän oletusarvojen oppaan otsikko",
+ "hoursAgo": "Tuntia sitten",
+ "notAvailable": "Ei saatavilla",
+ "skipAndContinue": "Ohita ja jatka",
+ "moderations": "Moderoinnit",
+ "proxyConfig": "Välityspalvelimen määritykset",
+ "upstreamProxyProviders": "Ylävirran välityspalveluntarjoajat",
+ "exportAll": "Vie kaikki",
+ "queuedCount": "Jonossa olevien määrä",
+ "resetAll": "Nollaa kaikki",
+ "noTranslations": "Ei käännöksiä",
+ "avgLatency": "Keskimääräinen viive",
+ "throttleStatus": "Rajoituksen tila",
+ "backupRetentionDesc": "Varmuuskopioiden säilytyksen kuvaus",
+ "noCBData": "Ei katkaisijadataa",
+ "chainDeleted": "Ketju poistettu",
+ "timeLeft": "Aikaa jäljellä",
+ "expirationBannerExpired": "Vanhentuneen voimassaolon banneri",
+ "language": "Kieli",
+ "invalidFileType": "Virheellinen tiedostotyyppi",
+ "monitoredProviders": "Valvotut palveluntarjoajat",
+ "errors": "Virheet",
+ "heap": "Keko",
+ "chatCompletions": "Keskustelun täydennykset",
+ "exampleTemplatesHint": "Esimerkkimallien vihje",
+ "retryDelayLabel": "Uudelleenyrityksen viiveen selite",
+ "audioTranscription": "Äänen litterointi",
+ "fallbackChainsDesc": "Varaketjujen kuvaus",
+ "exampleTemplates": "Esimerkkimallit",
+ "connectionsCount": "Yhteyksien määrä",
+ "modelsPathLabel": "Mallien polun selite",
+ "activeProvidersHint": "Aktiivisten palveluntarjoajien vihje",
+ "activeLockouts": "Aktiiviset lukitukset",
+ "invalid": "Virheellinen",
+ "skipPassword": "Ohita salasana",
+ "moveUp": "Siirrä ylöspäin",
+ "timeRange": "Aikaväli",
+ "stickyLimitDesc": "Pysyvän rajoituksen kuvaus",
+ "cloudBenefitEdge": "Pilven etu reunalla",
+ "custom": "Mukautettu",
+ "verifying": "Vahvistetaan",
+ "baseUrlLabel": "Perus-URL:n tunniste",
+ "setPassword": "Aseta salasana",
+ "safeSearchStrict": "Tiukka turvallinen haku",
+ "noChangesSinceBackup": "Ei muutoksia varmuuskopioinnin jälkeen",
+ "modelsPathHint": "Mallien polun vihje",
+ "audioTranscriptions": "Äänen litteroinnit",
+ "testCombo": "Testaa yhdistelmä",
+ "mcpQuickStartTitle": "Mcp-pika-aloituksen otsikko",
+ "comboUpdated": "Yhdistelmä päivitetty",
+ "weighted": "Painotettu",
+ "providers": "Palveluntarjoajat",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Ei varaketjuja -kuvaus",
+ "yesImport": "Kyllä, tuo",
+ "lockoutsAutoRefreshHint": "Lukitusten automaattisen päivityksen vihje",
+ "tabApis": "API-välilehti",
+ "sectionDescription": "Osion kuvaus",
+ "filter": "Suodata",
+ "purgeLogsFailed": "Lokien tyhjennys epäonnistui",
+ "latency": "Viive",
+ "testAllOAuth": "Testaa kaikki OAuth-yhteydet",
+ "mcpQuickStartStep3": "Mcp-pika-aloituksen vaihe 3",
+ "repairEnvFailed": "Ympäristön korjaus epäonnistui",
+ "zedImportHint": "Zed-tuonnin vihje",
+ "modelsAcrossEndpoints": "Mallit eri päätepisteissä",
+ "autoDisableBannedAccounts": "Poista estetyt tilit automaattisesti käytöstä",
+ "securityDesc": "Tietoturvan kuvaus",
+ "listModels": "Luettele mallit",
+ "backupRestore": "Varmuuskopiointi ja palautus",
+ "target": "Kohde",
+ "zedImportSuccess": "Zed-tuonti onnistui",
+ "lastHeaderUpdate": "Viimeisin otsikkopäivitys",
+ "categoryCore": "Ydinkategoria",
+ "noFallbackChains": "Ei varaketjuja",
+ "noSearchProviders": "Ei hakupalveluntarjoajia",
+ "autoBalance": "Automaattinen tasapainotus",
+ "noModelsYet": "Ei vielä malleja",
+ "signatureFamily": "Allekirjoitusperhe",
+ "externalApiCalls": "Ulkoiset API-kutsut",
+ "providerOverridesDesc": "Palveluntarjoajan ohitusten kuvaus",
+ "signatureTool": "Allekirjoitustyökalu",
+ "connectionFailed": "Yhteys epäonnistui",
+ "activeLimitersPlural": "Aktiiviset rajoittimet, monikko",
+ "doneDesc": "Valmis-kuvaus",
+ "down": "Ei käytettävissä",
+ "noDataYet": "Ei vielä tietoja",
+ "activeProviders": "Aktiiviset palveluntarjoajat",
+ "nameInvalid": "Virheellinen nimi",
+ "skip": "Ohita",
+ "createChain": "Luo ketju",
+ "audioSpeech": "Äänipuhe",
+ "cacheCleared": "Välimuisti tyhjennetty",
+ "searchTypeNews": "Hakutyyppi: uutiset",
+ "durationMillisecondsShort": "Keston millisekuntien lyhenne",
+ "addOpenAICompatible": "Lisää Open Ai -yhteensopiva",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "Jonossa",
+ "domainPlaceholder": "Verkkotunnuksen paikkamerkki",
+ "durationMinutesShort": "Keston minuuttien lyhenne",
+ "verifyingConnection": "Yhteyttä tarkistetaan",
+ "imageProviders": "Kuvapalveluntarjoajat",
+ "protocolToolsLabel": "Protokollatyökalujen tunniste",
+ "queryPlaceholder": "Kyselyn paikkamerkki",
+ "videoGeneration": "Videon luonti",
+ "timeRangeWeek": "Aikaväli: viikko",
+ "limitExhausted": "Raja saavutettu",
+ "failedDisable": "Käytöstä poistaminen epäonnistui",
+ "inMemoryNote": "Muistinsisäinen huomautus",
+ "compatibleHint": "Yhteensopivuusvihje",
+ "errorShort": "Lyhyt virheilmoitus",
+ "advancedHint": "Lisäasetusten vihje",
+ "restoreFailed": "Palautus epäonnistui",
+ "searchProvidersHeading": "Hakupalveluntarjoajien otsikko",
+ "comboName": "Yhdistelmän nimi",
+ "autoDisableDescription": "Automaattisen käytöstäpoiston kuvaus",
+ "embeddingsDesc": "Upotusten kuvaus",
+ "operational": "Toiminnassa",
+ "testAllApiKey": "Testaa kaikki API-avaimet",
+ "backupCreated": "Varmuuskopio luotu",
+ "errorDuringImport": "Virhe tuonnin aikana",
+ "comboDefaultsGuideHint2": "Yhdistelmän oletusasetusten oppaan vihje 2",
+ "connecting": "Yhdistetään",
+ "fillModelAndProviders": "Täytä malli ja palveluntarjoajat",
+ "syncing": "Synkronoidaan",
+ "resetConfirm": "Vahvista nollaus",
+ "trackMetrics": "Seuraa mittareita",
+ "successful": "Onnistui",
+ "recovering": "Palautetaan",
+ "autoDisableThreshold": "Automaattisen käytöstäpoiston raja-arvo",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Synkronoidaan tietoja",
+ "cloudBenefitPorts": "Pilvipalvelun porttien edut",
+ "compatibleProviders": "Yhteensopivat palveluntarjoajat",
"freeTierProviders": "Ilmaiset tason tarjoajat",
"freeTierLabel": "Ilmainen taso saatavilla",
"freeTierProvidersDesc": "Palveluntarjoajat, joilla on ilmaisia tasoja – jotkut vaativat API-avaimen rekisteröitymisen, toiset eivät tarvitse kirjautumistietoja ollenkaan.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
- "gamificationAdmin": "Gamification Admin",
+ "clearCache": "Tyhjennä välimuisti",
+ "reqs": "Pyynnöt",
+ "addAnthropicCompatible": "Lisää Anthropic-yhteensopiva",
+ "apiKeyProviders": "API-avainpalveluntarjoajat",
+ "tabsAria": "Välilehtien ARIA",
+ "resetting": "Nollataan",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Varmuuskopioinnin syy ennen palautusta",
+ "disableCloud": "Poista pilvipalvelu käytöstä",
+ "newProviderNameAria": "Uuden palveluntarjoajan nimen ARIA",
+ "passwordsMismatch": "Salasanat eivät täsmää",
+ "a2aQuickStartStep3": "A2A-pika-aloituksen vaihe 3",
+ "liveMonitorDescriptionSuffix": "Reaaliaikaisen valvonnan kuvauksen jälkiliite",
+ "failedAddProvider": "Palveluntarjoajan lisääminen epäonnistui",
+ "addAtLeastOneProvider": "Lisää vähintään yksi palveluntarjoaja",
+ "reasonSeparator": "Syyn erotin",
+ "zedImporting": "Zed-tuonti käynnissä",
+ "confirmPasswordPlaceholder": "Vahvista salasana",
+ "whatYouGet": "Mitä saat",
+ "signatureSession": "Allekirjoitusistunto",
+ "errorCountNoCode": "Virheiden määrä, ei koodia",
+ "testing": "Testaus",
+ "providersCommaSeparated": "Palveluntarjoajat pilkuilla eroteltuina",
+ "exportDatabase": "Vie tietokanta",
+ "hitRate": "Osumaprosentti",
+ "completionsLegacy": "Täydennykset (vanha)",
+ "removeModel": "Poista malli",
+ "timeRangeDay": "Aikaväli: päivä",
+ "cloudRequestFailed": "Pilvipyyntö epäonnistui",
+ "updatedAt": "Päivitetty",
+ "monitoredProvidersHint": "Valvottujen palveluntarjoajien ohje",
+ "connectionSuccessful": "Yhteys onnistui",
+ "latencyP50": "Viive P50",
+ "logsDeleted": "Lokit poistettu",
+ "chatTester": "Keskustelutestaaja",
+ "safeSearchOff": "Safe Search pois käytöstä",
+ "nameHint": "Nimen ohje",
+ "debugToggle": "Virheenkorjauksen valitsin",
+ "embedding": "Upotus",
+ "issuesLabel": "Ongelmien tunniste",
+ "optionAny": "Mikä tahansa",
+ "maxNestingDepth": "Sisäkkäisyyden enimmäissyvyys",
+ "rerank": "Uudelleenjärjestä",
+ "checking": "Tarkistetaan",
+ "getStarted": "Aloita",
+ "restoreSuccess": "Palautus onnistui",
+ "issuesDetected": "Ongelmia havaittu",
+ "signatureCache": "Allekirjoitusvälimuisti",
+ "modelLockouts": "Mallien lukitukset",
+ "usingCloudProxy": "Käytetään pilvivälityspalvelinta",
+ "loadingHealth": "Ladataan kuntotietoja",
+ "providerOverrides": "Palveluntarjoajakohtaiset ohitukset",
+ "audioTranscriptionDesc": "Äänen litteroinnin kuvaus",
+ "learnedFromHeaders": "Opittu otsakkeista",
+ "totalRequests": "Pyyntöjä yhteensä",
+ "cloudUnstableNote": "Huomautus pilvipalvelun epävakaudesta",
+ "gamificationAdmin": "Pelillistämisen hallinta",
"monitorAnomaliesAndHealth": "Tarkkaile poikkeavuuksia ja järjestelmän kuntoa",
"flaggedAnomalies": "Ilmoitetut poikkeavuudet",
"noAnomaliesDetected": "Ei havaittu poikkeavuuksia",
"apiKey": "API-avain",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 h)",
"zScore": "Z-pisteet",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Epäilyttävä",
"tokensCommunityServers": "Yhteisön palvelimet",
"tokensServerNamePlaceholder": "Palvelimen nimi",
"tokensApiKeyPlaceholder": "API-avain",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Ladataan lisää…",
"recommended": "Suositeltu",
"understand": "Ymmärrän",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "Eräkäsittely",
+ "batchConceptSubtitle": "Käsittele tuhansia pyyntöjä asynkronisesti noin 50 % pienemmillä kustannuksilla (24 tunnin aikaikkuna). Ihanteellinen arviointeihin, luokitteluun ja upotuksiin.",
+ "batchConceptHowItWorks": "Miten se toimii",
+ "batchConceptBenefit50pct": "50 %:n alennus syöte- ja tulostunnisteista",
+ "batchConceptAsync24h": "Asynkroninen käsittely 24 tunnin valmistumisajalla",
+ "batchConceptUseCases": "Sopii parhaiten massaluokitteluun, arviointeihin ja upotuksiin",
+ "batchHeaderSubtitle": "Suorita useita pyyntöjä yhtenä työnä",
+ "batchStep1": "1 · Lähetä JSONL-tiedosto",
+ "batchStep1Desc": "Lisää pyynnöt",
+ "batchStep2": "2 · Luo erä",
+ "batchStep2Desc": "Suorita työ",
+ "batchStep3": "3 · Nouda tulokset",
+ "batchStep3Desc": "Lataa tuloste",
+ "filesConceptTitle": "Erätiedostot",
+ "filesConceptSubtitle": "Erien käyttämät JSONL-tiedostot: syötepyynnöt, tulokset ja virheet.",
+ "filesConceptInput": "Syöte — JSONL-tiedostosi, yksi pyyntö kullakin rivillä",
+ "filesConceptOutput": "Tuloste — valmistuneiden pyyntöjen tulokset",
+ "filesConceptError": "Virheet — epäonnistuneet pyynnöt",
+ "filesConceptRetention": "Säilytysaika: oletuksena 30 päivää (Anthropicilla 29 päivää)",
+ "wizardTitle": "Uusi erä",
+ "wizardClose": "Sulje",
+ "wizardNext": "Seuraava",
+ "wizardBack": "Takaisin",
+ "wizardCancel": "Peruuta",
+ "wizardCreate": "Luo erä",
+ "wizardCreating": "Luodaan…",
+ "wizardStep1Destination": "Kohde",
+ "wizardStep2Input": "Syöte",
+ "wizardStep3Validate": "Validoi",
+ "wizardStep4Cost": "Kustannukset ja luonti",
+ "wizardProviderLabel": "Palveluntarjoaja",
+ "wizardEndpointLabel": "Päätepiste",
+ "wizardModelLabel": "Malli",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (muunnamme sen)",
+ "wizardDropOrPick": "Pudota tiedosto tähän tai valitse se napsauttamalla",
+ "wizardCsvMappingTitle": "Yhdistä CSV-sarakkeet → pyynnön kenttiin",
+ "wizardCsvMappingAddField": "Lisää kenttä",
"wizardCsvNoColumns": "CSV-otsikosta ei havaittu sarakkeita.",
"wizardCsvIgnoreColumn": "— ohita —",
"wizardCsvCustomIdMapped": "custom_id kohdistettu",
@@ -846,114 +846,114 @@
"wizardCsvApplyMapping": "Käytä kohdistusta",
"wizardCsvRowsParsed": "{count} riviä jäsennetty",
"wizardCsvRowsSkipped": "{count} riviä ohitettu",
- "wizardCsvRowError": "Row {row}: {reason}",
- "wizardValidationOk": "All lines valid",
- "wizardValidating": "Validating…",
- "wizardValidationParseFailed": "Validation failed — could not parse content.",
- "wizardValidationSummary": "{lines} lines · {ids} unique custom_ids",
+ "wizardCsvRowError": "Rivi {row}: {reason}",
+ "wizardValidationOk": "Kaikki rivit ovat kelvollisia",
+ "wizardValidating": "Validoidaan…",
+ "wizardValidationParseFailed": "Validointi epäonnistui — sisältöä ei voitu jäsentää.",
+ "wizardValidationSummary": "{lines} riviä · {ids} yksilöllistä custom_id-tunnistetta",
"wizardValidationErrorCount": "{count, plural, one {# virhe} other {# virhettä}} löytyi",
"wizardValidationDuplicateIds": "Havaittiin päällekkäisiä custom_ids-tunnisteita:",
"wizardValidationFirstErrors": "Virheet (ensimmäiset {count}):",
"wizardValidationLine": "Rivi {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Validointivirheet",
+ "wizardValidationPreview": "Esikatselu (ensimmäiset 5 pyyntöä)",
+ "wizardValidationSamplingNote": "Tiedosto on suuri — validoitu otannalla (ensimmäiset 1000 + viimeiset 100 riviä). Täysi validointi suoritetaan palvelimella.",
+ "wizardCostSync": "Synkronoinnin hinta",
+ "wizardCostBatch": "Eräajon hinta (-50 %)",
+ "wizardCostSavings": "Säästö",
+ "wizardCostEstimatedNotice": "Arvioitu hinta — todellinen laskutus voi poiketa.",
+ "wizardErrorUpload": "Tiedoston lähettäminen epäonnistui. Yritä uudelleen.",
+ "wizardErrorCreate": "Erän luominen epäonnistui. Yritä uudelleen.",
+ "wizardEmptyProviders": "Luo erä yhdistämällä eräajoja tukeva palveluntarjoaja (OpenAI, Anthropic tai Gemini).",
+ "uploadModalTitle": "Lähetä erätiedosto",
+ "uploadModalDropOrPick": "Pudota .jsonl-tiedosto tähän tai valitse se napsauttamalla",
+ "uploadModalUpload": "Lähetä",
+ "uploadModalCancel": "Peruuta",
+ "uploadModalError": "Lähetys epäonnistui. Yritä uudelleen.",
+ "uploadModalSuccess": "Lähetetty",
+ "uploadModalSizeLimit": "Enintään 512 Mt",
+ "batchListNewButton": "Uusi erä",
+ "batchListAutoRefresh": "Automaattinen päivitys 30 s välein",
+ "batchListCostColumn": "Hinta",
+ "batchActionCancel": "Peruuta",
+ "batchActionDownloadOutput": "Lataa tuloste",
+ "batchActionDownloadErrors": "Lataa virheet",
+ "batchActionRetry": "Yritä epäonnistuneita uudelleen",
+ "batchActionRetryConfirm": "Yritetäänkö {n} epäonnistunutta pyyntöä uudelleen? Lopullinen hinta riippuu käytettyjen tokenien määrästä.",
+ "expirationBadgeCritical": "Kriittinen",
+ "expirationBadgeWarning": "Pian",
+ "expirationBadgeNormal": "Odottaa",
+ "expirationBadgeExpired": "Vanhentunut",
+ "filesListUploadButton": "Lähetys",
+ "filesListUsedByColumn": "Käyttökohteet",
+ "filesListUsedByNone": "Ei mitään",
+ "filesListUsedByRoleInput": "syöte",
+ "filesListUsedByRoleOutput": "tuloste",
+ "filesListUsedByRoleError": "virhe",
+ "filesListSizeColumn": "Koko",
+ "batchListProgressPartial": "(osittainen)",
+ "batchListProviderColumn": "Palveluntarjoaja",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
- "batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListProviderOther": "Muu",
+ "batchListTitle": "Erät",
+ "batchListCount": "{count} erää",
+ "batchListRemovingCompleted": "Poistetaan…",
+ "batchListRemoveCompleted": "Poisto valmis",
+ "batchListTableStatus": "Tila",
+ "batchListTableId": "Tunnus",
+ "batchListTableEndpoint": "Päätepiste",
+ "batchListTableModel": "Malli",
+ "batchListTableProgress": "Edistyminen",
+ "batchListTableCreated": "Luotu",
+ "batchListTableExpires": "Vanhenee",
+ "batchListLoading": "Ladataan…",
+ "batchListEmpty": "Eriä ei löytynyt",
+ "batchListValidating": "Vahvistetaan…",
+ "batchStatusAll": "Kaikki tilat",
+ "batchStatusInProgress": "Käynnissä",
+ "batchStatusValidating": "Vahvistetaan",
+ "batchStatusFinalizing": "Viimeistellään",
+ "batchStatusCompleted": "Valmis",
+ "batchStatusFailed": "Epäonnistunut",
+ "batchStatusCancelled": "Peruutettu",
+ "batchStatusCancelling": "Peruutetaan",
+ "batchStatusExpired": "Vanhentunut",
+ "batchStatusCompletedWithFailures": "valmis, mutta epäonnistumisia ilmeni",
+ "batchStatusInProgressWithFailures": "käynnissä (epäonnistumisia ilmennyt)",
+ "batchStatusFinalizingWithFailures": "viimeistellään (epäonnistumisia ilmennyt)",
+ "batchStatusCancelledWithFailures": "peruutettu, mutta epäonnistumisia ilmeni",
+ "batchStatusExpiredWithFailures": "vanhentunut (osittainen)",
+ "wizardCostEstimating": "Arvioidaan kustannuksia…",
+ "wizardCostRequests": "Pyynnöt",
+ "wizardCostInputTok": "syötetunnisteet",
+ "wizardCostOutputTok": "tulostunnisteet",
+ "wizardCostWindow": "Aikaikkuna",
+ "wizardDestinationSelectProvider": "Valitse palveluntarjoaja…",
+ "wizardDestinationSelectModel": "Valitse malli…",
+ "wizardDestinationConnectProvider": "Yhdistä palveluntarjoaja",
+ "batchListBatchCreated": "Erä {id} luotu — päivitetään luetteloa…",
+ "batchListBatchCreatedDismiss": "Sulje",
+ "batchListRefreshing": "Päivitetään…",
+ "batchListRefresh": "Päivitä",
+ "uploadFileModalRemove": "Poista",
+ "uploadFileModalUploading": "Ladataan…",
+ "wizardInputReading": "Luetaan tiedostoa…",
+ "wizardInputReady": "Valmis",
+ "wizardInputLargeFileLabel": "Suuri tiedosto — tarkistus tehdään otannalla",
+ "wizardInputCsvJsonlReady": "JSONL luotu — valmis tarkistettavaksi.",
+ "wizardInputLargeFileWarning": "Suuri tiedosto havaittu — tarkistus tehdään otannalla (ensimmäiset 5 Mt + viimeiset 100 kt). Täysi tarkistus tehdään palvelinpuolella.",
+ "wizardCostWindow24h": "24 tunnin valmistumisikkuna",
+ "wizardValidationFieldsOk": "pakolliset kentät ovat kelvollisia",
+ "filesListDelete": "Poista",
+ "filesListDownload": "Lataa",
+ "batchDetailActionCancel": "Peruuta erä",
+ "batchDetailActionRetry": "Yritä epäonnistuneita pyyntöjä uudelleen",
+ "batchDetailCancelling": "Peruutetaan…",
+ "batchDetailRetrying": "Valmistellaan uutta yritystä…",
+ "batchDetailCancelConfirm": "Peruutetaanko tämä erä? Käynnissä olevat pyynnöt pysäytetään.",
+ "batchActionCancelError": "Erän peruuttaminen epäonnistui. Yritä uudelleen.",
+ "batchActionRetryError": "Epäonnistuneiden pyyntöjen yrittäminen uudelleen epäonnistui. Yritä uudelleen.",
+ "batchConceptRetentionNote": "Tulos- ja virhetiedostoja säilytetään 30 päivää (Anthropic: 29 päivää)",
"batchFilesSizeColumn": "Koko",
"toggleNoAuthProvider": "Vaihda ei-todennuspalvelinta",
"loadingModels": "Ladataan malleja…",
@@ -988,17 +988,21 @@
"disabled": "Poistettu käytöstä",
"featureFlagOmnirouteEmergencyFallbackDescription": "Reititä budjettinsa ylittäneet pyynnöt varalla olevalle ilmaiselle varatarjoajalle/-mallille.",
"featureFlagArenaEloSyncEnabledDescription": "Ota käyttöön jaksottainen Arena AI -tulostaulukon ELO-synkronointi mallien älykkyysluokituksia varten.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Luo ja lisää keskusteluyhteenvedot, kun yhdistelmäreititys vaihtaa mallia. Poista käytöstä, jos haluat käsitellä mallinvaihdot toisistaan riippumatta ja estää taustalla tehtävät siirtopyynnöt kaikissa nykyisissä ja tulevissa yhdistelmissä.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Mainosta claude/<provider>/<model> peilid tunnuksia /v1/models, jotta Claude Code -portin mallin löytölistalla näkyvät ei-Claude-mallit. Varoitus: kaksinkertaistaa luettelo-merkinnät kaikille asiakkaille, kun se on otettu käyttöön globaalisti.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Pääkytkin no-think/<provider>/<model>-yhdyskäytäväaliaksille. Käytössä (oletus): /v1/models ilmoittaa ajattelemattoman version jokaisesta ehdot täyttävästä päättelykykyisestä Claude-mallista, ja pyynnössä lähetetty no-think/-tunnus ohjautuu takaisin todelliseen malliin siten, että päättely on estetty. Ei käytössä: versioita ei ilmoiteta, ja no-think/-tunnusta käsitellään kuten mitä tahansa muuta tuntematonta mallitunnusta. Mallikohtainen ModelSpec.noThinkingAlias-käyttöönotto tai -käytöstäpoisto on edelleen voimassa, kun tämä asetus on käytössä.",
"featureFlagChatVirtualLanesEnabledDescription": "Ota käyttöön mukautuvat virtuaaliset sisäänottokaistat vuokraajaa (tenant) kohti palveluntarjoajien välitystä varten (#9654): yhden vuokraajan kuormapiikki ei enää aiheuta 503-virhettä toiselle. Ympäristömuuttuja OMNIROUTE_CHAT_VIRTUAL_LANES ohittaa tämän hallintapaneelin asetuksen; muutokset tulevat voimaan palvelimen uudelleenkäynnistyksessä.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Palveluntarjoajien koontinäyttösivut: näytä Ilmainen-merkki vain niiden signaalien perusteella, joita palveluntarjoaja noudattaa — tämä poistaa näyttönimeen perustuvan heuristiikan, muut kuin totuusarvoiset ilmaisuuskentät sekä :free-päätteet rekisteröidyiltä palveluntarjoajilta, joilla ei ole dokumentoitua ilmaistasoa. Pois käytöstä -asetus säilyttää aiemman merkkisäännön.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Välityspalvelinpoolit ja opencoden tilikohtainen kierto estävät juuri epäonnistuneen välityspalvelimen (hylätty TCP-tarkistus tai sen kautta saatu 429-vastaus) tarjoamisen uudelleen prosessikohtaisen ajanjakson ajan. Ajanjakso kaksinkertaistuu jokaisen toistuvan epäonnistumisen myötä enimmäisrajaan asti. Välityspalvelimen tilaa ei kirjata; jos kaikki ehdokkaat on siirretty sivuun, valinta pysyy ennallaan. Oletusarvoisesti poissa käytöstä: valintajärjestys vastaa täsmälleen tavallista kiertoa.",
+ "featureFlagProxyPoolEgressObservationDescription": "Näytä hallintapaneelissa välityspalvelinpoolin kohdalla, kuinka monta havaittua lähtevän liikenteen IP-osoitetta sen jäsenet käyttivät viimeisten 24 tunnin aikana, kuinka monta yhteyttä käytti niitä ja mikä oli yhden IP-osoitteen takana havaittu suurin määrä. Vain luku -tieto, joka lasketaan välityspalvelinlokista eikä jota koskaan käytetä reititykseen. Oletusarvoisesti poissa käytöstä: poolieditori säilyy ennallaan ja havaintoreitti palauttaa arvon null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Salli välityspalvelinten kuntotarkistuksessa sellaisen tarkistuksen, jonka kohde hylkäsi (401/403/429: välityspalvelin välitti pyynnön, mutta kohde hylkäsi tämän lähtevän liikenteen IP-osoitteen), nollata välityspalvelimen peräkkäisten epäonnistumisten sarja onnistuneesti palvellun tarkistuksen tavoin. Oletusarvoisesti poissa käytöstä: hylkäys pysyy neutraalina eikä katkaise sarjaa. 5xx-vastaus pysyy kummassakin tapauksessa tuloksettomana, eikä hylkäys koskaan poista välityspalvelinta, poista sitä käytöstä tai aktivoi sitä uudelleen.",
"sidebar": {
"home": "Kotiin",
"dashboard": "Kojelauta",
"providers": "Palveluntarjoajat",
"combos": "Yhdistelmät",
"usage": "Käyttö",
- "analytics": "Analytics",
+ "analytics": "Analytiikka",
"costs": "Kustannukset",
"health": "Terveys",
"proxy": "Välityspalvelin",
@@ -1008,11 +1012,11 @@
"settings": "Asetukset",
"translator": "Kääntäjä",
"playground": "Leikkipaikka",
- "searchTools": "Search Tools",
+ "searchTools": "Hakutyökalut",
"agents": "Agentit",
"cloudAgents": "Pilviagentit",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Muisti",
+ "skills": "Taidot",
"omniSkills": "OmniSkills",
"agentSkills": "AgentSkills",
"chaosConfig": "Kaaostila",
@@ -1020,12 +1024,12 @@
"issues": "Ongelmat",
"endpoints": "Päätepisteet",
"endpointsSubtitle": "AI-yhteytesi URL-osoitteet",
- "apiManager": "API Keys",
+ "apiManager": "API-avaimet",
"apiManagerSubtitle": "Hallinnoi API-avaimia ja käyttöoikeuksia",
"embeddedServices": "Upotetut palvelut",
"embeddedServicesSubtitle": "Hallitse paikallisia välityspalvelimia",
"logs": "Lokit",
- "webhooks": "Webhooks",
+ "webhooks": "Webhookit",
"webhooksSubtitle": "Saat ilmoituksen tapahtumista",
"logExport": "Lokien vienti",
"logExportSubtitle": "Lähetä kutsulokit ulos",
@@ -1065,50 +1069,50 @@
"cliToolsShort": "Työkalut",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "batch": "Erätyöt",
+ "themeSystem": "Teemajärjestelmä",
+ "whitelabelingDesc": "White label -ominaisuuksien kuvaus",
+ "switchThemes": "Vaihda teemaa",
+ "themeAccentDesc": "Teeman korostusvärin kuvaus",
+ "uploadFavicon": "Lataa favicon",
+ "themeDark": "Tumma teema",
+ "customLogoDesc": "Mukautetun logon kuvaus",
+ "sidebarVisibilityToggle": "Sivupalkin näkyvyyden vaihto",
+ "themeAccent": "Teeman korostusväri",
+ "resetFavicon": "Palauta favicon",
+ "whitelabeling": "Brändin mukauttaminen",
+ "darkMode": "Tumma tila",
+ "uploadLogo": "Lataa logo",
+ "themeLight": "Vaalea teema",
+ "appName": "Sovelluksen nimi",
+ "appNameDesc": "Sovelluksen nimen kuvaus",
+ "resetLogo": "Palauta logo",
+ "customFavicon": "Mukautettu favicon",
+ "hideHealthLogs": "Piilota kuntolokit",
+ "customLogo": "Mukautettu logo",
+ "appearance": "Ulkoasu",
+ "themeSelectionAria": "Teeman valinnan ARIA-tunniste",
+ "themeCreate": "Luo teema",
+ "customFaviconDesc": "Mukautetun faviconin kuvaus",
+ "logoPreview": "Logon esikatselu",
+ "themeCustom": "Mukautettu teema",
+ "hideHealthLogsDesc": "Kuntolokien piilottamisen kuvaus",
+ "faviconPreview": "Faviconin esikatselu",
+ "changelog": "Muutosloki",
+ "contextSection": "Konteksti ja välimuisti",
+ "contextCaveman": "Luolamies",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Moottoriyhdistelmät",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Pakkausasetukset",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Yhdistelmästudio",
"combosLiveSubtitle": "Reaaliaikainen reitityskaskadi",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Poissulkemiset",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Reaaliaikainen moottorikaskadi",
"compressionExclusionsSubtitle": "Per-malli/päätepiste ohitus",
"chaosConfigSubtitle": "Monen mallin rinnakkaissuoritus",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Reititys",
+ "protocolsSection": "Protokollat",
+ "agentsAiSection": "Agentit ja tekoäly",
+ "cacheContextSection": "Välimuisti ja konteksti",
+ "analyticsSection": "Analytiikka",
+ "costsSection": "Kustannukset",
+ "monitoringSection": "Valvonta",
+ "auditSecuritySection": "Auditointi ja tietoturva",
+ "devtoolsSection": "Kehittäjätyökalut",
+ "configurationSection": "Määritykset",
+ "aiFeaturesSection": "AI-ominaisuudet",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Liitännäiset",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "API-päätepisteet",
+ "batchFiles": "Tiedostot",
+ "analyticsEvals": "Arvioinnit",
+ "analyticsSearch": "Haku",
+ "analyticsUtilization": "Käyttöaste",
+ "analyticsComboHealth": "Yhdistelmien tila",
+ "analyticsCompression": "Pakkaus",
+ "costsBudget": "Budjetti",
"costsFreeTiers": "Maksuttoman tason budjetti",
"costsFreeTiersSubtitle": "Kuukausittaiset maksuttomat token-kiintiöt",
"freeProviderRankings": "Maksuttomien tarjoajien sijoitukset",
"freeProviderRankingsSubtitle": "Parhaat maksuttomat tarjoajat järjestettynä mallin ELO-pisteiden mukaan",
"radar": "Radar-katalogi",
"radarSubtitle": "Yhteisön rikastama ilmainen mallikatalogi",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
- "auditA2a": "A2A Audit",
+ "costsQuotaShare": "Kiintiöiden jakaminen",
+ "costsPricing": "Hinnoittelu",
+ "logsProxy": "Välityspalvelimen lokit",
+ "logsConsole": "Konsoli",
+ "logsActivity": "Toiminta",
+ "auditMcp": "MCP-auditointi",
+ "auditA2a": "A2A-auditointi",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Ulkoasu",
+ "settingsAi": "AI-asetukset",
+ "settingsSecurity": "Tietoturva",
"settingsAccessTokens": "Pääsytunnukset",
"settingsFeatureFlags": "Ominaisuusliput",
"settingsCache": "Välimuisti",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "Käyttöoikeudet",
+ "settingsRouting": "Reititys",
+ "settingsResilience": "Vikasietoisuus",
"modelLockout": "Mallin lukitus",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Lisäasetukset",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Palveluntarjoajan kiintiö",
+ "providerQuota": "Palveluntarjoajan kiintiö",
+ "runtime": "Suorituksenaikainen ympäristö",
+ "consoleLogs": "Konsolilokit",
+ "logsTimeline": "Aikajana",
"logsTimelineSubtitle": "Visuaalinen pyyntöaikajana",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Keskustelut",
+ "conversationsSubtitle": "Monivaiheiset agenttipohjaiset keskustelut",
+ "globalRouting": "Globaali reititys",
+ "mitmProxy": "MITM-välityspalvelin",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "agenticFeaturesSection": "Agenttitoiminnot",
+ "otherFeaturesSection": "Muut ominaisuudet",
+ "compressionContextGroup": "Kontekstin pakkaus",
+ "gamificationGroup": "Pelillistäminen",
+ "toolsGroup": "Työkalut",
+ "integrationsGroup": "Integraatiot",
+ "proxyGroup": "Välityspalvelin",
+ "costsParametersGroup": "Kustannusparametrit",
+ "auditGroup": "Auditointi",
+ "batchGroup": "Eräajo",
+ "homeSubtitle": "Koontinäytön yleiskatsaus",
+ "providersSubtitle": "Hallinnoi tekoälypalveluntarjoajia",
+ "quotaTrackerSubtitle": "Seuraa käyttörajoja",
+ "providerQuotaSubtitle": "Seuraa palveluntarjoajien käyttörajoja",
+ "runtimeSubtitle": "Reaaliaikainen vikasietoisuus ja istunnot",
+ "contextCombosSubtitle": "Yhdistä pakkausmoottoreita",
+ "cliToolsSubtitle": "Määritä CLI-ajoympäristöt",
+ "agentsSubtitle": "Hallinnoi paikallisia agentteja",
+ "cloudAgentsSubtitle": "Hallinnoi pilvipohjaisia agentteja",
+ "apiEndpointsSubtitle": "Julkaise mukautettuja päätepisteitä",
+ "proxySubtitle": "HTTP-välityspalvelimen asetukset",
+ "mitmProxySubtitle": "MITM-sieppaus",
+ "oneProxySubtitle": "Julkinen välityspalvelinyhdyskäytävä",
+ "leaderboard": "Tulostaulukko",
+ "profile": "Profiili",
+ "tokens": "Tokenit",
+ "gamificationAdmin": "Pelillistämisen hallinta",
+ "leaderboardSubtitle": "Sijoitukset ja saavutukset",
+ "profileSubtitle": "Tili ja asetukset",
+ "tokensSubtitle": "Tokenien käyttö ja budjetit",
+ "gamificationAdminSubtitle": "Poikkeamien valvonta ja huijausten esto",
+ "usageSubtitle": "Liikenne- ja käyttötilastot",
+ "analyticsComboHealthSubtitle": "Yhdistelmäkohteen luotettavuus",
+ "analyticsUtilizationSubtitle": "Palveluntarjoajien käyttöaste",
+ "costsSubtitle": "Kulujen erittely",
+ "cacheSubtitle": "Välimuistiosumien osuudet",
+ "analyticsCompressionSubtitle": "Tokenien säästötilastot",
+ "analyticsSearchSubtitle": "Hakutyökalun analytiikka",
+ "analyticsEvalsSubtitle": "Arviointikokonaisuuden tulokset",
"providerStats": "Tarjoajan tilastot",
"providerStatsSubtitle": "Viive- ja suorituskykymittarit",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Sovelluslokit",
+ "logsProxySubtitle": "Välityspalvelimen liikennelokit",
+ "consoleLogsSubtitle": "Konsolituloste",
+ "logsActivitySubtitle": "Käyttäjän toimintaloki",
+ "healthSubtitle": "Järjestelmän kuntotarkistus",
+ "costsPricingSubtitle": "Mallikohtaiset hinnoittelusäännöt",
+ "costsBudgetSubtitle": "Budjettirajat",
+ "costsQuotaShareSubtitle": "Jaa palveluntarjoajien kiintiöt avainten kesken",
+ "auditLogSubtitle": "Valtuutuksen tarkastus",
+ "auditMcpSubtitle": "MCP-palvelimen tarkastus",
+ "auditA2aSubtitle": "A2A-protokollan tarkastus",
+ "translatorSubtitle": "Muotomuunnos",
+ "playgroundSubtitle": "Testaa kehotteita reaaliajassa",
+ "searchToolsSubtitle": "Hakutyökalujen rekisteri",
+ "memorySubtitle": "Pysyvä agenttimuisti",
+ "omniSkillsSubtitle": "Hiekkalaatikon taitorekisteri",
+ "agentSkillsSubtitle": "A2A-taitorekisteri",
+ "mcpSubtitle": "MCP-palvelimen hallinta",
+ "a2aSubtitle": "A2A-protokollapalvelin",
"pluginsSubtitle": "Liitännäismarkkinapaikka ja asennukset",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Välimuistiin tallennetut mediatiedostot",
+ "batchFilesSubtitle": "Eräsyöte- ja tulostiedostot",
+ "settingsSubtitle": "Kaikki asetukset",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Teema ja asettelu",
+ "settingsAiSubtitle": "Tekoälyn toiminnan oletusasetukset",
+ "globalRoutingSubtitle": "Yleiset reitityssäännöt",
+ "settingsResilienceSubtitle": "Uudelleenyritykset ja katkaisimet",
+ "settingsAdvancedSubtitle": "Tehokäyttäjän asetukset",
+ "settingsSecuritySubtitle": "Todennus ja salaus",
"settingsAccessTokensSubtitle": "Rajatut CLI-tunnukset etätilaa varten",
"settingsFeatureFlagsSubtitle": "Vaihda järjestelmän ominaisuuksia",
"settingsCacheSubtitle": "Mallikatalogi ja vastausten välimuisti",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Sivupalkki",
+ "settingsSidebarSubtitle": "Mukauta sivupalkin asettelua",
"settingsAuthzSubtitle": "Reittiluettelo ja ohituskäytäntö",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Dokumentaatio",
+ "issuesSubtitle": "Ilmoita virheestä",
+ "changelogSubtitle": "Julkaisutiedot",
"costsQuotaPlans": "Sopimukset & kiintiöt",
"costsQuotaPlansSubtitle": "Määritä sopimukset tarjoajakohtaisesti",
"activity": "Toiminta",
@@ -1274,8 +1278,8 @@
"agentBridge": "Agent Bridge",
"agentBridgeSubtitle": "Kaappaa IDE-agentin liikenne",
"trafficInspector": "Liikennetarkastin",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Tarkastele sovellustesi pyyntö- ja vastausliikennettä",
+ "trafficInspectorPurpose": "Näe tarkalleen, mitä sovelluksesi lähettää tekoälypalveluntarjoajille ja vastaanottaa niiltä. Toimii kaikkien OpenAI-yhteensopivien asiakasohjelmien kanssa.",
"cliCode": "CLI-koodi",
"cliCodeSubtitle": "OmniRouteen osoittavat koodityökalut",
"cliAgents": "CLI-agentit",
@@ -1314,7 +1318,7 @@
"noResults": "Ei tuloksia"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Webhookit",
"description": "Määritä HTTP-puhelut järjestelmätapahtumille.",
"configuredWebhooks": "Määritetyt Webhookit",
"configuredWebhooksDesc": "Hallitse toimituspäätepisteitä, tilattuja tapahtumia, tilaa ja testilähetyksiä.",
@@ -1341,7 +1345,7 @@
"refresh": "Päivitä",
"loading": "Ladataan webhookeja...",
"never": "Ei koskaan",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {ei virheitä} one {# virhe} other {# virhettä}}",
"testWebhook": "Lähetä testi",
"testSuccess": "Testi webhookin lähetys onnistui.",
"testFailed": "Webhookin testaus epäonnistui.",
@@ -1374,54 +1378,54 @@
"step3": "Vahvista määritykset lähettämällä testikuorma varmistaaksesi, että päätepiste vastaanottaa sen.",
"step4": "Suojaa päätepisteesi vahvistamalla X-Webhook-Signature HMAC-SHA256 -otsake webhookin salaisuudella.",
"title": "Miten webhookit toimivat",
- "customOnly": "Only applicable for custom endpoint integrations.",
- "hmacRecipeTitle": "HMAC Verification Recipe",
- "hmacRecipe": "To verify webhook payloads in Node.js, compute the HMAC-SHA256 of the raw request body using your secret key. Compare it to the X-Webhook-Signature header using timingSafeEqual.",
- "timeoutNote": "Webhook deliveries have a timeout of 10 seconds.",
- "retryNote": "Failed deliveries are retried up to 5 times with exponential backoff.",
- "docsLink": "Read the full Webhooks developer guide",
- "hmacRecipePython": "Python HMAC verification: hmac.new(secret, body, hashlib.sha256).hexdigest()",
- "hmacRecipeBash": "Bash HMAC verification: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
+ "customOnly": "Koskee vain mukautettujen päätepisteiden integraatioita.",
+ "hmacRecipeTitle": "HMAC-vahvistuksen toteutusohje",
+ "hmacRecipe": "Vahvista webhook-hyötykuormat Node.js:ssä laskemalla raakapyyntörungon HMAC-SHA256 salaisella avaimellasi. Vertaa sitä X-Webhook-Signature-otsakkeeseen timingSafeEqual-funktiolla.",
+ "timeoutNote": "Webhook-toimitusten aikakatkaisu on 10 sekuntia.",
+ "retryNote": "Epäonnistuneita toimituksia yritetään uudelleen enintään 5 kertaa eksponentiaalisesti kasvavalla viiveellä.",
+ "docsLink": "Lue koko Webhooks-kehittäjäopas",
+ "hmacRecipePython": "Python HMAC -vahvistus: hmac.new(secret, body, hashlib.sha256).hexdigest()",
+ "hmacRecipeBash": "Bash HMAC -vahvistus: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
},
"deliveries": {
- "title": "Delivery Logs",
- "loadFailed": "Failed to load webhook delivery logs.",
- "empty": "No deliveries recorded yet. Trigger an event or send a test payload.",
- "status": "Status",
- "event": "Event",
- "latency": "Latency",
- "at": "Sent At"
+ "title": "Toimituslokit",
+ "loadFailed": "Webhook-toimituslokien lataaminen epäonnistui.",
+ "empty": "Toimituksia ei ole vielä tallennettu. Käynnistä tapahtuma tai lähetä testihyötykuorma.",
+ "status": "Tila",
+ "event": "Tapahtuma",
+ "latency": "Viive",
+ "at": "Lähetetty"
},
"kinds": {
- "comingSoon": "Coming Soon",
+ "comingSoon": "Tulossa pian",
"slack": "Slack",
- "slackDesc": "Post system events directly into a Slack channel",
+ "slackDesc": "Lähetä järjestelmätapahtumat suoraan Slack-kanavalle",
"telegram": "Telegram",
- "telegramDesc": "Send event messages using a Telegram bot",
+ "telegramDesc": "Lähetä tapahtumaviestejä Telegram-botilla",
"discord": "Discord",
- "discordDesc": "Deliver real-time updates directly to a Discord server",
- "custom": "Custom Webhook",
- "customDesc": "Deliver system event payloads to any HTTPS endpoint",
- "email": "Email Notification",
- "emailDesc": "Receive summary updates via email",
+ "discordDesc": "Toimita reaaliaikaiset päivitykset suoraan Discord-palvelimelle",
+ "custom": "Mukautettu webhook",
+ "customDesc": "Toimita järjestelmätapahtumien hyötykuormat mihin tahansa HTTPS-päätepisteeseen",
+ "email": "Sähköposti-ilmoitus",
+ "emailDesc": "Vastaanota yhteenvetopäivityksiä sähköpostitse",
"pagerduty": "PagerDuty",
- "pagerdutyDesc": "Trigger alerts on PagerDuty for critical system issues",
+ "pagerdutyDesc": "Käynnistä hälytyksiä PagerDuty-palvelussa kriittisistä järjestelmäongelmista",
"teams": "Microsoft Teams",
- "teamsDesc": "Forward system notifications to Microsoft Teams channels"
+ "teamsDesc": "Välitä järjestelmäilmoitukset Microsoft Teams -kanaville"
},
- "testPayloadSent": "Test Payload Sent",
- "testResponse": "Test Response",
+ "testPayloadSent": "Testihyötykuorma lähetetty",
+ "testResponse": "Testivastaus",
"validateUrl": {
- "checking": "Checking URL...",
- "ok": "URL is valid",
- "blockedPrivate": "URL is a blocked private address",
- "invalidUrl": "Invalid URL format"
+ "checking": "Tarkistetaan URL-osoitetta...",
+ "ok": "URL-osoite on kelvollinen",
+ "blockedPrivate": "URL-osoite on estetty yksityinen osoite",
+ "invalidUrl": "Virheellinen URL-muoto"
},
"custom": {
- "endpointUrl": "Endpoint URL",
+ "endpointUrl": "Päätepisteen URL-osoite",
"endpointUrlPlaceholder": "https://api.yourdomain.com/webhook",
- "secretKey": "Secret Key",
- "secretKeyPlaceholder": "Enter secret key or leave blank to auto-generate",
+ "secretKey": "Salainen avain",
+ "secretKeyPlaceholder": "Anna salainen avain tai jätä tyhjäksi, jolloin se luodaan automaattisesti",
"secretKeyHint": "Käytetään hyötykuorman otsikon allekirjoittamiseen todennusta varten."
},
"discord": {
@@ -1447,7 +1451,7 @@
}
},
"compliance": {
- "auditTitle": "Audit",
+ "auditTitle": "Auditointi",
"auditDescription": "Tarkista vaatimustenmukaisuustapahtumat ja MCP-työkalukutsut yhdestä toimintanäkymästä.",
"complianceTab": "Vaatimustenmukaisuus",
"mcpTab": "MCP-tarkastus",
@@ -1466,7 +1470,7 @@
"result": "Tulos",
"details": "Yksityiskohdat",
"timestamp": "Aikaleima",
- "from": "From",
+ "from": "Lähettäjä",
"to": "Vastaanottaja",
"refresh": "Päivitä",
"export": "Vie",
@@ -1496,7 +1500,7 @@
"success": "Menestystä",
"failure": "Epäonnistuminen",
"noMcpEvents": "Ei tallennettu MCP-tarkastustapahtumia.",
- "a2aAudit": "A2A Audit",
+ "a2aAudit": "A2A-auditointi",
"a2aAuditDesc": "A2A-palvelimen tallentama tehtävien suorittamisen seurantaketju.",
"a2aShowingTasks": "Näytetään {count}/{total} tehtävää",
"a2aSkill": "Taito",
@@ -1581,18 +1585,18 @@
"comboDescription": "Malliyhdistelmät varaosilla",
"usage": "Käyttö ja analytiikka",
"usageDescription": "Valvo API-käyttöäsi, tunnuksesi kulutusta ja pyyntölokeja",
- "analytics": "Analytics",
+ "analytics": "Analytiikka",
"analyticsDescription": "Kaavioita, trendejä ja arviointitietoja",
"cliTools": "CLI-työkalut",
"cliToolsDescription": "Määritä CLI-työkalut",
"home": "Kotiin",
"homeDescription": "Tervetuloa OmniRouteen",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Päätepisteet",
+ "endpointDescription": "Hallitse välityspalvelimen päätepisteitä sekä MCP-, A2A- ja API-päätepisteitä",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Model Context Protocol -palvelinten ja työkalujen hallinta",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Agent-to-Agent-protokollan tehtävät ja havainnoitavuus",
"settings": "Asetukset",
"settingsDescription": "Hallinnoi asetuksiasi",
"openaiCompatible": "OpenAI-yhteensopiva",
@@ -1601,49 +1605,49 @@
"mediaDescription": "Luo kuvia, videoita ja musiikkia",
"themes": "Teemat",
"themesDescription": "Valitse väriteema koko kojelautapaneelille",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
- "auditA2a": "A2A Audit",
+ "costsDescription": "Seuraa kuluja, analysoi trendejä ja hallitse tekoälybudjettiasi kaikkien palveluntarjoajien osalta",
+ "cacheDescription": "Valvo palveluntarjoajien kehotteiden välimuistin tehokkuutta ja paikallisten semanttisten vastausten uudelleenkäyttöä.",
+ "limitsDescription": "Määritä nopeusrajoitukset ja kiintiöt API-avaimittain ja palveluntarjoajittain",
+ "runtimeDescription": "Ajonaikainen havainnoitavuus reaaliajassa — katkaisijat, jäähdytysajat, mallien lukitukset, istunnot ja kiintiöhälytykset",
+ "apiManagerDescription": "Hallitse OmniRoute-instanssisi API-avaimia ja käyttöoikeuksia",
+ "batchDescription": "Käsittele suuria pyyntömääriä asynkronisesti eräajettuina API-kutsuina",
+ "contextCavemanDescription": "Sääntöpohjainen viestien pakkaus, kielipaketit, analytiikka ja tulostustilan hallinta.",
+ "contextRtkDescription": "Komennot huomioiva pakkaus työkalujen tulosteille, päätelokeille ja koontituloksille.",
+ "contextCombosDescription": "Määritä, miten moottoreita yhdistetään eri reititystilanteissa.",
+ "changelogDescription": "Pysy ajan tasalla uusimmista alustaominaisuuksista ja ilmoituksista.",
+ "agentsDescription": "Hallitse ja määritä tekoälyagenttien työkaluja: Codex, Devin, Jules ja mukautetut agentit",
+ "cloudAgentsDescription": "Orkestroi pilvipohjaisia tekoälyagentteja reaaliaikaisella tehtävien seurannalla ja suunnitelmien hyväksynnällä",
+ "memoryDescription": "Pysyvä keskustelumuisti semanttisella haulla ja FTS5-kokoteksti-indeksoinnilla",
+ "skillsDescription": "Asenna ja hallitse hiekkalaatikkotaitoja kehotteiden ja työkalujen automaattista suorittamista varten",
+ "agentSkillsDescription": "Agenteille valmis taitoluettelo, josta URL-osoitteen voi kopioida yhdellä napsautuksella tekoälyasiakasohjelmaan integrointia varten",
+ "translatorDescription": "Muunna ja testaa kehotteita eri API-muotojen välillä: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Testaa kehotteita vuorovaikutteisesti palveluntarjoajien reaaliaikaisilla vastauksilla ja muodon tarkistuksella",
+ "searchToolsDescription": "Hakujen analytiikka, palveluntarjoajakohtaiset tiedot, välimuistin osumaprosentit ja kustannusten seuranta",
+ "logsDescription": "Reaaliaikaiset pyyntölokit, virhejäljitykset ja suoratoistotapahtumien tarkastelu",
+ "auditDescription": "API-avainten käytön, MCP-työkalukutsujen ja käytäntötapahtumien vaatimustenmukaisuuden auditointiloki",
+ "webhooksDescription": "Määritä webhook-päätepisteet vastaanottamaan reaaliaikaisia tapahtumailmoituksia",
+ "healthDescription": "Järjestelmän kunnon yleiskatsaus: palveluntarjoajat, katkaisijat, nopeusrajoitukset ja tietokanta",
+ "proxyDescription": "Määritä ylävirran välityspalvelinasetukset lähteville palveluntarjoajayhteyksille",
+ "apiEndpointsDescription": "Hallitse mukautettujen API-päätepisteiden määrityksiä ja reitityksen ohituksia",
+ "batchFilesDescription": "Selaa ja hallitse eräajojen tulostiedostoja ja tuloksia",
+ "analyticsEvalsDescription": "Mallien arviointitulokset ja suorituskykyvertailut",
+ "analyticsSearchDescription": "Hakukyselyiden analytiikka, välimuistin osumaprosentit ja kustannusten seuranta",
+ "analyticsUtilizationDescription": "Palveluntarjoajien käyttöasteen mittarit ja kapasiteetin suunnittelu",
+ "analyticsComboHealthDescription": "Yhdistelmäreititysmääritysten reaaliaikainen kunto ja suorituskyky",
+ "analyticsCompressionDescription": "Kontekstin pakkausanalytiikka ja token-säästöt",
+ "costsBudgetDescription": "Budjettirajat ja kuluhälytykset API-avaimittain ja palveluntarjoajittain",
+ "costsPricingDescription": "Mukautettu hinnoittelu token-kustannusten laskentaan",
+ "logsProxyDescription": "Ylävirran välityspyyntöjen lokit ja liikenteen tarkastus",
+ "logsConsoleDescription": "Sovelluskonsolin tulosteet ja virheenkorjauslokit",
+ "logsActivityDescription": "Käyttäjätoimintojen ja järjestelmätapahtumien auditointiketju",
+ "auditMcpDescription": "MCP-työkalukutsujen auditointiketju ja vaatimustenmukaisuustiedot",
+ "auditA2a": "A2A-auditointi",
"auditA2aDescription": "A2A-tehtävän suorittamisen kirjausketju, tilasiirtymät ja taitojen kutsutietueet",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Teeman, brändi-ilmeen ja ulkoasun mukauttaminen",
+ "settingsAiDescription": "Tekoälyn toiminta, ajattelubudjetit sekä näkö- ja muistiasetukset",
"settingsCacheDescription": "Mallikatalogin välimuistin merkintöjen TTL",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Todennus-, valtuutus- ja käyttöoikeusasetukset",
"featureFlags": "Ominaisuusliput",
"featureFlagsDescription": "Ohjausjärjestelmän ominaisuudet ja kokeelliset ominaisuudet",
"featureFlagsActive": "{count} aktiivinen",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Yksikään lippu ei vastaa hakuasi",
"featureFlagsSaved": "Lippu päivitetty",
"featureFlagsError": "Lipun päivittäminen epäonnistui",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Reitityssäännöt, mallien aliakset, yhdistelmien oletukset ja heikennysasetukset",
+ "settingsResilienceDescription": "Katkaisijan, uudelleenyritysten ja varajärjestelyjen määritys",
+ "settingsAdvancedDescription": "Hyötykuorman lisäsäännöt, pyyntörajat ja välityspalvelimen API-asetukset",
+ "mitmProxyDescription": "Määritä MITM-välityspalvelimen asetukset liikenteen tarkastusta ja virheenkorjausta varten",
+ "oneProxyDescription": "Määritä 1Proxy-asetukset edistyneeseen välityspalvelinketjutukseen",
"omniSkillsDescription": "Asenna ja hallitse hiekkalaatikkotaitoja automaattista kehotteiden ja työkalujen suorittamista varten"
},
"cloudSyncStatus": {
@@ -1740,7 +1744,7 @@
"changelog": "Muutosloki",
"chaos": "Kaaos",
"cloudAgents": "Pilviagentit",
- "live": "Live",
+ "live": "Reaaliaikainen",
"studio": "Studio",
"aggressive": "Aggressiivinen",
"caveman": "Luolamies",
@@ -1758,7 +1762,7 @@
"discovery": "Löytäminen",
"freeProviderRankings": "Ilmaisten tarjoajien sijoitukset",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Määritys",
"freeTiers": "Ilmaiset tasot",
"gamification": "Pelillistäminen",
"leaderboard": "Tulostaulukko",
@@ -1768,7 +1772,7 @@
"providerStats": "Tarjoajan tilastot",
"new": "Uusi",
"quota": "Kiintiö",
- "relay": "Relay",
+ "relay": "Välitys",
"searchTools": "Hakutyökalut",
"security": "Tietoturva",
"sidebar": "Sivupalkki",
@@ -1808,7 +1812,7 @@
"reportIssue": "Ilmoita ongelmasta",
"activeError": "{active} aktiivinen · {errors} virhe",
"topologyLegendActive": "Aktiivinen",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Viimeisimmät",
"topologyLegendError": "Virhe",
"oauthLabel": "OAuth",
"apiKeyLabel": "API-avain",
@@ -1822,11 +1826,11 @@
"updateStarted": "Päivitys aloitettu...",
"reloadingPageAutomatically": "Ladataan sivua automaattisesti uudelleen...",
"providerTopology": "Palveluntarjoajan topologia",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Viimeisimmät pyynnöt",
+ "recentRequestsEmpty": "Ei vielä pyyntöjä.",
+ "recentRequestsModel": "Malli",
+ "recentRequestsTokens": "Sisään / Ulos",
+ "recentRequestsWhen": "Milloin",
"downloadDmg": "Lataa DMG (macOS)",
"downloadDmgDescription": "Uusi versio OmniRoute-työpöytäsovelluksesta on saatavilla. Lataa ja asenna macOS DMG -asennustiedosto päivittääksesi (nykyinen: v{version}).",
"downloadExe": "Lataa EXE (Windows)",
@@ -1884,18 +1888,18 @@
"releaseNotes": "Julkaisutiedot",
"readMore": "Lue lisää",
"noAuthLabel": "Ei todennusta",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Valmistaudu reititykseen",
+ "readinessTitle": "Lähetä ensimmäinen pyyntösi",
+ "readinessSubtitle": "Neljä pientä vaihetta. OmniRoute tarkistaa valmiuden edetessäsi.",
+ "readinessStep1": "Yhdistä palveluntarjoaja",
+ "readinessStep2": "Määritä päätepisteen todennus",
+ "readinessStep3": "Kopioi päätepisteesi",
+ "readinessStep4": "Lähetä testipyyntö",
+ "readinessContinue": "Jatka määritystä",
+ "readinessDismiss": "Ohita toistaiseksi"
},
"analytics": {
- "title": "Analytics",
+ "title": "Analytiikka",
"usageAnalyticsTitle": "Käyttöanalytiikka",
"diversityScoreTitle": "Tarjoajan monimuotoisuus",
"diversityScoreDesc": "Tilannekuva tarjoajien keskittymisestä viimeaikaisen liikenteen ajalta.",
@@ -1963,7 +1967,7 @@
"period7D": "7 pv",
"period30D": "30 pv",
"period90D": "90 pv",
- "periodYTD": "YTD",
+ "periodYTD": "Vuoden alusta",
"periodAll": "Kaikki",
"totalTokens": "Tokenit yhteensä",
"inputTokens": "Syötetokenit",
@@ -1989,7 +1993,7 @@
"overviewDescription": "Tarkkaile sovellusliittymän käyttötapoja, tunnuksen kulutusta, kustannuksia ja toimintatrendejä kaikilla palveluntarjoajilla ja malleilla.",
"evalsDescription": "Testaa ja vahvista LLM-päätepisteesi suorittamalla arviointipaketteja. Vertaile mallin laatua, havaitse regressiot ja vertaile viivettä.",
"overview": "Yleiskatsaus",
- "evals": "Evals",
+ "evals": "Arvioinnit",
"search": "Haku",
"utilization": "Käyttöaste",
"routeTrace": "Reitin jäljitys",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Virhe",
"comboHealth": "Yhdistelmän kunto",
"comboHealthDescription": "Yhdistelmätason kiintiö, käytön jakautuminen ja suorituskykymittarit",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Pakkausanalytiikka",
+ "compressionAnalyticsDescription": "Pakkausanalytiikka — tunnistesäästöt, tilojen erittely ja palveluntarjoajatilastot.",
"autoRoutingTotalAutoRequests": "Automaattiset pyynnöt yhteensä",
"autoRoutingAvgSelectionScore": "Keskimääräinen valintapiste",
"autoRoutingExplorationRate": "Tutkimusaste",
@@ -2203,10 +2207,10 @@
"model": "Malli",
"account": "Tili",
"connection": "Yhteys",
- "combo": "Combo",
+ "combo": "Yhdistelmä",
"routeStep": "Vaihe",
"tokens": "Tokenit",
- "notAvailable": "n/a",
+ "notAvailable": "ei saatavilla",
"routeTokenCounts": "{input} sisään · {output} ulos",
"routeEvidence": "Todisteet",
"routeFactors": "Reititystekijät",
@@ -2254,9 +2258,9 @@
"fullAccess": "Täysi pääsy",
"keyManagement": "API-avainten hallinta",
"keyManagementDesc": "Luo ja hallitse API-avaimia päätepisteesi pyyntöjen todentamiseksi",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Sovelluksesi lähettää pyynnöt API-avaimella OmniRouteen",
+ "requestFlowYourApp": "Sovelluksesi",
+ "requestFlowApiKey": "API-avain",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Avaimet yhteensä",
"restricted": "Rajoitettu",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Kopioi ja tallenna tämä avain nyt – sitä ei näytetä uudelleen.",
"done": "Valmis",
"savePermissions": "Tallenna käyttöoikeudet",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Sallitut päätepisteet",
+ "allEndpointsAllowed": "Tällä avaimella voi käyttää kaikkia API-päätepisteitä.",
+ "endpointsRestricted": "Rajoitettu {count} päätepisteeseen{count, plural, one {} other {s}}.",
+ "autoResolve": "Automaattinen ratkaisu",
+ "autoResolveDesc": "Ratkaise epäselvät mallien nimet automaattisesti tämän API-avaimen alkuperäiselle palveluntarjoajalle.",
"streamDefaultMode": "Striimauksen oletusyhteensopivuus",
"streamDefaultModeDesc": "Hallitsee tämän avaimen puuttuvia `stream`-lippuja. JSON-tila palauttaa ei-striimattavia vastauksia, ellei asiakas nimenomaisesti pyydä SSE:tä.",
"streamDefaultLegacy": "Perinteinen",
"streamDefaultJson": "JSON-yhteensopiva",
"streamDefaultBadge": "JSON-striimauksen oletus",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Avain käytössä",
+ "keyActiveDesc": "Ota tämä API-avain käyttöön tai poista se käytöstä. Käytöstä poistetuilla avaimilla tehdyt pyynnöt hylätään välittömästi 403-virheellä.",
+ "accessSchedule": "Käyttöaikataulu",
+ "accessScheduleDesc": "Rajoita käyttö tiettyihin kellonaikoihin ja viikonpäiviin.",
+ "scheduleFrom": "Alkaen",
+ "scheduleUntil": "Asti",
+ "scheduleDays": "Päivät",
+ "scheduleTimezone": "Aikavyöhyke",
+ "scheduleTimezoneHint": "Käytä IANA-aikavyöhykkeiden nimiä, esim. America/New_York, Europe/Berlin",
+ "scheduleActive": "Aikataulu",
+ "disabled": "Poistettu käytöstä",
+ "daySun": "Su",
+ "dayMon": "Ma",
+ "dayTue": "Ti",
+ "dayWed": "ke",
+ "dayThu": "to",
+ "dayFri": "pe",
+ "daySat": "la",
"allowAll": "Salli kaikki",
"restrict": "Rajoita",
"allowAllInfo": "Tällä avaimella pääsee kaikkiin saatavilla oleviin malleihin.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Käyttöoikeuksien päivittäminen epäonnistui. Yritä uudelleen.",
"unknownProvider": "tuntematon",
"copyMaskedKey": "Kopioi peitetty avain",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Koko avain on saatavilla vain luontihetkellä — kopioi se, kun luot avaimen ensimmäisen kerran",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# laite} other {# laitetta}}",
"devicesTooltip": "{count, plural, one {# erillinen IP-/User-Agent-laite havaittu tällä avaimella (viimeiset 30 min)} other {# erillistä IP-/User-Agent-laitetta havaittu tällä avaimella (viimeiset 30 min)}}",
@@ -2378,16 +2382,16 @@
"allowedCombos": "Sallitut yhdistelmät",
"allCombosAllowed": "Tämä avain voi käyttää mitä tahansa yhdistelmää.",
"restrictedComboCount": "Rajoitettu {count, plural, one {# yhdistelmään} other {# yhdistelmään}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# tallennettu kohde ei ole} other {# tallennettua kohdetta eivät ole}} tässä yhdistelmäluettelossa (esimerkiksi reitityssäännöt), ja ne säilytetään tallennetussa muodossa.",
+ "preservedComboRuleHint": "Säilytetään tallennetussa muodossa. Tämä kohde ei ole yllä olevassa yhdistelmäluettelossa, joten sitä voi muuttaa vain API:n kautta.",
"apiManagerCustomRateLimits": "Mukautetut hintarajat",
"apiManagerCustomRateLimitsDesc": "Ohita globaalit oletusrajat. Jätä tyhjäksi, jos haluat käyttää oletusasetuksia.",
"apiManagerRateLimitRequestsPlaceholder": "Pyynnöt",
- "apiManagerRateLimitReqPer": "req /",
+ "apiManagerRateLimitReqPer": "pyyntöä /",
"apiManagerRateLimitSecondsPlaceholder": "Sekuntia",
"apiManagerRemoveLimitTitle": "Poista raja",
"apiManagerTimezonePlaceholder": "Amerikka / Sao_Paulo",
- "noLogPayloadPrivacy": "No-Log Payload Privacy",
+ "noLogPayloadPrivacy": "Hyötykuorman lokittamattomuuteen perustuva tietosuoja",
"bannedStatus": "Kielletty tila",
"managementApiAccess": "Management API -käyttöoikeus",
"expirationDate": "Viimeinen voimassaolopäivä",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Sallii tämän avaimen ohittaa ylävirran tarjoajan/tilin rajapolitikan reitityksen aikana. API-avaimen USD-kiintiöt ovat edelleen voimassa.",
"quotaPill": "KIINTIÖ",
"quotaModeOnly": "vain qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Yksinomainen varaus",
+ "exclusiveLeaseNoticeTitle": "Yksinomainen varaus",
+ "exclusiveLeaseNoticeDesc": "Tällä API-avaimella on yksinomaiset varausoikeudet erillisten yhteyksien reititykseen.",
+ "allConnections": "Kaikki yhteydet",
+ "onlySelectedConnections": "Vain valitut yhteydet",
+ "selectAtLeastOneConnection": "Valitse vähintään yksi yhteys tai valitse Kaikki yhteydet.",
+ "allConnectionsDesc": "Tämä avain voi käyttää mitä tahansa aktiivista yhteyttä.",
+ "restrictedToConnections": "Rajoitettu {count, plural, one {# yhteyteen} other {# yhteyteen}}."
},
"auditLog": {
"title": "Tarkastusloki",
@@ -2453,14 +2457,14 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Luo",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Luodaan...",
+ "loadingModels": "Ladataan käytettävissä olevia malleja...",
+ "noModels": "Malleja ei ole saatavilla. Määritä ensin mediatoimintoja tukevat palveluntarjoajat.",
+ "error": "Luonti epäonnistui",
+ "result": "Tulos",
+ "imageDescription": "Luo kuvia tekstikehotteista käyttäen palveluita OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI ja muita.",
+ "videoDescription": "Luo videoita käyttäen AnimateDiffiä tai Stable Video Diffusionia ComfyUI:n tai SD WebUI:n kautta.",
+ "musicDescription": "Sävellä musiikkia käyttäen Stable Audio Openia tai MusicGeniä ComfyUI:n kautta.",
"kinds": {
"embedding": "Upotus",
"image": "Kuva",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "OpenRouter puheesta tekstiksi -mallit käyttävät määrittämääsi OpenRouter-yhteyttä. Erillistä tunnistetta ei vaadita."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Hakukysely",
+ "searchResults": "Hakutulokset",
+ "cachedResult": "Välimuistissa",
+ "searchCost": "Kustannus",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Edistynyt haun testaus palveluntarjoajien vertailulla",
+ "compareProviders": "Vertaa palveluntarjoajia",
+ "rerankResults": "Järjestä tulokset uudelleen",
+ "searchHistory": "Hakuhistoria",
+ "urlOverlap": "URL-osoitteiden päällekkäisyys",
+ "noSearchProviders": "Hakupalveluntarjoajia ei ole määritetty. Lisää palveluntarjoajia asetuksissa.",
+ "noRerankModels": "Uudelleenjärjestelymallia ei ole saatavilla",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Palveluntarjoaja",
+ "searchType": "Hakutyyppi",
+ "maxResults": "Tulosten enimmäismäärä",
+ "filters": "Suodattimet",
+ "country": "Maa",
+ "language": "Kieli",
+ "timeRange": "Aikaväli",
+ "includeDomains": "Sisällytettävät verkkotunnukset",
+ "excludeDomains": "Poissuljettavat verkkotunnukset",
+ "safeSearch": "Turvallinen haku",
+ "safeSearchOff": "Pois käytöstä",
+ "safeSearchModerate": "Kohtalainen",
+ "safeSearchStrict": "Tiukka",
+ "queryPlaceholder": "Kirjoita hakukysely...",
+ "providerAuto": "automaattinen (edullisin)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "uutiset",
+ "optionAny": "mikä tahansa",
+ "timeRangeDay": "Viimeisen vuorokauden aikana",
+ "timeRangeWeek": "Viimeisen viikon aikana",
+ "timeRangeMonth": "Viimeisen kuukauden aikana",
+ "timeRangeYear": "Viimeisen vuoden aikana",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Pyynnön aikakatkaisu ({seconds} s)",
+ "networkError": "Verkkovirhe",
+ "formatted": "Muotoiltu",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "ei löytynyt välimuistista",
+ "cacheHit": "löytyi välimuistista",
+ "latency": "Viive",
+ "cost": "Kustannus",
+ "results": "Tulokset",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Uudelleenjärjestelymalli",
+ "positionDelta": "Sijainnin muutos",
+ "emptyState": "Lähetä hakukysely nähdäksesi tulokset",
"copy": "Kopioi",
"resetToDefault": "Palauta oletusarvo",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Haku",
+ "tabScrape": "Sisällön poiminta",
+ "tabCompare": "Vertailu",
+ "modalitiesGuide": "Modaliteettiopas",
+ "searchConceptTitle": "Haku",
+ "searchConceptDesc": "Haku = hakee luettelon verkkotuloksista (otsikko, URL, katkelma, relevanssipisteet)",
+ "scrapeConceptTitle": "Sisällön poiminta",
+ "scrapeConceptDesc": "Sisällön poiminta = poimii URL-osoitteen koko sisällön (markdown, teksti tai HTML)",
+ "compareConceptTitle": "Vertailu",
+ "compareConceptDesc": "Vertailu = suorittaa saman kyselyn rinnakkain N palveluntarjoajalla viiveen, kustannusten ja tulosten päällekkäisyyden vertailemiseksi",
+ "rerankConceptTitle": "Uudelleenjärjestä",
+ "rerankConceptDesc": "Uudelleenjärjestä = järjestää tulokset uudelleen LLM:n avulla parantaakseen osuvuutta kyselyn perusteella",
+ "autoConceptTitle": "Automaattinen (halvin)",
+ "autoConceptDesc": "Automaattinen (halvin) = valitsee automaattisesti halvimman saatavilla olevan palveluntarjoajan, jolle on määritetty tunnistetiedot",
+ "providerCatalogTitle": "Palveluntarjoajaluettelo",
+ "kindSearch": "Haku",
+ "kindFetch": "Nouda/raavi",
+ "statusConfigured": "Määritetty",
+ "statusMissing": "Ei tunnistetietoja",
+ "statusRateLimited": "Nopeusrajoitettu",
+ "configureProvider": "Määritä Palveluntarjoajat-osiossa",
+ "loadingProviders": "Ladataan palveluntarjoajia…",
+ "failedToLoadProviders": "Palveluntarjoajien lataaminen epäonnistui",
+ "costPerQuery": "Kustannus/kysely",
+ "freeQuota": "Ilmainen kiintiö/kk",
+ "scrapeUrl": "Raavittava URL",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL-osoite vaaditaan",
"scrapeUrlInvalid": "Virheellinen URL-osoite — sen on alettava http:// tai https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "Poimi",
+ "scrapeExtracting": "Poimitaan…",
+ "scrapeFullPage": "Koko sivu",
+ "scrapeFormat": "Muoto",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "Teksti",
+ "scrapePreview": "Esikatselu",
+ "scrapeRaw": "Raakadata",
+ "scrapeContentTruncated": "(lyhennetty, näytä raakadata)",
+ "scrapeMetadata": "Metatiedot",
+ "scrapeProvider": "Palveluntarjoaja",
+ "scrapeSize": "Koko",
"scrapeEmptyState": "Syötä URL-osoite sisällön noutamiseksi",
"scrapeProvidersAvailable": "Saatavilla olevat tarjoajat: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Vertaa",
+ "compareRunning": "Vertaillaan…",
+ "autoProvider": "Automaattinen (halvin)",
+ "configuredStatus": "Määritetty",
+ "rateLimitedStatus": "Nopeusrajoitettu",
+ "noCredential": "Ei tunnistetietoja",
+ "searchTypeLabel": "Tyyppi",
+ "rerankModelLabel": "Uudelleenjärjestelymalli",
+ "noneOption": "Ei mitään",
+ "size": "Koko",
"configurationPane": "Asetuspaneeli",
"configuration": "Asetukset",
"status": "Tila",
@@ -2713,7 +2717,7 @@
"ccOnboardingTitle": "settings.json portin mallin löytämiseksi",
"ccOnboardingCopy": "Kopioi",
"ccOnboardingCopied": "Kopioitu",
- "ccOnboardingKeyPlaceholder": "'omniglyph-tilan kautta. Tämä on esikatseluversio ja pysyy oletusarvoisesti poissa käytöstä, kunnes päästä päähän -validointi on valmis.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Pakkausprofiili",
+ "profileDescription": "Profiili on yläraja, ei alaraja: vaihekohtainen ohitus ei voi lieventää tiukempaa profiilia. Tässä koodikannassa mitattuna coding-safe- tai balanced-profiilia käytettäessä istunto, johon ei ole vielä kertynyt historiaa, ei pakkaa mitään, koska molemmat nostavat merkkien vähimmäismäärää ja säilyttävät järjestelmäkehotteen, työkaluskeemat ja työkalujen tulokset alkuperäisessä muodossa.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressiivinen (oletus)",
+ "description": "Käytäntö, jolla julkaistut kuitit mitattiin. Muuntaa järjestelmäkehotteen, työkaludokumentaation ja tiiviin historian kuviksi."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Tasapainoinen",
+ "description": "Säilyttää aktiivisen tilan alkuperäisessä muodossa ja suojaa viimeiset 8 vuoroa; tiivistää vain vanhemman suljetun historian."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Koodaukselle turvallinen",
+ "description": "Säilyttää valtuutukset, työkaluskeemat ja aktiivisen työkalutulosteen alkuperäisessä muodossa sekä suojaa viimeiset 12 vuoroa. Ei pakkaa mitään, ennen kuin istuntoon kertyy historiaa."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Läpivienti",
+ "description": "Reitittää muuntamatta. Moottori ohitetaan ja pyyntö välitetään muuttumattomana."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Valitse OmniGlyph-pakkausprofiili",
"saved": "Tallennettu.",
"saveFailed": "Tallennus epäonnistui.",
"enableAria": "Ota OmniGlyph-moottori käyttöön",
@@ -8869,7 +8880,7 @@
"providerExposureHint": "Kun tämä on käytössä, löydetyt mallit näkyvät palveluntarjoajan valitsimissa OmniRoutessa.",
"providerExposureUpdateFailed": "Päivitys epäonnistui (HTTP {status})",
"providerExposureNetworkFailed": "Verkkovirhe — palveluntarjoajan näkyvyysasetusta ei voitu päivittää",
- "webUi": "9Router Web UI",
+ "webUi": "9Router-verkkokäyttöliittymä",
"openNewTab": "Avaa uudessa välilehdessä",
"filterLogs": "Suodata lokeja…",
"resume": "Jatka",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Sääntöpohjainen viestien pakkaus, kielipaketit, analytiikka ja tulostilan hallinta.",
"advancedConfig": "Lisäasetukset",
"advancedConfigDesc": "Hienosäädä pakkauskäyttäytymistä",
"aggressiveSettings": "Aggressiiviset asetukset",
"aggressiveSettingsDesc": "Maksimaalinen pakkaus ja mahdolliset laadun kompromissit",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Pyynnöt",
+ "tokensSaved": "Säästetyt tokenit",
+ "savingsPercent": "Säästöprosentti",
+ "avgLatency": "Keskim. viive",
+ "languagePacks": "Kielipaketit",
+ "languagePacksDesc": "Ota käyttöön pakkaussäännöt tietyille kielille.",
"labelAutoTrigger": "Pakkaa automaattisesti, kun konteksti ylittää",
"labelCompressionRate": "Puristusvoima",
"labelMaxTokens": "Kohdista tunnukset viestiä kohden",
"labelMinLength": "Viestin vähimmäispituus",
"labelMinSavings": "Vähimmäismäärä tallennettavia tokeneja",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Käytössä",
+ "autoDetect": "Tunnista kieli automaattisesti",
+ "rulesCount": "{count} sääntöä",
"inputCompressionTitle": "Syötteen pakkaus",
"inputCompressionDesc": "Kirjoita keskusteluhistoria uudelleen lyhyemmin sanakääntein. Vähentää syötetokeneita noin 50 %.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Pakkausanalytiikka",
+ "noAnalytics": "Pakkausanalytiikkaa ei vielä ole.",
"masterDisabledWarning": "Token Saver -pääkytkin on POIS PÄÄLTÄ — nämä asetukset eivät vaikuta pyyntöihin, ellet ota sitä käyttöön pakkausasetuksista tai muuta sitä tästä.",
"outputMode": "Lähtötila",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Tulostila",
"quickSettings": "Pika-asetukset",
"quickSettingsDesc": "Pakkauksen perusasetukset aloittaaksesi",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Automaattinen selkeytyksen ohitus",
+ "bypassConditions": "Ohitusehdot",
"bypassConditionsList": "turvallisuus, peruuttamaton, selvennys, järjestysherkkä",
"simpleMode": "Yksinkertainen",
"advancedMode": "Edistynyt",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra-asetukset",
"ultraSettingsDesc": "SLM-käyttöinen semanttinen pakkaus",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Vastaa ytimekkäästi. Säilytä tekniset termit, koodi, virheet, URL-osoitteet ja tunnisteet.",
+ "full": "Vastaa lyhyesti ja tiiviisti. Säilytä kaikki tekninen asiasisältö.",
+ "ultra": "Vastaa erittäin lyhyesti käyttäen yleisiä teknisiä lyhenteitä. Säilytä symbolit täsmälleen."
}
},
"translator": {
@@ -8954,7 +8965,7 @@
"realtime": "Reaaliaikainen käännöstoiminta",
"chatTester": "Chatin testaaja",
"testBench": "Testipenkki",
- "liveMonitor": "Live Monitor",
+ "liveMonitor": "Reaaliaikainen valvonta",
"modeDescriptionPlayground": "Liitä mikä tahansa API-pyynnön runko ja katso, kuinka OmniRoute kääntää sen toimittajamuotojen välillä (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
"modeDescriptionChatTester": "Lähetä todellisia chat-pyyntöjä OmniRouten kautta ja tarkasta koko meno-paluu: syöttö, käännetty pyyntö, palveluntarjoajan vastaus ja käännetty tulos.",
"modeDescriptionTestBench": "Suorita ennalta määritettyjä skenaarioita ja vertaile toimittajien ja mallien yhteensopivuutta.",
@@ -8983,24 +8994,24 @@
"ideCliIntegrations": "IDE/CLI-integraatiot",
"inMemoryNote": "Huomautus: Tapahtumat tallennetaan muistiin ja nollataan, kun palvelin käynnistyy uudelleen.",
"ok": "OK",
- "errorShort": "ERR",
- "formatConverter": "Format Converter",
+ "errorShort": "VIRHE",
+ "formatConverter": "Muotomuunnin",
"formatConverterDescription": "Liitä tai kirjoita JSON-pyynnön leipäteksti. Kääntäjä tunnistaa automaattisesti lähdemuodon ja muuntaa sen kohdemuotoon. Käytä tätä virheenkorjaukseen, kuinka OmniRoute kääntää pyynnöt muotojen välillä (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (keskitaso) → {target}",
"translationPathDirect": "{source} → {target} (suora kääntäjä)",
"translationPathPassthrough": "Sama muoto – käännöstä ei tarvita",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "OpenAI-välimuoto",
"autoFeaturesTitle": "Mitä OmniRoute tekee automaattisesti",
"autoFeaturesCount": "8 ominaisuutta",
"featureReasoningCache": "Päättelyvälimuisti",
"featureReasoningCacheDesc": "Lisää välimuistiin tallennettua päättelysisältöä uudelleen ajattelutapamalleille (DeepSeek V4, Kimi K2, Qwen), kun asiakkaat jättävät sen pois keskusteluhistoriasta.",
- "featureSchemaCoercion": "Schema Coercion",
+ "featureSchemaCoercion": "Skeeman mukautus",
"featureSchemaCoercionDesc": "Korjaa rikkinäiset työkalukaaviot: lisää puuttuvia lisäominaisuuksia, puhdistaa pitkät kuvaukset, normalisoi sisäkkäiset objektit.",
"featureRoleNormalization": "Roolin normalisointi",
"featureRoleNormalizationDesc": "Maps-kehittäjä→järjestelmä muille kuin OpenAI-kohteille. Karttajärjestelmä→käyttäjä malleille, jotka eivät tue järjestelmäroolia.",
"featureToolCallIds": "Työkalu Puhelutunnuksen normalisointi",
"featureToolCallIdsDesc": "Luo yksilölliset tool_call-tunnukset, kun ne puuttuvat. Normalisoituu 9-merkin muotoon sellaisille palveluntarjoajille kuin Mistral.",
- "featureMissingToolResponse": "Tool Response Injection",
+ "featureMissingToolResponse": "Työkaluvastauksen injektointi",
"featureMissingToolResponseDesc": "Lisää tyhjät tool_result -viestit, kun asiakkaat lähettävät työkalukutsut ilman vastaavia vastauksia.",
"featureThinkingBudget": "Miettivä budjetti",
"featureThinkingBudgetDesc": "Hallitsee automaattisesti ajatteluasetuksia. Poistaa ajatteluparametrit, kun viimeinen viesti ei ole käyttäjältä.",
@@ -9044,7 +9055,7 @@
"system-prompt": "Järjestelmäkehote",
"streaming": "Suoratoisto",
"vision": "Visio",
- "schema-coercion": "Schema Coercion"
+ "schema-coercion": "Skeeman mukautus"
},
"templateDescriptions": {
"simple-chat": "Perustekstiviesti",
@@ -9097,7 +9108,7 @@
"anthropicCompatibleLabel": "Antrooppinen yhteensopiva",
"noTemplateForFormat": "Ei mallia tälle muodolle",
"translationFailed": "Käännös epäonnistui: {error}",
- "pipelineDebugger": "Pipeline Debugger",
+ "pipelineDebugger": "Putken virheenjäljitin",
"translationPipeline": "Käännösputki",
"loading": "Ladataan…",
"compressionOriginal": "Alkuperäinen",
@@ -9119,14 +9130,14 @@
"chatMessageHintPrefix": "Viestisi muotoillaan muodossa a",
"chatMessageHintSuffix": "pyyntö, käännetään putken kautta ja lähetetään valitulle palveluntarjoajalle.",
"youWithFormat": "Sinä ({format})",
- "assistant": "Assistant",
+ "assistant": "Avustaja",
"typeMessage": "Kirjoita viesti...",
"send": "Lähetä",
"clientRequest": "Asiakaspyyntö",
"clientRequestDescription": "Pyynnön elin sellaisena kuin asiakkaasi sen lähettäisi",
"formatDetected": "Muoto havaittu",
"formatDetectedDescription": "OmniRoute tunnistaa automaattisesti API-muodon pyyntörakenteesta",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "OpenAI-välimuoto",
"openaiIntermediateDescription": "Kaikki muodot normalisoidaan ensin OpenAI-muotoon (yleinen silta)",
"providerFormat": "Tarjoajan muoto",
"providerFormatDescription": "OpenAI-muoto käännetään palveluntarjoajan alkuperäiseen muotoon",
@@ -9145,7 +9156,7 @@
"eventSourceMainPipeline": "• Pääpyyntöputkisto (CLI/IDE/API-liikenne)",
"liveMonitorDescriptionPrefix": "Näyttää käännöstapahtumat, kun API-kutsut kulkevat OmniRouten kautta. Tapahtumat tulevat muistin puskurista (palautuu uudelleenkäynnistyksen yhteydessä). Käytä",
"liveMonitorDescriptionSuffix": "tai ulkoisia API-kutsuja tapahtumien luomiseksi.",
- "streamTransformer": "Stream Transformer",
+ "streamTransformer": "Suoratoistomuunnin",
"modeDescriptionStreamTransformer": "Suorita chatin loppuunsaattamisen SSE-suorat Responses-muuntajan kautta.",
"streamTransformerTitle": "Vastaukset Stream Transformer",
"streamTransformerDescription": "Liitä keskustelun loppuunsaattamisen SSE-virta, suorita se OmniRouten vastausmuuntajan läpi ja tarkasta lähetetyt vastaukset.*-tapahtumat ennen kuin liität asiakkaan.",
@@ -9153,7 +9164,7 @@
"loadToolSample": "Lataa työkalukutsunäyte",
"transformToResponses": "Muunna vastauksiksi",
"rawChatSseInput": "Raaka-chatin loppuun saattaminen SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Muunnettu Responses API SSE",
"noResultsYet": "Ei tuloksia vielä",
"transformedEvents": "Muuttuneet tapahtumat",
"uniqueEventTypes": "Ainutlaatuiset tapahtumatyypit",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Sovelluksesi puhuu yhden API:n ”kieltä”. Kääntäjä muuntaa sen käyttämään toista tarjoajaa.",
"conceptDiagramAppLabel": "Sovelluksesi",
"conceptDiagramSourceLabel": "Lähdemuoto",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (keskus)",
"conceptDiagramTargetLabel": "Kohdetarjoaja",
"conceptDiagramExampleApp": "esim. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Liitä JSON-pyyntö; muoto tunnistetaan automaattisesti.",
"advancedPipelineTitle": "OpenAI-välipipeline",
"advancedPipelineSubtitle": "Visualisoi jokainen käännösvaihe (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Suoratoistomuunnin (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Muuntaa Chat Completions SSE -muodon Responses API -muotoon.",
"advancedTestBenchTitle": "Testipenkki (8 skenaariota)",
"advancedTestBenchSubtitle": "Suorittaa kaikki skenaariot ja raportoi hyväksytty/hylätty + yhteensopivuus-%.",
@@ -9249,7 +9260,7 @@
"tokens": "tokenit",
"pauseAutoRefresh": "Keskeytä automaattinen päivitys",
"resumeAutoRefresh": "Jatka automaattista päivitystä",
- "live": "Live",
+ "live": "Reaaliaikainen",
"copyInput": "Kopioi syöte",
"copyOutput": "Kopioi tuloste",
"streamTransformFailed": "Virran muuntaminen epäonnistui"
@@ -9261,9 +9272,9 @@
"grokAutoTopUpUnavailable": "Ei saatavilla",
"grokAutoTopUpEnabled": "Oma käytössä",
"grokAutoTopUpDisabled": "Poistettu käytöstä",
- "grokAutoTopUpAt": "at",
+ "grokAutoTopUpAt": "kohdassa",
"grokAutoTopUpAdd": "lisää",
- "grokAutoTopUpMax": "max",
+ "grokAutoTopUpMax": "enintään",
"grokAutoTopUpMonth": "kuukausi",
"grokAdditionalCredits": "Lisäluotit",
"kiloAccountBalance": "Tilin saldo",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Jäljellä",
"kiloPassRenews": "Uusiutuu {count} päivän kuluttua",
"kiloPassUsageLabel": "Tämän kuun käyttö",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Lisäkäyttökrediitit",
+ "kimiExtraUsage": "Lisäkäyttö",
+ "kimiExtraUsageEnabled": "Käytössä",
+ "kimiExtraUsageDisabled": "Poistettu käytöstä",
+ "kimiExtraUsageFrozen": "Jäädytetty",
+ "kimiExtraUsageUnavailable": "Ei käytettävissä",
+ "kimiMonthlyUsed": "Käytetty tässä kuussa",
+ "kimiMonthlyLimit": "Kuukausiraja",
+ "kimiMonthlyLimitUnlimited": "Rajoittamaton",
+ "kimiAdditionalCredits": "Lisäkrediitit",
"loggerTab": "Kirjaaja",
"proxyTab": "Välityspalvelin",
"budgetManagement": "Budjetin hallinta",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Katkaisijat",
"lockedIPs": "Lukitut IP:t",
"lockoutsAutoRefreshHint": "Mallikohtaiset nopeusrajoitukset • Automaattinen päivitys 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# lukittu} other {# lukittua}}",
"timeLeft": "{time} jäljellä",
"howItWorks": "Miten se toimii",
"howItWorksSubtitle": "Opi kuinka arvioinnit vahvistavat LLM-vastauksesi",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Vastauksia verrataan odotettuihin kriteereihin. Katso kunkin tapauksen hyväksyntä/hylkäys viivemittareiden ja yksityiskohtaisen palautteen avulla.",
"evalsStrategyContainsLabel": "Sisältää",
"evalsStrategyExactLabel": "Tarkka vastaavuus",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Säännöllinen lauseke",
"evalsStrategyCustomLabel": "Mukautettu logiikka",
"evalsStrategyContainsDescription": "Tarkistaa, sisältääkö LLM-tuloste odotetun osamerkkijonon.",
"evalsStrategyExactDescription": "Tarkistaa, vastaako LLM-tuloste tarkalleen odotettua arvoa.",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Mallit testattavana",
"searchSuitesPlaceholder": "Etsi sviittejä...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# tapaus} other {# tapausta}}",
"runEval": "Juokse Eval",
"runAllSuites": "Suorita kaikki",
"runAllRunning": "Kaikki käynnissä...",
"runAllProgress": "Käynnissä {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# testikokonaisuus epäonnistui} other {# testikokonaisuutta epäonnistui}}",
"runAllCompleted": "Suoritettiin {suites} sviittiä – {passed} hyväksytty, {failed} epäonnistui",
"runAllCompletedWithFailures": "Käytti {completed} sviittiä; {failedSuites} epäonnistui",
"runningProgress": "Käynnissä {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Palveluntarjoajan rajoitukset",
"noProviders": "Ei yhdistettyjä palveluntarjoajia",
"connectProvidersForQuota": "Muodosta yhteys palveluntarjoajiin OAuthin avulla seurataksesi API-kiintiörajoja ja käyttöä.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# tili} other {# tiliä}}",
"filteredFromCount": "(suodatettu kohteesta {count})",
"autoRefresh": "Automaattinen päivitys",
"refreshAll": "Päivitä kaikki",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Kiintiön näkyvyyden päivittäminen epäonnistui",
"account": "Tili",
"modelQuotas": "Mallikiintiöt",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Päivitetty viimeksi",
"actions": "Toiminnot",
"refreshQuota": "Päivitä kiintiö",
"today": "Tänään",
@@ -9448,20 +9459,20 @@
"cardExpand": "Laajenna",
"cardCollapse": "Kutista",
"moreQuotas": "+{count} lisää",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Ryhmittelemätön",
+ "viewFlat": "Litteä",
+ "viewByEnvironment": "Ympäristön mukaan",
"noQuotaDataAvailable": "Kiintiötietoja ei ole saatavilla",
"noAccountsForTierFilter": "Tasosuodattimelle ei löytynyt tilejä",
"tierAll": "Kaikki",
"tierEnterprise": "Yritys",
"tierTeam": "Joukkue",
- "tierBusiness": "Business",
+ "tierBusiness": "Yritys",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
"tierFree": "Ilmainen",
- "tierLite": "Lite",
+ "tierLite": "Kevyt",
"tierUnknown": "Tuntematon",
"statTotal": "Yhteensä",
"statCritical": "Kriittinen",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "Taso",
"purchaseAll": "Kaikki",
"purchaseOauthSub": "Tilaus",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "Ilman OAuthia",
"purchaseApiKey": "API-avain",
"creditsLabel": "Krediitit",
"creditBalanceHint": "Jäljellä oleva saldo",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Lunasta hyvitys",
"resetCreditRedeemed": "Nollaus lunastettu",
"resetCreditRedeemFailed": "Nollaushyvityksen lunastaminen epäonnistui",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Testikokonaisuuden tallentaminen epäonnistui",
"clone": "Klooni",
"exportSuite": "Vie",
"importSuite": "Tuo",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Virheellinen eval suite JSON",
"suiteBuilderCloneSuffix": "kopioida",
"suiteBuilderImportedSuite": "Tuotu sviitti",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Tuloskortti",
+ "evalApiKey": "API-avain",
+ "scorecardPassRate": "Läpäisyaste",
+ "targetTypeModel": "Malli",
+ "actualOutputLabel": "Todellinen tuloste",
+ "evalTargetHint": "Valitse arvioitava malli tai yhdistelmä.",
+ "suiteBuilderDeleted": "Testikokonaisuus poistettiin onnistuneesti",
+ "suiteBuilderCaseCardHint": "Määritä syötekehote ja odotetun tulosteen kriteerit.",
+ "nextResetUtc": "Seuraava nollaus (UTC)",
+ "scorecardHint": "Kaikkien arviointikokonaisuuksien yhteenlasketut läpäisyasteet.",
+ "suiteLatestRunsHint": "Tämän testikokonaisuuden viimeisimmät arviointiajot.",
+ "saving": "Tallennetaan",
+ "suiteBuilderCaseModelLabel": "Malli (valinnainen)",
+ "evalControlsTitle": "Arvioinnin hallinta",
+ "suiteBuilderEditTitle": "Muokkaa testikokonaisuutta",
+ "suiteBuilderCaseStrategyLabel": "Validointistrategia",
+ "notifySelectDifferentCompareTarget": "Valitse vertailua varten toinen kohde",
+ "recentRunsHint": "Näytetään viimeisimmät arviointiajot. Näet yksityiskohtaiset tulokset napsauttamalla ajoa.",
+ "evalCompareHint": "Voit halutessasi verrata tuloksia toiseen kohteeseen.",
+ "suiteBuilderCaseInvalid": "Tässä testitapauksessa on validointivirheitä. Korjaa ne ennen tallentamista.",
+ "historyEmpty": "Arviointihistoriaa ei vielä ole",
+ "suiteBuilderUpdated": "Testikokoelma päivitettiin onnistuneesti",
+ "resetInterval": "Nollausväli",
+ "suiteBuilderCreateTitle": "Luo arviointikokoelma",
+ "activePeriodSpend": "Aktiivisen jakson kulutus",
+ "evalApiKeyHint": "Valitse arviointipyyntöihin käytettävä API-avain.",
+ "evalCompareOptional": "Vertailukohde (valinnainen)",
+ "suiteBuilderDeleteFailed": "Testikokoelman poistaminen epäonnistui",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Valinnaiset järjestelmäohjeet...",
+ "scorecardCases": "Testitapaukset",
+ "runCompletedWithScore": "Arviointi valmistui — läpäisyaste {score} %",
+ "suiteBuilderCustomBadge": "Mukautettu",
+ "targetSuiteDefaults": "Testikokoelman oletusasetukset",
+ "suiteBuilderDeleteConfirm": "Haluatko varmasti poistaa tämän testikokoelman? Toimintoa ei voi kumota.",
+ "suiteBuilderNameLabel": "Testikokoelman nimi",
+ "scorecardSuites": "Testikokoelmat",
+ "evalCompareTarget": "Vertailukohde",
+ "suiteBuilderCaseModelPlaceholder": "esim. gpt-4o-mini",
+ "evalControlsHint": "Määritä arviointikohde ja API-avain ja suorita sitten testikokoelmia mallin laadun validoimiseksi.",
+ "recentRunsTitle": "Viimeisimmät suoritukset",
+ "suiteBuilderCaseSystemPromptLabel": "Järjestelmäkehote",
+ "suiteBuilderCaseExpectedPlaceholder": "esim. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "esim. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Liitä tarkka odotettu vastaus",
"suiteBuilderCaseExpectedPlaceholderRegex": "esim. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Käytä säännöllistä JavaScript-lauseketta ilman vinoviivaa.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "esim. Koodin laadun testikokoelma",
+ "suiteBuilderAddCase": "Lisää testitapaus",
+ "cancel": "Peruuta",
+ "evalTarget": "Kohde",
+ "suiteBuilderCaseNameLabel": "Testitapauksen nimi",
+ "weeklyLimitUsd": "Viikkoraja (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "esim. Kirjoita fibonacci-funktio Pythonilla",
+ "suiteBuilderNameRequired": "Testikokoelman nimi on pakollinen",
+ "suiteBuilderCaseUserPromptLabel": "Käyttäjäkehote",
+ "daily": "Päivittäin",
+ "resultErrorLabel": "Virhe",
+ "suiteBuilderBuiltInBadge": "Sisäänrakennettu",
+ "suiteBuilderCaseCardTitle": "Testitapaus",
"suiteBuilderDuplicateCase": "Kopioi",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "esim. 50.00",
+ "suiteBuilderCaseTagsHint": "Pilkuilla erotetut tunnisteet testitapausten järjestämistä varten.",
+ "notifyEvalRunFailedWithReason": "Arviointi epäonnistui: {reason}",
+ "weekly": "Viikoittain",
+ "runEvalRunning": "Arviointi käynnissä...",
+ "delete": "Poista",
+ "resetTimeUtc": "Nollausaika (UTC)",
+ "evalApiKeyAuto": "Automaattinen (käytä oletusta)",
+ "suiteBuilderDescriptionPlaceholder": "Valinnainen kuvaus siitä, mitä tämä testisarja testaa...",
+ "targetComparisonTitle": "Kohteiden vertailu",
+ "save": "Tallenna",
+ "suiteBuilderCreated": "Testisarja luotu onnistuneesti",
+ "suiteLatestRuns": "Viimeisimmät ajot",
+ "suiteBuilderCaseExpectedLabel": "Odotettu arvo",
+ "historyLatency": "Viive",
+ "suiteBuilderCaseTagsPlaceholder": "esim. coding, python",
+ "targetTypeCombo": "Yhdistelmä",
+ "scorecardPassed": "Hyväksytty",
+ "suiteBuilderCaseTagsLabel": "Tunnisteet",
+ "suiteBuilderNewSuite": "Uusi testisarja",
+ "notifyEvalLoadFailed": "Arviointitietojen lataaminen epäonnistui",
+ "notConfigured": "Ei määritetty",
+ "suiteBuilderCaseNamePlaceholder": "esim. Python fibonacci -testi",
+ "intervalLabel": "Aikaväli",
+ "suiteBuilderCreateAction": "Luo testisarja",
+ "suiteBuilderCasesHint": "Jokainen testitapaus lähettää kehotteen ja validoi vastauksen.",
+ "suiteBuilderUpdatedAt": "Päivitetty",
+ "errorBadge": "Virhe",
+ "suiteBuilderCasesTitle": "Testitapaukset",
+ "edit": "Muokkaa",
+ "monthly": "Kuukausittain",
+ "suiteBuilderCasesRequired": "Vähintään yksi testitapaus vaaditaan",
+ "weeklyLimitSummary": "Viikoittaisen budjettirajan yhteenveto",
+ "suiteBuilderDescriptionLabel": "Kuvaus",
+ "targetComparisonHint": "Arviointitulosten rinnakkainen vertailu kohteiden välillä.",
+ "compareCompletedWithScore": "Vertailu valmis — läpäisyaste {score} %",
+ "staleQuotaTooltip": "Viimeisin päivitys epäonnistui — näytetään välimuistissa olevat tiedot",
"quotaThresholdLabel": "Min jäljellä",
"quotaCutoffsColumnHelp": "Pysäytä pyynnöt, kun jäljellä oleva kiintiö laskee tähän prosenttiosuuteen tai sen alle.",
"quotaCutoffsButtonDefault": "Oletus",
@@ -9626,7 +9637,7 @@
"quotaThresholdInvalid": "Syötä kokonaisluku väliltä 0-100.",
"budgetKpiToday": "Tänään",
"budgetKpiThisMonth": "Tämä kuukausi",
- "budgetKpiProjEom": "Proj EOM",
+ "budgetKpiProjEom": "Arvioitu kuukauden lopussa",
"budgetKpiBlocked": "Estetty",
"budgetKpiAtRisk": "Vaarassa",
"budgetKpiActiveKeys": "Aktiiviset avaimet",
@@ -9752,7 +9763,7 @@
"usageByModel": "Käyttö mallin mukaan",
"usageByAccount": "Käyttö tilikohtaisesti",
"failedToLoad": "Käyttötilastojen lataaminen epäonnistui.",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Tunnusten tila",
"totalOAuth": "Yhteensä OAuth",
"healthy": "Terve",
"warning": "Varoitus",
@@ -9812,8 +9823,8 @@
"signIn": "Kirjaudu sisään",
"enterPassword": "Anna salasanasi jatkaaksesi",
"password": "Salasana",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
+ "unifiedProxy": "Yhtenäinen AI API -välityspalvelin",
+ "unifiedAiApiProxy": "Yhtenäinen AI API -välityspalvelin",
"unifiedAiApiProxyDesc": "Reititä pyynnöt useille tekoälypalveluntarjoajille yhden päätepisteen kautta. Kuormituksen tasapainotus, vikasieto ja käytön seuranta sisäänrakennettu.",
"passwordNotEnabled": "Salasanasuojaus ei ole käytössä",
"loading": "Ladataan...",
@@ -9831,7 +9842,7 @@
"copyUrlManual": "Kopioi URL-osoite osoitepalkista ja liitä se sovellukseen.",
"accessDeniedDescription": "Sinulla ei ole lupaa käyttää tätä resurssia. Tarkista API-avaimesi tai ota yhteyttä järjestelmänvalvojaan.",
"goToDashboard": "Siirry Dashboardiin",
- "featureMultiProviderTitle": "Multi-Provider",
+ "featureMultiProviderTitle": "Usean palveluntarjoajan",
"featureMultiProviderDesc": "OpenAI, Anthropic, Google ja paljon muuta",
"featureLoadBalancingTitle": "Kuorman tasapainotus",
"featureLoadBalancingDesc": "Jaa pyynnöt älykkäästi",
@@ -9859,7 +9870,7 @@
"backToLogin": "Takaisin kirjautumiseen",
"forgotPassword": "Unohditko salasanan?",
"continueWithOidc": "Jatka OIDC-yhteydellä",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Oletussalasana: CHANGEME (ellei INITIAL_PASSWORD-muuttujaa ole asetettu)",
"Authorization": "Valtuutus",
"Content-Disposition": "Sisältö-sijoittelu",
"waitingForAuthorization": "Odotetaan valtuutusta...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Odotetaan antigravitaatiovaltuutusta...",
"waitingForQoderAuthorization": "Odotetaan Qoder-valtuutusta...",
"exchangingCodeForTokens": "Vaihdetaan koodia tokeneihin...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Yhteensopimaton Node.js-versio",
+ "nodeIncompatibleDesc": "Käytössä on Node.js {version}, joka ei kuulu OmniRouten tukeman turvallisen suoritusympäristön käytännön piiriin. Käytä tietoturvakorjauksilla päivitettyä Node.js 20.x- tai 22.x LTS -versiota.",
+ "nodeIncompatibleFixLabel": "Korjaus: asenna tietoturvakorjauksilla päivitetty Node.js 22 LTS -versio",
+ "nodeIncompatibleHint": "OmniRoute vaatii Node.js-version 22.22.2+ (22.x LTS) tai 24.0.0+ (24.x LTS). Node 24 LTS on suositeltava.",
"resetViaAppDataTitle": "Nollaa sovellustietojen kautta",
"resetViaAppDataDescription": "Poista asetustiedosto sovelluksen datakansiosta palauttaaksesi salasanasi:",
"quitDesktopApp": "Lopeta OmniRoute-työpöytäsovellus kokonaan",
@@ -9949,7 +9960,7 @@
"featureUsageTrackingDesc": "Yksityiskohtainen analytiikka ja kustannusseuranta kaikissa malleissa.",
"featureOAuthApiKeysTitle": "OAuth- ja API-avaimet",
"featureOAuthApiKeysDesc": "Hallitse tunnistetietoja turvallisesti yhdessä holvissa.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Pilvisynkronointi",
"featureCloudSyncDesc": "Synkronoi määritykset eri laitteiden välillä välittömästi.",
"featureCliSupportTitle": "CLI-tuki",
"featureCliSupportDesc": "Toimii Claude Coden, Codexin, Clinen, Cursorin ja muiden kanssa.",
@@ -10029,8 +10040,8 @@
"clientCompatibility": "Asiakasyhteensopivuus",
"protocolsToc": "Protokollat",
"apiReference": "API-viite",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Hallinta-API:n viite",
+ "managementApiDescription": "Automaatiopäätepisteet välityspalvelinrekisterille, kohdistusaluemäärityksille ja vanhojen välityspalvelinasetusten siirrolle.",
"method": "menetelmä",
"path": "Polku",
"notes": "Huomautuksia",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Käytä esimerkiksi palveluntarjoajan etuliitettä",
"deploySetupTitle": "Asennusopas",
"deploySetupText": "Vaiheittainen asennus, ympäristön määritys ja ensimmäinen läpikäynti OmniRoutelle.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron-työpöytäsovellus",
"deployElectronText": "Suorita OmniRoute alkuperäisenä työpöytäsovelluksena Windowsissa, macOS:ssä ja Linuxissa.",
"deployDockerTitle": "Docker",
"deployDockerText": "Konttikäyttöönotto Docker Composella; valmis tuotantopinot ja Kubernetes.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Asenna OmniRoute progressiivisena verkkosovelluksena Android-, iOS- ja työpöytäselaimiin.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Suorita OmniRoute Androidissa ilman käyttöliittymää Termuxin kautta. Käytä hallintapaneelia mobiiliselaimellasi.",
"featureRoutingTitle": "Usean palveluntarjoajan reititys",
"featureRoutingText": "Reititä pyynnöt yli 30 tekoälypalveluntarjoajalle yhden OpenAI-yhteensopivan päätepisteen kautta. Tukee chat-, vastaus-, ääni- ja kuvasovellusliittymiä.",
"featureCombosTitle": "Yhdistelmät ja tasapainotus",
@@ -10086,7 +10097,7 @@
"featureCliText": "Hallitse IDE-määrityksiä, vie/tuo varmuuskopioita, etsi koodeksiprofiileja ja määritä asetuksia kojelaudalta.",
"featureSecurityTitle": "Turvallisuus ja käytännöt",
"featureSecurityText": "API-avaimen todennus, IP-suodatus, pikasyöttösuoja, toimialueen käytännöt, istunnon hallinta ja tarkastusloki.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Pilvisynkronointi",
"featureCloudSyncText": "Synkronoi kokoonpanosi Cloudflare Workersin kanssa, jotta voit käyttää etäkäyttöä salatuilla tunnistetiedoilla ja automaattisella virheensiirrolla.",
"providersAcrossConnectionTypes": "{count} palveluntarjoajia kolmessa yhteystyypissä.",
"manageProviders": "Hallinnoi palveluntarjoajia",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Uudelleenkirjoitusapuohjelma asiakkaille ilman /v1.",
"endpointRewriteResponsesNote": "Uudelleenkirjoitusapuohjelma vastauksille ilman /v1.",
"endpointRewriteModelsNote": "Uudelleenkirjoitusapuohjelma mallin etsinnässä ilman /v1:tä.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Luettele välityspalvelinrekisteriin tallennetut kohteet (tukee sivutusta).",
+ "mgmtProxiesCreateNote": "Luo rekisteriin uudelleenkäytettävä välityspalvelinkohde.",
+ "mgmtProxiesHealthNote": "Hae jokaisen tallennetun välityspalvelimen 24 tunnin ja liukuvan ajanjakson kuntomittarit välityspalvelinlokeista.",
+ "mgmtProxiesBulkAssignNote": "Määritä yksi välityspalvelin useille kohdistusaluetunnuksille tai poista sen määritys yhdellä pyynnöllä.",
+ "mgmtAssignmentsListNote": "Luettele välityspalvelinmääritykset scope-, scope_id- tai proxy_id-arvon mukaan.",
+ "mgmtAssignmentsUpdateNote": "Määritä välityspalvelin globaalille, palveluntarjoajan, tilin tai yhdistelmän kohdistusalueelle tai poista sen määritys.",
+ "mgmtLegacyMigrationNote": "Tuo vanhat proxyConfig-kartoitukset rekisterimäärityksiksi.",
"modelPrefixesDescriptionStart": "Käytä toimittajan etuliitettä ennen mallin nimeä reitittääksesi tietylle toimittajalle. Esimerkki:",
"modelPrefixesDescriptionEnd": "reitit GitHub Copilotiin.",
"provider": "Palveluntarjoaja",
@@ -10217,7 +10228,7 @@
"featureSearchText": "Integroitu verkkohaku 5 palveluntarjoajan kanssa (Serper, Brave, Exa, Tavily, Perplexity), mukaan lukien analytiikka ja kustannusseuranta.",
"featureMemoryTitle": "Muistijärjestelmä",
"featureMemoryText": "Pysyvä keskustelumuisti, jossa poimiminen, injektio, haku ja yhteenveto istuntojen välillä.",
- "featureSkillsTitle": "Skills Framework",
+ "featureSkillsTitle": "Taitokehys",
"featureSkillsText": "Laajennettava taitojärjestelmä, jossa on sisäänrakennetut ja mukautetut taidot, hiekkalaatikkosuoritus, pyyntöjen sieppaus ja kontekstin lisäys.",
"featureAcpTitle": "Agentin viestintä",
"featureAcpText": "Agent Communication Protocol (ACP) -rekisteri agenttien välisten työnkulkujen ja työkalujen organisoinnin hallintaan.",
@@ -10247,7 +10258,7 @@
"nonTechUsersSubtitle": "Aloita nopeasti — ei tarvita teknistä taustaa",
"techUsersTitle": "Tekniikkakäyttäjille",
"techUsersSubtitle": "Syväsukellus arkkitehtuuriin, API:hin ja sisäisiin toimintoihin",
- "apiExplorerMetadataTitle": "API Explorer — OmniRoute Docs",
+ "apiExplorerMetadataTitle": "API-selain — OmniRoute Docs",
"apiExplorerMetadataDescription": "Interaktiivinen API-selain — kokeile OmniRoute-päätteitä livenä reaaliaikaisilla vastauksilla",
"apiExplorerTitle": "API-selain",
"apiExplorerDescription": "Kokeile OmniRoute-päätteitä livenä. Valitse pääte, määritä pyyntösi ja katso vastaus reaaliajassa.",
@@ -10292,7 +10303,7 @@
"listSeparator": "-",
"questionsVisit": "Kysymyksiä? Vieraile meillä",
"githubRepository": "GitHub-arkisto",
- "privacySection1Title": "1. Local-First Architecture",
+ "privacySection1Title": "1. Paikallisuus edellä suunniteltu arkkitehtuuri",
"privacySection1Text": "OmniRoute on suunniteltu paikalliseksi sovellukseksi. Kaikki tietojen käsittely ja tallennus tapahtuu kokonaan koneessasi. Ei ole keskitettyä palvelinta, joka kerää tietojasi.",
"privacySection2Title": "2. Tallentamamme tiedot",
"privacyDataStoredIn": "Seuraavat tiedot on tallennettu paikallisesti",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute on avoimen lähdekoodin ohjelmisto. Voit vapaasti tarkastaa, muokata ja jakaa sitä sen lisenssiehtojen mukaisesti."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-agentit",
+ "description": "Etsi järjestelmääsi asennetut CLI-agentit. Lisää mukautettuja agentteja automaattista tunnistusta varten.",
+ "refresh": "Päivitä",
+ "installed": "Asennettu",
+ "notFound": "Ei löytynyt",
+ "builtIn": "Sisäänrakennettu",
+ "custom": "Mukautettu",
+ "remove": "Poista",
+ "addCustomAgent": "Lisää mukautettu agentti",
+ "addCustomAgentDesc": "Rekisteröi mikä tahansa CLI-työkalu tunnistusta varten. Se tarkistetaan automaattisesti päivityksen yhteydessä.",
+ "agentName": "Agentin nimi",
+ "binaryName": "Binaarin nimi",
+ "versionCommand": "Versiokomento",
+ "spawnArgs": "Käynnistysargumentit",
+ "addAgent": "Lisää agentti",
+ "scanning": "Etsitään järjestelmästä CLI-agentteja...",
+ "opencodeIntegration": "OpenCode-integraatio",
+ "opencodeDetected": "opencode {version} havaittu",
+ "opencodeDesc": "Luo käyttövalmis {configFile}, joka sisältää OmniRoute-perus-URL-osoitteesi ja kaikki käytettävissä olevat mallit — sijoita se projektisi juurihakemistoon ja suorita {command}.",
+ "downloadConfig": "Lataa {file}",
+ "downloaded": "Ladattu!",
+ "setupGuideTitle": "Asennusopas",
+ "openCliTools": "Avaa CLI-työkalut",
+ "setupGuideDetectCliTitle": "Tunnista asennetut CLI:t",
+ "setupGuideDetectCliDesc": "Napsauta Päivitä-painiketta CLI:n asentamisen tai päivittämisen jälkeen, jotta OmniRoute voi etsiä binaarit ja versiot uudelleen.",
+ "setupGuideCustomAgentTitle": "Rekisteröi mukautettu binaari",
+ "setupGuideCustomAgentDesc": "Käytä Lisää mukautettu agentti -toimintoa, jos CLI:si ei ole sisäänrakennetussa luettelossa. Anna binaarin nimi ja versiokomento.",
+ "setupGuideCommandMissingTitle": "Korjaa ”komentoa ei löydy” -virhe",
+ "setupGuideCommandMissingDesc": "Varmista, että CLI-komento löytyy PATH-ympäristömuuttujasta, avaa uusi pääteistunto ja suorita Päivitä uudelleen.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10494,7 +10505,7 @@
"tool-calling": "Työkalun kutsuminen",
"multi-turn": "Monikierros",
"vision": "Visio",
- "schema-coercion": "Schema Coercion"
+ "schema-coercion": "Skeeman pakotettu muunnos"
},
"templateDescriptions": {
"simple-chat": "Peruskeskustelumalli järjestelmäviestillä",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Välimuistin hallinta",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Päivitä",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Muistimerkinnät",
+ "memoryEntriesSub": "Muistissa oleva LRU",
+ "dbEntries": "Tietokantamerkinnät",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Välimuistiosumat",
+ "cacheHitsSub": "yhteensä {total}",
+ "tokensSaved": "Säästetyt tokenit",
+ "tokensSavedSub": "Arvioitu osumien perusteella",
+ "hitRate": "Osumaprosentti",
+ "performance": "Välimuistin suorituskyky",
+ "autoRefresh": "Päivittyy automaattisesti {seconds} s välein",
+ "hits": "Osumat",
+ "misses": "Ohitukset",
+ "total": "Yhteensä",
+ "behavior": "Välimuistin toiminta",
+ "behaviorDeterministic": "Vain ei-suoratoistettavat pyynnöt, joiden temperature=0, tallennetaan välimuistiin.",
+ "behaviorBypass": "Ohita otsakkeella {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Oletusarvoinen TTL: 30 minuuttia. Määritä muuttujalla {envVar}.",
+ "idempotency": "Idempotenssikerros",
+ "activeDedupKeys": "Aktiiviset deduplikointiavaimet",
+ "dedupWindow": "Deduplikointi-ikkuna",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Välimuistin tyhjentäminen epäonnistui.",
+ "unavailable": "Välimuisti ei ole käytettävissä",
+ "unavailableDesc": "Välimuistin tilastoja ei voitu noutaa. Varmista, että palvelin on käynnissä.",
"loadingCacheAria": "Ladataan välimuistia",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Kehotevälimuisti (palveluntarjoajan puolella)",
+ "semanticCache": "Semanttinen välimuisti",
+ "promptCacheSectionDesc": "Näyttää käyttöhistoriasta palveluntarjoajan puoleisen kehotevälimuistin toiminnan, jotta näet, missä välimuistin hallinta on käytössä ja kuinka paljon syötettä käytetään uudelleen.",
+ "promptTrendDesc": "Tuntikohtainen pyyntömäärä, välimuistin kattavuus ja välimuistin lukumäärä viimeisten 24 tunnin ajalta.",
+ "cachedRequests": "Välimuistia käyttäneet pyynnöt",
+ "cachedRequests24h": "Välimuistia käyttäneet pyynnöt (24 h)",
+ "cacheHitRate": "Välimuistin osumaprosentti",
+ "cacheRate": "Välimuistin käyttöaste",
+ "cacheRateDesc": "kaikista pyynnöistä",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Kehotevälimuistin mittarit",
+ "withCacheControl": "Välimuistin hallintaa käyttävät",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Välimuistin uudelleenkäyttösuhde",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Arvioidut kustannussäästöt",
+ "lastUpdated": "Viimeksi päivitetty",
+ "hoursTracked": "seurattua tuntia",
+ "busiestHour": "Vilkkain tunti",
+ "peakCacheRate": "Välimuistin käytön huippuaste",
+ "trendHour": "Tunti",
+ "activityVolume": "Toiminta",
+ "requestsShort": "pyyntöä",
+ "inputShort": "Syöte",
+ "cachedShort": "Välimuistissa",
+ "writeShort": "Kirjoitus",
+ "resetting": "Nollataan...",
+ "resetMetrics": "Nollaa mittarit",
+ "byProvider": "Erittely palveluntarjoajittain",
+ "providerCacheRateDesc": "Kukin palveluntarjoaja näyttää syötetunnisteiden kokonaismäärän sekä välimuistista luettujen ja välimuistiin kirjoitettujen tunnisteiden määrän, jotta voit verrata uudelleenkäyttösuhdetta raakatietoihin.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Pyynnöt",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Välimuistin kehitys (24 h)",
+ "peakCached": "Välimuistissa enimmillään",
+ "cached": "Välimuistissa",
+ "overview": "Yleiskatsaus",
"tableProvider": "Palveluntarjoaja",
"tableModel": "Malli",
"performanceTitle": "Suorituskyky",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRouten oma deterministinen vastausvälimuisti. Kun se on käytössä, toistuvat suoratoistamattomat temperature=0-pyynnöt voidaan käsitellä paikallisesti ottamatta yhteyttä ylävirran palveluntarjoajaan.",
+ "semanticCacheDisabledDesc": "Semanttinen välimuisti on poistettu käytöstä. OmniRoute ohittaa paikallisen vastausten uudelleenkäytön, kunnes otat sen uudelleen käyttöön asetuksissa.",
+ "semanticEntriesDesc": "SQLiteen tallennetut pysyvät semanttisen välimuistin tietueet. Palveluntarjoajan puoleisen kehotevälimuistin toimintaa ei näytetä tässä.",
+ "searchEntries": "Hae merkintöjä...",
+ "search": "Hae",
+ "loading": "Ladataan...",
+ "entriesLoadError": "Semanttisen välimuistin merkintöjen lataaminen epäonnistui.",
+ "noEntries": "Välimuistimerkintöjä ei löytynyt",
+ "noPromptCacheData": "Palveluntarjoajan puoleisen kehotevälimuistin toimintaa ei ole vielä tallennettu.",
+ "noTrendData": "Kehotevälimuistin toimintaa ei ole tallennettu viimeisten 24 tunnin aikana.",
+ "signature": "Allekirjoitus",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Luotu",
+ "expires": "Vanhenee",
+ "actions": "Toiminnot",
+ "deduplicatedRequests": "Poistetut päällekkäiset pyynnöt",
+ "savedCalls": "Säästetyt API-kutsut",
+ "totalProcessed": "Käsiteltyjä pyyntöjä yhteensä",
+ "disabled": "Poistettu käytöstä",
+ "totalRequests": "Pyyntöjä yhteensä",
"reasoningCache": "Päättelyn uusinta",
"reasoningCacheDesc": "Säilyttää malliajattelun monikierroksisia työkalukutsuvirtoja varten",
"reasoningEntries": "Aktiiviset merkinnät",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes} min sitten",
"hoursAgo": "{hours} t sitten",
"daysAgo": "{days} pv sitten",
- "entries": "Entries"
+ "entries": "Merkinnät"
},
"proxyConfigModal": {
"levelGlobal": "Maailmanlaajuinen",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Yhdistä kohdistin IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Kirjaudu Cursorilla",
+ "tabImport": "Tuo tunnus",
+ "loginDescription": "Avaa Cursorin kirjautumissivun selaimessa. Toimii Dockerissa — hyväksy kirjautuminen isäntäkoneesi selaimessa ja palaa sitten tänne.",
+ "loginWithCursor": "Kirjaudu Cursorilla",
+ "startingLogin": "Käynnistetään…",
+ "waitingApproval": "Odotetaan Cursor-kirjautumisen hyväksyntää…",
+ "openUrlHint": "Jos selain ei avautunut:",
+ "openLoginLink": "Avaa kirjautumissivu",
+ "cancelLogin": "Peruuta kirjautuminen",
"autoDetecting": "Tunnistetaan automaattisesti...",
"readingFromCursor": "Lukeminen Cursor IDE:stä tai cursor-agentista",
"tokensAutoDetected": "Tokenit tunnistettiin automaattisesti Cursor IDE:stä!",
"cursorNotDetected": "Kohdistimen IDE:tä ei havaittu. Liitä tunnus manuaalisesti.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Käytätkö Dockeria? Suosi Cursorilla kirjautumista. IDE:n automaattinen tuonti ja cursor-agent eivät yleensä ole käytettävissä säilön sisällä. Katso docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Käyttöoikeustunnus",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Päivitystunnus",
+ "refreshTokenPlaceholder": "Valinnainen — mahdollistaa tunnuksen automaattisen päivityksen",
"required": "*",
"accessTokenPlaceholder": "Käyttöoikeustunnus täytetään automaattisesti...",
"machineId": "Koneen tunnus",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Tunnusten automaattinen tunnistus epäonnistui",
"errorEnterToken": "Anna käyttöoikeustunnus",
"errorImportFailed": "Tuonti epäonnistui",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Cursor-kirjautumisen käynnistäminen epäonnistui",
+ "errorLoginPoll": "Cursor-kirjautuminen epäonnistui",
+ "errorLoginTimeout": "Cursor-kirjautuminen aikakatkaistiin — yritä uudelleen"
},
"pricingModal": {
"title": "Hinnoitteluasetukset",
@@ -10839,9 +10850,9 @@
"selectProxy": "Valitse {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Tuo vanhasta versiosta",
+ "bulkAssign": "Määritä joukkona",
+ "addProxy": "Lisää välityspalvelin",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Testaa",
+ "edit": "Muokkaa",
+ "delete": "Poista",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Epäonnistui",
"successRate": "{rate}% onnistumista",
"avgLatency": "{latency}ms keskimäärin",
"assignmentsCount": "{count} tehtävää",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Korjaa",
"relayAuthMissing": "tunnistautuminen puuttuu",
@@ -10944,19 +10955,22 @@
"poolTitle": "Proxy-pooli ja kierto",
"poolDescription": "Liitä useita proxyja skooppiin ja kierrätä lähteviä IP-osoitteita niiden välillä. Skooppi, jossa on vain yksi proxy, toimii täsmälleen kuten tavallinen määritys.",
"poolScopeIdLabel": "Skooppi-ID",
- "poolScopeIdPlaceholder": "provider id / connection id / combo id",
+ "poolScopeIdPlaceholder": "palveluntarjoajan tunnus / yhteyden tunnus / yhdistelmän tunnus",
"poolScopeIdRequired": "Skooppi-ID vaaditaan provider-, account- tai combo-skoopille.",
"poolLoad": "Lataa pooli",
"poolLoadFailed": "Proxy-poolin lataaminen epäonnistui",
"poolStrategyLabel": "Kiertostrategia",
"poolStrategyHint": "round-robin kierrättää jäseniä järjestyksessä; random valitsee tasaisesti; sticky pitää yhden jäsenen tietyn aikaikkunan ajan; latency-optimized valitsee nopeimman lokien perusteella.",
"poolStrategyFailed": "Kiertostrategian päivittäminen epäonnistui",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Vuorottelu",
"strategyRandom": "Satunnainen",
- "strategySticky": "Sticky",
+ "strategySticky": "Pysyvä",
"strategyLatency": "Viiveoptimoitu",
"poolMembersLabel": "Poolin jäsenet ({count})",
"poolNoMembers": "Tässä poolissa ei ole vielä proxyja.",
+ "poolEgressObservation": "{exits, plural, one {# ulosmeno-IP} other {# ulosmeno-IP:tä}} käytössä {connections, plural, one {# yhteydellä} other {# yhteydellä}} · enintään {max} yhdellä ulosmeno-IP:llä · viimeiset {hours} h",
+ "poolEgressObservationEmpty": "Liikennettä ei havaittu viimeisten {hours} tunnin aikana",
+ "poolEgressObservationHint": "Laskettu välityspalvelimen lokista tarkastelujakson ajalta: tämän poolin jäsenillä havaitut yksilölliset ulosmeno-IP-osoitteet sekä niitä käyttäneet OmniRoute-yhteydet. ”Yhdellä ulosmeno-IP:llä” tarkoittaa koko tarkastelujaksoa, ei samanaikaista käyttöä. IP-kohtainen 429-lukitus keskeyttää vain saman palveluntarjoajaperheen yhteydet.",
"poolRemove": "Poista",
"poolRemoveFailed": "Proxyn poistaminen poolista epäonnistui",
"poolAddLabel": "Lisää proxy",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Päätepiste",
+ "provider": "Palveluntarjoaja",
+ "model": "Malli",
"accountKey": "Account Key",
"autoAccounts": "Automaattinen ({count} tiliä)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Lähetä",
+ "cancel": "Peruuta",
+ "audioFile": "Äänitiedosto",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Tyhjennä kaikki",
+ "request": "Pyyntö",
+ "response": "Vastaus",
+ "transcription": "Litterointi",
+ "copy": "Kopioi",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Luotiin {count} kuvaa",
"generatedImage": "Luotu kuva {index}",
- "save": "Save",
+ "save": "Tallenna",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Vastaukset",
"completions": "Täydennykset",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Upotukset",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderoinnit",
- "rerank": "Rerank",
+ "rerank": "Uudelleenjärjestäminen",
"search": "Search",
"webFetch": "Verkkohaku"
},
"conversationalChat": "Keskustelukeskustelu",
"clearChat": "Tyhjennä chat",
"typeMessagePlaceholder": "Kirjoita viesti... (Vaihto+Enter uudelle riville)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Keskustelu",
+ "tabCompare": "Vertaa",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Koosta",
+ "configPane": "Määritykset",
+ "systemPrompt": "Järjestelmäkehote",
+ "systemPromptPlaceholder": "Olet avulias avustaja.",
+ "modelPlaceholder": "esim. openai/gpt-4o",
+ "endpointLabel": "Päätepiste",
+ "parametersLabel": "Parametrit",
+ "collapseConfig": "Pienennä määritysruutu",
+ "expandConfig": "Laajenna määritysruutu",
+ "temperature": "Lämpötila",
+ "maxTokens": "Tunnisteiden enimmäismäärä",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Läsnäolosakko",
+ "frequencyPenalty": "Toistuvuussakko",
"reasoningLabel": "Päättely",
"thinking": "Ajattelu",
"effort": "Panostus",
"effortDefault": "Oletus",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Satunnainen (jätä tyhjäksi)",
+ "presetsLabel": "Esiasetukset",
+ "loadPreset": "Lataa esiasetus",
+ "savePreset": "Tallenna esiasetus",
+ "noPresets": "Ei esiasetuksia",
+ "presetNamePlaceholder": "Esiasetuksen nimi",
+ "savingPreset": "Tallennetaan…",
+ "nameRequired": "Nimi vaaditaan",
+ "failedToSavePreset": "Esiasetuksen tallentaminen epäonnistui",
+ "improvePrompt": "Paranna kehotetta",
+ "improvingPrompt": "Parannetaan…",
+ "improvePromptTitle": "Paranna kehotettasi tekoälyllä",
+ "setModelFirst": "Aseta ensin malli",
"setModelInConfigFirst": "Aseta malli ensin määrityspaneelissa.",
"improvePromptFailed": "Kehotteen parantaminen epäonnistui.",
"improvePromptAria": "Paranna kehotetta tekoälyllä",
"confirmImprovePrompt": "Vahvista kehotteen parantaminen",
"improvePromptDescription": "Tämä lähettää nykyisen järjestelmäkehotteesi mallille omniglyph. Il s'agit d'une version préliminaire qui reste désactivée par défaut jusqu'à ce que la validation de bout en bout soit terminée.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profil de compression",
+ "profileDescription": "Le profil constitue un plafond, et non un plancher : un profil plus strict ne peut pas être assoupli par une substitution propre à une étape. Mesure effectuée sur cette base de code : avec le mode sécurisé pour le code ou équilibré, une session qui n’a pas encore accumulé d’historique ne compresse rien, car ces deux modes augmentent le seuil minimal de caractères et conservent tels quels le prompt système, les schémas d’outils et les résultats des outils.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agressif (par défaut)",
+ "description": "La politique mesurée par les reçus publiés. Images, prompt système, documentation des outils et historique dense."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Équilibré",
+ "description": "Conserve l’état actif dans son format natif et protège les 8 derniers tours ; réduit uniquement l’ancien historique clôturé."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Adapté au code",
+ "description": "Conserve l’autorité, les schémas d’outils et la sortie active des outils dans leur format natif, tout en protégeant les 12 derniers tours. Ne compresse rien tant que la session n’a pas accumulé d’historique."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Transmission directe",
+ "description": "Achemine sans transformation. Le moteur est ignoré et la requête est transférée sans modification."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Sélectionnez le profil de compression OmniGlyph",
"saved": "Enregistré.",
"saveFailed": "Impossible d'enregistrer.",
"enableAria": "Activer le moteur OmniGlyph",
@@ -8897,38 +8908,38 @@
"save": "Enregistrer"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Moteur Caveman",
+ "description": "Compression des messages basée sur des règles, packs linguistiques, analyses et paramètres du mode de sortie.",
"advancedConfig": "Configuration avancée",
"advancedConfigDesc": "Affiner le comportement de compression",
"aggressiveSettings": "Paramètres agressifs",
"aggressiveSettingsDesc": "Compression maximale avec des compromis potentiels en matière de qualité",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Requêtes",
+ "tokensSaved": "Jetons économisés",
+ "savingsPercent": "Économies en %",
+ "avgLatency": "Latence moy.",
+ "languagePacks": "Packs linguistiques",
+ "languagePacksDesc": "Activez les règles de compression pour des langues spécifiques.",
"labelAutoTrigger": "Compresser automatiquement lorsque le contexte dépasse",
"labelCompressionRate": "Résistance à la compression",
"labelMaxTokens": "Cibler les jetons par message",
"labelMinLength": "Longueur minimale du message",
"labelMinSavings": "Minimum de jetons à enregistrer",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Activé",
+ "autoDetect": "Détecter automatiquement la langue",
+ "rulesCount": "{count} règles",
"inputCompressionTitle": "Compression d'entrée",
"inputCompressionDesc": "Réécrire l'historique du chat avec une formulation plus courte. Réduit les jetons d'entrée d'environ 50 %.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Analyse de la compression",
+ "noAnalytics": "Aucune donnée d’analyse de la compression pour le moment.",
"masterDisabledWarning": "Le commutateur principal de Token Saver est désactivé — ces paramètres n'affecteront pas les requêtes tant que vous ne l'activerez pas dans les Paramètres de compression ou que vous ne le modifierez pas ici.",
"outputMode": "Mode de sortie",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Mode de sortie",
"quickSettings": "Paramètres rapides",
"quickSettingsDesc": "Paramètres de compression de base pour commencer",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Contournement automatique pour plus de clarté",
+ "bypassConditions": "Conditions de contournement",
"bypassConditionsList": "sécurité, irréversible, clarification, sensible à l'ordre",
"simpleMode": "Simple",
"advancedMode": "Avancé",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Paramètres ultra",
"ultraSettingsDesc": "Compression sémantique basée sur SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Répondez de manière concise. Préservez les termes techniques, le code, les erreurs, les URLs et les identifiants.",
+ "full": "Répondez de manière laconique et compacte. Préservez tout le contenu technique.",
+ "ultra": "Répondez de manière ultra-laconique avec des abréviations techniques courantes. Préservez les symboles exacts."
}
},
"translator": {
@@ -9166,7 +9177,7 @@
"comboRouted": "Combo routé",
"uniqueEndpoints": "Points de terminaison uniques",
"routeDetails": "Détails de l'itinéraire",
- "comboBadge": "Combo",
+ "comboBadge": "Combiné",
"routeEndpointLabel": "Point de terminaison",
"routeConnectionLabel": "Connexion",
"scenarioVision": "Vision (compréhension de l'image)",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Collez une requête JSON ; le format est détecté automatiquement.",
"advancedPipelineTitle": "Pipeline intermédiaire OpenAI",
"advancedPipelineSubtitle": "Visualiser chaque étape de traduction (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Transformateur de flux (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Convertit les SSE Chat Completions en API Responses.",
"advancedTestBenchTitle": "Banc d'essai (8 scénarios)",
"advancedTestBenchSubtitle": "Exécute tous les scénarios et signale le succès/échec + le % de compatibilité.",
@@ -9246,7 +9257,7 @@
"compressionPreviewButton": "Aperçu de la compression",
"compressionPreviewing": "Aperçu en cours…",
"compressionPreviewFailed": "Échec de l'aperçu de la compression",
- "tokens": "tokens",
+ "tokens": "jetons",
"pauseAutoRefresh": "Suspendre l'actualisation automatique",
"resumeAutoRefresh": "Reprendre l'actualisation automatique",
"live": "En direct",
@@ -9263,7 +9274,7 @@
"grokAutoTopUpDisabled": "Désactivé",
"grokAutoTopUpAt": "à",
"grokAutoTopUpAdd": "ajouter",
- "grokAutoTopUpMax": "max",
+ "grokAutoTopUpMax": "max.",
"grokAutoTopUpMonth": "mois",
"grokAdditionalCredits": "Crédits supplémentaires",
"kiloAccountBalance": "Solde du compte",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Restant",
"kiloPassRenews": "Se renouvelle dans {count} jours",
"kiloPassUsageLabel": "Utilisation ce mois-ci",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Crédits d’utilisation supplémentaires",
+ "kimiExtraUsage": "Utilisation supplémentaire",
+ "kimiExtraUsageEnabled": "Activé",
+ "kimiExtraUsageDisabled": "Désactivé",
+ "kimiExtraUsageFrozen": "Gelé",
+ "kimiExtraUsageUnavailable": "Indisponible",
+ "kimiMonthlyUsed": "Utilisé ce mois-ci",
+ "kimiMonthlyLimit": "Limite mensuelle",
+ "kimiMonthlyLimitUnlimited": "Illimité",
+ "kimiAdditionalCredits": "Crédits supplémentaires",
"loggerTab": "Enregistreur",
"proxyTab": "Procuration",
"budgetManagement": "Gestion budgétaire",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Disjoncteurs",
"lockedIPs": "IP verrouillées",
"lockoutsAutoRefreshHint": "Verrouillage de la limite de débit par modèle • Actualisation automatique toutes les 10 s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# verrouillé} other {# verrouillés}}",
"timeLeft": "{time} restant",
"howItWorks": "Comment ça marche",
"howItWorksSubtitle": "Découvrez comment les évaluations valident vos réponses LLM",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Les réponses sont comparées aux critères attendus. Voir réussite/échec pour chaque cas avec des mesures de latence et des commentaires détaillés.",
"evalsStrategyContainsLabel": "Contient",
"evalsStrategyExactLabel": "Correspondance exacte",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Expression régulière",
"evalsStrategyCustomLabel": "Logique personnalisée",
"evalsStrategyContainsDescription": "Vérifie si la sortie du LLM contient la sous-chaîne attendue.",
"evalsStrategyExactDescription": "Vérifie si la sortie du LLM correspond exactement à la valeur attendue.",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Modèles en test",
"searchSuitesPlaceholder": "Rechercher des suites...",
"passSuffix": "passer",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# cas} other {# cas}}",
"runEval": "Exécuter l'évaluation",
"runAllSuites": "Exécuter tout",
"runAllRunning": "Exécuter tout...",
"runAllProgress": "Exécution de {current}/{total} : {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# suite échouée} other {# suites échouées}}",
"runAllCompleted": "Exécution des suites {suites} — {passed} réussi, {failed} échoué",
"runAllCompletedWithFailures": "A exécuté {completed} suites ; {failedSuites} n'a pas réussi à se terminer",
"runningProgress": "Exécution de {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Limites du fournisseur",
"noProviders": "Aucun fournisseur connecté",
"connectProvidersForQuota": "Connectez-vous aux fournisseurs avec OAuth pour suivre les limites de quota et l'utilisation de vos API.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# compte} other {# comptes}}",
"filteredFromCount": "(filtré à partir de {count})",
"autoRefresh": "Actualisation automatique",
"refreshAll": "Actualiser tout",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Échec de la mise à jour de la visibilité du quota",
"account": "Compte",
"modelQuotas": "Quotas de modèles",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Dernière actualisation",
"actions": "Actions",
"refreshQuota": "Actualiser le quota",
"today": "Aujourd'hui",
@@ -9448,9 +9459,9 @@
"cardExpand": "Développer",
"cardCollapse": "Réduire",
"moreQuotas": "+{count} de plus",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Non groupé",
+ "viewFlat": "À plat",
+ "viewByEnvironment": "Par environnement",
"noQuotaDataAvailable": "Aucune donnée de quota disponible",
"noAccountsForTierFilter": "Aucun compte trouvé pour le filtre de niveau",
"tierAll": "Tout",
@@ -9461,7 +9472,7 @@
"tierPro": "Pro",
"tierPlus": "Plus",
"tierFree": "Gratuit",
- "tierLite": "Lite",
+ "tierLite": "Léger",
"tierUnknown": "Inconnu",
"statTotal": "Total",
"statCritical": "Critique",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Utiliser le crédit",
"resetCreditRedeemed": "Réinitialisation effectuée",
"resetCreditRedeemFailed": "Échec de l'utilisation du crédit de réinitialisation",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Échec de l’enregistrement de la suite",
"clone": "Cloner",
"exportSuite": "Exporter",
"importSuite": "Importer",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Suite d'évaluation JSON non valide",
"suiteBuilderCloneSuffix": "copie",
"suiteBuilderImportedSuite": "Suite importée",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
+ "scorecardTitle": "Tableau de bord",
+ "evalApiKey": "Clé API",
+ "scorecardPassRate": "Taux de réussite",
+ "targetTypeModel": "Modèle",
+ "actualOutputLabel": "Sortie réelle",
+ "evalTargetHint": "Sélectionnez un modèle ou une combinaison à évaluer.",
+ "suiteBuilderDeleted": "Suite supprimée avec succès",
+ "suiteBuilderCaseCardHint": "Définissez le prompt d’entrée et les critères de sortie attendus.",
+ "nextResetUtc": "Prochaine réinitialisation (UTC)",
+ "scorecardHint": "Taux de réussite agrégés pour toutes les suites d’évaluation.",
+ "suiteLatestRunsHint": "Exécutions d’évaluation les plus récentes pour cette suite.",
+ "saving": "Enregistrement",
+ "suiteBuilderCaseModelLabel": "Modèle (facultatif)",
+ "evalControlsTitle": "Contrôles d’évaluation",
+ "suiteBuilderEditTitle": "Modifier la suite d’évaluation",
+ "suiteBuilderCaseStrategyLabel": "Stratégie de validation",
+ "notifySelectDifferentCompareTarget": "Veuillez sélectionner une autre cible pour la comparaison",
+ "recentRunsHint": "Affichage des exécutions d’évaluation les plus récentes. Cliquez sur une exécution pour voir les résultats détaillés.",
+ "evalCompareHint": "Comparez éventuellement les résultats à ceux d’une seconde cible.",
+ "suiteBuilderCaseInvalid": "Ce cas contient des erreurs de validation. Veuillez les corriger avant d’enregistrer.",
+ "historyEmpty": "Aucun historique d’évaluation pour le moment",
+ "suiteBuilderUpdated": "Suite mise à jour avec succès",
+ "resetInterval": "Réinitialiser l’intervalle",
+ "suiteBuilderCreateTitle": "Créer une suite d’évaluation",
+ "activePeriodSpend": "Dépenses de la période active",
+ "evalApiKeyHint": "Sélectionnez la clé API à utiliser pour les requêtes d’évaluation.",
+ "evalCompareOptional": "Comparer (facultatif)",
+ "suiteBuilderDeleteFailed": "Échec de la suppression de la suite",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Instructions système facultatives...",
+ "scorecardCases": "Cas",
+ "runCompletedWithScore": "Évaluation terminée — taux de réussite de {score} %",
+ "suiteBuilderCustomBadge": "Personnalisé",
+ "targetSuiteDefaults": "Valeurs par défaut de la suite",
+ "suiteBuilderDeleteConfirm": "Voulez-vous vraiment supprimer cette suite ? Cette action est irréversible.",
+ "suiteBuilderNameLabel": "Nom de la suite",
"scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "evalCompareTarget": "Cible de comparaison",
+ "suiteBuilderCaseModelPlaceholder": "p. ex. gpt-4o-mini",
+ "evalControlsHint": "Configurez votre cible d’évaluation et votre clé API, puis exécutez des suites pour valider la qualité du modèle.",
+ "recentRunsTitle": "Exécutions récentes",
+ "suiteBuilderCaseSystemPromptLabel": "Invite système",
+ "suiteBuilderCaseExpectedPlaceholder": "p. ex. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "par ex. définitivement Fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Collez la réponse exacte attendue",
"suiteBuilderCaseExpectedPlaceholderRegex": "par ex. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Utilisez une expression régulière JavaScript sans envelopper les barres obliques.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "p. ex. Suite de qualité du code",
+ "suiteBuilderAddCase": "Ajouter un cas",
+ "cancel": "Annuler",
+ "evalTarget": "Cible",
+ "suiteBuilderCaseNameLabel": "Nom du cas",
+ "weeklyLimitUsd": "Limite hebdomadaire (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "p. ex. Écrire une fonction fibonacci en Python",
+ "suiteBuilderNameRequired": "Le nom de la suite est requis",
+ "suiteBuilderCaseUserPromptLabel": "Invite utilisateur",
+ "daily": "Quotidien",
+ "resultErrorLabel": "Erreur",
+ "suiteBuilderBuiltInBadge": "Intégré",
+ "suiteBuilderCaseCardTitle": "Cas de test",
"suiteBuilderDuplicateCase": "Dupliquer",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
+ "weeklyLimitPlaceholder": "p. ex. 50.00",
+ "suiteBuilderCaseTagsHint": "Étiquettes séparées par des virgules pour organiser les cas de test.",
+ "notifyEvalRunFailedWithReason": "Échec de l’évaluation : {reason}",
+ "weekly": "Hebdomadaire",
+ "runEvalRunning": "Évaluation en cours...",
+ "delete": "Supprimer",
+ "resetTimeUtc": "Heure de réinitialisation (UTC)",
+ "evalApiKeyAuto": "Automatique (utiliser la valeur par défaut)",
+ "suiteBuilderDescriptionPlaceholder": "Description facultative de ce que cette suite teste...",
+ "targetComparisonTitle": "Comparaison cible",
+ "save": "Enregistrer",
+ "suiteBuilderCreated": "Suite créée avec succès",
+ "suiteLatestRuns": "Dernières exécutions",
+ "suiteBuilderCaseExpectedLabel": "Valeur attendue",
+ "historyLatency": "Latence",
+ "suiteBuilderCaseTagsPlaceholder": "p. ex. codage, python",
+ "targetTypeCombo": "Combiné",
+ "scorecardPassed": "Réussi",
+ "suiteBuilderCaseTagsLabel": "Étiquettes",
+ "suiteBuilderNewSuite": "Nouvelle suite",
+ "notifyEvalLoadFailed": "Échec du chargement des données d’évaluation",
+ "notConfigured": "Non configuré",
+ "suiteBuilderCaseNamePlaceholder": "p. ex. test de Fibonacci en Python",
+ "intervalLabel": "Intervalle",
+ "suiteBuilderCreateAction": "Créer la suite",
+ "suiteBuilderCasesHint": "Chaque cas envoie une invite et valide la réponse.",
+ "suiteBuilderUpdatedAt": "Mis à jour",
+ "errorBadge": "Erreur",
+ "suiteBuilderCasesTitle": "Cas de test",
+ "edit": "Modifier",
+ "monthly": "Mensuel",
+ "suiteBuilderCasesRequired": "Au moins un cas de test est requis",
+ "weeklyLimitSummary": "Résumé de la limite budgétaire hebdomadaire",
"suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "targetComparisonHint": "Comparaison côte à côte des résultats d’évaluation entre les cibles.",
+ "compareCompletedWithScore": "Comparaison terminée — taux de réussite de {score} %",
+ "staleQuotaTooltip": "Échec de la dernière actualisation — affichage des données en cache",
"quotaThresholdLabel": "Min restant",
"quotaCutoffsColumnHelp": "Arrêtez les demandes lorsque le quota restant tombe à ce pourcentage ou en dessous.",
"quotaCutoffsButtonDefault": "Par défaut",
@@ -9741,7 +9752,7 @@
"proxy": "Procuration",
"level": "Niveau",
"directNative": "Direct (natif)",
- "combo": "Combo",
+ "combo": "Combinaison",
"inputTokens": "Moi :",
"outputTokens": "O :"
},
@@ -9859,19 +9870,19 @@
"backToLogin": "Retour à la connexion",
"forgotPassword": "Mot de passe oublié ?",
"continueWithOidc": "Continuer avec OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Mot de passe par défaut : CHANGEME (sauf si INITIAL_PASSWORD a été défini)",
"Authorization": "Autorisation",
"Content-Disposition": "Disposition du contenu",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "En attente de l’autorisation...",
+ "waitingForGoogleAuthorization": "En attente de l’autorisation Google...",
+ "waitingForOpenAIAuthorization": "En attente de l’autorisation OpenAI...",
+ "waitingForAntigravityAuthorization": "En attente de l’autorisation Antigravity...",
+ "waitingForQoderAuthorization": "En attente de l’autorisation Qoder...",
+ "exchangingCodeForTokens": "Échange du code contre des jetons...",
+ "nodeIncompatibleTitle": "Version de Node.js incompatible",
+ "nodeIncompatibleDesc": "Vous utilisez Node.js {version}, qui ne respecte pas la politique d’OmniRoute relative aux environnements d’exécution sécurisés pris en charge. Utilisez une version corrigée de Node.js 20.x ou 22.x LTS.",
+ "nodeIncompatibleFixLabel": "Solution : installez une version corrigée de Node.js 22 LTS",
+ "nodeIncompatibleHint": "OmniRoute nécessite Node.js 22.22.2+ (22.x LTS) ou 24.0.0+ (24.x LTS). Node 24 LTS est recommandé.",
"resetViaAppDataTitle": "Réinitialiser via les données de l’application",
"resetViaAppDataDescription": "Supprimez le fichier de paramètres du répertoire de données de l’application pour réinitialiser votre mot de passe :",
"quitDesktopApp": "Quittez complètement l’application de bureau OmniRoute",
@@ -10029,8 +10040,8 @@
"clientCompatibility": "Compatibilité client",
"protocolsToc": "Protocoles",
"apiReference": "Référence API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Référence de l’API de gestion",
+ "managementApiDescription": "Points de terminaison d’automatisation pour le registre des proxys, les attributions de portée et la migration des proxys hérités.",
"method": "Méthode",
"path": "Chemin",
"notes": "Remarques",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Installez OmniRoute en tant qu'application Web progressive sur les navigateurs Android, iOS et de bureau.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Exécutez OmniRoute sans interface graphique sur Android via Termux. Accédez au tableau de bord depuis le navigateur de votre appareil mobile.",
"featureRoutingTitle": "Routage multi-fournisseurs",
"featureRoutingText": "Acheminez les requêtes vers plus de 30 fournisseurs d’IA via un seul point de terminaison compatible OpenAI. Prend en charge les API de chat, de réponses, d'audio et d'image.",
"featureCombosTitle": "Combos et équilibrage",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Aide à la réécriture pour les clients sans /v1.",
"endpointRewriteResponsesNote": "Assistant de réécriture pour les réponses sans /v1.",
"endpointRewriteModelsNote": "Aide à la réécriture pour la découverte de modèles sans /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Répertorier les éléments enregistrés dans le registre des proxys (pagination prise en charge).",
+ "mgmtProxiesCreateNote": "Créer un élément de proxy réutilisable dans le registre.",
+ "mgmtProxiesHealthNote": "Obtenir les métriques d’intégrité sur 24 h/glissantes de chaque proxy enregistré à partir des journaux de proxys.",
+ "mgmtProxiesBulkAssignNote": "Attribuer ou supprimer un proxy pour plusieurs identifiants de portée en une seule requête.",
+ "mgmtAssignmentsListNote": "Répertorier les attributions de proxy par portée, scope_id ou proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Attribuer ou supprimer un proxy pour une portée globale, de fournisseur, de compte ou de combinaison.",
+ "mgmtLegacyMigrationNote": "Importer les mappages proxyConfig hérités dans les attributions du registre.",
"modelPrefixesDescriptionStart": "Utilisez le préfixe du fournisseur avant le nom du modèle pour acheminer vers un fournisseur spécifique. Exemple :",
"modelPrefixesDescriptionEnd": "itinéraires vers GitHub Copilot.",
"provider": "Fournisseur",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute est un logiciel open source. Vous êtes libre de l'inspecter, de le modifier et de le distribuer selon les termes de sa licence."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "Agents CLI",
+ "description": "Découvrez les agents CLI installés sur votre système. Ajoutez des agents personnalisés pour la détection automatique.",
+ "refresh": "Actualiser",
+ "installed": "Installé",
+ "notFound": "Introuvable",
+ "builtIn": "Intégré",
+ "custom": "Personnalisé",
+ "remove": "Supprimer",
+ "addCustomAgent": "Ajouter un agent personnalisé",
+ "addCustomAgentDesc": "Enregistrez n’importe quel outil CLI pour le détecter. Il sera analysé automatiquement lors de l’actualisation.",
+ "agentName": "Nom de l’agent",
+ "binaryName": "Nom du binaire",
+ "versionCommand": "Commande de version",
+ "spawnArgs": "Arguments de lancement",
+ "addAgent": "Ajouter l’agent",
+ "scanning": "Recherche d’agents CLI sur le système...",
+ "opencodeIntegration": "Intégration d’OpenCode",
+ "opencodeDetected": "opencode {version} détecté",
+ "opencodeDesc": "Générez un fichier {configFile} prêt à l’emploi avec l’URL de base d’OmniRoute et tous les modèles disponibles — placez-le à la racine de votre projet et exécutez {command}.",
+ "downloadConfig": "Télécharger {file}",
+ "downloaded": "Téléchargé !",
+ "setupGuideTitle": "Guide de configuration",
+ "openCliTools": "Outils CLI ouverts",
+ "setupGuideDetectCliTitle": "Détecter les CLI installées",
+ "setupGuideDetectCliDesc": "Cliquez sur Actualiser après avoir installé ou mis à jour une CLI afin qu’OmniRoute puisse analyser à nouveau les binaires et leurs versions.",
+ "setupGuideCustomAgentTitle": "Enregistrer un binaire personnalisé",
+ "setupGuideCustomAgentDesc": "Utilisez Ajouter un agent personnalisé lorsque votre CLI ne figure pas dans la liste intégrée. Indiquez le nom du binaire et la commande de version.",
+ "setupGuideCommandMissingTitle": "Corriger l’erreur « commande introuvable »",
+ "setupGuideCommandMissingDesc": "Assurez-vous que la commande CLI existe dans PATH, ouvrez une nouvelle session de terminal, puis relancez l’actualisation.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10478,7 +10489,7 @@
"cursorCloud": "Agents d'arrière-plan / cloud de Cursor (clé API officielle)"
},
"activityTypes": {
- "plan": "Plan",
+ "plan": "Forfait",
"command": "Commande",
"code_change": "Modification de code",
"message": "Message",
@@ -10487,12 +10498,12 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "Chat simple",
+ "streaming": "Diffusion en continu",
+ "system-prompt": "Invite système",
+ "thinking": "Réflexion",
+ "tool-calling": "Appel d’outils",
+ "multi-turn": "Multi-tour",
"vision": "Vision",
"schema-coercion": "Coercition de schéma"
},
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Gestion du cache",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Actualiser",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Entrées en mémoire",
+ "memoryEntriesSub": "LRU en mémoire",
+ "dbEntries": "Entrées de la base de données",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
+ "cacheHits": "Accès au cache réussis",
+ "cacheHitsSub": "sur {total} au total",
+ "tokensSaved": "Jetons économisés",
+ "tokensSavedSub": "Estimation basée sur les accès réussis",
+ "hitRate": "Taux de réussite",
+ "performance": "Performances du cache",
+ "autoRefresh": "Actualisation automatique toutes les {seconds} s",
+ "hits": "Accès réussis",
+ "misses": "Échecs",
"total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "behavior": "Comportement du cache",
+ "behaviorDeterministic": "Seules les requêtes sans streaming avec temperature=0 sont mises en cache.",
+ "behaviorBypass": "Contournement avec l’en-tête {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL par défaut : 30 minutes. Configuration via {envVar}.",
+ "idempotency": "Couche d’idempotence",
+ "activeDedupKeys": "Clés de déduplication actives",
+ "dedupWindow": "Fenêtre de déduplication",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Échec de la suppression du cache.",
+ "unavailable": "Cache indisponible",
+ "unavailableDesc": "Impossible de récupérer les statistiques du cache. Vérifiez que le serveur est en cours d’exécution.",
"loadingCacheAria": "Chargement du cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Cache des prompts (côté fournisseur)",
+ "semanticCache": "Cache sémantique",
+ "promptCacheSectionDesc": "Affiche l’activité de mise en cache des prompts côté fournisseur à partir de l’historique d’utilisation, afin de voir où le contrôle du cache est actif et dans quelle mesure les entrées sont réutilisées.",
+ "promptTrendDesc": "Volume horaire de requêtes, couverture du cache et volume de lecture du cache au cours des dernières 24 heures.",
+ "cachedRequests": "Requêtes mises en cache",
+ "cachedRequests24h": "Requêtes mises en cache (24 h)",
+ "cacheHitRate": "Taux de réussite du cache",
+ "cacheRate": "Taux de mise en cache",
+ "cacheRateDesc": "du total des requêtes",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Métriques du cache des prompts",
+ "withCacheControl": "Avec contrôle du cache",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Taux de réutilisation du cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Économies estimées",
+ "lastUpdated": "Dernière mise à jour",
+ "hoursTracked": "heures suivies",
+ "busiestHour": "Heure la plus chargée",
+ "peakCacheRate": "Taux de cache maximal",
+ "trendHour": "Heure",
+ "activityVolume": "Activité",
+ "requestsShort": "requêtes",
+ "inputShort": "Entrée",
+ "cachedShort": "En cache",
+ "writeShort": "Écriture",
+ "resetting": "Réinitialisation...",
+ "resetMetrics": "Réinitialiser les métriques",
+ "byProvider": "Répartition par fournisseur",
+ "providerCacheRateDesc": "Chaque fournisseur indique le nombre total de jetons d’entrée, de jetons lus dans le cache et de jetons écrits dans le cache, afin que vous puissiez vérifier le taux de réutilisation par rapport aux totaux bruts.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Requêtes",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Évolution du cache (24 h)",
+ "peakCached": "Pic de mise en cache",
+ "cached": "En cache",
+ "overview": "Vue d’ensemble",
"tableProvider": "Fournisseur",
"tableModel": "Modèle",
"performanceTitle": "Performances",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
+ "semanticCacheSectionDesc": "Le cache de réponses déterministe propre à OmniRoute. Lorsqu’il est activé, les requêtes répétées non diffusées avec temperature=0 peuvent être traitées localement sans solliciter le fournisseur en amont.",
+ "semanticCacheDisabledDesc": "Le cache sémantique est désactivé. OmniRoute ignorera la réutilisation locale des réponses jusqu’à ce que vous le réactiviez dans les paramètres.",
+ "semanticEntriesDesc": "Enregistrements persistants du cache sémantique actuellement stockés dans SQLite. L’activité du cache d’invites côté fournisseur n’est pas répertoriée ici.",
+ "searchEntries": "Rechercher des entrées...",
+ "search": "Rechercher",
+ "loading": "Chargement...",
+ "entriesLoadError": "Échec du chargement des entrées du cache sémantique.",
+ "noEntries": "Aucune entrée de cache trouvée",
+ "noPromptCacheData": "Aucune activité du cache d’invites côté fournisseur n’a encore été enregistrée.",
+ "noTrendData": "Aucune activité du cache d’invites n’a été enregistrée au cours des dernières 24 heures.",
"signature": "Signature",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
+ "created": "Création",
+ "expires": "Expiration",
"actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "deduplicatedRequests": "Requêtes dédupliquées",
+ "savedCalls": "Appels d’API économisés",
+ "totalProcessed": "Nombre total de requêtes traitées",
+ "disabled": "Désactivé",
+ "totalRequests": "Nombre total de requêtes",
"reasoningCache": "Relecture du raisonnement",
"reasoningCacheDesc": "Préserve la pensée modèle pour les flux d’appel d’outils multi-tours",
"reasoningEntries": "Entrées actives",
@@ -10665,16 +10676,16 @@
"minutesAgo": "il y a {minutes} min",
"hoursAgo": "il y a {hours} h",
"daysAgo": "il y a {days} j",
- "entries": "Entries"
+ "entries": "Entrées"
},
"proxyConfigModal": {
"levelGlobal": "Mondial",
"levelProvider": "Fournisseur",
- "levelCombo": "Combo",
+ "levelCombo": "Combinaison",
"levelKey": "Clé",
"levelDirect": "Direct (pas de proxy)",
"titleGlobal": "Configuration globale du proxy",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "Proxy {level} — {label}",
"loading": "Chargement de la configuration du proxy...",
"inheritingFrom": "Hériter de",
"source": "Origine",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Connecter l'IDE du curseur",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Se connecter avec Cursor",
+ "tabImport": "Importer un jeton",
+ "loginDescription": "Ouvre la page de connexion de Cursor dans le navigateur. Fonctionne dans Docker — approuvez la connexion dans le navigateur de votre hôte, puis revenez ici.",
+ "loginWithCursor": "Se connecter avec Cursor",
+ "startingLogin": "Démarrage…",
+ "waitingApproval": "En attente de l’approbation de la connexion à Cursor…",
+ "openUrlHint": "Si le navigateur ne s’est pas ouvert :",
+ "openLoginLink": "Ouvrir la page de connexion",
+ "cancelLogin": "Annuler la connexion",
"autoDetecting": "Jetons à détection automatique...",
"readingFromCursor": "Lecture à partir de Cursor IDE ou de Cursor-Agent",
"tokensAutoDetected": "Jetons détectés automatiquement avec succès à partir de Cursor IDE !",
"cursorNotDetected": "Curseur IDE non détecté. Veuillez coller manuellement votre jeton.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Vous utilisez Docker ? Préférez « Se connecter avec Cursor ». L’importation automatique depuis l’IDE et cursor-agent sont généralement indisponibles dans le conteneur. Consultez docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Jeton d'accès",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Jeton d’actualisation",
+ "refreshTokenPlaceholder": "Facultatif — permet l’actualisation automatique du jeton",
"required": "*",
"accessTokenPlaceholder": "Le jeton d'accès se remplira automatiquement...",
"machineId": "ID de l'ordinateur",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Échec de la détection automatique des jetons",
"errorEnterToken": "Veuillez saisir le jeton d'accès",
"errorImportFailed": "Échec de l'importation",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Échec du démarrage de la connexion à Cursor",
+ "errorLoginPoll": "Échec de la connexion à Cursor",
+ "errorLoginTimeout": "Délai d’attente de la connexion à Cursor dépassé — réessayez"
},
"pricingModal": {
"title": "Configuration des prix",
@@ -10839,9 +10850,9 @@
"selectProxy": "Sélectionner {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importer l’ancien format",
+ "bulkAssign": "Affectation groupée",
+ "addProxy": "Ajouter un proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,15 +10861,15 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Tester",
+ "edit": "Modifier",
+ "delete": "Supprimer",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Tapez",
"labelFamily": "Famille IP",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automatique (double pile)",
"familyIpv4": "IPv4 uniquement",
"familyIpv6": "IPv6 uniquement",
"familyHint": "Famille d'adresses de sortie. Auto conserve le dual-stack ; IPv4/IPv6 verrouille ce proxy sur cette famille (évite une fuite v4 sous un proxy IPv6 uniquement).",
@@ -10887,7 +10898,7 @@
"scopeGlobal": "global",
"scopeProvider": "fournisseur",
"scopeAccount": "compte",
- "scopeCombo": "combo",
+ "scopeCombo": "combinaison",
"bulkImportErrorMissingName": "NOM manquant",
"bulkImportErrorMissingHost": "HÔTE manquant",
"bulkImportErrorInvalidPort": "PORT invalide (doit être 1-65535)",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Échec",
"successRate": "{rate} % de réussite",
"avgLatency": "{latency}ms moyenne",
"assignmentsCount": "{count} affectations",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Réparer",
"relayAuthMissing": "authentification manquante",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Stratégie de rotation",
"poolStrategyHint": "round-robin fait défiler les membres dans l'ordre ; random choisit de manière uniforme ; sticky conserve un membre pendant une fenêtre ; latency-optimized choisit le plus rapide d'après les journaux.",
"poolStrategyFailed": "Échec de la mise à jour de la stratégie de rotation",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Tourniquet",
"strategyRandom": "Aléatoire",
- "strategySticky": "Sticky",
+ "strategySticky": "Persistant",
"strategyLatency": "Optimisé pour la latence",
"poolMembersLabel": "Membres du pool ({count})",
"poolNoMembers": "Aucun proxy dans ce pool pour le moment.",
+ "poolEgressObservation": "{exits, plural, one {# sortie} other {# sorties}} utilisée(s) par {connections, plural, one {# connexion} other {# connexions}} · jusqu’à {max} sur une même sortie · dernières {hours} h",
+ "poolEgressObservationEmpty": "Aucun trafic observé au cours des dernières {hours} h",
+ "poolEgressObservationHint": "Calculé à partir du journal du proxy sur la période : adresses IP de sortie distinctes observées pour les membres de ce pool et connexions OmniRoute qui les ont utilisées. « Sur une même sortie » signifie sur l’ensemble de la période, et non simultanément. Le blocage 429 par adresse IP ne suspend que les connexions d’une même famille de fournisseurs.",
"poolRemove": "Retirer",
"poolRemoveFailed": "Échec du retrait du proxy du pool",
"poolAddLabel": "Ajouter un proxy",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Point de terminaison",
+ "provider": "Fournisseur",
+ "model": "Modèle",
"accountKey": "Account Key",
"autoAccounts": "Automatique ({count} comptes)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Envoyer",
+ "cancel": "Annuler",
+ "audioFile": "Fichier audio",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
+ "clearAll": "Tout effacer",
+ "request": "Requête",
+ "response": "Réponse",
"transcription": "Transcription",
- "copy": "Copy",
+ "copy": "Copier",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "{count} images générées",
"generatedImage": "Image générée {index}",
- "save": "Save",
+ "save": "Enregistrer",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Réponses",
"completions": "Complétions",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Plongements",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Modérations",
- "rerank": "Rerank",
+ "rerank": "Reclassement",
"search": "Search",
"webFetch": "Récupération web"
},
"conversationalChat": "Chat conversationnel",
"clearChat": "Effacer le chat",
"typeMessagePlaceholder": "Tapez un message... (Maj+Entrée pour une nouvelle ligne)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Discussion",
+ "tabCompare": "Comparer",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Créer",
+ "configPane": "Configuration",
+ "systemPrompt": "Invite système",
+ "systemPromptPlaceholder": "Vous êtes un assistant utile.",
+ "modelPlaceholder": "p. ex. openai/gpt-4o",
+ "endpointLabel": "Point de terminaison",
+ "parametersLabel": "Paramètres",
+ "collapseConfig": "Réduire le volet de configuration",
+ "expandConfig": "Développer le volet de configuration",
+ "temperature": "Température",
+ "maxTokens": "Nombre maximal de jetons",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Pénalité de présence",
+ "frequencyPenalty": "Pénalité de fréquence",
"reasoningLabel": "Raisonnement",
"thinking": "Réflexion",
"effort": "Effort",
"effortDefault": "Par défaut",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Aléatoire (laisser vide)",
+ "presetsLabel": "Préréglages",
+ "loadPreset": "Charger un préréglage",
+ "savePreset": "Enregistrer le préréglage",
+ "noPresets": "Aucun préréglage",
+ "presetNamePlaceholder": "Nom du préréglage",
+ "savingPreset": "Enregistrement…",
+ "nameRequired": "Le nom est requis",
+ "failedToSavePreset": "Échec de l’enregistrement du préréglage",
+ "improvePrompt": "Améliorer le prompt",
+ "improvingPrompt": "Amélioration…",
+ "improvePromptTitle": "Améliorez votre prompt avec l’IA",
+ "setModelFirst": "Définissez d’abord un modèle",
"setModelInConfigFirst": "Définissez d'abord un modèle dans le volet Configuration.",
"improvePromptFailed": "Échec de l'amélioration du prompt.",
"improvePromptAria": "Améliorer le prompt avec l'IA",
"confirmImprovePrompt": "Confirmer l'amélioration du prompt",
"improvePromptDescription": "Cela enverra votre prompt système actuel à solo.trae.ai, ouvrez DevTools → Network, envoyez un message, puis copiez le JWT depuis l’en-tête de requête Authorization: Cloud-IDE-JWT {tokenPlaceholder}. La durée de vie du JWT est d’environ 14 jours. Les champs d’identité facultatifs proviennent de common_params dans le même corps de requête.",
"accessTokenLabel": "Access token (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "webId": "ID Web",
"optional": "facultatif",
- "bizUserId": "Biz User ID",
- "userUniqueId": "User Unique ID",
- "scope": "Scope",
- "tenant": "Tenant",
+ "bizUserId": "ID utilisateur professionnel",
+ "userUniqueId": "ID unique de l’utilisateur",
+ "scope": "Périmètre",
+ "tenant": "Locataire",
"region": "Région",
"importing": "Importation…",
"importToken": "Importer le token",
@@ -13945,7 +13978,7 @@
"runners": "Coureurs",
"tasks": "Tâches",
"colName": "Nom",
- "colClis": "CLIs",
+ "colClis": "Interfaces en ligne de commande",
"colStatus": "Statut",
"colTask": "Tâche",
"colMode": "Mode",
@@ -14048,11 +14081,11 @@
"actionApprove": "Approuver le plan",
"actionCancel": "Annuler",
"actionSeeInGraph": "Voir dans le graphe",
+ "actionRepeat": "Répéter",
"actionDone": "Action appliquée",
"actionFailed": "Échec de l'action : {error}",
"detailFailed": "Échec du chargement des détails : {error}",
"mirroredInA2A": "Reflété dans A2A",
- "actionRepeat": "Répéter",
"repeatConfirm": "Cliquez à nouveau pour confirmer",
"repeatDone": "Nouvelle exécution créée",
"repeatUnavailable": "Entrée d'origine non disponible"
@@ -14066,57 +14099,57 @@
"networkError": "Erreur réseau — impossible de mettre à jour le paramètre d'exposition du fournisseur"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "Offres pour les soutiens",
+ "subtitle": "Réductions officielles, crédits, essais et avantages de partenaires vérifiés proposés par Radar.",
+ "backToRadar": "Retour à Radar",
+ "loading": "Chargement des offres...",
+ "refresh": "Actualiser les offres",
+ "refreshing": "Actualisation...",
+ "loadFailed": "Nous n'avons pas pu actualiser les offres. Le dernier cache local vérifié est conservé.",
+ "empty": "Aucune offre active n'est disponible pour le moment.",
+ "keyRequiredTitle": "Une clé de soutien est requise",
+ "keyRequiredDescription": "Les offres sont un avantage en temps réel de Radar. Ajoutez une clé de soutien existante sur l'écran Radar, vérifiez votre statut de contributeur ou soutenez le projet pour en obtenir une.",
+ "contributorButton": "Je suis contributeur",
+ "supporterButton": "Soutenir le projet",
+ "partnerBadge": "Partenaire",
+ "officialBadge": "Officiel",
+ "conditionsLabel": "Conditions :",
+ "validUntil": "Valable jusqu'au {date}",
+ "noExpiry": "Aucune date d'expiration annoncée",
+ "openOffer": "Voir l'offre",
+ "trialDays": "{days, plural, one {# jour} other {# jours}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "Renseignements radar",
+ "subtitle": "Classements ELO gérés par Radar et évolution factuelle du catalogue.",
+ "backToRadar": "Retour à Radar",
+ "loading": "Chargement de Radar Intel...",
+ "refresh": "Actualiser Radar Intel",
+ "syncing": "Actualisation...",
+ "loadFailed": "Nous n'avons pas pu actualiser Radar Intel. Le dernier cache local vérifié est conservé.",
+ "empty": "Aucun instantané vérifié de Radar Intel n'est encore disponible.",
+ "supporterBadge": "Soutien de Radar",
+ "methodology": "Méthodologie",
+ "eloMethod": "ELO, valeur initiale {initial}, K={factor}",
+ "freshness": "Actualité du catalogue",
+ "ageDays": "{days, plural, one {datant de # jour} other {datant de # jours}}",
+ "trend": "Tendance du catalogue",
+ "modelDelta": "{current} modèles, +{added} / -{removed}",
+ "ranking": "Classement des modèles",
+ "noRankings": "Aucune comparaison confirmée n'est encore disponible.",
+ "model": "Modèle",
+ "category": "Catégorie",
+ "rating": "Évaluation",
+ "matches": "Comparaisons",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Récent",
+ "aging": "Vieillissant",
+ "stale": "Obsolète"
},
"trendValues": {
- "growing": "Growing",
+ "growing": "En croissance",
"stable": "Stable",
- "shrinking": "Shrinking"
+ "shrinking": "Réduction"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "La demande dépasse la fenêtre de contexte du fournisseur"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference est un ami open source d’OmniRoute",
+ "description": "Une passerelle classée par coût qui revend des dizaines de modèles de pointe derrière un point de terminaison compatible avec OpenAI, en acheminant chaque requête vers le fournisseur éligible le moins cher, sans jamais dépasser le prix catalogue.",
+ "cta": "Obtenir une clé API",
+ "partnerLinkNote": "Lien partenaire",
+ "dismissAriaLabel": "Fermer"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Désactiver la génération des variantes de niveau de réflexion (par ex. -low, -medium, -high) dans le catalogue /v1/models."
}
diff --git a/src/i18n/messages/ga.json b/src/i18n/messages/ga.json
index 111f3a290f..9ae14d9309 100644
--- a/src/i18n/messages/ga.json
+++ b/src/i18n/messages/ga.json
@@ -733,7 +733,7 @@
"tokensSending": "Ag seoladh...",
"tokensFrom": "Ó",
"tokensTo": "Go",
- "tokensReason": "Reason",
+ "tokensReason": "Réasún",
"tokensDate": "Dáta",
"tokensSent": "Seolta",
"tokensReceived": "Faighte",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Fógraigh aitheantais scátháin claude/<soláthraí>/<samhail> ar /v1/models ionas go bhfógróidh fionnachtain samhla geata Claude Code samhlacha neamh-Claude. Rabhadh: déanann sé iontrálacha catalóige a dhúbailt do gach cliant nuair a chumasaítear go domhanda é.",
"featureFlagNoThinkingAliasEnabledDescription": "Príomh-lasc do na haliasanna geataí no-think/<soláthraí>/<samhail>. Ar (réamhshocrú): fógraíonn /v1/models leagan gan smaoineamh do gach samhail Claude atá in ann smaoineamh, agus réitíonn aitheantas no-think/ a sheoltar ar iarratas ar ais go dtí an tsamhail fíor le réasúnaíocht faoi chois. As: ní fhógraítear aon leaganacha agus caitear le haitheantas no-think/ mar aon aitheantas samhla anaithnid eile. Tá an rogha per-model ModelSpec.noThinkingAlias fós i bhfeidhm agus é seo ar siúl.",
"featureFlagChatVirtualLanesEnabledDescription": "Cumasaigh lánaí iontrála oiriúnaitheacha fíorúla in aghaidh an tionónta le haghaidh seolta soláthraí (#9654): ní chruthaíonn pléascadh tionónta amháin 503 do thionónta eile a thuilleadh. Tá an athróg timpeallachta OMNIROUTE_CHAT_VIRTUAL_LANES níos cumhachtaí ná an sárú deais seo; tagann athruithe i bhfeidhm ag atosú freastalaí.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Leathanaigh soláthraithe na deaise: ná taispeáin an suaitheantas Saor in aisce ach amháin i gcás comharthaí a n-aithníonn an soláthraí iad — fágtar ar lár heorastach an ainm taispeána, réimsí free nach réimsí Boole iad agus iarmhíreanna :free ar sholáthraithe cláraithe nach bhfuil sraith shaor in aisce dhoiciméadaithe acu. Nuair atá sé múchta, coinnítear riail stairiúil an tsuaitheantais.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Cuireann linnte seachfhreastalaí agus rothlú opencode in aghaidh an chuntais cosc ar sheachfhreastalaí ar theip air díreach (diúltaíodh don tóireadóir TCP, nó fuarthas 429 tríd) a sheirbheáil arís ar feadh tréimhse in aghaidh an phróisis a dhúblaíonn le gach teip eile, suas le huasteorainn. Ní scríobhtar aon stádas seachfhreastalaí; má chuirtear gach iarrthóir ar leataobh, fanann an rogha gan athrú. As de réir réamhshocraithe: is ionann an t-ord roghnúcháin go díreach agus an gnáthrothlú.",
+ "featureFlagProxyPoolEgressObservationDescription": "Taispeáin, faoi linn seachfhreastalaí sa deais, cé mhéad seoladh IP amach a breathnaíodh a d’fhreastail ar a bhaill le 24 h anuas, cé mhéad nasc a d’úsáid iad agus an líon is mó a chonacthas taobh thiar d’aon IP amháin. Inléite amháin, ríofa ón loga seachfhreastalaí, agus ní úsáidtear riamh é le haghaidh ródúcháin. As de réir réamhshocraithe: fanann eagarthóir na linne gan athrú agus freagraíonn bealach na breathnóireachta le null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "I scuabadh sláinte an tseachfhreastalaí, lig do thóraíocht ar dhiúltaigh an sprioc di (401/403/429: rinne an seachfhreastalaí athsheoladh, ach dhiúltaigh an ceann scríbe don seoladh IP amach seo) stríoc teipeanna comhleanúnacha an tseachfhreastalaí a athshocrú, amhail tóraíocht a seirbheáladh. As de réir réamhshocraithe: fanann diúltú neodrach agus coinníonn sé an stríoc. Fanann 5xx neamhchinntitheach sa dá chás, agus ní bhaineann diúltú seachfhreastalaí choíche, ní dhíchumasaíonn sé é ná ní athghníomhachtaíonn sé é.",
"sidebar": {
"home": "Baile",
"dashboard": "Deais",
@@ -1271,7 +1275,7 @@
"systemGroup": "Córas",
"costsOverview": "Forléargas",
"costsOverviewSubtitle": "Anailís chomhdhlúite ar chostais",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Droichead Gníomhairí",
"agentBridgeSubtitle": "Idircheap trácht gníomhairí IDE",
"trafficInspector": "Cigire Tráchta",
"trafficInspectorSubtitle": "Déan iniúchadh ar thrácht iarratais agus freagraí ó d'fheidhmchláir",
@@ -1725,42 +1729,42 @@
"home": "Baile",
"activity": "Gníomhaíocht",
"agentSkills": "AgentSkills",
- "comboHealth": "Combo Health",
- "evals": "Evals",
+ "comboHealth": "Sláinte na Teaglama",
+ "evals": "Meastóireachtaí",
"search": "Cuardach",
"utilization": "Úsáid",
"apiEndpoints": "Críochphointí API",
"audit": "Iniúchadh",
"a2a": "A2A",
"mcp": "MCP",
- "batch": "Batch",
- "files": "Files",
- "media": "Media",
- "cache": "Cache",
- "changelog": "Changelog",
- "chaos": "Chaos",
- "cloudAgents": "Cloud Agents",
- "live": "Live",
- "studio": "Studio",
- "aggressive": "Aggressive",
- "caveman": "Caveman",
+ "batch": "Baisc",
+ "files": "Comhaid",
+ "media": "Meáin",
+ "cache": "Taisce",
+ "changelog": "Loga athruithe",
+ "chaos": "Anord",
+ "cloudAgents": "Gníomhairí Néil",
+ "live": "Beo",
+ "studio": "Stiúideo",
+ "aggressive": "Ionsaitheach",
+ "caveman": "Fear Uaimhe",
"ccr": "CCR",
- "headroom": "Headroom",
+ "headroom": "Spás breise",
"lite": "Lite",
"llmlingua": "LLMLingua",
"omniglyph": "OmniGlyph",
"rtk": "RTK",
- "sessionDedup": "Session Dedup",
+ "sessionDedup": "Dí-dhúbláil Seisiúin",
"ultra": "Ultra",
- "budget": "Budget",
- "pricing": "Pricing",
- "quotaShare": "Quota Share",
- "discovery": "Discovery",
- "freeProviderRankings": "Free Provider Rankings",
+ "budget": "Buiséad",
+ "pricing": "Praghsáil",
+ "quotaShare": "Comhroinnt Cuóta",
+ "discovery": "Fionnachtain",
+ "freeProviderRankings": "Ranguithe Soláthraithe Saor in Aisce",
"radar": "Radar",
- "setup": "Setup",
- "freeTiers": "Free Tiers",
- "gamification": "Gamification",
+ "setup": "Socrú",
+ "freeTiers": "Sraitheanna Saor in Aisce",
+ "gamification": "Cluichíochtú",
"leaderboard": "Clár Ceannaireachta",
"limits": "Teorainneacha",
"profile": "Próifíl",
@@ -2184,7 +2188,7 @@
"routeRuntimeScoreNow": "Scór runtime anois",
"routeWouldSelectNow": "Roghnófaí anois",
"routeNoRecomputeCandidates": "Ní féidir aon rangú iarrthóirí combo a athríomh don iarratas seo.",
- "runtime": "Runtime",
+ "runtime": "Am Rite",
"routeTopNow": "Barr anois",
"routeFetchLogsFailed": "Theip ar logaí iarratais a fháil",
"routeExplainFailed": "Theip ar an mbealach a mhíniú",
@@ -2203,10 +2207,10 @@
"model": "Múnla",
"account": "Cuntas",
"connection": "Nasc",
- "combo": "Combo",
+ "combo": "Teaglaim",
"routeStep": "Céim",
"tokens": "Tocáin",
- "notAvailable": "n/a",
+ "notAvailable": "n/b",
"routeTokenCounts": "{input} isteach · {output} amach",
"routeEvidence": "Fianaise",
"routeFactors": "Fachtóirí ródaithe",
@@ -2738,7 +2742,7 @@
"effortHigh": "Ard",
"effortExtraHigh": "An-ard",
"effortMax": "Uasmhéid",
- "effortUltra": "Ultra",
+ "effortUltra": "Sár",
"wireApi": "API Sreang",
"modelAliases": "Ailiasanna Samhlacha",
"addModel": "Cuir samhail leis",
@@ -2764,7 +2768,7 @@
"configurationSaved": "Sábháladh an chumraíocht go rathúil.",
"failedToSave": "Theip ar an chumraíocht a shábháil.",
"noApiKeysCreateOne": "Níl aon eochracha API - Cruthaigh ceann ar leathanach Keys",
- "defaultOmnirouteKey": "sk_omniroute (default)",
+ "defaultOmnirouteKey": "sk_omniroute (réamhshocrú)",
"selectModel": "Roghnaigh Múnla",
"selectModelForAlias": "Roghnaigh múnla do {alias}",
"selectModelForTool": "Roghnaigh Múnla do {tool}",
@@ -3172,8 +3176,8 @@
"copilotToolCalling": "Glaoch Uirlisí",
"copilotPasteInto": "Greamaigh isteach i:",
"copilotReloadInstruction": "Ansin athlódáil VS Code agus socraigh an eochair API sa leid ionchuir.",
- "wireApiChatCompletions": "Chat Completions (/chat/completions)",
- "wireApiResponses": "Responses API (/responses)",
+ "wireApiChatCompletions": "Comhlánuithe Comhrá (/chat/completions)",
+ "wireApiResponses": "API Freagairtí (/responses)",
"cliproxyapiActionFailed": "Theip ar an ngníomh",
"cliproxyapiActionSucceeded": "D'éirigh leis an ngníomh",
"cliproxyapiCheckUpdates": "Seiceáil nuashonruithe",
@@ -3191,7 +3195,7 @@
"cliproxyapiStatusNotInstalled": "Gan Suiteáil",
"cliproxyapiStatusRunning": "Ag rith",
"cliproxyapiStatusStopped": "Stoptha",
- "cliproxyapiStop": "Stop",
+ "cliproxyapiStop": "Stad",
"cliproxyapiUnhealthy": "Neamhshláintiúil",
"cliproxyapiUnknown": "Anaithnid",
"cliproxyapiUpdate": "Nuashonrú",
@@ -3859,7 +3863,7 @@
"groupAccount": "Cuntas",
"groupServiceTier": "Leibhéal Seirbhíse",
"serviceTierFast": "Tapa",
- "serviceTierFlex": "Flex",
+ "serviceTierFlex": "Solúbtha",
"serviceTierStandard": "Caighdeánach",
"serviceTierBreakdownTitle": "Leibhéal Seirbhíse",
"serviceTierBreakdownSubtitle": "Deighilt Tapa / Flex / Caighdeánach",
@@ -3984,7 +3988,7 @@
"modelsCount": "{count, plural, one {# mhúnla} other {# múnlaí}}",
"sectionTitle": "Dromchla Comhtháthaithe",
"sectionDescription": "APIs comhoiriúnacha le OpenAI agus críochphointí prótacail oibríochtúla",
- "tabApis": "APIs",
+ "tabApis": "APIanna",
"tabProtocols": "Prótacail",
"tabsAria": "Rannáin críochphointe",
"protocolsTitle": "Prótacail",
@@ -4123,19 +4127,19 @@
"vscodeAliasDescriptionError": "Ag taispeáint URLanna ionadchoinneála toisc nárbh fhéidir eochracha CLI a lódáil sa seisiún seo.",
"vscodeAliasDescriptionLoading": "Ag lódáil eochracha CLI. Taispeántar URLanna ionadchoinneála go dtí go mbeidh eochair ar fáil.",
"vscodeAliasDescriptionPlaceholder": "Ag taispeáint URLanna ionadchoinneála. Cruthaigh nó gníomhachtaigh eochair API i CLI Tools chun TOKEN a ionadú.",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "Uirlisí CLI",
"vscodeAliasBaseLabel": "Bonn VS Code",
"vscodeAliasModelsLabel": "Múnlaí VS Code",
"vscodeAliasChatLabel": "Comhrá VS Code",
"localServer": "Freastalaí Áitiúil",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "OmniRoute Néal",
"copyUrl": "Cóipeáil URL",
"badgeLoopbackTooltip": "Níl an críochphointe seo inrochtana ach go háitiúil (loopback amháin)",
"badgeAlwaysProtectedTooltip": "Tá an críochphointe seo cosanta i gcónaí agus éilíonn sé údarú",
"badgeInternalTooltip": "Is críochphointe inmheánach córais é seo",
"tierAll": "Uile",
"tierAuth": "Fíordheimhnithe",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Aisfhillte",
"tierAlwaysProtected": "Cosanta i gcónaí",
"tierPublic": "Poiblí",
"hideInternal": "Folaigh Inmheánach",
@@ -4449,7 +4453,7 @@
"importError": "Theip ar iompórtáil an chomhaid",
"importResult": "{imported} iompórtáilte, {skipped} scipeáilte",
"key": "Eochair",
- "keyPlaceholder": "e.g. user.preferences.theme",
+ "keyPlaceholder": "m.sh. user.preferences.theme",
"loading": "Ag lódáil...",
"memories": "Cuimhní",
"next": "Ar Aghaidh",
@@ -4677,11 +4681,11 @@
"notAvailable": "—",
"totalRequests": "Iarratais iomlána",
"noDataYet": "Níl aon sonraí fós",
- "promptCache": "Prompt Cache",
+ "promptCache": "Taisce Leid",
"entries": "Iontrálacha",
"hitRate": "Ráta Amas",
"hitsMisses": "Amas / Caillte",
- "signatureCache": "Signature Cache",
+ "signatureCache": "Taisce Sínithe",
"signatureDefaults": "Réamhshocruithe",
"signatureTool": "Uirlis",
"signatureFamily": "Teaghlach",
@@ -4806,7 +4810,7 @@
"running": "Ag rith",
"stopped": "Stoptha",
"start": "Tosaigh",
- "stop": "Stop",
+ "stop": "Stad",
"refresh": "Athnuaigh",
"port": "Port Seachfhreastalaí",
"apiKey": "Eochair API an Ródaire",
@@ -5304,10 +5308,10 @@
"openaiCompatibleDetails": "Sonraí Comhoiriúnachta OpenAI",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Leabuithe",
+ "audioTranscriptions": "Tras-scríbhinní Fuaime",
+ "audioSpeech": "Fuaim agus Caint",
+ "imagesGenerations": "Giniúint Íomhánna",
"chatCompletions": "Chat Completions",
"importingModels": "Ag iompórtáil...",
"importFromModels": "Iompórtáil ó /models",
@@ -5861,7 +5865,7 @@
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "CLI",
"codexFastTierActiveChip": "Tá leibhéal Codex Fast gníomhach",
- "tierFast": "Fast",
+ "tierFast": "Tapa",
"antigravityProjectIdLabel": "Aitheantas Tionscadail Google Cloud",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
"grokWebCookiePlaceholder": "Áitchoimeádóir Fianán Gréasáin Grok",
@@ -6420,7 +6424,7 @@
"codexServiceModeUpdated": "Modh seirbhíse Codex nuashonraithe",
"codexServiceTierActive": "Tá sraith seirbhíse Codex {tier} gníomhach",
"codexTierFastLabel": "Tapa",
- "codexTierFlexLabel": "Flex",
+ "codexTierFlexLabel": "Solúbtha",
"commandCodeApplyFailed": "Theip ar údarú Command Code a chur i bhfeidhm",
"commandCodeApplyingApproval": "Ceadaithe ag an mbrabhsálaí, ag cur i bhfeidhm…",
"commandCodeApplyingKey": "Ag cur i bhfeidhm eochair cheadaithe ag an mbrabhsálaí…",
@@ -6452,7 +6456,7 @@
"failedUpdateCodexServiceMode": "Theip ar mhód seirbhíse Codex a nuashonrú",
"filterByMedia": "Meáin",
"freeBadge": "In aisce",
- "kimiCodeApiKeyLabel": "Kimi Code API Key",
+ "kimiCodeApiKeyLabel": "Eochair API Kimi Code",
"modelTestFailed": "Theip ar thástáil an mhúnla",
"modelTestNetworkError": "Earráid líonra agus an múnla á thástáil",
"networkError": "Earráid líonra",
@@ -6474,7 +6478,7 @@
"savedModelEndpointSettings": "Sábháladh socruithe críochphointe an mhúnla",
"searchByModelAria": "Cuardaigh de réir mhúnla",
"selectSupportedEndpoint": "Roghnaigh ar a laghad ceannphointe tacaithe",
- "antigravityClientProfileHarness": "Harness / CLI"
+ "antigravityClientProfileHarness": "Úim / CLI"
},
"settings": {
"title": "Socruithe",
@@ -6526,7 +6530,7 @@
"routingSummarizeDropParagraphContains": "scrios ailt ina bhfuil: {items}",
"routingSummarizeDropParagraphStartsWith": "scrios ailt a thosaíonn le: {items}",
"routingSummarizeReplaceText": "ionadaigh \"{match}\" → \"{replacement}\"",
- "routingSummarizeReplaceRegex": "regex /{pattern}/{flags} → \"{replacement}\"",
+ "routingSummarizeReplaceRegex": "slonn rialta /{pattern}/{flags} → \"{replacement}\"",
"routingSummarizeDropBlockContains": "scrios bloic ina bhfuil: {items}",
"routingSummarizePrependSystemBlock": "réamhcheangail bloc: \"{text}\"",
"routingSummarizeAppendSystemBlock": "iarcheangail bloc: \"{text}\"",
@@ -6847,7 +6851,7 @@
"createSubscription": "Cruthaigh Síntiús",
"loading": "Ag lódáil…",
"noSubscriptions": "Níl aon síntiús fós. Cliceáil \"Cuir Síntiús Leis\" chun tosú.",
- "statusOk": "OK",
+ "statusOk": "Ceart go leor",
"statusError": "Earráid",
"statusEmpty": "Folamh",
"global": "Domhanda",
@@ -6909,7 +6913,7 @@
"healthcheckLatency": "Moill",
"proxyDocumentationScopeTitle": "Réiteach Scóip Seachfhreagraí",
"proxyDocumentationScopeDescBefore": "Réitíonn OmniRoute an seachfhreagraí amach i dtreo tosaíochta:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "teaglaim → cuntas → soláthraí → domhanda",
"proxyDocumentationScopeDescAfter": ". Is é an scóip is sainiúla a bhuann.",
"proxyDocumentationAddTitle": "Ag cur seachfhreagraí saincheaptha leis",
"proxyDocumentationAddDescBefore": "Téigh go dtí an",
@@ -7052,7 +7056,7 @@
"routingAdvancedGuideTitle": "Treoir ródaithe chun cinn",
"routingAdvancedGuideHint1": "Tá an straitéis seo sioncronaithe le réamhshocruithe comho nua agus le ródú cúltaca cuntas domhanda araon.",
"routingAdvancedGuideHint2": "Úsáid Fill First le haghaidh tosaíocht chuntais intuartha, Round Robin móide Sticky Limit le haghaidh baisceanna cuntas, agus P2C le haghaidh athléimneacht latency.",
- "fillFirst": "Fill First",
+ "fillFirst": "Líon ar dTús",
"fillFirstDesc": "Úsáid cuntais in ord tosaíochta",
"roundRobin": "Round Robin",
"roundRobinDesc": "Timthriall trí gach cuntas",
@@ -7060,25 +7064,25 @@
"p2cDesc": "Roghnaigh 2 go randamach, úsáid an ceann is sláintiúla",
"random": "Randamach",
"randomDesc": "Cuntas randamach le haghaidh gach iarratais",
- "leastUsed": "Least Used",
+ "leastUsed": "Is Lú Úsáidte",
"leastUsedDesc": "Roghnaigh an cuntas is lú úsáid le déanaí",
- "costOpt": "Cost Opt",
+ "costOpt": "Optamú Costais",
"costOptDesc": "Is fearr an cuntas is saoire atá ar fáil",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "RR atá Feasach ar Athshocrú",
"resetAwareDesc": "Is fearr cuntais le cuóta sláintiúil fágtha agus athshocruithe níos gaire",
"quotaWeighted": "Ualaithe de réir Cuóta",
"quotaWeightedDesc": "Scipeáil cuntais ídithe, ansin roghnaigh as na cinn eile i gcomhréir leis an méid atá fágtha, roinnte ar an ualach idir lámha. Fanann comhráite atá ann cheana feistithe.",
- "strictRandom": "Strict Random",
+ "strictRandom": "Randamach Dian",
"strictRandomDesc": "Croith an deic — úsáideann sé gach cuntas uair amháin sula n-athchroitheann sé",
- "stickyLimit": "Sticky Limit",
+ "stickyLimit": "Teorainn Ghreamaitheach",
"stickyLimitDesc": "Glaonna in aghaidh an chuntais sula n-athraítear nuair a úsáideann cúltaca cuntas domhanda Round Robin",
"routingStrategyTitle": "Straitéis Ródaithe",
"routingStrategySubtitle": "Meaitseáil 9router: round-robin cuntas, teorainneacha greamaitheacha, agus rothlú comho",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Spólghach",
"accountRoundRobinDesc": "Timthriall trí chuntais chun ualach a dháileadh",
- "comboRoundRobin": "Combo Round Robin",
+ "comboRoundRobin": "Spólghach Teaglama",
"comboRoundRobinDesc": "Timthriall trí spriocanna comho in ionad tosú i gcónaí leis an gcéad cheann",
- "comboStickyLimit": "Combo Sticky Limit",
+ "comboStickyLimit": "Teorainn Ghreamaitheach Teaglama",
"comboStickyLimitDesc": "Glaonna in aghaidh an sprioc-chomho sula n-athraítear",
"routingStrategyAccountSummary": "Ag dáileadh iarratais ar fud cuntais le {limit} ghlao in aghaidh an chuntais.",
"routingStrategyFillFirstSummary": "Ag úsáid cuntais in ord tosaíochta (Líon ar dtús).",
@@ -7139,7 +7143,7 @@
"ipModeWhitelist": "Bánliosta",
"ipModeWhitelistPriority": "Tosaíocht WL",
"addIpAddress": "Cuir seoladh IP leis",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
+ "ipAddressPlaceholder": "192.168.1.0/24 nó 10.0.*.*",
"block": "+ Cosc",
"allow": "+ Ceadaigh",
"blocked": "Cosanta ({count})",
@@ -7187,7 +7191,7 @@
"comboStrategyAria": "Straitéis Combo",
"priority": "Tosaíocht",
"weighted": "Meáite",
- "contextRelay": "Context Relay",
+ "contextRelay": "Athsheachadán Comhthéacs",
"contextRelayDesc": "Ródú de stíl tosaíochta le haistrithe comhthacs uathoibríoch nuair a tharlaíonn rothlú cuntais",
"maxRetriesLabel": "Uasmhéid Iarrachtaí",
"retryDelayLabel": "Moil ar Iarracht (ms)",
@@ -7437,7 +7441,7 @@
"noWildcardAliasesConfigured": "Níl aon ainmneacha cardús cumraithe.",
"overview": "Forbhreathnú",
"unknownError": "Earráid Anaithnid",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
+ "pricingSourceLiteLLM": "LiteLLM (Pobal)",
"clearSyncedPricingConfirm": "Glan gach sonraí praghála sioncronaithe? Úsáidfear réamhshocruithe soláthraí ina ionad.",
"clearSyncedPricingFailed": "Theip ar glanadh praghála sioncronaithe",
"pricingSourceUser": "Forshuíomh Úsáideora",
@@ -7517,7 +7521,7 @@
"compressionToolStrategiesDesc": "Scoráil straitéisí comhbhrú do chríocha tortha uirlise éagsúla",
"compressionGeneral": "Socruithe Ginearálta",
"compressionAutoTrigger": "Teorainn Uath-thráchtaire",
- "compressionCacheTTL": "Cache TTL",
+ "compressionCacheTTL": "TTL na Taisce",
"compressionPreserveSystem": "Caomhnú Leid Córais",
"compressionPreserveSystemAlways": "I gcónaí",
"compressionPreserveSystemWhenNoCache": "Nuair nach bhfuil taisce",
@@ -7808,7 +7812,7 @@
"redisLauncherTitle": "Redis Áitiúil",
"redisLauncherDesc": "Seol coimeádán Redis 7 le cliceáil amháin (Podman nó Docker) le haghaidh taisce freagraí, rianú cuóta, agus teorannú ráta.",
"redisLauncherRefresh": "Athnuaigh",
- "redisLauncherStop": "Stop",
+ "redisLauncherStop": "Stad",
"redisLauncherLaunching": "Ag seoladh...",
"redisLauncherLaunch": "Seol Redis",
"redisLauncherContainer": "Coimeádán",
@@ -7940,7 +7944,7 @@
"headroomProxyUrlHint": "Is féidir URLanna aisfhillte a thosú ón leathanach seo. Ní dhéantar ach URLanna seachtracha a phromhadh.",
"headroomProxySave": "Sábháil",
"headroomProxyStart": "Tosaigh",
- "headroomProxyStop": "Stop",
+ "headroomProxyStop": "Stad",
"headroomProxyExternalHint": "Ní URL aisfhillte é an URL seo, mar sin ní thionscnóidh OmniRoute an CLI áitiúil.",
"cliproxyapiStatus": "Stádas an CLIProxyAPI",
"cliproxyapiNotDetected": "Gan braith",
@@ -7996,11 +8000,11 @@
"responsesStateModePreserve": "Coinnigh",
"responsesStateHint": "Uathoibríoch previous_response_id mura ngníomhachtótear stóráil OpenAI Responses go sainráite. Is é an t-sábháilte le haghaidh cliant neamhstáit mar VS Code Custom Endpoint; an comhthéacs ansin ag brath ar an gcliant ag seoladh stair iomlán.",
"responsesStateSaveError": "Theip ar nuashonrú shocrú stáit na Freagraí",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Sraith Thapa Codex",
"codexFastTierDesc": "Inject go domhanda service_tier=priority do iarratais OpenAI Codex.",
"codexFastTierHint": "Nuair a bheidh sé cumasaithe, cuireann OmniRoute service_tier=priority le hiarratais Codex amach as teacht i dteagmháil nach bhfuil leibhéal sonraithe cheana féin. Tá gá le heochair API OpenAI Enterprise nó cosán Codex ChatGPT-auth don leibhéal tosaíochta; faidhbh a bhaineann le leibhéal a gheobhaidh eochair eile ó OpenAI. Tá séadcáin in aghaidh an teagmhála ar an leathanach soláthraí Codex ina bhfeidhmcheannas.",
"codexFastTierSaveError": "Theip ar nuashonrú shocrú Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
+ "codexAutoPingTitle": "Uathphing Cuóta Codex",
"codexAutoPingDesc": "Roghnaigh in aghaidh an teagmhála: seolann sé iarracht bheag díreach i ndiaidh fuinneog seisiúin Codex a athshocradh ionas nach bhfuil sé fuar nuair a theastaíonn uait.",
"codexAutoPingWarning": "Caithfidh méid beag den chotas Codex fíor ar gach ping. As de réir réamhshocraithe — cumasaigh ach do theagmhálacha a bhfuil tú ag brath orthu go gníomhach.",
"codexAutoPingSaveError": "Theip ar nuashonrú shocrú Codex Auto-Ping",
@@ -8012,7 +8016,7 @@
"codexFastTierModelsLabel": "Samhailanna leibhéal tapa",
"codexFastTierModelsHint": "Ní bhfaigheann samhailanna atá seiceáilte amháin service_tier nuair a bhíonn Fast Tier cumasaithe.",
"codexFastTierModelCheckbox": "Cumasigh Fast Mode do {model}",
- "claudeFastModeTitle": "Claude Fast Mode",
+ "claudeFastModeTitle": "Mód Tapa Claude",
"claudeFastModeDesc": "Roghnaigh iarratais Claude roghnaithe isteach in Anthropic Fast Mode (speed:\"fast\").",
"claudeFastModeHint": "Ní thacaíonn Anthropic go hoifigiúil le Fast Mode do chliant stíl SDK. Nuair a bheidh sé cumasaithe, seolann OmniRoute ceanntaire X-CPA-Force-Fast-Mode ionas gur féidir le tógáil CLIProxyAPI péireáilte roghnú-spreagadh an pointe iontrála. Ní bhíonn ach na samhailanna Opus liostáilte ag cosc seiceáil cliant-side Anthropic. Tá leibhéal síntiús, plean Max, agus iarmhír creidmheasa Fast Mode fós i bhfeidhm ar an bhfreastalaí — d'fhéadfadh Anthropic a thabhairt ar ais out_of_credits fiú nuair a bhíonn an togláil air.",
"claudeFastModeModelsLabel": "Curtha i bhfeidhm ar samhailanna ({count})",
@@ -8378,7 +8382,7 @@
"qdrantCollection": "Bailiúchán"
},
"contextRtk": {
- "title": "RTK Engine",
+ "title": "Inneall RTK",
"description": "Comhbhrú atá aitheanta ag ordú do thorthaí uirlis, logaí teirminéil agus torthaí tógála.",
"enabled": "Cumasaigh",
"intensity": "Dlús",
@@ -8615,7 +8619,7 @@
"lite": "Éadrom",
"standard": "Caighdeánach",
"aggressive": "Ionsaitheach",
- "ultra": "Ultra",
+ "ultra": "Sár",
"responsesToolOutput": "Aschur uirlise Responses"
}
},
@@ -8674,7 +8678,7 @@
"deleteNamedConfirm": "Scrios teaglaim “{name}”?",
"intensityLite": "Éadrom",
"intensityFull": "Iomlán",
- "intensityUltra": "Ultra",
+ "intensityUltra": "Sár",
"active": "Gníomhach",
"languagePacksList": "Pacáistí teanga: {packs}",
"dragToReorder": "Tarraing chun céim a atheagrú",
@@ -8819,13 +8823,13 @@
"stateError": "Earráid",
"stateNotInstalled": "Níl sé suiteáilte",
"stateUnknown": "Anaithnid",
- "port": "port {port}",
+ "port": "pórt {port}",
"externalBadge": "Bainistithe go seachtrach",
"externalTitle": "Braitheadh 9Router seachtrach",
"externalDescription": "Lorg OmniRoute 9Router ag {host}:{port}. Tá a shaolré, logaí, nuashonruithe, agus eochair seirbhíse fós bainistithe ag an suiteáil sheachtrach.",
"start": "Tosaigh",
"starting": "Ag tosú…",
- "stop": "Stop",
+ "stop": "Stad",
"stopping": "Ag stopadh…",
"restart": "Atosaigh",
"restarting": "Ag atosú…",
@@ -8854,7 +8858,7 @@
"install9RouterDescription": "Íoslódálann agus suiteálann sé 9Router trí npm. Teastaíonn thart ar 500 MB de spás diosca.",
"version": "Leagan",
"versionHint": "Cuir isteach “latest” nó leagan sonrach (mar shampla, 1.2.3).",
- "servicePort": "Port",
+ "servicePort": "Pórt",
"servicePortHint": "Caithfidh OmniRoute agus 9Router poirt éagsúla a úsáid. Is é 20130 port réamhshocraithe 9Router.",
"installationFailed": "Theip ar an tsuiteáil (HTTP {status})",
"installationSucceeded": "D'éirigh le suiteáil 9Router. Ag tosú…",
@@ -8876,7 +8880,7 @@
"providerExposureHint": "Nuair a chuirtear ar siúl é, bíonn na múnlaí aimsithe le feiceáil i roghnóirí soláthraithe ar fud OmniRoute.",
"providerExposureUpdateFailed": "Theip ar nuashonrú (HTTP {status})",
"providerExposureNetworkFailed": "Earráid líonra — níorbh fhéidir an socruithe nochtadh soláthraí a nuashonrú",
- "webUi": "9Router Web UI",
+ "webUi": "Comhéadan Gréasáin 9Router",
"openNewTab": "Oscail i gcluaisín nua",
"filterLogs": "Scag logaí…",
"resume": "Atosaigh",
@@ -8904,7 +8908,7 @@
"save": "Sábháil"
},
"contextCaveman": {
- "title": "Caveman Engine",
+ "title": "Inneall Caveman",
"description": "Comhbhrú teachtaireacht bunaithe ar rialacha, pacáiste teanga, anailísíochta agus rialuithe módh aschurtha.",
"advancedConfig": "Cumraíocht Ardleibhéal",
"advancedConfigDesc": "Mínigeartú iompar comhbhrú",
@@ -8934,7 +8938,7 @@
"outputModeTitle": "Mód Aschurtha",
"quickSettings": "Socruithe Tapa",
"quickSettingsDesc": "Socruithe comhbhrúite bunúsacha le tús a chur leis",
- "autoClarity": "Auto-Clarity Bypass",
+ "autoClarity": "Seachbhóthar Uathshoiléire",
"bypassConditions": "Coinníollacha seachanta",
"bypassConditionsList": "slándáil, neamh-idirnaitheach, soiléiriú, ord-íogair",
"simpleMode": "Simplí",
@@ -9339,7 +9343,7 @@
"evaluateStepDescription": "Comhghleoitear na freagraí in aghaidh na gcaighdeán súgartha. Féach pas/diúlta do gach cás le méadracht athruchtachta agus aiseolas mionsonraithe.",
"evalsStrategyContainsLabel": "Containeann",
"evalsStrategyExactLabel": "Meaitseáil Beacht",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Slonn ionadaíochta",
"evalsStrategyCustomLabel": "Loighic Saincheaptha",
"evalsStrategyContainsDescription": "Seiceálann an bhfuil an t-aschur LLM ag coinneáil an fho-fhrása súgartha.",
"evalsStrategyExactDescription": "Seiceálann an bhfuil an t-aschur LLM ag meaitseáil go beacht leis an luach súgartha.",
@@ -9468,7 +9472,7 @@
"tierPro": "Pro",
"tierPlus": "Plus",
"tierFree": "Saor",
- "tierLite": "Lite",
+ "tierLite": "Éadrom",
"tierUnknown": "Anaithnid",
"statTotal": "Iomlán",
"statCritical": "Criticiúil",
@@ -9553,7 +9557,7 @@
"targetSuiteDefaults": "Suite réamhshocruithe",
"suiteBuilderDeleteConfirm": "An bhfuil tú cinnte gur mhaith leat an suite seo a scriosadh? Ní féidir an ghníomh seo a chealú.",
"suiteBuilderNameLabel": "Ainm Suite",
- "scorecardSuites": "Suites",
+ "scorecardSuites": "Pacáistí",
"evalCompareTarget": "Sprioc Comparáide",
"suiteBuilderCaseModelPlaceholder": "m.sh. gpt-4o-mini",
"evalControlsHint": "Cumraigh do sprioc measúnaithe agus API key, ansin rith suite chun cáilíocht an tsamhail a bhailíochtú.",
@@ -9716,8 +9720,8 @@
"chooseAuthMethod": "Roghnaigh do mhodh fíordheimhniú:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
+ "googleAccount": "Cuntas Google",
+ "githubAccount": "Cuntas GitHub",
"importToken": "Iompórtáil Comhartha",
"pasteToken": "Greamaigh comhartha athnuachana ó Kiro IDE.",
"awsRegion": "AWS Region",
@@ -9780,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Méadrachtaí an chórais",
"memory": "Cuimhne",
- "memoryShort": "mem",
+ "memoryShort": "cuimhne",
"uptime": "Am ar bun",
"ariaLabel": "Monatóireacht ar an gcóras",
"title": "Monatóir Córais",
@@ -9996,7 +10000,7 @@
"documentation": "Doiciméadú",
"npm": "NPM",
"legal": "Dlúth",
- "mitLicense": "MIT License",
+ "mitLicense": "Ceadúnas MIT",
"footerTagline": "An t-pointe aontaithe le haghaidh giniúna AI. Ceangail, ródáil, agus bainistigh do sholáthraithe AI le héase.",
"copyright": "© {year} OmniRoute. Gach ceart ar cosaint.",
"flowToolClaudeCode": "Claude Code",
@@ -10100,7 +10104,7 @@
"providersCount": "Solálthairí {count}",
"providerTypeFree": "Tairseach Saor",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
+ "providerTypeApiKey": "Eochair API",
"useCaseSingleEndpointTitle": "Sonrach amháin do go leor solálthairí",
"useCaseSingleEndpointText": "Treoraigh cliant go URL bonn amháin agus rianaigh de réir réamhshocraithe múnla (m.sh.: gh/, cc/, kr/, openai/).",
"useCaseFallbackTitle": "Teip-fhailt agus athrú múnla le comhábhair",
@@ -10396,10 +10400,10 @@
"flowDiagramOmniRouteDesc": "Faigheann iarratas agus roghnaíonn sprioc",
"flowDiagramSpawn": "Próiseas Seolta",
"flowDiagramSpawnDesc": "Seolann feidhmchlár CLI trí stdio",
- "flowDiagramCli": "CLI Agent",
+ "flowDiagramCli": "Gníomhaire CLI",
"flowDiagramCliDesc": "Próiseálann le fíordheimhniú/múnla féin",
"fingerprintSettingsHint": "CLI Fingerprint matching (cur in ionad iarratais mar uirlisí CLI ar leith) is féidir a chumrú i",
- "settingsRoutingLink": "Settings/Routing",
+ "settingsRoutingLink": "Socruithe/Ródú",
"openSettings": "Socruithe",
"copyRawUrlTitle": "Cóip URL amh go dtí an ghearcliár",
"copied": "Cóipeáilte!",
@@ -10677,7 +10681,7 @@
"proxyConfigModal": {
"levelGlobal": "Comhshaoil",
"levelProvider": "Soláthraí",
- "levelCombo": "Combo",
+ "levelCombo": "Teaglaim",
"levelKey": "Eochair",
"levelDirect": "Díreach (gan seachfhreastalaí)",
"titleGlobal": "Cumraíocht Seachfhreastalaí Domhanda",
@@ -10690,8 +10694,8 @@
"selectSavedProxyPlaceholder": "Roghnaigh seachfhreastalaí sábháilte...",
"proxyType": "Cineál Seachfhreastalaí",
"host": "Óstach",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
+ "hostPlaceholder": "1.2.3.4 nó proxy.example.com",
+ "port": "Pórt",
"authOptional": "Fíordheimhniú (roghnach)",
"username": "Ainm úsáideora",
"usernamePlaceholder": "Ainm úsáideora",
@@ -10870,7 +10874,7 @@
"familyIpv6": "IPv6 amháin",
"familyHint": "Teaghlach seoladh imchur. Coinnigh an tUathoibríoch an dá pháirc; cuir IPv4/IPv6 an próxí seo go dtí an teaghlach sin (cosain ó sruth v4 faoi próxí IPv6 amháin).",
"labelHost": "Óstach",
- "labelPort": "Port",
+ "labelPort": "Pórt",
"labelUsername": "Ainm úsáideora",
"labelPassword": "Pasfhocal",
"labelRegion": "Région",
@@ -10964,6 +10968,9 @@
"strategyLatency": "Optamaithe ag moill",
"poolMembersLabel": "Comhaltaí na linne ({count})",
"poolNoMembers": "Níl aon seachfhreastalaithe sa linn seo fós.",
+ "poolEgressObservation": "Úsáideadh {exits, plural, one {# bhealach amach} other {# bealach amach}} ag {connections, plural, one {# nasc} other {# nasc}} · suas le {max} ar bhealach amach amháin · na {hours} uaire an chloig seo caite",
+ "poolEgressObservationEmpty": "Níor breathnaíodh aon trácht le {hours} uair an chloig anuas",
+ "poolEgressObservationHint": "Áiríodh ó loga an tseachfhreastalaí thar an tréimhse: na seoltaí IP amach ar leith a breathnaíodh do bhaill na linne seo, agus naisc OmniRoute a d’úsáid iad. Ciallaíonn \"Ar bhealach amach amháin\" thar an tréimhse, ní ag an am céanna. Ní chuireann an frithdhúnadh 429 in aghaidh an IP ar sos ach naisc ón teaghlach soláthraithe céanna.",
"poolRemove": "Bain",
"poolRemoveFailed": "Theip ar bhaint an seachfhreastalaí as an linn",
"poolAddLabel": "Cuir procsí leis",
@@ -11142,7 +11149,7 @@
},
"generating": "Ag gint…",
"typeMessageWithShortcut": "Clóscríobh teachtaireacht... (Iontráil chun seol, Shift+Iontráil le haghaidh líne nua)",
- "stop": "Stop",
+ "stop": "Stad",
"noResponseBody": "Níl aon chorpnóir freagra",
"comparePromptPlaceholder": "Iontráil do phrómp anseo…",
"userPrompt": "Prómp úsáideora",
@@ -11247,7 +11254,7 @@
"assistant": "Cúntóir",
"errorLabel": "Earráid",
"requestFailed": "Theip ar an iarratas",
- "stop": "Stop"
+ "stop": "Stad"
},
"requestLogger": {
"recording": "Ag taifeadadh",
@@ -11265,7 +11272,7 @@
"total": "Iomlán",
"ok": "Rath",
"err": "Earráid",
- "combo": "Combo",
+ "combo": "Teaglaim",
"keys": "Eochracha",
"shown": "Taispeánta",
"sortNewest": "Is nuaí",
@@ -11293,7 +11300,7 @@
"all": "Uile",
"error": "Earráid",
"success": "Rath",
- "combo": "Combo"
+ "combo": "Teaglaim"
},
"columns": {
"status": "Stádas",
@@ -11456,7 +11463,7 @@
"loadingProxyLogs": "Ag lódáil logaí seachfhreastalaithe...",
"noProxyLogs": "Níl aon logaí seachfhreastalaithe fós. Cumraigh seachfhreastalaithe agus déan glaonna API chun iad a fheiceáil anseo.",
"noMatchingLogs": "Ní mheaitseáil aon logaí na scagairí reatha.",
- "tlsFingerprint": "Chrome 124 TLS Fingerprint",
+ "tlsFingerprint": "Méarlorg TLS Chrome 124",
"colPublicIp": "IP Poiblí"
},
"endpointOptions": {
@@ -11671,7 +11678,7 @@
"endpointsBaseUrl": "URL bunúsach",
"endpointsCollapse": "Laghdaigh",
"endpointsExpand": "Leathnaigh",
- "endpointsAnthropicNote": "Anthropic-native",
+ "endpointsAnthropicNote": "Dúchasach do Anthropic",
"endpointsResponsesNote": "OpenAI Freagraí — codex/github",
"endpointsWsNote": "WebSocket — codex amháin",
"betaText": "Tá Cuóta Share feidhmiúil ach tá fabhanna ag súil leis. An bhfuaire tú amháin? Cuir fios go leor é.",
@@ -11815,7 +11822,7 @@
"quotaStoreDriverChanged": "Athraíodh tiománaí QuotaStore",
"updateApplied": "Nuashonrú {target} curtha i bhfeidhm",
"deployCompleted": "Longadh críochnaithe",
- "skillInstalled": "{actor} installed skill {target}",
+ "skillInstalled": "Shuiteáil {actor} scil {target}",
"skillRemoved": "{actor} bhain sé scil de {target}",
"providerCredentialsCreated": "{actor} chruthaigh dintiúir do {target}",
"providerCredentialsApplied": "Dintiúir do {target} curtha i bhfeidhm",
@@ -11860,7 +11867,7 @@
"serverIntercepted": "Idirghabhtha",
"serverLastStarted": "Tosaithe go deireanach",
"startServer": "Tosaigh",
- "stopServer": "Stop",
+ "stopServer": "Stad",
"restartServer": "Atosaigh",
"trustCert": "Muinín Teastais",
"downloadCert": "Íoslódáil Teastas",
@@ -11902,7 +11909,7 @@
"saveMappings": "Sábháil mapaí",
"setupWizard": "Treoraí Socrú",
"startDns": "Tosaigh DNS",
- "stopDns": "Stop DNS",
+ "stopDns": "Stad DNS",
"toggling": "Ag scoráil…",
"viewTraffic": "Amharc ar thráffic",
"emptyNoProvidersTitle": "Níl aon soláthraithe cumraithe fós",
@@ -12058,7 +12065,7 @@
"clearBtn": "Glan",
"exportHar": "Easpórtáil .har",
"recordSession": "TAIFEAD",
- "stopSession": "Stop",
+ "stopSession": "Stad",
"liveBadge": "beo",
"offlineBadge": "as líne",
"noRequests": "Gan aon iarratais gabhalta fós.",
@@ -12535,7 +12542,7 @@
"categoryConfig": "Cumraíocht",
"filterAll": "Uile",
"coverageLabel": "Clúdach",
- "mcpUrl": "MCP URL",
+ "mcpUrl": "URL MCP",
"a2aLink": "A2A",
"mcpPrompt": "Cuir an t-iarrthóir MCP seo le d'ionsaí chun 37 uirlis OmniRoute a thabhairt dó.",
"a2aPrompt": "Cláraigh an Chárta Agent seo le d'eagróir chun tascanna A2A a chumasú.",
@@ -12603,7 +12610,7 @@
"subtitle": "Scan soláthraithe le haghaidh modhanna rochtana saor in aisce gan teorainn agus déan athbhreithniú ar na torthaí. Roghnach, logánta amháin.",
"scanLabel": "Soláthraí le scanadh",
"scanPlaceholder": "m.sh. huggingchat",
- "scan": "Scan",
+ "scan": "Scanadh",
"scanning": "Ag scanadh…",
"scanQueued": "Scan críochnaithe do {provider}.",
"scanFailed": "Theip ar an scanadh.",
@@ -12619,7 +12626,7 @@
"emptyDescription": "Rith scanadh thuas chun modhanna saor in aisce a lorg ar sholáthraí.",
"risk": "Riosca",
"method": "Modh",
- "auth": "Auth",
+ "auth": "Fíordheimhniú",
"feasibility": "Inniúlacht",
"models": "Samhlacha"
},
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Ceadaigh d'aisghabháil srutha an freagra a iarraidh arís agus é a fhuáil le chéile tar éis do bhearta a bheith sroichte ag an gcliant cheana féin."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Déan leanúint ar aghaidh i lár srutha sábháilte do ghlaonna uirlise: ná hathchrom riamh ar shruth gearrtha tar éis glao uirlise a bheith seolta (bíodh sé fós ar bun nó críochnaithe cheana féin), agus stad tar éis aon leanúint fholamh amháin in ionad an buiséad iomlán atrialacha a úsáid."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Aistrigh uair amháin chuig nasc deirfiúr nuair a dhúntar sruth sula seoltar fráma úsáideach ar bith agus nuair atá an athiarracht theoranta ar an nasc céanna ídithe. Mura bhfuil nasc deirfiúr inúsáidte ann, seoltar an earráid early-EOF bhunaidh ar ais. As: fanann early-EOF críochnaitheach tar éis na hathiarrachta."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Cuir réimsí ainmneacha atá cairdiúil don taispeáint san áireamh i bhfreagraí /v1/models. Díchumasaigh é seo do chliaint a ghlacann le haitheantóirí múnla amháin."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Lúb Uirlisí faoi Úinéireacht an Fhreastalaí",
"description": "Lean ar aghaidh le glaonna uirlise neamhshruthaithe atá faoi úinéireacht an fhreastalaí go dtí go gcuirfidh an tsamhail freagra ar fáil is féidir leis an gcliant a úsáid."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Bunús Retry-After",
+ "description": "I gcás freagraí comhiomlánaithe neamh-infhaighteachta 429/503, fág Retry-After ar lár nuair nach eol aon am sonrach amach anseo chun triail eile a bhaint as, in ionad luach saorga 1s a sheoladh; cuir error.retry_after_provenance leis; agus léigh leideanna atrialach i bprós ar chonairí draenála teaglama."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Stadanna Bonneagair Tosaíochta Cosanta mar 502",
+ "description": "Tabhair freagra 502 in ionad 503 nuair a stopann sprioc tosaíochta le cúltaca cuóta amháin an teaglama ar chúis ar féidir a chruthú nach mbaineann sí le cuóta: scoradán ciorcaid oscailte soláthraí nó scipeáil thuarthach de bharr aga folaigh."
}
}
},
@@ -13442,7 +13463,7 @@
"supporterHint": "Níl athnuipeatú uathoibríoch ag roghanna aon-uair 6 mhí, 1 bhliain, agus saolré; carnann tréimhsí incháilithe agus téann saolré i bhfeidhm.",
"colProvider": "Soláthraí",
"colModel": "Múnla",
- "colQuota": "Quota",
+ "colQuota": "Cuóta",
"colLimits": "Teorainneacha",
"trainsOnPrompts": "Oibríonn ar churrais",
"trainsOnPromptsHelp": "Nochtaíonn an soláthraí seo go bhféadfaidh sé do churrais a úsáid chun múnlaí a oiliúint",
@@ -13556,9 +13577,9 @@
"timeline": {
"title": "Aistrithe Briseadh",
"window": "Fuinneog",
- "window1h": "1h",
- "window6h": "6h",
- "window24h": "24h",
+ "window1h": "1u",
+ "window6h": "6u",
+ "window24h": "24u",
"empty": "Gan aon trasuí i bhfuinneog roghnaithe",
"currentState": "Stát Reatha",
"state": {
@@ -13588,7 +13609,7 @@
"remaining": "Fágtha",
"noLockouts": "Gan aon ghlásáil ghníomhach",
"provider": "Soláthraí",
- "id": "ID",
+ "id": "Aitheantas",
"authType": "Cineál údaraithe",
"priority": "Tosaíocht",
"isActive": "Gníomhach",
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Diúltaigh iarratais roimh seoladh nuair nach bhfuil cumais riachtanacha ag an sprioc-mhúnla (radharc, uirlisí, aschur struchtúrtha, fuinneog comhthéacs). Cosnaíonn sé iarrataí aonair díreach-aonair-bhunaithe a sheachann an scagaire comhoiriúlachta sraithe chomhcheangail.",
"featureFlagDisableContextWindowChecksDescription": "Léim thar seiceáil fuinneog comhthéacs agus ionchur comhartha uasta OmniRoute d'iarrataí múnla-aonair dhíreacha. Fórsíonn na soláthraithe suasshrutha a dteorainn fíor-fholláin fós. Fanann comhbhrú leideanna agus teorainn aschur comhartha gníomhach.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Ní áirítear i staitisticí cuardaigh ná i gcuardaigh le déanaí ach soláthraithe a bhfuil nasc beo acu fós (áirítear soláthraithe gan eochair amhail duckduckgo-free i gcónaí). Coinníonn As gach ró cuardaigh coinnithe a bhfuil aitheantas soláthraí aige.",
"publicSystem": {
"notFound": {
"title": "Leathanach gan aimsiú",
@@ -13956,7 +13978,7 @@
"runners": "Ritheoirí",
"tasks": "Tascanna",
"colName": "Ainm",
- "colClis": "CLIs",
+ "colClis": "CLIanna",
"colStatus": "Stádas",
"colTask": "Tasc",
"colMode": "Mod",
@@ -14010,7 +14032,7 @@
"historyEmpty": "Níl aon rithanna críochnaithe sa raon seo",
"historyConductorNote": "Tá rithanna Conductor iargúlta agus ní bhíonn siad buan go háitiúil",
"historySourceFailed": "Stair {source} gan fáil",
- "historyRange1d": "24h",
+ "historyRange1d": "24u",
"historyRange7d": "7 lá",
"historyRange30d": "30 lá",
"compareMode": "Cuir rití i gcomparáid",
@@ -14031,7 +14053,7 @@
"clearFilters": "Glan scagairí",
"sourceCloudAgent": "Gníomhaí Scáileáin",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "Seoltóir",
"sourceStale": "As dáta ó {since}",
"sourceOffline": "As líne",
"sourceCollapse": "Comhbhrúigh",
@@ -14098,7 +14120,7 @@
"trialDays": "{days, plural, one {# lá} other {# laethanta}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
+ "title": "Faisnéis Radair",
"subtitle": "Ranganna ELO Radar agus gluaiseacht catalóige fíorasach.",
"backToRadar": "Ar ais go Radar",
"loading": "Ag lódáil Intel...",
diff --git a/src/i18n/messages/gu.json b/src/i18n/messages/gu.json
index 60c163447d..92fc0f0ede 100644
--- a/src/i18n/messages/gu.json
+++ b/src/i18n/messages/gu.json
@@ -1,15 +1,15 @@
{
"common": {
- "save": "Save",
- "cancel": "Cancel",
- "delete": "Delete",
- "loading": "Loading...",
+ "save": "સાચવો",
+ "cancel": "રદ કરો",
+ "delete": "કાઢી નાખો",
+ "loading": "લોડ થઈ રહ્યું છે...",
"selectOption": "વિકલ્પ પસંદ કરો",
- "error": "An error occurred",
- "success": "Success",
- "confirm": "Are you sure?",
- "refresh": "Refresh",
- "close": "Close",
+ "error": "એક ભૂલ આવી",
+ "success": "સફળતા",
+ "confirm": "શું તમને ખાતરી છે?",
+ "refresh": "તાજું કરો",
+ "close": "બંધ કરો",
"previousPage": "અગાઉનું પૃષ્ઠ",
"nextPage": "આગલું પૃષ્ઠ",
"capsLockOn": "Caps Lock ચાલુ છે",
@@ -17,142 +17,142 @@
"toggleColumns": "કૉલમ ટૉગલ કરો",
"confirmTitle": "પુષ્ટિ કરો",
"confirmAction": "પુષ્ટિ કરો",
- "add": "Add",
- "edit": "Edit",
- "search": "Search",
- "back": "Back",
- "next": "Next",
- "submit": "Submit",
- "reset": "Reset",
- "copy": "Copy",
- "copied": "Copied!",
- "enabled": "Enabled",
- "disabled": "Disabled",
- "active": "Active",
- "inactive": "Inactive",
- "noData": "No data available",
- "nothingHere": "Nothing here yet",
- "configure": "Configure",
+ "add": "ઉમેરો",
+ "edit": "ફેરફાર કરો",
+ "search": "શોધો",
+ "back": "પાછળ",
+ "next": "આગળ",
+ "submit": "સબમિટ કરો",
+ "reset": "રીસેટ કરો",
+ "copy": "કૉપિ કરો",
+ "copied": "કૉપિ થઈ ગયું!",
+ "enabled": "સક્ષમ",
+ "disabled": "અક્ષમ",
+ "active": "સક્રિય",
+ "inactive": "નિષ્ક્રિય",
+ "noData": "કોઈ ડેટા ઉપલબ્ધ નથી",
+ "nothingHere": "હજુ સુધી અહીં કંઈ નથી",
+ "configure": "ગોઠવો",
"manualConfig": "મેન્યુઅલ કન્ફિગ",
- "manage": "Manage",
- "name": "Name",
- "actions": "Actions",
- "status": "Status",
- "type": "Type",
+ "manage": "વ્યવસ્થાપિત કરો",
+ "name": "નામ",
+ "actions": "ક્રિયાઓ",
+ "status": "સ્થિતિ",
+ "type": "પ્રકાર",
"model": "Model",
- "models": "models",
- "provider": "Provider",
+ "models": "મોડેલો",
+ "provider": "પ્રદાતા",
"unknownProvider": "અજ્ઞાત પ્રદાતા",
- "account": "Account",
- "time": "Time",
- "details": "Details",
- "created": "Created",
- "lastUsed": "Last Refreshed",
- "loadMore": "Load More",
- "noResults": "No results found",
- "reloadPage": "Reload Page",
- "connected": "Connected",
- "disconnected": "Disconnected",
- "notConfigured": "Not configured",
- "testConnection": "Test Connection",
- "enable": "Enable",
- "disable": "Disable",
- "columns": "Columns",
- "newest": "Newest",
- "oldest": "Oldest",
- "all": "All",
- "none": "None",
- "yes": "Yes",
- "no": "No",
+ "account": "ખાતું",
+ "time": "સમય",
+ "details": "વિગતો",
+ "created": "બનાવ્યું",
+ "lastUsed": "છેલ્લે તાજું કર્યું",
+ "loadMore": "વધુ લોડ કરો",
+ "noResults": "કોઈ પરિણામ મળ્યાં નથી",
+ "reloadPage": "પેજ ફરીથી લોડ કરો",
+ "connected": "કનેક્ટ થયેલ",
+ "disconnected": "ડિસ્કનેક્ટ થયેલ",
+ "notConfigured": "રૂપરેખાંકિત નથી",
+ "testConnection": "કનેક્શન તપાસો",
+ "enable": "સક્ષમ કરો",
+ "disable": "અક્ષમ કરો",
+ "columns": "કૉલમ્સ",
+ "newest": "સૌથી નવું",
+ "oldest": "સૌથી જૂનું",
+ "all": "બધા",
+ "none": "કોઈ નહીં",
+ "yes": "હા",
+ "no": "ના",
"on": "ચાલુ",
"off": "બંધ",
- "warning": "Warning",
- "note": "Note",
- "free": "Free",
- "skipToContent": "Skip to content",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
- "accept": "Accept",
- "accountId": "Account ID",
+ "warning": "ચેતવણી",
+ "note": "નોંધ",
+ "free": "મફત",
+ "skipToContent": "સામગ્રી પર જાઓ",
+ "maintenanceServerIssues": "સર્વરમાં સમસ્યાઓ આવી રહી છે. કેટલીક સુવિધાઓ અનુપલબ્ધ હોઈ શકે છે.",
+ "maintenanceServerUnreachable": "સર્વર સુધી પહોંચી શકાતું નથી. ફરીથી કનેક્ટ થઈ રહ્યું છે...",
+ "accept": "સ્વીકારો",
+ "accountId": "એકાઉન્ટ ID",
"alias": "Alias",
- "apiKeyId": "API Key ID",
- "apiKeyName": "API Key Name",
- "apiKeySecret": "API Key Secret",
- "authorization": "Authorization",
- "content-type": "Content Type",
- "content-length": "Content Length",
+ "apiKeyId": "API કી ID",
+ "apiKeyName": "API કીનું નામ",
+ "apiKeySecret": "API કી સિક્રેટ",
+ "authorization": "અધિકૃતતા",
+ "content-type": "સામગ્રીનો પ્રકાર",
+ "content-length": "સામગ્રીની લંબાઈ",
"cookie": "Cookie",
- "file": "File",
- "host": "Host",
+ "file": "ફાઇલ",
+ "host": "હોસ્ટ",
"id": "ID",
- "import": "Import",
+ "import": "આયાત કરો",
"limit": "Limit",
"offset": "Offset",
- "open": "Open",
- "origin": "Origin",
- "promptTokens": "Prompt Tokens",
- "completionTokens": "Completion Tokens",
- "totalTokens": "Total Tokens",
- "rawModel": "Raw Model",
- "scope": "Scope",
- "skill": "Skill",
- "sortBy": "Sort By",
- "sortOrder": "Sort Order",
- "tab": "Tab",
+ "open": "ખોલો",
+ "origin": "મૂળ",
+ "promptTokens": "પ્રોમ્પ્ટ ટોકન્સ",
+ "completionTokens": "પૂર્ણતા ટોકન્સ",
+ "totalTokens": "કુલ ટોકન્સ",
+ "rawModel": "મૂળ મોડેલ",
+ "scope": "કાર્યક્ષેત્ર",
+ "skill": "કૌશલ્ય",
+ "sortBy": "આના દ્વારા ગોઠવો",
+ "sortOrder": "ગોઠવણી ક્રમ",
+ "tab": "ટૅબ",
"text": "Text",
- "textarea": "Textarea",
- "tool": "Tool",
- "toolId": "Tool ID",
+ "textarea": "ટેક્સ્ટ વિસ્તાર",
+ "tool": "ટૂલ",
+ "toolId": "ટૂલ ID",
"web": "Web",
- "whereUsed": "Where Used",
- "whitelist": "Whitelist",
- "blacklist": "Blacklist",
- "resolve": "Resolve",
- "force": "Force",
+ "whereUsed": "જ્યાં ઉપયોગ થયો",
+ "whitelist": "શ્વેતસૂચિ",
+ "blacklist": "કાળીસૂચિ",
+ "resolve": "ઉકેલો",
+ "force": "ફરજિયાત કરો",
"base64url": "Base64 URL",
"hex": "Hex",
- "range": "Range",
- "component": "Component",
- "redirect_uri": "Redirect URI",
- "idempotency-key": "Idempotency Key",
- "error_description": "Error Description",
- "code": "Code",
- "compatible": "Compatible",
- "chat-completions": "Chat Completions",
+ "range": "શ્રેણી",
+ "component": "ઘટક",
+ "redirect_uri": "રીડાયરેક્ટ URI",
+ "idempotency-key": "આઇડેમ્પોટેન્સી કી",
+ "error_description": "ભૂલનું વર્ણન",
+ "code": "કોડ",
+ "compatible": "સુસંગત",
+ "chat-completions": "ચૅટ પૂર્ણતાઓ",
"oauth": "OAuth",
- "auth_token": "Auth Token",
- "crypto": "Crypto",
- "hours": "Hours",
+ "auth_token": "ઑથ ટોકન",
+ "crypto": "ક્રિપ્ટો",
+ "hours": "કલાકો",
"selfsigned": "Self-signed",
- "proxy_id": "Proxy ID",
- "proxyId": "Proxy ID",
- "connectionId": "Connection ID",
- "resolveConnectionId": "Resolve Connection ID",
- "resolve_connection_id": "Resolve Connection ID",
- "scope_id": "Scope ID",
- "scopeId": "Scope ID",
- "jwtSecret": "JWT Secret",
+ "proxy_id": "પ્રૉક્સી ID",
+ "proxyId": "પ્રૉક્સી ID",
+ "connectionId": "કનેક્શન ID",
+ "resolveConnectionId": "કનેક્શન ID ઉકેલો",
+ "resolve_connection_id": "કનેક્શન ID ઉકેલો",
+ "scope_id": "સ્કોપ ID",
+ "scopeId": "સ્કોપ ID",
+ "jwtSecret": "JWT સિક્રેટ",
"keytar": "Keytar",
"better-sqlite3": "better-sqlite3",
"undici": "undici",
"builder-id": "Builder ID",
- "musicDesc": "Music Description",
- "musicGeneration": "Music Generation",
+ "musicDesc": "સંગીતનું વર્ણન",
+ "musicGeneration": "સંગીત નિર્માણ",
"idc": "IDC",
- "cloud-status-changed": "Cloud status changed",
- "where_used": "Where Used",
- "windowMs": "Window (ms)",
+ "cloud-status-changed": "ક્લાઉડની સ્થિતિ બદલાઈ",
+ "where_used": "જ્યાં ઉપયોગ થયો",
+ "windowMs": "વિન્ડો (ms)",
"social-github": "GitHub",
"social-google": "Google",
- "TOOL_ALLOWLIST": "Tool Allowlist",
- "TOOL_DENYLIST": "Tool Denylist",
- "Failed to save pricing": "Failed to save pricing",
- "Failed to reset pricing": "Failed to reset pricing",
- "apikey": "API Key",
+ "TOOL_ALLOWLIST": "ટૂલ મંજૂરસૂચિ",
+ "TOOL_DENYLIST": "ટૂલ પ્રતિબંધસૂચિ",
+ "Failed to save pricing": "કિંમત સાચવવામાં નિષ્ફળતા",
+ "Failed to reset pricing": "કિંમત રીસેટ કરવામાં નિષ્ફળતા",
+ "apikey": "API કી",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "ડૅશબોર્ડ પર જાઓ",
+ "checkSystemStatus": "સિસ્ટમની સ્થિતિ તપાસો",
+ "selectModel": "મોડેલ પસંદ કરો",
"addModel": "મોડેલ ઉમેરો",
"effortNone": "કોઈ નહીં",
"effortLow": "ઓછું",
@@ -164,10 +164,10 @@
"reasoningEffort": "તાર્કિક પ્રયાસ",
"wireApi": "વાયર API",
"modelAliases": "મોડેલ ઉપનામો",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "કોમ્બોઝ",
+ "noModelsFound": "કોઈ મોડેલ મળ્યાં નથી",
+ "clear": "સાફ કરો",
+ "done": "પૂર્ણ",
"selectAll": "બધા પસંદ કરો",
"unselectAll": "પસંદગી રદ કરો",
"visibleModels": "દૃશ્યમાન",
@@ -184,527 +184,527 @@
"selectAllProviders": "બધા પ્રદાતાઓની તપાસ કરો",
"clearProviderSelection": "પ્રદાતાઓને અનચેક કરો",
"providersSelectedCount": "{count} પ્રદાતાઓ તપાસવામાં આવ્યા",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "ભૂલ થઈ",
+ "comboDeleted": "કોમ્બો કાઢી નાખ્યો",
+ "hide": "છુપાવો",
+ "creating": "બનાવી રહ્યું છે",
+ "comboCreated": "કોમ્બો બનાવ્યો",
+ "swapFormats": "ફોર્મેટ બદલો",
+ "daysAgo": "દિવસ પહેલાં",
+ "retries": "ફરી પ્રયાસોની સંખ્યા",
+ "errorDuringRestore": "પુનઃસ્થાપન દરમિયાન ભૂલ",
+ "eventsAppearHint": "ઇવેન્ટ્સ દેખાવા અંગેનો સંકેત",
+ "noLockouts": "કોઈ લૉકઆઉટ નથી",
+ "webSearchDesc": "વેબ શોધનું વર્ણન",
+ "audioProvidersHeading": "ઑડિયો પ્રદાતાઓનું મથાળું",
"cloudAgentProviders": "ક્લાઉડ એજન્ટ પ્રદાતાઓ",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "મિનિટ પહેલાં",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "લાઇવ સ્વચાલિત રિફ્રેશ થઈ રહ્યું છે",
+ "webSearch": "વેબ શોધ",
+ "anthropicPrefixPlaceholder": "Anthropic પ્રીફિક્સ પ્લેસહોલ્ડર",
+ "addModelToCombo": "કોમ્બોમાં મોડેલ ઉમેરો",
+ "failedToLoad": "લોડ કરવામાં નિષ્ફળ",
+ "categoryMedia": "શ્રેણી: મીડિયા",
+ "enableCloud": "ક્લાઉડ સક્ષમ કરો",
+ "expirationBannerExpiringSoon": "સમાપ્તિ બૅનર: ટૂંક સમયમાં સમાપ્ત થઈ રહ્યું છે",
+ "retry": "ફરી પ્રયાસ કરો",
+ "embeddings": "એમ્બેડિંગ્સ",
+ "errorCount": "ભૂલોની સંખ્યા",
+ "backupReasonManual": "બૅકઅપનું કારણ: મેન્યુઅલ",
+ "safeSearchModerate": "સલામત શોધ: મધ્યમ",
+ "activeLimiters": "સક્રિય મર્યાદકો",
+ "a2aCardTitle": "A2A કાર્ડનું શીર્ષક",
+ "cloudWorkerUnreachable": "ક્લાઉડ વર્કર સુધી પહોંચી શકાતું નથી",
+ "testFailed": "પરીક્ષણ નિષ્ફળ ગયું",
+ "compatibleBaseUrlHint": "સુસંગત બેઝ URL અંગેનો સંકેત",
+ "usageTracking": "વપરાશ ટ્રૅકિંગ",
+ "disableCloudTitle": "ક્લાઉડ અક્ષમ કરો શીર્ષક",
+ "noConnections": "કોઈ કનેક્શન નથી",
+ "providerHealth": "પ્રદાતાની સ્થિતિ",
+ "confirmDbImport": "DB આયાતની પુષ્ટિ કરો",
+ "notAvailableSymbol": "ઉપલબ્ધ નથી ચિહ્ન",
+ "backupsAvailable": "બૅકઅપ ઉપલબ્ધ છે",
+ "providerAuto": "પ્રદાતા ઑટો",
+ "newProviderNamePlaceholder": "નવા પ્રદાતાના નામનું પ્લેસહોલ્ડર",
+ "a2aQuickStartStep2": "A2A ઝડપી શરૂઆતનું પગલું 2",
+ "ok": "ઠીક છે",
+ "available": "ઉપલબ્ધ",
+ "noBackupYet": "હજુ સુધી કોઈ બૅકઅપ નથી",
+ "more": "વધુ",
+ "noCompatibleYet": "હજુ સુધી કોઈ સુસંગત નથી",
+ "multiProvider": "બહુવિધ પ્રદાતા",
+ "repairEnvHint": "એન્વાયર્નમેન્ટ રિપેર માટેની સૂચના",
+ "disablingCloud": "ક્લાઉડ અક્ષમ કરી રહ્યાં છીએ",
+ "testBench": "ટેસ્ટ બેન્ચ",
+ "valid": "માન્ય",
+ "cloudBenefitShare": "ક્લાઉડ લાભ શેર કરો",
+ "mcpCardTitle": "MCP કાર્ડનું શીર્ષક",
+ "disableConfirm": "અક્ષમ કરવાની પુષ્ટિ કરો",
+ "filters": "ફિલ્ટર્સ",
+ "expirationBannerExpiredDesc": "સમાપ્તિ બૅનર—સમાપ્ત થયાનું વર્ણન",
+ "saveComboDefaults": "કૉમ્બોના ડિફૉલ્ટ્સ સાચવો",
+ "cloudConnectedVerified": "ક્લાઉડ કનેક્શન ચકાસાયેલ છે",
+ "uptime": "અપટાઇમ",
+ "compatibleProdPlaceholder": "સુસંગત પ્રોડક્ટનું પ્લેસહોલ્ડર",
+ "fallbackChainsTitle": "ફૉલબૅક ચેઇન્સનું શીર્ષક",
+ "oauthLabel": "OAuth લેબલ",
+ "a2aCardDescription": "A2A કાર્ડનું વર્ણન",
+ "okShort": "ઠીક",
+ "maintenance": "જાળવણી",
+ "formatConverter": "ફૉર્મેટ કન્વર્ટર",
+ "zedImportNetworkError": "Zed આયાત નેટવર્ક ભૂલ",
+ "apiKeyLabel": "API કી લેબલ",
+ "noModelsForProvider": "પ્રદાતા માટે કોઈ મૉડલ નથી",
+ "mcpCardDescription": "MCP કાર્ડનું વર્ણન",
+ "apiTypeLabel": "API પ્રકારનું લેબલ",
+ "configuredProvidersLabel": "કૉન્ફિગર કરેલા પ્રદાતાઓનું લેબલ",
+ "maxRetriesLabel": "મહત્તમ પુનઃપ્રયાસોનું લેબલ",
+ "title": "શીર્ષક",
+ "output": "આઉટપુટ",
+ "prefixHint": "પ્રીફિક્સ સંકેત",
+ "skipWizard": "વિઝાર્ડ છોડો",
+ "failedCount": "નિષ્ફળ સંખ્યા",
+ "confirmDbImportDesc": "ડેટાબેઝ આયાત પુષ્ટિનું વર્ણન",
+ "entries": "એન્ટ્રીઓ",
+ "until": "સુધી",
+ "disableCombo": "કોમ્બો અક્ષમ કરો",
+ "liveMonitorDescriptionPrefix": "લાઇવ મોનિટર વર્ણન પ્રીફિક્સ",
+ "runningCount": "ચાલુ સંખ્યા",
+ "noActiveConnectionsInGroup": "જૂથમાં કોઈ સક્રિય કનેક્શન નથી",
+ "savedSuccessfully": "સફળતાપૂર્વક સાચવ્યું",
+ "systemStorage": "સિસ્ટમ સ્ટોરેજ",
+ "videoDesc": "વિડિયો વર્ણન",
+ "maxResults": "મહત્તમ પરિણામો",
+ "timeRangeMonth": "સમયગાળો: મહિનો",
+ "testSummary": "પરીક્ષણ સારાંશ",
+ "failedSetPassword": "પાસવર્ડ સેટ કરવામાં નિષ્ફળ",
+ "audio": "ઑડિયો",
+ "restore": "પુનઃસ્થાપિત કરો",
+ "disableWarning": "ચેતવણી અક્ષમ કરો",
+ "moderationsDesc": "મોડરેશનનું વર્ણન",
+ "providerHealthStatusAria": "પ્રદાતાની કાર્યક્ષમતા સ્થિતિ માટેનું Aria",
+ "modelNamePlaceholder": "મોડલ નામનું પ્લેસહોલ્ડર",
+ "mcpQuickStartStep2": "Mcp ઝડપી શરૂઆત પગલું 2",
+ "quickStart": "ઝડપી શરૂઆત",
+ "fullExportFailedWithError": "ભૂલ સાથે સંપૂર્ણ નિકાસ નિષ્ફળ થઈ",
+ "loadingBackups": "બૅકઅપ લોડ થઈ રહ્યાં છે",
+ "anthropicBaseUrlPlaceholder": "Anthropic બેઝ Url પ્લેસહોલ્ડર",
+ "description": "વર્ણન",
+ "noProviderFound": "કોઈ પ્રદાતા મળ્યો નથી",
+ "auto": "સ્વચાલિત",
+ "protocolsDescription": "પ્રોટોકોલ્સનું વર્ણન",
+ "cloudSessionNote": "ક્લાઉડ સત્ર નોંધ",
+ "advancedSettings": "અદ્યતન સેટિંગ્સ",
+ "defaultStrategy": "ડિફૉલ્ટ વ્યૂહરચના",
+ "purgeExpiredLogs": "સમયસમાપ્ત લૉગ્સ સાફ કરો",
+ "justNow": "હમણાં જ",
+ "providerTestFailed": "પ્રદાતા પરીક્ષણ નિષ્ફળ થયું",
+ "openaiBaseUrlPlaceholder": "OpenAI બેઝ URL પ્લેસહોલ્ડર",
+ "image": "છબી",
+ "failedCreateChain": "ચેઇન બનાવવામાં નિષ્ફળ",
+ "importDatabase": "ડેટાબેઝ આયાત કરો",
+ "allDataLocal": "તમામ ડેટા સ્થાનિક",
+ "sectionTitle": "વિભાગનું શીર્ષક",
+ "failedToggle": "ટૉગલ કરવામાં નિષ્ફળ",
+ "editCombo": "કોમ્બો સંપાદિત કરો",
+ "testResults": "પરીક્ષણ પરિણામો",
+ "searchQuery": "શોધ ક્વેરી",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "ડુપ્લિકેટ",
+ "createCombo": "કોમ્બો બનાવો",
+ "searchTypeWeb": "શોધ પ્રકાર: વેબ",
+ "addChain": "ચેઇન ઉમેરો",
+ "prefixLabel": "ઉપસર્ગ લેબલ",
+ "listModelsDesc": "મોડેલોની સૂચિનું વર્ણન",
+ "databaseSize": "ડેટાબેઝનું કદ",
+ "chainCreated": "ચેઇન બનાવવામાં આવી",
+ "providerTestTimeout": "પ્રદાતા પરીક્ષણ સમયસમાપ્તિ",
+ "routingStrategy": "રૂટિંગ વ્યૂહરચના",
+ "translateAction": "અનુવાદ ક્રિયા",
+ "exportFailed": "નિકાસ નિષ્ફળ",
+ "connectedVerificationPending": "કનેક્ટ થયું, ચકાસણી બાકી છે",
+ "a2aQuickStartTitle": "A2A ઝડપી શરૂઆતનું શીર્ષક",
+ "couldNotTest": "પરીક્ષણ કરી શકાયું નહીં",
+ "testAllCompatible": "બધા સુસંગતનું પરીક્ષણ કરો",
+ "anthropicCompatibleName": "Anthropic સુસંગત નામ",
+ "disabling": "અક્ષમ કરી રહ્યું છે",
+ "failedEnable": "સક્ષમ કરવામાં નિષ્ફળ",
+ "categoryUtility": "ઉપયોગિતા શ્રેણી",
+ "customUrlOptional": "કસ્ટમ URL વૈકલ્પિક",
+ "localProviders": "સ્થાનિક પ્રદાતાઓ",
+ "comboNamePlaceholder": "કોમ્બો નામ પ્લેસહોલ્ડર",
+ "memoryRss": "મેમરી RSS",
+ "disableProvider": "પ્રદાતાને અક્ષમ કરો",
+ "welcomeDesc": "સ્વાગત વર્ણન",
+ "nameLabel": "નામનું લેબલ",
+ "allOperational": "બધું કાર્યરત છે",
+ "backupNow": "હમણાં બૅકઅપ લો",
+ "providerMaxRetriesAria": "પ્રદાતાના મહત્તમ પુનઃપ્રયાસો માટે ARIA",
+ "textToSpeechDesc": "ટેક્સ્ટ ટુ સ્પીચનું વર્ણન",
+ "machineId": "મશીન ID",
+ "globalProxy": "વૈશ્વિક પ્રોક્સી",
+ "hitsMisses": "હિટ્સ અને મિસિસ",
+ "testDesc": "પરીક્ષણનું વર્ણન",
+ "chatDesc": "ચેટનું વર્ણન",
+ "importSuccess": "આયાત સફળ થઈ",
+ "chat": "ચેટ",
+ "a2aQuickStartStep1": "A2A ઝડપી શરૂઆતનું પગલું 1",
+ "importFailed": "આયાત નિષ્ફળ થઈ",
+ "inputPlaceholder": "ઇનપુટ પ્લેસહોલ્ડર",
+ "providerModelsTitle": "પ્રદાતા મોડલ્સનું શીર્ષક",
+ "lastBackup": "છેલ્લું બેકઅપ",
+ "yourEndpoint": "તમારું એન્ડપોઇન્ટ",
+ "autoDisableThresholdDesc": "આપમેળે અક્ષમ કરવાની મર્યાદાનું વર્ણન",
+ "rerankDesc": "પુનઃક્રમનિર્ધારણનું વર્ણન",
+ "modelsPathPlaceholder": "મોડલ્સ પાથ પ્લેસહોલ્ડર",
+ "noCombosYet": "હજુ સુધી કોઈ કોમ્બો નથી",
+ "connectedVerificationPendingWithError": "કનેક્ટ થયેલ છે, ચકાસણી ભૂલ સાથે બાકી છે",
+ "comboDefaultsGuideHint1": "કોમ્બોની ડિફૉલ્ટ માર્ગદર્શિકાનો સંકેત 1",
+ "enableCloudTitle": "ક્લાઉડ સક્ષમ કરો",
+ "configuredProvidersHint": "ગોઠવેલા પ્રદાતાઓ માટેનો સંકેત",
+ "paused": "વિરામ આપેલ",
+ "llmProviders": "LLM પ્રદાતાઓ",
+ "enableCombo": "કોમ્બો સક્ષમ કરો",
+ "removeProviderOverrideAria": "પ્રદાતા ઓવરરાઇડ દૂર કરવા માટેનું Aria",
+ "nodeVersion": "Node સંસ્કરણ",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "ભૂલને કારણે નિકાસ નિષ્ફળ થઈ",
+ "proxyConfigured": "પ્રોક્સી ગોઠવેલ છે",
+ "concurrencyPerModel": "પ્રતિ મોડલ સમકાલીનતા",
+ "protocolTasksLabel": "પ્રોટોકોલ કાર્યોનું લેબલ",
+ "oauthProviders": "OAuth પ્રદાતાઓ",
+ "lockedCount": "લૉક કરેલની સંખ્યા",
+ "deleteChainConfirm": "ચેઇન કાઢી નાખવાની પુષ્ટિ કરો",
+ "recentTranslations": "તાજેતરના અનુવાદો",
+ "zedImportButton": "Zed આયાત બટન",
+ "responsesDesc": "પ્રતિસાદોનું વર્ણન",
+ "testedCount": "પરીક્ષણ કરેલની સંખ્યા",
+ "providersCommaSeparatedPlaceholder": "અલ્પવિરામથી અલગ કરેલા પ્રદાતાઓ માટેનો પ્લેસહોલ્ડર",
+ "signatureDefaults": "સહીની ડિફૉલ્ટ સેટિંગ્સ",
+ "errorCreating": "બનાવવામાં ભૂલ",
+ "timeRangeYear": "સમયગાળો: વર્ષ",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
- "testBenchTab": "Test Bench",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "cloudDisabledSuccess": "ક્લાઉડ સફળતાપૂર્વક અક્ષમ થયું",
+ "deleteConfirm": "કાઢી નાખવાની પુષ્ટિ કરો",
+ "check": "તપાસો",
+ "safeSearch": "સુરક્ષિત શોધ",
+ "protocolLastActivity": "પ્રોટોકોલની છેલ્લી પ્રવૃત્તિ",
+ "openMcpDashboard": "Mcp ડૅશબોર્ડ ખોલો",
+ "testBenchTab": "ટેસ્ટ બેન્ચ",
+ "chatPathLabel": "ચૅટ પાથનું લેબલ",
+ "retryDelay": "ફરી પ્રયાસ કરવાનો વિલંબ",
+ "errorUpdating": "અપડેટ કરવામાં ભૂલ",
+ "ideCliIntegrations": "IDE CLI એકીકરણો",
+ "imageGeneration": "છબી નિર્માણ",
+ "apiKeyRequired": "API કી જરૂરી છે",
+ "resetAllTitle": "બધું રીસેટ કરો",
+ "connectionError": "કનેક્શન ભૂલ",
+ "modelName": "મોડેલનું નામ",
+ "apiKeyForCheck": "તપાસ માટેની API કી",
+ "cloudRequestTimeout": "ક્લાઉડ વિનંતીનો સમય સમાપ્ત થયો",
+ "showConfiguredOnly": "ફક્ત કૉન્ફિગર કરેલ બતાવો",
"showFreeOnly": "માત્ર મફત",
"addFirstProvider": "તમારા પ્રથમ પ્રદાતા ઉમેરો",
"addFirstProviderDesc": "OmniRoute દ્વારા રૂટીંગ વિનંતીઓ શરૂ કરવા માટે AI પ્રદાતાને કનેક્ટ કરો. તમે મફત પ્રદાતાઓ, API કી અથવા OAuth એકાઉન્ટ્સનો ઉપયોગ કરી શકો છો.",
"learnMore": "વધુ જાણો",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "ડોમેન સામેલ કરો",
+ "promptCache": "પ્રોમ્પ્ટ કૅશ",
+ "cloudConnected": "ક્લાઉડ કનેક્ટ થયું",
+ "deleteChain": "ચેઇન કાઢી નાખો",
+ "chatPathPlaceholder": "ચૅટ પાથનું પ્લેસહોલ્ડર",
+ "databasePath": "ડેટાબેઝ પાથ",
+ "usingLocalServer": "સ્થાનિક સર્વરનો ઉપયોગ થઈ રહ્યો છે",
+ "globalComboConfig": "વૈશ્વિક કૉમ્બો કૉન્ફિગરેશન",
+ "backupFailed": "બૅકઅપ નિષ્ફળ થયું",
+ "tabProtocols": "પ્રોટોકોલ ટૅબ",
+ "continue": "ચાલુ રાખો",
+ "categorySearch": "કૅટેગરી શોધ",
+ "rateLimitStatus": "દર મર્યાદાની સ્થિતિ",
+ "repairEnvSuccess": "પર્યાવરણ સફળતાપૂર્વક સુધારાયું",
+ "nameRequired": "નામ જરૂરી છે",
+ "country": "દેશ",
+ "trackMetricsDesc": "મેટ્રિક્સ ટ્રૅક કરવાનું વર્ણન",
+ "durationSecondsShort": "અવધિ (સેકન્ડમાં, ટૂંકી)",
+ "formatConverterDescription": "ફોર્મેટ કન્વર્ટરનું વર્ણન",
+ "cloudBenefitAccess": "ક્લાઉડ લાભ ઍક્સેસ",
+ "maxRetries": "મહત્તમ પુનઃપ્રયાસો",
+ "queueTimeout": "કતાર સમયસમાપ્તિ",
"queueDepth": "કતારની ઊંડાઈ",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "પ્રદાતા ઉમેરો",
+ "realtime": "રીઅલટાઇમ",
+ "totalTranslations": "કુલ અનુવાદો",
+ "protocolActiveStreamsLabel": "પ્રોટોકોલ સક્રિય સ્ટ્રીમ્સ લેબલ",
+ "repairEnv": "Env સુધારો",
+ "modelsCount": "મોડેલોની સંખ્યા",
+ "viewBackups": "બૅકઅપ્સ જુઓ",
+ "responsesApi": "Responses API",
+ "copyComboName": "કોમ્બો નામ કૉપિ કરો",
+ "failures": "નિષ્ફળતાઓ",
+ "failedUpdate": "અપડેટ નિષ્ફળ થયું",
+ "imageDesc": "છબીનું વર્ણન",
+ "failedCreate": "બનાવવાનું નિષ્ફળ થયું",
+ "remainingOfLimit": "મર્યાદામાંથી બાકી",
+ "protocolsTitle": "પ્રોટોકોલ્સનું શીર્ષક",
+ "expirationBannerExpiringSoonDesc": "સમાપ્તિ બૅનર ટૂંક સમયમાં સમાપ્ત થશે તેનું વર્ણન",
+ "source": "સ્રોત",
+ "failed": "નિષ્ફળ",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "Mcp ઝડપી શરૂઆત પગલું 1",
+ "runTest": "પરીક્ષણ ચલાવો",
+ "loadingFallbackChains": "ફૉલબૅક ચેઇન્સ લોડ થઈ રહી છે",
+ "healthy": "સ્વસ્થ",
+ "version": "આવૃત્તિ",
+ "saveBlockWeighted": "વેઇટેડ બ્લૉક સાચવો",
+ "zedImportNone": "Zed આયાત કોઈ નહીં",
+ "noBackupsYet": "હજુ સુધી કોઈ બૅકઅપ નથી",
+ "noGlobalProxy": "કોઈ ગ્લોબલ પ્રૉક્સી નથી",
+ "noModels": "કોઈ મોડેલ નથી",
+ "stickyLimit": "સ્ટિકી મર્યાદા",
+ "passedCount": "પાસ થયેલાની સંખ્યા",
+ "zedImportFailed": "Zed આયાત નિષ્ફળ થઈ",
+ "saving": "સાચવી રહ્યું છે",
+ "testAll": "બધાનું પરીક્ષણ કરો",
+ "globalProxyDesc": "ગ્લોબલ પ્રૉક્સીનું વર્ણન",
+ "latencyP99": "લેટન્સી P99",
+ "connectingToCloud": "ક્લાઉડ સાથે કનેક્ટ થઈ રહ્યું છે",
+ "responses": "પ્રતિસાદો",
+ "errorDeleting": "કાઢી નાખવામાં ભૂલ",
+ "openaiPrefixPlaceholder": "Openai ઉપસર્ગ પ્લેસહોલ્ડર",
+ "enterPassword": "પાસવર્ડ દાખલ કરો",
+ "openA2aDashboard": "A2A ડેશબોર્ડ ખોલો",
+ "enableProvider": "પ્રદાતા સક્ષમ કરો",
+ "modeTest": "પરીક્ષણ મોડ",
+ "failedDeleteChain": "શૃંખલા કાઢી નાખવામાં નિષ્ફળતા",
+ "providerDesc": "પ્રદાતાનું વર્ણન",
+ "templateLoadHint": "ટેમ્પલેટ લોડ કરવાનો સંકેત",
+ "lastFailure": "છેલ્લી નિષ્ફળતા",
+ "moveDown": "નીચે ખસેડો",
+ "providerLabel": "પ્રદાતાનું લેબલ",
+ "clearCacheFailed": "કૅશ સાફ કરવામાં નિષ્ફળતા",
+ "imagesGenerations": "છબી નિર્માણ",
+ "repairEnvWorking": "પર્યાવરણનું સમારકામ ચાલુ છે",
+ "millisecondsShort": "મિલિસેકન્ડ",
+ "globalLabel": "વૈશ્વિક લેબલ",
+ "failuresPlural": "નિષ્ફળતાઓ",
+ "completionsLegacyDesc": "જૂના કમ્પ્લીશન્સનું વર્ણન",
+ "searchProviders": "પ્રદાતાઓ શોધો",
+ "chatPathHint": "ચૅટ પાથ માટેનો સંકેત",
+ "defaultStrategyDesc": "ડિફૉલ્ટ વ્યૂહરચનાનું વર્ણન",
+ "latencyP95": "લેટન્સી P95",
+ "textToSpeech": "ટેક્સ્ટથી વાણી",
+ "searchType": "શોધનો પ્રકાર",
+ "messages": "સંદેશાઓ",
+ "aggregatorsGateways": "એગ્રીગેટર્સ અને ગેટવેઝ",
+ "comboStrategyAria": "Aria સંયુક્ત વ્યૂહરચના",
+ "input": "ઇનપુટ",
+ "testingConnection": "કનેક્શનનું પરીક્ષણ થઈ રહ્યું છે",
+ "excludeDomains": "ડોમેન બાકાત રાખો",
+ "webCookieProviders": "વેબ કુકી પ્રદાતાઓ",
+ "allTestsPassed": "બધાં પરીક્ષણો સફળ રહ્યાં",
+ "openaiCompatibleName": "Openai સુસંગત નામ",
+ "warningCostOptimizedPartialPricing": "ચેતવણી: ખર્ચ-ઑપ્ટિમાઇઝ્ડ આંશિક કિંમતનિર્ધારણ",
+ "comboDefaultsGuideTitle": "સંયુક્ત ડિફૉલ્ટ્સ માર્ગદર્શિકાનું શીર્ષક",
+ "hoursAgo": "કલાક પહેલાં",
+ "notAvailable": "ઉપલબ્ધ નથી",
+ "skipAndContinue": "છોડી દો અને ચાલુ રાખો",
+ "moderations": "મોડરેશન્સ",
+ "proxyConfig": "પ્રોક્સી રૂપરેખાંકન",
+ "upstreamProxyProviders": "અપસ્ટ્રીમ પ્રોક્સી પ્રદાતાઓ",
+ "exportAll": "બધું નિકાસ કરો",
+ "queuedCount": "કતારમાં રહેલી સંખ્યા",
+ "resetAll": "બધું રીસેટ કરો",
+ "noTranslations": "કોઈ અનુવાદ નથી",
+ "avgLatency": "સરેરાશ વિલંબતા",
+ "throttleStatus": "થ્રોટલ સ્થિતિ",
+ "backupRetentionDesc": "બેકઅપ જાળવણીનું વર્ણન",
+ "noCBData": "કોઈ Cb ડેટા નથી",
+ "chainDeleted": "ચેઇન કાઢી નાખવામાં આવી",
+ "timeLeft": "બાકી સમય",
+ "expirationBannerExpired": "સમાપ્તિ બૅનરની મુદત પૂરી થઈ",
+ "language": "ભાષા",
+ "invalidFileType": "અમાન્ય ફાઇલ પ્રકાર",
+ "monitoredProviders": "નિરીક્ષણ હેઠળના પ્રદાતાઓ",
+ "errors": "ભૂલો",
+ "heap": "હીપ",
+ "chatCompletions": "ચેટ પૂર્ણતાઓ",
+ "exampleTemplatesHint": "ઉદાહરણ ટેમ્પ્લેટ્સ માટેનો સંકેત",
+ "retryDelayLabel": "ફરી પ્રયાસના વિલંબનું લેબલ",
+ "audioTranscription": "ઑડિયો ટ્રાન્સક્રિપ્શન",
+ "fallbackChainsDesc": "ફૉલબૅક ચેઇન્સનું વર્ણન",
+ "exampleTemplates": "ઉદાહરણ ટેમ્પ્લેટ્સ",
+ "connectionsCount": "કનેક્શન્સની સંખ્યા",
+ "modelsPathLabel": "મોડેલ્સ પાથનું લેબલ",
+ "activeProvidersHint": "સક્રિય પ્રદાતાઓ માટેનો સંકેત",
+ "activeLockouts": "સક્રિય લૉકઆઉટ્સ",
+ "invalid": "અમાન્ય",
+ "skipPassword": "પાસવર્ડ છોડો",
+ "moveUp": "ઉપર ખસેડો",
+ "timeRange": "સમયગાળો",
+ "stickyLimitDesc": "સ્ટિકી મર્યાદાનું વર્ણન",
+ "cloudBenefitEdge": "ક્લાઉડ લાભ એજ",
+ "custom": "કસ્ટમ",
+ "verifying": "ચકાસી રહ્યું છે",
+ "baseUrlLabel": "બેઝ URLનું લેબલ",
+ "setPassword": "પાસવર્ડ સેટ કરો",
+ "safeSearchStrict": "સેફ સર્ચ કડક",
+ "noChangesSinceBackup": "બેકઅપ પછી કોઈ ફેરફારો નથી",
+ "modelsPathHint": "મોડેલ્સ પાથ સંકેત",
+ "audioTranscriptions": "ઑડિયો ટ્રાન્સક્રિપ્શન",
+ "testCombo": "કોમ્બોનું પરીક્ષણ કરો",
+ "mcpQuickStartTitle": "Mcp ઝડપી શરૂઆત શીર્ષક",
+ "comboUpdated": "કોમ્બો અપડેટ થયો",
+ "weighted": "ભારાંકિત",
+ "providers": "પ્રદાતાઓ",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
- "chatTesterTab": "Chat Tester",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "noFallbackChainsDesc": "કોઈ ફૉલબૅક ચેઇન નથી તેનું વર્ણન",
+ "yesImport": "હા, આયાત કરો",
+ "lockoutsAutoRefreshHint": "લૉકઆઉટ ઑટો રિફ્રેશ સંકેત",
+ "tabApis": "Apis ટૅબ",
+ "sectionDescription": "વિભાગનું વર્ણન",
+ "filter": "ફિલ્ટર",
+ "purgeLogsFailed": "લૉગ્સ દૂર કરવામાં નિષ્ફળતા",
+ "latency": "વિલંબતા",
+ "testAllOAuth": "બધા O Authનું પરીક્ષણ કરો",
+ "mcpQuickStartStep3": "Mcp ઝડપી શરૂઆત પગલું 3",
+ "repairEnvFailed": "Env સુધારવામાં નિષ્ફળતા",
+ "zedImportHint": "Zed આયાત સંકેત",
+ "modelsAcrossEndpoints": "એન્ડપોઇન્ટ્સ પરનાં મોડેલ્સ",
+ "autoDisableBannedAccounts": "પ્રતિબંધિત એકાઉન્ટ્સને આપમેળે નિષ્ક્રિય કરો",
+ "securityDesc": "સુરક્ષાનું વર્ણન",
+ "listModels": "મોડેલ્સની સૂચિ બનાવો",
+ "backupRestore": "બેકઅપ પુનઃસ્થાપિત કરો",
+ "target": "લક્ષ્ય",
+ "zedImportSuccess": "Zed સફળતાપૂર્વક આયાત થયું",
+ "lastHeaderUpdate": "છેલ્લું હેડર અપડેટ",
+ "categoryCore": "મુખ્ય શ્રેણી",
+ "noFallbackChains": "કોઈ ફૉલબૅક ચેઇન નથી",
+ "noSearchProviders": "કોઈ શોધ પ્રદાતા નથી",
+ "autoBalance": "સ્વચાલિત સંતુલન",
+ "noModelsYet": "હજુ સુધી કોઈ મોડેલ્સ નથી",
+ "signatureFamily": "સિગ્નેચર ફૅમિલી",
+ "externalApiCalls": "બાહ્ય Api કૉલ્સ",
+ "providerOverridesDesc": "પ્રદાતા ઓવરરાઇડ્સનું વર્ણન",
+ "signatureTool": "સિગ્નેચર ટૂલ",
+ "connectionFailed": "કનેક્શન નિષ્ફળ થયું",
+ "activeLimitersPlural": "સક્રિય લિમિટર્સ બહુવચન",
+ "doneDesc": "પૂર્ણ થયું તેનું વર્ણન",
+ "down": "ડાઉન",
+ "noDataYet": "હજુ સુધી કોઈ ડેટા નથી",
+ "activeProviders": "સક્રિય પ્રદાતાઓ",
+ "nameInvalid": "નામ અમાન્ય છે",
+ "skip": "છોડો",
+ "createChain": "ચેઇન બનાવો",
+ "audioSpeech": "ઑડિયો સ્પીચ",
+ "cacheCleared": "કૅશ સાફ થયો",
+ "searchTypeNews": "શોધ પ્રકાર: સમાચાર",
+ "durationMillisecondsShort": "અવધિ (મિલિસેકન્ડમાં, ટૂંકું)",
+ "addOpenAICompatible": "OpenAI-સુસંગત ઉમેરો",
+ "chatTesterTab": "ચેટ પરીક્ષક",
+ "queued": "કતારમાં",
+ "domainPlaceholder": "ડોમેન પ્લેસહોલ્ડર",
+ "durationMinutesShort": "અવધિ (મિનિટમાં, ટૂંકું)",
+ "verifyingConnection": "કનેક્શન ચકાસી રહ્યું છે",
+ "imageProviders": "ઇમેજ પ્રદાતાઓ",
+ "protocolToolsLabel": "પ્રોટોકોલ ટૂલ્સ લેબલ",
+ "queryPlaceholder": "ક્વેરી પ્લેસહોલ્ડર",
+ "videoGeneration": "વિડિયો જનરેશન",
+ "timeRangeWeek": "સમયગાળો: અઠવાડિયું",
+ "limitExhausted": "મર્યાદા સમાપ્ત થઈ ગઈ",
+ "failedDisable": "અક્ષમ કરવું નિષ્ફળ ગયું",
+ "inMemoryNote": "ઇન-મેમરી નોંધ",
+ "compatibleHint": "સુસંગતતા માટેનો સંકેત",
+ "errorShort": "ટૂંકી ભૂલ",
+ "advancedHint": "અદ્યતન સંકેત",
+ "restoreFailed": "પુનઃસ્થાપન નિષ્ફળ ગયું",
+ "searchProvidersHeading": "શોધ પ્રદાતાઓનું શીર્ષક",
+ "comboName": "કોમ્બો નામ",
+ "autoDisableDescription": "આપમેળે અક્ષમ કરવાનું વર્ણન",
+ "embeddingsDesc": "એમ્બેડિંગ્સનું વર્ણન",
+ "operational": "કાર્યરત",
+ "testAllApiKey": "તમામ API કીનું પરીક્ષણ કરો",
+ "backupCreated": "બૅકઅપ બનાવાયો",
+ "errorDuringImport": "આયાત દરમિયાન ભૂલ",
+ "comboDefaultsGuideHint2": "કોમ્બો ડિફૉલ્ટ માર્ગદર્શિકા સંકેત 2",
+ "connecting": "કનેક્ટ થઈ રહ્યું છે",
+ "fillModelAndProviders": "મોડેલ અને પ્રદાતાઓ ભરો",
+ "syncing": "સિંક થઈ રહ્યું છે",
+ "resetConfirm": "રીસેટની પુષ્ટિ",
+ "trackMetrics": "મેટ્રિક્સ ટ્રૅક કરો",
+ "successful": "સફળ",
+ "recovering": "પુનઃપ્રાપ્ત થઈ રહ્યું છે",
+ "autoDisableThreshold": "સ્વચાલિત નિષ્ક્રિયકરણની મર્યાદા",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "ડેટા સમન્વયિત થઈ રહ્યો છે",
+ "cloudBenefitPorts": "ક્લાઉડ બેનિફિટ પોર્ટ્સ",
+ "compatibleProviders": "સુસંગત પ્રદાતાઓ",
"freeTierProviders": "મફત ટાયર પ્રદાતાઓ",
"freeTierLabel": "મફત સ્તર ઉપલબ્ધ છે",
"freeTierProvidersDesc": "મફત સ્તરો ધરાવતા પ્રદાતાઓ — કેટલાકને API કી સાઇનઅપની જરૂર છે, અન્યને કોઈ ઓળખપત્રની જરૂર નથી.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "કૅશ સાફ કરો",
+ "reqs": "વિનંતીઓ",
+ "addAnthropicCompatible": "Anthropic સુસંગત ઉમેરો",
+ "apiKeyProviders": "API કી પ્રદાતાઓ",
+ "tabsAria": "ટૅબ્સ ARIA",
+ "resetting": "રીસેટ થઈ રહ્યું છે",
+ "millisecondsAbbr": "મિલિસેકન્ડનું સંક્ષિપ્ત રૂપ",
+ "backupReasonPreRestore": "પુનઃસ્થાપન પહેલાં બૅકઅપ લેવાનું કારણ",
+ "disableCloud": "ક્લાઉડ નિષ્ક્રિય કરો",
+ "newProviderNameAria": "નવા પ્રદાતાનું નામ ARIA",
+ "passwordsMismatch": "પાસવર્ડ મેળ ખાતા નથી",
+ "a2aQuickStartStep3": "A2A ઝડપી શરૂઆતનું પગલું 3",
+ "liveMonitorDescriptionSuffix": "લાઇવ મોનિટરના વર્ણનનો પ્રત્યય",
+ "failedAddProvider": "પ્રદાતા ઉમેરવામાં નિષ્ફળ",
+ "addAtLeastOneProvider": "ઓછામાં ઓછો એક પ્રદાતા ઉમેરો",
+ "reasonSeparator": "કારણ વિભાજક",
+ "zedImporting": "Zed આયાત કરી રહ્યું છે",
+ "confirmPasswordPlaceholder": "પાસવર્ડની પુષ્ટિ માટેનું પ્લેસહોલ્ડર",
+ "whatYouGet": "તમને શું મળે છે",
+ "signatureSession": "સહી સત્ર",
+ "errorCountNoCode": "કોડ વિનાની ભૂલોની સંખ્યા",
+ "testing": "પરીક્ષણ થઈ રહ્યું છે",
+ "providersCommaSeparated": "અલ્પવિરામથી અલગ કરેલા પ્રદાતાઓ",
+ "exportDatabase": "ડેટાબેઝ નિકાસ કરો",
+ "hitRate": "હિટ દર",
+ "completionsLegacy": "પૂર્ણતાઓ (લેગસી)",
+ "removeModel": "મોડેલ દૂર કરો",
+ "timeRangeDay": "સમયગાળો: દિવસ",
+ "cloudRequestFailed": "ક્લાઉડ વિનંતી નિષ્ફળ ગઈ",
+ "updatedAt": "આ સમયે અપડેટ થયું",
+ "monitoredProvidersHint": "મોનિટર કરેલા પ્રદાતાઓ માટે સંકેત",
+ "connectionSuccessful": "કનેક્શન સફળ",
+ "latencyP50": "લેટન્સી P50",
+ "logsDeleted": "લૉગ્સ કાઢી નાખવામાં આવ્યા",
+ "chatTester": "ચેટ ટેસ્ટર",
+ "safeSearchOff": "સેફ સર્ચ બંધ",
+ "nameHint": "નામ માટેનો સંકેત",
+ "debugToggle": "ડીબગ ટૉગલ",
+ "embedding": "એમ્બેડિંગ",
+ "issuesLabel": "સમસ્યાઓનું લેબલ",
+ "optionAny": "કોઈપણ વિકલ્પ",
+ "maxNestingDepth": "મહત્તમ નેસ્ટિંગ ઊંડાઈ",
+ "rerank": "ફરીથી ક્રમ આપવો",
+ "checking": "ચકાસી રહ્યું છે",
+ "getStarted": "શરૂ કરો",
+ "restoreSuccess": "પુનઃસ્થાપન સફળ",
+ "issuesDetected": "સમસ્યાઓ મળી",
+ "signatureCache": "સિગ્નેચર કૅશ",
+ "modelLockouts": "મોડેલ લૉકઆઉટ્સ",
+ "usingCloudProxy": "ક્લાઉડ પ્રૉક્સીનો ઉપયોગ થઈ રહ્યો છે",
+ "loadingHealth": "હેલ્થ લોડ થઈ રહ્યું છે",
+ "providerOverrides": "પ્રદાતા ઓવરરાઇડ્સ",
+ "audioTranscriptionDesc": "ઑડિયો ટ્રાન્સક્રિપ્શનનું વર્ણન",
+ "learnedFromHeaders": "હેડર્સમાંથી શીખેલું",
+ "totalRequests": "કુલ વિનંતીઓ",
+ "cloudUnstableNote": "ક્લાઉડ અસ્થિરતા નોંધ",
"gamificationAdmin": "ગેમિફિકેશન એડમિન",
"monitorAnomaliesAndHealth": "વિસંગતતાઓ અને સિસ્ટમ આરોગ્યનું નિરીક્ષણ કરો",
"flaggedAnomalies": "ફ્લેગ કરેલ વિસંગતતાઓ",
"noAnomaliesDetected": "કોઈ વિસંગતતાઓ મળી નથી",
"apiKey": "API કી",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 કલાક)",
"zScore": "Z-સ્કોર",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "શંકાસ્પદ",
"tokensCommunityServers": "કોમ્યુનિટી સર્વર્સ",
"tokensServerNamePlaceholder": "સર્વર નામ",
"tokensApiKeyPlaceholder": "API કી",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "વધુ લોડ કરી રહ્યું છે...",
"recommended": "ભલામણ કરેલ",
"understand": "હું સમજું છું",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "બૅચ પ્રોસેસિંગ",
+ "batchConceptSubtitle": "લગભગ 50% ખર્ચે હજારો વિનંતીઓ અસિંક્રોનસ રીતે પ્રોસેસ કરો (24 કલાકની સમયમર્યાદા). મૂલ્યાંકન, વર્ગીકરણ અને એમ્બેડિંગ્સ માટે આદર્શ.",
+ "batchConceptHowItWorks": "તે કેવી રીતે કાર્ય કરે છે",
+ "batchConceptBenefit50pct": "ઇનપુટ + આઉટપુટ ટોકન્સ પર 50% છૂટ",
+ "batchConceptAsync24h": "24 કલાકની પૂર્ણતા સમયમર્યાદા સાથે અસિંક્રોનસ",
+ "batchConceptUseCases": "મોટા પાયે વર્ગીકરણ, મૂલ્યાંકન અને એમ્બેડિંગ્સ માટે શ્રેષ્ઠ",
+ "batchHeaderSubtitle": "ઘણી વિનંતીઓને એક જૉબ તરીકે ચલાવો",
+ "batchStep1": "1 · JSONL અપલોડ કરો",
+ "batchStep1Desc": "વિનંતીઓ ઉમેરો",
+ "batchStep2": "2 · બૅચ બનાવો",
+ "batchStep2Desc": "જૉબ ચલાવો",
+ "batchStep3": "3 · પરિણામો મેળવો",
+ "batchStep3Desc": "આઉટપુટ ડાઉનલોડ કરો",
+ "filesConceptTitle": "બૅચ ફાઇલો",
+ "filesConceptSubtitle": "બૅચ દ્વારા ઉપયોગમાં લેવાતી JSONL ફાઇલો: ઇનપુટ વિનંતીઓ, પરિણામો અને ભૂલો.",
+ "filesConceptInput": "ઇનપુટ — દરેક લાઇનમાં એક વિનંતી ધરાવતી તમારી JSONL",
+ "filesConceptOutput": "આઉટપુટ — પૂર્ણ થયેલી વિનંતીઓનાં પરિણામો",
+ "filesConceptError": "ભૂલો — નિષ્ફળ ગયેલી વિનંતીઓ",
+ "filesConceptRetention": "જાળવણી: ડિફૉલ્ટ રૂપે 30 દિવસ (Anthropic પર 29 દિવસ)",
+ "wizardTitle": "નવું બૅચ",
+ "wizardClose": "બંધ કરો",
+ "wizardNext": "આગળ",
+ "wizardBack": "પાછળ",
+ "wizardCancel": "રદ કરો",
+ "wizardCreate": "બૅચ બનાવો",
+ "wizardCreating": "બનાવી રહ્યું છે…",
+ "wizardStep1Destination": "ગંતવ્ય",
+ "wizardStep2Input": "ઇનપુટ",
+ "wizardStep3Validate": "ચકાસો",
+ "wizardStep4Cost": "ખર્ચ અને બનાવટ",
+ "wizardProviderLabel": "પ્રદાતા",
+ "wizardEndpointLabel": "એન્ડપોઇન્ટ",
+ "wizardModelLabel": "મોડેલ",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (અમે તેને રૂપાંતરિત કરીશું)",
+ "wizardDropOrPick": "ફાઇલ અહીં મૂકો અથવા પસંદ કરવા માટે ક્લિક કરો",
+ "wizardCsvMappingTitle": "CSV કૉલમ → વિનંતી ફીલ્ડ સાથે મૅપ કરો",
+ "wizardCsvMappingAddField": "ફીલ્ડ ઉમેરો",
"wizardCsvNoColumns": "CSV હેડરમાં કોઈ કૉલમ મળી નથી.",
"wizardCsvIgnoreColumn": "— અવગણો —",
"wizardCsvCustomIdMapped": "custom_id મેપ કરેલ છે",
@@ -846,8 +846,8 @@
"wizardCsvApplyMapping": "મેપિંગ લાગુ કરો",
"wizardCsvRowsParsed": "{count} પંક્તિઓ પાર્સ કરવામાં આવી",
"wizardCsvRowsSkipped": "{count} પંક્તિઓ છોડી દેવામાં આવી",
- "wizardCsvRowError": "Row {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardCsvRowError": "પંક્તિ {row}: {reason}",
+ "wizardValidationOk": "બધી લાઇનો માન્ય છે",
"wizardValidating": "ચકાસણી થઈ રહી છે…",
"wizardValidationParseFailed": "ચકાસણી નિષ્ફળ ગઈ — સામગ્રીનું વિશ્લેષણ કરી શકાયું નથી.",
"wizardValidationSummary": "{lines} લાઇનો · {ids} અનન્ય custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "નકલી custom_ids મળ્યા:",
"wizardValidationFirstErrors": "ભૂલો (પ્રથમ {count}):",
"wizardValidationLine": "લાઇન {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "ચકાસણીની ભૂલો",
+ "wizardValidationPreview": "પૂર્વાવલોકન (પ્રથમ 5 વિનંતીઓ)",
+ "wizardValidationSamplingNote": "ફાઇલ મોટી છે — નમૂના દ્વારા ચકાસવામાં આવી છે (પ્રથમ 1000 + છેલ્લી 100 લાઇનો). સંપૂર્ણ ચકાસણી સર્વર પર થાય છે.",
+ "wizardCostSync": "સિંક ખર્ચ",
+ "wizardCostBatch": "બૅચ ખર્ચ (-50%)",
+ "wizardCostSavings": "બચત",
+ "wizardCostEstimatedNotice": "અંદાજિત ખર્ચ — વાસ્તવિક બિલિંગ અલગ હોઈ શકે છે.",
+ "wizardErrorUpload": "ફાઇલ અપલોડ કરવામાં નિષ્ફળતા. ફરી પ્રયાસ કરો.",
+ "wizardErrorCreate": "બૅચ બનાવવામાં નિષ્ફળતા. ફરી પ્રયાસ કરો.",
+ "wizardEmptyProviders": "બૅચ બનાવવા માટે બૅચ સપોર્ટ ધરાવતા પ્રદાતાને (OpenAI, Anthropic અથવા Gemini) કનેક્ટ કરો.",
+ "uploadModalTitle": "બૅચ ફાઇલ અપલોડ કરો",
+ "uploadModalDropOrPick": ".jsonl ફાઇલ અહીં મૂકો અથવા પસંદ કરવા માટે ક્લિક કરો",
+ "uploadModalUpload": "અપલોડ કરો",
+ "uploadModalCancel": "રદ કરો",
+ "uploadModalError": "અપલોડ નિષ્ફળ થયું. ફરી પ્રયાસ કરો.",
+ "uploadModalSuccess": "અપલોડ થયું",
+ "uploadModalSizeLimit": "મહત્તમ 512 MB",
+ "batchListNewButton": "નવું બૅચ",
+ "batchListAutoRefresh": "દર 30 સે.એ આપમેળે રિફ્રેશ",
+ "batchListCostColumn": "ખર્ચ",
+ "batchActionCancel": "રદ કરો",
+ "batchActionDownloadOutput": "આઉટપુટ ડાઉનલોડ કરો",
+ "batchActionDownloadErrors": "ભૂલો ડાઉનલોડ કરો",
+ "batchActionRetry": "નિષ્ફળ થયેલાં ફરી અજમાવો",
+ "batchActionRetryConfirm": "{n} નિષ્ફળ વિનંતી(ઓ)નો ફરી પ્રયાસ કરવો છે? અંતિમ ખર્ચ વપરાયેલા વાસ્તવિક ટોકન્સ પર આધારિત છે.",
+ "expirationBadgeCritical": "ગંભીર",
+ "expirationBadgeWarning": "ટૂંક સમયમાં",
+ "expirationBadgeNormal": "બાકી",
+ "expirationBadgeExpired": "સમય સમાપ્ત",
+ "filesListUploadButton": "અપલોડ કરો",
+ "filesListUsedByColumn": "આના દ્વારા વપરાયેલ",
+ "filesListUsedByNone": "કોઈ નહીં",
+ "filesListUsedByRoleInput": "ઇનપુટ",
+ "filesListUsedByRoleOutput": "આઉટપુટ",
+ "filesListUsedByRoleError": "ભૂલ",
+ "filesListSizeColumn": "કદ",
+ "batchListProgressPartial": "(આંશિક)",
+ "batchListProviderColumn": "પ્રદાતા",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "અન્ય",
+ "batchListTitle": "બૅચ",
+ "batchListCount": "{count} બૅચ",
+ "batchListRemovingCompleted": "દૂર કરી રહ્યાં છીએ…",
+ "batchListRemoveCompleted": "પૂર્ણ થયેલાં દૂર કરો",
+ "batchListTableStatus": "સ્થિતિ",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "એન્ડપોઇન્ટ",
+ "batchListTableModel": "મોડેલ",
+ "batchListTableProgress": "પ્રગતિ",
+ "batchListTableCreated": "બનાવ્યું",
+ "batchListTableExpires": "સમાપ્તિ",
+ "batchListLoading": "લોડ થઈ રહ્યું છે…",
+ "batchListEmpty": "કોઈ બૅચ મળ્યાં નથી",
+ "batchListValidating": "માન્યતા ચકાસી રહ્યાં છીએ…",
+ "batchStatusAll": "બધી સ્થિતિઓ",
+ "batchStatusInProgress": "પ્રગતિમાં",
+ "batchStatusValidating": "માન્યતા ચકાસી રહ્યાં છીએ",
+ "batchStatusFinalizing": "અંતિમ રૂપ આપી રહ્યાં છીએ",
+ "batchStatusCompleted": "પૂર્ણ થયું",
+ "batchStatusFailed": "નિષ્ફળ થયું",
+ "batchStatusCancelled": "રદ થયું",
+ "batchStatusCancelling": "રદ કરી રહ્યાં છીએ",
+ "batchStatusExpired": "સમયસમાપ્ત થયું",
+ "batchStatusCompletedWithFailures": "નિષ્ફળતાઓ સાથે પૂર્ણ થયું",
+ "batchStatusInProgressWithFailures": "પ્રગતિમાં (નિષ્ફળતાઓ સાથે)",
+ "batchStatusFinalizingWithFailures": "અંતિમ રૂપ આપી રહ્યાં છીએ (નિષ્ફળતાઓ સાથે)",
+ "batchStatusCancelledWithFailures": "નિષ્ફળતાઓ સાથે રદ થયું",
+ "batchStatusExpiredWithFailures": "સમયસમાપ્ત થયું (આંશિક)",
+ "wizardCostEstimating": "ખર્ચનો અંદાજ લગાવી રહ્યાં છીએ…",
+ "wizardCostRequests": "વિનંતીઓ",
+ "wizardCostInputTok": "ઇનપુટ ટોકન",
+ "wizardCostOutputTok": "આઉટપુટ ટોકન",
+ "wizardCostWindow": "સમયગાળો",
+ "wizardDestinationSelectProvider": "પ્રદાતા પસંદ કરો…",
+ "wizardDestinationSelectModel": "મોડેલ પસંદ કરો…",
+ "wizardDestinationConnectProvider": "પ્રદાતાને કનેક્ટ કરો",
+ "batchListBatchCreated": "બૅચ {id} બનાવવામાં આવ્યો — સૂચિ રિફ્રેશ કરી રહ્યાં છીએ…",
+ "batchListBatchCreatedDismiss": "બંધ કરો",
+ "batchListRefreshing": "રિફ્રેશ કરી રહ્યાં છીએ…",
+ "batchListRefresh": "રિફ્રેશ કરો",
+ "uploadFileModalRemove": "દૂર કરો",
+ "uploadFileModalUploading": "અપલોડ કરી રહ્યાં છીએ…",
+ "wizardInputReading": "ફાઇલ વાંચી રહ્યાં છીએ…",
+ "wizardInputReady": "તૈયાર",
+ "wizardInputLargeFileLabel": "મોટી ફાઇલ — નમૂના દ્વારા માન્યતા ચકાસણી",
+ "wizardInputCsvJsonlReady": "JSONL જનરેટ થયું — માન્યતા ચકાસવા માટે તૈયાર.",
+ "wizardInputLargeFileWarning": "મોટી ફાઇલ મળી — માન્યતા ચકાસણી નમૂના દ્વારા થાય છે (પ્રથમ 5 MB + છેલ્લા 100 KB). સંપૂર્ણ માન્યતા ચકાસણી સર્વર-સાઇડ થાય છે.",
+ "wizardCostWindow24h": "24 કલાકની પૂર્ણતા સમયમર્યાદા",
+ "wizardValidationFieldsOk": "આવશ્યક ફીલ્ડ્સ માન્ય છે",
+ "filesListDelete": "કાઢી નાખો",
+ "filesListDownload": "ડાઉનલોડ કરો",
+ "batchDetailActionCancel": "બૅચ રદ કરો",
+ "batchDetailActionRetry": "નિષ્ફળ વિનંતીઓનો ફરી પ્રયાસ કરો",
+ "batchDetailCancelling": "રદ કરી રહ્યું છે…",
+ "batchDetailRetrying": "ફરી પ્રયાસ કરવાની તૈયારી કરી રહ્યું છે…",
+ "batchDetailCancelConfirm": "આ બૅચ રદ કરવો છે? ચાલુ વિનંતીઓ અટકી જશે.",
+ "batchActionCancelError": "બૅચ રદ કરવામાં નિષ્ફળતા. ફરી પ્રયાસ કરો.",
+ "batchActionRetryError": "નિષ્ફળ વિનંતીઓનો ફરી પ્રયાસ કરવામાં નિષ્ફળતા. ફરી પ્રયાસ કરો.",
+ "batchConceptRetentionNote": "પરિણામો અને ભૂલ ફાઇલો 30 દિવસ સુધી જાળવી રાખવામાં આવે છે (Anthropic: 29 દિવસ)",
"batchFilesSizeColumn": "આકાર",
"toggleNoAuthProvider": "નૉ-ઑથ પ્રોવાઇડર ટોગલ કરો",
"loadingModels": "મોડલ લોડ થઈ રહ્યા છે…",
@@ -988,43 +988,47 @@
"disabled": "નિષ્ક્રિય કરેલ",
"featureFlagOmnirouteEmergencyFallbackDescription": "બજેટ-સમાપ્ત વિનંતીઓને કટોકટીના મફત ફોલબેક પ્રદાતા/મોડેલ પર રૂટ કરો.",
"featureFlagArenaEloSyncEnabledDescription": "મોડેલ ઇન્ટેલિજન્સ રેન્કિંગ માટે સમયાંતરે Arena AI લીડરબોર્ડ ELO સિંક સક્ષમ કરો.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "કોમ્બો રાઉટિંગ મોડલ બદલે ત્યારે વાર્તાલાપના સારાંશ જનરેટ કરીને દાખલ કરો. મોડલ સ્વિચને સ્વતંત્ર રીતે સંભાળવા અને હાલના તથા ભવિષ્યના તમામ કોમ્બો માટે પૃષ્ઠભૂમિ હેન્ડઓફ વિનંતીઓ અટકાવવા માટે અક્ષમ કરો.",
"featureFlagExposeCcDiscoveryAliasesDescription": "/v1/models પર claude/<provider>/<model> મિરર આઈડીઓનું જાહેરાત કરો જેથી Claude Code ગેટવે મોડલ શોધી કાઢે છે non-Claude મોડલ. ચેતવણી: જ્યારે વૈશ્વિક રીતે સક્રિય કરવામાં આવે ત્યારે તમામ ક્લાયન્ટ માટે કૅટલોગ એન્ટ્રીઓ ડબલ કરે છે.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> ગેટવે ઉપનામો માટેનું મુખ્ય સ્વિચ. ચાલુ (ડિફૉલ્ટ): /v1/models દરેક પાત્ર, વિચાર-સક્ષમ Claude મોડલ માટે વિચારણા વિનાનું વેરિઅન્ટ દર્શાવે છે, અને વિનંતીમાં મોકલાયેલ no-think/ id વાસ્તવિક મોડલ પર પાછું ઉકેલાય છે તથા તર્કપ્રક્રિયા દબાવવામાં આવે છે. બંધ: કોઈ વેરિઅન્ટ દર્શાવવામાં આવતાં નથી અને no-think/ id ને અન્ય કોઈપણ અજ્ઞાત મોડલ id જેવું ગણવામાં આવે છે. આ ચાલુ હોય ત્યારે પણ પ્રતિ-મોડલ ModelSpec.noThinkingAlias માટેની opt-in/opt-out સેટિંગ લાગુ પડે છે.",
"featureFlagChatVirtualLanesEnabledDescription": "પ્રોવાઇડર ડિસ્પેચ માટે પ્રતિ-ટેનન્ટ અનુકૂલનશીલ વર્ચ્યુઅલ એડમિશન લેન સક્ષમ કરો (#9654): એક ટેનન્ટનો બર્સ્ટ હવે બીજા ટેનન્ટને 503 આપતો નથી. OMNIROUTE_CHAT_VIRTUAL_LANES એન્વાયર્નમેન્ટ વેરિયેબલ આ ડેશબોર્ડ સેટિંગ કરતાં વધુ પ્રાધાન્ય ધરાવે છે; ફેરફારો સર્વર પુનઃપ્રારંભ પર અસરકારક થાય છે.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "ડૅશબોર્ડના પ્રદાતા પૃષ્ઠો: ફક્ત પ્રદાતા માન્ય રાખે તેવા સંકેતો પર જ મફત બૅજ બતાવો — દસ્તાવેજીકૃત મફત સ્તર વિનાના નોંધાયેલા પ્રદાતાઓ માટે ડિસ્પ્લે-નામનું હ્યુરિસ્ટિક, બિન-બૂલિયન મફત ફીલ્ડ્સ અને :free પ્રત્યયો દૂર કરે છે. બંધ રાખવાથી ઐતિહાસિક બૅજ નિયમ જળવાઈ રહે છે.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy pools અને opencodeનું પ્રતિ-એકાઉન્ટ રોટેશન, હમણાં જ નિષ્ફળ ગયેલા પ્રોક્સીને (TCP પ્રોબ નકારાયો હોય અથવા તેના મારફતે 429 મળ્યો હોય) દરેક પુનરાવર્તન સાથે બમણા થતા, મહત્તમ મર્યાદા સુધીના પ્રતિ-પ્રોસેસ સમયગાળા માટે ફરીથી સર્વ કરવાનું બંધ કરે છે. પ્રોક્સીની કોઈ સ્થિતિ લખવામાં આવતી નથી; દરેક ઉમેદવારને બાજુ પર રાખવામાં આવે તો પસંદગી યથાવત્ રહે છે. ડિફૉલ્ટ રૂપે બંધ: પસંદગીનો ક્રમ સાદા રોટેશન જેવો જ રહે છે.",
+ "featureFlagProxyPoolEgressObservationDescription": "ડૅશબોર્ડમાં પ્રોક્સી પૂલ હેઠળ બતાવો કે છેલ્લા 24 કલાકમાં કેટલા નિરીક્ષિત એગ્રેસ IPએ તેના સભ્યોને સેવા આપી, કેટલાં કનેક્શનોએ તેમનો ઉપયોગ કર્યો અને એક IP પાછળ મહત્તમ કેટલા જોવા મળ્યા. ફક્ત વાંચવા માટે, પ્રોક્સી લૉગમાંથી ગણતરી કરેલું અને રૂટિંગ માટે ક્યારેય ઉપયોગમાં લેવાતું નથી. ડિફૉલ્ટ રૂપે બંધ: પૂલ એડિટર યથાવત્ રહે છે અને નિરીક્ષણ રૂટ null પરત કરે છે.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "પ્રોક્સી હેલ્થ સ્વીપમાં, લક્ષ્ય દ્વારા નકારવામાં આવેલા પ્રોબને (401/403/429: પ્રોક્સીએ રિલે કર્યું, ગંતવ્યે આ એગ્રેસ IPને નકાર્યો) સર્વ કરાયેલા પ્રોબની જેમ પ્રોક્સીની સળંગ નિષ્ફળતાઓની શ્રેણી રીસેટ કરવાની મંજૂરી આપો. ડિફૉલ્ટ રૂપે બંધ: નકાર તટસ્થ રહે છે અને શ્રેણી જાળવી રાખે છે. બંને સ્થિતિમાં 5xx અનિર્ણાયક રહે છે, અને નકાર ક્યારેય પ્રોક્સીને દૂર, અક્ષમ અથવા ફરી સક્રિય કરતો નથી.",
"sidebar": {
- "home": "Home",
- "dashboard": "Dashboard",
- "providers": "Providers",
- "combos": "Combos",
- "usage": "Usage",
- "analytics": "Analytics",
- "costs": "Costs",
- "health": "Health",
+ "home": "મુખ્ય પૃષ્ઠ",
+ "dashboard": "ડૅશબોર્ડ",
+ "providers": "પ્રદાતાઓ",
+ "combos": "કોમ્બો",
+ "usage": "વપરાશ",
+ "analytics": "વિશ્લેષણ",
+ "costs": "ખર્ચ",
+ "health": "સ્થિતિ",
"proxy": "પ્રોક્સી",
"limits": "Limits & Quotas",
- "cliTools": "CLI Tools",
- "media": "Media",
- "settings": "Settings",
- "translator": "Translator",
- "playground": "Playground",
- "searchTools": "Search Tools",
- "agents": "Agents",
+ "cliTools": "CLI સાધનો",
+ "media": "મીડિયા",
+ "settings": "સેટિંગ્સ",
+ "translator": "અનુવાદક",
+ "playground": "પ્લેગ્રાઉન્ડ",
+ "searchTools": "શોધ સાધનો",
+ "agents": "એજન્ટ્સ",
"cloudAgents": "મેઘ એજન્ટો",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "મેમરી",
+ "skills": "કૌશલ્યો",
"omniSkills": "ઓમ્ની સ્કીલ્સ",
"agentSkills": "એજન્ટ કૌશલ્ય",
"chaosConfig": "કેઓસ મોડ",
- "docs": "Docs",
- "issues": "Issues",
- "endpoints": "Endpoints",
+ "docs": "દસ્તાવેજો",
+ "issues": "સમસ્યાઓ",
+ "endpoints": "એન્ડપોઇન્ટ્સ",
"endpointsSubtitle": "તમારા AI કનેક્શન URL",
- "apiManager": "API Keys",
+ "apiManager": "API કીઝ",
"apiManagerSubtitle": "API કી અને એક્સેસ મેનેજ કરો",
"embeddedServices": "એમ્બેડ સેવાઓ",
"embeddedServicesSubtitle": "સ્થાનિક પ્રોક્સી સેવાઓ મેનેજ કરો",
- "logs": "Logs",
+ "logs": "લૉગ્સ",
"webhooks": "વેબહુક્સ",
"webhooksSubtitle": "ઇવેન્ટ્સની સૂચના મેળવો",
"logExport": "લોગ નિકાસ",
@@ -1033,82 +1037,82 @@
"batchSubtitle": "બહુવિધ વિનંતીઓ પર પ્રક્રિયા કરો",
"contextCavemanSubtitle": "પ્રોમ્પ્ટ કમ્પ્રેશન",
"contextRtkSubtitle": "આઉટપુટ ફિલ્ટરિંગ",
- "auditLog": "Audit Log",
- "shutdown": "Shutdown",
- "restart": "Restart",
- "shutdownConfirm": "Shut down OmniRoute?",
- "restartConfirm": "Restart OmniRoute?",
+ "auditLog": "ઑડિટ લૉગ",
+ "shutdown": "બંધ કરો",
+ "restart": "પુનઃપ્રારંભ કરો",
+ "shutdownConfirm": "OmniRoute બંધ કરવું છે?",
+ "restartConfirm": "OmniRoute પુનઃપ્રારંભ કરવું છે?",
"version": "v{version}",
"debug": "Debug",
- "system": "System",
- "help": "Help",
+ "system": "સિસ્ટમ",
+ "help": "મદદ",
"primarySection": "Main",
"cliSection": "CLI",
"debugSection": "Debug",
"systemSection": "System",
"helpSection": "Help",
- "serverDisconnected": "Server Disconnected",
- "serverDisconnectedMsg": "The proxy server has been stopped or is restarting.",
- "expandSidebar": "Expand sidebar",
- "collapseSidebar": "Collapse sidebar",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
- "cliToolsShort": "Tools",
+ "serverDisconnected": "સર્વર ડિસ્કનેક્ટ થયું",
+ "serverDisconnectedMsg": "પ્રૉક્સી સર્વર બંધ કરવામાં આવ્યું છે અથવા પુનઃપ્રારંભ થઈ રહ્યું છે.",
+ "expandSidebar": "સાઇડબાર વિસ્તારો",
+ "collapseSidebar": "સાઇડબાર સંકુચિત કરો",
+ "themes": "થીમ્સ",
+ "presetColors": "લોકપ્રિય રંગો",
+ "createTheme": "થીમ બનાવો",
+ "chooseColor": "એક રંગ પસંદ કરો",
+ "themeCoral": "કોરલ",
+ "themeBlue": "વાદળી",
+ "themeRed": "લાલ",
+ "themeGreen": "લીલો",
+ "themeViolet": "જાંબલી",
+ "themeOrange": "નારંગી",
+ "themeCyan": "સ્યાન",
+ "cliToolsShort": "સાધનો",
"cache": "Cache",
"cacheShort": "Cache",
"batch": "Batch Testing",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "themeSystem": "થીમ સિસ્ટમ",
+ "whitelabelingDesc": "વ્હાઇટલેબલિંગનું વર્ણન",
+ "switchThemes": "થીમ્સ બદલો",
+ "themeAccentDesc": "થીમ એક્સેન્ટનું વર્ણન",
+ "uploadFavicon": "ફેવિકોન અપલોડ કરો",
+ "themeDark": "ઘેરી થીમ",
+ "customLogoDesc": "કસ્ટમ લોગોનું વર્ણન",
+ "sidebarVisibilityToggle": "સાઇડબાર દૃશ્યતા ટૉગલ",
+ "themeAccent": "થીમ એક્સેન્ટ",
+ "resetFavicon": "ફેવિકોન રીસેટ કરો",
+ "whitelabeling": "વ્હાઇટલેબલિંગ",
+ "darkMode": "ડાર્ક મોડ",
+ "uploadLogo": "લોગો અપલોડ કરો",
+ "themeLight": "આછા રંગની થીમ",
+ "appName": "ઍપનું નામ",
+ "appNameDesc": "ઍપના નામનું વર્ણન",
+ "resetLogo": "લોગો રીસેટ કરો",
+ "customFavicon": "કસ્ટમ ફેવિકોન",
+ "hideHealthLogs": "હેલ્થ લૉગ્સ છુપાવો",
+ "customLogo": "કસ્ટમ લોગો",
+ "appearance": "દેખાવ",
+ "themeSelectionAria": "થીમ પસંદગી માટેનું ARIA",
+ "themeCreate": "થીમ બનાવો",
+ "customFaviconDesc": "કસ્ટમ ફેવિકોનનું વર્ણન",
+ "logoPreview": "લોગોનું પૂર્વાવલોકન",
+ "themeCustom": "કસ્ટમ થીમ",
+ "hideHealthLogsDesc": "હેલ્થ લૉગ્સ છુપાવવાનું વર્ણન",
+ "faviconPreview": "ફેવિકોન પૂર્વાવલોકન",
+ "changelog": "ફેરફાર નોંધ",
+ "contextSection": "સંદર્ભ અને કૅશ",
+ "contextCaveman": "કેવમેન",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "એન્જિન સંયોજનો",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
- "contextUltra": "Ultra",
+ "contextUltra": "અલ્ટ્રા",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "સંકોચન સેટિંગ્સ",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "કોમ્બો સ્ટુડિયો",
"combosLiveSubtitle": "લાઇવ રૂટીંગ કાસ્કેડ",
"compressionStudio": "Compression Studio",
"compressionExclusions": "બહાર રાખવા",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "લાઇવ એન્જિન કાસ્કેડ",
"compressionExclusionsSubtitle": "પ્રતિ-મોડલ/એન્ડપોઈન્ટ બાયપાસ",
"chaosConfigSubtitle": "મલ્ટિ-મોડેલ સમાંતર અમલીકરણ",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "રૂટિંગ",
+ "protocolsSection": "પ્રોટોકોલ્સ",
+ "agentsAiSection": "એજન્ટ્સ અને AI",
+ "cacheContextSection": "કૅશ અને સંદર્ભ",
+ "analyticsSection": "વિશ્લેષણ",
+ "costsSection": "ખર્ચ",
+ "monitoringSection": "નિરીક્ષણ",
+ "auditSecuritySection": "ઑડિટ અને સુરક્ષા",
+ "devtoolsSection": "ડેવલપર સાધનો",
+ "configurationSection": "રૂપરેખાંકન",
+ "aiFeaturesSection": "AI સુવિધાઓ",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "પ્લગિન્સ",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "API એન્ડપોઇન્ટ્સ",
+ "batchFiles": "ફાઇલો",
+ "analyticsEvals": "મૂલ્યાંકનો",
+ "analyticsSearch": "શોધ",
+ "analyticsUtilization": "ઉપયોગિતા",
+ "analyticsComboHealth": "કોમ્બો સ્વાસ્થ્ય",
+ "analyticsCompression": "સંકોચન",
+ "costsBudget": "બજેટ",
"costsFreeTiers": "ફ્રી-ટીયર બજેટ",
"costsFreeTiersSubtitle": "માસિક મફત-ટોકન ભથ્થાં",
"freeProviderRankings": "મફત પ્રદાતા રેન્કિંગ",
"freeProviderRankingsSubtitle": "મોડેલ ELO સ્કોર્સ દ્વારા ક્રમાંકિત શ્રેષ્ઠ મફત પ્રદાતાઓ",
"radar": "રેડાર કેટલોગ",
"radarSubtitle": "સમુદાય-સમૃદ્ધ મફત મોડલ કેટલોગ",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "ક્વોટા વહેંચણી",
+ "costsPricing": "કિંમત નિર્ધારણ",
+ "logsProxy": "પ્રૉક્સી લૉગ્સ",
+ "logsConsole": "કન્સોલ",
+ "logsActivity": "પ્રવૃત્તિ",
+ "auditMcp": "MCP ઑડિટ",
"auditA2a": "A2A ઓડિટ",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "દેખાવ",
+ "settingsAi": "AI સેટિંગ્સ",
+ "settingsSecurity": "સુરક્ષા",
"settingsAccessTokens": "એક્સેસ ટોકન્સ",
"settingsFeatureFlags": "લક્ષણ ફ્લેગ્સ",
"settingsCache": "કેશ",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "અધિકૃતતા",
+ "settingsRouting": "રૂટિંગ",
+ "settingsResilience": "સ્થિતિસ્થાપકતા",
"modelLockout": "મોડેલ લોકઆઉટ",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "અદ્યતન",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "પ્રદાતા ક્વોટા",
+ "providerQuota": "પ્રદાતા ક્વોટા",
+ "runtime": "રનટાઇમ",
+ "consoleLogs": "કન્સોલ લૉગ્સ",
+ "logsTimeline": "સમયરેખા",
"logsTimelineSubtitle": "વિઝ્યુઅલ વિનંતી સમયરેખા",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "વાર્તાલાપ",
+ "conversationsSubtitle": "મલ્ટિ-ટર્ન એજેન્ટિક વાર્તાલાપ",
+ "globalRouting": "વૈશ્વિક રૂટિંગ",
+ "mitmProxy": "MITM પ્રોક્સી",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "agenticFeaturesSection": "એજેન્ટિક સુવિધાઓ",
+ "otherFeaturesSection": "અન્ય સુવિધાઓ",
+ "compressionContextGroup": "કમ્પ્રેશન કોન્ટેક્સ્ટ",
+ "gamificationGroup": "ગેમિફિકેશન",
+ "toolsGroup": "સાધનો",
+ "integrationsGroup": "એકીકરણો",
+ "proxyGroup": "પ્રોક્સી",
+ "costsParametersGroup": "ખર્ચના પરિમાણો",
+ "auditGroup": "ઑડિટ",
+ "batchGroup": "બૅચ",
+ "homeSubtitle": "ડૅશબોર્ડનું વિહંગાવલોકન",
+ "providersSubtitle": "AI પ્રદાતાઓનું સંચાલન કરો",
+ "quotaTrackerSubtitle": "વપરાશ મર્યાદાઓ ટ્રૅક કરો",
+ "providerQuotaSubtitle": "પ્રદાતાની વપરાશ મર્યાદાઓ ટ્રૅક કરો",
+ "runtimeSubtitle": "રીઅલ-ટાઇમ સ્થિતિસ્થાપકતા અને સત્રો",
+ "contextCombosSubtitle": "કમ્પ્રેશન એન્જિનોને સંયોજિત કરો",
+ "cliToolsSubtitle": "CLI રનટાઇમ્સ ગોઠવો",
+ "agentsSubtitle": "સ્થાનિક એજન્ટોનું સંચાલન કરો",
+ "cloudAgentsSubtitle": "ક્લાઉડ-આધારિત એજન્ટોનું સંચાલન કરો",
+ "apiEndpointsSubtitle": "કસ્ટમ એન્ડપોઇન્ટ્સ ઉપલબ્ધ કરાવો",
+ "proxySubtitle": "HTTP પ્રોક્સી સેટિંગ્સ",
+ "mitmProxySubtitle": "MITM ઇન્ટરસેપ્શન",
+ "oneProxySubtitle": "સાર્વજનિક પ્રોક્સી ગેટવે",
+ "leaderboard": "લીડરબોર્ડ",
+ "profile": "પ્રોફાઇલ",
+ "tokens": "ટોકન્સ",
+ "gamificationAdmin": "ગેમિફિકેશન એડમિન",
+ "leaderboardSubtitle": "રેન્કિંગ્સ અને સિદ્ધિઓ",
+ "profileSubtitle": "એકાઉન્ટ અને પસંદગીઓ",
+ "tokensSubtitle": "ટોકન વપરાશ અને બજેટ",
+ "gamificationAdminSubtitle": "અસામાન્યતા મોનિટરિંગ અને છેતરપિંડી-વિરોધી વ્યવસ્થા",
+ "usageSubtitle": "ટ્રાફિક અને વપરાશનાં આંકડા",
+ "analyticsComboHealthSubtitle": "કોમ્બો લક્ષ્યની વિશ્વસનીયતા",
+ "analyticsUtilizationSubtitle": "પ્રદાતા ઉપયોગિતા",
+ "costsSubtitle": "ખર્ચનું વિભાજન",
+ "cacheSubtitle": "કૅશ હિટ દરો",
+ "analyticsCompressionSubtitle": "ટોકન બચતનાં આંકડા",
+ "analyticsSearchSubtitle": "શોધ ટૂલ વિશ્લેષણ",
+ "analyticsEvalsSubtitle": "મૂલ્યાંકન સ્યુટનાં પરિણામો",
"providerStats": "પ્રદાતા આંકડા",
"providerStatsSubtitle": "લેટન્સી અને પ્રદર્શન મેટ્રિક્સ",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "એપ્લિકેશન લૉગ્સ",
+ "logsProxySubtitle": "પ્રોક્સી ટ્રાફિક લૉગ્સ",
+ "consoleLogsSubtitle": "કન્સોલ આઉટપુટ",
+ "logsActivitySubtitle": "વપરાશકર્તા પ્રવૃત્તિ લૉગ",
+ "healthSubtitle": "સિસ્ટમની સ્થિતિની તપાસ",
+ "costsPricingSubtitle": "મોડેલ-દીઠ કિંમત નિર્ધારણના નિયમો",
+ "costsBudgetSubtitle": "બજેટ મર્યાદાઓ",
+ "costsQuotaShareSubtitle": "કી વચ્ચે પ્રદાતા ક્વોટા શેર કરો",
+ "auditLogSubtitle": "અધિકૃતતા ઑડિટ",
+ "auditMcpSubtitle": "MCP સર્વર ઑડિટ",
+ "auditA2aSubtitle": "A2A પ્રોટોકોલ ઑડિટ",
+ "translatorSubtitle": "ફોર્મેટ રૂપાંતરણ",
+ "playgroundSubtitle": "પ્રોમ્પ્ટ્સનું લાઇવ પરીક્ષણ કરો",
+ "searchToolsSubtitle": "શોધ ટૂલ રજિસ્ટ્રી",
+ "memorySubtitle": "કાયમી એજન્ટ મેમરી",
+ "omniSkillsSubtitle": "સૅન્ડબૉક્સ સ્કિલ રજિસ્ટ્રી",
+ "agentSkillsSubtitle": "A2A સ્કિલ રજિસ્ટ્રી",
+ "mcpSubtitle": "MCP સર્વર નિયંત્રણો",
+ "a2aSubtitle": "A2A પ્રોટોકોલ સર્વર",
"pluginsSubtitle": "પ્લગઇન માર્કેટપ્લેસ અને ઇન્સ્ટોલેશન્સ",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "કૅશ કરેલી મીડિયા ફાઇલો",
+ "batchFilesSubtitle": "બૅચ ઇનપુટ/આઉટપુટ ફાઇલો",
+ "settingsSubtitle": "બધી સેટિંગ્સ",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "થીમ અને લેઆઉટ",
+ "settingsAiSubtitle": "AI વર્તનનાં ડિફૉલ્ટ્સ",
+ "globalRoutingSubtitle": "વૈશ્વિક રૂટિંગ નિયમો",
+ "settingsResilienceSubtitle": "ફરી પ્રયાસો અને સર્કિટ બ્રેકર્સ",
+ "settingsAdvancedSubtitle": "પાવર યુઝર વિકલ્પો",
+ "settingsSecuritySubtitle": "પ્રમાણીકરણ અને એન્ક્રિપ્શન",
"settingsAccessTokensSubtitle": "રિમોટ મોડ માટે સ્કોપ્ડ CLI ટોકન્સ",
"settingsFeatureFlagsSubtitle": "સિસ્ટમ ક્ષમતાઓ ટૉગલ કરો",
"settingsCacheSubtitle": "મોડલ કેટલોગ અને પ્રતિસાદ કેશિંગ",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "સાઇડબાર",
+ "settingsSidebarSubtitle": "સાઇડબાર લેઆઉટ કસ્ટમાઇઝ કરો",
"settingsAuthzSubtitle": "રૂટ ઇન્વેન્ટરી અને બાયપાસ નીતિ",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "દસ્તાવેજીકરણ",
+ "issuesSubtitle": "બગની જાણ કરો",
+ "changelogSubtitle": "રિલીઝ નોંધો",
"costsQuotaPlans": "યોજનાઓ અને ક્વોટા",
"costsQuotaPlansSubtitle": "પ્રદાતા દ્વારા યોજનાઓ ગોઠવો",
"activity": "પ્રવૃત્તિ",
@@ -1274,8 +1278,8 @@
"agentBridge": "એજન્ટ બ્રિજ",
"agentBridgeSubtitle": "IDE એજન્ટ ટ્રાફિકને અટકાવો",
"trafficInspector": "ટ્રાફિક ઇન્સ્પેક્ટર",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "તમારી ઍપ્સમાંથી આવતા વિનંતી અને પ્રતિસાદ ટ્રાફિકનું નિરીક્ષણ કરો",
+ "trafficInspectorPurpose": "તમારી ઍપ્લિકેશન AI પ્રદાતાઓને બરાબર શું મોકલે છે અને તેમની પાસેથી શું મેળવે છે તે જુઓ. કોઈપણ OpenAI-સુસંગત ક્લાયન્ટ સાથે કામ કરે છે.",
"cliCode": "CLI કોડ",
"cliCodeSubtitle": "OmniRoute તરફ નિર્દેશ કરતા કોડ ટૂલ્સ",
"cliAgents": "CLI એજન્ટ્સ",
@@ -1341,7 +1345,7 @@
"refresh": "તાજું કરો",
"loading": "વેબહુક્સ લોડ કરી રહ્યું છે...",
"never": "ક્યારેય નહીં",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {કોઈ નિષ્ફળતા નથી} one {# નિષ્ફળતા} other {# નિષ્ફળતાઓ}}",
"testWebhook": "ટેસ્ટ મોકલો",
"testSuccess": "ટેસ્ટ વેબહૂક સફળતાપૂર્વક મોકલવામાં આવ્યો.",
"testFailed": "પરીક્ષણ વેબહૂક નિષ્ફળ થયું.",
@@ -1559,91 +1563,91 @@
"mcpMetricTopTool": "ટોપ ટૂલ"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "થીમ્સ",
+ "description": "પૂર્વનિર્ધારિત થીમ પસંદ કરો અથવા એક જ રંગથી તમારી પોતાની થીમ બનાવો",
+ "presetColors": "લોકપ્રિય રંગો",
+ "customTheme": "કસ્ટમ થીમ",
+ "customThemeDesc": "થીમ બનાવો પર ક્લિક કરો અને એક રંગ પસંદ કરો",
+ "createTheme": "થીમ બનાવો",
+ "activePreset": "સક્રિય થીમ"
},
"header": {
- "logout": "Logout",
+ "logout": "લૉગ આઉટ",
"quickNavigation": "ઝડપી નેવિગેશન",
"quickNavigationTitle": "ઝડપી નેવિગેશન (⌘K / Ctrl+K)",
"openQuickNavigation": "ઝડપી નેવિગેશન ખોલો",
"switchToLightMode": "લાઇટ મોડ પર સ્વિચ કરો",
"switchToDarkMode": "ડાર્ક મોડ પર સ્વિચ કરો",
- "language": "Language",
- "providers": "Providers",
- "providerDescription": "Manage your AI provider connections",
- "combos": "Combos",
- "comboDescription": "Model combos with fallback",
- "usage": "Usage & Analytics",
- "usageDescription": "Monitor your API usage, token consumption, and request logs",
- "analytics": "Analytics",
- "analyticsDescription": "Charts, trends, and evaluation insights",
- "cliTools": "CLI Tools",
- "cliToolsDescription": "Configure CLI tools",
- "home": "Home",
- "homeDescription": "Welcome to OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "language": "ભાષા",
+ "providers": "પ્રદાતાઓ",
+ "providerDescription": "તમારા AI પ્રદાતા કનેક્શન્સ મેનેજ કરો",
+ "combos": "કૉમ્બોઝ",
+ "comboDescription": "ફૉલબૅક સાથેનાં મોડેલ કૉમ્બોઝ",
+ "usage": "વપરાશ અને વિશ્લેષણ",
+ "usageDescription": "તમારા API વપરાશ, ટોકન વપરાશ અને વિનંતી લૉગ્સનું નિરીક્ષણ કરો",
+ "analytics": "એનાલિટિક્સ",
+ "analyticsDescription": "ચાર્ટ્સ, વલણો અને મૂલ્યાંકન સંબંધિત જાણકારી",
+ "cliTools": "CLI ટૂલ્સ",
+ "cliToolsDescription": "CLI ટૂલ્સ ગોઠવો",
+ "home": "હોમ",
+ "homeDescription": "OmniRouteમાં આપનું સ્વાગત છે",
+ "endpoint": "એન્ડપોઇન્ટ્સ",
+ "endpointDescription": "પ્રોક્સી એન્ડપોઇન્ટ્સ, MCP, A2A અને API એન્ડપોઇન્ટ્સનું સંચાલન કરો",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Model Context Protocol સર્વરનું સંચાલન અને ટૂલ્સ",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
- "settings": "Settings",
- "settingsDescription": "Manage your preferences",
- "openaiCompatible": "OpenAI Compatible",
- "anthropicCompatible": "Anthropic Compatible",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "a2aDescription": "Agent-to-Agent પ્રોટોકોલ કાર્યો અને અવલોકનક્ષમતા",
+ "settings": "સેટિંગ્સ",
+ "settingsDescription": "તમારી પસંદગીઓનું સંચાલન કરો",
+ "openaiCompatible": "OpenAI સુસંગત",
+ "anthropicCompatible": "Anthropic સુસંગત",
+ "media": "મીડિયા",
+ "mediaDescription": "છબીઓ, વિડિઓઝ અને સંગીત જનરેટ કરો",
+ "themes": "થીમ્સ",
+ "themesDescription": "આખા ડેશબોર્ડ પેનલ માટે રંગની થીમ પસંદ કરો",
+ "costsDescription": "તમામ પ્રદાતાઓમાં ખર્ચને ટ્રૅક કરો, વલણોનું વિશ્લેષણ કરો અને તમારા AI બજેટનું સંચાલન કરો",
+ "cacheDescription": "પ્રદાતાની પ્રોમ્પ્ટ કૅશ કાર્યક્ષમતા અને સ્થાનિક સિમેન્ટિક પ્રતિસાદના પુનઃઉપયોગ પર નજર રાખો.",
+ "limitsDescription": "દરેક API કી અને પ્રદાતા માટે દર મર્યાદાઓ અને ક્વોટા ગોઠવો",
+ "runtimeDescription": "લાઇવ રનટાઇમ અવલોકનક્ષમતા — સર્કિટ બ્રેકર્સ, કૂલડાઉન્સ, મોડેલ લૉકઆઉટ્સ, સેશન્સ અને ક્વોટા ચેતવણીઓ",
+ "apiManagerDescription": "તમારા OmniRoute ઇન્સ્ટન્સ માટે API કીઓ અને ઍક્સેસ નિયંત્રણનું સંચાલન કરો",
+ "batchDescription": "બૅચ કરેલા API કૉલ્સ વડે મોટી સંખ્યામાં વિનંતીઓની અસુમેળ રીતે પ્રક્રિયા કરો",
+ "contextCavemanDescription": "નિયમ-આધારિત સંદેશ સંકોચન, ભાષા પૅક્સ, એનાલિટિક્સ અને આઉટપુટ મોડ નિયંત્રણો.",
+ "contextRtkDescription": "ટૂલ આઉટપુટ, ટર્મિનલ લૉગ્સ અને બિલ્ડ પરિણામો માટે કમાન્ડ-અવેર સંકોચન.",
+ "contextCombosDescription": "વિવિધ રાઉટિંગ પરિસ્થિતિઓ માટે એન્જિનોને કેવી રીતે સંયોજિત કરવામાં આવે તે નિર્ધારિત કરો.",
+ "changelogDescription": "પ્લેટફોર્મની નવીનતમ સુવિધાઓ અને ઘોષણાઓથી માહિતગાર રહો.",
+ "agentsDescription": "AI એજન્ટ ટૂલ્સનું સંચાલન અને રૂપરેખાંકન કરો: Codex, Devin, Jules અને કસ્ટમ એજન્ટ્સ",
+ "cloudAgentsDescription": "લાઇવ કાર્ય ટ્રૅકિંગ અને યોજના મંજૂરી સાથે ક્લાઉડ-આધારિત AI એજન્ટ્સનું સંકલન કરો",
+ "memoryDescription": "સિમેન્ટિક શોધ અને FTS5 ફુલ-ટેક્સ્ટ ઇન્ડેક્સિંગ સાથે સ્થાયી વાર્તાલાપ મેમરી",
+ "skillsDescription": "સ્વચાલિત પ્રોમ્પ્ટ અને ટૂલ અમલીકરણ માટે સૅન્ડબૉક્સ સ્કિલ્સ ઇન્સ્ટોલ કરો અને તેનું સંચાલન કરો",
+ "agentSkillsDescription": "AI ક્લાયન્ટ એકીકરણ માટે એક-ક્લિક URL કૉપી સાથે એજન્ટ-રેડી સ્કિલ્સ કૅટલૉગ",
+ "translatorDescription": "API ફોર્મેટ્સમાં પ્રોમ્પ્ટ્સનું ભાષાંતર અને પરીક્ષણ કરો: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "લાઇવ પ્રદાતા પ્રતિસાદો અને ફોર્મેટ નિરીક્ષણ સાથે પ્રોમ્પ્ટ્સનું ઇન્ટરેક્ટિવ રીતે પરીક્ષણ કરો",
+ "searchToolsDescription": "શોધ એનાલિટિક્સ, પ્રદાતા વિભાજન, કૅશ હિટ દરો અને ખર્ચ ટ્રૅકિંગ",
+ "logsDescription": "રીઅલ-ટાઇમ વિનંતી લૉગ્સ, ભૂલ ટ્રેસિસ અને સ્ટ્રીમિંગ ઇવેન્ટ ઇન્સ્પેક્ટર",
+ "auditDescription": "API કીના ઉપયોગ, MCP ટૂલ કૉલ્સ અને નીતિ ઇવેન્ટ્સની અનુપાલન ઑડિટ ટ્રેઇલ",
+ "webhooksDescription": "રીઅલ-ટાઇમ ઇવેન્ટ સૂચનાઓ મેળવવા માટે વેબહૂક એન્ડપોઇન્ટ્સ ગોઠવો",
+ "healthDescription": "સિસ્ટમની સ્થિતિનું વિહંગાવલોકન: પ્રદાતાઓ, સર્કિટ બ્રેકર્સ, દર મર્યાદાઓ અને ડેટાબેઝ",
+ "proxyDescription": "આઉટબાઉન્ડ પ્રોવાઇડર કનેક્શન્સ માટે અપસ્ટ્રીમ પ્રોક્સી સેટિંગ્સ ગોઠવો",
+ "apiEndpointsDescription": "કસ્ટમ API એન્ડપોઇન્ટ કન્ફિગરેશન્સ અને રૂટિંગ ઓવરરાઇડ્સનું સંચાલન કરો",
+ "batchFilesDescription": "બૅચ જોબની આઉટપુટ ફાઇલો અને પરિણામો બ્રાઉઝ કરો અને સંચાલિત કરો",
+ "analyticsEvalsDescription": "મોડલ મૂલ્યાંકનનાં પરિણામો અને પ્રદર્શન બેન્ચમાર્ક્સ",
+ "analyticsSearchDescription": "સર્ચ ક્વેરી એનાલિટિક્સ, કૅશ હિટ રેટ્સ અને ખર્ચ ટ્રૅકિંગ",
+ "analyticsUtilizationDescription": "પ્રોવાઇડર ઉપયોગિતા મેટ્રિક્સ અને ક્ષમતા આયોજન",
+ "analyticsComboHealthDescription": "કોમ્બો રૂટિંગ કન્ફિગરેશન્સની રીઅલ-ટાઇમ સ્થિતિ અને કામગીરી",
+ "analyticsCompressionDescription": "કૉન્ટેક્સ્ટ કમ્પ્રેશન એનાલિટિક્સ અને ટોકન બચત",
+ "costsBudgetDescription": "દરેક API કી અને પ્રોવાઇડર માટે બજેટ મર્યાદાઓ અને ખર્ચ ચેતવણીઓ",
+ "costsPricingDescription": "ટોકન ખર્ચની ગણતરી માટે કસ્ટમ કિંમત કન્ફિગરેશન",
+ "logsProxyDescription": "અપસ્ટ્રીમ પ્રોક્સી રિક્વેસ્ટ લૉગ્સ અને ટ્રાફિક નિરીક્ષણ",
+ "logsConsoleDescription": "ઍપ્લિકેશન કન્સોલ આઉટપુટ અને ડિબગ લૉગ્સ",
+ "logsActivityDescription": "વપરાશકર્તાની ક્રિયાઓ અને સિસ્ટમ ઇવેન્ટ્સની ઑડિટ ટ્રેલ",
+ "auditMcpDescription": "MCP ટૂલ ઇન્વોકેશન ઑડિટ ટ્રેલ અને અનુપાલન રેકોર્ડ્સ",
"auditA2a": "A2A ઓડિટ",
"auditA2aDescription": "A2A ટાસ્ક એક્ઝિક્યુશન ઓડિટ ટ્રેઇલ, સ્ટેટ ટ્રાન્ઝિશન અને સ્કિલ ઇન્વોકેશન રેકોર્ડ્સ",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "થીમ, બ્રાન્ડિંગ અને દૃશ્યાત્મક કસ્ટમાઇઝેશન",
+ "settingsAiDescription": "AI વર્તણૂકો, વિચારણા બજેટ્સ, વિઝન અને મેમરી સેટિંગ્સ",
"settingsCacheDescription": "મોડલ કેટલોગ કેશ એન્ટ્રીઓ માટે TTL",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "પ્રમાણીકરણ, અધિકૃતતા અને ઍક્સેસ કંટ્રોલ સેટિંગ્સ",
"featureFlags": "લક્ષણ ફ્લેગ્સ",
"featureFlagsDescription": "નિયંત્રણ સિસ્ટમ ક્ષમતાઓ અને પ્રાયોગિક સુવિધાઓ",
"featureFlagsActive": "{count} સક્રિય",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "કોઈ ફ્લેગ તમારી શોધ સાથે મેળ ખાતા નથી",
"featureFlagsSaved": "ધ્વજ અપડેટ કર્યો",
"featureFlagsError": "ફ્લેગ અપડેટ કરવામાં નિષ્ફળ",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "રૂટિંગ નિયમો, મોડલ ઉપનામો, કોમ્બો ડિફૉલ્ટ્સ અને ડિગ્રેડેશન સેટિંગ્સ",
+ "settingsResilienceDescription": "સર્કિટ બ્રેકર, પુનઃપ્રયાસ અને ફૉલબૅક કન્ફિગરેશન",
+ "settingsAdvancedDescription": "અદ્યતન પેલોડ નિયમો, રિક્વેસ્ટ મર્યાદાઓ અને પ્રોક્સી API સેટિંગ્સ",
+ "mitmProxyDescription": "ટ્રાફિક નિરીક્ષણ અને ડિબગિંગ માટે MITM પ્રોક્સી સેટિંગ્સ ગોઠવો",
+ "oneProxyDescription": "અદ્યતન પ્રોક્સી ચેઇનિંગ માટે 1Proxy સેટિંગ્સ ગોઠવો",
"omniSkillsDescription": "સ્વચાલિત પ્રોમ્પ્ટ અને ટૂલ એક્ઝિક્યુશન માટે સેન્ડબોક્સ સ્કિલ્સ ઇન્સ્ટોલ અને મેનેજ કરો"
},
"cloudSyncStatus": {
@@ -1757,8 +1761,8 @@
"quotaShare": "ક્વોટા શેર",
"discovery": "ડિસ્કવરી",
"freeProviderRankings": "ફ્રી પ્રોવાઇડર રેન્કિંગ્સ",
- "radar": "Radar",
- "setup": "Setup",
+ "radar": "રડાર",
+ "setup": "સેટઅપ",
"freeTiers": "ફ્રી ટાયર્સ",
"gamification": "ગેમિફિકેશન",
"leaderboard": "લીડરબોર્ડ",
@@ -1780,53 +1784,53 @@
"orchestration": "ઓર્કેસ્ટ્રેશન"
},
"home": {
- "quickStart": "Quick Start",
- "quickStartDesc": "Get up and running in 4 steps. Connect providers, route models, monitor everything.",
- "fullDocs": "Full Docs",
- "step1Title": "1. Create API key",
+ "quickStart": "ઝડપી શરૂઆત",
+ "quickStartDesc": "4 પગલાંમાં સેટઅપ કરીને શરૂ કરો. પ્રોવાઇડર્સને કનેક્ટ કરો, મોડલ્સને રૂટ કરો અને દરેક બાબતનું નિરીક્ષણ કરો.",
+ "fullDocs": "સંપૂર્ણ દસ્તાવેજીકરણ",
+ "step1Title": "1. API કી બનાવો",
"step1Desc": "Go to --permission-mode auto સિક્યોરિટી ક્લાસિફાયરને સિન્થેટિક એલાઉ રિસ્પોન્સ સાથે શોર્ટ-સર્કિટ કરો જેથી ફોલબેક રૂટ્સ બંધ ન થઈ જાય. ડિફોલ્ટ રૂપે બંધ.",
"classifierCompatCycle": "ચક્ર: off → auto → always",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "મોડલ ડિસ્કવરી પછી ~/.codex/*.config.toml ફરીથી જનરેટ કરો.",
"claudeProfiles": "Claude Code પ્રોફાઇલ્સ",
"claudeProfilesDescription": "મોડલ ડિસ્કવરી પછી દરેક ~/.claude/profiles/…/settings.json ફરીથી જનરેટ કરો.",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "કોઈ સક્રિય પ્રદાતા નથી",
+ "noActiveProvidersDesc": "CLI સાધનો ગોઠવવા માટે કૃપા કરીને પહેલા પ્રદાતાઓ ઉમેરો અને કનેક્ટ કરો.",
+ "mapModels": "મોડેલો મેપ કરો",
+ "testConnection": "કનેક્શન ચકાસો",
+ "connectionStatus": "કનેક્શનની સ્થિતિ",
+ "configureEndpoint": "એન્ડપોઇન્ટ ગોઠવો",
+ "instructions": "સૂચનાઓ",
+ "modelMapping": "મોડેલ મેપિંગ",
"reasoningEffort": "{model} માટે રીઝનિંગ પ્રયાસ",
"effortNone": "કોઈ નહીં",
"effortLow": "ઓછો",
@@ -2743,62 +2747,62 @@
"modelAliases": "મોડેલ ઉપનામો",
"addModel": "મોડેલ ઉમેરો",
"routeModelPlaceholder": "{model} ને અહીં રૂટ કરો...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "મૂળ URL",
+ "apiKey": "API કી",
+ "configured": "રૂપરેખાંકિત",
+ "notConfigured": "રૂપરેખાંકિત નથી",
+ "notInstalled": "ઇન્સ્ટોલ કરેલું નથી",
+ "custom": "કસ્ટમ",
+ "unknown": "અજ્ઞાત",
+ "lastSavedAt": "છેલ્લે સાચવ્યું: {date}",
+ "never": "ક્યારેય નહીં",
+ "justNow": "હમણાં જ",
+ "minutesAgoShort": "{count} મિનિટ પહેલાં",
+ "hoursAgoShort": "{count} કલાક પહેલાં",
+ "daysAgoShort": "{count} દિવસ પહેલાં",
+ "monthsAgoShort": "{count} મહિના પહેલાં",
+ "yearsAgoShort": "{count} વર્ષ પહેલાં",
+ "runtimeCheckFailed": "રનટાઇમ તપાસ નિષ્ફળ ગઈ",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "રૂપરેખાંકન સફળતાપૂર્વક સાચવવામાં આવ્યું.",
+ "failedToSave": "રૂપરેખાંકન સાચવવામાં નિષ્ફળતા.",
+ "noApiKeysCreateOne": "કોઈ API કી નથી - Keys પૃષ્ઠમાં એક બનાવો",
+ "defaultOmnirouteKey": "sk_omniroute (ડિફૉલ્ટ)",
+ "selectModel": "મોડેલ પસંદ કરો",
+ "selectModelForAlias": "{alias} માટે મોડેલ પસંદ કરો",
+ "selectModelForTool": "{tool} માટે મોડેલ પસંદ કરો",
+ "select": "પસંદ કરો",
+ "clear": "સાફ કરો",
+ "comingSoon": "ટૂંક સમયમાં ઉપલબ્ધ થશે",
+ "checkingRuntime": "રનટાઇમ સ્થિતિ તપાસી રહ્યાં છીએ...",
+ "guideOnlyIntegration": "માત્ર માર્ગદર્શિકા આધારિત ઇન્ટિગ્રેશન (સ્થાનિક રનટાઇમ જરૂરી નથી)",
+ "cliRuntimeDetected": "CLI રનટાઇમ મળ્યું અને તૈયાર છે",
+ "cliFoundNotRunnable": "CLI મળ્યું પરંતુ ચલાવી શકાય તેમ નથી{reason}",
+ "cliRuntimeNotDetected": "CLI રનટાઇમ મળ્યું નથી",
+ "binary": "બાઇનરી",
+ "configPath": "રૂપરેખાંકન પાથ",
+ "configPathShort": "રૂપરેખાંકન",
+ "failedCheckRuntimeStatus": "રનટાઇમ સ્થિતિ તપાસવામાં નિષ્ફળતા.",
+ "copy": "કૉપિ કરો",
+ "copied": "કૉપિ થયું",
+ "copyConfig": "રૂપરેખાંકન કૉપિ કરો",
+ "saveConfig": "રૂપરેખાંકન સાચવો",
+ "selectionSaved": "પસંદગી સાચવાઈ",
+ "guide": "માર્ગદર્શિકા",
+ "detected": "શોધાયેલ",
+ "notReady": "તૈયાર નથી",
+ "active": "સક્રિય",
+ "inactive": "નિષ્ક્રિય",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM સફળતાપૂર્વક શરૂ થયું!",
+ "mitmStopped": "MITM સફળતાપૂર્વક બંધ થયું!",
+ "failedStart": "MITM શરૂ કરવામાં નિષ્ફળતા",
+ "failedStop": "MITM બંધ કરવામાં નિષ્ફળતા",
+ "saveMappings": "મેપિંગ્સ સાચવો",
+ "mappingsSaved": "મેપિંગ્સ સાચવવામાં આવ્યા!",
+ "failedSaveMappings": "મેપિંગ્સ સાચવવામાં નિષ્ફળતા",
"reasoningEffortDefault": "ડિફૉલ્ટ",
"reasoningEffortHint": "ડિફૉલ્ટ એજન્ટ દ્વારા મોકલવામાં આવેલા રીઝનિંગ એફર્ટને જાળવી રાખે છે",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "વધારે",
"xhigh": "ખૂબ વધારે"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "તે કેવી રીતે કાર્ય કરે છે:",
+ "antigravityHowWorksDesc": "Antigravity Googleના એન્ડપોઇન્ટ પર વિનંતીઓ મોકલે છે. MITM તેમને ઇન્ટરસેપ્ટ કરીને OmniRoute પર રીડાયરેક્ટ કરે છે.",
+ "antigravityStep1": "1. વિનંતીઓને OmniRoute મારફતે રૂટ કરવા માટે MITM શરૂ કરો.",
+ "antigravityStep2Prefix": "2. તમારી hosts ફાઇલમાં",
+ "antigravityStep2Suffix": "ને 127.0.0.1 તરીકે ઉમેરો.",
+ "antigravityStep3": "3. Antigravity ખોલો અને વિનંતીઓ પ્રોક્સી કરવામાં આવશે.",
+ "mitmHowWorksDesc": "{toolName} તેના પ્રદાતાના એન્ડપોઇન્ટ પર વિનંતીઓ મોકલે છે. MITM તેમને ઇન્ટરસેપ્ટ કરીને OmniRoute પર રીડાયરેક્ટ કરે છે.",
+ "mitmStep1": "1. વિનંતીઓને OmniRoute મારફતે રૂટ કરવા માટે MITM શરૂ કરો.",
+ "mitmStep2Prefix": "2. તમારી hosts ફાઇલમાં",
+ "mitmStep2Suffix": "ને 127.0.0.1 તરીકે ઉમેરો.",
+ "mitmStep3": "3. {toolName} ખોલો અને વિનંતીઓ પ્રોક્સી કરવામાં આવશે.",
+ "sudoPasswordRequiredTitle": "Sudo પાસવર્ડ આવશ્યક છે",
+ "sudoPasswordHint": "hosts ફાઇલ અને સિસ્ટમ પ્રોક્સી સેટિંગ્સમાં ફેરફાર કરવા માટે એડમિનિસ્ટ્રેટર પાસવર્ડ આવશ્યક છે.",
+ "enterSudoPassword": "sudo પાસવર્ડ દાખલ કરો",
+ "sudoPasswordRequiredError": "Sudo પાસવર્ડ આવશ્યક છે.",
+ "cancel": "રદ કરો",
+ "confirm": "પુષ્ટિ કરો",
+ "settingsApplied": "સેટિંગ્સ સફળતાપૂર્વક લાગુ કરવામાં આવી!",
+ "failedApplySettings": "સેટિંગ્સ લાગુ કરવામાં નિષ્ફળતા",
+ "settingsReset": "સેટિંગ્સ સફળતાપૂર્વક રીસેટ કરવામાં આવી!",
+ "failedResetSettings": "સેટિંગ્સ રીસેટ કરવામાં નિષ્ફળતા",
+ "backupRestored": "બેકઅપ પુનઃસ્થાપિત કરવામાં આવ્યું!",
+ "failedRestore": "પુનઃસ્થાપિત કરવામાં નિષ્ફળતા",
+ "checkingCli": "{tool} CLI તપાસી રહ્યું છે...",
+ "cliNotRunnable": "{tool} CLI ઇન્સ્ટોલ થયેલું છે પરંતુ ચલાવી શકાતું નથી",
+ "cliNotInstalled": "{tool} CLI ઇન્સ્ટોલ થયેલું નથી",
+ "cliNotDetected": "{tool} CLI શોધાયું નથી",
+ "cliDetectedReady": "{tool} CLI મળી ગયું છે અને તૈયાર છે",
+ "cliFoundFailedHealthcheck": "{tool} CLI મળ્યું, પરંતુ રનટાઇમ હેલ્થચેક નિષ્ફળ ગયું{reason}.",
+ "installCliPrompt": "આ સુવિધાનો ઉપયોગ કરવા માટે કૃપા કરીને {tool} CLI ઇન્સ્ટોલ કરો.",
+ "installCodexPrompt": "ઑટો-અપ્લાય સુવિધાનો ઉપયોગ કરવા માટે કૃપા કરીને Codex CLI ઇન્સ્ટોલ કરો.",
+ "hide": "છુપાવો",
+ "howToInstall": "ઇન્સ્ટોલ કરવાની રીત",
+ "installationGuide": "ઇન્સ્ટોલેશન માર્ગદર્શિકા",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "ઇન્સ્ટોલેશન પછી, ચલાવો",
+ "toVerify": "ચકાસવા માટે.",
+ "current": "વર્તમાન",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "ડિફૉલ્ટ પર રીસેટ કરો",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "લાગુ કરો",
+ "reset": "રીસેટ કરો",
+ "manualConfig": "મેન્યુઅલ કૉન્ફિગ",
+ "backups": "બૅકઅપ્સ",
+ "configBackups": "કૉન્ફિગ બૅકઅપ્સ",
+ "noBackupsYet": "હજુ સુધી કોઈ બૅકઅપ નથી. દરેક લાગુ કરવા અથવા રીસેટ કરવા પહેલાં બૅકઅપ્સ આપમેળે બનાવવામાં આવે છે.",
+ "restore": "પુનઃસ્થાપિત કરો",
+ "backupRestoredReloading": "બૅકઅપ પુનઃસ્થાપિત થયો! સ્થિતિ ફરી લોડ થઈ રહી છે...",
+ "failedRestoreBackup": "બૅકઅપ પુનઃસ્થાપિત કરવામાં નિષ્ફળતા",
+ "applied": "લાગુ થયું!",
+ "failed": "નિષ્ફળ",
+ "resetDone": "રીસેટ થયું!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute ને OpenAI-સુસંગત પ્રદાતા તરીકે કૉન્ફિગર કરાયું છે",
+ "provider": "પ્રદાતા",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "પ્રદાતાઓ",
+ "auth": "પ્રમાણીકરણ",
+ "noApiKeysAvailable": "કોઈ API કી ઉપલબ્ધ નથી",
+ "usingDefaultOmniroute": "ડિફૉલ્ટનો ઉપયોગ થઈ રહ્યો છે: sk_omniroute",
+ "updateConfig": "કૉન્ફિગ અપડેટ કરો",
+ "applyConfig": "કૉન્ફિગ લાગુ કરો",
+ "noBackupsAvailable": "કોઈ બૅકઅપ ઉપલબ્ધ નથી.",
+ "profileSaved": "પ્રોફાઇલ \"{name}\" સાચવાઈ!",
+ "failedSaveProfile": "પ્રોફાઇલ સાચવવામાં નિષ્ફળતા",
+ "profileActivated": "પ્રોફાઇલ સક્રિય થઈ!",
+ "failedActivateProfile": "પ્રોફાઇલ સક્રિય કરવામાં નિષ્ફળતા",
+ "profiles": "પ્રોફાઇલ્સ",
+ "savedProfiles": "સાચવેલી પ્રોફાઇલ્સ",
+ "noProfilesYet": "હજુ સુધી કોઈ પ્રોફાઇલ સાચવેલી નથી. નીચે વર્તમાન કૉન્ફિગને પ્રોફાઇલ તરીકે સાચવો.",
+ "activate": "સક્રિય કરો",
+ "deleteProfile": "પ્રોફાઇલ કાઢી નાખો",
+ "profileNamePlaceholder": "પ્રોફાઇલનું નામ (દા.ત. વ્યક્તિગત ખાતું)",
+ "saveCurrent": "વર્તમાન સાચવો",
+ "codexAuthNotePrefix": "Codex આનો ઉપયોગ કરે છે",
+ "codexAuthNoteMiddle": "સાથે",
+ "codexAuthNoteSuffix": "સ્વતઃ ગોઠવવા માટે \"Apply\" પર ક્લિક કરો.",
+ "claudeManualConfiguration": "Claude CLI - મેન્યુઅલ ગોઠવણી",
+ "codexManualConfiguration": "Codex CLI - મેન્યુઅલ ગોઠવણી",
+ "droidManualConfiguration": "Factory Droid - મેન્યુઅલ ગોઠવણી",
+ "openClawManualConfiguration": "Open Claw - મેન્યુઅલ ગોઠવણી",
+ "clineManualConfiguration": "Cline મેન્યુઅલ ગોઠવણી",
+ "kiloManualConfiguration": "Kilo Code મેન્યુઅલ ગોઠવણી",
+ "whenToUseLabel": "ક્યારે ઉપયોગ કરવો",
+ "openToolDocs": "ટૂલના દસ્તાવેજો ખોલો",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "જ્યારે તમને Claude Code સાથે મજબૂત આયોજન વર્કફ્લો અને બહુવિધ ફાઇલોમાં લાંબા રિફેક્ટરિંગની જરૂર હોય ત્યારે ઉપયોગ કરો.",
+ "codex": "જ્યારે તમારી ટીમ OpenAI Codex CLI પ્રવાહો અને પ્રોફાઇલ-આધારિત પ્રમાણીકરણનું માનકીકરણ કરી ચૂકી હોય ત્યારે ઉપયોગ કરો.",
+ "droid": "જ્યારે તમને ઝડપી કોડિંગ અને કમાન્ડ એક્ઝિક્યુશન લૂપ્સ પર કેન્દ્રિત હળવા ટર્મિનલ એજન્ટની જરૂર હોય ત્યારે ઉપયોગ કરો.",
+ "openclaw": "જ્યારે તમને Open Claw શૈલીનો કોડિંગ એજન્ટ જોઈએ, પરંતુ તેનું રૂટિંગ OmniRoute નીતિઓ મારફતે કરવું હોય ત્યારે ઉપયોગ કરો.",
+ "cline": "જ્યારે તમે એડિટર્સની અંદર કોડિંગ એજન્ટ્સ ગોઠવતા હો અને OmniRoute મોડેલ્સ સાથે માર્ગદર્શિત સેટઅપ ઇચ્છતા હો ત્યારે ઉપયોગ કરો.",
+ "kilo": "જ્યારે તમારો વર્કફ્લો Kilo Code કમાન્ડ્સ અને ઝડપી પુનરાવર્તિત સંપાદનો પર નિર્ભર હોય ત્યારે ઉપયોગ કરો.",
+ "cursor": "જ્યારે Cursor માં કોડિંગ કરતા હો અને તમને OmniRoute મારફતે કસ્ટમ OpenAI-સુસંગત મોડેલ્સની જરૂર હોય ત્યારે ઉપયોગ કરો.",
+ "continue": "જ્યારે IDEs માં Continue ચલાવતા હો અને તમને પોર્ટેબલ JSON-આધારિત પ્રદાતા ગોઠવણીની જરૂર હોય ત્યારે ઉપયોગ કરો.",
+ "opencode": "જ્યારે તમે ટર્મિનલ-નેટિવ એજન્ટ રન અને OpenCode મારફતે સ્ક્રિપ્ટેડ ઓટોમેશન પસંદ કરતા હો ત્યારે ઉપયોગ કરો.",
+ "kiro": "જ્યારે Kiro ને એકીકૃત કરતા હો અને OmniRoute પરથી મોડેલ રૂટિંગને કેન્દ્રિય રીતે નિયંત્રિત કરવા માંગતા હો ત્યારે ઉપયોગ કરો.",
+ "windsurf": "જ્યારે તમને Codeium/Windsurf મોડેલ્સ ધરાવતું અને OmniRoute મારફતે રૂટ કરાયેલું AI-પ્રથમ IDE જોઈએ ત્યારે ઉપયોગ કરો.",
+ "antigravity": "જ્યારે Antigravity/Kiro ટ્રાફિકને MITM મારફતે ઇન્ટરસેપ્ટ કરીને OmniRoute તરફ રૂટ કરવો જરૂરી હોય ત્યારે ઉપયોગ કરો.",
+ "copilot": "જ્યારે તમને Copilot ચેટ-શૈલીનો UX જોઈએ અને સાથે OmniRoute કીઓ તથા રૂટિંગ નિયમો લાગુ કરવા હોય ત્યારે ઉપયોગ કરો.",
+ "amp": "જ્યારે તમને Amp શોર્ટહેન્ડ વર્કફ્લો જોઈએ, પરંતુ તેમ છતાં OmniRoute ઉપનામ અને રૂટિંગ નિયમોનું અમલીકરણ જરૂરી હોય ત્યારે ઉપયોગ કરો.",
+ "hermes": "ઝડપી કાર્યો માટે હળવા, ટર્મિનલ-નેટિવ AI સહાયકની જરૂર હોય ત્યારે ઉપયોગ કરો.",
"hermes-agent": "જ્યારે તમને OmniRoute દ્વારા રૂટ કરાયેલા ડિફૉલ્ટ, ડેલિગેશન, વિઝન અને ઓક્સિલરી મોડેલ્સ સાથે Hermes Agent (Nousresearch દ્વારા) ની જરૂર હોય ત્યારે ઉપયોગ કરો.",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "કસ્ટમ ટૂલ અમલીકરણો અથવા સામાન્ય OpenAI-સુસંગત ગોઠવણીઓ માટે ઉપયોગ કરો."
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "MITM સાથે Google Antigravity IDE",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "કસ્ટમ પ્રોવાઇડર સપોર્ટ સાથે xAI Grok Build TUI કોડિંગ એજન્ટ",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Factory Droid AI સહાયક",
+ "openclaw": "Open Claw AI સહાયક",
+ "cline": "Cline AI કોડિંગ સહાયક CLI",
+ "kilo": "Kilo Code AI સહાયક CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Continue AI સહાયક",
+ "opencode": "OpenCode AI કોડિંગ એજન્ટ (ટર્મિનલ)",
+ "kiro": "Amazon Kiro — AI-સંચાલિત IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp કોડિંગ સહાયક CLI",
+ "hermes": "Hermes AI ટર્મિનલ સહાયક",
"hermes-agent": "Hermes Agent (Nousresearch દ્વારા) - મલ્ટિ-મોડેલ સપોર્ટ (ડેલિગેશન, વિઝન, કમ્પ્રેશન, વગેરે) સાથે અદ્યતન ટર્મિનલ AI",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "સામાન્ય OpenAI-સુસંગત CLI અથવા SDK કૉન્ફિગરેશન જનરેટર",
"aider": "OpenAI-સુસંગત બેઝ URL સાથે Aider AI પેર-પ્રોગ્રામિંગ CLI",
"forge": "કસ્ટમ પ્રોવાઇડર સાથે ForgeCode કોડિંગ એજન્ટ CLI",
"cursor-cli": "હેડલેસ એજન્ટ મોડમાં Cursor Agent CLI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter ઓટોનોમસ કોડિંગ એજન્ટ CLI",
"omp": "Oh My Pi ટર્મિનલ કોડિંગ એજન્ટ",
"letta": "પર્સિસ્ટન્ટ મેમરી અને ટૂલ વપરાશ સાથે Letta CLI એજન્ટ",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI-સુસંગત પ્રદાતા સપોર્ટ સાથે સ્વ-સુધારિત થતું RLM કોડિંગ હાર્નેસ",
"warp": "કસ્ટમ પ્રોવાઇડર સપોર્ટ સાથે Warp AI ટર્મિનલ",
"agent-deck": "Agent Deck મલ્ટિ-એજન્ટ ઓર્કેસ્ટ્રેટર",
"5dive": "5dive — સ્વ-હોસ્ટેડ કોડિંગ એજન્ટ્સનો કાફલો; એક auth પ્રોફાઇલ બધાને OmniRoute તરફ દોરે છે"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "આ સુવિધાનો ઉપયોગ કરવા માટે Cursor Pro એકાઉન્ટ જરૂરી છે.",
+ "1": "Cursor વિનંતીઓને તેના પોતાના સર્વર મારફતે રૂટ કરે છે, તેથી સ્થાનિક એન્ડપોઇન્ટ સપોર્ટેડ નથી. કૃપા કરીને Settings માં Cloud Endpoint સક્ષમ કરો."
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "Settings ખોલો",
+ "desc": "Settings -> Models પર જાઓ"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI API સક્ષમ કરો",
+ "desc": "\"OpenAI API key\" વિકલ્પ સક્ષમ કરો"
},
"3": {
- "title": "Base URL"
+ "title": "બેઝ URL"
},
"4": {
- "title": "API Key"
+ "title": "API કી"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "કસ્ટમ મોડલ ઉમેરો",
+ "desc": "\"View All Model\" -> \"Add Custom Model\" પર ક્લિક કરો"
},
"6": {
- "title": "Select Model"
+ "title": "મોડલ પસંદ કરો"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "કૉન્ફિગ ખોલો",
+ "desc": "Continue કૉન્ફિગરેશન ફાઇલ ખોલો"
},
"2": {
- "title": "API Key"
+ "title": "API કી"
},
"3": {
- "title": "Select Model"
+ "title": "મોડલ પસંદ કરો"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "મોડલ કૉન્ફિગ ઉમેરો",
+ "desc": "તમારા models ઍરેમાં નીચેનું કૉન્ફિગરેશન ઉમેરો:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue JSON કૉન્ફિગ ફાઇલનો ઉપયોગ કરે છે."
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCode ઇન્સ્ટૉલ કરો",
+ "desc": "npm દ્વારા ઇન્સ્ટૉલ કરો: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API કી"
},
"3": {
- "title": "Set Base URL",
+ "title": "બેઝ URL સેટ કરો",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "મોડલ પસંદ કરો"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Thinking વેરિઅન્ટનો ઉપયોગ કરો",
+ "desc": "Thinking મોડલ્સ માટે, --variant high/low/max સાથે ચલાવો (નીચે ઉદાહરણ કમાન્ડ છે)."
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode માટે API કી કૉન્ફિગરેશન જરૂરી છે.",
+ "1": "બેઝ URL ને તમારા OmniRoute એન્ડપોઇન્ટ પર સેટ કરો."
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro Settings ખોલો",
+ "desc": "Settings → AI Provider પર જાઓ"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "બેઝ URL",
+ "desc": "તમારા OmniRoute એન્ડપોઇન્ટનું URL પેસ્ટ કરો"
},
"3": {
- "title": "API Key"
+ "title": "API કી"
},
"4": {
- "title": "Select Model"
+ "title": "મોડલ પસંદ કરો"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro માટે Amazon એકાઉન્ટ જરૂરી છે."
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI Settings ખોલો",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "કસ્ટમ પ્રદાતા ઉમેરો",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "બેઝ URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API કી",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "મોડેલ પસંદ કરો",
+ "desc": "ડ્રોપડાઉનમાંથી મોડેલ પસંદ કરો"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "સ્વતઃ-રૂપરેખાંકિત",
+ "toolCategoriesDesc": "AI કોડિંગ સહાયકોને OmniRoute મારફતે રૂટ કરવા માટે રૂપરેખાંકિત કરો",
+ "allToolsTab": "બધા ટૂલ્સ",
+ "guidedClientsTab": "માર્ગદર્શિત ક્લાયન્ટ્સ",
+ "mitmClientsTab": "MITM ક્લાયન્ટ્સ",
"customCliTab": "કસ્ટમ CLI",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "ટૂલ શ્રેણીઓ",
+ "visibleToolsCount": "{count} ટૂલ્સ ઉપલબ્ધ",
"customCliBuilderTitle": "OpenAI- સુસંગત CLI બિલ્ડર",
"customCliBuilderDescription": "કોઈપણ CLI અથવા SDK માટે env vars અને JSON સ્નિપેટ્સ જનરેટ કરો જે OpenAI- સુસંગત આધાર URL, API કી અને મોડેલ ID સ્વીકારે છે.",
"customCliNoModels": "મૉડલ સિલેક્ટર્સને પૉપ્યુલેટ કરવા માટે ઓછામાં ઓછા એક પ્રદાતાને કનેક્ટ કરો.",
@@ -3199,75 +3203,75 @@
"cliproxyapiVersion": "આવૃત્તિ"
},
"combos": {
- "title": "Combos",
- "description": "Create model combos with weighted routing and fallback support",
+ "title": "કોમ્બોઝ",
+ "description": "ભારાંકિત રૂટિંગ અને ફૉલબૅક સપોર્ટ સાથે મોડેલ કોમ્બોઝ બનાવો",
"autoCatalogTitle": "સ્વતઃ-રાઉટીંગ કેટલોગ",
"autoCatalogTemplateCount": "{count} નમૂનાઓ",
"autoCatalogDescription": "બિલ્ટ-ઇન ઓટો/* કોમ્બોઝ કનેક્ટેડ પ્રદાતાઓ તરફથી ગતિશીલ રીતે ઉકેલાય છે. આમાંથી કોઈપણ ID નો મોડેલ ફીલ્ડ તરીકે ઉપયોગ કરો — કોઈ સેટઅપની જરૂર નથી.",
"autoCatalogExpand": "સ્વતઃ-રાઉટિંગ કેટલોગ વિસ્તૃત કરો",
"autoCatalogCollapse": "સ્વતઃ-રાઉટિંગ કેટલોગ સંકુચિત કરો",
- "createCombo": "Create Combo",
- "editCombo": "Edit Combo",
- "deleteCombo": "Delete Combo",
- "noModels": "No models",
- "noModelsYet": "No models added yet",
- "addModel": "Add Model",
- "addModelToCombo": "Add Model to Combo",
- "routingStrategy": "Routing Strategy",
- "maxRetries": "Max Retries",
- "timeout": "Timeout (ms)",
- "healthcheck": "Healthcheck",
- "priority": "Priority",
- "fallback": "Fallback",
+ "createCombo": "કોમ્બો બનાવો",
+ "editCombo": "કોમ્બો સંપાદિત કરો",
+ "deleteCombo": "કોમ્બો કાઢી નાખો",
+ "noModels": "કોઈ મોડેલ નથી",
+ "noModelsYet": "હજુ સુધી કોઈ મોડેલ ઉમેરાયું નથી",
+ "addModel": "મોડેલ ઉમેરો",
+ "addModelToCombo": "કોમ્બોમાં મોડેલ ઉમેરો",
+ "routingStrategy": "રૂટિંગ વ્યૂહરચના",
+ "maxRetries": "મહત્તમ પુનઃપ્રયાસો",
+ "timeout": "સમયસમાપ્તિ (ms)",
+ "healthcheck": "સ્થિતિ તપાસ",
+ "priority": "પ્રાથમિકતા",
+ "fallback": "ફૉલબૅક",
"roundRobin": "Round Robin",
- "random": "Random",
- "leastLatency": "Least Latency",
- "comboName": "Combo Name",
+ "random": "રેન્ડમ",
+ "leastLatency": "સૌથી ઓછી વિલંબતા",
+ "comboName": "કોમ્બોનું નામ",
"comboNamePlaceholder": "my-combo",
"comboDescription": "વર્ણન",
"comboDescriptionPlaceholder": "આ કોમ્બોનું વર્ણન કરતી વૈકલ્પિક નોંધ",
- "deleteConfirm": "Delete this combo?",
- "noCombosYet": "No combos yet",
- "comboCreated": "Combo created successfully",
- "comboUpdated": "Combo updated successfully",
- "comboDeleted": "Combo deleted",
- "failedCreate": "Failed to create combo",
- "failedUpdate": "Failed to update combo",
- "errorCreating": "Error creating combo",
- "errorUpdating": "Error updating combo",
- "errorDeleting": "Error deleting combo",
- "testFailed": "Test request failed",
- "failedToggle": "Failed to toggle combo",
- "testResults": "Test Results — {name}",
- "resolvedBy": "Resolved by:",
- "more": "+{count} more",
- "reqs": "reqs",
- "success": "success",
- "proxyConfigured": "Proxy configured",
- "copyComboName": "Copy combo name",
- "enableCombo": "Enable combo",
- "disableCombo": "Disable combo",
- "testCombo": "Test combo",
- "duplicate": "Duplicate",
- "proxyConfig": "Proxy configuration",
- "nameRequired": "Name is required",
- "nameInvalid": "Only letters, numbers, -, _, / and . allowed",
- "nameHint": "Letters, numbers, -, _, / and . allowed",
- "priorityDesc": "Sequential fallback: tries model 1 first, then 2, etc.",
- "weightedDesc": "Distributes traffic by weight percentage with fallback",
- "roundRobinDesc": "Circular distribution: each request goes to the next model in rotation",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
- "randomDesc": "Uniform random selection, then fallback to remaining models",
- "leastUsedDesc": "Picks the model with fewest requests, balancing load over time",
- "costOptimizedDesc": "Routes to the cheapest model first based on pricing",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "deleteConfirm": "આ કોમ્બો કાઢી નાખવો છે?",
+ "noCombosYet": "હજુ સુધી કોઈ કોમ્બો નથી",
+ "comboCreated": "કોમ્બો સફળતાપૂર્વક બનાવવામાં આવ્યો",
+ "comboUpdated": "કોમ્બો સફળતાપૂર્વક અપડેટ કરવામાં આવ્યો",
+ "comboDeleted": "કોમ્બો કાઢી નાખવામાં આવ્યો",
+ "failedCreate": "કોમ્બો બનાવવામાં નિષ્ફળતા",
+ "failedUpdate": "કોમ્બો અપડેટ કરવામાં નિષ્ફળતા",
+ "errorCreating": "કોમ્બો બનાવતી વખતે ભૂલ",
+ "errorUpdating": "કોમ્બો અપડેટ કરતી વખતે ભૂલ",
+ "errorDeleting": "કોમ્બો કાઢી નાખતી વખતે ભૂલ",
+ "testFailed": "પરીક્ષણ વિનંતી નિષ્ફળ ગઈ",
+ "failedToggle": "કોમ્બો ટૉગલ કરવામાં નિષ્ફળ",
+ "testResults": "પરીક્ષણ પરિણામો — {name}",
+ "resolvedBy": "આના દ્વારા ઉકેલાયું:",
+ "more": "+{count} વધુ",
+ "reqs": "વિનંતીઓ",
+ "success": "સફળતા",
+ "proxyConfigured": "પ્રોક્સી ગોઠવાયેલ છે",
+ "copyComboName": "કોમ્બોનું નામ કૉપિ કરો",
+ "enableCombo": "કોમ્બો સક્ષમ કરો",
+ "disableCombo": "કોમ્બો અક્ષમ કરો",
+ "testCombo": "કોમ્બોનું પરીક્ષણ કરો",
+ "duplicate": "ડુપ્લિકેટ",
+ "proxyConfig": "પ્રોક્સી ગોઠવણી",
+ "nameRequired": "નામ આવશ્યક છે",
+ "nameInvalid": "ફક્ત અક્ષરો, અંકો, -, _, / અને . માન્ય છે",
+ "nameHint": "અક્ષરો, અંકો, -, _, / અને . માન્ય છે",
+ "priorityDesc": "ક્રમિક ફૉલબૅક: પહેલાં મોડેલ 1, પછી 2, વગેરે અજમાવે છે.",
+ "weightedDesc": "ફૉલબૅક સાથે વજનની ટકાવારી પ્રમાણે ટ્રાફિક વિતરિત કરે છે",
+ "roundRobinDesc": "ચક્રીય વિતરણ: દરેક વિનંતી ક્રમમાં આવતા આગલા મોડેલ પર જાય છે",
+ "contextRelay": "સંદર્ભ રિલે",
+ "contextRelayDesc": "એકાઉન્ટ બદલાય ત્યારે હેન્ડઑફ સારાંશો દ્વારા સત્રની સાતત્યતા જાળવે છે",
+ "randomDesc": "એકસરખી રૅન્ડમ પસંદગી, પછી બાકીના મોડેલો પર ફૉલબૅક",
+ "leastUsedDesc": "સમય જતાં લોડને સંતુલિત કરતાં, સૌથી ઓછી વિનંતીઓ ધરાવતું મોડેલ પસંદ કરે છે",
+ "costOptimizedDesc": "કિંમતના આધારે પહેલાં સૌથી સસ્તા મોડેલ પર રૂટ કરે છે",
+ "cacheOptimizedDesc": "દરેક પુનઃઉપયોગી પ્રૉમ્પ્ટ ઉપસર્ગને સતત એ જ પ્રદાતા એકાઉન્ટ પર રૂટ કરે છે",
"resetAware": "રીસેટ-અવેર આરઆર",
"resetAwareDesc": "5h અને સાપ્તાહિક રીસેટ સામે બાકી રહેલા ક્વોટાને બેલેન્સ કરો, પછી રાઉન્ડ-રોબિન સમાન સ્કોર્સ",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "ક્વોટા-ભારિત",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "કડક રૅન્ડમ",
+ "strictRandomDesc": "શફલ ડેક — ફરી શફલ કરતાં પહેલાં દરેક મોડેલનો એક વાર ઉપયોગ કરે છે",
"fusion": "ફ્યુઝન",
"fusionDesc": "પ્રોમ્પ્ટને સમાંતર રીતે દરેક પેનલ મોડેલ પર મોકલે છે, પછી જજ મોડેલ એક અંતિમ જવાબ તૈયાર કરે છે",
"fusionJudgeModel": "જજ મોડેલ",
@@ -3278,27 +3282,27 @@
"fusionStragglerGraceMsHelp": "એકવાર કોરમ પૂર્ણ થઈ જાય પછી ધીમા પેનલ મોડેલ્સ માટે કેટલો સમય રાહ જોવી (ડિફૉલ્ટ 8000).",
"fusionPanelHardTimeoutMs": "પેનલ હાર્ડ ટાઈમઆઉટ (ms)",
"fusionPanelHardTimeoutMsHelp": "ચોક્કસ મર્યાદા જેથી એક અટકી ગયેલું મોડેલ આખી પેનલને રોકી ન શકે (ડિફૉલ્ટ 90000).",
- "models": "Models",
- "autoBalance": "Auto-balance",
- "advancedSettings": "Advanced Settings",
- "retryDelay": "Retry Delay (ms)",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
- "advancedHint": "Leave empty to use global defaults. These override per-provider settings.",
+ "models": "મોડેલો",
+ "autoBalance": "સ્વતઃ-સંતુલન",
+ "advancedSettings": "અદ્યતન સેટિંગ્સ",
+ "retryDelay": "પુનઃપ્રયાસ વિલંબ (ms)",
+ "concurrencyPerModel": "સમાંતરતા / મોડેલ",
+ "queueTimeout": "કતાર સમયસમાપ્તિ (ms)",
+ "contextRelayHandoffThreshold": "હેન્ડઑફ થ્રેશોલ્ડ",
+ "contextRelayHandoffThresholdHelp": "જ્યારે ક્વોટાનો ઉપયોગ આ થ્રેશોલ્ડ સુધી પહોંચે છે, ત્યારે સક્રિય એકાઉન્ટનો ક્વોટા સમાપ્ત થાય તે પહેલાં OmniRoute સંરચિત હેન્ડઑફ સારાંશ બનાવે છે.",
+ "contextRelayMaxMessages": "સારાંશ માટે મહત્તમ સંદેશાઓ",
+ "contextRelayMaxMessagesHelp": "તાજેતરના કેટલા ઇતિહાસને રિલે સારાંશમાં સંક્ષિપ્ત કરવો તે મર્યાદિત કરે છે.",
+ "contextRelaySummaryModel": "સારાંશ મોડેલ",
+ "contextRelaySummaryModelHelp": "ફક્ત હેન્ડઓફ સારાંશ જનરેટ કરવા માટે વપરાતું વૈકલ્પિક ઓવરરાઇડ મોડેલ. સક્રિય કોમ્બો મોડેલનો ફરી ઉપયોગ કરવા માટે ખાલી રાખો.",
+ "contextRelayProviderNote": "Context Relay હાલમાં Codex એકાઉન્ટ રોટેશન માટે હેન્ડઓફ જનરેટ કરે છે. શ્રેષ્ઠ સાતત્ય માટે તેને સમાન પ્રદાતાનાં અનેક એકાઉન્ટ સાથે જોડો.",
+ "advancedHint": "વૈશ્વિક ડિફૉલ્ટ્સનો ઉપયોગ કરવા માટે ખાલી રાખો. આ સેટિંગ્સ દરેક પ્રદાતા માટેની સેટિંગ્સને ઓવરરાઇડ કરે છે.",
"failoverBeforeRetry": "ફરી પ્રયાસ કરતા પહેલા નિષ્ફળતા",
"maxSetRetries": "મેક્સ સેટ ફરીથી પ્રયાસો",
"setRetryDelayMs": "ફરીથી પ્રયાસ વિલંબ સેટ કરો (ms)",
- "moveUp": "Move up",
- "moveDown": "Move down",
- "removeModel": "Remove",
- "saving": "Saving...",
+ "moveUp": "ઉપર ખસેડો",
+ "moveDown": "નીચે ખસેડો",
+ "removeModel": "દૂર કરો",
+ "saving": "સાચવી રહ્યું છે...",
"liveNoProviders": "હજી સુધી કોઈ પ્રદાતાઓ જોવા મળ્યા નથી.",
"liveFleetDataHint": "ફ્લીટ ડેટા લાઇવ કૉમ્બો ઇવેન્ટ્સ દ્વારા આવે છે.",
"liveActiveCount": "સક્રિય ({count})",
@@ -3338,43 +3342,43 @@
"playgroundEmptyHint": "રૂટિંગ પાથ જોવા માટે કૉમ્બો પસંદ કરો અને Simulate Route પર ક્લિક કરો.",
"playgroundNoCombosYet": "હજી સુધી કોઈ કૉમ્બો ગોઠવેલ નથી.",
"playgroundCreateFirst": "પહેલા એક બનાવો",
- "weighted": "Weighted",
- "leastUsed": "Least-Used",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "weighted": "ભારાંકિત",
+ "leastUsed": "સૌથી ઓછું વપરાયેલ",
+ "costOpt": "ખર્ચ-ઑપ્ટિમાઇઝ્ડ",
+ "strategyGuideTitle": "આ વ્યૂહરચનાનો ઉપયોગ કેવી રીતે કરવો",
+ "strategyGuideWhen": "ક્યારે ઉપયોગ કરવો",
+ "strategyGuideAvoid": "ક્યારે ટાળવું",
+ "strategyGuideExample": "ઉદાહરણ",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "તમારી પાસે એક પસંદગીનું મોડેલ છે અને તમે ફક્ત નિષ્ફળતા આવે ત્યારે જ ફૉલબૅક ઇચ્છો છો.",
+ "avoid": "તમારે મોડેલો વચ્ચે વિનંતીઓનું વિતરણ કરવાની જરૂર છે.",
+ "example": "આઉટેજ માટે સસ્તા બૅકઅપ સાથેનું મુખ્ય કોડિંગ મોડેલ."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "તમારે મોડેલો વચ્ચે નિયંત્રિત ટ્રાફિક વિભાજનની જરૂર છે.",
+ "avoid": "તમે સમય જતાં સચોટ ભારાંક જાળવી શકતા નથી.",
+ "example": "80% સ્થિર મોડેલ + 20% કૅનરી મોડેલ રોલઆઉટ."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "તમે અનુમાનિત અને સમાન વિતરણ ઇચ્છો છો.",
+ "avoid": "મોડેલો વચ્ચે લેટન્સી અથવા ખર્ચમાં ઘણો તફાવત છે.",
+ "example": "થ્રુપુટ વહેંચવા માટે અનેક એકાઉન્ટ પર સમાન મોડેલ."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "તમે ન્યૂનતમ સેટઅપ સાથે સરળ વિતરણ ઇચ્છો છો.",
+ "avoid": "તમારે ટ્રાફિકની કડક બાંયધરીની જરૂર છે.",
+ "example": "સમકક્ષ મોડેલો સાથે ઝડપી પ્રોટોટાઇપિંગ."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "તમે લાઇવ માંગના આધારે અનુકૂલનશીલ સંતુલન ઇચ્છો છો.",
+ "avoid": "વપરાશ સંતુલનનો લાભ મેળવવા માટે ટ્રાફિક ખૂબ ઓછો છે.",
+ "example": "મિશ્ર વર્કલોડ, જેમાં એક મોડેલ વારંવાર ઓવરલોડ થઈ જાય છે."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "ખર્ચ ઘટાડવો તમારી સર્વોચ્ચ પ્રાથમિકતા છે.",
+ "avoid": "કિંમતનો ડેટા ઉપલબ્ધ નથી અથવા જૂનો છે.",
+ "example": "બૅકગ્રાઉન્ડ અથવા બૅચ જૉબ્સ, જેમાં ઓછા ખર્ચને પ્રાધાન્ય આપવામાં આવે છે."
},
"reset-aware": {
"when": "તમે ક્વોટા ટેલિમેટ્રી અને વિવિધ રીસેટ વિન્ડો સાથે બહુવિધ એકાઉન્ટ્સ પર રૂટ કરો છો.",
@@ -3382,104 +3386,104 @@
"example": "પછીથી 80% એકાઉન્ટ રીસેટ કરતાં કાલે 60% સાપ્તાહિક એકાઉન્ટ રીસેટ કરવાનું પસંદ કરો."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "જ્યારે તમે સંપૂર્ણપણે સમાન વિતરણ ઇચ્છતા હો ત્યારે ઉપયોગ કરો — પુનરાવર્તન પહેલાં દરેક મોડેલનો એકવાર ઉપયોગ થાય છે.",
+ "avoid": "જ્યારે મોડેલોની ગુણવત્તા અથવા લેટન્સી અલગ હોય અને ક્રમ મહત્ત્વનો હોય ત્યારે ટાળો.",
+ "example": "ઉદાહરણ: વપરાશને સમાન રીતે વિતરિત કરવા માટે સમાન મોડેલનાં અનેક એકાઉન્ટ."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "જ્યારે તમે Power-of-Two-Choices અલ્ગોરિધમનો ઉપયોગ કરીને ઓછી લેટન્સીવાળી પસંદગી ઇચ્છતા હો ત્યારે ઉપયોગ કરો.",
+ "avoid": "2 અથવા તેનાથી ઓછા મોડેલ ધરાવતા નાના કોમ્બો માટે ટાળો — રાઉન્ડ-રોબિનની સરખામણીમાં કોઈ લાભ નથી.",
+ "example": "ઉદાહરણ: 4+ સમકક્ષ મોડેલ એન્ડપૉઇન્ટ્સ પર ઉચ્ચ-થ્રુપુટ ઇન્ફરન્સ."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "જ્યારે લાંબા સત્રોએ કાર્યરત સંદર્ભ ગુમાવ્યા વિના એકાઉન્ટ રોટેશન દરમિયાન ચાલુ રહેવું જરૂરી હોય ત્યારે ઉપયોગ કરો.",
+ "avoid": "જ્યારે એકાઉન્ટ સ્વિચિંગ ભાગ્યે જ થતું હોય અથવા તમે વધારાની સારાંશ વિનંતીઓ ન ઇચ્છતા હો ત્યારે ટાળો.",
+ "example": "ઉદાહરણ: ક્વોટા લગભગ સમાપ્ત થાય ત્યારે અનેક એકાઉન્ટ વચ્ચે ફેરવાતા Codex સત્રો."
},
"fill-first": {
- "when": "Use when you want to fully exhaust one provider's quota before moving to the next.",
- "avoid": "Avoid when you need request-level load balancing across providers.",
- "example": "Example: Use all $200 Deepgram credits before falling back to Groq."
+ "when": "આગલા પ્રદાતા પર જતા પહેલાં જ્યારે તમે એક પ્રદાતાનો ક્વોટા સંપૂર્ણપણે વાપરી લેવા માંગતા હો ત્યારે ઉપયોગ કરો.",
+ "avoid": "જ્યારે તમને પ્રદાતાઓ વચ્ચે વિનંતી-સ્તરનું લોડ બેલેન્સિંગ જરૂરી હોય ત્યારે ટાળો.",
+ "example": "ઉદાહરણ: Groq પર પાછા જતાં પહેલાં તમામ $200 Deepgram ક્રેડિટનો ઉપયોગ કરો."
},
"auto": {
- "when": "Use when you need multi-factor scoring routing based on cost, latency, and quality.",
- "avoid": "Avoid when you need strict priority ordering or historical persistence.",
- "example": "Example: Balance requests across models with different strengths."
+ "when": "જ્યારે તમને ખર્ચ, વિલંબતા અને ગુણવત્તાના આધારે બહુ-પરિબળ સ્કોરિંગ રૂટિંગની જરૂર હોય ત્યારે ઉપયોગ કરો.",
+ "avoid": "જ્યારે તમને કડક પ્રાથમિકતા ક્રમ અથવા ઐતિહાસિક સ્થાયિત્વની જરૂર હોય ત્યારે ટાળો.",
+ "example": "ઉદાહરણ: જુદી-જુદી ક્ષમતાઓ ધરાવતા મોડલ વચ્ચે વિનંતીઓનું સંતુલન કરો."
},
"lkgp": {
- "when": "Use when you want to route based on historical success rates and performance.",
- "avoid": "Avoid when historical data is limited or unreliable.",
- "example": "Example: Route to models with a good track record on specific tasks."
+ "when": "જ્યારે તમે ઐતિહાસિક સફળતા દરો અને પ્રદર્શનના આધારે રૂટ કરવા માંગતા હો ત્યારે ઉપયોગ કરો.",
+ "avoid": "જ્યારે ઐતિહાસિક ડેટા મર્યાદિત અથવા અવિશ્વસનીય હોય ત્યારે ટાળો.",
+ "example": "ઉદાહરણ: ચોક્કસ કાર્યોમાં સારો ટ્રેક રેકોર્ડ ધરાવતા મોડલ તરફ રૂટ કરો."
},
"context-optimized": {
- "when": "Use when you need to optimize context window usage across models.",
- "avoid": "Avoid when models have similar context lengths or tasks are simple.",
- "example": "Example: Distribute long conversations across models with larger context windows."
+ "when": "જ્યારે તમારે મોડલમાં કોન્ટેક્સ્ટ વિન્ડોના ઉપયોગને શ્રેષ્ઠ બનાવવાની જરૂર હોય ત્યારે ઉપયોગ કરો.",
+ "avoid": "જ્યારે મોડલની કોન્ટેક્સ્ટ લંબાઈ સમાન હોય અથવા કાર્યો સરળ હોય ત્યારે ટાળો.",
+ "example": "ઉદાહરણ: લાંબી વાતચીતોને વધુ મોટી કોન્ટેક્સ્ટ વિન્ડો ધરાવતા મોડલમાં વિતરિત કરો."
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "વિનંતી નિષ્ફળ જાહેર થાય તે પહેલાં કેટલા પુનઃપ્રયાસ કરવામાં આવે છે.",
+ "retryDelay": "પુનઃપ્રયાસો વચ્ચેનો પ્રારંભિક પ્રતીક્ષા સમય. વધુ મૂલ્યો અચાનક વધતા દબાણને ઘટાડે છે.",
+ "timeout": "રદ કરતાં પહેલાં વિનંતીનો મહત્તમ સમયગાળો.",
+ "healthcheck": "રૂટિંગના નિર્ણયોમાંથી અસ્વસ્થ મોડલ/પ્રદાતાઓને બાકાત રાખે છે.",
+ "concurrencyPerModel": "રાઉન્ડ-રોબિનમાં પ્રતિ મોડલ મંજૂર એકસાથે થતી વિનંતીઓની મહત્તમ સંખ્યા.",
+ "queueTimeout": "સમયસમાપ્તિ થાય તે પહેલાં વિનંતી કતારમાં કેટલો સમય રાહ જોઈ શકે છે.",
"failoverBeforeRetry": "જ્યારે સક્ષમ હોય, ત્યારે કોઈપણ અપસ્ટ્રીમ ભૂલ આગામી કોમ્બો લક્ષ્ય પર તાત્કાલિક નિષ્ફળતાને ટ્રિગર કરે છે, તમામ પુનઃપ્રયાસો અને ફોલબેક URL ને છોડીને.",
"maxSetRetries": "જ્યારે દરેક લક્ષ્ય નિષ્ફળ જાય ત્યારે સંપૂર્ણ લક્ષ્ય સેટ કરવાનો ફરીથી પ્રયાસ કરવાની સંખ્યા. 0 = કોઈ સેટ-લેવલ પુનઃપ્રયાસ નથી.",
"setRetryDelayMs": "સેટ-લેવલના પુનઃપ્રયાસના પ્રયાસો વચ્ચે વિલંબ, ક્ષણિક સમસ્યાઓ ઉકેલવા માટે સમય આપે છે.",
"disableSessionStickiness": "પ્રથમ-સંદેશ હેશ દ્વારા સમગ્ર વાતચીતને એક કનેક્શન પર પિન કરવાને બદલે દરેક વિનંતી પર અલગ કનેક્શન પર ફેરવો. વૈશ્વિક ડિફૉલ્ટને ઓવરરાઇડ કરે છે. મલ્ટિ-ટર્ન ચેટ્સ માટે પ્રોમ્પ્ટ-કૅશ હિટ્સ સાચવવા માટે Inherit પર રહેવા દો."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "ઝડપી ટેમ્પ્લેટ્સ",
+ "templatesDescription": "પ્રારંભિક પ્રોફાઇલ લાગુ કરો, પછી મોડલ અને કૉન્ફિગ સમાયોજિત કરો.",
+ "templateApply": "ટેમ્પ્લેટ લાગુ કરો",
+ "templateHighAvailability": "ઉચ્ચ ઉપલબ્ધતા",
+ "templateHighAvailabilityDesc": "હેલ્થ ચેક્સ અને સુરક્ષિત પુનઃપ્રયાસો સાથે પ્રાથમિકતા રૂટિંગ.",
+ "templateCostSaver": "ખર્ચ બચત",
+ "templateCostSaverDesc": "બજેટને પ્રાથમિકતા આપતા વર્કલોડ માટે ખર્ચ-ઑપ્ટિમાઇઝ્ડ રૂટિંગ.",
+ "templateBalanced": "સંતુલિત લોડ",
+ "templateBalancedDesc": "સમય જતાં માંગને ફેલાવવા માટે સૌથી ઓછા ઉપયોગવાળું રૂટિંગ.",
+ "usageGuideHide": "છુપાવો",
+ "usageGuideDontShowAgain": "ફરી બતાવશો નહીં",
+ "usageGuideShow": "માર્ગદર્શિકા બતાવો",
+ "quickTestTitle": "કોમ્બો ચકાસણી માટે તૈયાર છે",
+ "quickTestDescription": "ફૉલબૅક અને વિલંબતાની વર્તણૂકની પુષ્ટિ કરવા માટે હમણાં પરીક્ષણ ચલાવો.",
+ "testNow": "હમણાં પરીક્ષણ કરો",
+ "pricingCoverage": "કિંમત કવરેજ",
+ "pricingCoverageHint": "જ્યારે તમામ કોમ્બો મોડલ માટે કિંમત ઉપલબ્ધ હોય ત્યારે ખર્ચ-ઑપ્ટિમાઇઝ્ડ શ્રેષ્ઠ રીતે કાર્ય કરે છે.",
+ "pricingAvailable": "કિંમત ઉપલબ્ધ છે",
+ "pricingMissing": "કિંમત ઉપલબ્ધ નથી",
+ "pricingAvailableShort": "કિંમત ધરાવે છે",
+ "pricingMissingShort": "કિંમત વિનાનું",
"fallbackOnlyOnQuotaExhaustion": "ફક્ત ક્વોટા થાકવા પર આગળ વધો",
"fallbackOnlyOnQuotaExhaustionShort": "ક્વોટા-માત્ર ફોલબેક",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
- "readinessCheckPricing": "Pricing data is available",
- "readinessCheckPricingOptional": "Pricing rule not required",
- "saveBlockedTitle": "Save is blocked until the following items are fixed:",
- "saveBlockName": "Define a combo name.",
- "saveBlockModels": "Add at least one model.",
- "saveBlockWeighted": "Set weights to 100% (current: {total}%).",
- "saveBlockPricing": "Add pricing for at least one model or choose a different strategy.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "warningRoundRobinSingleModel": "રાઉન્ડ-રોબિન ઓછામાં ઓછા 2 મોડલ સાથે સૌથી વધુ ઉપયોગી છે.",
+ "warningCostOptimizedPartialPricing": "{total}માંથી માત્ર {priced} મોડલ માટે કિંમત ઉપલબ્ધ છે. રૂટિંગ આંશિક રીતે ખર્ચ-જાગૃત હોઈ શકે છે.",
+ "warningCostOptimizedNoPricing": "આ કોમ્બો માટે કિંમતનો કોઈ ડેટા મળ્યો નથી. ખર્ચ-ઑપ્ટિમાઇઝ્ડ વ્યૂહરચના અનપેક્ષિત રીતે રૂટ કરી શકે છે.",
+ "filterAll": "બધા",
+ "filterIntelligent": "બુદ્ધિશાળી",
+ "filterDeterministic": "નિર્ધારિત",
+ "filterEmptyTitle": "આ વ્યૂહરચના ફિલ્ટર સાથે કોઈ કોમ્બો મેળ ખાતો નથી.",
+ "filterEmptyIntelligentDescription": "બુદ્ધિશાળી રૂટિંગ ડૅશબોર્ડમાં માહિતી દર્શાવવા માટે auto અથવા LKGP કોમ્બો બનાવો.",
+ "filterEmptyDeterministicDescription": "હાલમાં માત્ર auto અને LKGP કોમ્બો જ ઉપલબ્ધ છે. પાછા બધા પર સ્વિચ કરો અથવા નિર્ધારિત કોમ્બો બનાવો.",
+ "readinessTitle": "સાચવવા માટે તૈયાર છો?",
+ "readinessDescription": "આ કોમ્બો બનાવતા અથવા અપડેટ કરતા પહેલાં ચેકલિસ્ટની સમીક્ષા કરો.",
+ "readinessCheckName": "કોમ્બોનું નામ માન્ય છે",
+ "readinessCheckModels": "ઓછામાં ઓછું એક મોડલ પસંદ કરેલું છે",
+ "readinessCheckWeights": "વેઇટેડ કુલ 100% છે",
+ "readinessCheckWeightsOptional": "વજનનો નિયમ જરૂરી નથી",
+ "readinessCheckPricing": "કિંમતનો ડેટા ઉપલબ્ધ છે",
+ "readinessCheckPricingOptional": "કિંમતનો નિયમ જરૂરી નથી",
+ "saveBlockedTitle": "નીચેની બાબતો સુધારવામાં ન આવે ત્યાં સુધી સાચવવાનું અવરોધિત છે:",
+ "saveBlockName": "કોમ્બોનું નામ નિર્ધારિત કરો.",
+ "saveBlockModels": "ઓછામાં ઓછું એક મોડલ ઉમેરો.",
+ "saveBlockWeighted": "વજન 100% પર સેટ કરો (હાલમાં: {total}%).",
+ "saveBlockPricing": "ઓછામાં ઓછા એક મોડલ માટે કિંમત ઉમેરો અથવા અલગ વ્યૂહરચના પસંદ કરો.",
+ "recommendationsLabel": "ભલામણ કરેલું સેટઅપ",
+ "applyRecommendations": "ભલામણો લાગુ કરો",
+ "recommendationsUpdated": "{strategy} માટે ભલામણો અપડેટ કરવામાં આવી.",
+ "recommendationsApplied": "આ કોમ્બો પર ભલામણો લાગુ કરવામાં આવી.",
+ "intelligentPanelTitle": "બુદ્ધિશાળી રૂટિંગ ડૅશબોર્ડ",
+ "intelligentPanelDesc": "આ auto-routing કોમ્બો માટે રીઅલ-ટાઇમ સ્કોરિંગ અને સ્વાસ્થ્ય સ્થિતિ.",
"configOnlyStatus": "કન્ફિગરેશન વ્યૂ",
"configOnlyHint": "આ પેનલ ફક્ત રૂટિંગ ઇનપુટ્સ બતાવે છે. લાઇવ બ્રેકર સ્થિતિ Health પૃષ્ઠ પર ઉપલબ્ધ છે.",
"routingInputs": "રૂટિંગ ઇનપુટ્સ",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "અજ્ઞાત પ્રદાતા પ્રીફિક્સ.",
"builderDynamicAccountShort": "ડાયનેમિક એકાઉન્ટ",
"builderNeedValidName": "આગળ વધતા પહેલા માન્ય કૉમ્બો નામ વ્યાખ્યાયિત કરો.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "સ્થિતિનું અવલોકન",
+ "normalOperation": "સામાન્ય કામગીરી",
+ "allProvidersHealthy": "પ્રદાતાઓ સ્વસ્થ રૂટિંગ પરિસ્થિતિઓનો અહેવાલ આપી રહ્યા છે.",
+ "incidentMode": "ઘટના મોડ",
+ "highCircuitBreakerRate": "સર્કિટ બ્રેકર ટ્રિપનો ઊંચો દર મળ્યો છે.",
+ "activeModePack": "સક્રિય મોડ પૅક",
+ "modePackUpdated": "મોડ પૅકને {pack} પર અપડેટ કરવામાં આવ્યું.",
+ "modePackHint": "કોમ્બો ફરી બનાવ્યા વિના રૂટિંગ એન્જિનનો ઝુકાવ બદલવા માટે પ્રીસેટ્સ સ્વિચ કરો.",
+ "providerScores": "પ્રદાતા સ્કોર્સ",
+ "allProvidersEvaluated": "કોઈ ઉમેદવાર પૂલ ગોઠવાયેલો નથી. બધા સક્રિય પ્રદાતાઓનું રનટાઇમ દરમિયાન મૂલ્યાંકન થાય છે.",
+ "excludedProviders": "બાકાત રાખેલા પ્રદાતાઓ",
+ "excludedProvidersHint": "OPEN સર્કિટ બ્રેકર ધરાવતા પ્રદાતાઓને રૂટિંગમાંથી અસ્થાયી રીતે બાકાત રાખવામાં આવે છે.",
+ "noExcludedProviders": "હાલમાં કોઈ પ્રદાતાને બાકાત રાખવામાં આવ્યા નથી.",
+ "cooldownMinutes": "કૂલડાઉન: {minutes} મિનિટ",
+ "builderIntelligentTitle": "ઇન્ટેલિજન્ટ રાઉટિંગ કૉન્ફિગરેશન",
+ "builderIntelligentDesc": "આ ઑટો-રાઉટિંગ કોમ્બો માટે મલ્ટિ-ફેક્ટર સ્કોરિંગ એન્જિન કૉન્ફિગર કરો.",
+ "candidatePoolLabel": "ઉમેદવાર પૂલ",
+ "candidatePoolHint": "આ એન્જિને કયા પ્રદાતાઓનું મૂલ્યાંકન કરવું તે પસંદ કરો. બધા સક્રિય પ્રદાતાઓનો ઉપયોગ કરવા માટે ખાલી રાખો.",
+ "candidatePoolEmpty": "હજી સુધી કોઈ સક્રિય પ્રદાતા ઉપલબ્ધ નથી.",
+ "candidatePoolAllProviders": "બધા પ્રદાતાઓ",
+ "modePackLabel": "મોડ પૅક",
+ "routerStrategyLabel": "રાઉટર વ્યૂહરચના",
+ "strategyRules": "નિયમો (6-ફેક્ટર સ્કોરિંગ)",
+ "explorationRateLabel": "અન્વેષણ દર",
+ "explorationRateHint": "{percent}% વિનંતીઓ બિન-શ્રેષ્ઠ પ્રદાતાઓને અજમાવી શકે છે.",
+ "budgetCapLabel": "બજેટ મર્યાદા (USD / વિનંતી)",
+ "budgetCapPlaceholder": "કોઈ મર્યાદા નથી",
+ "advancedWeightsTitle": "અદ્યતન: સ્કોરિંગ વેઇટ્સ",
"nestedComboFlatten": "નેસ્ટેડ કૉમ્બોઝને ફ્લેટન કરો",
"nestedComboExecute": "નેસ્ટેડ કૉમ્બોઝને લક્ષ્યો તરીકે એક્ઝિક્યુટ કરો",
"effectiveRoutingShare": "અસરકારક રૂટિંગ શેર (weight ÷ total)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "ક્વોટા",
+ "weightHealth": "સ્થિતિ",
+ "weightCostInv": "ખર્ચ",
+ "weightLatencyInv": "લેટન્સી",
+ "weightTaskFit": "કાર્ય સુસંગતતા",
+ "weightStability": "સ્થિરતા",
+ "weightTierPriority": "સ્તર",
+ "weightCacheAffinity": "કૅશ હિટ અફિનિટી",
"weightSessionAvailability": "સત્રની ઉપલબ્ધતા",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "ઇન્ટેલિજન્ટ રાઉટિંગ કૉન્ફિગ",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "ફેઇલ-સેફ બેઝલાઇન",
+ "description": "એક પ્રાથમિક મોડલનો ઉપયોગ કરો અને ફૉલબૅક ચેઇનને ટૂંકી અને વિશ્વસનીય રાખો.",
+ "tip1": "તમારું સૌથી વિશ્વસનીય મોડલ પ્રથમ મૂકો.",
+ "tip2": "સમાન ગુણવત્તાવાળા 1-2 બૅકઅપ મોડલ રાખો.",
+ "tip3": "પ્રદાતાની ક્ષણિક નિષ્ફળતાઓને સંભાળવા માટે સુરક્ષિત પુનઃપ્રયાસોનો ઉપયોગ કરો."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "નિયંત્રિત ટ્રાફિક વિભાજન",
+ "description": "કૅનેરી રોલઆઉટ્સ અને મોડલ વચ્ચેના ક્રમિક સ્થળાંતર માટે ઉત્તમ.",
+ "tip1": "90/10 જેવા સાવચેત વિભાજનથી શરૂઆત કરો.",
+ "tip2": "કુલ પ્રમાણ 100% રાખો અને ફેરફારો પછી આપમેળે સંતુલિત કરો.",
+ "tip3": "કૅનેરી વેઇટ વધારતા પહેલાં સફળતા અને લેટન્સીનું નિરીક્ષણ કરો."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "અનુમાનિત લોડ વહેંચણી",
+ "description": "જ્યારે મોડલ સમકક્ષ હોય અને સરળ વિતરણની જરૂર હોય ત્યારે શ્રેષ્ઠ.",
+ "tip1": "ઓછામાં ઓછા 2 મોડલનો ઉપયોગ કરો.",
+ "tip2": "અચાનક થતા ઓવરલોડને ટાળવા માટે કન્કરન્સી મર્યાદાઓ સેટ કરો.",
+ "tip3": "સંતૃપ્તિની સ્થિતિમાં ઝડપથી નિષ્ફળ થવા માટે ક્યૂ ટાઇમઆઉટનો ઉપયોગ કરો."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "ઓછા સેટઅપ સાથે ઝડપી વિતરણ",
+ "description": "કડક ખાતરીઓ વિના સરળ વિતરણની જરૂર હોય ત્યારે ઉપયોગ કરો.",
+ "tip1": "સમાન લેટન્સી પ્રોફાઇલ ધરાવતા મોડેલોનો ઉપયોગ કરો.",
+ "tip2": "અનિયમિત ચૂકને સંભાળવા માટે પુનઃપ્રયાસો સક્ષમ રાખો.",
+ "tip3": "કડક SLAs માટે નહીં, પરંતુ પ્રયોગો માટે આને પ્રાધાન્ય આપો."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "અનુકૂલનશીલ સંતુલન",
+ "description": "સમય જતાં અતિભારવાળા બિંદુઓ ઘટાડવા માટે ઓછા ઉપયોગમાં લેવાતા મોડેલો તરફ રૂટ કરે છે.",
+ "tip1": "સતત ટ્રાફિક હેઠળ વધુ સારી રીતે કાર્ય કરે છે.",
+ "tip2": "વધુ સુરક્ષિત સંતુલન માટે તેને આરોગ્ય તપાસ સાથે જોડો.",
+ "tip3": "વિતરણમાં થયેલા સુધારાની ખાતરી કરવા માટે દરેક મોડેલનો ઉપયોગ ટ્રૅક કરો."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "બજેટ-પ્રથમ રૂટિંગ",
+ "description": "કિંમત સંબંધિત મેટાડેટા ઉપલબ્ધ હોય ત્યારે ઓછા ખર્ચવાળા મોડેલો તરફ રૂટ કરે છે.",
+ "tip1": "પસંદ કરેલા તમામ મોડેલો માટે કિંમતની માહિતી ઉપલબ્ધ હોવાની ખાતરી કરો.",
+ "tip2": "મુશ્કેલ પ્રોમ્પ્ટ્સ માટે ગુણવત્તાયુક્ત ફૉલબૅક રાખો.",
+ "tip3": "જ્યાં ખર્ચ મુખ્ય KPI હોય તેવી બૅચ/બૅકગ્રાઉન્ડ જૉબ્સ માટે ઉપયોગ કરો."
},
"reset-aware": {
"title": "રીસેટ-જાગૃત એકાઉન્ટ રોટેશન",
@@ -3593,155 +3597,155 @@
"tip3": "ટાઈ બેન્ડ નાનો રાખો જેથી સમકક્ષ ખાતા હજુ પણ યોગ્ય રીતે ફરે."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "શફલ ડેક વિતરણ",
+ "description": "ફરીથી શફલ કરતાં પહેલાં દરેક ચક્રમાં દરેક મોડેલનો બરાબર એક વખત ઉપયોગ થાય છે.",
+ "tip1": "અર્થપૂર્ણ વિતરણ માટે ઓછામાં ઓછા 2 મોડેલોનો ઉપયોગ કરો.",
+ "tip2": "સમાન કાર્યક્ષમતા ધરાવતા મોડેલો સાથે શ્રેષ્ઠ રીતે કાર્ય કરે છે.",
+ "tip3": "એકથી વધુ API એકાઉન્ટ્સમાં લોડ બૅલેન્સિંગ માટે આદર્શ છે."
},
"fill-first": {
- "description": "Exhaust provider quotas sequentially before falling back.",
- "tip1": "Use for quota-based routing with clear fallback chains.",
- "tip2": "Set quotas accurately to avoid premature fallback.",
- "tip3": "Works best with providers offering free tiers or credit buckets.",
- "title": "Quota Exhaustion"
+ "description": "ફૉલબૅક કરતાં પહેલાં પ્રદાતાના ક્વોટા ક્રમિક રીતે પૂર્ણપણે વાપરે છે.",
+ "tip1": "સ્પષ્ટ ફૉલબૅક શ્રેણીઓ સાથે ક્વોટા-આધારિત રૂટિંગ માટે ઉપયોગ કરો.",
+ "tip2": "અકાળ ફૉલબૅક ટાળવા માટે ક્વોટા ચોક્કસ રીતે સેટ કરો.",
+ "tip3": "ફ્રી ટિયર અથવા ક્રેડિટ બકેટ્સ આપતા પ્રદાતાઓ સાથે શ્રેષ્ઠ રીતે કાર્ય કરે છે.",
+ "title": "ક્વોટાની પૂર્ણ વપરાશ"
},
"auto": {
- "description": "Route based on real-time scoring for cost, latency, quality, and health.",
- "tip1": "Let the engine balance multiple factors automatically.",
- "tip2": "Monitor which factors drive routing decisions in logs.",
- "tip3": "Use for complex workloads where no single factor dominates.",
- "title": "Multi-Factor Optimization"
+ "description": "ખર્ચ, લેટન્સી, ગુણવત્તા અને આરોગ્ય માટેના રીઅલ-ટાઇમ સ્કોરિંગના આધારે રૂટ કરો.",
+ "tip1": "એન્જિનને અનેક પરિબળોનું આપમેળે સંતુલન કરવા દો.",
+ "tip2": "લૉગ્સમાં કયા પરિબળો રૂટિંગના નિર્ણયો પ્રેરિત કરે છે તેનું નિરીક્ષણ કરો.",
+ "tip3": "જટિલ વર્કલોડ્સ માટે ઉપયોગ કરો જ્યાં કોઈ એક પરિબળનું પ્રભુત્વ ન હોય.",
+ "title": "બહુ-પરિબળ ઑપ્ટિમાઇઝેશન"
},
"lkgp": {
- "description": "Route based on historical performance and success patterns.",
- "tip1": "Requires sufficient request history for accurate predictions.",
- "tip2": "Good for workloads with consistent model performance patterns.",
- "tip3": "Monitor prediction accuracy and adjust weights as needed.",
- "title": "History-Based Routing"
+ "description": "ઐતિહાસિક કાર્યક્ષમતા અને સફળતાની પેટર્નના આધારે રૂટ કરો.",
+ "tip1": "ચોક્કસ આગાહીઓ માટે પૂરતો વિનંતી ઇતિહાસ જરૂરી છે.",
+ "tip2": "સુસંગત મોડેલ કાર્યક્ષમતાની પેટર્ન ધરાવતા વર્કલોડ્સ માટે સારું છે.",
+ "tip3": "આગાહીની ચોકસાઈનું નિરીક્ષણ કરો અને જરૂર મુજબ વેઇટ્સ સમાયોજિત કરો.",
+ "title": "ઇતિહાસ-આધારિત રૂટિંગ"
},
"context-optimized": {
- "description": "Optimize routing based on context window usage and token efficiency.",
- "tip1": "Route long conversations to models with larger context windows.",
- "tip2": "Monitor context utilization to avoid token waste.",
- "tip3": "Best for conversational AI requiring extensive context retention.",
- "title": "Context Optimization"
+ "description": "કૉન્ટેક્સ્ટ વિન્ડોના ઉપયોગ અને ટોકન કાર્યક્ષમતાના આધારે રૂટિંગને ઑપ્ટિમાઇઝ કરો.",
+ "tip1": "લાંબી વાતચીતોને મોટી કૉન્ટેક્સ્ટ વિન્ડો ધરાવતા મોડેલો તરફ રૂટ કરો.",
+ "tip2": "ટોકનનો વ્યય ટાળવા માટે કૉન્ટેક્સ્ટના ઉપયોગનું નિરીક્ષણ કરો.",
+ "tip3": "વ્યાપક કૉન્ટેક્સ્ટ જાળવણીની જરૂર હોય તેવા સંવાદાત્મક AI માટે શ્રેષ્ઠ છે.",
+ "title": "કૉન્ટેક્સ્ટ ઑપ્ટિમાઇઝેશન"
},
"context-relay": {
- "description": "Best when account rotation is expected and the next account must inherit a simplified task summary.",
- "tip1": "Use with providers rotating accounts for the same model family.",
- "tip2": "Set handoff threshold below hard quota cutoffs for summary generation time.",
- "tip3": "Only set a dedicated summary model if the primary is too expensive or unstable.",
- "title": "Session Continuity Priority"
+ "description": "જ્યારે એકાઉન્ટ રોટેશન અપેક્ષિત હોય અને આગામી એકાઉન્ટને સરળ બનાવેલો કાર્ય સારાંશ વારસામાં મળવો જરૂરી હોય ત્યારે શ્રેષ્ઠ.",
+ "tip1": "સમાન મોડેલ ફેમિલી માટે એકાઉન્ટ રોટેટ કરતા પ્રદાતાઓ સાથે ઉપયોગ કરો.",
+ "tip2": "સારાંશ જનરેટ કરવા માટે સમય મળે તે માટે હાર્ડ ક્વોટા કટઓફથી નીચે હેન્ડઓફ થ્રેશોલ્ડ સેટ કરો.",
+ "tip3": "પ્રાથમિક મોડેલ ખૂબ ખર્ચાળ અથવા અસ્થિર હોય તો જ સમર્પિત સારાંશ મોડેલ સેટ કરો.",
+ "title": "સત્ર સાતત્ય પ્રાથમિકતા"
},
"p2c": {
- "description": "Route to the provider with the lowest current load based on real-time metrics.",
- "tip1": "Monitor provider health metrics for accurate load assessment.",
- "tip2": "Works best with homogeneous provider pools.",
- "tip3": "Adjust sensitivity to avoid oscillation during traffic spikes.",
- "title": "Power of Two Choices"
+ "description": "રીઅલ-ટાઇમ મેટ્રિક્સના આધારે હાલમાં સૌથી ઓછો લોડ ધરાવતા પ્રદાતા તરફ રૂટ કરો.",
+ "tip1": "લોડનું સચોટ મૂલ્યાંકન કરવા માટે પ્રદાતાના આરોગ્ય મેટ્રિક્સનું નિરીક્ષણ કરો.",
+ "tip2": "સજાતીય પ્રદાતા પૂલ સાથે શ્રેષ્ઠ રીતે કાર્ય કરે છે.",
+ "tip3": "ટ્રાફિકમાં અચાનક ઉછાળા દરમિયાન વારંવારની અદલાબદલી ટાળવા માટે સંવેદનશીલતા સમાયોજિત કરો.",
+ "title": "બે વિકલ્પોની શક્તિ"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
- "auto": "Intelligent Auto",
- "autoDesc": "Self-healing smart routing pool with multi-factor scoring",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Prioritizes the last provider that successfully completed a request",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "templateFreeStack": "મફત સ્ટેક ($0)",
+ "templateFreeStackDesc": "તમામ મફત પ્રદાતાઓમાં રાઉન્ડ-રોબિન: Kiro (Claude), Qoder (5 મોડેલ), Qwen (4 મોડેલ). શૂન્ય ખર્ચ, કોડિંગ ક્યારેય અટકતું નથી.",
+ "auto": "બુદ્ધિશાળી સ્વચાલિત",
+ "autoDesc": "બહુવિધ પરિબળોના સ્કોરિંગ સાથેનો સ્વ-સુધારક સ્માર્ટ રૂટિંગ પૂલ",
+ "lkgp": "LKGP મોડ",
+ "lkgpDesc": "જે છેલ્લા પ્રદાતાએ વિનંતી સફળતાપૂર્વક પૂર્ણ કરી હતી તેને પ્રાથમિકતા આપે છે",
+ "wizardGuideTitle": "કોમ્બોઝ સાથે શરૂઆત",
+ "wizardGuideDesc": "AI ટ્રાફિકને બુદ્ધિપૂર્વક રૂટ કરવા માટે મોડેલ કોમ્બોઝ બનાવો",
+ "wizardGuideHint": "અથવા ઉપરના + કોમ્બો બનાવો પર ક્લિક કરો",
+ "createFirstCombo": "તમારો પ્રથમ કોમ્બો બનાવો",
+ "wizardStep1Title": "તમારા કોમ્બોને નામ આપો",
+ "wizardStep1Desc": "રૂટિંગ નિયમોમાં ઓળખવા માટે તમારા કોમ્બોને અનન્ય નામ આપો",
+ "wizardStep2Title": "મોડેલ ઉમેરો",
+ "wizardStep2Desc": "AI મોડેલ પસંદ કરો અને તેમનો ફોલબેક પ્રાથમિકતા ક્રમ ગોઠવો",
+ "wizardStep3Title": "વ્યૂહરચના પસંદ કરો",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "સમીક્ષા કરો અને સાચવો",
+ "wizardStep4Desc": "તમારી ગોઠવણીની સમીક્ષા કરો અને કોમ્બોને સક્રિય કરો",
+ "usageGuideInvokeTitle": "આ કોમ્બોને કેવી રીતે કૉલ કરવો",
+ "usageGuideInvokeDesc": "મોડેલ તરીકે કોમ્બોનું ચોક્કસ નામ મોકલો, દા.ત. model: \"my-combo\" (અથવા combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto અને auto/* એક અલગ શૂન્ય-ગોઠવણી રૂટર છે, જે તમારા કોમ્બોઝનો ઉપયોગ કરતું નથી (સિવાય કે કોઈ કોમ્બોનું નામ ખરેખર auto હોય).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto એ વાસ્તવિક ચૂકવેલ OpenRouter ઉત્પાદન (Auto Best Available) છે, OmniRoute ઉપનામ નથી — Settings → Routing → Hide paid models દ્વારા તેને બાકાત રાખો.",
+ "emailVisibilityStateOn": "ચાલુ",
+ "emailVisibilityStateOff": "બંધ",
+ "reorderHandle": "ક્રમ બદલવા માટે ખેંચો",
+ "failedReorder": "મોડેલનો ક્રમ બદલવામાં નિષ્ફળતા",
+ "builderFlowTitle": "કોમ્બો બિલ્ડર પ્રવાહ",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "મૂળભૂત બાબતો",
+ "description": "નામ અને પ્રારંભિક ટેમ્પલેટ"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "પગલાં",
+ "description": "પ્રદાતા, મોડેલ અને એકાઉન્ટની પસંદગી"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "વ્યૂહરચના",
+ "description": "રાઉટિંગ વર્તન અને અદ્યતન સેટિંગ્સ"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "સ્માર્ટ રાઉટિંગ",
+ "description": "સ્વતઃ-રાઉટિંગ ઉમેદવાર સમૂહ, પ્રીસેટ્સ અને સ્કોરિંગ"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "સમીક્ષા",
+ "description": "સાચવતા પહેલાં અંતિમ માન્યતા તપાસ"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
- "builderDuplicateExact": "This exact provider/model/account step is already in the combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
- "builderStagesDescription": "Complete each stage in order to define combos, build steps, select routing strategy, and review results.",
- "builderStepsDescription": "Build each combo step in order: provider, model, then account. This allows reusing the same provider and model across different accounts.",
- "selectProvider": "Select Provider",
- "selectProviderPlaceholder": "Select a provider",
- "selectModel": "Select Model",
- "selectModelPlaceholder": "Select a provider first",
- "selectAccount": "Select Account",
- "selectComboToReference": "Select combo to reference",
- "comboReference": "Combo Reference",
- "addComboReference": "Add Combo Reference",
- "addStepBeforeContinue": "Please add at least one step before proceeding to the next stage.",
- "previewNextStep": "Preview next step",
- "autoSelectAccount": "Automatically select account at runtime",
- "modePackBalanced": "Balanced",
- "modePackBudget": "Budget",
- "modePackPerformance": "Performance",
- "modePackCustom": "Custom",
- "browseLegacyCatalog": "Browse legacy combo catalog",
- "agentFeaturesTitle": "Agent Features",
- "agentFeaturesDescription": "Enable advanced features for agents using this combo",
+ "builderStageVisited": "તબક્કો પૂર્ણ થયો",
+ "builderStageCurrent": "વર્તમાન તબક્કો",
+ "builderStagePending": "બાકી",
+ "builderStageLocked": "લૉક કરેલ — પહેલાં અગાઉનો તબક્કો પૂર્ણ કરો",
+ "builderTitle": "કોમ્બો બનાવો",
+ "builderBrowseCatalog": "કૅટલૉગ બ્રાઉઝ કરો",
+ "builderProvider": "પ્રદાતા",
+ "builderLoadingProviders": "પ્રદાતાઓ લોડ થઈ રહ્યા છે...",
+ "builderSelectProvider": "પ્રદાતા પસંદ કરો",
+ "builderModel": "મોડેલ",
+ "builderSelectModel": "મોડેલ પસંદ કરો",
+ "builderProviderFirst": "પહેલાં પ્રદાતા પસંદ કરો",
+ "builderAccount": "એકાઉન્ટ",
+ "builderPreview": "પૂર્વાવલોકન",
+ "builderAddStep": "પગલું ઉમેરો",
+ "builderDuplicateExact": "આ ચોક્કસ પ્રદાતા/મોડેલ/એકાઉન્ટ પગલું પહેલેથી જ કોમ્બોમાં છે.",
+ "builderComboRef": "કોમ્બો સંદર્ભ",
+ "builderAddComboRef": "કોમ્બો સંદર્ભ ઉમેરો",
+ "builderComboRefStep": "કોમ્બો સંદર્ભ ઉમેરો",
+ "builderPinnedAccount": "પિન કરેલું એકાઉન્ટ",
+ "builderLegacyEntry": "લેગસી એન્ટ્રી",
+ "reviewName": "નામ",
+ "reviewStrategy": "વ્યૂહરચના",
+ "reviewSteps": "પગલાં",
+ "reviewAccounts": "એકાઉન્ટ્સ",
+ "reviewProviders": "પ્રદાતાઓ",
+ "reviewComboRefs": "કોમ્બો સંદર્ભો",
+ "reviewAdvanced": "અદ્યતન સેટિંગ્સ",
+ "reviewAgentFlags": "એજન્ટ ફ્લૅગ્સ",
+ "reviewSequence": "મોડેલ ક્રમ",
+ "reviewNoSteps": "કોઈ પગલાં ગોઠવેલ નથી",
+ "builderStagesDescription": "કોમ્બો નિર્ધારિત કરવા, પગલાં બનાવવા, રાઉટિંગ વ્યૂહરચના પસંદ કરવા અને પરિણામોની સમીક્ષા કરવા માટે દરેક તબક્કો ક્રમમાં પૂર્ણ કરો.",
+ "builderStepsDescription": "દરેક કોમ્બો પગલું આ ક્રમમાં બનાવો: પ્રદાતા, મોડેલ અને પછી એકાઉન્ટ. આનાથી અલગ-અલગ એકાઉન્ટ્સમાં સમાન પ્રદાતા અને મોડેલનો ફરીથી ઉપયોગ કરી શકાય છે.",
+ "selectProvider": "પ્રદાતા પસંદ કરો",
+ "selectProviderPlaceholder": "પ્રદાતા પસંદ કરો",
+ "selectModel": "મોડેલ પસંદ કરો",
+ "selectModelPlaceholder": "પહેલા પ્રદાતા પસંદ કરો",
+ "selectAccount": "એકાઉન્ટ પસંદ કરો",
+ "selectComboToReference": "સંદર્ભ માટે કોમ્બો પસંદ કરો",
+ "comboReference": "કોમ્બો સંદર્ભ",
+ "addComboReference": "કોમ્બો સંદર્ભ ઉમેરો",
+ "addStepBeforeContinue": "આગલા તબક્કામાં આગળ વધતા પહેલાં કૃપા કરીને ઓછામાં ઓછું એક પગલું ઉમેરો.",
+ "previewNextStep": "આગલા પગલાનું પૂર્વાવલોકન કરો",
+ "autoSelectAccount": "રનટાઇમ પર આપમેળે એકાઉન્ટ પસંદ કરો",
+ "modePackBalanced": "સંતુલિત",
+ "modePackBudget": "બજેટ",
+ "modePackPerformance": "પ્રદર્શન",
+ "modePackCustom": "કસ્ટમ",
+ "browseLegacyCatalog": "લેગસી કોમ્બો કેટલોગ બ્રાઉઝ કરો",
+ "agentFeaturesTitle": "એજન્ટ સુવિધાઓ",
+ "agentFeaturesDescription": "આ કોમ્બોનો ઉપયોગ કરતા એજન્ટો માટે અદ્યતન સુવિધાઓ સક્ષમ કરો",
"responseValidationTitle": "પ્રતિસાદ માન્યતા",
"responseValidationHelp": "જ્યારે 200 OK બોડી આ તપાસોમાં નિષ્ફળ જાય (સહાયક સામગ્રી) ત્યારે આગલા લક્ષ્ય પર ફેલ ઓવર કરો.",
"responseValidationForbidden": "પ્રતિબંધિત સબસ્ટ્રિંગ્સ (લાઇન દીઠ એક)",
@@ -3749,13 +3753,13 @@
"responseValidationMinLength": "ન્યૂનતમ સામગ્રી લંબાઈ (અક્ષરો)",
"responseValidationJsonPaths": "JSON-path તપાસો",
"responseValidationAddCheck": "+ તપાસ ઉમેરો",
- "agentFeaturesSystemMessageOverride": "Override system message",
- "agentFeaturesSystemMessagePlaceholder": "You are an expert assistant...",
- "agentFeaturesSystemMessageHint": "System message override for agents",
+ "agentFeaturesSystemMessageOverride": "સિસ્ટમ સંદેશને ઓવરરાઇડ કરો",
+ "agentFeaturesSystemMessagePlaceholder": "તમે એક નિષ્ણાત સહાયક છો...",
+ "agentFeaturesSystemMessageHint": "એજન્ટો માટે સિસ્ટમ સંદેશ ઓવરરાઇડ",
"agentFeaturesToolFilterRegex": "/regex-pattern/",
- "agentFeaturesToolFilterHint": "Tool filter regex for agents",
- "agentFeaturesContextCacheHint": "Enable in-context cache for agent tools",
- "agentFeaturesContextCacheProtection": "Protect cache from agent tool mutations",
+ "agentFeaturesToolFilterHint": "એજન્ટો માટે ટૂલ ફિલ્ટર રેગેક્સ",
+ "agentFeaturesContextCacheHint": "એજન્ટ ટૂલ્સ માટે ઇન-કોન્ટેક્સ્ટ કૅશ સક્ષમ કરો",
+ "agentFeaturesContextCacheProtection": "એજન્ટ ટૂલના ફેરફારોથી કૅશને સુરક્ષિત રાખો",
"agentFeaturesContextLength": "સંદર્ભ લંબાઈ",
"agentFeaturesContextLengthPlaceholder": "દા.ત. 128000 છે",
"agentFeaturesContextLengthHint": "આ કોમ્બો માટે સંદર્ભ વિન્ડોને /v1/models માં વ્યાખ્યાયિત કરે છે.",
@@ -3784,40 +3788,40 @@
"duplicateAutoComboTitle": "{name} માંથી સ્ટેટિક કોમ્બો બનાવો"
},
"costs": {
- "title": "Costs",
- "pageDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "overview": "Overview",
- "budget": "Budget",
- "totalCost": "Total Cost",
- "breakdown": "Cost Breakdown",
- "noData": "No cost data",
- "byModel": "By Model",
- "byProvider": "By Provider",
- "range7d": "7 Days",
- "range30d": "30 Days",
- "range90d": "90 Days",
- "range180d": "180 Days",
- "range365d": "365 Days",
- "rangeAll": "All Time",
- "spend30d": "Spend 30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
- "overviewTitle": "Cost Overview",
- "spend7d": "Spend 7D",
- "avgCostPerRequest": "Avg Cost / Request",
- "noCostDataDescription": "Start making requests to see cost data appear here. Costs are tracked automatically for all providers.",
- "spendToday": "Spend Today",
- "overviewLoadFailed": "Failed to load cost overview",
- "overviewDescription": "Real-time spending breakdown across all connected providers and models",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
- "noCostDataTitle": "No cost data yet",
- "topModels": "Top Models",
- "requestsInWindow": "Requests in Window",
+ "title": "ખર્ચ",
+ "pageDescription": "તમામ પ્રદાતાઓમાં ખર્ચ ટ્રૅક કરો, વલણોનું વિશ્લેષણ કરો અને તમારા AI બજેટનું સંચાલન કરો",
+ "overview": "ઝાંખી",
+ "budget": "બજેટ",
+ "totalCost": "કુલ ખર્ચ",
+ "breakdown": "ખર્ચનું વિભાજન",
+ "noData": "ખર્ચનો કોઈ ડેટા નથી",
+ "byModel": "મોડેલ પ્રમાણે",
+ "byProvider": "પ્રદાતા પ્રમાણે",
+ "range7d": "7 દિવસ",
+ "range30d": "30 દિવસ",
+ "range90d": "90 દિવસ",
+ "range180d": "180 દિવસ",
+ "range365d": "365 દિવસ",
+ "rangeAll": "સમગ્ર સમયગાળો",
+ "spend30d": "30 દિવસનો ખર્ચ",
+ "activeModels": "સક્રિય મોડેલ્સ",
+ "flatRateEstimateNotice": "ફ્લેટ-રેટ સબ્સ્ક્રિપ્શન માટેના ટોકન-કિંમત અંદાજોનો સમાવેશ થાય છે, બિલ કરાયેલ ખર્ચનો નહીં.",
+ "flatRateEstimateForecast": "અનુમાનમાં ફ્લેટ-રેટ અંદાજોનો સમાવેશ થાય છે.",
+ "selectedWindow": "પસંદ કરેલી સમયાવધિ",
+ "activeProviders": "સક્રિય પ્રોવાઇડર્સ",
+ "overviewTitle": "ખર્ચનો સારાંશ",
+ "spend7d": "છેલ્લા 7 દિવસનો ખર્ચ",
+ "avgCostPerRequest": "વિનંતી દીઠ સરેરાશ ખર્ચ",
+ "noCostDataDescription": "ખર્ચનો ડેટા અહીં જોવા માટે વિનંતીઓ કરવાનું શરૂ કરો. બધા પ્રોવાઇડર્સ માટે ખર્ચ આપમેળે ટ્રૅક થાય છે.",
+ "spendToday": "આજનો ખર્ચ",
+ "overviewLoadFailed": "ખર્ચનો સારાંશ લોડ કરવામાં નિષ્ફળતા",
+ "overviewDescription": "બધા કનેક્ટેડ પ્રોવાઇડર્સ અને મોડેલ્સમાં ખર્ચનું રીઅલ-ટાઇમ વિભાજન",
+ "providerShare": "પ્રોવાઇડરનો હિસ્સો",
+ "topProviders": "ટોચના પ્રોવાઇડર્સ",
+ "costTrend": "ખર્ચનું વલણ",
+ "noCostDataTitle": "હજુ સુધી કોઈ ખર્ચ ડેટા નથી",
+ "topModels": "ટોચના મોડેલ્સ",
+ "requestsInWindow": "સમયાવધિમાં વિનંતીઓ",
"tokenUsage": "ટોકન વપરાશ",
"totalTokens": "કુલ ટોકન્સ",
"inputTokens": "ઇનપુટ ટોકન્સ",
@@ -3877,139 +3881,139 @@
"showingTopCostRows": "કુલ {total} મેળ ખાતી પંક્તિઓમાંથી {shown} બતાવવામાં આવી છે (ટોચની 50)."
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
- "available": "Available Endpoints",
+ "title": "API એન્ડપોઇન્ટ",
+ "subtitle": "મોટાભાગના SDKs અને ટૂલ્સ સાથે OpenAI-સુસંગત એન્ડપોઇન્ટનો ઉપયોગ કરો.",
+ "testEndpoint": "એન્ડપોઇન્ટનું પરીક્ષણ કરો →",
+ "advancedProtocols": "અદ્યતન પ્રોટોકોલ્સ",
+ "available": "ઉપલબ્ધ એન્ડપોઇન્ટ્સ",
"cloudProxy": "Cloud Proxy",
- "disableConfirm": "Are you sure you want to disable cloud proxy?",
- "baseUrl": "Base URL",
- "apiKeyLabel": "API Key",
- "registeredKeys": "Registered Keys",
+ "disableConfirm": "શું તમે ખરેખર ક્લાઉડ પ્રોક્સીને અક્ષમ કરવા માંગો છો?",
+ "baseUrl": "બેઝ URL",
+ "apiKeyLabel": "API કી",
+ "registeredKeys": "રજિસ્ટર્ડ કીઝ",
"chatCompletions": "Chat Completions",
- "responses": "Responses",
- "listModels": "List Models",
- "usingCloudProxy": "Using Cloud Proxy",
- "usingLocalServer": "Using Local Server",
- "machineId": "Machine ID: {id}...",
- "disableCloud": "Disable Cloud",
- "enableCloud": "Enable Cloud",
- "modelsAcrossEndpoints": "{models} models across {endpoints} endpoints",
- "loadingModels": "Loading available models...",
- "chatDesc": "Streaming & non-streaming chat with all providers",
- "embeddings": "Embeddings",
- "embeddingsDesc": "Text embeddings for search & RAG pipelines",
- "imageGeneration": "Image Generation",
- "imageDesc": "Generate images from text prompts",
+ "responses": "પ્રતિસાદો",
+ "listModels": "મોડેલ્સની યાદી",
+ "usingCloudProxy": "ક્લાઉડ પ્રોક્સીનો ઉપયોગ થઈ રહ્યો છે",
+ "usingLocalServer": "લોકલ સર્વરનો ઉપયોગ થઈ રહ્યો છે",
+ "machineId": "મશીન ID: {id}...",
+ "disableCloud": "ક્લાઉડ અક્ષમ કરો",
+ "enableCloud": "ક્લાઉડ સક્ષમ કરો",
+ "modelsAcrossEndpoints": "{endpoints} એન્ડપોઇન્ટ્સ પર {models} મોડેલ્સ",
+ "loadingModels": "ઉપલબ્ધ મોડેલ્સ લોડ થઈ રહ્યાં છે...",
+ "chatDesc": "બધા પ્રોવાઇડર્સ સાથે સ્ટ્રીમિંગ અને નોન-સ્ટ્રીમિંગ ચેટ",
+ "embeddings": "એમ્બેડિંગ્સ",
+ "embeddingsDesc": "શોધ અને RAG પાઇપલાઇન્સ માટે ટેક્સ્ટ એમ્બેડિંગ્સ",
+ "imageGeneration": "ઇમેજ જનરેશન",
+ "imageDesc": "ટેક્સ્ટ પ્રોમ્પ્ટ્સમાંથી છબીઓ બનાવો",
"rerank": "Rerank",
- "rerankDesc": "Rerank documents by relevance to a query",
- "audioTranscription": "Audio Transcription",
- "audioTranscriptionDesc": "Transcribe audio files to text (Whisper)",
- "textToSpeech": "Text to Speech",
- "textToSpeechDesc": "Convert text to natural-sounding speech",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
- "moderations": "Moderations",
- "moderationsDesc": "Content moderation and safety classification",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
- "categoryCore": "Core APIs",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
- "categoryUtility": "Utility & Management",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
- "enableCloudTitle": "Enable Cloud Proxy",
- "whatYouGet": "What you will get",
- "cloudBenefitAccess": "Access your API from anywhere in the world",
- "cloudBenefitShare": "Share endpoint with your team easily",
- "cloudBenefitPorts": "No need to open ports or configure firewall",
- "cloudBenefitEdge": "Fast global edge network",
- "cloudSessionNote": "Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.",
- "cloudUnstableNote": "Cloud is currently unstable with Claude Code OAuth in some cases.",
- "cloudConnected": "Cloud Proxy connected!",
- "connectingToCloud": "Connecting to cloud...",
- "verifyingConnection": "Verifying connection...",
- "connecting": "Connecting...",
- "verifying": "Verifying...",
- "connected": "Connected!",
- "disableCloudTitle": "Disable Cloud Proxy",
- "disableWarning": "All auth sessions will be deleted from cloud.",
- "syncingData": "Syncing latest data...",
- "disablingCloud": "Disabling cloud...",
- "syncing": "Syncing...",
- "disabling": "Disabling...",
- "cloudConnectedVerified": "Cloud Proxy connected and verified!",
- "connectedVerificationPending": "Connected — verification pending",
- "connectedVerificationPendingWithError": "Connected — verification pending: {error}",
- "cloudDisabledSuccess": "Cloud disabled successfully",
- "syncedSuccess": "Synced successfully",
- "failedDisable": "Failed to disable cloud",
- "failedEnable": "Failed to enable cloud",
- "cloudRequestTimeout": "Cloud request timeout",
- "cloudRequestFailed": "Cloud request failed",
- "cloudWorkerUnreachable": "Could not reach cloud worker. Make sure the cloud service is running (npm run dev in /cloud).",
- "connectionFailed": "Connection failed",
- "syncFailed": "Failed to sync cloud data",
+ "rerankDesc": "ક્વેરી સાથેની સુસંગતતા અનુસાર દસ્તાવેજોને ફરી ક્રમબદ્ધ કરો",
+ "audioTranscription": "ઑડિયો ટ્રાન્સક્રિપ્શન",
+ "audioTranscriptionDesc": "ઑડિયો ફાઇલોને ટેક્સ્ટમાં ટ્રાન્સક્રાઇબ કરો (Whisper)",
+ "textToSpeech": "ટેક્સ્ટથી સ્પીચ",
+ "textToSpeechDesc": "ટેક્સ્ટને કુદરતી લાગતી વાણીમાં રૂપાંતરિત કરો",
+ "musicGeneration": "સંગીત જનરેશન",
+ "musicDesc": "ComfyUI (Stable Audio, MusicGen) દ્વારા સંગીત અને ઑડિયો ટ્રૅક્સ બનાવો",
+ "moderations": "મોડરેશન્સ",
+ "moderationsDesc": "કન્ટેન્ટ મોડરેશન અને સલામતી વર્ગીકરણ",
+ "responsesDesc": "Codex અને અદ્યતન એજન્ટિક વર્કફ્લોઝ માટે OpenAI Responses API",
+ "listModelsDesc": "બધા કનેક્ટેડ પ્રદાતાઓમાં ઉપલબ્ધ તમામ મોડેલોની યાદી જુઓ",
+ "settingsApiDesc": "API દ્વારા OmniRoute કૉન્ફિગરેશન વાંચો અને તેમાં ફેરફાર કરો",
+ "settingsApi": "સેટિંગ્સ API",
+ "categoryCore": "મુખ્ય APIs",
+ "categoryMedia": "મીડિયા અને મલ્ટિ-મોડલ",
+ "categorySearch": "શોધ અને ડિસ્કવરી",
+ "categoryUtility": "ઉપયોગિતા અને વ્યવસ્થાપન",
+ "webSearch": "વેબ શોધ",
+ "webSearchDesc": "સ્વચાલિત ફેલઓવર અને કૅશિંગ સાથે બહુવિધ પ્રદાતાઓમાં એકીકૃત વેબ શોધ",
+ "searchProvider": "શોધ પ્રદાતા",
+ "searchProviderDesc": "આ પ્રદાતાનો ઉપયોગ POST /v1/search દ્વારા વેબ શોધ માટે થાય છે. કોઈ મોડેલ કૉન્ફિગરેશનની જરૂર નથી — API કી કનેક્ટ થયા પછી શોધ પ્રદાતાઓ ઉપયોગ માટે તૈયાર હોય છે.",
+ "enableCloudTitle": "Cloud Proxy સક્ષમ કરો",
+ "whatYouGet": "તમને શું મળશે",
+ "cloudBenefitAccess": "વિશ્વમાં ગમે ત્યાંથી તમારા API ને ઍક્સેસ કરો",
+ "cloudBenefitShare": "તમારી ટીમ સાથે એન્ડપોઇન્ટ સરળતાથી શેર કરો",
+ "cloudBenefitPorts": "પોર્ટ્સ ખોલવાની કે ફાયરવૉલ કૉન્ફિગર કરવાની જરૂર નથી",
+ "cloudBenefitEdge": "ઝડપી વૈશ્વિક એજ નેટવર્ક",
+ "cloudSessionNote": "Cloud તમારા ઑથ સેશનને 1 દિવસ સુધી રાખશે. જો તેનો ઉપયોગ નહીં થાય, તો તે આપમેળે કાઢી નાખવામાં આવશે.",
+ "cloudUnstableNote": "હાલમાં કેટલાક કિસ્સાઓમાં Claude Code OAuth સાથે Cloud અસ્થિર છે.",
+ "cloudConnected": "Cloud Proxy કનેક્ટ થયું!",
+ "connectingToCloud": "Cloud સાથે કનેક્ટ થઈ રહ્યું છે...",
+ "verifyingConnection": "કનેક્શન ચકાસી રહ્યું છે...",
+ "connecting": "કનેક્ટ થઈ રહ્યું છે...",
+ "verifying": "ચકાસી રહ્યું છે...",
+ "connected": "કનેક્ટ થયું!",
+ "disableCloudTitle": "Cloud Proxy અક્ષમ કરો",
+ "disableWarning": "બધા ઑથ સેશન્સ Cloud માંથી કાઢી નાખવામાં આવશે.",
+ "syncingData": "નવીનતમ ડેટા સિંક થઈ રહ્યો છે...",
+ "disablingCloud": "Cloud અક્ષમ થઈ રહ્યું છે...",
+ "syncing": "સિંક થઈ રહ્યું છે...",
+ "disabling": "અક્ષમ કરવામાં આવી રહ્યું છે...",
+ "cloudConnectedVerified": "Cloud Proxy કનેક્ટ અને ચકાસવામાં આવ્યું!",
+ "connectedVerificationPending": "કનેક્ટ થયું — ચકાસણી બાકી છે",
+ "connectedVerificationPendingWithError": "કનેક્ટ થયું — ચકાસણી બાકી છે: {error}",
+ "cloudDisabledSuccess": "Cloud સફળતાપૂર્વક અક્ષમ કરવામાં આવ્યું",
+ "syncedSuccess": "સફળતાપૂર્વક સિંક થયું",
+ "failedDisable": "Cloud અક્ષમ કરવામાં નિષ્ફળતા",
+ "failedEnable": "Cloud સક્ષમ કરવામાં નિષ્ફળતા",
+ "cloudRequestTimeout": "Cloud વિનંતીનો સમય સમાપ્ત થયો",
+ "cloudRequestFailed": "Cloud વિનંતી નિષ્ફળ ગઈ",
+ "cloudWorkerUnreachable": "Cloud worker સુધી પહોંચી શકાયું નહીં. ખાતરી કરો કે cloud service ચાલી રહી છે (npm run dev in /cloud).",
+ "connectionFailed": "કનેક્શન નિષ્ફળ ગયું",
+ "syncFailed": "Cloud ડેટા સિંક કરવામાં નિષ્ફળતા",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
- "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredDescription": "આ એન્ડપોઇન્ટ માટે Cloudflare Quick Tunnel બનાવો.",
+ "cloudflaredUrlNotice": "કામચલાઉ Cloudflare Quick Tunnel બનાવે છે. દરેક પુનઃપ્રારંભ પછી URL બદલાય છે.",
+ "cloudflaredEnable": "Tunnel સક્ષમ કરો",
+ "cloudflaredInstallAndEnable": "ઇન્સ્ટોલ કરો અને સક્ષમ કરો",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "ચાલુ છે",
+ "cloudflaredStarting": "શરૂ થઈ રહ્યું છે",
+ "cloudflaredStoppedState": "બંધ છે",
+ "cloudflaredNotInstalled": "ઇન્સ્ટોલ કરેલું નથી",
+ "cloudflaredUnsupported": "સમર્થિત નથી",
+ "cloudflaredError": "ભૂલ",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
- "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after every restart.",
- "cloudflaredUnsupportedNote": "This platform is not supported for managed installs. Install cloudflared manually or point CLOUDFLARED_BIN to an existing binary.",
+ "cloudflaredTemporaryNote": "Quick Tunnel URLs કામચલાઉ હોય છે અને દરેક પુનઃપ્રારંભ પછી બદલાશે.",
+ "cloudflaredUnsupportedNote": "મેનેજ્ડ ઇન્સ્ટોલ માટે આ પ્લેટફોર્મ સમર્થિત નથી. cloudflared મેન્યુઅલી ઇન્સ્ટોલ કરો અથવા CLOUDFLARED_BIN ને હાલની બાઇનરી તરફ નિર્દેશિત કરો.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
- "providerModelsTitle": "{provider} — Models",
- "noModelsForProvider": "No models available for this provider.",
+ "cloudflaredLastError": "છેલ્લી ભૂલ: {error}",
+ "providerModelsTitle": "{provider} — મોડલ્સ",
+ "noModelsForProvider": "આ પ્રદાતા માટે કોઈ મોડલ ઉપલબ્ધ નથી.",
"chat": "Chat",
- "embedding": "Embedding",
- "image": "Image",
- "custom": "custom",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "embedding": "એમ્બેડિંગ",
+ "image": "છબી",
+ "custom": "કસ્ટમ",
+ "modelsCount": "{count, plural, one {# મોડલ} other {# મોડલ્સ}}",
+ "sectionTitle": "ઇન્ટિગ્રેશન સપાટી",
+ "sectionDescription": "OpenAI-સુસંગત APIs અને ઓપરેશનલ પ્રોટોકોલ એન્ડપોઇન્ટ્સ",
"tabApis": "એપીઆઈઝ",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "પ્રોટોકોલ્સ",
+ "tabsAria": "એન્ડપોઇન્ટ વિભાગો",
+ "protocolsTitle": "પ્રોટોકોલ્સ",
+ "protocolsDescription": "MCP અને A2A સમર્પિત અવલોકનક્ષમતા અને નિયંત્રણો ધરાવતા પ્રથમ-શ્રેણીના એન્ડપોઇન્ટ્સ છે.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "stdio મારફતે Model Context Protocol",
+ "a2aCardTitle": "A2A સર્વર",
+ "a2aCardDescription": "Agent2Agent JSON-RPC એન્ડપોઇન્ટ",
+ "protocolToolsLabel": "ટૂલ્સ",
+ "protocolTasksLabel": "કાર્યો",
+ "protocolActiveStreamsLabel": "સક્રિય સ્ટ્રીમ્સ",
+ "protocolLastActivity": "છેલ્લી પ્રવૃત્તિ",
+ "quickStart": "ઝડપી શરૂઆત",
+ "openMcpDashboard": "MCP વ્યવસ્થાપન ખોલો",
+ "openA2aDashboard": "A2A વ્યવસ્થાપન ખોલો",
+ "mcpQuickStartTitle": "MCP ઝડપી શરૂઆત",
+ "mcpQuickStartStep1": "MCP સર્વરને `omniroute --mcp` દ્વારા ચલાવો.",
+ "mcpQuickStartStep2": "stdio ટ્રાન્સપોર્ટ પર કનેક્ટ થવા માટે તમારા MCP ક્લાયન્ટને કૉન્ફિગર કરો.",
+ "mcpQuickStartStep3": "`omniroute_get_health` અને `omniroute_list_combos` જેવા ટૂલ્સનો ઉપયોગ કરો.",
+ "a2aQuickStartTitle": "A2A ઝડપી શરૂઆત",
+ "a2aQuickStartStep1": "`/.well-known/agent.json` પર એજન્ટ કાર્ડ શોધો.",
+ "a2aQuickStartStep2": "`message/send` અથવા `message/stream`નો ઉપયોગ કરીને `POST /a2a` પર JSON-RPC વિનંતીઓ મોકલો.",
+ "a2aQuickStartStep3": "`tasks/get` અને `tasks/cancel`નો ઉપયોગ કરીને કાર્યોને ટ્રૅક અને નિયંત્રિત કરો.",
+ "completionsLegacy": "કમ્પ્લીશન્સ (લેગસી)",
+ "completionsLegacyDesc": "લેગસી OpenAI ટેક્સ્ટ કમ્પ્લીશન્સ — પ્રોમ્પ્ટ સ્ટ્રિંગ અને મેસેજિસ ઍરે ફોર્મેટ બંને સ્વીકારે છે",
"messagesApi": "સંદેશાઓ",
"messagesApiDesc": "ક્લાઉડ-સુસંગત પ્રદાતાઓ માટે મૂળ એન્થ્રોપિક સંદેશાઓ API ફોર્મેટ",
"imageEdits": "છબી સંપાદનો",
@@ -4018,41 +4022,41 @@
"batchApiDesc": "અસુમેળ રીતે વિનંતીઓના મોટા બેચ પર પ્રક્રિયા કરો (OpenAI-સુસંગત)",
"filesApi": "ફાઇલ્સ API",
"filesApiDesc": "બેચ પ્રોસેસિંગ માટે ફાઇલો અપલોડ કરો અને મેનેજ કરો",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "વિડિયો જનરેશન",
+ "videoDesc": "ComfyUI અને Stable Video Diffusion જેવા AI મોડલ્સનો ઉપયોગ કરીને વિડિયો બનાવો.",
+ "tailscaleRequestFailed": "Tailscale સ્થિતિ લોડ કરવામાં નિષ્ફળતા",
+ "tailscaleEnableFailed": "Tailscale Funnel સક્ષમ કરવામાં નિષ્ફળતા",
+ "tailscaleWaitingForLogin": "ખુલેલી બ્રાઉઝર ટૅબમાં Tailscale લૉગિન પૂર્ણ કરો. OmniRoute આપમેળે ફરી પ્રયાસ કરશે.",
+ "tailscaleLoginTimedOut": "Tailscale લૉગિનની રાહ જોવાનો સમય સમાપ્ત થયો",
+ "tailscaleWaitingForFunnel": "ખુલેલી બ્રાઉઝર ટૅબમાં આ ઉપકરણ માટે Funnel સક્ષમ કરો. OmniRoute તપાસ કરવાનું ચાલુ રાખશે.",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel સક્ષમ થવાની રાહ જોવાનો સમય સમાપ્ત થયો",
+ "tailscaleStarted": "Tailscale Funnel સક્ષમ થયું",
+ "tailscaleDisableFailed": "Tailscale Funnel અક્ષમ કરવામાં નિષ્ફળતા",
+ "tailscaleStopped": "Tailscale Funnel અક્ષમ થયું",
+ "tailscaleInstallFailed": "Tailscale ઇન્સ્ટોલ કરવામાં નિષ્ફળતા",
+ "tailscaleInstallProgress": "કાર્ય ચાલુ છે...",
+ "tailscaleInstalled": "Tailscale સફળતાપૂર્વક ઇન્સ્ટોલ થયું",
+ "tailscaleRunning": "ચાલુ છે",
+ "tailscaleNeedsLogin": "લૉગિન જરૂરી છે",
+ "tailscaleStoppedState": "બંધ છે",
+ "tailscaleNotInstalled": "ઇન્સ્ટોલ કરેલ નથી",
+ "tailscaleUnsupported": "અસમર્થિત",
+ "tailscaleError": "ભૂલ",
+ "tailscaleDisable": "Funnel બંધ કરો",
+ "tailscaleInstallAndEnable": "ઇન્સ્ટોલ અને સક્ષમ કરો",
+ "tailscaleLoginAndEnable": "લૉગિન કરો અને સક્ષમ કરો",
+ "tailscaleEnable": "Funnel સક્ષમ કરો",
+ "tailscaleUrlNotice": "તમારા Tailscale .ts.net સરનામાનો ઉપયોગ કરે છે. પ્રથમ ઉપયોગ વખતે લૉગિન અને Funnel મંજૂરી જરૂરી હોઈ શકે છે.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
- "tailscaleSudoLabel": "Sudo Password (required on macOS/Linux)",
+ "tailscaleNeedsLoginHint": "આ મશીનને Tailscale સાથે પ્રમાણિત કરો, પછી Funnel સક્ષમ કરો.",
+ "tailscaleBinaryPath": "બાઇનરી: {path}",
+ "tailscaleLastError": "છેલ્લી ભૂલ: {error}",
+ "tailscaleInstallTitle": "Tailscale ઇન્સ્ટોલ કરો",
+ "tailscaleInstallIntro": "આ મશીન પર Tailscale ઇન્સ્ટોલ કરે છે અને Funnel સક્ષમ કરવા માટે OmniRoute તૈયાર કરે છે.",
+ "tailscaleInstallPasswordHint": "macOS અને Linux પર, પૅકેજ ઇન્સ્ટોલ કરવા અને ડિમન શરૂ કરવા માટે sudo જરૂરી હોઈ શકે છે.",
+ "tailscaleSudoPlaceholder": "વૈકલ્પિક sudo પાસવર્ડ",
+ "tailscaleInstalling": "ઇન્સ્ટોલ થઈ રહ્યું છે",
+ "tailscaleSudoLabel": "Sudo પાસવર્ડ (macOS/Linux પર જરૂરી)",
"ngrokTitle": "ngrok ટનલ",
"ngrokRunning": "ચાલી રહી છે",
"ngrokStarting": "શરૂ કરી રહ્યા છીએ",
@@ -4104,7 +4108,7 @@
"all": "બધા",
"more": "+{count} વધુ",
"showInternalTooltip": "આંતરિક રૂટ્સ બતાવો અથવા છુપાવો (ડિફૉલ્ટ રૂપે છુપાયેલ)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Bearer પ્રમાણીકરણ",
"requestBody": "વિનંતી બોડી",
"close": "બંધ કરો",
"tryIt": "અજમાવી જુઓ",
@@ -4140,9 +4144,9 @@
"tierPublic": "સાર્વજનિક",
"hideInternal": "આંતરિક છુપાવો",
"showInternal": "આંતરિક બતાવો",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "કસ્ટમ સિસ્ટમ પ્રોમ્પ્ટ",
+ "customSystemPromptDescription": "દરેક મૉડલ વિનંતીમાં કસ્ટમ સિસ્ટમ પ્રોમ્પ્ટ ઉમેરો",
+ "customSystemPromptPlaceholder": "દા.ત. હંમેશા ચાંચિયાની ભાષામાં જવાબ આપો...",
"obsidianEnterToken": "કૃપા કરીને Obsidian API ટોકન દાખલ કરો",
"obsidianConnectFailed": "કનેક્ટ કરવામાં નિષ્ફળ",
"obsidianConnectionFailed": "કનેક્શન નિષ્ફળ થયું",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "ટોકન કન્ફિગર કરાયું છે. Notion ટૂલ્સ MCP દ્વારા ઉપલબ્ધ છે."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "એન્ડપોઇન્ટ પ્રૉક્સી",
+ "tabApiEndpoints": "API એન્ડપોઇન્ટ્સ",
+ "apiEndpointsTitle": "API એન્ડપોઇન્ટ્સ",
+ "apiEndpointsDescription": "બૅકએન્ડ API એન્ડપોઇન્ટ્સ, જેનો ઉપયોગ અન્ય ઍપ્લિકેશનો અને સેવાઓ કરી શકે છે. આ વિભાગમાં દસ્તાવેજીકરણ અને પરીક્ષણ ક્ષમતાઓ સાથે ઉપલબ્ધ તમામ REST APIsની સૂચિ હશે.",
+ "comingSoon": "ટૂંક સમયમાં આવી રહ્યું છે",
+ "plannedFeatures": "આયોજિત સુવિધાઓ",
+ "featureRestApi": "ઇન્ટરેક્ટિવ દસ્તાવેજીકરણ સાથે REST API એન્ડપોઇન્ટ કૅટલૉગ",
+ "featureWebhooks": "Webhook ગોઠવણી અને ઇવેન્ટ સબ્સ્ક્રિપ્શન્સ",
+ "featureSwagger": "OpenAPI / Swagger સ્પેકનું સ્વચાલિત જનરેશન",
+ "featureAuth": "દરેક એન્ડપોઇન્ટ માટે API કી અને OAuth સ્કોપનું સંચાલન"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP ડૅશબોર્ડ લોડ થઈ રહ્યું છે...",
+ "activate": "સક્રિય કરો",
+ "deactivate": "નિષ્ક્રિય કરો",
+ "confirmSwitchCombo": "કોમ્બો \"{combo}\"ને {action} કરવાની પુષ્ટિ કરો?",
+ "switchComboFailed": "કોમ્બોની સ્થિતિ બદલવામાં નિષ્ફળતા.",
+ "switchComboSuccess": "કોમ્બો \"{combo}\" અપડેટ થયો.",
+ "confirmApplyProfile": "રેઝિલિયન્સ પ્રોફાઇલ \"{profile}\" લાગુ કરવી છે?",
+ "applyProfileFailed": "રેઝિલિયન્સ પ્રોફાઇલ લાગુ કરવામાં નિષ્ફળતા.",
+ "applyProfileSuccess": "પ્રોફાઇલ \"{profile}\" લાગુ થઈ.",
+ "confirmResetBreakers": "બધા સર્કિટ બ્રેકર્સ રીસેટ કરવા છે?",
+ "resetBreakersFailed": "સર્કિટ બ્રેકર્સ રીસેટ કરવામાં નિષ્ફળતા.",
+ "resetBreakersSuccess": "સર્કિટ બ્રેકર્સ રીસેટ થઈ ગયા.",
+ "processStatus": "પ્રક્રિયાની સ્થિતિ",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} અક્ષમ કરો",
@@ -4233,119 +4237,119 @@
"mcpStep2": "stdio ટ્રાન્સપોર્ટ પર કનેક્ટ કરવા માટે તમારા MCP ક્લાયન્ટને કન્ફિગર કરો.",
"mcpStep3": "{code1} અને {code2} જેવા ટૂલ્સ ઇનવોક કરો.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "સત્રનો અપટાઇમ",
+ "lastHeartbeat": "છેલ્લું હાર્ટબીટ",
+ "activity24h": "પ્રવૃત્તિ (24 કલાક)",
+ "totalCalls": "કુલ કૉલ્સ",
+ "successRate": "સફળતા દર",
+ "avgLatency": "સરેરાશ વિલંબ",
+ "topTools": "ટોચનાં ટૂલ્સ",
+ "noToolCalls24h": "છેલ્લા 24 કલાકમાં કોઈ ટૂલ કૉલ્સ નથી.",
+ "runtimeDetails": "રનટાઇમ વિગતો",
+ "transport": "ટ્રાન્સપોર્ટ",
+ "scopesEnforced": "સ્કોપ્સ લાગુ કરેલા",
+ "yes": "હા",
+ "no": "ના",
+ "lastCall": "છેલ્લો કૉલ",
+ "heartbeatPath": "હાર્ટબીટ પાથ",
+ "operationalControls": "સંચાલન નિયંત્રણો",
+ "switchCombo": "કોમ્બો ટૉગલ કરો",
+ "inactive": "નિષ્ક્રિય",
+ "active": "સક્રિય",
+ "activateCombo": "કોમ્બો સક્રિય કરો",
+ "deactivateCombo": "કોમ્બો નિષ્ક્રિય કરો",
+ "applyResilienceProfile": "સ્થિતિસ્થાપકતા પ્રોફાઇલ લાગુ કરો",
+ "profileAggressive": "આક્રમક",
+ "profileBalanced": "સંતુલિત",
+ "profileConservative": "રૂઢિચુસ્ત",
+ "applyProfile": "પ્રોફાઇલ લાગુ કરો",
+ "resetCircuitBreakers": "સર્કિટ બ્રેકર્સ રીસેટ કરો",
+ "resetCircuitBreakersHelp": "પ્રદાતાઓ માટે વર્તમાન બ્રેકર સ્થિતિ અને નિષ્ફળતા કાઉન્ટર્સ સાફ કરે છે.",
+ "resetAllBreakers": "બધા બ્રેકર્સ રીસેટ કરો",
+ "toolsAndScopes": "ટૂલ્સ અને સ્કોપ્સ",
+ "tableTool": "ટૂલ",
+ "tableScopes": "સ્કોપ્સ",
+ "tablePhase": "તબક્કો",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "ઑડિટ લૉગ",
+ "auditSummary": "કૉલ્સ: {total} | પૃષ્ઠ {page}, કુલ {totalPages} માંથી",
+ "allTools": "બધા ટૂલ્સ",
+ "allResults": "બધા પરિણામો",
+ "success": "સફળતા",
+ "failure": "નિષ્ફળતા",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "ઑડિટ એન્ટ્રીઓ લોડ થઈ રહી છે...",
+ "noAuditEntriesForFilters": "વર્તમાન ફિલ્ટર્સ માટે કોઈ ઑડિટ એન્ટ્રી મળી નથી.",
+ "tableTimestamp": "સમયચિહ્ન",
+ "tableDuration": "અવધિ",
+ "tableResult": "પરિણામ",
+ "tableApiKey": "API કી",
+ "failed": "નિષ્ફળ",
+ "previous": "પાછલું",
+ "next": "આગળ",
+ "apiKeyId": "API કી ID",
+ "offset": "ઑફસેટ",
+ "limit": "મર્યાદા",
+ "tool": "ટૂલ"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A ડૅશબોર્ડ લોડ થઈ રહ્યું છે...",
+ "confirmCancelTask": "ટાસ્ક {taskId} રદ કરવો છે?",
+ "cancelTaskFailed": "ટાસ્ક રદ કરવામાં નિષ્ફળતા.",
+ "cancelTaskSuccess": "ટાસ્ક {taskId} રદ કરવામાં આવ્યો.",
+ "smokeSendFailed": "message/send સ્મોક ટેસ્ટ નિષ્ફળ ગયો.",
+ "smokeSendSuccessWithTask": "message/send સફળ થયું (ટાસ્ક {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream સ્મોક ટેસ્ટ નિષ્ફળ ગયો.",
+ "smokeStreamSuccessWithTask": "message/stream સફળ થયું (ટાસ્ક {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream ટાસ્ક ID વિના પૂર્ણ થયું.",
+ "health": "આરોગ્ય",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "કુલ ટાસ્ક",
+ "activeStreams": "સક્રિય સ્ટ્રીમ્સ",
+ "lastTask": "છેલ્લો ટાસ્ક",
+ "taskStateOverview": "ટાસ્કની સ્થિતિની ઝાંખી",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "સબમિટ કરેલ",
+ "working": "પ્રગતિમાં",
+ "completed": "પૂર્ણ",
+ "failed": "નિષ્ફળ",
+ "cancelled": "રદ કરેલ"
},
- "agentCard": "Agent card",
+ "agentCard": "એજન્ટ કાર્ડ",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "વર્ઝન",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "ક્ષમતાઓ",
+ "agentCardNotAvailable": "એજન્ટ કાર્ડ ઉપલબ્ધ નથી.",
+ "quickValidation": "ઝડપી માન્યતા",
+ "quickValidationDescription": "લાઇવ `/a2a` એન્ડપોઇન્ટ દ્વારા સ્મોક કૉલ્સ ચલાવે છે.",
+ "runMessageSend": "message/send ચલાવો",
+ "runMessageStream": "message/stream ચલાવો",
+ "taskManagement": "ટાસ્ક વ્યવસ્થાપન",
+ "taskSummary": "{total} ટાસ્ક | પૃષ્ઠ {page} / {totalPages}",
+ "allStates": "બધા",
+ "allSkills": "બધી કુશળતાઓ",
+ "loadingTasks": "ટાસ્ક લોડ થઈ રહ્યા છે...",
+ "noTasksForFilters": "વર્તમાન ફિલ્ટર્સ માટે કોઈ ટાસ્ક મળ્યા નથી.",
+ "tableTask": "ટાસ્ક",
+ "tableSkill": "કુશળતા",
+ "tableState": "સ્થિતિ",
+ "tableUpdated": "અપડેટ થયેલ",
+ "tableActions": "ક્રિયાઓ",
+ "view": "જુઓ",
+ "cancel": "રદ કરો",
+ "previous": "પાછલું",
+ "next": "આગળનું",
+ "taskDetail": "ટાસ્કની વિગતો",
+ "close": "બંધ કરો",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "ઇવેન્ટ્સ",
+ "artifacts": "આર્ટિફેક્ટ્સ",
+ "tablePhase": "ટેબલ તબક્કો",
+ "offset": "ઓફસેટ",
+ "limit": "મર્યાદા",
+ "skill": "કુશળતા",
"rpcEndpoint": "પોસ્ટ/a2a",
"rpcMethodSend": "સંદેશ/મોકલો",
"rpcMethodStream": "સંદેશ/સ્ટ્રીમ",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "ક્રિયાઓ",
+ "addMemory": "મેમરી ઉમેરો",
+ "allTypes": "બધા પ્રકારો",
"cancel": "રદ કરો",
"checkHealth": "આરોગ્ય તપાસો",
"checkingHealth": "તપાસી રહ્યું છે...",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "તે કેવી રીતે કાર્ય કરે છે",
"howWorksContent": "1. સ્વચાલિત નિષ્કર્ષણ: દરેક પ્રતિભાવના અંતે, તથ્યો અને એપિસોડ્સ આપમેળે શોધી કાઢવામાં આવે છે અને સાચવવામાં આવે છે.\n2. પુનઃપ્રાપ્તિ: દરેક પ્રતિભાવ પહેલાં, FTS5 (ચોક્કસ), વેક્ટર (સિમેન્ટીક), અથવા હાઇબ્રિડ RRF દ્વારા સૌથી સંબંધિત મેમરીઝ શોધવામાં આવે છે.\n3. ઇન્જેક્શન: પ્રતિભાવ ગુણવત્તા સુધારવા માટે સહાયક સંદર્ભમાં સંબંધિત મેમરીઝ ઇન્જેક્ટ કરવામાં આવે છે.\n4. સંચાલન: જૂની મેમરીઝ જોવા, સંપાદિત કરવા, નિકાસ કરવા અને સંકુચિત કરવા માટે આ પૃષ્ઠનો ઉપયોગ કરો."
},
- "content": "Content",
+ "content": "સામગ્રી",
"contentPlaceholder": "યાદ રાખવા માટે મૂલ્ય અથવા JSON સામગ્રી",
- "created": "Created",
- "delete": "Delete",
+ "created": "બનાવેલ",
+ "delete": "કાઢી નાખો",
"deleteConfirmDesc": "આ ક્રિયા પૂર્વવત્ કરી શકાતી નથી. મેમરી કાયમી ધોરણે દૂર કરવામાં આવશે.",
"deleteConfirmTitle": "મેમરી કાઢી નાખવી છે?",
- "description": "View and manage stored memory entries",
+ "description": "સંગ્રહિત મેમરી એન્ટ્રીઓ જુઓ અને સંચાલિત કરો",
"editMemory": "મેમરી સંપાદિત કરો",
"editModal": {
"title": "મેમરી સંપાદિત કરો",
@@ -4440,20 +4444,20 @@
"configureCta": "રૂપરેખાંકિત કરો",
"vectorStoreInstallHint": "વેક્ટર શોધ સક્ષમ કરવા માટે: npm install sqlite-vec (નેટિવ Node.js ની જરૂર છે, WASM ની નહીં), પછી ફરીથી પ્રારંભ કરો."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "એપિસોડિક",
+ "export": "નિકાસ કરો",
+ "factual": "તથ્યાત્મક",
"healthUnknown": "આરોગ્ય અજ્ઞાત",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "સફળતા દર",
+ "import": "આયાત કરો",
"importError": "ફાઇલ આયાત કરવામાં નિષ્ફળ",
"importResult": "{imported} આયાત કરવામાં આવી, {skipped} અવગણવામાં આવી",
- "key": "Key",
+ "key": "કી",
"keyPlaceholder": "દા.ત. user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "સ્મૃતિઓ",
"next": "આગળ",
- "noMemories": "No memories found",
+ "noMemories": "કોઈ સ્મૃતિઓ મળી નથી",
"pageInfo": "પૃષ્ઠ {page} માંથી {totalPages} ({total} કુલ)",
"pipelineError": "પાઇપલાઇન ભૂલ",
"pipelineOk": "પાઇપલાઇન બરાબર ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "પૂર્વાવલોકન મેળવવામાં નિષ્ફળ"
},
"previous": "ગત",
- "procedural": "Procedural",
+ "procedural": "પ્રક્રિયાત્મક",
"qdrant": {
"title": "Qdrant (વેક્ટર સ્ટોર ટાયર 2)",
"description": "સ્કેલેબલ સિમેન્ટીક શોધ માટે વૈકલ્પિક Qdrant એકીકરણ",
@@ -4530,8 +4534,8 @@
},
"save": "સાચવો",
"saving": "સાચવી રહ્યું છે...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "સ્મૃતિઓ શોધો...",
+ "semantic": "અર્થાત્મક",
"summarize": {
"title": "જૂની મેમરીઝને કોમ્પેક્ટ કરો",
"noCandidates": "કોમ્પેક્શન માટે કોઈ મેમરીઝ પાત્ર નથી (માપદંડ: >30 દિવસ જૂની).",
@@ -4543,8 +4547,8 @@
"playground": "પ્લેગ્રાઉન્ડ",
"engine": "એન્જિન"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "સ્મૃતિ વ્યવસ્થાપન",
+ "tokensUsed": "વપરાયેલા ટોકન્સ",
"tooltip": {
"totalEntries": "આ API કી માટે સંગ્રહિત કુલ મેમરીઝ",
"tokensUsed": "સક્રિય મેમરીઝ દ્વારા રોકાયેલા અંદાજિત કુલ ટોકન્સ",
@@ -4554,15 +4558,15 @@
"procedural": "પ્રક્રિયાઓ, વર્કફ્લો અને સૂચનાઓ જે સહાયકે અનુસરવી જોઈએ",
"semantic": "ખ્યાલો, પસંદગીઓ અને ડોમેન જ્ઞાન"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "કુલ એન્ટ્રીઓ",
+ "type": "પ્રકાર",
"memoryEnabled": "મેમરી સક્ષમ છે"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "કૌશલ્યો",
+ "description": "AI કૌશલ્યોનું સંચાલન અને નિરીક્ષણ કરો",
+ "skillsTab": "કૌશલ્યો",
+ "executionsTab": "અમલીકરણો",
"selectSkillToInspect": "તપાસવા માટે ડાબી બાજુએથી એક કૌશલ્ય પસંદ કરો.",
"schemaTab": "સ્કીમા",
"handlerTab": "હેન્ડલર",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "ટેસ્ટ રન કરો (પ્લેસહોલ્ડર)",
"setModeAria": "મોડ {mode} સેટ કરો",
"uninstallSkill": "કૌશલ્ય અનઇન્સ્ટોલ કરો",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "સૅન્ડબૉક્સ",
+ "loading": "કૌશલ્યો લોડ થઈ રહ્યાં છે...",
+ "noSkills": "કોઈ કૌશલ્યો મળ્યાં નથી",
+ "noExecutions": "કોઈ અમલીકરણો મળ્યાં નથી",
+ "enabled": "સક્ષમ",
+ "disabled": "અક્ષમ",
"delete": "ડીલીટ કરો",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "આવૃત્તિ",
+ "tableDescription": "વર્ણન",
+ "skill": "કૌશલ્ય",
+ "status": "સ્થિતિ",
+ "duration": "અવધિ",
+ "time": "સમય",
+ "sandboxConfig": "સૅન્ડબૉક્સ રૂપરેખાંકન",
+ "cpuLimit": "CPU મર્યાદા",
+ "cpuLimitDesc": "પ્રતિ કૌશલ્ય મહત્તમ અમલીકરણ સમય",
+ "memoryLimit": "મેમરી મર્યાદા",
+ "memoryLimitDesc": "મહત્તમ મેમરી ફાળવણી",
+ "timeout": "સમયસમાપ્તિ",
+ "timeoutDesc": "પ્રતિસાદ માટે મહત્તમ પ્રતીક્ષા સમય",
+ "networkAccess": "નેટવર્ક ઍક્સેસ",
+ "networkAccessDesc": "આઉટબાઉન્ડ નેટવર્ક વિનંતીઓને મંજૂરી આપો",
+ "mode": "મોડ",
"q": "Q",
"filterSkillsPlaceholder": "નામ, વર્ણન અથવા ટેગ દ્વારા કુશળતા ફિલ્ટર કરો",
"allModes": "બધા મોડ્સ",
@@ -4619,13 +4623,13 @@
"searchMarketplacePlaceholder": "કૌશલ્યો શોધો...",
"searchMarketplace": "માર્કેટપ્લેસ શોધો",
"marketplaceEmpty": "માર્કેટપ્લેસમાં કોઈ કૌશલ્ય મળ્યું નથી",
- "marketplaceError": "Search failed",
+ "marketplaceError": "શોધ નિષ્ફળ રહી",
"installingFromMarketplace": "માર્કેટપ્લેસમાંથી ઇન્સ્ટોલ થઈ રહ્યું છે...",
"popularSkills": "લોકપ્રિય કૌશલ્યો",
"skillsMarketplace": "કૌશલ્ય બજાર",
"searching": "શોધી રહ્યું છે...",
"pageInfo": "પાનું {page} માંથી {totalPages} (કુલ {total})",
- "previous": "Previous",
+ "previous": "પાછલું",
"next": "આગળ",
"activeProvider": "સક્રિય પ્રદાતા:",
"changeInSettings": "આને સેટિંગ્સ → મેમરી અને કૌશલ્યોમાં બદલો.",
@@ -4638,90 +4642,90 @@
"installSkill": "કૌશલ્ય સ્થાપિત કરો"
},
"health": {
- "title": "System Health",
- "description": "Real-time monitoring of your OmniRoute instance",
- "healthy": "Healthy",
- "degraded": "Degraded",
- "down": "Down",
- "uptime": "Uptime",
- "memory": "Memory",
- "memoryRss": "Memory (RSS)",
- "heap": "Heap",
+ "title": "સિસ્ટમની સ્થિતિ",
+ "description": "તમારા OmniRoute ઇન્સ્ટન્સનું રીઅલ-ટાઇમ મોનિટરિંગ",
+ "healthy": "સ્વસ્થ",
+ "degraded": "ક્ષીણ",
+ "down": "બંધ",
+ "uptime": "અપટાઇમ",
+ "memory": "મેમરી",
+ "memoryRss": "મેમરી (RSS)",
+ "heap": "હીપ",
"cpu": "CPU",
- "database": "Database",
- "version": "Version",
- "lastCheck": "Last Check",
- "providerHealth": "Provider Health",
- "systemMetrics": "System Metrics",
- "tokenHealth": "Token Health",
- "refreshAll": "Refresh All",
- "checkNow": "Check Now",
- "loadingHealth": "Loading health data...",
- "failedToLoad": "Failed to load health data: {error}",
- "retry": "Retry",
- "allOperational": "All systems operational",
- "issuesDetected": "System issues detected",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
- "updatedAt": "Updated {time}",
- "latency": "Latency",
+ "database": "ડેટાબેઝ",
+ "version": "વર્ઝન",
+ "lastCheck": "છેલ્લી તપાસ",
+ "providerHealth": "પ્રદાતાની સ્થિતિ",
+ "systemMetrics": "સિસ્ટમ મેટ્રિક્સ",
+ "tokenHealth": "ટોકનની સ્થિતિ",
+ "refreshAll": "બધું રિફ્રેશ કરો",
+ "checkNow": "હમણાં તપાસો",
+ "loadingHealth": "સ્થિતિનો ડેટા લોડ થઈ રહ્યો છે...",
+ "failedToLoad": "સ્થિતિનો ડેટા લોડ કરવામાં નિષ્ફળતા: {error}",
+ "retry": "ફરી પ્રયાસ કરો",
+ "allOperational": "બધી સિસ્ટમ કાર્યરત છે",
+ "issuesDetected": "સિસ્ટમમાં સમસ્યાઓ મળી આવી",
+ "healthVerdictReady": "OmniRoute તૈયાર છે",
+ "healthVerdictActionRequired": "સંપૂર્ણ કામગીરી પુનઃસ્થાપિત કરવા માટે પગલાં જરૂરી છે",
+ "healthVerdictCoolingDown": "તાજેતરના ફેરફારો પછી કૂલ ડાઉન થઈ રહ્યું છે",
+ "healthSubtitle": "સિસ્ટમની સ્થિતિની તપાસ",
+ "advancedDiagnosticsTitle": "અદ્યતન નિદાન",
+ "hide": "છુપાવો",
+ "show": "બતાવો",
+ "updatedAt": "{time} પર અપડેટ થયું",
+ "latency": "વિલંબતા",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
"millisecondsShort": "{value}ms",
"notAvailable": "—",
- "totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "promptCache": "Prompt Cache",
- "entries": "Entries",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "signatureCache": "Signature Cache",
- "signatureDefaults": "Defaults",
- "signatureTool": "Tool",
- "signatureFamily": "Family",
- "signatureSession": "Session",
- "recovering": "Recovering",
- "noCBData": "No circuit breaker data available. Make some requests first.",
- "providerHealthStatusAria": "Provider health status",
- "issuesLabel": "Issues Detected",
- "operational": "Operational",
- "providers": "Providers",
- "configuredProvidersLabel": "Configured in dashboard",
- "configuredProvidersHint": "Providers with credentials saved in /dashboard/providers, regardless of runtime state.",
- "activeProviders": "{count} active",
- "activeProvidersHint": "Configured providers currently enabled for routing requests.",
- "monitoredProviders": "{count} monitored",
- "monitoredProvidersHint": "Providers currently tracked by circuit-breaker health monitors.",
- "healthyCount": "{count} healthy",
+ "totalRequests": "કુલ વિનંતીઓ",
+ "noDataYet": "હજુ સુધી કોઈ ડેટા નથી",
+ "promptCache": "પ્રોમ્પ્ટ કૅશ",
+ "entries": "એન્ટ્રીઓ",
+ "hitRate": "હિટ રેટ",
+ "hitsMisses": "હિટ્સ / મિસિસ",
+ "signatureCache": "સિગ્નેચર કૅશ",
+ "signatureDefaults": "મૂળભૂત સેટિંગ્સ",
+ "signatureTool": "સાધન",
+ "signatureFamily": "પરિવાર",
+ "signatureSession": "સત્ર",
+ "recovering": "પુનઃપ્રાપ્ત થઈ રહ્યું છે",
+ "noCBData": "કોઈ સર્કિટ બ્રેકર ડેટા ઉપલબ્ધ નથી. પહેલાં કેટલીક વિનંતીઓ કરો.",
+ "providerHealthStatusAria": "પ્રદાતાની આરોગ્ય સ્થિતિ",
+ "issuesLabel": "સમસ્યાઓ મળી",
+ "operational": "કાર્યરત",
+ "providers": "પ્રદાતાઓ",
+ "configuredProvidersLabel": "ડૅશબોર્ડમાં ગોઠવેલ",
+ "configuredProvidersHint": "રનટાઇમ સ્થિતિને ધ્યાનમાં લીધા વિના, /dashboard/providers માં ઓળખપત્રો સાચવેલા પ્રદાતાઓ.",
+ "activeProviders": "{count} સક્રિય",
+ "activeProvidersHint": "રાઉટિંગ વિનંતીઓ માટે હાલમાં સક્ષમ કરેલા ગોઠવાયેલ પ્રદાતાઓ.",
+ "monitoredProviders": "{count} પર દેખરેખ રાખવામાં આવે છે",
+ "monitoredProvidersHint": "હાલમાં સર્કિટ-બ્રેકર આરોગ્ય મોનિટર દ્વારા ટ્રૅક કરવામાં આવતા પ્રદાતાઓ.",
+ "healthyCount": "{count} સ્વસ્થ",
"nodeVersion": "Node {version}",
- "failures": "{count} failure",
- "failuresPlural": "{count} failures",
- "lastFailure": "Last",
- "rateLimitStatus": "Rate Limit Status",
- "activeLimiters": "{count} active limiter",
- "activeLimitersPlural": "{count} active limiters",
- "queued": "Queued",
- "queuedCount": "{count} queued",
- "running": "running",
- "runningCount": "{count} running",
+ "failures": "{count} નિષ્ફળતા",
+ "failuresPlural": "{count} નિષ્ફળતાઓ",
+ "lastFailure": "છેલ્લું",
+ "rateLimitStatus": "દર મર્યાદાની સ્થિતિ",
+ "activeLimiters": "{count} સક્રિય મર્યાદક",
+ "activeLimitersPlural": "{count} સક્રિય મર્યાદકો",
+ "queued": "કતારમાં",
+ "queuedCount": "{count} કતારમાં",
+ "running": "ચાલુ",
+ "runningCount": "{count} ચાલુ",
"ok": "OK",
- "activeLockouts": "Active Lockouts",
- "resetConfirm": "Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.",
- "resetAllTitle": "Reset all circuit breakers to healthy state",
- "resetting": "Resetting...",
- "resetAll": "Reset All",
- "until": "Until {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "activeLockouts": "સક્રિય લૉકઆઉટ્સ",
+ "resetConfirm": "બધા સર્કિટ બ્રેકર્સને સ્વસ્થ સ્થિતિમાં રીસેટ કરવા માંગો છો? આ તમામ નિષ્ફળતા ગણતરીઓ સાફ કરશે અને બધા પ્રદાતાઓને કાર્યરત સ્થિતિમાં પુનઃસ્થાપિત કરશે.",
+ "resetAllTitle": "બધા સર્કિટ બ્રેકર્સને સ્વસ્થ સ્થિતિમાં રીસેટ કરો",
+ "resetting": "રીસેટ થઈ રહ્યું છે...",
+ "resetAll": "બધું રીસેટ કરો",
+ "until": "{time} સુધી",
+ "limitExhausted": "સમાપ્ત",
+ "learnedFromHeaders": "હેડર્સમાંથી શીખેલું",
+ "remainingOfLimit": "{remaining}/{limit} બાકી",
+ "throttleStatus": "થ્રોટલ: {value}",
+ "lastHeaderUpdate": "હેડર અપડેટ: {age}",
"databaseHealth": "ડેટાબેઝ આરોગ્ય",
"databaseHealthDescription": "જૂની ક્વોટા/ડોમેન પંક્તિઓ અને તૂટેલા કોમ્બો સંદર્ભોનું નિદાન અને સમારકામ કરો.",
"status": "સ્થિતિ",
@@ -4847,65 +4851,65 @@
"noTargets": "કોઈ લક્ષ્ય રૂટ ગોઠવેલ નથી."
},
"limits": {
- "title": "Limits & Quotas",
- "rateLimit": "Rate Limit",
- "remaining": "Remaining",
- "requestsPerMinute": "Requests/min",
- "tokensPerMinute": "Tokens/min",
- "dailyLimit": "Daily Limit"
+ "title": "મર્યાદાઓ અને ક્વોટા",
+ "rateLimit": "દર મર્યાદા",
+ "remaining": "બાકી",
+ "requestsPerMinute": "વિનંતીઓ/મિનિટ",
+ "tokensPerMinute": "ટોકન્સ/મિનિટ",
+ "dailyLimit": "દૈનિક મર્યાદા"
},
"logs": {
- "title": "Logs",
- "requestLogs": "Request Logs",
- "proxyLogs": "Proxy Logs",
- "auditLog": "Audit Log",
+ "title": "લૉગ્સ",
+ "requestLogs": "વિનંતી લૉગ્સ",
+ "proxyLogs": "પ્રૉક્સી લૉગ્સ",
+ "auditLog": "ઑડિટ લૉગ",
"console": "Console",
- "auditLogDesc": "Administrative actions and security events",
- "loading": "Loading...",
- "refresh": "Refresh",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
- "showing": "Showing {count} entries (offset {offset})",
- "search": "Search",
- "timestamp": "Timestamp",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "details": "Details",
- "ipAddress": "IP Address",
+ "auditLogDesc": "વહીવટી ક્રિયાઓ અને સુરક્ષા ઘટનાઓ",
+ "loading": "લોડ થઈ રહ્યું છે...",
+ "refresh": "રિફ્રેશ કરો",
+ "filterByAction": "ક્રિયા દ્વારા ફિલ્ટર કરો...",
+ "filterByActor": "કર્તા દ્વારા ફિલ્ટર કરો...",
+ "filterEntriesAria": "ઑડિટ લૉગ એન્ટ્રીઓને ફિલ્ટર કરો",
+ "filterByActionTypeAria": "ક્રિયાના પ્રકાર દ્વારા ફિલ્ટર કરો",
+ "filterByActorAria": "કર્તા દ્વારા ફિલ્ટર કરો",
+ "refreshAuditLogAria": "ઑડિટ લૉગ રિફ્રેશ કરો",
+ "tableAria": "ઑડિટ લૉગ એન્ટ્રીઓ",
+ "failedFetchAuditLog": "ઑડિટ લૉગ મેળવવામાં નિષ્ફળતા",
+ "showing": "{count} એન્ટ્રીઓ બતાવી રહ્યાં છીએ (ઑફસેટ {offset})",
+ "search": "શોધો",
+ "timestamp": "સમયમુદ્રા",
+ "action": "ક્રિયા",
+ "actor": "કર્તા",
+ "target": "લક્ષ્ય",
+ "details": "વિગતો",
+ "ipAddress": "IP સરનામું",
"notAvailable": "—",
- "noEntries": "No audit log entries found",
- "previous": "Previous",
- "next": "Next",
- "providerWarningTitle": "Provider Warnings",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
- "providerWarningDesc": "Some providers returned warnings during request processing",
+ "noEntries": "કોઈ ઑડિટ લૉગ એન્ટ્રી મળી નથી",
+ "previous": "પાછલું",
+ "next": "આગળ",
+ "providerWarningTitle": "પ્રદાતાની ચેતવણીઓ",
+ "viewDetails": "વિગતો જુઓ",
+ "eventMetadata": "ઘટનાનું મેટાડેટા",
+ "eventPayload": "ઘટનાનો પેલોડ",
+ "requestId": "વિનંતી Id",
+ "providerWarningDesc": "વિનંતી પ્રક્રિયા દરમિયાન કેટલાક પ્રદાતાઓએ ચેતવણીઓ આપી",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "offset": "ઑફસેટ",
+ "limit": "મર્યાદા",
+ "status": "સ્થિતિ",
+ "resourceType": "સંસાધન પ્રકાર",
+ "totalEntries": "કુલ એન્ટ્રીઓ",
+ "tab": "ટૅબ",
+ "auditModalSubtitle": "ઇવેન્ટની વિગતો અને મેટાડેટા",
+ "close": "બંધ કરો",
+ "runningRequests": "સક્રિય વિનંતીઓ",
+ "runningRequestsDesc": "હાલમાં ચાલી રહેલી અપસ્ટ્રીમ વિનંતીઓનું રીઅલ-ટાઇમ દૃશ્ય",
"clearAll": "બધા સાફ કરો",
"confirmClearActiveRequests": "બધી સક્રિય વિનંતીઓ સાફ કરીએ?",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "મોડેલ",
+ "provider": "પ્રદાતા",
+ "account": "એકાઉન્ટ",
+ "elapsed": "વીતેલો સમય",
"activeStage": "સ્ટેજ",
"activeStageUnknown": "હજી સુધી અપસ્ટ્રીમ પર મોકલવામાં આવ્યું નથી",
"activeStageRegistered": "નોંધાયેલ",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "રેટ લિમિટ સ્લોટ મેળવ્યો",
"activeStageSendingToProvider": "અપસ્ટ્રીમ પર મોકલી રહ્યું છે",
"activeStageProviderResponseStarted": "અપસ્ટ્રીમ પ્રતિસાદ શરૂ થયો",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "સંખ્યા",
+ "payloads": "પેલોડ્સ",
+ "viewPayloads": "જુઓ",
+ "activeCount": "{count} સક્રિય",
+ "clientPayload": "ક્લાયન્ટ વિનંતી પેલોડ",
+ "upstreamPayload": "અપસ્ટ્રીમ પ્રદાતા પેલોડ",
+ "upstreamNotSentYet": "હજુ સુધી અપસ્ટ્રીમને મોકલ્યું નથી",
+ "runningRequestDetailMeta": "એકાઉન્ટ: {account} — વીતેલો સમય: {elapsed}",
+ "export": "નિકાસ કરો",
+ "exporting": "નિકાસ થઈ રહી છે...",
+ "exportFailed": "નિકાસ નિષ્ફળ ગઈ",
"cleanHistoryButton": "ઇતિહાસ સાફ કરો",
"cleanHistoryTitle": "લોગ ઇતિહાસ સાફ કરવો છે?",
"cleanHistoryMessage": "આ કાયમી ધોરણે DATA_DIR/call_logs હેઠળની તમામ વિનંતી લોગ પંક્તિઓ, લેગસી વિગતવાર પંક્તિઓ અને સ્થાનિક આર્ટિફેક્ટ ફાઇલોને સાફ કરે છે. સફાઈ પછી લાઈવ પેજ રિફ્રેશ થશે.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "{deleted} લોગ એન્ટ્રીઓ, {deletedArtifacts} આર્ટિફેક્ટ્સ અને {deletedDetailedLogs} લેગસી વિગતવાર પંક્તિઓ સાફ કરવામાં આવી.",
"cleanHistoryEmpty": "કોઈ વિનંતી લૉગ ઇતિહાસ મળ્યો નથી.",
"cleanHistoryFailed": "લૉગ ઇતિહાસ સાફ કરવામાં નિષ્ફળ.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "સમયગાળો",
+ "lastNHours": "છેલ્લા {hours}",
+ "defaultRange": "ડિફૉલ્ટ",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "લૉગ્સ મેળવવામાં નિષ્ફળતા",
+ "copyFailed": "લૉગ એન્ટ્રી કૉપિ કરવામાં નિષ્ફળતા",
+ "copyLogEntry": "લૉગ એન્ટ્રી કૉપિ કરો",
"filterByLevel": "લૉગ સ્તર દ્વારા ફિલ્ટર કરો",
"searchPlaceholder": "લૉગ્સ શોધો…",
"searchAria": "લૉગ એન્ટ્રીઓ શોધો",
@@ -4960,49 +4964,49 @@
"tokens": "ટોકન્સ"
},
"onboarding": {
- "welcome": "Welcome",
+ "welcome": "સ્વાગત છે",
"tiers": "સ્તરો",
- "security": "Security",
+ "security": "સુરક્ષા",
"test": "Test",
- "ready": "Ready!",
- "setPassword": "Set Password",
- "addProvider": "Add your first provider",
- "getStarted": "Get Started",
- "skip": "Skip",
- "skipWizard": "Skip wizard entirely",
- "skipPassword": "Skip password setup",
- "skipAndContinue": "Skip & Continue",
- "passwordLabel": "Password",
- "confirmPassword": "Confirm Password",
- "enterPassword": "Enter password",
- "confirmPasswordPlaceholder": "Confirm password",
- "passwordsMismatch": "Passwords do not match",
- "setupComplete": "Setup Complete!",
- "goToDashboard": "Go to Dashboard →",
- "welcomeDesc": "OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "multiProvider": "Multi-Provider",
- "usageTracking": "Usage Tracking",
- "securityDesc": "Set a password to protect your dashboard, or skip for now.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
- "providerDesc": "Connect your first AI provider. You can add more later.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
- "apiKeyRequired": "API Key (required)",
- "customUrlOptional": "Custom URL (optional)",
- "testDesc": "Let's verify your provider connection works.",
- "runTest": "Run Connection Test",
- "testingConnection": "Testing connection...",
- "connectionSuccessful": "Connection successful! Your provider is ready.",
- "noProviderFound": "No provider found. You can add one from the dashboard later.",
- "testFailed": "Test failed, but you can configure this later.",
- "couldNotTest": "Could not test right now. You can test from the dashboard.",
- "doneDesc": "You're all set! Your OmniRoute instance is configured and ready to proxy AI requests.",
- "yourEndpoint": "Your endpoint:",
- "continue": "Continue",
- "retry": "Retry",
- "failedSetPassword": "Failed to set password. Try again.",
- "failedAddProvider": "Failed to add provider. Try again.",
- "connectionError": "Connection error. Please try again.",
- "provider": "Provider",
+ "ready": "તૈયાર!",
+ "setPassword": "પાસવર્ડ સેટ કરો",
+ "addProvider": "તમારો પ્રથમ પ્રદાતા ઉમેરો",
+ "getStarted": "શરૂ કરો",
+ "skip": "છોડી દો",
+ "skipWizard": "વિઝાર્ડ સંપૂર્ણપણે છોડી દો",
+ "skipPassword": "પાસવર્ડ સેટઅપ છોડી દો",
+ "skipAndContinue": "છોડો અને ચાલુ રાખો",
+ "passwordLabel": "પાસવર્ડ",
+ "confirmPassword": "પાસવર્ડની પુષ્ટિ કરો",
+ "enterPassword": "પાસવર્ડ દાખલ કરો",
+ "confirmPasswordPlaceholder": "પાસવર્ડની પુષ્ટિ કરો",
+ "passwordsMismatch": "પાસવર્ડ મેળ ખાતા નથી",
+ "setupComplete": "સેટઅપ પૂર્ણ થયું!",
+ "goToDashboard": "ડૅશબોર્ડ પર જાઓ →",
+ "welcomeDesc": "OmniRoute તમારું સ્થાનિક AI API પ્રોક્સી છે. તે લોડ બેલેન્સિંગ, ફેલઓવર અને વપરાશ ટ્રૅકિંગ સાથે અનેક AI પ્રદાતાઓને વિનંતીઓ રૂટ કરે છે.",
+ "multiProvider": "બહુ-પ્રદાતા",
+ "usageTracking": "વપરાશ ટ્રૅકિંગ",
+ "securityDesc": "તમારા ડૅશબોર્ડને સુરક્ષિત રાખવા માટે પાસવર્ડ સેટ કરો અથવા હમણાં માટે આ પગલું છોડી દો.",
+ "securityDescSkipWarning": "⚠️ પાસવર્ડ વિના, તમે સેટઅપ દરમિયાન પ્રદાતાઓ ઉમેરી શકશો નહીં. પાસવર્ડ સેટ કર્યા પછી તમે તેમને ડૅશબોર્ડ પરથી પછીથી ઉમેરી શકો છો.",
+ "providerDesc": "તમારા પ્રથમ AI પ્રદાતાને કનેક્ટ કરો. તમે પછીથી વધુ ઉમેરી શકો છો.",
+ "providerRequiresPassword": "પ્રદાતાઓ ઉમેરવા માટે તમારે પહેલાં પાસવર્ડ સેટ કરવો પડશે. કૃપા કરીને સુરક્ષા પગલા પર પાછા જઈને પાસવર્ડ સેટ કરો અથવા ડૅશબોર્ડ પરથી પછીથી પ્રદાતાઓ ઉમેરો.",
+ "apiKeyRequired": "API કી (જરૂરી)",
+ "customUrlOptional": "કસ્ટમ URL (વૈકલ્પિક)",
+ "testDesc": "ચાલો ચકાસીએ કે તમારા પ્રદાતાનું કનેક્શન કાર્ય કરે છે.",
+ "runTest": "કનેક્શન ટેસ્ટ ચલાવો",
+ "testingConnection": "કનેક્શનનું પરીક્ષણ થઈ રહ્યું છે...",
+ "connectionSuccessful": "કનેક્શન સફળ રહ્યું! તમારો પ્રદાતા તૈયાર છે.",
+ "noProviderFound": "કોઈ પ્રદાતા મળ્યો નથી. તમે પછીથી ડૅશબોર્ડ પરથી એક ઉમેરી શકો છો.",
+ "testFailed": "પરીક્ષણ નિષ્ફળ ગયું, પરંતુ તમે આને પછીથી ગોઠવી શકો છો.",
+ "couldNotTest": "અત્યારે પરીક્ષણ કરી શકાયું નથી. તમે ડૅશબોર્ડ પરથી પરીક્ષણ કરી શકો છો.",
+ "doneDesc": "બધું તૈયાર છે! તમારું OmniRoute ઇન્સ્ટન્સ ગોઠવાઈ ગયું છે અને AI વિનંતીઓને પ્રોક્સી કરવા માટે તૈયાર છે.",
+ "yourEndpoint": "તમારું એન્ડપોઇન્ટ:",
+ "continue": "આગળ વધો",
+ "retry": "ફરી પ્રયાસ કરો",
+ "failedSetPassword": "પાસવર્ડ સેટ કરવામાં નિષ્ફળતા. ફરી પ્રયાસ કરો.",
+ "failedAddProvider": "પ્રદાતા ઉમેરવામાં નિષ્ફળતા. ફરી પ્રયાસ કરો.",
+ "connectionError": "કનેક્શન ભૂલ. કૃપા કરીને ફરી પ્રયાસ કરો.",
+ "provider": "પ્રદાતા",
"apiKeyHelp": "API કી એ AI સેવાઓ માટેનો પાસવર્ડ છે. તમારા પ્રદાતાની વેબસાઇટ પરથી એક મેળવો (દા.ત., platform.openai.com, console.anthropic.com).",
"tier": {
"subtitle": "OmniRoute પ્રદાતાઓને ત્રણ સ્તરોમાં ગોઠવે છે જેથી રાઉટીંગ સૌથી વિશ્વસનીય, સૌથી ઓછા ખર્ચવાળા પાથને પસંદ કરે છે.",
@@ -5045,12 +5049,12 @@
}
},
"providers": {
- "title": "Providers",
+ "title": "પ્રદાતાઓ",
"Account Deactivated": "એકાઉન્ટ નિષ્ક્રિય કરવામાં આવ્યું",
"allProviders": "બધા પ્રદાતાઓ",
"audioProviders": "ઓડિયો પ્રદાતાઓ",
"showFreeOnly": "માત્ર મફત",
- "addProvider": "Add Provider",
+ "addProvider": "પ્રદાતા ઉમેરો",
"addFirstProvider": "તમારા પ્રથમ પ્રદાતા ઉમેરો",
"addFirstProviderDesc": "OmniRoute દ્વારા રૂટીંગ વિનંતીઓ શરૂ કરવા માટે AI પ્રદાતાને કનેક્ટ કરો. તમે મફત પ્રદાતાઓ, API કી અથવા OAuth એકાઉન્ટ્સનો ઉપયોગ કરી શકો છો.",
"learnMore": "વધુ જાણો",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "આયાત કરી રહ્યું છે…",
"importFromFileImport": "{count} પ્રદાતાઓ આયાત કરો",
"importFromFileResult": "{success} પ્રદાતાઓ આયાત કર્યા ({failed} નિષ્ફળ)",
+ "importFromFileDownloadTemplate": "CSV ટેમ્પલેટ ડાઉનલોડ કરો",
+ "importFromFileMoreErrors": "+{count} વધુ",
+ "importFromFileSchemaHint": "CSV કૉલમનું સ્થાન નિશ્ચિત છે: provider, name, apiKey, baseUrl (વૈકલ્પિક), priority (વૈકલ્પિક). provider કૉલમમાં હાલના સંચાલિત પ્રદાતાનું id અથવા પહેલેથી નોંધાયેલ OpenAI/Anthropic-સુસંગત નોડ id હોવું આવશ્યક છે — આ ઇમ્પોર્ટ નવા એન્ડપોઇન્ટ નોડ બનાવતું નથી.",
"adaptaTutorial": {
"title": "Adapta Web કેવી રીતે કનેક્ટ કરવું",
"introPrefix": "Adapta Clerk દ્વારા પ્રમાણિત કરે છે. ટોકન",
@@ -5099,31 +5106,31 @@
"tipPrefix": "આ",
"tipSuffix": "કૂકી લાંબા સમય સુધી ચાલે છે, સામાન્ય રીતે મહિનાઓ સુધી. જો તમે સાઇન આઉટ કરો અથવા Adapta સત્રને અમાન્ય કરે તો જ તમારે તેને રીન્યુ કરવાની જરૂર છે."
},
- "editProvider": "Edit Provider",
- "deleteProvider": "Delete Provider",
- "noProviders": "No providers configured",
- "modelAvailability": "Model Availability",
- "accounts": "Accounts",
- "newAccount": "New Account",
- "deleteConfirm": "Are you sure you want to delete this provider?",
- "testing": "Testing...",
- "testConnection": "Test Connection",
- "testSuccess": "Connection successful",
- "testFailed": "Connection failed",
- "available": "Available",
- "cooldown": "Cooldown",
- "unavailable": "Unavailable",
- "unknown": "Unknown",
+ "editProvider": "પ્રદાતા સંપાદિત કરો",
+ "deleteProvider": "પ્રદાતા કાઢી નાખો",
+ "noProviders": "કોઈ પ્રદાતા ગોઠવેલ નથી",
+ "modelAvailability": "મોડેલ ઉપલબ્ધતા",
+ "accounts": "એકાઉન્ટ્સ",
+ "newAccount": "નવું એકાઉન્ટ",
+ "deleteConfirm": "શું તમે ખરેખર આ પ્રદાતાને કાઢી નાખવા માંગો છો?",
+ "testing": "પરીક્ષણ થઈ રહ્યું છે...",
+ "testConnection": "કનેક્શનનું પરીક્ષણ કરો",
+ "testSuccess": "કનેક્શન સફળ થયું",
+ "testFailed": "કનેક્શન નિષ્ફળ થયું",
+ "available": "ઉપલબ્ધ",
+ "cooldown": "કૂલડાઉન",
+ "unavailable": "અનુપલબ્ધ",
+ "unknown": "અજ્ઞાત",
"oauthLabel": "OAuth",
- "compatibleLabel": "Compatible",
+ "compatibleLabel": "સુસંગત",
"chat": "Chat",
"responses": "Responses",
"messages": "Messages",
- "oauthProviders": "OAuth Providers",
- "freeProviders": "Free Providers",
- "apiKeyProviders": "API Key Providers",
- "compatibleProviders": "API Key Compatible Providers",
- "testAll": "Test All",
+ "oauthProviders": "OAuth પ્રદાતાઓ",
+ "freeProviders": "મફત પ્રદાતાઓ",
+ "apiKeyProviders": "API Key પ્રદાતાઓ",
+ "compatibleProviders": "API Key સાથે સુસંગત પ્રદાતાઓ",
+ "testAll": "બધાનું પરીક્ષણ કરો",
"reorderByAvailability": "ફરીથી ગોઠવો",
"reorderByAvailabilityTitle": "ઉપલબ્ધતા દ્વારા જોડાણો ફરીથી ગોઠવો",
"reorderByAvailabilityError": "ઉપલબ્ધતા દ્વારા જોડાણો ફરીથી ગોઠવવામાં નિષ્ફળ",
@@ -5131,10 +5138,10 @@
"distributing": "વિતરણ થઈ રહ્યું છે...",
"selectedCount": "{count, plural, one {# પસંદ કરેલ} other {# પસંદ કરેલ}}",
"accountsCount": "{count, plural, one {# એકાઉન્ટ} other {# એકાઉન્ટ્સ}}",
- "testAllOAuth": "Test all OAuth connections",
- "testAllFree": "Test all Free connections",
- "testAllApiKey": "Test all API Key connections",
- "testAllCompatible": "Test all Compatible connections",
+ "testAllOAuth": "બધા OAuth કનેક્શન્સનું પરીક્ષણ કરો",
+ "testAllFree": "બધા મફત કનેક્શન્સનું પરીક્ષણ કરો",
+ "testAllApiKey": "બધા API Key કનેક્શન્સનું પરીક્ષણ કરો",
+ "testAllCompatible": "બધા સુસંગત કનેક્શન્સનું પરીક્ષણ કરો",
"testAllModels": "બધા મોડલ્સનું પરીક્ષણ કરો",
"testAllModelsConfirm": "બધા દૃશ્યમાન મોડલ્સનું પરીક્ષણ કરવું છે? જો ઓટો-હાઇડ સક્ષમ હશે તો નિષ્ફળ મોડલ્સ છુપાવવામાં આવશે.",
"testingAllModels": "પરીક્ષણ ચાલુ છે {done}/{total}...",
@@ -5150,9 +5157,9 @@
"filterByVisibility": "દૃશ્યતા દ્વારા ફિલ્ટર કરો",
"autoHideFailed": "નિષ્ફળ મોડેલોને આપમેળે છુપાવો",
"autoHideFailedHint": "જ્યારે સક્ષમ હોય, ત્યારે Test all એ /v1/models જેવા સાર્વજનિક કેટલોગમાંથી બિન-ક્ષણિક નિષ્ફળતાઓને છુપાવે છે. સિંગલ-મોડેલ પરીક્ષણો ક્યારેય આપમેળે છુપાવતા નથી.",
- "connected": "{count} Connected",
- "errorCount": "{count} Error ({code})",
- "errorCountNoCode": "{count} Error",
+ "connected": "{count} કનેક્ટેડ",
+ "errorCount": "{count} ભૂલ ({code})",
+ "errorCountNoCode": "{count} ભૂલ",
"testAllCompleted": "{total} મોડેલોનું પરીક્ષણ કર્યું: {ok} OK, {failed} નિષ્ફળ",
"modelAutoHidden": "મોડેલ {model} આપમેળે છુપાવેલ છે (પરીક્ષણ નિષ્ફળ)",
"filterAll": "બધા",
@@ -5160,9 +5167,9 @@
"filterHidden": "માત્ર છુપાયેલ",
"modelsHiddenCount": "{count} છુપાયેલ",
"warningCount": "{count} ચેતવણી",
- "noConnections": "No connections",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "noConnections": "કોઈ કનેક્શન નથી",
+ "expiredBadge": "સમયસીમા સમાપ્ત",
+ "expiringSoonBadge": "ટૂંક સમયમાં સમયસીમા સમાપ્ત થશે",
"freeTier": "મફત ટાયર",
"freeTierAvailable": "મફત સ્તર ઉપલબ્ધ છે",
"hasFreeTooltip": "મફત ટાયર ઉપલબ્ધ છે",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "આ પ્રદાતા નાપસંદ કરવામાં આવી છે",
"riskNotice": {
"title": "આગળ વધતા પહેલા",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "ઉપયોગ સંબંધિત ચેતવણીઓ",
"tooltip": "વપરાશની ચેતવણીઓ સાથેનો પ્રદાતા — વિગતો માટે ક્લિક કરો",
"oauth": "આ પ્રદાતા તમારા સત્તાવાર પ્રોડક્ટ સત્ર/OAuth નો ઉપયોગ કરે છે, જે પ્રોક્સી/રાઉટર ઉપયોગ માટે અધિકૃત નથી. અમે સઘન સ્વાયત્ત એજન્ટ વપરાશ (OpenCloud-શૈલી, લાંબા બહુ-પગલાંના પ્રવાહો, મોટા બેચ) ની ભલામણ કરતા નથી — અપસ્ટ્રીમ એકાઉન્ટને પ્રતિબંધિત અથવા બૅન કરીને પ્રતિક્રિયા આપી શકે છે. તમારા પોતાના જોખમે ઉપયોગ કરો.",
"webCookie": "આ પ્રદાતા તમારા વેબ સત્ર કૂકીઝ દ્વારા પ્રમાણિત કરે છે. અપસ્ટ્રીમ સેવા કોઈપણ સમયે સત્રને અમાન્ય કરી શકે છે, જેના કારણે તમારે ફરીથી લૉગ ઇન કરવું પડશે. લાંબા અડચણ વગરના ઓપરેશન્સ માટે ભલામણ કરેલ નથી. તમારા પોતાના જોખમે ઉપયોગ કરો.",
@@ -5184,95 +5191,95 @@
"cancel": "રદ કરો"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} કનેક્શન ચિહ્નિત — તાજેતરની વધુમાં વધુ {maxFailures} નિષ્ફળતાઓ{lastFailureSuffix}. કનેક્શનની સ્થિતિ જોવા માટે ક્લિક કરો.",
+ "lastFailureSuffix": "(છેલ્લી નિષ્ફળતા {time})",
+ "ariaLabel": "કનેક્શનની સ્થિતિની વિગતો જુઓ, {count} ચેતવણી(ઓ)"
},
- "disabled": "Disabled",
- "enableProvider": "Enable provider",
- "disableProvider": "Disable provider",
- "testResults": "Test Results",
- "noCompatibleYet": "No compatible providers added yet",
- "compatibleHint": "Use the buttons above to add OpenAI or Anthropic compatible endpoints",
- "addOpenAICompatible": "Add OpenAI Compatible",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "addNewProvider": "Add New Provider",
- "backToProviders": "Back to Providers",
- "configureNewProvider": "Configure a new AI provider to use with your applications.",
- "providerLabel": "Provider",
- "selectProvider": "Select a provider",
- "selectedProvider": "Selected provider",
- "authMethod": "Authentication Method",
- "apiKeyLabel": "API Key",
- "apiKeyRequired": "API Key is required",
- "selectProviderRequired": "Please select a provider",
- "enterApiKey": "Enter your API key",
- "apiKeySecure": "Your API key will be encrypted and stored securely.",
- "oauth2Connect": "Connect with OAuth2",
+ "disabled": "અક્ષમ",
+ "enableProvider": "પ્રદાતાને સક્ષમ કરો",
+ "disableProvider": "પ્રદાતાને અક્ષમ કરો",
+ "testResults": "પરીક્ષણ પરિણામો",
+ "noCompatibleYet": "હજુ સુધી કોઈ સુસંગત પ્રદાતા ઉમેરાયા નથી",
+ "compatibleHint": "OpenAI અથવા Anthropic સાથે સુસંગત એન્ડપોઇન્ટ ઉમેરવા માટે ઉપરનાં બટનોનો ઉપયોગ કરો",
+ "addOpenAICompatible": "OpenAI સાથે સુસંગત ઉમેરો",
+ "addAnthropicCompatible": "Anthropic સાથે સુસંગત ઉમેરો",
+ "addNewProvider": "નવો પ્રદાતા ઉમેરો",
+ "backToProviders": "પ્રદાતાઓ પર પાછા જાઓ",
+ "configureNewProvider": "તમારી એપ્લિકેશનો સાથે ઉપયોગ કરવા માટે નવો AI પ્રદાતા ગોઠવો.",
+ "providerLabel": "પ્રદાતા",
+ "selectProvider": "પ્રદાતા પસંદ કરો",
+ "selectedProvider": "પસંદ કરેલો પ્રદાતા",
+ "authMethod": "પ્રમાણીકરણ પદ્ધતિ",
+ "apiKeyLabel": "API કી",
+ "apiKeyRequired": "API કી આવશ્યક છે",
+ "selectProviderRequired": "કૃપા કરીને પ્રદાતા પસંદ કરો",
+ "enterApiKey": "તમારી API કી દાખલ કરો",
+ "apiKeySecure": "તમારી API કીને એન્ક્રિપ્ટ કરીને સુરક્ષિત રીતે સંગ્રહિત કરવામાં આવશે.",
+ "oauth2Connect": "OAuth2 વડે કનેક્ટ કરો",
"oauth2Label": "OAuth2",
- "oauth2Desc": "Connect your account using OAuth2 authentication.",
- "displayName": "Display Name",
- "displayNamePlaceholder": "e.g., Production API, Dev Environment",
- "displayNameHint": "Optional. A friendly name to identify this configuration.",
- "active": "Active",
- "activeDescription": "Enable this provider for use in your applications",
- "cancel": "Cancel",
- "createProvider": "Create Provider",
- "failedCreate": "Failed to create provider",
- "errorOccurred": "An error occurred. Please try again.",
- "modelStatus": "Model Status",
- "showConfiguredOnly": "Configured only",
- "allModelsOperational": "All models operational",
- "modelsWithIssues": "{count} model(s) with issues",
- "allModelsNormal": "All models are responding normally.",
- "cooldownCleared": "Cooldown cleared for {model}",
- "failedClearCooldown": "Failed to clear cooldown",
- "loadingAvailability": "Loading model availability...",
- "clearCooldown": "Clear",
- "clearing": "Clearing...",
- "until": "Until {time}",
- "providerTestFailed": "Provider test failed",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "oauth2Desc": "OAuth2 પ્રમાણીકરણનો ઉપયોગ કરીને તમારું એકાઉન્ટ કનેક્ટ કરો.",
+ "displayName": "પ્રદર્શિત નામ",
+ "displayNamePlaceholder": "દા.ત., પ્રોડક્શન API, ડેવ એન્વાયરમેન્ટ",
+ "displayNameHint": "વૈકલ્પિક. આ ગોઠવણીને ઓળખવા માટેનું સરળ નામ.",
+ "active": "સક્રિય",
+ "activeDescription": "તમારી એપ્લિકેશનોમાં ઉપયોગ માટે આ પ્રદાતાને સક્ષમ કરો",
+ "cancel": "રદ કરો",
+ "createProvider": "પ્રદાતા બનાવો",
+ "failedCreate": "પ્રદાતા બનાવવામાં નિષ્ફળતા",
+ "errorOccurred": "એક ભૂલ આવી. કૃપા કરીને ફરી પ્રયાસ કરો.",
+ "modelStatus": "મોડેલની સ્થિતિ",
+ "showConfiguredOnly": "માત્ર ગોઠવેલા",
+ "allModelsOperational": "બધા મોડેલ કાર્યરત છે",
+ "modelsWithIssues": "સમસ્યાઓ ધરાવતા {count} મોડેલ",
+ "allModelsNormal": "બધા મોડેલ સામાન્ય રીતે પ્રતિસાદ આપી રહ્યા છે.",
+ "cooldownCleared": "{model} માટે કૂલડાઉન દૂર કરવામાં આવ્યું",
+ "failedClearCooldown": "કૂલડાઉન દૂર કરવામાં નિષ્ફળતા",
+ "loadingAvailability": "મોડેલની ઉપલબ્ધતા લોડ થઈ રહી છે...",
+ "clearCooldown": "દૂર કરો",
+ "clearing": "દૂર કરી રહ્યાં છીએ...",
+ "until": "{time} સુધી",
+ "providerTestFailed": "પ્રદાતા પરીક્ષણ નિષ્ફળ થયું",
+ "providerTestTimeout": "પ્રદાતા પરીક્ષણનો સમય સમાપ્ત થયો — એકસાથે પરીક્ષણ કરવા માટે ઘણા બધા કનેક્શન છે",
"modeTest": "{mode} Test",
- "passedCount": "{count} passed",
- "failedCount": "{count} failed",
- "testedCount": "{count} tested",
+ "passedCount": "{count} સફળ",
+ "failedCount": "{count} નિષ્ફળ",
+ "testedCount": "{count}નું પરીક્ષણ થયું",
"millisecondsAbbr": "{value}ms",
"okShort": "OK",
- "errorShort": "ERROR",
- "noActiveConnectionsInGroup": "No active connections found for this group.",
- "allTestsPassed": "All {total} tests passed",
- "testSummary": "{passed}/{total} passed, {failed} failed",
- "nameLabel": "Name",
+ "errorShort": "ભૂલ",
+ "noActiveConnectionsInGroup": "આ જૂથ માટે કોઈ સક્રિય કનેક્શન મળ્યાં નથી.",
+ "allTestsPassed": "તમામ {total} પરીક્ષણો સફળ થયાં",
+ "testSummary": "{passed}/{total} સફળ, {failed} નિષ્ફળ",
+ "nameLabel": "નામ",
"prefixLabel": "Prefix",
- "baseUrlLabel": "Base URL",
- "apiTypeLabel": "API Type",
- "prefixHint": "Required. Unique prefix for model names.",
- "nameHint": "Required. A friendly label for this node.",
- "baseUrlHint": "Required. Provider API base URL.",
+ "baseUrlLabel": "બેઝ URL",
+ "apiTypeLabel": "API પ્રકાર",
+ "prefixHint": "આવશ્યક. મોડલનાં નામો માટે અનન્ય ઉપસર્ગ.",
+ "nameHint": "આવશ્યક. આ નોડ માટે સરળતાથી ઓળખી શકાય તેવું લેબલ.",
+ "baseUrlHint": "આવશ્યક. પ્રદાતાનો API બેઝ URL.",
"iconUrlLabel": "આઇકન URL",
"iconUrlHint": "વૈકલ્પિક. આ પ્રદાતાના આઇકન તરીકે દર્શાવેલ છબી URL.",
"iconUrlInvalid": "અમાન્ય આઇકન URL. http(s):// અથવા data:image/*;base64 URL નો ઉપયોગ કરો.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "દૈનિક ક્વોટા રીસેટ સમય ઝોન",
+ "dailyQuotaResetTimezoneHint": "વૈકલ્પિક IANA સમય ઝોન, જેનો ઉપયોગ અપસ્ટ્રીમ દ્વારા X-RateLimit-Reset ન આપવામાં આવે ત્યારે થાય છે. ટૂંકો કૂલડાઉન જાળવવા માટે ખાલી રાખો.",
+ "dailyQuotaResetHourLabel": "દૈનિક ક્વોટા રીસેટ કલાક",
+ "dailyQuotaResetHourHint": "ઉપરના સમય ઝોન મુજબ સ્થાનિક કલાક 0-23. ખાલી રાખવાનો અર્થ છે કે નોડ-સ્તરની કોઈ ઘડિયાળ નથી.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
- "validateConnection": "Validate Connection",
- "validating": "Validating...",
- "connectionValid": "Connection is valid!",
- "connectionFailed": "Connection failed. Check URL and key.",
- "testKeyLabel": "Test API Key",
- "testKeyPlaceholder": "sk-... (for validation only)",
- "providerNotFound": "Provider not found",
- "deleteConnectionConfirm": "Delete this connection?",
+ "validateConnection": "કનેક્શન ચકાસો",
+ "validating": "ચકાસી રહ્યું છે...",
+ "connectionValid": "કનેક્શન માન્ય છે!",
+ "connectionFailed": "કનેક્શન નિષ્ફળ થયું. URL અને કી તપાસો.",
+ "testKeyLabel": "API કીનું પરીક્ષણ કરો",
+ "testKeyPlaceholder": "sk-... (ફક્ત ચકાસણી માટે)",
+ "providerNotFound": "પ્રદાતા મળ્યો નથી",
+ "deleteConnectionConfirm": "આ કનેક્શન કાઢી નાખવું છે?",
"deleteConnectionConfirmNamed": "શું તમે ખરેખર {name} કાઢી નાખવા માંગો છો? આ ક્રિયા પૂર્વવત્ કરી શકાશે નહીં.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "પસંદ કરેલ કાઢી નાખો ({count})",
+ "batchDeleteConfirm": "{count} કનેક્શન કાઢી નાખવાં છે? આ ક્રિયા પૂર્વવત્ કરી શકાતી નથી.",
+ "batchDeleteSuccess": "{count} કનેક્શન કાઢી નાખ્યાં",
"batchActivateSelected": "સક્રિય કરો",
"batchDeactivateSelected": "નિષ્ક્રિય કરો",
"batchRetestSelected": "ફરીથી પરીક્ષણ કરો",
@@ -5288,32 +5295,32 @@
"filterError": "ભૂલ",
"filterBanned": "પ્રતિબંધિત",
"filterCreditsExhausted": "ક્રેડિટ સમાપ્ત",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "એકાઉન્ટ શોધો…",
"noFilteredConnections": "કોઈપણ કનેક્શન્સ વર્તમાન ફિલ્ટર સાથે મેળ ખાતા નથી.",
- "failedSetAlias": "Failed to set alias",
+ "failedSetAlias": "ઉપનામ સેટ કરવામાં નિષ્ફળતા",
"setAliasSuccess": "ઉપનામ {alias} સેટ કર્યું",
"deleteAliasSuccess": "ઉપનામ {alias} કાઢી નાખ્યું",
- "failedSaveConnection": "Failed to save connection",
- "failedSaveConnectionRetry": "Failed to save connection. Please try again.",
- "failedRetestConnection": "Failed to retest connection",
- "deleteCompatibleNodeConfirm": "Delete this {type} Compatible node?",
- "anthropicCompatibleDetails": "Anthropic Compatible Details",
- "openaiCompatibleDetails": "OpenAI Compatible Details",
+ "failedSaveConnection": "કનેક્શન સાચવવામાં નિષ્ફળતા",
+ "failedSaveConnectionRetry": "કનેક્શન સાચવવામાં નિષ્ફળતા. કૃપા કરીને ફરી પ્રયાસ કરો.",
+ "failedRetestConnection": "કનેક્શનનું ફરી પરીક્ષણ કરવામાં નિષ્ફળતા",
+ "deleteCompatibleNodeConfirm": "આ {type} Compatible નોડ કાઢી નાખવો છે?",
+ "anthropicCompatibleDetails": "Anthropic Compatible વિગતો",
+ "openaiCompatibleDetails": "OpenAI Compatible વિગતો",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "એમ્બેડિંગ્સ",
+ "audioTranscriptions": "ઑડિયો ટ્રાન્સક્રિપ્શન",
+ "audioSpeech": "ઑડિયો સ્પીચ",
+ "imagesGenerations": "ઇમેજ જનરેશન",
"chatCompletions": "Chat Completions",
- "importingModels": "Importing...",
- "importFromModels": "Import from /models",
- "modelsImported": "{count} models imported",
- "allModelsAlreadyImported": "All models already imported",
- "noNewModelsToImport": "No new models to import — all models are already in the registry or custom models list",
- "skippingExistingModels": "Skipping {count} existing models",
- "autoSync": "Auto-Sync",
- "autoSyncShort": "Sync",
+ "importingModels": "આયાત કરી રહ્યું છે...",
+ "importFromModels": "/modelsમાંથી આયાત કરો",
+ "modelsImported": "{count} મોડલ આયાત કર્યાં",
+ "allModelsAlreadyImported": "બધાં મોડલ પહેલેથી આયાત થયેલાં છે",
+ "noNewModelsToImport": "આયાત કરવા માટે કોઈ નવાં મોડલ નથી — બધાં મોડલ પહેલેથી રજિસ્ટ્રી અથવા કસ્ટમ મોડલની સૂચિમાં છે",
+ "skippingExistingModels": "હાલનાં {count} મોડલ છોડી રહ્યાં છીએ",
+ "autoSync": "ઑટો-સિંક",
+ "autoSyncShort": "સિંક કરો",
"autoFetchModels": "આપોઆપ અપસ્ટ્રીમ મોડલ્સ લાવો",
"autoFetchModelsTooltip": "જરૂર પડ્યે અપસ્ટ્રીમ મોડલ્સને લાવવા અને કેશ કરવા",
"autoFetchModelsEnabled": "અપસ્ટ્રીમ મોડલ આપોઆપ મેળવવું સક્રિય છે",
@@ -5325,52 +5332,52 @@
"resetToUpstreamDefaults": "અપસ્ટ્રીમ ડિફોલ્ટ્સ પુનઃસ્થાપિત કરો",
"resetToUpstreamDefaultsSuccess": "ઉપરવાળી મોડલ ડિફોલ્ટ્સ પુનઃસ્થાપિત કરવામાં આવ્યા",
"resetToUpstreamDefaultsFailed": "અપસ્ટ્રીમ મોડલ ડિફોલ્ટ્સ પુનઃસ્થાપિત કરવામાં નિષ્ફળ થયું",
- "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)",
- "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically",
- "autoSyncDisabled": "Auto-sync disabled",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
- "autoSyncPartialFailure": "Auto-sync updated for some connections, but not all",
- "clearAllModels": "Clear All Models",
- "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.",
- "clearAllModelsSuccess": "All models cleared",
- "clearAllModelsFailed": "Failed to clear models",
- "addConnectionToImport": "Add a connection to enable importing.",
- "noModelsConfigured": "No models configured",
- "connectionCount": "{count} connection(s)",
- "fetchingModels": "Fetching available models...",
- "failedFetchModels": "Failed to fetch models",
+ "autoSyncTooltip": "દર 24 કલાકે મોડેલ સૂચિ આપમેળે રિફ્રેશ કરો (MODEL_SYNC_INTERVAL_HOURS દ્વારા ગોઠવી શકાય છે)",
+ "autoSyncEnabled": "ઑટો-સિંક સક્ષમ છે — મોડેલો સમયાંતરે રિફ્રેશ થશે",
+ "autoSyncDisabled": "ઑટો-સિંક અક્ષમ છે",
+ "autoSyncToggleFailed": "ઑટો-સિંક ટૉગલ કરવામાં નિષ્ફળ",
+ "autoSyncPartialFailure": "કેટલાક કનેક્શન માટે ઑટો-સિંક અપડેટ થયું, પરંતુ બધા માટે નહીં",
+ "clearAllModels": "બધા મોડેલો સાફ કરો",
+ "clearAllModelsConfirm": "શું તમે ખરેખર આ પ્રોવાઇડરના બધા મોડેલો દૂર કરવા માંગો છો? આ ક્રિયા પૂર્વવત્ કરી શકાતી નથી.",
+ "clearAllModelsSuccess": "બધા મોડેલો સાફ કરવામાં આવ્યા",
+ "clearAllModelsFailed": "મોડેલો સાફ કરવામાં નિષ્ફળ",
+ "addConnectionToImport": "ઇમ્પોર્ટ સક્ષમ કરવા માટે કનેક્શન ઉમેરો.",
+ "noModelsConfigured": "કોઈ મોડેલ ગોઠવેલ નથી",
+ "connectionCount": "{count} કનેક્શન",
+ "fetchingModels": "ઉપલબ્ધ મોડેલો મેળવવામાં આવી રહ્યા છે...",
+ "failedFetchModels": "મોડેલો મેળવવામાં નિષ્ફળ",
"noFreeModelsFound": "આ પ્રદાતા માટે કોઈ મફત મોડેલો મળ્યા નથી — કંઈપણ આયાત કરવામાં આવ્યું નથી.",
"fetchModelsSuccess": "{count} નવા મોડેલો મળ્યા",
"fetchModelsFailed": "મોડેલો આપમેળે લાવી શકાયા નથી (તમે સેટિંગ્સમાંથી ફરી પ્રયાસ કરી શકો છો)",
- "noModelsFound": "No models found",
- "importFailed": "Import failed",
- "noNewModelsAdded": "No new models were added.",
+ "noModelsFound": "કોઈ મોડેલ મળ્યાં નથી",
+ "importFailed": "ઇમ્પોર્ટ નિષ્ફળ",
+ "noNewModelsAdded": "કોઈ નવા મોડેલો ઉમેરાયા નથી.",
"adding": "Adding...",
- "close": "Close",
- "importingModelsTitle": "Importing Models",
- "copyModel": "Copy model",
- "filterModels": "Filter models...",
+ "close": "બંધ કરો",
+ "importingModelsTitle": "મોડેલો ઇમ્પોર્ટ થઈ રહ્યા છે",
+ "copyModel": "મોડેલ કૉપિ કરો",
+ "filterModels": "મોડેલો ફિલ્ટર કરો...",
"testAllRateLimited": "રેટ મર્યાદા પહોંચી ગઈ, વહેલા બંધ કરવામાં આવ્યું",
"hideFailedAuto": "નિષ્ફળ થયેલા મોડેલો આપમેળે છુપાવો",
- "selectAllModels": "Select all",
+ "selectAllModels": "બધા પસંદ કરો",
"hideAllModels": "બધા છુપાવો",
- "modelsActive": "Active",
- "showModel": "Show model",
- "hideModel": "Hide model",
- "removeModel": "Remove model",
- "rateLimitProtected": "Protected",
- "rateLimitUnprotected": "Unprotected",
+ "modelsActive": "સક્રિય",
+ "showModel": "મોડેલ બતાવો",
+ "hideModel": "મોડેલ છુપાવો",
+ "removeModel": "મોડેલ દૂર કરો",
+ "rateLimitProtected": "સુરક્ષિત",
+ "rateLimitUnprotected": "અસુરક્ષિત",
"providerQuotaShort": "ક્વોટા",
"hideConnectionFromProviderQuota": "આ એકાઉન્ટને પ્રોવાઇડર ક્વોટામાંથી છુપાવો",
"showConnectionInProviderQuota": "આ એકાઉન્ટને પ્રોવાઇડર ક્વોટામાં બતાવો",
"quotaVisibilityUpdateFailed": "પ્રોવાઇડર ક્વોટા દૃશ્યતા અપડેટ કરવામાં નિષ્ફળ",
- "enableRateLimitProtection": "Click to enable rate limit protection",
- "disableRateLimitProtection": "Click to disable rate limit protection",
+ "enableRateLimitProtection": "રેટ લિમિટ સુરક્ષા સક્ષમ કરવા ક્લિક કરો",
+ "disableRateLimitProtection": "રેટ લિમિટ સુરક્ષા અક્ષમ કરવા ક્લિક કરો",
"testAllProgress": "{done}/{total} ચકાસાયેલ",
"testAllFailedHidden": "{count} નિષ્ફળ થયેલા મોડેલો છુપાવ્યા",
"testAllDone": "બધા મોડેલો ચકાસાયા",
- "productionKey": "Production Key",
- "enterNewApiKey": "Enter new API key",
+ "productionKey": "પ્રોડક્શન કી",
+ "enterNewApiKey": "નવી API કી દાખલ કરો",
"codexApplyModalTitle": "સ્થાનિક કોડેક્સ પર અરજી કરો",
"codexApplyTargetLabel": "લક્ષ્ય માર્ગ",
"codexApplyBackupLabel": "બેકઅપ્સ",
@@ -5382,77 +5389,77 @@
"bulkAddFormatHint": "લાઇન દીઠ એક કી. ફોર્મેટ: નામ|apiKey અથવા ફક્ત apiKey (અનુક્રમણિકા દ્વારા સ્વતઃ-નામિત).",
"bulkValidateKeys": "સાચવતા પહેલા દરેક કીને માન્ય કરો (ધીમી)",
"bulkAddAllKeys": "બધી કી ઉમેરો",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
- "optional": "Optional",
+ "bulkAddedCount": "{count, plural, one {# કી ઉમેરાઈ} other {# કીઓ ઉમેરાઈ}}",
+ "bulkFailedCount": "{count, plural, one {# નિષ્ફળ} other {# નિષ્ફળ}}",
+ "optional": "વૈકલ્પિક",
"anthropicCompatibleName": "Anthropic Compatible",
"openaiCompatibleName": "OpenAI Compatible",
"compatibleDefaultModelLabel": "ડિફૉલ્ટ મોડેલ",
"compatibleDefaultModelHint": "મોડેલ ID બરાબર એ જ રીતે દાખલ કરો જેવી તમારા સુસંગત એન્ડપોઇન્ટને અપેક્ષા છે. આ મોડેલ કનેક્શન ડિફૉલ્ટ તરીકે સાચવવામાં આવશે.",
- "failedImportModels": "Failed to import models",
- "noModelsReturnedFromEndpoint": "No models returned from /models endpoint.",
- "importingModelsProgress": "Importing {current} of {total} models...",
- "foundModelsStartingImport": "Found {count} models. Starting import...",
- "importingModelById": "Importing {modelId}...",
- "importSuccessCount": "Successfully imported {count, plural, one {# model} other {# models}}!",
- "noNewModelsAddedExisting": "No new models were added (all already exist).",
- "importDoneCount": "✓ Done! {count, plural, one {# model imported.} other {# models imported.}}",
- "unexpectedErrorOccurred": "An unexpected error occurred",
+ "failedImportModels": "મોડેલો ઇમ્પોર્ટ કરવામાં નિષ્ફળ",
+ "noModelsReturnedFromEndpoint": "/models endpoint પરથી કોઈ મોડેલ મળ્યાં નથી.",
+ "importingModelsProgress": "કુલ {total}માંથી {current} મોડેલો ઇમ્પોર્ટ થઈ રહ્યા છે...",
+ "foundModelsStartingImport": "{count} મોડલ મળ્યાં. આયાત શરૂ કરી રહ્યાં છીએ...",
+ "importingModelById": "{modelId} આયાત કરી રહ્યાં છીએ...",
+ "importSuccessCount": "{count, plural, one {# મોડલ સફળતાપૂર્વક આયાત થયું!} other {# મોડલ સફળતાપૂર્વક આયાત થયાં!}}",
+ "noNewModelsAddedExisting": "કોઈ નવું મોડલ ઉમેરાયું નથી (બધાં પહેલેથી અસ્તિત્વમાં છે).",
+ "importDoneCount": "✓ પૂર્ણ! {count, plural, one {# મોડલ આયાત થયું.} other {# મોડલ આયાત થયાં.}}",
+ "unexpectedErrorOccurred": "એક અનપેક્ષિત ભૂલ આવી",
"getApiKey": "એપી આઈ કી મેળવો",
"getApiKeyDescription": "API કી માટે નોંધણી કરો અથવા સાઇન અપ કરો",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# કનેક્શન} other {# કનેક્શનો}}",
"messagesPath": "messages",
"responsesPath": "responses",
"chatCompletionsPath": "chat/completions",
- "add": "Add",
- "edit": "Edit",
- "delete": "Delete",
+ "add": "ઉમેરો",
+ "edit": "સંપાદિત કરો",
+ "delete": "કાઢી નાખો",
"anthropic": "Anthropic",
"openai": "OpenAI",
- "singleConnectionPerCompatible": "Only one connection is allowed per compatible node. Add another node if you need more connections.",
- "connections": "Connections",
- "providerProxyTitleConfigured": "Provider proxy: {host}",
- "configured": "configured",
- "providerProxyConfigureHint": "Configure proxy for all connections of this provider",
- "providerProxy": "Provider Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
- "noConnectionsYet": "No connections yet",
- "addFirstConnectionHint": "Add your first connection to get started",
- "addConnection": "Add Connection",
- "availableModels": "Available Models",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
- "pageAutoRefresh": "Page will refresh automatically...",
- "statusDisabled": "disabled",
- "statusConnected": "connected",
- "statusRuntimeIssue": "runtime issue",
- "statusAuthFailed": "auth failed",
- "statusRateLimited": "rate limited",
- "statusNetworkIssue": "network issue",
- "statusTestUnsupported": "test unsupported",
- "statusUnavailable": "unavailable",
- "statusFailed": "failed",
- "statusError": "error",
- "oauthAccount": "OAuth Account",
- "errorTypeRuntime": "Local runtime",
- "errorTypeUpstreamAuth": "Upstream auth",
- "errorTypeMissingCredential": "Missing credential",
- "errorTypeRefreshFailed": "Refresh failed",
- "errorTypeTokenExpired": "Token expired",
- "errorTypeRateLimited": "Rate limited",
- "errorTypeUpstreamUnavailable": "Upstream unavailable",
- "errorTypeNetworkError": "Network error",
- "errorTypeTestUnsupported": "Test unsupported",
- "errorTypeUpstreamError": "Upstream error",
+ "singleConnectionPerCompatible": "દરેક સુસંગત નોડ દીઠ માત્ર એક કનેક્શનની મંજૂરી છે. વધુ કનેક્શનોની જરૂર હોય તો બીજો નોડ ઉમેરો.",
+ "connections": "કનેક્શનો",
+ "providerProxyTitleConfigured": "પ્રદાતા પ્રોક્સી: {host}",
+ "configured": "ગોઠવેલું",
+ "providerProxyConfigureHint": "આ પ્રદાતાનાં તમામ કનેક્શનો માટે પ્રોક્સી ગોઠવો",
+ "providerProxy": "પ્રદાતા પ્રોક્સી",
+ "repairEnv": ".env સુધારો",
+ "repairEnvWorking": "સુધારી રહ્યાં છીએ...",
+ "repairEnvHint": "હાલનાં મૂલ્યોને ઓવરરાઇટ કર્યા વિના ખૂટતા OAuth ડિફૉલ્ટ્સને .env માં પુનઃસ્થાપિત કરો.",
+ "repairEnvSuccess": "OAuth ડિફૉલ્ટ્સ પુનઃસ્થાપિત થયા",
+ "repairEnvFailed": ".env સુધારવામાં નિષ્ફળતા",
+ "noConnectionsYet": "હજી સુધી કોઈ કનેક્શન નથી",
+ "addFirstConnectionHint": "શરૂ કરવા માટે તમારું પ્રથમ કનેક્શન ઉમેરો",
+ "addConnection": "કનેક્શન ઉમેરો",
+ "availableModels": "ઉપલબ્ધ મોડલ",
+ "builtInModels": "બિલ્ટ-ઇન મોડલ",
+ "builtInModelsHint": "આ પ્રદાતા માટેનાં રજિસ્ટ્રી મોડલ. સુસંગતતા વિકલ્પો સેટ કરવા માટે પેન્સિલનો ઉપયોગ કરો.",
+ "pageAutoRefresh": "પેજ આપમેળે રિફ્રેશ થશે...",
+ "statusDisabled": "અક્ષમ",
+ "statusConnected": "કનેક્ટેડ",
+ "statusRuntimeIssue": "રનટાઇમ સમસ્યા",
+ "statusAuthFailed": "પ્રમાણીકરણ નિષ્ફળ",
+ "statusRateLimited": "દર મર્યાદિત",
+ "statusNetworkIssue": "નેટવર્ક સમસ્યા",
+ "statusTestUnsupported": "પરીક્ષણ સમર્થિત નથી",
+ "statusUnavailable": "અનુપલબ્ધ",
+ "statusFailed": "નિષ્ફળ",
+ "statusError": "ભૂલ",
+ "oauthAccount": "OAuth એકાઉન્ટ",
+ "errorTypeRuntime": "સ્થાનિક રનટાઇમ",
+ "errorTypeUpstreamAuth": "અપસ્ટ્રીમ પ્રમાણીકરણ",
+ "errorTypeMissingCredential": "ઓળખપત્ર ખૂટે છે",
+ "errorTypeRefreshFailed": "રિફ્રેશ નિષ્ફળ થયું",
+ "errorTypeTokenExpired": "ટોકનની મુદત પૂરી થઈ",
+ "errorTypeRateLimited": "દર મર્યાદિત",
+ "errorTypeUpstreamUnavailable": "અપસ્ટ્રીમ ઉપલબ્ધ નથી",
+ "errorTypeNetworkError": "નેટવર્ક ભૂલ",
+ "errorTypeTestUnsupported": "પરીક્ષણ સમર્થિત નથી",
+ "errorTypeUpstreamError": "અપસ્ટ્રીમ ભૂલ",
"errorTypeCreditsExhausted": "કોઈ ક્રેડિટ નથી",
"errorTypeBanned": "403 પ્રતિબંધિત",
- "proxySourceGlobal": "Global",
- "proxySourceProvider": "Provider",
- "proxySourceKey": "Key",
+ "proxySourceGlobal": "વૈશ્વિક",
+ "proxySourceProvider": "પ્રદાતા",
+ "proxySourceKey": "કી",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"proxyOn": "પ્રોક્સી ચાલુ",
"proxyOff": "ડાયરેક્ટ (પ્રોક્સી બાયપાસ કરો)",
@@ -5464,31 +5471,31 @@
"perKeyProxyDisabledTitle": "આ પ્રોવાઇડર માટે કી-દીઠ પ્રોક્સી અસાઇનમેન્ટ અક્ષમ કરેલ છે",
"autoPriority": "Auto: {priority}",
"proxy": "Proxy",
- "retestAuthentication": "Retest authentication",
- "retest": "Retest",
- "disableConnection": "Disable connection",
- "enableConnection": "Enable connection",
- "reauthenticateConnection": "Re-authenticate this connection",
- "proxyConfig": "Proxy config",
- "aliasExistsAlert": "Alias \"{alias}\" already exists. Please use a different model or edit existing alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
- "openRouterAnyModelHint": "OpenRouter supports any model. Add models and create aliases for quick access.",
- "modelIdFromOpenRouter": "Model ID (from OpenRouter)",
+ "retestAuthentication": "પ્રમાણીકરણનું ફરી પરીક્ષણ કરો",
+ "retest": "ફરી પરીક્ષણ કરો",
+ "disableConnection": "કનેક્શન અક્ષમ કરો",
+ "enableConnection": "કનેક્શન સક્ષમ કરો",
+ "reauthenticateConnection": "આ કનેક્શનનું ફરી પ્રમાણીકરણ કરો",
+ "proxyConfig": "પ્રોક્સી રૂપરેખાંકન",
+ "aliasExistsAlert": "ઉપનામ \"{alias}\" પહેલેથી અસ્તિત્વમાં છે. કૃપા કરીને અલગ મોડેલનો ઉપયોગ કરો અથવા હાલના ઉપનામમાં ફેરફાર કરો.",
+ "aliasInputPlaceholder": "ઉપનામનું નામ",
+ "clickToSetAlias": "ઉપનામ સેટ કરવા માટે ક્લિક કરો",
+ "clickToEditAlias": "ઉપનામ: {alias} (ફેરફાર કરવા માટે ક્લિક કરો)",
+ "openRouterAnyModelHint": "OpenRouter કોઈપણ મોડેલને સમર્થન આપે છે. ઝડપી ઍક્સેસ માટે મોડેલો ઉમેરો અને ઉપનામો બનાવો.",
+ "modelIdFromOpenRouter": "મોડેલ ID (OpenRouterમાંથી)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
- "customModels": "Custom Models",
- "customModelsHint": "Add model IDs not in the default list. These will be available for routing.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "customModels": "કસ્ટમ મોડેલો",
+ "customModelsHint": "ડિફૉલ્ટ સૂચિમાં ન હોય તેવા મોડેલ ID ઉમેરો. આ રાઉટિંગ માટે ઉપલબ્ધ રહેશે.",
+ "normalizeToolCallIdLabel": "ટૂલ કૉલ IDને 9 અક્ષરોમાં સામાન્યકૃત કરો (દા.ત. Mistral)",
+ "preserveDeveloperRoleLabel": "OpenAI Responses ડેવલપર ભૂમિકા જાળવી રાખો (systemમાં મેપ કરશો નહીં)",
+ "compatAdjustmentsTitle": "સુસંગતતા",
+ "compatButtonLabel": "સુસંગતતા",
+ "compatToolIdShort": "ટૂલ ID 9",
+ "compatDeveloperShort": "ડેવલપર ભૂમિકા",
+ "compatDoNotPreserveDeveloper": "ડેવલપર ભૂમિકા જાળવશો નહીં",
+ "compatBadgeNoPreserve": "જાળવશો નહીં",
+ "compatProtocolLabel": "ક્લાયન્ટ વિનંતી પ્રોટોકોલ",
+ "compatProtocolHint": "જ્યારે OmniRoute આ વિનંતીનું સ્વરૂપ (OpenAI Chat, Responses API અથવા Anthropic Messages) શોધે છે ત્યારે આ વિકલ્પો લાગુ પડે છે.",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,84 +5537,84 @@
"interceptFetchHint": "મૂળ web_fetch ટૂલ કૉલ્સને OmniRoute ના /v1/web/fetch પર ફરીથી લખો.",
"interceptionLoadError": "ઇન્ટરસેપ્શન સેટિંગ્સ લોડ કરવામાં નિષ્ફળ: {error}",
"interceptionSaveError": "ઇન્ટરસેપ્શન સેટિંગ્સ સાચવવામાં નિષ્ફળ: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
- "perModelQuotaLabel": "Per-Model Quota",
- "perModelQuotaDescription": "When enabled, 429/404 errors only lock the specific model, not the entire connection. Use for providers with per-model rate limits (e.g., ModelScope).",
+ "ccAliasSectionTitle": "Claude Codeમાં દર્શાવો (claude/…)",
+ "ccAliasSectionHint": "આ પ્રદાતાના મોડેલો claude/<provider>/<model> મિરર ID હેઠળ જાહેર કરો, જેથી Claude Codeનું ગેટવે મોડેલ ડિસ્કવરી તેમને સૂચિબદ્ધ કરી શકે. ડિફૉલ્ટ રૂપે બંધ — તેને સક્ષમ કરવાથી બધા ક્લાયન્ટ માટે કેટલોગ એન્ટ્રીઓ બમણી થાય છે.",
+ "ccAliasProviderLevelLabel": "પ્રદાતાનું ડિફૉલ્ટ",
+ "ccAliasModelOverridesLabel": "મોડેલ દીઠ ઓવરરાઇડ્સ",
+ "ccAliasModelOverrideAriaLabel": "{modelId} માટે ઓવરરાઇડ",
+ "ccAliasStateInherit": "વારસામાં મેળવો",
+ "ccAliasStateOn": "ચાલુ",
+ "ccAliasStateOff": "બંધ",
+ "ccAliasAddModelPlaceholder": "મોડેલ ID (દા.ત. gpt-4o)",
+ "ccAliasAddModelButton": "ઓવરરાઇડ ઉમેરો",
+ "ccAliasLoadError": "ડિસ્કવરી-એલિયાસ સેટિંગ્સ લોડ કરવામાં નિષ્ફળતા: {error}",
+ "ccAliasSaveError": "ડિસ્કવરી-એલિયાસ સેટિંગ સાચવવામાં નિષ્ફળતા: {error}",
+ "compatUpstreamHeadersLabel": "વધારાના અપસ્ટ્રીમ હેડર્સ",
+ "compatUpstreamHeadersHint": "ઉચ્ચ-વિશેષાધિકાર સેટિંગ — પ્રદાતાના API ઓળખપત્રો સંપાદિત કરવા જેટલું જ વિશ્વાસ સ્તર; ફક્ત વિશ્વસનીય એડમિનોએ તેનો ઉપયોગ કરવો જોઈએ. OmniRoute પ્રદાતાની API કીમાંથી પ્રમાણીકરણ ઉમેરે ત્યારબાદ તેને મર્જ કરવામાં આવે છે. જો કસ્ટમ હેડરનું નામ હાલના હેડર જેવું જ હોય (દા.ત. Authorization), તો તમારું મૂલ્ય આપમેળે જનરેટ થયેલા હેડરને સંપૂર્ણપણે બદલી નાખે છે (Bearer ટોકન સહિત) — અપસ્ટ્રીમને ફક્ત તમે લખેલું જ દેખાય છે, સેટિંગ્સમાંની કી નહીં. ખોટી ગોઠવણીથી 401 અથવા અપસ્ટ્રીમ પ્રમાણીકરણમાં ખામી આવી શકે છે. દરેક હેડર માટે એક પંક્તિ (દા.ત. કેટલાક ગેટવે માટે વધારાનું Authentication). પૂર્વાવલોકન માટે મૂલ્ય પર હૉવર કરો અથવા ફોકસ કરો. બ્લર થવા પર, બહાર ક્લિક કરતાં અથવા આ પેનલ બંધ કરતાં સાચવાય છે.",
+ "compatUpstreamHeaderName": "હેડરનું નામ",
+ "compatUpstreamHeaderValue": "મૂલ્ય",
+ "compatUpstreamAddRow": "હેડર ઉમેરો",
+ "compatUpstreamRemoveRow": "પંક્તિ દૂર કરો",
+ "compatBadgeUpstreamHeaders": "હેડર્સ",
+ "perModelQuotaLabel": "મોડેલ દીઠ ક્વોટા",
+ "perModelQuotaDescription": "સક્ષમ હોય ત્યારે, 429/404 ભૂલો ફક્ત ચોક્કસ મોડેલને લૉક કરે છે, સમગ્ર કનેક્શનને નહીં. મોડેલ દીઠ દર મર્યાદા ધરાવતા પ્રદાતાઓ માટે ઉપયોગ કરો (દા.ત., ModelScope).",
"importFreeModelsOnlyLabel": "માત્ર મફત મૉડલ્સ આયાત કરો",
"importFreeModelsOnlyHint": "જ્યારે સક્ષમ હોય, ત્યારે ફક્ત આ પ્રદાતાના મફત મૉડલ્સ આયાત કરવામાં આવે છે. પેઇડ મૉડલ્સ છોડી દેવામાં આવે છે.",
- "perModelQuotaToggle": "Per-Model Quota Toggle",
- "modelId": "Model ID",
- "customModelPlaceholder": "e.g. gpt-4.5-turbo",
- "loading": "Loading...",
- "removeCustomModel": "Remove custom model",
- "noCustomModels": "No custom models added yet.",
- "allSuggestedAliasesExist": "All suggested aliases already exist. Please choose a different model or remove conflicting aliases.",
- "failedSaveCustomModel": "Failed to save custom model",
- "modelAddedSuccess": "Model {modelId} added successfully",
- "failedAddModelTryAgain": "Failed to add model. Please try again.",
- "failedSaveImportedModel": "Failed to save imported model to custom database",
- "failedImportModelsTryAgain": "Failed to import models. Please try again.",
- "failedRemoveModelFromDatabase": "Failed to remove model from database",
- "modelRemovedSuccess": "Model removed successfully",
- "failedDeleteModelTryAgain": "Failed to delete model. Please try again.",
- "compatibleModelsDescription": "Add {type}-compatible models manually or import them from the /models endpoint.",
+ "perModelQuotaToggle": "મોડેલ દીઠ ક્વોટા ટૉગલ",
+ "modelId": "મોડેલ ID",
+ "customModelPlaceholder": "દા.ત. gpt-4.5-turbo",
+ "loading": "લોડ થઈ રહ્યું છે...",
+ "removeCustomModel": "કસ્ટમ મોડેલ દૂર કરો",
+ "noCustomModels": "હજુ સુધી કોઈ કસ્ટમ મોડેલ ઉમેરાયું નથી.",
+ "allSuggestedAliasesExist": "સૂચવેલા બધા એલિયાસ પહેલેથી અસ્તિત્વમાં છે. કૃપા કરીને અલગ મોડેલ પસંદ કરો અથવા વિરોધાભાસી એલિયાસ દૂર કરો.",
+ "failedSaveCustomModel": "કસ્ટમ મોડેલ સાચવવામાં નિષ્ફળતા",
+ "modelAddedSuccess": "મોડેલ {modelId} સફળતાપૂર્વક ઉમેરાયું",
+ "failedAddModelTryAgain": "મોડેલ ઉમેરવામાં નિષ્ફળતા. કૃપા કરીને ફરી પ્રયાસ કરો.",
+ "failedSaveImportedModel": "આયાત કરેલું મોડેલ કસ્ટમ ડેટાબેઝમાં સાચવવામાં નિષ્ફળતા",
+ "failedImportModelsTryAgain": "મોડેલો આયાત કરવામાં નિષ્ફળતા. કૃપા કરીને ફરી પ્રયાસ કરો.",
+ "failedRemoveModelFromDatabase": "ડેટાબેઝમાંથી મોડેલ દૂર કરવામાં નિષ્ફળતા",
+ "modelRemovedSuccess": "મોડેલ સફળતાપૂર્વક દૂર કરવામાં આવ્યું",
+ "failedDeleteModelTryAgain": "મોડેલ કાઢી નાખવામાં નિષ્ફળતા. કૃપા કરીને ફરી પ્રયાસ કરો.",
+ "compatibleModelsDescription": "{type}-સુસંગત મોડેલો મેન્યુઅલી ઉમેરો અથવા તેમને /models એન્ડપોઇન્ટમાંથી આયાત કરો.",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
- "apiKeyValidationFailed": "API key validation failed. Please check your key and try again.",
- "addProviderApiKeyTitle": "Add {provider} API Key",
- "checking": "Checking...",
- "check": "Check",
- "valid": "Valid",
- "invalid": "Invalid",
- "creating": "Creating...",
- "validationChecksAnthropicCompatible": "Validation checks {provider} by verifying the API key.",
- "validationChecksOpenAiCompatible": "Validation checks {provider} via /models on your base URL.",
- "priorityLabel": "Priority",
- "saving": "Saving...",
- "save": "Save",
- "editConnection": "Edit Connection",
- "accountName": "Account name",
+ "apiKeyValidationFailed": "API કી માન્યતા નિષ્ફળ થઈ. કૃપા કરીને તમારી કી તપાસો અને ફરી પ્રયાસ કરો.",
+ "addProviderApiKeyTitle": "{provider} API કી ઉમેરો",
+ "checking": "તપાસી રહ્યું છે...",
+ "check": "તપાસો",
+ "valid": "માન્ય",
+ "invalid": "અમાન્ય",
+ "creating": "બનાવી રહ્યું છે...",
+ "validationChecksAnthropicCompatible": "API કીની ચકાસણી કરીને {provider}નું માન્યકરણ કરે છે.",
+ "validationChecksOpenAiCompatible": "તમારા બેઝ URL પર /models દ્વારા {provider}નું માન્યકરણ કરે છે.",
+ "priorityLabel": "પ્રાથમિકતા",
+ "saving": "સાચવી રહ્યું છે...",
+ "save": "સાચવો",
+ "editConnection": "કનેક્શન સંપાદિત કરો",
+ "accountName": "એકાઉન્ટનું નામ",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "હેલ્થ ચેક (મિનિટ)",
"healthCheckHint": "Proactive token refresh interval. 0 = disabled.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
- "failedTestConnection": "Failed to test connection",
- "failed": "Failed",
- "leaveBlankKeepCurrentApiKey": "Leave blank to keep the current API key.",
- "editCompatibleTitle": "Edit {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
- "apiKeyForCheck": "API Key (for Check)",
+ "deselectAllModels": "બધાની પસંદગી દૂર કરો",
+ "modelsActiveCount": "{active}/{total} સક્રિય",
+ "noModelsMatch": "\"{filter}\" સાથે કોઈ મોડેલ મેળ ખાતું નથી",
+ "groupLabel": "પર્યાવરણ",
+ "groupPlaceholder": "દા.ત. eKaizen, વ્યક્તિગત",
+ "failedTestConnection": "કનેક્શનનું પરીક્ષણ નિષ્ફળ ગયું",
+ "failed": "નિષ્ફળ",
+ "leaveBlankKeepCurrentApiKey": "વર્તમાન API કી જાળવી રાખવા માટે ખાલી છોડો.",
+ "editCompatibleTitle": "{type} સુસંગત સંપાદિત કરો",
+ "compatibleBaseUrlHint": "તમારા {type}-સુસંગત APIનું રૂટ URL. કસ્ટમ એન્ડપોઇન્ટ પાથ માટે અદ્યતન સેટિંગ્સનો ઉપયોગ કરો.",
+ "apiKeyForCheck": "API કી (ચકાસણી માટે)",
"testModelIdLabel": "મૉડલ ID (વૈકલ્પિક)",
"testModelIdPlaceholder": "દા.ત. my-model-id",
"testModelIdHint": "જો પ્રદાતા પાસે /models એન્ડપોઇન્ટ ન હોય, તો તેના બદલે /chat/completions દ્વારા માન્ય કરવા માટે મૉડલ ID દાખલ કરો.",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "compatibleProdPlaceholder": "{type} સુસંગત (ઉત્પાદન)",
+ "tokenRefreshed": "ટોકન સફળતાપૂર્વક રિફ્રેશ થયું",
+ "tokenRefreshFailed": "ટોકન રિફ્રેશ નિષ્ફળ થયું",
"cursorSessionUnchanged": "સત્ર પહેલેથી જ વર્તમાન છે",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "પ્રમાણીકરણ લાગુ કરો",
+ "exportCodexAuthFile": "પ્રમાણીકરણ નિકાસ કરો",
"applyClaudeAuthLocal": "પ્રમાણીકરણ લાગુ કરો",
"exportClaudeAuthFile": "નિકાસ પ્રમાણીકરણ",
"importClaudeAuth": "આયાત પ્રમાણીકરણ",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} નિષ્ફળ",
"codexImportBulkZipExtracting": "ઝીપ એક્સટ્રેક્ટ કરી રહ્યાં છીએ...",
"codexImportBulkZipError": "ZIP કાઢવામાં નિષ્ફળ",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "અદ્યતન સેટિંગ્સ",
+ "chatPathLabel": "ચેટ એન્ડપોઇન્ટ પાથ",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "બિન-માનક API ધરાવતા પ્રદાતાઓ માટે કસ્ટમ ચેટ પાથ (દા.ત. /v4/chat/completions)",
+ "modelsPathLabel": "મોડેલ્સ એન્ડપોઇન્ટ પાથ",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "માન્યકરણ માટે કસ્ટમ મોડેલ્સ પાથ (દા.ત. /v4/models)",
"clientIdentityLabel": "ક્લાયન્ટ ઓળખ",
"clientIdentityHint": "વૈકલ્પિક. સુસંગત ગેટવે કે જે અપેક્ષા રાખે છે તેના માટે જાણીતા CLI સાથે મેળ ખાતા ક્લાયન્ટ ફિંગરપ્રિન્ટ હેડર્સ (દા.ત. User-Agent) ઉમેરે છે.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "નિષ્ક્રિય કરેલું (મેન્યુઅલ)",
+ "statusBanned": "પ્રતિબંધિત / સેન્ડબોક્સ ઉલ્લંઘન",
+ "statusCreditsExhausted": "અપૂરતી બેલેન્સ / ક્વોટા સમાપ્ત",
+ "showEmails": "બધા ઇમેઇલ બતાવો",
+ "hideEmails": "બધા ઇમેઇલ છુપાવો",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "બીજી API કી ઉમેરો અથવા એકથી વધુ કીઓ પેસ્ટ કરો",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "એગ્રીગેટર ગેટવે",
"enterpriseCloud": "એન્ટરપ્રાઇઝ અને ક્લાઉડ",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "API ફોર્મેટ લેબલ",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "API પ્રદેશ ચીન",
+ "apiRegionHint": "API પ્રદેશ સંકેત",
+ "apiRegionInternational": "API પ્રદેશ આંતરરાષ્ટ્રીય",
+ "apiRegionLabel": "API પ્રદેશ લેબલ",
+ "apikey": "API કી",
+ "audio": "ઑડિયો",
+ "audioProvidersHeading": "ઑડિયો પ્રદાતાઓનું શીર્ષક",
"cloudAgentProviders": "ક્લાઉડ એજન્ટ પ્રદાતાઓ",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "ઑડિયોનું ટૂંકું લેબલ",
+ "azureOpenAiBaseUrlHint": "Azure Open AI બેઝ URL સંકેત",
+ "bailianBaseUrlHint": "Bailian બેઝ URL સંકેત",
+ "claudeWebCookieHint": "claude.ai ખોલો → DevTools → Application → Cookies → claude.ai, અને 'sessionKey' મૂલ્ય કૉપિ કરો. Cloudflare માટે cf_clearance, __cf_bm, _cfuvid પણ જરૂરી છે.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web કૂકી સંકેત",
+ "blackboxWebCookiePlaceholder": "Blackbox Web કૂકી પ્લેસહોલ્ડર",
"t3ChatWebCookieHint": "t3.chat → DevTools → Application → Local Storage → https://t3.chat ખોલો, 'convex-session-id' કૉપિ કરો. પછી DevTools → નેટવર્ક ખોલો, કોઈપણ ચેટ વિનંતીમાંથી સંપૂર્ણ કૂકી હેડરની નકલ કરો. નીચેના ફીલ્ડમાં બંને મૂલ્યો પેસ્ટ કરો.",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web કૂકી સંકેત",
"blockClaudeExtraUsageDescription": "જ્યારે સક્રિય કરવામાં આવે છે, OmniRoute આ Claude કનેક્શનને ઉપલબ્ધ નહીં તરીકે ચિહ્નિત કરે છે જેમણે જલદી ઉપયોગ API ક્યૂમાં વધારાના ઉપયોગની જાણ કરે છે, જેથી ફોલબેક બીજાં કનેક્શન પર સ્વિચ થાય છે તેના બદલે કે પે-એઝ-યુ-ગો વધારાના બિલિંગ પર ચાલુ રહે.",
"blockClaudeExtraUsageLabel": "અતિરિક્ત ક્લોડ ઉપયોગ રોકો",
"disableCoolingDescription": "અસ્થાયી કૂલડાઉન છોડો જેથી પુનઃપ્રાપ્ત કરી શકાય તેવી ભૂલો પછી પણ આ કનેક્શન પાત્ર રહે (પ્રતિબંધિત/સમાપ્ત જેવી ટર્મિનલ સ્થિતિઓ હજુ પણ લાગુ પડે છે).",
"disableCoolingLabel": "આ કનેક્શન માટે કૂલડાઉન અક્ષમ કરો",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 કી ઉમેરાઈ} other {# કીઓ ઉમેરાઈ}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 ડુપ્લિકેટ અવગણાયું} other {# ડુપ્લિકેટ્સ અવગણાયા}}",
+ "bulkPasteHint": "દરેક લાઇનમાં એક API કી પેસ્ટ કરો. ખાલી લાઇનો અવગણવામાં આવે છે અને ડુપ્લિકેટ કીઓ છોડવામાં આવે છે.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "છુપાયેલા Claude વિચાર પ્રવાહોની જરૂર હોય તેવા CC Compatible અપસ્ટ્રીમ્સ માટે redact-thinking બીટા હેડર ઉમેરે છે.",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking બીટા સક્ષમ કરો",
+ "ccCompatibleSummarizeThinkingDescription": "CC Compatible વિચાર વિનંતીઓમાં `display: \"summarized\"` ઉમેરે છે, જેથી સપોર્ટેડ Claude મોડલ્સ દૃશ્યમાન વિચાર ડેલ્ટા સ્ટ્રીમ કરી શકે.",
+ "ccCompatibleSummarizeThinkingLabel": "સારાંશિત વિચાર પ્રદર્શન સક્ષમ કરો",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "ઉપલબ્ધ હોય ત્યારે Codex વિનંતીઓ માટે પ્રાથમિકતા સેવા સ્તરનો ઉપયોગ કરો.",
+ "codexFastServiceTierLabel": "Codex ઝડપી સેવા સ્તર",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "સુસંગત અપસ્ટ્રીમ હેડર નામ પ્લેસહોલ્ડર",
+ "compatUpstreamHeaderValuePlaceholder": "સુસંગત અપસ્ટ્રીમ હેડર મૂલ્ય પ્લેસહોલ્ડર",
+ "compatible": "સુસંગત",
+ "configuredCount": "ગોઠવેલ સંખ્યા",
+ "consoleApiKeyOracleHint": "કન્સોલ API કી Oracle સંકેત",
+ "consoleApiKeyOracleLabel": "કન્સોલ API કી Oracle લેબલ",
+ "consoleApiKeyOraclePlaceholder": "કન્સોલ API કી Oracle પ્લેસહોલ્ડર",
+ "newApiUserIdLabel": "New-API વપરાશકર્તા ID",
+ "newApiUserIdPlaceholder": "દા.ત. 12345",
+ "newApiUserIdHint": "AgentRouter New-Api-User હેડર મૂલ્ય, જેનો ઉપયોગ ક્વોટા બેલેન્સ મેળવવા માટે કન્સોલ API કી સાથે થાય છે.",
"newApiAggregatorToggleLabel": "એગ્રેગેટર ગેટવે",
"newApiAggregatorToggleHint": "નવી-એપીઆઈ / વન-એપીઆઈ / સબ2એપીઆઈ એગ્રેગેટર નોડ્સ માટે બેલેન્સ ડિટેક્શન સક્રિય કરો. ડેશબોર્ડ બેલેન્સ બેજ દર્શાવશે અને ક્વોટા-પ્રિફ્લાઇટ રૂટિંગ થાકેલા ખાતાઓને અવગણશે.",
"newApiAggregatorConsoleApiKeyHint": "એગ્રેગેટરનાં /api/user/self એન્ડપોઈન્ટ માટે સિસ્ટમ ઍક્સેસ ટોકન. રૂટિંગ API કી નથી.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "નવી-એપીઆઈ / વન-એપીઆઈ / સબ2એપીઆઈ એગ્રેગેટર અનુકૂળ નોડ્સ માટે બેલેન્સ શોધને સક્રિય કરો",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "કસ્ટમ વપરાશકર્તા એજન્ટ સંકેત",
+ "customUserAgentLabel": "કસ્ટમ વપરાશકર્તા એજન્ટ લેબલ",
+ "databricksBaseUrlHint": "Databricks બેઝ URL સંકેત",
+ "defaultThinkingStrengthHint": "જ્યારે વિનંતીમાં તર્કના પ્રયત્નનું સ્તર નિર્દિષ્ટ ન હોય ત્યારે તેનો ઉપયોગ થાય છે.",
+ "defaultThinkingStrengthLabel": "ડિફૉલ્ટ વિચાર શક્તિ",
+ "deleteAllExtraApiKeys": "બધું કાઢી નાખો",
+ "excludedModelsHint": "બાકાત રાખેલા મોડલ્સ માટે સંકેત",
+ "excludedModelsLabel": "બાકાત રાખેલા મોડલ્સનું લેબલ",
+ "excludedModelsPlaceholder": "બાકાત રાખેલા મોડલ્સ માટેનું પ્લેસહોલ્ડર",
+ "expirationBannerExpired": "સમાપ્તિ બેનર: સમય સમાપ્ત",
+ "expirationBannerExpiredDesc": "સમાપ્તિ બેનર: સમય સમાપ્ત થવાનું વર્ણન",
+ "expirationBannerExpiringSoon": "સમાપ્તિ બેનર: ટૂંક સમયમાં સમય સમાપ્ત થશે",
+ "expirationBannerExpiringSoonDesc": "સમાપ્તિ બેનર: ટૂંક સમયમાં સમય સમાપ્ત થવાનું વર્ણન",
+ "extraApiKeyMasked": "કી {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "વધારાની API કીઓ માટે સંકેત",
+ "extraApiKeysLabel": "વધારાની API કીઓનું લેબલ",
+ "apiKeyHealthLabel": "API કીનું સ્વાસ્થ્ય",
+ "apiKeyStatusActive": "સક્રિય",
+ "apiKeyStatusWarning": "ચેતવણી ({count} નિષ્ફળતાઓ)",
+ "apiKeyStatusInvalid": "અમાન્ય",
+ "primaryKey": "પ્રાથમિક કી",
+ "apiKeyInvalidAlert": "કનેક્શન્સમાં પ્રમાણીકરણ નિષ્ફળતાઓને કારણે {count} API કી(ઓ)ને અમાન્ય તરીકે ચિહ્નિત કરવામાં આવી છે: {connections}. રોટેશન દરમિયાન તેમને અવગણવામાં આવશે. સમીક્ષા કરવા માટે ક્લિક કરો.",
+ "apiKeyInvalidAlertTitle": "API કી સ્વાસ્થ્ય ચેતવણી",
+ "apiKeyWarningAlert": "કનેક્શન્સમાં નિષ્ફળતાનો દર વધવાને કારણે {count} API કી(ઓ) ચેતવણીની સ્થિતિમાં છે: {connections}. રોટેશન સંબંધિત સમસ્યાઓ અટકાવવા માટે સમીક્ષા કરો.",
+ "apiKeyWarningAlertTitle": "API કી ચેતવણી",
+ "googlePseInfo": "Google Pse માહિતી",
"antigravityProjectIdHint": "એન્ટિગ્રેવિટી ક્લાઉડ કોડ વિનંતીઓ માટે વૈકલ્પિક ઓવરરાઇડ. Google OAuth દરમિયાન શોધાયેલ પ્રોજેક્ટનો ઉપયોગ કરવા માટે ખાલી છોડો.",
"antigravityClientProfileLabel": "ક્લાયન્ટ પ્રોફાઇલ",
"antigravityClientProfileHint": "OmniRoute API સમક્ષ કઈ Antigravity ક્લાયન્ટ ઓળખ રજૂ કરે છે તે પસંદ કરો.",
@@ -5861,47 +5868,47 @@
"tierFast": "ઝડપી",
"antigravityProjectIdLabel": "Google ક્લાઉડ પ્રોજેક્ટ ID",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok Web કૂકી પ્લેસહોલ્ડર",
+ "herokuBaseUrlHint": "Heroku બેઝ URL માટે સંકેત",
+ "hideEmail": "ઇમેઇલ છુપાવો",
+ "imageProviders": "ઇમેજ પ્રદાતાઓ",
"videoProviders": "વિડિઓ જનરેશન",
"embeddingRerankProviders": "એમ્બેડિંગ્સ અને ફરીથી રેન્ક",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "ઇમેજનું ટૂંકું લેબલ",
+ "llmProviders": "Llm પ્રદાતાઓ",
+ "localProviderApiKeyOptionalHint": "સ્થાનિક પ્રદાતાની વૈકલ્પિક API કી માટે સંકેત",
+ "localProviderBaseUrlHint": "સ્થાનિક પ્રદાતાના બેઝ URL માટે સંકેત",
+ "localProviders": "સ્થાનિક પ્રદાતાઓ",
+ "maxConcurrentWholeNumberError": "મહત્તમ સમકાલીન મૂલ્ય પૂર્ણ સંખ્યા હોવું આવશ્યક છે",
"m365TierLabel": "Copilot ટાયર",
"m365TierHint": "આ કનેક્શન કયા Microsoft 365 Copilot સરફેસનો ઉપયોગ કરે છે તે પસંદ કરો. Individual એ ડિફૉલ્ટ ગ્રાહક BizChat છે; Education અને Enterprise (work) તેમના ટેનન્ટ સરફેસ પસંદ કરે છે.",
"m365TierIndividualOption": "Individual (ડિફૉલ્ટ)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "શિક્ષણ",
+ "m365TierEnterpriseOption": "એન્ટરપ્રાઇઝ / કાર્ય",
"tierOverrideLabel": "ટાયર ઓવરરાઇડ",
"tierOverrideAuto": "ઑટો (રાઉટિંગ નક્કી કરે છે)",
"tierOverrideFree": "મફત",
"tierOverrideCheap": "સસ્તું",
"tierOverridePremium": "પ્રીમિયમ",
"tierOverrideHelpText": "OmniRoute ને મોડેલ કિંમત પરથી તેનું અનુમાન કરવા દેવાને બદલે આ પ્રદાતાને રાઉટિંગ ટાયર પર પિન કરો.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark Web કૂકી માટે સંકેત",
+ "museSparkWebCookiePlaceholder": "Muse Spark Web કૂકી પ્લેસહોલ્ડર",
+ "oauth": "OAuth",
+ "openCliTools": "Cli ટૂલ્સ ખોલો",
+ "openSettings": "સેટિંગ્સ ખોલો",
+ "openaiResponsesStoreDescription": "સુસંગત Responses API વિનંતીઓને સંગ્રહિત પ્રતિસાદની સ્થિતિ જાળવી રાખવાની મંજૂરી આપો.",
+ "openaiResponsesStoreLabel": "OpenAI Responses સ્ટોર",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search શેર કરેલી કી વિશેની માહિતી",
+ "perplexityWebCookieHint": "Perplexity Web કૂકી માટેનો સંકેત",
+ "perplexityWebCookiePlaceholder": "Perplexity Web કૂકીનું પ્લેસહોલ્ડર",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "રેટ લિમિટ ઓવરરાઇડ્સ",
"rateLimitOverridesMaxConcurrentHint": "આ કનેક્શન માટે મહત્તમ સમવર્તી વિનંતીઓ ઓવરરાઇડ. એકાઉન્ટ-સ્તરની મર્યાદાને ઓવરરાઇડ કરે છે.",
"rateLimitOverridesMaxConcurrentLabel": "મહત્તમ સમવર્તી (રેટ લિમિટ)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "રેટ-લિમિટ સ્લોટ માટે વિનંતી નિષ્ફળ થાય તે પહેલાં તે રાહ જોઈ શકે તે મહત્તમ સમય (ms). આ ફક્ત આ કનેક્શન માટે વૈશ્વિક Resilience સેટિંગને ઓવરરાઇડ કરે છે.",
+ "rateLimitOverridesMaxWaitMsLabel": "કતારમાં રાહ જોવાનો મહત્તમ સમય (ms)",
"rateLimitOverridesMinTimeHint": "વિનંતીઓ વચ્ચેનો ન્યૂનતમ સમય (ms). ડિફૉલ્ટ રેટ લિમિટર વિલંબને ઓવરરાઇડ કરે છે.",
"rateLimitOverridesMinTimeLabel": "ન્યૂનતમ અંતરાલ (ms)",
"rateLimitOverridesRpdHint": "આ કનેક્શન માટે પ્રતિ દિવસ મહત્તમ વિનંતીઓ. પ્રદાતા ડિફૉલ્ટને ઓવરરાઇડ કરે છે.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (ટોકન્સ/દિવસ)",
"rateLimitOverridesTpmHint": "આ કનેક્શન માટે પ્રતિ મિનિટ મહત્તમ ટોકન્સ. પ્રદાતા ડિફૉલ્ટને ઓવરરાઇડ કરે છે.",
"rateLimitOverridesTpmLabel": "TPM (ટોકન્સ/મિનિટ)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
- "searchProviders": "Search Providers",
+ "refreshOauthTokenTitle": "OAuth ટોકન રિફ્રેશ કરો",
+ "regionHint": "પ્રદેશ માટેનો સંકેત",
+ "regionLabel": "પ્રદેશ",
+ "removeThisKey": "આ કી દૂર કરો",
+ "routingTagsHint": "રાઉટિંગ ટૅગ્સ માટેનો સંકેત",
+ "routingTagsLabel": "રાઉટિંગ ટૅગ્સ",
+ "routingTagsPlaceholder": "રાઉટિંગ ટૅગ્સનું પ્લેસહોલ્ડર",
+ "search": "શોધો",
+ "searchEngineIdHint": "સર્ચ એન્જિન ID માટેનો સંકેત",
+ "searchEngineIdLabel": "સર્ચ એન્જિન ID",
+ "searchEngineIdRequired": "સર્ચ એન્જિન ID આવશ્યક છે",
+ "searchProvider": "શોધ પ્રદાતા",
+ "searchProviderDesc": "શોધ પ્રદાતાનું વર્ણન",
+ "searchProviders": "શોધ પ્રદાતાઓ",
"searchByModel": "મોડેલ દ્વારા શોધો…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "શોધ પ્રદાતાઓ",
+ "searxngBaseUrlHint": "Searxng બેઝ URL માટેનો સંકેત",
+ "searxngInfo": "Searxng વિશેની માહિતી",
+ "sessionCookieLabel": "સેશન કૂકી",
+ "showEmail": "ઈમેલ બતાવો",
+ "snowflakeBaseUrlHint": "Snowflake બેઝ URL માટેનો સંકેત",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "ટૅગ જૂથ માટેનો સંકેત",
+ "tagGroupLabel": "ટૅગ જૂથ",
+ "tagGroupPlaceholder": "ટૅગ જૂથનું પ્લેસહોલ્ડર",
+ "testModel": "મોડેલનું પરીક્ષણ કરો",
+ "testingModel": "મોડેલનું પરીક્ષણ થઈ રહ્યું છે",
"modelTestQuotaTooltip": "ક્વોટા પૂરી થઈ ગઈ છે — કાલે પુનઃસેટ થાય છે અથવા ટોપ-અપની જરૂર છે",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "ટોકનની મુદત સમાપ્ત",
+ "tokenExpiredTitle": "ટોકનની મુદત સમાપ્ત થઈ ગઈ છે",
+ "tokenExpiresSoonTitle": "ટોકનની મુદત ટૂંક સમયમાં સમાપ્ત થશે",
+ "tokenShort": "ટૂંકું ટોકન",
+ "totalKeysRotating": "{count, plural, one {1 કી રોટેટ થઈ રહી છે} other {# કીઓ રોટેટ થઈ રહી છે}}",
+ "unhideModel": "મોડેલ ફરી બતાવો",
+ "upstreamProxyProviders": "અપસ્ટ્રીમ પ્રોક્સી પ્રદાતાઓ",
"validationModelIdHint": "API કી ચકાસવા માટે વપરાતું મૉડલ. પ્રદાતાના પ્રથમ ઉપલબ્ધ મૉડલનો ઉપયોગ કરવા માટે ખાલી છોડો.",
"validationModelIdLabel": "માન્યતા મૉડલ",
"validationModelIdPlaceholder": "દા.ત. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "તમારું Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) અથવા OAuth access_token પેસ્ટ કરો",
+ "webCookieProviders": "વેબ કૂકી પ્રદાતાઓ",
+ "weeklyShort": "સાપ્તાહિક ટૂંકું",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo બેઝ URL સંકેત",
"globalCodexServiceMode": "ગ્લોબલ Codex સેવા મોડ",
"connect": "કનેક્ટ કરો",
"manualApiKey": "મેન્યુઅલ API કી",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "OS કીચેઇનમાં Zed IDE દ્વારા સંગ્રહિત AI પ્રદાતા ઓળખપત્રો (OpenAI, Anthropic, Google, Mistral, xAI) શોધો અને તેમને કનેક્શન્સ તરીકે આયાત કરો. આ મશીન પર Zed IDE ઇન્સ્ટોલ કરેલું હોવું આવશ્યક છે.",
"zedImportButton": "Zed માં આયાત કરો",
"zedImportFailed": "ઝેડ આયાત નિષ્ફળ ગઈ",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed ઇમ્પોર્ટ સંકેત",
+ "zedImportNetworkError": "Zed ઇમ્પોર્ટ નેટવર્ક ભૂલ",
+ "zedImportNone": "Zed ઇમ્પોર્ટ: કંઈ નહીં",
"zedImportSuccess": "{providers} પ્રદાતા(ઓ) માટે Zed માંથી {credentials} પ્રમાણપત્ર(ઓ) આયાત કરવામાં આવ્યા",
"zedImporting": "આયાત કરી રહ્યા છીએ…",
"zedNoCredentials": "કીચેઇનમાં કોઈ Zed ઓળખપત્રો મળ્યા નથી",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 સહિત 40+ મોડલ્સ માટે ડિસ્કાઉન્ટેડ API પ્રોક્સી. https://freeaiapikey.com/dashboard પર તમારી API કી મેળવો. બેઝ URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "https://freemodel.dev પર $300 મફત API ક્રેડિટ્સ મેળવો — કોઈ ચુકવણી માહિતીની જરૂર નથી. OpenAI-સુસંગત એન્ડપોઇન્ટ. GPT-5.4 અને GPT-5.5 મોડલ્સ ઉપલબ્ધ છે.",
"friendliai": "સર્વરલેસ ઇન્ફરન્સ માટે મફત સ્તર — કોઈ ક્રેડિટ કાર્ડની જરૂર નથી",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio મારફતે મફત સ્તર; પ્રતિ-મોડેલ ક્વોટા હવે પ્રકાશિત થતા નથી (AI Studioમાં ક્વોટા પેજ તપાસો) — ક્રેડિટ કાર્ડની જરૂર નથી.",
"gigachat": "API કી વડે GigaChat (Sber) ને કનેક્ટ કરો.",
"gitlab": "સાર્વજનિક Code Suggestions API માટે GitLab વ્યક્તિગત ઍક્સેસ ટોકન. જ્યારે gitlab.com નો ઉપયોગ ન કરી રહ્યા હોવ ત્યારે સેલ્ફ-હોસ્ટેડ બેઝ URL કન્ફિગર કરો.",
"gitlawb-gmi": "Gitlawb Opengateway ડેશબોર્ડ પરથી તમારી API કી મેળવો.",
@@ -6180,7 +6187,7 @@
"glm-cn": "API કી વડે GLM Coding (China) ને કનેક્ટ કરો.",
"glmt": "ઉચ્ચ ટોકન બજેટ, વિચારવાની ક્ષમતા સક્ષમ અને લાંબા સમયસમાપ્તિ સાથે પ્રીસેટ GLM પ્રોફાઇલ.",
"getgoapi": "API કી વડે GoAPI ને કનેક્ટ કરો.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "મફત પ્લાન: પ્રતિ-મોડેલ મર્યાદાઓ (દરેક ચેટ મોડેલ માટે દરરોજ 200K ટોકન્સ; RPM/RPD માટે console.groq.com/docs/rate-limits જુઓ) — ફાઇલમાં કોઈ ચુકવણી પદ્ધતિ નથી.",
"haiper": "haiper.ai/haiper-api પર API કી મેળવો",
"heroku": "API કી વડે Heroku AI ને કનેક્ટ કરો.",
"hcnsec": "api.hcnsec.cn પર API કી મેળવો",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai પર API key બનાવો, પછી તેને અહીં Bearer token તરીકે પેસ્ટ કરો. લાઈવ /v1/models કેટલોગ સાથે https://router.requesty.ai/v1 પર OpenAI-સુસંગત એન્ડપોઇન્ટ.",
"runwayml": "Runway વીડિયો જનરેશન ટાસ્ક-આધારિત છે. OmniRoute ટેક્સ્ટ-ટુ-વીડિયો અથવા ઇમેજ-ટુ-વીડિયો જોબ્સ સબમિટ કરે છે, /v1/tasks/[id] ને પોલ કરે છે, અને પૂર્ણ થયેલા વીડિયો આઉટપુટને ફરીથી OpenAI જેવા /v1/videos/generations રિસ્પોન્સમાં નોર્મલાઇઝ કરે છે.",
"sambanova": "સાઇનઅપ પર $5 મફત ક્રેડિટ્સ (30-દિવસની માન્યતા), કોઈ ક્રેડિટ કાર્ડની જરૂર નથી",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.cc પર API કી બનાવો, પછી તેને Bearer ટોકન તરીકે અહીં પેસ્ટ કરો. OpenAI-સુસંગત બેઝ URL: https://seekai.cc/v1.",
"sap": "મોડલ ડિસ્કવરી AI_API_URL પર /v2/lm/scenarios/foundation-models/models નો ઉપયોગ કરે છે. ચેટ વિનંતીઓ deploymentUrl/chat/completions નો ઉપયોગ કરે છે અને તેના માટે AI-Resource-Group જરૂરી છે.",
"sarvam": "Sarvam AI OpenAI-સંગત છે /v1. OmniRoute /v1/models ને તપાસે છે અને ચેટ ટ્રાફિકને /v1/chat/completions પર રુટ કરે છે. મોડલ્સ ઇન્ડિક ભાષાઓ માટે ટ્યુન કરવામાં આવ્યા છે.",
"scaleway": "નવા એકાઉન્ટ્સ માટે 1M મફત ટોકન્સ — EU/GDPR સુસંગત (પેરિસ), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "હાલના OAuth ફ્લો વડે Claude Code ને કનેક્ટ કરો.",
"cline": "હાલના OAuth ફ્લો વડે Cline ને કનેક્ટ કરો.",
"cursor": "હાલના OAuth ફ્લો વડે Cursor IDE ને કનેક્ટ કરો.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "cursor.com/dashboard/api પરથી વપરાશકર્તા API કી (crsr_...) વડે Cursorને કનેક્ટ કરો; IDE સેશનની જરૂર નથી.",
"github": "હાલના OAuth ફ્લો વડે GitHub Copilot ને કનેક્ટ કરો.",
"gitlab-duo": "ai_features + read_user સ્કોપ્સ સાથેની OAuth એપ્લિકેશન. આ OmniRoute ઇન્સ્ટન્સ પર GITLAB_DUO_OAUTH_CLIENT_ID અને વૈકલ્પિક રીતે GITLAB_DUO_OAUTH_CLIENT_SECRET કન્ફિગર કરો.",
"kilocode": "હાલના OAuth ફ્લો વડે Kilo Code ને કનેક્ટ કરો.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "પ્રદાતાના પોતાના ડોમેનમાંથી જરૂરી ઓળખપત્રની નકલ કરો. કૂકીઝ માટે, ફક્ત કૂકી હેડર મૂલ્યની નકલ કરો અને કૂકીને છોડી દો.",
"webSessionGuideStep3Manual": "હાથથી માર્ગ: બ્રાઉઝર ડેવલપર ટૂલ્સ ખોલો (F12 → નેટવર્ક), પૃષ્ઠને રિફ્રેશ કરો, એક માન્યતા પ્રાપ્ત વિનંતી ખોલો, અને વિનંતી હેડર્સમાંથી કૂકી હેડર મૂલ્ય નકલ કરો — કૂકી: પૂર્વપ્રતિષ્ઠા છોડી દો.",
"webSessionGuideStep4": "તેને અહીં પેસ્ટ કરો અને કનેક્શન તપાસો. જો તે કામ કરવાનું બંધ કરે, તો ફરીથી સાઇન ઇન કરો અને તેને નવી કિંમત સાથે બદલો.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har ફાઇલ ઇમ્પોર્ટ કરો",
+ "harImportButtonBusy": "ઇમ્પોર્ટ થઈ રહ્યું છે…",
+ "harImportButtonHint": "ઓછામાં ઓછો એક ચેટ સંદેશ મોકલ્યા પછી DevTools Network ટૅબમાંથી એક્સપોર્ટ કરો.",
+ "harImportStatusValid": "ઇમ્પોર્ટ થયું — લગભગ {minutes} મિનિટ માટે માન્ય.",
+ "harImportStatusExpiringSoon": "ઇમ્પોર્ટ થયું — હવે માત્ર લગભગ {minutes} મિનિટ વધુ માટે માન્ય.",
+ "harImportStatusExpired": "ઇમ્પોર્ટ થયું, પરંતુ આ ટોકન પહેલેથી જ સમાપ્ત થઈ ગયું છે ({minutes} મિનિટ પહેલાં) — નવું HAR એક્સપોર્ટ કરો.",
+ "harImportStatusUnknownExpiry": "ઇમ્પોર્ટ થયું. તેની સમાપ્તિનો સમય વાંચી શકાયો નહીં.",
+ "harImportErrorNotJson": "આ ફાઇલ માન્ય JSON નથી — શું તે ખરેખર .har એક્સપોર્ટ છે?",
+ "harImportErrorNoEntries": "આ HARમાં કોઈ નેટવર્ક એન્ટ્રી રેકોર્ડ થયેલી નથી.",
+ "harImportErrorNoChathubUrl": "આ HARમાં કોઈ Copilot ચેટ કનેક્શન મળ્યું નથી. એક્સપોર્ટ કરતાં પહેલાં m365.cloud.microsoftમાં ઓછામાં ઓછો એક ચેટ સંદેશ મોકલો.",
+ "harImportErrorUnparsableUrl": "ચેટ કનેક્શન મળ્યું, પરંતુ તેનું URL વાંચી શકાયું નહીં.",
+ "harImportErrorMissingFields": "ચેટ કનેક્શન મળ્યું, પરંતુ તેમાં ટોકન હાજર નહોતું.",
+ "harImportErrorReadFailed": "તે ફાઇલ વાંચી શકાઈ નહીં.",
+ "harImportErrorUnknown": "તે HAR ફાઇલમાંથી ઓળખપત્ર કાઢી શકાયું નહીં.",
"webSessionSecurityHint": "આને પાસવર્ડની જેમ વર્તે છે: જ્યાં સુધી તે સમાપ્ત ન થાય અથવા રદ ન થાય ત્યાં સુધી તે તમારા સાઇન-ઇન કરેલા વેબ એકાઉન્ટને ઍક્સેસ કરી શકે છે.",
"webNoAuthGuideTitle": "કોઈ ઓળખપત્રની જરૂર નથી",
"webNoAuthGuideBody": "{provider} ને API કી અથવા કૂકીની જરૂર નથી. કનેક્શનને તેના મફત વેબ એન્ડપોઇન્ટનો ઉપયોગ કરવા માટે સાચવો.",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "કમાન્ડ કોડ ઓથ સમાપ્ત થઈ ગયો",
"commandCodeConnected": "કમાન્ડ કોડ જોડાયેલ છે",
"commandCodeConnectionAdded": "કમાન્ડ કોડ કનેક્શન ઉમેરાયું",
+ "clearConnectionCooldown": "કૂલડાઉન સાફ કરો",
+ "clearConnectionCooldownInProgress": "સાફ થઈ રહ્યું છે…",
+ "clearConnectionCooldownTitle": "હમણાં કૂલડાઉન સાફ કરો — જ્યારે મૂળ સ્ત્રોત પર ક્વોટા પહેલેથી જ રિફ્રેશ થઈ ગયો હોય ત્યારે ઉપયોગ કરો",
"commandCodeLinkExpired": "કમાન્ડ કોડ લિંક સમાપ્ત થઈ ગઈ છે",
"commandCodeOpeningStudio": "કમાન્ડ કોડ સ્ટુડિયો ખોલી રહ્યું છે…",
"commandCodePopupBlocked": "પોપઅપ અવરોધિત. કૃપા કરીને પોપઅપને મંજૂરી આપો અને ફરીથી Command Code Connect પ્રયાસ કરો.",
"commandCodeStartFailed": "Command Code auth શરૂ કરવામાં નિષ્ફળ રહ્યું",
"connectionDeleted": "કનેક્શન કાઢી નાખવામાં આવ્યું",
"connectionFallback": "સંબંધ",
+ "connectionCooldownCleared": "કૂલડાઉન સાફ થયું — કનેક્શન ફરીથી રાઉટિંગમાં જોડાયું",
"coolingConnectionsDescription": "આ કનેક્શનો છેલ્લી વિનંતી પછી ઠંડા થઈ રહ્યાં છે. ટાઈમર પૂરું થાય ત્યાં સુધી OmniRoute તેમને છોડી દેશે — હાથથી બંધ કરવાની જરૂર નથી.",
"coolingConnectionsTitle": "હાલમાં ઠંડું કરી રહ્યા છીએ ({count})",
+ "failedClearConnectionCooldown": "કૂલડાઉન સાફ કરવામાં નિષ્ફળતા",
"failedDeleteAlias": "એલિયસ કાઢવામાં નિષ્ફળ થયું",
"failedDeleteConnection": "કનેક્શન કાઢવામાં નિષ્ફળ થયું",
"failedDistributeProxies": "પ્રોક્સી વિતરણમાં નિષ્ફળ.",
@@ -6466,21 +6478,16 @@
"savedModelEndpointSettings": "સાચવેલ મોડેલ અંતિમ બિંદુની સેટિંગ્સ",
"searchByModelAria": "મોડલ દ્વારા શોધો",
"selectSupportedEndpoint": "કમથી કમ એક સમર્થિત અંતિમ બિંદુ પસંદ કરો",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "હાર્નેસ / CLI"
},
"settings": {
- "title": "Settings",
- "general": "General",
- "security": "Security",
- "appearance": "Appearance",
- "routing": "Routing",
- "cache": "Cache",
- "resilience": "Resilience",
+ "title": "સેટિંગ્સ",
+ "general": "સામાન્ય",
+ "security": "સુરક્ષા",
+ "appearance": "દેખાવ",
+ "routing": "રાઉટિંગ",
+ "cache": "કૅશ",
+ "resilience": "સ્થિતિસ્થાપકતા",
"description": "વર્ણન",
"enable": "સક્ષમ કરો",
"disable": "અક્ષમ કરો",
@@ -6547,25 +6554,25 @@
"routingOpStatusSeparator": " ·",
"resilienceSettingsIntro": "જ્યારે પ્રદાતાઓ નિષ્ફળ જાય ત્યારે સ્વચાલિત ફરી પ્રયાસ, કૂલડાઉન અને ફોલબેક.",
"aiSettingsIntro": "બજેટ, મોડલ વર્તન અને સંકોચન વિચારવા માટે AI-વિશિષ્ટ સેટિંગ્સ.",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "સિસ્ટમ પ્રોમ્પ્ટ",
+ "thinkingBudget": "વિચારણા બજેટ",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP પ્રોક્સી",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "પ્રોક્સી વિભાગો",
+ "requestBodyLimitTitle": "વિનંતી બોડી મર્યાદા",
+ "requestBodyLimitDescription": "વિનંતી બોડીનું વિશ્લેષણ થાય તે પહેલાં સ્વીકારવામાં આવતી મહત્તમ API પેલોડ સાઇઝ. સમર્પિત અપલોડ રૂટ્સ માટે ઓછામાં ઓછી તેમની બિલ્ટ-ઇન 100 MB મર્યાદા જળવાઈ રહે છે.",
+ "requestBodyLimitInputLabel": "MBમાં વિનંતી બોડી મર્યાદા",
+ "requestBodyLimitEmptyError": "MBમાં મર્યાદા દાખલ કરો",
+ "requestBodyLimitWholeNumberError": "પૂર્ણાંકનો ઉપયોગ કરો",
+ "requestBodyLimitMinimumError": "ન્યૂનતમ {min} MB છે",
+ "requestBodyLimitMaximumError": "મહત્તમ {max} MB છે",
+ "requestBodyLimitLoadFailed": "વિનંતી મર્યાદા સેટિંગ્સ લોડ કરવામાં નિષ્ફળતા",
+ "requestBodyLimitSaveSuccess": "વિનંતી બોડી મર્યાદા સાચવાઈ",
+ "requestBodyLimitSaveFailed": "વિનંતી બોડી મર્યાદા સાચવવામાં નિષ્ફળતા",
+ "requestBodyLimitSaving": "સાચવી રહ્યું છે...",
+ "requestBodyLimitSave": "સાચવો",
+ "requestBodyLimitCurrent": "વર્તમાન: {value}",
"cacheConfigLoadFailed": "કેશ સેટિંગ્સ લોડ કરવામાં નિષ્ફળ રહ્યું",
"cacheConfigSaveSuccess": "કેશ સેટિંગ્સ સાચવવામાં આવી છે",
"cacheConfigSaveFailed": "કેશ સેટિંગ્સ સાચવવામાં નિષ્ફળ થયું",
@@ -6579,69 +6586,69 @@
"modelCatalogCacheTtlSave": "સાચવો",
"modelCatalogCacheTtlCurrent": "વર્તમાન: {value} મિ.સે.",
"mitmProxy": "MITM પ્રોક્સી",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
- "comboDefaults": "Combo Defaults",
- "fallbackChains": "Fallback Chains",
- "changePassword": "Change Password",
- "enablePassword": "Enable Password",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "pricing": "કિંમત નિર્ધારણ",
+ "storage": "સ્ટોરેજ",
+ "policies": "નીતિઓ",
+ "ipFilter": "IP ફિલ્ટર",
+ "comboDefaults": "કોમ્બો ડિફૉલ્ટ્સ",
+ "fallbackChains": "ફૉલબૅક ચેઇન્સ",
+ "changePassword": "પાસવર્ડ બદલો",
+ "enablePassword": "પાસવર્ડ સક્ષમ કરો",
+ "darkMode": "ડાર્ક મોડ",
+ "lightMode": "લાઇટ મોડ",
+ "memoryTitle": "મેમરી",
+ "memoryDesc": "સત્રો વચ્ચે સતત રહેતી સંવાદાત્મક મેમરી",
+ "memoryEnabled": "મેમરી સક્ષમ કરો",
+ "memoryEnabledDesc": "સક્ષમ હોય ત્યારે, OmniRoute ભૂતકાળનો સંબંધિત સંદર્ભ ઉમેરશે.",
"memoryTokenCostWarning": "ધ્યાન આપો: મેમરી સક્ષમ હોવા સાથે, OmniRoute દરેક ચેટ વિનંતીમાં પુનઃપ્રાપ્ત સંદર્ભના {tokens} ટોકન્સ સુધી ઇન્જેક્ટ કરે છે — આ ટોકન વપરાશ અને ખર્ચમાં વધારો કરે છે. ચોક્કસ વિનંતી માટે ઇન્જેક્શન છોડવા માટે, \"x-omniroute-no-memory: true\" હેડર મોકલો.",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
- "justNow": "Just now",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
- "providers": "Providers",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
- "systemTheme": "System Theme",
- "debugToggle": "Enable Debug Mode",
+ "maxTokens": "મહત્તમ ટોકન્સ",
+ "retentionDays": "જાળવણી",
+ "recent": "તાજેતરનું",
+ "recentDesc": "કાલક્રમિક વિન્ડો",
+ "semantic": "અર્થલક્ષી",
+ "semanticDesc": "વેક્ટર શોધ",
+ "hybrid": "હાઇબ્રિડ",
+ "hybridDesc": "તાજેતરનું + અર્થલક્ષી",
+ "skillsTitle": "કૌશલ્યો",
+ "skillsDesc": "મોડેલો માટેનાં સાધનો",
+ "skillsEnabled": "કૌશલ્યો સક્ષમ કરો",
+ "skillsEnabledDesc": "એજન્ટોને ફંક્શન્સ ટ્રિગર કરવાની મંજૂરી આપે છે.",
+ "skillsComingSoon": "કૌશલ્યોનું માર્કેટપ્લેસ ટૂંક સમયમાં આવી રહ્યું છે.",
+ "memorySkillsTitle": "મેમરી અને કૌશલ્યો",
+ "memorySkillsDesc": "સતત સંદર્ભ અને ક્ષમતાઓ",
+ "modelsDevTitle": "મોડેલ ડેટાબેઝ",
+ "modelsDevDesc": "models.dev પરથી કિંમતો, ક્ષમતાઓ અને વિશિષ્ટતાઓ આપમેળે સમન્વયિત કરો",
+ "modelsDevEnabled": "models.dev સમન્વયન સક્ષમ કરો",
+ "modelsDevEnabledDesc": "ઓપન-સોર્સ models.dev ડેટાબેઝમાંથી મોડેલની કિંમતો, ક્ષમતાઓ અને વિશિષ્ટતાઓ મેળવો",
+ "modelsDevInterval": "સમન્વયન અંતરાલ",
+ "syncNow": "હમણાં સમન્વયિત કરો",
+ "syncing": "સમન્વયિત થઈ રહ્યું છે...",
+ "lastSync": "છેલ્લું સમન્વયન",
+ "never": "ક્યારેય નહીં",
+ "justNow": "હમણાં જ",
+ "modelsDevStats": "સમન્વયન આંકડા",
+ "modelsDevStatsDesc": "વર્તમાન models.dev ડેટા કવરેજ",
+ "providers": "પ્રદાતાઓ",
+ "modelsWithPricing": "કિંમતની માહિતી ધરાવતા મોડેલો",
+ "capabilities": "ક્ષમતાઓ",
+ "lastSyncCount": "છેલ્લા સમન્વયની સંખ્યા",
+ "lastSyncFull": "છેલ્લું સંપૂર્ણ સમન્વયન",
+ "modelsDevInfo": "તે કેવી રીતે કાર્ય કરે છે",
+ "modelsDevInfoDesc": "models.dev એ SST/OpenCode ટીમ દ્વારા જાળવવામાં આવતો AI મોડેલ વિશિષ્ટતાઓનો ઓપન-સોર્સ ડેટાબેઝ છે. તે 100+ પ્રદાતાઓનાં 4,000+ મોડેલો માટે કિંમતો, ક્ષમતાઓ, સંદર્ભ મર્યાદાઓ અને મોડાલિટીઝ પ્રદાન કરે છે.",
+ "modelsDevInfoResolution": "કિંમત નિર્ધારણનો ક્રમ (સૌથી ઊંચી પ્રાથમિકતા પ્રથમ):",
+ "modelsDevInfoOrder": "વપરાશકર્તા ઓવરરાઇડ → models.dev → LiteLLM → હાર્ડકોડેડ ડિફૉલ્ટ",
+ "systemTheme": "સિસ્ટમ થીમ",
+ "debugToggle": "ડીબગ મોડ સક્ષમ કરો",
"logToolSourcesToggle": "ટૂલ સ્રોતો લોગ કરો",
"logToolSourcesDescription": "ટૂલની સંખ્યા અને MCP/હોસ્ટેડ/ક્લાયન્ટ સ્રોત વિભાજનનો સારાંશ આપતી વિનંતી દીઠ ડાયગ્નોસ્ટિક લોગ લાઇન ઉત્સર્જિત કરો.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "માહિતીને હોમ પેજ પર પિન કરો",
"homePinnedSectionsDesc": "હોમ પેજના ટોચ પર કયા વિભાગોને પિન કરવા તે પસંદ કરો.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "પ્રદાતાની ક્વોટા મર્યાદાઓ",
+ "homeProviderQuotaLimitsDesc": "પ્રદાતા ક્વોટા સ્થિતિ કન્ટેનરને (Refresh All બટન સાથે) હોમ પેજની ટોચ પર પિન કરો.",
+ "homeQuickStart": "ઝડપી શરૂઆત",
+ "homeQuickStartDesc": "હોમ પેજ પર ઝડપી શરૂઆત પેનલ બતાવો.",
+ "homeProviderTopology": "પ્રદાતા ટોપોલોજી",
+ "homeProviderTopologyDesc": "હોમ પેજ પર પ્રદાતા ટોપોલોજી બતાવો.",
"accountEmailVisibility": "એકાઉન્ટ ઇમેઇલ દૃશ્યતા",
"accountEmailVisibilityDesc": "પ્રદાતાઓ, કોમ્બોઝ, લોગ્સ, ક્વોટા અને પ્લેગ્રાઉન્ડ સ્ક્રીન પર સંપૂર્ણ એકાઉન્ટ ઇમેઇલ્સ બતાવો. તેમને ડિફોલ્ટ રૂપે માસ્ક કરવા માટે આને બંધ કરો.",
"comboConfigMode": "કોમ્બો કન્ફિગરેશન મોડ",
@@ -6657,89 +6664,89 @@
"providerQuotaAutoRefreshInterval": "રીફ્રેશ અંતરાલ",
"providerQuotaAutoRefreshIntervalDesc": "ક્વોટા વ્યુ કેટલી વાર રીફ્રેશ થવું જોઈએ, સેકન્ડમાં.",
"seconds": "સેકન્ડ",
- "sidebarVisibilityToggle": "Show Sidebar Items",
- "enableCache": "Enable Cache",
- "cacheTTL": "Cache TTL",
- "maxCacheSize": "Max Cache Size",
- "clearCache": "Clear Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
- "cacheMisses": "Cache Misses",
- "hitRate": "Hit Rate",
- "cacheEntries": "Cache Entries",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "sidebarVisibilityToggle": "સાઇડબાર આઇટમ્સ બતાવો",
+ "enableCache": "કૅશ સક્ષમ કરો",
+ "cacheTTL": "કૅશ TTL",
+ "maxCacheSize": "મહત્તમ કૅશ કદ",
+ "clearCache": "કૅશ સાફ કરો",
+ "cacheCleared": "કૅશ સફળતાપૂર્વક સાફ થઈ",
+ "clearCacheFailed": "કૅશ સાફ કરવામાં નિષ્ફળતા",
+ "cacheHits": "કૅશ હિટ્સ",
+ "cacheMisses": "કૅશ મિસિસ",
+ "hitRate": "હિટ દર",
+ "cacheEntries": "કૅશ એન્ટ્રીઓ",
+ "cacheSettings": "કૅશ સેટિંગ્સ",
+ "semanticCache": "સિમેન્ટિક કૅશ",
+ "maxEntries": "મહત્તમ એન્ટ્રીઓ",
+ "ttlMinutes": "TTL (મિનિટ)",
+ "promptCache": "પ્રોમ્પ્ટ કૅશ",
+ "strategy": "વ્યૂહરચના",
+ "preserveClientCache": "ક્લાયન્ટ કૅશ જાળવો",
+ "enabled": "સક્ષમ",
"loading": "Loading...",
- "saving": "Saving...",
- "save": "Save",
- "circuitBreaker": "Circuit Breaker",
- "retryPolicy": "Retry Policy",
- "maxRetries": "Max Retries",
- "retryDelay": "Retry Delay",
- "timeoutMs": "Timeout (ms)",
- "enableSystemPrompt": "Enable System Prompt",
- "systemPromptText": "System Prompt Text",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "saving": "સાચવી રહ્યું છે...",
+ "save": "સાચવો",
+ "circuitBreaker": "સર્કિટ બ્રેકર",
+ "retryPolicy": "પુનઃપ્રયાસ નીતિ",
+ "maxRetries": "મહત્તમ પુનઃપ્રયાસો",
+ "retryDelay": "પુનઃપ્રયાસ વિલંબ",
+ "timeoutMs": "સમયસમાપ્તિ (ms)",
+ "enableSystemPrompt": "સિસ્ટમ પ્રોમ્પ્ટ સક્ષમ કરો",
+ "systemPromptText": "સિસ્ટમ પ્રોમ્પ્ટ ટેક્સ્ટ",
+ "autoDisableBannedAccounts": "પ્રતિબંધિત એકાઉન્ટ્સને આપમેળે અક્ષમ કરો",
+ "autoDisableDescription": "જો પ્રોવાઇડર કનેક્શન્સ ચોક્કસ અંતિમ પ્રતિબંધ સંકેતો આપે (દા.ત. HTTP 403 'તમારું એકાઉન્ટ ચકાસો'), તો તેમને કાયમી ધોરણે નિષ્ક્રિય તરીકે ચિહ્નિત કરો. આ તેમને કોમ્બો રોટેશનમાંથી દૂર કરે છે.",
+ "autoDisableThreshold": "પ્રતિબંધ થ્રેશોલ્ડ",
+ "autoDisableThresholdDesc": "કાયમી નિષ્ક્રિયતા પહેલાં જરૂરી સળંગ પ્રતિબંધ સંકેતો.",
+ "autoDisableBannedScope": "આના પર આપમેળે અક્ષમ કરવાનું લાગુ કરો",
+ "autoDisableBannedScopeDesc": "જો પ્રતિબંધ પછી OmniRoute પુનઃપ્રયાસ કરવાનું ચાલુ રાખે, તો અપસ્ટ્રીમ દ્વારા લૉગિન સીટ્સ (ચૂકવેલ સબ્સ્ક્રિપ્શન્સ અને મફત એકાઉન્ટ્સ) લૉક થઈ શકે છે. ચૂકવેલ પ્રીપેઇડ API કીઝને આ જોખમ નથી — તેમને પૂલમાં રાખો જેથી fill-first આગલી કીનો ઉપયોગ કરી શકે.",
+ "autoDisableBannedScopeAll": "બધા કનેક્શન્સ",
+ "autoDisableBannedScopeAllDesc": "પ્રીપેઇડ API કીઝ સહિત, કાયમી પ્રતિબંધ સંકેત આપતા દરેક કનેક્શનને નિષ્ક્રિય કરો.",
+ "autoDisableBannedScopeSubscription": "ફક્ત લૉગિન / સબ્સ્ક્રિપ્શન એકાઉન્ટ્સ",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth, કુકી, સેશન અને વેબ-લૉગિન સીટ્સ (ચૂકવેલ અથવા મફત) નિષ્ક્રિય કરો. પ્રીપેઇડ API કીઝ સક્રિય રહે છે જેથી રાઉટિંગ ફેલઓવર કરી શકે.",
"customBannedSignals": "પ્રતિબંધિત કીવર્ડ્સ",
"customBannedSignalsDesc": "વધારાના કીવર્ડ્સ જે કાયમી એકાઉન્ટ પ્રતિબંધ શોધને ટ્રિગર કરે છે. બિલ્ટ-ઇન કીવર્ડ્સ હંમેશા લાગુ પડે છે.",
"customBannedSignalsPlaceholder": "દા.ત. api key revoked",
"noCustomBannedSignals": "કોઈ કસ્ટમ કીવર્ડ્સ નથી. ફક્ત બિલ્ટ-ઇન કીવર્ડ્સ જ સક્રિય છે.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "સ્થિતિસ્થાપકતા માળખું",
"resilienceStructureDesc": "આ પૃષ્ઠ માત્ર વર્તનને ગોઠવે છે. લાઇવ બ્રેકર સ્ટેટ હેલ્થ પેજ પર બતાવવામાં આવે છે. કૉમ્બો-વિશિષ્ટ ફરી પ્રયાસ અને રાઉન્ડ-રોબિન સ્લોટ નિયંત્રણ કૉમ્બો સેટિંગ્સ પર રહે છે.",
- "enableThinking": "Enable Thinking",
- "maxThinkingTokens": "Max Thinking Tokens",
- "enableProxy": "Enable Proxy",
+ "enableThinking": "વિચાર પ્રક્રિયા સક્ષમ કરો",
+ "maxThinkingTokens": "મહત્તમ વિચાર ટોકન્સ",
+ "enableProxy": "પ્રોક્સી સક્ષમ કરો",
"perKeyProxyEnabled": "કી દીઠ પ્રોક્સી અસાઇનમેન્ટ સક્ષમ કરો",
"perKeyProxyEnabledDesc": "જ્યારે સક્ષમ હોય, ત્યારે દરેક પ્રદાતા કનેક્શન તેના પોતાના પ્રોક્સી અસાઇનમેન્ટનો ઉપયોગ કરી શકે છે",
- "proxyUrl": "Proxy URL",
- "pricingRates": "Pricing Rates Format",
- "currentPricing": "Current Pricing Overview",
- "loadingPricing": "Loading pricing data...",
- "noPricing": "No pricing data available",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
+ "proxyUrl": "પ્રોક્સી URL",
+ "pricingRates": "કિંમત દરોનું ફોર્મેટ",
+ "currentPricing": "વર્તમાન કિંમતનો સારાંશ",
+ "loadingPricing": "કિંમતનો ડેટા લોડ થઈ રહ્યો છે...",
+ "noPricing": "કિંમતનો કોઈ ડેટા ઉપલબ્ધ નથી",
+ "input": "ઇનપુટ",
+ "output": "આઉટપુટ",
+ "cached": "કૅશ કરેલું",
"reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "customPricing": "Custom Pricing",
- "databaseSize": "Database Size",
- "backupDb": "Backup Database",
- "restoreDb": "Restore Database",
- "exportData": "Export Data",
- "importData": "Import Data",
- "clearData": "Clear All Data",
- "clearDataConfirm": "This will permanently delete all data. Are you sure?",
- "enableRequestLogs": "Enable Request Logs",
- "logRetention": "Log Retention",
- "ipWhitelist": "IP Whitelist",
- "ipBlacklist": "IP Blacklist",
- "addIP": "Add IP",
- "savedSuccessfully": "Settings saved successfully",
+ "cacheCreation": "કૅશ બનાવવું",
+ "customPricing": "કસ્ટમ કિંમત",
+ "databaseSize": "ડેટાબેઝનું કદ",
+ "backupDb": "ડેટાબેઝનો બૅકઅપ લો",
+ "restoreDb": "ડેટાબેઝ પુનઃસ્થાપિત કરો",
+ "exportData": "ડેટા નિકાસ કરો",
+ "importData": "ડેટા આયાત કરો",
+ "clearData": "બધો ડેટા સાફ કરો",
+ "clearDataConfirm": "આનાથી બધો ડેટા કાયમ માટે કાઢી નાખવામાં આવશે. શું તમે ખરેખર આ કરવા માંગો છો?",
+ "enableRequestLogs": "વિનંતી લૉગ્સ સક્ષમ કરો",
+ "logRetention": "લૉગ જાળવણી અવધિ",
+ "ipWhitelist": "IP વ્હાઇટલિસ્ટ",
+ "ipBlacklist": "IP બ્લૅકલિસ્ટ",
+ "addIP": "IP ઉમેરો",
+ "savedSuccessfully": "સેટિંગ્સ સફળતાપૂર્વક સાચવવામાં આવી",
"ai": "AI",
- "advanced": "Advanced",
- "localMode": "Local Mode — All data stored on your machine",
- "settingsSectionsAria": "Settings sections",
- "switchThemes": "Switch between light and dark themes",
- "themeSelectionAria": "Theme selection",
- "themeLight": "Light",
- "themeDark": "Dark",
- "themeSystem": "System",
+ "advanced": "અદ્યતન",
+ "localMode": "લોકલ મોડ — બધો ડેટા તમારા મશીન પર સંગ્રહિત થાય છે",
+ "settingsSectionsAria": "સેટિંગ્સના વિભાગો",
+ "switchThemes": "લાઇટ અને ડાર્ક થીમ વચ્ચે સ્વિચ કરો",
+ "themeSelectionAria": "થીમની પસંદગી",
+ "themeLight": "લાઇટ",
+ "themeDark": "ડાર્ક",
+ "themeSystem": "સિસ્ટમ",
"endpointTunnelVisibility": "અંતિમ બિંદુ ટનલ દૃશ્યતા",
"endpointTunnelVisibilityDesc": "ટનલ સ્થિતિ બદલ્યા વિના એન્ડપોઇન્ટ પેજ પરથી ટનલ નિયંત્રણો છુપાવો.",
"showCloudflareTunnel": "ક્લાઉડફ્લેર ક્વિક ટનલ",
@@ -6748,47 +6755,47 @@
"showTailscaleFunnelDesc": "એન્ડપોઇન્ટ પેજ પર ટેઇલસ્કેલ ફનલ નિયંત્રણો બતાવો.",
"showNgrokTunnel": "ngrok ટનલ",
"showNgrokTunnelDesc": "એન્ડપોઇન્ટ પેજ પર એનગ્રોક ટનલ નિયંત્રણો બતાવો.",
- "sidebarVisibility": "Hide sidebar items",
- "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter without disabling any features",
- "sidebarVisibilityHint": "Any sidebar section is hidden automatically when all of its entries are hidden",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
- "hideHealthLogs": "Hide Health Check Logs",
- "hideHealthLogsDesc": "When ON, suppress [HealthCheck] messages in server console",
- "themeAccent": "Theme color",
- "themeAccentDesc": "Choose a preset color or create your own theme with one color",
- "themeCreate": "Create theme",
- "themeCustom": "Custom theme",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "sidebarVisibility": "સાઇડબારની આઇટમ્સ છુપાવો",
+ "sidebarVisibilityDesc": "કોઈપણ સુવિધાને અક્ષમ કર્યા વિના દૃશ્ય અવ્યવસ્થા ઘટાડવા માટે સાઇડબારની કોઈપણ નેવિગેશન એન્ટ્રી છુપાવો",
+ "sidebarVisibilityHint": "જ્યારે કોઈ સાઇડબાર વિભાગની બધી એન્ટ્રીઓ છુપાવેલી હોય ત્યારે તે વિભાગ આપમેળે છુપાઈ જાય છે",
+ "presetAll": "બધું",
+ "presetAllDesc": "બધું બતાવો",
+ "presetEssentials": "આવશ્યક",
+ "presetEssentialsDesc": "શરૂઆત કરનારાઓ માટેનો માર્ગ - અદ્યતન ટૂલ્સ શોધી શકાશે",
+ "presetMinimal": "ન્યૂનતમ",
+ "presetMinimalDesc": "ફક્ત મુખ્ય પેજ",
+ "presetDeveloper": "ડેવલપર",
+ "presetDeveloperDesc": "ડેવલપમેન્ટ અને પ્રોક્સી ટૂલ્સ",
+ "presetAdmin": "એડમિન",
+ "presetAdminDesc": "મોનિટરિંગ અને ઑડિટ",
+ "settingsSidebarTitle": "સાઇડબાર કસ્ટમાઇઝેશન",
+ "settingsSidebarDesc": "સાઇડબારમાં કઈ આઇટમ્સ બતાવવી તે પસંદ કરો. આવશ્યક મોડમાં પણ અદ્યતન ટૂલ્સ શોધી શકાય છે.",
+ "hideHealthLogs": "હેલ્થ ચેક લૉગ્સ છુપાવો",
+ "hideHealthLogsDesc": "ચાલુ હોય ત્યારે, સર્વર કન્સોલમાં [HealthCheck] સંદેશાઓ દર્શાવશો નહીં",
+ "themeAccent": "થીમનો રંગ",
+ "themeAccentDesc": "પૂર્વનિર્ધારિત રંગ પસંદ કરો અથવા એક રંગથી તમારી પોતાની થીમ બનાવો",
+ "themeCreate": "થીમ બનાવો",
+ "themeCustom": "કસ્ટમ થીમ",
+ "themeBlue": "વાદળી",
+ "themeRed": "લાલ",
+ "themeGreen": "લીલો",
+ "themeViolet": "જાંબલી",
+ "themeOrange": "નારંગી",
+ "themeCyan": "સાયન",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "એપ્લિકેશનનું નામ અને લોગો કસ્ટમાઇઝ કરો",
+ "appName": "એપ્લિકેશનનું નામ",
+ "appNameDesc": "સાઇડબાર અને બ્રાઉઝર ટૅબમાં દર્શાવાતું નામ",
+ "customLogo": "કસ્ટમ લોગો URL",
+ "customLogoDesc": "તમારી કસ્ટમ લોગો ઇમેજનો URL",
+ "uploadLogo": "લોગો અપલોડ કરો",
+ "resetLogo": "ડિફૉલ્ટ પર રીસેટ કરો",
+ "logoPreview": "પૂર્વાવલોકન",
+ "customFavicon": "બ્રાઉઝર ફેવિકોન",
+ "customFaviconDesc": "તમારા કસ્ટમ ફેવિકોનનો URL (બ્રાઉઝર ટૅબમાં દર્શાવાય છે)",
+ "uploadFavicon": "ફેવિકોન અપલોડ કરો",
+ "resetFavicon": "ફેવિકોન રીસેટ કરો",
+ "faviconPreview": "ફેવિકોનનું પૂર્વાવલોકન",
"logoFileTooLarge": "લોગો ફાઇલ 500KB કરતાં ઓછી હોવી જોઈએ",
"faviconFileTooLarge": "ફેવિકોન ફાઇલ 50KB કરતાં ઓછી હોવી જોઈએ",
"invalidLogoFileType": "અમાન્ય ફાઇલ પ્રકાર. કૃપા કરીને PNG, JPG, SVG, GIF અથવા WebP અપલોડ કરો.",
@@ -6796,15 +6803,15 @@
"failedToReadFile": "ફાઇલ વાંચવામાં નિષ્ફળ",
"startOnLogin": "લોગિન પર શરૂ કરો",
"startOnLoginDesc": "સિસ્ટમ સ્ટાર્ટઅપ પર આપમેળે OmniRoute લોંચ કરો અને બેકગ્રાઉન્ડ ટ્રેમાં શાંતિથી ચલાવો.",
- "flushCache": "Flush Cache",
- "flushing": "Flushing…",
- "size": "Size",
- "hits": "Hits",
- "evictions": "Evictions",
- "loadingCacheStats": "Loading cache stats…",
- "globalProxy": "Global Proxy",
- "globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
- "noGlobalProxy": "No global proxy configured",
+ "flushCache": "કૅશ સાફ કરો",
+ "flushing": "સાફ કરવામાં આવી રહ્યું છે…",
+ "size": "કદ",
+ "hits": "હિટ્સ",
+ "evictions": "દૂર કરાયેલી એન્ટ્રીઓ",
+ "loadingCacheStats": "કૅશના આંકડા લોડ થઈ રહ્યા છે…",
+ "globalProxy": "ગ્લોબલ પ્રોક્સી",
+ "globalProxyDesc": "તમામ API કૉલ્સ માટે ગ્લોબલ આઉટબાઉન્ડ પ્રોક્સી કૉન્ફિગર કરો. વ્યક્તિગત પ્રદાતાઓ, કોમ્બોઝ અને કીઝ આ સેટિંગને ઓવરરાઇડ કરી શકે છે.",
+ "noGlobalProxy": "કોઈ ગ્લોબલ પ્રોક્સી કૉન્ફિગર કરેલ નથી",
"proxyPool": "પ્રોક્સી પૂલ",
"freePool": "મફત પૂલ",
"proxyDocumentation": "પ્રોક્સી દસ્તાવેજીકરણ",
@@ -6892,21 +6899,21 @@
"refreshInterval": "ફરીથી તાજા કરવાની અંતરાલ",
"ruleModeDescription": "નિયમ મોડ વર્ણન"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "બલ્ક હેલ્થચેક",
+ "bulkHealthcheckDesc": "કયા પ્રોક્સી કાર્ય કરે છે તે જાણવા માટે બધા કૉન્ફિગર કરેલા પ્રોક્સીને લક્ષ્ય URL સામે ચકાસો.",
+ "healthcheckTesting": "ચકાસી રહ્યું છે...",
+ "healthcheckAll": "બધાનું હેલ્થચેક કરો",
+ "healthcheckFailed": "હેલ્થચેક ચલાવવામાં નિષ્ફળતા",
+ "healthcheckTestingAll": "બધા પ્રોક્સીને સમાંતરે ચકાસી રહ્યું છે...",
+ "healthcheckTotal": "કુલ",
+ "healthcheckWorking": "કાર્યરત",
+ "healthcheckFailedLabel": "નિષ્ફળ",
+ "healthcheckStatus": "સ્થિતિ",
+ "healthcheckProxyUrl": "પ્રોક્સી URL",
+ "healthcheckLatency": "વિલંબ",
"proxyDocumentationScopeTitle": "પ્રોક્સી સ્કોપ રિઝોલ્યુશન",
"proxyDocumentationScopeDescBefore": "OmniRoute આઉટબાઉન્ડ પ્રોક્સીને પ્રાધાન્યતા ક્રમમાં રિઝોલ્વ કરે છે:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "કોમ્બો → એકાઉન્ટ → પ્રદાતા → વૈશ્વિક",
"proxyDocumentationScopeDescAfter": ". સૌથી વિશિષ્ટ સ્કોપ જીતે છે.",
"proxyDocumentationAddTitle": "કસ્ટમ પ્રોક્સી ઉમેરવી",
"proxyDocumentationAddDescBefore": "પર જાઓ",
@@ -6962,22 +6969,22 @@
"proxyFreePoolLoadMore": "વધુ લોડ કરો",
"close": "બંધ કરો",
"cancel": "રદ કરો",
- "globalLabel": "Global",
- "configure": "Configure",
- "globalSystemPrompt": "Global System Prompt",
- "saved": "Saved",
+ "globalLabel": "વૈશ્વિક",
+ "configure": "કૉન્ફિગર કરો",
+ "globalSystemPrompt": "વૈશ્વિક સિસ્ટમ પ્રોમ્પ્ટ",
+ "saved": "સાચવ્યું",
"beforePromptLabel": "પ્રોમ્પ્ટ પહેલાં",
"beforePromptDesc": "એજન્ટ/પ્રદાતા સિસ્ટમ સૂચનાઓ પહેલાં ઇન્જેક્ટ કરેલ",
"beforePromptPlaceholder": "એજન્ટ/પ્રદાતા પ્રોમ્પ્ટ પહેલાં દાખલ કરેલી સૂચનાઓ...",
"afterPromptLabel": "પ્રોમ્પ્ટ પછી",
"afterPromptDesc": "એજન્ટ/પ્રદાતા સિસ્ટમ સૂચનાઓ પછી ઇન્જેક્ટ કરેલ",
"afterPromptPlaceholder": "એજન્ટ/પ્રદાતા પ્રોમ્પ્ટ પછી દાખલ કરેલી સૂચનાઓ...",
- "chars": "{count} chars",
- "thinkingBudgetTitle": "Thinking Budget",
+ "chars": "{count} અક્ષરો",
+ "thinkingBudgetTitle": "વિચારણાનું બજેટ",
"thinkingBudgetDesc": "Control AI reasoning token usage across all requests",
"thinkingBudgetIndependenceHint": "સંકોચન, માર્ગદર્શન, અને ટોકન-મર્યાદા સુવિધાઓ દરેક મોડમાં કાર્યરત રહે છે. ઓટોનો અર્થ “ઓટો-શો વિચારો” નથી — તે ક્લાયન્ટની વિચારણા ક્ષેત્રોને દૂર કરે છે.",
- "passthrough": "Passthrough",
- "passthroughDesc": "No changes — client controls thinking budget",
+ "passthrough": "પાસથ્રૂ",
+ "passthroughDesc": "કોઈ ફેરફાર નહીં — ક્લાયન્ટ વિચારણાના બજેટને નિયંત્રિત કરે છે",
"thinkingModePassthrough": "પાસથ્રૂ",
"thinkingModePassthroughDesc": "ક્લાયન્ટનું કારણ બદલવા નહી (પ્રયાસ, સારાંશ, વિચાર બ્લોક). Codex/Desktop દૃશ્યમાન વિચાર માટે જરૂરી. ડિફોલ્ટ.",
"thinkingModeAuto": "ઓટો (સ્ટ્રિપ)",
@@ -6987,36 +6994,36 @@
"thinkingModeAdaptive": "અનુકૂળ",
"thinkingModeAdaptiveDesc": "સંદેશા સંખ્યા, સાધનો, અને પ્રોમ્પ્ટ લંબાઈનો ઉપયોગ કરીને આધાર પ્રયાસમાંથી વિચારધારા બજેટને સ્કેલ કરો.",
"auto": "Auto Combo",
- "autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "custom": "Custom",
- "customDesc": "Set a fixed token budget for all requests",
- "adaptive": "Adaptive",
- "adaptiveDesc": "Scale budget based on request complexity",
- "effortNone": "None (0 tokens)",
- "effortLow": "Low (1K tokens)",
- "effortMedium": "Medium (10K tokens)",
- "effortHigh": "High (128K tokens)",
- "tokenBudget": "Token Budget",
- "tokens": "tokens",
- "baseEffortLevel": "Base Effort Level",
+ "autoDesc": "સ્વ-ઉપચારક્ષમ સ્માર્ટ રૂટિંગ પૂલ (પ્રદર્શન માટે ઑપ્ટિમાઇઝ કરેલું)",
+ "custom": "કસ્ટમ",
+ "customDesc": "બધી વિનંતીઓ માટે નિશ્ચિત ટોકન બજેટ સેટ કરો",
+ "adaptive": "અનુકૂલનશીલ",
+ "adaptiveDesc": "વિનંતીની જટિલતાના આધારે બજેટ સમાયોજિત કરો",
+ "effortNone": "કોઈ નહીં (0 ટોકન)",
+ "effortLow": "ઓછું (1K ટોકન)",
+ "effortMedium": "મધ્યમ (10K ટોકન)",
+ "effortHigh": "ઉચ્ચ (128K ટોકન)",
+ "tokenBudget": "ટોકન બજેટ",
+ "tokens": "ટોકન",
+ "baseEffortLevel": "મૂળભૂત પ્રયત્ન સ્તર",
"adaptiveHint": "Adaptive mode scales from this base level based on message count, tool usage, and prompt length.",
- "requireLogin": "Require login",
- "requireLoginDesc": "When ON, dashboard requires password. When OFF, access without login.",
- "currentPassword": "Current Password",
- "enterCurrentPassword": "Enter current password",
- "newPassword": "New Password",
- "enterNewPassword": "Enter new password",
- "confirmPassword": "Confirm New Password",
- "confirmPasswordPlaceholder": "Confirm new password",
- "passwordsNoMatch": "Passwords do not match",
- "passwordUpdated": "Password updated successfully",
- "failedUpdatePassword": "Failed to update password",
- "errorOccurred": "An error occurred",
- "updatePassword": "Update Password",
- "setPassword": "Set Password",
- "apiEndpointProtection": "API Endpoint Protection",
- "requireAuthModels": "Require API key for /models",
- "requireAuthModelsDesc": "When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.",
+ "requireLogin": "લૉગિન જરૂરી",
+ "requireLoginDesc": "ચાલુ હોય ત્યારે ડૅશબોર્ડ માટે પાસવર્ડ જરૂરી છે. બંધ હોય ત્યારે લૉગિન વિના ઍક્સેસ મળે છે.",
+ "currentPassword": "વર્તમાન પાસવર્ડ",
+ "enterCurrentPassword": "વર્તમાન પાસવર્ડ દાખલ કરો",
+ "newPassword": "નવો પાસવર્ડ",
+ "enterNewPassword": "નવો પાસવર્ડ દાખલ કરો",
+ "confirmPassword": "નવા પાસવર્ડની પુષ્ટિ કરો",
+ "confirmPasswordPlaceholder": "નવા પાસવર્ડની પુષ્ટિ કરો",
+ "passwordsNoMatch": "પાસવર્ડ મેળ ખાતા નથી",
+ "passwordUpdated": "પાસવર્ડ સફળતાપૂર્વક અપડેટ થયો",
+ "failedUpdatePassword": "પાસવર્ડ અપડેટ કરવામાં નિષ્ફળતા",
+ "errorOccurred": "એક ભૂલ આવી",
+ "updatePassword": "પાસવર્ડ અપડેટ કરો",
+ "setPassword": "પાસવર્ડ સેટ કરો",
+ "apiEndpointProtection": "API એન્ડપોઇન્ટ સુરક્ષા",
+ "requireAuthModels": "/models માટે API કી જરૂરી બનાવો",
+ "requireAuthModelsDesc": "ચાલુ હોય ત્યારે, /v1/models એન્ડપોઇન્ટ બિનપ્રમાણિત વિનંતીઓ માટે 404 પરત કરે છે. અનધિકૃત વપરાશકર્તાઓ દ્વારા મોડેલ શોધને અટકાવે છે.",
"authModelHeading": "સક્રિય અધિકૃતતા મોડેલ",
"authModelClient": "ક્લાયન્ટ API એન્ડપોઇન્ટ્સ (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) ને Bearer API કીની જરૂર છે.",
"authModelManagement": "મેનેજમેન્ટ એન્ડપોઇન્ટ્સ (/ડેશબોર્ડ, /api/*) ને ડેશબોર્ડ સત્ર અથવા મેનેજમેન્ટ ઓળખપત્રની જરૂર છે.",
@@ -7025,16 +7032,16 @@
"bruteForceProtectionDesc": "સમાન IP થી વારંવાર નિષ્ફળતાઓ પછી થ્રોટલ અને લોક /api/auth/login.",
"corsAllowedOrigins": "CORS મંજૂર મૂળ",
"corsAllowedOriginsDesc": "આ સર્વરને કૉલ કરવા માટે મંજૂર બ્રાઉઝર મૂળની અલ્પવિરામથી અલગ કરેલી સૂચિ. ખાલી સૂચિ = કોઈ બ્રાઉઝર CORS ઍક્સેસ નથી (સર્વર-ટુ-સર્વર હજી પણ કાર્ય કરે છે). માત્ર વિકાસ માટે CORS_ALLOW_ALL=true env var નો ઉપયોગ કરો.",
- "blockedProviders": "Blocked Providers",
- "blockedProvidersDesc": "Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.",
- "providersBlocked": "{count} provider(s) blocked from /models",
- "blockProviderTitle": "Block {provider}",
- "unblockProviderTitle": "Unblock {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "blockedProviders": "અવરોધિત પ્રદાતાઓ",
+ "blockedProvidersDesc": "/v1/models પ્રતિસાદમાંથી ચોક્કસ પ્રદાતાઓને છુપાવો. અવરોધિત પ્રદાતાઓ મોડેલ સૂચિઓમાં દેખાશે નહીં.",
+ "providersBlocked": "/modelsમાંથી {count} પ્રદાતા અવરોધિત",
+ "blockProviderTitle": "{provider}ને અવરોધિત કરો",
+ "unblockProviderTitle": "{provider} પરથી અવરોધ દૂર કરો",
+ "cliFingerprint": "CLI ફિંગરપ્રિન્ટ મેચિંગ",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "CLI ફિંગરપ્રિન્ટ સક્રિય ધરાવતા {count} પ્રદાતા",
+ "enableFingerprintTitle": "{provider} માટે ફિંગરપ્રિન્ટ સક્ષમ કરો",
+ "disableFingerprintTitle": "{provider} માટે ફિંગરપ્રિન્ટ અક્ષમ કરો",
"systemTransforms": "સિસ્ટમ-બ્લોક ટ્રાન્સફોર્મ પાઇપલાઇન",
"systemTransformsDesc": "પ્રતિ-પ્રદાતાએ ફોરવર્ડ કરતા પહેલા વિનંતીના મુખ્ય ભાગ પર લાગુ પરિવર્તનની પાઇપલાઇનનો ઓર્ડર આપ્યો. કોઈપણ પ્રદાતા ID ને સપોર્ટ કરે છે.",
"systemTransformsAddProvider": "પ્રદાતા ઉમેરો",
@@ -7045,29 +7052,29 @@
"systemTransformsOpMoveUp": "ઉપર ખસેડો",
"systemTransformsOpMoveDown": "નીચે ખસેડો",
"systemTransformsOpDelete": "ઓપ કાઢી નાખો",
- "routingStrategy": "Routing Strategy",
- "routingAdvancedGuideTitle": "Advanced routing guidance",
+ "routingStrategy": "રાઉટિંગ વ્યૂહરચના",
+ "routingAdvancedGuideTitle": "અદ્યતન રાઉટિંગ માર્ગદર્શન",
"routingAdvancedGuideHint1": "Use Fill First for predictable priority, Round Robin for fairness, and P2C for latency resilience.",
"routingAdvancedGuideHint2": "If providers vary in quality/cost, start with Cost Opt for background work and Least Used for balanced wear.",
- "fillFirst": "Fill First",
- "fillFirstDesc": "Use accounts in priority order",
+ "fillFirst": "પ્રથમ ભરો",
+ "fillFirstDesc": "અગ્રતા ક્રમમાં એકાઉન્ટ્સનો ઉપયોગ કરો",
"roundRobin": "Round Robin",
- "roundRobinDesc": "Cycle through all accounts",
+ "roundRobinDesc": "બધા એકાઉન્ટ્સનો ચક્રાનુસાર ઉપયોગ કરો",
"p2c": "P2C",
- "p2cDesc": "Pick 2 random, use the healthier one",
- "random": "Random",
- "randomDesc": "Random account each request",
- "leastUsed": "Least Used",
- "leastUsedDesc": "Pick least recently used account",
- "costOpt": "Cost Opt",
- "costOptDesc": "Prefer cheapest available account",
+ "p2cDesc": "2 રૅન્ડમ પસંદ કરો, વધુ સ્વસ્થ એકનો ઉપયોગ કરો",
+ "random": "રૅન્ડમ",
+ "randomDesc": "દરેક વિનંતી માટે રૅન્ડમ એકાઉન્ટ",
+ "leastUsed": "સૌથી ઓછું વપરાયેલ",
+ "leastUsedDesc": "સૌથી લાંબા સમયથી ઉપયોગ ન થયેલું એકાઉન્ટ પસંદ કરો",
+ "costOpt": "ખર્ચ ઑપ્ટિમાઇઝેશન",
+ "costOptDesc": "સૌથી સસ્તા ઉપલબ્ધ એકાઉન્ટને પ્રાધાન્ય આપો",
"resetAware": "રીસેટ-અવેર આરઆર",
"resetAwareDesc": "તંદુરસ્ત બાકીના ક્વોટા અને નજીકના રીસેટવાળા એકાઉન્ટ્સને પ્રાધાન્ય આપો",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "ક્વોટા-ભારિત",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "કડક રૅન્ડમ",
+ "strictRandomDesc": "ડેકને શફલ કરો — ફરી શફલ કરતાં પહેલાં દરેક એકાઉન્ટનો એકવાર ઉપયોગ કરે છે",
+ "stickyLimit": "સ્ટિકી મર્યાદા",
"stickyLimitDesc": "Calls per account before switching",
"routingStrategyTitle": "રાઉટિંગ વ્યૂહરચના",
"routingStrategySubtitle": "9router સાથે મેળ કરો: એકાઉન્ટ રાઉન્ડ-રોબિન, સ્ટીકી મર્યાદાઓ અને કોમ્બો રોટેશન",
@@ -7085,225 +7092,225 @@
"providerAccountRoutingDesc": "આ પ્રદાતા માટે વૈશ્વિક એકાઉન્ટ વ્યૂહરચના ઓવરરાઇડ કરો (9router સમાનતા).",
"providerRoutingStrategy": "એકાઉન્ટ વ્યૂહરચના",
"providerRoutingInheritGlobal": "ગ્લોબલ ડિફૉલ્ટ વારસામાં મેળવો",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
- "modelAliases": "Model Aliases",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
- "addCustomAlias": "Add Custom Alias",
- "deprecatedModelId": "Deprecated model ID",
- "newModelId": "New model ID",
- "customAliases": "Custom Aliases",
- "builtInAliases": "Built-in Aliases",
- "backgroundDegradationTitle": "Background Task Degradation",
- "backgroundDegradationDesc": "Auto-detect background tasks (titles, summaries) and route to cheaper models",
- "enableDegradation": "Enable Background Degradation",
- "enableDegradationHint": "When enabled, background tasks like title generation and summarization are routed to cheaper models automatically",
- "tasksDetected": "Tasks detected",
- "degradationMap": "Model Degradation Map",
- "premiumModel": "Premium model",
- "cheapModel": "Cheap model",
- "detectionPatterns": "Detection Patterns",
- "newPattern": "e.g. \"generate a title\"",
+ "quotaPreflightTitle": "ક્વોટા પ્રીફ્લાઇટ કટઓફ",
+ "quotaPreflightSubtitle": "વિનંતી અપસ્ટ્રીમ મોકલતાં પહેલાં ક્વોટા સમાપ્ત થઈ ગયેલા એકાઉન્ટ્સને છોડો",
+ "quotaPreflightEnable": "ક્વોટા પ્રીફ્લાઇટ સક્ષમ કરો",
+ "quotaPreflightEnableDesc": "દરેક વિનંતી પહેલાં, એકાઉન્ટનો બાકી ક્વોટા (5 કલાક / સાપ્તાહિક / માસિક અવધિઓ) તપાસો. કટઓફ પર અથવા તેનાથી નીચેના એકાઉન્ટ્સને અપસ્ટ્રીમ કૉલ કર્યા વિના છોડવામાં આવે છે. Provider Quota પેજ પર સેટ કરેલા દરેક અવધિના કટઓફને હંમેશાં અહીંના ડિફૉલ્ટ કરતાં પ્રાધાન્ય મળે છે.",
+ "quotaPreflightCutoff": "વૈશ્વિક કટઓફ (બાકી રહેલી ન્યૂનતમ %)",
+ "quotaPreflightCutoffDesc": "જે દરેક વિન્ડો માટે તેનો પોતાનો કટઓફ ન હોય, તેમાં એકાઉન્ટનો બાકી રહેલો ક્વોટા આ ટકાવારી સુધી અથવા તેનાથી નીચે જાય ત્યારે તેનો ઉપયોગ બંધ કરો. આ Provider Quota પેજ પરના બાકી-% બાર સાથે મેળ ખાય છે.",
+ "quotaPreflightWindowsHint": "પોતાનો પ્રતિ-વિન્ડો અથવા પ્રતિ-પ્રદાતા કટઓફ ધરાવતી વિન્ડો (Provider Quota પેજ પરના Cutoff મોડલમાં સેટ કરેલી) પર આ ડિફૉલ્ટની અસર થતી નથી.",
+ "quotaPreflightLoadFailed": "ક્વોટા પ્રીફ્લાઇટ સેટિંગ્સ લોડ કરવામાં અસમર્થ.",
+ "modelAliases": "મોડેલ ઉપનામો",
+ "modelAliasesTitle": "મોડેલ ઉપનામો",
+ "modelAliasesDesc": "ચોક્કસ મેળ અથવા વાઇલ્ડકાર્ડ પેટર્નનો ઉપયોગ કરીને મોડેલનાં નામ ફરીથી મેપ કરો.",
+ "addCustomAlias": "કસ્ટમ ઉપનામ ઉમેરો",
+ "deprecatedModelId": "અપ્રચલિત મોડેલ ID",
+ "newModelId": "નવું મોડેલ ID",
+ "customAliases": "કસ્ટમ ઉપનામો",
+ "builtInAliases": "બિલ્ટ-ઇન ઉપનામો",
+ "backgroundDegradationTitle": "બૅકગ્રાઉન્ડ કાર્યનું ડિગ્રેડેશન",
+ "backgroundDegradationDesc": "બૅકગ્રાઉન્ડ કાર્યો (શીર્ષકો, સારાંશો) આપમેળે શોધો અને તેમને સસ્તા મોડેલો તરફ રૂટ કરો",
+ "enableDegradation": "બૅકગ્રાઉન્ડ ડિગ્રેડેશન સક્ષમ કરો",
+ "enableDegradationHint": "સક્ષમ કરેલું હોય ત્યારે, શીર્ષક બનાવવું અને સારાંશ તૈયાર કરવો જેવાં બૅકગ્રાઉન્ડ કાર્યો આપમેળે સસ્તા મોડેલો તરફ રૂટ થાય છે",
+ "tasksDetected": "શોધાયેલાં કાર્યો",
+ "degradationMap": "મોડેલ ડિગ્રેડેશન મેપ",
+ "premiumModel": "પ્રીમિયમ મોડેલ",
+ "cheapModel": "સસ્તું મોડેલ",
+ "detectionPatterns": "શોધ પેટર્ન",
+ "newPattern": "દા.ત. \"શીર્ષક બનાવો\"",
"aliasPatternPlaceholder": "claude-sonnet-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
- "pattern": "Pattern",
- "targetModel": "Target Model",
- "add": "+ Add",
- "session": "Session",
- "sessionDetailsAria": "Session details",
+ "pattern": "પેટર્ન",
+ "targetModel": "લક્ષ્ય મોડેલ",
+ "add": "+ ઉમેરો",
+ "session": "સત્ર",
+ "sessionDetailsAria": "સત્રની વિગતો",
"status": "Status",
- "authenticated": "Authenticated",
- "guest": "Guest",
- "loginTime": "Login Time",
- "sessionAge": "Session Age",
- "browser": "Browser",
- "clearLocalData": "Clear Local Data",
- "logout": "Logout",
- "clearLocalDataConfirm": "Clear all local data? This will reset your preferences.",
- "unknown": "Unknown",
- "systemActor": "system",
- "ipAccessControl": "IP Access Control",
- "ipAccessControlDesc": "Block or allow specific IP addresses",
- "ipModeDisabled": "Disabled",
- "ipModeBlacklist": "Blacklist",
- "ipModeWhitelist": "Whitelist",
- "ipModeWhitelistPriority": "WL Priority",
- "addIpAddress": "Add IP Address",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
- "block": "+ Block",
- "allow": "+ Allow",
- "blocked": "Blocked ({count})",
- "allowed": "Allowed ({count})",
- "temporaryBans": "Temporary Bans ({count})",
- "minLeft": "{min}m left",
- "auditLog": "Audit Log",
- "searchAuditLogs": "Search audit logs...",
- "failedLoadAuditLog": "Failed to load audit log",
- "noAuditEvents": "No audit events found",
- "action": "Action",
- "actor": "Actor",
- "details": "Details",
- "time": "Time",
- "fallbackChainsTitle": "Fallback Chains",
- "fallbackChainsDesc": "Define provider fallback order per model",
- "addChain": "+ Add Chain",
- "modelName": "Model Name",
+ "authenticated": "પ્રમાણિત",
+ "guest": "અતિથિ",
+ "loginTime": "લૉગિન સમય",
+ "sessionAge": "સત્રની અવધિ",
+ "browser": "બ્રાઉઝર",
+ "clearLocalData": "સ્થાનિક ડેટા સાફ કરો",
+ "logout": "લૉગઆઉટ",
+ "clearLocalDataConfirm": "બધો સ્થાનિક ડેટા સાફ કરવો છે? આ તમારી પસંદગીઓને રીસેટ કરશે.",
+ "unknown": "અજ્ઞાત",
+ "systemActor": "સિસ્ટમ",
+ "ipAccessControl": "IP ઍક્સેસ નિયંત્રણ",
+ "ipAccessControlDesc": "ચોક્કસ IP સરનામાંને અવરોધો અથવા મંજૂરી આપો",
+ "ipModeDisabled": "અક્ષમ",
+ "ipModeBlacklist": "બ્લેકલિસ્ટ",
+ "ipModeWhitelist": "વ્હાઇટલિસ્ટ",
+ "ipModeWhitelistPriority": "WL પ્રાથમિકતા",
+ "addIpAddress": "IP સરનામું ઉમેરો",
+ "ipAddressPlaceholder": "192.168.1.0/24 અથવા 10.0.*.*",
+ "block": "+ અવરોધિત કરો",
+ "allow": "+ મંજૂરી આપો",
+ "blocked": "અવરોધિત ({count})",
+ "allowed": "મંજૂર ({count})",
+ "temporaryBans": "કામચલાઉ પ્રતિબંધો ({count})",
+ "minLeft": "{min}મિ બાકી",
+ "auditLog": "ઑડિટ લૉગ",
+ "searchAuditLogs": "ઑડિટ લૉગ્સ શોધો...",
+ "failedLoadAuditLog": "ઑડિટ લૉગ લોડ કરવામાં નિષ્ફળતા",
+ "noAuditEvents": "કોઈ ઑડિટ ઇવેન્ટ મળી નથી",
+ "action": "ક્રિયા",
+ "actor": "કર્તા",
+ "details": "વિગતો",
+ "time": "સમય",
+ "fallbackChainsTitle": "ફૉલબૅક ચેઇન્સ",
+ "fallbackChainsDesc": "દરેક મૉડલ માટે પ્રદાતા ફૉલબૅક ક્રમ નિર્ધારિત કરો",
+ "addChain": "+ ચેઇન ઉમેરો",
+ "modelName": "મૉડલનું નામ",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
- "providersCommaSeparated": "Providers (comma-separated, in priority order)",
+ "providersCommaSeparated": "પ્રદાતાઓ (અલ્પવિરામથી અલગ કરેલા, પ્રાથમિકતાના ક્રમમાં)",
"providersCommaSeparatedPlaceholder": "anthropic, openai, gemini",
- "createChain": "Create Chain",
- "noFallbackChains": "No Fallback Chains",
- "noFallbackChainsDesc": "Create a chain to define provider fallback order for a model.",
- "loadingFallbackChains": "Loading fallback chains...",
- "deleteChainConfirm": "Delete fallback chain for \"{model}\"?",
- "chainCreated": "Chain created for {model}",
- "chainDeleted": "Chain deleted for {model}",
- "failedCreateChain": "Failed to create chain",
- "failedDeleteChain": "Failed to delete chain",
- "deleteChain": "Delete chain",
- "fillModelAndProviders": "Please fill model name and providers",
- "addAtLeastOneProvider": "Add at least one provider",
- "comboDefaultsTitle": "Combo Defaults",
- "comboDefaultsGuideTitle": "How to tune combo defaults",
- "comboDefaultsGuideHint1": "Keep retries low in low-latency flows; increase timeout only for long generation tasks.",
- "comboDefaultsGuideHint2": "Use provider overrides when one provider needs different timeout/retry behavior than global defaults.",
- "globalComboConfig": "Global combo configuration",
+ "createChain": "ચેઇન બનાવો",
+ "noFallbackChains": "કોઈ ફૉલબૅક ચેઇન નથી",
+ "noFallbackChainsDesc": "મૉડલ માટે પ્રદાતા ફૉલબૅક ક્રમ નિર્ધારિત કરવા ચેઇન બનાવો.",
+ "loadingFallbackChains": "ફૉલબૅક ચેઇન્સ લોડ થઈ રહી છે...",
+ "deleteChainConfirm": "\"{model}\" માટેની ફૉલબૅક ચેઇન કાઢી નાખવી છે?",
+ "chainCreated": "{model} માટે ચેઇન બનાવવામાં આવી",
+ "chainDeleted": "{model} માટેની ચેઇન કાઢી નાખવામાં આવી",
+ "failedCreateChain": "ચેઇન બનાવવામાં નિષ્ફળતા",
+ "failedDeleteChain": "ચેઇન કાઢી નાખવામાં નિષ્ફળતા",
+ "deleteChain": "ચેઇન કાઢી નાખો",
+ "fillModelAndProviders": "કૃપા કરીને મૉડલનું નામ અને પ્રદાતાઓ ભરો",
+ "addAtLeastOneProvider": "ઓછામાં ઓછો એક પ્રદાતા ઉમેરો",
+ "comboDefaultsTitle": "કૉમ્બો ડિફૉલ્ટ્સ",
+ "comboDefaultsGuideTitle": "કૉમ્બો ડિફૉલ્ટ્સને કેવી રીતે સમાયોજિત કરવા",
+ "comboDefaultsGuideHint1": "ઓછી વિલંબતા ધરાવતા પ્રવાહોમાં પુનઃપ્રયાસોની સંખ્યા ઓછી રાખો; માત્ર લાંબા જનરેશન કાર્યો માટે સમયમર્યાદા વધારો.",
+ "comboDefaultsGuideHint2": "જ્યારે કોઈ એક પ્રદાતાને વૈશ્વિક ડિફૉલ્ટ્સ કરતાં અલગ સમયમર્યાદા/પુનઃપ્રયાસની વર્તણૂકની જરૂર હોય ત્યારે પ્રદાતા ઓવરરાઇડ્સનો ઉપયોગ કરો.",
+ "globalComboConfig": "વૈશ્વિક કોમ્બો ગોઠવણી",
"moveUp": "ઉપર ખસેડો",
"moveDown": "નીચે ખસેડો",
"allProvidersAdded": "બધા પ્રદાતાઓ ઉમેરાયા",
"noProvidersFound": "કોઈ પ્રદાતા મળ્યા નથી",
- "defaultStrategy": "Default Strategy",
+ "defaultStrategy": "ડિફૉલ્ટ વ્યૂહરચના",
"defaultStrategyDesc": "Applied to new combos without explicit strategy",
- "comboStrategyAria": "Combo strategy",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Priority-style routing with automatic context handoffs when account rotation happens",
- "maxRetriesLabel": "Max Retries",
- "retryDelayLabel": "Retry Delay (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
- "healthCheckDesc": "Pre-check provider availability",
- "trackMetrics": "Track Metrics",
- "trackMetricsDesc": "Record per-combo request metrics",
- "providerOverrides": "Provider Overrides",
- "providerOverridesDesc": "Override timeout and retries per provider. Provider settings override global defaults.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
- "removeProviderOverrideAria": "Remove {provider} override",
+ "comboStrategyAria": "કોમ્બો વ્યૂહરચના",
+ "priority": "પ્રાથમિકતા",
+ "weighted": "ભારાંકિત",
+ "contextRelay": "કોન્ટેક્સ્ટ રિલે",
+ "contextRelayDesc": "એકાઉન્ટ રોટેશન થાય ત્યારે આપમેળે કોન્ટેક્સ્ટ હેન્ડઓફ સાથે પ્રાથમિકતા-શૈલીનું રૂટિંગ",
+ "maxRetriesLabel": "મહત્તમ પુનઃપ્રયાસો",
+ "retryDelayLabel": "પુનઃપ્રયાસ વિલંબ (ms)",
+ "timeoutLabel": "સમયમર્યાદા (ms)",
+ "healthCheck": "સ્થિતિ તપાસ",
+ "healthCheckDesc": "પ્રદાતાની ઉપલબ્ધતાની પૂર્વ-તપાસ કરો",
+ "trackMetrics": "મેટ્રિક્સ ટ્રૅક કરો",
+ "trackMetricsDesc": "દરેક કોમ્બો માટે વિનંતી મેટ્રિક્સ રેકોર્ડ કરો",
+ "providerOverrides": "પ્રદાતા ઓવરરાઇડ્સ",
+ "providerOverridesDesc": "દરેક પ્રદાતા માટે સમયમર્યાદા અને પુનઃપ્રયાસો ઓવરરાઇડ કરો. પ્રદાતાની સેટિંગ્સ વૈશ્વિક ડિફૉલ્ટ્સને ઓવરરાઇડ કરે છે.",
+ "providerMaxRetriesAria": "{provider} મહત્તમ પુનઃપ્રયાસો",
+ "providerTimeoutAria": "{provider} સમયમર્યાદા ms",
+ "removeProviderOverrideAria": "{provider} ઓવરરાઇડ દૂર કરો",
"selectProviderPlaceholder": "પ્રદાતા પસંદ કરો...",
"searchProviderPlaceholder": "પ્રદાતાઓ શોધો...",
"searchProviderAria": "પ્રદાતાઓ શોધો",
- "newProviderNamePlaceholder": "e.g. google, openai...",
- "newProviderNameAria": "New provider name",
- "retries": "retries",
+ "newProviderNamePlaceholder": "દા.ત. google, openai...",
+ "newProviderNameAria": "નવા પ્રદાતાનું નામ",
+ "retries": "પુનઃપ્રયાસો",
"ms": "ms",
- "saveComboDefaults": "Save Combo Defaults",
- "maxNestingDepth": "Max Nesting Depth",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
+ "saveComboDefaults": "કોમ્બો ડિફૉલ્ટ્સ સાચવો",
+ "maxNestingDepth": "મહત્તમ નેસ્ટિંગ ઊંડાઈ",
+ "concurrencyPerModel": "સમવર્તિતા / મોડેલ",
+ "queueTimeout": "કતાર સમયમર્યાદા (ms)",
"queueDepth": "કતારની ઊંડાઈ",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
- "providerProfiles": "Provider Profiles",
- "providerProfilesDesc": "Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
- "maxBackoffLevel": "Max Backoff Level",
- "cbThreshold": "CB Threshold",
- "cbResetTime": "CB Reset Time",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
- "defaultSafetyNet": "Default Safety Net",
+ "contextRelayHandoffThreshold": "હેન્ડઓફ થ્રેશોલ્ડ",
+ "contextRelayMaxMessages": "સારાંશ માટે મહત્તમ સંદેશાઓ",
+ "contextRelaySummaryModel": "સારાંશ મોડેલ",
+ "contextRelayProviderNote": "કોન્ટેક્સ્ટ રિલે હાલમાં Codex એકાઉન્ટ્સ માટે હેન્ડઓફ જનરેટ કરે છે અને નવા અથવા ગોઠવ્યા ન હોય તેવા કોમ્બો માટે આ મૂલ્યોનો વૈશ્વિક ડિફૉલ્ટ્સ તરીકે ઉપયોગ કરે છે.",
+ "providerProfiles": "પ્રદાતા પ્રોફાઇલ્સ",
+ "providerProfilesDesc": "OAuth (સત્ર-આધારિત) અને API Key (મીટર કરેલા) પ્રદાતાઓ માટે અલગ સ્થિતિસ્થાપકતા સેટિંગ્સ. નીચી દર મર્યાદાઓને કારણે OAuth પ્રદાતાઓ માટે વધુ કડક થ્રેશોલ્ડ હોય છે.",
+ "oauthProviders": "OAuth પ્રદાતાઓ",
+ "apiKeyProviders": "API Key પ્રદાતાઓ",
+ "transientCooldown": "ક્ષણિક કૂલડાઉન",
+ "rateLimitCooldown": "દર મર્યાદા કૂલડાઉન",
+ "maxBackoffLevel": "મહત્તમ બૅકઓફ સ્તર",
+ "cbThreshold": "CB થ્રેશોલ્ડ",
+ "cbResetTime": "CB રીસેટ સમય",
+ "rateLimiting": "દર મર્યાદિત કરવું",
+ "rateLimitingDesc": "API Key પ્રદાતાઓ પર સુરક્ષિત ડિફૉલ્ટ મર્યાદાઓ સાથે આપમેળે દર મર્યાદા લાગુ થાય છે. મર્યાદાઓ પ્રતિસાદ હેડર્સમાંથી શીખવામાં આવે છે અને સમય જતાં અનુકૂલિત થાય છે.",
+ "defaultSafetyNet": "ડિફૉલ્ટ સુરક્ષા જાળ",
"rpm": "RPM",
- "minGap": "Min Gap",
- "maxConcurrent": "Max Concurrent",
- "activeLimiters": "Active Limiters",
- "noActiveLimiters": "No active rate limiters yet.",
- "reservoir": "Reservoir",
- "running": "Running",
- "queued": "Queued",
- "circuitBreakers": "Circuit Breakers",
- "breakerStateClosed": "Closed",
- "breakerStateOpen": "Open",
- "breakerStateHalfOpen": "Half-Open",
- "tripped": "{count} tripped",
- "healthy": "{count} healthy",
- "resetAll": "Reset All",
- "noCircuitBreakers": "No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.",
- "failures": "{count} failure(s)",
- "policiesLocked": "Policies & Locked Identifiers",
- "allOperational": "All systems operational — no lockouts or tripped breakers",
- "loadingPolicies": "Loading policies...",
- "lockedIdentifiers": "Locked Identifiers",
- "unlockedIdentifier": "Unlocked: {identifier}",
- "sinceDate": "since {date}",
- "forceUnlock": "Force Unlock",
- "unlocking": "Unlocking...",
- "failedUnlock": "Failed to unlock",
- "failedLoadWithStatus": "Failed to load: {status}",
- "failedLoadResilience": "Failed to load resilience status",
- "saveFailed": "Save failed",
- "resetFailed": "Reset failed",
- "loadingResilience": "Loading resilience status...",
- "retry": "Retry",
+ "minGap": "ન્યૂનતમ અંતરાલ",
+ "maxConcurrent": "મહત્તમ સમકાલીન",
+ "activeLimiters": "સક્રિય દર મર્યાદકો",
+ "noActiveLimiters": "હજુ સુધી કોઈ સક્રિય દર મર્યાદક નથી.",
+ "reservoir": "અનામત",
+ "running": "ચાલુ",
+ "queued": "કતારમાં",
+ "circuitBreakers": "સર્કિટ બ્રેકર્સ",
+ "breakerStateClosed": "બંધ",
+ "breakerStateOpen": "ખુલ્લું",
+ "breakerStateHalfOpen": "અર્ધ-ખુલ્લું",
+ "tripped": "{count} ટ્રિપ થયા",
+ "healthy": "{count} સ્વસ્થ",
+ "resetAll": "બધું રીસેટ કરો",
+ "noCircuitBreakers": "હજુ સુધી કોઈ સર્કિટ બ્રેકર સક્રિય નથી. કોમ્બો પાઇપલાઇન મારફતે વિનંતીઓ પસાર થાય ત્યારે તે આપમેળે બનાવવામાં આવે છે.",
+ "failures": "{count} નિષ્ફળતા",
+ "policiesLocked": "નીતિઓ અને લૉક કરેલા ઓળખકર્તાઓ",
+ "allOperational": "બધી સિસ્ટમ કાર્યરત છે — કોઈ લૉકઆઉટ કે ટ્રિપ થયેલા બ્રેકર્સ નથી",
+ "loadingPolicies": "નીતિઓ લોડ થઈ રહી છે...",
+ "lockedIdentifiers": "લૉક કરેલા ઓળખકર્તાઓ",
+ "unlockedIdentifier": "અનલૉક કર્યું: {identifier}",
+ "sinceDate": "{date}થી",
+ "forceUnlock": "બળજબરીથી અનલૉક કરો",
+ "unlocking": "અનલૉક થઈ રહ્યું છે...",
+ "failedUnlock": "અનલૉક કરવામાં નિષ્ફળતા",
+ "failedLoadWithStatus": "લોડ કરવામાં નિષ્ફળતા: {status}",
+ "failedLoadResilience": "સ્થિતિસ્થાપકતાની સ્થિતિ લોડ કરવામાં નિષ્ફળતા",
+ "saveFailed": "સાચવવામાં નિષ્ફળતા",
+ "resetFailed": "રીસેટ કરવામાં નિષ્ફળતા",
+ "loadingResilience": "સ્થિતિસ્થાપકતાની સ્થિતિ લોડ થઈ રહી છે...",
+ "retry": "ફરી પ્રયાસ કરો",
"systemStorage": "System & Storage",
- "allDataLocal": "All data stored locally on your machine",
- "databasePath": "Database Path",
+ "allDataLocal": "તમામ ડેટા તમારા મશીન પર સ્થાનિક રીતે સંગ્રહિત છે",
+ "databasePath": "ડેટાબેઝ પાથ",
"export": "નિકાસ કરો",
- "exportDatabase": "Export Database",
- "exportAll": "Export All (.tar.gz)",
- "importDatabase": "Import Database",
- "confirmDbImport": "Confirm Database Import",
- "confirmDbImportDesc": "This will replace all current data with the content from {file}. A backup will be created automatically before the import.",
- "yesImport": "Yes, Import",
- "lastBackup": "Last Backup",
- "noBackupYet": "No backup yet",
- "backupNow": "Backup Now",
- "backupRestore": "Backup & Restore",
- "viewBackups": "View Backups",
- "hide": "Hide",
- "backupRetentionDesc": "Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.",
- "loadingBackups": "Loading backups...",
- "noBackupsYet": "No backups available yet. Backups will be created automatically when data changes.",
- "backupsAvailable": "{count} backup(s) available",
- "refresh": "Refresh",
- "confirm": "Confirm?",
- "yes": "Yes",
- "no": "No",
- "restore": "Restore",
- "invalidFileType": "Invalid file type. Only .sqlite files are accepted.",
- "exportFailed": "Export failed",
- "exportFailedWithError": "Export failed: {error}",
- "fullExportFailedWithError": "Full export failed: {error}",
- "backupCreated": "Backup created: {file}",
- "restoreSuccess": "Restored! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "importSuccess": "Database imported! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "minutesAgo": "{count}m ago",
- "hoursAgo": "{count}h ago",
- "daysAgo": "{count}d ago",
- "backupReasonManual": "manual",
- "backupReasonPreRestore": "pre-restore",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
- "noChangesSinceBackup": "No changes since last backup",
- "backupFailed": "Backup failed",
- "restoreFailed": "Restore failed",
- "importFailed": "Import failed",
- "errorDuringRestore": "An error occurred during restore",
- "errorDuringImport": "An error occurred during import",
- "modelPricing": "Model Pricing",
- "modelPricingDesc": "Configure cost rates per model • All rates in $/1M tokens",
+ "exportDatabase": "ડેટાબેઝ નિકાસ કરો",
+ "exportAll": "બધું નિકાસ કરો (.tar.gz)",
+ "importDatabase": "ડેટાબેઝ આયાત કરો",
+ "confirmDbImport": "ડેટાબેઝ આયાતની પુષ્ટિ કરો",
+ "confirmDbImportDesc": "આ વર્તમાન તમામ ડેટાને {file}ની સામગ્રીથી બદલી દેશે. આયાત પહેલાં આપમેળે બૅકઅપ બનાવવામાં આવશે.",
+ "yesImport": "હા, આયાત કરો",
+ "lastBackup": "છેલ્લું બૅકઅપ",
+ "noBackupYet": "હજુ સુધી કોઈ બૅકઅપ નથી",
+ "backupNow": "હમણાં બૅકઅપ લો",
+ "backupRestore": "બૅકઅપ અને પુનઃસ્થાપન",
+ "viewBackups": "બૅકઅપ્સ જુઓ",
+ "hide": "છુપાવો",
+ "backupRetentionDesc": "પુનઃસ્થાપન પહેલાં અને ડેટામાં ફેરફાર થાય ત્યારે દર 15 મિનિટે ડેટાબેઝ સ્નૅપશૉટ્સ આપમેળે બનાવવામાં આવે છે. જાળવણી: સ્માર્ટ રોટેશન સાથે 24 કલાકદીઠ + 30 દૈનિક બૅકઅપ્સ.",
+ "loadingBackups": "બૅકઅપ્સ લોડ થઈ રહ્યાં છે...",
+ "noBackupsYet": "હજુ સુધી કોઈ બૅકઅપ ઉપલબ્ધ નથી. ડેટામાં ફેરફાર થાય ત્યારે બૅકઅપ્સ આપમેળે બનાવવામાં આવશે.",
+ "backupsAvailable": "{count} બૅકઅપ ઉપલબ્ધ",
+ "refresh": "રિફ્રેશ કરો",
+ "confirm": "ખાતરી છે?",
+ "yes": "હા",
+ "no": "ના",
+ "restore": "પુનઃસ્થાપિત કરો",
+ "invalidFileType": "અમાન્ય ફાઇલ પ્રકાર. માત્ર .sqlite ફાઇલો સ્વીકારવામાં આવે છે.",
+ "exportFailed": "નિકાસ નિષ્ફળ ગઈ",
+ "exportFailedWithError": "નિકાસ નિષ્ફળ ગઈ: {error}",
+ "fullExportFailedWithError": "સંપૂર્ણ નિકાસ નિષ્ફળ ગઈ: {error}",
+ "backupCreated": "બૅકઅપ બનાવ્યું: {file}",
+ "restoreSuccess": "પુનઃસ્થાપિત થયું! {connections} કનેક્શન્સ, {nodes} નોડ્સ, {combos} કોમ્બોઝ, {apiKeys} API કીઝ.",
+ "importSuccess": "ડેટાબેઝ આયાત થયો! {connections} કનેક્શન્સ, {nodes} નોડ્સ, {combos} કોમ્બોઝ, {apiKeys} API કીઝ.",
+ "minutesAgo": "{count} મિનિટ પહેલાં",
+ "hoursAgo": "{count} કલાક પહેલાં",
+ "daysAgo": "{count} દિવસ પહેલાં",
+ "backupReasonManual": "મેન્યુઅલ",
+ "backupReasonPreRestore": "પુનઃસ્થાપન-પૂર્વ",
+ "connectionsCount": "{count, plural, one {# કનેક્શન} other {# કનેક્શન્સ}}",
+ "noChangesSinceBackup": "છેલ્લા બૅકઅપ પછી કોઈ ફેરફાર નથી",
+ "backupFailed": "બૅકઅપ નિષ્ફળ ગયું",
+ "restoreFailed": "પુનઃસ્થાપન નિષ્ફળ ગયું",
+ "importFailed": "આયાત નિષ્ફળ ગઈ",
+ "errorDuringRestore": "પુનઃસ્થાપન દરમિયાન ભૂલ આવી",
+ "errorDuringImport": "આયાત દરમિયાન ભૂલ આવી",
+ "modelPricing": "મોડેલની કિંમત",
+ "modelPricingDesc": "દરેક મોડેલ માટે ખર્ચ દરો ગોઠવો • બધા દરો $/1M ટોકન્સમાં છે",
"pricingCoverage": "કવરેજ",
"pricingAuth": "પ્રમાણીકરણ",
"pricingSort": "ક્રમબદ્ધ કરો",
@@ -7325,7 +7332,7 @@
"configured": "કન્ફિગર કરેલ",
"none": "કોઈ નહીં",
"modelOverrideValuePlaceholder": "સંખ્યાત્મક મૂલ્ય",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "અંગ્રેજીમાં અલ્પવિરામથી અલગ કરેલું, દા.ત. low, medium, high",
"addKeyValue": "કી વેલ્યુ ઉમેરો",
"noModelOverrides": "આ મોડેલ માટે કોઈ ઓવરરાઇડ્સ કન્ફિગર કરેલ નથી.",
"modelOverrideLoadFailed": "મોડેલ ઓવરરાઇડ્સ લોડ કરવામાં નિષ્ફળ",
@@ -7333,66 +7340,66 @@
"modelOverrideRemoved": "મોડેલ ઓવરરાઇડ દૂર કરવામાં આવ્યું",
"modelOverrideSaveFailed": "મોડેલ ઓવરરાઇડ સાચવવામાં નિષ્ફળ",
"modelOverrideRemoveFailed": "મોડેલ ઓવરરાઇડ દૂર કરવામાં નિષ્ફળ",
- "registry": "Registry",
- "priced": "Priced",
- "searchProvidersModels": "Search providers or models...",
- "showAll": "Show All",
- "noProvidersMatch": "No providers match your search.",
- "howPricingWorks": "How Pricing Works",
- "cacheWrite": "Cache Write",
- "unsaved": "unsaved",
+ "registry": "રજિસ્ટ્રી",
+ "priced": "કિંમત નિર્ધારિત",
+ "searchProvidersModels": "પ્રદાતાઓ અથવા મોડલ શોધો...",
+ "showAll": "બધું બતાવો",
+ "noProvidersMatch": "તમારી શોધ સાથે કોઈ પ્રદાતા મેળ ખાતા નથી.",
+ "howPricingWorks": "કિંમત કેવી રીતે કાર્ય કરે છે",
+ "cacheWrite": "કૅશ લેખન",
+ "unsaved": "સાચવેલ નથી",
"resetDefaults": "ડિફોલ્ટ્સ ફરીથી સેટ કરો",
- "saveProvider": "Save Provider",
+ "saveProvider": "પ્રદાતા સાચવો",
"model": "Model",
- "models": "models",
- "moreProviders": "{count} more providers",
- "withPricing": "with pricing configured",
- "policiesCircuitBreakers": "Policies & Circuit Breakers",
- "activeIssuesDetected": "Active issues detected",
- "off": "Off",
- "resetPricingConfirm": "Reset all pricing for {provider} to defaults?",
- "pricingDescInput": "Input: tokens sent to the model",
- "pricingDescOutput": "Output: tokens generated",
- "pricingDescCached": "Cached: reused input (~50% of input rate)",
- "pricingDescReasoning": "Reasoning: thinking tokens (falls back to Output)",
- "pricingDescCacheWrite": "Cache Write: creating cache entries (falls back to Input)",
- "pricingDescFormula": "Cost = (input × input_rate) + (output × output_rate) + (cached × cached_rate) per million tokens.",
- "pricingSettingsTitle": "Pricing Settings",
- "totalModels": "Total Models",
- "active": "Active",
- "costCalculation": "Cost Calculation",
- "costCalculationDesc": "Costs are calculated based on token usage and pricing rates configured for each model.",
- "pricingFormat": "Pricing Format",
- "pricingFormatDesc": "All rates are in $/1M tokens (dollars per million tokens).",
- "tokenTypes": "Token Types",
- "inputTokenDesc": "Standard prompt tokens",
- "outputTokenDesc": "Completion/response tokens",
- "cachedTokenDesc": "Cached input tokens (typically 50% of input rate)",
- "reasoningTokenDesc": "Special reasoning/thinking tokens (fallback to output rate)",
- "cacheCreationTokenDesc": "Tokens used to create cache entries (fallback to input rate)",
- "customPricingNote": "You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.",
- "editPricing": "Edit Pricing",
- "viewFullDetails": "View Full Details",
- "themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "models": "મોડલ",
+ "moreProviders": "વધુ {count} પ્રદાતાઓ",
+ "withPricing": "જેમના માટે કિંમત ગોઠવેલી છે",
+ "policiesCircuitBreakers": "નીતિઓ અને સર્કિટ બ્રેકર્સ",
+ "activeIssuesDetected": "સક્રિય સમસ્યાઓ મળી આવી",
+ "off": "બંધ",
+ "resetPricingConfirm": "{provider} માટેની બધી કિંમતોને ડિફૉલ્ટ પર રીસેટ કરવી છે?",
+ "pricingDescInput": "ઇનપુટ: મોડલને મોકલેલા ટોકન",
+ "pricingDescOutput": "આઉટપુટ: જનરેટ થયેલા ટોકન",
+ "pricingDescCached": "કૅશ કરેલા: ફરીથી ઉપયોગમાં લેવાયેલ ઇનપુટ (ઇનપુટ દરના આશરે 50%)",
+ "pricingDescReasoning": "તર્ક: વિચારણા માટેના ટોકન (ઉપલબ્ધ ન હોય તો આઉટપુટ દર લાગુ પડે છે)",
+ "pricingDescCacheWrite": "કૅશ લેખન: કૅશ એન્ટ્રીઓ બનાવવી (ઉપલબ્ધ ન હોય તો ઇનપુટ દર લાગુ પડે છે)",
+ "pricingDescFormula": "કિંમત = (ઇનપુટ × ઇનપુટ_દર) + (આઉટપુટ × આઉટપુટ_દર) + (કૅશ કરેલા × કૅશ_દર), પ્રતિ દસ લાખ ટોકન.",
+ "pricingSettingsTitle": "કિંમત સેટિંગ્સ",
+ "totalModels": "કુલ મોડલ",
+ "active": "સક્રિય",
+ "costCalculation": "ખર્ચની ગણતરી",
+ "costCalculationDesc": "દરેક મોડલ માટે ગોઠવેલા ટોકન વપરાશ અને કિંમતના દરોના આધારે ખર્ચની ગણતરી કરવામાં આવે છે.",
+ "pricingFormat": "કિંમતનું ફોર્મેટ",
+ "pricingFormatDesc": "બધા દરો $/1M ટોકન (પ્રતિ દસ લાખ ટોકન ડૉલર)માં છે.",
+ "tokenTypes": "ટોકનના પ્રકારો",
+ "inputTokenDesc": "માનક પ્રોમ્પ્ટ ટોકન",
+ "outputTokenDesc": "પૂર્ણતા/પ્રતિસાદ ટોકન",
+ "cachedTokenDesc": "કૅશ કરેલા ઇનપુટ ટોકન (સામાન્ય રીતે ઇનપુટ દરના 50%)",
+ "reasoningTokenDesc": "વિશિષ્ટ તર્ક/વિચારણા ટોકન (ઉપલબ્ધ ન હોય તો આઉટપુટ દર લાગુ પડે છે)",
+ "cacheCreationTokenDesc": "કૅશ એન્ટ્રીઓ બનાવવા માટે વપરાતા ટોકન (ઉપલબ્ધ ન હોય તો ઇનપુટ દર લાગુ પડે છે)",
+ "customPricingNote": "તમે ચોક્કસ મોડલ માટેની ડિફૉલ્ટ કિંમત બદલી શકો છો. કસ્ટમ ઓવરરાઇડને આપમેળે શોધાયેલી કિંમત કરતાં પ્રાથમિકતા મળે છે.",
+ "editPricing": "કિંમતમાં ફેરફાર કરો",
+ "viewFullDetails": "સંપૂર્ણ વિગતો જુઓ",
+ "themeCoral": "કોરલ",
+ "adaptiveVolumeRouting": "અનુકૂલનશીલ વોલ્યુમ રૂટિંગ",
+ "adaptiveVolumeRoutingDesc": "પેલોડ વોલ્યુમ અને થ્રુપુટ દબાણના આધારે કનેક્શનને ગતિશીલ રીતે સ્કેલ કરો.",
+ "lkgpToggleTitle": "છેલ્લો જાણીતો સારો પ્રદાતા (LKGP)",
+ "lkgpToggleDesc": "સક્ષમ હોય ત્યારે, રાઉટર છેલ્લે કયા provider એ સફળ પ્રતિસાદ આપ્યો હતો તે યાદ રાખે છે અને ત્યારબાદની વિનંતીઓમાં પહેલા તેનો પ્રયાસ કરે છે.",
"echoRequestedModelTitle": "પ્રતિસાદોમાં વિનંતી કરેલ મોડેલ નામ ઇકો કરો",
"echoRequestedModelDesc": "જ્યારે સક્ષમ કરેલ હોય, ત્યારે પ્રતિસાદનું `model` ફીલ્ડ અપસ્ટ્રીમ મોડેલ નામના બદલે ક્લાયન્ટે વિનંતી કરેલ ઉપનામ અથવા કોમ્બો નામ દર્શાવે છે. તે એવા કડક ક્લાયન્ટ્સ (દા.ત. Claude Desktop) ને ઠીક કરે છે જે એવા પ્રતિસાદને નકારે છે જેનું મોડેલ વિનંતી સાથે મેળ ખાતું નથી.",
"webSearchRouteTitle": "વેબ સર્ચ રૂટિંગ",
"webSearchRouteDesc": "જ્યારે વિનંતીમાં મૂળ web_search ટૂલ શામેલ હોય, ત્યારે ડિફૉલ્ટને બદલે આખી વિનંતીને આ મોડેલ પર રૂટ કરો — એવા પ્રદાતાઓ માટે ઉપયોગી છે જે Anthropic ના web_search સર્વર ટૂલને અમલમાં મૂકતા નથી. અક્ષમ કરવા માટે ખાલી છોડો.",
"webSearchRoutePlaceholder": "મોડેલ શોધો અથવા પસંદ કરો…",
"paidModelPatternWarning": "આ પેટર્ન ફક્ત પેઇડ મોડેલ્સ સાથે મેળ ખાય છે — પેઇડ મોડેલ્સ સક્ષમ કરો અથવા પેટર્નને સમાયોજિત કરો.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP કૅશ સાફ કરો",
+ "lkgpCacheCleared": "LKGP કૅશ સફળતાપૂર્વક સાફ થઈ",
+ "lkgpCacheClearFailed": "LKGP કૅશ સાફ કરવામાં નિષ્ફળતા",
+ "days": "દિવસો",
+ "lkgp": "LKGP મોડ",
+ "lkgpDesc": "છેલ્લો જાણીતો સારો Provider (અનુમાનિત સ્થિતિસ્થાપકતા)",
+ "maintenance": "જાળવણી",
+ "purgeExpiredLogs": "સમાપ્ત થયેલા લૉગ્સ દૂર કરો",
+ "purgeLogsFailed": "લૉગ્સ દૂર કરવામાં નિષ્ફળતા",
"logsDeleted": "{count, plural, =0 {કોઈ એક્સપાયર થયેલ લૉગ સાફ કર્યા નથી} one {# એક્સપાયર થયેલ લૉગ સાફ કર્યો} other {# એક્સપાયર થયેલ લૉગ સાફ કર્યા}}",
"resetUsageData": "વપરાશ ડેટા રીસેટ કરો",
"resetUsageDataDesc": "તમે વપરાશ, વિનંતી લૉગ્સ અને એનાલિટિક્સ ડેટા કેટલા સમય પહેલાંનો કાઢી નાખવા માંગો છો તે પસંદ કરો. પ્રદાતા રૂપરેખાંકન, કનેક્શન્સ, API કી, કોમ્બોઝ અને સેટિંગ્સ સાચવવામાં આવે છે. આ ક્રિયા પૂર્વવત્ કરી શકાતી નથી.",
@@ -7409,63 +7416,63 @@
"resetUsageFailed": "વપરાશ ડેટા રીસેટ કરવામાં નિષ્ફળ",
"reset": "રીસેટ કરો",
"resetting": "રીસેટ કરી રહ્યું છે...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
- "clearSyncedPricingConfirm": "Clear all synced pricing data? Provider defaults will be used instead.",
- "clearSyncedPricingFailed": "Failed to clear synced pricing",
- "pricingSourceUser": "User Override",
- "pageDescription": "Manage application settings, model aliases, pricing, and routing rules",
- "pricingSyncStatus": "Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
- "pricingLoadFailed": "Failed to load pricing data",
- "pricingSyncDescription": "Automatically sync model pricing from external sources to keep cost calculations accurate",
- "clearSyncedPricingSuccess": "Synced pricing data cleared",
- "clearSyncedPricingFailedWithReason": "Failed to clear pricing: {reason}",
- "pricingSourceDefault": "Built-in Default",
- "pricingSyncSuccess": "Pricing synced successfully",
- "enableSyncError": "Failed to toggle pricing sync",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "contextOpt": "સંદર્ભ માટે ઑપ્ટિમાઇઝ કરેલું",
+ "contextOptDesc": "સંદર્ભ વિન્ડોની આવશ્યકતાઓ અને વાર્તાલાપની લંબાઈના આધારે રૂટ કરે છે",
+ "cacheOpt": "કૅશ માટે ઑપ્ટિમાઇઝ કરેલું",
+ "cacheOptDesc": "સમાન ફરીથી વાપરી શકાય તેવા prompt prefix ને સમાન provider account પર રાખે છે",
+ "priorityDesc": "ક્રમિક fallback — પહેલા provider 1, પછી provider 2 અને એ જ રીતે આગળ પ્રયાસ કરે છે",
+ "weightedDesc": "ટકાવારી વેઇટ્સ અનુસાર providers વચ્ચે ટ્રાફિક વિતરિત કરે છે",
+ "modelRoutingTitle": "મોડેલ રાઉટિંગ નિયમો",
+ "modelRoutingDesc": "glob patterns નો ઉપયોગ કરીને મોડેલ્સને ચોક્કસ combos પર આપમેળે રૂટ કરો",
+ "addRule": "નિયમ ઉમેરો",
+ "routeToCombo": "Combo પર રૂટ કરો",
+ "selectCombo": "combo પસંદ કરો...",
+ "priorityHint": "વધુ મૂલ્ય = પહેલા તપાસવામાં આવે છે. ચોક્કસ patterns માટે 10+ વાપરો.",
+ "patternHint": "કોઈપણ અક્ષરો માટે * અને એક અક્ષર માટે ? વાપરો. અક્ષરકેસ પ્રત્યે અસંવેદનશીલ.",
+ "noRoutingRules": "કોઈ રાઉટિંગ નિયમો ગોઠવેલા નથી. ડિફૉલ્ટ રૂપે વિનંતીઓ global combo નો ઉપયોગ કરે છે.",
+ "routingRuleHint": "વિનંતીઓને આપમેળે રૂટ કરવા માટે claude-opus* -> frontier-combo જેવો નિયમ ઉમેરો.",
+ "deleteRoutingRule": "આ મોડેલ રાઉટિંગ નિયમ કાઢી નાખવો છે?",
+ "exactMatchMode": "ચોક્કસ મેળ",
+ "wildcardPatternMode": "વાઇલ્ડકાર્ડ Pattern",
+ "exactMatchModeDesc": "નાપસંદ કરેલા અથવા નામ બદલાયેલા model IDs માટે ચોક્કસ aliases વાપરો.",
+ "wildcardPatternModeDesc": "મોડેલ્સના પરિવારને એક target સાથે મેપ કરવો હોય ત્યારે * અને ? ધરાવતા wildcard aliases વાપરો.",
+ "noExactAliasesConfigured": "કોઈ exact-match aliases ગોઠવેલા નથી.",
+ "wildcardRulesTitle": "વાઇલ્ડકાર્ડ નિયમો",
+ "noWildcardAliasesConfigured": "કોઈ wildcard aliases ગોઠવેલા નથી.",
+ "overview": "વિહંગાવલોકન",
+ "unknownError": "અજાણી ભૂલ",
+ "pricingSourceLiteLLM": "LiteLLM (સમુદાય)",
+ "clearSyncedPricingConfirm": "સમન્વયિત કરેલો તમામ pricing data સાફ કરવો છે? તેના બદલે provider defaults નો ઉપયોગ થશે.",
+ "clearSyncedPricingFailed": "સમન્વયિત pricing સાફ કરવામાં નિષ્ફળતા",
+ "pricingSourceUser": "વપરાશકર્તા ઓવરરાઇડ",
+ "pageDescription": "એપ્લિકેશન સેટિંગ્સ, મોડેલ aliases, pricing અને રાઉટિંગ નિયમો મેનેજ કરો",
+ "pricingSyncStatus": "સિંક સ્થિતિ",
+ "whitelist": "શ્વેતસૂચિ",
+ "syncDisabled": "સિંક અક્ષમ છે",
+ "pricingLoadFailed": "કિંમતનો ડેટા લોડ કરવામાં નિષ્ફળ",
+ "pricingSyncDescription": "ખર્ચની ગણતરીઓ સચોટ રાખવા માટે બાહ્ય સ્રોતોમાંથી મોડલની કિંમતો આપમેળે સિંક કરો",
+ "clearSyncedPricingSuccess": "સિંક કરેલો કિંમતનો ડેટા સાફ કરવામાં આવ્યો",
+ "clearSyncedPricingFailedWithReason": "કિંમતો સાફ કરવામાં નિષ્ફળ: {reason}",
+ "pricingSourceDefault": "બિલ્ટ-ઇન ડિફૉલ્ટ",
+ "pricingSyncSuccess": "કિંમતો સફળતાપૂર્વક સિંક થઈ",
+ "enableSyncError": "કિંમત સિંક ટૉગલ કરવામાં નિષ્ફળ",
+ "syncEnabled": "સિંક સક્ષમ છે",
+ "blacklist": "કાળી સૂચિ",
"pricingSourceModelsDev": "Models.dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
- "pricingSyncTitle": "Pricing Sync",
- "pricingResetFailedWithReason": "Failed to reset pricing: {reason}",
- "tab": "Tab",
- "pricingSavedProvider": "Pricing saved for {provider}",
- "pricingSyncFailed": "Pricing sync failed",
- "pricingSaveFailedWithReason": "Failed to save pricing: {reason}",
- "pricingResetProvider": "Pricing reset for {provider}",
- "nextSync": "Next Sync",
- "pricingSyncFailedWithReason": "Pricing sync failed: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "syncedModels": "સિંક કરેલા મોડલ્સ",
+ "budget": "બજેટ",
+ "pricingSyncTitle": "કિંમત સિંક",
+ "pricingResetFailedWithReason": "કિંમતો રીસેટ કરવામાં નિષ્ફળ: {reason}",
+ "tab": "ટૅબ",
+ "pricingSavedProvider": "{provider} માટે કિંમતો સાચવવામાં આવી",
+ "pricingSyncFailed": "કિંમત સિંક નિષ્ફળ",
+ "pricingSaveFailedWithReason": "કિંમતો સાચવવામાં નિષ્ફળ: {reason}",
+ "pricingResetProvider": "{provider} માટે કિંમતો રીસેટ કરવામાં આવી",
+ "nextSync": "આગામી સિંક",
+ "pricingSyncFailedWithReason": "કિંમત સિંક નિષ્ફળ: {reason}",
+ "clearSyncedPricing": "સિંક કરેલી કિંમતો સાફ કરો",
+ "compressionTitle": "પ્રોમ્પ્ટ સંકોચન",
+ "compressionDesc": "પ્રદાતાઓને મોકલતા પહેલાં પ્રોમ્પ્ટ્સને સંકોચીને ટોકનનો ઉપયોગ ઘટાડો",
"compressionGuidanceFullGuideLink": "સંપૂર્ણ કમ્પ્રેશન માર્ગદર્શિકા",
"compressionGuidanceShow": "વિગતો",
"compressionGuidanceHide": "વિગતો છુપાવો",
@@ -7481,13 +7488,13 @@
"tokenSaverInputCompressionDesc": "કોડ, URLs અને હેતુને સાચવી રાખીને યોગ્ય ચેટ ઇતિહાસ ફરીથી લખો.",
"tokenSaverFineTunePrefix": "દરેક એન્જિનને આના પર ફાઇન-ટ્યુન કરો",
"tokenSaverFineTuneSuffix": "અથવા વિનંતી દીઠ એન્જિનોને આના પર જોડો",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
+ "compressionMode": "સંકોચન મોડ",
+ "compressionModeOff": "બંધ",
+ "compressionModeOffDesc": "કોઈ સંકોચન લાગુ કરાયું નથી",
+ "compressionModeLite": "લાઇટ",
+ "compressionModeLiteDesc": "વ્હાઇટસ્પેસ અને ખાલી લીટીઓમાં ઘટાડો",
+ "compressionModeStandard": "સ્ટાન્ડર્ડ (Caveman)",
+ "compressionModeStandardDesc": "30+ પેટર્ન સાથેનું નિયમ-આધારિત સંકોચન, કોડ બ્લૉક્સ અને URLs જાળવી રાખે છે",
"compressionModeAggressive": "આક્રમક",
"compressionModeAggressiveDesc": "સારાંશ + સાધન પરિણામ કમ્પ્રેશન + મહત્તમ બચત માટે પ્રગતિશીલ વૃદ્ધત્વ",
"compressionModeUltra": "અલ્ટ્રા",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "દરેક વૃદ્ધત્વ સ્તર પર રાખવામાં આવેલા તાજેતરના સંદેશાઓની સંખ્યા (ઉચ્ચ = વધુ સાચવેલ)",
"compressionToolStrategies": "સાધન પરિણામ વ્યૂહરચનાઓ",
"compressionToolStrategiesDesc": "વિવિધ ટૂલ પરિણામ પ્રકારો માટે કમ્પ્રેશન વ્યૂહરચનાઓ ટૉગલ કરો",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "સામાન્ય સેટિંગ્સ",
+ "compressionAutoTrigger": "ઑટો-ટ્રિગર થ્રેશોલ્ડ",
+ "compressionCacheTTL": "કૅશ TTL",
+ "compressionPreserveSystem": "સિસ્ટમ પ્રોમ્પ્ટ જાળવો",
"compressionPreserveSystemAlways": "હંમેશા",
"compressionPreserveSystemWhenNoCache": "જ્યારે કોઈ કૅશ ન હોય",
"compressionPreserveSystemNever": "ક્યારેય નહીં",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "સાચવાયું",
"compressionExclusionsCount": "{count, plural, one {# બાહ્ય} other {# બાહ્ય}} કન્ફિગર કરેલ",
"compressionExclusionsEmpty": "કોઈ અપવાદો કન્ફિગર કરેલ નથી — દરેક મોડેલ/એન્ડપોઈન્ટ સંકોચન માટે યોગ્ય છે (ડિફોલ્ટ વર્તન).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman એન્જિન કૉન્ફિગરેશન",
+ "compressionCavemanConfigDesc": "નિયમ-આધારિત સંકોચન એન્જિનને સૂક્ષ્મ રીતે ગોઠવો",
"compressionCavemanPanelHint": "તેનું ચાલુ/બંધ અને સ્તર પેનલમાં સેટ કરેલ છે:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "સંદેશ ભૂમિકાઓ સંકુચિત કરો",
+ "compressionRoleUser": "વપરાશકર્તા",
+ "compressionRoleAssistant": "સહાયક",
+ "compressionRoleSystem": "સિસ્ટમ",
+ "compressionMinLength": "સંદેશની લઘુત્તમ લંબાઈ",
+ "compressionSkipRules": "સંકોચન નિયમો અવગણો",
+ "compressionSkipRulesDesc": "સંકોચન દરમિયાન નિયમોને અવગણવા માટે તેમના પર ક્લિક કરો",
+ "compressionPreservePatterns": "પેટર્ન સાચવો",
+ "compressionPreservePatternsDesc": "ક્યારેય સંકુચિત ન કરવામાં આવતી Regex પેટર્ન (દરેક લાઇનમાં એક)",
+ "compressionLogTitle": "સંકોચન લૉગ",
+ "compressionLogEmpty": "હજુ સુધી કોઈ સંકુચિત વિનંતીઓ નથી. સંકોચન સક્ષમ રાખીને વિનંતીઓ પર પ્રક્રિયા કરવામાં આવશે ત્યારે સંકોચનના આંકડા અહીં દેખાશે.",
"minutes": "મિનિટ",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "કમાન્ડ-સજાગ ટૂલ આઉટપુટ ફિલ્ટરિંગ",
+ "compressionModeCodexResponses": "Responses ટૂલ આઉટપુટ",
+ "compressionModeCodexResponsesDesc": "પાત્ર shell, patch, search, build અને JSON આઉટપુટ માટે સાવચેત સંકોચન",
+ "compressionModeStacked": "સ્ટૅક્ડ",
+ "compressionModeStackedDesc": "RTK ટૂલ-આઉટપુટ ફિલ્ટરિંગ પછી Caveman સંદેશ સંકોચન",
+ "qdrantTitle": "Qdrant (વેક્ટર મેમરી)",
+ "qdrantDesc": "વૈકલ્પિક. વધુ ઝડપી પુનઃપ્રાપ્તિ માટે બાહ્ય વેક્ટર ડેટાબેઝમાં અર્થલક્ષી મેમરીઓને ઇન્ડેક્સ કરે છે.",
+ "qdrantStatusActive": "સક્રિય",
+ "qdrantStatusError": "ભૂલ",
+ "qdrantStatusDisabled": "અક્ષમ",
+ "qdrantEnable": "Qdrant સક્ષમ કરો",
+ "qdrantEnableDesc": "સક્ષમ હોય ત્યારે, અર્થલક્ષી/હાઇબ્રિડ વ્યૂહરચના મેમરીઓ પુનઃપ્રાપ્ત કરવા માટે Qdrant નો ઉપયોગ કરી શકે છે.",
+ "qdrantTesting": "પરીક્ષણ થઈ રહ્યું છે...",
+ "qdrantTestConnection": "કનેક્શનનું પરીક્ષણ કરો",
+ "qdrantSaved": "કૉન્ફિગરેશન સાચવાયું",
+ "qdrantSaveError": "કૉન્ફિગરેશન સાચવવામાં નિષ્ફળતા",
+ "qdrantHostHint": "પોર્ટ વિના. ઉદાહરણ: 127.0.0.1 અથવા http://qdrant",
+ "qdrantPort": "પોર્ટ",
+ "qdrantPortHint": "Qdrant ડિફૉલ્ટ: 6333",
+ "qdrantCollectionHint": "મેમરી પૉઇન્ટ્સ જ્યાં સંગ્રહિત થશે.",
+ "qdrantEmbeddingModel": "એમ્બેડિંગ મોડલ",
+ "qdrantHelpTitle": "ઝડપી સેટઅપ સહાય",
+ "qdrantHelpQuickTitle": "ઝડપી સેટઅપ (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. હોસ્ટ: Qdrant IP/URL, પોર્ટ: 6333, કલેક્શન: omniroute_memory.",
+ "qdrantHelpStep2": "2. જો nvidia/llama-nemotron-embed-vl-1b-v2:free નો ઉપયોગ કરતા હો, તો કલેક્શન ડાઇમેન્શન 2048 રાખો.",
+ "qdrantHelpStep3": "3. મોડલ ફીલ્ડ: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. સાચવો, કનેક્શનનું પરીક્ષણ કરો, પછી શોધનું પરીક્ષણ કરો.",
+ "qdrantEmbeddingQuickSelect": "શોધાયેલા મોડલ્સમાંથી ઝડપથી પસંદ કરો...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "ફોર્મેટ: provider/model. પ્રદાતાનું ઓળખપત્ર ગોઠવેલું હોવું આવશ્યક છે.",
+ "qdrantApiKeyPlaceholderKeep": "(વર્તમાન કી જાળવી રાખવા માટે ખાલી છોડો)",
+ "qdrantApiKeyPlaceholderOptional": "(ઉપયોગમાં ન હોય તો ખાલી છોડો)",
+ "qdrantSaveHint": "ટિપ: host/port/collection/model સંપાદિત કરો અને Save પર ક્લિક કરો. API key વૈકલ્પિક છે.",
+ "qdrantSearchTestTitle": "શોધ પરીક્ષણ",
+ "qdrantSearchTestDesc": "એમ્બેડિંગ બનાવે છે અને Qdrant માં શોધે છે.",
+ "qdrantSearchPlaceholder": "ઉદાહરણ: વપરાશકર્તાની પસંદગીઓ, ઇતિહાસ વગેરે",
+ "qdrantNoResults": "કોઈ પરિણામ નથી (અથવા Qdrant ગોઠવાયેલું નથી).",
+ "qdrantCleanupTitle": "જાળવણી અને સફાઈ",
+ "qdrantCleanupDesc": "આના આધારે સમયસમાપ્ત અને જૂના પૉઇન્ટ દૂર કરે છે",
+ "searching": "શોધી રહ્યું છે...",
+ "cleaning": "સફાઈ કરી રહ્યું છે...",
+ "cleanNow": "હમણાં સાફ કરો",
"optional": "વૈકલ્પિક",
"current": "વર્તમાન",
"remove": "દૂર કરો",
@@ -7596,19 +7603,19 @@
"resilienceScope": "અવકાશ:",
"resilienceTrigger": "ટ્રિગર:",
"resilienceEffect": "અસર:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "વિનંતી કતાર અને દર",
+ "resilienceAutoEnableApiKeyProviders": "API-key પ્રદાતાઓ માટે આપમેળે સક્ષમ કરો",
+ "resilienceRequestsPerMinute": "પ્રતિ મિનિટ વિનંતીઓ",
+ "resilienceMinTimeBetweenRequests": "વિનંતીઓ વચ્ચેનો લઘુતમ સમય",
+ "resilienceConcurrentRequests": "સમકાલીન વિનંતીઓ",
+ "resilienceConnectionScopeConcurrentRequests": "પ્રતિ કનેક્શન/ક્વોટા સ્કોપ સમકાલીન વિનંતીઓ",
+ "resilienceGlobalConcurrentRequests": "વૈશ્વિક સમકાલીન અપસ્ટ્રીમ વિનંતીઓ (0 = અક્ષમ)",
"resilienceMaxQueueWaitTime": "મહત્તમ કતાર પ્રતીક્ષા સમય",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "મૂળભૂત કૂલડાઉન",
+ "resilienceUseUpstreamRetryHints": "અપસ્ટ્રીમ પુનઃપ્રયાસ સંકેતોનો ઉપયોગ કરો",
+ "resilienceDefaultPerProvider": "ડિફૉલ્ટ (પ્રતિ પ્રદાતા)",
+ "resilienceAlwaysOn": "હંમેશાં ચાલુ",
+ "resilienceAlwaysOff": "હંમેશાં બંધ",
"routingRemoveEntry": "એન્ટ્રી દૂર કરો",
"routingNeedlesSubstrings": "સોય (મેળ કરવા માટે સબસ્ટ્રિંગ્સ)",
"routingCaseSensitive": "કેસ સંવેદનશીલ",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "એક્સટ્રેક્ટ કરેલ વર્ણન મૂળ વિનંતીમાં પાછું ઇન્જેક્ટ કરવામાં આવે તે પહેલાં વિઝન મોડેલ પર મોકલવામાં આવે છે.",
"visionBridgeTimeoutMs": "સમયસમાપ્તિ (ms)",
"visionBridgeMaxImagesPerRequest": "વિનંતી દીઠ મહત્તમ છબીઓ",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "મહત્તમ બૅકઑફ પગલાં",
+ "resilienceProviderBreakerTitle": "પ્રતિ પ્રદાતા સર્કિટ બ્રેકર",
+ "resilienceFailureThreshold": "નિષ્ફળતા થ્રેશોલ્ડ",
+ "resilienceDegradationThreshold": "અધોગતિ થ્રેશોલ્ડ",
"resilienceResetTimeout": "સમયસમાપ્તિ રીસેટ કરો",
"resilienceFailureThresholdLabel": "નિષ્ફળતા થ્રેશોલ્ડ",
"resilienceResetTimeoutLabel": "સમયસમાપ્તિ રીસેટ કરો",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "કનેક્શન કૂલડાઉન",
"resilienceUseUpstreamRetryHintsLabel": "અપસ્ટ્રીમ ફરી પ્રયાસ સંકેતોનો ઉપયોગ કરો",
"resilienceUseUpstream429BreakerLabel": "અપસ્ટ્રીમ 429 સંકેતોનો ઉપયોગ કરો (બ્રેકર)",
"resilienceMaxBackoffStepsLabel": "મહત્તમ બેકઓફ પગલાં",
"resilienceYes": "હા",
"resilienceNo": "ના",
- "resilienceDefault": "Default",
+ "resilienceDefault": "ડિફૉલ્ટ",
"storageDatabaseBackupRetention": "ડેટાબેઝ બેકઅપ રીટેન્શન",
"storageDatabaseBackups": "ડેટાબેઝ બેકઅપ્સ",
"storageBackupRetentionDescription": "સ્વચાલિત SQLite બેકઅપ્સ અહીં સંગ્રહિત થાય છે",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "લેગસી JSON સફળતાપૂર્વક ઇમ્પોર્ટ થયું!",
"jsonImportFailed": "JSON ઇમ્પોર્ટ કરવામાં નિષ્ફળ રહ્યું",
"jsonImportError": "JSON ઇમ્પોર્ટ દરમિયાન ભૂલ",
+ "jsonImportAuthRequired": "જૂનું JSON કૉન્ફિગરેશન આયાત કરવા માટે પ્રમાણીકરણ આવશ્યક છે. કૃપા કરીને પહેલાં સાઇન ઇન કરો અથવા સેટઅપ પૂર્ણ કરો.",
+ "databaseSettingsAuthRequiredTitle": "પ્રમાણીકરણ આવશ્યક છે",
+ "databaseSettingsAuthRequiredBody": "ડેટાબેઝ સેટિંગ્સ અને JSON આયાત ફક્ત પ્રમાણિત એડમિન માટે ઉપલબ્ધ છે. તેમને જોવા અને સંપાદિત કરવા માટે સાઇન ઇન કરો અથવા સેટઅપ પૂર્ણ કરો.",
+ "databaseSettingsAuthRequiredCta": "સાઇન ઇન કરો",
"storagePurgeData": "પર્જ ડેટા",
"storagePurgeDataDesc": "રીટેન્શન તપાસ લાગુ કર્યા વિના તરત જ તમામ રેકોર્ડ્સ કાઢી નાખો. સાવધાની સાથે ઉપયોગ કરો.",
"storageRetentionCleanup": "રીટેન્શન સેટિંગ્સ",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "મોડ: {mode}",
"compressionAdaptiveOff": "અડેપ્ટિવ કન્ટેક્સ્ટ બજેટ: બંધ (લેગસી ઑટો-ટ્રિગર)",
"compressionAdaptiveTarget": "અડેપ્ટિવ ({mode}, પૉલિસી: {policy}) — લક્ષ્ય ≈ {target, number} ટોકન્સ ({contextLimit, number}-ટોકન વિન્ડો માટે)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "અનુકૂલનશીલ સંદર્ભ બજેટ",
+ "compressionAdaptiveModeOff": "બંધ (લેગસી ઑટો-ટ્રિગર)",
+ "compressionAdaptiveModeFloor": "ન્યૂનતમ મર્યાદા (હંમેશાં ફિટ થવાની ખાતરી)",
+ "compressionAdaptiveModeReplace": "ઑટો-ટ્રિગર બદલો",
+ "compressionAdaptivePolicy": "બજેટ નીતિ",
+ "compressionAdaptivePolicyReserve": "આઉટપુટ માટે અનામત",
+ "compressionAdaptivePolicyPercentage": "વિન્ડોની ટકાવારી",
+ "compressionAdaptivePolicyAbsolute": "નિરપેક્ષ ટોકન બજેટ",
"compressionOutputStylesDescription": "પ્રોવાઇડર આઉટપુટને ફરીથી લખ્યા વિના રિસ્પોન્સ-શેપિંગ સૂચનાઓ ઇન્જેક્ટ કરો. મુક્તપણે જોડો.",
"mcpAccessibilityDescription": "MCP ટૂલ આઉટપુટ્સને સ્કોપ કરે છે (અલગ સ્ટોર).",
"compressionStylesTileSummary": "{tokens, number} ટોકન્સ સાચવ્યા · {runs, plural, one {# રન સ્ટાઇલ કરેલ} other {# રન સ્ટાઇલ કરેલ}}",
@@ -7862,8 +7873,8 @@
"description": "કમાન્ડ-આઉટપુટ ફિલ્ટરિંગ."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses ટૂલનું આઉટપુટ",
+ "description": "સપોર્ટેડ Responses ટૂલનાં આઉટપુટ માટે સાવચેત કમ્પ્રેશન."
},
"headroom": {
"label": "હેડરૂમ",
@@ -7904,12 +7915,12 @@
"description": "YAGNI લેડર: સૌથી નાનો કાર્યકારી ફેરફાર, કોઈ વિનંતી ન કરેલ એબ્સ્ટ્રેક્શન્સ નહીં."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (આળસુ સિનિયર ડેવલપર)",
+ "description": "આળસુ સિનિયર-ડેવલપરની શિસ્ત: YAGNIની સીડી ચઢો, મૂળ કારણ સુધારો અને સૌથી નાનો કાર્યરત ડિફ બનાવો."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "મને ADHD છે (પહેલાં કાર્યવાહી)",
+ "description": "પહેલાં કાર્યવાહી ધરાવતું આઉટપુટ: આગળનું પગલું શરૂઆતમાં, પગલાં ક્રમાંકિત, એક નક્કર આગળનું પગલું અને કોઈ પ્રસ્તાવના નહીં."
},
"terse-cjk": {
"label": "સંક્ષિપ્ત CJK (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI ફોલબેક",
"cliproxyapiEnableFallback": "CLIProxyAPI ફોલબેક સક્ષમ કરો",
"cliproxyapiUrl": "CLIProxyAPI URL",
+ "headroomProxyTitle": "હેડરૂમ પ્રોક્સી",
+ "headroomProxyDesc": "વૈકલ્પિક Headroom ટોકન-સેવર પ્રોક્સીનું URL. ખાલી રાખવાથી HEADROOM_URL અથવા http://localhost:8787 વપરાય છે.",
+ "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrlHint": "લૂપબૅક URL આ પેજ પરથી શરૂ કરી શકાય છે. બાહ્ય URL માત્ર તપાસવામાં આવે છે.",
+ "headroomProxySave": "સાચવો",
+ "headroomProxyStart": "શરૂ કરો",
+ "headroomProxyStop": "બંધ કરો",
+ "headroomProxyExternalHint": "આ URL લૂપબૅક નથી, તેથી OmniRoute સ્થાનિક CLI શરૂ કરશે નહીં.",
"cliproxyapiStatus": "CLIProxyAPI સ્થિતિ",
"cliproxyapiNotDetected": "શોધાયેલ નથી",
"cliproxyapiImportAuthTitle": "CLIProxyAPI માંથી એકાઉન્ટ્સ આયાત કરો",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "OpenAI કોડેક્સ વિનંતીઓ માટે વૈશ્વિક સ્તરે service_tier=પ્રાયોરિટી દાખલ કરો.",
"codexFastTierHint": "જ્યારે સક્ષમ હોય, ત્યારે OmniRoute કનેક્શન્સ માટે આઉટબાઉન્ડ કોડેક્સ વિનંતીઓમાં service_tier=priority ઉમેરે છે જે પહેલાથી કોઈ સ્તરનો ઉલ્લેખ કરતા નથી. પ્રાધાન્યતા સ્તર માટે OpenAI Enterprise API કી અથવા ChatGPT-auth Codex પાથની જરૂર છે; અન્ય કી પ્રકારો OpenAI તરફથી ટાયર-સંબંધિત ભૂલ પ્રાપ્ત કરશે. કોડેક્સ પ્રદાતા પૃષ્ઠ પર પ્રતિ-કનેક્શન સેટિંગ્સ અગ્રતા લે છે.",
"codexFastTierSaveError": "કોડેક્સ ફાસ્ટ ટિયર સેટિંગ અપડેટ કરવામાં નિષ્ફળ",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex ક્વોટા ઑટો-પિંગ",
+ "codexAutoPingDesc": "દરેક કનેક્શન માટે સ્વૈચ્છિક વિકલ્પ: Codex સેશન વિન્ડો રીસેટ થયા પછી તરત જ એક નાની રિક્વેસ્ટ મોકલે છે, જેથી તમને જરૂર પડે ત્યારે તે કોલ્ડ ન હોય.",
+ "codexAutoPingWarning": "દરેક પિંગ પર વાસ્તવિક Codex ક્વોટાનો થોડો ભાગ વપરાય છે. ડિફૉલ્ટ રૂપે બંધ છે — ફક્ત તમે સક્રિયપણે નિર્ભર હો તેવા કનેક્શન માટે જ સક્ષમ કરો.",
+ "codexAutoPingSaveError": "Codex ઑટો-પિંગ સેટિંગ અપડેટ કરવામાં નિષ્ફળતા",
+ "codexAutoPingToggleAria": "{connection} માટે Codex ક્વોટા ઑટો-પિંગ ટૉગલ કરો",
"codexFastTierTierLabel": "સર્વિસ ટિયર",
"codexFastTierTierPriority": "પ્રાધાન્યતા",
"codexFastTierTierFlex": "ફ્લેક્સ",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "વૈશ્વિક તપાસ અંતરાલ",
"resilienceCredentialHealthEveryMinutes": "દર {minutes} મિનિટ",
"resilienceCredentialHealthHint": "0 પૃષ્ઠભૂમિ સ્કેન બંધ કરે છે (મહત્તમ 1440 મિનિટ = 24 કલાક). પોતાના આરોગ્ય તપાસ મૂલ્યવાળા કનેક્શન આ વૈશ્વિક ડિફોલ્ટ અવગણે છે; કોઈ કનેક્શન પર 0 તેને વૈશ્વિક સ્કેન ચાલુ હોય ત્યારે પણ બાકાત રાખે છે.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "{provider} માટે હંમેશા સક્ષમ — OAuth એકાઉન્ટની સુરક્ષા માટે જરૂરી; બંધ કરી શકાતું નથી.",
+ "forcedFingerprintBadge": "જરૂરી",
"sessionAffinityTitle": "સત્ર અફિનિટી",
"sessionAffinityDesc": "કોઈપણ પ્રદાતા માટે, આટલી સેકન્ડો સુધી સમાન એકાઉન્ટ પર એક વાતચીત રાખે છે. 0 તેને અક્ષમ કરે છે.",
"sessionAffinityTtl": "અફિનિટી TTL (સેકન્ડ)",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "કૂલડાઉન વધતું અટકે તે પહેલાં બેકઓફ સ્ટેપ્સની મહત્તમ સંખ્યા. મોટાભાગના કન્ફિગરેશનમાં મહત્તમ કૂલડાઉન મર્યાદા પહેલાં પહોંચી જાય છે, જે મહત્તમ કૂલડાઉન વધારવામાં આવે ત્યારે આને સુરક્ષા મર્યાદા બનાવે છે.",
"disableSessionStickiness": "સત્ર સ્ટીકીનેસ નિષ્ક્રિય કરો",
"disableSessionStickinessDesc": "રાઉન્ડ-રોબિન અને રેન્ડમ કોમ્બોઝ પ્રથમ-સંદેશ હેશ દ્વારા સમગ્ર વાતચીતને એક કનેક્શન પર પિન કરવાને બદલે દરેક વિનંતી પર અલગ કનેક્શન પર ફરે છે. મલ્ટિ-ટર્ન ચેટ્સ માટે પ્રોમ્પ્ટ-કેશ હિટ્સ સાચવવા માટે આને બંધ રાખો. પ્રતિ-કોમ્બો ઓવરરાઇડ્સ અગ્રતા લે છે.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "પ્રોમ્પ્ટ-કૅશ લોકાલિટી રૂટિંગ",
+ "promptCacheAffinityDesc": "હેલ્થ અને ક્વોટા ફેલઓવર જાળવી રાખીને મેળ ખાતી પ્રોમ્પ્ટ-કૅશ કી માટે સમાન પ્રોવાઇડર એકાઉન્ટને પ્રાથમિકતા આપો.",
+ "reasoningTokenBuffer": "રીઝનિંગ ટોકન બફર",
+ "reasoningTokenBufferDesc": "સંપૂર્ણ બફર જાણીતી આઉટપુટ મર્યાદામાં સમાતું હોય ત્યારે જ જાણીતા રીઝનિંગ મોડલ્સ માટે કોમ્બો રૂટિંગને max_tokens હેડરૂમ ઉમેરવાની મંજૂરી આપો.",
+ "zeroLatencyOptimizations": "શૂન્ય-લેટન્સી ઑપ્ટિમાઇઝેશન્સ",
+ "zeroLatencyOptimizationsDesc": "હેજિંગ, પ્રેડિક્ટિવ TTFT સ્કિપ્સ અને સક્રિય ફૉલબૅક કમ્પ્રેશન માટે સ્વૈચ્છિક રીતે સક્ષમ કરો. આ લેટન્સી સુવિધાઓને લક્ષ્યો સાથે હોડ કરતાં અથવા ફૉલબૅક રિક્વેસ્ટ્સ કમ્પ્રેસ કરતાં રોકવા માટે તેને બંધ રાખો.",
"credentialRedaction": "ઓળખપત્ર રેડેક્શન",
"credentialRedactionDesc": "પ્રદાતાઓ તરફ મોકલવામાં આવેલા સંદર્ભમાંથી અને પ્રતિસાદોમાંથી API કી, ટોકન્સ અને સિક્રેટ્સને રેડેક્ટ કરો.",
"enableCredentialRedaction": "ઓળખપત્ર રેડેક્શન સક્ષમ કરો",
"enableCredentialRedactionDesc": "સંદેશાઓ, ટૂલ કૉલ્સ અને પ્રતિસાદોમાંથી API કી, ટોકન્સ, પ્રાઇવેટ કી અને JWTs ને સાફ કરે છે.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "સ્વચાલિત સિંક અક્ષમ છે",
+ "pricingAutoSyncEnabled": "સ્વચાલિત સિંક સક્ષમ છે",
"modalityBridgeIntro": "મલ્ટિમોડલ સામગ્રી માત્ર-ટેક્સ્ટ મોડલ સુધી પહોંચે તે પહેલાં તેને ટેક્સ્ટમાં ફેરવો. વિઝન, ઑડિયો અને વિડિયો બ્રિજ ઉપલબ્ધ અને ગોઠવી શકાય તેવા છે.",
"modalityBridgeVisionTab": "દ્રષ્ટિ",
"modalityBridgeAudioTab": "ઓડિયો",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "આરોગ્ય",
"cliproxyapiPort": "પોર્ટ",
"qdrantHost": "હોસ્ટ",
- "qdrantCollection": "સંગ્રહ",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "સંગ્રહ"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "RTK એન્જિન",
+ "description": "ટૂલ આઉટપુટ, ટર્મિનલ લૉગ્સ અને બિલ્ડ પરિણામો માટે કમાન્ડ-અવેર કમ્પ્રેશન.",
+ "enabled": "સક્ષમ",
+ "intensity": "તીવ્રતા",
+ "intensityMinimal": "ન્યૂનતમ",
+ "intensityStandard": "માનક",
+ "intensityAggressive": "આક્રમક",
+ "toolResults": "ટૂલ પરિણામો",
+ "assistantMessages": "સહાયક સંદેશાઓ",
+ "codeBlocks": "કોડ બ્લૉક્સ",
"filterCatalog": "ફિલ્ટર કેટલોગ",
"filterCatalogDesc": "શ્રેણી દ્વારા ઉપલબ્ધ આઉટપુટ ફિલ્ટર્સ",
"guidedConfig": "રૂપરેખાંકન",
"guidedConfigDesc": "RTK તમારા ટર્મિનલ આઉટપુટને કેવી રીતે ફિલ્ટર કરે છે તે ગોઠવો",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "મહત્તમ લાઇનો",
+ "maxChars": "મહત્તમ અક્ષરો",
"deduplicateThreshold": "ડુપ્લિકેટ થ્રેશોલ્ડ",
"customFilters": "કસ્ટમ ફિલ્ટર્સ",
"detectedType": "શોધાયેલ પ્રકાર",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "નિષ્ફળતાઓ",
"rawOutputAlways": "હંમેશા",
"rawOutputMaxBytes": "કાચું આઉટપુટ મહત્તમ બાઇટ્સ",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "ફિલ્ટર પરીક્ષણ",
+ "pasteOutput": "ફિલ્ટરિંગનું પરીક્ષણ કરવા માટે ટૂલ આઉટપુટ અહીં પેસ્ટ કરો...",
"presetHigh": "આક્રમક",
"presetLow": "પ્રકાશ",
"presetMaxChars": "મહત્તમ આઉટપુટ અક્ષરો",
"presetMaxLines": "મહત્તમ આઉટપુટ રેખાઓ",
"presetMedium": "ધોરણ",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "ચલાવો",
+ "result": "પરિણામ",
+ "previewEmpty": "RTK આઉટપુટનું પૂર્વાવલોકન કરવા માટે નમૂનો ચલાવો.",
+ "detected": "શોધાયેલ",
"masterSwitchOffAlert": "ટોકન સેવર માસ્ટર સ્વિચ બંધ છે — જ્યાં સુધી તમે તેને એન્ડપોઇન્ટ પૃષ્ઠ પરથી ચાલુ નહીં કરો ત્યાં સુધી આ સેટિંગ્સ વિનંતીઓને અસર કરશે નહીં.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "ફિલ્ટર કરેલા ટોકન્સ",
+ "filtersActive": "સક્રિય ફિલ્ટર્સ",
+ "requests": "વિનંતીઓ",
+ "avgSavings": "સરેરાશ બચત",
"simpleMode": "સરળ",
"advancedMode": "ઉન્નત",
"searchFilters": "ફિલ્ટર્સ શોધો...",
@@ -8495,7 +8506,7 @@
"description": "સ્પષ્ટ પંક્તિ-ગણતરી માર્કર્સ સાથે સજાતીય JSON એરેનું લોસલેસ ટેબ્યુલર કોમ્પેક્શન."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "સત્ર ડિડુપ્લિકેશન",
"description": "પુનઃપ્રાપ્ત કરી શકાય તેવા કન્ટેન્ટ માર્કર્સ સાથે ક્રોસ-ટર્ન બ્લોક ડીડુપ્લિકેશન."
},
"ccr": {
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "કમ્પ્રેશન સંયોજનો",
+ "description": "વિવિધ રાઉટિંગ પરિસ્થિતિઓ માટે એન્જિનો કેવી રીતે સંયોજિત થાય છે તે નિર્ધારિત કરો.",
+ "createCombo": "કમ્પ્રેશન સંયોજન બનાવો",
+ "editCombo": "સંપાદિત કરો",
+ "deleteCombo": "કાઢી નાખો",
+ "deleteConfirm": "આ કમ્પ્રેશન સંયોજન કાઢી નાખવું છે?",
+ "pipeline": "પાઇપલાઇન",
+ "addStep": "પગલું ઉમેરો",
+ "removeStep": "દૂર કરો",
+ "name": "નામ",
+ "descriptionField": "વર્ણન",
+ "languagePacks": "ભાષા પૅક્સ",
+ "outputMode": "આઉટપુટ મોડ",
+ "assignToRouting": "રાઉટિંગ સંયોજનોને સોંપો",
+ "noAssignments": "કોઈ રાઉટિંગ સંયોજન ઉપલબ્ધ નથી",
+ "default": "ડિફૉલ્ટ",
+ "setAsDefault": "ડિફૉલ્ટ તરીકે સેટ કરો",
+ "save": "સાચવો",
+ "cancel": "રદ કરો",
+ "enabled": "સક્ષમ",
"loading": "લોડ થઈ રહ્યું છે…",
"hubTitle": "કમ્પ્રેશન હબ",
"hubDescription": "વૈશ્વિક સ્તરે કઈ કમ્પ્રેશન પ્રોફાઇલ ચાલશે તે પસંદ કરો.",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "હાલમાં ફક્ત Claude (Anthropic) માટે જ ઉપલબ્ધ છે. તે એક ડેલિગેટેડ મોડ છે: પ્રદાતા સર્વર-સાઇડ પર જૂના ટૂલ-વપરાશ બ્લોક્સને સાફ કરે છે — અમે સંદેશ ફરીથી લખતા નથી. તે અન્ય પ્રદાતાઓને અસર કરતું નથી.",
"namedCombos": "નામવાળા કોમ્બોઝ",
"namedCombosDescription": "વિવિધ પાઇપલાઇન્સ સાચવો અને તેમને ચોક્કસ રાઉટીંગ કોમ્બોઝમાં સોંપો.",
+ "activeProfileMasterSwitchOffWarning": "મુખ્ય \"પ્રોમ્પ્ટ કમ્પ્રેશન\" સ્વિચ ચાલુ ન થાય ત્યાં સુધી નીચેની સક્રિય પ્રોફાઇલ ચાલશે નહીં.",
+ "activeProfileMasterSwitchOffCta": "તેને સેટિંગ્સમાં ચાલુ કરો",
"comboNamePlaceholder": "કોમ્બો નામ",
"descriptionPlaceholder": "વર્ણન",
"nameRequired": "સાચવતા પહેલા કોમ્બો નામ દાખલ કરો.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "ભાષા પેક: {packs}",
"dragToReorder": "પગલાંનો ક્રમ બદલવા માટે ખેંચો",
"engine": "એન્જિન",
- "intensity": "તીવ્રતા",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "તીવ્રતા"
},
"compressionStudio": {
"noRun": "કોઈ કમ્પ્રેશન રન ઉપલબ્ધ નથી.",
@@ -8701,7 +8712,7 @@
"run": "ચલાવો",
"laneRejected": "નકારવામાં આવ્યું: {reason}",
"error": "ભૂલ",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "સંયુક્ત પાઇપલાઇન પૂર્વાવલોકન નિષ્ફળ થયું: {reason}",
"combinedFlow": "સંયુક્ત પ્રવાહ",
"eachLayer": "દરેક સ્તર અલગથી",
"diff": "તફાવત",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "એન્જિન સક્ષમ કરો",
"enableDescription": "સ્ટેકમાં છેલ્લે ચાલે છે (RTK/Caveman લખાણ સાફ કરે તે પછી, OmniGlyph બાકીના ભાગને છબીઓમાં રૂપાંતરિત કરે છે) અને omniglyph મોડ દ્વારા સ્વતંત્ર રીતે પણ ચાલે છે. આ એક પૂર્વાવલોકન છે અને એન્ડ-ટુ-એન્ડ માન્યતા પૂર્ણ ન થાય ત્યાં સુધી ડિફૉલ્ટ રૂપે બંધ રહે છે.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "કમ્પ્રેશન પ્રોફાઇલ",
+ "profileDescription": "પ્રોફાઇલ મહત્તમ મર્યાદા છે, લઘુત્તમ નહીં: વધુ કડક પ્રોફાઇલને દરેક પગલાના ઓવરરાઇડ દ્વારા ફરીથી શિથિલ કરી શકાતી નથી. આ કોડબેઝ પર માપવામાં આવ્યું છે: coding-safe અથવા balanced સાથે, જે સત્રમાં હજી સુધી ઇતિહાસ સંચિત થયો નથી તેમાં કંઈપણ કમ્પ્રેસ થતું નથી, કારણ કે બંને લઘુત્તમ અક્ષરોની મર્યાદા વધારે છે અને સિસ્ટમ પ્રોમ્પ્ટ, ટૂલ સ્કીમા અને ટૂલ પરિણામોને મૂળ સ્વરૂપમાં રાખે છે.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "આક્રમક (ડિફૉલ્ટ)",
+ "description": "પ્રકાશિત રસીદો દ્વારા માપવામાં આવેલી નીતિ. સિસ્ટમ પ્રોમ્પ્ટ, ટૂલ દસ્તાવેજીકરણ અને સઘન ઇતિહાસને ઇમેજમાં ફેરવે છે."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "સંતુલિત",
+ "description": "લાઇવ સ્થિતિને મૂળ સ્વરૂપમાં રાખે છે અને છેલ્લા 8 વાર્તાલાપ ચક્રોને સુરક્ષિત કરે છે; ફક્ત જૂના પૂર્ણ થયેલા ઇતિહાસને સંકુચિત કરે છે."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "કોડિંગ-સુરક્ષિત",
+ "description": "અધિકાર, ટૂલ સ્કીમા અને લાઇવ ટૂલ આઉટપુટને મૂળ સ્વરૂપમાં રાખે છે અને છેલ્લા 12 વાર્તાલાપ ચક્રોને સુરક્ષિત કરે છે. સત્રમાં ઇતિહાસ સંચિત ન થાય ત્યાં સુધી કંઈપણ કમ્પ્રેસ કરતું નથી."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "પરિવર્તન વિના પસાર કરવું",
+ "description": "કોઈ ફેરફાર કર્યા વિના રૂટ કરે છે. એન્જિનને અવગણવામાં આવે છે અને વિનંતી અસ્પર્શિત રીતે ફોરવર્ડ થાય છે."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph કમ્પ્રેશન પ્રોફાઇલ પસંદ કરો",
"saved": "સાચવ્યું.",
"saveFailed": "સાચવી શકાયું નથી.",
"enableAria": "OmniGlyph એન્જિન સક્ષમ કરો",
@@ -8869,7 +8880,7 @@
"providerExposureHint": "જ્યારે સક્ષમ હોય, ત્યારે શોધાયેલા મોડેલ્સ સમગ્ર OmniRoute માં પ્રોવાઇડર સિલેક્ટર્સમાં દેખાય છે.",
"providerExposureUpdateFailed": "અપડેટ કરવામાં નિષ્ફળ (HTTP {status})",
"providerExposureNetworkFailed": "નેટવર્ક ભૂલ — પ્રોવાઇડર એક્સપોઝર સેટિંગ અપડેટ કરી શકાયું નથી",
- "webUi": "9Router Web UI",
+ "webUi": "9Router વેબ UI",
"openNewTab": "નવા ટૅબમાં ખોલો",
"filterLogs": "લૉગ્સ ફિલ્ટર કરો…",
"resume": "ફરી શરૂ કરો",
@@ -8897,38 +8908,38 @@
"save": "સાચવો"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Caveman એન્જિન",
+ "description": "નિયમ-આધારિત સંદેશ કમ્પ્રેશન, ભાષા પૅક, વિશ્લેષણ અને આઉટપુટ મોડ નિયંત્રણો.",
"advancedConfig": "અદ્યતન રૂપરેખાંકન",
"advancedConfigDesc": "ફાઇન-ટ્યુન કમ્પ્રેશન વર્તન",
"aggressiveSettings": "આક્રમક સેટિંગ્સ",
"aggressiveSettingsDesc": "સંભવિત ગુણવત્તાયુક્ત ટ્રેડ-ઓફ સાથે મહત્તમ સંકોચન",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "વિનંતીઓ",
+ "tokensSaved": "બચાવેલા ટોકન્સ",
+ "savingsPercent": "બચત %",
+ "avgLatency": "સરેરાશ વિલંબ",
+ "languagePacks": "ભાષા પૅક",
+ "languagePacksDesc": "ચોક્કસ ભાષાઓ માટે કમ્પ્રેશન નિયમો સક્ષમ કરો.",
"labelAutoTrigger": "જ્યારે સંદર્ભ ઓળંગાઈ જાય ત્યારે સ્વતઃ સંકુચિત કરો",
"labelCompressionRate": "કમ્પ્રેશન તાકાત",
"labelMaxTokens": "સંદેશ દીઠ લક્ષ્ય ટોકન્સ",
"labelMinLength": "ન્યૂનતમ સંદેશ લંબાઈ",
"labelMinSavings": "સેવ કરવા માટે ન્યૂનતમ ટોકન્સ",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "સક્ષમ",
+ "autoDetect": "ભાષા આપમેળે ઓળખો",
+ "rulesCount": "{count} નિયમો",
"inputCompressionTitle": "ઇનપુટ કમ્પ્રેશન",
"inputCompressionDesc": "ટૂંકા શબ્દો સાથે ચેટ ઇતિહાસ ફરીથી લખો. ઇનપુટ ટોકન્સમાં ~50% ઘટાડો કરે છે.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "કમ્પ્રેશન વિશ્લેષણ",
+ "noAnalytics": "હજી સુધી કોઈ કમ્પ્રેશન વિશ્લેષણ ઉપલબ્ધ નથી.",
"masterDisabledWarning": "Token Saver માસ્ટર સ્વિચ OFF છે — જ્યાં સુધી તમે તેને કમ્પ્રેશન સેટિંગ્સમાંથી ચાલુ ન કરો અથવા તેને અહીં બદલો નહીં ત્યાં સુધી આ સેટિંગ્સ વિનંતીઓને અસર કરશે નહીં.",
"outputMode": "આઉટપુટ મોડ",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "આઉટપુટ મોડ",
"quickSettings": "ઝડપી સેટિંગ્સ",
"quickSettingsDesc": "પ્રારંભ કરવા માટે મૂળભૂત કમ્પ્રેશન સેટિંગ્સ",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "સ્વતઃ-સ્પષ્ટતા બાયપાસ",
+ "bypassConditions": "બાયપાસની શરતો",
"bypassConditionsList": "સુરક્ષા, ઉલટાવી શકાય તેવું, સ્પષ્ટતા, ઓર્ડર-સંવેદનશીલ",
"simpleMode": "સરળ",
"advancedMode": "ઉન્નત",
@@ -8940,52 +8951,52 @@
"ultraSettings": "અલ્ટ્રા સેટિંગ્સ",
"ultraSettingsDesc": "SLM-સંચાલિત સિમેન્ટીક કમ્પ્રેશન",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "સંક્ષિપ્ત જવાબ આપો. તકનીકી શબ્દો, કોડ, ભૂલો, URLs અને ઓળખચિહ્નો જાળવી રાખો.",
+ "full": "ટૂંકો અને સંક્ષિપ્ત જવાબ આપો. તમામ તકનીકી સાર જાળવી રાખો.",
+ "ultra": "સામાન્ય ટેક. સંક્ષેપો સાથે અતિ સંક્ષિપ્ત જવાબ આપો. ચોક્કસ પ્રતીકો જાળવો."
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "અનુવાદક",
+ "metaTitle": "અનુવાદક પ્લેગ્રાઉન્ડ | OmniRoute",
+ "metaDescription": "પ્રદાતાઓ વચ્ચેના API ફોર્મેટ અનુવાદોને ડિબગ, ટેસ્ટ અને વિઝ્યુઅલાઇઝ કરો",
+ "playgroundTitle": "અનુવાદક પ્લેગ્રાઉન્ડ",
+ "playground": "પ્લેગ્રાઉન્ડ",
+ "realtime": "રીઅલ-ટાઇમ અનુવાદ પ્રવૃત્તિ",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "ટેસ્ટ બેન્ચ",
+ "liveMonitor": "લાઇવ મોનિટર",
+ "modeDescriptionPlayground": "કોઈપણ API રિક્વેસ્ટ બોડી પેસ્ટ કરો અને જુઓ કે OmniRoute તેને પ્રદાતા ફોર્મેટ્સ વચ્ચે કેવી રીતે અનુવાદિત કરે છે (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
+ "modeDescriptionChatTester": "OmniRoute મારફતે વાસ્તવિક ચેટ રિક્વેસ્ટ મોકલો અને સંપૂર્ણ રાઉન્ડ-ટ્રિપ તપાસો: ઇનપુટ, અનુવાદિત રિક્વેસ્ટ, પ્રદાતાનો પ્રતિસાદ અને અનુવાદિત આઉટપુટ.",
+ "modeDescriptionTestBench": "પૂર્વનિર્ધારિત પરિસ્થિતિઓ ચલાવો અને પ્રદાતાઓ તથા મોડલ્સ વચ્ચે સુસંગતતા સરખાવો.",
+ "modeDescriptionLiveMonitor": "રિક્વેસ્ટ્સ OmniRoute મારફતે પસાર થાય ત્યારે અનુવાદ ઇવેન્ટ્સ રીઅલ ટાઇમમાં જુઓ.",
+ "modeDescriptionFallback": "OmniRoute પ્રદાતાઓ વચ્ચે API રિક્વેસ્ટ્સનું કેવી રીતે અનુવાદ કરે છે તેને ડિબગ, ટેસ્ટ અને વિઝ્યુઅલાઇઝ કરો.",
+ "recentTranslations": "તાજેતરના અનુવાદો",
+ "noTranslations": "હજુ કોઈ અનુવાદ નથી",
+ "source": "સ્રોત",
+ "target": "લક્ષ્ય",
+ "time": "સમય",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "લેટન્સી",
+ "totalTranslations": "કુલ અનુવાદો",
+ "successful": "સફળ",
+ "errors": "ભૂલો",
+ "avgLatency": "સરેરાશ લેટન્સી",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "લાઇવ — ઑટો-રિફ્રેશ થઈ રહ્યું છે",
+ "paused": "વિરામિત",
+ "eventsAppearHint": "રિક્વેસ્ટ્સ OmniRoute મારફતે પસાર થાય ત્યારે અનુવાદ ઇવેન્ટ્સ અહીં દેખાય છે. ઇવેન્ટ્સ જનરેટ કરવા આમાંથી કોઈપણ પદ્ધતિ વાપરો:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "બાહ્ય API કૉલ્સ",
+ "ideCliIntegrations": "IDE/CLI ઇન્ટિગ્રેશન્સ",
+ "inMemoryNote": "નોંધ: ઇવેન્ટ્સ ઇન-મેમરી સંગ્રહાય છે અને સર્વર રિસ્ટાર્ટ થતાં રીસેટ થાય છે.",
"ok": "OK",
"errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "formatConverter": "ફોર્મેટ કન્વર્ટર",
+ "formatConverterDescription": "JSON રિક્વેસ્ટ બોડી પેસ્ટ અથવા ટાઇપ કરો. અનુવાદક સ્રોત ફોર્મેટ ઑટો-ડિટેક્ટ કરીને તેને લક્ષ્ય ફોર્મેટમાં કન્વર્ટ કરશે. OmniRoute ફોર્મેટ્સ વચ્ચે રિક્વેસ્ટ્સનું કેવી રીતે અનુવાદ કરે છે તે ડિબગ કરવા આનો ઉપયોગ કરો (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (મધ્યવર્તી) → {target}",
"translationPathDirect": "{source} → {target} (સીધા અનુવાદક)",
"translationPathPassthrough": "સમાન ફોર્મેટ — અનુવાદની જરૂર નથી",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "કેટલાક ફોર્મેટ જોડીઓ (ક્લૉડ →જેમિની) પાસે સીધા અનુવાદકો છે જે OpenAI હબને બાયપાસ કરે છે, વધુ સચોટ આઉટપુટ ઉત્પન્ન કરે છે.",
"featureImageMapping": "છબી કદ મેપિંગ",
"featureImageMappingDesc": "API ફોર્મેટ્સ (દા.ત., OpenAI વિગત સ્તર → જેમિની પરિમાણો) વચ્ચે છબી પરિમાણ સંમેલનોનો અનુવાદ કરે છે.",
- "input": "Input",
- "output": "Output",
+ "input": "ઇનપુટ",
+ "output": "આઉટપુટ",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "ફોર્મેટ્સ અદલબદલ કરો",
+ "translateAction": "અનુવાદ કરો",
+ "clear": "સાફ કરો",
+ "inputPlaceholder": "અહીં રિક્વેસ્ટ બોડી પેસ્ટ કરો અથવા નીચેથી ટેમ્પ્લેટ પસંદ કરો...",
+ "exampleTemplates": "ઉદાહરણ ટેમ્પ્લેટ્સ",
+ "exampleTemplatesHint": "— લોડ કરવા ક્લિક કરો",
+ "templateLoadHint": "ટેમ્પલેટ વિનંતીને {format} ફોર્મેટમાં લોડ કરે છે. અલગ ફોર્મેટમાં લોડ કરવા માટે સ્રોત ફોર્મેટ બદલો.",
+ "compatibilityTester": "સુસંગતતા પરીક્ષક",
+ "compatibilityReport": "સુસંગતતા અહેવાલ",
+ "testBenchDescription": "અનુવાદ અને પ્રદાતા સુસંગતતા ચકાસવા માટે પૂર્વનિર્ધારિત પરિદૃશ્યો (સરળ ચેટ, ટૂલ કૉલિંગ વગેરે) ચલાવો. સ્રોત ફોર્મેટ અને લક્ષ્ય પ્રદાતા પસંદ કરો, પછી સુસંગતતાની ટકાવારી જોવા માટે તમામ પરીક્ષણો ચલાવો. વિવિધ પ્રદાતાઓમાં કઈ સુવિધાઓ કાર્ય કરે છે તે જાણવા માટે આનો ઉપયોગ કરો.",
+ "targetProvider": "લક્ષ્ય પ્રદાતા",
+ "runAllTests": "તમામ પરીક્ષણો ચલાવો",
+ "runTest": "પરીક્ષણ ચલાવો",
+ "reRun": "ફરી ચલાવો",
+ "running": "ચાલી રહ્યું છે...",
+ "passed": "સફળ",
+ "failed": "નિષ્ફળ",
+ "passedIconLabel": "✅ સફળ",
+ "chunks": "ભાગો",
+ "scenarioSimpleChat": "સરળ ચેટ",
+ "scenarioToolCalling": "ટૂલ કૉલિંગ",
+ "scenarioMultiTurn": "બહુ-ચરણીય",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "સિસ્ટમ પ્રોમ્પ્ટ",
+ "scenarioStreaming": "સ્ટ્રીમિંગ",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "સરળ ચેટ",
+ "tool-calling": "ટૂલ કૉલિંગ",
+ "multi-turn": "બહુ-ચરણીય",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "સિસ્ટમ પ્રોમ્પ્ટ",
+ "streaming": "સ્ટ્રીમિંગ",
"vision": "દ્રષ્ટિ",
"schema-coercion": "સ્કીમા બળજબરી"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "મૂળભૂત ટેક્સ્ટ સંદેશ",
+ "tool-calling": "ફંક્શન/ટૂલનું આહ્વાન",
+ "multi-turn": "ઇતિહાસ સાથેની વાતચીત",
+ "thinking": "વિસ્તૃત વિચાર / તર્ક",
+ "system-prompt": "જટિલ સિસ્ટમ સૂચનાઓ",
+ "streaming": "SSE સ્ટ્રીમિંગ વિનંતી",
"vision": "ઇમેજ ઇનપુટ સાથે મલ્ટિમોડલ વિનંતી",
"schema-coercion": "સ્ટ્રક્ચર્ડ-આઉટપુટ / JSON સ્કીમા અમલીકરણ"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "તમે એક મદદરૂપ સહાયક છો.",
+ "userGreeting": "નમસ્તે! આજે તમે કેમ છો?"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "São Pauloમાં હવામાન કેવું છે?",
+ "toolDescription": "કોઈ સ્થાન માટે વર્તમાન હવામાન મેળવો",
+ "cityNameDescription": "શહેરનું નામ"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "તમે એક કોડિંગ સહાયક છો.",
+ "userInitial": "Pythonમાં એરેને સૉર્ટ કરવા માટે એક ફંક્શન લખો.",
+ "assistantExample": "અહીં એક સરળ સૉર્ટ ફંક્શન છે: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "હવે તેને ઉતરતા ક્રમમાં સૉર્ટ કરે તેવું બનાવો."
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "પ્રથમ 100 અવિભાજ્ય સંખ્યાઓનો સરવાળો કેટલો છે?"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "તમે વિતરિત સિસ્ટમોમાં નિષ્ણાત વરિષ્ઠ સોફ્ટવેર એન્જિનિયર છો. ઉદ્યોગની શ્રેષ્ઠ પદ્ધતિઓનો ઉપયોગ કરીને પ્રશ્નોના સંક્ષિપ્ત જવાબ આપો. જ્યારે સુસંગત હોય ત્યારે હંમેશાં કોડનાં ઉદાહરણો આપો. તમારા જવાબોને markdownનો ઉપયોગ કરીને ફોર્મેટ કરો.",
+ "question": "હું સર્કિટ બ્રેકર પેટર્ન કેવી રીતે અમલમાં મૂકું?"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "ચિત્રકામ શીખતા રોબોટ વિશે મને એક ટૂંકી વાર્તા કહો."
},
"vision": {
"system": "તમે એક સહાયક છો જે ચિત્રોનું ચોક્કસ વર્ણન કરે છે.",
@@ -9093,12 +9104,12 @@
"cityDescription": "ક્વેરી કરવા માટેનું શહેર, દા.ત. 'ટોક્યો' અથવા 'ન્યૂયોર્ક'."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "OpenAI સુસંગત",
+ "anthropicCompatibleLabel": "Anthropic સુસંગત",
+ "noTemplateForFormat": "આ ફોર્મેટ માટે કોઈ ટેમ્પ્લેટ નથી",
+ "translationFailed": "અનુવાદ નિષ્ફળ ગયો: {error}",
+ "pipelineDebugger": "પાઇપલાઇન ડિબગર",
+ "translationPipeline": "અનુવાદ પાઇપલાઇન",
"loading": "લોડ થઈ રહ્યું છે…",
"compressionOriginal": "મૂળ",
"compressionCompressed": "કમ્પ્રેસ્ડ",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "પાઇપલાઇન પગલાં",
"copyIntermediateJson": "મધ્યવર્તી JSON કૉપિ કરો",
"copyOutputJson": "આઉટપુટ JSON કૉપિ કરો",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "પાઇપલાઇન દૃશ્યીકરણ",
+ "pipelineVisualizationHint": "તમારી વિનંતી શોધ → અનુવાદ → પ્રદાતા કૉલમાંથી કેવી રીતે પસાર થાય છે તે જોવા માટે સંદેશ મોકલો.",
+ "chatTesterDescription": "ચોક્કસ ક્લાયન્ટ ફોર્મેટમાં સંદેશાઓ મોકલો અને અનુવાદ પાઇપલાઇનના દરેક પગલાની તપાસ કરો.",
+ "chatTesterFlow": "ક્લાયન્ટ વિનંતી → ફોર્મેટ શોધ → OpenAI મધ્યવર્તી → પ્રદાતા ફોર્મેટ → પ્રતિસાદ",
+ "clickStepToInspect": "તે તબક્કાનો ડેટા તપાસવા માટે કોઈપણ પગલા પર ક્લિક કરો.",
+ "clientFormat": "ક્લાયન્ટ ફોર્મેટ",
+ "provider": "પ્રદાતા",
+ "modelPlaceholder": "મોડલનું નામ પસંદ કરો અથવા લખો...",
+ "sendMessageToSeePipeline": "અનુવાદ પાઇપલાઇન જોવા માટે સંદેશ મોકલો",
+ "chatMessageHintPrefix": "તમારો સંદેશ આ રીતે ફોર્મેટ કરવામાં આવશે:",
+ "chatMessageHintSuffix": "વિનંતી, પાઇપલાઇન દ્વારા અનુવાદિત કરવામાં આવશે અને પસંદ કરેલા પ્રદાતાને મોકલવામાં આવશે.",
+ "youWithFormat": "તમે ({format})",
+ "assistant": "સહાયક",
+ "typeMessage": "સંદેશ લખો...",
+ "send": "મોકલો",
+ "clientRequest": "ક્લાયન્ટ વિનંતી",
+ "clientRequestDescription": "તમારો ક્લાયન્ટ જે રીતે મોકલે તે મુજબની વિનંતિ બોડી",
+ "formatDetected": "શોધાયેલ ફોર્મેટ",
+ "formatDetectedDescription": "OmniRoute વિનંતીની રચનામાંથી API ફોર્મેટ આપમેળે શોધે છે",
+ "openaiIntermediate": "OpenAI મધ્યવર્તી",
+ "openaiIntermediateDescription": "બધા ફોર્મેટને પહેલાં OpenAI ફોર્મેટમાં સામાન્યકૃત કરવામાં આવે છે (સાર્વત્રિક સેતુ)",
+ "providerFormat": "પ્રદાતા ફોર્મેટ",
+ "providerFormatDescription": "OpenAI ફોર્મેટનું પ્રદાતાના મૂળ ફોર્મેટમાં ભાષાંતર કરવામાં આવે છે",
+ "providerResponse": "પ્રદાતાનો પ્રતિસાદ",
+ "providerResponseRawDescription": "પ્રદાતા API તરફથી મળેલો અપરિષ્કૃત પ્રતિસાદ",
+ "providerResponseSseDescription": "પ્રદાતા API તરફથી મળેલો અપરિષ્કૃત SSE સ્ટ્રીમ",
+ "unexpectedError": "એક અનપેક્ષિત ભૂલ આવી",
+ "error": "ભૂલ",
+ "errorMessage": "ભૂલ: {message}",
+ "requestFailed": "વિનંતી નિષ્ફળ ગઈ",
+ "noTextExtracted": "(કોઈ ટેક્સ્ટ કાઢવામાં આવ્યું નથી)",
"liveMonitorMemoryNote": "ઇવેન્ટ્સ મેમરીમાં સંગ્રહિત થાય છે અને પુનઃપ્રારંભ પર ખોવાઈ જાય છે.",
"liveMonitorMemoryCapNote": "મહત્તમ 200 ઇવેન્ટ જાળવી રાખી છે.",
"eventSourcesLabel": "ઇવેન્ટ સ્ત્રોતો:",
"eventSourceTranslatorPage": "• અનુવાદક પૃષ્ઠ (ચેટ ટેસ્ટર, ટેસ્ટ બેન્ચ)",
"eventSourceMainPipeline": "• મુખ્ય વિનંતી પાઇપલાઇન (CLI/IDE/API ટ્રાફિક)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "OmniRoute મારફતે API કૉલ્સ પસાર થતાં અનુવાદ ઇવેન્ટ્સ બતાવે છે. ઇવેન્ટ્સ ઇન-મેમરી બફરમાંથી આવે છે (પુનઃપ્રારંભ થવા પર રીસેટ થાય છે). ઉપયોગ કરો",
+ "liveMonitorDescriptionSuffix": ", અથવા ઇવેન્ટ્સ જનરેટ કરવા માટે બાહ્ય API કૉલ્સ કરો.",
"streamTransformer": "સ્ટ્રીમ ટ્રાન્સફોર્મર",
"modeDescriptionStreamTransformer": "પ્રતિસાદ ટ્રાન્સફોર્મર દ્વારા ચેટ પૂર્ણતા SSE સ્ટ્રીમ્સ ચલાવો.",
"streamTransformerTitle": "પ્રતિભાવો સ્ટ્રીમ ટ્રાન્સફોર્મર",
@@ -9172,12 +9183,12 @@
"scenarioVision": "દ્રષ્ટિ (છબીની સમજ)",
"scenarioSchemaCoercion": "સ્કીમા બળજબરી (સંરચિત આઉટપુટ)",
"techniques": "તકનીકો:",
- "friendlyTitle": "Translator",
+ "friendlyTitle": "અનુવાદક",
"friendlySubtitle": "કોડ ફરીથી લખ્યા વિના — કોઈપણ પ્રદાતા સાથે તમારી હાલની ઍપનો ઉપયોગ કરો.",
"conceptHeadline": "તમારી ઍપ એક API ની \"ભાષા\" બોલે છે. Translator તેને અન્ય પ્રદાતાનો ઉપયોગ કરવા માટે રૂપાંતરિત કરે છે.",
"conceptDiagramAppLabel": "તમારી ઍપ",
"conceptDiagramSourceLabel": "સ્રોત ફોર્મેટ",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (હબ)",
"conceptDiagramTargetLabel": "લક્ષ્ય પ્રદાતા",
"conceptDiagramExampleApp": "દા.ત. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "JSON વિનંતી પેસ્ટ કરો; ફોર્મેટ આપમેળે ઓળખાઈ જાય છે.",
"advancedPipelineTitle": "OpenAI મધ્યવર્તી પાઇપલાઇન",
"advancedPipelineSubtitle": "દરેક અનુવાદ પગલું વિઝ્યુઅલાઈઝ કરો (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "સ્ટ્રીમ ટ્રાન્સફોર્મર (ચેટ → રિસ્પોન્સિસ SSE)",
"advancedStreamTransformSubtitle": "Chat Completions SSE ને Responses API માં રૂપાંતરિત કરે છે.",
"advancedTestBenchTitle": "Test Bench (8 પરિદ્રશ્યો)",
"advancedTestBenchSubtitle": "બધા પરિદ્રશ્યો ચલાવે છે અને પાસ/ફેલ + સુસંગતતા % રિપોર્ટ કરે છે.",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "સ્ટ્રીમ રૂપાંતરિત કરવામાં નિષ્ફળ"
},
"usage": {
- "title": "Usage",
+ "title": "વપરાશ",
"grokExtraUsageCredits": "અતિરિક્ત ઉપયોગ ક્રેડિટ",
"grokAutoTopUp": "ઓટો ટોપ-અપ",
"grokAutoTopUpUnavailable": "ઉપલબ્ધ નથી",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "બાકી",
"kiloPassRenews": "{count} દિવસમાં રિન્યૂ થાય છે",
"kiloPassUsageLabel": "આ મહિનાનો વપરાશ",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "વધારાના વપરાશ ક્રેડિટ્સ",
+ "kimiExtraUsage": "વધારાનો વપરાશ",
+ "kimiExtraUsageEnabled": "સક્ષમ",
+ "kimiExtraUsageDisabled": "અક્ષમ",
+ "kimiExtraUsageFrozen": "સ્થગિત",
+ "kimiExtraUsageUnavailable": "અનુપલબ્ધ",
+ "kimiMonthlyUsed": "આ મહિને વપરાયેલ",
+ "kimiMonthlyLimit": "માસિક મર્યાદા",
+ "kimiMonthlyLimitUnlimited": "અમર્યાદિત",
+ "kimiAdditionalCredits": "વધારાના ક્રેડિટ્સ",
+ "loggerTab": "લૉગર",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "બજેટ વ્યવસ્થાપન",
+ "budgetSaved": "બજેટ મર્યાદાઓ સાચવવામાં આવી",
+ "budgetSaveFailed": "બજેટ સાચવવામાં નિષ્ફળતા",
+ "loadingBudgetData": "બજેટ ડેટા લોડ થઈ રહ્યો છે...",
+ "noApiKeysTitle": "કોઈ API કી નથી",
+ "noApiKeysDescription": "બજેટ મર્યાદાઓ સેટ કરવા માટે પહેલાં API કી ઉમેરો.",
+ "apiKey": "API કી",
+ "todaysSpend": "આજનો ખર્ચ",
+ "thisMonth": "આ મહિનો",
+ "setLimits": "મર્યાદાઓ સેટ કરો",
+ "dailyLimitUsd": "દૈનિક મર્યાદા (USD)",
+ "monthlyLimitUsd": "માસિક મર્યાદા (USD)",
+ "warningThresholdPercent": "ચેતવણીની સીમા (%)",
+ "dailyLimitPlaceholder": "દા.ત. 5.00",
+ "monthlyLimitPlaceholder": "દા.ત. 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "મર્યાદાઓ સાચવો",
+ "budgetOk": "બજેટ બરાબર છે — {remaining} બાકી",
+ "budgetExceeded": "બજેટ વટાવી ગયું છે — વિનંતીઓ અવરોધિત થઈ શકે છે",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "હજુ સુધી કોઈ ડેટા નથી",
+ "latency": "વિલંબતા",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "પ્રોમ્પ્ટ કૅશ",
+ "systemHealth": "સિસ્ટમની સ્થિતિ",
+ "entries": "એન્ટ્રીઓ",
+ "activeCount": "{count} સક્રિય",
+ "openCircuitBreakersDetected": "ઓપન સર્કિટ બ્રેકર્સ મળ્યાં",
+ "hitRate": "હિટ રેટ",
+ "hitsMisses": "હિટ્સ / મિસિસ",
+ "circuitBreakers": "સર્કિટ બ્રેકર્સ",
+ "lockedIPs": "લૉક કરેલા IPs",
+ "lockoutsAutoRefreshHint": "મૉડલ-દીઠ રેટ લિમિટ લૉક્સ • ઑટો-રિફ્રેશ 10s",
+ "lockedCount": "{count, plural, one {# લૉક કરેલું} other {# લૉક કરેલાં}}",
+ "timeLeft": "{time} બાકી",
+ "howItWorks": "તે કેવી રીતે કાર્ય કરે છે",
+ "howItWorksSubtitle": "મૂલ્યાંકનો તમારા LLM પ્રતિસાદોને કેવી રીતે માન્ય કરે છે તે જાણો",
+ "define": "વ્યાખ્યાયિત કરો",
+ "defineStepDescription": "contains, regex અથવા exact match જેવી વ્યૂહરચનાઓનો ઉપયોગ કરીને ઇનપુટ પ્રોમ્પ્ટ્સ અને અપેક્ષિત આઉટપુટ માપદંડો સાથે ટેસ્ટ કેસ બનાવો.",
+ "run": "ચલાવો",
+ "runStepDescription": "OmniRoute મારફતે તમારા LLM એન્ડપોઇન્ટ્સ પર ટેસ્ટ કેસ ચલાવો. દરેક કેસ વાસ્તવિક API વિનંતી તરીકે મોકલવામાં આવે છે.",
+ "evaluate": "મૂલ્યાંકન કરો",
+ "evaluateStepDescription": "પ્રતિસાદોની અપેક્ષિત માપદંડો સાથે તુલના કરવામાં આવે છે. વિલંબતા મેટ્રિક્સ અને વિગતવાર પ્રતિસાદ સાથે દરેક કેસનું પાસ/ફેલ જુઓ.",
"evalsStrategyContainsLabel": "સમાવે છે",
"evalsStrategyExactLabel": "ચોક્કસ મેળ",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "રેગ્યુલર એક્સપ્રેશન",
"evalsStrategyCustomLabel": "કસ્ટમ લોજિક",
"evalsStrategyContainsDescription": "તપાસે છે કે LLM આઉટપુટ અપેક્ષિત સબસ્ટ્રિંગ ધરાવે છે કે નહીં.",
"evalsStrategyExactDescription": "તપાસે છે કે LLM આઉટપુટ અપેક્ષિત મૂલ્ય સાથે બરાબર મેળ ખાય છે કે નહીં.",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "પાસ રેટ",
"historyColumnAvgLatencyMs": "સરેરાશ લેટન્સી",
"historyColumnCreatedAt": "એક્ઝિક્યુટ કરેલ",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "મૂલ્યાંકન સ્યુટ્સ",
+ "evalSuitesHint": "ટેસ્ટ કેસ જોવા માટે કોઈ સ્યુટ પર ક્લિક કરો, પછી તમારા LLM એન્ડપોઇન્ટ્સનું મૂલ્યાંકન કરવા તેને ચલાવો",
+ "evalsLoading": "મૂલ્યાંકન સ્યુટ્સ લોડ થઈ રહ્યાં છે...",
+ "noEvalSuitesFound": "કોઈ મૂલ્યાંકન સ્યુટ મળ્યાં નથી",
+ "noEvalSuitesDescription": "મૂલ્યાંકન સ્યુટ્સને API મારફતે અથવા કોડમાં વ્યાખ્યાયિત કરી શકાય છે. તેઓ contains, regex, exact match અને કસ્ટમ ફંક્શન્સ જેવી વ્યૂહરચનાઓનો ઉપયોગ કરીને મૉડલના આઉટપુટને અપેક્ષિત પરિણામો સામે ચકાસે છે.",
+ "columnCase": "કેસ",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "વિલંબતા",
+ "columnDetails": "વિગતો",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "વ્યૂહરચના",
+ "columnExpected": "અપેક્ષિત",
+ "statsSuites": "સ્યુટ્સ",
+ "statsTestCases": "ટેસ્ટ કેસ",
+ "statsModels": "મૉડલ્સ",
+ "statsCoverage": "કવરેજ",
+ "statsStrategiesCount": "{count} વ્યૂહરચનાઓ",
+ "evaluationStrategies": "મૂલ્યાંકન વ્યૂહરચનાઓ",
+ "modelsUnderTest": "પરીક્ષણ હેઠળનાં મૉડલ્સ",
+ "searchSuitesPlaceholder": "સ્યુટ્સ શોધો...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# કેસ} other {# કેસ}}",
+ "runEval": "મૂલ્યાંકન ચલાવો",
"runAllSuites": "બધા ચલાવો",
"runAllRunning": "બધું ચાલી રહ્યું છે...",
"runAllProgress": "{current}/{total} ચાલી રહ્યું છે: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# સ્યુટ નિષ્ફળ} other {# સ્યુટ્સ નિષ્ફળ}}",
"runAllCompleted": "{suites} સ્યુટ્સ ચલાવ્યા — {passed} પાસ થયા, {failed} નિષ્ફળ",
"runAllCompletedWithFailures": "{completed} સ્યુટ્સ ચલાવ્યા; {failedSuites} પૂર્ણ કરવામાં નિષ્ફળ",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "{current}/{total} ચાલી રહ્યું છે...",
+ "passRate": "સફળતા દર",
+ "summaryBreakdown": "{passed} સફળ · {failed} નિષ્ફળ · કુલ {total}",
+ "passedIconLabel": "✅ સફળ",
+ "failedIconLabel": "❌ નિષ્ફળ",
"resultPassed": "પાસ થયા",
"resultFailed": "નિષ્ફળ",
"expandResult": "પરિણામ વિગતો વિસ્તૃત કરો",
"collapseResult": "પરિણામની વિગતો સંકુચિત કરો",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "આ સમાવે છે: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "અપેક્ષિત: \"{expected}\"",
"expectedOutputLabel": "અપેક્ષિત આઉટપુટ",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "હજુ સુધી કોઈ પરિણામ નથી",
+ "testCasesCount": "ટેસ્ટ કેસ ({count})",
+ "noTestCasesDefined": "કોઈ ટેસ્ટ કેસ નિર્ધારિત નથી",
+ "runEvalHint": "તમારા LLM એન્ડપોઇન્ટ સામે બધા કેસ ચલાવવા માટે \"મૂલ્યાંકન ચલાવો\" પર ક્લિક કરો. દરેક ટેસ્ટ OmniRoute મારફતે વાસ્તવિક વિનંતી મોકલે છે.",
+ "notifyNoTestCases": "આ સ્યુટ માટે કોઈ ટેસ્ટ કેસ નિર્ધારિત નથી",
+ "notifyAllCasesPassed": "બધા {total} કેસ સફળ થયા ✅",
+ "notifySomeCasesFailed": "{passed}/{total} સફળ, {failed} નિષ્ફળ",
+ "notifyEvalRunFailed": "મૂલ્યાંકન ચલાવવું નિષ્ફળ ગયું",
+ "notifyEvalTitle": "મૂલ્યાંકન: {name}",
+ "modelEvals": "મોડેલ મૂલ્યાંકનો",
+ "evalsHeroDescription": "પૂર્વનિર્ધારિત મૂલ્યાંકન સ્યુટ્સ ચલાવીને તમારા LLM એન્ડપોઇન્ટ્સનું પરીક્ષણ અને માન્યકરણ કરો. દરેક સ્યુટમાં એવા ટેસ્ટ કેસ હોય છે જે OmniRoute મારફતે વાસ્તવિક પ્રોમ્પ્ટ્સ મોકલે છે અને પ્રતિસાદોની અપેક્ષિત માપદંડો સાથે તુલના કરે છે — જેથી તમને રિગ્રેશન્સ શોધવામાં, મોડેલોની તુલના કરવામાં અને વિવિધ પ્રદાતાઓમાં પ્રતિસાદની ગુણવત્તા સુનિશ્ચિત કરવામાં મદદ મળે.",
+ "qualityValidation": "ગુણવત્તા માન્યકરણ",
+ "modelComparison": "મોડેલ તુલના",
+ "regressionDetection": "રિગ્રેશન શોધ",
+ "latencyBenchmarks": "લેટન્સી બેન્ચમાર્ક્સ",
+ "modelLockouts": "મોડેલ લૉકઆઉટ્સ",
+ "noLockouts": "હાલમાં કોઈ મોડેલ લૉક નથી",
+ "activeSessions": "સક્રિય સેશન્સ",
+ "noSessions": "કોઈ સક્રિય સેશન નથી",
+ "sessionsHint": "પ્રોક્સી મારફતે વિનંતીઓ વહેતી થતાં સેશન્સ દેખાય છે",
+ "sessionsTrackedHint": "વિનંતી ફિંગરપ્રિન્ટિંગ દ્વારા ટ્રૅક કરેલ • દર 5 સેકન્ડે આપમેળે રિફ્રેશ",
+ "session": "સેશન",
+ "age": "સમયગાળો",
+ "requests": "વિનંતીઓ",
+ "connection": "કનેક્શન",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "પ્રદાતા મર્યાદાઓ",
+ "noProviders": "કોઈ પ્રદાતા કનેક્ટેડ નથી",
+ "connectProvidersForQuota": "તમારી API ક્વોટા મર્યાદાઓ અને વપરાશને ટ્રૅક કરવા માટે OAuth વડે પ્રદાતાઓ સાથે કનેક્ટ કરો.",
+ "accountsCount": "{count, plural, one {# એકાઉન્ટ} other {# એકાઉન્ટ્સ}}",
+ "filteredFromCount": "({count}માંથી ફિલ્ટર કરેલ)",
+ "autoRefresh": "આપમેળે રિફ્રેશ",
+ "refreshAll": "બધું રિફ્રેશ કરો",
+ "loadingQuotas": "લોડ થઈ રહ્યું છે...",
"showMoreQuotas": "વધુ {count} બતાવો",
"showLessQuotas": "ઓછું બતાવો",
"hideQuotaRow": "આ ક્વોટા રો છુપાવો",
"showQuotaRow": "આ ક્વોટા રો બતાવો",
"hiddenQuotaRowsLabel": "છુપાયેલ:",
"quotaVisibilityUpdateFailed": "ક્વોટા દૃશ્યતા અપડેટ કરવામાં નિષ્ફળ",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
+ "account": "એકાઉન્ટ",
+ "modelQuotas": "મોડેલ ક્વોટા",
+ "lastUsed": "છેલ્લે રિફ્રેશ કરેલું",
+ "actions": "ક્રિયાઓ",
+ "refreshQuota": "ક્વોટા રિફ્રેશ કરો",
+ "today": "આજે",
+ "tomorrow": "આવતીકાલે",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "{duration}માં",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "મૂળ પ્લાન: {plan}",
+ "noPlanFromProvider": "પ્રદાતા તરફથી કોઈ પ્લાન નથી",
"tokenExpiresIn": "ટોકન {time} માં સમાપ્ત થાય છે",
"tokenExpired": "ટોકન સમાપ્ત થઈ ગયું",
- "noQuotaData": "No quota data",
+ "noQuotaData": "ક્વોટાનો કોઈ ડેટા નથી",
"cardExpand": "વિસ્તૃત કરો",
"cardCollapse": "સંકોચો",
"moreQuotas": "+{count} વધુ",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "જૂથબદ્ધ ન કરેલું",
+ "viewFlat": "સપાટ",
+ "viewByEnvironment": "પર્યાવરણ પ્રમાણે",
+ "noQuotaDataAvailable": "ક્વોટાનો કોઈ ડેટા ઉપલબ્ધ નથી",
+ "noAccountsForTierFilter": "ટિયર ફિલ્ટર માટે કોઈ એકાઉન્ટ મળ્યાં નથી",
+ "tierAll": "બધા",
+ "tierEnterprise": "એન્ટરપ્રાઇઝ",
+ "tierTeam": "ટીમ",
+ "tierBusiness": "બિઝનેસ",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "મફત",
"tierLite": "લાઇટ",
- "tierUnknown": "Unknown",
+ "tierUnknown": "અજ્ઞાત",
"statTotal": "કુલ",
"statCritical": "ક્રિટિકલ",
"statAlert": "એલર્ટ",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "ક્રેડિટ રીડીમ કરો",
"resetCreditRedeemed": "રીસેટ રીડીમ કરવામાં આવ્યું",
"resetCreditRedeemFailed": "રીસેટ ક્રેડિટ રીડીમ કરવામાં નિષ્ફળ",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "સ્યુટ સાચવવામાં નિષ્ફળતા",
"clone": "ક્લોન",
"exportSuite": "નિકાસ કરો",
"importSuite": "આયાત કરો",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "અમાન્ય eval સ્યુટ JSON",
"suiteBuilderCloneSuffix": "નકલ",
"suiteBuilderImportedSuite": "આયાત કરેલ સ્યુટ",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "સ્કોરકાર્ડ",
+ "evalApiKey": "API કી",
+ "scorecardPassRate": "પાસ દર",
+ "targetTypeModel": "મોડેલ",
+ "actualOutputLabel": "વાસ્તવિક આઉટપુટ",
+ "evalTargetHint": "મૂલ્યાંકન કરવા માટે મોડેલ અથવા કોમ્બો પસંદ કરો.",
+ "suiteBuilderDeleted": "સ્યુટ સફળતાપૂર્વક કાઢી નાખવામાં આવ્યું",
+ "suiteBuilderCaseCardHint": "ઇનપુટ પ્રોમ્પ્ટ અને અપેક્ષિત આઉટપુટના માપદંડ નિર્ધારિત કરો.",
+ "nextResetUtc": "આગામી રીસેટ (UTC)",
+ "scorecardHint": "તમામ મૂલ્યાંકન સ્યુટમાં એકત્રિત પાસ દરો.",
+ "suiteLatestRunsHint": "આ સ્યુટ માટેના સૌથી તાજેતરના મૂલ્યાંકન રન.",
+ "saving": "સાચવી રહ્યું છે",
+ "suiteBuilderCaseModelLabel": "મોડેલ (વૈકલ્પિક)",
+ "evalControlsTitle": "મૂલ્યાંકન નિયંત્રણો",
+ "suiteBuilderEditTitle": "મૂલ્યાંકન સ્યુટ સંપાદિત કરો",
+ "suiteBuilderCaseStrategyLabel": "માન્યતા વ્યૂહરચના",
+ "notifySelectDifferentCompareTarget": "કૃપા કરીને સરખામણી માટે અલગ લક્ષ્ય પસંદ કરો",
+ "recentRunsHint": "સૌથી તાજેતરના મૂલ્યાંકન રન બતાવવામાં આવી રહ્યા છે. વિગતવાર પરિણામો જોવા માટે કોઈ રન પર ક્લિક કરો.",
+ "evalCompareHint": "વૈકલ્પિક રીતે પરિણામોની સરખામણી બીજા લક્ષ્ય સાથે કરો.",
+ "suiteBuilderCaseInvalid": "આ કેસમાં માન્યતા સંબંધિત ભૂલો છે. સાચવતા પહેલાં કૃપા કરીને તેને સુધારો.",
+ "historyEmpty": "હજુ સુધી કોઈ મૂલ્યાંકન ઇતિહાસ નથી",
+ "suiteBuilderUpdated": "સ્યુટ સફળતાપૂર્વક અપડેટ થયું",
+ "resetInterval": "રીસેટ અંતરાલ",
+ "suiteBuilderCreateTitle": "મૂલ્યાંકન સ્યુટ બનાવો",
+ "activePeriodSpend": "સક્રિય અવધિનો ખર્ચ",
+ "evalApiKeyHint": "મૂલ્યાંકન વિનંતીઓ માટે કઈ API કી વાપરવી તે પસંદ કરો.",
+ "evalCompareOptional": "સરખામણી કરો (વૈકલ્પિક)",
+ "suiteBuilderDeleteFailed": "સ્યુટ કાઢી નાખવામાં નિષ્ફળતા",
+ "suiteBuilderCaseSystemPromptPlaceholder": "વૈકલ્પિક સિસ્ટમ સૂચનાઓ...",
+ "scorecardCases": "કેસ",
+ "runCompletedWithScore": "મૂલ્યાંકન પૂર્ણ થયું — {score}% પાસ દર",
+ "suiteBuilderCustomBadge": "કસ્ટમ",
+ "targetSuiteDefaults": "સ્યુટના ડિફૉલ્ટ",
+ "suiteBuilderDeleteConfirm": "શું તમે ખરેખર આ સ્યુટ કાઢી નાખવા માંગો છો? આ ક્રિયા પાછી ફેરવી શકાતી નથી.",
+ "suiteBuilderNameLabel": "સ્યુટનું નામ",
+ "scorecardSuites": "સ્યુટ્સ",
+ "evalCompareTarget": "સરખામણી લક્ષ્ય",
+ "suiteBuilderCaseModelPlaceholder": "દા.ત. gpt-4o-mini",
+ "evalControlsHint": "તમારું મૂલ્યાંકન લક્ષ્ય અને API કી ગોઠવો, પછી મોડેલની ગુણવત્તા ચકાસવા માટે સ્યુટ્સ ચલાવો.",
+ "recentRunsTitle": "તાજેતરના રન",
+ "suiteBuilderCaseSystemPromptLabel": "સિસ્ટમ પ્રોમ્પ્ટ",
+ "suiteBuilderCaseExpectedPlaceholder": "દા.ત. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "દા.ત. ડેફ ફિબોનાકી",
"suiteBuilderCaseExpectedPlaceholderExact": "ચોક્કસ અપેક્ષિત પ્રતિસાદ પેસ્ટ કરો",
"suiteBuilderCaseExpectedPlaceholderRegex": "દા.ત. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "સ્લેશને વીંટાળ્યા વિના JavaScript રેગ્યુલર એક્સપ્રેશનનો ઉપયોગ કરો.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "દા.ત. કોડિંગ ગુણવત્તા સ્યુટ",
+ "suiteBuilderAddCase": "કેસ ઉમેરો",
+ "cancel": "રદ કરો",
+ "evalTarget": "લક્ષ્ય",
+ "suiteBuilderCaseNameLabel": "કેસનું નામ",
+ "weeklyLimitUsd": "સાપ્તાહિક મર્યાદા (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "દા.ત. Pythonમાં fibonacci ફંક્શન લખો",
+ "suiteBuilderNameRequired": "સ્યુટનું નામ આવશ્યક છે",
+ "suiteBuilderCaseUserPromptLabel": "વપરાશકર્તા પ્રોમ્પ્ટ",
+ "daily": "દૈનિક",
+ "resultErrorLabel": "ભૂલ",
+ "suiteBuilderBuiltInBadge": "બિલ્ટ-ઇન",
+ "suiteBuilderCaseCardTitle": "ટેસ્ટ કેસ",
"suiteBuilderDuplicateCase": "ડુપ્લિકેટ",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "દા.ત. 50.00",
+ "suiteBuilderCaseTagsHint": "ટેસ્ટ કેસોને ગોઠવવા માટે અલ્પવિરામથી અલગ કરેલા ટૅગ્સ.",
+ "notifyEvalRunFailedWithReason": "મૂલ્યાંકન નિષ્ફળ ગયું: {reason}",
+ "weekly": "સાપ્તાહિક",
+ "runEvalRunning": "મૂલ્યાંકન ચાલી રહ્યું છે...",
+ "delete": "કાઢી નાખો",
+ "resetTimeUtc": "રીસેટ સમય (UTC)",
+ "evalApiKeyAuto": "સ્વચાલિત (ડિફૉલ્ટનો ઉપયોગ કરો)",
+ "suiteBuilderDescriptionPlaceholder": "આ સ્યુટ શું પરીક્ષણ કરે છે તેનું વૈકલ્પિક વર્ણન...",
+ "targetComparisonTitle": "લક્ષ્ય તુલના",
+ "save": "સાચવો",
+ "suiteBuilderCreated": "સ્યુટ સફળતાપૂર્વક બનાવવામાં આવ્યો",
+ "suiteLatestRuns": "તાજેતરના રન",
+ "suiteBuilderCaseExpectedLabel": "અપેક્ષિત મૂલ્ય",
+ "historyLatency": "વિલંબતા",
+ "suiteBuilderCaseTagsPlaceholder": "દા.ત. coding, python",
+ "targetTypeCombo": "કોમ્બો",
+ "scorecardPassed": "પાસ થયું",
+ "suiteBuilderCaseTagsLabel": "ટૅગ્સ",
+ "suiteBuilderNewSuite": "નવો સ્યુટ",
+ "notifyEvalLoadFailed": "મૂલ્યાંકન ડેટા લોડ કરવામાં નિષ્ફળતા",
+ "notConfigured": "ગોઠવેલ નથી",
+ "suiteBuilderCaseNamePlaceholder": "દા.ત. Python fibonacci test",
+ "intervalLabel": "અંતરાલ",
+ "suiteBuilderCreateAction": "સ્યુટ બનાવો",
+ "suiteBuilderCasesHint": "દરેક કેસ એક પ્રોમ્પ્ટ મોકલે છે અને પ્રતિસાદને માન્ય કરે છે.",
+ "suiteBuilderUpdatedAt": "અપડેટ થયું",
+ "errorBadge": "ભૂલ",
+ "suiteBuilderCasesTitle": "ટેસ્ટ કેસો",
+ "edit": "ફેરફાર કરો",
+ "monthly": "માસિક",
+ "suiteBuilderCasesRequired": "ઓછામાં ઓછો એક ટેસ્ટ કેસ આવશ્યક છે",
+ "weeklyLimitSummary": "સાપ્તાહિક બજેટ મર્યાદાનો સારાંશ",
+ "suiteBuilderDescriptionLabel": "વર્ણન",
+ "targetComparisonHint": "લક્ષ્યો વચ્ચેના મૂલ્યાંકન પરિણામોની બાજુ-બાજુ તુલના.",
+ "compareCompletedWithScore": "તુલના પૂર્ણ થઈ — {score}% પાસ દર",
+ "staleQuotaTooltip": "છેલ્લું રિફ્રેશ નિષ્ફળ ગયું — કૅશ કરેલો ડેટા બતાવવામાં આવી રહ્યો છે",
"quotaThresholdLabel": "મિનિટ બાકી",
"quotaCutoffsColumnHelp": "જ્યારે બાકીનો ક્વોટા આ ટકાવારી અથવા તેનાથી નીચે આવે ત્યારે વિનંતીઓ રોકો.",
"quotaCutoffsButtonDefault": "ડિફૉલ્ટ",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "કનેક્ટેડ એકાઉન્ટ્સમાં લાઇવ સ્થિતિ"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "અધિકૃતતાની રાહ જોઈ રહ્યું છે",
+ "verificationUrl": "ચકાસણી URL",
+ "yourCode": "તમારો કોડ",
+ "remoteAccess": "રિમોટ ઍક્સેસ:",
+ "connectedSuccess": "સફળતાપૂર્વક કનેક્ટ થયું!",
+ "connectionFailed": "કનેક્શન નિષ્ફળ ગયું",
+ "chooseAuthMethod": "તમારી પ્રમાણીકરણ પદ્ધતિ પસંદ કરો:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Google એકાઉન્ટ",
+ "githubAccount": "GitHub એકાઉન્ટ",
+ "importToken": "ટોકન આયાત કરો",
+ "pasteToken": "Kiro IDE માંથી રિફ્રેશ ટોકન પેસ્ટ કરો.",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "ટોકન આપમેળે શોધી રહ્યું છે...",
+ "readingFromCache": "AWS SSO કૅશમાંથી વાંચી રહ્યું છે",
+ "readingFromCursor": "Cursor IDE ડેટાબેઝમાંથી વાંચી રહ્યું છે",
+ "initializing": "પ્રારંભ કરી રહ્યું છે...",
+ "pricingConfig": "કિંમત ગોઠવણી",
+ "loadingPricing": "કિંમતનો ડેટા લોડ થઈ રહ્યો છે...",
+ "pricingRatesFormat": "કિંમત દરોનું ફોર્મેટ",
+ "noPricingData": "કિંમતનો કોઈ ડેટા ઉપલબ્ધ નથી",
+ "noModelsFound": "કોઈ મોડેલ મળ્યાં નથી"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "બધા પ્રદાતાઓ",
+ "allModels": "બધા મોડેલ",
+ "allAccounts": "બધા એકાઉન્ટ",
+ "allApiKeys": "બધી API કી",
+ "allTypes": "બધા પ્રકાર",
+ "allLevels": "બધા સ્તરો",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "લૉગ લોડ થઈ રહ્યા છે...",
+ "loadingProxyLogs": "પ્રોક્સી લૉગ લોડ થઈ રહ્યા છે...",
+ "noLogEntries": "કોઈ લૉગ એન્ટ્રી મળી નથી",
+ "noPayloadData": "આ લૉગ એન્ટ્રી માટે કોઈ પેલોડ ડેટા ઉપલબ્ધ નથી.",
+ "proxyEvent": "પ્રોક્સી ઇવેન્ટ",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "સ્તર",
+ "directNative": "સીધું (મૂળ)",
+ "combo": "સંયોજન",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "વપરાશની ઝાંખી",
+ "outputTokens": "આઉટપુટ ટોકન",
+ "totalCost": "કુલ ખર્ચ",
+ "usageByModel": "મોડેલ પ્રમાણે વપરાશ",
+ "usageByAccount": "એકાઉન્ટ પ્રમાણે વપરાશ",
+ "failedToLoad": "વપરાશના આંકડા લોડ કરવામાં નિષ્ફળતા.",
+ "tokenHealth": "ટોકન આરોગ્ય",
+ "totalOAuth": "કુલ OAuth",
+ "healthy": "સ્વસ્થ",
+ "warning": "ચેતવણી",
+ "errored": "ભૂલગ્રસ્ત",
+ "lastCheck": "છેલ્લી તપાસ",
+ "noData": "કોઈ ડેટા નથી",
+ "share": "શેર કરો",
+ "unableToLoad": "સિસ્ટમ મેટ્રિક્સ લોડ કરવામાં અસમર્થ",
+ "product": "ઉત્પાદન",
+ "resources": "સંસાધનો",
+ "company": "કંપની",
"tokenHealthTooltips": {
"allHealthy": "બધા ટોકન સ્વસ્થ છે",
"needsAttention": "કેટલાક ટોકનને ધ્યાનની જરૂર છે",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "હજી સુધી કોઈ ખાતા-વિશિષ્ટ ઉપયોગ નોંધાયો નથી. અહીં ડેટા જોવા માટે OAuth ખાતા ઉપયોગ કરીને વિનંતીઓ કરો."
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "સ્વાગત છે",
+ "signIn": "સાઇન ઇન કરો",
+ "enterPassword": "ચાલુ રાખવા માટે તમારો પાસવર્ડ દાખલ કરો",
+ "password": "પાસવર્ડ",
+ "unifiedProxy": "એકીકૃત AI API પ્રોક્સી",
+ "unifiedAiApiProxy": "એકીકૃત AI API પ્રોક્સી",
+ "unifiedAiApiProxyDesc": "એક જ એન્ડપોઇન્ટ દ્વારા અનેક AI પ્રદાતાઓને વિનંતીઓ મોકલો. લોડ બેલેન્સિંગ, ફેલઓવર અને ઉપયોગ ટ્રેકિંગ બિલ્ટ-ઇન છે.",
+ "passwordNotEnabled": "પાસવર્ડ સુરક્ષા સક્ષમ નથી",
+ "loading": "લોડ થઈ રહ્યું છે...",
+ "invalidPassword": "અમાન્ય પાસવર્ડ",
+ "errorOccurredRetry": "એક ભૂલ આવી. કૃપા કરીને ફરી પ્રયાસ કરો.",
+ "configureInstance": "ચાલો તમારું OmniRoute ઇન્સ્ટન્સ ગોઠવીએ",
+ "runOnboardingWizard": "તમારો પાસવર્ડ સેટ કરવા અને તમારા પ્રથમ AI પ્રદાતાને કનેક્ટ કરવા માટે ઑનબોર્ડિંગ વિઝાર્ડ ચલાવો.",
+ "startOnboarding": "ઑનબોર્ડિંગ શરૂ કરો",
+ "secureYourInstance": "તમારું ઇન્સ્ટન્સ સુરક્ષિત કરો",
+ "setPasswordDescription": "તમારા ડેશબોર્ડને સુરક્ષિત રાખવા અને તમારા API એન્ડપોઇન્ટ્સને અનધિકૃત ઍક્સેસથી બચાવવા માટે પાસવર્ડ સેટ કરો.",
+ "configurePassword": "પાસવર્ડ ગોઠવો",
+ "continue": "ચાલુ રાખો",
+ "windowWillClose": "આ વિન્ડો આપમેળે બંધ થઈ જશે...",
+ "closeTabNow": "હવે તમે આ ટૅબ બંધ કરી શકો છો.",
+ "copyUrlManual": "કૃપા કરીને ઍડ્રેસ બારમાંથી URL કૉપિ કરીને એપ્લિકેશનમાં પેસ્ટ કરો.",
+ "accessDeniedDescription": "તમને આ સંસાધન ઍક્સેસ કરવાની પરવાનગી નથી. તમારી API કી તપાસો અથવા વ્યવસ્થાપકનો સંપર્ક કરો.",
+ "goToDashboard": "ડેશબોર્ડ પર જાઓ",
+ "featureMultiProviderTitle": "બહુ-પ્રદાતા",
+ "featureMultiProviderDesc": "OpenAI, Anthropic, Google અને વધુ",
+ "featureLoadBalancingTitle": "લોડ બેલેન્સિંગ",
+ "featureLoadBalancingDesc": "વિનંતીઓનું બુદ્ધિપૂર્વક વિતરણ કરો",
+ "featureUsageTrackingTitle": "ઉપયોગ ટ્રેકિંગ",
+ "featureUsageTrackingDesc": "ખર્ચ અને ટોકનનું નિરીક્ષણ કરો",
+ "resetPassword": "પાસવર્ડ રીસેટ કરો",
+ "resetDescription": "તમારા ડેશબોર્ડની ઍક્સેસ પુનઃપ્રાપ્ત કરવા માટેની પદ્ધતિ પસંદ કરો",
+ "stopServer": "OmniRoute સર્વરને બંધ કરો",
+ "processing": "પ્રક્રિયા ચાલુ છે...",
+ "pleaseWait": "અમે અધિકૃતતા પૂર્ણ કરીએ ત્યાં સુધી કૃપા કરીને રાહ જુઓ.",
+ "authSuccess": "અધિકૃતતા સફળ થઈ!",
+ "copyUrl": "આ URL કૉપિ કરો",
+ "accessDenied": "ઍક્સેસ નકારવામાં આવી",
+ "methodCliTitle": "પદ્ધતિ 1: CLI રીસેટ",
+ "methodCliDescription": "OmniRoute જે સર્વર પર ચાલી રહ્યું છે ત્યાં નીચેનો કમાન્ડ ચલાવો:",
+ "methodCliHint": "આ તમને નવો પાસવર્ડ સેટ કરવા માટે કહેશે. પહેલાં સર્વર બંધ કરવું આવશ્યક છે.",
+ "methodManualTitle": "પદ્ધતિ 2: મેન્યુઅલ રીસેટ",
+ "methodManualDescription": "ડેટાબેઝમાંથી પાસવર્ડ કાઢી નાખો અને સ્ટાર્ટઅપ વખતે નવો પાસવર્ડ સેટ કરો:",
+ "setPasswordInYour": "તમારી",
+ "fileLabelSuffix": "ફાઇલમાં નવો પાસવર્ડ સેટ કરો:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "કાઢી નાખો",
+ "orRemovePasswordHashField": "અથવા passwordHash ફીલ્ડ દૂર કરો",
+ "restartServerWithNewPassword": "સર્વરને ફરી શરૂ કરો - તે નવા પાસવર્ડનો ઉપયોગ કરશે",
+ "backToLogin": "લૉગિન પર પાછા જાઓ",
+ "forgotPassword": "પાસવર્ડ ભૂલી ગયા છો?",
"continueWithOidc": "OIDC સાથે ચાલુ રાખો",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "ડિફૉલ્ટ પાસવર્ડ: CHANGEME (સિવાય કે INITIAL_PASSWORD સેટ કરેલો હોય)",
+ "Authorization": "અધિકૃતતા",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "અધિકૃતતાની રાહ જોવાઈ રહી છે...",
+ "waitingForGoogleAuthorization": "Google અધિકૃતતાની રાહ જોવાઈ રહી છે...",
+ "waitingForOpenAIAuthorization": "OpenAI અધિકૃતતાની રાહ જોવાઈ રહી છે...",
+ "waitingForAntigravityAuthorization": "Antigravity અધિકૃતતાની રાહ જોવાઈ રહી છે...",
+ "waitingForQoderAuthorization": "Qoder અધિકૃતતાની રાહ જોવાઈ રહી છે...",
+ "exchangingCodeForTokens": "ટોકન માટે કોડનું વિનિમય થઈ રહ્યું છે...",
+ "nodeIncompatibleTitle": "અસંગત Node.js વર્ઝન",
+ "nodeIncompatibleDesc": "તમે Node.js {version} ચલાવી રહ્યા છો, જે OmniRouteની સમર્થિત સુરક્ષિત રનટાઇમ નીતિની બહાર છે. પૅચ કરેલું Node.js 20.x અથવા 22.x LTS રિલીઝ વાપરો.",
+ "nodeIncompatibleFixLabel": "ઉકેલ: પૅચ કરેલું Node.js 22 LTS રિલીઝ ઇન્સ્ટૉલ કરો",
+ "nodeIncompatibleHint": "OmniRoute માટે Node.js 22.22.2+ (22.x LTS) અથવા 24.0.0+ (24.x LTS) જરૂરી છે. Node 24 LTSની ભલામણ કરવામાં આવે છે.",
"resetViaAppDataTitle": "એપ ડેટા દ્વારા પુનઃસેટ કરો",
"resetViaAppDataDescription": "એપ ડેટા ડિરેક્ટરીમાંથી સેટિંગ્સ ફાઇલને કાઢી નાખો જેથી તમારું પાસવર્ડ પુનઃસેટ કરી શકાય:",
"quitDesktopApp": "ઓમ્નીરૂટ ડેસ્કટોપ એપ્લિકેશન સંપૂર્ણપણે બંધ કરો",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "હોમ પર જાઓ",
+ "toggleMenu": "મેનુ ટૉગલ કરો",
+ "featuresLink": "સુવિધાઓ",
+ "docsLink": "દસ્તાવેજીકરણ",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "versionLive": "v1.0 હવે લાઇવ છે",
+ "oneEndpoint": "એક એન્ડપોઇન્ટ",
+ "allProviders": "તમામ AI પ્રદાતાઓ માટે",
+ "heroDescription": "વેબ ડૅશબોર્ડ સાથે AI એન્ડપોઇન્ટ પ્રૉક્સી - CLIProxyAPI નું JavaScript પોર્ટ. Claude Code, OpenAI Codex, Cline, RooCode અને અન્ય CLI ટૂલ્સ સાથે સરળતાથી કાર્ય કરે છે.",
+ "getStarted": "શરૂ કરો",
+ "viewOnGithub": "GitHub પર જુઓ",
+ "powerfulFeatures": "શક્તિશાળી સુવિધાઓ",
+ "featuresSubtitle": "તમારા AI ઇન્ફ્રાસ્ટ્રક્ચરને એક જ સ્થળેથી સંચાલિત કરવા માટે જરૂરી બધું, મોટા પાયે ઉપયોગ માટે બનાવેલું.",
+ "featureUnifiedEndpointTitle": "એકીકૃત એન્ડપોઇન્ટ",
+ "featureUnifiedEndpointDesc": "એક જ પ્રમાણભૂત API URL દ્વારા તમામ પ્રદાતાઓને ઍક્સેસ કરો.",
+ "featureEasySetupTitle": "સરળ સેટઅપ",
+ "featureEasySetupDesc": "npx કમાન્ડ વડે મિનિટોમાં શરૂ કરો.",
+ "featureModelFallbackTitle": "મૉડલ ફૉલબૅક",
+ "featureModelFallbackDesc": "નિષ્ફળતા અથવા વધુ વિલંબ થાય ત્યારે આપમેળે પ્રદાતા બદલો.",
+ "featureUsageTrackingTitle": "વપરાશ ટ્રૅકિંગ",
+ "featureUsageTrackingDesc": "તમામ મૉડલ્સ માટે વિગતવાર વિશ્લેષણ અને ખર્ચનું નિરીક્ષણ.",
+ "featureOAuthApiKeysTitle": "OAuth અને API કીઝ",
+ "featureOAuthApiKeysDesc": "એક જ વૉલ્ટમાં ઓળખપત્રો સુરક્ષિત રીતે સંચાલિત કરો.",
+ "featureCloudSyncTitle": "ક્લાઉડ સિંક",
+ "featureCloudSyncDesc": "તમારા કન્ફિગરેશન્સને ઉપકરણો વચ્ચે તરત જ સિંક કરો.",
+ "featureCliSupportTitle": "CLI સપોર્ટ",
+ "featureCliSupportDesc": "Claude Code, Codex, Cline, Cursor અને અન્ય ટૂલ્સ સાથે કાર્ય કરે છે.",
+ "featureDashboardTitle": "ડૅશબોર્ડ",
+ "featureDashboardDesc": "રીઅલ-ટાઇમ ટ્રાફિક વિશ્લેષણ માટે વિઝ્યુઅલ ડૅશબોર્ડ.",
+ "howItWorks": "OmniRoute કેવી રીતે કાર્ય કરે છે",
+ "howItWorksDescription": "તમારી ઍપ્લિકેશનમાંથી ડેટા અમારા બુદ્ધિશાળી રૂટિંગ સ્તર મારફતે કાર્ય માટેના શ્રેષ્ઠ પ્રદાતા સુધી સરળતાથી પહોંચે છે.",
+ "howItWorksStep1Title": "1. CLI અને SDKs",
+ "howItWorksStep1Description": "તમારી વિનંતીઓ તમારા મનપસંદ ટૂલ્સ અથવા અમારા એકીકૃત SDKમાંથી શરૂ થાય છે. ફક્ત બેઝ URL બદલો.",
+ "howItWorksStep2Title": "2. OmniRoute હબ",
+ "howItWorksStep2Description": "અમારું એન્જિન પ્રૉમ્પ્ટનું વિશ્લેષણ કરે છે, પ્રદાતાની સ્થિતિ તપાસે છે અને સૌથી ઓછા વિલંબ અથવા ખર્ચ માટે રૂટ કરે છે.",
+ "howItWorksStep3Title": "3. AI પ્રદાતાઓ",
+ "howItWorksStep3Description": "વિનંતી OpenAI, Anthropic, Gemini અથવા અન્ય પ્રદાતાઓ દ્વારા તરત જ પૂર્ણ કરવામાં આવે છે.",
+ "getStartedIn30Seconds": "30 સેકન્ડમાં શરૂ કરો",
+ "getStartedDescription": "OmniRoute ઇન્સ્ટૉલ કરો, વેબ ડૅશબોર્ડ દ્વારા તમારા પ્રદાતાઓને કન્ફિગર કરો અને AI વિનંતીઓ રૂટ કરવાનું શરૂ કરો.",
+ "installOmniRoute": "OmniRoute ઇન્સ્ટૉલ કરો",
+ "installStepDescription": "સર્વર તરત શરૂ કરવા માટે npx કમાન્ડ ચલાવો",
+ "openDashboard": "ડૅશબોર્ડ ખોલો",
+ "openDashboardStepDescription": "વેબ ઇન્ટરફેસ દ્વારા પ્રદાતાઓ અને API કીઝ કન્ફિગર કરો",
+ "routeRequests": "વિનંતીઓ રૂટ કરો",
+ "routeRequestsStepDescription": "તમારા CLI ટૂલ્સને {endpoint} તરફ નિર્દેશિત કરો",
+ "terminal": "ટર્મિનલ",
+ "copy": "કૉપિ કરો",
+ "copied": "✓ કૉપિ થયું",
+ "startingOmniRoute": "OmniRoute શરૂ થઈ રહ્યું છે...",
+ "serverRunningOnLabel": "સર્વર અહીં ચાલી રહ્યું છે",
+ "dashboardLabel": "ડૅશબોર્ડ",
+ "readyToRoute": "રૂટ કરવા માટે તૈયાર! ✓",
+ "configureProvidersNote": "📝 ડૅશબોર્ડમાં પ્રદાતાઓ ગોઠવો અથવા એન્વાયરમેન્ટ વેરિએબલ્સનો ઉપયોગ કરો",
+ "dataLocation": "ડેટાનું સ્થાન:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "ઉત્પાદન",
+ "dashboardLink": "ડૅશબોર્ડ",
+ "changelog": "ફેરફારોનો ઇતિહાસ",
+ "resources": "સંસાધનો",
+ "documentation": "દસ્તાવેજીકરણ",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "કાનૂની",
+ "mitLicense": "MIT લાઇસન્સ",
+ "footerTagline": "AI જનરેશન માટે એકીકૃત એન્ડપોઇન્ટ. તમારા AI પ્રદાતાઓને સરળતાથી કનેક્ટ, રૂટ અને મેનેજ કરો.",
+ "copyright": "© {year} OmniRoute. બધા અધિકારો સુરક્ષિત.",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "ઇન્ટરેક્ટિવ ડાયાગ્રામ ડેસ્કટૉપ પર દૃશ્યમાન છે",
+ "ctaTitle": "તમારા AI ઇન્ફ્રાસ્ટ્રક્ચરને સરળ બનાવવા માટે તૈયાર છો?",
+ "ctaDescription": "OmniRoute વડે પોતાના AI ઇન્ટિગ્રેશન્સને સુવ્યવસ્થિત કરતા ડેવલપર્સ સાથે જોડાઓ. ઓપન સોર્સ અને શરૂઆત કરવા માટે મફત.",
+ "startFree": "મફતમાં શરૂ કરો",
+ "readDocumentation": "દસ્તાવેજીકરણ વાંચો",
"company": "કંપની",
"pricing": "ભાવનામા",
"apiReference": "એપીઆઈ સંદર્ભ",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "સમુદાય ચર્ચાઓ"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "દસ્તાવેજીકરણ",
+ "quickStart": "ઝડપી શરૂઆત",
"deploymentGuides": "જમાવટ માર્ગદર્શિકાઓ",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "સુવિધાઓ",
+ "supportedProviders": "સમર્થિત પ્રદાતાઓ",
+ "supportedProvidersToc": "પ્રદાતાઓ",
+ "commonUseCases": "સામાન્ય ઉપયોગના કિસ્સાઓ",
+ "clientCompatibility": "ક્લાયન્ટ સુસંગતતા",
+ "protocolsToc": "પ્રોટોકોલ્સ",
+ "apiReference": "API સંદર્ભ",
+ "managementApiReference": "મેનેજમેન્ટ API સંદર્ભ",
+ "managementApiDescription": "પ્રોક્સી રજિસ્ટ્રી, સ્કોપ અસાઇનમેન્ટ્સ અને લેગસી પ્રોક્સી માઇગ્રેશન માટેના ઑટોમેશન એન્ડપોઇન્ટ્સ.",
+ "method": "મેથડ",
+ "path": "પાથ",
+ "notes": "નોંધો",
+ "modelPrefixes": "મોડેલ પ્રીફિક્સ",
+ "prefix": "ઉપસર્ગ",
+ "troubleshooting": "સમસ્યા નિવારણ",
+ "supportsChat": "ચેટ અને રિસ્પોન્સિસ બંને એન્ડપોઇન્ટને સપોર્ટ કરે છે.",
+ "oauthAutoRefresh": "સ્વચાલિત ટોકન રિફ્રેશ સાથે OAuth કનેક્શન.",
+ "fullStreaming": "બધા મોડલ માટે સંપૂર્ણ સ્ટ્રીમિંગ સપોર્ટ.",
+ "docsLabel": "દસ્તાવેજો",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "ડૅશબોર્ડ ખોલો",
+ "endpointPage": "એન્ડપોઇન્ટ પેજ",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "સમસ્યાની જાણ કરો",
+ "onThisPage": "આ પેજ પર",
+ "documentationVersion": "દસ્તાવેજીકરણ - v{version}",
+ "quickStartStep1Title": "1. ઇન્સ્ટૉલ કરો અને ચલાવો",
+ "quickStartStep1Prefix": "ચલાવો",
+ "quickStartStep1Middle": "અથવા GitHub પરથી ક્લોન કરીને ચલાવો",
+ "quickStartStep2Title": "2. API કી બનાવો",
+ "quickStartStep2Text": "Endpoint -> Registered Keys પર જાઓ. દરેક એન્વાયર્નમેન્ટ માટે એક કી બનાવો.",
+ "quickStartStep3Title": "3. પ્રોવાઇડર્સને કનેક્ટ કરો",
+ "quickStartStep3Text": "OAuth લૉગિન, API કી અથવા ફ્રી-ટિયર ઑટો-કનેક્ટ દ્વારા પ્રોવાઇડર એકાઉન્ટ્સ ઉમેરો.",
+ "quickStartStep4Title": "4. ક્લાયન્ટ બેઝ URL સેટ કરો",
+ "quickStartStep4Prefix": "તમારા IDE અથવા API ક્લાયન્ટને આ તરફ નિર્દેશિત કરો",
+ "quickStartStep4Suffix": "પ્રોવાઇડર ઉપસર્ગનો ઉપયોગ કરો, ઉદાહરણ તરીકે",
"deploySetupTitle": "સેટઅપ માર્ગદર્શિકા",
"deploySetupText": "OmniRoute માટે સ્ટેપ-બાય-સ્ટેપ ઇન્સ્ટોલેશન, એન્વાયર્નમેન્ટ કન્ફિગરેશન અને ફર્સ્ટ-રન વૉકથ્રુ.",
"deployElectronTitle": "ઇલેક્ટ્રોન ડેસ્કટોપ",
@@ -10071,161 +10082,161 @@
"deployPwaTitle": "પીડબલ્યુએ",
"deployPwaText": "Android, iOS અને ડેસ્કટૉપ બ્રાઉઝર પર પ્રોગ્રેસિવ વેબ ઍપ તરીકે OmniRoute ઇન્સ્ટોલ કરો.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "Termux દ્વારા Android પર OmniRouteને હેડલેસ મોડમાં ચલાવો. તમારા મોબાઇલ બ્રાઉઝરમાંથી ડૅશબોર્ડ ઍક્સેસ કરો.",
+ "featureRoutingTitle": "મલ્ટિ-પ્રોવાઇડર રાઉટિંગ",
+ "featureRoutingText": "એક જ OpenAI-સુસંગત એન્ડપોઇન્ટ દ્વારા 30+ AI પ્રોવાઇડર્સને રિક્વેસ્ટ્સ રૂટ કરો. ચેટ, રિસ્પોન્સિસ, ઑડિયો અને ઇમેજ APIsને સપોર્ટ કરે છે.",
+ "featureCombosTitle": "કોમ્બોઝ અને બેલેન્સિંગ",
+ "featureCombosText": "ફૉલબૅક ચેઇન્સ અને બેલેન્સિંગ વ્યૂહરચનાઓ સાથે મોડલ કોમ્બોઝ બનાવો: રાઉન્ડ-રોબિન, પ્રાથમિકતા, રૅન્ડમ, સૌથી ઓછો ઉપયોગ થયેલ અને ખર્ચ-ઑપ્ટિમાઇઝ્ડ.",
+ "featureUsageTitle": "ઉપયોગ અને ખર્ચ ટ્રૅકિંગ",
+ "featureUsageText": "રિયલ-ટાઇમ ટોકન ગણતરી, દરેક પ્રોવાઇડર/મોડલ દીઠ ખર્ચની ગણતરી અને API કી તથા એકાઉન્ટ પ્રમાણે ઉપયોગનું વિગતવાર વિભાજન.",
+ "featureAnalyticsTitle": "ઍનલિટિક્સ ડૅશબોર્ડ",
+ "featureAnalyticsText": "સમયાંતરે રિક્વેસ્ટ્સ, ટોકન્સ, ભૂલો, લેટન્સી, ખર્ચ અને મોડલની લોકપ્રિયતા માટે ચાર્ટ્સ સાથે વિઝ્યુઅલ ઍનલિટિક્સ.",
+ "featureHealthTitle": "હેલ્થ મોનિટરિંગ",
+ "featureHealthText": "લાઇવ હેલ્થ ચેક્સ, પ્રોવાઇડર સ્ટેટસ, સર્કિટ બ્રેકરની સ્થિતિઓ અને એક્સ્પોનેન્શિયલ બૅકઑફ સાથે સ્વચાલિત રેટ લિમિટ શોધ.",
+ "featureCliTitle": "CLI ટૂલ્સ",
+ "featureCliText": "IDE કૉન્ફિગરેશન્સ મેનેજ કરો, બૅકઅપ્સ એક્સપોર્ટ/ઇમ્પોર્ટ કરો, codex પ્રોફાઇલ્સ શોધો અને ડૅશબોર્ડમાંથી સેટિંગ્સ કૉન્ફિગર કરો.",
+ "featureSecurityTitle": "સુરક્ષા અને નીતિઓ",
+ "featureSecurityText": "API કી ઑથેન્ટિકેશન, IP ફિલ્ટરિંગ, પ્રોમ્પ્ટ ઇન્જેક્શન ગાર્ડ, ડોમેન નીતિઓ, સેશન મેનેજમેન્ટ અને ઑડિટ લૉગિંગ.",
+ "featureCloudSyncTitle": "ક્લાઉડ સિંક",
+ "featureCloudSyncText": "એન્ક્રિપ્ટેડ ક્રેડેન્શિયલ્સ અને સ્વચાલિત ફેલઓવર સાથે રિમોટ ઍક્સેસ માટે તમારા કૉન્ફિગરેશનને Cloudflare Workers સાથે સિંક કરો.",
+ "providersAcrossConnectionTypes": "ત્રણ કનેક્શન પ્રકારોમાં {count} પ્રદાતાઓ.",
+ "manageProviders": "પ્રદાતાઓનું સંચાલન કરો",
+ "providersCount": "{count} પ્રદાતાઓ",
+ "providerTypeFree": "મફત સ્તર",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "API કી",
+ "useCaseSingleEndpointTitle": "ઘણા પ્રદાતાઓ માટે એક જ એન્ડપોઇન્ટ",
+ "useCaseSingleEndpointText": "ક્લાયન્ટ્સને એક બેઝ URL તરફ નિર્દેશિત કરો અને મોડેલ પ્રીફિક્સ દ્વારા રૂટ કરો (ઉદાહરણ તરીકે: gh/, cc/, kr/, openai/).",
+ "useCaseFallbackTitle": "કોમ્બોઝ સાથે ફૉલબૅક અને મોડેલ સ્વિચિંગ",
+ "useCaseFallbackText": "Dashboardમાં કોમ્બો મોડેલો બનાવો અને પ્રદાતાઓ આંતરિક રીતે બદલાતા રહે ત્યારે પણ ક્લાયન્ટ કૉન્ફિગરેશન સ્થિર રાખો.",
+ "useCaseUsageVisibilityTitle": "વપરાશ, ખર્ચ અને ડિબગ દૃશ્યતા",
+ "useCaseUsageVisibilityText": "Usage અને Analytics ટૅબમાં પ્રદાતા, એકાઉન્ટ અને API કી મુજબ ટોકન્સ તથા ખર્ચને ટ્રૅક કરો.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "બેઝ URL",
+ "chatEndpointLabel": "ચૅટ એન્ડપોઇન્ટ",
+ "modelRecommendationLabel": "મોડેલ ભલામણ: સ્પષ્ટ પ્રીફિક્સ",
+ "clientCodexTitle": "Codex / GitHub Copilot મોડેલો",
+ "clientCodexBullet1": "આની સાથે મોડેલ IDs વાપરો",
+ "clientCodexBullet2": "Codex-ફેમિલીના મોડેલો આપમેળે અહીં રૂટ થાય છે",
+ "clientCodexBullet3": "Non-Codex મોડેલો અહીં ચાલુ રહે છે",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "વાપરો",
+ "clientCursorBullet1Suffix": "Cursor મોડેલો માટે પ્રીફિક્સ.",
+ "clientCursorBullet2": "OAuth કનેક્શન - Providers પેજ પરથી લૉગ ઇન કરો.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "વાપરો",
+ "clientClaudeBullet1Middle": "(Claude) અથવા",
+ "clientClaudeBullet1Suffix": "(Antigravity) પ્રીફિક્સ.",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "OmniRouteનો OpenAI-સુસંગત બેઝ URL તરીકે ઉપયોગ કરો અને નિર્ધારિત રૂટિંગ માટે સ્પષ્ટ પ્રદાતા પ્રીફિક્સ જાળવી રાખો.",
+ "clientWindsurfBullet2": "સામાન્ય ટ્રાફિક માટે મોડેલોને `/v1/chat/completions` તરફ નિર્દેશિત કરો અને Codex-શૈલીના ફ્લોઝ માટે `/v1/responses` જાળવી રાખો.",
+ "clientWindsurfBullet3": "તૈયાર Windsurf કૉન્ફિગરેશન માર્ગદર્શિકા માટે Dashboard -> CLI Toolsનો ઉપયોગ કરો.",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "સ્પષ્ટ પ્રદાતા/મોડેલ પ્રીફિક્સ સાથે Cline શ્રેષ્ઠ રીતે કાર્ય કરે છે, જેથી રાઉટરને ક્યારેય બૅકએન્ડનું અનુમાન ન લગાવવું પડે.",
+ "clientClineBullet2": "સામાન્ય મોડેલો માટે `/v1/chat/completions` વાપરો અને વિવિધ એકાઉન્ટ્સમાં સમાન OmniRoute બેઝ URLનો ફરીથી ઉપયોગ કરો.",
+ "clientClineBullet3": "Cline રનટાઇમ સમસ્યાઓ ડિબગ કરતા પહેલાં OAuth/API કીને માન્ય કરવા માટે Providers ડૅશબોર્ડનો ઉપયોગ કરો.",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "અંતર્ગત એકાઉન્ટ્સ અથવા પ્રદાતા કોમ્બોઝ બદલતી વખતે OmniRouteનો સ્થિર બેઝ URL તરીકે ઉપયોગ કરો.",
+ "clientKimiBullet2": "કોડિંગ ફ્લોઝમાં પ્રીફિક્સવાળા મોડેલોને પ્રાધાન્ય આપો, જેથી ફૉલબૅક અને ઑડિટ ટ્રેલ સ્પષ્ટ રહે.",
+ "clientKimiBullet3": "ટૂલ્સનો ઉપયોગ કરતા ક્લાયન્ટ્સ માટે મૂળ Responses-શૈલીનું રૂટિંગ જોઈતું હોય ત્યારે `/v1/responses` વાપરો.",
+ "protocolsTitle": "પ્રોટોકોલ્સ: MCP અને A2A",
+ "protocolsDescription": "OpenAI-સુસંગત APIs ઉપરાંત OmniRoute બે ઑપરેશનલ પ્રોટોકોલ્સ પ્રદાન કરે છે: ટૂલ એક્ઝિક્યુશન માટે MCP અને એજન્ટ-ટુ-એજન્ટ વર્કફ્લોઝ માટે A2A.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "ક્લાયન્ટ્સને ઑડિટ દૃશ્યતા સાથે OmniRoute ટૂલ્સ શોધવા અને કૉલ કરવાની સુવિધા આપવા માટે stdio દ્વારા MCP વાપરો.",
+ "protocolMcpStep1": "`omniroute --mcp` વડે MCP ટ્રાન્સપોર્ટ શરૂ કરો.",
+ "protocolMcpStep2": "તમારા MCP ક્લાયન્ટને stdio ટ્રાન્સપોર્ટ તરફ નિર્દેશિત કરો.",
+ "protocolMcpStep3": "કનેક્ટિવિટી ચકાસવા માટે `omniroute_get_health` અને `omniroute_list_combos` ને કૉલ કરો.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "કાર્યોને સમકાલીન રીતે અથવા SSE સ્ટ્રીમિંગ મારફતે સબમિટ કરવા માટે A2A JSON-RPC નો ઉપયોગ કરો.",
+ "protocolA2aStep1": "એજન્ટ શોધ માટે `/.well-known/agent.json` વાંચો.",
+ "protocolA2aStep2": "`POST /a2a` પર `message/send` અથવા `message/stream` વિનંતીઓ મોકલો.",
+ "protocolA2aStep3": "`tasks/get` અને `tasks/cancel` વડે કાર્યના જીવનચક્રનું સંચાલન કરો.",
+ "protocolTroubleshootingTitle": "પ્રોટોકોલ સમસ્યાનિવારણ",
+ "protocolTroubleshooting1": "જો MCP સ્થિતિ ઑફલાઇન હોય, તો ચકાસો કે stdio પ્રોસેસ ચાલી રહી છે અને heartbeat ફાઇલ અપડેટ થઈ રહી છે.",
+ "protocolTroubleshooting2": "જો A2A કાર્યો `working` સ્થિતિમાં જ રહે, તો ટર્મિનલ સ્થિતિ માટે `/api/a2a/tasks/:id` અને સ્ટ્રીમ ઇવેન્ટ્સ તપાસો.",
+ "protocolTroubleshooting3": "ઓપરેશનલ નિયંત્રણો અને ઑડિટ દૃશ્યતા માટે `/dashboard/mcp` અને `/dashboard/a2a` નો ઉપયોગ કરો.",
+ "endpointChatNote": "OpenAI-સુસંગત ચેટ એન્ડપોઇન્ટ (ડિફૉલ્ટ).",
+ "endpointResponsesNote": "Responses API એન્ડપોઇન્ટ (Codex, o-series).",
+ "endpointModelsNote": "જોડાયેલા તમામ પ્રદાતાઓ માટેનું મોડેલ કૅટલૉગ.",
+ "endpointAudioNote": "ઑડિયો ટ્રાન્સક્રિપ્શન (Deepgram, AssemblyAI).",
+ "endpointSpeechNote": "ટેક્સ્ટ-ટુ-સ્પીચ જનરેશન (ElevenLabs, OpenAI TTS).",
+ "endpointEmbeddingsNote": "ટેક્સ્ટ એમ્બેડિંગ જનરેશન (OpenAI, Cohere, Voyage).",
+ "endpointImagesNote": "ઇમેજ જનરેશન (NanoBanana).",
+ "endpointRewriteChatNote": "/v1 વગરના ક્લાયન્ટ્સ માટે રીરાઇટ સહાયક.",
+ "endpointRewriteResponsesNote": "/v1 વગરના Responses માટે રીરાઇટ સહાયક.",
+ "endpointRewriteModelsNote": "/v1 વગર મોડેલ શોધ માટે રીરાઇટ સહાયક.",
+ "mgmtProxiesListNote": "સાચવેલી પ્રોક્સી રજિસ્ટ્રી આઇટમ્સની યાદી જુઓ (પેજિનેશનને સપોર્ટ કરે છે).",
+ "mgmtProxiesCreateNote": "રજિસ્ટ્રીમાં ફરી ઉપયોગ કરી શકાય તેવી પ્રોક્સી આઇટમ બનાવો.",
+ "mgmtProxiesHealthNote": "પ્રોક્સી લૉગ્સમાંથી દરેક સાચવેલી પ્રોક્સી માટે 24 કલાકના/રોલિંગ હેલ્થ મેટ્રિક્સ મેળવો.",
+ "mgmtProxiesBulkAssignNote": "એક વિનંતીમાં ઘણા સ્કોપ ID માટે એક પ્રોક્સી અસાઇન કરો અથવા દૂર કરો.",
+ "mgmtAssignmentsListNote": "scope, scope_id અથવા proxy_id પ્રમાણે પ્રોક્સી અસાઇનમેન્ટ્સની યાદી જુઓ.",
+ "mgmtAssignmentsUpdateNote": "global/provider/account/combo સ્કોપ માટે પ્રોક્સી અસાઇન કરો અથવા દૂર કરો.",
+ "mgmtLegacyMigrationNote": "લેગસી proxyConfig મેપ્સને રજિસ્ટ્રી અસાઇનમેન્ટ્સમાં ઇમ્પોર્ટ કરો.",
+ "modelPrefixesDescriptionStart": "ચોક્કસ પ્રદાતા તરફ રૂટ કરવા માટે મોડેલના નામ પહેલાં પ્રદાતા પ્રિફિક્સનો ઉપયોગ કરો. ઉદાહરણ:",
+ "modelPrefixesDescriptionEnd": "GitHub Copilot તરફ રૂટ કરે છે.",
+ "provider": "પ્રદાતા",
+ "type": "પ્રકાર",
+ "troubleshootingModelRouting": "જો ક્લાયન્ટ મોડેલ રૂટિંગમાં નિષ્ફળ જાય, તો સ્પષ્ટ provider/model નો ઉપયોગ કરો (ઉદાહરણ તરીકે: gh/gpt-5.1-codex).",
+ "troubleshootingAmbiguousModels": "જો તમને મોડેલની અસ્પષ્ટતા સંબંધિત ભૂલો મળે, તો માત્ર મોડેલ ID ને બદલે પ્રદાતા પ્રિફિક્સ પસંદ કરો.",
+ "troubleshootingCodexFamily": "GitHub Codex-ફેમિલી મોડેલ્સ માટે, મોડેલને gh/codex-model તરીકે રાખો; રાઉટર આપમેળે /responses પસંદ કરે છે.",
+ "troubleshootingTestConnection": "IDEs અથવા બાહ્ય ક્લાયન્ટ્સમાંથી પરીક્ષણ કરતાં પહેલાં Dashboard > Providers > Test Connection નો ઉપયોગ કરો.",
+ "troubleshootingCircuitBreaker": "જો કોઈ પ્રદાતા માટે સર્કિટ બ્રેકર ખુલ્લું બતાવે, તો કૂલડાઉન પૂરું થવાની રાહ જુઓ અથવા વિગતો માટે Health પેજ તપાસો.",
+ "troubleshootingOAuth": "OAuth પ્રદાતાઓ માટે, ટોકન્સની સમયમર્યાદા પૂરી થાય તો ફરીથી પ્રમાણિત કરો. પ્રદાતા કાર્ડનો સ્થિતિ સૂચક તપાસો.",
+ "endpointCompletionsNote": "ટેક્સ્ટ જનરેશન માટે લેગસી કમ્પ્લીશન્સ એન્ડપોઇન્ટ.",
+ "endpointModerationsNote": "કન્ટેન્ટ મોડરેશન અને સલામતી વર્ગીકરણ.",
+ "endpointRerankNote": "રિટ્રીવલ-ઑગમેન્ટેડ જનરેશન માટે દસ્તાવેજોનું પુનઃક્રમનિર્ધારણ (Cohere, Jina).",
+ "endpointSearchNote": "5 પ્રદાતાઓ (Serper, Brave, Exa, Tavily, Perplexity) સાથે વેબ શોધ.",
+ "endpointSearchAnalyticsNote": "શોધ વિનંતીઓ માટે વિશ્લેષણ અને મેટ્રિક્સ.",
+ "endpointVideoNote": "વિડિયો જનરેશન (ComfyUI, SD WebUI વર્કફ્લો).",
+ "endpointMusicNote": "ComfyUI વર્કફ્લો દ્વારા સંગીત જનરેશન.",
+ "endpointMessagesNote": "Anthropic-નેટિવ સંદેશાઓનું એન્ડપોઇન્ટ.",
+ "endpointCountTokensNote": "આપેલ સંદેશ પેલોડ માટે ટોકન્સની ગણતરી કરો.",
+ "endpointFilesNote": "મલ્ટિમોડલ ઇનપુટ્સ માટે ફાઇલ અપલોડ.",
+ "endpointBatchesNote": "મોટા પાયાની API વિનંતીઓ માટે બૅચ પ્રોસેસિંગ.",
+ "endpointWsNote": "રીઅલ-ટાઇમ સ્ટ્રીમિંગ માટે WebSocket એન્ડપોઇન્ટ.",
+ "mgmtProvidersListNote": "તમામ નોંધાયેલ પ્રદાતા કનેક્શન્સની સૂચિ બનાવો.",
+ "mgmtProvidersCreateNote": "નવું પ્રદાતા કનેક્શન બનાવો.",
+ "mgmtProvidersUpdateNote": "હાલના પ્રદાતા કનેક્શનને અપડેટ કરો.",
+ "mgmtProvidersDeleteNote": "પ્રદાતા કનેક્શન કાઢી નાખો.",
+ "mgmtProvidersTestNote": "પ્રદાતા માટે કનેક્ટિવિટી અને પ્રમાણીકરણનું પરીક્ષણ કરો.",
+ "mgmtProvidersModelsNote": "ચોક્કસ પ્રદાતા માટે ઉપલબ્ધ મોડેલ્સની સૂચિ બનાવો.",
+ "mgmtSettingsGetNote": "વર્તમાન એપ્લિકેશન સેટિંગ્સ મેળવો.",
+ "mgmtSettingsUpdateNote": "એપ્લિકેશન સેટિંગ્સ અપડેટ કરો.",
+ "mgmtPayloadRulesGetNote": "પેલોડ રૂપાંતરણના નિયમો મેળવો.",
+ "mgmtPayloadRulesUpdateNote": "પેલોડ રૂપાંતરણના નિયમો અપડેટ કરો.",
+ "mcpToolsTitle": "MCP ટૂલ્સ",
+ "mcpToolsDescription": "OmniRoute એજન્ટ ઓર્કેસ્ટ્રેશન માટે Model Context Protocol દ્વારા {count} ટૂલ્સ ઉપલબ્ધ કરાવે છે.",
+ "mcpToolsCount": "{count} ટૂલ્સ",
+ "mcpToolsToc": "MCP ટૂલ્સ",
+ "mcpToolsRoutingTitle": "રાઉટિંગ અને શોધ",
+ "mcpToolsRoutingDesc": "હેલ્થ ચેક્સ, કોમ્બો મેનેજમેન્ટ, ક્વોટા મોનિટરિંગ, ખર્ચ રિપોર્ટિંગ અને મોડેલ કૅટલૉગ ઍક્સેસ.",
+ "mcpToolsOperationsTitle": "ઓપરેશન્સ અને વ્યૂહરચના",
+ "mcpToolsOperationsDesc": "રૂટ સિમ્યુલેશન, બજેટ ગાર્ડ્સ, વ્યૂહરચના સ્વિચિંગ, રેઝિલિયન્સ પ્રોફાઇલ્સ અને પ્રદાતા મેટ્રિક્સ.",
+ "mcpToolsCacheTitle": "કૅશ મેનેજમેન્ટ",
+ "mcpToolsCacheDesc": "કૅશના આંકડા જુઓ અને સિમેન્ટિક અથવા સિગ્નેચર કૅશ સાફ કરો.",
"mcpToolsCompressionTitle": "કમ્પ્રેશન એન્જિન્સ",
"mcpToolsCompressionDesc": "RTK/Brotli કમ્પ્રેશન, સ્વેપ એન્જિનને ગોઠવો અને કોમ્બો દ્વારા કમ્પ્રેશન એનાલિટિક્સનું નિરીક્ષણ કરો.",
"mcpToolsOneProxyTitle": "1 પ્રોક્સી / ટનલ",
"mcpToolsOneProxyDesc": "આઉટબાઉન્ડ પ્રોક્સીઓનું સંચાલન કરો, રહેણાંક IP ને ફેરવો અને પ્રોક્સી સ્વાસ્થ્યનું નિરીક્ષણ કરો.",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "મેમરી",
+ "mcpToolsMemoryDesc": "કાયમી વાર્તાલાપ મેમરી એન્ટ્રીઓ શોધો, ઉમેરો અને સાફ કરો.",
+ "mcpToolsSkillsTitle": "સ્કિલ્સ",
+ "mcpToolsSkillsDesc": "કસ્ટમ સ્કિલ એક્ઝિક્યુશન્સની સૂચિ બનાવો, સક્ષમ કરો, ચલાવો અને મોનિટર કરો.",
+ "featureAutoComboTitle": "ઑટો-કોમ્બો",
+ "featureAutoComboText": "તમારા કનેક્ટેડ પ્રદાતાઓ, ઉપયોગની પેટર્ન અને મોડેલ ક્ષમતાઓના આધારે ઑપ્ટિમાઇઝ્ડ કોમ્બોઝ આપમેળે બનાવો.",
+ "featureSearchTitle": "વેબ શોધ",
+ "featureSearchText": "વિશ્લેષણ અને ખર્ચ ટ્રૅકિંગ સહિત 5 પ્રદાતાઓ (Serper, Brave, Exa, Tavily, Perplexity) સાથે સંકલિત વેબ શોધ.",
+ "featureMemoryTitle": "મેમરી સિસ્ટમ",
+ "featureMemoryText": "સત્રો દરમિયાન નિષ્કર્ષણ, ઇન્જેક્શન, પુનઃપ્રાપ્તિ અને સારાંશ સાથે કાયમી વાર્તાલાપ મેમરી.",
+ "featureSkillsTitle": "સ્કિલ્સ ફ્રેમવર્ક",
+ "featureSkillsText": "બિલ્ટ-ઇન અને કસ્ટમ સ્કિલ્સ, સેન્ડબોક્સ એક્ઝિક્યુશન, રિક્વેસ્ટ ઇન્ટરસેપ્શન અને કોન્ટેક્સ્ટ ઇન્જેક્શન સાથેની વિસ્તારી શકાય તેવી સ્કિલ સિસ્ટમ.",
+ "featureAcpTitle": "એજન્ટ સંચાર",
+ "featureAcpText": "એજન્ટ-થી-એજન્ટ વર્કફ્લો અને ટૂલ ઓર્કેસ્ટ્રેશનનું સંચાલન કરવા માટેની એજન્ટ કમ્યુનિકેશન પ્રોટોકોલ (ACP) રજિસ્ટ્રી.",
+ "protocolAcpTitle": "ACP (એજન્ટ સંચાર)",
+ "protocolAcpDesc": "આંતર-એજન્ટ સંચાર અને ટૂલ શેરિંગ માટે ACP રજિસ્ટ્રી મારફતે એજન્ટોની નોંધણી અને સંચાલન કરો.",
+ "protocolAcpStep1": "નોંધાયેલા ACP એજન્ટો જોવા માટે ડૅશબોર્ડ → એજન્ટ્સ પર જાઓ.",
+ "protocolAcpStep2": "ક્ષમતાઓ અને એન્ડપોઇન્ટ કન્ફિગરેશન સાથે નવા એજન્ટોની નોંધણી કરો.",
+ "protocolAcpStep3": "એજન્ટ સંચાર ચૅનલો કન્ફિગર કરવા માટે CLI ટૂલ્સનો ઉપયોગ કરો.",
"metadataTitleTemplate": "%s — ઓમ્નીરૂટ દસ્તાવેજો",
"metadataDefaultTitle": "ઓમ્નીરૂટ દસ્તાવેજીકરણ",
"metadataDescription": "OmniRoute AI ગેટવે માટે વ્યાપક દસ્તાવેજીકરણ — સેટઅપ, API, સંકોચન, ડિપ્લોયમેન્ટ, અને વધુ.",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "ગોપનીયતા નીતિ",
+ "termsOfService": "સેવાની શરતો",
+ "providerConfigurations": "પ્રદાતા કન્ફિગરેશન્સ",
+ "apiKeys": "API કીઝ",
+ "usageLogs": "વપરાશ લૉગ્સ",
+ "applicationSettings": "ઍપ્લિકેશન સેટિંગ્સ",
+ "viewExportAnalytics": "વપરાશ વિશ્લેષણ જુઓ અને નિકાસ કરો",
+ "clearHistory": "કોઈપણ સમયે વપરાશ ઇતિહાસ સાફ કરો",
+ "configureRetention": "લૉગ જાળવણી નીતિઓ કન્ફિગર કરો",
+ "backupRestore": "તમારા ડેટાબેઝનો બૅકઅપ લો અને તેને પુનઃસ્થાપિત કરો",
+ "privacyMetadataTitle": "ગોપનીયતા નીતિ | OmniRoute",
+ "privacyMetadataDescription": "OmniRoute AI API પ્રૉક્સી રાઉટર માટેની ગોપનીયતા નીતિ.",
+ "termsMetadataTitle": "સેવાની શરતો | OmniRoute",
+ "termsMetadataDescription": "OmniRoute AI API પ્રૉક્સી રાઉટર માટેની સેવાની શરતો.",
+ "backToHome": "હોમ પર પાછા જાઓ",
+ "lastUpdated": "છેલ્લે અપડેટ કર્યું: {date}",
+ "policyLastUpdatedDate": "13 ફેબ્રુઆરી, 2026",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "પ્રશ્નો છે? અમારી મુલાકાત લો",
+ "githubRepository": "GitHub રિપોઝિટરી",
+ "privacySection1Title": "1. લોકલ-ફર્સ્ટ આર્કિટેક્ચર",
+ "privacySection1Text": "OmniRoute ને લોકલ-ફર્સ્ટ ઍપ્લિકેશન તરીકે ડિઝાઇન કરવામાં આવ્યું છે. તમામ ડેટા પ્રોસેસિંગ અને સ્ટોરેજ સંપૂર્ણપણે તમારા મશીન પર થાય છે. તમારી માહિતી એકત્ર કરતું કોઈ કેન્દ્રીય સર્વર નથી.",
+ "privacySection2Title": "2. અમે સંગ્રહિત કરતા ડેટા",
+ "privacyDataStoredIn": "નીચેનો ડેટા સ્થાનિક રીતે સંગ્રહિત થાય છે",
+ "privacyDataProviderConfigurationsDesc": "કનેક્શન URLs, પ્રદાતાના પ્રકારો અને પ્રાથમિકતા સેટિંગ્સ",
+ "privacyDataApiKeysDesc": "AI પ્રદાતાઓ સાથે પ્રમાણીકરણ માટે એન્ક્રિપ્ટ કરીને સ્થાનિક રીતે સંગ્રહિત કરવામાં આવે છે",
+ "privacyDataUsageLogsDesc": "રિક્વેસ્ટની સંખ્યા, ટોકનનો વપરાશ, મોડલનાં નામ, ટાઇમસ્ટૅમ્પ્સ અને પ્રતિભાવ સમય",
+ "privacyDataApplicationSettingsDesc": "થીમ પસંદગીઓ, રાઉટિંગ વ્યૂહરચના અને કૉમ્બો કન્ફિગરેશન્સ",
+ "privacySection3Title": "3. કોઈ ટેલિમેટ્રી નહીં",
+ "privacySection3Text": "OmniRoute ટેલિમેટ્રી, વિશ્લેષણ અથવા ક્રૅશ રિપોર્ટ્સ એકત્ર કરતું નથી. અમને કે કોઈપણ તૃતીય પક્ષને કોઈ ડેટા મોકલવામાં આવતો નથી. તમારી વપરાશ પદ્ધતિઓ, API કૉલ્સ અને કન્ફિગરેશન્સ સંપૂર્ણપણે ખાનગી રહે છે.",
+ "privacySection4Title": "4. તૃતીય-પક્ષ AI પ્રદાતાઓ",
+ "privacySection4Text": "જ્યારે તમે OmniRoute મારફતે API કૉલ્સ કરો છો, ત્યારે તમારી રિક્વેસ્ટ્સ તમે કન્ફિગર કરેલા AI પ્રદાતાઓને મોકલવામાં આવે છે (ઉદાહરણ તરીકે: OpenAI, Anthropic, Google). આ પ્રદાતાઓની પોતાની ગોપનીયતા નીતિઓ છે, જે તેઓ તમારા ડેટાને કેવી રીતે સંભાળે છે તે નિયંત્રિત કરે છે. કૃપા કરીને સમીક્ષા કરો:",
+ "privacyOpenAiPolicy": "OpenAI ગોપનીયતા નીતિ",
+ "privacyAnthropicPolicy": "Anthropic ગોપનીયતા નીતિ",
+ "privacyGooglePolicy": "Google ગોપનીયતા નીતિ",
+ "privacySection5Title": "5. ક્લાઉડ સિંક (વૈકલ્પિક)",
+ "privacySection5Text": "જો તમે વૈકલ્પિક ક્લાઉડ સિંક સુવિધા સક્ષમ કરો છો, તો પ્રદાતા ગોઠવણીઓ અને API કીઓ ગોઠવેલા ક્લાઉડ એન્ડપોઇન્ટ પર મોકલવામાં આવી શકે છે. આ સુવિધા મૂળભૂત રીતે અક્ષમ હોય છે અને તેને સ્પષ્ટ સંમતિથી સક્ષમ કરવી જરૂરી છે.",
+ "privacySection6Title": "6. લૉગિંગ",
+ "privacyLoggingIntro": "વિનંતી લૉગ્સ ડૅશબોર્ડ સેટિંગ્સ દ્વારા ગોઠવી શકાય છે. તમે આ કરી શકો છો:",
+ "privacySection7Title": "7. તમારા અધિકારો",
+ "privacySection7TextStart": "તમામ ડેટા સ્થાનિક રીતે સંગ્રહિત હોવાથી, તેના પર તમારું સંપૂર્ણ નિયંત્રણ છે. તમે કોઈપણ સમયે આને દૂર કરીને તમારો ડેટા કાઢી શકો છો:",
+ "privacySection7TextEnd": "ડિરેક્ટરી અથવા ડૅશબોર્ડમાં ડેટાબેઝ બૅકઅપ અને પુનઃસ્થાપન સુવિધાઓનો ઉપયોગ કરીને.",
+ "termsSection1Title": "1. વિહંગાવલોકન",
+ "termsSection1Text": "OmniRoute એક સ્થાનિક-પ્રથમ AI API પ્રૉક્સી રાઉટર છે, જે સંપૂર્ણપણે તમારા મશીન પર કાર્ય કરે છે. તે લોડ બૅલેન્સિંગ, ફેલઓવર અને વપરાશ ટ્રૅકિંગ સાથે વિનંતીઓને અનેક AI પ્રદાતાઓ સુધી રૂટ કરે છે.",
+ "termsSection2Title": "2. વપરાશકર્તાની જવાબદારીઓ",
+ "termsResponsibilityApiKeys": "તૃતીય-પક્ષ AI પ્રદાતાઓ (OpenAI, Anthropic, Google, વગેરે) માટેની તમારી પોતાની API કીઓ અને ઓળખપત્રોનું સંચાલન કરવા માટે માત્ર તમે જ જવાબદાર છો.",
+ "termsResponsibilityCompliance": "તમે OmniRoute દ્વારા જે AI પ્રદાતાની API ઍક્સેસ કરો છો, તેના દરેક સેવા નિયમોનું પાલન કરવું આવશ્યક છે.",
+ "termsResponsibilitySecurity": "પાસવર્ડ સેટ કરવા અને નેટવર્ક ઍક્સેસને પ્રતિબંધિત કરવા સહિત, તમારા સ્થાનિક OmniRoute ઇન્સ્ટોલેશનની સુરક્ષા માટે તમે જવાબદાર છો.",
+ "termsSection3Title": "3. તે કેવી રીતે કાર્ય કરે છે",
+ "termsSection3Text": "OmniRoute મધ્યસ્થી પ્રૉક્સી તરીકે કાર્ય કરે છે. OmniRouteને મોકલાયેલા API કૉલ્સનું રૂપાંતરણ કરીને તેને તમારા ગોઠવેલા AI પ્રદાતાઓને મોકલવામાં આવે છે. આવશ્યક પ્રોટોકૉલ રૂપાંતરણ સિવાય OmniRoute તમારી વિનંતીઓ અથવા પ્રતિસાદોની સામગ્રીમાં ફેરફાર કરતું નથી.",
+ "termsSection4Title": "4. ડેટાનું સંચાલન",
+ "termsDataStoredLocally": "તમામ ડેટા તમારા મશીન પર SQLite ડેટાબેઝમાં સ્થાનિક રીતે સંગ્રહિત થાય છે.",
+ "termsNoTransmission": "જ્યાં સુધી તમે ક્લાઉડ સિંક સુવિધાઓ સ્પષ્ટપણે સક્ષમ ન કરો ત્યાં સુધી OmniRoute કોઈપણ ડેટા બાહ્ય સર્વરો પર મોકલતું નથી.",
+ "termsDataLocationText": "વપરાશ લૉગ્સ, API કીઓ અને ગોઠવણી અહીં સંગ્રહિત થાય છે:",
+ "termsSection5Title": "5. અસ્વીકરણ",
+ "termsSection5Text": "OmniRoute કોઈપણ પ્રકારની વૉરંટી વિના \"જેવું છે તેવું\" પ્રદાન કરવામાં આવે છે. API વપરાશથી થયેલા કોઈપણ ખર્ચ, સેવામાં વિક્ષેપ અથવા ડેટાની ખોટ માટે અમે જવાબદાર નથી. તમારી ગોઠવણીના બૅકઅપ હંમેશાં જાળવી રાખો.",
+ "termsSection6Title": "6. ઓપન સોર્સ",
+ "termsSection6Text": "OmniRoute ઓપન-સોર્સ સૉફ્ટવેર છે. તેના લાઇસન્સની શરતો હેઠળ તમે તેનું નિરીક્ષણ, ફેરફાર અને વિતરણ કરવા માટે સ્વતંત્ર છો."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI એજન્ટ્સ",
+ "description": "તમારી સિસ્ટમ પર ઇન્સ્ટોલ કરેલા CLI એજન્ટ્સ શોધો. આપમેળે શોધ માટે કસ્ટમ એજન્ટ્સ ઉમેરો.",
+ "refresh": "રિફ્રેશ કરો",
+ "installed": "ઇન્સ્ટોલ કરેલું",
+ "notFound": "મળ્યું નથી",
+ "builtIn": "બિલ્ટ-ઇન",
+ "custom": "કસ્ટમ",
+ "remove": "દૂર કરો",
+ "addCustomAgent": "કસ્ટમ એજન્ટ ઉમેરો",
+ "addCustomAgentDesc": "શોધ માટે કોઈપણ CLI ટૂલની નોંધણી કરો. રિફ્રેશ કરવા પર તે આપમેળે સ્કૅન થશે.",
+ "agentName": "એજન્ટનું નામ",
+ "binaryName": "બાઇનરીનું નામ",
+ "versionCommand": "વર્ઝન કમાન્ડ",
+ "spawnArgs": "સ્પૉન આર્ગ્યુમેન્ટ્સ",
+ "addAgent": "એજન્ટ ઉમેરો",
+ "scanning": "CLI એજન્ટ્સ માટે સિસ્ટમ સ્કૅન કરી રહ્યું છે...",
+ "opencodeIntegration": "OpenCode એકીકરણ",
+ "opencodeDetected": "opencode {version} મળ્યું",
+ "opencodeDesc": "તમારા OmniRoute બેઝ URL અને બધા ઉપલબ્ધ મૉડલ્સ સાથે ઉપયોગ માટે તૈયાર {configFile} જનરેટ કરો — તેને તમારા પ્રોજેક્ટ રૂટમાં મૂકો અને {command} ચલાવો.",
+ "downloadConfig": "{file} ડાઉનલોડ કરો",
+ "downloaded": "ડાઉનલોડ થઈ ગયું!",
+ "setupGuideTitle": "સેટઅપ માર્ગદર્શિકા",
+ "openCliTools": "CLI ટૂલ્સ ખોલો",
+ "setupGuideDetectCliTitle": "ઇન્સ્ટોલ કરેલા CLI શોધો",
+ "setupGuideDetectCliDesc": "CLI ઇન્સ્ટોલ અથવા અપડેટ કર્યા પછી Refresh પર ક્લિક કરો, જેથી OmniRoute બાઇનરીઝ અને વર્ઝન્સ ફરીથી સ્કૅન કરી શકે.",
+ "setupGuideCustomAgentTitle": "કસ્ટમ બાઇનરી રજીસ્ટર કરો",
+ "setupGuideCustomAgentDesc": "જ્યારે તમારું CLI બિલ્ટ-ઇન સૂચિમાં ન હોય, ત્યારે Add Custom Agent નો ઉપયોગ કરો. બાઇનરીનું નામ અને વર્ઝન કમાન્ડ આપો.",
+ "setupGuideCommandMissingTitle": "'command not found' ઠીક કરો",
+ "setupGuideCommandMissingDesc": "ખાતરી કરો કે CLI કમાન્ડ PATH માં હાજર છે, નવું ટર્મિનલ સત્ર ખોલો અને Refresh ફરીથી ચલાવો.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "સરળ ચેટ",
+ "streaming": "સ્ટ્રીમિંગ",
+ "system-prompt": "સિસ્ટમ પ્રોમ્પ્ટ",
+ "thinking": "વિચાર પ્રક્રિયા",
+ "tool-calling": "ટૂલ કૉલિંગ",
+ "multi-turn": "બહુ-ચરણ",
"vision": "દ્રષ્ટિ",
"schema-coercion": "સ્કીમા બળજબરી"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "સિસ્ટમ સંદેશ સાથેનું મૂળભૂત ચેટ ટેમ્પલેટ",
+ "streaming": "સ્ટ્રીમિંગ પ્રતિસાદો માટેનું ટેમ્પલેટ",
+ "system-prompt": "કસ્ટમ સિસ્ટમ પ્રોમ્પ્ટ સાથેનું ટેમ્પલેટ",
+ "thinking": "તર્ક/વિચાર બજેટ સાથેનું ટેમ્પલેટ",
+ "tool-calling": "ટૂલ/ફંક્શન કૉલિંગ માટેનું ટેમ્પલેટ",
+ "multi-turn": "બહુ-ચરણ વાર્તાલાપો માટેનું ટેમ્પલેટ",
"vision": "ઇમેજ ઇનપુટ સાથે મલ્ટિમોડલ ટેમ્પલેટ",
"schema-coercion": "સ્ટ્રક્ચર્ડ-આઉટપુટ / JSON સ્કીમા અમલીકરણ"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "તમે એક મદદરૂપ AI સહાયક છો.",
+ "userGreeting": "નમસ્તે! આજે હું તમને કેવી રીતે મદદ કરી શકું?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "આ વિષય પર વાર્તા લખો"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "જીવનનો અર્થ શું છે?",
+ "systemInstruction": "વિચારશીલ, દાર્શનિક જવાબ આપો."
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "ક્વોન્ટમ કમ્પ્યુટિંગ સમજાવો"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "જે શહેરનું હવામાન મેળવવું છે તેનું નામ",
+ "toolDescription": "કોઈ સ્થાનનું વર્તમાન હવામાન મેળવો",
+ "userWeather": "ટોક્યોમાં હવામાન કેવું છે?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "તમે એક મદદરૂપ સહાયક છો.",
+ "assistantExample": "તેમાં તમારી મદદ કરવામાં મને આનંદ થશે.",
+ "userInitial": "મને આમાં મદદ જોઈએ છે",
+ "userFollowUp": "શું તમે તેના વિશે વધુ વિગત આપી શકો?"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "કૅશ મેનેજમેન્ટ",
+ "description": "પ્રદાતાના પ્રોમ્પ્ટ કૅશની કાર્યક્ષમતા અને સ્થાનિક સેમેન્ટિક પ્રતિસાદના પુનઃઉપયોગનું નિરીક્ષણ કરો.",
+ "refresh": "રીફ્રેશ કરો",
+ "clearAll": "સેમેન્ટિક કૅશ સાફ કરો",
+ "memoryEntries": "મેમરી એન્ટ્રીઓ",
+ "memoryEntriesSub": "ઇન-મેમરી LRU",
+ "dbEntries": "DB એન્ટ્રીઓ",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "કૅશ હિટ્સ",
+ "cacheHitsSub": "કુલ {total} માંથી",
+ "tokensSaved": "બચાવેલા ટોકન્સ",
+ "tokensSavedSub": "હિટ્સ પરથી અંદાજિત",
+ "hitRate": "હિટ દર",
+ "performance": "કૅશ પ્રદર્શન",
+ "autoRefresh": "દર {seconds}s એ આપમેળે રીફ્રેશ થાય છે",
+ "hits": "હિટ્સ",
+ "misses": "મિસિસ",
+ "total": "કુલ",
+ "behavior": "કૅશની વર્તણૂક",
+ "behaviorDeterministic": "ફક્ત temperature=0 ધરાવતી નોન-સ્ટ્રીમિંગ વિનંતીઓ કૅશ કરવામાં આવે છે.",
+ "behaviorBypass": "હેડર {header} વડે બાયપાસ કરો.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "ડિફૉલ્ટ TTL: 30 મિનિટ. {envVar} દ્વારા ગોઠવો.",
+ "idempotency": "આઇડેમ્પોટન્સી લેયર",
+ "activeDedupKeys": "સક્રિય ડિડુપ કીઝ",
+ "dedupWindow": "ડિડુપ વિન્ડો",
+ "clearSuccess": "સેમેન્ટિક કૅશ સાફ કરવામાં આવ્યો. {count} એન્ટ્રીઓ દૂર કરવામાં આવી.",
+ "clearError": "કૅશ સાફ કરવામાં નિષ્ફળતા.",
+ "unavailable": "કૅશ ઉપલબ્ધ નથી",
+ "unavailableDesc": "કૅશના આંકડા મેળવી શકાયા નથી. ખાતરી કરો કે સર્વર ચાલી રહ્યું છે.",
"loadingCacheAria": "કેશ લોડ થઈ રહી છે",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "પ્રોમ્પ્ટ કૅશ (પ્રદાતા તરફનું)",
+ "semanticCache": "સેમેન્ટિક કૅશ",
+ "promptCacheSectionDesc": "ઉપયોગ ઇતિહાસમાંથી પ્રદાતા તરફની પ્રોમ્પ્ટ કૅશિંગ પ્રવૃત્તિ દર્શાવે છે, જેથી તમે જોઈ શકો કે કૅશ નિયંત્રણ ક્યાં સક્રિય છે અને તમને ઇનપુટનો કેટલો પુનઃઉપયોગ મળી રહ્યો છે.",
+ "promptTrendDesc": "છેલ્લા 24 કલાક દરમિયાન દર કલાકનું વિનંતી પ્રમાણ, કૅશ કવરેજ અને કૅશ રીડ પ્રમાણ.",
+ "cachedRequests": "કૅશ કરેલી વિનંતીઓ",
+ "cachedRequests24h": "કૅશ કરેલી વિનંતીઓ (24 કલાક)",
+ "cacheHitRate": "કૅશ હિટ દર",
+ "cacheRate": "કૅશ દર",
+ "cacheRateDesc": "કુલ વિનંતીઓમાંથી",
+ "cachedTokens": "કૅશ રીડ ટોકન્સ",
+ "cacheCreationTokens": "કૅશ રાઇટ ટોકન્સ",
+ "cacheMetrics": "પ્રોમ્પ્ટ કૅશ મેટ્રિક્સ",
+ "withCacheControl": "કૅશ કંટ્રોલ સાથે",
+ "cachedTokensRead": "કૅશમાંથી વાંચેલ",
+ "cacheCreationWrite": "કૅશમાં લખાયેલ",
+ "cacheReuseRatio": "કૅશ પુનઃઉપયોગ ગુણોત્તર",
+ "cacheReuseRatioDesc": "કૅશ રીડ ટોકન્સ / કુલ ઇનપુટ ટોકન્સ",
+ "estCostSaved": "અંદાજિત ખર્ચ બચત",
+ "lastUpdated": "છેલ્લે અપડેટ થયેલ",
+ "hoursTracked": "ટ્રૅક કરેલા કલાકો",
+ "busiestHour": "સૌથી વ્યસ્ત કલાક",
+ "peakCacheRate": "ટોચનો કૅશ દર",
+ "trendHour": "કલાક",
+ "activityVolume": "પ્રવૃત્તિ",
+ "requestsShort": "વિનંતીઓ",
+ "inputShort": "ઇનપુટ",
+ "cachedShort": "કૅશ થયેલ",
+ "writeShort": "લખાણ",
+ "resetting": "રીસેટ થઈ રહ્યું છે...",
+ "resetMetrics": "મેટ્રિક્સ રીસેટ કરો",
+ "byProvider": "પ્રદાતા મુજબ વિભાજન",
+ "providerCacheRateDesc": "દરેક પ્રદાતા કુલ ઇનપુટ ટોકન્સ, કૅશ રીડ ટોકન્સ અને કૅશ રાઇટ ટોકન્સ દર્શાવે છે, જેથી તમે મૂળ કુલ આંકડાઓ સામે પુનઃઉપયોગ ગુણોત્તર ચકાસી શકો.",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "વિનંતીઓ",
+ "inputTokens": "કુલ ઇનપુટ ટોકન્સ",
+ "cachedTokensCol": "કૅશ રીડ",
+ "cacheCreation": "કૅશ રાઇટ",
+ "trend24h": "કૅશ વલણ (24 કલાક)",
+ "peakCached": "સૌથી વધુ કૅશ થયેલ",
+ "cached": "કૅશ થયેલ",
+ "overview": "વિહંગાવલોકન",
"tableProvider": "પ્રદાતા",
"tableModel": "મોડેલ",
"performanceTitle": "પ્રદર્શન",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRouteનું પોતાનું નિર્ધારિત પ્રતિસાદ કૅશ. સક્ષમ હોય ત્યારે, વારંવાર આવતી નોન-સ્ટ્રીમિંગ temperature=0 વિનંતીઓ અપસ્ટ્રીમ પ્રદાતાનો સંપર્ક કર્યા વિના સ્થાનિક રીતે પૂરી કરી શકાય છે.",
+ "semanticCacheDisabledDesc": "સિમેન્ટિક કૅશ અક્ષમ છે. તમે Settingsમાં તેને ફરી ચાલુ ન કરો ત્યાં સુધી OmniRoute સ્થાનિક પ્રતિસાદના પુનઃઉપયોગને ટાળશે.",
+ "semanticEntriesDesc": "હાલમાં SQLiteમાં સંગ્રહિત કાયમી સિમેન્ટિક કૅશ રેકોર્ડ્સ. પ્રદાતા-બાજુની પ્રોમ્પ્ટ કૅશ પ્રવૃત્તિ અહીં સૂચિબદ્ધ નથી.",
+ "searchEntries": "એન્ટ્રીઓ શોધો...",
+ "search": "શોધો",
+ "loading": "લોડ થઈ રહ્યું છે...",
+ "entriesLoadError": "સિમેન્ટિક કૅશ એન્ટ્રીઓ લોડ કરવામાં નિષ્ફળતા.",
+ "noEntries": "કોઈ કૅશ એન્ટ્રી મળી નથી",
+ "noPromptCacheData": "હજુ સુધી પ્રદાતા-બાજુની કોઈ પ્રોમ્પ્ટ કૅશ પ્રવૃત્તિ નોંધાઈ નથી.",
+ "noTrendData": "છેલ્લા 24 કલાકમાં કોઈ પ્રોમ્પ્ટ કૅશ પ્રવૃત્તિ નોંધાઈ નથી.",
+ "signature": "હસ્તાક્ષર",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "બનાવેલ",
+ "expires": "સમાપ્તિ",
+ "actions": "ક્રિયાઓ",
+ "deduplicatedRequests": "ડુપ્લિકેટ દૂર કરેલી વિનંતીઓ",
+ "savedCalls": "બચાવેલા API કૉલ્સ",
+ "totalProcessed": "પ્રક્રિયા કરેલી કુલ વિનંતીઓ",
+ "disabled": "અક્ષમ",
+ "totalRequests": "કુલ વિનંતીઓ",
"reasoningCache": "રિઝનિંગ રિપ્લે",
"reasoningCacheDesc": "મલ્ટિ-ટર્ન ટૂલ કૉલિંગ ફ્લો માટે મોડલ થિંકિંગ સાચવે છે",
"reasoningEntries": "સક્રિય પ્રવેશો",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}m પહેલાં",
"hoursAgo": "{hours}h પહેલાં",
"daysAgo": "{days}d પહેલાં",
- "entries": "Entries"
+ "entries": "એન્ટ્રીઓ"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
+ "levelGlobal": "વૈશ્વિક",
+ "levelProvider": "પ્રદાતા",
+ "levelCombo": "કોમ્બો",
+ "levelKey": "કી",
+ "levelDirect": "સીધું (પ્રોક્સી વિના)",
+ "titleGlobal": "વૈશ્વિક પ્રોક્સી ગોઠવણી",
+ "titleLevel": "{level} પ્રોક્સી — {label}",
+ "loading": "પ્રોક્સી ગોઠવણી લોડ થઈ રહી છે...",
+ "inheritingFrom": "આમાંથી વારસામાં પ્રાપ્ત",
+ "source": "સ્રોત",
+ "savedProxy": "સાચવેલ પ્રોક્સી",
+ "custom": "કસ્ટમ",
+ "selectSavedProxyPlaceholder": "સાચવેલ પ્રોક્સી પસંદ કરો...",
+ "proxyType": "પ્રોક્સીનો પ્રકાર",
+ "host": "હોસ્ટ",
+ "hostPlaceholder": "1.2.3.4 અથવા proxy.example.com",
+ "port": "પોર્ટ",
+ "authOptional": "પ્રમાણીકરણ (વૈકલ્પિક)",
+ "username": "વપરાશકર્તા નામ",
+ "usernamePlaceholder": "વપરાશકર્તા નામ",
+ "password": "પાસવર્ડ",
+ "passwordPlaceholder": "પાસવર્ડ",
+ "connected": "કનેક્ટ થયેલ",
"ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "connectionFailed": "કનેક્શન નિષ્ફળ ગયું",
+ "testConnection": "કનેક્શનનું પરીક્ષણ કરો",
+ "clear": "સાફ કરો",
+ "cancel": "રદ કરો",
+ "save": "સાચવો",
+ "errorSelectSavedProxy": "કૃપા કરીને પહેલાં સાચવેલ પ્રોક્સી પસંદ કરો.",
+ "errorSelectProxyFirst": "કૃપા કરીને પહેલાં પ્રોક્સી પસંદ કરો.",
+ "errorProxyNotFound": "પસંદ કરેલ પ્રોક્સી મળી નથી.",
+ "errorClearSavedProxy": "સાચવેલ પ્રોક્સી સાફ કરવામાં નિષ્ફળ",
+ "errorSaveProxy": "પ્રોક્સી કૉન્ફિગરેશન સાચવવામાં નિષ્ફળ",
+ "errorClearProxy": "પ્રોક્સી કૉન્ફિગરેશન સાફ કરવામાં નિષ્ફળ",
+ "errorSocks5Hidden": "SOCKS5 કૉન્ફિગર કરેલું છે પરંતુ NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false હોવાને કારણે છુપાયેલું છે."
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "{providerName} સાથે કનેક્ટ કરો",
+ "waiting": "અધિકૃતતાની રાહ જોવાઈ રહી છે",
+ "completeAuthInPopup": "પૉપઅપમાં અધિકૃતતા પૂર્ણ કરો.",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "પૉપઅપ બ્લૉક થયું છે? URL મૅન્યુઅલી દાખલ કરો",
+ "deviceCodeVisitUrl": "નીચે આપેલા URLની મુલાકાત લો અને કોડ દાખલ કરો:",
+ "deviceCodeVerificationUrl": "ચકાસણી URL",
+ "deviceCodeYourCode": "તમારો કોડ",
+ "deviceCodeWaiting": "અધિકૃતતાની રાહ જોવાઈ રહી છે...",
"googleLoopbackTitle": "આ સરનામેથી Google સાઇન-ઇન પૂર્ણ કરી શકાતું નથી",
"googleLoopbackWhatHappens": "ગૂગલ માત્ર ત્યારે જ અધિકૃતતા કોડ પ્રકાશિત કરે છે જ્યારે {redirectUri} બ્રાઉઝર દ્વારા પહોંચવામાં આવે છે જે સાઇન-ઇનને મંજૂરી આપે છે. અહીં તે સરનામું આ કમ્પ્યુટરને દર્શાવે છે, ઓમ્નીરૂટ સર્વર પર નહીં — તેથી સંમતિ સ્ક્રીન અટકી જાય છે અને પુનઃદિશા કરવામાં આવતી નથી, અને કોપી કરવા માટે કોઈ કૉલબેક URL નથી.",
"googleLoopbackRecommended": "સૂચવેલ — આ તમારા પોતાના કમ્પ્યુટરમાં ચલાવો, પછી નીચે પરિણામ પેસ્ટ કરો:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "અથવા SSH દ્વારા ડેશબોર્ડ પોર્ટને આગળ વધારવા અને ટનલ દ્વારા OmniRouteને ફરીથી લોડ કરો:",
"googleLoopbackTunnelNote": "તમારા SSH યુઝરનેમ સાથે {userPlaceholder} બદલો, ટર્મિનલ ખોલી રાખો, પછી {localUrl} ખોલો અને ત્યાંથી ફરી કનેક્ટ કરો.",
"googleLoopbackHeadlessAlt": "કોઈ સ્થાનિક કૉલબેક વિના સંપૂર્ણ હેડલેસ ઉપયોગ માટે, તમારા પોતાના Google OAuth પ્રમાણપત્રો અને એક જાહેર આધાર URL કૉન્ફિગર કરો.",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "રિમોટ ઍક્સેસ: તમે OmniRouteને રિમોટ રીતે ઍક્સેસ કરી રહ્યા હોવાથી, અધિકૃતતા પછી તમને એક ભૂલ પેજ દેખાશે (localhost મળ્યું નથી). આ સામાન્ય છે — ફક્ત તમારા બ્રાઉઝરના ઍડ્રેસ બારમાંથી સંપૂર્ણ URL કૉપી કરો અને તેને નીચે પેસ્ટ કરો.",
"loopbackMismatchTitle": "આ સરનામેથી સાઇન-ઇન પૂર્ણ કરી શકાતું નથી",
"loopbackMismatchWhatHappened": "શું થઈ રહ્યું છે",
"loopbackMismatchExplanation": "લોગિનને મંજૂરી આપ્યા પછી, {providerName} હંમેશા બ્રાઉઝરને {redirectUri} પર પાછું મોકલે છે. તે સરનામું આ બ્રાઉઝર ચલાવતી કમ્પ્યુટરને દર્શાવે છે, ઓમ્નીરૂટ સર્વર પર નહીં — તેથી અધિકૃતતા કોડ ઓમ્નીરૂટ સુધી પહોંચતું નથી અને પ્રદાતા ભૂલ વિના સાઇન-ઇન નિષ્ફળ જાય છે.",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "આ બ્રાઉઝરમાં, ટનલ દ્વારા ઓમ્નીરૂટ ફરીથી ખોલો:",
"loopbackMismatchStep3": "ત્યારે નવા ટેબમાંથી {providerName} ફરીથી કનેક્ટ કરો. હવે કૉલબેક સર્વર સુધી પહોંચે છે અને લૉગિન સામાન્ય રીતે પૂર્ણ થાય છે.",
"loopbackMismatchAlternative": "SSH ઍક્સેસ નથી? જો આ પ્રદાતા ટોકન આયાત ટેબ પ્રદાન કરે છે, તો ટોકન સાથે જોડાઓ — તે માર્ગ લૂપબેક કૉલબેકનો ઉપયોગ નથી કરે.",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "પગલું 1: આ URL તમારા બ્રાઉઝરમાં ખોલો",
+ "copy": "કૉપી કરો",
+ "step2PasteCallback": "પગલું 2: કૉલબૅક URL અથવા અધિકૃતતા કોડ અહીં પેસ્ટ કરો",
+ "step2Hint": "અધિકૃતતા પછી, સંપૂર્ણ કૉલબૅક URL પેસ્ટ કરો. Claude Code અને Cline માટે, તમે પ્રમાણીકરણ કોડ સીધો પણ પેસ્ટ કરી શકો છો, ઉદાહરણ તરીકે code#state.",
+ "connect": "કનેક્ટ કરો",
+ "cancel": "રદ કરો",
+ "success": "કનેક્શન સફળ થયું!",
+ "successMessage": "તમારું {providerName} એકાઉન્ટ કનેક્ટ થઈ ગયું છે.",
+ "done": "પૂર્ણ",
+ "error": "કનેક્શન નિષ્ફળ થયું",
+ "tryAgain": "ફરી પ્રયાસ કરો",
"errorSessionIncomplete": "OAuth સત્ર અધૂરો છે (રિડાયરેક્ટ URI અથવા કોડ વેરિફાયર ગુમ છે). કનેક્શન ફરી શરૂ કરો અને ફરી પ્રયાસ કરો.",
"errorExchangeFailed": "વિનિમય નિષ્ફળ ગયો",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: ડિફોલ્ટ Google OAuth ક્રેડેંશિયલ્સ ફક્ત localhost પર જ કાર્ય કરે છે. રિમોટ ઉપયોગ માટે, તમારા પોતાના OAuth ક્રેડેંશિયલ્સને પર્યાવરણ ચલોથી કન્ફિગર કરો: ANTIGRAVITY_OAUTH_CLIENT_ID અને ANTIGRAVITY_OAUTH_CLIENT_SECRET. README વિભાગ 'OAuth on a Remote Server' જુઓ.",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Cursor વડે લૉગ ઇન કરો",
+ "tabImport": "ટોકન ઇમ્પોર્ટ કરો",
+ "loginDescription": "Cursorનું બ્રાઉઝર લૉગિન ખોલે છે. Dockerમાં કાર્ય કરે છે — તમારા હોસ્ટ બ્રાઉઝરમાં મંજૂરી આપો, પછી અહીં પાછા આવો.",
+ "loginWithCursor": "Cursor વડે લૉગ ઇન કરો",
+ "startingLogin": "શરૂ થઈ રહ્યું છે…",
+ "waitingApproval": "Cursor લૉગિનની મંજૂરીની રાહ જોવાઈ રહી છે…",
+ "openUrlHint": "જો બ્રાઉઝર ન ખૂલ્યું હોય:",
+ "openLoginLink": "લૉગિન પેજ ખોલો",
+ "cancelLogin": "લૉગિન રદ કરો",
+ "autoDetecting": "ટોકન આપમેળે શોધાઈ રહ્યા છે...",
+ "readingFromCursor": "Cursor IDE અથવા cursor-agentમાંથી વાંચી રહ્યું છે",
+ "tokensAutoDetected": "Cursor IDEમાંથી ટોકન સફળતાપૂર્વક આપમેળે શોધાઈ ગયા!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Docker માં ચલાવી રહ્યા છો? Cursor સાથે લૉગિન કરવાનું પસંદ કરો. IDE ઑટો-ઇમ્પોર્ટ અને cursor-agent સામાન્ય રીતે કન્ટેનરની અંદર ઉપલબ્ધ નથી. docs/providers/CURSOR-DOCKER.md જુઓ.",
+ "accessToken": "ઍક્સેસ ટોકન",
+ "refreshToken": "રિફ્રેશ ટોકન",
+ "refreshTokenPlaceholder": "વૈકલ્પિક — ટોકનને આપમેળે રિફ્રેશ કરવાની સુવિધા આપે છે",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "ઍક્સેસ ટોકન આપમેળે ભરાઈ જશે...",
+ "machineId": "મશીન ID",
+ "optional": "(વૈકલ્પિક)",
+ "machineIdPlaceholder": "મશીન ID આપમેળે ભરાઈ જશે...",
+ "importing": "ઇમ્પોર્ટ થઈ રહ્યું છે...",
+ "importToken": "ટોકન ઇમ્પોર્ટ કરો",
+ "cancel": "રદ કરો",
+ "errorAutoDetect": "ટોકન આપમેળે શોધી શકાયાં નથી",
+ "errorAutoDetectFailed": "ટોકન આપમેળે શોધવામાં નિષ્ફળતા",
+ "errorEnterToken": "કૃપા કરીને ઍક્સેસ ટોકન દાખલ કરો",
+ "errorImportFailed": "ઇમ્પોર્ટ નિષ્ફળ થયું",
+ "errorLoginStart": "Cursor લૉગિન શરૂ કરવામાં નિષ્ફળતા",
+ "errorLoginPoll": "Cursor લૉગિન નિષ્ફળ થયું",
+ "errorLoginTimeout": "Cursor લૉગિનનો સમય સમાપ્ત થયો — ફરી પ્રયાસ કરો"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "કિંમત ગોઠવણી",
+ "loading": "કિંમતનો ડેટા લોડ થઈ રહ્યો છે...",
+ "pricingRatesFormat": "કિંમત દરોનું ફોર્મેટ",
+ "ratesDescription": "બધા દરો પ્રતિ દસ લાખ ટોકન દીઠ ડૉલરમાં છે ($/1M tokens). ઉદાહરણ: 2.50 નો ઇનપુટ દર એટલે 1,000,000 ઇનપુટ ટોકન દીઠ $2.50.",
+ "model": "મોડેલ",
+ "input": "ઇનપુટ",
+ "output": "આઉટપુટ",
+ "cached": "કૅશ કરેલ",
+ "reasoning": "તર્ક",
+ "cacheCreation": "કૅશ નિર્માણ",
+ "noPricingData": "કિંમતનો કોઈ ડેટા ઉપલબ્ધ નથી",
+ "resetToDefaults": "ડિફૉલ્ટ પર રીસેટ કરો",
+ "cancel": "રદ કરો",
+ "saving": "સાચવાઈ રહ્યું છે...",
+ "saveChanges": "ફેરફારો સાચવો",
+ "resetConfirm": "બધી કિંમતોને ડિફૉલ્ટ પર રીસેટ કરવી છે? આ ક્રિયા પાછી ફેરવી શકાતી નથી.",
+ "errorSaveFailed": "કિંમત સાચવવામાં નિષ્ફળતા",
+ "errorResetFailed": "કિંમત રીસેટ કરવામાં નિષ્ફળતા"
},
"proxyRegistry": {
"selectAllProxies": "બધા પ્રોક્સી પસંદ કરો",
"selectProxy": "{name} પસંદ કરો",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "પ્રૉક્સી રજિસ્ટ્રી",
+ "description": "ફરી વાપરી શકાય તેવી પ્રૉક્સીઓ સંગ્રહો અને સોંપણીઓ ટ્રૅક કરો.",
+ "importLegacy": "લેગસી ઇમ્પોર્ટ કરો",
+ "bulkAssign": "સામૂહિક સોંપણી",
+ "addProxy": "પ્રોક્સી ઉમેરો",
+ "loading": "પ્રોક્સીઓ લોડ થઈ રહી છે...",
+ "noProxies": "હજુ સુધી કોઈ પ્રોક્સી સાચવેલી નથી.",
+ "tableName": "નામ",
+ "tableEndpoint": "એન્ડપોઇન્ટ",
+ "tableStatus": "સ્થિતિ",
+ "tableHealth": "કાર્યક્ષમતા (24 કલાક)",
+ "tableUsage": "ઉપયોગ",
+ "tableActions": "ક્રિયાઓ",
+ "test": "પરીક્ષણ",
+ "edit": "સંપાદિત કરો",
+ "delete": "કાઢી નાખો",
+ "modalCreateTitle": "પ્રોક્સી બનાવો",
+ "modalEditTitle": "પ્રોક્સી સંપાદિત કરો",
+ "labelName": "નામ",
+ "labelType": "પ્રકાર",
"labelFamily": "IP ફેમિલી",
"familyAuto": "ઓટો (ડ્યુઅલ-સ્ટેક)",
"familyIpv4": "માત્ર IPv4",
"familyIpv6": "માત્ર IPv6",
"familyHint": "ઇગ્રેસ એડ્રેસ ફેમિલી. ઓટો ડ્યુઅલ-સ્ટેક રાખે છે; IPv4/IPv6 આ પ્રોક્સીને તે ફેમિલી સાથે પિન કરે છે (માત્ર IPv6 પ્રોક્સી હેઠળ v4 લીક થતા અટકાવે છે).",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "હોસ્ટ",
+ "labelPort": "પોર્ટ",
+ "labelUsername": "વપરાશકર્તા નામ",
+ "labelPassword": "પાસવર્ડ",
+ "labelRegion": "પ્રદેશ",
+ "labelStatus": "સ્થિતિ",
+ "labelNotes": "નોંધો",
+ "usernamePlaceholderEdit": "વર્તમાન વપરાશકર્તા નામ જાળવી રાખવા માટે ખાલી છોડો",
+ "passwordPlaceholderEdit": "વર્તમાન પાસવર્ડ જાળવી રાખવા માટે ખાલી છોડો",
+ "statusActive": "સક્રિય",
+ "statusInactive": "નિષ્ક્રિય",
+ "cancel": "રદ કરો",
+ "save": "સાચવો",
+ "bulkModalTitle": "સામૂહિક પ્રોક્સી સોંપણી",
+ "bulkLabelScope": "વ્યાપ",
+ "bulkLabelProxy": "પ્રોક્સી",
+ "bulkClearAssignment": "(સોંપણી દૂર કરો)",
+ "bulkLabelScopeIds": "વ્યાપ IDs (અલ્પવિરામ અથવા નવી લીટીથી અલગ કરેલા)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "લાગુ કરો",
"labelScope": "સ્કોપ",
"labelProxy": "પ્રોક્સી",
"scopeGlobal": "વૈશ્વિક",
@@ -10893,19 +10904,19 @@
"bulkImportErrorInvalidPort": "અમાન્ય PORT (1-65535 હોવું આવશ્યક છે)",
"bulkImportErrorInvalidType": "અમાન્ય TYPE (http, https, અથવા socks5 નો ઉપયોગ કરો)",
"bulkImportErrorInvalidStatus": "અમાન્ય સ્થિતિ (સક્રિય અથવા નિષ્ક્રિય ઉપયોગ કરો)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "પ્રોક્સી રજિસ્ટ્રી લોડ કરવામાં નિષ્ફળતા",
+ "errorNameHostRequired": "નામ અને હોસ્ટ આવશ્યક છે",
+ "errorSaveFailed": "પ્રોક્સી સાચવવામાં નિષ્ફળતા",
+ "errorDeleteFailed": "પ્રોક્સી કાઢી નાખવામાં નિષ્ફળ",
+ "errorForceDeleteConfirm": "આ પ્રોક્સી હજી પણ ફાળવેલ છે. બળજબરીથી કાઢી નાખીને તમામ ફાળવણીઓ દૂર કરવી છે?",
+ "errorMigrateFailed": "જૂના પ્રોક્સી કૉન્ફિગને માઇગ્રેટ કરવામાં નિષ્ફળ",
+ "errorBulkFailed": "બલ્ક ફાળવણી ચલાવવામાં નિષ્ફળ",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "નિષ્ફળ",
+ "successRate": "{rate}% સફળતા",
+ "avgLatency": "સરેરાશ {latency}ms",
+ "assignmentsCount": "{count} ફાળવણીઓ",
"noData": "—",
"testSuccess": "✓ {ip}",
"testLatency": "{latency}ms",
@@ -10938,7 +10949,7 @@
"batchSelectedCount": "{count} પસંદ કરેલ",
"batchDeleteSelected": "પસંદ કરેલ {count} ને કાઢી નાખો",
"batchActivateSelected": "પસંદ કરેલ {count} ને સક્ષમ કરો",
- "testPassed": "✓ OK",
+ "testPassed": "✓ બરાબર",
"close": "બંધ કરો",
"managePool": "પૂલનું સંચાલન કરો",
"poolTitle": "પ્રોક્સી પૂલ અને રોટેશન",
@@ -10957,6 +10968,9 @@
"strategyLatency": "લેટન્સી-ઓપ્ટિમાઇઝ્ડ",
"poolMembersLabel": "પૂલ સભ્યો ({count})",
"poolNoMembers": "આ પૂલમાં હજી સુધી કોઈ પ્રોક્સી નથી.",
+ "poolEgressObservation": "{connections, plural, one {# કનેક્શન} other {# કનેક્શનો}} દ્વારા વપરાયેલા {exits, plural, one {# એક્ઝિટ} other {# એક્ઝિટ્સ}} · એક એક્ઝિટ પર વધુમાં વધુ {max} · છેલ્લા {hours} કલાક",
+ "poolEgressObservationEmpty": "છેલ્લા {hours} કલાકમાં કોઈ ટ્રાફિક જોવા મળ્યો નથી",
+ "poolEgressObservationHint": "આ સમયગાળા માટે પ્રોક્સી લૉગમાંથી ગણતરી કરેલી: આ પૂલના સભ્યો માટે જોવા મળેલા અલગ-અલગ એગ્રેસ IP અને તેમનો ઉપયોગ કરનારા OmniRoute કનેક્શન્સ. \"એક એક્ઝિટ પર\"નો અર્થ આ સમયગાળા દરમિયાન છે, એક જ સમયે નહીં. પ્રતિ-IP 429 લૉકઆઉટ ફક્ત સમાન પ્રોવાઇડર ફૅમિલીના કનેક્શન્સને થોભાવે છે.",
"poolRemove": "દૂર કરો",
"poolRemoveFailed": "પૂલમાંથી પ્રોક્સી દૂર કરવામાં નિષ્ફળ",
"poolAddLabel": "પ્રોક્સી ઉમેરો",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "પૂલ અસાઇનમેન્ટ સાચવવામાં નિષ્ફળ"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "મોડેલ પ્લેગ્રાઉન્ડ",
+ "description": "ડૅશબોર્ડ પરથી કોઈપણ મોડેલનું સીધું પરીક્ષણ કરો. પ્રદાતા, મોડેલ અને એન્ડપોઇન્ટનો પ્રકાર પસંદ કરો, પછી મૂળ પ્રતિસાદ જોવા માટે વિનંતી મોકલો.",
+ "endpoint": "એન્ડપોઇન્ટ",
+ "provider": "પ્રદાતા",
+ "model": "મોડેલ",
+ "accountKey": "એકાઉન્ટ / કી",
+ "autoAccounts": "સ્વચાલિત ({count} એકાઉન્ટ)",
+ "noAccounts": "કોઈ એકાઉન્ટ નથી",
+ "send": "મોકલો",
+ "cancel": "રદ કરો",
+ "audioFile": "ઑડિયો ફાઇલ",
+ "attachImages": "છબીઓ જોડો (વિઝન)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "વધુમાં વધુ 4 છબીઓ",
+ "selectAudioFile": "ટ્રાન્સક્રિપ્શન માટે ઑડિયો ફાઇલ પસંદ કરો (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "બધું સાફ કરો",
+ "request": "વિનંતી",
+ "response": "પ્રતિસાદ",
+ "transcription": "ટ્રાન્સક્રિપ્શન",
+ "copy": "કૉપિ કરો",
+ "resetToDefault": "ડિફૉલ્ટ પર રીસેટ કરો",
+ "downloadAudio": "ઑડિયો ડાઉનલોડ કરો",
+ "copyText": "ટેક્સ્ટ કૉપિ કરો",
+ "transcriptionHint": "ટ્રાન્સક્રિપ્શન multipart/form-data નો ઉપયોગ કરે છે. ઉપર ઑડિયો ફાઇલ અપલોડ કરો — નીચેનું JSON વધારાના પરિમાણો (મોડેલ, ભાષા) નિયંત્રિત કરે છે.",
+ "imagesGenerated": "{count} છબીઓ જનરેટ થઈ",
+ "generatedImage": "જનરેટ કરેલી છબી {index}",
+ "save": "સાચવો",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "ચેટ પૂર્ણતાઓ",
+ "responses": "પ્રતિસાદો",
"completions": "કમ્પ્લીશન્સ",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "છબી જનરેશન",
+ "embeddings": "એમ્બેડિંગ્સ",
+ "speech": "ટેક્સ્ટ-ટુ-સ્પીચ",
+ "transcription": "ઑડિયો ટ્રાન્સક્રિપ્શન",
+ "video": "વિડિયો જનરેશન",
+ "music": "સંગીત જનરેશન",
"moderations": "મોડરેશન્સ",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "ફરી ક્રમ આપો",
+ "search": "વેબ શોધ",
"webFetch": "વેબ ફેચ"
},
"conversationalChat": "વાતચીત ચેટ",
"clearChat": "ચેટ સાફ કરો",
"typeMessagePlaceholder": "સંદેશ લખો... (નવી લાઇન માટે Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "ચેટ",
+ "tabCompare": "સરખામણી કરો",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
- "topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "tabBuild": "બિલ્ડ",
+ "configPane": "કૉન્ફિગ",
+ "systemPrompt": "સિસ્ટમ પ્રોમ્પ્ટ",
+ "systemPromptPlaceholder": "તમે એક મદદરૂપ સહાયક છો.",
+ "modelPlaceholder": "દા.ત. openai/gpt-4o",
+ "endpointLabel": "એન્ડપોઇન્ટ",
+ "parametersLabel": "પેરામીટર્સ",
+ "collapseConfig": "કૉન્ફિગ પેન સંકોચો",
+ "expandConfig": "કૉન્ફિગ પેન વિસ્તારો",
+ "temperature": "ટેમ્પરેચર",
+ "maxTokens": "મહત્તમ ટોકન્સ",
+ "topP": "ટૉપ-p",
+ "presencePenalty": "પ્રેઝન્સ પેનલ્ટી",
+ "frequencyPenalty": "ફ્રીક્વન્સી પેનલ્ટી",
"reasoningLabel": "તર્ક",
"thinking": "વિચારણા",
"effort": "પ્રયાસ",
"effortDefault": "ડિફૉલ્ટ",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "રેન્ડમ (ખાલી છોડો)",
+ "presetsLabel": "પ્રીસેટ્સ",
+ "loadPreset": "પ્રીસેટ લોડ કરો",
+ "savePreset": "પ્રીસેટ સાચવો",
+ "noPresets": "કોઈ પ્રીસેટ્સ નથી",
+ "presetNamePlaceholder": "પ્રીસેટનું નામ",
+ "savingPreset": "સાચવી રહ્યાં છીએ…",
+ "nameRequired": "નામ આવશ્યક છે",
+ "failedToSavePreset": "પ્રીસેટ સાચવવામાં નિષ્ફળ",
+ "improvePrompt": "પ્રોમ્પ્ટ સુધારો",
+ "improvingPrompt": "સુધારી રહ્યાં છીએ…",
+ "improvePromptTitle": "AI વડે તમારા પ્રોમ્પ્ટને સુધારો",
+ "setModelFirst": "પહેલા મોડેલ સેટ કરો",
"setModelInConfigFirst": "પહેલા કન્ફિગ પેનલમાં મોડેલ સેટ કરો.",
"improvePromptFailed": "પ્રોમ્પ્ટ સુધારવાનું નિષ્ફળ ગયું.",
"improvePromptAria": "AI નો ઉપયોગ કરીને પ્રોમ્પ્ટ સુધારો",
"confirmImprovePrompt": "પ્રોમ્પ્ટ સુધારવાની પુષ્ટિ કરો",
"improvePromptDescription": "આ તમારા વર્તમાન સિસ્ટમ પ્રોમ્પ્ટને સુધારેલ સંસ્કરણ જનરેટ કરવા માટે trae.ai મારફતે પોપઅપમાં અધિકૃત કરો. ટોકન આયાત થયા પછી પોપઅપ પોતે બંધ થઈ જશે.",
"authorizeImportant": "મહત્વપૂર્ણ: તમે પહેલા trae.ai માં આ બ્રાઉઝરમાં લોગિન કરેલ હોવું જોઈએ. અધિકૃત પાનું માત્ર એક અસ્તિત્વમાં રહેલ સત્રને પુષ્ટિ કરે છે — તે તમને લોગિન કરી શકતું નથી. જો તમે \"લોગિન નિષ્ફળ\" જુઓ, તો \"Open solo.trae.ai\" પર ક્લિક કરો, લોગિન કરો, પછી અહીં પાછા આવો.",
"waitingForAuthorization": "trae.ai માટે રાહ જોઈ રહ્યા છીએ…",
"authorizeWithBrowser": "બ્રાઉઝર સાથે અધિકૃત કરો",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai ખોલો",
"orPasteManually": "અથવા ટોકન હાથે પેસ્ટ કરો",
"manualInstructions": "solo.trae.ai પર સાઇન ઇન કરો, DevTools → Network ખોલો, કોઈપણ ચેટ સંદેશ મોકલો, અને Authorization: Cloud-IDE-JWT {tokenPlaceholder} વિનંતી હેડરમાંથી JWT નકલ કરો. JWT ની આયુષ્ય ~14 દિવસ છે. વૈકલ્પિક ઓળખ ક્ષેત્રો સમાન વિનંતી શરીરમાં common_params માંથી આવે છે.",
"accessTokenLabel": "એક્સેસ ટોકન (ક્લાઉડ-આઈડી-જેડબ્લ્યુટી)",
@@ -14048,11 +14081,11 @@
"actionApprove": "યોજના મંજૂર કરો",
"actionCancel": "રદ કરો",
"actionSeeInGraph": "ગ્રાફમાં જુઓ",
+ "actionRepeat": "પુનરાવર્તન કરો",
"actionDone": "ક્રિયા લાગુ કરાઈ",
"actionFailed": "ક્રિયા નિષ્ફળ: {error}",
"detailFailed": "વિગતો લોડ કરવામાં નિષ્ફળ: {error}",
"mirroredInA2A": "A2A માં પ્રતિબિંબિત",
- "actionRepeat": "પુનરાવર્તન કરો",
"repeatConfirm": "પુષ્ટિ કરવા માટે ફરીથી ક્લિક કરો",
"repeatDone": "નવું રન બનાવવામાં આવ્યું",
"repeatUnavailable": "મૂળ ઇનપુટ ઉપલબ્ધ નથી"
@@ -14066,57 +14099,57 @@
"networkError": "નેટવર્ક ભૂલ — પ્રદાતા એક્સપોઝર સેટિંગને અપડેટ કરી શકતા નથી"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "સમર્થકો માટેની ઑફરો",
+ "subtitle": "Radar તરફથી સત્તાવાર ડિસ્કાઉન્ટ, ક્રેડિટ્સ, ટ્રાયલ્સ અને સમીક્ષા કરેલા ભાગીદાર લાભો.",
+ "backToRadar": "Radar પર પાછા જાઓ",
+ "loading": "ઑફરો લોડ થઈ રહી છે...",
+ "refresh": "ઑફરો રિફ્રેશ કરો",
+ "refreshing": "રિફ્રેશ થઈ રહ્યું છે...",
+ "loadFailed": "અમે ઑફરો રિફ્રેશ કરી શક્યા નથી. છેલ્લી ચકાસેલી સ્થાનિક કૅશ જાળવી રાખવામાં આવી છે.",
+ "empty": "અત્યારે કોઈ સક્રિય ઑફર ઉપલબ્ધ નથી.",
+ "keyRequiredTitle": "સમર્થક કી જરૂરી છે",
+ "keyRequiredDescription": "ઑફરો એ Radarનો લાઇવ લાભ છે. Radar સ્ક્રીન પર હાલની સમર્થક કી ઉમેરો, તમારા યોગદાનકર્તા સ્ટેટસની ચકાસણી કરો અથવા કી મેળવવા માટે પ્રોજેક્ટને સમર્થન આપો.",
+ "contributorButton": "હું યોગદાનકર્તા છું",
+ "supporterButton": "પ્રોજેક્ટને સમર્થન આપો",
+ "partnerBadge": "ભાગીદાર",
+ "officialBadge": "સત્તાવાર",
+ "conditionsLabel": "શરતો:",
+ "validUntil": "{date} સુધી માન્ય",
+ "noExpiry": "કોઈ સમાપ્તિ તારીખ જાહેર કરાઈ નથી",
+ "openOffer": "ઑફર જુઓ",
+ "trialDays": "{days, plural, one {# દિવસ} other {# દિવસો}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "રડાર ઇન્ટેલિજન્સ",
+ "subtitle": "Radarની માલિકીની ELO રેન્કિંગ્સ અને તથ્ય-આધારિત કેટલોગ ફેરફારો.",
+ "backToRadar": "Radar પર પાછા જાઓ",
+ "loading": "Intel લોડ થઈ રહ્યું છે...",
+ "refresh": "Intel રિફ્રેશ કરો",
+ "syncing": "રિફ્રેશ થઈ રહ્યું છે...",
+ "loadFailed": "અમે Intel રિફ્રેશ કરી શક્યા નથી. છેલ્લી ચકાસેલી સ્થાનિક કૅશ જાળવી રાખવામાં આવી છે.",
+ "empty": "હજુ સુધી કોઈ ચકાસાયેલ Intel સ્નૅપશૉટ ઉપલબ્ધ નથી.",
+ "supporterBadge": "Radar સમર્થક",
+ "methodology": "પદ્ધતિ",
+ "eloMethod": "ELO, પ્રારંભિક {initial}, K={factor}",
+ "freshness": "કેટલોગની તાજગી",
+ "ageDays": "{days, plural, one {# દિવસ જૂનું} other {# દિવસ જૂનું}}",
+ "trend": "કેટલોગનું વલણ",
+ "modelDelta": "{current} મૉડલ્સ, +{added} / -{removed}",
+ "ranking": "મૉડલ રેન્કિંગ",
+ "noRankings": "હજુ સુધી કોઈ પુષ્ટિ થયેલી સરખામણીઓ ઉપલબ્ધ નથી.",
+ "model": "મૉડલ",
+ "category": "શ્રેણી",
+ "rating": "રેટિંગ",
+ "matches": "મૅચો",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "તાજું",
+ "aging": "જૂનું થઈ રહ્યું છે",
+ "stale": "વાસી"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "વધી રહ્યું છે",
+ "stable": "સ્થિર",
+ "shrinking": "ઘટી રહ્યું છે"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "વિનંતી પ્રદાતા સંદર્ભ વિન્ડોને પાર કરે છે"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference એ OmniRouteનો ઓપન સોર્સ મિત્ર છે",
+ "description": "એક ખર્ચ-ક્રમબદ્ધ ગેટવે, જે એક OpenAI-સુસંગત એન્ડપોઇન્ટ પાછળ ડઝનબંધ અગ્રણી મૉડલ્સનું પુનર્વેચાણ કરે છે — દરેક વિનંતીને સૌથી સસ્તા પાત્ર પ્રદાતા તરફ રૂટ કરે છે અને ક્યારેય સૂચિ કિંમતથી વધુ વસૂલતું નથી.",
+ "cta": "API Key મેળવો",
+ "partnerLinkNote": "ભાગીદાર લિંક",
+ "dismissAriaLabel": "બંધ કરો"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models કેટલોગમાં વિચાર-સ્તરના વેરિઅન્ટ્સ (દા.ત. -low, -medium, -high) બનાવવાનું નિષ્ક્રિય કરો."
}
diff --git a/src/i18n/messages/ha.json b/src/i18n/messages/ha.json
index 7f0aa59b2d..23e1e42268 100644
--- a/src/i18n/messages/ha.json
+++ b/src/i18n/messages/ha.json
@@ -209,7 +209,7 @@
"enableCloud": "Kunna Cloud",
"expirationBannerExpiringSoon": "Tutar Karewa Ba da Jimawa ba",
"retry": "Sake Gwada",
- "embeddings": "Embeddings",
+ "embeddings": "Wakilcin lambobi",
"errorCount": "Adadin Kurakurai",
"backupReasonManual": "Dalilin Ajiyar Bayanai da Hannu",
"safeSearchModerate": "Matsakaicin Bincike Mai Tsaro",
@@ -832,7 +832,7 @@
"wizardStep3Validate": "Tabbatar",
"wizardStep4Cost": "Kuɗi da ƙirƙirawa",
"wizardProviderLabel": "Mai samarwa",
- "wizardEndpointLabel": "Endpoint",
+ "wizardEndpointLabel": "Mafitar haɗi",
"wizardModelLabel": "Samfuri",
"wizardInputKindJsonl": "JSONL",
"wizardInputKindCsv": "CSV (za mu sauya shi)",
@@ -992,16 +992,20 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Bayyana ID na madubi na claude/<provider>/<model> a /v1/models domin gano samfuran gateway na Claude Code ya jera samfuran da ba na Claude ba. Gargadi: idan aka kunna wannan a ko’ina, zai ninka shigarwar kundin ga duk abokan hulɗa.",
"featureFlagNoThinkingAliasEnabledDescription": "Babban maɓalli na aliases na gateway na no-think/<provider>/<model>. Kunne (tsoho): /v1/models yana bayyana nau'in da ba ya yin tunani ga kowane samfurin Claude mai ikon tunani da ya cancanta, kuma ID na no-think/ da aka aika cikin buƙata yana komawa ga ainihin samfurin tare da hana yin nazari. Kashe: ba a bayyana kowane nau'i, kuma ana ɗaukar ID na no-think/ kamar kowane ID na samfurin da ba a sani ba. Zaɓin shiga/fita na ModelSpec.noThinkingAlias na kowane samfurin yana ci gaba da aiki yayin da wannan yake kunne.",
"featureFlagChatVirtualLanesEnabledDescription": "Kunna layukan karɓa na kama-da-wane masu daidaitawa ga kowane tenant domin aika buƙatu zuwa provider (#9654): yawaitar buƙatun tenant ɗaya ba za ta sake jawo wa wani kuskuren 503 ba. Env var na OMNIROUTE_CHAT_VIRTUAL_LANES yana da fifiko kan wannan sauyin dashboard; sauye-sauye za su fara aiki bayan sake kunna server.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Shafukan masu samarwa na Dashboard: nuna alamar Kyauta kawai a kan sigogin da mai samarwar yake amincewa da su — wannan yana watsi da dabarar hasashen sunan nuni, filayen kyauta marasa ƙimar boolean, da kari na :free a kan masu samarwa da aka yi wa rajista waɗanda ba su da matakin kyauta da aka rubuta. Idan an Kashe, ana ci gaba da amfani da tsohuwar ƙa’idar alamar.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Rukunin proxy da juyawar opencode ta kowane asusu suna daina sake amfani da proxy da ya gaza kwanan nan (ya ƙi gwajin TCP, ko aka karɓi 429 ta cikinsa) na wani lokaci na kowane tsari wanda ke ninkuwa a duk lokacin da gazawar ta sake faruwa, har zuwa iyaka. Ba a rubuta matsayin proxy; idan aka ware dukkan waɗanda za a iya zaɓa, zaɓin ba ya canzawa. A kashe yake ta tsohuwa: tsarin zaɓi daidai yake da juyawa na yau da kullum.",
+ "featureFlagProxyPoolEgressObservationDescription": "A ƙarƙashin rukunin proxy a dashboard, nuna adadin IPs na fita da aka lura sun yi wa membobinsa hidima a cikin awanni 24 da suka gabata, adadin haɗin da suka yi amfani da su, da mafi yawan adadin da aka gani a bayan IP guda. Na karantawa kawai ne, ana lissafa shi daga kundin proxy, kuma ba a taɓa amfani da shi wajen routing. A kashe yake ta tsohuwa: editan rukuni ba ya canzawa kuma hanyar lura tana amsa null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "A yayin binciken lafiyar proxy, bari gwajin da manufa ta ƙi (401/403/429: proxy ya isar, amma wurin da ake nufi ya ƙi wannan IP na fita) ya sake saita jerin gazawar proxy masu jere, kamar gwajin da aka yi wa hidima. A kashe yake ta tsohuwa: ƙin amincewa yana kasancewa tsaka-tsaki kuma yana riƙe da jerin gazawar. 5xx yana kasancewa mara tabbas a kowane hali, kuma ƙin amincewa ba ya taɓa cirewa, kashewa ko sake kunna proxy.",
"sidebar": {
"home": "Gida",
- "dashboard": "Dashboard",
- "providers": "Providers",
+ "dashboard": "Allon sarrafawa",
+ "providers": "Masu samarwa",
"combos": "Haɗe-haɗe",
"usage": "Amfani",
"analytics": "Nazari",
"costs": "Kuɗaɗe",
"health": "Lafiya",
- "proxy": "Proxy",
+ "proxy": "Wakili",
"limits": "Iyakokin Ƙa'ida",
"cliTools": "Kayan Aikin CLI",
"media": "Kafofin Watsa Labarai",
@@ -1025,7 +1029,7 @@
"embeddedServices": "Ayyukan da aka Saka",
"embeddedServicesSubtitle": "Ayyukan gida na zaɓi",
"logs": "Rajistoci",
- "webhooks": "Webhooks",
+ "webhooks": "Ƙugiyoyin yanar gizo",
"webhooksSubtitle": "Sami sanarwar abubuwan da suka faru",
"logExport": "Fitar da rajista",
"logExportSubtitle": "Aika rajistocin kira zuwa waje",
@@ -1189,7 +1193,7 @@
"gamificationGroup": "Mayarwa Kamar Wasa",
"toolsGroup": "Kayan aiki",
"integrationsGroup": "Haɗe-haɗe",
- "proxyGroup": "Proxy",
+ "proxyGroup": "Wakili",
"costsParametersGroup": "Sigogin Kuɗi",
"auditGroup": "Binciken Ayyuka",
"batchGroup": "Rukuni",
@@ -1314,7 +1318,7 @@
"noResults": "Babu sakamako"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Ƙugiyoyin yanar gizo",
"description": "Saita kiran-baya na HTTP don abubuwan da ke faruwa a tsarin.",
"configuredWebhooks": "Webhooks da Aka Saita",
"configuredWebhooksDesc": "Sarrafa wuraren isarwa, abubuwan da aka yi rajista da su, matsayi, da aika gwaji.",
@@ -1721,7 +1725,7 @@
"costs": "Kuɗaɗe",
"health": "Lafiya",
"runtime": "Lokacin Gudana",
- "webhooks": "Webhooks",
+ "webhooks": "Kiran yanar gizo",
"home": "Gida",
"activity": "Ayyuka",
"agentSkills": "Ƙwarewar Wakili",
@@ -2014,7 +2018,7 @@
"comboHealthSuccessRate": "Adadin nasara",
"comboHealthQuotaHealth": "Lafiyar ƙaso",
"comboHealthRequests": "Buƙatu",
- "comboHealthTokens": "Tokens",
+ "comboHealthTokens": "Tokuna",
"comboHealthAvgLatency": "Matsakaicin jinkiri",
"comboHealthTotalRequests": "Jimillar buƙatu",
"comboHealthExecutionTargets": "Manufofin aiwatarwa",
@@ -2383,7 +2387,7 @@
"apiManagerCustomRateLimits": "Iyakokin Yawan Amfani na Musamman",
"apiManagerCustomRateLimitsDesc": "Maye gurbin iyakokin tsoho na gaba ɗaya. Bar shi babu komai don amfani da tsoffin saituna.",
"apiManagerRateLimitRequestsPlaceholder": "Buƙatu",
- "apiManagerRateLimitReqPer": "req /",
+ "apiManagerRateLimitReqPer": "buƙata /",
"apiManagerRateLimitSecondsPlaceholder": "Daƙiƙa",
"apiManagerRemoveLimitTitle": "Cire iyaka",
"apiManagerTimezonePlaceholder": "America/Sao_Paulo",
@@ -2462,7 +2466,7 @@
"videoDescription": "Ƙirƙiri bidiyoyi da AnimateDiff, Stable Video Diffusion ta hanyar ComfyUI ko SD WebUI.",
"musicDescription": "Tsara kiɗa ta amfani da Stable Audio Open ko MusicGen ta hanyar ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Sakawa",
"image": "Hoto",
"imageToText": "Hoto zuwa Rubutu",
"tts": "Rubutu zuwa Magana",
@@ -2743,8 +2747,8 @@
"modelAliases": "Laƙaban samfura",
"addModel": "Ƙara samfur",
"routeModelPlaceholder": "Tura {model} zuwa...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
+ "baseUrl": "URL na Asali",
+ "apiKey": "Maɓallin API",
"configured": "An saita",
"notConfigured": "Ba a saita ba",
"notInstalled": "Ba a girka ba",
@@ -2776,9 +2780,9 @@
"cliRuntimeDetected": "An gano lokacin gudanarwar CLI kuma yana shirye",
"cliFoundNotRunnable": "An sami CLI amma ba ya iya gudana{reason}",
"cliRuntimeNotDetected": "Ba a gano lokacin gudanarwar CLI ba",
- "binary": "Binary",
+ "binary": "Na Biyu",
"configPath": "Hanyar config",
- "configPathShort": "Config",
+ "configPathShort": "Saituna",
"failedCheckRuntimeStatus": "An kasa duba matsayin lokacin gudanarwa.",
"copy": "Kwafa",
"copied": "An kwafa",
@@ -2919,16 +2923,16 @@
"grok-build": "Wakilin shirye-shirye na xAI Grok Build TUI tare da goyon bayan mai samarwa na musamman",
"droid": "Mataimakin AI na Factory Droid",
"openclaw": "Mataimakin AI na Open Claw",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
- "qwen": "Alibaba Qwen Code CLI",
+ "cline": "CLI na mataimakin rubuta lamba na Cline AI",
+ "kilo": "CLI na mataimakin AI na Kilo Code",
+ "qwen": "CLI na Alibaba Qwen Code",
"cursor": "Editan lambar AI na Cursor",
"continue": "Mataimakin AI na Continue",
"opencode": "Wakilin shirye-shiryen AI na OpenCode (Terminal)",
"kiro": "Amazon Kiro — IDE mai ƙarfin AI",
"windsurf": "Editan lambar AI na Windsurf",
"copilot": "Mataimakin AI na GitHub Copilot",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "CLI na mataimakin rubuta lamba na Sourcegraph Amp",
"hermes": "Mataimakin Terminal na Hermes AI",
"hermes-agent": "Hermes Agent (na Nousresearch) - AI na terminal mai ci gaba tare da goyon bayan samfura da yawa (wakilci, gani, matsewa, da sauransu)",
"custom": "Mai samar da saitunan CLI ko SDK na gama-gari masu dacewa da OpenAI",
@@ -2939,11 +2943,11 @@
"jcode": "Wakilin shirye-shirye na terminal na jcode",
"deepseek-tui": "Wakilin shirye-shirye na DeepSeek TUI da aka rubuta da Rust",
"codewhale": "Wakilin shirye-shirye na CodeWhale, magajin DeepSeek TUI",
- "smelt": "Smelt coding agent CLI",
+ "smelt": "CLI na wakilin rubuta lamba na Smelt",
"pi": "Wakilin shirye-shirye na terminal na Pi mai sauƙin nauyi",
"crush": "Wakilin shirye-shirye na terminal na Crush daga Charm",
- "goose": "Goose autonomous agent CLI",
- "interpreter": "Open Interpreter autonomous coding agent CLI",
+ "goose": "CLI na wakili mai cin gashin kansa na Goose",
+ "interpreter": "CLI na wakilin rubuta lamba mai cin gashin kansa na Open Interpreter",
"omp": "Wakilin shirye-shirye na terminal na Oh My Pi",
"letta": "Wakilin Letta CLI mai ƙwaƙwalwa mai ɗorewa da amfani da kayan aiki",
"prime-agent": "Prime Agent — tsarin RLM na shirye-shirye mai inganta kansa tare da goyon bayan masu samarwa masu dacewa da OpenAI",
@@ -2967,10 +2971,10 @@
"desc": "Kunna zaɓin \"OpenAI API key\""
},
"3": {
- "title": "Base URL"
+ "title": "URL na asali"
},
"4": {
- "title": "API Key"
+ "title": "Maɓallin API"
},
"5": {
"title": "Ƙara Custom Model",
@@ -2988,7 +2992,7 @@
"desc": "Buɗe fayil ɗin saitunan Continue"
},
"2": {
- "title": "API Key"
+ "title": "Maɓallin API"
},
"3": {
"title": "Zaɓi Model"
@@ -3009,7 +3013,7 @@
"desc": "Shigar ta npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Maɓallin API"
},
"3": {
"title": "Saita Base URL",
@@ -3035,11 +3039,11 @@
"desc": "Je zuwa Saituna → AI Provider"
},
"2": {
- "title": "Base URL",
+ "title": "URL na asali",
"desc": "Liƙa URL na endpoint ɗinka na OmniRoute"
},
"3": {
- "title": "API Key"
+ "title": "Maɓallin API"
},
"4": {
"title": "Zaɓi Model"
@@ -3060,7 +3064,7 @@
"desc": "Zaɓi \"Add custom provider\" (mai dacewa da OpenAI)"
},
"3": {
- "title": "Base URL",
+ "title": "URL na asali",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
@@ -3270,7 +3274,7 @@
"strictRandomDesc": "Cakuɗa katunan — yana amfani da kowane model sau ɗaya kafin sake cakuɗawa",
"fusion": "Haɗewa",
"fusionDesc": "Yana aika prompt zuwa kowane model na panel a lokaci guda, sannan judge model ya haɗa amsoshi ya samar da amsa ta ƙarshe guda ɗaya",
- "fusionJudgeModel": "Judge model",
+ "fusionJudgeModel": "Samfurin alƙali",
"fusionJudgeModelHelp": "Model da ke haɗa amsoshin panel zuwa amsa ta ƙarshe guda ɗaya. A barshi babu komai don amfani da model na farko a panel.",
"fusionMinPanel": "Mafi ƙarancin panel",
"fusionMinPanelHelp": "Ana buƙatar amsoshin panel masu nasara kafin a ba masu jinkiri lokacin rangwame (tsoho 2).",
@@ -3492,7 +3496,7 @@
"builderGlobalAddAll": "Ƙara duka",
"builderGlobalShortcuts": "Gajerun hanyoyi:",
"builderGlobalNoResults": "Ba a sami samfuri don \"{query}\" ba.",
- "builderGlobalProviderLabel": "Provider:",
+ "builderGlobalProviderLabel": "Mai samarwa:",
"builderGlobalAccountCount": "{count, plural, one {# asusu} other {# asusu}}",
"builderGlobalAdded": "An ƙara",
"builderGlobalAdd": "Ƙara",
@@ -3978,7 +3982,7 @@
"providerModelsTitle": "{provider} — Samfura",
"noModelsForProvider": "Babu samfura da ake da su ga wannan mai samarwa.",
"chat": "Taɗi",
- "embedding": "Embedding",
+ "embedding": "Cusawa",
"image": "Hoto",
"custom": "na musamman",
"modelsCount": "{count, plural, one {# samfuri} other {# samfura}}",
@@ -4045,7 +4049,7 @@
"tailscaleUrlNotice": "Yana amfani da adireshinka na Tailscale .ts.net. Ana iya buƙatar shiga da amincewar Funnel a farkon amfani.",
"tailscaleTitle": "Tailscale Funnel",
"tailscaleNeedsLoginHint": "Tabbatar da wannan na'ura ta amfani da Tailscale, sannan kunna Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
+ "tailscaleBinaryPath": "Fayil ɗin binary: {path}",
"tailscaleLastError": "Kuskure na ƙarshe: {error}",
"tailscaleInstallTitle": "Shigar da Tailscale",
"tailscaleInstallIntro": "Yana shigar da Tailscale a wannan na'ura kuma yana shirya OmniRoute don kunna Funnel.",
@@ -4080,10 +4084,10 @@
"tabContextSources": "Tushen Bayanai",
"activeEndpoints": "Endpoints Masu Aiki",
"activeLocal": "Na Cikin Na'ura",
- "activeCloud": "Cloud",
+ "activeCloud": "Gajimare",
"copyUrlTitle": "Kwafi {url}",
"statusRunning": "Yana Aiki",
- "tunnels": "Tunnels",
+ "tunnels": "Ramuka",
"activeTunnelCount": "{active} / {total} suna aiki",
"badgeLocal": "NA CIKIN NA'URA",
"badgeProtected": "MAI KARIYA",
@@ -4104,7 +4108,7 @@
"all": "Duka",
"more": "+ƙarin {count}",
"showInternalTooltip": "Nuna ko ɓoye routes na ciki (a ɓoye ta tsohuwa)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Tabbatarwar Bearer",
"requestBody": "Jikin Buƙata",
"close": "Rufe",
"tryIt": "Gwada Shi",
@@ -4123,12 +4127,12 @@
"vscodeAliasDescriptionError": "Ana nuna URLs na wucin gadi saboda ba a iya loda maɓallan CLI a wannan zaman ba.",
"vscodeAliasDescriptionLoading": "Ana loda maɓallan CLI. Za a nuna URLs na wucin gadi har sai an sami maɓalli.",
"vscodeAliasDescriptionPlaceholder": "Ana nuna URLs na wucin gadi. Ƙirƙiri ko kunna maɓallin API a CLI Tools don maye gurbin TOKEN.",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "Kayan aikin CLI",
"vscodeAliasBaseLabel": "Tushen VS Code",
"vscodeAliasModelsLabel": "Samfuran VS Code",
"vscodeAliasChatLabel": "Hirar VS Code",
"localServer": "Sabar Gida",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "OmniRoute na Gajimare",
"copyUrl": "Kwafi URL",
"badgeLoopbackTooltip": "Ana iya samun damar wannan endpoint a cikin na'urar kawai (loopback kawai)",
"badgeAlwaysProtectedTooltip": "Wannan endpoint yana da kariya koyaushe kuma yana buƙatar izini",
@@ -4388,20 +4392,20 @@
"editMemory": "Gyara ƙwaƙwalwa",
"editModal": {
"title": "Gyara Ƙwaƙwalwa",
- "metadataLabel": "Metadata (JSON)",
+ "metadataLabel": "Bayanan meta (JSON)",
"metadataInvalid": "JSON mara inganci",
"saveFailed": "An kasa adana ƙwaƙwalwa"
},
"embedding": {
"autoLabel": "Na atomatik",
"autoDesc": "Yana amfani da mafi kyawun abin da ake da shi: remote provider > static > transformers",
- "remoteLabel": "Remote provider",
+ "remoteLabel": "Mai samarwa na nesa",
"remoteDesc": "Yana amfani da embedding ta API na provider (yana buƙatar API key)",
- "staticLabel": "Static local (potion)",
+ "staticLabel": "Na gida tsayayye (potion)",
"staticDesc": "Local embedding ba tare da WASM ko external dependencies ba",
"transformersLabel": "Transformers.js (MiniLM)",
"transformersDesc": "Local embedding ta @huggingface/transformers (~400MB RAM)",
- "providerModelLabel": "Provider / Model",
+ "providerModelLabel": "Mai samarwa / Samfuri",
"noRemoteProviders": "Babu providers masu API key da aka saita",
"selectProviderModel": "Zaɓi model",
"customBaseUrlLabel": "Custom base URL (na zaɓi)",
@@ -4429,7 +4433,7 @@
"reindexFailed": "An kasa fara sake gina fihirisa",
"keywordLabel": "Kalmar bincike (FTS5)",
"keywordReason": "Binciken kalmomi yana samuwa koyaushe",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Cusawa",
"vectorStoreLabel": "Ma’ajiyar Vector",
"qdrantLabel": "Qdrant",
"rerankLabel": "Sake jera sakamako",
@@ -4470,7 +4474,7 @@
"simulate": "Gwada",
"resultsTitle": "Sakamako {count}",
"resolutionTitle": "Ƙudurin bincike",
- "resolutionEmbedding": "Embedding",
+ "resolutionEmbedding": "Cusawa",
"resolutionStore": "Ma'ajiyar vector",
"resolutionStrategy": "Dabarar da aka yi amfani da ita",
"rerankApplied": "An yi sake jeri",
@@ -4646,7 +4650,7 @@
"uptime": "Lokacin Aiki",
"memory": "Ƙwaƙwalwa",
"memoryRss": "Ƙwaƙwalwa (RSS)",
- "heap": "Heap",
+ "heap": "Tari",
"cpu": "CPU",
"database": "Rumbun Bayanai",
"version": "Siga",
@@ -4902,8 +4906,8 @@
"runningRequestsDesc": "Dubawa kai tsaye na buƙatun upstream da ke gudana a halin yanzu",
"clearAll": "Share Duka",
"confirmClearActiveRequests": "A share duk buƙatu masu aiki?",
- "model": "Model",
- "provider": "Provider",
+ "model": "Samfuri",
+ "provider": "Mai bayarwa",
"account": "Asusu",
"elapsed": "Lokacin da ya Wuce",
"activeStage": "Mataki",
@@ -5171,7 +5175,7 @@
"hasFreeTooltip": "Akwai matakin kyauta",
"noAuthLabel": "Babu Tabbatar da Shaida",
"noAuthProviders": "Babu Masu Samar da Tabbatar da Shaida",
- "upstreamProxyLabel": "Upstream Proxy",
+ "upstreamProxyLabel": "Wakilin Sama",
"freeAggregated": "Duk masu samarwa masu matakin kyauta (ana kuma nuna su a rukuninsu na asali)",
"deprecated": "An daina amfani da shi",
"deprecatedProvider": "An daina amfani da wannan mai samarwa",
@@ -5206,7 +5210,7 @@
"selectProvider": "Zaɓi mai samarwa",
"selectedProvider": "Mai samarwar da aka zaɓa",
"authMethod": "Hanyar Tabbatar da Shaida",
- "apiKeyLabel": "API Key",
+ "apiKeyLabel": "Maɓallin API",
"apiKeyRequired": "Ana buƙatar API Key",
"selectProviderRequired": "Da fatan za a zaɓi mai samarwa",
"enterApiKey": "Shigar da API key ɗinka",
@@ -6452,7 +6456,7 @@
"failedUpdateCodexServiceMode": "An kasa sabunta yanayin sabis na Codex",
"filterByMedia": "Mai jarida",
"freeBadge": "Kyauta",
- "kimiCodeApiKeyLabel": "Kimi Code API Key",
+ "kimiCodeApiKeyLabel": "Maɓallin API na Kimi Code",
"modelTestFailed": "Gwajin model ya gaza",
"modelTestNetworkError": "Kuskuren hanyar sadarwa yayin gwada model",
"networkError": "Kuskuren hanyar sadarwa",
@@ -6553,7 +6557,7 @@
"systemPrompt": "Umarnin Tsari",
"thinkingBudget": "Kasafin Tunani",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "Wakilin HTTP",
"1proxy": "1proxy",
"proxySubTabsAria": "Sassan Proxy",
"requestBodyLimitTitle": "Iyakar Jikin Buƙata",
@@ -6581,7 +6585,7 @@
"modelCatalogCacheTtlSaving": "Ana adanawa...",
"modelCatalogCacheTtlSave": "Ajiye",
"modelCatalogCacheTtlCurrent": "Na yanzu: {value} ms",
- "mitmProxy": "MITM Proxy",
+ "mitmProxy": "Wakilin MITM",
"pricing": "Farashi",
"storage": "Ma'ajiyar Bayanai",
"policies": "Manufofi",
@@ -6777,7 +6781,7 @@
"themeGreen": "Kore",
"themeViolet": "Shunayya",
"themeOrange": "Launin lemu",
- "themeCyan": "Cyan",
+ "themeCyan": "Shuɗi-kore",
"whitelabeling": "Alamar kasuwanci",
"whitelabelingDesc": "Keɓance sunan manhajar da tambari",
"appName": "Sunan Manhaja",
@@ -6854,7 +6858,7 @@
"rule": "Doka",
"enabled": "An Kunna",
"disabled": "An Kashe",
- "nodeCount": "Nodes: {count}",
+ "nodeCount": "Nododi: {count}",
"needsCoreCount": "{count} suna buƙatar local core",
"lastSynced": "Daidaitawa ta ƙarshe: {time}",
"consecutiveFailures": "Gazawa sau {count} a jere",
@@ -6931,7 +6935,7 @@
"denoRelayTokenHint": "Organization token (prefix ddo_) daga console.deno.com → Organization → Settings → Organization Tokens. Ana amfani da shi sau ɗaya don turawa kuma ba a taɓa adana shi ba.",
"denoRelayOrgDomainHint": "Tsohon domain na ƙungiyarka ta Deno Deploy (misali acme.deno.net). Za a iya isa ga relay ɗin a https://<app-name>.<org-slug>.deno.net.",
"proxyFreePoolFilterProtocol": "Tace bisa protocol",
- "proxyFreePoolProtocol": "Protocol",
+ "proxyFreePoolProtocol": "Yarjejeniya",
"proxyFreePoolCountryPlaceholder": "Ƙasa (misali US)",
"proxyFreePoolFilterCountry": "Tace bisa ƙasa",
"proxyFreePoolMinQualityPlaceholder": "Mafi ƙarancin inganci",
@@ -6944,7 +6948,7 @@
"proxyFreePoolAddSelected": "Ƙara waɗanda aka zaɓa zuwa pool",
"proxyFreePoolAddVisible": "Ƙara duk waɗanda ake gani zuwa pool",
"proxyFreePoolSource": "Tushe",
- "proxyFreePoolHostPort": "Host:Port",
+ "proxyFreePoolHostPort": "Mai masauki:Tasha",
"proxyFreePoolType": "Nau'i",
"proxyFreePoolCountry": "Ƙasa",
"proxyFreePoolQuality": "Inganci",
@@ -6979,9 +6983,9 @@
"thinkingBudgetTitle": "Kasafin Tunani",
"thinkingBudgetDesc": "Yana sarrafa ko OmniRoute zai sake rubuta sigogin tunani/nazari na client kafin a aika buƙatu zuwa upstream. Wannan ya bambanta da compression, prompt cache, da iyakokin token na API-key.",
"thinkingBudgetIndependenceHint": "Abubuwan compression, routing, da iyakar token suna ci gaba da aiki a kowane yanayi. Auto ba yana nufin “nuna tunani kai tsaye” ba — yana cire filayen nazari na client.",
- "passthrough": "Passthrough",
+ "passthrough": "Wucewa kai tsaye",
"passthroughDesc": "Babu canje-canje — client ne ke sarrafa kasafin tunani",
- "thinkingModePassthrough": "Passthrough",
+ "thinkingModePassthrough": "Wucewa kai tsaye",
"thinkingModePassthroughDesc": "Bar nazarin client yadda yake (effort, summary, thinking blocks). Ana buƙatarsa don bayyanannen tunani na Codex/Desktop. Tsoho.",
"thinkingModeAuto": "Auto (cire)",
"thinkingModeAutoDesc": "Cire duk filayen tunani/nazari na client (reasoning, reasoning_effort, Claude thinking, Gemini thinking_config), sannan a bar provider ya ƙirƙiri tsoffin saituna. Zai iya ɓoye bangarorin tunani kuma ya lalata buƙatun taƙaitawa na client.",
@@ -7052,7 +7056,7 @@
"routingAdvancedGuideTitle": "Jagorar zaɓen hanya ta ci gaba",
"routingAdvancedGuideHint1": "An daidaita wannan dabara da tsoffin saitunan sabbin combo da kuma zaɓen hanyar madadin asusun gama-gari.",
"routingAdvancedGuideHint2": "Yi amfani da Fill First don fifikon asusu mai tabbas, Round Robin tare da Sticky Limit don rukunin asusu, da P2C don jure jinkiri.",
- "fillFirst": "Fill First",
+ "fillFirst": "Cika na Farko",
"fillFirstDesc": "Yi amfani da asusu bisa jerin fifiko",
"roundRobin": "Round Robin",
"roundRobinDesc": "Bi ta cikin duk asusu bi da bi",
@@ -7131,7 +7135,7 @@
"logout": "Fita",
"clearLocalDataConfirm": "A share duk bayanan cikin na'ura? Wannan zai sake saita abubuwan da ka fi so.",
"unknown": "Ba a sani ba",
- "systemActor": "system",
+ "systemActor": "tsari",
"ipAccessControl": "Sarrafa Samun Dama ta IP",
"ipAccessControlDesc": "Toshe ko ba wa takamaiman adiresoshin IP izini",
"ipModeDisabled": "A kashe",
@@ -7139,7 +7143,7 @@
"ipModeWhitelist": "Jerin Farare",
"ipModeWhitelistPriority": "Fifikon WL",
"addIpAddress": "Ƙara Adireshin IP",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
+ "ipAddressPlaceholder": "192.168.1.0/24 ko 10.0.*.*",
"block": "+ Toshe",
"allow": "+ Ba da Izini",
"blocked": "An toshe ({count})",
@@ -7493,7 +7497,7 @@
"compressionModeStandardDesc": "Matsewa bisa ƙa'idoji mai tsare-tsare sama da 30, yana kiyaye code blocks da URLs",
"compressionModeAggressive": "Mai Tsanani",
"compressionModeAggressiveDesc": "Taƙaitawa + matse sakamakon kayan aiki + tsufar bayanai a hankali don iyakar tanadi",
- "compressionModeUltra": "Ultra",
+ "compressionModeUltra": "Matuƙa",
"compressionModeUltraDesc": "Tsabtace token ta hanyar heuristic tare da zaɓin komawa ga SLM na cikin gida",
"compressionAggressiveConfig": "Tsarin Na'urar Mai Tsanani",
"compressionAggressiveConfigDesc": "Daidaita taƙaitawa, matse kayan aiki, da iyakokin tsufar bayanai",
@@ -7564,7 +7568,7 @@
"qdrantSaved": "An adana saituna",
"qdrantSaveError": "An kasa adana saituna",
"qdrantHostHint": "Ba tare da port ba. Misali: 127.0.0.1 ko http://qdrant",
- "qdrantPort": "Port",
+ "qdrantPort": "Tasha",
"qdrantPortHint": "Tsohon saitin Qdrant: 6333",
"qdrantCollectionHint": "Inda za a adana maki na ma'ajiya.",
"qdrantEmbeddingModel": "Samfurin embedding",
@@ -7881,7 +7885,7 @@
"description": "Kimanta jimloli ta hanyar cirewa bisa ga tambayar mai amfani ta ƙarshe."
},
"caveman": {
- "label": "Caveman",
+ "label": "Mutumin Kogo",
"description": "Matsa rubutu bisa ƙa'idoji."
},
"aggressive": {
@@ -7927,16 +7931,16 @@
"resilienceEnableServerSideWait": "Kunna jira a ɓangaren server",
"resilienceMaximumRetries": "Matsakaicin yawan sake-gwaji",
"resilienceMaximumWaitPerRetry": "Matsakaicin lokacin jira ga kowane sake-gwaji",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "Kasuwar SkillsMP",
"memorySkillsFailedToSave": "An kasa adanawa",
- "memorySkillsApiKey": "API Key",
+ "memorySkillsApiKey": "Maɓallin API",
"memorySkillsActiveSkillsProvider": "Skills Provider Mai Aiki",
"cliproxyapiFallback": "Madadin CLIProxyAPI",
"cliproxyapiEnableFallback": "Kunna Madadin CLIProxyAPI",
- "cliproxyapiUrl": "CLIProxyAPI URL",
- "headroomProxyTitle": "Headroom proxy",
+ "cliproxyapiUrl": "URL na CLIProxyAPI",
+ "headroomProxyTitle": "Wakilin Headroom",
"headroomProxyDesc": "URL na Headroom token-saver proxy na zaɓi. Idan babu komai, ana amfani da HEADROOM_URL ko http://localhost:8787.",
- "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrl": "URL na Headroom",
"headroomProxyUrlHint": "Ana iya fara Loopback URLs daga wannan shafin. External URLs kuwa bincikawa kawai ake yi.",
"headroomProxySave": "Ajiye",
"headroomProxyStart": "Fara",
@@ -7949,11 +7953,11 @@
"cliproxyapiImportAuthButton": "Shigo da asusu",
"payloadRulesTitle": "Ka’idojin payload",
"payloadRulesDesc": "Saita sauye-sauyen payload na buƙata bisa model da protocol. Ana adana sauye-sauyen a cikin saituna kuma a sake loda su kai tsaye a runtime nan da nan bayan an adana.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "tsoho",
"payloadRuleDefaultDesc": "Yana amfani da params ne kawai idan babu target path a cikin payload mai fita.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "maye gurbi",
"payloadRuleOverrideDesc": "Yana tilasta sanya ƙimomi a cikin payload, tare da maye gurbin duk wani abu da yake akwai a wannan path.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "tace",
"payloadRuleFilterDesc": "Yana cire params da aka katange daga payload kafin a aika buƙatar upstream.",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "Kamar default, amma ana fara fassara ƙimomin string a matsayin JSON idan zai yiwu. Ana kuma karɓar tsohon input alias default-raw yayin adanawa.",
@@ -7996,11 +8000,11 @@
"responsesStateModePreserve": "Adana",
"responsesStateHint": "Yanayin Auto yana cire previous_response_id sai dai idan wata haɗi ta kunna ma'ajiyar OpenAI Responses a sarari. Strip ne mafi aminci ga abokan ciniki marasa adana yanayi kamar VS Code Custom Endpoint; daga nan mahallin zai dogara da abokin ciniki ya aika cikakken tarihi.",
"responsesStateSaveError": "An kasa sabunta saitin yanayin Responses",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Matakin Sauri na Codex",
"codexFastTierDesc": "Saka service_tier=priority ga duk buƙatun OpenAI Codex a duniya.",
"codexFastTierHint": "Idan an kunna, OmniRoute yana ƙara service_tier=priority ga buƙatun Codex masu fita daga haɗin da ba su riga sun ƙayyade mataki ba. Matakin Priority yana buƙatar maɓallin OpenAI Enterprise API ko hanyar Codex ta ChatGPT-auth; sauran nau'ikan maɓalli za su karɓi kuskure mai alaƙa da mataki daga OpenAI. Saitunan kowace haɗi a shafin mai samar da Codex su ne ke da fifiko.",
"codexFastTierSaveError": "An kasa sabunta saitin Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
+ "codexAutoPingTitle": "Aika-Saƙo ta Atomatik don Ƙimar Codex",
"codexAutoPingDesc": "Zaɓin shiga ne ga kowace haɗi: yana aika ƙaramar buƙata nan da nan bayan taga zaman Codex ta sake farawa, don kada ya kasance bai shirya ba lokacin da kake buƙatarsa.",
"codexAutoPingWarning": "Yana cin ɗan ƙaramin kaso na ainihin ƙimar Codex a kowane ping. A kashe yake ta tsohuwa — kunna shi kawai ga haɗin da kake dogaro da su sosai.",
"codexAutoPingSaveError": "An kasa sabunta saitin Codex Auto-Ping",
@@ -8012,7 +8016,7 @@
"codexFastTierModelsLabel": "Samfuran Fast-tier",
"codexFastTierModelsHint": "Samfuran da aka zaɓa kawai ne za su karɓi service_tier idan an kunna Fast Tier.",
"codexFastTierModelCheckbox": "Kunna Fast Tier ga {model}",
- "claudeFastModeTitle": "Claude Fast Mode",
+ "claudeFastModeTitle": "Yanayin Sauri na Claude",
"claudeFastModeDesc": "Sanya zaɓaɓɓun buƙatun Claude cikin Anthropic Fast Mode (speed:\"fast\").",
"claudeFastModeHint": "Anthropic ba ya goyon bayan Fast Mode a hukumance ga abokan ciniki irin na SDK. Idan an kunna, OmniRoute yana tura taken X-CPA-Force-Fast-Mode domin ginin CLIProxyAPI da aka haɗa ya iya zaɓar shiga ta hanyar kwaikwayon mashigar. Samfuran Opus da aka jera kawai ne binciken gefen abokin ciniki na Anthropic ke taƙaitawa. Har yanzu ana aiwatar da matakin biyan kuɗi, shirin Max, da ma'aunin kuɗin Fast Mode a gefen sabar — Anthropic na iya mayar da out_of_credits ko da an kunna maɓallin.",
"claudeFastModeModelsLabel": "An yi amfani da shi ga samfura ({count})",
@@ -8178,7 +8182,7 @@
"cloudflareRelayTokenHowto": "Ƙirƙiri API token a ƙarƙashin My Profile -> API Tokens -> Create Token -> Custom Token -> Account / Workers Scripts / Edit.",
"cloudflareRelayAccountIdLabel": "ID na Asusun Cloudflare",
"cloudflareRelayAccountIdHint": "Ana samunsa a gefen dama na shafin bayani na dashboard na Cloudflare.",
- "cloudflareRelayApiTokenLabel": "Cloudflare API Token",
+ "cloudflareRelayApiTokenLabel": "Alamar API ta Cloudflare",
"cloudflareRelayApiTokenHint": "Yana buƙatar izinin 'Workers Scripts: Edit'. Ana amfani da token ɗin ne kawai lokacin turawa kuma ba a taɓa adana shi ba.",
"cloudflareRelayProjectNameLabel": "Sunan Worker",
"cloudflareRelayFreeTierNote": "Matakin kyauta: buƙatu 100,000 a rana ga kowane asusun Cloudflare.",
@@ -8656,7 +8660,7 @@
"defaultFromPanel": "Na asali (daga panel)",
"runs": "Yana gudanar da:",
"defaultConfiguredPrefix": "Na asali — an saita a",
- "compressionSettings": "Compression Settings",
+ "compressionSettings": "Saitunan Matsewa",
"providerDelegated": "Compression da aka miƙa wa provider",
"contextEditingClaude": "Gyaran Context (Claude)",
"contextEditingDescription": "Yana ba provider damar goge tsofaffin tubalan amfani da kayan aiki a ɓangaren server, ba tare da sake rubuta saƙon ba.",
@@ -8678,15 +8682,15 @@
"active": "Mai aiki",
"languagePacksList": "Fakitin harsuna: {packs}",
"dragToReorder": "Ja don sake tsara matakin",
- "engine": "Engine",
+ "engine": "Injin",
"intensity": "Ƙarfi"
},
"compressionStudio": {
"noRun": "Babu aikin compression da ake da shi.",
"liveDataHint": "Bayanan kai tsaye suna zuwa ta tashar compression ta WebSocket.",
"cockpitView": "Kallon cockpit",
- "canvas": "Canvas",
- "waterfall": "Waterfall",
+ "canvas": "Allon Zane",
+ "waterfall": "Tsarin Sauka",
"replayDone": "An kammala sake kunnawa",
"pauseReplay": "Dakatar da sake kunnawa na ɗan lokaci",
"playReplay": "Fara sake kunnawa",
@@ -8737,9 +8741,9 @@
"compareTab": "Kwatanta",
"encoderComparison": "Encoder A/B — array {count}",
"encoderWinner": "wanda ya yi nasara: {winner}",
- "encoder": "encoder",
- "bytes": "bytes",
- "tokensCl100k": "tokens (cl100k)"
+ "encoder": "mai sauya tsari",
+ "bytes": "baitoci",
+ "tokensCl100k": "token-token (cl100k)"
},
"omniglyph": {
"preview": "Samfoti",
@@ -8819,7 +8823,7 @@
"stateError": "Kuskure",
"stateNotInstalled": "Ba a shigar ba",
"stateUnknown": "Ba a sani ba",
- "port": "port {port}",
+ "port": "tasha {port}",
"externalBadge": "Ana sarrafa shi daga waje",
"externalTitle": "An gano 9Router na waje",
"externalDescription": "OmniRoute ya gano 9Router a {host}:{port}. Tsarin rayuwarsa, logs, updates, da service key nasa suna ci gaba da kasancewa ƙarƙashin shigarwar waje.",
@@ -8835,7 +8839,7 @@
"installing": "Ana shigarwa…",
"autoStart": "Farawa ta atomatik",
"autoStartDescription": "Ƙaddamar da {name} ta atomatik lokacin da OmniRoute ya fara",
- "apiKey": "API Key",
+ "apiKey": "Maɓallin API",
"apiKeyDescription": "Maɓallin da OmniRoute ke amfani da shi don tabbatar da sahihancin {name}",
"keyRotated": "An sauya maɓalli — an sake kunna {name} don amfani da sabon maɓallin",
"keyRotateFailed": "An kasa sauya maɓalli",
@@ -8904,7 +8908,7 @@
"save": "Adana"
},
"contextCaveman": {
- "title": "Caveman Engine",
+ "title": "Injin Caveman",
"description": "Matsawar saƙonni bisa ƙa’idoji, fakitin harsuna, nazari da sarrafa yanayin fitarwa.",
"advancedConfig": "Tsarin Saituna na Ci-gaba",
"advancedConfigDesc": "Daidaita halayen matsawa dalla-dalla",
@@ -9173,7 +9177,7 @@
"comboRouted": "Combo da aka karkatar",
"uniqueEndpoints": "Wuraren ƙarshe na musamman",
"routeDetails": "Bayanan hanya",
- "comboBadge": "Combo",
+ "comboBadge": "Haɗaka",
"routeEndpointLabel": "Wurin ƙarshe",
"routeConnectionLabel": "Haɗi",
"scenarioVision": "Gani (fahimtar hoto)",
@@ -9298,7 +9302,7 @@
"loadingBudgetData": "Ana loda bayanan kasafin kuɗi...",
"noApiKeysTitle": "Babu API Keys",
"noApiKeysDescription": "Da farko, ƙara API keys domin saita iyakokin kasafin kuɗi.",
- "apiKey": "API Key",
+ "apiKey": "Maɓallin API",
"todaysSpend": "Kashe-kashen Yau",
"thisMonth": "Wannan Watan",
"setLimits": "Saita Iyakoki",
@@ -9400,7 +9404,7 @@
"notifyAllCasesPassed": "Dukkan sharuɗɗa {total} sun yi nasara ✅",
"notifySomeCasesFailed": "{passed}/{total} sun yi nasara, {failed} sun gaza",
"notifyEvalRunFailed": "Gudanar da Eval ya gaza",
- "notifyEvalTitle": "Eval: {name}",
+ "notifyEvalTitle": "Ƙimantawa: {name}",
"modelEvals": "Kimanta Samfura",
"evalsHeroDescription": "Gwada kuma tabbatar da ingancin endpoint ɗin LLM naka ta hanyar gudanar da rukunonin kimantawa da aka riga aka ayyana. Kowane rukuni yana ɗauke da sharuɗɗan gwaji waɗanda ke aika saƙonnin umarni na ainihi ta cikin OmniRoute kuma su kwatanta amsoshi da ma'aunin da ake tsammani — hakan yana taimaka maka gano koma-baya, kwatanta samfura, da tabbatar da ingancin amsoshi a tsakanin masu samarwa.",
"qualityValidation": "Tabbatar da Inganci",
@@ -9461,9 +9465,9 @@
"noQuotaDataAvailable": "Babu bayanan iyakar amfani",
"noAccountsForTierFilter": "Ba a sami asusu don matatar mataki ba",
"tierAll": "Duka",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "tierEnterprise": "Babban Kamfani",
+ "tierTeam": "Ƙungiya",
+ "tierBusiness": "Kasuwanci",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Ƙari",
@@ -9596,7 +9600,7 @@
"suiteBuilderCaseTagsPlaceholder": "misali coding, python",
"targetTypeCombo": "Haɗaka",
"scorecardPassed": "Ya Yi Nasara",
- "suiteBuilderCaseTagsLabel": "Tags",
+ "suiteBuilderCaseTagsLabel": "Alamomi",
"suiteBuilderNewSuite": "Sabon Rukunin Gwaji",
"notifyEvalLoadFailed": "An kasa loda bayanan kimantawa",
"notConfigured": "Ba a Saita ba",
@@ -9960,7 +9964,7 @@
"featureCloudSyncDesc": "Daidaita saitunanka tsakanin na'urori nan take.",
"featureCliSupportTitle": "Goyon bayan CLI",
"featureCliSupportDesc": "Yana aiki tare da Claude Code, Codex, Cline, Cursor, da sauransu.",
- "featureDashboardTitle": "Dashboard",
+ "featureDashboardTitle": "Allon Bayanai",
"featureDashboardDesc": "Dashboard na gani don nazarin zirga-zirga a ainihin lokaci.",
"howItWorks": "Yadda OmniRoute ke Aiki",
"howItWorksDescription": "Bayanai suna gudana cikin sauƙi daga manhajarka ta cikin matakinmu na sarrafa hanyoyi mai basira zuwa mafi kyawun mai samarwa don aikin.",
@@ -9983,14 +9987,14 @@
"copied": "✓ An kwafa",
"startingOmniRoute": "Ana fara OmniRoute...",
"serverRunningOnLabel": "Sabar tana aiki a",
- "dashboardLabel": "Dashboard",
+ "dashboardLabel": "Allon Bayanai",
"readyToRoute": "A shirye don karkatarwa! ✓",
"configureProvidersNote": "📝 Saita masu samar da sabis a dashboard ko amfani da masu canjin muhalli",
"dataLocation": "Wurin Bayanai:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
"product": "Samfuri",
- "dashboardLink": "Dashboard",
+ "dashboardLink": "Allon Bayanai",
"changelog": "Tarihin Canje-canje",
"resources": "Albarkatu",
"documentation": "Takardun Bayani",
@@ -10039,10 +10043,10 @@
"managementApiReference": "Manazartar API na Gudanarwa",
"managementApiDescription": "Wuraren haɗin kai na sarrafa kansa don rajistar proxy, sanya scope, da ƙaura daga tsohon proxy.",
"method": "Hanya",
- "path": "Path",
+ "path": "Hanya",
"notes": "Bayanan Kula",
"modelPrefixes": "Prefix na Samfura",
- "prefix": "Prefix",
+ "prefix": "Gabatarwa",
"troubleshooting": "Warware Matsaloli",
"supportsChat": "Yana tallafawa duka wuraren haɗin chat da responses.",
"oauthAutoRefresh": "Haɗin OAuth tare da sabunta token ta atomatik.",
@@ -10100,7 +10104,7 @@
"providersCount": "Masu samarwa {count}",
"providerTypeFree": "Matakin Kyauta",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
+ "providerTypeApiKey": "Maɓallin API",
"useCaseSingleEndpointTitle": "Endpoint guda ɗaya don masu samarwa da yawa",
"useCaseSingleEndpointText": "Nuna wa clients base URL guda ɗaya sannan a yi routing bisa prefix na model (misali: gh/, cc/, kr/, openai/).",
"useCaseFallbackTitle": "Fallback da sauya model ta amfani da combos",
@@ -10108,10 +10112,10 @@
"useCaseUsageVisibilityTitle": "Bayyananniyar amfani, farashi da debug",
"useCaseUsageVisibilityText": "Bibiyi tokens da farashi bisa mai samarwa, account, da API key a shafukan Usage da Analytics.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
+ "baseUrlLabel": "Tushen URL",
+ "chatEndpointLabel": "Ƙarshen hanyar taɗi",
"modelRecommendationLabel": "Shawarar model: takamaiman prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
+ "clientCodexTitle": "Samfuran Codex / GitHub Copilot",
"clientCodexBullet1": "Yi amfani da model IDs tare da",
"clientCodexBullet2": "Codex-family models suna yin routing ta atomatik zuwa",
"clientCodexBullet3": "Non-Codex models suna ci gaba a",
@@ -10135,7 +10139,7 @@
"clientKimiBullet1": "Yi amfani da OmniRoute a matsayin tabbataccen base URL yayin sauya asusu ko haɗe-haɗen provider da ke ƙarƙashinsa.",
"clientKimiBullet2": "Fi son samfura masu prefix a tsarin aikin coding domin fallback da audit trail su kasance a bayyane.",
"clientKimiBullet3": "Yi amfani da `/v1/responses` idan kana son routing na asali irin na Responses ga clients masu amfani da tools.",
- "protocolsTitle": "Protocols: MCP & A2A",
+ "protocolsTitle": "Ka'idoji: MCP & A2A",
"protocolsDescription": "OmniRoute yana samar da protocols na gudanarwa guda biyu ban da APIs masu dacewa da OpenAI: MCP don aiwatar da tools, da A2A don workflows tsakanin agents.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
"protocolMcpDesc": "Yi amfani da MCP ta stdio domin bai wa clients damar ganowa da kiran tools na OmniRoute tare da bayyananniyar audit.",
@@ -10152,9 +10156,9 @@
"protocolTroubleshooting2": "Idan tasks na A2A suka ci gaba da kasancewa a `working`, bincika `/api/a2a/tasks/:id` da stream events don gano terminal state.",
"protocolTroubleshooting3": "Yi amfani da `/dashboard/mcp` da `/dashboard/a2a` don controls na gudanarwa da bayyananniyar audit.",
"endpointChatNote": "Chat endpoint mai dacewa da OpenAI (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
+ "endpointResponsesNote": "Wurin ƙarshe na Responses API (Codex, o-series).",
"endpointModelsNote": "Kundin models na duk providers da aka haɗa.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
+ "endpointAudioNote": "Rubuta sauti zuwa rubutu (Deepgram, AssemblyAI).",
"endpointSpeechNote": "Samar da murya daga rubutu (ElevenLabs, OpenAI TTS).",
"endpointEmbeddingsNote": "Samar da text embeddings (OpenAI, Cohere, Voyage).",
"endpointImagesNote": "Samar da hoto (NanoBanana).",
@@ -10212,7 +10216,7 @@
"mcpToolsCacheDesc": "Duba ƙididdigar ma'ajiyar wucin gadi kuma a share ma'ajiyoyin ma'ana ko na sa hannu.",
"mcpToolsCompressionTitle": "Injinan Matse Bayanai",
"mcpToolsCompressionDesc": "Saita matsewar RTK/Brotli, musanya injina, kuma bincika nazarin matsewa bisa haɗuwa.",
- "mcpToolsOneProxyTitle": "1Proxy / Tunnels",
+ "mcpToolsOneProxyTitle": "1Proxy / Ramuka",
"mcpToolsOneProxyDesc": "Sarrafa proxy masu fita, juya IP na gidaje, kuma bincika lafiyar proxy.",
"mcpToolsMemoryTitle": "Ƙwaƙwalwa",
"mcpToolsMemoryDesc": "Nema, ƙara, da share bayanan ƙwaƙwalwar tattaunawa masu ɗorewa.",
@@ -10260,7 +10264,7 @@
"apiExplorerDescription": "Gwada endpoints na OmniRoute kai tsaye. Zaɓi endpoint, saita buƙatarka, sannan ka ga martanin a ainihin lokaci.",
"apiExplorerSseStarted": "An fara watsawar SSE — duba terminal/devtools don ganin sakamakon a ainihin lokaci.",
"apiExplorerError": "Kuskure: {message}",
- "apiExplorerAuth": "auth",
+ "apiExplorerAuth": "tantancewa",
"apiExplorerResponseLabel": "Martani",
"apiExplorerSelectEndpoint": "Zaɓi endpoint don bincikawa",
"apiExplorerChooseApi": "Zaɓi API daga maɓallin gefe don ganin cikakkun bayanai da gwada shi kai tsaye",
@@ -10396,10 +10400,10 @@
"flowDiagramOmniRouteDesc": "Yana karɓar buƙata kuma yana zaɓar manufa",
"flowDiagramSpawn": "Ƙaddamar da Tsari",
"flowDiagramSpawnDesc": "Yana ƙaddamar da binary na CLI ta stdio",
- "flowDiagramCli": "CLI Agent",
+ "flowDiagramCli": "Wakilin CLI",
"flowDiagramCliDesc": "Yana sarrafawa da nasa auth/model",
"fingerprintSettingsHint": "Ana iya saita daidaitawar CLI Fingerprint (ɓoye buƙatu kamar takamaiman kayan aikin CLI) a cikin",
- "settingsRoutingLink": "Settings/Routing",
+ "settingsRoutingLink": "Saituna/Tsarin bi-da-bi",
"openSettings": "Saituna",
"copyRawUrlTitle": "Kwafi raw URL zuwa clipboard",
"copied": "An kwafa!",
@@ -10409,8 +10413,8 @@
"viewOnGithub": "Duba a GitHub",
"howToUse": "Yadda ake amfani",
"browseAllSkillsOnGithub": "Bincika duk skills a GitHub",
- "apiSkills": "API Skills",
- "cliSkills": "CLI Skills",
+ "apiSkills": "Ƙwarewar API",
+ "cliSkills": "Ƙwarewar CLI",
"apiSkillsSubtitle": "skills {count} — sarrafa OmniRoute ta REST / HTTP",
"cliSkillsSubtitle": "Ƙwarewa {count} — sarrafa OmniRoute ta hanyar fayil ɗin binary na tashar omniroute",
"howToUseStep1": "Danna omniglyph. זוהי תצוגה מקדימה והיא נשארת כבויה כברירת מחדל עד להשלמת אימות מקצה לקצה.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "פרופיל דחיסה",
+ "profileDescription": "הפרופיל הוא גבול עליון, לא תחתון: לא ניתן להקל פרופיל מחמיר יותר באמצעות דריסה ברמת שלב. לפי מדידות בבסיס קוד זה: במצב בטוח לקוד או מאוזן, הפעלה שעדיין לא צברה היסטוריה אינה דוחסת דבר, מכיוון ששניהם מעלים את סף התווים המינימלי ומשאירים את הנחיית המערכת, סכמות הכלים ותוצאות הכלים בצורתם המקורית.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "אגרסיבי (ברירת מחדל)",
+ "description": "המדיניות שעליה התבססו המדידות שפורסמו. ממירה לתמונה את הנחיית המערכת, תיעוד הכלים והיסטוריה צפופה."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "מאוזן",
+ "description": "משאיר את המצב הפעיל בצורתו המקורית ומגן על 8 הסבבים האחרונים; מכווץ רק היסטוריה ישנה וסגורה."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "בטוח לקוד",
+ "description": "משאיר את הסמכות, סכמות הכלים ופלט הכלים הפעיל בצורתם המקורית, תוך הגנה על 12 הסבבים האחרונים. אינו דוחס דבר עד שההפעלה צוברת היסטוריה."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "העברה ישירה",
+ "description": "מנתב ללא שינוי. המנוע אינו מופעל והבקשה מועברת ללא שינוי."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "בחירת פרופיל הדחיסה של OmniGlyph",
"saved": "נשמר.",
"saveFailed": "לא ניתן היה לשמור.",
"enableAria": "הפעל את מנוע OmniGlyph",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "דחיסת הודעות מבוססת כללים, חבילות שפה, ניתוח נתונים ובקרות מצב פלט.",
"advancedConfig": "תצורה מתקדמת",
"advancedConfigDesc": "כוונן את התנהגות הדחיסה",
"aggressiveSettings": "הגדרות אגרסיביות",
"aggressiveSettingsDesc": "דחיסה מקסימלית עם פשרות פוטנציאליות באיכות",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "בקשות",
+ "tokensSaved": "אסימונים שנחסכו",
+ "savingsPercent": "אחוז חיסכון",
+ "avgLatency": "זמן השהיה ממוצע",
+ "languagePacks": "חבילות שפה",
+ "languagePacksDesc": "הפעלת כללי דחיסה עבור שפות מסוימות.",
"labelAutoTrigger": "דחיסה אוטומטית כאשר ההקשר חורג",
"labelCompressionRate": "חוזק דחיסה",
"labelMaxTokens": "אסימוני יעד לכל הודעה",
"labelMinLength": "אורך הודעה מינימלי",
"labelMinSavings": "מינימום אסימונים לשמירה",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "מופעל",
+ "autoDetect": "זיהוי שפה אוטומטי",
+ "rulesCount": "{count} כללים",
"inputCompressionTitle": "דחיסת קלט",
"inputCompressionDesc": "שכתב את היסטוריית הצ'אט בניסוח קצר יותר. מפחית את אסימוני הקלט בכ-50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "ניתוח נתוני דחיסה",
+ "noAnalytics": "עדיין אין נתוני ניתוח דחיסה.",
"masterDisabledWarning": "המתג הראשי של Token Saver כבוי — הגדרות אלו לא ישפיעו על בקשות עד שתפעיל אותו מהגדרות הדחיסה או תשנה אותו כאן.",
"outputMode": "מצב פלט",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "מצב פלט",
"quickSettings": "הגדרות מהירות",
"quickSettingsDesc": "הגדרות דחיסה בסיסיות כדי להתחיל",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "עקיפה אוטומטית לשמירת בהירות",
+ "bypassConditions": "תנאי עקיפה",
"bypassConditionsList": "ביטחון, בלתי הפיך, הבהרה, רגיש להזמנה",
"simpleMode": "פשוט",
"advancedMode": "מתקדם",
@@ -8940,9 +8951,9 @@
"ultraSettings": "הגדרות אולטרה",
"ultraSettingsDesc": "דחיסה סמנטית המופעלת על ידי SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "השב בקצרה. שמור על מונחים טכניים, קוד, שגיאות, כתובות URL ומזהים.",
+ "full": "השב בתמציתיות ובקיצור. שמור על כל התוכן הטכני.",
+ "ultra": "השב בקיצור מרבי עם קיצורים טכניים נפוצים. שמור על הסמלים המדויקים."
}
},
"translator": {
@@ -8989,7 +9000,7 @@
"translationPathHubSpoke": "{source} → OpenAI (בינוני) → {target}",
"translationPathDirect": "{source} → {target} (מתרגם ישיר)",
"translationPathPassthrough": "אותו פורמט - אין צורך בתרגום",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "OpenAI ביניים",
"autoFeaturesTitle": "מה OmniRoute עושה באופן אוטומטי",
"autoFeaturesCount": "8 תכונות",
"featureReasoningCache": "מטמון הנמקה",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "גוף הבקשה כפי שהלקוח שלך ישלח אותו",
"formatDetected": "פורמט זוהה",
"formatDetectedDescription": "OmniRoute מזהה אוטומטית את פורמט ה-API ממבנה הבקשה",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "OpenAI ביניים",
"openaiIntermediateDescription": "כל הפורמטים מנורמלים תחילה לפורמט OpenAI (הגשר האוניברסלי)",
"providerFormat": "פורמט ספק",
"providerFormatDescription": "פורמט OpenAI מתורגם לפורמט המקורי של הספק",
@@ -9153,7 +9164,7 @@
"loadToolSample": "טען דוגמה לקריאת כלי",
"transformToResponses": "הפוך לתגובות",
"rawChatSseInput": "השלמות צ'אט גולמיות SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Responses API SSE שעבר טרנספורמציה",
"noResultsYet": "עדיין אין תוצאות",
"transformedEvents": "אירועים שעברו שינוי",
"uniqueEventTypes": "סוגי אירועים ייחודיים",
@@ -9169,15 +9180,15 @@
"comboBadge": "קומבו",
"routeEndpointLabel": "נקודת קצה",
"routeConnectionLabel": "חיבור",
- "scenarioVision": "Vision (image understanding)",
- "scenarioSchemaCoercion": "Schema coercion (structured output)",
+ "scenarioVision": "ראייה (הבנת תמונות)",
+ "scenarioSchemaCoercion": "כפיית סכמה (פלט מובנה)",
"techniques": "טכניקות:",
"friendlyTitle": "מתרגם",
"friendlySubtitle": "השתמש באפליקציה הקיימת שלך עם כל ספק — מבלי לכתוב מחדש את הקוד.",
"conceptHeadline": "האפליקציה שלך מדברת ב\"שפה\" של API אחד. המתרגם ממיר אותה לשימוש בספק אחר.",
"conceptDiagramAppLabel": "האפליקציה שלך",
"conceptDiagramSourceLabel": "פורמט מקור",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (מרכז)",
"conceptDiagramTargetLabel": "ספק יעד",
"conceptDiagramExampleApp": "לדוגמה, Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "הדבק בקשת JSON; הפורמט יזוהה באופן אוטומטי.",
"advancedPipelineTitle": "צינור עיבוד (pipeline) ביניים של OpenAI",
"advancedPipelineSubtitle": "הצגה ויזואלית של כל שלב תרגום (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "ממיר זרימה (צ׳אט ← תגובות SSE)",
"advancedStreamTransformSubtitle": "ממיר Chat Completions SSE ל-Responses API.",
"advancedTestBenchTitle": "סביבת בדיקה (8 תרחישים)",
"advancedTestBenchSubtitle": "מריץ את כל התרחישים ומדווח על הצלחה/כישלון + % תאימות.",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "נותר",
"kiloPassRenews": "מתחדש בעוד {count} ימים",
"kiloPassUsageLabel": "השימוש החודש",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "נקודות זכות נוספות לשימוש",
+ "kimiExtraUsage": "שימוש נוסף",
+ "kimiExtraUsageEnabled": "מופעל",
+ "kimiExtraUsageDisabled": "מושבת",
+ "kimiExtraUsageFrozen": "מוקפא",
+ "kimiExtraUsageUnavailable": "לא זמין",
+ "kimiMonthlyUsed": "שימוש החודש",
+ "kimiMonthlyLimit": "מגבלה חודשית",
+ "kimiMonthlyLimitUnlimited": "ללא הגבלה",
+ "kimiAdditionalCredits": "נקודות זכות נוספות",
"loggerTab": "לוגר",
"proxyTab": "פרוקסי",
"budgetManagement": "ניהול תקציב",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "מפסקים",
"lockedIPs": "כתובות IP נעולים",
"lockoutsAutoRefreshHint": "נעילות מגבלת קצב לכל דגם • רענון אוטומטי 10 שניות",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# נעול} other {# נעולים}}",
"timeLeft": "{time} נותרו",
"howItWorks": "איך זה עובד",
"howItWorksSubtitle": "למד כיצד הערכות מאמתות את תגובות ה-LLM שלך",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "תגובות מושוות מול קריטריונים צפויים. ראה עובר/נכשל עבור כל מקרה עם מדדי חביון ומשוב מפורט.",
"evalsStrategyContainsLabel": "מכיל",
"evalsStrategyExactLabel": "התאמה מדויקת",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "ביטוי רגולרי",
"evalsStrategyCustomLabel": "לוגיקה מותאמת אישית",
"evalsStrategyContainsDescription": "בודק אם פלט ה-LLM מכיל את מחרוזת המשנה הצפויה.",
"evalsStrategyExactDescription": "בודק אם פלט ה-LLM תואם בדיוק לערך הצפוי.",
@@ -9364,14 +9375,14 @@
"modelsUnderTest": "דגמים בבדיקה",
"searchSuitesPlaceholder": "חפש סוויטות...",
"passSuffix": "לעבור",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# מקרה} other {# מקרים}}",
"runEval": "הפעל את Eval",
"runAllSuites": "הפעל הכל",
"runAllRunning": "מפעיל את כל...",
"runAllProgress": "הפעלת {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {חבילה אחת נכשלה} other {# חבילות נכשלו}}",
"runAllCompleted": "רץ {suites} סוויטות - {passed} עבר, {failed} נכשל",
- "runAllCompletedWithFailures": "Ran {completed} suites; {failedSuites} failed to complete",
+ "runAllCompletedWithFailures": "הופעלו {completed} חבילות; {failedSuites} לא הושלמו",
"runningProgress": "פועל {current}/{total}...",
"passRate": "שיעור מעבר",
"summaryBreakdown": "{passed} עבר · {failed} נכשל · {total} סך הכל",
@@ -9393,7 +9404,7 @@
"notifyAllCasesPassed": "כל {total} המקרים עברו ✅",
"notifySomeCasesFailed": "{passed}/{total} עבר, {failed} נכשל",
"notifyEvalRunFailed": "ריצת Eval נכשלה",
- "notifyEvalTitle": "Eval: {name}",
+ "notifyEvalTitle": "הערכה: {name}",
"modelEvals": "הערכות מודל",
"evalsHeroDescription": "בדוק ואמת את נקודות הקצה של LLM שלך על ידי הפעלת חבילות הערכה מוגדרות מראש. כל חבילה מכילה מקרי בדיקה ששולחים הנחיות אמיתיות דרך OmniRoute ומשווים תגובות מול קריטריונים צפויים - עוזרים לך לזהות רגרסיות, להשוות מודלים ולהבטיח איכות תגובה בין ספקים.",
"qualityValidation": "אימות איכות",
@@ -9419,7 +9430,7 @@
"providerLimits": "מגבלות ספקים",
"noProviders": "אין ספקים מחוברים",
"connectProvidersForQuota": "התחבר לספקים עם OAuth כדי לעקוב אחר מגבלות מכסת ה-API והשימוש שלך.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {חשבון אחד} other {# חשבונות}}",
"filteredFromCount": "(מסונן מ-{count})",
"autoRefresh": "רענון אוטומטי",
"refreshAll": "רענן הכל",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "עדכון נראות המכסה נכשל",
"account": "חשבון",
"modelQuotas": "מכסות דגם",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "רענון אחרון",
"actions": "פעולות",
"refreshQuota": "רענון מכסה",
"today": "היום",
@@ -9448,20 +9459,20 @@
"cardExpand": "הרחב",
"cardCollapse": "כווץ",
"moreQuotas": "+{count} נוספים",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "ללא קיבוץ",
+ "viewFlat": "שטוח",
+ "viewByEnvironment": "לפי סביבה",
"noQuotaDataAvailable": "אין נתוני מכסה זמינים",
"noAccountsForTierFilter": "לא נמצאו חשבונות עבור מסנן שכבות",
"tierAll": "הכל",
- "tierEnterprise": "Enterprise",
+ "tierEnterprise": "ארגוני",
"tierTeam": "צוות",
"tierBusiness": "עסקים",
"tierUltra": "אולטרה",
"tierPro": "פרו",
"tierPlus": "בנוסף",
"tierFree": "חינם",
- "tierLite": "Lite",
+ "tierLite": "קל",
"tierUnknown": "לא ידוע",
"statTotal": "סך הכל",
"statCritical": "קריטי",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "רמה",
"purchaseAll": "הכל",
"purchaseOauthSub": "מנוי",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "ללא OAuth",
"purchaseApiKey": "מפתח API",
"creditsLabel": "קרדיטים",
"creditBalanceHint": "יתרה שנותרה",
@@ -9500,114 +9511,114 @@
"confirmRedeemResetCreditButton": "מימוש קרדיט",
"resetCreditRedeemed": "האיפוס מומש",
"resetCreditRedeemFailed": "מימוש קרדיט האיפוס נכשל",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "שמירת החבילה נכשלה",
"clone": "שיבוט",
"exportSuite": "ייצוא",
"importSuite": "ייבוא",
"suiteExported": "סוויטה מיוצאת",
"suiteExportFailed": "ייצוא החבילה נכשל",
- "suiteImportReady": "Suite import loaded for review",
+ "suiteImportReady": "ייבוא חבילת הבדיקות נטען לבדיקה",
"suiteImportFailed": "ייבוא החבילה נכשל",
"suiteImportInvalid": "חבילת eval JSON לא חוקית",
"suiteBuilderCloneSuffix": "להעתיק",
"suiteBuilderImportedSuite": "סוויטה מיובאת",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "כרטיס ניקוד",
+ "evalApiKey": "מפתח API",
+ "scorecardPassRate": "שיעור הצלחה",
+ "targetTypeModel": "מודל",
+ "actualOutputLabel": "פלט בפועל",
+ "evalTargetHint": "יש לבחור מודל או שילוב להערכה.",
+ "suiteBuilderDeleted": "חבילת הבדיקות נמחקה בהצלחה",
+ "suiteBuilderCaseCardHint": "יש להגדיר את הנחיית הקלט ואת הקריטריונים לפלט הצפוי.",
+ "nextResetUtc": "האיפוס הבא (UTC)",
+ "scorecardHint": "שיעורי הצלחה מצטברים בכל חבילות ההערכה.",
+ "suiteLatestRunsHint": "הרצות ההערכה האחרונות עבור חבילה זו.",
+ "saving": "מתבצעת שמירה",
+ "suiteBuilderCaseModelLabel": "מודל (אופציונלי)",
+ "evalControlsTitle": "פקדי הערכה",
+ "suiteBuilderEditTitle": "עריכת חבילת הערכה",
+ "suiteBuilderCaseStrategyLabel": "אסטרטגיית אימות",
+ "notifySelectDifferentCompareTarget": "יש לבחור יעד אחר להשוואה",
+ "recentRunsHint": "מוצגות הרצות ההערכה האחרונות. יש ללחוץ על הרצה כדי לראות תוצאות מפורטות.",
+ "evalCompareHint": "ניתן להשוות את התוצאות ליעד נוסף.",
+ "suiteBuilderCaseInvalid": "במקרה זה יש שגיאות אימות. יש לתקן אותן לפני השמירה.",
+ "historyEmpty": "אין עדיין היסטוריית הערכות",
+ "suiteBuilderUpdated": "חבילת הבדיקות עודכנה בהצלחה",
+ "resetInterval": "מרווח איפוס",
+ "suiteBuilderCreateTitle": "יצירת חבילת הערכה",
+ "activePeriodSpend": "הוצאות בתקופה הפעילה",
+ "evalApiKeyHint": "יש לבחור באיזה מפתח API להשתמש עבור בקשות הערכה.",
+ "evalCompareOptional": "השוואה (אופציונלי)",
+ "suiteBuilderDeleteFailed": "מחיקת החבילה נכשלה",
+ "suiteBuilderCaseSystemPromptPlaceholder": "הוראות מערכת אופציונליות...",
+ "scorecardCases": "מקרים",
+ "runCompletedWithScore": "ההערכה הושלמה — שיעור הצלחה של {score}%",
+ "suiteBuilderCustomBadge": "מותאם אישית",
+ "targetSuiteDefaults": "ברירות המחדל של החבילה",
+ "suiteBuilderDeleteConfirm": "האם למחוק חבילה זו? לא ניתן לבטל פעולה זו.",
+ "suiteBuilderNameLabel": "שם החבילה",
+ "scorecardSuites": "חבילות",
+ "evalCompareTarget": "יעד להשוואה",
+ "suiteBuilderCaseModelPlaceholder": "לדוגמה, gpt-4o-mini",
+ "evalControlsHint": "יש להגדיר את יעד ההערכה ואת מפתח ה-API, ולאחר מכן להריץ חבילות כדי לאמת את איכות המודל.",
+ "recentRunsTitle": "הרצות אחרונות",
+ "suiteBuilderCaseSystemPromptLabel": "הנחיית מערכת",
+ "suiteBuilderCaseExpectedPlaceholder": "למשל def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "למשל def fibonacci",
- "suiteBuilderCaseExpectedPlaceholderExact": "Paste the exact expected response",
+ "suiteBuilderCaseExpectedPlaceholderExact": "הדביקו את התגובה המדויקת הצפויה",
"suiteBuilderCaseExpectedPlaceholderRegex": "למשל ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "השתמש בביטוי רגולרי של JavaScript ללא גלישת קווים.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "למשל חבילת בדיקות לאיכות קוד",
+ "suiteBuilderAddCase": "הוספת מקרה",
+ "cancel": "ביטול",
+ "evalTarget": "יעד",
+ "suiteBuilderCaseNameLabel": "שם המקרה",
+ "weeklyLimitUsd": "מגבלה שבועית (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "למשל כתבו פונקציית fibonacci ב-Python",
+ "suiteBuilderNameRequired": "יש להזין שם לחבילה",
+ "suiteBuilderCaseUserPromptLabel": "הנחיית משתמש",
+ "daily": "יומי",
+ "resultErrorLabel": "שגיאה",
+ "suiteBuilderBuiltInBadge": "מובנה",
+ "suiteBuilderCaseCardTitle": "מקרה בדיקה",
"suiteBuilderDuplicateCase": "שכפול",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "למשל 50.00",
+ "suiteBuilderCaseTagsHint": "תגיות מופרדות בפסיקים לארגון מקרי בדיקה.",
+ "notifyEvalRunFailedWithReason": "ההערכה נכשלה: {reason}",
+ "weekly": "שבועי",
+ "runEvalRunning": "ההערכה מתבצעת...",
+ "delete": "מחיקה",
+ "resetTimeUtc": "שעת איפוס (UTC)",
+ "evalApiKeyAuto": "אוטומטי (שימוש בברירת המחדל)",
+ "suiteBuilderDescriptionPlaceholder": "תיאור אופציונלי של מה שהחבילה הזו בודקת...",
+ "targetComparisonTitle": "השוואת יעדים",
+ "save": "שמירה",
+ "suiteBuilderCreated": "החבילה נוצרה בהצלחה",
+ "suiteLatestRuns": "ההרצות האחרונות",
+ "suiteBuilderCaseExpectedLabel": "ערך צפוי",
+ "historyLatency": "זמן השהיה",
+ "suiteBuilderCaseTagsPlaceholder": "למשל coding, python",
+ "targetTypeCombo": "משולב",
+ "scorecardPassed": "עבר בהצלחה",
+ "suiteBuilderCaseTagsLabel": "תגיות",
+ "suiteBuilderNewSuite": "חבילה חדשה",
+ "notifyEvalLoadFailed": "טעינת נתוני ההערכה נכשלה",
+ "notConfigured": "לא הוגדר",
+ "suiteBuilderCaseNamePlaceholder": "למשל בדיקת fibonacci ב-Python",
+ "intervalLabel": "מרווח",
+ "suiteBuilderCreateAction": "יצירת חבילת בדיקות",
+ "suiteBuilderCasesHint": "כל מקרה שולח הנחיה ומאמת את התגובה.",
+ "suiteBuilderUpdatedAt": "עודכן",
+ "errorBadge": "שגיאה",
+ "suiteBuilderCasesTitle": "מקרי בדיקה",
+ "edit": "עריכה",
+ "monthly": "חודשי",
+ "suiteBuilderCasesRequired": "נדרש לפחות מקרה בדיקה אחד",
+ "weeklyLimitSummary": "סיכום מגבלת התקציב השבועית",
+ "suiteBuilderDescriptionLabel": "תיאור",
+ "targetComparisonHint": "השוואה זה לצד זה של תוצאות ההערכה בין היעדים.",
+ "compareCompletedWithScore": "ההשוואה הושלמה — שיעור הצלחה של {score}%",
+ "staleQuotaTooltip": "הרענון האחרון נכשל — מוצגים נתונים מהמטמון",
"quotaThresholdLabel": "דקות שמאל",
"quotaCutoffsColumnHelp": "עצירת בקשות כאשר המכסה שנותרה נופלת לאחוז זה או מתחת.",
"quotaCutoffsButtonDefault": "ברירת מחדל",
@@ -9752,7 +9763,7 @@
"usageByModel": "שימוש לפי דגם",
"usageByAccount": "שימוש לפי חשבון",
"failedToLoad": "טעינת סטטיסטיקת שימוש נכשלה.",
- "tokenHealth": "Token Health",
+ "tokenHealth": "תקינות האסימון",
"totalOAuth": "סך הכל OAuth",
"healthy": "בריא",
"warning": "אזהרה",
@@ -9859,7 +9870,7 @@
"backToLogin": "חזרה לכניסה",
"forgotPassword": "שכחת סיסמה?",
"continueWithOidc": "המשך עם OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "סיסמת ברירת מחדל: CHANGEME (אלא אם INITIAL_PASSWORD הוגדר)",
"Authorization": "הרשאה",
"Content-Disposition": "תוכן-נטייה",
"waitingForAuthorization": "ממתין לאישור...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "ממתין לאישור נגד כבידה...",
"waitingForQoderAuthorization": "ממתין להרשאת Qoder...",
"exchangingCodeForTokens": "מחליף קוד לאסימונים...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "גרסת Node.js אינה תואמת",
+ "nodeIncompatibleDesc": "אתם מפעילים את Node.js {version}, שאינה עומדת במדיניות סביבת ההרצה המאובטחת הנתמכת של OmniRoute. השתמשו בגרסת Node.js 20.x או 22.x LTS מתוקנת.",
+ "nodeIncompatibleFixLabel": "תיקון: התקינו גרסת Node.js 22 LTS מתוקנת",
+ "nodeIncompatibleHint": "OmniRoute דורש Node.js 22.22.2+ (22.x LTS) או 24.0.0+ (24.x LTS). מומלץ להשתמש ב-Node 24 LTS.",
"resetViaAppDataTitle": "איפוס דרך נתוני אפליקציה",
"resetViaAppDataDescription": "מחק את קובץ ההגדרות מתוך תיקיית נתוני האפליקציה כדי לאפס את הסיסמה שלך:",
"quitDesktopApp": "סגור את אפליקציית OmniRoute בשולחן העבודה לחלוטין",
@@ -9959,7 +9970,7 @@
"howItWorksDescription": "הנתונים זורמים בצורה חלקה מהאפליקציה שלך דרך שכבת הניתוב החכמה שלנו לספק הטוב ביותר לתפקיד.",
"howItWorksStep1Title": "1. CLI ו-SDKs",
"howItWorksStep1Description": "הבקשות שלך מתחילות מהכלים המועדפים עליך או מה-SDK המאוחד שלנו. פשוט שנה את כתובת האתר הבסיסית.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
+ "howItWorksStep2Title": "2. מרכז OmniRoute",
"howItWorksStep2Description": "המנוע שלנו מנתח את ההנחיה, בודק את תקינות הספק ומסלולים לאיחור או עלות הנמוכים ביותר.",
"howItWorksStep3Title": "3. ספקי AI",
"howItWorksStep3Description": "הבקשה מתמלאת על ידי OpenAI, Anthropic, Gemini או אחרים באופן מיידי.",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "ספקים",
"commonUseCases": "מקרי שימוש נפוצים",
"clientCompatibility": "תאימות ללקוח",
- "protocolsToc": "Protocols",
+ "protocolsToc": "פרוטוקולים",
"apiReference": "הפניה ל-API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "חומר עזר ל-Management API",
+ "managementApiDescription": "נקודות קצה לאוטומציה עבור מרשם שרתי ה-proxy, הקצאות היקף והעברת שרתי proxy מדור קודם.",
"method": "שיטה",
"path": "נתיב",
"notes": "הערות",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "השתמש בקידומת ספק, למשל",
"deploySetupTitle": "מדריך התקנה",
"deploySetupText": "התקנה שלב אחר שלב, תצורת סביבה והדרכה ראשונה עבור OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron למחשב שולחני",
"deployElectronText": "הפעל את OmniRoute כיישום שולחן עבודה מקורי ב-Windows, macOS ו-Linux.",
"deployDockerTitle": "דוקר",
"deployDockerText": "פריסה מכולות עם Docker Compose; מוכן לערימות ייצור ו-Kubernetes.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "התקן את OmniRoute כאפליקציית אינטרנט מתקדמת בדפדפנים של אנדרואיד, iOS ושולחן העבודה.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "הפעילו את OmniRoute ללא ממשק גרפי ב-Android באמצעות Termux. גשו ללוח הבקרה מהדפדפן בנייד.",
"featureRoutingTitle": "ניתוב רב ספקים",
"featureRoutingText": "נתב בקשות ל-30+ ספקי AI דרך נקודת קצה אחת תואמת OpenAI. תומך בצ'אט, תגובות, אודיו ותמונה API.",
"featureCombosTitle": "שילובים ואיזון",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "השתמש ב-OmniRoute ככתובת URL יציבה תוך כדי סיבוב חשבונות או שילובי ספקים מתחת.",
"clientKimiBullet2": "העדיפו מודלים עם קידומת בזרימות קידוד כדי שהחזרה ושביל הביקורת יישארו מפורשים.",
"clientKimiBullet3": "השתמש ב-/v1/responses כאשר אתה רוצה ניתוב מקורי בסגנון Responses עבור לקוחות המשתמשים בכלים.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "פרוטוקולים: MCP ו-A2A",
+ "protocolsDescription": "OmniRoute מציע שני פרוטוקולים תפעוליים בנוסף לממשקי API תואמי OpenAI: MCP להפעלת כלים ו-A2A לתהליכי עבודה בין סוכנים.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "השתמשו ב-MCP דרך stdio כדי לאפשר ללקוחות לגלות ולהפעיל כלי OmniRoute עם נראות לצורכי ביקורת.",
+ "protocolMcpStep1": "הפעילו את תעבורת MCP באמצעות `omniroute --mcp`.",
+ "protocolMcpStep2": "הפנו את לקוח ה-MCP שלכם לתעבורת stdio.",
+ "protocolMcpStep3": "הפעילו את `omniroute_get_health` ואת `omniroute_list_combos` כדי לאמת את הקישוריות.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "השתמשו ב-A2A JSON-RPC כדי לשלוח משימות באופן סינכרוני או באמצעות הזרמת SSE.",
+ "protocolA2aStep1": "קראו את `/.well-known/agent.json` לצורך גילוי הסוכן.",
+ "protocolA2aStep2": "שלחו בקשות `message/send` או `message/stream` אל `POST /a2a`.",
+ "protocolA2aStep3": "נהלו את מחזור החיים של המשימות באמצעות `tasks/get` ו-`tasks/cancel`.",
+ "protocolTroubleshootingTitle": "פתרון בעיות בפרוטוקול",
+ "protocolTroubleshooting1": "אם סטטוס MCP אינו מקוון, ודאו שתהליך stdio פועל ושקובץ ה-heartbeat מתעדכן.",
+ "protocolTroubleshooting2": "אם משימות A2A נשארות במצב `working`, בדקו את `/api/a2a/tasks/:id` ואת אירועי הזרם כדי לאתר מצב סופי.",
+ "protocolTroubleshooting3": "השתמשו ב-`/dashboard/mcp` וב-`/dashboard/a2a` לבקרה תפעולית ולנראות לצורכי ביקורת.",
"endpointChatNote": "נקודת קצה צ'אט תואמת OpenAI (ברירת מחדל).",
"endpointResponsesNote": "נקודת קצה של תגובות API (Codex, o-series).",
"endpointModelsNote": "קטלוג דגמים לכל הספקים המחוברים.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "עוזר שכתוב עבור לקוחות ללא /v1.",
"endpointRewriteResponsesNote": "שכתוב עוזר לתגובות ללא /v1.",
"endpointRewriteModelsNote": "עוזר שכתוב לגילוי מודל ללא /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "הציגו פריטי רישום פרוקסי שמורים (תומך בעימוד).",
+ "mgmtProxiesCreateNote": "צרו פריט פרוקסי לשימוש חוזר ברישום.",
+ "mgmtProxiesHealthNote": "הציגו מדדי תקינות ל-24 שעות/בחלון נע עבור כל פרוקסי שמור, מתוך יומני הפרוקסי.",
+ "mgmtProxiesBulkAssignNote": "הקצו או הסירו פרוקסי אחד עבור מזהי תחום רבים בבקשה אחת.",
+ "mgmtAssignmentsListNote": "הציגו הקצאות פרוקסי לפי תחום, scope_id או proxy_id.",
+ "mgmtAssignmentsUpdateNote": "הקצו או הסירו פרוקסי עבור תחום גלובלי/ספק/חשבון/שילוב.",
+ "mgmtLegacyMigrationNote": "ייבאו מפות proxyConfig מדור קודם להקצאות ברישום.",
"modelPrefixesDescriptionStart": "השתמש בקידומת הספק לפני שם הדגם כדי לנתב לספק ספציפי. דוגמה:",
"modelPrefixesDescriptionEnd": "מסלולים אל GitHub Copilot.",
"provider": "ספק",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute היא תוכנת קוד פתוח. אתה חופשי לבדוק, לשנות ולהפיץ אותו תחת תנאי הרישיון שלו."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "סוכני CLI",
+ "description": "גלו סוכני CLI המותקנים במערכת שלכם. הוסיפו סוכנים מותאמים אישית לזיהוי אוטומטי.",
+ "refresh": "רענון",
+ "installed": "מותקן",
+ "notFound": "לא נמצא",
+ "builtIn": "מובנה",
+ "custom": "מותאם אישית",
+ "remove": "הסרה",
+ "addCustomAgent": "הוספת סוכן מותאם אישית",
+ "addCustomAgentDesc": "רשמו כל כלי CLI לצורך זיהוי. הוא ייסרק אוטומטית בעת רענון.",
+ "agentName": "שם הסוכן",
+ "binaryName": "שם הקובץ הבינארי",
+ "versionCommand": "פקודת גרסה",
+ "spawnArgs": "ארגומנטים להפעלה",
+ "addAgent": "הוספת סוכן",
+ "scanning": "המערכת נסרקת לאיתור סוכני CLI...",
+ "opencodeIntegration": "שילוב OpenCode",
+ "opencodeDetected": "זוהתה opencode {version}",
+ "opencodeDesc": "צרו קובץ {configFile} מוכן לשימוש עם כתובת ה-URL הבסיסית של OmniRoute וכל המודלים הזמינים — מקמו אותו בספריית הבסיס של הפרויקט והריצו {command}.",
+ "downloadConfig": "הורדת {file}",
+ "downloaded": "ההורדה הושלמה!",
+ "setupGuideTitle": "מדריך הגדרה",
+ "openCliTools": "פתיחת כלי CLI",
+ "setupGuideDetectCliTitle": "זיהוי ממשקי CLI מותקנים",
+ "setupGuideDetectCliDesc": "לחצו על רענון לאחר התקנה או עדכון של CLI, כדי ש-OmniRoute יוכל לסרוק מחדש קבצים בינאריים וגרסאות.",
+ "setupGuideCustomAgentTitle": "רישום קובץ בינארי מותאם אישית",
+ "setupGuideCustomAgentDesc": "השתמשו באפשרות הוספת סוכן מותאם אישית כאשר ה-CLI שלכם אינו ברשימה המובנית. ציינו את שם הקובץ הבינארי ואת פקודת הגרסה.",
+ "setupGuideCommandMissingTitle": "תיקון השגיאה 'command not found'",
+ "setupGuideCommandMissingDesc": "ודאו שפקודת ה-CLI קיימת ב-PATH, פתחו הפעלת מסוף חדשה והפעילו שוב את הרענון.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "ניהול מטמון",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "רענון",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "רשומות בזיכרון",
+ "memoryEntriesSub": "LRU בזיכרון",
+ "dbEntries": "רשומות במסד הנתונים",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "פגיעות במטמון",
+ "cacheHitsSub": "מתוך {total} בסך הכול",
+ "tokensSaved": "טוקנים שנחסכו",
+ "tokensSavedSub": "הערכה על סמך פגיעות",
+ "hitRate": "שיעור פגיעות",
+ "performance": "ביצועי המטמון",
+ "autoRefresh": "מתרענן אוטומטית כל {seconds} שניות",
+ "hits": "פגיעות",
+ "misses": "החטאות",
+ "total": "סה״כ",
+ "behavior": "התנהגות המטמון",
+ "behaviorDeterministic": "רק בקשות שאינן מוזרמות עם temperature=0 נשמרות במטמון.",
+ "behaviorBypass": "עקיפה באמצעות הכותרת {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "ברירת המחדל של TTL: 30 דקות. ניתן להגדיר באמצעות {envVar}.",
+ "idempotency": "שכבת אידמפוטנטיות",
+ "activeDedupKeys": "מפתחות מניעת כפילויות פעילים",
+ "dedupWindow": "חלון מניעת כפילויות",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "ניקוי המטמון נכשל.",
+ "unavailable": "המטמון אינו זמין",
+ "unavailableDesc": "לא ניתן היה לאחזר את נתוני המטמון. ודאו שהשרת פועל.",
"loadingCacheAria": "טוען מטמון",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "מטמון פרומפטים (בצד הספק)",
+ "semanticCache": "מטמון סמנטי",
+ "promptCacheSectionDesc": "מציג פעילות של שמירת פרומפטים במטמון בצד הספק מתוך היסטוריית השימוש, כדי שתוכלו לראות היכן בקרת המטמון פעילה ובאיזו מידה נעשה שימוש חוזר בקלט.",
+ "promptTrendDesc": "נפח בקשות שעתי, כיסוי מטמון ונפח קריאות מהמטמון במהלך 24 השעות האחרונות.",
+ "cachedRequests": "בקשות שנשמרו במטמון",
+ "cachedRequests24h": "בקשות שנשמרו במטמון (24 שעות)",
+ "cacheHitRate": "שיעור פגיעות במטמון",
+ "cacheRate": "שיעור שימוש במטמון",
+ "cacheRateDesc": "מתוך כלל הבקשות",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "מדדי מטמון פרומפטים",
+ "withCacheControl": "עם בקרת מטמון",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "יחס שימוש חוזר במטמון",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "חיסכון משוער בעלויות",
+ "lastUpdated": "עודכן לאחרונה",
+ "hoursTracked": "שעות במעקב",
+ "busiestHour": "השעה העמוסה ביותר",
+ "peakCacheRate": "שיעור המטמון המרבי",
+ "trendHour": "שעה",
+ "activityVolume": "פעילות",
+ "requestsShort": "בקשות",
+ "inputShort": "קלט",
+ "cachedShort": "במטמון",
+ "writeShort": "כתיבה",
+ "resetting": "מתבצע איפוס...",
+ "resetMetrics": "איפוס מדדים",
+ "byProvider": "פילוח לפי ספק",
+ "providerCacheRateDesc": "כל ספק מציג את סך אסימוני הקלט, אסימוני הקריאה מהמטמון ואסימוני הכתיבה למטמון, כדי שתוכלו לאמת את יחס השימוש החוזר מול הסכומים הגולמיים.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "בקשות",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "מגמת המטמון (24 שעות)",
+ "peakCached": "שיא השימוש במטמון",
+ "cached": "במטמון",
+ "overview": "סקירה כללית",
"tableProvider": "ספק",
"tableModel": "מודל",
"performanceTitle": "ביצועים",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "מטמון התגובות הדטרמיניסטי של OmniRoute. כאשר הוא מופעל, בקשות חוזרות שאינן מוזרמות עם temperature=0 יכולות לקבל מענה מקומי בלי לפנות לספק המקור.",
+ "semanticCacheDisabledDesc": "המטמון הסמנטי מושבת. OmniRoute ידלג על שימוש חוזר מקומי בתגובות עד שתפעילו אותו מחדש בהגדרות.",
+ "semanticEntriesDesc": "רשומות מטמון סמנטי שמורות המאוחסנות כעת ב-SQLite. פעילות מטמון ההנחיות בצד הספק אינה מופיעה כאן.",
+ "searchEntries": "חיפוש רשומות...",
+ "search": "חיפוש",
+ "loading": "בטעינה...",
+ "entriesLoadError": "טעינת רשומות המטמון הסמנטי נכשלה.",
+ "noEntries": "לא נמצאו רשומות מטמון",
+ "noPromptCacheData": "עדיין לא תועדה פעילות של מטמון הנחיות בצד הספק.",
+ "noTrendData": "לא תועדה פעילות של מטמון הנחיות במהלך 24 השעות האחרונות.",
+ "signature": "חתימה",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "נוצר",
+ "expires": "תפוגה",
+ "actions": "פעולות",
+ "deduplicatedRequests": "בקשות שאוחדו",
+ "savedCalls": "קריאות API שנחסכו",
+ "totalProcessed": "סך הבקשות שעובדו",
+ "disabled": "מושבת",
+ "totalRequests": "סך הבקשות",
"reasoningCache": "נימוק חוזר",
"reasoningCacheDesc": "משמר את החשיבה של המודל עבור זרימת קריאה לכלי מרובה פניות",
"reasoningEntries": "ערכים פעילים",
@@ -10665,7 +10676,7 @@
"minutesAgo": "לפני {minutes} דק'",
"hoursAgo": "לפני {hours} שע'",
"daysAgo": "לפני {days} ימים",
- "entries": "Entries"
+ "entries": "רשומות"
},
"proxyConfigModal": {
"levelGlobal": "גלובלי",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "הדבק מפתח API קיים של Devin מתוך סשן מאומת של Devin. זמינות ייצוא המפתח וצעדיו משתנים לפי גרסת Devin וחשבון.",
"devinPasteDescription": "ספק את ה-WINDSURF_API_KEY שלך (שהושג באמצעות `devin auth login`, או באמצעות הפקודה \"Windsurf: Provide Auth Token\" ב-Windsurf IDE).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json של Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "מפתח API / טוקן",
"saving": "שומר…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "חבר את הסמן IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "התחברות באמצעות Cursor",
+ "tabImport": "ייבוא אסימון",
+ "loginDescription": "פותח את דף ההתחברות של Cursor בדפדפן. פועל ב-Docker — יש לאשר בדפדפן המארח ולאחר מכן לחזור לכאן.",
+ "loginWithCursor": "התחברות באמצעות Cursor",
+ "startingLogin": "מתחיל…",
+ "waitingApproval": "ממתין לאישור ההתחברות ל-Cursor…",
+ "openUrlHint": "אם הדפדפן לא נפתח:",
+ "openLoginLink": "פתיחת דף ההתחברות",
+ "cancelLogin": "ביטול ההתחברות",
"autoDetecting": "מזהה אוטומטית אסימונים...",
"readingFromCursor": "קריאה מ-IDE Cursor או Cursor-agent",
"tokensAutoDetected": "אסימונים זוהו בהצלחה אוטומטית מ-Cursor IDE!",
"cursorNotDetected": "IDE הסמן לא זוהה. אנא הדבק ידנית את האסימון שלך.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "פועל ב-Docker? עדיף להשתמש בהתחברות באמצעות Cursor. ייבוא אוטומטי מה-IDE ו-cursor-agent בדרך כלל אינם זמינים בתוך הקונטיינר. למידע נוסף: docs/providers/CURSOR-DOCKER.md.",
"accessToken": "אסימון גישה",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "אסימון רענון",
+ "refreshTokenPlaceholder": "אופציונלי — מאפשר רענון אוטומטי של האסימון",
"required": "*",
"accessTokenPlaceholder": "אסימון הגישה יאוכלס אוטומטית...",
"machineId": "מזהה מכונה",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "זיהוי אוטומטי של אסימונים נכשל",
"errorEnterToken": "נא להזין אסימון גישה",
"errorImportFailed": "הייבוא נכשל",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "הפעלת ההתחברות ל-Cursor נכשלה",
+ "errorLoginPoll": "ההתחברות ל-Cursor נכשלה",
+ "errorLoginTimeout": "פג הזמן שהוקצב להתחברות ל-Cursor — יש לנסות שוב"
},
"pricingModal": {
"title": "תצורת תמחור",
@@ -10839,9 +10850,9 @@
"selectProxy": "בחר את {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "ייבוא מהגרסה הישנה",
+ "bulkAssign": "שיוך מרוכז",
+ "addProxy": "הוספת Proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "בדיקה",
+ "edit": "עריכה",
+ "delete": "מחיקה",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "נכשל",
"successRate": "{rate}% הצלחה",
"avgLatency": "{latency} אלפיות השנייה בממוצע",
"assignmentsCount": "{count} מטלות",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} אלפיות השנייה",
"testFailure": "✗ {error}",
"repair": "תיקון",
"relayAuthMissing": "אימות חסר",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "אסטרטגיית רוטציה",
"poolStrategyHint": "round-robin מבצע סבב בין החברים לפי הסדר; random בוחר באופן אחיד; sticky שומר על חבר אחד למשך חלון זמן; latency-optimized בוחר את המהיר ביותר על סמך יומנים.",
"poolStrategyFailed": "עדכון אסטרטגיית הרוטציה נכשל",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "סבב מחזורי",
"strategyRandom": "אקראי",
- "strategySticky": "Sticky",
+ "strategySticky": "נצמד",
"strategyLatency": "מותאם השהיה",
"poolMembersLabel": "חברי המאגר ({count})",
"poolNoMembers": "אין עדיין שרתי פרוקסי במאגר זה.",
+ "poolEgressObservation": "נעשה שימוש ב-{exits, plural, one {יציאה אחת} other {# יציאות}} על ידי {connections, plural, one {חיבור אחד} other {# חיבורים}} · עד {max} ביציאה אחת · ב-{hours} השעות האחרונות",
+ "poolEgressObservationEmpty": "לא נצפתה תעבורה ב-{hours} השעות האחרונות",
+ "poolEgressObservationHint": "הנתונים נספרו מיומן הפרוקסי לאורך חלון הזמן: כתובות IP ייחודיות לתעבורה יוצאת שנצפו עבור החברים במאגר זה, וחיבורי OmniRoute שהשתמשו בהן. \"ביציאה אחת\" מתייחס לכל חלון הזמן, ולא לשימוש בו-זמני. חסימת 429 לכל כתובת IP משהה רק חיבורים מאותה משפחת ספקים.",
"poolRemove": "הסר",
"poolRemoveFailed": "הסרת הפרוקסי מהמאגר נכשלה",
"poolAddLabel": "הוסף פרוקסי",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "נקודת קצה",
+ "provider": "ספק",
+ "model": "מודל",
"accountKey": "Account Key",
"autoAccounts": "אוטומטי ({count} חשבונות)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "שליחה",
+ "cancel": "ביטול",
+ "audioFile": "קובץ שמע",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "ניקוי הכול",
+ "request": "בקשה",
+ "response": "תגובה",
+ "transcription": "תמלול",
+ "copy": "העתקה",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "נוצרו {count} תמונות",
"generatedImage": "תמונה שנוצרה {index}",
- "save": "Save",
+ "save": "שמירה",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "תגובות",
"completions": "השלמות",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "הטמעות",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "בדיקת תוכן",
- "rerank": "Rerank",
+ "rerank": "דירוג מחדש",
"search": "Search",
"webFetch": "אחזור מהרשת"
},
"conversationalChat": "צ'אט שיחה",
"clearChat": "נקה צ'אט",
"typeMessagePlaceholder": "הקלד הודעה... (Shift+Enter לשורה חדשה)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "צ׳אט",
+ "tabCompare": "השוואה",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "בנייה",
+ "configPane": "הגדרות",
+ "systemPrompt": "הנחיית מערכת",
+ "systemPromptPlaceholder": "אתה עוזר מועיל.",
+ "modelPlaceholder": "לדוגמה openai/gpt-4o",
+ "endpointLabel": "נקודת קצה",
+ "parametersLabel": "פרמטרים",
+ "collapseConfig": "כיווץ חלונית ההגדרות",
+ "expandConfig": "הרחבת חלונית ההגדרות",
+ "temperature": "טמפרטורה",
+ "maxTokens": "מספר אסימונים מרבי",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "קנס נוכחות",
+ "frequencyPenalty": "קנס תדירות",
"reasoningLabel": "הסקה",
"thinking": "חשיבה",
"effort": "מאמץ",
"effortDefault": "ברירת מחדל",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "אקראי (יש להשאיר ריק)",
+ "presetsLabel": "הגדרות קבועות מראש",
+ "loadPreset": "טעינת הגדרה קבועה מראש",
+ "savePreset": "שמירת הגדרה קבועה מראש",
+ "noPresets": "אין הגדרות קבועות מראש",
+ "presetNamePlaceholder": "שם ההגדרה הקבועה מראש",
+ "savingPreset": "שומר…",
+ "nameRequired": "נדרש שם",
+ "failedToSavePreset": "שמירת ההגדרה הקבועה מראש נכשלה",
+ "improvePrompt": "שיפור ההנחיה",
+ "improvingPrompt": "משפר…",
+ "improvePromptTitle": "שיפור ההנחיה שלך באמצעות AI",
+ "setModelFirst": "תחילה יש להגדיר מודל",
"setModelInConfigFirst": "הגדר מודל בחלונית ההגדרות תחילה.",
"improvePromptFailed": "שיפור הפרומפט נכשל.",
"improvePromptAria": "שפר פרומפט באמצעות AI",
"confirmImprovePrompt": "אשר שיפור פרומפט",
"improvePromptDescription": "פעולה זו תשלח את פרומפט המערכת הנוכחי שלך אל omniglyph मोड के माध्यम से स्टैंडअलोन भी चलता है। यह एक पूर्वावलोकन है और एंड-टू-एंड सत्यापन पूरा होने तक डिफ़ॉल्ट रूप से बंद रहता है।",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "कंप्रेशन प्रोफ़ाइल",
+ "profileDescription": "प्रोफ़ाइल अधिकतम सीमा है, न्यूनतम नहीं: अधिक सख़्त प्रोफ़ाइल को प्रति-चरण ओवरराइड द्वारा फिर से शिथिल नहीं किया जा सकता। इस कोडबेस पर मापा गया: coding-safe या balanced के साथ, जिस सत्र में अभी तक हिस्ट्री एकत्रित नहीं हुई है, उसमें कुछ भी कंप्रेस नहीं होता, क्योंकि दोनों न्यूनतम-अक्षर सीमा बढ़ाते हैं और सिस्टम प्रॉम्प्ट, टूल स्कीमा तथा टूल परिणामों को मूल रूप में रखते हैं।",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "आक्रामक (डिफ़ॉल्ट)",
+ "description": "वह नीति जिसे प्रकाशित रसीदों ने मापा। सिस्टम प्रॉम्प्ट, टूल दस्तावेज़ीकरण और सघन हिस्ट्री की इमेज बनाती है।"
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "संतुलित",
+ "description": "लाइव स्थिति को मूल रूप में रखता है और अंतिम 8 टर्न सुरक्षित करता है; केवल पुराने बंद हो चुके इतिहास को संक्षिप्त करता है।"
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "कोडिंग-सुरक्षित",
+ "description": "प्राधिकार, टूल स्कीमा और लाइव टूल आउटपुट को मूल रूप में रखते हुए अंतिम 12 टर्न सुरक्षित करता है। जब तक सत्र में हिस्ट्री एकत्रित नहीं होती, तब तक कुछ भी कंप्रेस नहीं करता।"
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "पासथ्रू",
+ "description": "बिना रूपांतरित किए रूट करता है। इंजन को छोड़ दिया जाता है और अनुरोध को बिना बदलाव के अग्रेषित किया जाता है।"
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph कंप्रेशन प्रोफ़ाइल चुनें",
"saved": "सहेजा गया।",
"saveFailed": "सहेजा नहीं जा सका।",
"enableAria": "OmniGlyph इंजन सक्षम करें",
@@ -8881,7 +8892,7 @@
"fallbackRouting": "फ़ॉलबैक राउटिंग",
"fallbackRoutingDescription": "CLIProxyAPI के माध्यम से विफल प्रदाता अनुरोधों को पुनः प्रयास करें",
"enableFallback": "फ़ॉलबैक सक्षम करें",
- "cliproxyUrl": "CLIProxyAPI URL",
+ "cliproxyUrl": "CLIProxyAPI यूआरएल",
"fallbackCodes": "फ़ॉलबैक स्थिति कोड (अल्पविराम से अलग किए गए)",
"invalidUrl": "अमान्य URL — http:// या https:// से शुरू होना चाहिए",
"saved": "सहेजा गया",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "नियम-आधारित संदेश कंप्रेशन, भाषा पैक, विश्लेषिकी और आउटपुट मोड नियंत्रण।",
"advancedConfig": "उन्नत विन्यास",
"advancedConfigDesc": "संपीड़न व्यवहार को सुव्यवस्थित करें",
"aggressiveSettings": "आक्रामक सेटिंग्स",
"aggressiveSettingsDesc": "संभावित गुणवत्ता वाले ट्रेड-ऑफ़ के साथ अधिकतम संपीड़न",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "अनुरोध",
+ "tokensSaved": "बचाए गए टोकन",
+ "savingsPercent": "बचत %",
+ "avgLatency": "औसत विलंबता",
+ "languagePacks": "भाषा पैक",
+ "languagePacksDesc": "विशिष्ट भाषाओं के लिए संपीड़न नियम सक्षम करें।",
"labelAutoTrigger": "संदर्भ से अधिक होने पर स्वतः संपीड़ित करें",
"labelCompressionRate": "संपीड़न शक्ति",
"labelMaxTokens": "प्रति संदेश लक्ष्य टोकन",
"labelMinLength": "न्यूनतम संदेश लंबाई",
"labelMinSavings": "सहेजने के लिए न्यूनतम टोकन",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "सक्षम",
+ "autoDetect": "भाषा का स्वतः पता लगाएँ",
+ "rulesCount": "{count} नियम",
"inputCompressionTitle": "इनपुट संपीड़न",
"inputCompressionDesc": "चैट इतिहास को छोटे शब्दों में फिर से लिखें। इनपुट टोकन को ~50% तक कम करता है।",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "संपीड़न विश्लेषिकी",
+ "noAnalytics": "अभी तक कोई संपीड़न विश्लेषिकी उपलब्ध नहीं है।",
"masterDisabledWarning": "टोकन सेवर मास्टर स्विच बंद (OFF) है — ये सेटिंग्स अनुरोधों को तब तक प्रभावित नहीं करेंगी जब तक आप इसे संपीड़न सेटिंग्स से चालू नहीं करते या इसे यहाँ नहीं बदलते।",
"outputMode": "आउटपुट मोड",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "आउटपुट मोड",
"quickSettings": "त्वरित सेटिंग्स",
"quickSettingsDesc": "आरंभ करने के लिए बुनियादी संपीड़न सेटिंग्स",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "स्वतः-स्पष्टता बायपास",
+ "bypassConditions": "बायपास की शर्तें",
"bypassConditionsList": "सुरक्षा, अपरिवर्तनीय, स्पष्टीकरण, आदेश-संवेदनशील",
"simpleMode": "सरल",
"advancedMode": "उन्नत",
@@ -8940,9 +8951,9 @@
"ultraSettings": "अल्ट्रा सेटिंग्स",
"ultraSettingsDesc": "एसएलएम-संचालित सिमेंटिक संपीड़न",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "संक्षिप्त उत्तर दें। तकनीकी शब्द, कोड, त्रुटियाँ, URLs और पहचानकर्ता अपरिवर्तित रखें।",
+ "full": "अत्यंत संक्षिप्त और सघन उत्तर दें। सभी तकनीकी तथ्य बनाए रखें।",
+ "ultra": "सामान्य तकनीकी संक्षेपों के साथ अत्यंत संक्षिप्त उत्तर दें। सटीक प्रतीकों को अपरिवर्तित रखें।"
}
},
"translator": {
@@ -9182,7 +9193,7 @@
"conceptDiagramExampleApp": "जैसे Anthropic SDK",
"conceptDiagramExampleSource": "claude",
"conceptDiagramExampleTarget": "Gemini",
- "conceptHowItWorksToggle": "How it works",
+ "conceptHowItWorksToggle": "यह कैसे काम करता है",
"conceptHowItWorksBody": "आपका ऐप अपने स्वयं के फ़ॉर्मेट में एक अनुरोध भेजता है। Translator फ़ॉर्मेट का पता लगाता है, इसे एक मध्यवर्ती हब के रूप में OpenAI के माध्यम से (या सीधे जब एक सीधा अनुवादक उपलब्ध हो) परिवर्तित करता है, इसे चुने गए प्रदाता को भेजता है, और प्रतिक्रिया को वापस आपके ऐप के फ़ॉर्मेट में परिवर्तित करके लौटाता है।",
"tabTranslate": "अनुवाद करें",
"tabMonitor": "मॉनिटर",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "शेष",
"kiloPassRenews": "{count} दिनों में नवीनीकृत होता है",
"kiloPassUsageLabel": "इस महीने का उपयोग",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "अतिरिक्त उपयोग क्रेडिट",
+ "kimiExtraUsage": "अतिरिक्त उपयोग",
+ "kimiExtraUsageEnabled": "सक्षम",
+ "kimiExtraUsageDisabled": "अक्षम",
+ "kimiExtraUsageFrozen": "फ़्रीज़ किया गया",
+ "kimiExtraUsageUnavailable": "अनुपलब्ध",
+ "kimiMonthlyUsed": "इस महीने उपयोग किया गया",
+ "kimiMonthlyLimit": "मासिक सीमा",
+ "kimiMonthlyLimitUnlimited": "असीमित",
+ "kimiAdditionalCredits": "अतिरिक्त क्रेडिट",
"loggerTab": "लकड़हारा",
"proxyTab": "प्रॉक्सी",
"budgetManagement": "बजट प्रबंधन",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "सर्किट ब्रेकर",
"lockedIPs": "लॉक किए गए आईपी",
"lockoutsAutoRefreshHint": "प्रति-मॉडल दर सीमा लॉक • ऑटो-रीफ्रेश 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# लॉक किया गया} other {# लॉक किए गए}}",
"timeLeft": "{time} शेष",
"howItWorks": "यह कैसे काम करता है",
"howItWorksSubtitle": "जानें कि मूल्यांकन आपके एलएलएम प्रतिक्रियाओं को कैसे मान्य करते हैं",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "प्रत्युत्तरों की तुलना अपेक्षित मानदंडों से की जाती है। विलंबता मेट्रिक्स और विस्तृत फीडबैक के साथ प्रत्येक मामले के लिए पास/असफल देखें।",
"evalsStrategyContainsLabel": "शामिल है",
"evalsStrategyExactLabel": "सटीक मिलान",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "रेगेक्स",
"evalsStrategyCustomLabel": "कस्टम लॉजिक",
"evalsStrategyContainsDescription": "जांचता है कि क्या LLM आउटपुट में अपेक्षित सबस्ट्रिंग शामिल है।",
"evalsStrategyExactDescription": "जांचता है कि क्या LLM आउटपुट अपेक्षित मान से सटीक रूप से मेल खाता है।",
@@ -9360,23 +9371,23 @@
"statsModels": "मॉडल",
"statsCoverage": "कवरेज",
"statsStrategiesCount": "{count} रणनीतियाँ",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "evaluationStrategies": "मूल्यांकन रणनीतियाँ",
+ "modelsUnderTest": "परीक्षणाधीन मॉडल",
+ "searchSuitesPlaceholder": "सुइट खोजें...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# केस} other {# केस}}",
+ "runEval": "मूल्यांकन चलाएँ",
"runAllSuites": "सभी चलाएँ",
"runAllRunning": "सब चल रहा है...",
"runAllProgress": "चल रहा है {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# सुइट विफल हुआ} other {# सुइट विफल हुए}}",
"runAllCompleted": "{suites} सुइट्स चलाएँ - {passed} उत्तीर्ण, {failed} विफल",
"runAllCompletedWithFailures": "{completed} सुइट्स चलाएं; {failedSuites} पूरा करने में विफल रहा",
"runningProgress": "चल रहा है {current}/{total}...",
- "passRate": "pass rate",
+ "passRate": "उत्तीर्णता दर",
"summaryBreakdown": "{passed} उत्तीर्ण · {failed} अनुत्तीर्ण · {total} कुल",
"passedIconLabel": "✅उत्तीर्ण",
- "failedIconLabel": "❌ Failed",
+ "failedIconLabel": "❌ विफल",
"resultPassed": "उत्तीर्ण",
"resultFailed": "असफल",
"expandResult": "परिणाम विवरण विस्तृत करें",
@@ -9385,22 +9396,22 @@
"detailsRegex": "Regex: {pattern}",
"detailsExpected": "अपेक्षित: \"{expected}\"",
"expectedOutputLabel": "अपेक्षित आउटपुट",
- "noResultsYet": "No results yet",
+ "noResultsYet": "अभी तक कोई परिणाम नहीं",
"testCasesCount": "परीक्षण मामले ({count})",
- "noTestCasesDefined": "No test cases defined",
+ "noTestCasesDefined": "कोई परीक्षण केस परिभाषित नहीं है",
"runEvalHint": "अपने एलएलएम समापन बिंदु के विरुद्ध सभी मामलों को निष्पादित करने के लिए \"रन इवल\" पर क्लिक करें। प्रत्येक परीक्षण ओम्निरूट के माध्यम से एक वास्तविक अनुरोध भेजता है।",
"notifyNoTestCases": "इस सुइट के लिए कोई परीक्षण मामला परिभाषित नहीं है",
"notifyAllCasesPassed": "सभी {total} मामले पारित ✅",
"notifySomeCasesFailed": "{passed}/{total} उत्तीर्ण, {failed} अनुत्तीर्ण",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
+ "notifyEvalRunFailed": "मूल्यांकन रन विफल रहा",
+ "notifyEvalTitle": "मूल्यांकन: {name}",
+ "modelEvals": "मॉडल मूल्यांकन",
"evalsHeroDescription": "पूर्वनिर्धारित मूल्यांकन सुइट्स चलाकर अपने एलएलएम समापन बिंदुओं का परीक्षण और सत्यापन करें। प्रत्येक सुइट में परीक्षण मामले होते हैं जो ओमनीरूट के माध्यम से वास्तविक संकेत भेजते हैं और अपेक्षित मानदंडों के विरुद्ध प्रतिक्रियाओं की तुलना करते हैं - आपको प्रतिगमन का पता लगाने, मॉडल की तुलना करने और प्रदाताओं के बीच प्रतिक्रिया की गुणवत्ता सुनिश्चित करने में मदद करते हैं।",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
+ "qualityValidation": "गुणवत्ता सत्यापन",
+ "modelComparison": "मॉडल तुलना",
+ "regressionDetection": "प्रतिगमन का पता लगाना",
+ "latencyBenchmarks": "लेटेंसी बेंचमार्क",
+ "modelLockouts": "मॉडल लॉकआउट",
"noLockouts": "वर्तमान में कोई भी मॉडल लॉक नहीं है",
"activeSessions": "सक्रिय सत्र",
"noSessions": "कोई सक्रिय सत्र नहीं",
@@ -9419,7 +9430,7 @@
"providerLimits": "प्रदाता सीमाएँ",
"noProviders": "कोई प्रदाता कनेक्ट नहीं है",
"connectProvidersForQuota": "अपनी एपीआई कोटा सीमा और उपयोग को ट्रैक करने के लिए OAuth वाले प्रदाताओं से जुड़ें।",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# खाता} other {# खाते}}",
"filteredFromCount": "({count} से फ़िल्टर किया गया)",
"autoRefresh": "स्वतः ताज़ा करें",
"refreshAll": "सभी को ताज़ा करें",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "कोटा दृश्यता अपडेट करने में विफल",
"account": "खाता",
"modelQuotas": "मॉडल कोटा",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "अंतिम बार रीफ़्रेश किया गया",
"actions": "क्रियाएँ",
"refreshQuota": "ताज़ा कोटा",
"today": "आज",
@@ -9448,9 +9459,9 @@
"cardExpand": "विस्तार करें",
"cardCollapse": "समेटें",
"moreQuotas": "+{count} और",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "असमूहीकृत",
+ "viewFlat": "समतल",
+ "viewByEnvironment": "परिवेश के अनुसार",
"noQuotaDataAvailable": "कोई कोटा डेटा उपलब्ध नहीं है",
"noAccountsForTierFilter": "टियर फ़िल्टर के लिए कोई खाता नहीं मिला",
"tierAll": "सब",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "क्रेडिट रिडीम करें",
"resetCreditRedeemed": "रीसेट रिडीम किया गया",
"resetCreditRedeemFailed": "रीसेट क्रेडिट रिडीम करने में विफल",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "सुइट सहेजने में विफल",
"clone": "क्लोन",
"exportSuite": "निर्यात करें",
"importSuite": "आयात करें",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "अमान्य eval सुइट JSON",
"suiteBuilderCloneSuffix": "प्रतिलिपि",
"suiteBuilderImportedSuite": "आयातित सुइट",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "स्कोरकार्ड",
+ "evalApiKey": "API कुंजी",
+ "scorecardPassRate": "उत्तीर्णता दर",
+ "targetTypeModel": "मॉडल",
+ "actualOutputLabel": "वास्तविक आउटपुट",
+ "evalTargetHint": "मूल्यांकन के लिए कोई मॉडल या कॉम्बो चुनें।",
+ "suiteBuilderDeleted": "सुइट सफलतापूर्वक हटा दिया गया",
+ "suiteBuilderCaseCardHint": "इनपुट प्रॉम्प्ट और अपेक्षित आउटपुट मानदंड परिभाषित करें।",
+ "nextResetUtc": "अगला रीसेट (UTC)",
+ "scorecardHint": "सभी मूल्यांकन सुइट में समेकित उत्तीर्णता दरें।",
+ "suiteLatestRunsHint": "इस सुइट के सबसे हालिया मूल्यांकन रन।",
+ "saving": "सहेजा जा रहा है",
+ "suiteBuilderCaseModelLabel": "मॉडल (वैकल्पिक)",
+ "evalControlsTitle": "मूल्यांकन नियंत्रण",
+ "suiteBuilderEditTitle": "मूल्यांकन सुइट संपादित करें",
+ "suiteBuilderCaseStrategyLabel": "सत्यापन रणनीति",
+ "notifySelectDifferentCompareTarget": "तुलना के लिए कृपया कोई अलग लक्ष्य चुनें",
+ "recentRunsHint": "सबसे हालिया मूल्यांकन रन दिखाए जा रहे हैं। विस्तृत परिणाम देखने के लिए किसी रन पर क्लिक करें।",
+ "evalCompareHint": "वैकल्पिक रूप से, परिणामों की तुलना किसी दूसरे लक्ष्य से करें।",
+ "suiteBuilderCaseInvalid": "इस केस में सत्यापन त्रुटियाँ हैं। सहेजने से पहले इन्हें ठीक करें।",
+ "historyEmpty": "अभी तक कोई मूल्यांकन इतिहास नहीं है",
+ "suiteBuilderUpdated": "सुइट सफलतापूर्वक अपडेट किया गया",
+ "resetInterval": "रीसेट अंतराल",
+ "suiteBuilderCreateTitle": "मूल्यांकन सुइट बनाएँ",
+ "activePeriodSpend": "सक्रिय अवधि का खर्च",
+ "evalApiKeyHint": "मूल्यांकन अनुरोधों के लिए उपयोग की जाने वाली API कुंजी चुनें।",
+ "evalCompareOptional": "तुलना करें (वैकल्पिक)",
+ "suiteBuilderDeleteFailed": "सुइट हटाने में विफल",
+ "suiteBuilderCaseSystemPromptPlaceholder": "वैकल्पिक सिस्टम निर्देश...",
+ "scorecardCases": "केस",
+ "runCompletedWithScore": "मूल्यांकन पूर्ण हुआ — {score}% उत्तीर्ण दर",
+ "suiteBuilderCustomBadge": "कस्टम",
+ "targetSuiteDefaults": "सुइट डिफ़ॉल्ट",
+ "suiteBuilderDeleteConfirm": "क्या आप वाकई इस सुइट को हटाना चाहते हैं? यह कार्रवाई पूर्ववत नहीं की जा सकती।",
+ "suiteBuilderNameLabel": "सुइट का नाम",
+ "scorecardSuites": "सुइट",
+ "evalCompareTarget": "तुलना लक्ष्य",
+ "suiteBuilderCaseModelPlaceholder": "उदा. gpt-4o-mini",
+ "evalControlsHint": "अपना मूल्यांकन लक्ष्य और API कुंजी कॉन्फ़िगर करें, फिर मॉडल की गुणवत्ता सत्यापित करने के लिए सुइट चलाएँ।",
+ "recentRunsTitle": "हालिया रन",
+ "suiteBuilderCaseSystemPromptLabel": "सिस्टम प्रॉम्प्ट",
+ "suiteBuilderCaseExpectedPlaceholder": "उदा. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "जैसे डीईएफ़ फाइबोनैचि",
"suiteBuilderCaseExpectedPlaceholderExact": "सटीक अपेक्षित प्रतिक्रिया चिपकाएँ",
"suiteBuilderCaseExpectedPlaceholderRegex": "जैसे ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "स्लैश लपेटे बिना जावास्क्रिप्ट रेगुलर एक्सप्रेशन का उपयोग करें।",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "उदा. Coding Quality Suite",
+ "suiteBuilderAddCase": "केस जोड़ें",
+ "cancel": "रद्द करें",
+ "evalTarget": "लक्ष्य",
+ "suiteBuilderCaseNameLabel": "केस का नाम",
+ "weeklyLimitUsd": "साप्ताहिक सीमा (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "उदा. Python में fibonacci फ़ंक्शन लिखें",
+ "suiteBuilderNameRequired": "सुइट का नाम आवश्यक है",
+ "suiteBuilderCaseUserPromptLabel": "उपयोगकर्ता प्रॉम्प्ट",
+ "daily": "दैनिक",
+ "resultErrorLabel": "त्रुटि",
+ "suiteBuilderBuiltInBadge": "अंतर्निहित",
+ "suiteBuilderCaseCardTitle": "टेस्ट केस",
"suiteBuilderDuplicateCase": "डुप्लिकेट",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "उदा. 50.00",
+ "suiteBuilderCaseTagsHint": "टेस्ट केस व्यवस्थित करने के लिए कॉमा से अलग किए गए टैग।",
+ "notifyEvalRunFailedWithReason": "मूल्यांकन विफल: {reason}",
+ "weekly": "साप्ताहिक",
+ "runEvalRunning": "मूल्यांकन चल रहा है...",
+ "delete": "हटाएँ",
+ "resetTimeUtc": "रीसेट समय (UTC)",
+ "evalApiKeyAuto": "स्वचालित (डिफ़ॉल्ट का उपयोग करें)",
+ "suiteBuilderDescriptionPlaceholder": "यह सुइट क्या परीक्षण करता है, इसका वैकल्पिक विवरण...",
+ "targetComparisonTitle": "लक्ष्य तुलना",
+ "save": "सहेजें",
+ "suiteBuilderCreated": "सुइट सफलतापूर्वक बनाया गया",
+ "suiteLatestRuns": "नवीनतम रन",
+ "suiteBuilderCaseExpectedLabel": "अपेक्षित मान",
+ "historyLatency": "विलंबता",
+ "suiteBuilderCaseTagsPlaceholder": "जैसे coding, python",
+ "targetTypeCombo": "कॉम्बो",
+ "scorecardPassed": "उत्तीर्ण",
+ "suiteBuilderCaseTagsLabel": "टैग",
+ "suiteBuilderNewSuite": "नया सुइट",
+ "notifyEvalLoadFailed": "मूल्यांकन डेटा लोड नहीं हो सका",
+ "notConfigured": "कॉन्फ़िगर नहीं किया गया",
+ "suiteBuilderCaseNamePlaceholder": "जैसे Python fibonacci परीक्षण",
+ "intervalLabel": "अंतराल",
+ "suiteBuilderCreateAction": "सुइट बनाएँ",
+ "suiteBuilderCasesHint": "प्रत्येक केस एक प्रॉम्प्ट भेजता है और प्रतिक्रिया को सत्यापित करता है।",
+ "suiteBuilderUpdatedAt": "अपडेट किया गया",
+ "errorBadge": "त्रुटि",
+ "suiteBuilderCasesTitle": "परीक्षण केस",
+ "edit": "संपादित करें",
+ "monthly": "मासिक",
+ "suiteBuilderCasesRequired": "कम-से-कम एक परीक्षण केस आवश्यक है",
+ "weeklyLimitSummary": "साप्ताहिक बजट सीमा का सारांश",
+ "suiteBuilderDescriptionLabel": "विवरण",
+ "targetComparisonHint": "लक्ष्यों के बीच मूल्यांकन परिणामों की साथ-साथ तुलना।",
+ "compareCompletedWithScore": "तुलना पूरी हुई — {score}% उत्तीर्ण दर",
+ "staleQuotaTooltip": "अंतिम रीफ़्रेश विफल रहा — कैश किया गया डेटा दिखाया जा रहा है",
"quotaThresholdLabel": "न्यूनतम बायां",
"quotaCutoffsColumnHelp": "जब शेष कोटा इस प्रतिशत या इससे कम हो जाए तो अनुरोध रोकें।",
"quotaCutoffsButtonDefault": "डिफ़ॉल्ट",
@@ -9859,19 +9870,19 @@
"backToLogin": "लॉगइन पर वापस जाएँ",
"forgotPassword": "पासवर्ड भूल गए?",
"continueWithOidc": "OIDC के साथ जारी रखें",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "डिफ़ॉल्ट पासवर्ड: CHANGEME (जब तक INITIAL_PASSWORD सेट न किया गया हो)",
+ "Authorization": "प्राधिकरण",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "प्राधिकरण की प्रतीक्षा की जा रही है...",
+ "waitingForGoogleAuthorization": "Google प्राधिकरण की प्रतीक्षा की जा रही है...",
+ "waitingForOpenAIAuthorization": "OpenAI प्राधिकरण की प्रतीक्षा की जा रही है...",
+ "waitingForAntigravityAuthorization": "Antigravity प्राधिकरण की प्रतीक्षा की जा रही है...",
+ "waitingForQoderAuthorization": "Qoder प्राधिकरण की प्रतीक्षा की जा रही है...",
+ "exchangingCodeForTokens": "टोकन के लिए कोड का आदान-प्रदान किया जा रहा है...",
+ "nodeIncompatibleTitle": "असंगत Node.js संस्करण",
+ "nodeIncompatibleDesc": "आप Node.js {version} चला रहे हैं, जो OmniRoute की समर्थित सुरक्षित रनटाइम नीति के दायरे से बाहर है। पैच किया हुआ Node.js 20.x या 22.x LTS रिलीज़ इस्तेमाल करें।",
+ "nodeIncompatibleFixLabel": "समाधान: पैच किया हुआ Node.js 22 LTS रिलीज़ इंस्टॉल करें",
+ "nodeIncompatibleHint": "OmniRoute के लिए Node.js 22.22.2+ (22.x LTS) या 24.0.0+ (24.x LTS) आवश्यक है। Node 24 LTS अनुशंसित है।",
"resetViaAppDataTitle": "ऐप डेटा के माध्यम से रीसेट करें",
"resetViaAppDataDescription": "ऐप डेटा निर्देशिका से सेटिंग्स फ़ाइल हटाएँ ताकि आपका पासवर्ड रीसेट हो सके:",
"quitDesktopApp": "OmniRoute डेस्कटॉप ऐप को पूरी तरह से बंद करें",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "प्रदाता",
"commonUseCases": "सामान्य उपयोग के मामले",
"clientCompatibility": "ग्राहक अनुकूलता",
- "protocolsToc": "Protocols",
+ "protocolsToc": "प्रोटोकॉल",
"apiReference": "एपीआई संदर्भ",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "प्रबंधन API संदर्भ",
+ "managementApiDescription": "प्रॉक्सी रजिस्ट्री, स्कोप असाइनमेंट और पुराने प्रॉक्सी माइग्रेशन के लिए ऑटोमेशन एंडपॉइंट।",
"method": "विधि",
"path": "पथ",
"notes": "टिप्पणियाँ",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "पीडब्लूए",
"deployPwaText": "एंड्रॉइड, आईओएस और डेस्कटॉप ब्राउज़र पर ओमनीरूट को एक प्रगतिशील वेब ऐप के रूप में इंस्टॉल करें।",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Termux के ज़रिए Android पर OmniRoute को हेडलेस मोड में चलाएँ। अपने मोबाइल ब्राउज़र से डैशबोर्ड एक्सेस करें।",
"featureRoutingTitle": "बहु-प्रदाता रूटिंग",
"featureRoutingText": "एकल OpenAI-संगत एंडपॉइंट के माध्यम से 30+ AI प्रदाताओं को रूट अनुरोध। चैट, प्रतिक्रियाओं, ऑडियो और छवि एपीआई का समर्थन करता है।",
"featureCombosTitle": "संयोजन और संतुलन",
@@ -10128,39 +10139,39 @@
"clientKimiBullet1": "खातों या प्रदाता कॉम्बो को नीचे घुमाते समय एक स्थिर आधार URL के रूप में ओमनीरूट का उपयोग करें।",
"clientKimiBullet2": "कोडिंग प्रवाह में पूर्वनिर्धारित मॉडल को प्राथमिकता दें ताकि फ़ॉलबैक और ऑडिट ट्रेल स्पष्ट रहें।",
"clientKimiBullet3": "जब आप टूल-उपयोग करने वाले क्लाइंट के लिए मूल प्रतिक्रिया-शैली रूटिंग चाहते हैं तो `/v1/responses` का उपयोग करें।",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "प्रोटोकॉल: MCP और A2A",
+ "protocolsDescription": "OmniRoute, OpenAI-संगत APIs के अतिरिक्त दो परिचालन प्रोटोकॉल उपलब्ध कराता है: टूल निष्पादन के लिए MCP और एजेंट-से-एजेंट वर्कफ़्लो के लिए A2A।",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "क्लाइंट को ऑडिट दृश्यता के साथ OmniRoute टूल खोजने और कॉल करने देने के लिए stdio पर MCP का उपयोग करें।",
+ "protocolMcpStep1": "MCP ट्रांसपोर्ट को `omniroute --mcp` से शुरू करें।",
+ "protocolMcpStep2": "अपने MCP क्लाइंट को stdio ट्रांसपोर्ट पर निर्देशित करें।",
+ "protocolMcpStep3": "कनेक्टिविटी सत्यापित करने के लिए `omniroute_get_health` और `omniroute_list_combos` को कॉल करें।",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "कार्य सिंक्रोनस रूप से या SSE स्ट्रीमिंग के ज़रिए सबमिट करने के लिए A2A JSON-RPC का उपयोग करें।",
+ "protocolA2aStep1": "एजेंट डिस्कवरी के लिए `/.well-known/agent.json` पढ़ें।",
+ "protocolA2aStep2": "`POST /a2a` पर `message/send` या `message/stream` अनुरोध भेजें।",
+ "protocolA2aStep3": "`tasks/get` और `tasks/cancel` के साथ कार्य जीवनचक्र प्रबंधित करें।",
+ "protocolTroubleshootingTitle": "प्रोटोकॉल समस्या निवारण",
+ "protocolTroubleshooting1": "यदि MCP की स्थिति ऑफ़लाइन है, तो सत्यापित करें कि stdio प्रक्रिया चल रही है और हार्टबीट फ़ाइल अपडेट हो रही है।",
+ "protocolTroubleshooting2": "यदि A2A कार्य `working` में बने रहते हैं, तो टर्मिनल स्थिति के लिए `/api/a2a/tasks/:id` और स्ट्रीम इवेंट की जाँच करें।",
+ "protocolTroubleshooting3": "परिचालन नियंत्रण और ऑडिट दृश्यता के लिए `/dashboard/mcp` और `/dashboard/a2a` का उपयोग करें।",
"endpointChatNote": "OpenAI-संगत चैट समापन बिंदु (डिफ़ॉल्ट)।",
"endpointResponsesNote": "प्रतिक्रियाएँ एपीआई समापन बिंदु (कोडेक्स, ओ-श्रृंखला)।",
"endpointModelsNote": "सभी जुड़े हुए प्रदाताओं के लिए मॉडल कैटलॉग।",
"endpointAudioNote": "ऑडियो ट्रांसक्रिप्शन (डीपग्राम, असेंबलीएआई)।",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
+ "endpointSpeechNote": "टेक्स्ट-टू-स्पीच जनरेशन (ElevenLabs, OpenAI TTS)।",
+ "endpointEmbeddingsNote": "टेक्स्ट एम्बेडिंग जनरेशन (OpenAI, Cohere, Voyage)।",
"endpointImagesNote": "छवि निर्माण (नैनोबनाना)।",
"endpointRewriteChatNote": "/v1 के बिना ग्राहकों के लिए सहायक को फिर से लिखें।",
"endpointRewriteResponsesNote": "/v1 के बिना प्रतिक्रियाओं के लिए सहायक को फिर से लिखें।",
"endpointRewriteModelsNote": "/v1 के बिना मॉडल खोज के लिए सहायक को फिर से लिखें।",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "सहेजे गए प्रॉक्सी रजिस्ट्री आइटम सूचीबद्ध करें (पेजिनेशन समर्थित)।",
+ "mgmtProxiesCreateNote": "रजिस्ट्री में पुनः उपयोग योग्य प्रॉक्सी आइटम बनाएँ।",
+ "mgmtProxiesHealthNote": "प्रॉक्सी लॉग से प्रत्येक सहेजे गए प्रॉक्सी के लिए 24 घंटे/रोलिंग स्वास्थ्य मेट्रिक्स प्राप्त करें।",
+ "mgmtProxiesBulkAssignNote": "एक अनुरोध में कई स्कोप IDs के लिए एक प्रॉक्सी असाइन करें या हटाएँ।",
+ "mgmtAssignmentsListNote": "स्कोप, scope_id या proxy_id के अनुसार प्रॉक्सी असाइनमेंट सूचीबद्ध करें।",
+ "mgmtAssignmentsUpdateNote": "ग्लोबल/प्रोवाइडर/अकाउंट/कॉम्बो स्कोप के लिए प्रॉक्सी असाइन करें या हटाएँ।",
+ "mgmtLegacyMigrationNote": "पुराने proxyConfig मैप्स को रजिस्ट्री असाइनमेंट में इंपोर्ट करें।",
"modelPrefixesDescriptionStart": "किसी विशिष्ट प्रदाता तक रूट करने के लिए मॉडल नाम से पहले प्रदाता उपसर्ग का उपयोग करें। उदाहरण:",
"modelPrefixesDescriptionEnd": "GitHub Copilot के लिए मार्ग।",
"provider": "प्रदाता",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "ओमनीरूट ओपन-सोर्स सॉफ्टवेयर है। आप इसके लाइसेंस की शर्तों के तहत इसका निरीक्षण, संशोधन और वितरण करने के लिए स्वतंत्र हैं।"
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI एजेंट",
+ "description": "अपने सिस्टम पर इंस्टॉल किए गए CLI एजेंट खोजें। स्वतः पहचान के लिए कस्टम एजेंट जोड़ें।",
+ "refresh": "रीफ़्रेश करें",
+ "installed": "इंस्टॉल किया गया",
+ "notFound": "नहीं मिला",
+ "builtIn": "अंतर्निहित",
+ "custom": "कस्टम",
+ "remove": "हटाएँ",
+ "addCustomAgent": "कस्टम एजेंट जोड़ें",
+ "addCustomAgentDesc": "पहचान के लिए कोई भी CLI टूल पंजीकृत करें। रीफ़्रेश करने पर इसे स्वचालित रूप से स्कैन किया जाएगा।",
+ "agentName": "एजेंट का नाम",
+ "binaryName": "बाइनरी का नाम",
+ "versionCommand": "संस्करण कमांड",
+ "spawnArgs": "स्पॉन आर्ग्युमेंट्स",
+ "addAgent": "एजेंट जोड़ें",
+ "scanning": "CLI एजेंटों के लिए सिस्टम स्कैन किया जा रहा है...",
+ "opencodeIntegration": "OpenCode एकीकरण",
+ "opencodeDetected": "opencode {version} का पता चला",
+ "opencodeDesc": "अपने OmniRoute बेस URL और सभी उपलब्ध मॉडल के साथ उपयोग के लिए तैयार {configFile} जनरेट करें — इसे अपने प्रोजेक्ट की रूट डायरेक्टरी में रखें और {command} चलाएँ।",
+ "downloadConfig": "{file} डाउनलोड करें",
+ "downloaded": "डाउनलोड हो गया!",
+ "setupGuideTitle": "सेटअप गाइड",
+ "openCliTools": "CLI टूल खोलें",
+ "setupGuideDetectCliTitle": "इंस्टॉल किए गए CLI का पता लगाएँ",
+ "setupGuideDetectCliDesc": "CLI इंस्टॉल या अपडेट करने के बाद रीफ़्रेश पर क्लिक करें, ताकि OmniRoute बाइनरी और संस्करणों को फिर से स्कैन कर सके।",
+ "setupGuideCustomAgentTitle": "कस्टम बाइनरी पंजीकृत करें",
+ "setupGuideCustomAgentDesc": "जब आपका CLI अंतर्निहित सूची में न हो, तो कस्टम एजेंट जोड़ें का उपयोग करें। बाइनरी का नाम और संस्करण कमांड प्रदान करें।",
+ "setupGuideCommandMissingTitle": "'command not found' को ठीक करें",
+ "setupGuideCommandMissingDesc": "सुनिश्चित करें कि CLI कमांड PATH में मौजूद है, नया टर्मिनल सत्र खोलें और फिर से रीफ़्रेश चलाएँ।",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10442,7 +10453,7 @@
"connected": "कनेक्टेड",
"notConnected": "कनेक्टेड नहीं है",
"configure": "कॉन्फ़िगर करें",
- "settingsTitle": "Cloud Agent Settings",
+ "settingsTitle": "क्लाउड एजेंट सेटिंग्स",
"settingsDesc": "क्लाउड एजेंटों के लिए स्थानीय प्राथमिकताओं को कॉन्फ़िगर करें।",
"settingEnableAgents": "क्लाउड एजेंटों को सक्षम करें",
"settingEnableAgentsDesc": "OmniRoute को स्वायत्त कोडिंग एजेंटों को व्यवस्थित करने की अनुमति दें।",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "सामान्य चैट",
+ "streaming": "स्ट्रीमिंग",
+ "system-prompt": "सिस्टम प्रॉम्प्ट",
+ "thinking": "चिंतन",
+ "tool-calling": "टूल कॉलिंग",
+ "multi-turn": "बहु-चरणीय",
"vision": "दृष्टि",
"schema-coercion": "स्कीमा जबरदस्ती"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "सिस्टम संदेश वाला बुनियादी चैट टेम्पलेट",
+ "streaming": "स्ट्रीमिंग प्रतिक्रियाओं के लिए टेम्पलेट",
+ "system-prompt": "कस्टम सिस्टम प्रॉम्प्ट वाला टेम्पलेट",
+ "thinking": "रीज़निंग/चिंतन बजट वाला टेम्पलेट",
+ "tool-calling": "टूल/फ़ंक्शन कॉलिंग के लिए टेम्पलेट",
+ "multi-turn": "बहु-चरणीय वार्तालापों के लिए टेम्पलेट",
"vision": "छवि इनपुट के साथ मल्टीमॉडल टेम्पलेट",
"schema-coercion": "संरचित-आउटपुट / JSON स्कीमा प्रवर्तन"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "आप एक सहायक AI असिस्टेंट हैं।",
+ "userGreeting": "नमस्ते! आज मैं आपकी कैसे मदद कर सकता हूँ?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "इसके बारे में एक कहानी लिखें"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "जीवन का अर्थ क्या है?",
+ "systemInstruction": "एक विचारशील, दार्शनिक उत्तर दें।"
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "क्वांटम कंप्यूटिंग की व्याख्या करें"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "उस शहर का नाम जिसके लिए मौसम की जानकारी प्राप्त करनी है",
+ "toolDescription": "किसी स्थान का वर्तमान मौसम प्राप्त करें",
+ "userWeather": "Tokyo में मौसम कैसा है?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "आप एक सहायक असिस्टेंट हैं।",
+ "assistantExample": "मुझे इसमें आपकी मदद करके खुशी होगी।",
+ "userInitial": "मुझे इसमें मदद चाहिए",
+ "userFollowUp": "क्या आप इस बारे में विस्तार से बता सकते हैं?"
}
},
"cache": {
- "title": "Cache Management",
+ "title": "कैश प्रबंधन",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "रीफ़्रेश करें",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "मेमोरी प्रविष्टियाँ",
+ "memoryEntriesSub": "इन-मेमोरी LRU",
+ "dbEntries": "DB प्रविष्टियाँ",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "कैश हिट्स",
+ "cacheHitsSub": "कुल {total} में से",
+ "tokensSaved": "बचाए गए टोकन",
+ "tokensSavedSub": "हिट्स के आधार पर अनुमानित",
+ "hitRate": "हिट दर",
+ "performance": "कैश प्रदर्शन",
+ "autoRefresh": "हर {seconds} सेकंड में स्वतः रीफ़्रेश होता है",
+ "hits": "हिट्स",
+ "misses": "मिस",
+ "total": "कुल",
+ "behavior": "कैश व्यवहार",
+ "behaviorDeterministic": "केवल temperature=0 वाले नॉन-स्ट्रीमिंग अनुरोध कैश किए जाते हैं।",
+ "behaviorBypass": "हेडर {header} के साथ बायपास करें।",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "डिफ़ॉल्ट TTL: 30 मिनट। {envVar} के माध्यम से कॉन्फ़िगर करें।",
+ "idempotency": "आइडेम्पोटेंसी लेयर",
+ "activeDedupKeys": "सक्रिय डीडुप कुंजियाँ",
+ "dedupWindow": "डीडुप विंडो",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "कैश साफ़ करने में विफल।",
+ "unavailable": "कैश उपलब्ध नहीं है",
+ "unavailableDesc": "कैश के आँकड़े प्राप्त नहीं किए जा सके। सुनिश्चित करें कि सर्वर चल रहा है।",
"loadingCacheAria": "कैश लोड किया जा रहा है",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "प्रॉम्प्ट कैश (प्रदाता-पक्षीय)",
+ "semanticCache": "सिमैंटिक कैश",
+ "promptCacheSectionDesc": "उपयोग इतिहास से प्रदाता-पक्षीय प्रॉम्प्ट कैशिंग गतिविधि दिखाता है, ताकि आप देख सकें कि कैश नियंत्रण कहाँ सक्रिय है और आपको इनपुट का कितना पुनः उपयोग मिल रहा है।",
+ "promptTrendDesc": "पिछले 24 घंटों में प्रति घंटे अनुरोधों की मात्रा, कैश कवरेज और कैश रीड की मात्रा।",
+ "cachedRequests": "कैश किए गए अनुरोध",
+ "cachedRequests24h": "कैश किए गए अनुरोध (24 घंटे)",
+ "cacheHitRate": "कैश हिट दर",
+ "cacheRate": "कैश दर",
+ "cacheRateDesc": "कुल अनुरोधों में से",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "प्रॉम्प्ट कैश मेट्रिक्स",
+ "withCacheControl": "कैश नियंत्रण सहित",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "कैश पुनः उपयोग अनुपात",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "अनुमानित लागत बचत",
+ "lastUpdated": "अंतिम अपडेट",
+ "hoursTracked": "ट्रैक किए गए घंटे",
+ "busiestHour": "सबसे व्यस्त घंटा",
+ "peakCacheRate": "उच्चतम कैश दर",
+ "trendHour": "घंटा",
+ "activityVolume": "गतिविधि",
+ "requestsShort": "अनुरोध",
+ "inputShort": "इनपुट",
+ "cachedShort": "कैश किया गया",
+ "writeShort": "लेखन",
+ "resetting": "रीसेट किया जा रहा है...",
+ "resetMetrics": "मेट्रिक्स रीसेट करें",
+ "byProvider": "प्रदाता के अनुसार विवरण",
+ "providerCacheRateDesc": "प्रत्येक प्रदाता कुल इनपुट टोकन, कैश रीड टोकन और कैश राइट टोकन दिखाता है, ताकि आप मूल योग के आधार पर पुनः उपयोग अनुपात सत्यापित कर सकें।",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "अनुरोध",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "कैश रुझान (24 घंटे)",
+ "peakCached": "सर्वाधिक कैश किए गए",
+ "cached": "कैश किया गया",
+ "overview": "अवलोकन",
"tableProvider": "प्रदाता",
"tableModel": "मॉडल",
"performanceTitle": "प्रदर्शन",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute का अपना निर्धारणात्मक रिस्पॉन्स कैश। सक्षम होने पर, बार-बार आने वाले नॉन-स्ट्रीमिंग temperature=0 अनुरोधों को अपस्ट्रीम प्रदाता तक भेजे बिना स्थानीय रूप से पूरा किया जा सकता है।",
+ "semanticCacheDisabledDesc": "सिमेंटिक कैश अक्षम है। जब तक आप इसे Settings में फिर से चालू नहीं करते, OmniRoute स्थानीय रिस्पॉन्स के पुनः उपयोग को छोड़ देगा।",
+ "semanticEntriesDesc": "वर्तमान में SQLite में संग्रहीत स्थायी सिमेंटिक कैश रिकॉर्ड। प्रदाता-पक्ष की प्रॉम्प्ट कैश गतिविधि यहाँ सूचीबद्ध नहीं है।",
+ "searchEntries": "प्रविष्टियाँ खोजें...",
+ "search": "खोजें",
+ "loading": "लोड हो रहा है...",
+ "entriesLoadError": "सिमेंटिक कैश प्रविष्टियाँ लोड नहीं हो सकीं।",
+ "noEntries": "कोई कैश प्रविष्टि नहीं मिली",
+ "noPromptCacheData": "अभी तक प्रदाता-पक्ष की कोई प्रॉम्प्ट कैश गतिविधि रिकॉर्ड नहीं की गई है।",
+ "noTrendData": "पिछले 24 घंटों में कोई प्रॉम्प्ट कैश गतिविधि रिकॉर्ड नहीं की गई है।",
+ "signature": "हस्ताक्षर",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "बनाया गया",
+ "expires": "समाप्ति",
+ "actions": "कार्रवाइयाँ",
+ "deduplicatedRequests": "डुप्लिकेट हटाए गए अनुरोध",
+ "savedCalls": "सहेजे गए API कॉल",
+ "totalProcessed": "प्रोसेस किए गए कुल अनुरोध",
+ "disabled": "अक्षम",
+ "totalRequests": "कुल अनुरोध",
"reasoningCache": "रीज़निंग रीप्ले",
"reasoningCacheDesc": "मल्टी-टर्न टूल कॉलिंग फ़्लो के लिए मॉडल सोच को सुरक्षित रखता है",
"reasoningEntries": "सक्रिय प्रविष्टियाँ",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes}m पहले",
"hoursAgo": "{hours}h पहले",
"daysAgo": "{days}d पहले",
- "entries": "Entries"
+ "entries": "प्रविष्टियाँ"
},
"proxyConfigModal": {
"levelGlobal": "वैश्विक",
@@ -10765,14 +10776,14 @@
"devinDesktopPasteDescription": "एक प्रमाणित Devin सत्र से मौजूदा Devin API कुंजी पेस्ट करें। कुंजी निर्यात उपलब्धता और चरण Devin संस्करण और खाते के अनुसार भिन्न होते हैं।",
"devinPasteDescription": "अपना WINDSURF_API_KEY प्रदान करें (जो `devin auth login` के माध्यम से प्राप्त किया गया है, या Windsurf IDE \"Windsurf: Provide Auth Token\" कमांड के माध्यम से)।",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "Grok Build का auth.json",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "एपीआई कुंजी / टोकन",
"saving": "सहेजना…",
"saveConnection": "संपर्क सहेजें",
"gheDescription": "अपने GitHub Enterprise उदाहरण का आधार URL दर्ज करें (जैसे https://ghe.yourcompany.com)।",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise का URL",
"gheUrlRequired": "GitHub Enterprise URL आवश्यक है",
"gitlabDuoSetupTitle": "GitLab Duo OAuth सेटअप",
"gitlabDuoSetupMessage": "GitLab Duo OAuth कॉन्फ़िगर नहीं किया गया है। {applicationsUrl} पर एक OAuth एप्लिकेशन रजिस्टर करें जिसमें रीडायरेक्ट URI {redirectUri} और स्कोप्स \"{scopes}\" हों, फिर {clientIdEnv} (और वैकल्पिक रूप से {clientSecretEnv}) सेट करें और पुनः प्रारंभ करें।",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "कर्सर आईडीई कनेक्ट करें",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Cursor से लॉग इन करें",
+ "tabImport": "टोकन आयात करें",
+ "loginDescription": "Cursor का ब्राउज़र लॉगिन खोलता है। Docker में काम करता है — अपने होस्ट ब्राउज़र में स्वीकृति दें, फिर यहाँ वापस आएँ।",
+ "loginWithCursor": "Cursor से लॉग इन करें",
+ "startingLogin": "शुरू हो रहा है…",
+ "waitingApproval": "Cursor लॉगिन की स्वीकृति की प्रतीक्षा हो रही है…",
+ "openUrlHint": "यदि ब्राउज़र नहीं खुला:",
+ "openLoginLink": "लॉगिन पृष्ठ खोलें",
+ "cancelLogin": "लॉगिन रद्द करें",
"autoDetecting": "टोकन का स्वतः पता लगाना...",
"readingFromCursor": "कर्सर आईडीई या कर्सर-एजेंट से पढ़ना",
"tokensAutoDetected": "कर्सर आईडीई से टोकन का सफलतापूर्वक स्वतः पता लगाया गया!",
"cursorNotDetected": "कर्सर आईडीई का पता नहीं चला. कृपया अपना टोकन मैन्युअल रूप से चिपकाएँ।",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Docker में चला रहे हैं? Cursor से लॉग इन करना बेहतर है। IDE से स्वतः आयात और cursor-agent आमतौर पर कंटेनर के अंदर उपलब्ध नहीं होते। docs/providers/CURSOR-DOCKER.md देखें।",
"accessToken": "प्रवेश टोकन",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "रिफ़्रेश टोकन",
+ "refreshTokenPlaceholder": "वैकल्पिक — स्वचालित टोकन रिफ़्रेश सक्षम करता है",
"required": "*",
"accessTokenPlaceholder": "एक्सेस टोकन स्वतः-पॉप्युलेट हो जाएगा...",
"machineId": "मशीन आईडी",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "टोकन का स्वतः पता लगाना विफल रहा",
"errorEnterToken": "कृपया एक्सेस टोकन दर्ज करें",
"errorImportFailed": "आयात विफल",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Cursor लॉगिन शुरू नहीं किया जा सका",
+ "errorLoginPoll": "Cursor लॉगिन विफल रहा",
+ "errorLoginTimeout": "Cursor लॉगिन का समय समाप्त हो गया — फिर से प्रयास करें"
},
"pricingModal": {
"title": "मूल्य निर्धारण विन्यास",
@@ -10839,9 +10850,9 @@
"selectProxy": "{name} चुनें",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "लेगेसी आयात करें",
+ "bulkAssign": "एक साथ असाइन करें",
+ "addProxy": "प्रॉक्सी जोड़ें",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "परीक्षण करें",
+ "edit": "संपादित करें",
+ "delete": "हटाएँ",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,7 +10913,7 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "विफल",
"successRate": "{rate}% सफलता",
"avgLatency": "{latency}ms औसत",
"assignmentsCount": "{count} असाइनमेंट",
@@ -10957,6 +10968,9 @@
"strategyLatency": "लेटेंसी-ऑप्टिमाइज़्ड",
"poolMembersLabel": "पूल सदस्य ({count})",
"poolNoMembers": "इस पूल में अभी तक कोई प्रॉक्सी नहीं है।",
+ "poolEgressObservation": "{connections, plural, one {# कनेक्शन} other {# कनेक्शन}} द्वारा उपयोग किए गए {exits, plural, one {# एग्ज़िट} other {# एग्ज़िट}} · एक एग्ज़िट पर अधिकतम {max} · पिछले {hours} घंटे",
+ "poolEgressObservationEmpty": "पिछले {hours} घंटों में कोई ट्रैफ़िक नहीं देखा गया",
+ "poolEgressObservationHint": "इस समयावधि के दौरान प्रॉक्सी लॉग से गणना की गई: इस पूल के सदस्यों के लिए देखे गए अलग-अलग इग्रेस IP और उनका उपयोग करने वाले OmniRoute कनेक्शन। \"एक एग्ज़िट पर\" का अर्थ इस समयावधि के दौरान है, एक ही समय पर नहीं। प्रति-IP 429 लॉकआउट केवल समान प्रोवाइडर फ़ैमिली के कनेक्शन को रोकता है।",
"poolRemove": "हटाएं",
"poolRemoveFailed": "पूल से प्रॉक्सी को हटाने में विफल",
"poolAddLabel": "एक प्रॉक्सी जोड़ें",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "एंडपॉइंट",
+ "provider": "प्रदाता",
+ "model": "मॉडल",
"accountKey": "Account Key",
"autoAccounts": "ऑटो ({count} खाते)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "भेजें",
+ "cancel": "रद्द करें",
+ "audioFile": "ऑडियो फ़ाइल",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "सभी साफ़ करें",
+ "request": "अनुरोध",
+ "response": "प्रतिक्रिया",
+ "transcription": "ट्रांसक्रिप्शन",
+ "copy": "कॉपी करें",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "{count} छवियाँ उत्पन्न की गईं",
"generatedImage": "उत्पन्न छवि {index}",
- "save": "Save",
+ "save": "सहेजें",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "प्रतिक्रियाएँ",
"completions": "कम्प्लीशन्स",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "एम्बेडिंग्स",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "मॉडरेशन",
- "rerank": "Rerank",
+ "rerank": "पुनः रैंक करें",
"search": "Search",
"webFetch": "वेब फ़ेच"
},
"conversationalChat": "संवादी चैट",
"clearChat": "चैट साफ़ करें",
"typeMessagePlaceholder": "एक संदेश टाइप करें... (नई लाइन के लिए Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "चैट",
+ "tabCompare": "तुलना करें",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
- "topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "tabBuild": "बिल्ड",
+ "configPane": "कॉन्फ़िगरेशन",
+ "systemPrompt": "सिस्टम प्रॉम्प्ट",
+ "systemPromptPlaceholder": "आप एक सहायक असिस्टेंट हैं।",
+ "modelPlaceholder": "उदा. openai/gpt-4o",
+ "endpointLabel": "एंडपॉइंट",
+ "parametersLabel": "पैरामीटर",
+ "collapseConfig": "कॉन्फ़िगरेशन पेन संक्षिप्त करें",
+ "expandConfig": "कॉन्फ़िगरेशन पेन विस्तृत करें",
+ "temperature": "तापमान",
+ "maxTokens": "अधिकतम टोकन",
+ "topP": "टॉप-p",
+ "presencePenalty": "उपस्थिति दंड",
+ "frequencyPenalty": "आवृत्ति दंड",
"reasoningLabel": "तर्क",
"thinking": "विचार",
"effort": "प्रयास",
"effortDefault": "डिफ़ॉल्ट",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "यादृच्छिक (खाली छोड़ें)",
+ "presetsLabel": "प्रीसेट",
+ "loadPreset": "प्रीसेट लोड करें",
+ "savePreset": "प्रीसेट सहेजें",
+ "noPresets": "कोई प्रीसेट नहीं",
+ "presetNamePlaceholder": "प्रीसेट का नाम",
+ "savingPreset": "सहेजा जा रहा है…",
+ "nameRequired": "नाम आवश्यक है",
+ "failedToSavePreset": "प्रीसेट सहेजने में विफल",
+ "improvePrompt": "प्रॉम्प्ट सुधारें",
+ "improvingPrompt": "सुधारा जा रहा है…",
+ "improvePromptTitle": "AI से अपना प्रॉम्प्ट सुधारें",
+ "setModelFirst": "पहले एक मॉडल सेट करें",
"setModelInConfigFirst": "पहले Config फलक में एक मॉडल सेट करें।",
"improvePromptFailed": "प्रॉम्प्ट सुधार विफल रहा।",
"improvePromptAria": "AI का उपयोग करके प्रॉम्प्ट सुधारें",
"confirmImprovePrompt": "प्रॉम्प्ट सुधार की पुष्टि करें",
"improvePromptDescription": "यह एक बेहतर संस्करण जनरेट करने के लिए आपके वर्तमान सिस्टम प्रॉम्प्ट को trae.ai के माध्यम से एक पॉपअप में अधिकृत करें। पॉपअप अपने आप बंद हो जाएगा जब टोकन आयात हो जाएगा।",
"authorizeImportant": "महत्वपूर्ण: आपको पहले trae.ai में इस ब्राउज़र में लॉग इन होना चाहिए। अधिकृत पृष्ठ केवल एक मौजूदा सत्र की पुष्टि करता है — यह आपको साइन इन नहीं कर सकता। यदि आप \"लॉगिन विफल\" देखते हैं, तो \"Open solo.trae.ai\" पर क्लिक करें, साइन इन करें, फिर यहां लौटें।",
"waitingForAuthorization": "trae.ai का इंतज़ार कर रहे हैं…",
"authorizeWithBrowser": "ब्राउज़र के साथ अधिकृत करें",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai खोलें",
"orPasteManually": "या एक टोकन मैन्युअल रूप से पेस्ट करें",
"manualInstructions": "solo.trae.ai में साइन इन करें, DevTools → Network खोलें, कोई भी चैट संदेश भेजें, और Authorization: Cloud-IDE-JWT {tokenPlaceholder} अनुरोध हेडर से JWT कॉपी करें। JWT का जीवनकाल ~14 दिन है। वैकल्पिक पहचान फ़ील्ड उसी अनुरोध बॉडी में common_params से आते हैं।",
"accessTokenLabel": "एक्सेस टोकन (क्लाउड-आईडीई-जेपीटी)",
@@ -14048,11 +14081,11 @@
"actionApprove": "योजना स्वीकृत करें",
"actionCancel": "रद्द करें",
"actionSeeInGraph": "ग्राफ़ में देखें",
+ "actionRepeat": "दोहराएं",
"actionDone": "कार्रवाई लागू की गई",
"actionFailed": "कार्रवाई विफल: {error}",
"detailFailed": "विवरण लोड करने में विफल: {error}",
"mirroredInA2A": "A2A में प्रतिबिंबित",
- "actionRepeat": "दोहराएं",
"repeatConfirm": "पुष्टि के लिए फिर से क्लिक करें",
"repeatDone": "नया रन बनाया गया",
"repeatUnavailable": "मूल इनपुट उपलब्ध नहीं है"
@@ -14066,57 +14099,57 @@
"networkError": "नेटवर्क त्रुटि — प्रदाता एक्सपोज़र सेटिंग अपडेट नहीं कर सका"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "समर्थक ऑफ़र",
+ "subtitle": "Radar से आधिकारिक छूट, क्रेडिट, परीक्षण और समीक्षा किए गए पार्टनर लाभ।",
+ "backToRadar": "Radar पर वापस जाएँ",
+ "loading": "ऑफ़र लोड हो रहे हैं...",
+ "refresh": "ऑफ़र रीफ़्रेश करें",
+ "refreshing": "रीफ़्रेश किया जा रहा है...",
+ "loadFailed": "हम ऑफ़र रीफ़्रेश नहीं कर सके। अंतिम सत्यापित स्थानीय कैश सुरक्षित रखा गया है।",
+ "empty": "फ़िलहाल कोई सक्रिय ऑफ़र उपलब्ध नहीं है।",
+ "keyRequiredTitle": "समर्थक कुंजी आवश्यक है",
+ "keyRequiredDescription": "ऑफ़र Radar का एक लाइव लाभ हैं। Radar स्क्रीन पर मौजूदा समर्थक कुंजी जोड़ें, अपने योगदानकर्ता स्टेटस को सत्यापित करें या कुंजी प्राप्त करने के लिए प्रोजेक्ट का समर्थन करें।",
+ "contributorButton": "मैं एक योगदानकर्ता हूँ",
+ "supporterButton": "प्रोजेक्ट का समर्थन करें",
+ "partnerBadge": "पार्टनर",
+ "officialBadge": "आधिकारिक",
+ "conditionsLabel": "शर्तें:",
+ "validUntil": "{date} तक मान्य",
+ "noExpiry": "समाप्ति की कोई घोषित तिथि नहीं",
+ "openOffer": "ऑफ़र देखें",
+ "trialDays": "{days, plural, one {# दिन} other {# दिन}}"
},
"radarIntelPage": {
"title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "subtitle": "Radar के स्वामित्व वाली ELO रैंकिंग और कैटलॉग में तथ्यात्मक बदलाव।",
+ "backToRadar": "Radar पर वापस जाएँ",
+ "loading": "Intel लोड हो रहा है...",
+ "refresh": "Intel रीफ़्रेश करें",
+ "syncing": "रीफ़्रेश हो रहा है...",
+ "loadFailed": "हम Intel को रीफ़्रेश नहीं कर सके। अंतिम सत्यापित स्थानीय कैश सुरक्षित रखा गया है।",
+ "empty": "अभी तक कोई सत्यापित Intel स्नैपशॉट उपलब्ध नहीं है।",
+ "supporterBadge": "Radar समर्थक",
+ "methodology": "कार्यप्रणाली",
+ "eloMethod": "ELO, प्रारंभिक {initial}, K={factor}",
+ "freshness": "कैटलॉग की नवीनता",
+ "ageDays": "{days, plural, one {# दिन पुराना} other {# दिन पुराने}}",
+ "trend": "कैटलॉग का रुझान",
+ "modelDelta": "{current} मॉडल, +{added} / -{removed}",
+ "ranking": "मॉडल रैंकिंग",
+ "noRankings": "अभी तक कोई पुष्ट तुलना उपलब्ध नहीं है।",
+ "model": "मॉडल",
+ "category": "श्रेणी",
+ "rating": "रेटिंग",
+ "matches": "मुकाबले",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "नवीन",
+ "aging": "पुराना हो रहा है",
+ "stale": "बासी"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "बढ़ रहा है",
+ "stable": "स्थिर",
+ "shrinking": "घट रहा है"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "अनुरोध प्रदाता संदर्भ विंडो से अधिक है"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference, OmniRoute का ओपन सोर्स मित्र है",
+ "description": "एक लागत-आधारित रैंकिंग वाला गेटवे, जो एक OpenAI-संगत एंडपॉइंट के माध्यम से दर्जनों अग्रणी मॉडलों को पुनः बेचता है—प्रत्येक अनुरोध को सबसे सस्ते पात्र प्रदाता तक रूट करता है और कभी भी सूची मूल्य से अधिक शुल्क नहीं लेता।",
+ "cta": "API कुंजी प्राप्त करें",
+ "partnerLinkNote": "पार्टनर लिंक",
+ "dismissAriaLabel": "खारिज करें"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models कैटलॉग में थिंकिंग लेवल वेरिएंट (जैसे -low, -medium, -high) बनाना अक्षम करें।"
}
diff --git a/src/i18n/messages/hr.json b/src/i18n/messages/hr.json
index ead5ea6cab..0b005309c3 100644
--- a/src/i18n/messages/hr.json
+++ b/src/i18n/messages/hr.json
@@ -120,7 +120,7 @@
"compatible": "Kompatibilno",
"chat-completions": "Dovršeci razgovora",
"oauth": "OAuth",
- "auth_token": "Auth Token",
+ "auth_token": "Token za autentifikaciju",
"crypto": "Kripto",
"hours": "Sati",
"selfsigned": "Samopotpisano",
@@ -702,7 +702,7 @@
"flaggedAnomalies": "Označene anomalije",
"noAnomaliesDetected": "Nisu otkrivene anomalije",
"apiKey": "API ključ",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 h)",
"zScore": "Z-ocjena",
"suspicious": "Sumnjivo",
"tokensCommunityServers": "Zajednički poslužitelji",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Oglašavaj claude/<provider>/<model> zrcalne identifikatore na /v1/models kako bi otkrivanje modela Claude Code gatewaya prikazivalo modele koji nisu Claude. Upozorenje: udvostručuje unose kataloga za sve klijente kada je globalno omogućeno.",
"featureFlagNoThinkingAliasEnabledDescription": "Glavni prekidač za no-think/<provider>/<model> pseudonime gatewaya. Uključeno (zadano): /v1/models oglašava varijantu bez razmišljanja za svaki prihvatljivi Claude model sposoban za razmišljanje, a no-think/ identifikator poslan u zahtjevu razrješava se natrag na pravi model s potisnutim zaključivanjem. Isključeno: nijedna varijanta se ne oglašava i no-think/ identifikator tretira se kao bilo koji drugi nepoznati identifikator modela. Opt-in/opt-out ModelSpec.noThinkingAlias po modelu i dalje se primjenjuje dok je ovo uključeno.",
"featureFlagChatVirtualLanesEnabledDescription": "Omogući adaptivne virtualne prijamne trake po korisniku za raspodjelu pružatelja (#9654): opterećenje jednog korisnika više neće uzrokovati 503 grešku drugome. Varijabla okoline OMNIROUTE_CHAT_VIRTUAL_LANES ima prednost nad ovim nadjačavanjem nadzorne ploče; promjene stupaju na snagu pri ponovnom pokretanju poslužitelja.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Stranice pružatelja na nadzornoj ploči: prikazuju oznaku Besplatno samo na signalima koje pružatelj poštuje — izostavlja se heuristika naziva za prikaz, ne-logička besplatna polja i sufiksi :free kod registriranih pružatelja bez dokumentirane besplatne razine. Isključeno zadržava dosadašnje pravilo za oznake.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Skupovi proxy poslužitelja i rotacija opencodea po računu privremeno prestaju ponovno posluživati proxy poslužitelj koji je upravo zakazao (odbijena TCP provjera ili odgovor 429 primljen preko njega) tijekom razdoblja po procesu koje se udvostručuje pri svakom ponavljanju, do zadanog maksimuma. Status proxy poslužitelja ne zapisuje se; kada se svi kandidati izuzmu, odabir ostaje nepromijenjen. Prema zadanim postavkama isključeno: redoslijed odabira potpuno je jednak običnoj rotaciji.",
+ "featureFlagProxyPoolEgressObservationDescription": "Na nadzornoj ploči, ispod skupa proxy poslužitelja, prikažite koliko je opaženih izlaznih IP adresa opsluživalo njegove članove tijekom posljednja 24 h, koliko ih je veza upotrebljavalo i najveći broj veza zabilježen iza jedne IP adrese. Samo za čitanje, izračunava se iz zapisnika proxy poslužitelja i nikada se ne upotrebljava za usmjeravanje. Prema zadanim postavkama isključeno: uređivač skupa ostaje nepromijenjen, a ruta za opažanja vraća null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Tijekom provjere stanja proxy poslužitelja omogućite da provjera koju je cilj odbio (401/403/429: proxy poslužitelj proslijedio je zahtjev, a odredište je odbilo ovu izlaznu IP adresu) poništi niz uzastopnih neuspjeha proxy poslužitelja, kao i uspješno poslužena provjera. Prema zadanim postavkama isključeno: odbijanje ostaje neutralno i zadržava niz. Odgovor 5xx u oba slučaja ostaje neodređen, a odbijanje nikada ne uklanja, onemogućuje niti ponovno aktivira proxy poslužitelj.",
"sidebar": {
"home": "Početna",
"dashboard": "Nadzorna ploča",
@@ -1025,7 +1029,7 @@
"embeddedServices": "Ugrađene usluge",
"embeddedServicesSubtitle": "Opcionalne lokalne usluge",
"logs": "Zapisnici",
- "webhooks": "Webhooks",
+ "webhooks": "Webhookovi",
"webhooksSubtitle": "Primajte obavijesti o događajima",
"logExport": "Izvoz zapisnika",
"logExportSubtitle": "Izvezite zapisnike poziva",
@@ -1314,7 +1318,7 @@
"noResults": "Nema rezultata"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Webhookovi",
"description": "Konfiguriraj HTTP povratne pozive za događaje sustava.",
"configuredWebhooks": "Konfigurirani webhookovi",
"configuredWebhooksDesc": "Upravljaj krajnjim točkama isporuke, pretplaćenim događajima, statusom i testnim slanjima.",
@@ -1425,19 +1429,19 @@
"secretKeyHint": "Koristi se za potpisivanje zaglavlja korisnog tereta radi autentifikacije."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "URL webhooka za Discord",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "URL webhookа kopiran iz postavki integracije vašeg Discord kanala.",
"tutorial": "Kako stvoriti Discord webhook:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "URL webhooka za Slack",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "URL webhookа kopiran iz Slack integracije dolaznih webhookova.",
"tutorial": "Kako stvoriti Slack webhook:"
},
"telegram": {
- "botToken": "Telegram Bot Token",
+ "botToken": "Token Telegram bota",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "HTTP API token primljen od @BotFather prilikom stvaranja vašeg bota.",
"chatId": "Telegram ID chata / Kanal",
@@ -1959,10 +1963,10 @@
"rangeCancel": "Odustani",
"rangeApply": "Primijeni",
"rangeErrorInvalid": "Početak mora biti prije kraja",
- "period1D": "1D",
- "period7D": "7D",
- "period30D": "30D",
- "period90D": "90D",
+ "period1D": "1 d.",
+ "period7D": "7 d.",
+ "period30D": "30 d.",
+ "period90D": "90 d.",
"periodYTD": "OG",
"periodAll": "Sve",
"totalTokens": "Ukupno tokena",
@@ -2469,7 +2473,7 @@
"stt": "Govor u tekst",
"webSearch": "Web pretraživanje",
"webFetch": "Web dohvaćanje",
- "video": "Video",
+ "video": "Videozapis",
"music": "Glazba",
"ocr": "OCR"
},
@@ -2661,7 +2665,7 @@
"failed": "Neuspješno",
"requestFailed": "Zahtjev nije uspio",
"embedding": "Ugradnja",
- "embeddingSample": "Hello, world!",
+ "embeddingSample": "Pozdrav, svijete!",
"image": "Slika",
"imageSample": "Mirni krajolik s planinama pri zalasku sunca",
"music": "Glazba",
@@ -2675,7 +2679,7 @@
"audioFormats25Mb": "mp3, wav, m4a, ogg, flac — maks. 25 MB",
"textToSpeech": "Tekst u govor",
"ttsSample": "Zdravo, ovo je test pretvaranja teksta u govor.",
- "video": "Video",
+ "video": "Videozapis",
"videoSample": "Ubrzani snimak oblaka nad planinskim lancem",
"webFetch": "Dohvaćanje weba",
"webSearchSample": "Što je OmniRoute AI pristupnik?",
@@ -3173,7 +3177,7 @@
"copilotPasteInto": "Zalijepi u:",
"copilotReloadInstruction": "Zatim ponovno pokrenite VS Code i postavite API ključ u upit za unos.",
"wireApiChatCompletions": "Dovršavanja razgovora (/chat/completions)",
- "wireApiResponses": "Responses API (/responses)",
+ "wireApiResponses": "API za odgovore (/responses)",
"cliproxyapiActionFailed": "Radnja nije uspjela",
"cliproxyapiActionSucceeded": "Radnja je uspjela",
"cliproxyapiCheckUpdates": "Provjeri ažuriranja",
@@ -3256,19 +3260,19 @@
"priorityDesc": "Sekvencijalni fallback: prvo pokušava model 1, zatim 2 itd.",
"weightedDesc": "Raspoređuje promet prema postotku težine s fallbackom",
"roundRobinDesc": "Kružna distribucija: svaki zahtjev ide na sljedeći model u rotaciji",
- "contextRelay": "Context Relay",
+ "contextRelay": "Prosljeđivanje konteksta",
"contextRelayDesc": "Čuva kontinuitet sesije sa sažecima predaje pri rotaciji računa",
"randomDesc": "Jednoliki nasumični odabir, zatim fallback na preostale modele",
"leastUsedDesc": "Odabire model s najmanje zahtjeva, ravnomjerno raspoređujući opterećenje kroz vrijeme",
"costOptimizedDesc": "Preusmjerava na najjeftiniji model prvi, na temelju cijena",
"cacheOptimizedDesc": "Svaki višekratno upotrebljivi prefiks upita doslovno preusmjerava na isti račun pružatelja",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "RR svjestan poništavanja",
"resetAwareDesc": "Balansira preostalu kvotu prema resetiranjima svakih 5h i tjedno, zatim primjenjuje round-robin na slične rezultate",
"quotaWeighted": "Ponderirano prema kvoti",
"quotaWeightedDesc": "Preskoči račune s iscrpljenom kvotom, a zatim odaberi među preostalima razmjerno preostaloj kvoti, podijeljenoj s opterećenjem zahtjeva u tijeku. Postojeći razgovori ostaju vezani uz isti račun.",
- "strictRandom": "Strict Random",
+ "strictRandom": "Strogo nasumično",
"strictRandomDesc": "Miješanje špila — koristi svaki model jednom prije ponovnog miješanja",
- "fusion": "Fusion",
+ "fusion": "Fuzija",
"fusionDesc": "Šalje upit svim panel modelima paralelno, a zatim model suca sintetizira jedan konačni odgovor",
"fusionJudgeModel": "Model suca",
"fusionJudgeModelHelp": "Model koji sintetizira odgovore panela u jedan konačni odgovor. Ostavite prazno za korištenje prvog panel modela.",
@@ -3318,7 +3322,7 @@
"playgroundStatusError": "Greška",
"playgroundStatusUnknown": "Nepoznato",
"playgroundNetworkError": "Mrežna greška tijekom simulacije",
- "playgroundTitle": "Combo Playground",
+ "playgroundTitle": "Igralište kombinacija",
"playgroundDescription": "Simulirajte kako će zahtjevi biti usmjereni kroz vaše kombinacije",
"playgroundConfiguration": "Konfiguracija",
"playgroundNoCombosConfigured": "Nema konfiguriranih kombinacija",
@@ -4126,9 +4130,9 @@
"vscodeAliasManage": "CLI alati",
"vscodeAliasBaseLabel": "VS Code baza",
"vscodeAliasModelsLabel": "VS Code modeli",
- "vscodeAliasChatLabel": "VS Code chat",
+ "vscodeAliasChatLabel": "Razgovor u VS Codeu",
"localServer": "Lokalni poslužitelj",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "OmniRoute u oblaku",
"copyUrl": "Kopiraj URL",
"badgeLoopbackTooltip": "Ovom endpointu se može pristupiti samo lokalno (samo povratna petlja)",
"badgeAlwaysProtectedTooltip": "Ovaj endpoint je uvijek zaštićen i zahtijeva autorizaciju",
@@ -4186,7 +4190,7 @@
"notionDisconnectFailed": "Odspajanje nije uspjelo",
"notionEnterToken": "Unesite Notion integracijski token",
"notionIntegrationHelp": "Izradite internu integraciju na",
- "notionIntegrationToken": "Notion Internal Integration Token",
+ "notionIntegrationToken": "Token interne integracije za Notion",
"notionNotConnected": "Nije povezano",
"notionTokenConfigured": "Token je konfiguriran. Notion alati dostupni su putem MCP-a."
},
@@ -4242,7 +4246,7 @@
"topTools": "Najpopularniji alati",
"noToolCalls24h": "Nema poziva alata u posljednjih 24 sata.",
"runtimeDetails": "Detalji izvođenja",
- "transport": "Transport",
+ "transport": "Prijenos",
"scopesEnforced": "Opsezi u primjeni",
"yes": "da",
"no": "ne",
@@ -4798,7 +4802,7 @@
"partialData": "Telemetrija je djelomično dostupna: {error}"
},
"mitm": {
- "title": "MITM Proxy",
+ "title": "MITM proxy",
"description": "Transparentni proxy za presretanje i usmjeravanje klijentskih zahtjeva.",
"enable": "Omogući MITM Proxy",
"enableDesc": "Pokrenite ili zaustavite lokalni proces presretanja i DNS zamjenu.",
@@ -4895,7 +4899,7 @@
"status": "Status",
"resourceType": "Vrsta resursa",
"totalEntries": "Ukupno unosa",
- "tab": "Tab",
+ "tab": "Kartica",
"auditModalSubtitle": "Detalji i metapodaci događaja",
"close": "Zatvori",
"runningRequests": "Aktivni zahtjevi",
@@ -5304,10 +5308,10 @@
"openaiCompatibleDetails": "OpenAI Compatible pojedinosti",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Vektorske reprezentacije",
+ "audioTranscriptions": "Transkripcije zvuka",
+ "audioSpeech": "Generiranje govora",
+ "imagesGenerations": "Generiranje slika",
"chatCompletions": "Chat Completions",
"importingModels": "Uvoz u tijeku...",
"importFromModels": "Uvezi iz /models",
@@ -5767,7 +5771,7 @@
"apiRegionInternational": "Međunarodno",
"apiRegionLabel": "Oznaka regije API-ja",
"apikey": "API ključ",
- "audio": "Audio",
+ "audio": "Zvuk",
"audioProvidersHeading": "Pružatelji audio usluga",
"cloudAgentProviders": "Pružatelji cloud agenata",
"audioShortLabel": "Audio",
@@ -5879,7 +5883,7 @@
"m365TierLabel": "Razina Copilot",
"m365TierHint": "Odaberite koju Microsoft 365 Copilot površinu ova veza koristi. Individual je zadana potrošačka BizChat razina; Education i Enterprise (poslovni) koriste površine svojih tenanta.",
"m365TierIndividualOption": "Individual (zadano)",
- "m365TierEduOption": "Education",
+ "m365TierEduOption": "Obrazovanje",
"m365TierEnterpriseOption": "Enterprise / Poslovni",
"tierOverrideLabel": "Nadjačavanje razine",
"tierOverrideAuto": "Automatski (odlučuje usmjeravanje)",
@@ -5936,8 +5940,8 @@
"sessionCookieLabel": "Oznaka kolačića sesije",
"showEmail": "Prikaži e-poštu",
"snowflakeBaseUrlHint": "Savjet za osnovni URL Snowflake-a",
- "supportedEndpointAudio": "Audio",
- "supportedEndpointChat": "Chat",
+ "supportedEndpointAudio": "Zvuk",
+ "supportedEndpointChat": "Razgovor",
"supportedEndpointEmbeddings": "Ugrađivanja",
"supportedEndpointImages": "Slike",
"supportedEndpointsLabel": "Podržane krajnje točke",
@@ -6015,7 +6019,7 @@
"providerDetailFastTierTooltip": "Primijeni Codex Fast razinu na sve Codex veze prema zadanim postavkama",
"providerDetailFastDefaultLabel": "Zadana brza razina",
"providerDetailBrowserManualConnect": "Preglednik/ručno povezivanje",
- "providerDetailAuthUrl": "Auth URL",
+ "providerDetailAuthUrl": "URL za autentifikaciju",
"providerDetailCallbackUrl": "Povratni URL",
"providerDetailValidClaudeCredentialsFile": "Valjana datoteka s Claude vjerodajnicama",
"providerDetailPathAutoDetectedAllOs": "Putanja se automatski otkriva prema OS-u (Linux/Mac/Windows).",
@@ -6403,8 +6407,8 @@
"batchDeleteNetworkError": "Mrežna pogreška tijekom grupnog brisanja",
"batchUpdateFailed": "Grupno ažuriranje nije uspjelo",
"batchUpdateNetworkError": "Mrežna pogreška tijekom grupnog ažuriranja",
- "categoryAudio": "Audio",
- "categoryCloudAgent": "Cloud Agent",
+ "categoryAudio": "Zvuk",
+ "categoryCloudAgent": "Agent u oblaku",
"categoryIde": "IDE",
"categoryLocal": "Lokalno",
"categorySearch": "Pretraživanje",
@@ -6526,7 +6530,7 @@
"routingSummarizeDropParagraphContains": "izbaci odlomke koji sadrže: {items}",
"routingSummarizeDropParagraphStartsWith": "izbaci odlomke koji počinju s: {items}",
"routingSummarizeReplaceText": "zamijeni \"{match}\" → \"{replacement}\"",
- "routingSummarizeReplaceRegex": "regex /{pattern}/{flags} → \"{replacement}\"",
+ "routingSummarizeReplaceRegex": "regularni izraz /{pattern}/{flags} → \"{replacement}\"",
"routingSummarizeDropBlockContains": "izbaci blokove koji sadrže: {items}",
"routingSummarizePrependSystemBlock": "dodaj blok na početak: \"{text}\"",
"routingSummarizeAppendSystemBlock": "dodaj blok na kraj: \"{text}\"",
@@ -6581,7 +6585,7 @@
"modelCatalogCacheTtlSaving": "Spremanje...",
"modelCatalogCacheTtlSave": "Spremi",
"modelCatalogCacheTtlCurrent": "Trenutno: {value} ms",
- "mitmProxy": "MITM Proxy",
+ "mitmProxy": "MITM proxy",
"pricing": "Cijene",
"storage": "Pohrana",
"policies": "Pravila",
@@ -6944,7 +6948,7 @@
"proxyFreePoolAddSelected": "Dodaj odabrane u skup",
"proxyFreePoolAddVisible": "Dodaj sve vidljive u skup",
"proxyFreePoolSource": "Izvor",
- "proxyFreePoolHostPort": "Host:Port",
+ "proxyFreePoolHostPort": "Poslužitelj:port",
"proxyFreePoolType": "Vrsta",
"proxyFreePoolCountry": "Država",
"proxyFreePoolQuality": "Kvaliteta",
@@ -7052,7 +7056,7 @@
"routingAdvancedGuideTitle": "Napredne smjernice za usmjeravanje",
"routingAdvancedGuideHint1": "Ova strategija sinkronizirana je s novim zadanim postavkama kombinacija i globalnim usmjeravanjem kao rezervnom opcijom računa.",
"routingAdvancedGuideHint2": "Koristite Fill First za predvidljivi prioritet računa, Round Robin uz Sticky Limit za grupe računa, te P2C za otpornost na latenciju.",
- "fillFirst": "Fill First",
+ "fillFirst": "Prvo popuni",
"fillFirstDesc": "Koristi račune prema redoslijedu prioriteta",
"roundRobin": "Round Robin",
"roundRobinDesc": "Naizmjenično prolazi kroz sve račune",
@@ -7064,21 +7068,21 @@
"leastUsedDesc": "Odaberi najrjeđe korišten račun",
"costOpt": "Optimizacija troškova",
"costOptDesc": "Preferiraj najjeftiniji dostupni račun",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "RR svjestan poništavanja",
"resetAwareDesc": "Preferiraj račune s dovoljnom preostalim kvotom i bližim resetiranjem",
"quotaWeighted": "Ponderirano prema kvoti",
"quotaWeightedDesc": "Preskoči račune s iscrpljenom kvotom, a zatim odaberi među preostalima razmjerno preostaloj kvoti, podijeljenoj s opterećenjem zahtjeva u tijeku. Postojeći razgovori ostaju vezani uz isti račun.",
"strictRandom": "Strogo nasumično",
"strictRandomDesc": "Pomiješaj spil — koristi svaki račun jednom prije ponovnog miješanja",
- "stickyLimit": "Sticky Limit",
+ "stickyLimit": "Ograničenje ljepljivosti",
"stickyLimitDesc": "Broj poziva po računu prije prebacivanja kada globalna rezervna opcija računa koristi Round Robin",
"routingStrategyTitle": "Strategija usmjeravanja",
"routingStrategySubtitle": "Uskladi s 9router: kružno dodjela računa, sticky ograničenja i rotacija kombinacija",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Kružno raspoređivanje",
"accountRoundRobinDesc": "Naizmjenično prolazi kroz račune radi raspodjele opterećenja",
- "comboRoundRobin": "Combo Round Robin",
+ "comboRoundRobin": "Kombinirano kružno raspoređivanje",
"comboRoundRobinDesc": "Naizmjenično prolazi kroz ciljeve kombinacije umjesto da uvijek počinje s prvim",
- "comboStickyLimit": "Combo Sticky Limit",
+ "comboStickyLimit": "Kombinirano ograničenje ljepljivosti",
"comboStickyLimitDesc": "Broj poziva po cilju kombinacije prije prebacivanja",
"routingStrategyAccountSummary": "Raspodjela zahtjeva po računima s {limit} poziva po računu.",
"routingStrategyFillFirstSummary": "Korištenje računa prema prioritetnom redoslijedu (Popuni prvo).",
@@ -7187,7 +7191,7 @@
"comboStrategyAria": "Strategija kombinacije",
"priority": "Prioritet",
"weighted": "Ponderiran",
- "contextRelay": "Context Relay",
+ "contextRelay": "Kontekstni relej",
"contextRelayDesc": "Usmjeravanje po prioritetu s automatskim predajama konteksta pri rotaciji računa",
"maxRetriesLabel": "Maks. broj ponovnih pokušaja",
"retryDelayLabel": "Odgoda ponovnog pokušaja (ms)",
@@ -7459,7 +7463,7 @@
"budget": "Proračun",
"pricingSyncTitle": "Sinkronizacija cijena",
"pricingResetFailedWithReason": "Resetiranje cijena nije uspjelo: {reason}",
- "tab": "Tab",
+ "tab": "Kartica",
"pricingSavedProvider": "Cijene spremljene za {provider}",
"pricingSyncFailed": "Sinkronizacija cijena nije uspjela",
"pricingSaveFailedWithReason": "Spremanje cijena nije uspjelo: {reason}",
@@ -7564,7 +7568,7 @@
"qdrantSaved": "Konfiguracija spremljena",
"qdrantSaveError": "Spremanje konfiguracije nije uspjelo",
"qdrantHostHint": "Bez porta. Primjer: 127.0.0.1 ili http://qdrant",
- "qdrantPort": "Port",
+ "qdrantPort": "Priključak",
"qdrantPortHint": "Qdrant zadano: 6333",
"qdrantCollectionHint": "Gdje će se pohranjivati memorijske točke.",
"qdrantEmbeddingModel": "Model za ugradnju (embedding)",
@@ -7685,7 +7689,7 @@
"routingZeroConfigTitle": "Automatsko usmjeravanje bez konfiguracije",
"routingZeroConfigDesc": "Omogući automatski odabir pružatelja usluga pomoću prefiksa auto/. Kada je omogućeno, zahtjevi za auto, auto/coding, auto/fast itd. dinamički će se usmjeravati između svih povezanih pružatelja usluga.",
"routingDefaultAutoVariant": "Zadana automatska varijanta",
- "visionBridge": "Vision Bridge",
+ "visionBridge": "Most za vizualni sadržaj",
"visionBridgeDesc": "Pokreni automatski rezervni mehanizam vizija-u-tekst prije usmjeravanja zahtjeva sa slikama na modele samo za tekst.",
"visionBridgeEnabledLabel": "Omogućeno",
"visionBridgeEnabledDesc": "Uključi/isključi premosni most koji zamjenjuje dijelove slike izdvojenim tekstom.",
@@ -7933,16 +7937,16 @@
"memorySkillsActiveSkillsProvider": "Aktivni pružatelj vještina",
"cliproxyapiFallback": "CLIProxyAPI rezervna opcija",
"cliproxyapiEnableFallback": "Omogući CLIProxyAPI rezervnu opciju",
- "cliproxyapiUrl": "CLIProxyAPI URL",
- "headroomProxyTitle": "Headroom proxy",
+ "cliproxyapiUrl": "URL za CLIProxyAPI",
+ "headroomProxyTitle": "Headroom proxy poslužitelj",
"headroomProxyDesc": "URL neobaveznog Headroom proxyja za uštedu tokena. Ako je prazno, upotrebljava se HEADROOM_URL ili http://localhost:8787.",
- "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrl": "URL za Headroom",
"headroomProxyUrlHint": "Loopback URL-ovi mogu se pokrenuti s ove stranice. Vanjski URL-ovi samo se provjeravaju.",
"headroomProxySave": "Spremi",
"headroomProxyStart": "Pokreni",
"headroomProxyStop": "Zaustavi",
"headroomProxyExternalHint": "Ovaj URL nije loopback, stoga OmniRoute neće pokrenuti lokalni CLI.",
- "cliproxyapiStatus": "CLIProxyAPI Status",
+ "cliproxyapiStatus": "Status CLIProxyAPI-ja",
"cliproxyapiNotDetected": "Nije otkriveno",
"cliproxyapiImportAuthTitle": "Uvezi račune iz CLIProxyAPI",
"cliproxyapiImportAuthDesc": "Uvezi OAuth račune koje je CLIProxyAPI već spremio u ~/.cli-proxy-api/ kao OmniRoute veze, kako se ne biste morali ponovo prijavljivati na svaki račun. Podržane vrste računa (Gemini, Codex, Claude, Antigravity, Qwen, Kimi) se uvoze; ostale se preskaču.",
@@ -8176,9 +8180,9 @@
"cloudflareRelayModalTitle": "Postavi Cloudflare Worker Relay",
"cloudflareRelayWarning": "Postavlja Cloudflare Worker koji prosljeđuje LLM zahtjeve kroz Cloudflareovu rubnu mrežu — maskirajući IP domaćina iza dinamičkih Cloudflare adresa. Worker primjenjuje jednokratnu auth tajnu kako javni workers.dev URL ne bi mogao biti iskorišten kao otvoreni relay.",
"cloudflareRelayTokenHowto": "Kreirajte API token pod My Profile -> API Tokens -> Create Token -> Custom Token -> Account / Workers Scripts / Edit.",
- "cloudflareRelayAccountIdLabel": "Cloudflare Account ID",
+ "cloudflareRelayAccountIdLabel": "ID Cloudflare računa",
"cloudflareRelayAccountIdHint": "Nalazi se na desnoj strani stranice pregleda Cloudflare nadzorne ploče.",
- "cloudflareRelayApiTokenLabel": "Cloudflare API Token",
+ "cloudflareRelayApiTokenLabel": "API token za Cloudflare",
"cloudflareRelayApiTokenHint": "Zahtijeva dozvolu 'Workers Scripts: Edit'. Token se koristi samo pri postavljanju i nikada se ne pohranjuje.",
"cloudflareRelayProjectNameLabel": "Naziv Workera",
"cloudflareRelayFreeTierNote": "Besplatni plan: 100 000 zahtjeva/dan po Cloudflare računu.",
@@ -8228,7 +8232,7 @@
"modalityBridgeIntro": "Premoštuje multimodalni sadržaj u tekst prije nego što dosegne modele samo za tekst. Dostupni su i konfigurabilni mostovi za vid, zvuk i video.",
"modalityBridgeVisionTab": "Vid",
"modalityBridgeAudioTab": "Zvuk",
- "modalityBridgeVideoTab": "Video",
+ "modalityBridgeVideoTab": "Videozapis",
"modalityBridgeSubTabsAria": "Odjeljci mosta modaliteta",
"modalityBridgeVisionTitle": "Most za vid",
"modalityBridgeVisionDesc": "Opisuje slike vizijskim modelom i nastavlja s korisnikovim odabranim tekstualnim modelom.",
@@ -8373,12 +8377,12 @@
"cliproxyapiUnknown": "Nepoznato",
"cliproxyapiVersion": "Verzija",
"cliproxyapiHealth": "Zdravlje",
- "cliproxyapiPort": "Port",
- "qdrantHost": "Host",
+ "cliproxyapiPort": "Priključak",
+ "qdrantHost": "Poslužitelj",
"qdrantCollection": "Kolekcija"
},
"contextRtk": {
- "title": "RTK Engine",
+ "title": "RTK mehanizam",
"description": "Kompresija svjesna naredbi za izlaz alata, terminalne zapise i rezultate izgradnje.",
"enabled": "Omogućeno",
"intensity": "Intenzitet",
@@ -8502,7 +8506,7 @@
"description": "Bezgubitno tablično sažimanje homogenih JSON polja s eksplicitnim oznakama broja redaka."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "Deduplikacija sesije",
"description": "Međuokretna blokovna deduplikacija s oznakama za obnavljanje sadržaja."
},
"ccr": {
@@ -8766,7 +8770,7 @@
"why": "Samo izmjerena staza Fable 5 omogućena je u OmniRouteu. GPT 5.6 strukturno je podržan paketom, ali ostaje blokiran do primitka potvrde pružatelja; neprovjerene obitelji poput Groka ostaju samo u tekstualnom obliku."
},
"transport": {
- "label": "Transport",
+ "label": "Prijenos",
"pass": "izravni pružatelj usluge",
"why": "Agregatori mogu uzorkovati slike i uništiti čitljivost — samo ruta izravnog pružatelja usluge je mjerodavna."
},
@@ -8876,7 +8880,7 @@
"providerExposureHint": "Kada je omogućeno, otkriveni modeli pojavljuju se u selektorima pružatelja usluga diljem OmniRoute.",
"providerExposureUpdateFailed": "Ažuriranje nije uspjelo (HTTP {status})",
"providerExposureNetworkFailed": "Mrežna greška — nije moguće ažurirati postavku izloženosti pružatelja usluga",
- "webUi": "9Router Web UI",
+ "webUi": "Web-sučelje 9Router",
"openNewTab": "Otvori u novoj kartici",
"filterLogs": "Filtriraj zapisnike…",
"resume": "Nastavi",
@@ -8888,7 +8892,7 @@
"fallbackRouting": "Rezervno usmjeravanje",
"fallbackRoutingDescription": "Ponovite neuspjele zahtjeve davatelja usluga putem CLIProxyAPI",
"enableFallback": "Omogući povratnu opciju",
- "cliproxyUrl": "CLIProxyAPI URL",
+ "cliproxyUrl": "URL za CLIProxyAPI",
"fallbackCodes": "Rezervni statusni kodovi (odvojeni zarezima)",
"invalidUrl": "Nevažeći URL — mora počinjati s http:// ili https://",
"saved": "Spremljeno",
@@ -9100,8 +9104,8 @@
"cityDescription": "Grad za upit, npr. 'Tokio' ili 'New York'."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
+ "openaiCompatibleLabel": "Kompatibilno s OpenAI-jem",
+ "anthropicCompatibleLabel": "Kompatibilno s Anthropicom",
"noTemplateForFormat": "Nema predloška za ovaj format",
"translationFailed": "Prijevod nije uspio: {error}",
"pipelineDebugger": "Ispravljač cjevovoda",
@@ -9152,9 +9156,9 @@
"eventSourceMainPipeline": "• Glavni cjevovod zahtjeva (CLI/IDE/API promet)",
"liveMonitorDescriptionPrefix": "Prikazuje događaje prevođenja dok API pozivi prolaze kroz OmniRoute. Događaji dolaze iz međuspremnika u memoriji (resetira se pri ponovnom pokretanju). Koristite",
"liveMonitorDescriptionSuffix": ", ili vanjske API pozive za generiranje događaja.",
- "streamTransformer": "Stream Transformer",
+ "streamTransformer": "Transformator toka",
"modeDescriptionStreamTransformer": "Pokrenite SSE streamove dovršavanja razgovora kroz Responses transformer.",
- "streamTransformerTitle": "Responses Stream Transformer",
+ "streamTransformerTitle": "Transformator toka odgovora",
"streamTransformerDescription": "Zalijepite SSE stream dovršavanja razgovora, pokrenite ga kroz OmniRoute-ov Responses transformer i pregledajte emitirana response.* događaje prije spajanja klijenta.",
"loadTextSample": "Učitaj tekstualni uzorak",
"loadToolSample": "Učitaj uzorak poziva alata",
@@ -9290,7 +9294,7 @@
"kimiMonthlyLimit": "Mjesečno ograničenje",
"kimiMonthlyLimitUnlimited": "Neograničeno",
"kimiAdditionalCredits": "Dodatni krediti",
- "loggerTab": "Logger",
+ "loggerTab": "Zapisivač",
"proxyTab": "Proxy",
"budgetManagement": "Upravljanje proračunom",
"budgetSaved": "Ograničenja proračuna spremljena",
@@ -9339,7 +9343,7 @@
"evaluateStepDescription": "Odgovori se uspoređuju s očekivanim kriterijima. Pogledajte prolaz/pad za svaki slučaj uz metrike latencije i detaljne povratne informacije.",
"evalsStrategyContainsLabel": "Sadrži",
"evalsStrategyExactLabel": "Točno podudaranje",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Regularni izraz",
"evalsStrategyCustomLabel": "Prilagođena logika",
"evalsStrategyContainsDescription": "Provjerava sadrži li izlaz LLM-a očekivani podniz.",
"evalsStrategyExactDescription": "Provjerava podudara li se izlaz LLM-a točno s očekivanom vrijednošću.",
@@ -9461,9 +9465,9 @@
"noQuotaDataAvailable": "Nema dostupnih podataka o kvoti",
"noAccountsForTierFilter": "Nisu pronađeni računi za filter razine",
"tierAll": "Sve",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "tierEnterprise": "Poslovni",
+ "tierTeam": "Tim",
+ "tierBusiness": "Poslovni",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
@@ -9819,8 +9823,8 @@
"signIn": "Prijava",
"enterPassword": "Unesite lozinku za nastavak",
"password": "Lozinka",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
+ "unifiedProxy": "Objedinjeni proxy za AI API",
+ "unifiedAiApiProxy": "Objedinjeni proxy za AI API",
"unifiedAiApiProxyDesc": "Usmjeravajte zahtjeve prema više AI pružatelja putem jedne krajnje točke. Ugrađeno balansiranje opterećenja, prebacivanje u slučaju greške i praćenje upotrebe.",
"passwordNotEnabled": "Zaštita lozinkom nije omogućena",
"loading": "Učitavanje...",
@@ -10256,7 +10260,7 @@
"techUsersSubtitle": "Detaljni pregled arhitekture, API-ja i unutarnjih mehanizama",
"apiExplorerMetadataTitle": "API Explorer — OmniRoute dokumentacija",
"apiExplorerMetadataDescription": "Interaktivni API explorer — isprobajte OmniRoute krajnje točke uživo s odgovorima u stvarnom vremenu",
- "apiExplorerTitle": "API Explorer",
+ "apiExplorerTitle": "Istraživač API-ja",
"apiExplorerDescription": "Isprobajte OmniRoute krajnje točke uživo. Odaberite krajnju točku, konfigurirajte zahtjev i pogledajte odgovor u stvarnom vremenu.",
"apiExplorerSseStarted": "SSE tok je pokrenut — provjerite terminal/devtools za izlaz u stvarnom vremenu.",
"apiExplorerError": "Greška: {message}",
@@ -10295,7 +10299,7 @@
"termsMetadataDescription": "Uvjeti korištenja za OmniRoute AI API proxy usmjerivač.",
"backToHome": "Natrag na početnu stranicu",
"lastUpdated": "Posljednje ažuriranje: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "policyLastUpdatedDate": "13. veljače 2026.",
"listSeparator": "-",
"questionsVisit": "Pitanja? Posjetite naš",
"githubRepository": "GitHub repozitorij",
@@ -10689,9 +10693,9 @@
"custom": "Prilagođeno",
"selectSavedProxyPlaceholder": "Odaberi spremljeni proxy...",
"proxyType": "Vrsta proxyja",
- "host": "Host",
+ "host": "Poslužitelj",
"hostPlaceholder": "1.2.3.4 ili proxy.example.com",
- "port": "Port",
+ "port": "Priključak",
"authOptional": "Autentikacija (neobavezno)",
"username": "Korisničko ime",
"usernamePlaceholder": "Korisničko ime",
@@ -10779,7 +10783,7 @@
"saveConnection": "Spremi vezu",
"gheDescription": "Unesite osnovni URL vaše GitHub Enterprise instance (npr. https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "URL za GitHub Enterprise",
"gheUrlRequired": "GitHub Enterprise URL je obavezan",
"gitlabDuoSetupTitle": "Postavljanje GitLab Duo OAuth-a",
"gitlabDuoSetupMessage": "GitLab Duo OAuth nije konfiguriran. Registrirajte OAuth aplikaciju na {applicationsUrl} s preusmjeravajućim URI-jem {redirectUri} i opsezima \"{scopes}\", zatim postavite {clientIdEnv} (i po želji {clientSecretEnv}) i ponovo pokrenite.",
@@ -10869,8 +10873,8 @@
"familyIpv4": "Samo IPv4",
"familyIpv6": "Samo IPv6",
"familyHint": "Obitelj izlaznih adresa. Automatski zadržava dual-stack; IPv4/IPv6 vezuje ovaj proxy uz tu obitelj (sprječava curenje v4 pod proxy koji podržava samo IPv6).",
- "labelHost": "Host",
- "labelPort": "Port",
+ "labelHost": "Poslužitelj",
+ "labelPort": "Priključak",
"labelUsername": "Korisničko ime",
"labelPassword": "Lozinka",
"labelRegion": "Regija",
@@ -10915,7 +10919,7 @@
"assignmentsCount": "{count} dodjela",
"noData": "—",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Popravak",
"relayAuthMissing": "autentifikacija nedostaje",
@@ -10964,6 +10968,9 @@
"strategyLatency": "Optimizirano prema latenciji",
"poolMembersLabel": "Članovi poola ({count})",
"poolNoMembers": "Još nema proxyja u ovom poolu.",
+ "poolEgressObservation": "{exits, plural, one {# izlaz} few {# izlaza} other {# izlaza}} za {connections, plural, one {# vezu} few {# veze} other {# veza}} · do {max} na jednom izlazu · posljednjih {hours} h",
+ "poolEgressObservationEmpty": "U posljednjih {hours} h nije zabilježen promet",
+ "poolEgressObservationHint": "Izračunato iz zapisnika proxyja tijekom razdoblja: različite izlazne IP adrese zabilježene za članove ovog skupa i OmniRoute veze koje su ih koristile. „Na jednom izlazu” odnosi se na cijelo razdoblje, a ne na isti trenutak. Blokada 429 po IP adresi pauzira samo veze iz iste obitelji pružatelja.",
"poolRemove": "Ukloni",
"poolRemoveFailed": "Uklanjanje proxyja iz poola nije uspjelo",
"poolAddLabel": "Dodaj proxy",
@@ -10973,7 +10980,7 @@
"poolSaveFailed": "Spremanje dodjele skupa nije uspjelo"
},
"playground": {
- "title": "Model Playground",
+ "title": "Okruženje za isprobavanje modela",
"description": "Testirajte bilo koji model izravno s nadzorne ploče. Odaberite pružatelja, model i vrstu krajnje točke, zatim pošaljite zahtjev kako biste vidjeli neobrađeni odgovor.",
"endpoint": "Krajnja točka",
"provider": "Pružatelj",
@@ -11018,7 +11025,7 @@
"conversationalChat": "Razgovorni chat",
"clearChat": "Očisti chat",
"typeMessagePlaceholder": "Unesite poruku... (Shift+Enter za novi redak)",
- "tabChat": "Chat",
+ "tabChat": "Razgovor",
"tabCompare": "Usporedi",
"tabApi": "API",
"tabBuild": "Izgradnja",
@@ -11198,7 +11205,7 @@
"tunnel": "Tunel",
"send": "Pošalji",
"selectKey": "Odaberi ključ",
- "testLabel": "Test",
+ "testLabel": "Testiraj",
"expandTest": "Proširi test",
"collapseTest": "Sažmi test",
"revealKey": "Otkrij ključ",
@@ -11207,7 +11214,7 @@
"play": "Reproduciraj",
"query": "Upit",
"numResults": "Maksimalan broj rezultata",
- "prompt": "Prompt",
+ "prompt": "Upit",
"size": "Veličina",
"duration": "Trajanje",
"question": "Pitanje",
@@ -11227,7 +11234,7 @@
"ttsSample": "Pozdrav od OmniRoute-a. Ovo je test pretvorbe teksta u govor.",
"textToSpeech": "Tekst u govor",
"videoSample": "Papirnati avion koji leti iznad futurističkog grada",
- "video": "Video",
+ "video": "Videozapis",
"webFetch": "Dohvat s weba",
"webSearchSample": "Što je OmniRoute?",
"webSearch": "Pretraga weba",
@@ -11237,7 +11244,7 @@
"searchResultFallback": "Rezultat {number}",
"noKeysFound": "Nisu pronađeni API ključevi. Dodajte jedan u odjeljku Ključevi.",
"exampleLabel": "Primjer",
- "latency": "{ms}ms",
+ "latency": "{ms} ms",
"statsLine": "{ms}ms · {tokensIn} ulaznih / {tokensOut} izlaznih tokena",
"defaultKey": "(zadano)",
"clear": "Očisti",
@@ -11276,8 +11283,8 @@
"sortDurationAsc": "Trajanje ↑",
"sortStatusDesc": "Status ↓",
"sortStatusAsc": "Status ↑",
- "sortModelAsc": "Model A-Z",
- "sortModelDesc": "Model Z-A",
+ "sortModelAsc": "Model A–Z",
+ "sortModelDesc": "Model Z–A",
"sortLogs": "Sortiraj zapise",
"refresh": "Osvježi",
"columnsLabel": "Stupci",
@@ -11367,7 +11374,7 @@
},
"payloadMissing": "Detaljan artefakt sadržaja više nije dostupan za ovaj unos zapisa.",
"payloadCorrupt": "Detaljan artefakt sadržaja nije bilo moguće raščlaniti.",
- "notAvailable": "N/A",
+ "notAvailable": "Nije primjenjivo",
"semanticCache": "Semantički (OmniRoute)",
"upstreamCache": "Uzlazni tok (davatelj)",
"ariaLabel": "Detalj zapisa zahtjeva",
@@ -11443,7 +11450,7 @@
"allLevels": "Sve razine",
"allProviders": "Svi pružatelji",
"total": "ukupno",
- "ok": "OK",
+ "ok": "U redu",
"err": "GRŠ",
"timeoutShort": "IST",
"direct": "izravno",
@@ -11463,11 +11470,11 @@
"speech": "Govor",
"search": "Pretraživanje",
"images": "Slike",
- "chat": "Chat",
+ "chat": "Razgovor",
"music": "Glazba",
"responses": "Odgovori",
- "rerank": "Rerank",
- "video": "Video",
+ "rerank": "Ponovno rangiranje",
+ "video": "Videozapis",
"embeddings": "Ugradnje",
"transcription": "Transkripcija"
},
@@ -11480,7 +11487,7 @@
"kilo": "Kilo"
},
"runtime": {
- "title": "Runtime",
+ "title": "Izvršno okruženje",
"description": "Promatranje u stvarnom vremenu — 3-slojna otpornost + sesije + upozorenja o kvoti",
"pause": "Pauziraj",
"resume": "Nastavi",
@@ -11618,7 +11625,7 @@
"burnRateExhaustsIn": "Iscrpljuje se za",
"dimensionResetIn": "Resetira se za",
"realConsumedColumn": "Potrošeno",
- "deficitColumn": "Deficit",
+ "deficitColumn": "Manjak",
"borrowingIndicator": "posuđivanje",
"migratedFromLocalStorageNotice": "Skupovi uspješno migrirani iz localStorage.",
"policyCapAbsoluteLabel": "Apsolutno ograničenje",
@@ -11671,7 +11678,7 @@
"endpointsBaseUrl": "Osnovni URL",
"endpointsCollapse": "Sažmi",
"endpointsExpand": "Proširi",
- "endpointsAnthropicNote": "Anthropic-native",
+ "endpointsAnthropicNote": "Izvorni Anthropic",
"endpointsResponsesNote": "OpenAI Responses — codex/github",
"endpointsWsNote": "WebSocket — samo codex",
"betaText": "Quota Share je funkcionalan, ali greške su moguće. Pronašli ste neku? Molimo prijavite je.",
@@ -12885,8 +12892,8 @@
"block": "Blokiraj",
"redact": "Redigiraj",
"disabled": "Onemogućeno",
- "dual": "Dual",
- "alias": "Alias",
+ "dual": "Dvostruki",
+ "alias": "Pseudonim",
"canonical": "Kanonski"
},
"definitions": {
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Dopusti oporavku toka da ponovo zatraži odgovor i spoji ga nakon što su bajtovi već stigli do klijenta."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Učinite nastavak usred toka sigurnim za pozive alata: nikada ne nastavljajte prekinuti tok nakon što je poziv alata poslan (još traje ili je već dovršen) i zaustavite se nakon jednog praznog nastavka umjesto korištenja cijelog dopuštenog broja ponovnih pokušaja."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Jednom se prebaci na srodnu vezu kada se tok zatvori prije slanja ijednog korisnog okvira, a ograničeni ponovni pokušaj na istoj vezi je iskorišten. Ako nema upotrebljive srodne veze, vraća se izvorna early-EOF pogreška. Isključeno: early-EOF ostaje konačan nakon ponovnog pokušaja."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Uključi polja s imenima prilagođenim za prikaz u odgovorima /v1/models. Onemogući ovo za klijente koji prihvaćaju samo ID-ove modela."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Petlja alata pod nadzorom poslužitelja",
"description": "Nastavi s nestrujnim pozivima alata pod nadzorom poslužitelja sve dok model ne vrati odgovor koji klijent može upotrijebiti."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Podrijetlo zaglavlja Retry-After",
+ "description": "U agregiranim odgovorima 429/503 o nedostupnosti izostavite Retry-After kada nije poznato konkretno buduće vrijeme ponovnog pokušaja umjesto slanja sintetičke vrijednosti od 1 s, dodajte error.retry_after_provenance i čitajte tekstualne upute za ponovni pokušaj na putanjama pražnjenja kombinacije."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Zaustavljanja infrastrukture za zaštićeni prioritet kao 502",
+ "description": "Odgovorite kodom 502 umjesto 503 kada prioritetno odredište s pričuvnim rješenjem samo za kvotu zaustavi kombinaciju zbog uzroka koji dokazivo nije kvota: otvorenog prekidača strujnog kruga pružatelja ili prediktivnog preskakanja zbog latencije."
}
}
},
@@ -13098,7 +13119,7 @@
"comboHealth": "Zdravlje comb-a",
"callLogs": "Zapisnici poziva",
"costs": "Troškovi",
- "playground": "Playground",
+ "playground": "Igralište",
"nestedCombo": "Ugniježđeni combo",
"modelTarget": "Modelni cilj",
"weight": "{value}% težina",
@@ -13313,7 +13334,7 @@
"simulateTitle": "Simuliraj pravilo",
"model": "Model",
"effort": "Napor",
- "transport": "Transport",
+ "transport": "Prijenos",
"simulate": "Simuliraj bez uzvodnog toka",
"extendedComboWarning": "Max/Ultra se zasebno provjerava za svaki kombinirani cilj tijekom usmjeravanja.",
"extendedUnknownWarning": "Unesite ciljni model za provjeru podrške za Max/Ultra.",
@@ -13556,9 +13577,9 @@
"timeline": {
"title": "Prijelazi prekidača",
"window": "Prozor",
- "window1h": "1h",
- "window6h": "6h",
- "window24h": "24h",
+ "window1h": "1 h",
+ "window6h": "6 h",
+ "window24h": "24 h",
"empty": "Nema prijelaza u odabranom prozoru",
"currentState": "Trenutno stanje",
"state": {
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Odbij zahtjeve prije otpreme kada ciljnom modelu nedostaju potrebne mogućnosti (vizija, alati, strukturirani izlaz, kontekstni prozor). Štiti izravne zahtjeve prema jednom pružatelju koji zaobilaze filtar kompatibilnosti combo-sloja.",
"featureFlagDisableContextWindowChecksDescription": "Preskoči OmniRoute-ovu lokalnu provjeru kontekstnog prozora i maksimalnog ulaznog tokena za izravne zahtjeve prema jednom modelu. Uzlazni pružatelji i dalje primjenjuju stvarna ograničenja. Kompresija upita i ograničenja izlaznih tokena ostaju aktivni.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Statistika pretraživanja i nedavna pretraživanja broje samo pružatelje koji još uvijek imaju aktivnu vezu (pružatelji bez ključa, poput duckduckgo-free, uvijek se broje). Isključivanjem se zadržava svaki sačuvani redak pretraživanja s ID-jem pružatelja.",
"publicSystem": {
"notFound": {
"title": "Stranica nije pronađena",
@@ -13692,8 +13714,8 @@
"providersTracked": "Praćeni pružatelji usluga",
"circuitBreakerState": "Stanje prekidača strujnog kruga pružatelja usluga",
"lastUpdate": "Zadnje ažuriranje: {timestamp}",
- "uptimeMinutes": "{minutes}m",
- "uptimeHoursMinutes": "{hours}h {minutes}m"
+ "uptimeMinutes": "{minutes} min",
+ "uptimeHoursMinutes": "{hours} h {minutes} min"
},
"statusPages": {
"400": {
@@ -13936,7 +13958,7 @@
"tokens": "Tokeni",
"active": "Aktivno",
"other": "Ostalo",
- "tenMinutes": "10min",
+ "tenMinutes": "10 min",
"hour": "sat",
"day": "dan",
"unknownModel": "nepoznato",
@@ -13962,9 +13984,9 @@
"colMode": "Način",
"colRunner": "Pokretač",
"colSummary": "Sažetak",
- "online": "online",
- "offline": "offline",
- "draining": "draining",
+ "online": "na mreži",
+ "offline": "izvan mreže",
+ "draining": "pražnjenje",
"hubOffline": "Conductor hub je offline ili nije konfiguriran (CONDUCTOR_HUB_URL) — prikazuje se ništa umjesto zastarjelih podataka.",
"noRunners": "Nema registriranih pokretača",
"noTasks": "Još nema zadataka",
@@ -14010,7 +14032,7 @@
"historyEmpty": "Nema završenih izvođenja u ovom rasponu",
"historyConductorNote": "Conductor izvođenja su udaljena i ne pohranjuju se lokalno",
"historySourceFailed": "Povijest izvora {source} nije dostupna",
- "historyRange1d": "24h",
+ "historyRange1d": "24 h",
"historyRange7d": "7 dana",
"historyRange30d": "30 dana",
"compareMode": "Usporedi izvođenja",
@@ -14029,9 +14051,9 @@
"filterSources": "Izvori",
"filterProviders": "Pružatelji",
"clearFilters": "Očisti filtre",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Agent u oblaku",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "Upravitelj",
"sourceStale": "Zastarjelo od {since}",
"sourceOffline": "Izvan mreže",
"sourceCollapse": "Sažmi",
@@ -14098,7 +14120,7 @@
"trialDays": "{days, plural, one {# dan} other {# dana}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
+ "title": "Radarske informacije",
"subtitle": "ELO rangiranja u vlasništvu Radara i stvarna kretanja kataloga.",
"backToRadar": "Natrag na Radar",
"loading": "Učitavanje Intela...",
@@ -14106,7 +14128,7 @@
"syncing": "Osvježavanje...",
"loadFailed": "Nismo mogli osvježiti Intel. Zadržan je posljednji lokalno verificirani predmemorij.",
"empty": "Još uvijek nije dostupna verificirana snimka Intela.",
- "supporterBadge": "Radar Supporter",
+ "supporterBadge": "Podržavatelj radara",
"methodology": "Metodologija",
"eloMethod": "ELO, početni {initial}, K={factor}",
"freshness": "Svježina kataloga",
diff --git a/src/i18n/messages/hu.json b/src/i18n/messages/hu.json
index 39dce97236..c8943186f1 100644
--- a/src/i18n/messages/hu.json
+++ b/src/i18n/messages/hu.json
@@ -23,7 +23,7 @@
"back": "Vissza",
"next": "Következő",
"submit": "Beküld",
- "reset": "Reset",
+ "reset": "Visszaállítás",
"copy": "Másolás",
"copied": "Másolva!",
"enabled": "Engedélyezve",
@@ -31,7 +31,7 @@
"active": "Aktív",
"inactive": "Inaktív",
"noData": "Nincs adat",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Még nincs itt semmi",
"configure": "Konfigurálás",
"manualConfig": "Kézi konfiguráció",
"manage": "Kezelése",
@@ -47,8 +47,8 @@
"time": "Idő",
"details": "Részletek",
"created": "Létrehozva",
- "lastUsed": "Last Refreshed",
- "loadMore": "Load More",
+ "lastUsed": "Legutóbb frissítve",
+ "loadMore": "Továbbiak betöltése",
"noResults": "Nincs találat",
"reloadPage": "Oldal újratöltése",
"connected": "Csatlakozva",
@@ -70,8 +70,8 @@
"note": "Megjegyzés",
"free": "Ingyenes",
"skipToContent": "Ugrás a tartalomhoz",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "A szerveren problémák merültek fel. Előfordulhat, hogy egyes funkciók nem érhetők el.",
+ "maintenanceServerUnreachable": "A szerver nem érhető el. Újracsatlakozás...",
"accept": "Elfogadás",
"accountId": "Számlaazonosító",
"alias": "Alias",
@@ -98,9 +98,9 @@
"skill": "Ügyesség",
"sortBy": "Rendezés alapja",
"sortOrder": "Rendezési sorrend",
- "tab": "Tab",
+ "tab": "Lap",
"text": "Szöveg",
- "textarea": "Textarea",
+ "textarea": "Szövegterület",
"tool": "Eszköz",
"toolId": "Szerszámazonosító",
"web": "Web",
@@ -120,8 +120,8 @@
"compatible": "Kompatibilis",
"chat-completions": "Csevegés befejezése",
"oauth": "OAuth",
- "auth_token": "Auth Token",
- "crypto": "Crypto",
+ "auth_token": "Hitelesítési token",
+ "crypto": "Kriptográfia",
"hours": "Órák",
"selfsigned": "Önaláírt",
"proxy_id": "Proxy azonosítója",
@@ -131,7 +131,7 @@
"resolve_connection_id": "A kapcsolatazonosító feloldása",
"scope_id": "Hatókör azonosítója",
"scopeId": "Hatókör azonosítója",
- "jwtSecret": "JWT Secret",
+ "jwtSecret": "JWT-titkos kulcs",
"keytar": "Keytar",
"better-sqlite3": "jobb-sqlite3",
"undici": "undici",
@@ -145,14 +145,14 @@
"social-github": "GitHub",
"social-google": "Google",
"TOOL_ALLOWLIST": "Eszköz engedélyezési lista",
- "TOOL_DENYLIST": "Tool Denylist",
+ "TOOL_DENYLIST": "Eszköztiltólista",
"Failed to save pricing": "Nem sikerült menteni az árakat",
"Failed to reset pricing": "Nem sikerült visszaállítani az árakat",
"apikey": "API kulcs",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Ugrás az irányítópultra",
+ "checkSystemStatus": "Rendszerállapot ellenőrzése",
+ "selectModel": "Modell kiválasztása",
"addModel": "Modell hozzáadása",
"effortNone": "Nincs",
"effortLow": "Alacsony",
@@ -164,10 +164,10 @@
"reasoningEffort": "Következtetési erőfeszítés",
"wireApi": "Wire API",
"modelAliases": "Modellálnevek",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Kombinációk",
+ "noModelsFound": "Nem találhatók modellek",
+ "clear": "Törlés",
+ "done": "Kész",
"selectAll": "Összes kijelölése",
"unselectAll": "Kijelölés megszüntetése",
"visibleModels": "látható",
@@ -184,542 +184,542 @@
"selectAllProviders": "Ellenőrizze az összes szolgáltatót",
"clearProviderSelection": "Törölje a szolgáltatók jelölését",
"providersSelectedCount": "{count} szolgáltató ellenőrizve",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
- "cloudAgentProviders": "Cloud Agent Providers",
- "minutesAgo": "Minutes Ago",
+ "errorOccurred": "Hiba történt",
+ "comboDeleted": "Kombináció törölve",
+ "hide": "Elrejtés",
+ "creating": "Létrehozás",
+ "comboCreated": "Kombináció létrehozva",
+ "swapFormats": "Formátumok felcserélése",
+ "daysAgo": "nappal ezelőtt",
+ "retries": "Újrapróbálkozások",
+ "errorDuringRestore": "Hiba történt a visszaállítás során",
+ "eventsAppearHint": "Az események itt jelennek meg",
+ "noLockouts": "Nincsenek zárolások",
+ "webSearchDesc": "Leírás a webes keresésről",
+ "audioProvidersHeading": "Hangszolgáltatók",
+ "cloudAgentProviders": "Felhőügynök-szolgáltatók",
+ "minutesAgo": "perccel ezelőtt",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "Élő automatikus frissítés",
+ "webSearch": "Webes keresés",
+ "anthropicPrefixPlaceholder": "Anthropic előtag helyőrzője",
+ "addModelToCombo": "Modell hozzáadása a kombinációhoz",
+ "failedToLoad": "Betöltés sikertelen",
+ "categoryMedia": "Média kategória",
+ "enableCloud": "Felhő engedélyezése",
+ "expirationBannerExpiringSoon": "Hamarosan lejáró érvényességi figyelmeztetés",
+ "retry": "Újrapróbálás",
+ "embeddings": "Beágyazások",
+ "errorCount": "Hibák száma",
+ "backupReasonManual": "Biztonsági mentés oka: kézi",
+ "safeSearchModerate": "Mérsékelt biztonságos keresés",
+ "activeLimiters": "Aktív korlátozók",
+ "a2aCardTitle": "A2A-kártya címe",
+ "cloudWorkerUnreachable": "A felhőalapú feldolgozó nem érhető el",
+ "testFailed": "A teszt sikertelen",
+ "compatibleBaseUrlHint": "Kompatibilis alap-URL súgója",
+ "usageTracking": "Használat nyomon követése",
+ "disableCloudTitle": "Felhő letiltása – cím",
+ "noConnections": "Nincsenek kapcsolatok",
+ "providerHealth": "Szolgáltató állapota",
+ "confirmDbImport": "Adatbázis-importálás megerősítése",
+ "notAvailableSymbol": "Nem érhető el szimbólum",
+ "backupsAvailable": "Elérhető biztonsági mentések",
+ "providerAuto": "Automatikus szolgáltató",
+ "newProviderNamePlaceholder": "Új szolgáltatónév helyőrzője",
+ "a2aQuickStartStep2": "A2A gyors üzembe helyezésének 2. lépése",
+ "ok": "OK",
+ "available": "Elérhető",
+ "noBackupYet": "Még nincs biztonsági mentés",
+ "more": "Továbbiak",
+ "noCompatibleYet": "Még nincs kompatibilis elem",
+ "multiProvider": "Több szolgáltató",
+ "repairEnvHint": "Környezeti változók javításának súgója",
+ "disablingCloud": "Felhő letiltása",
+ "testBench": "Tesztkörnyezet",
+ "valid": "Érvényes",
+ "cloudBenefitShare": "Felhőelőny: megosztás",
+ "mcpCardTitle": "MCP-kártya címe",
+ "disableConfirm": "Letiltás megerősítése",
+ "filters": "Szűrők",
+ "expirationBannerExpiredDesc": "Lejárati szalag lejárt állapotának leírása",
+ "saveComboDefaults": "Kombináció alapértelmezéseinek mentése",
+ "cloudConnectedVerified": "Felhőkapcsolat ellenőrizve",
+ "uptime": "Üzemidő",
+ "compatibleProdPlaceholder": "Kompatibilis éles környezet helyőrzője",
+ "fallbackChainsTitle": "Tartalékláncok címe",
+ "oauthLabel": "OAuth-címke",
+ "a2aCardDescription": "Az A2A-kártya leírása",
+ "okShort": "OK",
+ "maintenance": "Karbantartás",
+ "formatConverter": "Formátumátalakító",
+ "zedImportNetworkError": "Hálózati hiba a Zed-importálás során",
+ "apiKeyLabel": "API-kulcs címkéje",
+ "noModelsForProvider": "Nincsenek modellek ehhez a szolgáltatóhoz",
+ "mcpCardDescription": "Az MCP-kártya leírása",
+ "apiTypeLabel": "API-típus címkéje",
+ "configuredProvidersLabel": "Konfigurált szolgáltatók címkéje",
+ "maxRetriesLabel": "Újrapróbálkozások maximális számának címkéje",
+ "title": "Cím",
+ "output": "Kimenet",
+ "prefixHint": "Előtagra vonatkozó tipp",
+ "skipWizard": "Varázsló kihagyása",
+ "failedCount": "Sikertelenek száma",
+ "confirmDbImportDesc": "Az adatbázis-importálás megerősítésének leírása",
+ "entries": "Bejegyzések",
+ "until": "Eddig",
+ "disableCombo": "Kombináció letiltása",
+ "liveMonitorDescriptionPrefix": "Az élő monitor leírásának előtagja",
+ "runningCount": "Futó elemek száma",
+ "noActiveConnectionsInGroup": "Nincsenek aktív kapcsolatok a csoportban",
+ "savedSuccessfully": "Sikeresen mentve",
+ "systemStorage": "Rendszertárhely",
+ "videoDesc": "Videó leírása",
+ "maxResults": "Találatok maximális száma",
+ "timeRangeMonth": "Időtartomány: hónap",
+ "testSummary": "Teszt összegzése",
+ "failedSetPassword": "Nem sikerült beállítani a jelszót",
+ "audio": "Hang",
+ "restore": "Visszaállítás",
+ "disableWarning": "Letiltási figyelmeztetés",
+ "moderationsDesc": "Moderálások leírása",
+ "providerHealthStatusAria": "Szolgáltató állapotának ARIA-címkéje",
+ "modelNamePlaceholder": "Modellnév helyőrzője",
+ "mcpQuickStartStep2": "MCP gyors kezdés 2. lépése",
+ "quickStart": "Gyors kezdés",
+ "fullExportFailedWithError": "A teljes exportálás hibával meghiúsult",
+ "loadingBackups": "Biztonsági mentések betöltése",
+ "anthropicBaseUrlPlaceholder": "Anthropic alap-URL helyőrzője",
+ "description": "Leírás",
+ "noProviderFound": "Nem található szolgáltató",
+ "auto": "Automatikus",
+ "protocolsDescription": "Protokollok leírása",
+ "cloudSessionNote": "Felhőmunkamenetre vonatkozó megjegyzés",
+ "advancedSettings": "Speciális beállítások",
+ "defaultStrategy": "Alapértelmezett stratégia",
+ "purgeExpiredLogs": "Lejárt naplók törlése",
+ "justNow": "Épp most",
+ "providerTestFailed": "A szolgáltató tesztje sikertelen",
+ "openaiBaseUrlPlaceholder": "OpenAI alap-URL helyőrzője",
+ "image": "Kép",
+ "failedCreateChain": "Nem sikerült létrehozni a láncot",
+ "importDatabase": "Adatbázis importálása",
+ "allDataLocal": "Minden adat helyben marad",
+ "sectionTitle": "Szakasz címe",
+ "failedToggle": "Nem sikerült átkapcsolni",
+ "editCombo": "Kombináció szerkesztése",
+ "testResults": "Teszteredmények",
+ "searchQuery": "Keresési lekérdezés",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "Duplikálás",
+ "createCombo": "Kombináció létrehozása",
+ "searchTypeWeb": "Webes keresés",
+ "addChain": "Lánc hozzáadása",
+ "prefixLabel": "Előtag címkéje",
+ "listModelsDesc": "Modellek listázásának leírása",
+ "databaseSize": "Adatbázis mérete",
+ "chainCreated": "A lánc létrejött",
+ "providerTestTimeout": "A szolgáltató tesztje túllépte az időkorlátot",
+ "routingStrategy": "Útválasztási stratégia",
+ "translateAction": "Fordítási művelet",
+ "exportFailed": "Az exportálás sikertelen",
+ "connectedVerificationPending": "Csatlakoztatva, ellenőrzésre vár",
+ "a2aQuickStartTitle": "A2A gyors kezdés címe",
+ "couldNotTest": "Nem sikerült tesztelni",
+ "testAllCompatible": "Az összes kompatibilis tesztelése",
+ "anthropicCompatibleName": "Anthropic-kompatibilis név",
+ "disabling": "Letiltás folyamatban",
+ "failedEnable": "Sikertelen engedélyezés",
+ "categoryUtility": "Segédprogram kategória",
+ "customUrlOptional": "Egyéni URL (opcionális)",
+ "localProviders": "Helyi szolgáltatók",
+ "comboNamePlaceholder": "Kombináció nevének helyőrzője",
+ "memoryRss": "Memória RSS",
+ "disableProvider": "Szolgáltató letiltása",
+ "welcomeDesc": "Üdvözlő leírás",
+ "nameLabel": "Név címkéje",
+ "allOperational": "Minden működőképes",
+ "backupNow": "Biztonsági mentés most",
+ "providerMaxRetriesAria": "Szolgáltató maximális újrapróbálkozásainak ARIA-címkéje",
+ "textToSpeechDesc": "Szövegfelolvasás leírása",
+ "machineId": "Gépazonosító",
+ "globalProxy": "Globális proxy",
+ "hitsMisses": "Találatok és kihagyások",
+ "testDesc": "Teszt leírása",
+ "chatDesc": "Csevegés leírása",
+ "importSuccess": "Sikeres importálás",
+ "chat": "Csevegés",
+ "a2aQuickStartStep1": "A2A gyors kezdés 1. lépése",
+ "importFailed": "Sikertelen importálás",
+ "inputPlaceholder": "Beviteli mező helyőrzője",
+ "providerModelsTitle": "Szolgáltatói modellek címe",
+ "lastBackup": "Legutóbbi biztonsági mentés",
+ "yourEndpoint": "Az Ön végpontja",
+ "autoDisableThresholdDesc": "Automatikus letiltási küszöb leírása",
+ "rerankDesc": "Újrarangsorolás leírása",
+ "modelsPathPlaceholder": "Modellek elérési útjának helyőrzője",
+ "noCombosYet": "Még nincsenek kombinációk",
+ "connectedVerificationPendingWithError": "Csatlakoztatva, ellenőrzésre vár, hibával",
+ "comboDefaultsGuideHint1": "Kombinációs alapértékek útmutatójának 1. tippje",
+ "enableCloudTitle": "Felhő engedélyezése cím",
+ "configuredProvidersHint": "Konfigurált szolgáltatókra vonatkozó tipp",
+ "paused": "Szüneteltetve",
+ "llmProviders": "LLM-szolgáltatók",
+ "enableCombo": "Kombináció engedélyezése",
+ "removeProviderOverrideAria": "Szolgáltatói felülbírálás eltávolítása – ARIA",
+ "nodeVersion": "Node-verzió",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Az exportálás hibával meghiúsult",
+ "proxyConfigured": "Proxy konfigurálva",
+ "concurrencyPerModel": "Párhuzamosság modellenként",
+ "protocolTasksLabel": "Protokollfeladatok címkéje",
+ "oauthProviders": "OAuth-szolgáltatók",
+ "lockedCount": "Zároltak száma",
+ "deleteChainConfirm": "Lánc törlésének megerősítése",
+ "recentTranslations": "Legutóbbi fordítások",
+ "zedImportButton": "Zed importálási gomb",
+ "responsesDesc": "Válaszok leírása",
+ "testedCount": "Teszteltek száma",
+ "providersCommaSeparatedPlaceholder": "Szolgáltatók vesszővel elválasztott helyőrzője",
+ "signatureDefaults": "Alapértelmezett aláírások",
+ "errorCreating": "Hiba a létrehozás során",
+ "timeRangeYear": "Időtartomány: év",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "A felhő sikeresen letiltva",
+ "deleteConfirm": "Törlés megerősítése",
+ "check": "Ellenőrzés",
+ "safeSearch": "Biztonságos keresés",
+ "protocolLastActivity": "Protokoll legutóbbi aktivitása",
+ "openMcpDashboard": "MCP-irányítópult megnyitása",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
- "showFreeOnly": "Free only",
- "addFirstProvider": "Add your first provider",
+ "chatPathLabel": "Csevegési útvonal címkéje",
+ "retryDelay": "Újrapróbálkozási késleltetés",
+ "errorUpdating": "Hiba a frissítés során",
+ "ideCliIntegrations": "IDE- és CLI-integrációk",
+ "imageGeneration": "Képgenerálás",
+ "apiKeyRequired": "API-kulcs szükséges",
+ "resetAllTitle": "Összes visszaállítása – cím",
+ "connectionError": "Kapcsolódási hiba",
+ "modelName": "Modell neve",
+ "apiKeyForCheck": "API-kulcs az ellenőrzéshez",
+ "cloudRequestTimeout": "Felhőkérés időtúllépése",
+ "showConfiguredOnly": "Csak a konfiguráltak megjelenítése",
+ "showFreeOnly": "Csak ingyenes",
+ "addFirstProvider": "Adja hozzá első szolgáltatóját",
"addFirstProviderDesc": "Csatlakozzon egy AI-szolgáltatóhoz, hogy elindítsa a kérések OmniRoute-on keresztüli irányítását. Használhat ingyenes szolgáltatókat, API-kulcsokat vagy OAuth-fiókokat.",
"learnMore": "További információ",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Tartalmazott domainek",
+ "promptCache": "Promptgyorsítótár",
+ "cloudConnected": "Felhőhöz csatlakoztatva",
+ "deleteChain": "Lánc törlése",
+ "chatPathPlaceholder": "Csevegési útvonal helyőrzője",
+ "databasePath": "Adatbázis elérési útja",
+ "usingLocalServer": "Helyi szerver használata",
+ "globalComboConfig": "Globális kombinációs konfiguráció",
+ "backupFailed": "A biztonsági mentés sikertelen",
+ "tabProtocols": "Protokollok lap",
+ "continue": "Folytatás",
+ "categorySearch": "Kategóriakeresés",
+ "rateLimitStatus": "Sebességkorlát állapota",
+ "repairEnvSuccess": "A környezet javítása sikerült",
+ "nameRequired": "A név megadása kötelező",
+ "country": "Ország",
+ "trackMetricsDesc": "Metrikák követésének leírása",
+ "durationSecondsShort": "Időtartam (mp)",
+ "formatConverterDescription": "Formátumkonvertáló leírása",
+ "cloudBenefitAccess": "Felhőalapú hozzáférés előnye",
+ "maxRetries": "Újrapróbálkozások maximális száma",
+ "queueTimeout": "Várólista időtúllépése",
"queueDepth": "Várakozási sor mélysége",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Szolgáltató hozzáadása",
+ "realtime": "Valós idejű",
+ "totalTranslations": "Fordítások összesen",
+ "protocolActiveStreamsLabel": "Aktív protokollfolyamok",
+ "repairEnv": "Környezet javítása",
+ "modelsCount": "Modellek száma",
+ "viewBackups": "Biztonsági mentések megtekintése",
+ "responsesApi": "Responses API",
+ "copyComboName": "Kombináció nevének másolása",
+ "failures": "Sikertelen műveletek",
+ "failedUpdate": "A frissítés sikertelen",
+ "imageDesc": "Kép leírása",
+ "failedCreate": "A létrehozás sikertelen",
+ "remainingOfLimit": "Korlátból fennmaradó",
+ "protocolsTitle": "Protokollok",
+ "expirationBannerExpiringSoonDesc": "A lejárati idő hamarosan lejár – leírás",
+ "source": "Forrás",
+ "failed": "Sikertelen",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "Mcp gyors kezdés – 1. lépés",
+ "runTest": "Teszt futtatása",
+ "loadingFallbackChains": "Tartalék láncok betöltése",
+ "healthy": "Üzemképes",
+ "version": "Verzió",
+ "saveBlockWeighted": "Súlyozott blokk mentése",
+ "zedImportNone": "Zed-importálás: nincs",
+ "noBackupsYet": "Még nincsenek biztonsági mentések",
+ "noGlobalProxy": "Nincs globális proxy",
+ "noModels": "Nincsenek modellek",
+ "stickyLimit": "Rögzítési korlát",
+ "passedCount": "Sikeresek száma",
+ "zedImportFailed": "A Zed-importálás sikertelen",
+ "saving": "Mentés",
+ "testAll": "Összes tesztelése",
+ "globalProxyDesc": "A globális proxy leírása",
+ "latencyP99": "P99 késleltetés",
+ "connectingToCloud": "Csatlakozás a felhőhöz",
+ "responses": "Válaszok",
+ "errorDeleting": "Hiba a törlés során",
+ "openaiPrefixPlaceholder": "Openai-előtag helyőrzője",
+ "enterPassword": "Adja meg a jelszót",
+ "openA2aDashboard": "A2A-irányítópult megnyitása",
+ "enableProvider": "Szolgáltató engedélyezése",
+ "modeTest": "Mód tesztelése",
+ "failedDeleteChain": "A lánc törlése sikertelen",
+ "providerDesc": "Szolgáltató leírása",
+ "templateLoadHint": "Sablonbetöltési tipp",
+ "lastFailure": "Legutóbbi hiba",
+ "moveDown": "Mozgatás lefelé",
+ "providerLabel": "Szolgáltató címkéje",
+ "clearCacheFailed": "A gyorsítótár törlése sikertelen",
+ "imagesGenerations": "Képgenerálások",
+ "repairEnvWorking": "Környezeti javítás folyamatban",
+ "millisecondsShort": "ms",
+ "globalLabel": "Globális címke",
+ "failuresPlural": "Hibák",
+ "completionsLegacyDesc": "Korábbi kiegészítések leírása",
+ "searchProviders": "Szolgáltatók keresése",
+ "chatPathHint": "Csevegési útvonal tipp",
+ "defaultStrategyDesc": "Alapértelmezett stratégia leírása",
+ "latencyP95": "P95 késleltetés",
+ "textToSpeech": "Szöveg beszéddé alakítása",
+ "searchType": "Keresés típusa",
+ "messages": "Üzenetek",
+ "aggregatorsGateways": "Aggregátor-átjárók",
+ "comboStrategyAria": "Kombinált stratégia ARIA-címkéje",
+ "input": "Bemenet",
+ "testingConnection": "Kapcsolat tesztelése",
+ "excludeDomains": "Domainek kizárása",
+ "webCookieProviders": "Webes cookie-szolgáltatók",
+ "allTestsPassed": "Minden teszt sikeres",
+ "openaiCompatibleName": "OpenAI-kompatibilis név",
+ "warningCostOptimizedPartialPricing": "Figyelmeztetés a költségoptimalizált stratégia hiányos áradataira",
+ "comboDefaultsGuideTitle": "Kombinált alapértékek útmutatójának címe",
+ "hoursAgo": "órával ezelőtt",
+ "notAvailable": "Nem érhető el",
+ "skipAndContinue": "Kihagyás és folytatás",
+ "moderations": "Moderálások",
+ "proxyConfig": "Proxykonfiguráció",
+ "upstreamProxyProviders": "Felsőbb szintű proxyszolgáltatók",
+ "exportAll": "Összes exportálása",
+ "queuedCount": "Várakozók száma",
+ "resetAll": "Összes visszaállítása",
+ "noTranslations": "Nincsenek fordítások",
+ "avgLatency": "Átlagos késleltetés",
+ "throttleStatus": "Korlátozás állapota",
+ "backupRetentionDesc": "Biztonsági mentések megőrzésének leírása",
+ "noCBData": "Nincsenek áramkör-megszakító adatok",
+ "chainDeleted": "Lánc törölve",
+ "timeLeft": "Hátralévő idő",
+ "expirationBannerExpired": "Lejárati értesítősáv: lejárt",
+ "language": "Nyelv",
+ "invalidFileType": "Érvénytelen fájltípus",
+ "monitoredProviders": "Felügyelt szolgáltatók",
+ "errors": "Hibák",
+ "heap": "Halommemória",
+ "chatCompletions": "Csevegési kiegészítések",
+ "exampleTemplatesHint": "Példasablonok tippje",
+ "retryDelayLabel": "Újrapróbálkozási késleltetés címkéje",
+ "audioTranscription": "Hangátírás",
+ "fallbackChainsDesc": "Tartalék láncok leírása",
+ "exampleTemplates": "Példasablonok",
+ "connectionsCount": "Kapcsolatok száma",
+ "modelsPathLabel": "Modellek elérési útjának címkéje",
+ "activeProvidersHint": "Aktív szolgáltatókra vonatkozó tipp",
+ "activeLockouts": "Aktív zárolások",
+ "invalid": "Érvénytelen",
+ "skipPassword": "Jelszó kihagyása",
+ "moveUp": "Mozgatás felfelé",
+ "timeRange": "Időtartomány",
+ "stickyLimitDesc": "Rögzített korlát leírása",
+ "cloudBenefitEdge": "Felhőbeli előny: Edge",
+ "custom": "Egyéni",
+ "verifying": "Ellenőrzés",
+ "baseUrlLabel": "Alap-URL címkéje",
+ "setPassword": "Jelszó beállítása",
+ "safeSearchStrict": "Szigorú biztonságos keresés",
+ "noChangesSinceBackup": "Nincs változás a biztonsági mentés óta",
+ "modelsPathHint": "Modellek elérési útjára vonatkozó tipp",
+ "audioTranscriptions": "Hangátírások",
+ "testCombo": "Kombináció tesztelése",
+ "mcpQuickStartTitle": "Mcp gyors kezdés címe",
+ "comboUpdated": "Kombináció frissítve",
+ "weighted": "Súlyozott",
+ "providers": "Szolgáltatók",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Nincsenek tartalék láncok – leírás",
+ "yesImport": "Igen, importálás",
+ "lockoutsAutoRefreshHint": "Zárolások automatikus frissítésére vonatkozó tipp",
+ "tabApis": "API-k lap",
+ "sectionDescription": "Szakasz leírása",
+ "filter": "Szűrő",
+ "purgeLogsFailed": "A naplók törlése sikertelen",
+ "latency": "Késleltetés",
+ "testAllOAuth": "Az összes OAuth tesztelése",
+ "mcpQuickStartStep3": "Mcp gyors kezdés 3. lépése",
+ "repairEnvFailed": "A környezet javítása sikertelen",
+ "zedImportHint": "Zed importálási tipp",
+ "modelsAcrossEndpoints": "Modellek végpontokon keresztül",
+ "autoDisableBannedAccounts": "Kitiltott fiókok automatikus letiltása",
+ "securityDesc": "Biztonság leírása",
+ "listModels": "Modellek listázása",
+ "backupRestore": "Biztonsági mentés visszaállítása",
+ "target": "Cél",
+ "zedImportSuccess": "Sikeres Zed-importálás",
+ "lastHeaderUpdate": "Fejléc legutóbbi frissítése",
+ "categoryCore": "Kategória: alap",
+ "noFallbackChains": "Nincsenek tartalék láncok",
+ "noSearchProviders": "Nincsenek keresési szolgáltatók",
+ "autoBalance": "Automatikus terheléselosztás",
+ "noModelsYet": "Még nincsenek modellek",
+ "signatureFamily": "Aláíráscsalád",
+ "externalApiCalls": "Külső API-hívások",
+ "providerOverridesDesc": "Szolgáltatói felülbírálások leírása",
+ "signatureTool": "Aláírási eszköz",
+ "connectionFailed": "Sikertelen kapcsolódás",
+ "activeLimitersPlural": "Aktív korlátozók",
+ "doneDesc": "Befejezés leírása",
+ "down": "Leállt",
+ "noDataYet": "Még nincs adat",
+ "activeProviders": "Aktív szolgáltatók",
+ "nameInvalid": "Érvénytelen név",
+ "skip": "Kihagyás",
+ "createChain": "Lánc létrehozása",
+ "audioSpeech": "Beszédhang",
+ "cacheCleared": "Gyorsítótár törölve",
+ "searchTypeNews": "Kereséstípus: hírek",
+ "durationMillisecondsShort": "Időtartam (ms)",
+ "addOpenAICompatible": "Open Ai-kompatibilis hozzáadása",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "Várólistán",
+ "domainPlaceholder": "Tartomány helyőrzője",
+ "durationMinutesShort": "Időtartam (perc)",
+ "verifyingConnection": "Kapcsolat ellenőrzése",
+ "imageProviders": "Képszolgáltatók",
+ "protocolToolsLabel": "Protokolleszközök címkéje",
+ "queryPlaceholder": "Lekérdezés helyőrzője",
+ "videoGeneration": "Videógenerálás",
+ "timeRangeWeek": "Időtartomány: hét",
+ "limitExhausted": "A korlát kimerült",
+ "failedDisable": "Sikertelen letiltás",
+ "inMemoryNote": "Memóriabeli megjegyzés",
+ "compatibleHint": "Kompatibilitási tipp",
+ "errorShort": "Rövid hibaüzenet",
+ "advancedHint": "Speciális tipp",
+ "restoreFailed": "Sikertelen visszaállítás",
+ "searchProvidersHeading": "Szolgáltatók keresése",
+ "comboName": "Kombináció neve",
+ "autoDisableDescription": "Automatikus letiltás leírása",
+ "embeddingsDesc": "Beágyazások leírása",
+ "operational": "Működőképes",
+ "testAllApiKey": "Összes API-kulcs tesztelése",
+ "backupCreated": "Biztonsági mentés létrehozva",
+ "errorDuringImport": "Hiba történt az importálás során",
+ "comboDefaultsGuideHint2": "Alapértelmezett kombinációk útmutatója – 2. tipp",
+ "connecting": "Csatlakozás",
+ "fillModelAndProviders": "Adja meg a modellt és a szolgáltatókat",
+ "syncing": "Szinkronizálás",
+ "resetConfirm": "Visszaállítás megerősítése",
+ "trackMetrics": "Mérőszámok követése",
+ "successful": "Sikeres",
+ "recovering": "Helyreállítás",
+ "autoDisableThreshold": "Automatikus letiltás küszöbértéke",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
- "freeTierProviders": "Free Tier Providers",
- "freeTierLabel": "Free tier available",
+ "syncingData": "Adatok szinkronizálása",
+ "cloudBenefitPorts": "A felhő előnyei – portok",
+ "compatibleProviders": "Kompatibilis szolgáltatók",
+ "freeTierProviders": "Ingyenes csomagot kínáló szolgáltatók",
+ "freeTierLabel": "Ingyenes csomag érhető el",
"freeTierProvidersDesc": "Ingyenes szintekkel rendelkező szolgáltatók – egyesekhez API-kulcs regisztráció szükséges, másoknak pedig egyáltalán nincs szükségük hitelesítő adatokra.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
- "gamificationAdmin": "Gamification Admin",
+ "clearCache": "Gyorsítótár törlése",
+ "reqs": "Kérések",
+ "addAnthropicCompatible": "Anthropic-kompatibilis szolgáltató hozzáadása",
+ "apiKeyProviders": "API-kulcsos szolgáltatók",
+ "tabsAria": "Lapfülek ARIA-címkéje",
+ "resetting": "Visszaállítás",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Biztonsági mentés oka: visszaállítás előtt",
+ "disableCloud": "Felhő letiltása",
+ "newProviderNameAria": "Új szolgáltató nevének ARIA-címkéje",
+ "passwordsMismatch": "A jelszavak nem egyeznek",
+ "a2aQuickStartStep3": "A2A gyors kezdés – 3. lépés",
+ "liveMonitorDescriptionSuffix": "Élő monitor leírásának utótagja",
+ "failedAddProvider": "Nem sikerült hozzáadni a szolgáltatót",
+ "addAtLeastOneProvider": "Adjon hozzá legalább egy szolgáltatót",
+ "reasonSeparator": "Okok elválasztója",
+ "zedImporting": "Zed importálása",
+ "confirmPasswordPlaceholder": "Jelszó megerősítése",
+ "whatYouGet": "Amit kap",
+ "signatureSession": "Aláírási munkamenet",
+ "errorCountNoCode": "Hibák száma kód nélkül",
+ "testing": "Tesztelés",
+ "providersCommaSeparated": "Szolgáltatók vesszővel elválasztva",
+ "exportDatabase": "Adatbázis exportálása",
+ "hitRate": "Találati arány",
+ "completionsLegacy": "Kiegészítések (örökölt)",
+ "removeModel": "Modell eltávolítása",
+ "timeRangeDay": "Időtartomány: nap",
+ "cloudRequestFailed": "A felhőkérés sikertelen",
+ "updatedAt": "Frissítve",
+ "monitoredProvidersHint": "Felügyelt szolgáltatókra vonatkozó tipp",
+ "connectionSuccessful": "Sikeres kapcsolódás",
+ "latencyP50": "Késleltetés P50",
+ "logsDeleted": "Naplók törölve",
+ "chatTester": "Csevegéstesztelő",
+ "safeSearchOff": "Biztonságos keresés kikapcsolva",
+ "nameHint": "Névre vonatkozó tipp",
+ "debugToggle": "Hibakeresés kapcsolója",
+ "embedding": "Beágyazás",
+ "issuesLabel": "Problémák címkéje",
+ "optionAny": "Bármelyik",
+ "maxNestingDepth": "Beágyazási mélység maximuma",
+ "rerank": "Újrarangsorolás",
+ "checking": "Ellenőrzés",
+ "getStarted": "Első lépések",
+ "restoreSuccess": "Sikeres visszaállítás",
+ "issuesDetected": "Problémák észlelve",
+ "signatureCache": "Aláírás-gyorsítótár",
+ "modelLockouts": "Modellzárolások",
+ "usingCloudProxy": "Felhőproxy használatban",
+ "loadingHealth": "Állapot betöltése",
+ "providerOverrides": "Szolgáltatói felülbírálások",
+ "audioTranscriptionDesc": "Hangátírás leírása",
+ "learnedFromHeaders": "Fejlécekből tanult",
+ "totalRequests": "Összes kérés",
+ "cloudUnstableNote": "Megjegyzés a felhő instabilitásáról",
+ "gamificationAdmin": "Gamifikáció adminisztrációja",
"monitorAnomaliesAndHealth": "Figyelje az anomáliákat és a rendszer állapotát",
- "flaggedAnomalies": "Flagged Anomalies",
+ "flaggedAnomalies": "Megjelölt anomáliák",
"noAnomaliesDetected": "Nem észleltek rendellenességeket",
"apiKey": "API kulcs",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 óra)",
"zScore": "Z-pontszám",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Gyanús",
"tokensCommunityServers": "Közösségi szerverek",
- "tokensServerNamePlaceholder": "Server name",
+ "tokensServerNamePlaceholder": "Szerver neve",
"tokensApiKeyPlaceholder": "API kulcs",
- "tokensTokenBalance": "Token Balance",
- "tokensSendTokens": "Send Tokens",
- "tokensRecipientApiKeyId": "Recipient API Key ID",
+ "tokensTokenBalance": "Tokenegyenleg",
+ "tokensSendTokens": "Tokenek küldése",
+ "tokensRecipientApiKeyId": "Címzett API-kulcsának azonosítója",
"tokensRecipientApiKeyIdPlaceholder": "Adja meg a címzett API kulcsazonosítóját",
- "tokensReasonOptional": "Reason (optional)",
+ "tokensReasonOptional": "Indoklás (nem kötelező)",
"tokensReasonPlaceholder": "pl. bónusz, jutalom",
"tokensTransactionHistory": "Tranzakciós előzmények",
"tokensNoTransactionsYet": "Még nincsenek tranzakciók",
"tokensInviteCodes": "Meghívó kódok",
"tokensMaxUses": "Maximális felhasználás",
- "tokensRedeemCode": "Redeem Code",
- "tokensRedeemCodePlaceholder": "Enter invite code",
+ "tokensRedeemCode": "Kód beváltása",
+ "tokensRedeemCodePlaceholder": "Add meg a meghívókódot",
"tokensYourActiveInvites": "Az Ön aktív meghívásai",
"tokensTransferSuccess": "Sikeres átvitel ({idempotencyKey})",
"tokensTransferFailed": "Sikertelen átvitel",
@@ -757,27 +757,27 @@
},
"tokensLastSync": "Utolsó szinkronizálás: {date}",
"tokensDisconnect": "Lecsatlakozás",
- "tierCoverageTitle": "Tier coverage",
+ "tierCoverageTitle": "Szintlefedettség",
"tierCoverageSubtitle": "A tartalék rétegenként konfigurált szolgáltatók",
"batchDetailCopyId": "Másolja az azonosítót",
"batchDetailClose": "Bezárás",
- "batchDetailEndpoint": "Endpoint",
+ "batchDetailEndpoint": "Végpont",
"batchDetailModel": "Modell",
"batchDetailWindow": "Ablak",
"batchDetailCreated": "Létrehozva",
"providerTopologyEmpty": "Még nem csatlakozott szolgáltató",
- "badgeToastUnlocked": "Badge Unlocked!",
+ "badgeToastUnlocked": "Jelvény feloldva!",
"batchListSearchPlaceholder": "Keresés azonosító, végpont, modell szerint…",
"batchListDeleteAllCompletedTitle": "Törölje az összes befejezett köteget",
- "batchListBatchesTable": "Batches",
+ "batchListBatchesTable": "Kötegek",
"changelogViewerLoading": "Változásnapló betöltése a GitHubról...",
"profile": "Profil",
- "profileLoading": "Loading profile...",
- "profileHowToEarn": "How to earn",
+ "profileLoading": "Profil betöltése...",
+ "profileHowToEarn": "Hogyan szerezhető",
"bootstrapBannerDismiss": "Elvetés",
"batchListDeleteBatchTitle": "Törölje a köteget és a hozzá tartozó fájlokat",
- "leaderboardYourRank": "Your Rank",
- "leaderboardLoading": "Loading leaderboard...",
+ "leaderboardYourRank": "Helyezésed",
+ "leaderboardLoading": "Ranglista betöltése...",
"batchFileDetailCopyId": "Másolja az azonosítót",
"batchFileDetailClose": "Bezárás",
"batchFileDetailFailedToLoad": "Nem sikerült betölteni a fájl tartalmát",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Továbbiak betöltése…",
"recommended": "Ajánlott",
"understand": "Értem",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "Kötegelt feldolgozás",
+ "batchConceptSubtitle": "Dolgozz fel több ezer kérést aszinkron módon, körülbelül 50%-os költséggel (24 órás időablakban). Ideális kiértékelésekhez, osztályozáshoz és beágyazásokhoz.",
+ "batchConceptHowItWorks": "Hogyan működik",
+ "batchConceptBenefit50pct": "50% kedvezmény a bemeneti és kimeneti tokenekre",
+ "batchConceptAsync24h": "Aszinkron feldolgozás 24 órás teljesítési időablakkal",
+ "batchConceptUseCases": "Ideális tömeges osztályozáshoz, kiértékelésekhez és beágyazásokhoz",
+ "batchHeaderSubtitle": "Több kérés futtatása egyetlen feladatként",
+ "batchStep1": "1 · JSONL feltöltése",
+ "batchStep1Desc": "Kérések hozzáadása",
+ "batchStep2": "2 · Köteg létrehozása",
+ "batchStep2Desc": "Feladat futtatása",
+ "batchStep3": "3 · Eredmények lekérése",
+ "batchStep3Desc": "Kimenet letöltése",
+ "filesConceptTitle": "Kötegfájlok",
+ "filesConceptSubtitle": "A kötegek által használt JSONL-fájlok: bemeneti kérések, eredmények és hibák.",
+ "filesConceptInput": "Bemenet — a JSONL-fájlod, soronként egy kéréssel",
+ "filesConceptOutput": "Kimenet — a befejezett kérések eredményei",
+ "filesConceptError": "Hibák — sikertelen kérések",
+ "filesConceptRetention": "Megőrzés: alapértelmezés szerint 30 nap (Anthropic esetén 29 nap)",
+ "wizardTitle": "Új köteg",
+ "wizardClose": "Bezárás",
+ "wizardNext": "Tovább",
+ "wizardBack": "Vissza",
+ "wizardCancel": "Mégse",
+ "wizardCreate": "Köteg létrehozása",
+ "wizardCreating": "Létrehozás…",
+ "wizardStep1Destination": "Cél",
+ "wizardStep2Input": "Bemenet",
+ "wizardStep3Validate": "Ellenőrzés",
+ "wizardStep4Cost": "Költség és létrehozás",
+ "wizardProviderLabel": "Szolgáltató",
+ "wizardEndpointLabel": "Végpont",
+ "wizardModelLabel": "Modell",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (átalakítjuk)",
+ "wizardDropOrPick": "Húzzon ide egy fájlt, vagy kattintson a kiválasztáshoz",
+ "wizardCsvMappingTitle": "CSV-oszlopok hozzárendelése → kérésmezők",
+ "wizardCsvMappingAddField": "Mező hozzáadása",
"wizardCsvNoColumns": "Nem találhatók oszlopok a CSV fejlécében.",
"wizardCsvIgnoreColumn": "— figyelmen kívül hagyás —",
"wizardCsvCustomIdMapped": "custom_id leképezve",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} sor feldolgozva",
"wizardCsvRowsSkipped": "{count} sor kihagyva",
"wizardCsvRowError": "Sor {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Minden sor érvényes",
"wizardValidating": "Ellenőrzés…",
"wizardValidationParseFailed": "Az ellenőrzés sikertelen — a tartalom nem elemezhető.",
"wizardValidationSummary": "{lines} sor · {ids} egyedi custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Duplikált custom_ids észlelve:",
"wizardValidationFirstErrors": "Hibák (első {count}):",
"wizardValidationLine": "Sor {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Ellenőrzési hibák",
+ "wizardValidationPreview": "Előnézet (az első 5 kérés)",
+ "wizardValidationSamplingNote": "A fájl nagy méretű — az ellenőrzés mintavétellel történt (az első 1000 + az utolsó 100 sor). A teljes ellenőrzés a szerveroldalon fut.",
+ "wizardCostSync": "Szinkron költség",
+ "wizardCostBatch": "Kötegelt költség (-50%)",
+ "wizardCostSavings": "Megtakarítás",
+ "wizardCostEstimatedNotice": "Becsült költség — a tényleges számlázás eltérhet.",
+ "wizardErrorUpload": "A fájl feltöltése sikertelen. Próbálja újra.",
+ "wizardErrorCreate": "A köteg létrehozása sikertelen. Próbálja újra.",
+ "wizardEmptyProviders": "Köteg létrehozásához csatlakoztasson egy kötegelt feldolgozást támogató szolgáltatót (OpenAI, Anthropic vagy Gemini).",
+ "uploadModalTitle": "Kötegfájl feltöltése",
+ "uploadModalDropOrPick": "Húzzon ide egy .jsonl fájlt, vagy kattintson a kiválasztáshoz",
+ "uploadModalUpload": "Feltöltés",
+ "uploadModalCancel": "Mégse",
+ "uploadModalError": "A feltöltés sikertelen. Próbálja újra.",
+ "uploadModalSuccess": "Feltöltve",
+ "uploadModalSizeLimit": "Legfeljebb 512 MB",
+ "batchListNewButton": "Új köteg",
+ "batchListAutoRefresh": "Automatikus frissítés 30 mp-enként",
+ "batchListCostColumn": "Költség",
+ "batchActionCancel": "Mégse",
+ "batchActionDownloadOutput": "Kimenet letöltése",
+ "batchActionDownloadErrors": "Hibák letöltése",
+ "batchActionRetry": "Sikertelenek újrapróbálása",
+ "batchActionRetryConfirm": "Újrapróbálja a(z) {n} sikertelen kérést? A végső költség a ténylegesen felhasznált tokenek számától függ.",
+ "expirationBadgeCritical": "Kritikus",
+ "expirationBadgeWarning": "Hamarosan",
+ "expirationBadgeNormal": "Függőben",
+ "expirationBadgeExpired": "Lejárt",
+ "filesListUploadButton": "Feltöltés",
+ "filesListUsedByColumn": "Használja",
+ "filesListUsedByNone": "Nincs",
+ "filesListUsedByRoleInput": "bemenet",
+ "filesListUsedByRoleOutput": "kimenet",
+ "filesListUsedByRoleError": "hiba",
+ "filesListSizeColumn": "Méret",
+ "batchListProgressPartial": "(részleges)",
+ "batchListProviderColumn": "Szolgáltató",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
- "batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListProviderOther": "Egyéb",
+ "batchListTitle": "Kötegek",
+ "batchListCount": "{count} köteg",
+ "batchListRemovingCompleted": "Eltávolítás…",
+ "batchListRemoveCompleted": "Befejezettek eltávolítása",
+ "batchListTableStatus": "Állapot",
+ "batchListTableId": "Azonosító",
+ "batchListTableEndpoint": "Végpont",
+ "batchListTableModel": "Modell",
+ "batchListTableProgress": "Folyamat",
+ "batchListTableCreated": "Létrehozva",
+ "batchListTableExpires": "Lejárat",
+ "batchListLoading": "Betöltés…",
+ "batchListEmpty": "Nem találhatók kötegek",
+ "batchListValidating": "Ellenőrzés…",
+ "batchStatusAll": "Minden állapot",
+ "batchStatusInProgress": "Folyamatban",
+ "batchStatusValidating": "Ellenőrzés alatt",
+ "batchStatusFinalizing": "Véglegesítés",
+ "batchStatusCompleted": "Befejezve",
+ "batchStatusFailed": "Sikertelen",
+ "batchStatusCancelled": "Megszakítva",
+ "batchStatusCancelling": "Megszakítás",
+ "batchStatusExpired": "Lejárt",
+ "batchStatusCompletedWithFailures": "befejezve, hibákkal",
+ "batchStatusInProgressWithFailures": "folyamatban (hibákkal)",
+ "batchStatusFinalizingWithFailures": "véglegesítés (hibákkal)",
+ "batchStatusCancelledWithFailures": "megszakítva, hibákkal",
+ "batchStatusExpiredWithFailures": "lejárt (részleges)",
+ "wizardCostEstimating": "Költség becslése…",
+ "wizardCostRequests": "Kérések",
+ "wizardCostInputTok": "bemeneti token",
+ "wizardCostOutputTok": "kimeneti token",
+ "wizardCostWindow": "Ablak",
+ "wizardDestinationSelectProvider": "Válasszon szolgáltatót…",
+ "wizardDestinationSelectModel": "Válasszon modellt…",
+ "wizardDestinationConnectProvider": "Szolgáltató csatlakoztatása",
+ "batchListBatchCreated": "A(z) {id} köteg létrejött — lista frissítése…",
+ "batchListBatchCreatedDismiss": "Bezárás",
+ "batchListRefreshing": "Frissítés…",
+ "batchListRefresh": "Frissítés",
+ "uploadFileModalRemove": "Eltávolítás",
+ "uploadFileModalUploading": "Feltöltés…",
+ "wizardInputReading": "Fájl beolvasása…",
+ "wizardInputReady": "Kész",
+ "wizardInputLargeFileLabel": "Nagy fájl — mintavételes ellenőrzés",
+ "wizardInputCsvJsonlReady": "A JSONL létrejött — ellenőrzésre kész.",
+ "wizardInputLargeFileWarning": "Nagy fájl észlelve — az ellenőrzés mintavétellel történik (az első 5 MB + az utolsó 100 KB). A teljes ellenőrzés a szerveren történik.",
+ "wizardCostWindow24h": "24 órás befejezési időablak",
+ "wizardValidationFieldsOk": "a kötelező mezők érvényesek",
+ "filesListDelete": "Törlés",
+ "filesListDownload": "Letöltés",
+ "batchDetailActionCancel": "Köteg megszakítása",
+ "batchDetailActionRetry": "Sikertelen kérések újrapróbálása",
+ "batchDetailCancelling": "Megszakítás…",
+ "batchDetailRetrying": "Újrapróbálás előkészítése…",
+ "batchDetailCancelConfirm": "Megszakítja ezt a köteget? A folyamatban lévő kérések leállnak.",
+ "batchActionCancelError": "Nem sikerült megszakítani a köteget. Próbálja újra.",
+ "batchActionRetryError": "Nem sikerült újrapróbálni a sikertelen kéréseket. Próbálja újra.",
+ "batchConceptRetentionNote": "Az eredmény- és hibafájlokat 30 napig őrizzük meg (Anthropic: 29 napig)",
"batchFilesSizeColumn": "Méret",
"toggleNoAuthProvider": "Kapcsolja ki a no-auth szolgáltatót",
"loadingModels": "Modellek betöltése…",
@@ -988,17 +988,21 @@
"disabled": "Letiltva",
"featureFlagOmnirouteEmergencyFallbackDescription": "A keretet kimerítő kérések átirányítása a vészhelyzeti ingyenes tartalék szolgáltatóhoz/modellhez.",
"featureFlagArenaEloSyncEnabledDescription": "Rendszeres Arena AI ranglista ELO szinkronizáció engedélyezése a modellintelligencia rangsorokhoz.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Beszélgetés-összefoglalók létrehozása és beillesztése, amikor a kombinált útválasztás modellt vált. Tiltsa le, ha a modellváltásokat egymástól függetlenül szeretné kezelni, és meg szeretné akadályozni a háttérben futó átadási kéréseket minden meglévő és jövőbeli kombinációnál.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Hirdesse a claude/<provider>/<model> tükör azonosítókat a /v1/models-on, hogy a Claude Code átjáró modell felfedezése nem Claude modelleket is listázzon. Figyelmeztetés: globális engedélyezés esetén megduplázza a katalógus bejegyzéseket minden kliens számára.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "A no-think/<provider>/<model> átjáróaliasok főkapcsolója. Bekapcsolva (alapértelmezett): a /v1/models minden jogosult, gondolkodásra képes Claude modellhez meghirdet egy gondolkodás nélküli változatot, és a kérésben küldött no-think/ azonosítót visszafejti a valódi modellre, letiltott érveléssel. Kikapcsolva: nem hirdet meg változatokat, és a no-think/ azonosítót ugyanúgy kezeli, mint bármely más ismeretlen modellazonosítót. Modellenként a ModelSpec.noThinkingAlias engedélyezési/letiltási beállítása bekapcsolt állapotban is érvényes.",
"featureFlagChatVirtualLanesEnabledDescription": "Tegye lehetővé a bérlőnkénti adaptív virtuális beléptetősávokat a szolgáltatók felé történő továbbításhoz (#9654): az egyik bérlő kiugró terhelése már nem okoz 503-as hibát egy másiknál. Az OMNIROUTE_CHAT_VIRTUAL_LANES környezeti változó felülírja ezt a vezérlőpult-beállítást; a változtatások a szerver újraindításakor lépnek életbe.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Irányítópult szolgáltatói oldalai: az Ingyenes jelvény csak azoknál a jelzéseknél jelenjen meg, amelyeket a szolgáltató figyelembe vesz — figyelmen kívül hagyja a megjelenítési néven alapuló heurisztikát, a nem logikai típusú ingyenességi mezőket és a dokumentált ingyenes szinttel nem rendelkező regisztrált szolgáltatók :free utótagjait. Kikapcsolt állapotban a korábbi jelvényszabály marad érvényben.",
+ "featureFlagProxySkipRecentlyFailedDescription": "A proxykészletek és az opencode fiókonkénti rotációja egy folyamatonként meghatározott időszakig nem választja újra az éppen meghibásodott proxyt (elutasított TCP-próba vagy rajta keresztül kapott 429-es válasz); ez az időszak minden ismétlődéskor megduplázódik egy felső korlátig. A proxy állapota nem kerül rögzítésre; ha minden jelölt félre van téve, a választás változatlan marad. Alapértelmezés szerint kikapcsolva: a kiválasztási sorrend pontosan megegyezik az egyszerű rotációéval.",
+ "featureFlagProxyPoolEgressObservationDescription": "A vezérlőpulton jelenjen meg egy proxykészlet alatt, hogy az elmúlt 24 órában hány megfigyelt kimenő IP-cím szolgálta ki a tagjait, hány kapcsolat használta ezeket, és legfeljebb hány kapcsolat volt megfigyelhető egyetlen IP-cím mögött. Csak olvasható, a proxynaplóból számított adat, amelyet a rendszer soha nem használ útválasztásra. Alapértelmezés szerint kikapcsolva: a készletszerkesztő változatlan, a megfigyelési útvonal pedig null értékkel válaszol.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "A proxyk állapotellenőrzése során a cél által elutasított próba (401/403/429: a proxy továbbította a kérést, a cél pedig elutasította ezt a kimenő IP-címet) a kiszolgált próbához hasonlóan nullázza a proxy egymást követő hibáinak számlálóját. Alapértelmezés szerint kikapcsolva: az elutasítás semleges marad, és nem változtatja meg a sorozatot. Az 5xx válasz mindkét esetben eldönthetetlen marad, és egy elutasítás soha nem távolít el, nem tilt le és nem aktivál újra proxyt.",
"sidebar": {
"home": "Otthon",
"dashboard": "Irányítópult",
"providers": "Szolgáltatók",
"combos": "Kombók",
"usage": "Használat",
- "analytics": "Analytics",
+ "analytics": "Analitika",
"costs": "Költségek",
"health": "Egészség",
"proxy": "Proxy",
@@ -1008,30 +1012,30 @@
"settings": "Beállítások elemre",
"translator": "Fordító",
"playground": "Játszótér",
- "searchTools": "Search Tools",
+ "searchTools": "Keresési eszközök",
"agents": "Ügynökök",
"cloudAgents": "Felhőügynökök",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Memória",
+ "skills": "Készségek",
"omniSkills": "OmniSkills",
"agentSkills": "AgentSkills",
"chaosConfig": "Káosz mód",
"docs": "Dokumentumok",
"issues": "problémák",
"endpoints": "Végpontok",
- "endpointsSubtitle": "Your AI connection URLs",
+ "endpointsSubtitle": "Az Ön AI-kapcsolati URL-jei",
"apiManager": "API-kezelő",
"apiManagerSubtitle": "API-kulcsok és hozzáférés kezelése",
"embeddedServices": "Beágyazott Szolgáltatások",
"embeddedServicesSubtitle": "Helyi proxyszolgáltatások kezelése",
"logs": "Naplók",
- "webhooks": "Webhooks",
- "webhooksSubtitle": "Get notified of events",
+ "webhooks": "Webhookok",
+ "webhooksSubtitle": "Értesítések eseményekről",
"logExport": "Naplóexportálás",
"logExportSubtitle": "Hívásnaplók küldése kifelé",
"combosSubtitle": "Csoportos szolgáltatók a feladatátvételhez",
"batchSubtitle": "Több kérés feldolgozása",
- "contextCavemanSubtitle": "Prompt compression",
+ "contextCavemanSubtitle": "Prompttömörítés",
"contextRtkSubtitle": "Kimeneti szűrés",
"auditLog": "Ellenőrzési napló",
"shutdown": "Leállítás",
@@ -1065,50 +1069,50 @@
"cliToolsShort": "Eszközök",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "Kötegelt feladatok",
+ "themeSystem": "Témarendszer",
+ "whitelabelingDesc": "A saját márkázás leírása",
+ "switchThemes": "Témaváltás",
+ "themeAccentDesc": "A téma kiemelőszínének leírása",
+ "uploadFavicon": "Favicon feltöltése",
+ "themeDark": "Sötét téma",
+ "customLogoDesc": "Az egyéni logó leírása",
+ "sidebarVisibilityToggle": "Az oldalsáv láthatóságának kapcsolója",
+ "themeAccent": "A téma kiemelőszíne",
+ "resetFavicon": "Favicon visszaállítása",
+ "whitelabeling": "Saját márkázás",
+ "darkMode": "Sötét mód",
+ "uploadLogo": "Logó feltöltése",
+ "themeLight": "Világos téma",
+ "appName": "Alkalmazás neve",
+ "appNameDesc": "Az alkalmazás nevének leírása",
+ "resetLogo": "Logó visszaállítása",
+ "customFavicon": "Egyéni favicon",
+ "hideHealthLogs": "Állapotnaplók elrejtése",
+ "customLogo": "Egyéni logó",
+ "appearance": "Megjelenés",
+ "themeSelectionAria": "Témaválasztás ARIA-címkéje",
+ "themeCreate": "Téma létrehozása",
+ "customFaviconDesc": "Egyéni favicon leírása",
+ "logoPreview": "Logó előnézete",
+ "themeCustom": "Egyéni téma",
+ "hideHealthLogsDesc": "Állapotnaplók elrejtésének leírása",
+ "faviconPreview": "Favicon előnézete",
+ "changelog": "Változásnapló",
+ "contextSection": "Kontextus és gyorsítótár",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Motor-kombinációk",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Tömörítési beállítások",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Kombinációs stúdió",
"combosLiveSubtitle": "Élő útválasztási kaszkád",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Kizárások",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Élő motor-kaszkád",
"compressionExclusionsSubtitle": "Per-model/endpoint megkerülés",
"chaosConfigSubtitle": "Többmodelles párhuzamos végrehajtás",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Útválasztás",
+ "protocolsSection": "Protokollok",
+ "agentsAiSection": "Ügynökök és MI",
+ "cacheContextSection": "Gyorsítótár és kontextus",
+ "analyticsSection": "Analitika",
+ "costsSection": "Költségek",
+ "monitoringSection": "Monitorozás",
+ "auditSecuritySection": "Naplózás és biztonság",
+ "devtoolsSection": "Fejlesztői eszközök",
+ "configurationSection": "Konfiguráció",
+ "aiFeaturesSection": "MI-funkciók",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Bővítmények",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "API-végpontok",
+ "batchFiles": "Fájlok",
+ "analyticsEvals": "Kiértékelések",
+ "analyticsSearch": "Keresés",
+ "analyticsUtilization": "Kihasználtság",
+ "analyticsComboHealth": "Kombinációk állapota",
+ "analyticsCompression": "Tömörítés",
+ "costsBudget": "Költségkeret",
"costsFreeTiers": "Ingyenes szint kerete",
"costsFreeTiersSubtitle": "Havi ingyenes tokenkeretek",
"freeProviderRankings": "Ingyenes szolgáltatók rangsora",
"freeProviderRankingsSubtitle": "A legjobb ingyenes szolgáltatók a modell ELO pontszámai alapján rangsorolva",
"radar": "Radar Katalógus",
"radarSubtitle": "Közösséggel gazdagított ingyenes modell katalógus",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
- "auditA2a": "A2A Audit",
+ "costsQuotaShare": "Kvótamegosztás",
+ "costsPricing": "Árazás",
+ "logsProxy": "Proxynaplók",
+ "logsConsole": "Konzol",
+ "logsActivity": "Aktivitás",
+ "auditMcp": "MCP-audit",
+ "auditA2a": "A2A-audit",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Megjelenés",
+ "settingsAi": "AI-beállítások",
+ "settingsSecurity": "Biztonság",
"settingsAccessTokens": "Hozzáférési tokenek",
"settingsFeatureFlags": "Jellemző zászlók",
"settingsCache": "Gyorsítótár",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "Jogosultságkezelés",
+ "settingsRouting": "Útválasztás",
+ "settingsResilience": "Hibatűrés",
"modelLockout": "Modell kizárás",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Speciális",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Szolgáltatói kvóta",
+ "providerQuota": "Szolgáltatói kvóta",
+ "runtime": "Futási környezet",
+ "consoleLogs": "Konzolnaplók",
+ "logsTimeline": "Idővonal",
"logsTimelineSubtitle": "Vizuális kérelem idővonal",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Beszélgetések",
+ "conversationsSubtitle": "Többfordulós, ügynökalapú beszélgetések",
+ "globalRouting": "Globális útválasztás",
+ "mitmProxy": "MITM-proxy",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Ügynökalapú funkciók",
+ "otherFeaturesSection": "Egyéb funkciók",
+ "compressionContextGroup": "Kontextustömörítés",
+ "gamificationGroup": "Játékosítás",
+ "toolsGroup": "Eszközök",
+ "integrationsGroup": "Integrációk",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "costsParametersGroup": "Költségparaméterek",
+ "auditGroup": "Auditálás",
+ "batchGroup": "Kötegelt feldolgozás",
+ "homeSubtitle": "Irányítópult áttekintése",
+ "providersSubtitle": "AI-szolgáltatók kezelése",
+ "quotaTrackerSubtitle": "Használati korlátok nyomon követése",
+ "providerQuotaSubtitle": "Szolgáltatói használati korlátok nyomon követése",
+ "runtimeSubtitle": "Valós idejű hibatűrés és munkamenetek",
+ "contextCombosSubtitle": "Tömörítési motorok kombinálása",
+ "cliToolsSubtitle": "CLI-futtatókörnyezetek konfigurálása",
+ "agentsSubtitle": "Helyi ügynökök kezelése",
+ "cloudAgentsSubtitle": "Felhőalapú ügynökök kezelése",
+ "apiEndpointsSubtitle": "Egyéni végpontok közzététele",
+ "proxySubtitle": "HTTP-proxy beállításai",
+ "mitmProxySubtitle": "MITM-elfogás",
+ "oneProxySubtitle": "Nyilvános proxyátjáró",
+ "leaderboard": "Ranglista",
+ "profile": "Profil",
+ "tokens": "Tokenek",
+ "gamificationAdmin": "Játékosítás adminisztrációja",
+ "leaderboardSubtitle": "Helyezések és eredmények",
+ "profileSubtitle": "Fiók és beállítások",
+ "tokensSubtitle": "Tokenhasználat és költségkeretek",
+ "gamificationAdminSubtitle": "Anomáliafigyelés és csalás elleni védelem",
+ "usageSubtitle": "Forgalmi és használati statisztikák",
+ "analyticsComboHealthSubtitle": "Kombinált célpontok megbízhatósága",
+ "analyticsUtilizationSubtitle": "Szolgáltatók kihasználtsága",
+ "costsSubtitle": "Kiadások részletezése",
+ "cacheSubtitle": "Gyorsítótár-találati arányok",
+ "analyticsCompressionSubtitle": "Tokenmegtakarítási statisztikák",
+ "analyticsSearchSubtitle": "Keresőeszköz-elemzések",
+ "analyticsEvalsSubtitle": "Kiértékelési tesztcsomag eredményei",
"providerStats": "Szolgáltatói statisztikák",
"providerStatsSubtitle": "Késleltetési és teljesítménymutatók",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Alkalmazásnaplók",
+ "logsProxySubtitle": "Proxyforgalmi naplók",
+ "consoleLogsSubtitle": "Konzolkimenet",
+ "logsActivitySubtitle": "Felhasználói tevékenységnapló",
+ "healthSubtitle": "Rendszerállapot-ellenőrzés",
+ "costsPricingSubtitle": "Modellenkénti árazási szabályok",
+ "costsBudgetSubtitle": "Költségkeret-korlátok",
+ "costsQuotaShareSubtitle": "Szolgáltatói kvóták megosztása a kulcsok között",
+ "auditLogSubtitle": "Engedélyezési audit",
+ "auditMcpSubtitle": "MCP-szerveraudit",
+ "auditA2aSubtitle": "A2A-protokollaudit",
+ "translatorSubtitle": "Formátumátalakítás",
+ "playgroundSubtitle": "Promptok élő tesztelése",
+ "searchToolsSubtitle": "Keresőeszköz-nyilvántartás",
+ "memorySubtitle": "Tartós ügynökmemória",
+ "omniSkillsSubtitle": "Sandbox-készségnyilvántartás",
+ "agentSkillsSubtitle": "A2A-készségregiszter",
+ "mcpSubtitle": "MCP-kiszolgáló vezérlői",
+ "a2aSubtitle": "A2A-protokollkiszolgáló",
"pluginsSubtitle": "Bővítmény-piactér és telepítések",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Gyorsítótárazott médiafájlok",
+ "batchFilesSubtitle": "Kötegelt bemeneti/kimeneti fájlok",
+ "settingsSubtitle": "Összes beállítás",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Téma és elrendezés",
+ "settingsAiSubtitle": "Az AI alapértelmezett viselkedése",
+ "globalRoutingSubtitle": "Globális útválasztási szabályok",
+ "settingsResilienceSubtitle": "Újrapróbálkozások és megszakítók",
+ "settingsAdvancedSubtitle": "Haladó felhasználói beállítások",
+ "settingsSecuritySubtitle": "Hitelesítés és titkosítás",
"settingsAccessTokensSubtitle": "Hatókörrel rendelkező CLI tokenek a távoli módhoz",
"settingsFeatureFlagsSubtitle": "Kapcsolja be a rendszer képességeit",
"settingsCacheSubtitle": "Modell katalógus és válasz gyorsítótárazás",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Oldalsáv",
+ "settingsSidebarSubtitle": "Az oldalsáv elrendezésének testreszabása",
"settingsAuthzSubtitle": "Útvonal-nyilvántartás és megkerülési szabályzat",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Dokumentáció",
+ "issuesSubtitle": "Hiba jelentése",
+ "changelogSubtitle": "Kiadási megjegyzések",
"costsQuotaPlans": "Díjcsomagok és kvóták",
"costsQuotaPlansSubtitle": "Díjcsomagok konfigurálása szolgáltatónként",
"activity": "Tevékenység",
@@ -1271,11 +1275,11 @@
"systemGroup": "Rendszer",
"costsOverview": "Áttekintés",
"costsOverviewSubtitle": "Konszolidált költségelemzés",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Agenthíd",
"agentBridgeSubtitle": "IDE-ügynök forgalmának elfogása",
"trafficInspector": "Forgalomvizsgáló",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Az alkalmazásaiból érkező kérés- és válaszforgalom vizsgálata",
+ "trafficInspectorPurpose": "Pontosan megtekintheti, hogy alkalmazása mit küld az AI-szolgáltatóknak, és mit kap tőlük. Bármely OpenAI-kompatibilis klienssel működik.",
"cliCode": "CLI kód",
"cliCodeSubtitle": "Az OmniRoute-ra mutató kódeszközök",
"cliAgents": "CLI ügynökök",
@@ -1314,9 +1318,9 @@
"noResults": "Nincs találat"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Webhookok",
"description": "Konfigurálja a HTTP-visszahívásokat a rendszereseményekhez.",
- "configuredWebhooks": "Configured Webhooks",
+ "configuredWebhooks": "Beállított webhookok",
"configuredWebhooksDesc": "Kezelheti a kézbesítési végpontokat, a feliratkozott eseményeket, az állapotot és a tesztküldéseket.",
"addWebhook": "Webhook hozzáadása",
"editWebhook": "Webhook szerkesztése",
@@ -1341,7 +1345,7 @@
"refresh": "Frissítés",
"loading": "Webhookok betöltése...",
"never": "Soha",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {nincs hiba} one {# hiba} other {# hiba}}",
"testWebhook": "Teszt küldése",
"testSuccess": "A teszt webhook sikeresen elküldve.",
"testFailed": "A webhook tesztelése nem sikerült.",
@@ -1425,19 +1429,19 @@
"secretKeyHint": "A payload fejlécének aláírására szolgál a hitelesítéshez."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "Discord-webhook URL-címe",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "A Discord csatorna integrációs beállításaiból kimásolt webhook URL.",
"tutorial": "Hogyan hozzon létre Discord webhookot:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "Slack-webhook URL-címe",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "A Slack Incoming Webhooks integrációból kimásolt webhook URL.",
"tutorial": "Hogyan hozzon létre Slack webhookot:"
},
"telegram": {
- "botToken": "Telegram Bot Token",
+ "botToken": "Telegram-bot tokenje",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "A bot létrehozásakor a @BotFather-től kapott HTTP API token.",
"chatId": "Telegram Chat ID / csatorna",
@@ -1447,17 +1451,17 @@
}
},
"compliance": {
- "auditTitle": "Audit",
+ "auditTitle": "Auditálás",
"auditDescription": "Tekintse át a megfelelőségi eseményeket és az MCP-eszközhívásokat egyetlen működési nézetből.",
"complianceTab": "Megfelelés",
- "mcpTab": "MCP Audit",
+ "mcpTab": "MCP-auditálás",
"title": "Megfelelőségi audit",
"description": "A megfelelőségi ellenőrzési napló által rögzített szabályzat, hozzáférés, szolgáltató és biztonsági események.",
"eventType": "Esemény típusa",
"eventTypePlaceholder": "Szűrés művelet vagy eseménytípus szerint",
"severity": "Súlyosság",
"allSeverities": "Minden súlyosság",
- "info": "Info",
+ "info": "Információ",
"warning": "Figyelmeztetés",
"critical": "Kritikus",
"sourceIp": "Forrás IP",
@@ -1467,7 +1471,7 @@
"details": "Részletek",
"timestamp": "Időbélyeg",
"from": "-tól",
- "to": "To",
+ "to": "Címzett",
"refresh": "Frissítés",
"export": "Exportálás",
"clearFilters": "Tiszta szűrők",
@@ -1484,7 +1488,7 @@
"system": "rendszer",
"previous": "Előző",
"next": "Következő",
- "mcpAudit": "MCP Audit",
+ "mcpAudit": "MCP-audit",
"mcpAuditDesc": "Az MCP-kiszolgáló által rögzített eszközhívás-ellenőrzési bejegyzések.",
"failedFetchMcpAudit": "Nem sikerült lekérni az MCP-naplót.",
"tool": "Eszköz",
@@ -1496,7 +1500,7 @@
"success": "Siker",
"failure": "Kudarc",
"noMcpEvents": "Nem rögzítettek MCP audit eseményt.",
- "a2aAudit": "A2A Audit",
+ "a2aAudit": "A2A-audit",
"a2aAuditDesc": "Az A2A szerver által rögzített feladat végrehajtási ellenőrzési nyomvonal.",
"a2aShowingTasks": "{count}/{total} feladat megjelenítése",
"a2aSkill": "Ügyesség",
@@ -1581,18 +1585,18 @@
"comboDescription": "Modellkombinációk tartalékkal",
"usage": "Használat és elemzések",
"usageDescription": "Kövesse nyomon API-használatát, tokenfelhasználását és kérésnaplóit",
- "analytics": "Analytics",
+ "analytics": "Analitika",
"analyticsDescription": "Diagramok, trendek és értékelési betekintések",
"cliTools": "CLI eszközök",
"cliToolsDescription": "A CLI eszközök konfigurálása",
"home": "Otthon",
"homeDescription": "Üdvözöljük az OmniRoute oldalán",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Végpontok",
+ "endpointDescription": "Proxyvégpontok, MCP-, A2A- és API-végpontok kezelése",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Model Context Protocol-kiszolgálók és -eszközök kezelése",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Agent-to-Agent protokollfeladatok és megfigyelhetőség",
"settings": "Beállítások elemre",
"settingsDescription": "Kezelje beállításait",
"openaiCompatible": "OpenAI kompatibilis",
@@ -1601,49 +1605,49 @@
"mediaDescription": "Készítsen képeket, videókat és zenét",
"themes": "Témák",
"themesDescription": "Válasszon színtémát az egész irányítópult panelhez",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
- "auditA2a": "A2A Audit",
+ "costsDescription": "Kiadások nyomon követése, trendek elemzése és az AI-költségkeret kezelése minden szolgáltatónál",
+ "cacheDescription": "A szolgáltatói promptgyorsítótár hatékonyságának és a helyi szemantikus válaszok újrafelhasználásának figyelése.",
+ "limitsDescription": "Sebességkorlátok és kvóták beállítása API-kulcsonként és szolgáltatónként",
+ "runtimeDescription": "Valós idejű futásidejű megfigyelhetőség — megszakítók, lehűlési időszakok, modellzárolások, munkamenetek és kvótariasztások",
+ "apiManagerDescription": "API-kulcsok és hozzáférés-vezérlés kezelése az OmniRoute-példányhoz",
+ "batchDescription": "Nagy mennyiségű kérés aszinkron feldolgozása kötegelt API-hívásokkal",
+ "contextCavemanDescription": "Szabályalapú üzenettömörítés, nyelvi csomagok, analitika és kimeneti módok vezérlése.",
+ "contextRtkDescription": "Parancsérzékeny tömörítés eszközkimenetekhez, terminálnaplókhoz és buildelési eredményekhez.",
+ "contextCombosDescription": "A motorok kombinálási módjának meghatározása különböző útválasztási helyzetekhez.",
+ "changelogDescription": "Legyen naprakész a platform legújabb funkcióival és bejelentéseivel kapcsolatban.",
+ "agentsDescription": "AI-ügynökeszközök kezelése és konfigurálása: Codex, Devin, Jules és egyéni ügynökök",
+ "cloudAgentsDescription": "Felhőalapú AI-ügynökök koordinálása élő feladatkövetéssel és tervjóváhagyással",
+ "memoryDescription": "Tartós társalgási memória szemantikus kereséssel és FTS5 teljes szöveges indexeléssel",
+ "skillsDescription": "Sandbox-készségek telepítése és kezelése promptok és eszközök automatizált végrehajtásához",
+ "agentSkillsDescription": "Ügynökkompatibilis készségkatalógus egykattintásos URL-másolással az AI-kliensek integrációjához",
+ "translatorDescription": "Promptok fordítása és tesztelése API-formátumok között: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Promptok interaktív tesztelése élő szolgáltatói válaszokkal és formátumvizsgálattal",
+ "searchToolsDescription": "Keresési analitika, szolgáltatói bontás, gyorsítótár-találati arányok és költségkövetés",
+ "logsDescription": "Valós idejű kérésnaplók, hibanyomkövetések és streamelési eseményvizsgáló",
+ "auditDescription": "Az API-kulcsok használatának, az MCP-eszközhívásoknak és a szabályzati eseményeknek a megfelelőségi auditnaplója",
+ "webhooksDescription": "Webhook-végpontok konfigurálása valós idejű eseményértesítések fogadásához",
+ "healthDescription": "Rendszerállapot áttekintése: szolgáltatók, megszakítók, sebességkorlátok és adatbázis",
+ "proxyDescription": "Felsőbb szintű proxybeállítások konfigurálása a kimenő szolgáltatói kapcsolatokhoz",
+ "apiEndpointsDescription": "Egyéni API-végpontkonfigurációk és útválasztási felülbírálások kezelése",
+ "batchFilesDescription": "Kötegelt feladatok kimeneti fájljainak és eredményeinek böngészése és kezelése",
+ "analyticsEvalsDescription": "Modellértékelési eredmények és teljesítmény-benchmarkok",
+ "analyticsSearchDescription": "Keresési lekérdezések analitikája, gyorsítótár-találati arányok és költségkövetés",
+ "analyticsUtilizationDescription": "Szolgáltatói kihasználtsági mérőszámok és kapacitástervezés",
+ "analyticsComboHealthDescription": "Kombinált útválasztási konfigurációk valós idejű állapota és teljesítménye",
+ "analyticsCompressionDescription": "Kontextustömörítési analitika és tokenmegtakarítás",
+ "costsBudgetDescription": "Költségkeretek és kiadási riasztások API-kulcsonként és szolgáltatónként",
+ "costsPricingDescription": "Egyéni árképzési konfiguráció a tokenköltségek kiszámításához",
+ "logsProxyDescription": "Felsőbb szintű proxyk kérésnaplói és forgalomvizsgálata",
+ "logsConsoleDescription": "Alkalmazáskonzol kimenete és hibakeresési naplók",
+ "logsActivityDescription": "Felhasználói műveletek és rendszeresemények auditnaplója",
+ "auditMcpDescription": "MCP-eszközhívások auditnaplója és megfelelőségi nyilvántartása",
+ "auditA2a": "A2A-audit",
"auditA2aDescription": "A2A feladatvégrehajtási ellenőrzési nyomvonal, állapotátmenetek és készséghívási rekordok",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Téma, arculat és vizuális testreszabás",
+ "settingsAiDescription": "AI-viselkedés, gondolkodási keretek, képfeldolgozási és memóriabeállítások",
"settingsCacheDescription": "TTL a modell katalógus gyorsítótár bejegyzéseihez",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Hitelesítési, jogosultságkezelési és hozzáférés-vezérlési beállítások",
"featureFlags": "Jellemző zászlók",
"featureFlagsDescription": "Vezérlőrendszer képességei és kísérleti jellemzői",
"featureFlagsActive": "{count} aktív",
@@ -1660,18 +1664,18 @@
"featureFlagsSourceDb": "DB",
"featureFlagsSourceEnv": "ENV",
"featureFlagsSourceDefault": "DEF",
- "featureFlagsReset": "Reset",
+ "featureFlagsReset": "Visszaállítás",
"featureFlagsResetAll": "Minden felülírás visszaállítása",
"featureFlagsResetAllConfirm": "Biztosan visszaállítja az összes funkciójelző felülírását? Ezzel az összes jelzőt visszaállítja az ENV-re vagy az alapértelmezett értékre.",
"featureFlagsRestartRequired": "Újraindítás szükséges az alkalmazáshoz",
"featureFlagsNoResults": "Egyetlen zászló sem felel meg a keresésnek",
"featureFlagsSaved": "Zászló frissítve",
"featureFlagsError": "Nem sikerült frissíteni a jelzőt",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Útválasztási szabályok, modellálnevek, kombinációs alapértékek és teljesítménycsökkentési beállítások",
+ "settingsResilienceDescription": "Áramkör-megszakító, újrapróbálkozási és tartalékmegoldási konfiguráció",
+ "settingsAdvancedDescription": "Speciális hasznosadat-szabályok, kérési korlátok és proxy API-beállítások",
+ "mitmProxyDescription": "MITM-proxybeállítások konfigurálása a forgalom vizsgálatához és hibakereséséhez",
+ "oneProxyDescription": "1Proxy-beállítások konfigurálása speciális proxyláncoláshoz",
"omniSkillsDescription": "Sandbox skillek telepítése és kezelése az automatizált prompt- és eszközfuttatáshoz"
},
"cloudSyncStatus": {
@@ -1730,7 +1734,7 @@
"search": "Keresés",
"utilization": "Kihasználtság",
"apiEndpoints": "API-végpontok",
- "audit": "Audit",
+ "audit": "Ellenőrzés",
"a2a": "A2A",
"mcp": "MCP",
"batch": "Köteg",
@@ -1758,7 +1762,7 @@
"discovery": "Felfedezés",
"freeProviderRankings": "Ingyenes szolgáltatók rangsora",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Beállítás",
"freeTiers": "Ingyenes szintek",
"gamification": "Játékosítás",
"leaderboard": "Ranglista",
@@ -1808,7 +1812,7 @@
"reportIssue": "Probléma bejelentése",
"activeError": "{active} aktív · {errors} hiba",
"topologyLegendActive": "Aktív",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Legutóbbiak",
"topologyLegendError": "Hiba",
"oauthLabel": "OAuth",
"apiKeyLabel": "API kulcs",
@@ -1822,11 +1826,11 @@
"updateStarted": "Frissítés elindult...",
"reloadingPageAutomatically": "Oldal automatikus újratöltése...",
"providerTopology": "Szolgáltató topológia",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Legutóbbi kérések",
+ "recentRequestsEmpty": "Még nincsenek kérések.",
+ "recentRequestsModel": "Modell",
+ "recentRequestsTokens": "Be / Ki",
+ "recentRequestsWhen": "Időpont",
"downloadDmg": "DMG letöltése (macOS)",
"downloadDmgDescription": "Új verzió érhető el az OmniRoute asztali alkalmazásból. Kérjük, töltse le és telepítse a macOS DMG telepítőt a frissítéshez (jelenlegi: v{version}).",
"downloadExe": "Letöltés EXE (Windows)",
@@ -1884,18 +1888,18 @@
"releaseNotes": "Kiadási Megjegyzések",
"readMore": "Tovább olvasom",
"noAuthLabel": "Nincs hitelesítés",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Készüljön fel az útválasztásra",
+ "readinessTitle": "Küldje el az első kérését",
+ "readinessSubtitle": "Négy rövid lépés. Az OmniRoute menet közben ellenőrzi a készenléti állapotot.",
+ "readinessStep1": "Szolgáltató csatlakoztatása",
+ "readinessStep2": "Végpont-hitelesítés konfigurálása",
+ "readinessStep3": "Másolja ki a végpontot",
+ "readinessStep4": "Küldjön tesztkérést",
+ "readinessContinue": "Beállítás folytatása",
+ "readinessDismiss": "Egyelőre elvetés"
},
"analytics": {
- "title": "Analytics",
+ "title": "Analitika",
"usageAnalyticsTitle": "Használati elemzések",
"diversityScoreTitle": "Szolgáltatói sokszínűség",
"diversityScoreDesc": "Szolgáltató-koncentrációs pillanatkép a legutóbbi forgalmi ablakról.",
@@ -1963,7 +1967,7 @@
"period7D": "7N",
"period30D": "30N",
"period90D": "90N",
- "periodYTD": "YTD",
+ "periodYTD": "Év elejétől",
"periodAll": "Összes",
"totalTokens": "Összes token",
"inputTokens": "Bemeneti tokenek",
@@ -1989,7 +1993,7 @@
"overviewDescription": "Kövesse nyomon API-használati mintáit, tokenfelhasználását, költségeit és tevékenységi trendjeit az összes szolgáltatónál és modellnél.",
"evalsDescription": "Futtasson kiértékelő csomagokat az LLM-végpontok teszteléséhez és érvényesítéséhez. Hasonlítsa össze a modell minőségét, észlelje a regressziókat és mérje fel a késleltetést.",
"overview": "Áttekintés",
- "evals": "Evals",
+ "evals": "Kiértékelések",
"search": "Keresés",
"utilization": "Kihasználtság",
"routeTrace": "Útvonalkövetés",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Hiba",
"comboHealth": "Kombo egészsége",
"comboHealthDescription": "Kombó szintű kvóta, használateloszlás és teljesítménymutatók",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Tömörítési analitika",
+ "compressionAnalyticsDescription": "Tömörítési analitika — tokenmegtakarítás, módok szerinti bontás és szolgáltatói statisztikák.",
"autoRoutingTotalAutoRequests": "Összes automatikus kérés",
"autoRoutingAvgSelectionScore": "Átl. kiválasztási pontszám",
"autoRoutingExplorationRate": "Feltárási arány",
@@ -2206,7 +2210,7 @@
"combo": "Kombináció",
"routeStep": "Lépés",
"tokens": "Tokenek",
- "notAvailable": "n/a",
+ "notAvailable": "n. a.",
"routeTokenCounts": "{input} be · {output} ki",
"routeEvidence": "Bizonyíték",
"routeFactors": "Irányítási tényezők",
@@ -2254,9 +2258,9 @@
"fullAccess": "Teljes hozzáférés",
"keyManagement": "API kulcskezelés",
"keyManagementDesc": "API-kulcsok létrehozása és kezelése a végponthoz intézett kérések hitelesítéséhez",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Az alkalmazása API-kulccsal küld kéréseket az OmniRoute-on keresztül",
+ "requestFlowYourApp": "Az alkalmazása",
+ "requestFlowApiKey": "API-kulcs",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Összes kulcs",
"restricted": "Korlátozott",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Másolja ki és tárolja ezt a kulcsot most – többé nem jelenik meg.",
"done": "Kész",
"savePermissions": "Engedélyek mentése",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Engedélyezett végpontok",
+ "allEndpointsAllowed": "Ez a kulcs minden API-végponthoz hozzáfér.",
+ "endpointsRestricted": "{count} végpontra korlátozva{count, plural, one {} other {}}.",
+ "autoResolve": "Automatikus feloldás",
+ "autoResolveDesc": "A nem egyértelmű modellnevek automatikus feloldása a natív szolgáltatóra ennél az API-kulcsnál.",
"streamDefaultMode": "Alapértelmezett stream kompatibilitás",
"streamDefaultModeDesc": "Szabályozza a kulcshoz tartozó elhagyott `stream` jelzőket. A JSON mód nem streamelt válaszokat ad vissza, kivéve, ha a kliens kifejezetten SSE-t kér.",
"streamDefaultLegacy": "Örökölt",
"streamDefaultJson": "JSON-kompatibilis",
"streamDefaultBadge": "Alapértelmezett JSON stream",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Aktív kulcs",
+ "keyActiveDesc": "Engedélyezze vagy tiltsa le ezt az API-kulcsot. A letiltott kulcsokat a rendszer azonnal 403-as hibával utasítja el.",
+ "accessSchedule": "Hozzáférési ütemezés",
+ "accessScheduleDesc": "A hozzáférés korlátozása a hét meghatározott óráira és napjaira.",
+ "scheduleFrom": "Ettől",
+ "scheduleUntil": "Eddig",
+ "scheduleDays": "Napok",
+ "scheduleTimezone": "Időzóna",
+ "scheduleTimezoneHint": "Használjon IANA-időzónaneveket, például America/New_York, Europe/Berlin",
+ "scheduleActive": "Ütemezés",
+ "disabled": "Letiltva",
+ "daySun": "V",
+ "dayMon": "H",
+ "dayTue": "K",
+ "dayWed": "Sze",
+ "dayThu": "Cs",
+ "dayFri": "P",
+ "daySat": "Szo",
"allowAll": "Minden engedélyezése",
"restrict": "Korlátozás",
"allowAllInfo": "Ezzel a gombbal minden elérhető modell elérhető.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Nem sikerült frissíteni az engedélyeket. Kérjük, próbálja újra.",
"unknownProvider": "ismeretlen",
"copyMaskedKey": "Maszkolt kulcs másolása",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "A teljes kulcs csak létrehozáskor érhető el — másolja ki a kulcs első létrehozásakor",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# eszköz} other {# eszköz}}",
"devicesTooltip": "{count, plural, one {# eltérő IP/User-Agent eszköz észlelve ezzel a kulccsal (az elmúlt 30 percben)} other {# eltérő IP/User-Agent eszköz észlelve ezzel a kulccsal (az elmúlt 30 percben)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Engedélyezett kombinációk",
"allCombosAllowed": "Ez a kulcs bármilyen kombinációt használhat.",
"restrictedComboCount": "{count, plural, one {# kombinációra korlátozva} other {# kombinációra korlátozva}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# tárolt bejegyzés nem szerepel} other {# tárolt bejegyzés nem szerepel}} ebben a kombinált listában (például az útválasztási szabályok), ezért a rendszer mentett állapotában megőrzi.",
+ "preservedComboRuleHint": "A tárolt formában maradt. Ez a bejegyzés nem kombináció a fenti listában, ezért csak az API-n keresztül módosítható.",
"apiManagerCustomRateLimits": "Egyéni díjkorlátok",
"apiManagerCustomRateLimitsDesc": "A globális alapértelmezett korlátok felülbírálása. Hagyja üresen az alapértelmezett értékek használatához.",
"apiManagerRateLimitRequestsPlaceholder": "Kérések",
@@ -2387,7 +2391,7 @@
"apiManagerRateLimitSecondsPlaceholder": "Másodpercek",
"apiManagerRemoveLimitTitle": "Korlát eltávolítása",
"apiManagerTimezonePlaceholder": "Amerika/Sao_Paulo",
- "noLogPayloadPrivacy": "No-Log Payload Privacy",
+ "noLogPayloadPrivacy": "Naplózásmentes adatvédelem",
"bannedStatus": "Tiltott állapot",
"managementApiAccess": "Management API hozzáférés",
"expirationDate": "Lejárati dátum",
@@ -2402,7 +2406,7 @@
"filterStatusDisabled": "Letiltva",
"filterStatusBanned": "Kitiltva",
"filterStatusExpired": "Lejárt",
- "filterTypeStandard": "Standard",
+ "filterTypeStandard": "Normál",
"filterTypeManage": "Kezelés",
"filterTypeRestricted": "Korlátozott",
"shownOf": "{shown} / {total} megjelenítve",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Lehetővé teszi, hogy ez a kulcs figyelmen kívül hagyja a felsőbb szintű szolgáltató/fiók korlátozási szabályzatát az útválasztás során. Az API-kulcs USD-kvótái továbbra is érvényesek.",
"quotaPill": "KVÓTA",
"quotaModeOnly": "csak qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Kizárólagos bérlet",
+ "exclusiveLeaseNoticeTitle": "Kizárólagos bérlet",
+ "exclusiveLeaseNoticeDesc": "Ez az API-kulcs kizárólagos bérleti jogosultságokkal rendelkezik a dedikált kapcsolat-útválasztáshoz.",
+ "allConnections": "Összes kapcsolat",
+ "onlySelectedConnections": "Csak a kiválasztott kapcsolatok",
+ "selectAtLeastOneConnection": "Válasszon ki legalább egy kapcsolatot, vagy válassza az Összes kapcsolat lehetőséget.",
+ "allConnectionsDesc": "Ez a kulcs bármely aktív kapcsolatot használhatja.",
+ "restrictedToConnections": "{count, plural, one {# kapcsolatra} other {# kapcsolatra}} korlátozva."
},
"auditLog": {
"title": "Ellenőrzési napló",
@@ -2453,14 +2457,14 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Generálás",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Generálás...",
+ "loadingModels": "Elérhető modellek betöltése...",
+ "noModels": "Nincsenek elérhető modellek. Először konfiguráljon médiaképességekkel rendelkező szolgáltatókat.",
+ "error": "A generálás sikertelen",
+ "result": "Eredmény",
+ "imageDescription": "Képek generálása szöveges utasításokból az OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI és további szolgáltatások használatával.",
+ "videoDescription": "Videók készítése AnimateDiff és Stable Video Diffusion használatával ComfyUI-n vagy SD WebUI-n keresztül.",
+ "musicDescription": "Zene komponálása Stable Audio Open vagy MusicGen használatával ComfyUI-n keresztül.",
"kinds": {
"embedding": "Beágyazás",
"image": "Kép",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "Az OpenRouter beszédről szövegre modellek a beállított OpenRouter kapcsolatodat használják. Nincs szükség külön hitelesítő adatokra."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Keresési lekérdezés",
+ "searchResults": "Keresési eredmények",
+ "cachedResult": "Gyorsítótárazott",
+ "searchCost": "Költség",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Speciális keresési tesztelés szolgáltatók összehasonlításával",
+ "compareProviders": "Szolgáltatók összehasonlítása",
+ "rerankResults": "Eredmények újrarangsorolása",
+ "searchHistory": "Keresési előzmények",
+ "urlOverlap": "URL-átfedés",
+ "noSearchProviders": "Nincsenek keresési szolgáltatók konfigurálva. Adjon hozzá szolgáltatókat a Beállításokban.",
+ "noRerankModels": "Nem érhető el újrarangsorolási modell",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Szolgáltató",
+ "searchType": "Keresés típusa",
+ "maxResults": "Eredmények maximális száma",
+ "filters": "Szűrők",
+ "country": "Ország",
+ "language": "Nyelv",
+ "timeRange": "Időtartomány",
+ "includeDomains": "Domainek belefoglalása",
+ "excludeDomains": "Domainek kizárása",
+ "safeSearch": "Biztonságos keresés",
+ "safeSearchOff": "Kikapcsolva",
+ "safeSearchModerate": "Mérsékelt",
+ "safeSearchStrict": "Szigorú",
+ "queryPlaceholder": "Adja meg a keresési lekérdezést...",
+ "providerAuto": "automatikus (legolcsóbb)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "hírek",
+ "optionAny": "bármely",
+ "timeRangeDay": "Elmúlt nap",
+ "timeRangeWeek": "Elmúlt hét",
+ "timeRangeMonth": "Elmúlt hónap",
+ "timeRangeYear": "Elmúlt év",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "A kérés időtúllépés miatt megszakadt ({seconds} mp)",
+ "networkError": "Hálózati hiba",
+ "formatted": "Formázott",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "gyorsítótár-találat nélkül",
+ "cacheHit": "gyorsítótár-találat",
+ "latency": "Késleltetés",
+ "cost": "Költség",
+ "results": "Találatok",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Újrarangsoroló modell",
+ "positionDelta": "Pozícióváltozás",
+ "emptyState": "Küldjön keresési lekérdezést a találatok megtekintéséhez",
"copy": "Másolás",
"resetToDefault": "Visszaállítás alapértelmezettre",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Keresés",
+ "tabScrape": "Kinyerés",
+ "tabCompare": "Összehasonlítás",
+ "modalitiesGuide": "Művelettípusok útmutatója",
+ "searchConceptTitle": "Keresés",
+ "searchConceptDesc": "Keresés = webes találatok listájának lekérése (cím, URL, kivonat, relevanciapontszám)",
+ "scrapeConceptTitle": "Kinyerés",
+ "scrapeConceptDesc": "Kinyerés = egy URL teljes tartalmának kinyerése (markdown, szöveg vagy HTML)",
+ "compareConceptTitle": "Összehasonlítás",
+ "compareConceptDesc": "Összehasonlítás = ugyanazon lekérdezés futtatása N szolgáltatónál egymás mellett a késleltetés, a költség és a találatok átfedésének összehasonlításához",
+ "rerankConceptTitle": "Újrarangsorolás",
+ "rerankConceptDesc": "Újrarangsorolás = a találatok LLM segítségével történő átrendezése, hogy a lekérdezés alapján javuljon a relevanciájuk",
+ "autoConceptTitle": "Automatikus (legolcsóbb)",
+ "autoConceptDesc": "Automatikus (legolcsóbb) = automatikusan kiválasztja a legolcsóbb elérhető szolgáltatót, amelyhez konfigurálva vannak hitelesítő adatok",
+ "providerCatalogTitle": "Szolgáltatói katalógus",
+ "kindSearch": "Keresés",
+ "kindFetch": "Lekérés/adatkinyerés",
+ "statusConfigured": "Beállítva",
+ "statusMissing": "Nincs hitelesítő adat",
+ "statusRateLimited": "Sebességkorlátozva",
+ "configureProvider": "Beállítás a szolgáltatóknál",
+ "loadingProviders": "Szolgáltatók betöltése…",
+ "failedToLoadProviders": "Nem sikerült betölteni a szolgáltatókat",
+ "costPerQuery": "Költség/lekérdezés",
+ "freeQuota": "Ingyenes havi kvóta",
+ "scrapeUrl": "Adatkinyerés URL-címe",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL megadása kötelező",
"scrapeUrlInvalid": "Érvénytelen URL — a következővel kell kezdődnie: http:// vagy https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "Kinyerés",
+ "scrapeExtracting": "Kinyerés…",
+ "scrapeFullPage": "Teljes oldal",
+ "scrapeFormat": "Formátum",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "Szöveg",
+ "scrapePreview": "Előnézet",
+ "scrapeRaw": "Nyers",
+ "scrapeContentTruncated": "(csonkolva, nyers nézet megtekintése)",
+ "scrapeMetadata": "Metaadatok",
+ "scrapeProvider": "Szolgáltató",
+ "scrapeSize": "Méret",
"scrapeEmptyState": "Adjon meg egy URL-t a tartalom kinyeréséhez",
"scrapeProvidersAvailable": "Elérhető szolgáltatók: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Összehasonlítás",
+ "compareRunning": "Összehasonlítás…",
+ "autoProvider": "Automatikus (legolcsóbb)",
+ "configuredStatus": "Beállítva",
+ "rateLimitedStatus": "Sebességkorlátozva",
+ "noCredential": "Nincs hitelesítő adat",
+ "searchTypeLabel": "Típus",
+ "rerankModelLabel": "Újrarangsorolási modell",
+ "noneOption": "Nincs",
+ "size": "Méret",
"configurationPane": "Konfigurációs panel",
"configuration": "Konfiguráció",
"status": "Állapot",
@@ -2704,7 +2708,7 @@
"classifierCompatLoadFailed": "Nem sikerült betölteni a beállítást",
"classifierCompatMode": {
"off": "Ki",
- "auto": "Auto",
+ "auto": "Automatikus",
"always": "Mindig"
},
"ccDiscoveryInfoButton": "Hogyan lehet engedélyezni a felfedezést a Claude Code-ban",
@@ -2737,7 +2741,7 @@
"effortMedium": "Közepes",
"effortHigh": "Magas",
"effortExtraHigh": "Extra magas",
- "effortMax": "Max",
+ "effortMax": "Maximális",
"effortUltra": "Ultra",
"wireApi": "Wire API",
"modelAliases": "Modellálnevek",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Hozzáadás",
"antigravityStep2Suffix": "a hosts fájlba 127.0.0.1 néven.",
"antigravityStep3": "3. Nyissa meg az Antigravitációt, és a kérések proxyval lesznek ellátva.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "A(z) {toolName} kéréseket küld a szolgáltatói végpontjára. A MITM elfogja és átirányítja őket az OmniRoute-hoz.",
+ "mitmStep1": "1. Indítsa el a MITM-et, hogy a kéréseket az OmniRoute-on keresztül irányítsa.",
+ "mitmStep2Prefix": "2. Hozzáadás",
+ "mitmStep2Suffix": "a hosts fájlhoz 127.0.0.1-ként.",
+ "mitmStep3": "3. Nyissa meg a(z) {toolName} alkalmazást, és a kérések proxyn keresztül lesznek továbbítva.",
"sudoPasswordRequiredTitle": "Sudo jelszó szükséges",
"sudoPasswordHint": "Rendszergazdai jelszó szükséges a hosts fájl és a rendszerproxy beállításainak módosításához.",
"enterSudoPassword": "Írja be a sudo jelszót",
@@ -2850,8 +2854,8 @@
"resetToDefault": "Visszaállítás alapértelmezettre",
"providerModelPlaceholder": "szolgáltató/modellazonosító",
"apply": "Alkalmazni",
- "reset": "Reset",
- "manualConfig": "Manual Config",
+ "reset": "Alaphelyzetbe állítás",
+ "manualConfig": "Kézi beállítás",
"backups": "Biztonsági mentések",
"configBackups": "Biztonsági mentések konfigurációja",
"noBackupsYet": "Még nincs biztonsági másolat. A biztonsági mentések automatikusan létrejönnek minden Alkalmazás vagy Visszaállítás előtt.",
@@ -2860,12 +2864,12 @@
"failedRestoreBackup": "Nem sikerült visszaállítani a biztonsági másolatot",
"applied": "Alkalmazva!",
"failed": "Sikertelen",
- "resetDone": "Reset!",
+ "resetDone": "Alaphelyzetbe állítás!",
"omnirouteConfiguredOpenAiCompatible": "Az OmniRoute OpenAI-kompatibilis szolgáltatóként van konfigurálva",
"provider": "Szolgáltató",
"model": "Modell",
"providers": "Szolgáltatók",
- "auth": "Auth",
+ "auth": "Hitelesítés",
"noApiKeysAvailable": "Nem állnak rendelkezésre API-kulcsok",
"usingDefaultOmniroute": "Az alapértelmezett: sk_omniroute használata",
"updateConfig": "Frissítse a konfigurációt",
@@ -2904,7 +2908,7 @@
"continue": "Használja a Continue futtatásakor az IDE-ben, és hordozható JSON-alapú szolgáltatói konfigurációra van szüksége.",
"opencode": "Akkor használja, ha a terminál-natív ügynökfuttatásokat és az OpenCode-on keresztüli parancsfájl-automatizálást részesíti előnyben.",
"kiro": "Használja a Kiro integrálásához és a modell-útválasztás központi vezérléséhez az OmniRoute-ból.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Akkor használja, ha AI-központú IDE-t szeretne, amelyben a Codeium/Windsurf modellek az OmniRoute-on keresztül vannak irányítva.",
"antigravity": "Akkor használja, ha az Antigravity/Kiro forgalmat MITM-en keresztül kell elfogni, és az OmniRoute-hoz kell irányítani.",
"copilot": "Használja, ha másodpilóta csevegési stílusú UX-et szeretne, miközben betartja az OmniRoute kulcsokat és útválasztási szabályokat.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2924,11 +2928,11 @@
"qwen": "Qwen Code CLI",
"cursor": "Kurzor AI kódszerkesztő",
"continue": "Az AI-asszisztens folytatása",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "OpenCode AI kódolási ügynök (terminál)",
+ "kiro": "Amazon Kiro — AI-alapú IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "Sourcegraph Amp kódolási asszisztens CLI",
"hermes": "Hermes AI terminál asszisztens",
"hermes-agent": "Hermes Agent (a Nousresearch-től) - Fejlett terminál AI többmodell-támogatással (delegálás, látás, tömörítés stb.)",
"custom": "Általános OpenAI-kompatibilis CLI vagy SDK konfigurációgenerátor",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter autonóm kódoló ágens CLI",
"omp": "Oh My Pi terminál kódoló ágens",
"letta": "Letta CLI ágens perzisztens memóriával és eszközhasználattal",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — önfejlesztő RLM kódolási keretrendszer OpenAI-kompatibilis szolgáltatók támogatásával",
"warp": "Warp AI terminál egyéni szolgáltató támogatásával",
"agent-deck": "Agent Deck többágenses orkesztrátor",
"5dive": "5dive — saját üzemeltetésű kódolóügynök-flotta; egyetlen auth profil mindet az OmniRoute-ra irányítja"
@@ -2994,7 +2998,7 @@
"title": "Válassza a Model lehetőséget"
},
"4": {
- "title": "Add Model Config",
+ "title": "Modellkonfiguráció hozzáadása",
"desc": "Adja hozzá a következő konfigurációt a modellek tömbjéhez:"
}
},
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Az OpenCode telepítése",
+ "desc": "Telepítés npm segítségével: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API-kulcs"
},
"3": {
- "title": "Set Base URL",
+ "title": "Alap URL beállítása",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Modell kiválasztása"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Gondolkodási változat használata",
+ "desc": "Gondolkodási modellek esetén futtassa a --variant high/low/max kapcsolóval (lásd az alábbi példaparancsot)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "A Kiro beállításainak megnyitása",
+ "desc": "Lépjen a Beállítások → AI-szolgáltató menüpontra"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Alap URL",
+ "desc": "Illessze be az OmniRoute végpontjának URL-jét"
},
"3": {
- "title": "API Key"
+ "title": "API-kulcs"
},
"4": {
- "title": "Select Model"
+ "title": "Modell kiválasztása"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI-beállítások megnyitása",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Egyéni szolgáltató hozzáadása",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Alap URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API-kulcs",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Modell kiválasztása",
+ "desc": "Válasszon egy modellt a legördülő listából"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Egyéni CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Eszközkategóriák",
"visibleToolsCount": "{count} eszköz áll rendelkezésre",
"customCliBuilderTitle": "OpenAI-kompatibilis CLI-készítő",
"customCliBuilderDescription": "Hozzon létre env vars-okat és JSON-kódrészleteket bármely olyan CLI-hez vagy SDK-hoz, amely elfogad OpenAI-kompatibilis alap URL-t, API-kulcsot és modellazonosítót.",
@@ -3128,7 +3132,7 @@
"hermesRoleTtsAudioTagsDesc": "TTS audio címke generálás",
"hermesRoleTriageSpecifier": "Triázs Specifikáló",
"hermesRoleTriageSpecifierDesc": "Hiba- és PR-kiértékelési specifikáció",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Kanban-felbontó",
"hermesRoleKanbanDecomposerDesc": "Kanban feladat bontás",
"hermesRoleProfileDescriber": "Profil Leíró",
"hermesRoleProfileDescriberDesc": "Felhasználói profil leírása",
@@ -3136,7 +3140,7 @@
"hermesRoleGoalJudgeDesc": "Cél teljesítmény értékelése",
"hermesRoleCurator": "Kurátor",
"hermesRoleCuratorDesc": "Képesség- és memória-kurálás",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Monitorozás",
"hermesRoleMonitorDesc": "Háttérfigyelés",
"hermesRoleBackgroundReview": "Háttér Ellenőrzés",
"hermesRoleBackgroundReviewDesc": "Háttérkód-ellenőrzés",
@@ -3256,18 +3260,18 @@
"priorityDesc": "Szekvenciális tartalék: először az 1-es, majd a 2-es modellt próbálja meg stb.",
"weightedDesc": "A forgalmat tömegszázalékban osztja el tartalékkal",
"roundRobinDesc": "Körkörös eloszlás: minden kérés a következő forgatási modellhez kerül",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "Kontextusátadás",
+ "contextRelayDesc": "Átadási összefoglalókkal megőrzi a munkamenet folytonosságát a fiókok váltásakor",
"randomDesc": "Egységes véletlenszerű kiválasztás, majd visszaállás a többi modellhez",
"leastUsedDesc": "A legkevesebb kéréssel rendelkező modellt választja, idővel kiegyensúlyozva a terhelést",
"costOptimizedDesc": "Először a legolcsóbb modellhez vezet az árak alapján",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
- "resetAware": "Reset-Aware RR",
+ "cacheOptimizedDesc": "Minden újrafelhasználható promptelőtagot következetesen ugyanahhoz a szolgáltatói fiókhoz irányít",
+ "resetAware": "Visszaállítás-tudatos RR",
"resetAwareDesc": "Kiegyenlíti a fennmaradó kvótát az 5 órával és a heti visszaállításokkal szemben, majd hasonló pontszámokat hajt végre",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Kvótával súlyozott",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "Szigorúan véletlenszerű",
+ "strictRandomDesc": "Paklikeverés — minden modellt egyszer használ, mielőtt újrakeverné őket",
"fusion": "Fúzió",
"fusionDesc": "Párhuzamosan kiküldi a promptot az összes panelmodellnek, majd egy bíró modell szintetizálja a végső választ",
"fusionJudgeModel": "Bíró modell",
@@ -3284,16 +3288,16 @@
"retryDelay": "Újrapróbálkozás késleltetése (ms)",
"concurrencyPerModel": "Egyidejűség / Modell",
"queueTimeout": "Sor időtúllépése (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "Átadási küszöbérték",
+ "contextRelayHandoffThresholdHelp": "Amikor a kvótahasználat eléri ezt a küszöbértéket, az OmniRoute strukturált átadási összefoglalót készít, mielőtt az aktív fiók kvótája kimerülne.",
+ "contextRelayMaxMessages": "Összefoglaló üzeneteinek maximális száma",
+ "contextRelayMaxMessagesHelp": "Korlátozza, hogy a közelmúltbeli előzmények mekkora része legyen tömörítve az átadási összefoglalóban.",
+ "contextRelaySummaryModel": "Összefoglaló modellje",
+ "contextRelaySummaryModelHelp": "Opcionális felülbíráló modell, amely kizárólag az átadási összefoglaló létrehozására szolgál. Hagyja üresen az aktív kombináció modelljének újrafelhasználásához.",
+ "contextRelayProviderNote": "A Context Relay jelenleg a Codex-fiókok váltásához készít átadásokat. A lehető legjobb folytonosság érdekében használja ugyanazon szolgáltató több fiókjával.",
"advancedHint": "Hagyja üresen a globális alapértelmezések használatához. Ezek felülbírálják a szolgáltatónkénti beállításokat.",
"failoverBeforeRetry": "Feladatátvétel az újrapróbálkozás előtt",
- "maxSetRetries": "Max Set Retries",
+ "maxSetRetries": "Beállítási újrapróbálkozások maximális száma",
"setRetryDelayMs": "Újrapróbálkozási késleltetés beállítása (ms)",
"moveUp": "Lépj felfelé",
"moveDown": "Mozgás lefelé",
@@ -3340,7 +3344,7 @@
"playgroundCreateFirst": "Először hozzon létre egyet",
"weighted": "Súlyozott",
"leastUsed": "Legkevésbé használt",
- "costOpt": "Cost-Opt",
+ "costOpt": "Költségoptimalizált",
"strategyGuideTitle": "Hogyan kell használni ezt a stratégiát",
"strategyGuideWhen": "Mikor kell használni",
"strategyGuideAvoid": "Kerülje el, hogy mikor",
@@ -3382,19 +3386,19 @@
"example": "Részesítse előnyben a heti 60%-os fiók-visszaállítást holnap, mint a későbbi 80%-os fiók-visszaállítást."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Akkor használja, ha tökéletesen egyenletes elosztást szeretne — minden modellt egyszer használ, mielőtt bármelyiket megismételné.",
+ "avoid": "Kerülje, ha a modellek minősége vagy késleltetése eltérő, és a sorrend számít.",
+ "example": "Példa: Ugyanazon modell több fiókja a használat egyenletes elosztásához."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Akkor használja, ha alacsony késleltetésű kiválasztást szeretne a Power-of-Two-Choices algoritmussal.",
+ "avoid": "Kerülje a legfeljebb 2 modellt tartalmazó kis kombinációknál — nem nyújt előnyt a ciklikus elosztással szemben.",
+ "example": "Példa: Nagy áteresztőképességű következtetés 4 vagy több egyenértékű modellvégponton."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Akkor használja, ha a hosszú munkameneteknek a munkakörnyezet elvesztése nélkül kell átvészelniük a fiókváltást.",
+ "avoid": "Kerülje, ha a fiókváltás ritka, vagy ha nem szeretne további összefoglalási kéréseket.",
+ "example": "Példa: Codex-munkamenetek, amelyek a kvóta kimerüléséhez közeledve több fiók között váltanak."
},
"fill-first": {
"when": "Akkor használja, ha teljesen ki szeretné használni az egyik szolgáltató kvótáját, mielőtt a másikra lépne.",
@@ -3421,52 +3425,52 @@
"maxRetries": "Hány újrapróbálkozás történik a kérés sikertelensége előtt.",
"retryDelay": "Kezdeti várakozás az újrapróbálkozások között. A magasabb értékek csökkentik a repedési nyomást.",
"timeout": "A kérés maximális időtartama a megszakítás előtt.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "healthcheck": "Kihagyja a nem megfelelően működő modelleket/szolgáltatókat az útválasztási döntésekből.",
+ "concurrencyPerModel": "Modellenként engedélyezett egyidejű kérések maximális száma ciklikus elosztás esetén.",
+ "queueTimeout": "Ennyi ideig várakozhat egy kérés a sorban, mielőtt időtúllépés történik.",
"failoverBeforeRetry": "Ha engedélyezve van, minden felfelé irányuló hiba azonnali feladatátvételt vált ki a következő kombinált célponthoz, és kihagy minden újrapróbálkozást és tartalék URL-t.",
"maxSetRetries": "A teljes célkészlet újrapróbálkozásainak száma, amikor minden cél meghiúsul. 0 = nincs beállított szintű újrapróbálkozás.",
"setRetryDelayMs": "Késleltetés a beállított szintű újrapróbálkozások között, így az átmeneti problémáknak van ideje megoldani.",
"disableSessionStickiness": "Minden kérésnél váltson át egy másik kapcsolatra, ahelyett, hogy a teljes beszélgetést egyetlen kapcsolathoz rögzítené az első üzenet hash-e alapján. Felülírja a globális alapértelmezést. Hagyja az Inherit beállításon a prompt-cache találatok megőrzéséhez a többfordulós csevegéseknél."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
+ "templatesTitle": "Gyors sablonok",
+ "templatesDescription": "Alkalmazzon egy kiindulási profilt, majd módosítsa a modelleket és a konfigurációt.",
+ "templateApply": "Sablon alkalmazása",
+ "templateHighAvailability": "Magas rendelkezésre állás",
+ "templateHighAvailabilityDesc": "Prioritásos útválasztás állapotellenőrzésekkel és biztonságos újrapróbálkozásokkal.",
+ "templateCostSaver": "Költségtakarékos",
+ "templateCostSaverDesc": "Költségoptimalizált útválasztás a költségkeretet előtérbe helyező munkaterhelésekhez.",
+ "templateBalanced": "Kiegyensúlyozott terhelés",
+ "templateBalancedDesc": "A legkevésbé használtat választó útválasztás az igények időbeli elosztásához.",
+ "usageGuideHide": "Elrejtés",
"usageGuideDontShowAgain": "Ne mutasd újra",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "usageGuideShow": "Útmutató megjelenítése",
+ "quickTestTitle": "A kombináció készen áll az ellenőrzésre",
+ "quickTestDescription": "Futtasson most egy tesztet a tartalékra váltási és késleltetési viselkedés ellenőrzéséhez.",
+ "testNow": "Tesztelés most",
+ "pricingCoverage": "Árazási lefedettség",
+ "pricingCoverageHint": "A költségoptimalizált stratégia akkor működik a legjobban, ha a kombináció összes modelljéhez elérhető árazás.",
+ "pricingAvailable": "Árazás elérhető",
+ "pricingMissing": "Nincs árazás",
+ "pricingAvailableShort": "árazott",
+ "pricingMissingShort": "ár nélküli",
"fallbackOnlyOnQuotaExhaustion": "Csak a kvóta kimerülésekor haladjon előre",
"fallbackOnlyOnQuotaExhaustionShort": "csak kvóta visszaállítás",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
+ "warningRoundRobinSingleModel": "A körkörös elosztás legalább 2 modellel a leghasznosabb.",
+ "warningCostOptimizedPartialPricing": "A(z) {total} modellből csak {priced} rendelkezik árazással. Az útválasztás csak részben veheti figyelembe a költségeket.",
+ "warningCostOptimizedNoPricing": "Ehhez a kombinációhoz nem találhatók árazási adatok. A költségoptimalizált stratégia váratlan útválasztást eredményezhet.",
+ "filterAll": "Összes",
+ "filterIntelligent": "Intelligens",
+ "filterDeterministic": "Determinisztikus",
+ "filterEmptyTitle": "Egyetlen kombináció sem felel meg ennek a stratégiaszűrőnek.",
+ "filterEmptyIntelligentDescription": "Hozzon létre egy automatikus vagy LKGP-kombinációt az intelligens útválasztási irányítópult feltöltéséhez.",
+ "filterEmptyDeterministicDescription": "Jelenleg csak automatikus és LKGP-kombinációk léteznek. Váltson vissza az Összes lehetőségre, vagy hozzon létre egy determinisztikus kombinációt.",
+ "readinessTitle": "Készen áll a mentésre?",
+ "readinessDescription": "A kombináció létrehozása vagy frissítése előtt tekintse át az ellenőrzőlistát.",
+ "readinessCheckName": "A kombináció neve érvényes",
+ "readinessCheckModels": "Legalább egy modell ki van választva",
+ "readinessCheckWeights": "A súlyok összege 100%",
+ "readinessCheckWeightsOptional": "Nincs szükség súlyozási szabályra",
"readinessCheckPricing": "Az árképzési adatok rendelkezésre állnak",
"readinessCheckPricingOptional": "Az árképzési szabály nem szükséges",
"saveBlockedTitle": "A mentés a következő elemek kijavításáig le van tiltva:",
@@ -3474,12 +3478,12 @@
"saveBlockModels": "Adjon hozzá legalább egy modellt.",
"saveBlockWeighted": "Állítsa be a súlyokat 100%-ra (jelenleg: {total}%).",
"saveBlockPricing": "Adjon hozzá árat legalább egy modellhez, vagy válasszon másik stratégiát.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "Ajánlott beállítás",
+ "applyRecommendations": "Ajánlások alkalmazása",
+ "recommendationsUpdated": "A(z) {strategy} ajánlásai frissítve.",
+ "recommendationsApplied": "Az ajánlások alkalmazva erre a kombinációra.",
+ "intelligentPanelTitle": "Intelligens útválasztási irányítópult",
+ "intelligentPanelDesc": "Az automatikus útválasztási kombináció valós idejű pontozása és állapotjelentése.",
"configOnlyStatus": "Konfigurációs nézet",
"configOnlyHint": "Ez a panel csak az útvonalválasztási bemeneteket mutatja. Az élő megszakító állapot a Health oldalon érhető el.",
"routingInputs": "Útvonalválasztási bemenetek",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "Ismeretlen szolgáltató előtag.",
"builderDynamicAccountShort": "Dinamikus fiók",
"builderNeedValidName": "A folytatás előtt adjon meg egy érvényes kombónevet.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Állapotáttekintés",
+ "normalOperation": "Normál működés",
+ "allProvidersHealthy": "A szolgáltatók megfelelő útválasztási állapotot jeleznek.",
+ "incidentMode": "Incidensmód",
+ "highCircuitBreakerRate": "A megszakító gyakori aktiválódása észlelhető.",
+ "activeModePack": "Aktív módcsomag",
+ "modePackUpdated": "A módcsomag frissítve erre: {pack}.",
+ "modePackHint": "Váltson az előbeállítások között az útválasztási motor hangolásához a kombináció újbóli létrehozása nélkül.",
+ "providerScores": "Szolgáltatói pontszámok",
+ "allProvidersEvaluated": "Nincs jelöltkészlet konfigurálva. Futásidőben az összes aktív szolgáltató kiértékelésre kerül.",
+ "excludedProviders": "Kizárt szolgáltatók",
+ "excludedProvidersHint": "A NYITOTT áramkör-megszakítóval rendelkező szolgáltatók átmenetileg ki vannak zárva az útválasztásból.",
+ "noExcludedProviders": "Jelenleg egyetlen szolgáltató sincs kizárva.",
+ "cooldownMinutes": "Várakozási idő: {minutes} perc",
+ "builderIntelligentTitle": "Intelligens útválasztás konfigurációja",
+ "builderIntelligentDesc": "Konfigurálja a többtényezős pontozómotort ehhez az automatikus útválasztási kombinációhoz.",
+ "candidatePoolLabel": "Jelöltkészlet",
+ "candidatePoolHint": "Válassza ki, mely szolgáltatókat értékelje ez a motor. Hagyja üresen az összes aktív szolgáltató használatához.",
+ "candidatePoolEmpty": "Még nem érhető el aktív szolgáltató.",
+ "candidatePoolAllProviders": "Összes szolgáltató",
+ "modePackLabel": "Módcsomag",
+ "routerStrategyLabel": "Útválasztási stratégia",
+ "strategyRules": "Szabályok (6 tényezős pontozás)",
+ "explorationRateLabel": "Felderítési arány",
+ "explorationRateHint": "A kérések {percent}%-a nem optimális szolgáltatókat is kipróbálhat.",
+ "budgetCapLabel": "Költségkeret felső határa (USD / kérés)",
+ "budgetCapPlaceholder": "Nincs korlát",
+ "advancedWeightsTitle": "Speciális: pontozási súlyok",
"nestedComboFlatten": "Beágyazott kombók kibontása",
"nestedComboExecute": "Beágyazott kombók végrehajtása célpontként",
"effectiveRoutingShare": "Tényleges útvonalválasztási részesedés (súly ÷ összesen)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Kvóta",
+ "weightHealth": "Állapot",
+ "weightCostInv": "Költség",
+ "weightLatencyInv": "Késleltetés",
+ "weightTaskFit": "Feladathoz való illeszkedés",
+ "weightStability": "Stabilitás",
+ "weightTierPriority": "Szint",
+ "weightCacheAffinity": "Gyorsítótár-találati affinitás",
"weightSessionAvailability": "Ülés Elérhetőség",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Intelligens útválasztás konfigurációja",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "Biztonsági alapbeállítás",
+ "description": "Használjon egy elsődleges modellt, a tartalék láncot pedig tartsa röviden és megbízhatóan.",
+ "tip1": "A legmegbízhatóbb modellt helyezze az első helyre.",
+ "tip2": "Tartson fenn 1–2 hasonló minőségű tartalék modellt.",
+ "tip3": "Használjon biztonságos újrapróbálkozásokat az átmeneti szolgáltatói hibák kezelésére."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "Szabályozott forgalomelosztás",
+ "description": "Kiváló tesztjellegű bevezetésekhez és a modellek közötti fokozatos átálláshoz.",
+ "tip1": "Kezdje óvatos, például 90/10 arányú elosztással.",
+ "tip2": "Tartsa az összeget 100%-on, és a módosítások után végezzen automatikus kiegyensúlyozást.",
+ "tip3": "A tesztforgalom súlyának növelése előtt figyelje a sikerességet és a késleltetést."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "Kiszámítható terheléselosztás",
+ "description": "Akkor a legjobb, ha a modellek egyenértékűek, és egyenletes elosztásra van szükség.",
+ "tip1": "Használjon legalább 2 modellt.",
+ "tip2": "Állítson be párhuzamossági korlátokat a hirtelen túlterhelés elkerülésére.",
+ "tip3": "Használj várakozási sor-időtúllépést a gyors hibázáshoz telítettség esetén."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "Gyors elosztás kevés beállítással",
+ "description": "Akkor használd, ha egyszerű elosztásra van szükséged szigorú garanciák nélkül.",
+ "tip1": "Hasonló késleltetési profillal rendelkező modelleket használj.",
+ "tip2": "Hagyd engedélyezve az újrapróbálkozásokat a véletlenszerű hibák kiküszöböléséhez.",
+ "tip3": "Ezt inkább kísérletezéshez használd, ne szigorú SLA-khoz."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "Adaptív terheléselosztás",
+ "description": "A kevésbé használt modellekhez irányít, így idővel csökkenti a terhelési gócpontokat.",
+ "tip1": "Folyamatos forgalom mellett működik jobban.",
+ "tip2": "A biztonságosabb terheléselosztás érdekében kombináld állapotellenőrzésekkel.",
+ "tip3": "Kövesd nyomon a modellenkénti használatot az elosztás javulásának ellenőrzéséhez."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "Költségkeret-központú útválasztás",
+ "description": "Alacsonyabb költségű modellekhez irányít, ha rendelkezésre állnak árazási metaadatok.",
+ "tip1": "Biztosítsd, hogy minden kiválasztott modellhez rendelkezésre álljanak árazási adatok.",
+ "tip2": "Tarts fenn egy megfelelő minőségű tartalék modellt a nehéz promptokhoz.",
+ "tip3": "Olyan kötegelt vagy háttérfeladatokhoz használd, ahol a költség a fő KPI."
},
"reset-aware": {
"title": "Reset-aware fiókrotáció",
@@ -3593,11 +3597,11 @@
"tip3": "A kötözőszalag legyen kicsi, hogy az egyenértékű fiókok továbbra is tisztességesen forogjanak."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Paklikeveréses elosztás",
+ "description": "Újrakeverés előtt minden modell pontosan egyszer kerül felhasználásra ciklusonként.",
+ "tip1": "Az érdemi elosztáshoz használj legalább 2 modellt.",
+ "tip2": "Azonos teljesítményű modellekkel működik a legjobban.",
+ "tip3": "Ideális több API-fiók közötti terheléselosztáshoz."
},
"fill-first": {
"description": "A kipufogógáz-szolgáltatók kvótáinak sorrendje a visszaesés előtt.",
@@ -3642,86 +3646,86 @@
"title": "Két választás ereje"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "Ingyenes csomag ($0)",
+ "templateFreeStackDesc": "Ciklikus elosztás az összes ingyenes szolgáltató között: Kiro (Claude), Qoder (5 modell), Qwen (4 modell). Nulla költség, megszakítás nélküli kódolás.",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "LKGP mód",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "Első lépések a kombinációkkal",
+ "wizardGuideDesc": "Hozz létre modellkombinációkat az AI-forgalom intelligens útválasztásához",
+ "wizardGuideHint": "vagy kattints fent a + Kombináció létrehozása gombra",
+ "createFirstCombo": "Az első kombinációd létrehozása",
+ "wizardStep1Title": "Nevezd el a kombinációdat",
+ "wizardStep1Desc": "Adj egyedi nevet a kombinációdnak, hogy azonosíthasd az útválasztási szabályokban",
+ "wizardStep2Title": "Modellek hozzáadása",
+ "wizardStep2Desc": "Válassz AI-modelleket, és rendezd őket a tartalékként történő használat prioritási sorrendjébe",
+ "wizardStep3Title": "Stratégia kiválasztása",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "Ellenőrzés és mentés",
+ "wizardStep4Desc": "Ellenőrizd a konfigurációt, és aktiváld a kombinációt",
+ "usageGuideInvokeTitle": "A kombináció meghívása",
+ "usageGuideInvokeDesc": "Add meg modellként a kombináció pontos nevét, például: model: \"my-combo\" (vagy combo/my-combo).",
+ "usageGuideInvokeAutoNote": "Az auto és az auto/* egy különálló, konfigurációt nem igénylő útválasztó, amely nem használja a kombinációidat (kivéve, ha egy kombináció neve szó szerint auto).",
+ "usageGuideInvokeOpenrouterNote": "Az openrouter/auto egy valódi, fizetős OpenRouter-termék (Auto Best Available), nem OmniRoute-alias — a Beállítások → Útválasztás → Fizetős modellek elrejtése útvonalon zárhatod ki.",
+ "emailVisibilityStateOn": "Be",
+ "emailVisibilityStateOff": "Ki",
+ "reorderHandle": "Húzza az átrendezéshez",
+ "failedReorder": "A modellek átrendezése nem sikerült",
+ "builderFlowTitle": "Kombinációkészítő folyamat",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Alapok",
+ "description": "Név és kezdősablon"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Lépések",
+ "description": "Szolgáltató, modell és fiók kiválasztása"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Stratégia",
+ "description": "Útválasztási viselkedés és speciális beállítások"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Intelligens útválasztás",
+ "description": "Automatikus útválasztás jelöltkészlete, előbeállításai és pontozása"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Áttekintés",
+ "description": "Végső ellenőrzés mentés előtt"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderStageVisited": "Szakasz befejezve",
+ "builderStageCurrent": "Aktuális szakasz",
+ "builderStagePending": "Függőben",
+ "builderStageLocked": "Zárolva — először fejezze be az előző szakaszt",
+ "builderTitle": "Kombináció létrehozása",
+ "builderBrowseCatalog": "Katalógus böngészése",
+ "builderProvider": "Szolgáltató",
+ "builderLoadingProviders": "Szolgáltatók betöltése...",
+ "builderSelectProvider": "Szolgáltató kiválasztása",
+ "builderModel": "Modell",
+ "builderSelectModel": "Modell kiválasztása",
+ "builderProviderFirst": "Először válasszon szolgáltatót",
+ "builderAccount": "Fiók",
+ "builderPreview": "Előnézet",
+ "builderAddStep": "Lépés hozzáadása",
"builderDuplicateExact": "Ez a pontos szolgáltató/modell/fiók lépés már benne van a kombinációban.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "Kombinációhivatkozás",
+ "builderAddComboRef": "Kombinációhivatkozás hozzáadása",
+ "builderComboRefStep": "Kombinációhivatkozás hozzáadása",
+ "builderPinnedAccount": "Rögzített fiók",
+ "builderLegacyEntry": "Régi bejegyzés",
+ "reviewName": "Név",
+ "reviewStrategy": "Stratégia",
+ "reviewSteps": "Lépések",
+ "reviewAccounts": "Fiókok",
+ "reviewProviders": "Szolgáltatók",
+ "reviewComboRefs": "Kombinációhivatkozások",
+ "reviewAdvanced": "Speciális beállítások",
+ "reviewAgentFlags": "Ügynökjelzők",
+ "reviewSequence": "Modellsorrend",
+ "reviewNoSteps": "Nincsenek konfigurált lépések",
"builderStagesDescription": "Végezze el az egyes szakaszokat a kombinációk meghatározásához, a lépések létrehozásához, az útválasztási stratégia kiválasztásához és az eredmények áttekintéséhez.",
"builderStepsDescription": "Állítsa össze az egyes kombinált lépéseket sorrendben: szolgáltató, modell, majd fiók. Ez lehetővé teszi ugyanazt a szolgáltatót és modellt különböző fiókokban.",
"selectProvider": "Válassza a Szolgáltatót",
@@ -3762,7 +3766,7 @@
"agentFeaturesContextLengthErrorInteger": "A szövegkörnyezet hosszának érvényes egész számnak kell lennie",
"agentFeaturesContextLengthErrorRange": "A szövegkörnyezet hosszának 1000 és 2000000 között kell lennie",
"compressionOverride": "Tömörítés felülbírálása",
- "modePack": "Mode Pack",
+ "modePack": "Módcsomag",
"disableSessionStickiness": "Munkamenet-rögzítés letiltása",
"sessionStickinessEnabled": "Rögzítés bekapcsolva",
"sessionStickinessDisabled": "Rögzítés kikapcsolva",
@@ -3796,27 +3800,27 @@
"range7d": "7 nap",
"range30d": "30 nap",
"range90d": "90 nap",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 nap",
+ "range365d": "365 nap",
"rangeAll": "Minden idők",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "Aktív modellek",
+ "flatRateEstimateNotice": "Tartalmazza a fix díjas előfizetések becsült tokenárait, nem a kiszámlázott költséget.",
+ "flatRateEstimateForecast": "Az előrejelzés fix díjas becsléseket tartalmaz.",
+ "selectedWindow": "Kiválasztott időszak",
+ "activeProviders": "Aktív szolgáltatók",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "Mai költés",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "Szolgáltatói részesedés",
+ "topProviders": "Legfontosabb szolgáltatók",
+ "costTrend": "Költségtrend",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "Legfontosabb modellek",
"requestsInWindow": "Requests In Window",
"tokenUsage": "Token használat",
"totalTokens": "Összes token",
@@ -3859,8 +3863,8 @@
"groupAccount": "Fiók",
"groupServiceTier": "Szolgáltatási szint",
"serviceTierFast": "Gyors",
- "serviceTierFlex": "Flex",
- "serviceTierStandard": "Standard",
+ "serviceTierFlex": "Rugalmas",
+ "serviceTierStandard": "Normál",
"serviceTierBreakdownTitle": "Szolgáltatási szint",
"serviceTierBreakdownSubtitle": "Fast / Flex / Standard felosztás",
"serviceTierUsageSaved": "használat elmentve",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "API végpont",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "Használja az OpenAI-kompatibilis végpontot a legtöbb SDK-val és eszközzel.",
+ "testEndpoint": "Végpont tesztelése →",
+ "advancedProtocols": "Speciális protokollok",
"available": "Elérhető végpontok",
"cloudProxy": "Cloud Proxy",
"disableConfirm": "Biztosan letiltja a felhőproxyt?",
@@ -3896,7 +3900,7 @@
"disableCloud": "Felhő letiltása",
"enableCloud": "Felhő engedélyezése",
"modelsAcrossEndpoints": "{models} modellek {endpoints} végpontokon keresztül",
- "loadingModels": "Loading available models...",
+ "loadingModels": "Az elérhető modellek betöltése...",
"chatDesc": "Streaming és nem streaming csevegés minden szolgáltatóval",
"embeddings": "Beágyazások",
"embeddingsDesc": "Szövegbeágyazások keresési és RAG-folyamatokhoz",
@@ -3906,24 +3910,24 @@
"rerankDesc": "A dokumentumok átsorolása a lekérdezés szempontjából való relevancia szerint",
"audioTranscription": "Hang átírása",
"audioTranscriptionDesc": "Hangfájlok átírása szöveggé (suttogás)",
- "textToSpeech": "Text to Speech",
+ "textToSpeech": "Szövegfelolvasás",
"textToSpeechDesc": "Szöveg átalakítása természetes hangzású beszéddé",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Zenegenerálás",
+ "musicDesc": "Zene és hangsávok generálása a ComfyUI segítségével (Stable Audio, MusicGen)",
"moderations": "Moderálások",
"moderationsDesc": "A tartalom moderálása és biztonsági osztályozása",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
+ "responsesDesc": "OpenAI Responses API a Codexhez és fejlett ügynökalapú munkafolyamatokhoz",
+ "listModelsDesc": "Az összes csatlakoztatott szolgáltató összes elérhető modelljének listázása",
+ "settingsApiDesc": "Az OmniRoute konfigurációjának olvasása és módosítása API-n keresztül",
+ "settingsApi": "Beállítási API",
"categoryCore": "Alap API-k",
"categoryMedia": "Média és Multi-Modális",
- "categorySearch": "Search & Discovery",
+ "categorySearch": "Keresés és felfedezés",
"categoryUtility": "Segédeszközök és Kezelés",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "Webes keresés",
+ "webSearchDesc": "Egységes webes keresés több szolgáltatón keresztül, automatikus tartalékra váltással és gyorsítótárazással",
+ "searchProvider": "Keresési szolgáltató",
+ "searchProviderDesc": "Ez a szolgáltató a POST /v1/search végponton keresztüli webes kereséshez használatos. Nincs szükség modellkonfigurációra — a keresési szolgáltatók egy API-kulcs csatlakoztatása után azonnal használhatók.",
"enableCloudTitle": "Cloud Proxy engedélyezése",
"whatYouGet": "Amit kapsz",
"cloudBenefitAccess": "Hozzáférés az API-jához a világ bármely pontjáról",
@@ -3959,99 +3963,99 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Alagút engedélyezése",
+ "cloudflaredInstallAndEnable": "Telepítés és engedélyezés",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Fut",
+ "cloudflaredStarting": "Indítás",
+ "cloudflaredStoppedState": "Leállítva",
+ "cloudflaredNotInstalled": "Nincs telepítve",
+ "cloudflaredUnsupported": "Nem támogatott",
+ "cloudflaredError": "Hiba",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Legutóbbi hiba: {error}",
"providerModelsTitle": "{provider} – Modellek",
"noModelsForProvider": "Ehhez a szolgáltatóhoz nem állnak rendelkezésre modellek.",
"chat": "Chat",
"embedding": "Beágyazás",
"image": "Kép",
"custom": "szokás",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "modelsCount": "{count, plural, one {# modell} other {# modell}}",
+ "sectionTitle": "Integrációs felület",
+ "sectionDescription": "OpenAI-kompatibilis API-k és operatív protokoll-végpontok",
"tabApis": "API-k",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "Protokollok",
+ "tabsAria": "Végpontszakaszok",
+ "protocolsTitle": "Protokollok",
+ "protocolsDescription": "Az MCP és az A2A első osztályú végpontok, dedikált megfigyelhetőséggel és vezérlési lehetőségekkel.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
+ "mcpCardDescription": "Model Context Protocol stdio kapcsolaton keresztül",
+ "a2aCardTitle": "A2A-kiszolgáló",
+ "a2aCardDescription": "Agent2Agent JSON-RPC-végpont",
+ "protocolToolsLabel": "Eszközök",
+ "protocolTasksLabel": "Feladatok",
"protocolActiveStreamsLabel": "Aktív adatfolyamok",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
+ "protocolLastActivity": "Legutóbbi tevékenység",
+ "quickStart": "Gyors kezdés",
+ "openMcpDashboard": "MCP-kezelés megnyitása",
+ "openA2aDashboard": "A2A-kezelés megnyitása",
+ "mcpQuickStartTitle": "MCP – Gyors kezdés",
+ "mcpQuickStartStep1": "Indítsa el az MCP-kiszolgálót az `omniroute --mcp` paranccsal.",
+ "mcpQuickStartStep2": "Állítsa be az MCP-kliensét, hogy stdio átvitelen keresztül kapcsolódjon.",
+ "mcpQuickStartStep3": "Hívjon meg olyan eszközöket, mint az `omniroute_get_health` és az `omniroute_list_combos`.",
+ "a2aQuickStartTitle": "A2A – Gyors kezdés",
+ "a2aQuickStartStep1": "Az ügynökkártya a `/.well-known/agent.json` címen érhető el.",
+ "a2aQuickStartStep2": "Küldjön JSON-RPC-kéréseket a `POST /a2a` végpontra a `message/send` vagy a `message/stream` használatával.",
"a2aQuickStartStep3": "Kövesse nyomon és vezérelje a feladatokat a `tasks/get` és `tasks/cancel` használatával.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "completionsLegacy": "Szövegkiegészítések (örökölt)",
+ "completionsLegacyDesc": "Örökölt OpenAI-szövegkiegészítések — a prompt karakterlánc és az üzenettömb formátumot egyaránt elfogadja",
"messagesApi": "Üzenetek",
"messagesApiDesc": "Natív Anthropic Messages API formátum Claude-kompatibilis szolgáltatók számára",
"imageEdits": "Képszerkesztések",
"imageEditsDesc": "Meglévő képek szerkesztése és módosítása mesterséges intelligencia segítségével (festés, kifestés, variációk)",
- "batchApi": "Batch API",
+ "batchApi": "Kötegelt API",
"batchApiDesc": "Nagy mennyiségű kérés aszinkron feldolgozása (OpenAI-kompatibilis)",
- "filesApi": "Files API",
+ "filesApi": "Fájlok API-ja",
"filesApiDesc": "Fájlok feltöltése és kezelése kötegelt feldolgozáshoz",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Videógenerálás",
+ "videoDesc": "Videók generálása olyan MI-modellekkel, mint a ComfyUI és a Stable Video Diffusion.",
+ "tailscaleRequestFailed": "Nem sikerült betölteni a Tailscale állapotát",
+ "tailscaleEnableFailed": "Nem sikerült engedélyezni a Tailscale Funnelt",
+ "tailscaleWaitingForLogin": "Fejezze be a Tailscale-bejelentkezést a megnyitott böngészőlapon. Az OmniRoute automatikusan újrapróbálkozik.",
+ "tailscaleLoginTimedOut": "Időtúllépés történt a Tailscale-bejelentkezésre várakozás közben",
+ "tailscaleWaitingForFunnel": "Engedélyezze a Funnelt ezen az eszközön a megnyitott böngészőlapon. Az OmniRoute továbbra is rendszeresen ellenőrzi az állapotot.",
+ "tailscaleFunnelTimedOut": "Időtúllépés történt a Tailscale Funnel engedélyezésére várakozás közben",
+ "tailscaleStarted": "A Tailscale Funnel engedélyezve",
+ "tailscaleDisableFailed": "Nem sikerült letiltani a Tailscale Funnel szolgáltatást",
+ "tailscaleStopped": "A Tailscale Funnel letiltva",
+ "tailscaleInstallFailed": "Nem sikerült telepíteni a Tailscale-t",
+ "tailscaleInstallProgress": "Folyamatban...",
+ "tailscaleInstalled": "A Tailscale sikeresen telepítve",
+ "tailscaleRunning": "Fut",
+ "tailscaleNeedsLogin": "Bejelentkezés szükséges",
+ "tailscaleStoppedState": "Leállítva",
+ "tailscaleNotInstalled": "Nincs telepítve",
+ "tailscaleUnsupported": "Nem támogatott",
+ "tailscaleError": "Hiba",
+ "tailscaleDisable": "Funnel leállítása",
+ "tailscaleInstallAndEnable": "Telepítés és engedélyezés",
+ "tailscaleLoginAndEnable": "Bejelentkezés és engedélyezés",
+ "tailscaleEnable": "Funnel engedélyezése",
+ "tailscaleUrlNotice": "A Tailscale .ts.net-címét használja. Az első használatkor bejelentkezésre és a Funnel jóváhagyására lehet szükség.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "Hitelesítse ezt a gépet a Tailscale-lel, majd engedélyezze a Funnel szolgáltatást.",
+ "tailscaleBinaryPath": "Bináris fájl: {path}",
+ "tailscaleLastError": "Legutóbbi hiba: {error}",
+ "tailscaleInstallTitle": "Tailscale telepítése",
+ "tailscaleInstallIntro": "Telepíti a Tailscale-t erre a gépre, és előkészíti az OmniRoute-ot a Funnel engedélyezésére.",
+ "tailscaleInstallPasswordHint": "macOS és Linux rendszeren sudo használatára lehet szükség a csomag telepítéséhez és a démon elindításához.",
+ "tailscaleSudoPlaceholder": "Opcionális sudo-jelszó",
+ "tailscaleInstalling": "Telepítés folyamatban",
"tailscaleSudoLabel": "Sudo jelszó (macOS/Linux esetén szükséges)",
"ngrokTitle": "ngrok Alagút",
"ngrokRunning": "Futás",
@@ -4104,7 +4108,7 @@
"all": "Összes",
"more": "+{count} további",
"showInternalTooltip": "Belső útvonalak megjelenítése vagy elrejtése (alapértelmezés szerint rejtett)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Bearer-hitelesítés",
"requestBody": "Kéréstörzs",
"close": "Bezárás",
"tryIt": "Kipróbálás",
@@ -4128,21 +4132,21 @@
"vscodeAliasModelsLabel": "VS Code modellek",
"vscodeAliasChatLabel": "VS Code csevegés",
"localServer": "Helyi szerver",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "Felhőalapú OmniRoute",
"copyUrl": "URL másolása",
"badgeLoopbackTooltip": "Ez a végpont csak helyileg érhető el (csak loopback)",
"badgeAlwaysProtectedTooltip": "Ez a végpont mindig védett, és hitelesítést igényel",
"badgeInternalTooltip": "Ez egy belső rendszervégpont",
"tierAll": "Összes",
"tierAuth": "Hitelesített",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Helyi visszacsatolás",
"tierAlwaysProtected": "Mindig védett",
"tierPublic": "Nyilvános",
"hideInternal": "Belsők elrejtése",
"showInternal": "Belsők megjelenítése",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Egyéni rendszerutasítás",
+ "customSystemPromptDescription": "Egyéni rendszerutasítás beillesztése minden modellkérésbe",
+ "customSystemPromptPlaceholder": "pl. Mindig kalóznyelven válaszolj...",
"obsidianEnterToken": "Kérjük, adjon meg egy Obsidian API-tokent",
"obsidianConnectFailed": "Nem sikerült csatlakozni",
"obsidianConnectionFailed": "A csatlakozás sikertelen",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "A token konfigurálva van. A Notion eszközök elérhetők az MCP-n keresztül."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "Végpontproxy",
+ "tabApiEndpoints": "API-végpontok",
+ "apiEndpointsTitle": "API-végpontok",
+ "apiEndpointsDescription": "Más alkalmazások és szolgáltatások által használható háttérrendszeri API-végpontok. Ebben a szakaszban az összes elérhető REST API megjelenik dokumentációval és tesztelési lehetőségekkel.",
+ "comingSoon": "Hamarosan",
+ "plannedFeatures": "Tervezett funkciók",
+ "featureRestApi": "REST API-végpontkatalógus interaktív dokumentációval",
+ "featureWebhooks": "Webhook-konfiguráció és eseményfeliratkozások",
+ "featureSwagger": "OpenAPI / Swagger specifikáció automatikus generálása",
+ "featureAuth": "API-kulcsok és OAuth-hatókörök kezelése végpontonként"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP-irányítópult betöltése...",
+ "activate": "aktiválás",
+ "deactivate": "deaktiválás",
+ "confirmSwitchCombo": "Biztosan végrehajtja ezt a műveletet ({action}) a(z) „{combo}” kombináción?",
+ "switchComboFailed": "Nem sikerült átváltani a kombináció állapotát.",
+ "switchComboSuccess": "A(z) „{combo}” kombináció frissítve.",
+ "confirmApplyProfile": "Alkalmazza a(z) „{profile}” rezilienciaprofilt?",
+ "applyProfileFailed": "Nem sikerült alkalmazni a rezilienciaprofilt.",
+ "applyProfileSuccess": "A(z) „{profile}” profil alkalmazva.",
+ "confirmResetBreakers": "Visszaállítja az összes áramkör-megszakítót?",
+ "resetBreakersFailed": "Nem sikerült visszaállítani az áramkör-megszakítókat.",
+ "resetBreakersSuccess": "Az áramkör-megszakítók visszaállítva.",
+ "processStatus": "Folyamat állapota",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} letiltása",
@@ -4233,119 +4237,119 @@
"mcpStep2": "Konfigurálja az MCP-klienst a stdio átvitelen keresztüli csatlakozáshoz.",
"mcpStep3": "Hívjon meg olyan eszközöket, mint a(z) {code1} és a(z) {code2}.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
+ "sessionUptime": "Munkamenet üzemideje",
+ "lastHeartbeat": "Utolsó életjel",
+ "activity24h": "Aktivitás (24 óra)",
+ "totalCalls": "Összes hívás",
+ "successRate": "Sikerességi arány",
+ "avgLatency": "Átlagos késleltetés",
+ "topTools": "Leggyakrabban használt eszközök",
"noToolCalls24h": "Az elmúlt 24 órában nem érkezett eszközhívás.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
+ "runtimeDetails": "Futásidejű részletek",
+ "transport": "Átviteli protokoll",
+ "scopesEnforced": "Hatókörök kikényszerítve",
+ "yes": "igen",
+ "no": "nem",
+ "lastCall": "Utolsó hívás",
+ "heartbeatPath": "Életjel útvonala",
+ "operationalControls": "Működési vezérlők",
+ "switchCombo": "Kombináció átváltása",
+ "inactive": "inaktív",
+ "active": "aktív",
"activateCombo": "Aktiválja a kombót",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
+ "deactivateCombo": "Kombináció deaktiválása",
+ "applyResilienceProfile": "Rezilienciaprofil alkalmazása",
+ "profileAggressive": "agresszív",
+ "profileBalanced": "kiegyensúlyozott",
+ "profileConservative": "konzervatív",
+ "applyProfile": "Profil alkalmazása",
+ "resetCircuitBreakers": "Áramkör-megszakítók alaphelyzetbe állítása",
+ "resetCircuitBreakersHelp": "Törli a szolgáltatók áramkör-megszakítóinak aktuális állapotát és hibaszámlálóit.",
+ "resetAllBreakers": "Összes megszakító alaphelyzetbe állítása",
+ "toolsAndScopes": "Eszközök és hatókörök",
+ "tableTool": "Eszköz",
+ "tableScopes": "Hatókörök",
"tablePhase": "Fázis",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "Auditnapló",
+ "auditSummary": "Hívások: {total} | {page}. oldal / {totalPages}",
+ "allTools": "Minden eszköz",
+ "allResults": "Minden eredmény",
+ "success": "Sikeres",
+ "failure": "Sikertelen",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "Auditbejegyzések betöltése...",
+ "noAuditEntriesForFilters": "Nem találhatók auditbejegyzések az aktuális szűrőkkel.",
+ "tableTimestamp": "Időbélyeg",
+ "tableDuration": "Időtartam",
+ "tableResult": "Eredmény",
+ "tableApiKey": "API-kulcs",
+ "failed": "sikertelen",
+ "previous": "Előző",
+ "next": "Következő",
+ "apiKeyId": "API-kulcs azonosítója",
+ "offset": "Eltolás",
+ "limit": "Korlát",
+ "tool": "Eszköz"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A irányítópult betöltése...",
+ "confirmCancelTask": "Megszakítja a(z) {taskId} feladatot?",
+ "cancelTaskFailed": "Nem sikerült megszakítani a feladatot.",
+ "cancelTaskSuccess": "A(z) {taskId} feladat megszakítva.",
+ "smokeSendFailed": "A message/send működési próba sikertelen.",
+ "smokeSendSuccessWithTask": "A message/send rendben (feladat: {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "A message/stream működési próba sikertelen.",
+ "smokeStreamSuccessWithTask": "A message/stream rendben (feladat: {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "A message/stream feladatazonosító nélkül fejeződött be.",
+ "health": "Állapot",
"ok": "ok",
- "totalTasks": "Total tasks",
+ "totalTasks": "Feladatok összesen",
"activeStreams": "Aktív adatfolyamok",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "lastTask": "Legutóbbi feladat",
+ "taskStateOverview": "Feladatállapotok áttekintése",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "beküldve",
+ "working": "folyamatban",
+ "completed": "befejezve",
+ "failed": "sikertelen",
+ "cancelled": "megszakítva"
},
- "agentCard": "Agent card",
+ "agentCard": "Ügynökkártya",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "Verzió",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
+ "capabilities": "Képességek",
+ "agentCardNotAvailable": "Az ügynökkártya nem érhető el.",
+ "quickValidation": "Gyors ellenőrzés",
+ "quickValidationDescription": "Próbahívásokat hajt végre az élő `/a2a` végponton keresztül.",
+ "runMessageSend": "message/send futtatása",
+ "runMessageStream": "message/stream futtatása",
+ "taskManagement": "Feladatkezelés",
+ "taskSummary": "{total} feladat | {page}. oldal, összesen: {totalPages}",
+ "allStates": "összes",
+ "allSkills": "összes készség",
+ "loadingTasks": "Feladatok betöltése...",
"noTasksForFilters": "A jelenlegi szűrőkhöz nem található feladat.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "tableTask": "Feladat",
+ "tableSkill": "Készség",
+ "tableState": "Állapot",
+ "tableUpdated": "Frissítve",
+ "tableActions": "Műveletek",
+ "view": "Megtekintés",
+ "cancel": "Megszakítás",
+ "previous": "Előző",
+ "next": "Következő",
+ "taskDetail": "Feladat részletei",
+ "close": "Bezárás",
"metadata": "Metadata",
"events": "Események",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "artifacts": "Mellékletek",
+ "tablePhase": "Táblázatfázis",
+ "offset": "Eltolás",
+ "limit": "Korlát",
+ "skill": "Készség",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "üzenet/küldés",
"rpcMethodStream": "üzenet/folyam",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Műveletek",
+ "addMemory": "Memória hozzáadása",
+ "allTypes": "Minden típus",
"cancel": "Mégsem",
"checkHealth": "Ellenőrizze az egészséget",
"checkingHealth": "Ellenőrzés…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "Hogyan működik",
"howWorksContent": "1. Automatikus kinyerés: minden válasz végén a tények és epizódok automatikusan észlelésre és mentésre kerülnek.\n2. Lekérés: minden válasz előtt a legrelevánsabb emlékek keresése történik FTS5 (pontos), vektoros (szemantikai) vagy hibrid RRF segítségével.\n3. Beillesztés: a releváns emlékek beillesztésre kerülnek az asszisztens kontextusába a válaszminőség javítása érdekében.\n4. Kezelés: ezen az oldalon megtekintheti, szerkesztheti, exportálhatja és tömörítheti a régi emlékeket."
},
- "content": "Content",
+ "content": "Tartalom",
"contentPlaceholder": "Megjegyzendő érték vagy JSON-tartalom",
- "created": "Created",
- "delete": "Delete",
+ "created": "Létrehozva",
+ "delete": "Törlés",
"deleteConfirmDesc": "Ez a művelet nem vonható vissza. Az emlék véglegesen törlődik.",
"deleteConfirmTitle": "Törli az emléket?",
- "description": "View and manage stored memory entries",
+ "description": "Tárolt memóriabejegyzések megtekintése és kezelése",
"editMemory": "Emlék szerkesztése",
"editModal": {
"title": "Emlék szerkesztése",
@@ -4440,20 +4444,20 @@
"configureCta": "Konfigurálás",
"vectorStoreInstallHint": "A vektoros keresés engedélyezéséhez: npm install sqlite-vec (natív Node.js szükséges, nem WASM), majd indítsa újra."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Epizodikus",
+ "export": "Exportálás",
+ "factual": "Tényszerű",
"healthUnknown": "Egészségügyi ismeretlen",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "Találati arány",
+ "import": "Importálás",
"importError": "Nem sikerült a fájl importálása",
"importResult": "{imported} importálva, {skipped} kihagyva",
- "key": "Key",
+ "key": "Kulcs",
"keyPlaceholder": "pl. user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Memóriák",
"next": "Következő",
- "noMemories": "No memories found",
+ "noMemories": "Nem találhatók memóriák",
"pageInfo": "{page}/{totalPages} oldal (összesen {total})",
"pipelineError": "Csővezeték hiba",
"pipelineOk": "A csővezeték rendben ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "Nem sikerült lekérni az előnézetet"
},
"previous": "Előző",
- "procedural": "Procedural",
+ "procedural": "Procedurális",
"qdrant": {
"title": "Qdrant (2. szintű vektortár)",
"description": "Opcionális Qdrant-integráció a skálázható szemantikus kereséshez",
@@ -4530,8 +4534,8 @@
},
"save": "Mentés",
"saving": "Mentés...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Keresés a memóriákban...",
+ "semantic": "Szemantikus",
"summarize": {
"title": "Régi emlékek tömörítése",
"noCandidates": "Nincsenek tömörítésre alkalmas emlékek (feltétel: >30 napos).",
@@ -4540,11 +4544,11 @@
},
"tabs": {
"memories": "Emlékek",
- "playground": "Playground",
- "engine": "Engine"
+ "playground": "Játszótér",
+ "engine": "Motor"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Memóriakezelés",
+ "tokensUsed": "Felhasznált tokenek",
"tooltip": {
"totalEntries": "Az ehhez az API-kulcshoz tárolt összes emlék",
"tokensUsed": "Az aktív emlékek által elfoglalt becsült összes token",
@@ -4554,15 +4558,15 @@
"procedural": "Eljárások, munkafolyamatok és utasítások, amelyeket az asszisztensnek követnie kell",
"semantic": "Fogalmak, preferenciák és tartományismeret"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "Összes bejegyzés",
+ "type": "Típus",
"memoryEnabled": "Memória engedélyezve"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Készségek",
+ "description": "AI-készségek kezelése és felügyelete",
+ "skillsTab": "Készségek",
+ "executionsTab": "Végrehajtások",
"selectSkillToInspect": "Válasszon ki egy képességet a bal oldalon a megtekintéshez.",
"schemaTab": "Séma",
"handlerTab": "Kezelő",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "Teszt futtatása (helyőrző)",
"setModeAria": "{mode} mód beállítása",
"uninstallSkill": "Képesség eltávolítása",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "Tesztkörnyezet",
+ "loading": "Készségek betöltése...",
+ "noSkills": "Nem találhatók készségek",
+ "noExecutions": "Nem találhatók végrehajtások",
+ "enabled": "Engedélyezve",
+ "disabled": "Letiltva",
"delete": "Törlés",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "Verzió",
+ "tableDescription": "Leírás",
+ "skill": "Készség",
+ "status": "Állapot",
+ "duration": "Időtartam",
+ "time": "Idő",
+ "sandboxConfig": "Tesztkörnyezet konfigurációja",
+ "cpuLimit": "CPU-korlát",
+ "cpuLimitDesc": "Képességenkénti maximális végrehajtási idő",
+ "memoryLimit": "Memóriakorlát",
+ "memoryLimitDesc": "Maximális memóriafoglalás",
+ "timeout": "Időtúllépés",
+ "timeoutDesc": "A válaszra való várakozás maximális ideje",
+ "networkAccess": "Hálózati hozzáférés",
+ "networkAccessDesc": "Kimenő hálózati kérések engedélyezése",
+ "mode": "Mód",
"q": "Q",
"filterSkillsPlaceholder": "A készségek szűrése név, leírás vagy címke alapján",
"allModes": "Minden mód",
@@ -4622,7 +4626,7 @@
"marketplaceError": "Sikertelen keresés",
"installingFromMarketplace": "Telepítés a piactérről...",
"popularSkills": "Népszerű képességek",
- "skillsMarketplace": "Skills Marketplace",
+ "skillsMarketplace": "Képességek piactere",
"searching": "Keresés...",
"pageInfo": "{page}. oldal / {totalPages} (összesen {total})",
"previous": "Előző",
@@ -4653,7 +4657,7 @@
"lastCheck": "Utolsó ellenőrzés",
"providerHealth": "Szolgáltató egészsége",
"systemMetrics": "Rendszermetrikák",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Tokenek állapota",
"refreshAll": "Összes frissítése",
"checkNow": "Ellenőrizze most",
"loadingHealth": "Egészségügyi adatok betöltése...",
@@ -4661,13 +4665,13 @@
"retry": "Próbálja újra",
"allOperational": "Minden rendszer működőképes",
"issuesDetected": "Rendszerhibák észlelve",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "Az OmniRoute készen áll",
+ "healthVerdictActionRequired": "Beavatkozás szükséges a teljes működés helyreállításához",
+ "healthVerdictCoolingDown": "Várakozás a legutóbbi módosítások után",
+ "healthSubtitle": "Rendszerállapot ellenőrzése",
+ "advancedDiagnosticsTitle": "Speciális diagnosztika",
+ "hide": "Elrejtés",
+ "show": "Megjelenítés",
"updatedAt": "Frissítve {time}",
"latency": "Látencia",
"latencyP50": "50. o",
@@ -4677,9 +4681,9 @@
"notAvailable": "—",
"totalRequests": "Összes kérés",
"noDataYet": "Még nincsenek adatok",
- "promptCache": "Prompt Cache",
+ "promptCache": "Prompt-gyorsítótár",
"entries": "Bejegyzések",
- "hitRate": "Hit Rate",
+ "hitRate": "Találati arány",
"hitsMisses": "Találatok / hiányzók",
"signatureCache": "Aláírás gyorsítótár",
"signatureDefaults": "Alapértelmezések",
@@ -4694,9 +4698,9 @@
"providers": "Szolgáltatók",
"configuredProvidersLabel": "A műszerfalon konfigurálva",
"configuredProvidersHint": "A /dashboard/providers mappába mentett hitelesítő adatokkal rendelkező szolgáltatók, a futásidejű állapottól függetlenül.",
- "activeProviders": "{count} active",
+ "activeProviders": "{count} aktív",
"activeProvidersHint": "Konfigurált szolgáltatók, amelyek jelenleg engedélyezve vannak az útválasztási kérelmek számára.",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "{count} megfigyelt",
"monitoredProvidersHint": "Azok a szolgáltatók, amelyeket jelenleg a megszakítók állapotfigyelői követnek nyomon.",
"healthyCount": "{count} egészséges",
"nodeVersion": "{version} csomópont",
@@ -4717,11 +4721,11 @@
"resetting": "Visszaállítás...",
"resetAll": "Összes visszaállítása",
"until": "{time}-ig",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "Kimerült",
+ "learnedFromHeaders": "Fejlécekből meghatározva",
+ "remainingOfLimit": "{remaining}/{limit} maradt",
+ "throttleStatus": "Korlátozás: {value}",
+ "lastHeaderUpdate": "Fejléc frissítése: {age}",
"databaseHealth": "Adatbázis állapota",
"databaseHealthDescription": "Elavult kvóta-/tartománysorok és hibás kombinációs hivatkozások diagnosztizálása és javítása.",
"status": "Állapot",
@@ -4769,11 +4773,11 @@
"inactive": "Inaktív",
"noConnectionId": "nincs kapcsolat-azonosító",
"accountModelSummary": "{connectionId} · {count} modell",
- "cooldown": "cooldown",
+ "cooldown": "várakozás",
"durationRemaining": "{duration} van hátra",
"noSyncedModelsOrTraffic": "Még nincsenek szinkronizált modellek vagy friss forgalom.",
"providerRowSummary": "{active}/{total} aktív fiók · {requests} kérés · {successRate} sikeres · {latency} átl.",
- "cooldownCount": "{count} cooldown",
+ "cooldownCount": "{count} várakozik",
"lockoutCount": "{count} kizárás",
"issueCount": "{count} probléma",
"score": "Pontszám",
@@ -4848,7 +4852,7 @@
},
"limits": {
"title": "Korlátok és kvóták",
- "rateLimit": "Rate Limit",
+ "rateLimit": "Sebességkorlát",
"remaining": "Maradt",
"requestsPerMinute": "Kérések/perc",
"tokensPerMinute": "Token/perc",
@@ -4884,28 +4888,28 @@
"previous": "Előző",
"next": "Következő",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "Részletek megtekintése",
+ "eventMetadata": "Esemény metaadatai",
+ "eventPayload": "Esemény tartalma",
+ "requestId": "Kérésazonosító",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
+ "offset": "Eltolás",
+ "limit": "Korlát",
+ "status": "Állapot",
+ "resourceType": "Erőforrás típusa",
+ "totalEntries": "Bejegyzések száma",
+ "tab": "Lap",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "Bezárás",
+ "runningRequests": "Aktív kérések",
+ "runningRequestsDesc": "A jelenleg futó upstream kérések valós idejű nézete",
"clearAll": "Összes törlése",
"confirmClearActiveRequests": "Törli az összes aktív kérést?",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "Modell",
+ "provider": "Szolgáltató",
+ "account": "Fiók",
+ "elapsed": "Eltelt idő",
"activeStage": "Szakasz",
"activeStageUnknown": "Még nincs elküldve az upstreamnek",
"activeStageRegistered": "Regisztrálva",
@@ -4915,38 +4919,38 @@
"activeStageRateLimitSlotAcquired": "Sebességkorlát-hely megszerezve",
"activeStageSendingToProvider": "Küldés az upstreamnek",
"activeStageProviderResponseStarted": "Upstream válasz elindult",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "Darabszám",
+ "payloads": "Adatcsomagok",
+ "viewPayloads": "Megtekintés",
+ "activeCount": "{count} aktív",
+ "clientPayload": "Klienskérés adatcsomagja",
+ "upstreamPayload": "Upstream szolgáltató adatcsomagja",
+ "upstreamNotSentYet": "Még nincs elküldve az upstream szolgáltatónak",
+ "runningRequestDetailMeta": "Fiók: {account} — Eltelt idő: {elapsed}",
+ "export": "Exportálás",
+ "exporting": "Exportálás...",
+ "exportFailed": "Az exportálás sikertelen",
"cleanHistoryButton": "Előzmények törlése",
"cleanHistoryTitle": "Törli a naplózási előzményeket?",
"cleanHistoryMessage": "Ez véglegesen törli az összes kérésnapló-sort, a korábbi részletsorokat és a DATA_DIR/call_logs alatti helyi artifact fájlokat. Az élő oldal a tisztítás után frissülni fog.",
"cleanHistoryConfirm": "Előzmények törlése",
"cleanHistoryCancel": "Mégse",
"cleanHistorySuccess": "Törölve lett {deleted} naplóbejegyzés, {deletedArtifacts} artifact és {deletedDetailedLogs} korábbi részletsor.",
- "cleanHistoryEmpty": "No request log history was found.",
- "cleanHistoryFailed": "Failed to clean log history.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "cleanHistoryEmpty": "Nem található kérésnapló-előzmény.",
+ "cleanHistoryFailed": "Nem sikerült törölni a naplóelőzményeket.",
+ "timeRange": "Időtartomány",
+ "lastNHours": "Legutóbbi {hours}",
+ "defaultRange": "alapértelmezett",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
- "filterByLevel": "Filter by log level",
- "searchPlaceholder": "Search logs…",
- "searchAria": "Search log entries",
- "disableAutoScroll": "Disable auto-scroll",
- "enableAutoScroll": "Enable auto-scroll",
- "autoScroll": "Auto-scroll",
+ "fetchFailed": "Nem sikerült lekérni a naplókat",
+ "copyFailed": "Nem sikerült másolni a naplóbejegyzést",
+ "copyLogEntry": "Naplóbejegyzés másolása",
+ "filterByLevel": "Szűrés naplózási szint szerint",
+ "searchPlaceholder": "Keresés a naplókban…",
+ "searchAria": "Keresés a naplóbejegyzésekben",
+ "disableAutoScroll": "Automatikus görgetés kikapcsolása",
+ "enableAutoScroll": "Automatikus görgetés bekapcsolása",
+ "autoScroll": "Automatikus görgetés",
"entryCount": "{count, plural, one {# bejegyzés} other {# bejegyzés}}",
"lastHour": "Elmúlt 1 óra",
"updatedAt": "Frissítve: {time}",
@@ -4971,7 +4975,7 @@
"skip": "Kihagyás",
"skipWizard": "A varázsló teljes kihagyása",
"skipPassword": "A jelszó beállításának kihagyása",
- "skipAndContinue": "Skip & Continue",
+ "skipAndContinue": "Kihagyás és folytatás",
"passwordLabel": "Jelszó",
"confirmPassword": "Jelszó megerősítése",
"enterPassword": "Írja be a jelszót",
@@ -4983,9 +4987,9 @@
"multiProvider": "Több szolgáltató",
"usageTracking": "Használat követése",
"securityDesc": "Állítson be jelszót az irányítópult védelméhez, vagy most hagyja ki.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ Jelszó nélkül a beállítás során nem tud szolgáltatókat hozzáadni. Később, a jelszó beállítása után az irányítópulton adhatja hozzá őket.",
"providerDesc": "Csatlakoztassa első AI-szolgáltatóját. Később továbbiakat is hozzáadhat.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "Szolgáltatók hozzáadásához először be kell állítania egy jelszót. Lépjen vissza a biztonsági lépéshez, és állítson be egy jelszót, vagy később adjon hozzá szolgáltatókat az irányítópulton.",
"apiKeyRequired": "API-kulcs (kötelező)",
"customUrlOptional": "Egyéni URL (nem kötelező)",
"testDesc": "Ellenőrizzük, hogy működik-e a szolgáltatói kapcsolat.",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "Importálás…",
"importFromFileImport": "{count} szolgáltató importálása",
"importFromFileResult": "Sikeresen importálva: {success} szolgáltató ({failed} sikertelen)",
+ "importFromFileDownloadTemplate": "CSV-sablon letöltése",
+ "importFromFileMoreErrors": "+ további {count}",
+ "importFromFileSchemaHint": "A CSV-oszlopok sorrendje kötött: provider, name, apiKey, baseUrl (nem kötelező), priority (nem kötelező). A provider oszlopnak egy meglévő felügyelt szolgáltatói azonosítót vagy egy már regisztrált, OpenAI/Anthropic-kompatibilis csomópontazonosítót kell tartalmaznia — ez az importálás nem hoz létre új végpontcsomópontokat.",
"adaptaTutorial": {
"title": "Az Adapta Web csatlakoztatása",
"introPrefix": "Az Adapta a Clerk segítségével hitelesít. A token",
@@ -5123,7 +5130,7 @@
"freeProviders": "Ingyenes szolgáltatók",
"apiKeyProviders": "API kulcs szolgáltatók",
"compatibleProviders": "API-kulcs-kompatibilis szolgáltatók",
- "testAll": "Test All",
+ "testAll": "Összes tesztelése",
"reorderByAvailability": "Újrarendezés",
"reorderByAvailabilityTitle": "Kapcsolatok újrarendezése elérhetőség szerint",
"reorderByAvailabilityError": "A kapcsolatok elérhetőség szerinti újrarendezése sikertelen",
@@ -5161,8 +5168,8 @@
"modelsHiddenCount": "{count} rejtett",
"warningCount": "{count} Figyelmeztetés",
"noConnections": "Nincsenek kapcsolatok",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "Lejárt",
+ "expiringSoonBadge": "Hamarosan lejár",
"freeTier": "Ingyenes szint",
"freeTierAvailable": "Ingyenes szint elérhető",
"hasFreeTooltip": "Ingyenes csomag elérhető",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "Ez a szolgáltató elavult",
"riskNotice": {
"title": "Mielőtt folytatná",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Használati megjegyzések",
"tooltip": "Használati figyelmeztetésekkel rendelkező szolgáltató — kattintson a részletekért",
"oauth": "Ez a szolgáltató a hivatalos termékmunkamenetet/OAuth-ot használja, amely nem engedélyezett proxy/router használatra. Nem javasoljuk az intenzív autonóm ágens használatot (OpenCloud-stílusú, hosszú, többlépéses folyamatok, nagy kötegek) — az upstream szolgáltató a fiók korlátozásával vagy kitiltásával reagálhat. Saját felelősségre használja.",
"webCookie": "Ez a szolgáltató a webes munkamenet-sütik segítségével hitelesít. Az upstream szolgáltatás bármikor érvénytelenítheti a munkamenetet, ami újbóli bejelentkezést igényel. Hosszú, felügyelet nélküli műveletekhez nem ajánlott. Saját felelősségre használja.",
@@ -5184,9 +5191,9 @@
"cancel": "Mégse"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} kapcsolat megjelölve — legfeljebb {maxFailures} legutóbbi hiba{lastFailureSuffix}. Kattintson a kapcsolat állapotának megtekintéséhez.",
+ "lastFailureSuffix": "(utolsó hiba: {time})",
+ "ariaLabel": "Kapcsolatállapot részleteinek megtekintése, {count} figyelmeztetés"
},
"disabled": "Letiltva",
"enableProvider": "Szolgáltató engedélyezése",
@@ -5221,7 +5228,7 @@
"failedCreate": "Nem sikerült létrehozni a szolgáltatót",
"errorOccurred": "Hiba történt. Kérjük, próbálja újra.",
"modelStatus": "Modell állapota",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "Csak konfiguráltak",
"allModelsOperational": "Minden modell működőképes",
"modelsWithIssues": "{count} problémákkal küzdő modell(ek).",
"allModelsNormal": "Minden modell normálisan reagál.",
@@ -5232,7 +5239,7 @@
"clearing": "Törlés...",
"until": "{time}-ig",
"providerTestFailed": "A szolgáltató tesztje sikertelen",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "A szolgáltató tesztje túllépte az időkorlátot — túl sok kapcsolatot próbált egyszerre tesztelni",
"modeTest": "{mode} Teszt",
"passedCount": "{count} sikeres",
"failedCount": "{count} sikertelen",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "Ikon URL-címe",
"iconUrlHint": "Opcionális. A szolgáltató ikonjaként megjelenő kép URL-címe.",
"iconUrlInvalid": "Érvénytelen ikon URL. Használjon http(s):// vagy data:image/*;base64 URL-t.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Napi kvóta visszaállításának időzónája",
+ "dailyQuotaResetTimezoneHint": "Nem kötelező IANA-időzóna, amely akkor használatos, ha a felsőbb szintű szolgáltatás kihagyja az X-RateLimit-Reset értéket. Hagyja üresen a rövid várakozási idő megtartásához.",
+ "dailyQuotaResetHourLabel": "Napi kvóta visszaállításának órája",
+ "dailyQuotaResetHourHint": "Helyi óra 0–23 között a fenti időzónában. Ha üres, nincs csomópontszintű időzítés.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "Szolgáltató nem található",
"deleteConnectionConfirm": "Törli ezt a kapcsolatot?",
"deleteConnectionConfirmNamed": "Biztosan törli a következőt: {name}? Ez a művelet nem vonható vissza.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Kijelöltek törlése ({count})",
+ "batchDeleteConfirm": "Törli ezt a(z) {count} kapcsolatot? Ez a művelet nem vonható vissza.",
+ "batchDeleteSuccess": "{count} kapcsolat törölve",
"batchActivateSelected": "Aktiválás",
"batchDeactivateSelected": "Deaktiválás",
"batchRetestSelected": "Újratesztelés",
@@ -5288,7 +5295,7 @@
"filterError": "Hiba",
"filterBanned": "Letiltva",
"filterCreditsExhausted": "Elfogyott kreditek",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Fiókok keresése…",
"noFilteredConnections": "Egyetlen kapcsolat sem felel meg a jelenlegi szűrőnek.",
"failedSetAlias": "Nem sikerült beállítani az aliast",
"setAliasSuccess": "A(z) {alias} alias beállítva",
@@ -5301,14 +5308,14 @@
"openaiCompatibleDetails": "OpenAI-kompatibilis részletek",
"messagesApi": "Messages API",
"responsesApi": "Válaszok API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Beágyazások",
+ "audioTranscriptions": "Hangátiratok",
+ "audioSpeech": "Beszédszintézis",
+ "imagesGenerations": "Képgenerálás",
"chatCompletions": "Csevegés befejezése",
"importingModels": "Importálás...",
"importFromModels": "Importálás a /models-ből",
- "modelsImported": "{count} models imported",
+ "modelsImported": "{count} modell importálva",
"allModelsAlreadyImported": "Minden modell már importálva van",
"noNewModelsToImport": "Nincs új modell az importáláshoz — minden modell már a nyilvántartásban vagy az egyéni modellek listájában van",
"skippingExistingModels": "{count} meglévő modell kihagyása",
@@ -5328,7 +5335,7 @@
"autoSyncTooltip": "A modelllista automatikus frissítése 24 óránként (konfigurálható: MODEL_SYNC_INTERVAL_HOURS)",
"autoSyncEnabled": "Automatikus szinkronizálás engedélyezve – a modellek rendszeresen frissülnek",
"autoSyncDisabled": "Az automatikus szinkronizálás letiltva",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
+ "autoSyncToggleFailed": "Az automatikus szinkronizálás átkapcsolása sikertelen",
"autoSyncPartialFailure": "Az automatikus szinkronizálás frissült néhány kapcsolatnál, de nem mindnél",
"clearAllModels": "Minden modell törlése",
"clearAllModelsConfirm": "Biztosan eltávolítja ennek a szolgáltatónak az összes modelljét? Ezt nem lehet visszavonni.",
@@ -5341,34 +5348,34 @@
"failedFetchModels": "Nem sikerült lekérni a modelleket",
"noFreeModelsFound": "Nem találhatók ingyenes modellek ehhez a szolgáltatóhoz — semmi sem lett importálva.",
"fetchModelsSuccess": "{count} új modell található",
- "fetchModelsFailed": "Could not auto-fetch models (you can retry from settings)",
+ "fetchModelsFailed": "A modelleket nem sikerült automatikusan lekérni (a beállításokban újrapróbálhatja)",
"noModelsFound": "Nem található modell",
"importFailed": "Az importálás sikertelen",
"noNewModelsAdded": "Nem adtak hozzá új modelleket.",
"adding": "Hozzáadás...",
- "close": "Close",
+ "close": "Bezárás",
"importingModelsTitle": "Modellek importálása",
"copyModel": "Modell másolása",
"filterModels": "Modellek szűrése…",
- "testAllRateLimited": "Rate limit reached, stopped early",
- "hideFailedAuto": "Auto-hide failed models",
- "selectAllModels": "Select all",
- "hideAllModels": "Hide all",
+ "testAllRateLimited": "Elérte a sebességkorlátot, ezért a folyamat idő előtt leállt",
+ "hideFailedAuto": "Sikertelen modellek automatikus elrejtése",
+ "selectAllModels": "Összes kijelölése",
+ "hideAllModels": "Összes elrejtése",
"modelsActive": "aktív",
"showModel": "Modell megjelenítése",
"hideModel": "Modell elrejtése",
"removeModel": "Modell eltávolítása",
"rateLimitProtected": "Védett",
"rateLimitUnprotected": "Nem védett",
- "providerQuotaShort": "Quota",
- "hideConnectionFromProviderQuota": "Hide this account from Provider Quota",
- "showConnectionInProviderQuota": "Show this account in Provider Quota",
- "quotaVisibilityUpdateFailed": "Failed to update Provider Quota visibility",
+ "providerQuotaShort": "Kvóta",
+ "hideConnectionFromProviderQuota": "A fiók elrejtése a szolgáltatói kvótából",
+ "showConnectionInProviderQuota": "A fiók megjelenítése a szolgáltatói kvótában",
+ "quotaVisibilityUpdateFailed": "Nem sikerült frissíteni a szolgáltatói kvótában való láthatóságot",
"enableRateLimitProtection": "Kattintson a sebességkorlátozás védelem engedélyezéséhez",
"disableRateLimitProtection": "Kattintson a rátakorlát védelmének letiltásához",
- "testAllProgress": "Tested {done}/{total}",
- "testAllFailedHidden": "{count} failed models hidden",
- "testAllDone": "All models tested",
+ "testAllProgress": "Tesztelve: {done}/{total}",
+ "testAllFailedHidden": "{count} sikertelen modell elrejtve",
+ "testAllDone": "Minden modell tesztelve",
"productionKey": "Gyártási kulcs",
"enterNewApiKey": "Adja meg az új API-kulcsot",
"codexApplyModalTitle": "Jelentkezzen a Local Codex-nél",
@@ -5382,13 +5389,13 @@
"bulkAddFormatHint": "Soronként egy kulcs. Formátum: name|apiKey vagy csak apiKey (index által automatikusan elnevezett).",
"bulkValidateKeys": "Mentés előtt minden kulcs érvényesítése (lassabb)",
"bulkAddAllKeys": "Összes kulcs hozzáadása",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {# kulcs hozzáadva} other {# kulcs hozzáadva}}",
+ "bulkFailedCount": "{count, plural, one {# sikertelen} other {# sikertelen}}",
"optional": "Választható",
"anthropicCompatibleName": "Antropikus kompatibilis",
"openaiCompatibleName": "OpenAI kompatibilis",
- "compatibleDefaultModelLabel": "Default Model",
- "compatibleDefaultModelHint": "Enter the model ID exactly as your compatible endpoint expects it. This model will be saved as the connection default.",
+ "compatibleDefaultModelLabel": "Alapértelmezett modell",
+ "compatibleDefaultModelHint": "Adja meg a modellazonosítót pontosan úgy, ahogyan azt a kompatibilis végpont elvárja. Ez a modell lesz a kapcsolat alapértelmezett modellje.",
"failedImportModels": "A modellek importálása sikertelen",
"noModelsReturnedFromEndpoint": "Nincsenek visszaadott modellek a /models végpontról.",
"importingModelsProgress": "{current}/{total} modell importálása...",
@@ -5400,7 +5407,7 @@
"unexpectedErrorOccurred": "Váratlan hiba történt",
"getApiKey": "API kulcs beszerzése",
"getApiKeyDescription": "Regisztrálj vagy jelentkezz be egy API kulcsért",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# kapcsolat} other {# kapcsolat}}",
"messagesPath": "üzeneteket",
"responsesPath": "válaszokat",
"chatCompletionsPath": "chat/befejezések",
@@ -5415,17 +5422,17 @@
"configured": "konfigurálva",
"providerProxyConfigureHint": "Konfigurálja a proxyt a szolgáltató összes kapcsolatához",
"providerProxy": "Szolgáltató proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": ".env javítása",
+ "repairEnvWorking": "Javítás...",
+ "repairEnvHint": "A hiányzó alapértelmezett OAuth-értékek visszaállítása a .env fájlban a meglévő értékek felülírása nélkül.",
+ "repairEnvSuccess": "Az alapértelmezett OAuth-értékek visszaállítva",
+ "repairEnvFailed": "A .env javítása sikertelen",
"noConnectionsYet": "Még nincsenek kapcsolatok",
"addFirstConnectionHint": "A kezdéshez adja hozzá az első kapcsolatot",
"addConnection": "Csatlakozás hozzáadása",
"availableModels": "Elérhető modellek",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "Beépített modellek",
+ "builtInModelsHint": "A szolgáltatóhoz tartozó beállításjegyzék-modellek. A kompatibilitási beállításokat a ceruza ikonnal adhatja meg.",
"pageAutoRefresh": "Az oldal automatikusan frissül...",
"statusDisabled": "letiltva",
"statusConnected": "csatlakoztatva",
@@ -5471,24 +5478,24 @@
"reauthenticateConnection": "Hitelesítse újra ezt a kapcsolatot",
"proxyConfig": "Proxy konfig",
"aliasExistsAlert": "A \"{alias}\" alias már létezik. Kérjük, használjon másik modellt, vagy módosítsa a meglévő álnevet.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "álnév",
+ "clickToSetAlias": "Kattintson az álnév beállításához",
+ "clickToEditAlias": "Álnév: {alias} (kattintson a szerkesztéshez)",
"openRouterAnyModelHint": "Az OpenRouter bármilyen modellt támogat. Adjon hozzá modelleket és hozzon létre álneveket a gyors hozzáférés érdekében.",
"modelIdFromOpenRouter": "Modellazonosító (az OpenRoutertől)",
"openRouterModelPlaceholder": "antropikus/claude-3-opus",
"customModels": "Egyedi modellek",
"customModelsHint": "Adjon hozzá olyan modellazonosítókat, amelyek nem szerepelnek az alapértelmezett listában. Ezek elérhetők lesznek az útválasztáshoz.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "Az eszközhívási azonosítók normalizálása 9 karakteresre (pl. Mistral)",
+ "preserveDeveloperRoleLabel": "Az OpenAI Responses fejlesztői szerepkörének megtartása (ne legyen system szerepkörre leképezve)",
+ "compatAdjustmentsTitle": "Kompatibilitás",
+ "compatButtonLabel": "Kompatibilitás",
+ "compatToolIdShort": "9 karakteres eszközazonosító",
+ "compatDeveloperShort": "Fejlesztői szerepkör",
+ "compatDoNotPreserveDeveloper": "Ne őrizze meg a fejlesztői szerepkört",
+ "compatBadgeNoPreserve": "Ne őrizze meg",
+ "compatProtocolLabel": "Klienskérés protokollja",
+ "compatProtocolHint": "Ezek a beállítások akkor érvényesek, amikor az OmniRoute ezt a kérésformátumot észleli (OpenAI Chat, Responses API vagy Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5496,7 +5503,7 @@
"targetFormatHint": "A felsőbb szintű átviteli formátum felülírása. Használja az 'Anthropic Messages' beállítást az OpenAI-kompatibilis szolgáltatók (pl. opencode-go) /v1/messages végponton keresztüli átirányításához.",
"targetFormatAuto": "Alapértelmezett (automatikus)",
"targetFormatGemini": "Gemini",
- "targetFormatAntigravity": "Antigravity",
+ "targetFormatAntigravity": "Antigravitáció",
"contextWindowOverrideLabel": "Kontextusablak felülírása",
"contextWindowOverridePlaceholder": "pl. 131072",
"contextWindowOverrideHint": "Állítsa be manuálisan a modell valós kontextusablakát (tokenekben), ha a szolgáltató hibásan jelenti azt. Elsőbbséget élvez az automatikusan észlelt/katalógusértékekkel szemben, és megakadályozza, hogy a kombinált útvonalválasztás eldobja a modellt.",
@@ -5530,25 +5537,25 @@
"interceptFetchHint": "A natív web_fetch eszközhívások átírása az OmniRoute /v1/web/fetch végpontjára.",
"interceptionLoadError": "Nem sikerült betölteni az elfogási beállításokat: {error}",
"interceptionSaveError": "Nem sikerült menteni az elfogási beállításokat: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "ccAliasSectionTitle": "Megjelenítés a Claude Code-ban (claude/…)",
+ "ccAliasSectionHint": "A szolgáltató modelljeinek meghirdetése claude/<provider>/<model> tükörazonosítók alatt, hogy a Claude Code átjárójának modellfelderítése listázhassa őket. Alapértelmezés szerint ki van kapcsolva — bekapcsolása minden kliensnél megduplázza a katalógusbejegyzéseket.",
+ "ccAliasProviderLevelLabel": "Szolgáltatói alapértelmezés",
+ "ccAliasModelOverridesLabel": "Modellenkénti felülírások",
+ "ccAliasModelOverrideAriaLabel": "Felülírás ehhez: {modelId}",
+ "ccAliasStateInherit": "Öröklés",
+ "ccAliasStateOn": "Be",
+ "ccAliasStateOff": "Ki",
+ "ccAliasAddModelPlaceholder": "Modellazonosító (pl. gpt-4o)",
+ "ccAliasAddModelButton": "Felülírás hozzáadása",
+ "ccAliasLoadError": "A felderítési álnevek beállításainak betöltése sikertelen: {error}",
+ "ccAliasSaveError": "A felderítési álnév beállításának mentése sikertelen: {error}",
+ "compatUpstreamHeadersLabel": "További upstream fejlécek",
+ "compatUpstreamHeadersHint": "Magas jogosultságú beállítás — ugyanolyan bizalmi szintet igényel, mint a szolgáltatói API-hitelesítő adatok szerkesztése; csak megbízható rendszergazdák használják. Az OmniRoute által a szolgáltatói API-kulcsból hozzáadott hitelesítés után kerül egyesítésre. Ha egy egyéni fejléc neve megegyezik egy meglévőével (pl. Authorization), az Ön értéke teljesen felülírja az automatikusan létrehozott fejlécet (a Bearer tokent is beleértve) — az upstream csak a beírt értéket látja, a beállításokban szereplő kulcsot nem. A helytelen konfiguráció 401-es hibát vagy hibás upstream-hitelesítést okozhat. Fejlécenként egy sor adható meg (pl. további Authentication egyes átjárókhoz). Az előnézethez vigye az egérmutatót az érték fölé, vagy helyezze rá a fókuszt. Mentés a fókusz elvesztésekor, a panelen kívülre kattintáskor vagy a panel bezárásakor.",
+ "compatUpstreamHeaderName": "Fejléc neve",
+ "compatUpstreamHeaderValue": "Érték",
+ "compatUpstreamAddRow": "Fejléc hozzáadása",
+ "compatUpstreamRemoveRow": "Sor eltávolítása",
+ "compatBadgeUpstreamHeaders": "Fejlécek",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
"importFreeModelsOnlyLabel": "Csak ingyenes modellek importálása",
@@ -5588,26 +5595,26 @@
"email": "E-mail",
"healthCheckMinutes": "állapotfelmérés (perc)",
"healthCheckHint": "Proaktív token frissítési időköz. 0 = letiltva.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "deselectAllModels": "Összes kijelölésének megszüntetése",
+ "modelsActiveCount": "{active}/{total} aktív",
+ "noModelsMatch": "Egyetlen modell sem felel meg ennek: „{filter}”",
+ "groupLabel": "Környezet",
+ "groupPlaceholder": "pl. eKaizen, Személyes",
"failedTestConnection": "Nem sikerült tesztelni a kapcsolatot",
"failed": "Sikertelen",
"leaveBlankKeepCurrentApiKey": "Hagyja üresen az aktuális API-kulcs megtartásához.",
"editCompatibleTitle": "Szerkesztés {type} Kompatibilis",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "A(z) {type}-kompatibilis API gyökér-URL-je. Egyéni végpontútvonalakhoz használja a Speciális beállításokat.",
"apiKeyForCheck": "API-kulcs (ellenőrzéshez)",
"testModelIdLabel": "Modellazonosító (opcionális)",
"testModelIdPlaceholder": "pl. my-model-id",
"testModelIdHint": "Ha a szolgáltató nem rendelkezik /models végponttal, adjon meg egy modellazonosítót a /chat/completions végponton keresztüli ellenőrzéshez.",
"compatibleProdPlaceholder": "{type} Kompatibilis (termék)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "A token sikeresen frissült",
+ "tokenRefreshFailed": "A token frissítése sikertelen",
"cursorSessionUnchanged": "A munkamenet már aktuális",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Hitelesítés alkalmazása",
+ "exportCodexAuthFile": "Hitelesítés exportálása",
"applyClaudeAuthLocal": "Hitelesítés alkalmazása",
"exportClaudeAuthFile": "Hitelesítés exportálása",
"importClaudeAuth": "Hitelesítés importálása",
@@ -5654,7 +5661,7 @@
"geminiAuthApplyFailed": "Nem sikerült helyileg alkalmazni a Gemini hitelesítést",
"geminiAuthExported": "Gemini auth fájl exportálva",
"geminiAuthExportFailed": "Nem sikerült exportálni a Gemini auth fájlt",
- "geminiImportModalTitle": "Import Gemini Auth",
+ "geminiImportModalTitle": "Gemini Auth importálása",
"geminiImportTabSingle": "Egyetlen",
"geminiImportTabBulk": "Tömeges",
"geminiImportTabUpload": "Fájl feltöltése",
@@ -5700,7 +5707,7 @@
"codexExternalLinkConnected": "Codex fiók csatlakoztatva a külső linken keresztül.",
"codexExternalLinkExpired": "A link lejárt a befejezés előtt.",
"importCodexAuth": "Hitelesítés importálása",
- "codexImportModalTitle": "Import Codex Auth",
+ "codexImportModalTitle": "Codex Auth importálása",
"codexImportTabSingle": "Egyetlen",
"codexImportTabBulk": "Tömeges",
"codexImportTabUpload": "Fájl feltöltése",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} sikertelen",
"codexImportBulkZipExtracting": "ZIP kibontása…",
"codexImportBulkZipError": "A ZIP kibontása nem sikerült",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Speciális beállítások",
+ "chatPathLabel": "Csevegési végpont útvonala",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Egyéni csevegési útvonal nem szabványos API-kkal rendelkező szolgáltatókhoz (pl. /v4/chat/completions)",
+ "modelsPathLabel": "Modellek végpontjának útvonala",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Egyéni modellútvonal az ellenőrzéshez (pl. /v4/models)",
"clientIdentityLabel": "Kliens identitás",
- "clientIdentityHint": "Optional. Adds client fingerprint headers (e.g. User-Agent) matching a known CLI for compatible gateways that expect one.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "clientIdentityHint": "Nem kötelező. Egy ismert CLI-nek megfelelő kliens-ujjlenyomat-fejléceket (pl. User-Agent) ad hozzá az ilyen fejlécet elváró kompatibilis átjárókhoz.",
+ "statusDeactivated": "Deaktiválva (manuálisan)",
+ "statusBanned": "Kitiltva / Sandbox-szabálysértés",
+ "statusCreditsExhausted": "Elégtelen egyenleg / kimerült kvóta",
+ "showEmails": "Összes e-mail-cím megjelenítése",
+ "hideEmails": "Összes e-mail-cím elrejtése",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Adjon hozzá egy másik API-kulcsot, vagy illesszen be több kulcsot",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
- "enterpriseCloud": "Enterprise & Cloud",
- "apiFormatLabel": "Api Format Label",
+ "aggregatorsGateways": "Aggregátorok és átjárók",
+ "enterpriseCloud": "Vállalati és felhőalapú",
+ "apiFormatLabel": "API-formátum címkéje",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "Kínai API-régió",
+ "apiRegionHint": "API-régió súgószövege",
+ "apiRegionInternational": "Nemzetközi API-régió",
+ "apiRegionLabel": "API-régió címkéje",
+ "apikey": "API-kulcs",
+ "audio": "Hang",
+ "audioProvidersHeading": "Hangszolgáltatók címsora",
"cloudAgentProviders": "Cloud Agent szolgáltatók",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Hang rövid címkéje",
+ "azureOpenAiBaseUrlHint": "Azure OpenAI alap-URL súgója",
+ "bailianBaseUrlHint": "Bailian alap-URL súgója",
+ "claudeWebCookieHint": "Nyisd meg a claude.ai oldalt → DevTools → Application → Cookies → claude.ai, majd másold ki a „sessionKey” értékét. A Cloudflare használatához a cf_clearance, __cf_bm és _cfuvid értékekre is szükség van.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web cookie súgója",
+ "blackboxWebCookiePlaceholder": "Blackbox Web cookie helyőrzője",
"t3ChatWebCookieHint": "Nyissa meg a t3.chat → DevTools → Alkalmazás → Helyi tárhely → https://t3.chat menüpontot, másolja ki a 'convex-session-id'-t. Ezután nyissa meg a DevTools → Network lehetőséget, és másolja ki a teljes Cookie fejlécet bármely csevegési kérelemből. Illessze be mindkét értéket az alábbi mezőkbe.",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web cookie súgója",
"blockClaudeExtraUsageDescription": "Ha engedélyezve van, az OmniRoute azonnal nem elérhetővé jelöli ezt a Claude kapcsolatot, amint a használati API sorban álló extra használatot jelent, így a visszaállás egy másik kapcsolatra vált, ahelyett, hogy folytatná a fizess, ahogy használod extra számlázást.",
"blockClaudeExtraUsageLabel": "Blokkolja az extra Claude használatát",
- "disableCoolingDescription": "Skip the transient cooldown so this connection stays eligible even after recoverable errors (terminal states like banned/expired still apply).",
+ "disableCoolingDescription": "Az átmeneti várakozási idő kihagyása, hogy ez a kapcsolat helyreállítható hibák után is használható maradjon (a végleges állapotok, például a letiltás vagy lejárat továbbra is érvényesek).",
"disableCoolingLabel": "Lehűlési idő (cooldown) letiltása ehhez a kapcsolathoz",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 kulcs hozzáadva} other {# kulcs hozzáadva}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 ismétlődő kulcs kihagyva} other {# ismétlődő kulcs kihagyva}}",
+ "bulkPasteHint": "Illessz be soronként egy API-kulcsot. Az üres sorokat figyelmen kívül hagyjuk, az ismétlődő kulcsokat pedig kihagyjuk.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Hozzáadja a redact-thinking béta fejlécet azokhoz a CC Compatible upstream szolgáltatásokhoz, amelyek rejtett Claude gondolkodási adatfolyamokat igényelnek.",
+ "ccCompatibleRedactThinkingLabel": "A redact-thinking béta engedélyezése",
+ "ccCompatibleSummarizeThinkingDescription": "Hozzáadja a `display: \"summarized\"` értéket a CC Compatible gondolkodási kérelmekhez, így a támogatott Claude modellek látható gondolkodási változásokat közvetítenek.",
+ "ccCompatibleSummarizeThinkingLabel": "Az összefoglalt gondolkodás megjelenítésének engedélyezése",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "A prioritásos szolgáltatási szint használata a Codex-kérelmekhez, amikor elérhető.",
+ "codexFastServiceTierLabel": "Codex gyors szolgáltatási szint",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "Kompatibilis upstream fejléc nevének helyőrzője",
+ "compatUpstreamHeaderValuePlaceholder": "Kompatibilis upstream fejléc értékének helyőrzője",
+ "compatible": "Kompatibilis",
+ "configuredCount": "Konfigurált elemek száma",
+ "consoleApiKeyOracleHint": "A konzol API-kulcsához tartozó Oracle súgója",
+ "consoleApiKeyOracleLabel": "A konzol API-kulcsához tartozó Oracle címkéje",
+ "consoleApiKeyOraclePlaceholder": "A konzol API-kulcsához tartozó Oracle helyőrzője",
+ "newApiUserIdLabel": "New-API felhasználói azonosító",
+ "newApiUserIdPlaceholder": "pl. 12345",
+ "newApiUserIdHint": "Az AgentRouter New-Api-User fejlécértéke, amelyet a konzol API-kulcsával együtt használunk a kvótaegyenleg lekéréséhez.",
"newApiAggregatorToggleLabel": "Aggregátor Kapu",
"newApiAggregatorToggleHint": "Engedélyezze a egyenleg-érzékelést az Új-API / Egy-API / Sub2API aggregátor csomópontokhoz. A műszerfal megjeleníti az egyenleg jelvényt, és a kvóta-előzetes irányítás kihagyja a kimerült fiókokat.",
"newApiAggregatorConsoleApiKeyHint": "Rendszerhozzáférési Token az aggregátor /api/user/self végpontjához. Nem a routing API kulcs.",
@@ -5826,57 +5833,57 @@
"featureFlagNewApiAggregatorBalanceDescription": "Engedélyezze a egyensúly-érzékelést az New-API / One-API / Sub2API aggregátorral kompatibilis csomópontokhoz",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Egyéni felhasználói ügynök súgója",
+ "customUserAgentLabel": "Egyéni felhasználói ügynök címkéje",
+ "databricksBaseUrlHint": "Databricks alap-URL súgója",
+ "defaultThinkingStrengthHint": "Akkor használatos, ha a kérelem nem határozza meg az érvelés intenzitását.",
+ "defaultThinkingStrengthLabel": "Alapértelmezett gondolkodási intenzitás",
+ "deleteAllExtraApiKeys": "Összes törlése",
+ "excludedModelsHint": "Kizárt modellek súgója",
+ "excludedModelsLabel": "Kizárt modellek címkéje",
+ "excludedModelsPlaceholder": "Kizárt modellek helyőrzője",
+ "expirationBannerExpired": "Lejárati figyelmeztetősáv: lejárt",
+ "expirationBannerExpiredDesc": "A lejárt állapotot jelző figyelmeztetősáv leírása",
+ "expirationBannerExpiringSoon": "Lejárati figyelmeztetősáv: hamarosan lejár",
+ "expirationBannerExpiringSoonDesc": "A közelgő lejáratot jelző figyelmeztetősáv leírása",
+ "extraApiKeyMasked": "{index}. kulcs: {prefix}••••{suffix}",
+ "extraApiKeysHint": "További API-kulcsokkal kapcsolatos tipp",
+ "extraApiKeysLabel": "További API-kulcsok",
+ "apiKeyHealthLabel": "API-kulcsok állapota",
+ "apiKeyStatusActive": "Aktív",
+ "apiKeyStatusWarning": "Figyelmeztetés ({count} hiba)",
+ "apiKeyStatusInvalid": "Érvénytelen",
+ "primaryKey": "Elsődleges kulcs",
+ "apiKeyInvalidAlert": "{count} API-kulcs érvénytelenként lett megjelölve a következő kapcsolatokban történt hitelesítési hibák miatt: {connections}. Ezeket a rendszer kihagyja a rotációból. Kattintson az áttekintéshez.",
+ "apiKeyInvalidAlertTitle": "API-kulcs állapotával kapcsolatos riasztás",
+ "apiKeyWarningAlert": "{count} API-kulcs figyelmeztetési állapotban van a következő kapcsolatokban tapasztalt megnövekedett hibaarány miatt: {connections}. Tekintse át őket a rotációs problémák megelőzése érdekében.",
+ "apiKeyWarningAlertTitle": "API-kulccsal kapcsolatos figyelmeztetés",
+ "googlePseInfo": "Információk a Google PSE-ről",
"antigravityProjectIdHint": "Opcionális felülírás az Antigravity Cloud Code kérésekhez. Hagyja üresen a Google OAuth során felfedezett projekt használatához.",
"antigravityClientProfileLabel": "Kliensprofil",
"antigravityClientProfileHint": "Válassza ki, melyik Antigravity kliensidentitást mutassa az OmniRoute az API felé.",
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "Harness / CLI",
"codexFastTierActiveChip": "A Codex Fast szint aktív",
- "tierFast": "Fast",
- "antigravityProjectIdLabel": "Google Cloud Project ID",
+ "tierFast": "Gyors",
+ "antigravityProjectIdLabel": "Google Cloud-projektazonosító",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok webes süti helyőrzője",
+ "herokuBaseUrlHint": "Tipp a Heroku alap-URL-jéhez",
+ "hideEmail": "E-mail-cím elrejtése",
+ "imageProviders": "Képszolgáltatók",
"videoProviders": "Videó generálása",
"embeddingRerankProviders": "Beágyazások és áthelyezés",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "Képek",
+ "llmProviders": "LLM-szolgáltatók",
+ "localProviderApiKeyOptionalHint": "Tipp a helyi szolgáltató opcionális API-kulcsához",
+ "localProviderBaseUrlHint": "Tipp a helyi szolgáltató alap-URL-jéhez",
+ "localProviders": "Helyi szolgáltatók",
+ "maxConcurrentWholeNumberError": "Az egyidejű műveletek maximális számának egész számnak kell lennie",
"m365TierLabel": "Copilot szint",
"m365TierHint": "Válassza ki, melyik Microsoft 365 Copilot felületet használja ez a kapcsolat. Az Individual az alapértelmezett fogyasztói BizChat; az Education és az Enterprise (munkahelyi) a saját bérlői (tenant) felületeiket választják.",
"m365TierIndividualOption": "Individual (alapértelmezett)",
- "m365TierEduOption": "Education",
+ "m365TierEduOption": "Oktatás",
"m365TierEnterpriseOption": "Vállalati / Munkahelyi",
"tierOverrideLabel": "Szint felülbírálása",
"tierOverrideAuto": "Automatikus (az útvonalválasztás dönt)",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "Olcsó",
"tierOverridePremium": "Prémium",
"tierOverrideHelpText": "Rögzítse ezt a szolgáltatót egy útvonalválasztási szinthez ahelyett, hogy az OmniRoute a modell árazása alapján következtetne rá.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Tipp a Muse Spark webes sütijéhez",
+ "museSparkWebCookiePlaceholder": "Muse Spark webes süti helyőrzője",
+ "oauth": "OAuth",
+ "openCliTools": "CLI-eszközök megnyitása",
+ "openSettings": "Beállítások megnyitása",
+ "openaiResponsesStoreDescription": "A kompatibilis Responses API-kérések számára a tárolt válaszállapot megőrzésének engedélyezése.",
+ "openaiResponsesStoreLabel": "OpenAI Responses-tárolás",
+ "perplexitySearchSharedKeyInfo": "Információk a Perplexity Search megosztott kulcsáról",
+ "perplexityWebCookieHint": "Perplexity webes süti súgója",
+ "perplexityWebCookiePlaceholder": "Perplexity webes süti helyőrzője",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Sebességkorlátok felülbírálása",
"rateLimitOverridesMaxConcurrentHint": "Maximális párhuzamos kérések felülbírálása ehhez a kapcsolathoz. Felülbírálja a fiókszintű korlátot.",
"rateLimitOverridesMaxConcurrentLabel": "Max. párhuzamos (sebességkorlát)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Az a maximális idő (ms), ameddig egy kérés várhat egy sebességkorlátozási helyre, mielőtt meghiúsul. Csak ennél a kapcsolatnál írja felül a globális rugalmassági beállítást.",
+ "rateLimitOverridesMaxWaitMsLabel": "Maximális várakozás a sorban (ms)",
"rateLimitOverridesMinTimeHint": "Kérések közötti minimális idő (ms). Felülbírálja az alapértelmezett sebességkorlátozó késleltetést.",
"rateLimitOverridesMinTimeLabel": "Min. intervallum (ms)",
"rateLimitOverridesRpdHint": "Maximális kérések száma naponta ehhez a kapcsolathoz. Felülbírálja a szolgáltató alapértelmezését.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (token/nap)",
"rateLimitOverridesTpmHint": "Maximális percenkénti tokenszám ehhez a kapcsolathoz. Felülbírálja a szolgáltató alapértelmezését.",
"rateLimitOverridesTpmLabel": "TPM (token/perc)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "refreshOauthTokenTitle": "OAuth-token frissítése",
+ "regionHint": "Régió súgója",
+ "regionLabel": "Régió",
+ "removeThisKey": "Kulcs eltávolítása",
+ "routingTagsHint": "Útválasztási címkék súgója",
+ "routingTagsLabel": "Útválasztási címkék",
+ "routingTagsPlaceholder": "Útválasztási címkék helyőrzője",
+ "search": "Keresés",
+ "searchEngineIdHint": "Keresőmotor-azonosító súgója",
+ "searchEngineIdLabel": "Keresőmotor-azonosító",
+ "searchEngineIdRequired": "A keresőmotor-azonosító megadása kötelező",
+ "searchProvider": "Keresési szolgáltató",
+ "searchProviderDesc": "A keresési szolgáltató leírása",
"searchProviders": "Keressen szolgáltatók között...",
"searchByModel": "Keresés modell alapján…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Keresési szolgáltatók",
+ "searxngBaseUrlHint": "Searxng alap-URL súgója",
+ "searxngInfo": "Searxng-információk",
+ "sessionCookieLabel": "Munkamenetsüti",
+ "showEmail": "E-mail-cím megjelenítése",
+ "snowflakeBaseUrlHint": "Snowflake alap-URL súgója",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Címkecsoport súgója",
+ "tagGroupLabel": "Címkecsoport",
+ "tagGroupPlaceholder": "Címkecsoport helyőrzője",
+ "testModel": "Modell tesztelése",
+ "testingModel": "Modell tesztelése folyamatban",
"modelTestQuotaTooltip": "Kota kimerült — holnap resetelődik vagy feltöltés szükséges",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Lejárt token",
+ "tokenExpiredTitle": "A token lejárt",
+ "tokenExpiresSoonTitle": "A token hamarosan lejár",
+ "tokenShort": "Token",
+ "totalKeysRotating": "{count, plural, one {1 kulcs rotálódik} other {# kulcs rotálódik}}",
+ "unhideModel": "Modell újbóli megjelenítése",
+ "upstreamProxyProviders": "Kimenő proxyszolgáltatók",
"validationModelIdHint": "Az API-kulcs ellenőrzésére használt modell. Hagyja üresen a szolgáltató első elérhető modelljének használatához.",
"validationModelIdLabel": "Ellenőrző modell",
"validationModelIdPlaceholder": "pl. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Illessze be a Service Account JSON-fájlt ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) vagy egy OAuth access_token értékét",
+ "webCookieProviders": "Webes sütiket használó szolgáltatók",
+ "weeklyShort": "Heti",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo alap-URL súgója",
"globalCodexServiceMode": "Globális Codex szolgáltatási mód",
"connect": "Csatlakozás",
"manualApiKey": "Kézi API-kulcs",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Fedezd fel a Zed IDE által az operációs rendszer kulcstartójában tárolt AI-szolgáltatói hitelesítési adatokat (OpenAI, Anthropic, Google, Mistral, xAI), és importáld őket kapcsolatként. A Zed IDE-nek telepítve kell lennie ezen a gépen.",
"zedImportButton": "Importálás a Zed-ből",
"zedImportFailed": "Zed importálás nem sikerült",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed-importálás súgója",
+ "zedImportNetworkError": "Zed-importálási hálózati hiba",
+ "zedImportNone": "Nincs Zed-importálás",
"zedImportSuccess": "Importált {credentials} hitelesítő adat(ok) a Zed-től a {providers} szolgáltató(k) számára",
"zedImporting": "Importálás…",
"zedNoCredentials": "Nem találhatók Zed hitelesítési adatok a kulcstartóban",
@@ -6012,7 +6019,7 @@
"providerDetailFastTierTooltip": "Alapértelmezés szerint alkalmazza a Codex Fast réteget az összes Codex-kapcsolatra",
"providerDetailFastDefaultLabel": "Gyors alapértelmezett",
"providerDetailBrowserManualConnect": "Böngésző/manuális csatlakozás",
- "providerDetailAuthUrl": "Auth URL",
+ "providerDetailAuthUrl": "Hitelesítési URL",
"providerDetailCallbackUrl": "Visszahívási URL",
"providerDetailValidClaudeCredentialsFile": "Érvényes Claude hitelesítő adatfájl",
"providerDetailPathAutoDetectedAllOs": "Az útvonalat a rendszer automatikusan észleli operációs rendszerenként (Linux/Mac/Windows).",
@@ -6028,7 +6035,7 @@
"claudeImportEntryName": "{number}. bejegyzés",
"claudeImportParseError": "értelmezési hiba",
"claudeImportNoValidEntries": "Nincsenek importálható érvényes bejegyzések",
- "webFetch": "Web Fetch",
+ "webFetch": "Webes lekérés",
"webFetchTooltip": "Szolgáltatók, amelyek tartalmat nyernek ki webes URL-ekből (HTML → Markdown, scrape, képernyőkép)",
"webFetchProvidersHeading": "Web Fetch szolgáltatók",
"compatibleProvidersDesc": "OpenAI-kompatibilis és Anthropic-kompatibilis végpontok, amelyeket te üzemeltetsz vagy konfigurálsz. Irányíts bármilyen OpenAI SDK-t a saját URL-edre, és irányítsd ide a kéréseket.",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "Kedvezményes API-proxy több mint 40 modellhez, beleértve a GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 modelleket. Szerezze be API-kulcsát a https://freeaiapikey.com/dashboard oldalon. Alap URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "Szerezzen $300 ingyenes API-kreditet a https://freemodel.dev oldalon — fizetési adat nem szükséges. OpenAI-kompatibilis végpont. GPT-5.4 és GPT-5.5 modellek érhetők el.",
"friendliai": "Ingyenes csomag szerver nélküli következtetéshez — bankkártya nem szükséges",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Ingyenes csomag a Google AI Studión keresztül; a modellenkénti kvótákat már nem teszik közzé (ellenőrizd a kvótaoldalt az AI Studióban) — nincs szükség bankkártyára.",
"gigachat": "Csatlakoztassa a GigaChatet (Sber) egy API-kulccsal.",
"gitlab": "GitLab személyes hozzáférési token a nyilvános Code Suggestions API-hoz. Állítson be saját üzemeltetésű alap URL-t, ha nem a gitlab.com-ot használja.",
"gitlawb-gmi": "Szerezze be API-kulcsát a Gitlawb Opengateway irányítópultjáról.",
@@ -6180,7 +6187,7 @@
"glm-cn": "Csatlakoztassa a GLM Coding (Kína) szolgáltatást egy API-kulccsal.",
"glmt": "Előre beállított GLM-profil magasabb tokenkerettel, engedélyezett gondolkodással és hosszabb időtúllépéssel.",
"getgoapi": "Csatlakoztassa a GoAPI-t egy API-kulccsal.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Ingyenes csomag: modellenkénti korlátok (napi 200K token csevegési modellenként; az RPM/RPD-korlátokat lásd itt: console.groq.com/docs/rate-limits) — nincs megadva fizetési mód.",
"haiper": "Szerezzen API-kulcsot a haiper.ai/haiper-api oldalon",
"heroku": "Csatlakoztassa a Heroku AI-t egy API-kulccsal.",
"hcnsec": "Szerezzen API-kulcsot itt: api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "Hozzon létre egy API-kulcsot a https://app.requesty.ai oldalon, majd illessze be ide Bearer tokenként. OpenAI-kompatibilis végpont a https://router.requesty.ai/v1 címen, élő /v1/models katalógussal.",
"runwayml": "A Runway videógenerálás feladatalapú. Az OmniRoute elküldi a text-to-video vagy image-to-video feladatokat, lekérdezi a /v1/tasks/[id] állapotát, és a kész videókimeneteket visszaalakítja az OpenAI-szerű /v1/videos/generations válasszá.",
"sambanova": "$5 ingyenes kredit regisztrációkor (30 napos érvényesség), bankkártya nem szükséges",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Hozz létre egy API-kulcsot a https://seekai.cc oldalon, majd illeszd be ide Bearer tokenként. OpenAI-kompatibilis alap-URL: https://seekai.cc/v1.",
"sap": "A modellfelderítés a /v2/lm/scenarios/foundation-models/models végpontot használja az AI_API_URL címen. A chat kérések a deploymentUrl/chat/completions végpontot használják, és AI-Resource-Group szükséges hozzájuk.",
"sarvam": "A Sarvam AI OpenAI-kompatibilis a /v1-en. Az OmniRoute a /v1/models-t vizsgálja és a chat forgalmat a /v1/chat/completions-re irányítja. A modellek az indiai nyelvekre vannak optimalizálva.",
"scaleway": "1M ingyenes token új fiókoknak — EU/GDPR-megfelelő (Párizs), Qwen3 235B és Llama 70B",
@@ -6305,21 +6312,21 @@
"claude": "A Claude Code összekapcsolása a meglévő OAuth-folyamattal.",
"cline": "A Cline összekapcsolása a meglévő OAuth-folyamattal.",
"cursor": "A Cursor IDE összekapcsolása a meglévő OAuth-folyamattal.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Csatlakoztasd a Cursort egy, a cursor.com/dashboard/api oldalon létrehozott felhasználói API-kulccsal (crsr_...); nincs szükség IDE-munkamenetre.",
"github": "A GitHub Copilot összekapcsolása a meglévő OAuth-folyamattal.",
"gitlab-duo": "OAuth alkalmazás ai_features + read_user hatókörökkel. Konfigurálja a GITLAB_DUO_OAUTH_CLIENT_ID és opcionálisan a GITLAB_DUO_OAUTH_CLIENT_SECRET változókat ezen az OmniRoute példányon.",
"kilocode": "A Kilo Code összekapcsolása a meglévő OAuth-folyamattal.",
"kimi-coding": "A Kimi Coding összekapcsolása a meglévő OAuth-folyamattal.",
- "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.",
- "codex": "Connect OpenAI Codex with the existing OAuth flow.",
- "qwen": "Connect Qwen Code with the existing OAuth flow.",
+ "kiro": "Ingyenes csomag: havi 50 kredit (~25K–100K token). ⚠️ A Kiro felhasználási feltételei tiltják a harmadik féltől származó proxyk és tesztkeretrendszerek használatát.",
+ "codex": "Csatlakoztasd az OpenAI Codexet a meglévő OAuth-folyamattal.",
+ "qwen": "Csatlakoztasd a Qwen Code-ot a meglévő OAuth-folyamattal.",
"github-models": "Hozzon létre egy GitHub PAT-ot 'models: read' hatókörrel a github.com/settings/tokens oldalon"
},
"passthroughModelsDescription": "Az {provider} elfogadja a szolgáltató natív modellazonosítóit. Importáljon a /models-ból, vagy adjon hozzá egyéni azonosítókat az útválasztáshoz.",
"bedrockModelsDescription": "Az Amazon Bedrock modellek hatóköre az AWS régió szerint történik. Importáljon a /models mappából, vagy adja hozzá a kiválasztott régióban engedélyezett Bedrock modellazonosítókat.",
"bedrockModelPlaceholder": "antropikus.claude-szonett-4-6",
"addProviderSessionCookieTitle": "{provider} munkamenet-cookie hozzáadása",
- "openWebProviderSite": "Open {host}",
+ "openWebProviderSite": "{host} megnyitása",
"addProviderWebTokenTitle": "{provider} web token hozzáadása",
"addProviderConnectionTitle": "{provider} kapcsolat hozzáadása",
"webTokenCredentialLabel": "Webes munkamenet token",
@@ -6338,45 +6345,45 @@
"webSessionGuideStep3": "Másolja ki a szükséges hitelesítő adatokat a szolgáltató saját domainjéből. Cookie-k esetén csak a Cookie fejléc értékét másolja, és hagyja ki a Cookie:-t.",
"webSessionGuideStep3Manual": "Manuális útvonal: nyissa meg a böngésző fejlesztői eszközeit (F12 → Hálózat), frissítse az oldalt, nyisson meg egy hitelesített kérést, és másolja a Cookie fejléc értékét a Kérés Fejlécekből — hagyja ki a Cookie: előtagot.",
"webSessionGuideStep4": "Illessze be ide, és ellenőrizze a kapcsolatot. Ha nem működik, jelentkezzen be újra, és cserélje ki egy új értékre.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har-fájl importálása",
+ "harImportButtonBusy": "Importálás…",
+ "harImportButtonHint": "Exportáld a DevTools Hálózat lapjáról legalább egy csevegőüzenet elküldése után.",
+ "harImportStatusValid": "Importálva — még ~{minutes} percig érvényes.",
+ "harImportStatusExpiringSoon": "Importálva — már csak ~{minutes} percig érvényes.",
+ "harImportStatusExpired": "Importálva, de ez a token már lejárt ({minutes} perce) — exportálj egy friss HAR-fájlt.",
+ "harImportStatusUnknownExpiry": "Importálva. A lejárati ideje nem olvasható.",
+ "harImportErrorNotJson": "Ez a fájl nem érvényes JSON — biztosan .har-exportfájl?",
+ "harImportErrorNoEntries": "Ez a HAR nem tartalmaz rögzített hálózati bejegyzéseket.",
+ "harImportErrorNoChathubUrl": "Ebben a HAR-ban nem található Copilot-csevegési kapcsolat. Exportálás előtt küldj legalább egy csevegőüzenetet az m365.cloud.microsoft oldalon.",
+ "harImportErrorUnparsableUrl": "A csevegési kapcsolat megtalálható, de az URL-je nem olvasható.",
+ "harImportErrorMissingFields": "A csevegési kapcsolat megtalálható, de hiányzik belőle a token.",
+ "harImportErrorReadFailed": "A fájl nem olvasható.",
+ "harImportErrorUnknown": "Nem sikerült hitelesítő adatot kinyerni ebből a HAR-fájlból.",
"webSessionSecurityHint": "Kezelje ezt úgy, mint egy jelszót: addig hozzáférhet a bejelentkezett webfiókjához, amíg le nem jár vagy visszavonják.",
"webNoAuthGuideTitle": "Nincs szükség hitelesítő adatra",
"webNoAuthGuideBody": "Az {provider} nem igényel API-kulcsot vagy cookie-t. Mentse el a kapcsolatot az ingyenes webvégpont használatához.",
"webSessionCredentialValidationFailed": "A munkamenet hitelesítő adatainak ellenőrzése sikertelen. Jelentkezzen be újra, másoljon egy új hitelesítő adatot, és próbálja újra.",
"checkCookie": "Ellenőrizze a cookie-t",
- "checkWebToken": "Check token",
- "huggingchatLabel": "HuggingChat (Free)",
- "huggingchatDesc": "Free LLM chat via huggingface.co/chat",
+ "checkWebToken": "Token ellenőrzése",
+ "huggingchatLabel": "HuggingChat (ingyenes)",
+ "huggingchatDesc": "Ingyenes LLM-csevegés a huggingface.co/chat oldalon",
"poeWebLabel": "Poe Web",
- "poeWebDesc": "Multi-model chat via poe.com",
+ "poeWebDesc": "Többmodelles csevegés a poe.com oldalon",
"veniceWebLabel": "Venice Web",
- "veniceWebDesc": "Privacy-focused AI chat",
+ "veniceWebDesc": "Adatvédelem-központú AI-csevegés",
"v0VercelWebLabel": "v0 Vercel Web",
- "v0VercelWebDesc": "AI code generation via v0.dev",
+ "v0VercelWebDesc": "AI-alapú kódgenerálás a v0.dev oldalon",
"kimiWebLabel": "Kimi Web",
- "kimiWebDesc": "Moonshot AI consumer chat via www.kimi.com (international, Connect-RPC API)",
+ "kimiWebDesc": "A Moonshot AI fogyasztói csevegőszolgáltatása a www.kimi.com oldalon (nemzetközi, Connect-RPC API)",
"doubaoWebLabel": "Dola Web",
- "doubaoWebDesc": "ByteDance AI chat via dola.com",
- "overrideBaseUrlAdvanced": "Advanced: override base URL",
- "overrideBaseUrlHint": "Advanced: point this built-in provider at a custom endpoint. Leave blank to use the default.",
+ "doubaoWebDesc": "A ByteDance AI-csevegőszolgáltatása a dola.com oldalon",
+ "overrideBaseUrlAdvanced": "Speciális: alap-URL felülírása",
+ "overrideBaseUrlHint": "Speciális: a beépített szolgáltató átirányítása egyéni végpontra. Az alapértelmezett használatához hagyja üresen.",
"apiProtocolLabel": "API protokoll",
"apiProtocolDefault": "OpenAI-kompatibilis (alapértelmezett)",
"apiProtocolHint": "Néhány szolgáltató ugyanazokat a modelleket több protokollon is közzéteszi. Hagyja az alapértelmezettet, hacsak nem szükséges az alternatíva.",
- "bulkAddFormatHintCloudflare": "One key per line. Format: name|accountId|apiKey (Cloudflare account ID + API token).",
- "lmarenaWebCookieHint": "Open arena.ai, sign in, then copy the full Cookie header from a Network request. Include arena-auth-prod-v1.0 and arena-auth-prod-v1.1 (and further chunks if present), preferably with cf_clearance. Do not paste only the empty arena-auth-prod-v1 cookie. Optional: providerSpecificData.recaptchaV3Token if create-evaluation still returns 403.",
+ "bulkAddFormatHintCloudflare": "Soronként egy kulcs. Formátum: name|accountId|apiKey (Cloudflare-fiókazonosító + API-token).",
+ "lmarenaWebCookieHint": "Nyissa meg az arena.ai webhelyet, jelentkezzen be, majd másolja ki a teljes Cookie fejlécet egy hálózati kérésből. Tartalmazza az arena-auth-prod-v1.0 és arena-auth-prod-v1.1 értékeket (valamint a további részeket, ha vannak), lehetőleg a cf_clearance értékkel együtt. Ne csak az üres arena-auth-prod-v1 cookie-t illessze be. Opcionális: providerSpecificData.recaptchaV3Token, ha a create-evaluation továbbra is 403-as hibát ad vissza.",
"kimiOfficialSupporterBadge": "Alapító barát",
"kimiOfficialSupporterTooltip": "A Kimi (Moonshot AI) az OmniRoute alapító nyílt forráskódú barátja",
"cheaperInferenceSupporterBadge": "Nyílt forráskódú barát",
@@ -6417,7 +6424,7 @@
"codexServiceModeUpdated": "A Codex szolgáltatásmód frissítve lett",
"codexServiceTierActive": "A {tier} szintű Codex szolgáltatás aktív",
"codexTierFastLabel": "Gyors",
- "codexTierFlexLabel": "Flex",
+ "codexTierFlexLabel": "Rugalmas",
"commandCodeApplyFailed": "A Parancskód-azonosító alkalmazása nem sikerült",
"commandCodeApplyingApproval": "Böngésző jóváhagyva, alkalmazás…",
"commandCodeApplyingKey": "Böngésző által jóváhagyott kulcs alkalmazása…",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "A parancs kódja lejárt",
"commandCodeConnected": "A Parancs Kód csatlakoztatva",
"commandCodeConnectionAdded": "A parancs kód kapcsolódva lett.",
+ "clearConnectionCooldown": "Várakozási idő törlése",
+ "clearConnectionCooldownInProgress": "Törlés…",
+ "clearConnectionCooldownTitle": "A várakozási idő azonnali törlése — akkor használja, ha a kvóta a külső szolgáltatónál már frissült",
"commandCodeLinkExpired": "A parancs kód hivatkozás lejárt",
"commandCodeOpeningStudio": "A Parancs Kód Stúdió megnyitása…",
"commandCodePopupBlocked": "A felugró ablakok blokkolva vannak. Kérjük, engedélyezze a felugró ablakokat, és próbálja meg újra a Command Code Connectet.",
"commandCodeStartFailed": "Nem sikerült elindítani a Command Code auth-ot",
"connectionDeleted": "Kapcsolat törölve",
"connectionFallback": "kapcsolat",
+ "connectionCooldownCleared": "A várakozási idő törölve — a kapcsolat újra bekerült az útválasztásba",
"coolingConnectionsDescription": "Ezek a kapcsolatok az utolsó kérés után hűlnek. Az OmniRoute kihagyja őket, amíg az időzítő le nem jár — nincs szükség kézi tiltásra.",
"coolingConnectionsTitle": "Jelenleg hűtés ({count})",
+ "failedClearConnectionCooldown": "Nem sikerült törölni a várakozási időt",
"failedDeleteAlias": "Nem sikerült törölni az alias-t",
"failedDeleteConnection": "A kapcsolat törlése nem sikerült",
"failedDistributeProxies": "A proxik terjesztése nem sikerült.",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "Mentett modell végpont beállításai",
"searchByModelAria": "Keresés modell szerint",
"selectSupportedEndpoint": "Válasszon ki legalább egy támogatott végpontot",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Tesztkeretrendszer / CLI"
},
"settings": {
"title": "Beállítások elemre",
@@ -6481,28 +6488,28 @@
"routing": "Útválasztás",
"cache": "Gyorsítótár",
"resilience": "Rugalmasság",
- "description": "Description",
- "enable": "Enable",
- "disable": "Disable",
- "update": "Update",
+ "description": "Leírás",
+ "enable": "Engedélyezés",
+ "disable": "Letiltás",
+ "update": "Frissítés",
"routingSettingsIntro": "Szabályozza, hogy a kérelmeket hogyan irányítsák, alakítsák át és küldjék el az AI-szolgáltatóknak.",
- "routingOpDropParagraphContainsLabel": "Drop paragraph (contains)",
- "routingOpDropParagraphStartsWithLabel": "Drop paragraph (starts with)",
- "routingOpReplaceTextLabel": "Replace text",
- "routingOpReplaceRegexLabel": "Replace regex",
- "routingOpDropBlockContainsLabel": "Drop block (contains)",
- "routingOpPrependSystemBlockLabel": "Prepend system block",
- "routingOpAppendSystemBlockLabel": "Append system block",
- "routingOpInjectBillingHeaderLabel": "Inject billing header",
- "routingOpObfuscateWordsLabel": "Obfuscate words (ZWJ)",
- "routingOpDropParagraphContainsDesc": "Removes any paragraph (text block split on blank lines) inside the system prompt whose text contains ANY of the listed substrings. Use to strip third-party client fingerprints like 'github.com/anomalyco/opencode' or 'docs.openwebui.com' that Anthropic's classifier flags.",
- "routingOpDropParagraphStartsWithDesc": "Removes any paragraph that STARTS WITH one of the listed prefixes. Use for identity lines like 'You are OpenCode' or 'You are Open WebUI' that announce the calling client.",
- "routingOpReplaceTextDesc": "Replaces a literal substring with another literal substring. Use for known trigger phrases — e.g. rewrite 'Here is some useful information about the environment you are running in:' to 'Environment context you are running in:' (an empirically-validated trigger phrase).",
- "routingOpReplaceRegexDesc": "Replaces text matching a regular expression. Use when you need patterns (character classes, optional whitespace, anchors) instead of literal substrings. A malformed pattern is caught at runtime when the op runs.",
- "routingOpDropBlockContainsDesc": "Removes ENTIRE system blocks (not just paragraphs) whose text contains any of the listed substrings. Use when a whole block is fingerprint-bearing and you want it gone — e.g. an injected MCP-server description.",
- "routingOpPrependSystemBlockDesc": "Inserts a new text block at the FRONT of the system array. Use to add the SDK identity 'You are a Claude agent, built on Anthropic's Claude Agent SDK.' that Anthropic's classifier expects.",
- "routingOpAppendSystemBlockDesc": "Inserts a new text block at the END of the system array. Use for cosmetic additions that don't need to be at position [0].",
- "routingOpInjectBillingHeaderDesc": "Prepends the special 'x-anthropic-billing-header: cc_version=...; cc_entrypoint=...; cch=...;' text block that Anthropic's classifier validates. Required for CC bridge relay endpoints; for the native claude provider OmniRoute already injects its own billing line so this op is usually redundant there.",
+ "routingOpDropParagraphContainsLabel": "Bekezdés eltávolítása (tartalmazza)",
+ "routingOpDropParagraphStartsWithLabel": "Bekezdés eltávolítása (ezzel kezdődik)",
+ "routingOpReplaceTextLabel": "Szöveg cseréje",
+ "routingOpReplaceRegexLabel": "Reguláris kifejezés cseréje",
+ "routingOpDropBlockContainsLabel": "Blokk eltávolítása (tartalmazza)",
+ "routingOpPrependSystemBlockLabel": "Rendszerblokk beszúrása az elejére",
+ "routingOpAppendSystemBlockLabel": "Rendszerblokk hozzáfűzése",
+ "routingOpInjectBillingHeaderLabel": "Számlázási fejléc beszúrása",
+ "routingOpObfuscateWordsLabel": "Szavak elrejtése (ZWJ)",
+ "routingOpDropParagraphContainsDesc": "Eltávolít minden olyan bekezdést (az üres sorok mentén felosztott szövegblokkot) a rendszerüzenetből, amelynek szövege a felsorolt részkarakterláncok BÁRMELYIKÉT tartalmazza. Olyan külső kliens-ujjlenyomatok eltávolítására használható, mint a 'github.com/anomalyco/opencode' vagy a 'docs.openwebui.com', amelyeket az Anthropic osztályozója megjelöl.",
+ "routingOpDropParagraphStartsWithDesc": "Eltávolít minden olyan bekezdést, amely a felsorolt előtagok egyikével KEZDŐDIK. Olyan, a hívó klienst bejelentő identitássorokhoz használható, mint a 'You are OpenCode' vagy a 'You are Open WebUI'.",
+ "routingOpReplaceTextDesc": "Egy literális részkarakterláncot egy másik literális részkarakterláncra cserél. Ismert aktiváló kifejezésekhez használható — például a 'Here is some useful information about the environment you are running in:' átírására erre: 'Environment context you are running in:' (empirikusan ellenőrzött aktiváló kifejezés).",
+ "routingOpReplaceRegexDesc": "Reguláris kifejezésre illeszkedő szöveget cserél le. Akkor használja, ha literális részkarakterláncok helyett mintákra (karakterosztályokra, opcionális szóközökre, horgonyokra) van szüksége. A hibás mintát a rendszer futásidőben észleli a művelet végrehajtásakor.",
+ "routingOpDropBlockContainsDesc": "Eltávolítja a TELJES rendszerblokkokat (nem csak a bekezdéseket), ha azok szövege a felsorolt részkarakterláncok bármelyikét tartalmazza. Akkor használja, ha egy teljes blokk kliens-ujjlenyomatot tartalmaz, és teljesen el szeretné távolítani — például egy beszúrt MCP-kiszolgáló-leírást.",
+ "routingOpPrependSystemBlockDesc": "Új szövegblokkot szúr be a rendszertömb ELEJÉRE. Az Anthropic osztályozója által elvárt 'You are a Claude agent, built on Anthropic's Claude Agent SDK.' SDK-identitás hozzáadására használható.",
+ "routingOpAppendSystemBlockDesc": "Új szövegblokkot szúr be a rendszertömb VÉGÉRE. Olyan formai kiegészítésekhez használható, amelyeknek nem kell a [0] pozícióban lenniük.",
+ "routingOpInjectBillingHeaderDesc": "A speciális 'x-anthropic-billing-header: cc_version=...; cc_entrypoint=...; cch=...;' szövegblokkot szúrja az elejére, amelyet az Anthropic osztályozója ellenőriz. A CC-híd közvetítő végpontjaihoz kötelező; a natív claude szolgáltatónál az OmniRoute már beszúrja a saját számlázási sorát, ezért ez a művelet ott általában felesleges.",
"routingOpObfuscateWordsDesc": "Egy Zero-Width-Joiner (nulla szélességű összekötő) karaktert szúr be minden felsorolt szó első betűje után, így az 'opencode' 'opencode' lesz. Az emberek számára ugyanúgy olvasható, de megkerüli az osztályozó szóegyezéseit. Célba veszi a rendszerblokkokat, a felhasználói/asszisztens üzeneteket és az eszközleírásokat.",
"routingNeedlesHint": "Részkarakterláncok listája. Egy bekezdés akkor egyezik, ha BÁRMELYIKET tartalmazza ezek közül. Soronként egyet adjon hozzá az 'Add entry' segítségével.",
"routingPrefixesHint": "Karakterláncok listája. Egy bekezdés akkor egyezik, ha bármelyikkel kezdődik ezek közül (az egyezés vizsgálata előtt a kezdő szóközök le lesznek vágva).",
@@ -6523,7 +6530,7 @@
"routingSummarizeDropParagraphContains": "bekezdések elvetése, amelyek tartalmazzák: {items}",
"routingSummarizeDropParagraphStartsWith": "bekezdések elvetése, amelyek ezzel kezdődnek: {items}",
"routingSummarizeReplaceText": "helyettesítés: \"{match}\" → \"{replacement}\"",
- "routingSummarizeReplaceRegex": "regex /{pattern}/{flags} → \"{replacement}\"",
+ "routingSummarizeReplaceRegex": "reguláris kifejezés /{pattern}/{flags} → \"{replacement}\"",
"routingSummarizeDropBlockContains": "blokkok elvetése, amelyek tartalmazzák: {items}",
"routingSummarizePrependSystemBlock": "blokk eléillesztése: \"{text}\"",
"routingSummarizeAppendSystemBlock": "blokk hozzáfűzése: \"{text}\"",
@@ -6550,29 +6557,29 @@
"systemPrompt": "Rendszer Prompt",
"thinkingBudget": "Gondolkodó költségvetés",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP-proxy",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "Proxyszakaszok",
+ "requestBodyLimitTitle": "Kéréstörzs méretkorlátja",
+ "requestBodyLimitDescription": "A kéréstörzs feldolgozása előtt elfogadott API-adatmennyiség legnagyobb mérete. A dedikált feltöltési útvonalak legalább a beépített 100 MB-os korlátjukat megtartják.",
+ "requestBodyLimitInputLabel": "Kéréstörzs méretkorlátja MB-ban",
+ "requestBodyLimitEmptyError": "Adjon meg egy korlátot MB-ban",
+ "requestBodyLimitWholeNumberError": "Használjon egész számot",
+ "requestBodyLimitMinimumError": "A minimum {min} MB",
+ "requestBodyLimitMaximumError": "A maximum {max} MB",
+ "requestBodyLimitLoadFailed": "Nem sikerült betölteni a kérelmek korlátozásának beállításait",
+ "requestBodyLimitSaveSuccess": "A kérelemtörzs méretkorlátja mentve",
+ "requestBodyLimitSaveFailed": "Nem sikerült menteni a kérelemtörzs méretkorlátját",
+ "requestBodyLimitSaving": "Mentés...",
+ "requestBodyLimitSave": "Mentés",
+ "requestBodyLimitCurrent": "Jelenlegi: {value}",
"cacheConfigLoadFailed": "Nem sikerült betölteni a gyorsítótár beállításait",
"cacheConfigSaveSuccess": "A gyorsítótár beállításai mentve",
"cacheConfigSaveFailed": "A gyorsítótár beállításainak mentése nem sikerült",
"modelCatalogTtlWholeNumberError": "Használj egész számot",
"modelCatalogTtlMinimumError": "Minimum {min} ms",
"modelCatalogTtlMaximumError": "Maximum {max} ms",
- "modelCatalogCacheTtl": "Model Catalog Cache TTL",
+ "modelCatalogCacheTtl": "Modellkatalógus gyorsítótárának TTL-je",
"modelCatalogCacheTtlDescription": "Meddig vannak gyorsítótárazva a modell katalógus válaszai a frissítés előtt",
"modelCatalogCacheTtlLabel": "Model katalog gyorsítótár TTL milliszekundumban",
"modelCatalogCacheTtlSaving": "Mentés...",
@@ -6589,59 +6596,59 @@
"enablePassword": "Jelszó engedélyezése",
"darkMode": "Sötét mód",
"lightMode": "Fény mód",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "Memória",
+ "memoryDesc": "Munkameneteken átívelő, tartós beszélgetési memória",
+ "memoryEnabled": "Memória engedélyezése",
+ "memoryEnabledDesc": "Ha engedélyezve van, az OmniRoute beilleszti a releváns korábbi kontextust.",
"memoryTokenCostWarning": "Figyelem: bekapcsolt memória mellett az OmniRoute legfeljebb {tokens} tokennyi lekérdezett kontextust szúr be minden csevegési kérésbe — ez növeli a tokenhasználatot és a költségeket. A beszúrás kihagyásához egy adott kérésnél küldje el az \"x-omniroute-no-memory: true\" fejlécet.",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "maxTokens": "Tokenek maximális száma",
+ "retentionDays": "Megőrzés",
+ "recent": "Legutóbbi",
+ "recentDesc": "Időrendi ablak",
+ "semantic": "Szemantikus",
+ "semanticDesc": "Vektoros keresés",
+ "hybrid": "Hibrid",
+ "hybridDesc": "Legutóbbi + szemantikus",
+ "skillsTitle": "Készségek",
+ "skillsDesc": "Eszközök modellekhez",
+ "skillsEnabled": "Készségek engedélyezése",
+ "skillsEnabledDesc": "Lehetővé teszi az ügynökök számára függvények aktiválását.",
+ "skillsComingSoon": "Hamarosan érkezik a készségek piactere.",
+ "memorySkillsTitle": "Memória és készségek",
+ "memorySkillsDesc": "Tartós kontextus és képességek",
+ "modelsDevTitle": "Modelladatbázis",
+ "modelsDevDesc": "Árak, képességek és specifikációk automatikus szinkronizálása a models.dev webhelyről",
+ "modelsDevEnabled": "A models.dev szinkronizálásának engedélyezése",
+ "modelsDevEnabledDesc": "Modellárak, képességek és specifikációk lekérése a nyílt forráskódú models.dev adatbázisból",
+ "modelsDevInterval": "Szinkronizálási időköz",
+ "syncNow": "Szinkronizálás most",
+ "syncing": "Szinkronizálás...",
+ "lastSync": "Utolsó szinkronizálás",
+ "never": "Soha",
"justNow": "csak most",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Szinkronizálási statisztikák",
+ "modelsDevStatsDesc": "A jelenlegi models.dev-adatok lefedettsége",
"providers": "Szolgáltatók",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Árazással rendelkező modellek",
+ "capabilities": "Képességek",
+ "lastSyncCount": "Legutóbbi szinkronizálások száma",
+ "lastSyncFull": "Legutóbbi teljes szinkronizálás",
+ "modelsDevInfo": "Hogyan működik",
+ "modelsDevInfoDesc": "A models.dev egy nyílt forráskódú, mesterségesintelligencia-modellek specifikációit tartalmazó adatbázis, amelyet az SST/OpenCode csapata tart karban. Több mint 100 szolgáltató több mint 4 000 modelljének árazását, képességeit, kontextuskorlátait és modalitásait tartalmazza.",
+ "modelsDevInfoResolution": "Az árazás feloldási sorrendje (a legmagasabb prioritástól):",
+ "modelsDevInfoOrder": "Felhasználói felülbírálás → models.dev → LiteLLM → Beégetett alapértelmezés",
"systemTheme": "Rendszer téma",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Hibakeresési mód engedélyezése",
"logToolSourcesToggle": "Eszközforrások naplózása",
"logToolSourcesDescription": "Diagnosztikai naplósor kibocsátása kérésenként, amely összefoglalja az eszközök számát és az MCP/hosted/kliens források szerinti lebontást.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "Információk rögzítése a kezdőlapon",
"homePinnedSectionsDesc": "Válassza ki, mely szakaszokat szeretné rögzíteni a Kezdőlap tetején.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "Szolgáltatói kvótakorlátok",
+ "homeProviderQuotaLimitsDesc": "Rögzítse a szolgáltatói kvóta állapotát tartalmazó panelt (az Összes frissítése gombbal együtt) a kezdőlap tetején.",
+ "homeQuickStart": "Gyors kezdés",
+ "homeQuickStartDesc": "A Gyors kezdés panel megjelenítése a kezdőlapon.",
+ "homeProviderTopology": "Szolgáltatói topológia",
+ "homeProviderTopologyDesc": "A szolgáltatói topológia megjelenítése a kezdőlapon.",
"accountEmailVisibility": "Fiók e-mail-címének láthatósága",
"accountEmailVisibilityDesc": "A teljes fiók e-mail-címek megjelenítése a szolgáltatók, kombók, naplók, kvóták és a játszótér képernyőkön. Kapcsolja ki ezt a maszkoláshoz alapértelmezés szerint.",
"comboConfigMode": "Kombó konfigurációs mód",
@@ -6657,28 +6664,28 @@
"providerQuotaAutoRefreshInterval": "Frissítési időköz",
"providerQuotaAutoRefreshIntervalDesc": "Milyen gyakran frissüljön a kvótanézet, másodpercben megadva.",
"seconds": "másodperc",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Oldalsávelemek megjelenítése",
"enableCache": "Gyorsítótár engedélyezése",
"cacheTTL": "Gyorsítótár TTL",
"maxCacheSize": "Max gyorsítótár mérete",
"clearCache": "Törölje a gyorsítótárat",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "A gyorsítótár sikeresen törölve",
+ "clearCacheFailed": "Nem sikerült törölni a gyorsítótárat",
"cacheHits": "Gyorsítótár találatai",
"cacheMisses": "Gyorsítótár hiányzik",
- "hitRate": "Hit Rate",
+ "hitRate": "Találati arány",
"cacheEntries": "Gyorsítótár bejegyzései",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "cacheSettings": "Gyorsítótár-beállítások",
+ "semanticCache": "Szemantikus gyorsítótár",
+ "maxEntries": "Bejegyzések maximális száma",
+ "ttlMinutes": "TTL (perc)",
+ "promptCache": "Promptgyorsítótár",
+ "strategy": "Stratégia",
+ "preserveClientCache": "Kliensoldali gyorsítótár megőrzése",
+ "enabled": "Engedélyezve",
"loading": "Loading...",
"saving": "Mentés...",
- "save": "Save",
+ "save": "Mentés",
"circuitBreaker": "Áramköri megszakító",
"retryPolicy": "Irányelv újrapróbálkozása",
"maxRetries": "Max újrapróbálkozás",
@@ -6686,28 +6693,28 @@
"timeoutMs": "Időtúllépés (ms)",
"enableSystemPrompt": "Rendszerprompt engedélyezése",
"systemPromptText": "Rendszerkérő szöveg",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedAccounts": "Letiltott fiókok automatikus deaktiválása",
+ "autoDisableDescription": "Véglegesen deaktiváltnak jelöli a szolgáltatói kapcsolatokat, ha azok bizonyos végleges tiltási jelzéseket adnak vissza (pl. HTTP 403 „verify your account”). Ez eltávolítja őket a kombinált rotációból.",
+ "autoDisableThreshold": "Tiltási küszöbérték",
+ "autoDisableThresholdDesc": "A végleges deaktiváláshoz szükséges egymást követő tiltási jelzések száma.",
+ "autoDisableBannedScope": "Automatikus deaktiválás alkalmazása erre:",
+ "autoDisableBannedScopeDesc": "A felsőbb szintű szolgáltató zárolhatja a bejelentkezési helyeket (fizetős előfizetéseket és ingyenes fiókokat), ha az OmniRoute egy tiltás után tovább próbálkozik. A fizetős, előre feltöltött API-kulcsoknál nem áll fenn ez a kockázat — hagyja őket a készletben, hogy a fill-first a következő kulcsot használhassa.",
+ "autoDisableBannedScopeAll": "Minden kapcsolat",
+ "autoDisableBannedScopeAllDesc": "Minden olyan kapcsolat deaktiválása, amely végleges tiltási jelzést ad vissza, beleértve az előre feltöltött API-kulcsokat is.",
+ "autoDisableBannedScopeSubscription": "Csak bejelentkezési/előfizetési fiókok",
+ "autoDisableBannedScopeSubscriptionDesc": "Az OAuth-, cookie-, munkamenet- és webes bejelentkezési helyek deaktiválása (fizetősek vagy ingyenesek). Az előre feltöltött API-kulcsok aktívak maradnak, így az útválasztás átállhat rájuk.",
"customBannedSignals": "Tiltott kulcsszavak",
"customBannedSignalsDesc": "További kulcsszavak, amelyek végleges fióktiltás észlelését váltják ki. A beépített kulcsszavak mindig érvényesek.",
"customBannedSignalsPlaceholder": "pl. api key revoked",
"noCustomBannedSignals": "Nincsenek egyéni kulcsszavak. Csak a beépített kulcsszavak aktívak.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Ellenálló képességi struktúra",
"resilienceStructureDesc": "Ez az oldal csak a viselkedést konfigurálja. Az élő megszakítás állapota az Egészség oldalon látható. A kombó-specifikus újrapróbálkozás és a körbefutó nyílásvezérlés a kombinált beállításokon marad.",
"enableThinking": "Gondolkodás engedélyezése",
"maxThinkingTokens": "Max gondolkodási jelzők",
"enableProxy": "Proxy engedélyezése",
"perKeyProxyEnabled": "Kulcsonkénti proxy-hozzárendelés engedélyezése",
"perKeyProxyEnabledDesc": "Ha engedélyezve van, minden szolgáltatói kapcsolat saját proxy-hozzárendelést használhat",
- "proxyUrl": "Proxy URL",
+ "proxyUrl": "Proxy URL-címe",
"pricingRates": "Árképzési tarifák formátuma",
"currentPricing": "Jelenlegi árképzés áttekintése",
"loadingPricing": "Áradatok betöltése...",
@@ -6748,21 +6755,21 @@
"showTailscaleFunnelDesc": "Tailscale csatornavezérlők megjelenítése a Végpont oldalon.",
"showNgrokTunnel": "ngrok Alagút",
"showNgrokTunnelDesc": "Az ngrok alagútvezérlők megjelenítése a Végpont oldalon.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Oldalsáv elemeinek elrejtése",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "Összes",
+ "presetAllDesc": "Minden megjelenítése",
+ "presetEssentials": "Alapvető",
+ "presetEssentialsDesc": "Kezdő útvonal – a speciális eszközök továbbra is kereshetők",
+ "presetMinimal": "Minimális",
+ "presetMinimalDesc": "Csak az alapvető oldalak",
+ "presetDeveloper": "Fejlesztő",
+ "presetDeveloperDesc": "Fejlesztői és proxyeszközök",
+ "presetAdmin": "Adminisztrátor",
+ "presetAdminDesc": "Monitorozás és auditálás",
+ "settingsSidebarTitle": "Oldalsáv testreszabása",
+ "settingsSidebarDesc": "Válassza ki, mely elemek jelenjenek meg az oldalsávon. Az Alapvető beállítás mellett a speciális eszközök továbbra is kereshetők.",
"hideHealthLogs": "Állapotellenőrzési naplók elrejtése",
"hideHealthLogsDesc": "Ha BE van kapcsolva, tiltsa le a [HealthCheck] üzeneteket a kiszolgálókonzolon",
"themeAccent": "Téma színe",
@@ -6776,19 +6783,19 @@
"themeOrange": "Narancs",
"themeCyan": "Cián",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Az alkalmazás nevének és logójának testreszabása",
+ "appName": "Alkalmazás neve",
+ "appNameDesc": "Az oldalsávon és a böngészőlapon megjelenő név",
+ "customLogo": "Egyéni logó URL-címe",
+ "customLogoDesc": "Az egyéni logókép URL-címe",
+ "uploadLogo": "Logó feltöltése",
+ "resetLogo": "Alapértelmezés visszaállítása",
+ "logoPreview": "Előnézet",
+ "customFavicon": "Böngészőfavicon",
+ "customFaviconDesc": "Az egyéni favicon URL-címe (a böngészőlapon jelenik meg)",
+ "uploadFavicon": "Favicon feltöltése",
+ "resetFavicon": "Favicon visszaállítása",
+ "faviconPreview": "Favicon előnézete",
"logoFileTooLarge": "A logófájlnak 500 KB-nál kisebbnek kell lennie",
"faviconFileTooLarge": "A faviconfájlnak 50 KB-nál kisebbnek kell lennie",
"invalidLogoFileType": "Érvénytelen fájltípus. Kérjük, töltsön fel PNG, JPG, SVG, GIF vagy WebP formátumot.",
@@ -6892,21 +6899,21 @@
"refreshInterval": "Frissítési Intervallum",
"ruleModeDescription": "Szabály Mód Leírás"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "Tömeges állapotellenőrzés",
+ "bulkHealthcheckDesc": "Az összes beállított proxy tesztelése egy cél-URL-lel annak megállapításához, hogy melyek működnek.",
+ "healthcheckTesting": "Tesztelés...",
+ "healthcheckAll": "Összes állapotának ellenőrzése",
+ "healthcheckFailed": "Az állapotellenőrzés futtatása sikertelen",
+ "healthcheckTestingAll": "Az összes proxy párhuzamos tesztelése...",
+ "healthcheckTotal": "Összesen",
+ "healthcheckWorking": "Működő",
+ "healthcheckFailedLabel": "Sikertelen",
+ "healthcheckStatus": "Állapot",
+ "healthcheckProxyUrl": "Proxy URL-címe",
+ "healthcheckLatency": "Késleltetés",
"proxyDocumentationScopeTitle": "Proxy hatókör feloldása",
"proxyDocumentationScopeDescBefore": "Az OmniRoute a kimenő proxyt prioritási sorrendben oldja fel:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "kombináció → fiók → szolgáltató → globális",
"proxyDocumentationScopeDescAfter": ". A legspecifikusabb hatókör nyer.",
"proxyDocumentationAddTitle": "Egyedi proxy hozzáadása",
"proxyDocumentationAddDescBefore": "Lépjen a",
@@ -6941,7 +6948,7 @@
"proxyFreePoolAddSelected": "Kiválasztottak hozzáadása a készlethez",
"proxyFreePoolAddVisible": "Összes látható hozzáadása a készlethez",
"proxyFreePoolSource": "Forrás",
- "proxyFreePoolHostPort": "Host:Port",
+ "proxyFreePoolHostPort": "Gazdagép:Port",
"proxyFreePoolType": "Típus",
"proxyFreePoolCountry": "Ország",
"proxyFreePoolQuality": "Minőség",
@@ -7014,7 +7021,7 @@
"errorOccurred": "Hiba történt",
"updatePassword": "Jelszó frissítése",
"setPassword": "Jelszó beállítása",
- "apiEndpointProtection": "API Endpoint Protection",
+ "apiEndpointProtection": "API-végpont védelme",
"requireAuthModels": "API-kulcs szükséges a /models-hoz",
"requireAuthModelsDesc": "Bekapcsolt állapotban a /v1/models végpont 404-et ad vissza a nem hitelesített kérésekhez. Megakadályozza, hogy illetéktelen felhasználók felfedezzék a modellt.",
"authModelHeading": "Aktív engedélyezési modell",
@@ -7030,11 +7037,11 @@
"providersBlocked": "{count} szolgáltató(k) blokkolva a /models-ből",
"blockProviderTitle": "{provider} letiltása",
"unblockProviderTitle": "{provider} blokkolásának feloldása",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "cliFingerprint": "CLI-ujjlenyomat egyeztetése",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count} szolgáltatónál aktív a CLI-ujjlenyomat",
+ "enableFingerprintTitle": "Ujjlenyomat engedélyezése ehhez: {provider}",
+ "disableFingerprintTitle": "Ujjlenyomat letiltása ehhez: {provider}",
"systemTransforms": "Rendszerblokk Transform Pipeline",
"systemTransformsDesc": "A továbbítás előtt a kérelem törzsére alkalmazott átalakítások szolgáltatónkénti megrendelése. Bármilyen szolgáltatói azonosítót támogat.",
"systemTransformsAddProvider": "Szolgáltató hozzáadása",
@@ -7061,17 +7068,17 @@
"leastUsedDesc": "Válassza ki a legutóbb használt fiókot",
"costOpt": "Költségopt",
"costOptDesc": "A legolcsóbb elérhető fiók előnyben részesítése",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "Visszaállítás-érzékeny RR",
"resetAwareDesc": "Előnyben részesítse az egészséges fennmaradó kvótával és közelebbi visszaállításokkal rendelkező fiókokat",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Kvótaalapú súlyozás",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
+ "strictRandom": "Szigorúan véletlenszerű",
+ "strictRandomDesc": "Keveréses pakli — minden fiókot egyszer használ, mielőtt újrakeverné",
"stickyLimit": "Ragadós határ",
"stickyLimitDesc": "Hívások fiókonként váltás előtt",
"routingStrategyTitle": "Útvonalválasztási stratégia",
"routingStrategySubtitle": "9router egyezés: fiók round-robin, rögzített korlátok és kombó rotáció",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Ciklikus elosztás",
"accountRoundRobinDesc": "Fiókok váltogatása a terhelés elosztásához",
"comboRoundRobin": "Kombó Round Robin",
"comboRoundRobinDesc": "Kombó célpontok váltogatása ahelyett, hogy mindig az elsővel kezdene",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "Globális fiókstratégia felülírása ehhez a szolgáltatóhoz (9router paritás).",
"providerRoutingStrategy": "Fiókstratégia",
"providerRoutingInheritGlobal": "Globális alapértelmezés öröklése",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Kvóta-előellenőrzési küszöb",
+ "quotaPreflightSubtitle": "A kvótájukat kimerítő fiókok kihagyása, mielőtt a kérés továbbításra kerülne",
+ "quotaPreflightEnable": "Kvóta-előellenőrzés engedélyezése",
+ "quotaPreflightEnableDesc": "Minden kérés előtt ellenőrizze a fiók fennmaradó kvótáját (5 órás / heti / havi időablakok). A küszöböt elérő vagy az alá csökkenő fiókok háttérhívás nélkül kimaradnak. A Szolgáltatói kvóta oldalon időablakonként beállított küszöbértékek mindig felülírják az itt megadott alapértelmezést.",
+ "quotaPreflightCutoff": "Globális küszöb (min. fennmaradó %)",
+ "quotaPreflightCutoffDesc": "Ne használja tovább a fiókot, ha a fennmaradó kvótája erre a százalékra vagy ez alá csökken, minden olyan időablakban, amelyhez nincs saját küszöbérték beállítva. Megfelel a Szolgáltatói kvóta oldalon látható fennmaradó százalékot jelző sávoknak.",
+ "quotaPreflightWindowsHint": "Azokra az időablakokra, amelyekhez saját időablak- vagy szolgáltatóspecifikus küszöbérték tartozik (a Szolgáltatói kvóta oldal Küszöbérték párbeszédpaneljén beállítva), ez az alapértelmezés nincs hatással.",
+ "quotaPreflightLoadFailed": "Nem sikerült betölteni a kvóta-előellenőrzési beállításokat.",
"modelAliases": "Modell álnevek",
"modelAliasesTitle": "Modell aliasok",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "Modellnevek átnevezése pontos egyezésekkel vagy helyettesítő karakteres mintákkal.",
"addCustomAlias": "Egyéni Alias Hozzáadása",
"deprecatedModelId": "Elavult modell ID",
"newModelId": "Új modell ID",
@@ -7122,14 +7129,14 @@
"authenticated": "Hitelesítve",
"guest": "Vendég",
"loginTime": "Bejelentkezési idő",
- "sessionAge": "Session Age",
+ "sessionAge": "Munkamenet kora",
"browser": "Böngésző",
"clearLocalData": "Helyi adatok törlése",
"logout": "Kijelentkezés",
"clearLocalDataConfirm": "Törli az összes helyi adatot? Ezzel visszaállítja beállításait.",
"unknown": "Ismeretlen",
"systemActor": "rendszer",
- "ipAccessControl": "IP Access Control",
+ "ipAccessControl": "IP-alapú hozzáférés-vezérlés",
"ipAccessControlDesc": "Adott IP-címek letiltása vagy engedélyezése",
"ipModeDisabled": "Letiltva",
"ipModeBlacklist": "Feketelista",
@@ -7184,7 +7191,7 @@
"comboStrategyAria": "Kombinált stratégia",
"priority": "Prioritás",
"weighted": "Súlyozott",
- "contextRelay": "Context Relay",
+ "contextRelay": "Kontextustovábbítás",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "Max újrapróbálkozás",
"retryDelayLabel": "Újrapróbálkozás késleltetése (ms)",
@@ -7210,20 +7217,20 @@
"concurrencyPerModel": "Egyidejűség / Modell",
"queueTimeout": "Sor időtúllépése (ms)",
"queueDepth": "Várakozási sor mélysége",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "Átadási küszöb",
+ "contextRelayMaxMessages": "Összegzéshez használható üzenetek maximális száma",
+ "contextRelaySummaryModel": "Összegző modell",
+ "contextRelayProviderNote": "A Kontextustovábbítás jelenleg Codex-fiókokhoz hoz létre átadásokat, és ezeket az értékeket használja globális alapértelmezésként az új vagy még nem konfigurált kombinációkhoz.",
"providerProfiles": "Szolgáltatói profilok",
"providerProfilesDesc": "Különálló rugalmassági beállítások az OAuth (munkamenet alapú) és az API-kulcs (mérős) szolgáltatók számára. Az alacsonyabb díjkorlátok miatt az OAuth-szolgáltatók szigorúbb küszöbértékeket alkalmaznak.",
"oauthProviders": "OAuth-szolgáltatók",
"apiKeyProviders": "API kulcs szolgáltatók",
"transientCooldown": "Átmeneti lehűlés",
- "rateLimitCooldown": "Rate Limit Cooldown",
+ "rateLimitCooldown": "Sebességkorlátozás várakozási ideje",
"maxBackoffLevel": "Max visszalépési szint",
"cbThreshold": "CB küszöb",
"cbResetTime": "CB visszaállítási idő",
- "rateLimiting": "Rate Limiting",
+ "rateLimiting": "Sebességkorlátozás",
"rateLimitingDesc": "Az API-kulcs-szolgáltatók automatikusan korlátozva vannak a biztonságos alapértelmezett értékekkel. A korlátok a válaszfejlécekből tanulnak, és idővel alkalmazkodnak.",
"defaultSafetyNet": "Alapértelmezett biztonsági háló",
"rpm": "RPM",
@@ -7295,7 +7302,7 @@
"daysAgo": "{count}napja",
"backupReasonManual": "kézikönyvet",
"backupReasonPreRestore": "elő-visszaállítás",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
+ "connectionsCount": "{count, plural, one {# kapcsolat} other {# kapcsolat}}",
"noChangesSinceBackup": "Nincs változás a legutóbbi biztonsági mentés óta",
"backupFailed": "A biztonsági mentés nem sikerült",
"restoreFailed": "A visszaállítás nem sikerült",
@@ -7325,7 +7332,7 @@
"configured": "konfigurálva",
"none": "Nincs",
"modelOverrideValuePlaceholder": "Numerikus érték",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Angol vesszővel elválasztva, pl. low, medium, high",
"addKeyValue": "Kulcs-érték hozzáadása",
"noModelOverrides": "Nincsenek felülírások konfigurálva ehhez a modellhez.",
"modelOverrideLoadFailed": "Nem sikerült betölteni a modellfelülírásokat",
@@ -7374,25 +7381,25 @@
"editPricing": "Árak szerkesztése",
"viewFullDetails": "Teljes részletek megtekintése",
"themeCoral": "Korall",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Adaptív forgalomalapú útválasztás",
+ "adaptiveVolumeRoutingDesc": "A kapcsolatok számának dinamikus skálázása a hasznos adat mennyisége és az átviteli terhelés alapján.",
+ "lkgpToggleTitle": "Legutóbbi ismert működő szolgáltató (LKGP)",
+ "lkgpToggleDesc": "Ha engedélyezve van, az útválasztó megjegyzi, hogy melyik szolgáltató adott legutóbb sikeres választ, és a következő kéréseknél először azt próbálja meg.",
"echoRequestedModelTitle": "A kért modellnév visszaküldése (echo) a válaszokban",
"echoRequestedModelDesc": "Ha engedélyezve van, a válasz `model` mezője a kliens által kért álnevet vagy kombinált nevet adja vissza a felsőbb szintű (upstream) modellnév helyett. Megoldja a problémát az olyan szigorú klienseknél (pl. Claude Desktop), amelyek elutasítják azokat a válaszokat, amelyekben a modell nem egyezik a kéréssel.",
"webSearchRouteTitle": "Webes keresés irányítása",
"webSearchRouteDesc": "Ha egy kérés natív web_search eszközt tartalmaz, irányítsa a teljes kérést erre a modellre az alapértelmezett helyett — hasznos olyan szolgáltatóknál, amelyek nem implementálják az Anthropic web_search szerveres eszközét. Hagyja üresen a letiltáshoz.",
"webSearchRoutePlaceholder": "Keressen vagy válasszon ki egy modellt…",
"paidModelPatternWarning": "Ez a minta csak fizetős modellekre illeszkedik — engedélyezze a fizetős modelleket, vagy módosítsa a mintát.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP-gyorsítótár törlése",
+ "lkgpCacheCleared": "Az LKGP-gyorsítótár sikeresen törölve",
+ "lkgpCacheClearFailed": "Nem sikerült törölni az LKGP-gyorsítótárat",
+ "days": "Napok",
+ "lkgp": "LKGP mód",
+ "lkgpDesc": "Legutóbbi ismert jó szolgáltató (kiszámítható hibatűrés)",
+ "maintenance": "Karbantartás",
+ "purgeExpiredLogs": "Lejárt naplók törlése",
+ "purgeLogsFailed": "Nem sikerült törölni a naplókat",
"logsDeleted": "{count, plural, =0 {Nincs törölt lejárt napló} one {Sikeresen törölve # lejárt napló} other {Sikeresen törölve # lejárt napló}}",
"resetUsageData": "Használati adatok alaphelyzetbe állítása",
"resetUsageDataDesc": "Válassza ki, mennyi időre visszamenőleg szeretné törölni a használati adatokat, a kérésnaplókat és az analitikai adatokat. A szolgáltatói konfigurációk, kapcsolatok, API-kulcsok, kombinációk és beállítások megmaradnak. Ez a művelet nem vonható vissza.",
@@ -7409,39 +7416,39 @@
"resetUsageFailed": "Nem sikerült a használati adatok alaphelyzetbe állítása",
"reset": "Alaphelyzetbe állítás",
"resetting": "Alaphelyzetbe állítás...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "Kontextusra optimalizált",
+ "contextOptDesc": "A kontextusablak követelményei és a beszélgetés hossza alapján irányít",
+ "cacheOpt": "Gyorsítótárra optimalizált",
+ "cacheOptDesc": "Ugyanazt az újrafelhasználható promptelőtagot ugyanazon szolgáltatói fióknál tartja",
+ "priorityDesc": "Szekvenciális tartalékra váltás – először az 1. szolgáltatót próbálja, majd a 2.-at, és így tovább",
+ "weightedDesc": "Százalékos súlyozás alapján osztja el a forgalmat a szolgáltatók között",
+ "modelRoutingTitle": "Modellirányítási szabályok",
+ "modelRoutingDesc": "Modellek automatikus irányítása adott kombinációkhoz globminták használatával",
+ "addRule": "Szabály hozzáadása",
+ "routeToCombo": "Irányítás kombinációhoz",
+ "selectCombo": "Kombináció kiválasztása...",
+ "priorityHint": "A magasabb értékű kerül előbb ellenőrzésre. Specifikus mintákhoz használjon 10 vagy nagyobb értéket.",
+ "patternHint": "A * tetszőleges számú karaktert, a ? egyetlen karaktert helyettesít. Nem tesz különbséget kis- és nagybetűk között.",
+ "noRoutingRules": "Nincsenek konfigurálva irányítási szabályok. A kérések alapértelmezés szerint a globális kombinációt használják.",
+ "routingRuleHint": "Adjon hozzá például egy claude-opus* -> frontier-combo szabályt a kérések automatikus irányításához.",
+ "deleteRoutingRule": "Törli ezt a modellirányítási szabályt?",
+ "exactMatchMode": "Pontos egyezés",
+ "wildcardPatternMode": "Helyettesítő karakteres minta",
+ "exactMatchModeDesc": "Használjon pontos aliasokat az elavult vagy átnevezett modellazonosítókhoz.",
+ "wildcardPatternModeDesc": "Használjon * és ? karaktereket tartalmazó helyettesítő karakteres aliasokat, ha egy modellcsaládot egyetlen célhoz kell társítani.",
+ "noExactAliasesConfigured": "Nincsenek konfigurálva pontos egyezésű aliasok.",
+ "wildcardRulesTitle": "Helyettesítő karakteres szabályok",
+ "noWildcardAliasesConfigured": "Nincsenek konfigurálva helyettesítő karakteres aliasok.",
+ "overview": "Áttekintés",
+ "unknownError": "Ismeretlen hiba",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "Engedélyezési lista",
+ "syncDisabled": "Szinkronizálás letiltva",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,23 +7456,23 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "Szinkronizálás engedélyezve",
+ "blacklist": "Tiltólista",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
+ "syncedModels": "Szinkronizált modellek",
+ "budget": "Költségkeret",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "Nem sikerült visszaállítani az árakat: {reason}",
- "tab": "Tab",
+ "tab": "Lap",
"pricingSavedProvider": "Mentett ár: {provider}",
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "Nem sikerült menteni az árakat: {reason}",
"pricingResetProvider": "A(z) {provider} árának visszaállítása",
- "nextSync": "Next Sync",
+ "nextSync": "Következő szinkronizálás",
"pricingSyncFailedWithReason": "Az árak szinkronizálása nem sikerült: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "Szinkronizált árképzés törlése",
+ "compressionTitle": "Prompttömörítés",
+ "compressionDesc": "Csökkentse a tokenhasználatot a promptok tömörítésével, mielőtt elküldi őket a szolgáltatóknak",
"compressionGuidanceFullGuideLink": "Teljes tömörítési útmutató",
"compressionGuidanceShow": "Részletek",
"compressionGuidanceHide": "Részletek elrejtése",
@@ -7481,15 +7488,15 @@
"tokenSaverInputCompressionDesc": "Az alkalmas csevegési előzmények átírása a kódok, URL-ek és a szándék megőrzése mellett.",
"tokenSaverFineTunePrefix": "Finomhangolja az egyes motorokat ezen:",
"tokenSaverFineTuneSuffix": "vagy kombinálja a motorokat kérésenként ezen:",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Tömörítési mód",
+ "compressionModeOff": "Kikapcsolva",
+ "compressionModeOffDesc": "Nincs alkalmazott tömörítés",
+ "compressionModeLite": "Enyhe",
+ "compressionModeLiteDesc": "Szóközök és üres sorok csökkentése",
+ "compressionModeStandard": "Normál (Caveman)",
+ "compressionModeStandardDesc": "Szabályalapú tömörítés több mint 30 mintával, a kódblokkok és URL-ek megőrzésével",
+ "compressionModeAggressive": "Agresszív",
+ "compressionModeAggressiveDesc": "Összegzés + eszközeredmények tömörítése + fokozatos elévülés a maximális megtakarításért",
"compressionModeUltra": "Ultra",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "Agresszív motor konfiguráció",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "A legutóbbi üzenetek száma az egyes öregedési szinteken (magasabb = jobban megőrzött)",
"compressionToolStrategies": "Eszköz Eredmény Stratégiák",
"compressionToolStrategiesDesc": "Váltsa át a tömörítési stratégiákat a különböző szerszámeredmény-típusokhoz",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "Általános beállítások",
+ "compressionAutoTrigger": "Automatikus aktiválási küszöbérték",
+ "compressionCacheTTL": "Gyorsítótár TTL-je",
+ "compressionPreserveSystem": "Rendszerprompt megőrzése",
"compressionPreserveSystemAlways": "Mindig",
"compressionPreserveSystemWhenNoCache": "Ha nincs gyorsítótár",
"compressionPreserveSystemNever": "Soha",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "Mentve",
"compressionExclusionsCount": "{count, plural, one {# kizárás} other {# kizárás}} konfigurálva",
"compressionExclusionsEmpty": "Nincsenek kizárások konfigurálva — minden modell/végpont jogosult a tömörítésre (alapértelmezett viselkedés).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "A Caveman motor konfigurációja",
+ "compressionCavemanConfigDesc": "A szabályalapú tömörítőmotor finomhangolása",
"compressionCavemanPanelHint": "A be-/kikapcsolása és a szintje a panelen állítható be:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Tömörítendő üzenetszerepkörök",
+ "compressionRoleUser": "Felhasználó",
+ "compressionRoleAssistant": "Asszisztens",
+ "compressionRoleSystem": "Rendszer",
+ "compressionMinLength": "Minimális üzenethossz",
+ "compressionSkipRules": "Kihagyandó tömörítési szabályok",
+ "compressionSkipRulesDesc": "Kattintson azokra a szabályokra, amelyeket ki szeretne hagyni a tömörítés során",
+ "compressionPreservePatterns": "Megőrzendő minták",
+ "compressionPreservePatternsDesc": "Soha nem tömörítendő regexminták (soronként egy)",
+ "compressionLogTitle": "Tömörítési napló",
+ "compressionLogEmpty": "Még nincsenek tömörített kérések. A tömörítési statisztikák itt jelennek meg, amikor a kérések feldolgozása engedélyezett tömörítéssel történik.",
"minutes": "percben",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
+ "compressionModeRtkDesc": "Parancsérzékeny eszközkimenet-szűrés",
+ "compressionModeCodexResponses": "A Responses eszközkimenete",
+ "compressionModeCodexResponsesDesc": "Konzervatív tömörítés a megfelelő shell-, javítási, keresési, build- és JSON-kimenetekhez",
+ "compressionModeStacked": "Halmozott",
+ "compressionModeStackedDesc": "RTK eszközkimenet-szűrés, majd Caveman üzenettömörítés",
+ "qdrantTitle": "Qdrant (vektormemória)",
+ "qdrantDesc": "Opcionális. A szemantikai emlékeket külső vektoradatbázisban indexeli a gyorsabb lekérés érdekében.",
+ "qdrantStatusActive": "Aktív",
+ "qdrantStatusError": "Hiba",
+ "qdrantStatusDisabled": "Letiltva",
+ "qdrantEnable": "Qdrant engedélyezése",
+ "qdrantEnableDesc": "Ha engedélyezve van, a szemantikus/hibrid stratégia használhatja a Qdrant szolgáltatást az emlékek lekérésére.",
+ "qdrantTesting": "Tesztelés...",
+ "qdrantTestConnection": "Kapcsolat tesztelése",
+ "qdrantSaved": "Konfiguráció mentve",
+ "qdrantSaveError": "Nem sikerült menteni a konfigurációt",
+ "qdrantHostHint": "Port nélkül. Példa: 127.0.0.1 vagy http://qdrant",
"qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "qdrantPortHint": "Qdrant alapértelmezett értéke: 6333",
+ "qdrantCollectionHint": "Az emlékpontok tárolási helye.",
+ "qdrantEmbeddingModel": "Beágyazási modell",
+ "qdrantHelpTitle": "Gyors beállítási súgó",
+ "qdrantHelpQuickTitle": "Gyors beállítás (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Gazdagép: Qdrant IP-címe/URL-je, port: 6333, gyűjtemény: omniroute_memory.",
+ "qdrantHelpStep2": "2. Az nvidia/llama-nemotron-embed-vl-1b-v2:free használatakor állítsa a gyűjtemény dimenzióját 2048-ra.",
+ "qdrantHelpStep3": "3. Modellmező: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Mentse, tesztelje a kapcsolatot, majd tesztelje a keresést.",
+ "qdrantEmbeddingQuickSelect": "Gyors kiválasztás a felismert modellek közül...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "Formátum: provider/model. A szolgáltató hitelesítő adatát konfigurálni kell.",
+ "qdrantApiKeyPlaceholderKeep": "(hagyja üresen a jelenlegi kulcs megtartásához)",
+ "qdrantApiKeyPlaceholderOptional": "(hagyja üresen, ha nincs használatban)",
+ "qdrantSaveHint": "Tipp: szerkessze a gazdagépet/portot/gyűjteményt/modellt, majd kattintson a Mentés gombra. Az API-kulcs opcionális.",
+ "qdrantSearchTestTitle": "Keresés tesztelése",
+ "qdrantSearchTestDesc": "Beágyazást generál, és keresést végez a Qdrant szolgáltatásban.",
+ "qdrantSearchPlaceholder": "Példa: felhasználói beállítások, előzmények stb.",
+ "qdrantNoResults": "Nincsenek találatok (vagy a Qdrant nincs konfigurálva).",
+ "qdrantCleanupTitle": "Megőrzés és tisztítás",
+ "qdrantCleanupDesc": "Eltávolítja a lejárt és régi pontokat a következő alapján:",
+ "searching": "Keresés...",
+ "cleaning": "Tisztítás...",
+ "cleanNow": "Tisztítás most",
"optional": "Nem kötelező",
"current": "Aktuális",
"remove": "Távolítsa el",
@@ -7594,26 +7601,26 @@
"oneproxyTotalProxies": "Összes proxy",
"oneproxyAvgQuality": "Átl. minőség",
"resilienceScope": "Hatály:",
- "resilienceTrigger": "Trigger:",
+ "resilienceTrigger": "Indítás:",
"resilienceEffect": "Hatás:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "Kérésvárólista és sebesség",
+ "resilienceAutoEnableApiKeyProviders": "Automatikus engedélyezés az API-kulcsot használó szolgáltatóknál",
+ "resilienceRequestsPerMinute": "Kérések percenként",
+ "resilienceMinTimeBetweenRequests": "Kérések közötti minimális idő",
+ "resilienceConcurrentRequests": "Egyidejű kérések",
+ "resilienceConnectionScopeConcurrentRequests": "Egyidejű kérések kapcsolatonként/kvótatartományonként",
+ "resilienceGlobalConcurrentRequests": "Globális egyidejű upstream kérések (0 = letiltva)",
"resilienceMaxQueueWaitTime": "Maximális várakozási idő a sorban",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Alap várakozási idő",
+ "resilienceUseUpstreamRetryHints": "Felsőbb szolgáltatói újrapróbálkozási javaslatok használata",
+ "resilienceDefaultPerProvider": "Alapértelmezett (szolgáltatónként)",
+ "resilienceAlwaysOn": "Mindig bekapcsolva",
+ "resilienceAlwaysOff": "Mindig kikapcsolva",
"routingRemoveEntry": "Bejegyzés eltávolítása",
"routingNeedlesSubstrings": "Tűk (a megfelelő karakterláncok)",
"routingCaseSensitive": "Kis- és nagybetű érzékeny",
"routingPrefixes": "Előtagok",
- "routingMatch": "Match",
+ "routingMatch": "Egyezés",
"routingReplacement": "Csere",
"routingReplaceAllOccurrences": "Cserélje ki az összes előfordulást",
"routingPatternRegex": "Minta (regex)",
@@ -7665,7 +7672,7 @@
"routingAntigravitySignatureDesc": "Szabályozza, hogy az OmniRoute csak a tárolt Gemini gondolat-aláírásokat használja-e újra, vagy elfogadja a kliens által biztosított, ellenőrzött aláírásokat az Antigravity-kompatibilis eszközhívási folyamatokban.",
"routingAntigravitySignatureEnabledLabel": "Engedélyezve",
"routingAntigravitySignatureEnabledDesc": "Jelenlegi viselkedés. Figyelmen kívül hagyja a kliens által biztosított aláírásokat, és továbbra is a tárolt OmniRoute folyamatot használja.",
- "routingAntigravitySignatureBypassLabel": "Bypass",
+ "routingAntigravitySignatureBypassLabel": "Megkerülés",
"routingAntigravitySignatureBypassDesc": "Elfogadja a kliens által biztosított aláírásokat egy egyszerűsített ellenőrzés után, és érvénytelenség esetén visszatér a tárolt aláíráshoz.",
"routingAntigravitySignatureBypassStrictLabel": "Szigorú bypass",
"routingAntigravitySignatureBypassStrictDesc": "Teljes protobuf-ellenőrzést követel meg a kliens által biztosított aláírás elfogadása előtt.",
@@ -7679,10 +7686,10 @@
"routingClientCacheControlAlwaysDesc": "Mindig továbbítsa a kliens által biztosított cache_control fejléceket a felsőbb szintű szolgáltatóknak változatlanul.",
"routingClientCacheControlNeverLabel": "Soha ne őrizze meg",
"routingClientCacheControlNeverDesc": "Mindig távolítsa el a kliens cache_control fejléceit, és hagyja, hogy az OmniRoute kezelje a gyorsítótárazást ott, ahol a natív szolgáltatói folyamatok ezt támogatják.",
- "routingZeroConfigTitle": "Zero-Config Auto-Routing",
+ "routingZeroConfigTitle": "Konfigurációmentes automatikus útválasztás",
"routingZeroConfigDesc": "Engedélyezze az automatikus szolgáltató-választást az auto/ előtag használatával. Ha engedélyezve van, az auto, auto/coding, auto/fast stb. címekre érkező kérések dinamikusan lesznek irányítva az összes csatlakoztatott szolgáltató között.",
"routingDefaultAutoVariant": "Alapértelmezett automatikus változat",
- "visionBridge": "Vision Bridge",
+ "visionBridge": "Vizuális híd",
"visionBridgeDesc": "Automatikus kép-szöveg (vision-to-text) tartalék megoldás futtatása, mielőtt a képkéréseket csak szöveges modellekhez irányítaná.",
"visionBridgeEnabledLabel": "Engedélyezve",
"visionBridgeEnabledDesc": "A hívás előtti híd (bridge) ki-/bekapcsolása, amely a képrészeket a kinyert szöveggel helyettesíti.",
@@ -7691,25 +7698,25 @@
"visionBridgeModel": "Hídmodell",
"visionBridgeModelPlaceholder": "openai/gpt-4o-mini",
"visionBridgeModelHint": "Bármely látástámogató (vision) OmniRoute modellazonosító használható itt.",
- "visionBridgePrompt": "Bridge Prompt",
+ "visionBridgePrompt": "Hídprompt",
"visionBridgePromptPlaceholder": "Írd le tömören ezt a képet.",
"visionBridgePromptHint": "Elküldve a látásmodellnek (vision model), mielőtt a kinyert leírás vissza lenne illesztve az eredeti kérésbe.",
"visionBridgeTimeoutMs": "Időtúllépés (ms)",
"visionBridgeMaxImagesPerRequest": "Maximum képek kérésenként",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Visszalépési lépések maximális száma",
+ "resilienceProviderBreakerTitle": "Szolgáltatónkénti áramkör-megszakító",
+ "resilienceFailureThreshold": "Hibaküszöb",
+ "resilienceDegradationThreshold": "Teljesítménycsökkenési küszöb",
"resilienceResetTimeout": "Időkorlát visszaállítása",
"resilienceFailureThresholdLabel": "Meghibásodási küszöb",
"resilienceResetTimeoutLabel": "Időkorlát visszaállítása",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Kapcsolati várakozási idő",
"resilienceUseUpstreamRetryHintsLabel": "Használjon felfelé irányuló újrapróbálkozási tippeket",
"resilienceUseUpstream429BreakerLabel": "Használjon felfelé irányuló 429 tippet (megszakító)",
"resilienceMaxBackoffStepsLabel": "Max visszalépési lépések",
"resilienceYes": "Igen",
"resilienceNo": "Nem",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Alapértelmezett",
"storageDatabaseBackupRetention": "Az adatbázis biztonsági másolatának megőrzése",
"storageDatabaseBackups": "Adatbázis-mentések",
"storageBackupRetentionDescription": "Az automatikus SQLite-mentések helye:",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "A korábbi JSON sikeresen importálva!",
"jsonImportFailed": "Nem sikerült importálni a JSON-t",
"jsonImportError": "Hiba történt a JSON importálása során",
+ "jsonImportAuthRequired": "Egy régi JSON-konfiguráció importálásához hitelesítés szükséges. Kérjük, jelentkezzen be, vagy előbb fejezze be a beállítást.",
+ "databaseSettingsAuthRequiredTitle": "Hitelesítés szükséges",
+ "databaseSettingsAuthRequiredBody": "Az adatbázis-beállítások és a JSON-importálás csak hitelesített rendszergazda számára érhetők el. Megtekintésükhöz és szerkesztésükhöz jelentkezzen be, vagy fejezze be a beállítást.",
+ "databaseSettingsAuthRequiredCta": "Bejelentkezés",
"storagePurgeData": "Adatok törlése",
"storagePurgeDataDesc": "Azonnal törli az összes rekordot a megőrzési ellenőrzések alkalmazása nélkül. Óvatosan használja.",
"storageRetentionCleanup": "Megőrzési beállítások",
@@ -7788,7 +7799,7 @@
"purgeDetailedLogs": "Részletes naplók törlése",
"storageDatabaseSize": "Adatbázis mérete",
"storagePageCount": "Oldalszám",
- "storageFreelistCount": "Freelist Count",
+ "storageFreelistCount": "Szabadlista elemeinek száma",
"storageLastVacuum": "Utolsó vákuum",
"storageLastOptimization": "Utolsó optimalizálás",
"storageIntegrityCheck": "Integritás ellenőrzése",
@@ -7824,23 +7835,23 @@
"compressionDerivedMode": "mód: {mode}",
"compressionAdaptiveOff": "Adaptív kontextuskeret: kikapcsolva (örökölt automatikus indítás)",
"compressionAdaptiveTarget": "Adaptív ({mode}, szabályzat: {policy}) — cél ≈ {target, number} token ({contextLimit, number} tokenes ablakhoz)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Adaptív kontextuskeret",
+ "compressionAdaptiveModeOff": "Ki (korábbi automatikus aktiválás)",
+ "compressionAdaptiveModeFloor": "Minimum (mindig garantálja az illeszkedést)",
+ "compressionAdaptiveModeReplace": "Automatikus aktiválás lecserélése",
+ "compressionAdaptivePolicy": "Keretkezelési szabályzat",
+ "compressionAdaptivePolicyReserve": "Kimeneti keret fenntartása",
+ "compressionAdaptivePolicyPercentage": "Az ablak százaléka",
+ "compressionAdaptivePolicyAbsolute": "Abszolút tokenkeret",
"compressionOutputStylesDescription": "Válaszformáló utasítások beillesztése a szolgáltató kimenetének átírása nélkül. Szabadon kombinálható.",
"mcpAccessibilityDescription": "Hatókörbe foglalja az MCP-eszközök kimeneteit (külön tároló).",
"compressionStylesTileSummary": "{tokens, number} token megtakarítva · {runs, plural, one {# stílusozott futtatás} other {# stílusozott futtatás}}",
"compressionStylesTileEmpty": "Még nincsenek stílusozott futtatások.",
"compressionLevel": {
"minimal": "Minimális",
- "standard": "Standard",
+ "standard": "Normál",
"aggressive": "Agresszív",
- "lite": "Lite",
+ "lite": "Egyszerűsített",
"full": "Teljes",
"ultra": "Ultra"
},
@@ -7854,7 +7865,7 @@
"description": "Tartalom alapján címzett lekérési jelölők."
},
"lite": {
- "label": "Lite",
+ "label": "Egyszerűsített",
"description": "Szóközök és formátum tisztítása."
},
"rtk": {
@@ -7862,11 +7873,11 @@
"description": "Parancskimenet-szűrés."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses-eszköz kimenete",
+ "description": "Konzervatív tömörítés a támogatott Responses-eszközök kimeneteihez."
},
"headroom": {
- "label": "Headroom",
+ "label": "Tartalék",
"description": "Táblázatos JSON-tömörítés."
},
"relevance": {
@@ -7874,7 +7885,7 @@
"description": "Kivonatoló mondatpontozás a legutóbbi felhasználói lekérdezés alapján."
},
"caveman": {
- "label": "Caveman",
+ "label": "Ősember",
"description": "Szabályalapú prózatömörítés."
},
"aggressive": {
@@ -7904,12 +7915,12 @@
"description": "YAGNI-létra: a legkisebb működő változtatás, nem kért absztrakciók nélkül."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Lófarok (lusta senior fejlesztő)",
+ "description": "Lusta senior fejlesztői fegyelem: haladj felfelé a YAGNI-létrán, szüntesd meg a kiváltó okot, és készítsd el a legkisebb működő módosítást."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "ADHD-m van (cselekvésközpontú)",
+ "description": "Cselekvésközpontú kimenet: a következő teendő legyen elöl, a lépések legyenek számozva, egyetlen konkrét következő lépéssel, bevezető nélkül."
},
"terse-cjk": {
"label": "Tömör CJK (文言)",
@@ -7920,13 +7931,21 @@
"resilienceEnableServerSideWait": "Szerveroldali várakozás engedélyezése",
"resilienceMaximumRetries": "Maximum újrapróbálkozás",
"resilienceMaximumWaitPerRetry": "Maximum várakozási idő újrapróbálkozásonként",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "SkillsMP piactér",
"memorySkillsFailedToSave": "Nem sikerült menteni",
"memorySkillsApiKey": "API kulcs",
"memorySkillsActiveSkillsProvider": "Aktív készségek szolgáltatója",
"cliproxyapiFallback": "CLIProxyAPI tartalék",
"cliproxyapiEnableFallback": "A CLIProxyAPI tartalék engedélyezése",
"cliproxyapiUrl": "CLIProxyAPI URL",
+ "headroomProxyTitle": "Headroom-proxy",
+ "headroomProxyDesc": "Az opcionális Headroom tokenmegtakarító proxy URL-je. Üresen hagyva a HEADROOM_URL vagy a http://localhost:8787 lesz használva.",
+ "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrlHint": "A visszacsatolási URL-ek erről az oldalról elindíthatók. A külső URL-ek csak ellenőrzésre kerülnek.",
+ "headroomProxySave": "Mentés",
+ "headroomProxyStart": "Indítás",
+ "headroomProxyStop": "Leállítás",
+ "headroomProxyExternalHint": "Ez az URL nem visszacsatolási cím, ezért az OmniRoute nem indítja el a helyi CLI-t.",
"cliproxyapiStatus": "CLIProxyAPI állapota",
"cliproxyapiNotDetected": "Nem észlelhető",
"cliproxyapiImportAuthTitle": "Fiókok importálása a CLIProxyAPI-ból",
@@ -7981,18 +8000,18 @@
"responsesStateModePreserve": "Megőrzés",
"responsesStateHint": "Az Automatikus beállítás eltávolítja a previous_response_id azonosítót, kivéve, ha egy kapcsolat kifejezetten engedélyezi az OpenAI Responses tárolást. Az Eltávolítás a legbiztonságosabb az állapotmentes kliensek számára, mint például a VS Code Custom Endpoint; a kontextus ilyenkor attól függ, hogy a kliens elküldi-e a teljes előzményt.",
"responsesStateSaveError": "Nem sikerült frissíteni a Responses állapotbeállítását",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Codex gyors csomag",
"codexFastTierDesc": "Globálisan adja meg a service_tier=prioritást az OpenAI Codex kérésekhez.",
"codexFastTierHint": "Ha engedélyezve van, az OmniRoute hozzáadja a service_tier=priority értéket a kimenő Codex-kérésekhez azokhoz a kapcsolatokhoz, amelyek még nem határoznak meg szintet. A prioritási szinthez OpenAI Enterprise API-kulcsra vagy ChatGPT-auth Codex-útvonalra van szükség; más kulcstípusok réteggel kapcsolatos hibát kapnak az OpenAI-tól. A Codex szolgáltató oldalán a kapcsolatonkénti beállítások élveznek elsőbbséget.",
"codexFastTierSaveError": "Nem sikerült frissíteni a Codex Fast Tier beállítását",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex-kvóta automatikus pingelése",
+ "codexAutoPingDesc": "Kapcsolatonként engedélyezhető: közvetlenül egy Codex-munkamenet időablakának visszaállítása után apró kérést küld, hogy ne legyen hideg, amikor szükséged van rá.",
+ "codexAutoPingWarning": "Minden ping kis mennyiségű valódi Codex-kvótát használ fel. Alapértelmezés szerint ki van kapcsolva — csak azoknál a kapcsolatoknál engedélyezd, amelyekre aktívan támaszkodsz.",
+ "codexAutoPingSaveError": "Nem sikerült frissíteni a Codex automatikus pingelési beállítását",
+ "codexAutoPingToggleAria": "A Codex-kvóta automatikus pingelésének be- vagy kikapcsolása ehhez: {connection}",
"codexFastTierTierLabel": "Szolgáltatási szint",
"codexFastTierTierPriority": "Prioritás",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierFlex": "Rugalmas",
"codexFastTierTierDefault": "Alapértelmezett",
"codexFastTierModelsLabel": "Fast-tier modellek",
"codexFastTierModelsHint": "Csak a bejelölt modellek kapnak service_tier értéket, ha a Fast Tier engedélyezve van.",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "Globális ellenőrzési időköz",
"resilienceCredentialHealthEveryMinutes": "Minden {minutes} percben",
"resilienceCredentialHealthHint": "0 kikapcsolja a háttérvizsgálatot (max. 1440 perc = 24 óra). Saját egészségellenőrzési értékkel rendelkező kapcsolatok figyelmen kívül hagyják ezt a globális alapértéket; egy kapcsolaton a 0 akkor is kiveszi, ha a globális vizsgálat be van kapcsolva.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "Mindig engedélyezve ennél: {provider} — az OAuth-fiók biztonságához szükséges; nem kapcsolható ki.",
+ "forcedFingerprintBadge": "Kötelező",
"sessionAffinityTitle": "Munkamenet-affinitás",
"sessionAffinityDesc": "Egy beszélgetést ennyi másodpercig ugyanazon a fiókon tart bármely szolgáltató esetén. A 0 letiltja.",
"sessionAffinityTtl": "Affinitás TTL (másodperc)",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "A visszalépési lépések maximális száma, mielőtt a lehűlési idő növekedése megállna. A legtöbb konfigurációban a Maximális lehűlési idő korlátot éri el először a rendszer, így ez egy biztonsági plafonként szolgál arra az esetre, ha a Maximális lehűlési idő megemelkedik.",
"disableSessionStickiness": "Munkamenet-ragadósság letiltása",
"disableSessionStickinessDesc": "A round-robin és a véletlenszerű kombinációk minden kérésnél új kapcsolatra váltanak, ahelyett, hogy a teljes beszélgetést egyetlen kapcsolathoz rögzítenék az első üzenet hash-e alapján. Hagyja kikapcsolva, hogy megőrizze a prompt-cache találatokat a többfordulós csevegéseknél. A kombinációnkénti felülírások elsőbbséget élveznek.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Promptgyorsítótár-lokalitás alapú útválasztás",
+ "promptCacheAffinityDesc": "Egyező promptgyorsítótár-kulcsok esetén részesítse előnyben ugyanazt a szolgáltatói fiókot, miközben megőrzi az állapot- és kvótaalapú feladatátvételt.",
+ "reasoningTokenBuffer": "Következtetési tokenpuffer",
+ "reasoningTokenBufferDesc": "Lehetővé teszi, hogy a kombinált útválasztás csak ismert következtetési modelleknél adjon max_tokens tartalékot, ha a teljes puffer belefér az ismert kimeneti korlátba.",
+ "zeroLatencyOptimizations": "Zéró késleltetésű optimalizálások",
+ "zeroLatencyOptimizationsDesc": "Engedélyezi a párhuzamosított kéréseket, a prediktív TTFT-kihagyásokat és a proaktív tartalékkérelem-tömörítést. Hagyd kikapcsolva, hogy ezek a késleltetési funkciók ne versenyeztessék a célpontokat, és ne tömörítsék a tartalék kéréseket.",
"credentialRedaction": "Hitelesítési adatok kitakarása",
"credentialRedactionDesc": "API-kulcsok, tokenek és titkok kitakarása a szolgáltatóknak küldött kontextusból és a válaszokból.",
"enableCredentialRedaction": "Hitelesítési adatok kitakarásának engedélyezése",
"enableCredentialRedactionDesc": "Eltávolítja az API-kulcsokat, tokeneket, privát kulcsokat és JWT-ket az üzenetekből, eszközhívásokból és válaszokból.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Automatikus szinkronizálás kikapcsolva",
+ "pricingAutoSyncEnabled": "Automatikus szinkronizálás bekapcsolva",
"modalityBridgeIntro": "Alakítsa a multimodális tartalmat szöveggé, mielőtt az csak szöveget kezelő modellekhez érne. A kép-, hang- és videóhidak elérhetők és beállíthatók.",
"modalityBridgeVisionTab": "Látás",
"modalityBridgeAudioTab": "Hang",
@@ -8259,7 +8278,7 @@
"modalityBridgeAudioEnabledDesc": "Cseréld le a hangrészeket átiratokkal, amikor a célmodell nem tudja feldolgozni a hangot.",
"modalityBridgeAudioModel": "Beszédfelismerő modell",
"modalityBridgeAudioModelAuto": "Automatikus (első csatlakoztatott STT szolgáltató)",
- "modalityBridgeAudioMaxClips": "Max audio clips per request",
+ "modalityBridgeAudioMaxClips": "Hangklippek maximális száma kérésenként",
"modalityBridgeAudioTestButton": "Teszt mintapéldány hanggal",
"modalityBridgeAudioTestRunning": "Audio tesztelése…",
"modalityBridgeAudioTestOk": "Audio Bridge OK — {count} klip(pek) átírása a {model} által",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "Egészség",
"cliproxyapiPort": "Port",
"qdrantHost": "Gazda",
- "qdrantCollection": "Gyűjtemény",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Gyűjtemény"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "RTK motor",
+ "description": "Parancsérzékeny tömörítés az eszközkimenetekhez, terminálnaplókhoz és buildelési eredményekhez.",
+ "enabled": "Engedélyezve",
+ "intensity": "Intenzitás",
+ "intensityMinimal": "Minimális",
+ "intensityStandard": "Normál",
+ "intensityAggressive": "Agresszív",
+ "toolResults": "Eszközeredmények",
+ "assistantMessages": "Asszisztensüzenetek",
+ "codeBlocks": "Kódblokkok",
"filterCatalog": "Szűrő katalógus",
"filterCatalogDesc": "Rendelkezésre álló kimeneti szűrők kategóriánként",
"guidedConfig": "Konfiguráció",
"guidedConfigDesc": "Állítsa be, hogy az RTK hogyan szűrje a terminál kimenetét",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "Sorok maximális száma",
+ "maxChars": "Karakterek maximális száma",
"deduplicateThreshold": "Duplikált küszöb",
"customFilters": "Egyedi szűrők",
"detectedType": "Észlelt típus",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "Kudarcok",
"rawOutputAlways": "Mindig",
"rawOutputMaxBytes": "Nyers kimenet max. bájt",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "Szűrés tesztelése",
+ "pasteOutput": "Illessze be ide a szűrés teszteléséhez használt eszközkimenetet...",
"presetHigh": "Agresszív",
"presetLow": "Fény",
"presetMaxChars": "Maximális kimeneti karakter",
"presetMaxLines": "Max kimeneti vonalak",
"presetMedium": "Szabványos",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "Futtatás",
+ "result": "Eredmény",
+ "previewEmpty": "Futtasson egy mintát az RTK-kimenet előnézetéhez.",
+ "detected": "Észlelve",
"masterSwitchOffAlert": "A Token Saver főkapcsolója KI van kapcsolva — ezek a beállítások nem lesznek hatással a kérésekre, amíg be nem kapcsolja azt az Endpoint oldalon.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "Kiszűrt tokenek",
+ "filtersActive": "Aktív szűrők",
+ "requests": "Kérések",
+ "avgSavings": "Átlagos megtakarítás",
"simpleMode": "Egyszerű",
"advancedMode": "Haladó",
"searchFilters": "Keresési szűrők...",
@@ -8477,7 +8488,7 @@
"savings": "Megtakarítás",
"original": "Eredeti",
"compressed": "Tömörített",
- "diff": "Diff",
+ "diff": "Eltérés",
"last7Days": "Elmúlt 7 nap",
"noDataYet": "Még nincs adat",
"runs": "Futtatások",
@@ -8613,27 +8624,27 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
- "loading": "Loading…",
+ "title": "Tömörítési kombinációk",
+ "description": "Adja meg, hogyan kombinálja a rendszer a motorokat a különböző útválasztási helyzetekben.",
+ "createCombo": "Tömörítési kombináció létrehozása",
+ "editCombo": "Szerkesztés",
+ "deleteCombo": "Törlés",
+ "deleteConfirm": "Törli ezt a tömörítési kombinációt?",
+ "pipeline": "Folyamatlánc",
+ "addStep": "Lépés hozzáadása",
+ "removeStep": "Eltávolítás",
+ "name": "Név",
+ "descriptionField": "Leírás",
+ "languagePacks": "Nyelvi csomagok",
+ "outputMode": "Kimeneti mód",
+ "assignToRouting": "Hozzárendelés útválasztási kombinációkhoz",
+ "noAssignments": "Nincsenek elérhető útválasztási kombinációk",
+ "default": "Alapértelmezett",
+ "setAsDefault": "Beállítás alapértelmezettként",
+ "save": "Mentés",
+ "cancel": "Mégse",
+ "enabled": "Engedélyezve",
+ "loading": "Betöltés…",
"hubTitle": "Tömörítési központ",
"hubDescription": "Válassza ki, melyik tömörítési profil fusson globálisan.",
"hideExplanation": "Magyarázat elrejtése",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "Jelenleg csak a Claude (Anthropic) esetében érhető el. Ez egy delegált mód: a szolgáltató szerveroldalon törli a régi eszközhasználati blokkokat — mi nem írjuk át az üzenetet. Más szolgáltatókat nem érint.",
"namedCombos": "Elnevezett kombinációk",
"namedCombosDescription": "Mentsen el különböző folyamatokat, és rendelje hozzá őket konkrét útvonalválasztási kombinációkhoz.",
+ "activeProfileMasterSwitchOffWarning": "Az alábbi aktív profil addig nem fut, amíg a fő „Prompt Compression” kapcsoló nincs bekapcsolva.",
+ "activeProfileMasterSwitchOffCta": "Kapcsolja be a Beállításokban",
"comboNamePlaceholder": "Kombináció neve",
"descriptionPlaceholder": "Leírás",
"nameRequired": "Mentés előtt adjon meg egy kombinációnevet.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "Nyelvi csomagok: {packs}",
"dragToReorder": "Húzza a lépés átrendezéséhez",
"engine": "Motor",
- "intensity": "Intenzitás",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Intenzitás"
},
"compressionStudio": {
"noRun": "Nem áll rendelkezésre tömörítési futtatás.",
@@ -8701,7 +8712,7 @@
"run": "Futtatás",
"laneRejected": "elutasítva: {reason}",
"error": "hiba",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Az egyesített feldolgozási folyamat előnézete sikertelen: {reason}",
"combinedFlow": "Összevont folyamat",
"eachLayer": "Minden réteg külön-külön",
"diff": "Különbség",
@@ -8710,7 +8721,7 @@
"input": "BEMENET",
"output": "KIMENET",
"tokenCount": "{count, number} token",
- "tokenShort": "tok",
+ "tokenShort": "token",
"provider": "Szolgáltató",
"judgeModel": "Bíráló modell",
"judgeModelPlaceholder": "pl. claude-haiku",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Motor engedélyezése",
"enableDescription": "Utolsóként fut a veremben (miután az RTK/Caveman megtisztítja a szöveget, az OmniGlyph képekké alakítja a maradékot), valamint önállóan is fut a omniglyph módon keresztül. Ez egy előnézet, és alapértelmezés szerint kikapcsolva marad a végpontok közötti ellenőrzés befejezéséig.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Tömörítési profil",
+ "profileDescription": "A profil felső korlát, nem alsó: egy szigorúbb profilt nem írhat felül lépésenkénti felülbírálás. Ezen a kódbázison mérve: coding-safe vagy balanced profil esetén a még előzmények nélküli munkamenet semmit sem tömörít, mert mindkettő megemeli a minimális karakterszám küszöbértékét, és natív formában tartja a rendszerpromptot, az eszközsémákat és az eszközeredményeket.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressive (alapértelmezett)",
+ "description": "A közzétett bizonylatok által mért szabályzat. Leképezi a rendszerpromptot, az eszközdokumentációt és a sűrű előzményeket."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Kiegyensúlyozott",
+ "description": "Natív formában tartja az élő állapotot, és védi az utolsó 8 fordulót; csak a régebbi, lezárt előzményeket vonja össze."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Kódolásbiztos",
+ "description": "Natív formában tartja a jogosultságokat, az eszközsémákat és az élő eszközkimenetet, miközben védi az utolsó 12 fordulót. Addig semmit sem tömörít, amíg a munkamenetben nem gyűlnek össze előzmények."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Átengedés",
+ "description": "Átalakítás nélkül irányít. A motor kimarad, és a kérés változatlanul kerül továbbításra."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Válassza ki az OmniGlyph tömörítési profilt",
"saved": "Mentve.",
"saveFailed": "Nem sikerült menteni.",
"enableAria": "Az OmniGlyph motor engedélyezése",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Szabályalapú üzenettömörítés, nyelvi csomagok, analitika és kimenetimód-vezérlők.",
"advancedConfig": "Speciális konfiguráció",
"advancedConfigDesc": "A tömörítési viselkedés finomhangolása",
"aggressiveSettings": "Agresszív beállítások",
"aggressiveSettingsDesc": "Maximális tömörítés potenciális minőségi kompromisszumokkal",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Kérések",
+ "tokensSaved": "Megtakarított tokenek",
+ "savingsPercent": "Megtakarítás (%)",
+ "avgLatency": "Átlagos késleltetés",
+ "languagePacks": "Nyelvi csomagok",
+ "languagePacksDesc": "Tömörítési szabályok engedélyezése adott nyelvekhez.",
"labelAutoTrigger": "Automatikus tömörítés, ha a kontextus meghaladja",
"labelCompressionRate": "Nyomószilárdság",
"labelMaxTokens": "Cél tokenek üzenetenként",
"labelMinLength": "Az üzenet minimális hossza",
"labelMinSavings": "Minimális mentendő tokenek",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Engedélyezve",
+ "autoDetect": "Nyelv automatikus felismerése",
+ "rulesCount": "{count} szabály",
"inputCompressionTitle": "Bemeneti tömörítés",
"inputCompressionDesc": "A csevegési előzmények átírása rövidebb megfogalmazással. Kb. 50%-kal csökkenti a bemeneti tokenek számát.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Tömörítési elemzések",
+ "noAnalytics": "Még nincsenek tömörítési elemzések.",
"masterDisabledWarning": "A Token Saver főkapcsolója KI van kapcsolva — ezek a beállítások nem lesznek hatással a kérésekre, amíg be nem kapcsolja a Tömörítési beállításokban, vagy meg nem változtatja itt.",
"outputMode": "Kimeneti mód",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Kimeneti mód",
"quickSettings": "Gyorsbeállítások",
"quickSettingsDesc": "Alapvető tömörítési beállítások a kezdéshez",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Auto-Clarity megkerülése",
+ "bypassConditions": "Megkerülési feltételek",
"bypassConditionsList": "biztonság, visszafordíthatatlan, pontosítás, sorrendérzékeny",
"simpleMode": "Egyszerű",
"advancedMode": "Haladó",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra beállítások",
"ultraSettingsDesc": "SLM-alapú szemantikai tömörítés",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Válaszolj tömören. Őrizd meg a technikai kifejezéseket, kódokat, hibákat, URL-eket és azonosítókat.",
+ "full": "Válaszolj röviden és tömören. Őrizd meg a teljes technikai tartalmat.",
+ "ultra": "Válaszolj rendkívül tömören, általános technikai rövidítésekkel. Őrizd meg pontosan a szimbólumokat."
}
},
"translator": {
@@ -8989,7 +9000,7 @@
"translationPathHubSpoke": "{source} → OpenAI (középfok) → {target}",
"translationPathDirect": "{source} → {target} (közvetlen fordító)",
"translationPathPassthrough": "Ugyanaz a formátum – nincs szükség fordításra",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "OpenAI köztes",
"autoFeaturesTitle": "Mit csinál az OmniRoute automatikusan",
"autoFeaturesCount": "8 jellemző",
"featureReasoningCache": "Érvelési gyorsítótár",
@@ -9035,14 +9046,14 @@
"scenarioMultiTurn": "Többfordulós",
"scenarioThinking": "Gondolkodás",
"scenarioSystemPrompt": "Rendszer Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioStreaming": "Streamelés",
"templateNames": {
"simple-chat": "Egyszerű csevegés",
"tool-calling": "Szerszámhívás",
"multi-turn": "Többfordulós",
"thinking": "Gondolkodás",
"system-prompt": "Rendszer Prompt",
- "streaming": "Streaming",
+ "streaming": "Streamelés",
"vision": "Látás",
"schema-coercion": "Sémakényszer"
},
@@ -9097,8 +9108,8 @@
"anthropicCompatibleLabel": "Antropikus kompatibilis",
"noTemplateForFormat": "Ehhez a formátumhoz nincs sablon",
"translationFailed": "Sikertelen fordítás: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "pipelineDebugger": "Folyamat-hibakereső",
+ "translationPipeline": "Fordítási folyamat",
"loading": "Betöltés…",
"compressionOriginal": "Eredeti",
"compressionCompressed": "Tömörített",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "A kérés szerve, ahogyan az Ön ügyfele küldené",
"formatDetected": "Formátum észlelve",
"formatDetectedDescription": "Az OmniRoute automatikusan észleli az API-formátumot a kérésstruktúrából",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "OpenAI köztes",
"openaiIntermediateDescription": "Minden formátum először OpenAI formátumra (az univerzális hídra) normalizálódik.",
"providerFormat": "Szolgáltatói formátum",
"providerFormatDescription": "Az OpenAI formátumot lefordítják a szolgáltató natív formátumára",
@@ -9145,7 +9156,7 @@
"eventSourceMainPipeline": "• Fő kérés folyamat (CLI/IDE/API forgalom)",
"liveMonitorDescriptionPrefix": "Megjeleníti a fordítási eseményeket, ahogy az API-hívások az OmniRoute-on keresztül áramlanak. Az események a memóriában lévő pufferből származnak (újraindításkor visszaáll). Használja",
"liveMonitorDescriptionSuffix": ", vagy külső API-hívások események generálásához.",
- "streamTransformer": "Stream Transformer",
+ "streamTransformer": "Streamátalakító",
"modeDescriptionStreamTransformer": "Futtassa a csevegés befejezési SSE-folyamait a Választranszformátoron keresztül.",
"streamTransformerTitle": "Válaszok Stream Transformer",
"streamTransformerDescription": "Illesszen be egy csevegés befejezési SSE adatfolyamot, futtassa át az OmniRoute választranszformátorán, és ellenőrizze a kibocsátott válasz.* eseményeket, mielőtt egy klienst csatlakoztatna.",
@@ -9153,7 +9164,7 @@
"loadToolSample": "Szerszámhívási minta betöltése",
"transformToResponses": "Alakítsa át válaszokká",
"rawChatSseInput": "Nyers csevegés befejezések SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Átalakított Responses API SSE",
"noResultsYet": "Még nincs eredmény",
"transformedEvents": "Átalakult események",
"uniqueEventTypes": "Egyedi eseménytípusok",
@@ -9166,7 +9177,7 @@
"comboRouted": "Kombinált útvonal",
"uniqueEndpoints": "Egyedi végpontok",
"routeDetails": "Útvonal részletei",
- "comboBadge": "Combo",
+ "comboBadge": "Kombinált",
"routeEndpointLabel": "Végpont",
"routeConnectionLabel": "Csatlakozás",
"scenarioVision": "Látás (képmegértés)",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Az alkalmazása egy adott API \"nyelvét\" beszéli. A Fordító átalakítja azt egy másik szolgáltató használatához.",
"conceptDiagramAppLabel": "Saját alkalmazás",
"conceptDiagramSourceLabel": "Forrásformátum",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (központ)",
"conceptDiagramTargetLabel": "Célszolgáltató",
"conceptDiagramExampleApp": "pl. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Illessz be egy JSON-kérést; a formátum automatikusan felismerésre kerül.",
"advancedPipelineTitle": "OpenAI köztes pipeline",
"advancedPipelineSubtitle": "Az egyes fordítási lépések vizualizációja (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Streamátalakító (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Átalakítja a Chat Completions SSE-t Responses API-vá.",
"advancedTestBenchTitle": "Tesztpad (8 forgatókönyv)",
"advancedTestBenchSubtitle": "Lefuttatja az összes forgatókönyvet, és jelenti a sikeres/sikertelen eredményeket + a kompatibilitási %-ot.",
@@ -9261,9 +9272,9 @@
"grokAutoTopUpUnavailable": "Nem elérhető",
"grokAutoTopUpEnabled": "Engedélyezve",
"grokAutoTopUpDisabled": "Letiltva",
- "grokAutoTopUpAt": "at",
+ "grokAutoTopUpAt": "ekkor:",
"grokAutoTopUpAdd": "hozzáadás",
- "grokAutoTopUpMax": "max",
+ "grokAutoTopUpMax": "maximum",
"grokAutoTopUpMonth": "hónap",
"grokAdditionalCredits": "További Kiadások",
"kiloAccountBalance": "Számlaegyenleg",
@@ -9273,17 +9284,17 @@
"kiloPassRemaining": "Fennmaradó",
"kiloPassRenews": "Megújul {count} nap múlva",
"kiloPassUsageLabel": "E havi használat",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Extra használati kreditek",
+ "kimiExtraUsage": "Extra használat",
+ "kimiExtraUsageEnabled": "Engedélyezve",
+ "kimiExtraUsageDisabled": "Letiltva",
+ "kimiExtraUsageFrozen": "Befagyasztva",
+ "kimiExtraUsageUnavailable": "Nem érhető el",
+ "kimiMonthlyUsed": "Felhasználva ebben a hónapban",
+ "kimiMonthlyLimit": "Havi korlát",
+ "kimiMonthlyLimitUnlimited": "Korlátlan",
+ "kimiAdditionalCredits": "További kreditek",
+ "loggerTab": "Naplózó",
"proxyTab": "Proxy",
"budgetManagement": "Költségvetési menedzsment",
"budgetSaved": "Költségkeret-korlátok mentve",
@@ -9310,17 +9321,17 @@
"latencyP50": "50. o",
"latencyP95": "95. o",
"latencyP99": "99. o",
- "promptCache": "Prompt Cache",
+ "promptCache": "Promptgyorsítótár",
"systemHealth": "Rendszer egészsége",
"entries": "Bejegyzések",
"activeCount": "{count} aktív",
"openCircuitBreakersDetected": "Szakadási megszakítók észlelve",
- "hitRate": "Hit Rate",
+ "hitRate": "Találati arány",
"hitsMisses": "Találatok / hiányzók",
"circuitBreakers": "Áramköri megszakítók",
"lockedIPs": "Zárolt IP-k",
"lockoutsAutoRefreshHint": "Modellenkénti sebességkorlátozások • Automatikus frissítés 10 másodpercig",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# zárolva} other {# zárolva}}",
"timeLeft": "{time} maradt",
"howItWorks": "Hogyan működik",
"howItWorksSubtitle": "Ismerje meg, hogyan érvényesítik az értékelések az Ön LLM-válaszait",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "A válaszokat a várt kritériumokhoz hasonlítják. Tekintse meg az egyes esetek sikerességét/sikertelenségét a késleltetési mutatók és a részletes visszajelzések segítségével.",
"evalsStrategyContainsLabel": "Tartalmazza",
"evalsStrategyExactLabel": "Pontos egyezés",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Reguláris kifejezés",
"evalsStrategyCustomLabel": "Egyéni logika",
"evalsStrategyContainsDescription": "Ellenőrzi, hogy az LLM kimenete tartalmazza-e a várt részkarakterláncot.",
"evalsStrategyExactDescription": "Ellenőrzi, hogy az LLM kimenete pontosan megegyezik-e a várt értékkel.",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Teszt alatt lévő modellek",
"searchSuitesPlaceholder": "Lakosztályok keresése...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# eset} other {# eset}}",
"runEval": "Fuss Eval",
"runAllSuites": "Futtassa az összeset",
"runAllRunning": "Minden fut...",
"runAllProgress": "{current}/{total} fut: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# tesztcsomag sikertelen} other {# tesztcsomag sikertelen}}",
"runAllCompleted": "{suites} csomag futtatása – {passed} sikeres, {failed} sikertelen",
"runAllCompletedWithFailures": "{completed} suites futott; {failedSuites} nem sikerült",
"runningProgress": "{current}/{total} fut...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Szolgáltatói korlátok",
"noProviders": "Nincs szolgáltató csatlakozva",
"connectProvidersForQuota": "Csatlakozzon OAuth szolgáltatókhoz az API-kvótakorlátok és -használat nyomon követéséhez.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# fiók} other {# fiók}}",
"filteredFromCount": "(szűrve innen: {count})",
"autoRefresh": "Automatikus frissítés",
"refreshAll": "Összes frissítése",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Nem sikerült frissíteni a kvóta láthatóságát",
"account": "fiók",
"modelQuotas": "Modellkvóták",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Utolsó frissítés",
"actions": "Akciók",
"refreshQuota": "Kvóta frissítése",
"today": "Ma",
@@ -9448,13 +9459,13 @@
"cardExpand": "Kibontás",
"cardCollapse": "Összecsukás",
"moreQuotas": "+{count} további",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Csoportosítatlan",
+ "viewFlat": "Egyszerű lista",
+ "viewByEnvironment": "Környezet szerint",
"noQuotaDataAvailable": "Nem állnak rendelkezésre kvótaadatok",
"noAccountsForTierFilter": "Nem található fiók a rétegszűrőhöz",
"tierAll": "Mind",
- "tierEnterprise": "Enterprise",
+ "tierEnterprise": "Vállalati",
"tierTeam": "Csapat",
"tierBusiness": "Üzleti",
"tierUltra": "Ultra",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Kredit beváltása",
"resetCreditRedeemed": "Visszaállítás beváltva",
"resetCreditRedeemFailed": "Nem sikerült beváltani a visszaállítási kreditet",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "A tesztcsomag mentése sikertelen",
"clone": "Klón",
"exportSuite": "Exportálás",
"importSuite": "Importálás",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Érvénytelen eval suite JSON",
"suiteBuilderCloneSuffix": "másolat",
"suiteBuilderImportedSuite": "Importált lakosztály",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Értékelőkártya",
+ "evalApiKey": "API-kulcs",
+ "scorecardPassRate": "Sikerességi arány",
+ "targetTypeModel": "Modell",
+ "actualOutputLabel": "Tényleges kimenet",
+ "evalTargetHint": "Válasszon ki egy modellt vagy kombinációt az értékeléshez.",
+ "suiteBuilderDeleted": "A tesztcsomag sikeresen törölve",
+ "suiteBuilderCaseCardHint": "Adja meg a bemeneti promptot és a várt kimenet feltételeit.",
+ "nextResetUtc": "Következő visszaállítás (UTC)",
+ "scorecardHint": "Az összes értékelési tesztcsomag összesített sikerességi aránya.",
+ "suiteLatestRunsHint": "A tesztcsomag legutóbbi értékelési futtatásai.",
+ "saving": "Mentés",
+ "suiteBuilderCaseModelLabel": "Modell (opcionális)",
+ "evalControlsTitle": "Értékelési vezérlők",
+ "suiteBuilderEditTitle": "Értékelési tesztcsomag szerkesztése",
+ "suiteBuilderCaseStrategyLabel": "Ellenőrzési stratégia",
+ "notifySelectDifferentCompareTarget": "Válasszon másik célt az összehasonlításhoz",
+ "recentRunsHint": "A legutóbbi értékelési futtatások láthatók. Kattintson egy futtatásra a részletes eredmények megtekintéséhez.",
+ "evalCompareHint": "Opcionálisan összehasonlíthatja az eredményeket egy második céllal.",
+ "suiteBuilderCaseInvalid": "Ez az eset ellenőrzési hibákat tartalmaz. Mentés előtt javítsa ki őket.",
+ "historyEmpty": "Még nincs értékelési előzmény",
+ "suiteBuilderUpdated": "A tesztcsomag sikeresen frissítve",
+ "resetInterval": "Visszaállítási időköz",
+ "suiteBuilderCreateTitle": "Értékelési tesztcsomag létrehozása",
+ "activePeriodSpend": "Aktuális időszak költése",
+ "evalApiKeyHint": "Válassza ki, melyik API-kulcsot használja az értékelési kérelmekhez.",
+ "evalCompareOptional": "Összehasonlítás (opcionális)",
+ "suiteBuilderDeleteFailed": "Nem sikerült törölni a tesztcsomagot",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Opcionális rendszerutasítások...",
+ "scorecardCases": "Esetek",
+ "runCompletedWithScore": "A kiértékelés befejeződött — {score}% megfelelési arány",
+ "suiteBuilderCustomBadge": "Egyéni",
+ "targetSuiteDefaults": "Tesztcsomag alapértelmezései",
+ "suiteBuilderDeleteConfirm": "Biztosan törölni szeretné ezt a tesztcsomagot? Ez a művelet nem vonható vissza.",
+ "suiteBuilderNameLabel": "Tesztcsomag neve",
+ "scorecardSuites": "Tesztcsomagok",
+ "evalCompareTarget": "Összehasonlítási cél",
+ "suiteBuilderCaseModelPlaceholder": "pl. gpt-4o-mini",
+ "evalControlsHint": "Konfigurálja a kiértékelési célt és az API-kulcsot, majd futtassa a tesztcsomagokat a modell minőségének ellenőrzéséhez.",
+ "recentRunsTitle": "Legutóbbi futtatások",
+ "suiteBuilderCaseSystemPromptLabel": "Rendszerprompt",
+ "suiteBuilderCaseExpectedPlaceholder": "pl. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "pl. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Illessze be a pontos várt választ",
"suiteBuilderCaseExpectedPlaceholderRegex": "pl. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Használjon JavaScript reguláris kifejezést perjelek tördelése nélkül.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "pl. Kódminőségi tesztcsomag",
+ "suiteBuilderAddCase": "Eset hozzáadása",
+ "cancel": "Mégse",
+ "evalTarget": "Cél",
+ "suiteBuilderCaseNameLabel": "Eset neve",
+ "weeklyLimitUsd": "Heti korlát (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "pl. Írj egy Fibonacci-függvényt Pythonban",
+ "suiteBuilderNameRequired": "A tesztcsomag neve kötelező",
+ "suiteBuilderCaseUserPromptLabel": "Felhasználói prompt",
+ "daily": "Napi",
+ "resultErrorLabel": "Hiba",
+ "suiteBuilderBuiltInBadge": "Beépített",
+ "suiteBuilderCaseCardTitle": "Teseteset",
"suiteBuilderDuplicateCase": "Megkettőzés",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "pl. 50.00",
+ "suiteBuilderCaseTagsHint": "Vesszővel elválasztott címkék a tesztesetek rendszerezéséhez.",
+ "notifyEvalRunFailedWithReason": "A kiértékelés sikertelen: {reason}",
+ "weekly": "Heti",
+ "runEvalRunning": "Kiértékelés futtatása...",
+ "delete": "Törlés",
+ "resetTimeUtc": "Visszaállítás időpontja (UTC)",
+ "evalApiKeyAuto": "Automatikus (alapértelmezett használata)",
+ "suiteBuilderDescriptionPlaceholder": "Opcionális leírás arról, hogy mit tesztel ez a tesztcsomag...",
+ "targetComparisonTitle": "Célok összehasonlítása",
+ "save": "Mentés",
+ "suiteBuilderCreated": "Tesztcsomag sikeresen létrehozva",
+ "suiteLatestRuns": "Legutóbbi futtatások",
+ "suiteBuilderCaseExpectedLabel": "Várt érték",
+ "historyLatency": "Késleltetés",
+ "suiteBuilderCaseTagsPlaceholder": "pl. kódolás, python",
+ "targetTypeCombo": "Kombináció",
+ "scorecardPassed": "Sikeres",
+ "suiteBuilderCaseTagsLabel": "Címkék",
+ "suiteBuilderNewSuite": "Új tesztcsomag",
+ "notifyEvalLoadFailed": "Nem sikerült betölteni a kiértékelési adatokat",
+ "notConfigured": "Nincs konfigurálva",
+ "suiteBuilderCaseNamePlaceholder": "pl. Python Fibonacci-teszt",
+ "intervalLabel": "Intervallum",
+ "suiteBuilderCreateAction": "Tesztcsomag létrehozása",
+ "suiteBuilderCasesHint": "Minden teszteset elküld egy promptot, és ellenőrzi a választ.",
+ "suiteBuilderUpdatedAt": "Frissítve",
+ "errorBadge": "Hiba",
+ "suiteBuilderCasesTitle": "Tesztesetek",
+ "edit": "Szerkesztés",
+ "monthly": "Havi",
+ "suiteBuilderCasesRequired": "Legalább egy teszteset szükséges",
+ "weeklyLimitSummary": "A heti költségkeret-korlát összegzése",
+ "suiteBuilderDescriptionLabel": "Leírás",
+ "targetComparisonHint": "A célok kiértékelési eredményeinek egymás melletti összehasonlítása.",
+ "compareCompletedWithScore": "Az összehasonlítás befejeződött — {score}% sikerességi arány",
+ "staleQuotaTooltip": "A legutóbbi frissítés sikertelen volt — gyorsítótárazott adatok megjelenítése",
"quotaThresholdLabel": "Min balra",
"quotaCutoffsColumnHelp": "A kérések leállítása, ha a fennmaradó kvóta erre a százalékra vagy az alá csökken.",
"quotaCutoffsButtonDefault": "Alapértelmezett",
@@ -9626,7 +9637,7 @@
"quotaThresholdInvalid": "Írjon be egy egész számot 0 és 100 között.",
"budgetKpiToday": "Ma",
"budgetKpiThisMonth": "Ebben a hónapban",
- "budgetKpiProjEom": "Proj EOM",
+ "budgetKpiProjEom": "Hó végi előrejelzés",
"budgetKpiBlocked": "Blokkolt",
"budgetKpiAtRisk": "Veszélyben",
"budgetKpiActiveKeys": "Aktív kulcsok",
@@ -9658,7 +9669,7 @@
"safe": "Biztonságos",
"no-limit": "Nincs korlát"
},
- "budgetColumnKey": "Key",
+ "budgetColumnKey": "Kulcs",
"budgetColumnToday": "Ma",
"budgetColumnMonth": "Hónap",
"budgetColumnStatus": "Státusz",
@@ -9741,7 +9752,7 @@
"proxy": "Proxy",
"level": "Szint",
"directNative": "Közvetlen (natív)",
- "combo": "Combo",
+ "combo": "Kombináció",
"inputTokens": "Én:",
"outputTokens": "O:"
},
@@ -9752,7 +9763,7 @@
"usageByModel": "Használat modellenként",
"usageByAccount": "Használat fiók szerint",
"failedToLoad": "Nem sikerült betölteni a használati statisztikákat.",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Tokenek állapota",
"totalOAuth": "Teljes OAuth",
"healthy": "Egészséges",
"warning": "Figyelmeztetés",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Rendszer metrikák",
"memory": "Memória",
- "memoryShort": "mem",
+ "memoryShort": "memória",
"uptime": "Üzemidő",
"ariaLabel": "Rendszerfigyelés",
"title": "Rendszerfigyelő",
@@ -9859,7 +9870,7 @@
"backToLogin": "Vissza a Bejelentkezéshez",
"forgotPassword": "Elfelejtetted a jelszavad?",
"continueWithOidc": "Folytatás OIDC-vel",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Alapértelmezett jelszó: CHANGEME (kivéve, ha az INITIAL_PASSWORD be lett állítva)",
"Authorization": "Engedélyezés",
"Content-Disposition": "Tartalom-Diszpozíció",
"waitingForAuthorization": "Várakozás az engedélyezésre...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Várakozás az Antigravitációs engedélyezésre...",
"waitingForQoderAuthorization": "Várakozás az Qoder engedélyezésére...",
"exchangingCodeForTokens": "Kód cseréje tokenre...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Nem kompatibilis Node.js-verzió",
+ "nodeIncompatibleDesc": "A futtatott Node.js {version} verzió kívül esik az OmniRoute által támogatott biztonságos futtatókörnyezeti szabályzaton. Használja a Node.js 20.x vagy 22.x LTS javított kiadását.",
+ "nodeIncompatibleFixLabel": "Javítás: telepítse a Node.js 22 LTS javított kiadását",
+ "nodeIncompatibleHint": "Az OmniRoute használatához Node.js 22.22.2+ (22.x LTS) vagy 24.0.0+ (24.x LTS) szükséges. A Node 24 LTS használata ajánlott.",
"resetViaAppDataTitle": "Visszaállítás az Alkalmazás Adatokkal",
"resetViaAppDataDescription": "Törölje a beállítási fájlt az alkalmazás adatkönyvtárából a jelszó visszaállításához:",
"quitDesktopApp": "Teljesen zárja be az OmniRoute asztali alkalmazást",
@@ -9932,7 +9943,7 @@
"docsLink": "Dokumentumok",
"github": "GitHub",
"versionLive": "A v1.0 már elérhető",
- "oneEndpoint": "One Endpoint for",
+ "oneEndpoint": "Egy végpont ehhez:",
"allProviders": "Minden AI szolgáltató",
"heroDescription": "AI végpont proxy webes irányítópulttal – A CLIProxyAPI JavaScript-portja. Zökkenőmentesen működik a Claude Code, OpenAI Codex, Cline, RooCode és más CLI eszközökkel.",
"getStarted": "Kezdje el",
@@ -9949,7 +9960,7 @@
"featureUsageTrackingDesc": "Részletes elemzés és költségkövetés az összes modellben.",
"featureOAuthApiKeysTitle": "OAuth és API kulcsok",
"featureOAuthApiKeysDesc": "A hitelesítő adatok biztonságos kezelése egyetlen tárolóban.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Felhőszinkronizálás",
"featureCloudSyncDesc": "Azonnal szinkronizálja konfigurációit az eszközök között.",
"featureCliSupportTitle": "CLI támogatás",
"featureCliSupportDesc": "Működik a Claude Code, Codex, Cline, Cursor és még sok más funkcióval.",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "Szolgáltatók",
"commonUseCases": "Gyakori használati esetek",
"clientCompatibility": "Kliens kompatibilitás",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Protokollok",
"apiReference": "API-referencia",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Felügyeleti API referenciája",
+ "managementApiDescription": "Automatizálási végpontok a proxyregisztrációhoz, a hatókör-hozzárendelésekhez és a régi proxyk migrálásához.",
"method": "módszer",
"path": "Útvonal",
"notes": "Megjegyzések",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Használjon például szolgáltatói előtagot",
"deploySetupTitle": "Beállítási útmutató",
"deploySetupText": "Lépésről lépésre történő telepítés, környezetkonfiguráció és az OmniRoute első futtatása.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron asztali alkalmazás",
"deployElectronText": "Futtassa az OmniRoute-ot natív asztali alkalmazásként Windows, macOS és Linux rendszeren.",
"deployDockerTitle": "Docker",
"deployDockerText": "Konténeres telepítés a Docker Compose segítségével; készen áll a gyártásra és a Kubernetesre.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Telepítse az OmniRoute-ot progresszív webalkalmazásként Android, iOS és asztali böngészőkre.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Futtassa az OmniRoute-ot grafikus felület nélkül Androidon a Termux segítségével. Az irányítópultot a mobilböngészőjéből érheti el.",
"featureRoutingTitle": "Többszolgáltatós útválasztás",
"featureRoutingText": "A kérések 30+ AI-szolgáltatóhoz irányíthatók egyetlen OpenAI-kompatibilis végponton keresztül. Támogatja a csevegést, a válaszokat, a hang- és kép API-kat.",
"featureCombosTitle": "Kombók és egyensúlyozás",
@@ -10086,7 +10097,7 @@
"featureCliText": "Kezelje az IDE konfigurációkat, exportálja/importálja a biztonsági másolatokat, fedezze fel a kódexprofilokat, és konfigurálja a beállításokat az irányítópultról.",
"featureSecurityTitle": "Biztonság és irányelvek",
"featureSecurityText": "API-kulcs hitelesítés, IP-szűrés, azonnali befecskendezési őr, tartományi szabályzatok, munkamenet-kezelés és naplózás.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Felhőszinkronizálás",
"featureCloudSyncText": "Szinkronizálja konfigurációját a Cloudflare Workers szolgáltatással a távoli eléréshez titkosított hitelesítő adatokkal és automatikus feladatátvétellel.",
"providersAcrossConnectionTypes": "{count} szolgáltatók három kapcsolattípuson keresztül.",
"manageProviders": "Szolgáltatók kezelése",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Használja az OmniRoute-ot stabil alap URL-ként, miközben alatta váltogatja a fiókokat vagy a szolgáltatói kombinációkat.",
"clientKimiBullet2": "Előnyben részesítse az előtaggal ellátott modelleket a kódolási folyamatokban, így a tartalék és az ellenőrzési nyomvonal egyértelmű marad.",
"clientKimiBullet3": "Használja a `/v1/responses' függvényt, ha natív Responses-stílusú útválasztást szeretne eszközt használó ügyfelek számára.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protokollok: MCP és A2A",
+ "protocolsDescription": "Az OmniRoute az OpenAI-kompatibilis API-kon kívül két működési protokollt kínál: az MCP-t eszközök végrehajtásához, valamint az A2A-t az ügynökök közötti munkafolyamatokhoz.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Használja az MCP-t stdio kapcsolaton keresztül, hogy az ügyfelek naplózható módon fedezhessék fel és hívhassák meg az OmniRoute eszközeit.",
+ "protocolMcpStep1": "Indítsa el az MCP-átvitelt az `omniroute --mcp` paranccsal.",
+ "protocolMcpStep2": "Állítsa be az MCP-kliensét a stdio átvitel használatára.",
+ "protocolMcpStep3": "A kapcsolat ellenőrzéséhez hívja meg az `omniroute_get_health` és az `omniroute_list_combos` parancsot.",
"protocolA2aTitle": "A2A (Agent2Agent)",
"protocolA2aDesc": "Az A2A JSON-RPC használatával szinkronban vagy SSE adatfolyamon keresztül küldhet be feladatokat.",
"protocolA2aStep1": "Olvassa el `/.well-known/agent.json` az ügynök felfedezéséhez.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aStep2": "Küldjön `message/send` vagy `message/stream` kéréseket a `POST /a2a` végpontra.",
+ "protocolA2aStep3": "A feladatok életciklusát a `tasks/get` és a `tasks/cancel` használatával kezelheti.",
+ "protocolTroubleshootingTitle": "Protokollok hibaelhárítása",
+ "protocolTroubleshooting1": "Ha az MCP állapota offline, ellenőrizze, hogy fut-e a stdio folyamat, és frissül-e a heartbeat fájl.",
+ "protocolTroubleshooting2": "Ha az A2A-feladatok `working` állapotban maradnak, vizsgálja meg az `/api/a2a/tasks/:id` végpontot és a stream eseményeit a végállapot megállapításához.",
+ "protocolTroubleshooting3": "A működés vezérléséhez és naplózhatóságához használja a `/dashboard/mcp` és a `/dashboard/a2a` oldalakat.",
"endpointChatNote": "OpenAI-kompatibilis csevegési végpont (alapértelmezett).",
"endpointResponsesNote": "Responses API-végpont (Codex, o-sorozat).",
"endpointModelsNote": "Modelkatalógus az összes csatlakoztatott szolgáltatóhoz.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Átírási segéd a /v1 nélküli ügyfelek számára.",
"endpointRewriteResponsesNote": "Újraírási segéd a /v1 nélküli válaszokhoz.",
"endpointRewriteModelsNote": "Segítő átírása a modellfelderítéshez /v1 nélkül.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "A mentett proxyregiszter-elemek listázása (lapozási támogatással).",
+ "mgmtProxiesCreateNote": "Újrafelhasználható proxyelem létrehozása a regiszterben.",
+ "mgmtProxiesHealthNote": "Mentett proxynkénti 24 órás/gördülő állapotmetrikák lekérése a proxynaplókból.",
+ "mgmtProxiesBulkAssignNote": "Egy proxy hozzárendelése vagy törlése több hatókör-azonosítónál egyetlen kérésben.",
+ "mgmtAssignmentsListNote": "Proxy-hozzárendelések listázása scope, scope_id vagy proxy_id szerint.",
+ "mgmtAssignmentsUpdateNote": "Proxy hozzárendelése vagy törlése global/provider/account/combo hatókörhöz.",
+ "mgmtLegacyMigrationNote": "Régi proxyConfig-leképezések importálása regiszter-hozzárendelésekbe.",
"modelPrefixesDescriptionStart": "Használja a szolgáltató előtagot a modell neve előtt, hogy egy adott szolgáltatóhoz irányítson. Példa:",
"modelPrefixesDescriptionEnd": "útvonalak a GitHub Copilothoz.",
"provider": "Szolgáltató",
@@ -10211,13 +10222,13 @@
"mcpToolsMemoryDesc": "Keressen, adjon hozzá és töröljön állandó párbeszédes memóriabejegyzéseket.",
"mcpToolsSkillsTitle": "Készségek",
"mcpToolsSkillsDesc": "Listázhatja, engedélyezheti, végrehajthatja és figyelheti az egyéni képességek végrehajtását.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "Automatikus kombináció",
"featureAutoComboText": "Automatikusan hozzon létre optimalizált kombinációkat a csatlakoztatott szolgáltatók, használati minták és modellek képességei alapján.",
"featureSearchTitle": "Webes keresés",
"featureSearchText": "Integrált webes keresés 5 szolgáltatóval (Serper, Brave, Exa, Tavily, Perplexity), beleértve az elemzéseket és a költségkövetést.",
"featureMemoryTitle": "Memória rendszer",
"featureMemoryText": "Állandó beszélgetési memória kinyeréssel, injekcióval, visszakereséssel és összegzéssel a munkamenetek során.",
- "featureSkillsTitle": "Skills Framework",
+ "featureSkillsTitle": "Készségkeretrendszer",
"featureSkillsText": "Bővíthető készségrendszer beépített és egyedi készségekkel, sandbox-végrehajtással, kérések elfogásával és kontextus-befecskendezéssel.",
"featureAcpTitle": "Ügynöki kommunikáció",
"featureAcpText": "Agent Communication Protocol (ACP) nyilvántartás az ügynökök közötti munkafolyamatok és az eszközök összehangolásának kezeléséhez.",
@@ -10261,7 +10272,7 @@
"feedbackQuestion": "Hasznos volt ez az oldal?",
"pageMetadataTitle": "{title} — OmniRoute Dokumentáció",
"pageMetadataDescription": "OmniRoute dokumentáció: {title}",
- "breadcrumb": "Breadcrumb",
+ "breadcrumb": "Morzsamenü",
"apiReferenceTable": {
"parameters": "Paraméterek",
"name": "Név",
@@ -10292,7 +10303,7 @@
"listSeparator": "-",
"questionsVisit": "Kérdések? Látogass el hozzánk",
"githubRepository": "GitHub adattár",
- "privacySection1Title": "1. Local-First Architecture",
+ "privacySection1Title": "1. Helyi működést előnyben részesítő architektúra",
"privacySection1Text": "Az OmniRoute helyi alkalmazásnak készült. Minden adatfeldolgozás és tárolás teljes egészében az Ön gépén történik. Nincs központi szerver, amely gyűjti az Ön adatait.",
"privacySection2Title": "2. Az általunk tárolt adatok",
"privacyDataStoredIn": "A következő adatok helyben kerülnek tárolásra",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "Az OmniRoute egy nyílt forráskódú szoftver. Ön szabadon megvizsgálhatja, módosíthatja és terjesztheti a licenc feltételei szerint."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-ügynökök",
+ "description": "Fedezze fel a rendszerére telepített CLI-ügynököket. Adjon hozzá egyéni ügynököket az automatikus észleléshez.",
+ "refresh": "Frissítés",
+ "installed": "Telepítve",
+ "notFound": "Nem található",
+ "builtIn": "Beépített",
+ "custom": "Egyéni",
+ "remove": "Eltávolítás",
+ "addCustomAgent": "Egyéni ügynök hozzáadása",
+ "addCustomAgentDesc": "Regisztráljon bármilyen CLI-eszközt az észleléshez. Frissítéskor automatikusan ellenőrizzük.",
+ "agentName": "Ügynök neve",
+ "binaryName": "Bináris neve",
+ "versionCommand": "Verzióparancs",
+ "spawnArgs": "Indítási argumentumok",
+ "addAgent": "Ügynök hozzáadása",
+ "scanning": "CLI-ügynökök keresése a rendszeren...",
+ "opencodeIntegration": "OpenCode-integráció",
+ "opencodeDetected": "opencode {version} észlelve",
+ "opencodeDesc": "Hozzon létre egy használatra kész {configFile} fájlt az OmniRoute alap-URL-jével és az összes elérhető modellel — helyezze a projekt gyökérkönyvtárába, majd futtassa a következőt: {command}.",
+ "downloadConfig": "{file} letöltése",
+ "downloaded": "Letöltve!",
+ "setupGuideTitle": "Beállítási útmutató",
+ "openCliTools": "CLI-eszközök megnyitása",
+ "setupGuideDetectCliTitle": "Telepített CLI-k észlelése",
+ "setupGuideDetectCliDesc": "CLI telepítése vagy frissítése után kattintson a Frissítés gombra, hogy az OmniRoute újra ellenőrizhesse a binárisokat és a verziókat.",
+ "setupGuideCustomAgentTitle": "Egyéni bináris regisztrálása",
+ "setupGuideCustomAgentDesc": "Használja az Egyéni ügynök hozzáadása lehetőséget, ha a CLI nem szerepel a beépített listán. Adja meg a bináris nevét és a verzióparancsot.",
+ "setupGuideCommandMissingTitle": "A „command not found” hiba javítása",
+ "setupGuideCommandMissingDesc": "Győződjön meg arról, hogy a CLI-parancs megtalálható a PATH-ban, nyisson új terminál-munkamenetet, majd futtassa újra a Frissítést.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10470,7 +10481,7 @@
"statusCancelled": "Törölve",
"repositoryName": "Az adattár neve",
"repositoryUrl": "Adattár URL-je",
- "branch": "Branch",
+ "branch": "Ág",
"agentDescriptions": {
"jules": "A Google autonóm kódoló ágense",
"devin": "A Cognition AI szoftvermérnöke",
@@ -10488,7 +10499,7 @@
},
"templateNames": {
"simple-chat": "Egyszerű csevegés",
- "streaming": "Streaming",
+ "streaming": "Streamelés",
"system-prompt": "Rendszer prompt",
"thinking": "Gondolkodás",
"tool-calling": "Szerszámhívás",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Gyorsítótár-kezelés",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Frissítés",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Memóriabejegyzések",
+ "memoryEntriesSub": "Memóriában tárolt LRU",
+ "dbEntries": "Adatbázis-bejegyzések",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Gyorsítótár-találatok",
+ "cacheHitsSub": "összesen {total}",
+ "tokensSaved": "Megtakarított tokenek",
+ "tokensSavedSub": "Találatok alapján becsülve",
+ "hitRate": "Találati arány",
+ "performance": "Gyorsítótár teljesítménye",
+ "autoRefresh": "Automatikusan frissül {seconds} másodpercenként",
+ "hits": "Találatok",
+ "misses": "Hibák",
+ "total": "Összesen",
+ "behavior": "Gyorsítótár működése",
+ "behaviorDeterministic": "Csak a nem streamelt, temperature=0 értékű kérések kerülnek gyorsítótárazásra.",
+ "behaviorBypass": "Megkerülés a(z) {header} fejléccel.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Alapértelmezett TTL: 30 perc. A(z) {envVar} segítségével konfigurálható.",
+ "idempotency": "Idempotenciaréteg",
+ "activeDedupKeys": "Aktív deduplikációs kulcsok",
+ "dedupWindow": "Deduplikációs időablak",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Nem sikerült törölni a gyorsítótárat.",
+ "unavailable": "A gyorsítótár nem érhető el",
+ "unavailableDesc": "Nem sikerült lekérni a gyorsítótár statisztikáit. Győződjön meg arról, hogy a kiszolgáló fut.",
"loadingCacheAria": "Gyorsítótár betöltése",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Prompt-gyorsítótár (szolgáltatói oldali)",
+ "semanticCache": "Szemantikus gyorsítótár",
+ "promptCacheSectionDesc": "Megjeleníti a szolgáltatói oldali prompt-gyorsítótárazási tevékenységet a használati előzményekből, így látható, hol aktív a gyorsítótár-vezérlés, és milyen mértékű a bemenetek újrafelhasználása.",
+ "promptTrendDesc": "Óránkénti kérésszám, gyorsítótár-lefedettség és a gyorsítótárból olvasott adatok mennyisége az elmúlt 24 órában.",
+ "cachedRequests": "Gyorsítótárazott kérések",
+ "cachedRequests24h": "Gyorsítótárazott kérések (24 óra)",
+ "cacheHitRate": "Gyorsítótár-találati arány",
+ "cacheRate": "Gyorsítótárazási arány",
+ "cacheRateDesc": "az összes kérésből",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Prompt-gyorsítótár mérőszámai",
+ "withCacheControl": "Gyorsítótár-vezérléssel",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Gyorsítótár-újrafelhasználási arány",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Becsült költségmegtakarítás",
+ "lastUpdated": "Legutóbbi frissítés",
+ "hoursTracked": "nyomon követett órák",
+ "busiestHour": "Legforgalmasabb óra",
+ "peakCacheRate": "Legmagasabb gyorsítótárazási arány",
+ "trendHour": "Óra",
+ "activityVolume": "Aktivitás",
+ "requestsShort": "kérés",
+ "inputShort": "Bejövő",
+ "cachedShort": "Gyorsítótárazott",
+ "writeShort": "Írás",
+ "resetting": "Visszaállítás...",
+ "resetMetrics": "Mérőszámok visszaállítása",
+ "byProvider": "Szolgáltatónkénti bontás",
+ "providerCacheRateDesc": "Minden szolgáltató megjeleníti az összes bemeneti token, a gyorsítótárból olvasott token és a gyorsítótárba írt token számát, így ellenőrizheti az újrafelhasználási arányt a nyers összesítések alapján.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Kérések",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Gyorsítótár trendje (24 óra)",
+ "peakCached": "Gyorsítótárazott csúcsérték",
+ "cached": "Gyorsítótárazva",
+ "overview": "Áttekintés",
"tableProvider": "Szolgáltató",
"tableModel": "Modell",
"performanceTitle": "Teljesítmény",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "Az OmniRoute saját determinisztikus válasz-gyorsítótára. Ha engedélyezve van, az ismételt, nem streamelt, temperature=0 értékű kérések helyben kiszolgálhatók a felsőbb szintű szolgáltató elérése nélkül.",
+ "semanticCacheDisabledDesc": "A szemantikus gyorsítótár le van tiltva. Az OmniRoute kihagyja a válaszok helyi újrafelhasználását, amíg újra be nem kapcsolja azt a Beállításokban.",
+ "semanticEntriesDesc": "A SQLite-ban jelenleg tárolt, megőrzött szemantikus gyorsítótár-rekordok. A szolgáltatói oldali prompt-gyorsítótár tevékenysége itt nem szerepel.",
+ "searchEntries": "Bejegyzések keresése...",
+ "search": "Keresés",
+ "loading": "Betöltés...",
+ "entriesLoadError": "Nem sikerült betölteni a szemantikus gyorsítótár bejegyzéseit.",
+ "noEntries": "Nem találhatók gyorsítótár-bejegyzések",
+ "noPromptCacheData": "Még nem rögzítettek szolgáltatói oldali prompt-gyorsítótár-tevékenységet.",
+ "noTrendData": "Az elmúlt 24 órában nem rögzítettek prompt-gyorsítótár-tevékenységet.",
+ "signature": "Aláírás",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Létrehozva",
+ "expires": "Lejárat",
+ "actions": "Műveletek",
+ "deduplicatedRequests": "Duplikációmentesített kérések",
+ "savedCalls": "Megtakarított API-hívások",
+ "totalProcessed": "Összes feldolgozott kérés",
+ "disabled": "Letiltva",
+ "totalRequests": "Összes kérés",
"reasoningCache": "Érvelés visszajátszása",
"reasoningCacheDesc": "Megőrzi a modellgondolkodást a többfordulatú szerszámhívási folyamatokhoz",
"reasoningEntries": "Aktív bejegyzések",
@@ -10639,7 +10650,7 @@
"reasoningByProvider": "Szolgáltató által",
"reasoningByModel": "Modell szerint",
"reasoningRecentEntries": "Legutóbbi bejegyzések",
- "reasoningToolCallId": "Tool Call ID",
+ "reasoningToolCallId": "Eszközhívás-azonosító",
"reasoningChars": "Karakterek",
"reasoningAge": "Életkor",
"reasoningView": "Megtekintés",
@@ -10655,7 +10666,7 @@
"reasoningClearError": "Nem sikerült törölni az érvelési gyorsítótárat",
"reasoningNoData": "A gyorsítótárban még nincsenek érvelési bejegyzések. A bejegyzések akkor jelennek meg, amikor a gondolkodó modellek eszközhívást használnak.",
"cachePerformanceRetry": "Próbálja újra",
- "cachePerformanceHitRate": "Hit Rate",
+ "cachePerformanceHitRate": "Találati arány",
"cachePerformanceAvgLatency": "Átl. késés (ms)",
"cachePerformanceP95Latency": "p95 késés (ms)",
"retry": "Próbálja újra",
@@ -10665,12 +10676,12 @@
"minutesAgo": "{minutes} perce",
"hoursAgo": "{hours} órája",
"daysAgo": "{days} napja",
- "entries": "Entries"
+ "entries": "Bejegyzések"
},
"proxyConfigModal": {
"levelGlobal": "Globális",
"levelProvider": "Szolgáltató",
- "levelCombo": "Combo",
+ "levelCombo": "Kombináció",
"levelKey": "Kulcs",
"levelDirect": "Közvetlen (proxy nélkül)",
"titleGlobal": "Globális proxy konfiguráció",
@@ -10772,7 +10783,7 @@
"saveConnection": "Kapcsolat Mentése",
"gheDescription": "Írd be a GitHub Enterprise példányod alap URL-jét (pl. https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise URL-címe",
"gheUrlRequired": "A GitHub Enterprise URL megadása kötelező",
"gitlabDuoSetupTitle": "GitLab Duo OAuth beállítása",
"gitlabDuoSetupMessage": "A GitLab Duo OAuth nincs konfigurálva. Regisztráljon egy OAuth alkalmazást a {applicationsUrl} címen a {redirectUri} átirányítási URI-val és a \"{scopes}\" jogosultságokkal, majd állítsa be a {clientIdEnv} (és opcionálisan a {clientSecretEnv}) értékét, és indítsa újra.",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Csatlakoztassa a kurzor IDE-t",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Bejelentkezés a Cursorral",
+ "tabImport": "Token importálása",
+ "loginDescription": "Megnyitja a Cursor böngészős bejelentkezését. Dockerben is működik — hagyja jóvá a gazdagép böngészőjében, majd térjen vissza ide.",
+ "loginWithCursor": "Bejelentkezés a Cursorral",
+ "startingLogin": "Indítás…",
+ "waitingApproval": "Várakozás a Cursor-bejelentkezés jóváhagyására…",
+ "openUrlHint": "Ha a böngésző nem nyílt meg:",
+ "openLoginLink": "Bejelentkezési oldal megnyitása",
+ "cancelLogin": "Bejelentkezés megszakítása",
"autoDetecting": "Tokenek automatikus felismerése...",
"readingFromCursor": "Olvasás Cursor IDE-ből vagy cursor-agentből",
"tokensAutoDetected": "A tokenek automatikusan felismerve a Cursor IDE-ből!",
"cursorNotDetected": "A kurzor IDE nem észlelhető. Kérjük, manuálisan illessze be a tokent.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Dockerben fut? Inkább a Cursorral való bejelentkezést használja. Az IDE automatikus importálása és a cursor-agent általában nem érhető el a konténeren belül. Lásd: docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Hozzáférési token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Frissítési token",
+ "refreshTokenPlaceholder": "Opcionális — lehetővé teszi a token automatikus frissítését",
"required": "*",
"accessTokenPlaceholder": "A hozzáférési token automatikusan kitöltődik...",
"machineId": "Gépazonosító",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "A tokenek automatikus észlelése sikertelen",
"errorEnterToken": "Kérjük, adja meg a hozzáférési tokent",
"errorImportFailed": "Az importálás sikertelen",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Nem sikerült elindítani a Cursor-bejelentkezést",
+ "errorLoginPoll": "A Cursor-bejelentkezés sikertelen",
+ "errorLoginTimeout": "A Cursor-bejelentkezés időtúllépés miatt megszakadt — próbálja újra"
},
"pricingModal": {
"title": "Árképzési konfiguráció",
@@ -10839,9 +10850,9 @@
"selectProxy": "{name} kijelölése",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Korábbi adatok importálása",
+ "bulkAssign": "Tömeges hozzárendelés",
+ "addProxy": "Proxy hozzáadása",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Tesztelés",
+ "edit": "Szerkesztés",
+ "delete": "Törlés",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Sikertelen",
"successRate": "{rate}% siker",
"avgLatency": "{latency} ms átlagos",
"assignmentsCount": "{count} feladat",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Javítás",
"relayAuthMissing": "hitelesítés hiányzik",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Rotációs stratégia",
"poolStrategyHint": "a round-robin sorban váltogatja a tagokat; a random egyenletesen választ; a sticky megtart egy tagot egy adott időablakig; a latency-optimized a leggyorsabbat választja a naplók alapján.",
"poolStrategyFailed": "Nem sikerült frissíteni a rotációs stratégiát",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Körkörös",
"strategyRandom": "Véletlenszerű",
- "strategySticky": "Sticky",
+ "strategySticky": "Rögzített",
"strategyLatency": "Késleltetésre optimalizált",
"poolMembersLabel": "Készlet tagjai ({count})",
"poolNoMembers": "Még nincsenek proxyk ebben a készletben.",
+ "poolEgressObservation": "{exits, plural, one {# kilépési pontot} other {# kilépési pontot}} használt {connections, plural, one {# kapcsolat} other {# kapcsolat}} · egy kilépési ponton legfeljebb {max} · az elmúlt {hours} órában",
+ "poolEgressObservationEmpty": "Nem észlelhető forgalom az elmúlt {hours} órában",
+ "poolEgressObservationHint": "A proxynapló alapján, az időablakban számítva: a készlet tagjainál megfigyelt különböző kimenő IP-címek, valamint az ezeket használó OmniRoute-kapcsolatok. Az „egy kilépési ponton” az időablak egészére vonatkozik, nem egyidejű használatra. Az IP-címenkénti 429-es zárolás csak az azonos szolgáltatócsalád kapcsolatait szünetelteti.",
"poolRemove": "Eltávolítás",
"poolRemoveFailed": "Nem sikerült eltávolítani a proxyt a készletből",
"poolAddLabel": "Proxy hozzáadása",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Végpont",
+ "provider": "Szolgáltató",
+ "model": "Modell",
"accountKey": "Account Key",
"autoAccounts": "Automatikus ({count} fiók)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Küldés",
+ "cancel": "Mégse",
+ "audioFile": "Hangfájl",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Összes törlése",
+ "request": "Kérés",
+ "response": "Válasz",
+ "transcription": "Átirat",
+ "copy": "Másolás",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "{count} kép generálva",
"generatedImage": "Létrehozott kép {index}",
- "save": "Save",
+ "save": "Mentés",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Válaszok",
"completions": "Kiegészítések",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Beágyazások",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderálások",
- "rerank": "Rerank",
+ "rerank": "Újrarangsorolás",
"search": "Search",
"webFetch": "Webes lekérés"
},
"conversationalChat": "Beszélgetési csevegés",
"clearChat": "Csevegés törlése",
"typeMessagePlaceholder": "Írjon be egy üzenetet... (Shift+Enter az új sorhoz)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Csevegés",
+ "tabCompare": "Összehasonlítás",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Összeállítás",
+ "configPane": "Konfiguráció",
+ "systemPrompt": "Rendszerüzenet",
+ "systemPromptPlaceholder": "Segítőkész asszisztens vagy.",
+ "modelPlaceholder": "pl. openai/gpt-4o",
+ "endpointLabel": "Végpont",
+ "parametersLabel": "Paraméterek",
+ "collapseConfig": "Konfigurációs panel összecsukása",
+ "expandConfig": "Konfigurációs panel kibontása",
+ "temperature": "Hőmérséklet",
+ "maxTokens": "Tokenek maximális száma",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Jelenléti büntetés",
+ "frequencyPenalty": "Gyakorisági büntetés",
"reasoningLabel": "Következtetés",
"thinking": "Gondolkodás",
"effort": "Erőfeszítés",
"effortDefault": "Alapértelmezett",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Véletlenszerű (hagyja üresen)",
+ "presetsLabel": "Előbeállítások",
+ "loadPreset": "Előbeállítás betöltése",
+ "savePreset": "Előbeállítás mentése",
+ "noPresets": "Nincsenek előbeállítások",
+ "presetNamePlaceholder": "Előbeállítás neve",
+ "savingPreset": "Mentés…",
+ "nameRequired": "A név megadása kötelező",
+ "failedToSavePreset": "Nem sikerült menteni az előbeállítást",
+ "improvePrompt": "Prompt javítása",
+ "improvingPrompt": "Javítás…",
+ "improvePromptTitle": "Javítsa promptját MI segítségével",
+ "setModelFirst": "Először állítson be egy modellt",
"setModelInConfigFirst": "Először állíts be egy modellt a Konfiguráció panelen.",
"improvePromptFailed": "A prompt javítása sikertelen.",
"improvePromptAria": "Prompt javítása MI segítségével",
"confirmImprovePrompt": "Prompt javításának megerősítése",
"improvePromptDescription": "Ez elküldi a jelenlegi rendszerpromptot a(z) solo.trae.ai oldalra, nyisd meg a DevTools → Hálózatot, küldj el bármilyen csevegési üzenetet, és másold ki a JWT-t a Authorization: Cloud-IDE-JWT {tokenPlaceholder} kérés fejlécéből. A JWT élettartama körülbelül 14 nap. Az opcionális azonosító mezők a common_params mezőből származnak ugyanabban a kérés törzsben.",
"accessTokenLabel": "Hozzáférési Token (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "webId": "Webes azonosító",
"optional": "opcionális",
"bizUserId": "Biz Felhasználói Azonosító",
"userUniqueId": "Felhasználói Egyedi Azonosító",
@@ -14048,11 +14081,11 @@
"actionApprove": "Terv jóváhagyása",
"actionCancel": "Mégse",
"actionSeeInGraph": "Megtekintés a grafikonon",
+ "actionRepeat": "Ismétlés",
"actionDone": "Művelet végrehajtva",
"actionFailed": "A művelet sikertelen: {error}",
"detailFailed": "A részletek betöltése sikertelen: {error}",
"mirroredInA2A": "Tükrözve az A2A-ban",
- "actionRepeat": "Ismétlés",
"repeatConfirm": "Kattintson újra a megerősítéshez",
"repeatDone": "Új futás létrehozva",
"repeatUnavailable": "Az eredeti bemenet nem érhető el"
@@ -14066,57 +14099,57 @@
"networkError": "Hálózati hiba — nem sikerült frissíteni a szolgáltató láthatósági beállítását"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
+ "title": "Támogatói ajánlatok",
+ "subtitle": "Hivatalos kedvezmények, jóváírások, próbaidőszakok és ellenőrzött partneri előnyök a Radartól.",
+ "backToRadar": "Vissza a Radarhoz",
+ "loading": "Ajánlatok betöltése...",
+ "refresh": "Ajánlatok frissítése",
+ "refreshing": "Frissítés...",
+ "loadFailed": "Nem sikerült frissíteni az ajánlatokat. A legutóbbi ellenőrzött helyi gyorsítótár megmaradt.",
+ "empty": "Jelenleg nincsenek aktív ajánlatok.",
+ "keyRequiredTitle": "Támogatói kulcs szükséges",
+ "keyRequiredDescription": "Az ajánlatok a Radar élő előnyei. Adjon hozzá egy meglévő támogatói kulcsot a Radar képernyőn, igazolja közreműködői státuszát, vagy támogassa a projektet egy kulcs megszerzéséhez.",
+ "contributorButton": "Közreműködő vagyok",
+ "supporterButton": "A projekt támogatása",
"partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "officialBadge": "Hivatalos",
+ "conditionsLabel": "Feltételek:",
+ "validUntil": "Érvényes eddig: {date}",
+ "noExpiry": "Nincs bejelentett lejárati idő",
+ "openOffer": "Ajánlat megtekintése",
+ "trialDays": "{days, plural, one {# nap} other {# nap}}"
},
"radarIntelPage": {
"title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "subtitle": "A Radar saját ELO-rangsorai és a katalógus tényszerű változásai.",
+ "backToRadar": "Vissza a Radarhoz",
+ "loading": "Intel betöltése...",
+ "refresh": "Intel frissítése",
+ "syncing": "Frissítés...",
+ "loadFailed": "Nem sikerült frissíteni az Intelt. Megtartottuk a legutóbb ellenőrzött helyi gyorsítótárat.",
+ "empty": "Még nem érhető el ellenőrzött Intel-pillanatkép.",
+ "supporterBadge": "Radar-támogató",
+ "methodology": "Módszertan",
+ "eloMethod": "ELO, kezdeti érték: {initial}, K={factor}",
+ "freshness": "A katalógus frissessége",
+ "ageDays": "{days, plural, one {# napos} other {# napos}}",
+ "trend": "Katalógustrend",
+ "modelDelta": "{current} modell, +{added} / -{removed}",
+ "ranking": "Modellek rangsora",
+ "noRankings": "Még nem állnak rendelkezésre megerősített összehasonlítások.",
+ "model": "Modell",
+ "category": "Kategória",
+ "rating": "Értékelés",
+ "matches": "Párosítások",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Friss",
+ "aging": "Öregedő",
+ "stale": "Elavult"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "Növekvő",
+ "stable": "Stabil",
+ "shrinking": "Csökkenő"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "A kérés meghaladja a szolgáltató kontextusablakát"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "A Cheaper Inference az OmniRoute nyílt forráskódú barátja",
+ "description": "Költség alapján rangsoroló átjáró, amely több tucat élvonalbeli modellt kínál egyetlen, OpenAI-kompatibilis végponton keresztül — minden kérést a legolcsóbb megfelelő szolgáltatóhoz irányítva, soha nem haladva meg a listaárat.",
+ "cta": "API-kulcs beszerzése",
+ "partnerLinkNote": "Partnerlink",
+ "dismissAriaLabel": "Bezárás"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Letiltja a gondolkodási szint változatainak (pl. -low, -medium, -high) létrehozását a /v1/models katalógusban."
}
diff --git a/src/i18n/messages/hy.json b/src/i18n/messages/hy.json
index 001f14aaec..53ddf911b5 100644
--- a/src/i18n/messages/hy.json
+++ b/src/i18n/messages/hy.json
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Հրապարակել claude/<provider>/<model> հայելային նույնացուցիչները /v1/models-ում, որպեսզի Claude Code դարպասի մոդելների հայտնաբերման ցանկում ցուցադրվեն ոչ Claude մոդելները։ Զգուշացում․ գլոբալ միացնելու դեպքում կրկնապատկում է կատալոգի գրառումները բոլոր հաճախորդների համար։",
"featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> դարպասային այլանունների գլխավոր անջատիչը։ Միացված (լռելյայն)․ /v1/models-ը յուրաքանչյուր համապատասխան, մտածելու ունակ Claude մոդելի համար հրապարակում է առանց մտածողության տարբերակ, իսկ հարցման մեջ ուղարկված no-think/ նույնացուցիչը վերադարձվում է իրական մոդելին՝ դատողությունն անջատված։ Անջատված․ տարբերակներ չեն հրապարակվում, իսկ no-think/ նույնացուցիչը դիտարկվում է ինչպես ցանկացած այլ անհայտ մոդելի նույնացուցիչ։ Քանի դեռ սա միացված է, յուրաքանչյուր մոդելի ModelSpec.noThinkingAlias ընտրովի միացման/անջատման կարգավորումը շարունակում է գործել։",
"featureFlagChatVirtualLanesEnabledDescription": "Միացնել ըստ վարձակալի հարմարվողական վիրտուալ ընդունման ուղիները մատակարարին ուղարկելու համար (#9654)․ մեկ վարձակալի հարցումների կտրուկ աճն այլևս չի առաջացնում 503 մեկ այլ վարձակալի համար։ OMNIROUTE_CHAT_VIRTUAL_LANES միջավայրի փոփոխականը գերակայում է կառավարման վահանակի այս վերասահմանմանը․ փոփոխություններն ուժի մեջ են մտնում սերվերը վերագործարկելիս։",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Վահանակի մատակարարների էջերում «Անվճար» նշանը ցուցադրել միայն մատակարարի կողմից հաստատված ազդանշանների դեպքում․ այլևս չօգտագործել ցուցադրվող անվան վրա հիմնված մոտավոր որոշումը, ոչ բուլյան free դաշտերը և փաստաթղթավորված անվճար մակարդակ չունեցող գրանցված մատակարարների :free վերջածանցները։ Անջատված լինելու դեպքում պահպանվում է նշանի ցուցադրման նախկին կանոնը։",
+ "featureFlagProxySkipRecentlyFailedDescription": "Պրոքսի փուլերը և opencode-ի՝ ըստ հաշվի ռոտացիան դադարում են կրկին տրամադրել հենց նոր ձախողված պրոքսին (մերժված TCP ստուգում կամ դրա միջոցով ստացված 429)՝ յուրաքանչյուր գործընթացի համար սահմանված ժամանակահատվածով, որը յուրաքանչյուր կրկնության դեպքում կրկնապատկվում է՝ մինչև առավելագույն սահմանաչափը։ Պրոքսիի որևէ կարգավիճակ չի գրանցվում․ երբ բոլոր թեկնածուները մի կողմ են դրված, ընտրությունը մնում է անփոփոխ։ Լռելյայն անջատված է․ ընտրության հերթականությունը ճշգրտորեն համապատասխանում է սովորական ռոտացիային։",
+ "featureFlagProxyPoolEgressObservationDescription": "Վահանակում՝ պրոքսի փուլի տակ, ցույց տալ, թե վերջին 24 ժ-ի ընթացքում քանի դիտարկված ելքային IP է սպասարկել դրա անդամներին, քանի միացում է օգտագործել դրանք, և մեկ IP-ի հետևում առավելագույնը քանիսն է դիտվել։ Միայն կարդալու համար է, հաշվարկվում է պրոքսիի մատյանից և երբեք չի օգտագործվում երթուղավորման համար։ Լռելյայն անջատված է․ փուլի խմբագրիչը մնում է անփոփոխ, իսկ դիտարկման երթուղին վերադարձնում է null։",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Պրոքսիի առողջական վիճակի ստուգման ընթացքում թույլ տալ, որ թիրախի կողմից մերժված ստուգումը (401/403/429․ պրոքսին փոխանցել է հարցումը, իսկ նպատակակետը մերժել է այս ելքային IP-ն) զրոյացնի պրոքսիի հաջորդական ձախողումների շարքը՝ ինչպես սպասարկված ստուգման դեպքում։ Լռելյայն անջատված է․ մերժումը մնում է չեզոք և պահպանում է շարքը։ 5xx-ը երկու դեպքում էլ մնում է անորոշ, իսկ մերժումը երբեք չի հեռացնում, անջատում կամ վերաակտիվացնում պրոքսին։",
"sidebar": {
"home": "Գլխավոր էջ",
"dashboard": "Կառավարման վահանակ",
@@ -1425,13 +1429,13 @@
"secretKeyHint": "Օգտագործվում է օգտակար բեռնվածքի վերնագիրը ստորագրելու համար՝ նույնականացման նպատակով։"
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "Discord վեբհուկի URL",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "Webhook URL-ը, որը պատճենվել է ձեր Discord ալիքի ինտեգրման կարգավորումներից։",
"tutorial": "Ինչպես ստեղծել Discord webhook․"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "Slack վեբհուկի URL",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "Webhook URL-ը, որը պատճենվել է ձեր Slack Incoming Webhooks ինտեգրումից։",
"tutorial": "Ինչպես ստեղծել Slack webhook․"
@@ -1441,7 +1445,7 @@
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "HTTP API թոքենը, որը ստացվել է @BotFather-ից՝ ձեր բոտը ստեղծելիս։",
"chatId": "Telegram զրույցի ID / ալիք",
- "chatIdPlaceholder": "-100123456789 or @channelname",
+ "chatIdPlaceholder": "-100123456789 կամ @channelname",
"chatIdHint": "Զրույցի/ալիքի եզակի թվային նույնացուցիչը կամ հանրային օգտանունը։",
"tutorial": "Ինչպես կարգավորել Telegram webhook-ը․"
}
@@ -2203,7 +2207,7 @@
"model": "Մոդել",
"account": "Հաշիվ",
"connection": "Միացում",
- "combo": "Combo",
+ "combo": "Համակցված",
"routeStep": "Քայլ",
"tokens": "Թոքեններ",
"notAvailable": "կիրառելի չէ",
@@ -2415,7 +2419,7 @@
"bypassProviderQuota": "Շրջանցել մատակարարի քվոտայի սահմանափակումները",
"bypassProviderQuotaDescription": "Թույլ է տալիս այս բանալուն երթուղավորման ընթացքում անտեսել վերին մակարդակի մատակարարի/հաշվի սահմանափակման քաղաքականությունը։ API բանալու՝ ԱՄՆ դոլարով քվոտաները շարունակում են գործել։",
"quotaPill": "ՔՎՈՏԱ",
- "quotaModeOnly": "qtSd-only",
+ "quotaModeOnly": "միայն qtSd",
"exclusiveLease": "Բացառիկ վարձակալում",
"exclusiveLeaseNoticeTitle": "Բացառիկ վարձակալում",
"exclusiveLeaseNoticeDesc": "Այս API բանալին ունի առանձնացված կապերի երթուղավորման բացառիկ վարձակալման թույլտվություններ։",
@@ -2713,7 +2717,7 @@
"ccOnboardingTitle": "settings.json՝ gateway-ի մոդելների հայտնաբերման համար",
"ccOnboardingCopy": "Պատճենել",
"ccOnboardingCopied": "Պատճենված է",
- "ccOnboardingKeyPlaceholder": "'POST /v1/search untuk memulai pengalihan pencarian web.",
"searchAnalyticsFreeTier": "Tier gratis tersedia: Serper (2.500/bulan), Brave (2.000/bulan), Exa (1.000/bulan), Tavily (1.000/bulan) — total 6.500+ pencarian gratis/bulan dengan failover otomatis.",
"autoRoutingNoDataAvailable": "Tidak ada analitik auto-routing yang tersedia. Buat permintaan menggunakan awalan auto/ untuk melihat metrik.",
- "defaultVariantLabel": "Default",
+ "defaultVariantLabel": "Bawaan",
"freeTierAvailable": "Tingkat gratis tersedia"
},
"apiManager": {
@@ -2254,9 +2258,9 @@
"fullAccess": "Akses Penuh",
"keyManagement": "Manajemen Kunci API",
"keyManagementDesc": "Buat dan kelola kunci API untuk mengautentikasi permintaan ke titik akhir Anda",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Aplikasi Anda mengirimkan permintaan melalui kunci API ke OmniRoute",
+ "requestFlowYourApp": "Aplikasi Anda",
+ "requestFlowApiKey": "Kunci API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Jumlah Kunci",
"restricted": "Terbatas",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Salin dan simpan kunci ini sekarang — kunci ini tidak akan ditampilkan lagi.",
"done": "Selesai",
"savePermissions": "Simpan Izin",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Endpoint yang Diizinkan",
+ "allEndpointsAllowed": "Kunci ini dapat mengakses semua endpoint API.",
+ "endpointsRestricted": "Dibatasi ke {count} endpoint{count, plural, one {} other {}}.",
+ "autoResolve": "Resolusi Otomatis",
+ "autoResolveDesc": "Secara otomatis tetapkan nama model yang ambigu ke penyedia asal untuk kunci API ini.",
"streamDefaultMode": "Kompatibilitas Default Stream",
"streamDefaultModeDesc": "Mengontrol flag `stream` yang dihilangkan untuk kunci ini. Mode JSON mengembalikan respons non-streaming kecuali klien secara eksplisit meminta SSE.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Lama",
"streamDefaultJson": "Kompatibel dengan JSON",
"streamDefaultBadge": "Default stream JSON",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Kunci Aktif",
+ "keyActiveDesc": "Aktifkan atau nonaktifkan kunci API ini. Kunci yang dinonaktifkan akan langsung ditolak dengan 403.",
+ "accessSchedule": "Jadwal Akses",
+ "accessScheduleDesc": "Batasi akses pada jam dan hari tertentu dalam seminggu.",
+ "scheduleFrom": "Dari",
+ "scheduleUntil": "Hingga",
+ "scheduleDays": "Hari",
+ "scheduleTimezone": "Zona waktu",
+ "scheduleTimezoneHint": "Gunakan nama zona waktu IANA, misalnya America/New_York, Europe/Berlin",
+ "scheduleActive": "Jadwal",
+ "disabled": "Dinonaktifkan",
+ "daySun": "Min",
+ "dayMon": "Sen",
+ "dayTue": "Sel",
+ "dayWed": "Rab",
+ "dayThu": "Kam",
+ "dayFri": "Jum",
+ "daySat": "Sab",
"allowAll": "Izinkan Semua",
"restrict": "Batasi",
"allowAllInfo": "Kunci ini dapat mengakses semua model yang tersedia.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Gagal memperbarui izin. Silakan coba lagi.",
"unknownProvider": "tidak diketahui",
"copyMaskedKey": "Salin kunci bertopeng",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Kunci lengkap hanya tersedia saat pembuatan — salin saat Anda pertama kali membuat kunci",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# perangkat} other {# perangkat}}",
"devicesTooltip": "{count, plural, one {# perangkat IP/User-Agent berbeda yang terlihat dengan kunci ini (30 mnt terakhir)} other {# perangkat IP/User-Agent berbeda yang terlihat dengan kunci ini (30 mnt terakhir)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Kombo yang Diizinkan",
"allCombosAllowed": "Kunci ini dapat menggunakan kombo apa pun.",
"restrictedComboCount": "Dibatasi hingga {count, plural, one {# kombo} other {# kombo}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# entri tersimpan} other {# entri tersimpan}} tidak ada dalam daftar kombo ini (misalnya aturan perutean) dan akan tetap disimpan seperti sebelumnya.",
+ "preservedComboRuleHint": "Dipertahankan seperti yang tersimpan. Entri ini bukan kombo dalam daftar di atas, sehingga hanya dapat diubah melalui API.",
"apiManagerCustomRateLimits": "Batas Tarif Khusus",
"apiManagerCustomRateLimitsDesc": "Ganti batas default global. Biarkan kosong untuk menggunakan default.",
"apiManagerRateLimitRequestsPlaceholder": "Permintaan",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Mengizinkan kunci ini untuk mengabaikan kebijakan batas penyedia/akun upstream selama perutean. Kuota USD kunci API tetap berlaku.",
"quotaPill": "KUOTA",
"quotaModeOnly": "Hanya qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Sewa Eksklusif",
+ "exclusiveLeaseNoticeTitle": "Sewa Eksklusif",
+ "exclusiveLeaseNoticeDesc": "Kunci API ini memiliki izin sewa eksklusif untuk perutean koneksi khusus.",
+ "allConnections": "Semua koneksi",
+ "onlySelectedConnections": "Hanya koneksi yang dipilih",
+ "selectAtLeastOneConnection": "Pilih setidaknya satu koneksi atau pilih Semua koneksi.",
+ "allConnectionsDesc": "Kunci ini dapat menggunakan koneksi aktif apa pun.",
+ "restrictedToConnections": "Dibatasi untuk {count, plural, one {# koneksi} other {# koneksi}}."
},
"auditLog": {
"title": "Catatan Audit",
@@ -2453,16 +2457,16 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Hasilkan",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Membuat...",
+ "loadingModels": "Memuat model yang tersedia...",
+ "noModels": "Tidak ada model yang tersedia. Konfigurasikan penyedia dengan kemampuan media terlebih dahulu.",
+ "error": "Pembuatan Gagal",
+ "result": "Hasil",
+ "imageDescription": "Buat gambar dari perintah teks menggunakan OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, dan lainnya.",
+ "videoDescription": "Buat video dengan AnimateDiff, Stable Video Diffusion melalui ComfyUI atau SD WebUI.",
+ "musicDescription": "Gubah musik menggunakan Stable Audio Open atau MusicGen melalui ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Penyematan",
"image": "Gambar",
"imageToText": "Gambar ke Teks",
"tts": "Teks ke Suara",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "Model speech-to-text OpenRouter menggunakan koneksi OpenRouter yang telah Anda konfigurasikan. Tidak diperlukan kredensial terpisah."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Kueri Pencarian",
+ "searchResults": "Hasil Pencarian",
+ "cachedResult": "Di-cache",
+ "searchCost": "Biaya",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Pengujian pencarian lanjutan dengan perbandingan penyedia",
+ "compareProviders": "Bandingkan Penyedia",
+ "rerankResults": "Peringkatkan Ulang Hasil",
+ "searchHistory": "Riwayat Pencarian",
+ "urlOverlap": "Tumpang Tindih URL",
+ "noSearchProviders": "Tidak ada penyedia pencarian yang dikonfigurasi. Tambahkan penyedia di Pengaturan.",
+ "noRerankModels": "Tidak ada model pemeringkatan ulang yang tersedia",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Penyedia",
+ "searchType": "Jenis Pencarian",
+ "maxResults": "Hasil Maksimum",
+ "filters": "Filter",
+ "country": "Negara",
+ "language": "Bahasa",
+ "timeRange": "Rentang Waktu",
+ "includeDomains": "Sertakan Domain",
+ "excludeDomains": "Kecualikan Domain",
+ "safeSearch": "Pencarian Aman",
+ "safeSearchOff": "Nonaktif",
+ "safeSearchModerate": "Moderat",
+ "safeSearchStrict": "Ketat",
+ "queryPlaceholder": "Masukkan kueri pencarian...",
+ "providerAuto": "otomatis (termurah)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "berita",
+ "optionAny": "apa pun",
+ "timeRangeDay": "Sehari terakhir",
+ "timeRangeWeek": "Seminggu terakhir",
+ "timeRangeMonth": "Sebulan terakhir",
+ "timeRangeYear": "Setahun terakhir",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Waktu permintaan habis ({seconds} dtk)",
+ "networkError": "Kesalahan jaringan",
+ "formatted": "Diformat",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "cache tidak ditemukan",
+ "cacheHit": "cache ditemukan",
+ "latency": "Latensi",
+ "cost": "Biaya",
+ "results": "Hasil",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Model Pemeringkatan Ulang",
+ "positionDelta": "Perubahan Posisi",
+ "emptyState": "Kirim kueri pencarian untuk melihat hasil",
"copy": "Salin",
"resetToDefault": "Atur ulang ke default",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Cari",
+ "tabScrape": "Ekstrak",
+ "tabCompare": "Bandingkan",
+ "modalitiesGuide": "Panduan modalitas",
+ "searchConceptTitle": "Pencarian",
+ "searchConceptDesc": "Pencarian = mengambil daftar hasil web (judul, URL, cuplikan, skor relevansi)",
+ "scrapeConceptTitle": "Ekstraksi",
+ "scrapeConceptDesc": "Ekstraksi = mengekstrak konten lengkap dari URL (markdown, teks, atau HTML)",
+ "compareConceptTitle": "Bandingkan",
+ "compareConceptDesc": "Bandingkan = menjalankan kueri yang sama pada N penyedia secara berdampingan untuk membandingkan latensi, biaya, dan tumpang tindih hasil",
+ "rerankConceptTitle": "Urutkan ulang",
+ "rerankConceptDesc": "Urutkan ulang = menyusun ulang hasil melalui LLM untuk meningkatkan relevansi berdasarkan kueri",
+ "autoConceptTitle": "Otomatis (termurah)",
+ "autoConceptDesc": "Otomatis (termurah) = secara otomatis memilih penyedia termurah yang tersedia dengan kredensial yang telah dikonfigurasi",
+ "providerCatalogTitle": "Katalog Penyedia",
+ "kindSearch": "Cari",
+ "kindFetch": "Ambil/Scrape",
+ "statusConfigured": "Dikonfigurasi",
+ "statusMissing": "Tidak ada kredensial",
+ "statusRateLimited": "Terkena batas laju",
+ "configureProvider": "Konfigurasikan di Penyedia",
+ "loadingProviders": "Memuat penyedia…",
+ "failedToLoadProviders": "Gagal memuat penyedia",
+ "costPerQuery": "Biaya/kueri",
+ "freeQuota": "Kuota gratis/bln",
+ "scrapeUrl": "URL yang akan di-scrape",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL wajib diisi",
"scrapeUrlInvalid": "URL tidak valid — harus dimulai dengan http:// atau https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
+ "scrapeExtract": "Ekstrak",
+ "scrapeExtracting": "Mengekstrak…",
+ "scrapeFullPage": "Halaman penuh",
"scrapeFormat": "Format",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
+ "formatText": "Teks",
+ "scrapePreview": "Pratinjau",
+ "scrapeRaw": "Mentah",
+ "scrapeContentTruncated": "(dipotong, lihat versi mentah)",
"scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "scrapeProvider": "Penyedia",
+ "scrapeSize": "Ukuran",
"scrapeEmptyState": "Masukkan URL untuk mengekstrak kontennya",
"scrapeProvidersAvailable": "Penyedia yang tersedia: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Bandingkan",
+ "compareRunning": "Membandingkan…",
+ "autoProvider": "Otomatis (termurah)",
+ "configuredStatus": "Dikonfigurasi",
+ "rateLimitedStatus": "Terkena batas laju",
+ "noCredential": "Tidak ada kredensial",
+ "searchTypeLabel": "Jenis",
+ "rerankModelLabel": "Model pengurutan ulang",
+ "noneOption": "Tidak ada",
+ "size": "Ukuran",
"configurationPane": "Panel konfigurasi",
"configuration": "Konfigurasi",
"status": "Status",
@@ -2657,10 +2661,10 @@
"rawScrapedContent": "Konten mentah hasil scraping",
"rawContent": "Konten mentah — {size}",
"closeRawModal": "Tutup modal konten mentah",
- "httpError": "Error {status}",
+ "httpError": "Kesalahan {status}",
"failed": "Gagal",
"requestFailed": "Permintaan gagal",
- "embedding": "Embedding",
+ "embedding": "Penyematan",
"embeddingSample": "Halo, dunia!",
"image": "Gambar",
"imageSample": "Pemandangan tenang dengan pegunungan saat matahari terbenam",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Tambahkan",
"antigravityStep2Suffix": "ke file host Anda sebagai 127.0.0.1.",
"antigravityStep3": "3. Buka Antigravitasi dan permintaan akan diproksi.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} mengirim permintaan ke endpoint penyedianya. MITM mencegat dan mengalihkannya ke OmniRoute.",
+ "mitmStep1": "1. Jalankan MITM untuk merutekan permintaan melalui OmniRoute.",
+ "mitmStep2Prefix": "2. Tambahkan",
+ "mitmStep2Suffix": "ke file hosts Anda sebagai 127.0.0.1.",
+ "mitmStep3": "3. Buka {toolName} dan permintaan akan diteruskan melalui proksi.",
"sudoPasswordRequiredTitle": "Kata Sandi Sudo Diperlukan",
"sudoPasswordHint": "Kata sandi administrator diperlukan untuk mengubah file host dan pengaturan proxy sistem.",
"enterSudoPassword": "Masukkan kata sandi sudo",
@@ -2904,7 +2908,7 @@
"continue": "Gunakan saat menjalankan Lanjutkan di IDE dan Anda memerlukan konfigurasi penyedia portabel berbasis JSON.",
"opencode": "Gunakan saat Anda lebih suka menjalankan agen terminal-asli dan otomatisasi skrip melalui OpenCode.",
"kiro": "Gunakan saat mengintegrasikan Kiro dan mengontrol perutean model secara terpusat dari OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Gunakan saat Anda menginginkan IDE berbasis AI dengan model Codeium/Windsurf yang dirutekan melalui OmniRoute.",
"antigravity": "Gunakan ketika lalu lintas Antigravitasi/Kiro harus dicegat melalui MITM dan dialihkan ke OmniRoute.",
"copilot": "Gunakan saat Anda menginginkan UX gaya obrolan kopilot sambil menerapkan kunci OmniRoute dan aturan perutean.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2924,11 +2928,11 @@
"qwen": "CLI Qwen Code",
"cursor": "Editor Kode AI Kursor",
"continue": "Lanjutkan Asisten AI",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "Agen coding AI OpenCode (Terminal)",
+ "kiro": "Amazon Kiro — IDE bertenaga AI",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "CLI asisten coding Sourcegraph Amp",
"hermes": "Asisten Terminal AI Hermes",
"hermes-agent": "Hermes Agent (oleh Nousresearch) - AI terminal canggih dengan dukungan multi-model (delegasi, visi, kompresi, dll.)",
"custom": "Generator konfigurasi CLI atau SDK generik yang kompatibel dengan OpenAI",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI agen pengodean otonom Open Interpreter",
"omp": "Agen pengodean terminal Oh My Pi",
"letta": "Agen CLI Letta dengan memori persisten dan penggunaan alat",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — kerangka kerja coding RLM yang dapat meningkatkan diri dengan dukungan penyedia yang kompatibel dengan OpenAI",
"warp": "Terminal AI Warp dengan dukungan penyedia kustom",
"agent-deck": "Orkestrator multi-agen Agent Deck",
"5dive": "5dive — armada agen coding yang di-host sendiri; satu profil auth mengarahkan semuanya ke OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Instal OpenCode",
+ "desc": "Instal melalui npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Kunci API"
},
"3": {
- "title": "Set Base URL",
+ "title": "Atur URL Dasar",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Pilih Model"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Gunakan Varian Penalaran",
+ "desc": "Untuk model penalaran, jalankan dengan --variant high/low/max (contoh perintah di bawah)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Buka Pengaturan Kiro",
+ "desc": "Buka Pengaturan → Penyedia AI"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "URL Dasar",
+ "desc": "Tempel URL endpoint OmniRoute Anda"
},
"3": {
- "title": "API Key"
+ "title": "Kunci API"
},
"4": {
- "title": "Select Model"
+ "title": "Pilih Model"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Buka Pengaturan AI",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Tambahkan Penyedia Kustom",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "URL Dasar",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "Kunci API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Pilih Model",
+ "desc": "Pilih model dari menu tarik-turun"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "CLI khusus",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Kategori Alat",
"visibleToolsCount": "{count} alat tersedia",
"customCliBuilderTitle": "Pembuat CLI yang kompatibel dengan OpenAI",
"customCliBuilderDescription": "Hasilkan env vars dan cuplikan JSON untuk CLI atau SDK apa pun yang menerima URL dasar, kunci API, dan ID model yang kompatibel dengan OpenAI.",
@@ -3128,15 +3132,15 @@
"hermesRoleTtsAudioTagsDesc": "Generasi tag audio TTS",
"hermesRoleTriageSpecifier": "Spesifikasi Triage",
"hermesRoleTriageSpecifierDesc": "Spesifikasi triase Isu dan PR",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Pengurai Kanban",
"hermesRoleKanbanDecomposerDesc": "Dekomposisi tugas Kanban",
"hermesRoleProfileDescriber": "Deskripsi Profil",
"hermesRoleProfileDescriberDesc": "Deskripsi profil pengguna",
- "hermesRoleGoalJudge": "Goal Judge",
+ "hermesRoleGoalJudge": "Penilai Sasaran",
"hermesRoleGoalJudgeDesc": "Penilaian penyelesaian tujuan",
"hermesRoleCurator": "Kurator",
"hermesRoleCuratorDesc": "Kurasi keterampilan dan memori",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Pemantau",
"hermesRoleMonitorDesc": "Pemantauan latar belakang",
"hermesRoleBackgroundReview": "Tinjauan Latar Belakang",
"hermesRoleBackgroundReviewDesc": "Tinjauan kode latar belakang",
@@ -3148,7 +3152,7 @@
"hermesConfiguredRoles": "{configured}/{total} peran",
"hermesQuickApply": "Terapkan model yang sama dengan cepat ke semua peran:",
"hermesApplyModelToAll": "Terapkan {model} ke setiap peran",
- "hermesViaOmniRoute": "{provider} (via OmniRoute)",
+ "hermesViaOmniRoute": "{provider} (melalui OmniRoute)",
"hermesNotOmniRoute": "{provider} (bukan OmniRoute)",
"hermesRemovePendingRole": "Hapus peran ini dari perubahan tertunda",
"hermesApply": "Terapkan ke Agen Hermes",
@@ -3256,23 +3260,23 @@
"priorityDesc": "Penggantian berurutan: mencoba model 1 terlebih dahulu, lalu 2, dst.",
"weightedDesc": "Mendistribusikan lalu lintas berdasarkan persentase bobot dengan fallback",
"roundRobinDesc": "Distribusi melingkar: setiap permintaan diteruskan ke model berikutnya secara bergilir",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "Relai Konteks",
+ "contextRelayDesc": "Mempertahankan kesinambungan sesi dengan ringkasan serah terima saat akun dirotasi",
"randomDesc": "Pemilihan acak seragam, lalu kembali ke model lainnya",
"leastUsedDesc": "Memilih model dengan permintaan paling sedikit, menyeimbangkan beban dari waktu ke waktu",
"costOptimizedDesc": "Rutekan ke model termurah terlebih dahulu berdasarkan harga",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "cacheOptimizedDesc": "Secara konsisten mengarahkan setiap awalan perintah yang dapat digunakan kembali ke akun penyedia yang sama",
"resetAware": "RR Sadar Reset",
"resetAwareDesc": "Menyeimbangkan sisa kuota dengan reset 5 jam dan mingguan, lalu menghitung skor serupa secara round-robin",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Berbobot Kuota",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "Acak Ketat",
+ "strictRandomDesc": "Kocok dek — menggunakan setiap model satu kali sebelum mengocok ulang",
"fusion": "Fusi",
"fusionDesc": "Menyebarkan prompt ke setiap model panel secara paralel, lalu model juri menyintesis satu jawaban akhir",
"fusionJudgeModel": "Model juri",
"fusionJudgeModelHelp": "Model yang menyintesis jawaban panel menjadi satu respons akhir. Biarkan kosong untuk menggunakan model panel pertama.",
- "fusionMinPanel": "Min panel",
+ "fusionMinPanel": "Panel minimum",
"fusionMinPanelHelp": "Jawaban panel yang berhasil yang diperlukan sebelum model lambat mendapatkan masa tenggang (default 2).",
"fusionStragglerGraceMs": "Masa tenggang straggler (ms)",
"fusionStragglerGraceMsHelp": "Berapa lama waktu tunggu untuk model panel yang lambat setelah kuorum tercapai (default 8000).",
@@ -3284,13 +3288,13 @@
"retryDelay": "Penundaan Coba Lagi (md)",
"concurrencyPerModel": "Konkurensi / Model",
"queueTimeout": "Batas Waktu Antrian (md)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "Ambang Batas Serah Terima",
+ "contextRelayHandoffThresholdHelp": "Saat penggunaan kuota mencapai ambang batas ini, OmniRoute menghasilkan ringkasan serah terima terstruktur sebelum akun aktif kehabisan kuota.",
+ "contextRelayMaxMessages": "Pesan Maksimum untuk Ringkasan",
+ "contextRelayMaxMessagesHelp": "Membatasi jumlah riwayat terbaru yang diringkas ke dalam ringkasan relai.",
+ "contextRelaySummaryModel": "Model Ringkasan",
+ "contextRelaySummaryModelHelp": "Model pengganti opsional yang hanya digunakan untuk menghasilkan ringkasan serah terima. Biarkan kosong untuk menggunakan kembali model kombo yang aktif.",
+ "contextRelayProviderNote": "Relai Konteks saat ini menghasilkan serah terima untuk rotasi akun Codex. Padukan dengan beberapa akun dari penyedia yang sama untuk kesinambungan terbaik.",
"advancedHint": "Biarkan kosong untuk menggunakan default global. Ini mengesampingkan pengaturan per penyedia.",
"failoverBeforeRetry": "Failover Sebelum Coba Lagi",
"maxSetRetries": "Percobaan Ulang Set Maks",
@@ -3315,7 +3319,7 @@
"playgroundStatusAvailable": "Tersedia",
"playgroundStatusNoQuota": "Tidak Ada Kuota",
"playgroundStatusDegraded": "Terdegradasi",
- "playgroundStatusError": "Error",
+ "playgroundStatusError": "Kesalahan",
"playgroundStatusUnknown": "Tidak Diketahui",
"playgroundNetworkError": "Error jaringan selama simulasi",
"playgroundTitle": "Playground Kombo",
@@ -3331,7 +3335,7 @@
"playgroundStrategy": "Strategi",
"playgroundEstimatedCost": "Est. Biaya",
"playgroundEstimatedLatency": "Est. Latensi",
- "playgroundFallback": "fallback",
+ "playgroundFallback": "cadangan",
"playgroundWeight": "bobot {value}",
"playgroundWarningCount": "Peringatan ({count})",
"playgroundErrorCount": "Error ({count})",
@@ -3341,40 +3345,40 @@
"weighted": "Tertimbang",
"leastUsed": "Paling Sedikit Digunakan",
"costOpt": "Pilihan Biaya",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "strategyGuideTitle": "Cara menggunakan strategi ini",
+ "strategyGuideWhen": "Kapan digunakan",
+ "strategyGuideAvoid": "Hindari ketika",
+ "strategyGuideExample": "Contoh",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "Anda memiliki satu model pilihan dan hanya menginginkan cadangan saat terjadi kegagalan.",
+ "avoid": "Anda perlu mendistribusikan permintaan ke beberapa model.",
+ "example": "Model pengodean utama dengan cadangan yang lebih murah untuk gangguan layanan."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "Anda memerlukan pembagian lalu lintas yang terkontrol di antara beberapa model.",
+ "avoid": "Anda tidak dapat mempertahankan bobot yang akurat seiring waktu.",
+ "example": "Peluncuran 80% model stabil + 20% model canary."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "Anda menginginkan distribusi yang dapat diprediksi dan merata.",
+ "avoid": "Model-model terlalu berbeda dalam hal latensi atau biaya.",
+ "example": "Model yang sama pada beberapa akun untuk menyebarkan throughput."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "Anda menginginkan distribusi sederhana dengan penyiapan minimal.",
+ "avoid": "Anda memerlukan jaminan lalu lintas yang ketat.",
+ "example": "Pembuatan prototipe cepat dengan model-model yang setara."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "Anda menginginkan penyeimbangan adaptif berdasarkan permintaan langsung.",
+ "avoid": "Lalu lintas terlalu rendah untuk memperoleh manfaat dari penyeimbangan penggunaan.",
+ "example": "Beban kerja campuran saat satu model sering mengalami beban berlebih."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "Pengurangan biaya adalah prioritas utama Anda.",
+ "avoid": "Data harga tidak tersedia atau sudah usang.",
+ "example": "Pekerjaan latar belakang atau batch yang mengutamakan biaya lebih rendah."
},
"reset-aware": {
"when": "Anda merutekan beberapa akun dengan telemetri kuota dan jendela pengaturan ulang yang berbeda.",
@@ -3382,19 +3386,19 @@
"example": "Lebih suka pengaturan ulang akun mingguan 60% besok daripada pengaturan ulang akun 80% nanti."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Gunakan saat Anda menginginkan distribusi yang sepenuhnya merata — setiap model digunakan satu kali sebelum diulang.",
+ "avoid": "Hindari saat model memiliki kualitas atau latensi berbeda dan urutan penggunaan penting.",
+ "example": "Contoh: Beberapa akun dari model yang sama untuk mendistribusikan penggunaan secara merata."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Gunakan saat Anda menginginkan pemilihan berlatensi rendah menggunakan algoritma Power-of-Two-Choices.",
+ "avoid": "Hindari untuk kombinasi kecil dengan 2 model atau kurang — tidak ada manfaat dibandingkan round-robin.",
+ "example": "Contoh: Inferensi berthroughput tinggi di 4+ endpoint model yang setara."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Gunakan saat sesi panjang harus tetap bertahan selama rotasi akun tanpa kehilangan konteks kerja.",
+ "avoid": "Hindari saat perpindahan akun jarang terjadi atau saat Anda tidak menginginkan permintaan peringkasan tambahan.",
+ "example": "Contoh: Sesi Codex yang dirotasi di beberapa akun saat kuota hampir habis."
},
"fill-first": {
"when": "Gunakan ketika Anda ingin menghabiskan kuota satu penyedia sepenuhnya sebelum berpindah ke penyedia berikutnya.",
@@ -3418,49 +3422,49 @@
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "Jumlah percobaan ulang yang dilakukan sebelum permintaan dinyatakan gagal.",
+ "retryDelay": "Waktu tunggu awal di antara percobaan ulang. Nilai yang lebih tinggi mengurangi tekanan lonjakan.",
+ "timeout": "Durasi maksimum permintaan sebelum dibatalkan.",
+ "healthcheck": "Mengecualikan model/penyedia yang bermasalah dari keputusan perutean.",
+ "concurrencyPerModel": "Jumlah maksimum permintaan bersamaan yang diizinkan per model dalam round-robin.",
+ "queueTimeout": "Berapa lama permintaan dapat menunggu dalam antrean sebelum waktu tunggunya habis.",
"failoverBeforeRetry": "Jika diaktifkan, kesalahan upstream apa pun akan langsung memicu failover ke target kombo berikutnya, sehingga melewatkan semua percobaan ulang dan URL cadangan.",
"maxSetRetries": "Berapa kali untuk mencoba kembali set target penuh ketika setiap target gagal. 0 = tidak ada percobaan ulang pada tingkat set.",
"setRetryDelayMs": "Penundaan antara upaya percobaan ulang tingkat set, memberikan waktu untuk menyelesaikan masalah sementara.",
"disableSessionStickiness": "Rotasikan ke koneksi yang berbeda pada setiap permintaan alih-alih menyematkan seluruh percakapan ke satu koneksi berdasarkan hash pesan pertama. Mengabaikan default global. Biarkan pada Inherit untuk mempertahankan hit prompt-cache untuk obrolan multi-turn."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "Templat cepat",
+ "templatesDescription": "Terapkan profil awal, lalu sesuaikan model dan konfigurasi.",
+ "templateApply": "Terapkan templat",
+ "templateHighAvailability": "Ketersediaan tinggi",
+ "templateHighAvailabilityDesc": "Perutean prioritas dengan pemeriksaan kesehatan dan percobaan ulang yang aman.",
+ "templateCostSaver": "Penghemat biaya",
+ "templateCostSaverDesc": "Perutean yang dioptimalkan untuk biaya bagi beban kerja yang mengutamakan anggaran.",
+ "templateBalanced": "Beban seimbang",
+ "templateBalancedDesc": "Perutean berdasarkan penggunaan paling sedikit untuk menyebarkan permintaan dari waktu ke waktu.",
+ "usageGuideHide": "Sembunyikan",
+ "usageGuideDontShowAgain": "Jangan tampilkan lagi",
+ "usageGuideShow": "Tampilkan panduan",
+ "quickTestTitle": "Kombinasi siap divalidasi",
+ "quickTestDescription": "Jalankan pengujian sekarang untuk mengonfirmasi perilaku fallback dan latensi.",
+ "testNow": "Uji sekarang",
+ "pricingCoverage": "Cakupan harga",
+ "pricingCoverageHint": "Pengoptimalan biaya bekerja paling baik saat semua model dalam kombinasi memiliki informasi harga.",
+ "pricingAvailable": "Harga tersedia",
+ "pricingMissing": "Tidak ada harga",
+ "pricingAvailableShort": "memiliki harga",
+ "pricingMissingShort": "tanpa harga",
"fallbackOnlyOnQuotaExhaustion": "Hanya maju saat kuota habis",
"fallbackOnlyOnQuotaExhaustionShort": "fallback hanya kuota",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "warningRoundRobinSingleModel": "Round-robin paling berguna dengan setidaknya 2 model.",
+ "warningCostOptimizedPartialPricing": "Hanya {priced} dari {total} model yang memiliki informasi harga. Perutean mungkin hanya sebagian mempertimbangkan biaya.",
+ "warningCostOptimizedNoPricing": "Tidak ada data harga yang ditemukan untuk kombinasi ini. Pengoptimalan biaya mungkin melakukan perutean secara tidak terduga.",
+ "filterAll": "Semua",
+ "filterIntelligent": "Cerdas",
+ "filterDeterministic": "Deterministik",
+ "filterEmptyTitle": "Tidak ada kombinasi yang cocok dengan filter strategi ini.",
+ "filterEmptyIntelligentDescription": "Buat kombinasi otomatis atau LKGP untuk mengisi dasbor perutean cerdas.",
+ "filterEmptyDeterministicDescription": "Saat ini hanya ada kombinasi otomatis dan LKGP. Kembali ke Semua atau buat kombinasi deterministik.",
"readinessTitle": "Siap menabung?",
"readinessDescription": "Tinjau daftar periksa sebelum membuat atau memperbarui kombo ini.",
"readinessCheckName": "Nama kombo valid",
@@ -3474,12 +3478,12 @@
"saveBlockModels": "Tambahkan setidaknya satu model.",
"saveBlockWeighted": "Tetapkan bobot menjadi 100% (saat ini: {total}%).",
"saveBlockPricing": "Tambahkan harga untuk setidaknya satu model atau pilih strategi lain.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "Penyiapan yang disarankan",
+ "applyRecommendations": "Terapkan rekomendasi",
+ "recommendationsUpdated": "Rekomendasi diperbarui untuk {strategy}.",
+ "recommendationsApplied": "Rekomendasi diterapkan pada kombinasi ini.",
+ "intelligentPanelTitle": "Dasbor Perutean Cerdas",
+ "intelligentPanelDesc": "Penilaian waktu nyata dan status kesehatan untuk kombinasi perutean otomatis ini.",
"configOnlyStatus": "Tampilan Konfigurasi",
"configOnlyHint": "Panel ini hanya menampilkan input perutean. Status breaker langsung tersedia di halaman Kesehatan.",
"routingInputs": "Input Perutean",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "Prefiks penyedia tidak dikenal.",
"builderDynamicAccountShort": "Akun dinamis",
"builderNeedValidName": "Tentukan nama kombo yang valid sebelum melanjutkan.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Ikhtisar Status",
+ "normalOperation": "Operasi Normal",
+ "allProvidersHealthy": "Penyedia melaporkan kondisi perutean yang sehat.",
+ "incidentMode": "Mode Insiden",
+ "highCircuitBreakerRate": "Terdeteksi tingkat pemicuan pemutus sirkuit yang tinggi.",
+ "activeModePack": "Paket Mode Aktif",
+ "modePackUpdated": "Paket mode diperbarui menjadi {pack}.",
+ "modePackHint": "Ganti preset untuk mengarahkan preferensi mesin perutean tanpa membuat ulang kombinasi.",
+ "providerScores": "Skor Penyedia",
+ "allProvidersEvaluated": "Tidak ada kumpulan kandidat yang dikonfigurasi. Semua penyedia aktif dievaluasi saat runtime.",
+ "excludedProviders": "Penyedia yang Dikecualikan",
+ "excludedProvidersHint": "Penyedia dengan pemutus sirkuit berstatus OPEN dikecualikan sementara dari perutean.",
+ "noExcludedProviders": "Saat ini tidak ada penyedia yang dikecualikan.",
+ "cooldownMinutes": "Waktu tunggu: {minutes} mnt",
+ "builderIntelligentTitle": "Konfigurasi Perutean Cerdas",
+ "builderIntelligentDesc": "Konfigurasikan mesin penilaian multifaktor untuk kombinasi perutean otomatis ini.",
+ "candidatePoolLabel": "Kumpulan Kandidat",
+ "candidatePoolHint": "Pilih penyedia yang harus dievaluasi oleh mesin ini. Biarkan kosong untuk menggunakan semua penyedia aktif.",
+ "candidatePoolEmpty": "Belum ada penyedia aktif yang tersedia.",
+ "candidatePoolAllProviders": "Semua penyedia",
+ "modePackLabel": "Paket Mode",
+ "routerStrategyLabel": "Strategi Router",
+ "strategyRules": "Aturan (Penilaian 6 Faktor)",
+ "explorationRateLabel": "Tingkat Eksplorasi",
+ "explorationRateHint": "{percent}% permintaan dapat mengeksplorasi penyedia yang tidak optimal.",
+ "budgetCapLabel": "Batas Anggaran (USD / permintaan)",
+ "budgetCapPlaceholder": "Tanpa batas",
+ "advancedWeightsTitle": "Lanjutan: Bobot Penilaian",
"nestedComboFlatten": "Ratakan kombo bersarang",
"nestedComboExecute": "Eksekusi kombo bersarang sebagai target",
"effectiveRoutingShare": "Pangsa perutean efektif (bobot ÷ total)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Kuota",
+ "weightHealth": "Kesehatan",
+ "weightCostInv": "Biaya",
+ "weightLatencyInv": "Latensi",
+ "weightTaskFit": "Kesesuaian Tugas",
+ "weightStability": "Stabilitas",
+ "weightTierPriority": "Tingkat",
+ "weightCacheAffinity": "Afinitas Cache Hit",
"weightSessionAvailability": "Ketersediaan Sesi",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Konfigurasi Perutean Cerdas",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "Baseline fail-safe",
+ "description": "Gunakan satu model utama dan pertahankan rantai fallback yang singkat dan andal.",
+ "tip1": "Tempatkan model Anda yang paling andal di urutan pertama.",
+ "tip2": "Pertahankan 1-2 model cadangan dengan kualitas serupa.",
+ "tip3": "Gunakan percobaan ulang yang aman untuk mengatasi kegagalan sementara dari penyedia."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "Pembagian trafik terkendali",
+ "description": "Sangat cocok untuk peluncuran canary dan migrasi bertahap antar-model.",
+ "tip1": "Mulailah dengan pembagian konservatif seperti 90/10.",
+ "tip2": "Pertahankan total pada 100% dan seimbangkan secara otomatis setelah perubahan.",
+ "tip3": "Pantau keberhasilan dan latensi sebelum meningkatkan bobot canary."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "Pembagian beban yang dapat diprediksi",
+ "description": "Paling sesuai ketika model-model setara dan Anda memerlukan distribusi yang lancar.",
+ "tip1": "Gunakan setidaknya 2 model.",
+ "tip2": "Tetapkan batas konkurensi untuk menghindari beban berlebih akibat lonjakan.",
+ "tip3": "Gunakan batas waktu antrean agar cepat gagal saat terjadi saturasi."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "Distribusi cepat dengan penyiapan minimal",
+ "description": "Gunakan ketika Anda memerlukan distribusi sederhana tanpa jaminan ketat.",
+ "tip1": "Gunakan model dengan profil latensi serupa.",
+ "tip2": "Biarkan percobaan ulang tetap aktif untuk mengatasi kegagalan acak.",
+ "tip3": "Utamakan opsi ini untuk eksperimen, bukan SLA yang ketat."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "Penyeimbangan adaptif",
+ "description": "Merutekan ke model yang lebih jarang digunakan untuk mengurangi titik beban tinggi seiring waktu.",
+ "tip1": "Berfungsi lebih baik pada trafik berkelanjutan.",
+ "tip2": "Gabungkan dengan pemeriksaan kesehatan untuk penyeimbangan yang lebih aman.",
+ "tip3": "Lacak penggunaan per model untuk memvalidasi peningkatan distribusi."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "Perutean yang mengutamakan anggaran",
+ "description": "Merutekan ke model berbiaya lebih rendah ketika metadata harga tersedia.",
+ "tip1": "Pastikan informasi harga tersedia untuk semua model yang dipilih.",
+ "tip2": "Pertahankan fallback berkualitas untuk prompt yang sulit.",
+ "tip3": "Gunakan untuk pekerjaan batch/latar belakang ketika biaya menjadi KPI utama."
},
"reset-aware": {
"title": "Rotasi akun yang sadar akan pengaturan ulang",
@@ -3593,11 +3597,11 @@
"tip3": "Jaga agar tali pengikatnya tetap kecil sehingga akun-akun yang setara masih dapat berputar dengan adil."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Distribusi dek acak",
+ "description": "Setiap model digunakan tepat satu kali per siklus sebelum diacak ulang.",
+ "tip1": "Gunakan setidaknya 2 model agar distribusi bermakna.",
+ "tip2": "Berfungsi paling baik dengan model yang memiliki performa setara.",
+ "tip3": "Ideal untuk penyeimbangan beban di beberapa akun API."
},
"fill-first": {
"description": "Kuota penyedia knalpot secara berurutan sebelum melakukan fall back.",
@@ -3642,86 +3646,86 @@
"title": "Kekuatan Dua Pilihan"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "Stack Gratis ($0)",
+ "templateFreeStackDesc": "Round-robin di semua penyedia gratis: Kiro (Claude), Qoder (5 model), Qwen (4 model). Tanpa biaya, terus mengode tanpa henti.",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "Mode LKGP",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "Memulai dengan Combo",
+ "wizardGuideDesc": "Buat combo model untuk merutekan lalu lintas AI secara cerdas",
+ "wizardGuideHint": "atau klik + Buat Combo di atas",
+ "createFirstCombo": "Buat Combo Pertama Anda",
+ "wizardStep1Title": "Beri Nama Combo Anda",
+ "wizardStep1Desc": "Berikan nama unik pada combo Anda agar dapat diidentifikasi dalam aturan perutean",
+ "wizardStep2Title": "Tambahkan Model",
+ "wizardStep2Desc": "Pilih model AI dan atur urutan prioritas fallback-nya",
+ "wizardStep3Title": "Pilih Strategi",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "Tinjau & Simpan",
+ "wizardStep4Desc": "Tinjau konfigurasi Anda dan aktifkan combo",
+ "usageGuideInvokeTitle": "Cara memanggil combo ini",
+ "usageGuideInvokeDesc": "Kirim nama persis combo sebagai model, misalnya model: \"my-combo\" (atau combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto dan auto/* adalah router terpisah tanpa konfigurasi yang tidak menggunakan combo Anda (kecuali jika sebuah combo benar-benar diberi nama auto).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto adalah produk berbayar OpenRouter yang sebenarnya (Auto Best Available), bukan alias OmniRoute — kecualikan melalui Pengaturan → Perutean → Sembunyikan model berbayar.",
+ "emailVisibilityStateOn": "Aktif",
+ "emailVisibilityStateOff": "Nonaktif",
+ "reorderHandle": "Seret untuk mengurutkan ulang",
+ "failedReorder": "Gagal mengurutkan ulang model",
+ "builderFlowTitle": "Alur Pembuat Combo",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Dasar-dasar",
+ "description": "Nama dan templat awal"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Langkah-langkah",
+ "description": "Pemilihan penyedia, model, dan akun"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Strategi",
+ "description": "Perilaku perutean dan pengaturan lanjutan"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Perutean Cerdas",
+ "description": "Kumpulan kandidat perutean otomatis, preset, dan penilaian"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Tinjau",
+ "description": "Validasi akhir sebelum menyimpan"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
+ "builderStageVisited": "Tahap selesai",
+ "builderStageCurrent": "Tahap saat ini",
+ "builderStagePending": "Tertunda",
+ "builderStageLocked": "Terkunci — selesaikan tahap sebelumnya terlebih dahulu",
+ "builderTitle": "Buat Combo",
+ "builderBrowseCatalog": "Jelajahi katalog",
+ "builderProvider": "Penyedia",
+ "builderLoadingProviders": "Memuat provider...",
+ "builderSelectProvider": "Pilih provider",
"builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderSelectModel": "Pilih model",
+ "builderProviderFirst": "Pilih provider terlebih dahulu",
+ "builderAccount": "Akun",
+ "builderPreview": "Pratinjau",
+ "builderAddStep": "Tambahkan langkah",
"builderDuplicateExact": "Langkah penyedia/model/akun yang tepat ini sudah ada dalam kombo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "Referensi Combo",
+ "builderAddComboRef": "Tambahkan referensi combo",
+ "builderComboRefStep": "Tambahkan referensi combo",
+ "builderPinnedAccount": "Akun yang Disematkan",
+ "builderLegacyEntry": "Entri lama",
+ "reviewName": "Nama",
+ "reviewStrategy": "Strategi",
+ "reviewSteps": "Langkah",
+ "reviewAccounts": "Akun",
+ "reviewProviders": "Provider",
+ "reviewComboRefs": "Referensi Combo",
+ "reviewAdvanced": "Pengaturan Lanjutan",
+ "reviewAgentFlags": "Flag Agen",
+ "reviewSequence": "Urutan Model",
+ "reviewNoSteps": "Belum ada langkah yang dikonfigurasi",
"builderStagesDescription": "Selesaikan setiap tahap untuk menentukan kombo, membangun langkah-langkah, memilih strategi perutean, dan meninjau hasil.",
"builderStepsDescription": "Susun setiap langkah kombo secara berurutan: penyedia, model, lalu akun. Hal ini memungkinkan penggunaan kembali penyedia dan model yang sama di akun yang berbeda.",
"selectProvider": "Pilih Penyedia",
@@ -3774,9 +3778,9 @@
"savingModePack": "Menyimpan {pack}…",
"errorTitle": "Gagal memuat kombinasi",
"errorDescription": "Kami tidak dapat memuat data kombinasi saat ini. Periksa koneksi Anda dan coba lagi.",
- "errorId": "Error ID: {id}",
+ "errorId": "ID Kesalahan: {id}",
"errorRetry": "Coba Lagi",
- "comboLabel": "Combo",
+ "comboLabel": "Kombinasi",
"duplicateAutoComboConfirm": "Buat kombo statis dari \"{name}\"?",
"duplicateAutoComboSnapshotMsg": "Ini akan mengambil snapshot penyedia/model yang terhubung saat ini yang cocok dengan templat ini ke dalam kombo yang dapat diedit.",
"duplicateAutoComboFailedPrefix": "Gagal menduplikasi kombo otomatis:",
@@ -3796,27 +3800,27 @@
"range7d": "7 hari",
"range30d": "30 Hari",
"range90d": "90 Hari",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 Hari",
+ "range365d": "365 Hari",
"rangeAll": "Sepanjang Waktu",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "Model Aktif",
+ "flatRateEstimateNotice": "Mencakup estimasi harga token untuk langganan tarif tetap, bukan biaya yang ditagihkan.",
+ "flatRateEstimateForecast": "Proyeksi mencakup estimasi tarif tetap.",
+ "selectedWindow": "Rentang Terpilih",
+ "activeProviders": "Provider Aktif",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "Pengeluaran Hari Ini",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "Porsi Provider",
+ "topProviders": "Penyedia Teratas",
+ "costTrend": "Tren Biaya",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "Model Teratas",
"requestsInWindow": "Requests In Window",
"tokenUsage": "Penggunaan Token",
"totalTokens": "Jumlah Token",
@@ -3859,7 +3863,7 @@
"groupAccount": "Akun",
"groupServiceTier": "Tingkat layanan",
"serviceTierFast": "Cepat",
- "serviceTierFlex": "Flex",
+ "serviceTierFlex": "Fleksibel",
"serviceTierStandard": "Standar",
"serviceTierBreakdownTitle": "Tingkat Layanan",
"serviceTierBreakdownSubtitle": "Pembagian Fast / Flex / Standard",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "Titik Akhir API",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "Gunakan endpoint yang kompatibel dengan OpenAI dengan sebagian besar SDK dan alat.",
+ "testEndpoint": "Uji endpoint →",
+ "advancedProtocols": "Protokol lanjutan",
"available": "Titik Akhir yang Tersedia",
"cloudProxy": "Proksi Awan",
"disableConfirm": "Apakah Anda yakin ingin menonaktifkan proksi cloud?",
@@ -3896,7 +3900,7 @@
"disableCloud": "Nonaktifkan Awan",
"enableCloud": "Aktifkan Awan",
"modelsAcrossEndpoints": "{models} model di seluruh titik akhir {endpoints}",
- "loadingModels": "Loading available models...",
+ "loadingModels": "Memuat model yang tersedia...",
"chatDesc": "Obrolan streaming & non-streaming dengan semua penyedia",
"embeddings": "Penyematan",
"embeddingsDesc": "Penyematan teks untuk saluran pencarian & RAG",
@@ -3908,22 +3912,22 @@
"audioTranscriptionDesc": "Transkripsikan file audio ke teks (Bisikan)",
"textToSpeech": "Teks ke Ucapan",
"textToSpeechDesc": "Ubah teks menjadi ucapan yang terdengar alami",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Pembuatan Musik",
+ "musicDesc": "Buat musik dan trek audio melalui ComfyUI (Stable Audio, MusicGen)",
"moderations": "Moderasi",
"moderationsDesc": "Moderasi konten dan klasifikasi keamanan",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
+ "responsesDesc": "OpenAI Responses API untuk Codex dan alur kerja agen tingkat lanjut",
+ "listModelsDesc": "Cantumkan semua model yang tersedia di seluruh penyedia yang terhubung",
+ "settingsApiDesc": "Baca dan ubah konfigurasi OmniRoute melalui API",
+ "settingsApi": "API Pengaturan",
"categoryCore": "API Inti",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
+ "categoryMedia": "Media & Multimodal",
+ "categorySearch": "Pencarian & Penemuan",
"categoryUtility": "Utilitas & Manajemen",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "Pencarian Web",
+ "webSearchDesc": "Pencarian web terpadu di berbagai penyedia dengan failover dan caching otomatis",
+ "searchProvider": "Penyedia Pencarian",
+ "searchProviderDesc": "Penyedia ini digunakan untuk pencarian web melalui POST /v1/search. Konfigurasi model tidak diperlukan — penyedia pencarian siap digunakan setelah kunci API terhubung.",
"enableCloudTitle": "Aktifkan Proksi Cloud",
"whatYouGet": "Apa yang akan Anda dapatkan",
"cloudBenefitAccess": "Akses API Anda dari mana saja di dunia",
@@ -3959,57 +3963,57 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Aktifkan Tunnel",
+ "cloudflaredInstallAndEnable": "Instal & Aktifkan",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Berjalan",
+ "cloudflaredStarting": "Memulai",
+ "cloudflaredStoppedState": "Dihentikan",
+ "cloudflaredNotInstalled": "Belum diinstal",
+ "cloudflaredUnsupported": "Tidak didukung",
+ "cloudflaredError": "Kesalahan",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Kesalahan terakhir: {error}",
"providerModelsTitle": "{provider} — Model",
"noModelsForProvider": "Tidak ada model yang tersedia untuk penyedia ini.",
"chat": "Obrolan",
"embedding": "Penyematan",
"image": "Gambar",
"custom": "adat",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "modelsCount": "{count, plural, one {# model} other {# model}}",
+ "sectionTitle": "Antarmuka Integrasi",
+ "sectionDescription": "API yang kompatibel dengan OpenAI dan endpoint protokol operasional",
"tabApis": "API",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "Protokol",
+ "tabsAria": "Bagian endpoint",
+ "protocolsTitle": "Protokol",
+ "protocolsDescription": "MCP dan A2A merupakan endpoint utama dengan observabilitas dan kontrol khusus.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "Model Context Protocol melalui stdio",
+ "a2aCardTitle": "Server A2A",
+ "a2aCardDescription": "Endpoint JSON-RPC Agent2Agent",
+ "protocolToolsLabel": "Alat",
+ "protocolTasksLabel": "Tugas",
+ "protocolActiveStreamsLabel": "Stream aktif",
+ "protocolLastActivity": "Aktivitas terakhir",
+ "quickStart": "Mulai Cepat",
+ "openMcpDashboard": "Buka pengelolaan MCP",
+ "openA2aDashboard": "Buka pengelolaan A2A",
+ "mcpQuickStartTitle": "Mulai Cepat MCP",
+ "mcpQuickStartStep1": "Jalankan server MCP melalui `omniroute --mcp`.",
+ "mcpQuickStartStep2": "Konfigurasikan klien MCP Anda agar terhubung melalui transportasi stdio.",
+ "mcpQuickStartStep3": "Panggil alat seperti `omniroute_get_health` dan `omniroute_list_combos`.",
+ "a2aQuickStartTitle": "Mulai Cepat A2A",
+ "a2aQuickStartStep1": "Temukan kartu agen di `/.well-known/agent.json`.",
+ "a2aQuickStartStep2": "Kirim permintaan JSON-RPC ke `POST /a2a` menggunakan `message/send` atau `message/stream`.",
+ "a2aQuickStartStep3": "Lacak dan kendalikan tugas menggunakan `tasks/get` dan `tasks/cancel`.",
+ "completionsLegacy": "Penyelesaian (Lama)",
+ "completionsLegacyDesc": "Penyelesaian teks OpenAI lama — menerima format string prompt dan array pesan",
"messagesApi": "Pesan",
"messagesApiDesc": "Format API Pesan Antropik Asli untuk penyedia yang kompatibel dengan Claude",
"imageEdits": "Pengeditan Gambar",
@@ -4018,40 +4022,40 @@
"batchApiDesc": "Memproses permintaan dalam jumlah besar secara asinkron (kompatibel dengan OpenAI)",
"filesApi": "API File",
"filesApiDesc": "Unggah dan kelola file untuk pemrosesan batch",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Pembuatan Video",
+ "videoDesc": "Buat video menggunakan model AI seperti ComfyUI dan Stable Video Diffusion.",
+ "tailscaleRequestFailed": "Gagal memuat status Tailscale",
+ "tailscaleEnableFailed": "Gagal mengaktifkan Tailscale Funnel",
+ "tailscaleWaitingForLogin": "Selesaikan proses masuk Tailscale di tab browser yang terbuka. OmniRoute akan mencoba lagi secara otomatis.",
+ "tailscaleLoginTimedOut": "Waktu habis saat menunggu proses masuk Tailscale",
+ "tailscaleWaitingForFunnel": "Aktifkan Funnel untuk perangkat ini di tab browser yang terbuka. OmniRoute akan terus memeriksa.",
+ "tailscaleFunnelTimedOut": "Waktu habis saat menunggu Tailscale Funnel diaktifkan",
+ "tailscaleStarted": "Tailscale Funnel diaktifkan",
+ "tailscaleDisableFailed": "Gagal menonaktifkan Tailscale Funnel",
+ "tailscaleStopped": "Tailscale Funnel dinonaktifkan",
+ "tailscaleInstallFailed": "Gagal menginstal Tailscale",
+ "tailscaleInstallProgress": "Sedang diproses...",
+ "tailscaleInstalled": "Tailscale berhasil diinstal",
+ "tailscaleRunning": "Berjalan",
+ "tailscaleNeedsLogin": "Perlu Masuk",
+ "tailscaleStoppedState": "Dihentikan",
+ "tailscaleNotInstalled": "Belum diinstal",
+ "tailscaleUnsupported": "Tidak didukung",
+ "tailscaleError": "Kesalahan",
+ "tailscaleDisable": "Hentikan Funnel",
+ "tailscaleInstallAndEnable": "Instal & Aktifkan",
+ "tailscaleLoginAndEnable": "Masuk & Aktifkan",
+ "tailscaleEnable": "Aktifkan Funnel",
+ "tailscaleUrlNotice": "Menggunakan alamat .ts.net Tailscale Anda. Login dan persetujuan Funnel mungkin diperlukan saat pertama kali digunakan.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "Autentikasi mesin ini dengan Tailscale, lalu aktifkan Funnel.",
+ "tailscaleBinaryPath": "Biner: {path}",
+ "tailscaleLastError": "Kesalahan terakhir: {error}",
+ "tailscaleInstallTitle": "Instal Tailscale",
+ "tailscaleInstallIntro": "Menginstal Tailscale di mesin ini dan menyiapkan OmniRoute untuk mengaktifkan Funnel.",
+ "tailscaleInstallPasswordHint": "Di macOS dan Linux, sudo mungkin diperlukan untuk menginstal paket dan memulai daemon.",
+ "tailscaleSudoPlaceholder": "Kata sandi sudo opsional",
+ "tailscaleInstalling": "Menginstal",
"tailscaleSudoLabel": "Kata Sandi Sudo (diperlukan di MacOS/Linux)",
"ngrokTitle": "Terowongan ngrok",
"ngrokRunning": "Berlari",
@@ -4080,7 +4084,7 @@
"tabContextSources": "Sumber Konteks",
"activeEndpoints": "Endpoint Aktif",
"activeLocal": "Lokal",
- "activeCloud": "Cloud",
+ "activeCloud": "Awan",
"copyUrlTitle": "Salin {url}",
"statusRunning": "Berjalan",
"tunnels": "Tunnel",
@@ -4097,15 +4101,15 @@
"apiKeyRevealInvalid": "Pengungkapan kunci API mengembalikan respons yang tidak valid",
"apiKeyRequired": "Kunci API diperlukan untuk endpoint ini.",
"requestFailed": "Permintaan gagal ({status})",
- "errorStatus": "Error",
+ "errorStatus": "Kesalahan",
"catalogStats": "{endpoints} endpoint di {categories} kategori",
"catalogUnavailableDescription": "Spesifikasi OpenAPI tidak dapat dimuat.",
"openJsonResponse": "Buka respons JSON",
"all": "Semua",
"more": "+{count} lagi",
"showInternalTooltip": "Tampilkan atau sembunyikan rute internal (disembunyikan secara default)",
- "bearerAuth": "Bearer Auth",
- "requestBody": "Request Body",
+ "bearerAuth": "Autentikasi Bearer",
+ "requestBody": "Isi Permintaan",
"close": "Tutup",
"tryIt": "Coba",
"example": "Contoh",
@@ -4114,7 +4118,7 @@
"enterManually": "Masukkan Secara Manual",
"pasteApiKey": "Tempel kunci API Anda di sini",
"noActiveApiKeys": "Tidak ada kunci API aktif yang ditemukan. Alihkan entri manual untuk menempelkannya.",
- "requestBodyJson": "Request Body (JSON)",
+ "requestBodyJson": "Isi Permintaan (JSON)",
"sending": "Mengirim...",
"sendRequest": "Kirim Permintaan",
"dataSchemas": "Skema Data",
@@ -4123,12 +4127,12 @@
"vscodeAliasDescriptionError": "Menampilkan URL placeholder karena kunci CLI tidak dapat dimuat dalam sesi ini.",
"vscodeAliasDescriptionLoading": "Memuat kunci CLI. URL placeholder ditampilkan hingga kunci tersedia.",
"vscodeAliasDescriptionPlaceholder": "Menampilkan URL placeholder. Buat atau aktifkan kunci API di CLI Tools untuk mengganti TOKEN.",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "Alat CLI",
"vscodeAliasBaseLabel": "Basis VS Code",
"vscodeAliasModelsLabel": "Model VS Code",
"vscodeAliasChatLabel": "Obrolan VS Code",
"localServer": "Server Lokal",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "OmniRoute Cloud",
"copyUrl": "Salin URL",
"badgeLoopbackTooltip": "Endpoint ini hanya dapat diakses secara lokal (hanya loopback)",
"badgeAlwaysProtectedTooltip": "Endpoint ini selalu dilindungi dan memerlukan otorisasi",
@@ -4140,9 +4144,9 @@
"tierPublic": "Publik",
"hideInternal": "Sembunyikan Internal",
"showInternal": "Tampilkan Internal",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Prompt Sistem Kustom",
+ "customSystemPromptDescription": "Sisipkan prompt sistem kustom ke dalam setiap permintaan model",
+ "customSystemPromptPlaceholder": "mis. Selalu balas dengan gaya bicara bajak laut...",
"obsidianEnterToken": "Silakan masukkan token API Obsidian",
"obsidianConnectFailed": "Gagal menyambungkan",
"obsidianConnectionFailed": "Koneksi gagal",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "Token telah dikonfigurasi. Alat Notion tersedia melalui MCP."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "Proksi Endpoint",
+ "tabApiEndpoints": "Endpoint API",
+ "apiEndpointsTitle": "Endpoint API",
+ "apiEndpointsDescription": "Endpoint API backend yang dapat digunakan oleh aplikasi dan layanan lain. Bagian ini akan mencantumkan semua REST API yang tersedia beserta dokumentasi dan kemampuan pengujiannya.",
+ "comingSoon": "Segera Hadir",
+ "plannedFeatures": "Fitur yang Direncanakan",
+ "featureRestApi": "Katalog endpoint REST API dengan dokumentasi interaktif",
+ "featureWebhooks": "Konfigurasi webhook dan langganan peristiwa",
+ "featureSwagger": "Pembuatan otomatis spesifikasi OpenAPI / Swagger",
+ "featureAuth": "Pengelolaan kunci API dan cakupan OAuth per endpoint"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "Memuat dasbor MCP...",
+ "activate": "aktifkan",
+ "deactivate": "nonaktifkan",
+ "confirmSwitchCombo": "Konfirmasi untuk {action} kombo \"{combo}\"?",
+ "switchComboFailed": "Gagal mengubah status kombo.",
+ "switchComboSuccess": "Kombo \"{combo}\" diperbarui.",
+ "confirmApplyProfile": "Terapkan profil ketahanan \"{profile}\"?",
+ "applyProfileFailed": "Gagal menerapkan profil ketahanan.",
+ "applyProfileSuccess": "Profil \"{profile}\" diterapkan.",
+ "confirmResetBreakers": "Atur ulang semua pemutus sirkuit?",
+ "resetBreakersFailed": "Gagal mengatur ulang pemutus sirkuit.",
+ "resetBreakersSuccess": "Pemutus sirkuit telah diatur ulang.",
+ "processStatus": "Status proses",
"online": "Online",
"offline": "Offline",
"disableLabel": "Nonaktifkan {label}",
@@ -4233,41 +4237,41 @@
"mcpStep2": "Konfigurasikan klien MCP Anda untuk terhubung melalui transportasi stdio.",
"mcpStep3": "Panggil alat seperti {code1} dan {code2}.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "Waktu aktif sesi",
+ "lastHeartbeat": "Heartbeat terakhir",
+ "activity24h": "Aktivitas (24 jam)",
+ "totalCalls": "Total panggilan",
+ "successRate": "Tingkat keberhasilan",
+ "avgLatency": "Latensi rata-rata",
+ "topTools": "Alat teratas",
+ "noToolCalls24h": "Tidak ada panggilan alat dalam 24 jam terakhir.",
+ "runtimeDetails": "Detail runtime",
+ "transport": "Transportasi",
+ "scopesEnforced": "Cakupan diberlakukan",
+ "yes": "ya",
+ "no": "tidak",
+ "lastCall": "Panggilan terakhir",
+ "heartbeatPath": "Jalur heartbeat",
+ "operationalControls": "Kontrol operasional",
+ "switchCombo": "Alihkan kombo",
+ "inactive": "tidak aktif",
+ "active": "aktif",
+ "activateCombo": "Aktifkan kombo",
+ "deactivateCombo": "Nonaktifkan kombo",
+ "applyResilienceProfile": "Terapkan profil ketahanan",
+ "profileAggressive": "agresif",
+ "profileBalanced": "seimbang",
+ "profileConservative": "konservatif",
+ "applyProfile": "Terapkan profil",
+ "resetCircuitBreakers": "Atur ulang pemutus sirkuit",
+ "resetCircuitBreakersHelp": "Menghapus status pemutus saat ini dan penghitung kegagalan untuk penyedia.",
+ "resetAllBreakers": "Atur ulang semua pemutus",
+ "toolsAndScopes": "Alat dan cakupan",
+ "tableTool": "Alat",
+ "tableScopes": "Cakupan",
+ "tablePhase": "Fase",
"tableAudit": "Audit",
- "auditLog": "Audit log",
+ "auditLog": "Log audit",
"auditSummary": "Panggilan: {total} | halaman {page} dari {totalPages}",
"allTools": "Semua alat",
"allResults": "Semua hasil",
@@ -4280,80 +4284,80 @@
"tableDuration": "Lamanya",
"tableResult": "Hasil",
"tableApiKey": "Kunci API",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "failed": "gagal",
+ "previous": "Sebelumnya",
+ "next": "Berikutnya",
+ "apiKeyId": "ID Kunci API",
+ "offset": "Ofset",
+ "limit": "Batas",
+ "tool": "Alat"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "Memuat dasbor A2A...",
+ "confirmCancelTask": "Batalkan tugas {taskId}?",
+ "cancelTaskFailed": "Gagal membatalkan tugas.",
+ "cancelTaskSuccess": "Tugas {taskId} dibatalkan.",
+ "smokeSendFailed": "Uji asap message/send gagal.",
+ "smokeSendSuccessWithTask": "message/send berhasil (tugas {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "Uji asap message/stream gagal.",
+ "smokeStreamSuccessWithTask": "message/stream berhasil (tugas {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream selesai tanpa ID tugas.",
+ "health": "Kesehatan",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "Total tugas",
+ "activeStreams": "Stream aktif",
+ "lastTask": "Tugas terakhir",
+ "taskStateOverview": "Ringkasan status tugas",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "dikirim",
+ "working": "sedang dikerjakan",
+ "completed": "selesai",
+ "failed": "gagal",
+ "cancelled": "dibatalkan"
},
- "agentCard": "Agent card",
+ "agentCard": "Kartu agen",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "Versi",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "Kemampuan",
+ "agentCardNotAvailable": "Kartu agen tidak tersedia.",
+ "quickValidation": "Validasi cepat",
+ "quickValidationDescription": "Menjalankan panggilan uji asap melalui endpoint live `/a2a`.",
+ "runMessageSend": "Jalankan message/send",
+ "runMessageStream": "Jalankan message/stream",
+ "taskManagement": "Manajemen tugas",
+ "taskSummary": "{total} tugas | halaman {page} dari {totalPages}",
+ "allStates": "semua",
+ "allSkills": "semua keterampilan",
+ "loadingTasks": "Memuat tugas...",
+ "noTasksForFilters": "Tidak ada tugas yang ditemukan untuk filter saat ini.",
+ "tableTask": "Tugas",
+ "tableSkill": "Keahlian",
+ "tableState": "Status",
+ "tableUpdated": "Diperbarui",
+ "tableActions": "Tindakan",
+ "view": "Lihat",
+ "cancel": "Batalkan",
+ "previous": "Sebelumnya",
+ "next": "Berikutnya",
+ "taskDetail": "Detail tugas",
+ "close": "Tutup",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "Peristiwa",
+ "artifacts": "Artefak",
+ "tablePhase": "Fase Tabel",
+ "offset": "Ofset",
+ "limit": "Batas",
+ "skill": "Keahlian",
"rpcEndpoint": "POSTING /a2a",
"rpcMethodSend": "pesan/kirim",
"rpcMethodStream": "pesan/aliran",
"rpcMethodGet": "tugas/dapatkan",
"rpcMethodCancel": "tugas/batal",
"serviceLabel": "A2A",
- "online": "Online",
- "offline": "Offline",
+ "online": "Daring",
+ "offline": "Luring",
"disableLabel": "Nonaktifkan {label}",
"enableLabel": "Aktifkan {label}",
"a2aDisabledTitle": "A2A dinonaktifkan",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Tindakan",
+ "addMemory": "Tambahkan Memori",
+ "allTypes": "Semua Jenis",
"cancel": "Batalkan",
"checkHealth": "Periksa kesehatan",
"checkingHealth": "Memeriksa…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "Cara kerja",
"howWorksContent": "1. Ekstraksi otomatis: di akhir setiap respons, fakta dan episode dideteksi dan disimpan secara otomatis.\n2. Pengambilan: sebelum setiap respons, memori yang paling relevan dicari melalui FTS5 (persis), vektor (semantik), atau RRF hibrida.\n3. Injeksi: memori yang relevan dimasukkan ke dalam konteks asisten untuk meningkatkan kualitas respons.\n4. Manajemen: gunakan halaman ini untuk melihat, mengedit, mengekspor, dan memadatkan memori lama."
},
- "content": "Content",
+ "content": "Konten",
"contentPlaceholder": "Nilai atau konten JSON yang perlu diingat",
- "created": "Created",
- "delete": "Delete",
+ "created": "Dibuat",
+ "delete": "Hapus",
"deleteConfirmDesc": "Tindakan ini tidak dapat dibatalkan. Memori akan dihapus secara permanen.",
"deleteConfirmTitle": "Hapus memori?",
- "description": "View and manage stored memory entries",
+ "description": "Lihat dan kelola entri memori yang tersimpan",
"editMemory": "Edit memori",
"editModal": {
"title": "Edit Memori",
@@ -4429,10 +4433,10 @@
"reindexFailed": "Gagal memulai pengindeksan ulang",
"keywordLabel": "Kata kunci (FTS5)",
"keywordReason": "Pencarian kata kunci selalu tersedia",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Penyematan",
"vectorStoreLabel": "Penyimpanan Vektor",
"qdrantLabel": "Qdrant",
- "rerankLabel": "Rerank",
+ "rerankLabel": "Pemeringkatan Ulang",
"qdrantDisabled": "Dinonaktifkan",
"qdrantOk": "Sehat ({latencyMs}ms)",
"qdrantError": "Kesalahan koneksi",
@@ -4440,20 +4444,20 @@
"configureCta": "Konfigurasi",
"vectorStoreInstallHint": "Untuk mengaktifkan pencarian vektor: npm install sqlite-vec (memerlukan Node.js native, bukan WASM), lalu mulai ulang."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Episodik",
+ "export": "Ekspor",
+ "factual": "Faktual",
"healthUnknown": "Kesehatan tidak diketahui",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "Tingkat Keberhasilan",
+ "import": "Impor",
"importError": "Gagal mengimpor berkas",
"importResult": "{imported} diimpor, {skipped} dilewati",
- "key": "Key",
+ "key": "Kunci",
"keyPlaceholder": "misalnya pengguna.preferensi.tema",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Memori",
"next": "Selanjutnya",
- "noMemories": "No memories found",
+ "noMemories": "Tidak ada memori yang ditemukan",
"pageInfo": "Halaman {page} dari {totalPages} (total {total})",
"pipelineError": "Kesalahan saluran pipa",
"pipelineOk": "Saluran Pipa Oke ({latencyMs}ms)",
@@ -4470,18 +4474,18 @@
"simulate": "Simulasikan",
"resultsTitle": "{count} hasil",
"resolutionTitle": "Resolusi pencarian",
- "resolutionEmbedding": "Embedding",
+ "resolutionEmbedding": "Penyematan",
"resolutionStore": "Penyimpanan vektor",
"resolutionStrategy": "Strategi yang digunakan",
"rerankApplied": "Rerank diterapkan",
- "fallback": "Fallback",
+ "fallback": "Cadangan",
"noResults": "Tidak ada memori yang ditemukan untuk kueri ini.",
"tokensUsed": "token digunakan",
"none": "tidak ada",
"errorFetch": "Gagal mengambil pratinjau"
},
"previous": "Sebelumnya",
- "procedural": "Procedural",
+ "procedural": "Prosedural",
"qdrant": {
"title": "Qdrant (Penyimpanan Vektor Tier 2)",
"description": "Integrasi Qdrant opsional untuk pencarian semantik yang dapat diskalakan",
@@ -4490,11 +4494,11 @@
"banner": "Penyimpanan vektor Tier 2 — alternatif eksternal yang dapat diskalakan untuk sqlite-vec bawaan (Tier 1). Aktifkan hanya jika Anda memiliki kumpulan memori yang sangat besar atau menginginkan memori bersama di berbagai instans; sebagian besar pengguna cukup menggunakan sqlite-vec. Saat diaktifkan, ini menjadi penyimpanan utama dan secara otomatis beralih kembali ke sqlite-vec jika tidak dapat dijangkau.",
"hostHelp": "Docker Lokal: http://localhost:6333 · Qdrant Cloud: URL kluster Anda",
"collectionHelp": "Nama apa saja — OmniRoute membuatnya pada penggunaan pertama",
- "embeddingModelHelp": "Sets the vector dimension automatically on first use. Existing memories are not back-filled, and changing the model after data exists needs a fresh collection.",
+ "embeddingModelHelp": "Menetapkan dimensi vektor secara otomatis saat pertama kali digunakan. Memori yang sudah ada tidak akan dilengkapi secara retroaktif, dan perubahan model setelah data tersedia memerlukan koleksi baru.",
"testConnection": "Uji koneksi",
"testing": "Menguji...",
"statusActive": "Aktif",
- "statusError": "Error",
+ "statusError": "Kesalahan",
"statusDisabled": "Dinonaktifkan",
"healthOk": "Koneksi OK ({latencyMs}ms)",
"healthError": "Kesalahan koneksi",
@@ -4530,8 +4534,8 @@
},
"save": "Simpan",
"saving": "Menyimpan...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Cari memori...",
+ "semantic": "Semantik",
"summarize": {
"title": "Padatkan memori lama",
"noCandidates": "Tidak ada memori yang memenuhi syarat untuk pemadatan (kriteria: berusia >30 hari).",
@@ -4540,11 +4544,11 @@
},
"tabs": {
"memories": "Memori",
- "playground": "Playground",
+ "playground": "Arena Uji Coba",
"engine": "Mesin"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Manajemen Memori",
+ "tokensUsed": "Token yang Digunakan",
"tooltip": {
"totalEntries": "Total memori yang disimpan untuk kunci API ini",
"tokensUsed": "Estimasi total token yang digunakan oleh memori aktif",
@@ -4554,18 +4558,18 @@
"procedural": "Prosedur, alur kerja, dan instruksi yang harus diikuti asisten",
"semantic": "Konsep, preferensi, dan pengetahuan domain"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "Total Entri",
+ "type": "Jenis",
"memoryEnabled": "Memori diaktifkan"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Keterampilan",
+ "description": "Kelola dan pantau keterampilan AI",
+ "skillsTab": "Keterampilan",
+ "executionsTab": "Eksekusi",
"selectSkillToInspect": "Pilih skill di sebelah kiri untuk memeriksa.",
"schemaTab": "Skema",
- "handlerTab": "Handler",
+ "handlerTab": "Penangan",
"inputSchema": "Skema Input",
"outputSchema": "Skema Output",
"handlerCode": "Kode Handler",
@@ -4574,27 +4578,27 @@
"setModeAria": "Atur mode {mode}",
"uninstallSkill": "Copot pemasangan skill",
"sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "loading": "Memuat keterampilan...",
+ "noSkills": "Tidak ada keterampilan yang ditemukan",
+ "noExecutions": "Tidak ada eksekusi yang ditemukan",
+ "enabled": "Diaktifkan",
+ "disabled": "Dinonaktifkan",
"delete": "Hapus",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
+ "version": "Versi",
+ "tableDescription": "Deskripsi",
+ "skill": "Keterampilan",
"status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
+ "duration": "Durasi",
+ "time": "Waktu",
+ "sandboxConfig": "Konfigurasi Sandbox",
+ "cpuLimit": "Batas CPU",
+ "cpuLimitDesc": "Waktu eksekusi maksimum per keterampilan",
+ "memoryLimit": "Batas Memori",
+ "memoryLimitDesc": "Alokasi memori maksimum",
+ "timeout": "Batas Waktu",
+ "timeoutDesc": "Waktu tunggu maksimum untuk respons",
+ "networkAccess": "Akses Jaringan",
+ "networkAccessDesc": "Izinkan permintaan jaringan keluar",
"mode": "Mode",
"q": "Q",
"filterSkillsPlaceholder": "Filter keterampilan berdasarkan nama, deskripsi, atau tag",
@@ -4661,13 +4665,13 @@
"retry": "Coba lagi",
"allOperational": "Semua sistem beroperasi",
"issuesDetected": "Masalah sistem terdeteksi",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute siap",
+ "healthVerdictActionRequired": "Tindakan diperlukan untuk memulihkan operasi penuh",
+ "healthVerdictCoolingDown": "Masa tunggu setelah perubahan terbaru",
+ "healthSubtitle": "Pemeriksaan kesehatan sistem",
+ "advancedDiagnosticsTitle": "Diagnostik lanjutan",
+ "hide": "Sembunyikan",
+ "show": "Tampilkan",
"updatedAt": "Diperbarui {time}",
"latency": "Latensi",
"latencyP50": "hal50",
@@ -4694,9 +4698,9 @@
"providers": "Penyedia",
"configuredProvidersLabel": "Dikonfigurasi di dasbor",
"configuredProvidersHint": "Penyedia dengan kredensial yang disimpan di /dashboard/providers, apa pun status runtimenya.",
- "activeProviders": "{count} active",
+ "activeProviders": "{count} aktif",
"activeProvidersHint": "Penyedia yang dikonfigurasi saat ini diaktifkan untuk permintaan perutean.",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "{count} dipantau",
"monitoredProvidersHint": "Penyedia saat ini dilacak oleh monitor kesehatan pemutus sirkuit.",
"healthyCount": "{count} sehat",
"nodeVersion": "Simpul {version}",
@@ -4717,11 +4721,11 @@
"resetting": "Menyetel ulang...",
"resetAll": "Atur Ulang Semua",
"until": "Sampai {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "Habis",
+ "learnedFromHeaders": "Dipelajari dari header",
+ "remainingOfLimit": "Tersisa {remaining}/{limit}",
+ "throttleStatus": "Pembatasan: {value}",
+ "lastHeaderUpdate": "Pembaruan header: {age}",
"databaseHealth": "Kesehatan Basis Data",
"databaseHealthDescription": "Diagnosis dan perbaiki baris kuota/domain yang usang serta referensi kombo yang rusak.",
"status": "Status",
@@ -4884,28 +4888,28 @@
"previous": "Sebelumnya",
"next": "Selanjutnya",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "Lihat Detail",
+ "eventMetadata": "Metadata Peristiwa",
+ "eventPayload": "Payload Peristiwa",
+ "requestId": "ID Permintaan",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
+ "offset": "Ofset",
+ "limit": "Batas",
"status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
+ "resourceType": "Jenis Sumber Daya",
+ "totalEntries": "Total Entri",
"tab": "Tab",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "Tutup",
+ "runningRequests": "Permintaan Aktif",
+ "runningRequestsDesc": "Tampilan real-time permintaan upstream yang sedang berjalan",
"clearAll": "Hapus Semua",
"confirmClearActiveRequests": "Hapus semua permintaan aktif?",
"model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "provider": "Penyedia",
+ "account": "Akun",
+ "elapsed": "Waktu Berlalu",
"activeStage": "Tahap",
"activeStageUnknown": "Belum dikirim ke upstream",
"activeStageRegistered": "Terdaftar",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "Slot rate limit diperoleh",
"activeStageSendingToProvider": "Mengirim ke upstream",
"activeStageProviderResponseStarted": "Respons upstream dimulai",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "Jumlah",
+ "payloads": "Payload",
+ "viewPayloads": "Lihat",
+ "activeCount": "{count} aktif",
+ "clientPayload": "Payload Permintaan Klien",
+ "upstreamPayload": "Payload Penyedia Upstream",
+ "upstreamNotSentYet": "Belum dikirim ke upstream",
+ "runningRequestDetailMeta": "Akun: {account} — Waktu Berlalu: {elapsed}",
+ "export": "Ekspor",
+ "exporting": "Mengekspor...",
+ "exportFailed": "Ekspor gagal",
"cleanHistoryButton": "Bersihkan riwayat",
"cleanHistoryTitle": "Bersihkan riwayat log?",
"cleanHistoryMessage": "Ini akan menghapus secara permanen semua baris log permintaan, baris detail lama, dan file artefak lokal di bawah DATA_DIR/call_logs. Halaman langsung akan dimuat ulang setelah pembersihan.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "Berhasil membersihkan {deleted} entri log, {deletedArtifacts} artefak, dan {deletedDetailedLogs} baris detail lama.",
"cleanHistoryEmpty": "Riwayat log permintaan tidak ditemukan.",
"cleanHistoryFailed": "Gagal membersihkan riwayat log.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "Rentang Waktu",
+ "lastNHours": "{hours} Terakhir",
+ "defaultRange": "bawaan",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "Gagal mengambil log",
+ "copyFailed": "Gagal menyalin entri log",
+ "copyLogEntry": "Salin entri log",
"filterByLevel": "Filter berdasarkan tingkat log",
"searchPlaceholder": "Cari log…",
"searchAria": "Cari entri log",
@@ -4983,9 +4987,9 @@
"multiProvider": "Multi-Penyedia",
"usageTracking": "Pelacakan Penggunaan",
"securityDesc": "Tetapkan kata sandi untuk melindungi dasbor Anda, atau lewati saja sekarang.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ Tanpa kata sandi, Anda tidak akan dapat menambahkan penyedia selama penyiapan. Anda dapat menambahkannya nanti dari dasbor setelah menetapkan kata sandi.",
"providerDesc": "Hubungkan penyedia AI pertama Anda. Anda dapat menambahkan lebih banyak lagi nanti.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "Anda harus menetapkan kata sandi terlebih dahulu untuk menambahkan penyedia. Silakan kembali ke langkah keamanan dan tetapkan kata sandi, atau tambahkan penyedia nanti dari dasbor.",
"apiKeyRequired": "Kunci API (wajib)",
"customUrlOptional": "URL khusus (opsional)",
"testDesc": "Mari verifikasi koneksi penyedia Anda berfungsi.",
@@ -5061,7 +5065,7 @@
"importFromFileSelectHint": "{count} dari {total} dipilih",
"importFromFileColProvider": "Penyedia",
"importFromFileColName": "Nama",
- "importFromFileColBaseUrl": "Base URL",
+ "importFromFileColBaseUrl": "URL Dasar",
"importFromFileErrorLine": "Baris {line}: {reason}",
"importErrorMissingProvider": "penyedia tidak ada",
"importErrorMissingName": "nama tidak ada",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "Mengimpor…",
"importFromFileImport": "Impor {count} penyedia",
"importFromFileResult": "Berhasil mengimpor {success} penyedia ({failed} gagal)",
+ "importFromFileDownloadTemplate": "Unduh templat CSV",
+ "importFromFileMoreErrors": "+{count} lainnya",
+ "importFromFileSchemaHint": "Kolom CSV bersifat posisional: provider, name, apiKey, baseUrl (opsional), priority (opsional). Kolom provider harus berupa id penyedia terkelola yang sudah ada atau id node kompatibel OpenAI/Anthropic yang sudah terdaftar — impor ini tidak membuat node endpoint baru.",
"adaptaTutorial": {
"title": "Cara menghubungkan Adapta Web",
"introPrefix": "Adapta mengautentikasi melalui Clerk. Token",
@@ -5095,7 +5102,7 @@
"step5DescPrefix": "Klik",
"step5DescMiddle": "tempel nilai",
"step5DescSuffix": "ke dalam kolom API Key, lalu simpan. OmniRoute akan memperbarui sesi secara otomatis.",
- "tipLabel": "Tip:",
+ "tipLabel": "Kiat:",
"tipPrefix": "Cookie",
"tipSuffix": "berumur panjang, biasanya selama berbulan-bulan. Anda hanya perlu memperbaruinya jika Anda keluar atau Adapta membatalkan sesi."
},
@@ -5161,8 +5168,8 @@
"modelsHiddenCount": "{count} tersembunyi",
"warningCount": "{count} Peringatan",
"noConnections": "Tidak ada koneksi",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "Kedaluwarsa",
+ "expiringSoonBadge": "Segera Kedaluwarsa",
"freeTier": "Tingkat Gratis",
"freeTierAvailable": "Tersedia tingkat gratis",
"hasFreeTooltip": "Paket gratis tersedia",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "Penyedia ini sudah tidak digunakan lagi",
"riskNotice": {
"title": "Sebelum melanjutkan",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Catatan penggunaan",
"tooltip": "Penyedia dengan catatan penggunaan — klik untuk detail",
"oauth": "Penyedia ini menggunakan sesi/OAuth produk resmi Anda, yang tidak diizinkan untuk penggunaan proxy/router. Kami tidak menyarankan penggunaan agen otonom yang intensif (gaya OpenCloud, alur multi-langkah yang panjang, batch besar) — upstream dapat bereaksi dengan membatasi atau memblokir akun. Gunakan dengan risiko Anda sendiri.",
"webCookie": "Penyedia ini mengautentikasi melalui cookie sesi web Anda. Layanan upstream dapat membatalkan sesi kapan saja, mengharuskan Anda untuk masuk kembali. Tidak disarankan untuk operasi tanpa pengawasan yang lama. Gunakan dengan risiko Anda sendiri.",
@@ -5184,9 +5191,9 @@
"cancel": "Batal"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} koneksi ditandai — hingga {maxFailures} kegagalan terbaru{lastFailureSuffix}. Klik untuk melihat kesehatan koneksi.",
+ "lastFailureSuffix": "(kegagalan terakhir {time})",
+ "ariaLabel": "Lihat detail kesehatan koneksi, {count} peringatan"
},
"disabled": "Dengan disabilitas",
"enableProvider": "Aktifkan penyedia",
@@ -5221,7 +5228,7 @@
"failedCreate": "Gagal membuat penyedia",
"errorOccurred": "Terjadi kesalahan. Silakan coba lagi.",
"modelStatus": "Status Model",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "Hanya yang dikonfigurasi",
"allModelsOperational": "Semua model beroperasi",
"modelsWithIssues": "{count} model yang bermasalah",
"allModelsNormal": "Semua model merespons secara normal.",
@@ -5232,7 +5239,7 @@
"clearing": "Membersihkan...",
"until": "Sampai {time}",
"providerTestFailed": "Tes penyedia gagal",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "Pengujian penyedia kehabisan waktu — terlalu banyak koneksi untuk diuji sekaligus",
"modeTest": "{mode} Tes",
"passedCount": "{count} lulus",
"failedCount": "{count} gagal",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "URL Ikon",
"iconUrlHint": "Opsional. URL gambar yang ditampilkan sebagai ikon penyedia ini.",
"iconUrlInvalid": "URL ikon tidak valid. Gunakan URL http(s):// atau data:image/*;base64.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Zona waktu pengaturan ulang kuota harian",
+ "dailyQuotaResetTimezoneHint": "Zona waktu IANA opsional yang digunakan saat upstream tidak menyertakan X-RateLimit-Reset. Biarkan kosong untuk mempertahankan masa tunggu singkat.",
+ "dailyQuotaResetHourLabel": "Jam pengaturan ulang kuota harian",
+ "dailyQuotaResetHourHint": "Jam lokal 0-23 dalam zona waktu di atas. Kosong berarti tidak ada jam tingkat node.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "Penyedia tidak ditemukan",
"deleteConnectionConfirm": "Hapus koneksi ini?",
"deleteConnectionConfirmNamed": "Apakah Anda yakin ingin menghapus {name}? Tindakan ini tidak dapat dibatalkan.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Hapus yang Dipilih ({count})",
+ "batchDeleteConfirm": "Hapus {count} koneksi? Tindakan ini tidak dapat dibatalkan.",
+ "batchDeleteSuccess": "{count} koneksi dihapus",
"batchActivateSelected": "Aktifkan",
"batchDeactivateSelected": "Nonaktifkan",
"batchRetestSelected": "Uji ulang",
@@ -5288,7 +5295,7 @@
"filterError": "Kesalahan",
"filterBanned": "Diblokir",
"filterCreditsExhausted": "Kredit habis",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Cari akun…",
"noFilteredConnections": "Tidak ada koneksi yang cocok dengan filter saat ini.",
"failedSetAlias": "Gagal menyetel alias",
"setAliasSuccess": "Alias {alias} ditetapkan",
@@ -5301,14 +5308,14 @@
"openaiCompatibleDetails": "Detail Kompatibel OpenAI",
"messagesApi": "API Pesan",
"responsesApi": "API Respons",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Penyematan",
+ "audioTranscriptions": "Transkripsi Audio",
+ "audioSpeech": "Ucapan Audio",
+ "imagesGenerations": "Pembuatan Gambar",
"chatCompletions": "Penyelesaian Obrolan",
"importingModels": "Mengimpor...",
"importFromModels": "Impor dari /models",
- "modelsImported": "{count} models imported",
+ "modelsImported": "{count} model diimpor",
"allModelsAlreadyImported": "Semua model sudah diimpor",
"noNewModelsToImport": "Tidak ada model baru untuk diimpor — semua model sudah ada di registri atau daftar model kustom",
"skippingExistingModels": "Melewatkan {count} model yang sudah ada",
@@ -5346,13 +5353,13 @@
"importFailed": "Impor gagal",
"noNewModelsAdded": "Tidak ada model baru yang ditambahkan.",
"adding": "Menambahkan...",
- "close": "Close",
+ "close": "Tutup",
"importingModelsTitle": "Mengimpor Model",
"copyModel": "Salin modelnya",
"filterModels": "Filter model…",
"testAllRateLimited": "Batas laju tercapai, dihentikan lebih awal",
"hideFailedAuto": "Sembunyikan otomatis model yang gagal",
- "selectAllModels": "Select all",
+ "selectAllModels": "Pilih semua",
"hideAllModels": "Sembunyikan semua",
"modelsActive": "aktif",
"showModel": "Tampilkan model",
@@ -5382,8 +5389,8 @@
"bulkAddFormatHint": "Satu kunci per baris. Format: nama|apiKey atau hanya apiKey (dinamai otomatis berdasarkan indeks).",
"bulkValidateKeys": "Validasi setiap kunci sebelum menyimpan (lebih lambat)",
"bulkAddAllKeys": "Tambahkan Semua Kunci",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {# kunci ditambahkan} other {# kunci ditambahkan}}",
+ "bulkFailedCount": "{count, plural, one {# gagal} other {# gagal}}",
"optional": "Opsional",
"anthropicCompatibleName": "Kompatibel Antropis",
"openaiCompatibleName": "Kompatibel dengan OpenAI",
@@ -5400,7 +5407,7 @@
"unexpectedErrorOccurred": "Terjadi kesalahan yang tidak terduga",
"getApiKey": "Dapatkan kunci API",
"getApiKeyDescription": "Daftar atau mendaftar untuk kunci API",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# koneksi} other {# koneksi}}",
"messagesPath": "pesan",
"responsesPath": "tanggapan",
"chatCompletionsPath": "obrolan/penyelesaian",
@@ -5415,17 +5422,17 @@
"configured": "dikonfigurasi",
"providerProxyConfigureHint": "Konfigurasikan proxy untuk semua koneksi penyedia ini",
"providerProxy": "Proksi Penyedia",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": "Perbaiki env",
+ "repairEnvWorking": "Memperbaiki...",
+ "repairEnvHint": "Pulihkan nilai default OAuth yang hilang ke .env tanpa menimpa nilai yang ada.",
+ "repairEnvSuccess": "Nilai default OAuth dipulihkan",
+ "repairEnvFailed": "Gagal memperbaiki .env",
"noConnectionsYet": "Belum ada koneksi",
"addFirstConnectionHint": "Tambahkan koneksi pertama Anda untuk memulai",
"addConnection": "Tambahkan Koneksi",
"availableModels": "Model yang Tersedia",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "Model bawaan",
+ "builtInModelsHint": "Model registri untuk penyedia ini. Gunakan ikon pensil untuk mengatur opsi kompatibilitas.",
"pageAutoRefresh": "Halaman akan disegarkan secara otomatis...",
"statusDisabled": "dengan disabilitas",
"statusConnected": "terhubung",
@@ -5471,24 +5478,24 @@
"reauthenticateConnection": "Otentikasi ulang koneksi ini",
"proxyConfig": "Konfigurasi proxy",
"aliasExistsAlert": "Alias \"{alias}\" sudah ada. Silakan gunakan model lain atau edit alias yang ada.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "nama alias",
+ "clickToSetAlias": "Klik untuk mengatur alias",
+ "clickToEditAlias": "Alias: {alias} (klik untuk mengedit)",
"openRouterAnyModelHint": "OpenRouter mendukung model apa pun. Tambahkan model dan buat alias untuk akses cepat.",
"modelIdFromOpenRouter": "ID Model (dari OpenRouter)",
"openRouterModelPlaceholder": "antropik/claude-3-opus",
"customModels": "Model Khusus",
"customModelsHint": "Tambahkan ID model yang tidak ada dalam daftar default. Ini akan tersedia untuk perutean.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "Normalkan ID panggilan alat menjadi 9 karakter (misalnya Mistral)",
+ "preserveDeveloperRoleLabel": "Pertahankan peran developer OpenAI Responses (jangan petakan ke system)",
+ "compatAdjustmentsTitle": "Kompatibilitas",
+ "compatButtonLabel": "Kompatibilitas",
+ "compatToolIdShort": "ID Alat 9",
+ "compatDeveloperShort": "Peran developer",
+ "compatDoNotPreserveDeveloper": "Jangan pertahankan peran developer",
+ "compatBadgeNoPreserve": "Jangan pertahankan",
+ "compatProtocolLabel": "Protokol permintaan klien",
+ "compatProtocolHint": "Opsi ini berlaku saat OmniRoute mendeteksi bentuk permintaan ini (OpenAI Chat, Responses API, atau Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,25 +5537,25 @@
"interceptFetchHint": "Tulis ulang panggilan alat web_fetch bawaan ke /v1/web/fetch milik OmniRoute.",
"interceptionLoadError": "Gagal memuat pengaturan intersepsi: {error}",
"interceptionSaveError": "Gagal menyimpan pengaturan intersepsi: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "ccAliasSectionTitle": "Tampilkan di Claude Code (claude/…)",
+ "ccAliasSectionHint": "Tampilkan model penyedia ini dengan ID cermin claude/<provider>/<model> agar penemuan model gateway Claude Code dapat mencantumkannya. Dinonaktifkan secara default — mengaktifkannya akan menggandakan entri katalog untuk semua klien.",
+ "ccAliasProviderLevelLabel": "Default penyedia",
+ "ccAliasModelOverridesLabel": "Penimpaan per model",
+ "ccAliasModelOverrideAriaLabel": "Penimpaan untuk {modelId}",
+ "ccAliasStateInherit": "Warisi",
+ "ccAliasStateOn": "Aktif",
+ "ccAliasStateOff": "Nonaktif",
+ "ccAliasAddModelPlaceholder": "ID model (mis. gpt-4o)",
+ "ccAliasAddModelButton": "Tambahkan penggantian",
+ "ccAliasLoadError": "Gagal memuat pengaturan alias penemuan: {error}",
+ "ccAliasSaveError": "Gagal menyimpan pengaturan alias penemuan: {error}",
+ "compatUpstreamHeadersLabel": "Header upstream tambahan",
+ "compatUpstreamHeadersHint": "Pengaturan berhak akses tinggi — memiliki tingkat kepercayaan yang sama seperti mengedit kredensial API penyedia; hanya admin tepercaya yang boleh menggunakannya. Digabungkan setelah OmniRoute menambahkan autentikasi dari kunci API penyedia. Jika header kustom menggunakan nama yang sama dengan header yang sudah ada (mis. Authorization), nilai Anda akan sepenuhnya menggantikan header yang dibuat secara otomatis (termasuk token Bearer) — upstream hanya melihat apa yang Anda masukkan, bukan kunci dari pengaturan. Kesalahan konfigurasi dapat menyebabkan 401 atau autentikasi upstream gagal. Satu baris per header (mis. Authentication tambahan untuk beberapa gateway). Arahkan kursor atau fokuskan nilai untuk melihat pratinjau. Disimpan saat fokus berpindah, mengeklik di luar, atau menutup panel ini.",
+ "compatUpstreamHeaderName": "Nama header",
+ "compatUpstreamHeaderValue": "Nilai",
+ "compatUpstreamAddRow": "Tambahkan header",
+ "compatUpstreamRemoveRow": "Hapus baris",
+ "compatBadgeUpstreamHeaders": "Header",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
"importFreeModelsOnlyLabel": "Impor hanya model gratis",
@@ -5588,26 +5595,26 @@
"email": "Surel",
"healthCheckMinutes": "Pemeriksaan Kesehatan (menit)",
"healthCheckHint": "Interval penyegaran token proaktif. 0 = dinonaktifkan.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "deselectAllModels": "Batalkan semua pilihan",
+ "modelsActiveCount": "{active}/{total} aktif",
+ "noModelsMatch": "Tidak ada model yang cocok dengan \"{filter}\"",
+ "groupLabel": "Lingkungan",
+ "groupPlaceholder": "mis. eKaizen, Pribadi",
"failedTestConnection": "Gagal menguji koneksi",
"failed": "Gagal",
"leaveBlankKeepCurrentApiKey": "Biarkan kosong untuk mempertahankan kunci API saat ini.",
"editCompatibleTitle": "Sunting {type} Kompatibel",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "URL root API Anda yang kompatibel dengan {type}. Gunakan Pengaturan Lanjutan untuk jalur endpoint kustom.",
"apiKeyForCheck": "Kunci API (untuk Pemeriksaan)",
"testModelIdLabel": "ID Model (opsional)",
"testModelIdPlaceholder": "mis. my-model-id",
"testModelIdHint": "Jika penyedia tidak memiliki titik akhir /models, masukkan ID model untuk memvalidasi melalui /chat/completions sebagai gantinya.",
"compatibleProdPlaceholder": "{type} Kompatibel (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "Token berhasil diperbarui",
+ "tokenRefreshFailed": "Gagal memperbarui token",
"cursorSessionUnchanged": "Sesi sudah saat ini",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Terapkan autentikasi",
+ "exportCodexAuthFile": "Ekspor autentikasi",
"applyClaudeAuthLocal": "Terapkan autentikasi",
"exportClaudeAuthFile": "Ekspor autentikasi",
"importClaudeAuth": "Impor autentikasi",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} gagal",
"codexImportBulkZipExtracting": "Mengekstrak ZIP…",
"codexImportBulkZipError": "Gagal mengekstrak ZIP",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Pengaturan Lanjutan",
+ "chatPathLabel": "Jalur Endpoint Chat",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Jalur chat kustom untuk penyedia dengan API nonstandar (mis. /v4/chat/completions)",
+ "modelsPathLabel": "Jalur Endpoint Model",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Jalur model kustom untuk validasi (mis. /v4/models)",
"clientIdentityLabel": "Identitas Klien",
"clientIdentityHint": "Opsional. Menambahkan header sidik jari klien (mis. User-Agent) yang cocok dengan CLI yang dikenal untuk gateway kompatibel yang mengharapkannya.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "Dinonaktifkan (Manual)",
+ "statusBanned": "Diblokir / Pelanggaran Sandbox",
+ "statusCreditsExhausted": "Saldo Tidak Cukup / Kuota Habis",
+ "showEmails": "Tampilkan semua email",
+ "hideEmails": "Sembunyikan semua email",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Tambahkan kunci API lain atau tempel beberapa kunci",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "Gateway Agregator",
"enterpriseCloud": "Perusahaan & Awan",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "Label Format API",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
+ "apiRegionChina": "Wilayah API Tiongkok",
+ "apiRegionHint": "Petunjuk Wilayah API",
+ "apiRegionInternational": "Wilayah API Internasional",
+ "apiRegionLabel": "Label Wilayah API",
+ "apikey": "Kunci API",
"audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "audioProvidersHeading": "Penyedia Audio",
"cloudAgentProviders": "Penyedia Agen Cloud",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Audio",
+ "azureOpenAiBaseUrlHint": "Petunjuk URL Dasar Azure OpenAI",
+ "bailianBaseUrlHint": "Petunjuk URL Dasar Bailian",
+ "claudeWebCookieHint": "Buka claude.ai → DevTools → Application → Cookies → claude.ai, lalu salin nilai 'sessionKey'. Diperlukan juga cf_clearance, __cf_bm, dan _cfuvid untuk Cloudflare.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Petunjuk Cookie Blackbox Web",
+ "blackboxWebCookiePlaceholder": "Placeholder Cookie Blackbox Web",
"t3ChatWebCookieHint": "Buka t3.chat → DevTools → Aplikasi → Penyimpanan Lokal → https://t3.chat, salin 'convex-session-id'. Lalu buka DevTools → Jaringan, salin header Cookie lengkap dari permintaan obrolan apa pun. Tempelkan kedua nilai pada kolom di bawah.",
"t3ChatWebCookiePlaceholder": "id-sesi-cembung=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Petunjuk Cookie Grok Web",
"blockClaudeExtraUsageDescription": "Saat diaktifkan, OmniRoute menandai koneksi Claude ini tidak tersedia segera setelah API penggunaan melaporkan penggunaan ekstra yang antre, sehingga fallback beralih ke koneksi lain alih-alih melanjutkan dengan penagihan ekstra bayar sesuai penggunaan.",
"blockClaudeExtraUsageLabel": "Blokir penggunaan Claude yang berlebihan",
"disableCoolingDescription": "Lewati cooldown transien agar koneksi ini tetap memenuhi syarat bahkan setelah kesalahan yang dapat dipulihkan (status terminal seperti diblokir/kedaluwarsa tetap berlaku).",
"disableCoolingLabel": "Nonaktifkan cooldown untuk koneksi ini",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 kunci ditambahkan} other {# kunci ditambahkan}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplikat dilewati} other {# duplikat dilewati}}",
+ "bulkPasteHint": "Tempelkan satu kunci API per baris. Baris kosong akan diabaikan dan kunci duplikat akan dilewati.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Menambahkan header beta redact-thinking untuk upstream CC Compatible yang memerlukan aliran pemikiran Claude tersembunyi.",
+ "ccCompatibleRedactThinkingLabel": "Aktifkan beta redact-thinking",
+ "ccCompatibleSummarizeThinkingDescription": "Menambahkan `display: \"summarized\"` ke permintaan pemikiran CC Compatible agar model Claude yang didukung dapat mengalirkan delta pemikiran yang terlihat.",
+ "ccCompatibleSummarizeThinkingLabel": "Aktifkan tampilan ringkasan pemikiran",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,16 +5811,16 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "Gunakan tingkat layanan prioritas untuk permintaan Codex jika tersedia.",
+ "codexFastServiceTierLabel": "Tingkat layanan cepat Codex",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
+ "compatUpstreamHeaderNamePlaceholder": "Placeholder Nama Header Upstream Kompatibel",
+ "compatUpstreamHeaderValuePlaceholder": "Placeholder Nilai Header Upstream Kompatibel",
+ "compatible": "Kompatibel",
+ "configuredCount": "Jumlah yang Dikonfigurasi",
+ "consoleApiKeyOracleHint": "Petunjuk Kunci API Konsol Oracle",
+ "consoleApiKeyOracleLabel": "Label Kunci API Konsol Oracle",
+ "consoleApiKeyOraclePlaceholder": "Placeholder Kunci API Konsol Oracle",
"newApiUserIdLabel": "ID Pengguna New-API",
"newApiUserIdPlaceholder": "mis. 12345",
"newApiUserIdHint": "Nilai header New-Api-User AgentRouter, digunakan bersama kunci API konsol untuk mengambil saldo kuota.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "Aktifkan deteksi saldo untuk node yang kompatibel dengan New-API / One-API / Sub2API aggregator",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Petunjuk Agen Pengguna Khusus",
+ "customUserAgentLabel": "Label Agen Pengguna Khusus",
+ "databricksBaseUrlHint": "Petunjuk URL Dasar Databricks",
+ "defaultThinkingStrengthHint": "Digunakan saat permintaan tidak menentukan tingkat upaya penalaran.",
+ "defaultThinkingStrengthLabel": "Kekuatan pemikiran default",
+ "deleteAllExtraApiKeys": "Hapus semua",
+ "excludedModelsHint": "Petunjuk Model yang Dikecualikan",
+ "excludedModelsLabel": "Label Model yang Dikecualikan",
+ "excludedModelsPlaceholder": "Placeholder Model yang Dikecualikan",
+ "expirationBannerExpired": "Banner Kedaluwarsa",
+ "expirationBannerExpiredDesc": "Deskripsi Banner Kedaluwarsa",
+ "expirationBannerExpiringSoon": "Banner Kedaluwarsa Segera",
+ "expirationBannerExpiringSoonDesc": "Deskripsi Banner Kedaluwarsa Segera",
+ "extraApiKeyMasked": "Kunci {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Petunjuk Kunci API Tambahan",
+ "extraApiKeysLabel": "Kunci API Tambahan",
+ "apiKeyHealthLabel": "Status Kunci API",
+ "apiKeyStatusActive": "Aktif",
+ "apiKeyStatusWarning": "Peringatan ({count} kegagalan)",
+ "apiKeyStatusInvalid": "Tidak Valid",
+ "primaryKey": "Kunci Utama",
+ "apiKeyInvalidAlert": "{count} kunci API ditandai tidak valid karena kegagalan autentikasi pada koneksi: {connections}. Kunci tersebut akan dilewati dalam rotasi. Klik untuk meninjau.",
+ "apiKeyInvalidAlertTitle": "Peringatan Status Kunci API",
+ "apiKeyWarningAlert": "{count} kunci API berstatus peringatan karena tingkat kegagalan yang tinggi pada koneksi: {connections}. Tinjau untuk mencegah masalah rotasi.",
+ "apiKeyWarningAlertTitle": "Peringatan Kunci API",
+ "googlePseInfo": "Info Google PSE",
"antigravityProjectIdHint": "Penggantian opsional untuk permintaan Antigravity Cloud Code. Biarkan kosong untuk menggunakan proyek yang ditemukan selama Google OAuth.",
"antigravityClientProfileLabel": "Profil klien",
"antigravityClientProfileHint": "Pilih identitas klien Antigravity mana yang disajikan OmniRoute ke API.",
@@ -5861,21 +5868,21 @@
"tierFast": "Cepat",
"antigravityProjectIdLabel": "ID Proyek Google Cloud",
"antigravityProjectIdPlaceholder": "id-proyek-gcp-saya",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Placeholder Cookie Web Grok",
+ "herokuBaseUrlHint": "Petunjuk URL Dasar Heroku",
+ "hideEmail": "Sembunyikan Email",
+ "imageProviders": "Penyedia Gambar",
"videoProviders": "Pembuatan Video",
"embeddingRerankProviders": "Penyematan & Pemeringkatan Ulang",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "Gambar",
+ "llmProviders": "Penyedia LLM",
+ "localProviderApiKeyOptionalHint": "Petunjuk Kunci API Opsional untuk Penyedia Lokal",
+ "localProviderBaseUrlHint": "Petunjuk URL Dasar Penyedia Lokal",
+ "localProviders": "Penyedia Lokal",
+ "maxConcurrentWholeNumberError": "Jumlah Maksimum Proses Bersamaan Harus Berupa Bilangan Bulat",
"m365TierLabel": "Tingkat Copilot",
"m365TierHint": "Pilih antarmuka Microsoft 365 Copilot mana yang digunakan koneksi ini. Individual adalah BizChat konsumen default; Pendidikan dan Perusahaan (kerja) memilih antarmuka penyewa mereka.",
- "m365TierIndividualOption": "Individual (default)",
+ "m365TierIndividualOption": "Individu (default)",
"m365TierEduOption": "Pendidikan",
"m365TierEnterpriseOption": "Perusahaan / Kerja",
"tierOverrideLabel": "Override tingkat",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "Murah",
"tierOverridePremium": "Premium",
"tierOverrideHelpText": "Sematkan penyedia ini ke tingkat perutean alih-alih membiarkan OmniRoute menyimpulkannya dari harga model.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Petunjuk Cookie Web Muse Spark",
+ "museSparkWebCookiePlaceholder": "Placeholder Cookie Web Muse Spark",
+ "oauth": "OAuth",
+ "openCliTools": "Buka Alat CLI",
+ "openSettings": "Buka Pengaturan",
+ "openaiResponsesStoreDescription": "Izinkan permintaan Responses API yang kompatibel untuk mempertahankan status respons yang tersimpan.",
+ "openaiResponsesStoreLabel": "Penyimpanan OpenAI Responses",
+ "perplexitySearchSharedKeyInfo": "Info Kunci Bersama Perplexity Search",
+ "perplexityWebCookieHint": "Petunjuk Cookie Web Perplexity",
+ "perplexityWebCookiePlaceholder": "Placeholder Cookie Web Perplexity",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Override Batas Tarif",
"rateLimitOverridesMaxConcurrentHint": "Override permintaan bersamaan maksimum untuk koneksi ini. Menimpa batas tingkat akun.",
"rateLimitOverridesMaxConcurrentLabel": "Maks Bersamaan (Batar Tarif)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Waktu maksimum (ms) permintaan dapat menunggu slot batas laju sebelum gagal. Menggantikan pengaturan Ketahanan global hanya untuk koneksi ini.",
+ "rateLimitOverridesMaxWaitMsLabel": "Waktu Tunggu Antrean Maksimum (ms)",
"rateLimitOverridesMinTimeHint": "Waktu minimum (ms) antar permintaan. Menimpa penundaan pembatas tarif default.",
"rateLimitOverridesMinTimeLabel": "Interval Min (ms)",
"rateLimitOverridesRpdHint": "Permintaan maksimum per hari untuk koneksi ini. Mengganti default penyedia.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (Token/hari)",
"rateLimitOverridesTpmHint": "Token maksimum per menit untuk koneksi ini. Menimpa default penyedia.",
"rateLimitOverridesTpmLabel": "TPM (Token/menit)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "refreshOauthTokenTitle": "Judul Penyegaran Token Oauth",
+ "regionHint": "Petunjuk Wilayah",
+ "regionLabel": "Label Wilayah",
+ "removeThisKey": "Hapus Kunci Ini",
+ "routingTagsHint": "Petunjuk Tag Perutean",
+ "routingTagsLabel": "Label Tag Perutean",
+ "routingTagsPlaceholder": "Placeholder Tag Perutean",
+ "search": "Cari",
+ "searchEngineIdHint": "Petunjuk ID Mesin Pencari",
+ "searchEngineIdLabel": "Label ID Mesin Pencari",
+ "searchEngineIdRequired": "ID Mesin Pencari Wajib Diisi",
+ "searchProvider": "Penyedia Pencarian",
+ "searchProviderDesc": "Deskripsi Penyedia Pencarian",
"searchProviders": "Penyedia pencarian...",
"searchByModel": "Cari berdasarkan model…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Judul Penyedia Pencarian",
+ "searxngBaseUrlHint": "Petunjuk URL Dasar Searxng",
+ "searxngInfo": "Info Searxng",
+ "sessionCookieLabel": "Label Cookie Sesi",
+ "showEmail": "Tampilkan Email",
+ "snowflakeBaseUrlHint": "Petunjuk URL Dasar Snowflake",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Petunjuk Grup Tag",
+ "tagGroupLabel": "Label Grup Tag",
+ "tagGroupPlaceholder": "Placeholder Grup Tag",
+ "testModel": "Uji Model",
+ "testingModel": "Menguji Model",
"modelTestQuotaTooltip": "Kuota habis — akan direset besok atau perlu pengisian ulang",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Lencana Token Kedaluwarsa",
+ "tokenExpiredTitle": "Judul Token Kedaluwarsa",
+ "tokenExpiresSoonTitle": "Judul Token Akan Segera Kedaluwarsa",
+ "tokenShort": "Token Singkat",
+ "totalKeysRotating": "{count, plural, one {1 kunci sedang dirotasi} other {# kunci sedang dirotasi}}",
+ "unhideModel": "Tampilkan Kembali Model",
+ "upstreamProxyProviders": "Penyedia Proksi Hulu",
"validationModelIdHint": "Model yang digunakan untuk memverifikasi kunci API. Biarkan kosong untuk menggunakan model pertama yang tersedia dari penyedia.",
"validationModelIdLabel": "Model validasi",
"validationModelIdPlaceholder": "mis. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Tempel JSON Service Account Anda ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) atau OAuth access_token",
+ "webCookieProviders": "Penyedia Cookie Web",
+ "weeklyShort": "Mingguan Singkat",
+ "xiaomiMimoBaseUrlHint": "Petunjuk URL Dasar Xiaomi Mimo",
"globalCodexServiceMode": "Mode layanan Codex Global",
"connect": "Hubungkan",
"manualApiKey": "Kunci API manual",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Temukan kredensial penyedia AI (OpenAI, Anthropic, Google, Mistral, xAI) yang disimpan oleh Zed IDE di keychain OS dan impor sebagai koneksi. Zed IDE harus terinstal di mesin ini.",
"zedImportButton": "Impor dari Zed",
"zedImportFailed": "Impor Zed gagal",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Petunjuk Impor Zed",
+ "zedImportNetworkError": "Kesalahan Jaringan Impor Zed",
+ "zedImportNone": "Tidak Ada Impor Zed",
"zedImportSuccess": "Diimpor {credentials} kredensial dari Zed untuk {providers} penyedia",
"zedImporting": "Mengimpor…",
"zedNoCredentials": "Tidak ada kredensial Zed yang ditemukan di keychain",
@@ -6028,7 +6035,7 @@
"claudeImportEntryName": "entri {number}",
"claudeImportParseError": "kesalahan penguraian",
"claudeImportNoValidEntries": "Tidak ada entri valid untuk diimpor",
- "webFetch": "Web Fetch",
+ "webFetch": "Pengambilan Web",
"webFetchTooltip": "Penyedia yang mengekstrak konten dari URL web (HTML → Markdown, scrape, screenshot)",
"webFetchProvidersHeading": "Penyedia Web Fetch",
"compatibleProvidersDesc": "Titik akhir yang kompatibel dengan OpenAI dan Anthropic yang Anda hos atau konfigurasikan. Arahkan SDK OpenAI apa pun ke URL Anda sendiri dan rute permintaan ke sini.",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "Proksi API berdiskon untuk 40+ model termasuk GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5. Dapatkan kunci API Anda di https://freeaiapikey.com/dashboard. URL Dasar: https://freeaiapikey.com/v1.",
"freemodel-dev": "Dapatkan kredit API gratis senilai $300 di https://freemodel.dev — tidak memerlukan informasi pembayaran. Endpoint yang kompatibel dengan OpenAI. Model GPT-5.4 dan GPT-5.5 tersedia.",
"friendliai": "Tingkat gratis untuk inferensi serverless — tidak memerlukan kartu kredit",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Tingkat gratis melalui Google AI Studio; kuota per model tidak lagi dipublikasikan (periksa halaman kuota di AI Studio) — tanpa kartu kredit.",
"gigachat": "Hubungkan GigaChat (Sber) dengan kunci API.",
"gitlab": "Token akses pribadi GitLab untuk API Code Suggestions publik. Konfigurasikan URL dasar yang di-host sendiri saat tidak menggunakan gitlab.com.",
"gitlawb-gmi": "Dapatkan kunci API Anda dari dasbor Gitlawb Opengateway.",
@@ -6180,7 +6187,7 @@
"glm-cn": "Hubungkan GLM Coding (China) dengan kunci API.",
"glmt": "Profil GLM prasetel dengan anggaran token yang lebih tinggi, proses berpikir diaktifkan, dan batas waktu yang lebih lama.",
"getgoapi": "Hubungkan GoAPI dengan kunci API.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Paket gratis: batas per model (200 ribu token/hari per model chat; lihat console.groq.com/docs/rate-limits untuk RPM/RPD) — tidak ada metode pembayaran yang tersimpan.",
"haiper": "Dapatkan kunci API di haiper.ai/haiper-api",
"heroku": "Hubungkan Heroku AI dengan kunci API.",
"hcnsec": "Dapatkan kunci API di api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "Buat kunci API di https://app.requesty.ai, lalu tempel di sini sebagai token Bearer. Endpoint yang kompatibel dengan OpenAI di https://router.requesty.ai/v1, dengan katalog /v1/models langsung.",
"runwayml": "Pembuatan video Runway berbasis tugas. OmniRoute mengirimkan pekerjaan text-to-video atau image-to-video, melakukan polling pada /v1/tasks/[id], dan menormalisasi output video yang selesai kembali ke respons /v1/videos/generations yang mirip OpenAI.",
"sambanova": "Kredit gratis $5 saat pendaftaran (validitas 30 hari), tidak memerlukan kartu kredit",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Buat kunci API di https://seekai.cc, lalu tempelkan di sini sebagai token Bearer. URL dasar yang kompatibel dengan OpenAI: https://seekai.cc/v1.",
"sap": "Penemuan model menggunakan /v2/lm/scenarios/foundation-models/models pada AI_API_URL. Permintaan chat menggunakan deploymentUrl/chat/completions dan memerlukan AI-Resource-Group.",
"sarvam": "Sarvam AI kompatibel dengan OpenAI di /v1. OmniRoute memeriksa /v1/models dan mengarahkan lalu lintas obrolan ke /v1/chat/completions. Model disesuaikan untuk bahasa-bahasa India.",
"scaleway": "1 juta token gratis untuk akun baru — patuh EU/GDPR (Paris), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "Hubungkan Claude Code dengan alur OAuth yang ada.",
"cline": "Hubungkan Cline dengan alur OAuth yang ada.",
"cursor": "Hubungkan Cursor IDE dengan alur OAuth yang ada.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Hubungkan Cursor dengan kunci API pengguna (crsr_...) dari cursor.com/dashboard/api; sesi IDE tidak diperlukan.",
"github": "Hubungkan GitHub Copilot dengan alur OAuth yang ada.",
"gitlab-duo": "Aplikasi OAuth dengan cakupan ai_features + read_user. Konfigurasikan GITLAB_DUO_OAUTH_CLIENT_ID dan secara opsional GITLAB_DUO_OAUTH_CLIENT_SECRET pada instans OmniRoute ini.",
"kilocode": "Hubungkan Kilo Code dengan alur OAuth yang ada.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "Salin kredensial yang diperlukan dari domain penyedia itu sendiri. Untuk cookie, salin hanya nilai header Cookie dan hilangkan Cookie:.",
"webSessionGuideStep3Manual": "Jalur manual: buka alat pengembang browser (F12 → Jaringan), muat ulang halaman, buka permintaan yang terautentikasi, dan salin nilai header Cookie dari Header Permintaan — hilangkan awalan Cookie:.",
"webSessionGuideStep4": "Rekatkan di sini dan periksa koneksinya. Jika berhenti berfungsi, masuk lagi dan ganti dengan nilai baru.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "Impor file .har",
+ "harImportButtonBusy": "Mengimpor…",
+ "harImportButtonHint": "Ekspor dari tab Network di DevTools setelah mengirim setidaknya satu pesan chat.",
+ "harImportStatusValid": "Diimpor — berlaku selama ~{minutes}m.",
+ "harImportStatusExpiringSoon": "Diimpor — hanya berlaku selama ~{minutes}m lagi.",
+ "harImportStatusExpired": "Diimpor, tetapi token ini sudah kedaluwarsa ({minutes}m yang lalu) — ekspor HAR baru.",
+ "harImportStatusUnknownExpiry": "Diimpor. Masa berlakunya tidak dapat dibaca.",
+ "harImportErrorNotJson": "File tersebut bukan JSON yang valid — apakah ini benar-benar hasil ekspor .har?",
+ "harImportErrorNoEntries": "HAR ini tidak memiliki entri jaringan yang direkam.",
+ "harImportErrorNoChathubUrl": "Tidak ditemukan koneksi chat Copilot dalam HAR ini. Kirim setidaknya satu pesan chat di m365.cloud.microsoft sebelum mengekspor.",
+ "harImportErrorUnparsableUrl": "Koneksi chat ditemukan, tetapi URL-nya tidak dapat dibaca.",
+ "harImportErrorMissingFields": "Koneksi chat ditemukan, tetapi tokennya tidak ada.",
+ "harImportErrorReadFailed": "File tersebut tidak dapat dibaca.",
+ "harImportErrorUnknown": "Kredensial tidak dapat diekstrak dari file HAR tersebut.",
"webSessionSecurityHint": "Perlakukan ini seperti kata sandi: kata sandi tersebut dapat mengakses akun web yang Anda masuki hingga masa berlakunya habis atau dicabut.",
"webNoAuthGuideTitle": "Tidak diperlukan kredensial",
"webNoAuthGuideBody": "{provider} tidak memerlukan kunci API atau cookie. Simpan koneksi untuk menggunakan titik akhir web gratisnya.",
@@ -6417,7 +6424,7 @@
"codexServiceModeUpdated": "Mode layanan Codex diperbarui",
"codexServiceTierActive": "Tingkat layanan Codex {tier} aktif",
"codexTierFastLabel": "Cepat",
- "codexTierFlexLabel": "Flex",
+ "codexTierFlexLabel": "Fleksibel",
"commandCodeApplyFailed": "Gagal menerapkan Kode Perintah auth",
"commandCodeApplyingApproval": "Browser disetujui, menerapkan…",
"commandCodeApplyingKey": "Menerapkan kunci yang disetujui oleh browser…",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Kode Perintah auth telah kedaluwarsa",
"commandCodeConnected": "Kode Perintah terhubung",
"commandCodeConnectionAdded": "Koneksi Kode Perintah ditambahkan",
+ "clearConnectionCooldown": "Hapus masa tunggu",
+ "clearConnectionCooldownInProgress": "Menghapus…",
+ "clearConnectionCooldownTitle": "Hapus masa tunggu sekarang — gunakan ketika kuota sudah diperbarui di layanan hulu",
"commandCodeLinkExpired": "Tautan Kode Perintah telah kedaluwarsa",
"commandCodeOpeningStudio": "Membuka Command Code Studio…",
"commandCodePopupBlocked": "Popup diblokir. Silakan izinkan popup dan coba lagi Command Code Connect.",
"commandCodeStartFailed": "Gagal memulai Command Code auth",
"connectionDeleted": "Koneksi dihapus",
"connectionFallback": "koneksi",
+ "connectionCooldownCleared": "Masa tunggu dihapus — koneksi kembali bergabung dengan perutean",
"coolingConnectionsDescription": "Koneksi ini sedang mendingin setelah permintaan terakhir. OmniRoute akan melewatinya sampai timer habis — tidak perlu menonaktifkan secara manual.",
"coolingConnectionsTitle": "Saat ini mendinginkan ({count})",
+ "failedClearConnectionCooldown": "Gagal menghapus masa tunggu",
"failedDeleteAlias": "Gagal menghapus alias",
"failedDeleteConnection": "Gagal menghapus koneksi",
"failedDistributeProxies": "Gagal mendistribusikan proxy.",
@@ -6453,7 +6465,7 @@
"noProvidersMatch": "Tidak ada penyedia yang cocok dengan pencarian Anda.",
"noSavedProxies": "Tidak ada proxy yang disimpan. Tambahkan proxy di Pengaturan → Proxy terlebih dahulu.",
"pageLoadErrorDescription": "Kami tidak dapat memuat data penyedia saat ini. Periksa koneksi Anda dan coba lagi.",
- "pageLoadErrorId": "Error ID: {id}",
+ "pageLoadErrorId": "ID Kesalahan: {id}",
"pageLoadErrorRetry": "Coba Lagi",
"pageLoadErrorTitle": "Gagal memuat penyedia",
"playgroundTitle": "Taman Bermain",
@@ -6462,16 +6474,11 @@
"providerDetailGlobalFlexActive": "Tingkat layanan Global Codex flex aktif",
"providerDetailGlobalPriorityActive": "Tingkat layanan prioritas Global Codex aktif",
"proxiesDistributed": "Distribusi penugasan proxy {assigned} di seluruh {tagLabel}{total} koneksi.",
- "rerankEndpoint": "Rerank",
+ "rerankEndpoint": "Peringkatkan ulang",
"savedModelEndpointSettings": "Pengaturan endpoint model yang disimpan",
"searchByModelAria": "Cari berdasarkan model",
"selectSupportedEndpoint": "Pilih setidaknya satu endpoint yang didukung",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "Pengaturan",
@@ -6550,29 +6557,29 @@
"systemPrompt": "Perintah Sistem",
"thinkingBudget": "Memikirkan Anggaran",
"proxy": "Proksi",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "Proksi HTTP",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "Bagian proksi",
+ "requestBodyLimitTitle": "Batas Isi Permintaan",
+ "requestBodyLimitDescription": "Ukuran maksimum payload API yang diterima sebelum isi permintaan diuraikan. Rute unggahan khusus tetap memiliki setidaknya batas bawaan sebesar 100 MB.",
+ "requestBodyLimitInputLabel": "Batas ukuran isi permintaan dalam MB",
+ "requestBodyLimitEmptyError": "Masukkan batas dalam MB",
+ "requestBodyLimitWholeNumberError": "Gunakan bilangan bulat",
+ "requestBodyLimitMinimumError": "Minimum adalah {min} MB",
+ "requestBodyLimitMaximumError": "Maksimum adalah {max} MB",
+ "requestBodyLimitLoadFailed": "Gagal memuat pengaturan batas permintaan",
+ "requestBodyLimitSaveSuccess": "Batas ukuran isi permintaan disimpan",
+ "requestBodyLimitSaveFailed": "Gagal menyimpan batas ukuran isi permintaan",
+ "requestBodyLimitSaving": "Menyimpan...",
+ "requestBodyLimitSave": "Simpan",
+ "requestBodyLimitCurrent": "Saat ini: {value}",
"cacheConfigLoadFailed": "Gagal memuat pengaturan cache",
"cacheConfigSaveSuccess": "Pengaturan cache disimpan",
"cacheConfigSaveFailed": "Gagal menyimpan pengaturan cache",
"modelCatalogTtlWholeNumberError": "Gunakan angka bulat",
"modelCatalogTtlMinimumError": "Minimum adalah {min} ms",
"modelCatalogTtlMaximumError": "Maksimum adalah {max} ms",
- "modelCatalogCacheTtl": "Model Catalog Cache TTL",
+ "modelCatalogCacheTtl": "TTL Cache Katalog Model",
"modelCatalogCacheTtlDescription": "Berapa lama respons katalog model disimpan dalam cache sebelum diperbarui",
"modelCatalogCacheTtlLabel": "TTL cache katalog model dalam milidetik",
"modelCatalogCacheTtlSaving": "Menyimpan...",
@@ -6589,59 +6596,59 @@
"enablePassword": "Aktifkan Kata Sandi",
"darkMode": "Mode Gelap",
"lightMode": "Modus Cahaya",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "Memori",
+ "memoryDesc": "Memori percakapan persisten lintas sesi",
+ "memoryEnabled": "Aktifkan Memori",
+ "memoryEnabledDesc": "Jika diaktifkan, OmniRoute akan menyisipkan konteks relevan dari percakapan sebelumnya.",
"memoryTokenCostWarning": "Perhatian: dengan memori yang diaktifkan, OmniRoute menyisipkan hingga {tokens} token konteks yang diambil ke dalam setiap permintaan obrolan — ini meningkatkan penggunaan token dan biaya. Untuk melewati penyisipan pada permintaan tertentu, kirim header \"x-omniroute-no-memory: true\".",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "maxTokens": "Token Maksimum",
+ "retentionDays": "Retensi",
+ "recent": "Terbaru",
+ "recentDesc": "Rentang kronologis",
+ "semantic": "Semantik",
+ "semanticDesc": "Pencarian vektor",
+ "hybrid": "Hibrida",
+ "hybridDesc": "Terbaru + Semantik",
+ "skillsTitle": "Keahlian",
+ "skillsDesc": "Alat untuk model",
+ "skillsEnabled": "Aktifkan Keahlian",
+ "skillsEnabledDesc": "Memungkinkan agen menjalankan fungsi.",
+ "skillsComingSoon": "Marketplace keahlian akan segera hadir.",
+ "memorySkillsTitle": "Memori & Keahlian",
+ "memorySkillsDesc": "Konteks & kemampuan persisten",
+ "modelsDevTitle": "Basis Data Model",
+ "modelsDevDesc": "Sinkronkan harga, kemampuan & spesifikasi secara otomatis dari models.dev",
+ "modelsDevEnabled": "Aktifkan Sinkronisasi models.dev",
+ "modelsDevEnabledDesc": "Ambil harga, kemampuan, dan spesifikasi model dari basis data sumber terbuka models.dev",
+ "modelsDevInterval": "Interval Sinkronisasi",
+ "syncNow": "Sinkronkan Sekarang",
+ "syncing": "Menyinkronkan...",
+ "lastSync": "Sinkronisasi terakhir",
+ "never": "Belum pernah",
"justNow": "sekarang",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Statistik Sinkronisasi",
+ "modelsDevStatsDesc": "Cakupan data models.dev saat ini",
"providers": "Penyedia",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Model dengan Informasi Harga",
+ "capabilities": "Kapabilitas",
+ "lastSyncCount": "Jumlah Sinkronisasi Terakhir",
+ "lastSyncFull": "Sinkronisasi penuh terakhir",
+ "modelsDevInfo": "Cara Kerjanya",
+ "modelsDevInfoDesc": "models.dev adalah basis data sumber terbuka berisi spesifikasi model AI yang dikelola oleh tim SST/OpenCode. Basis data ini menyediakan informasi harga, kapabilitas, batas konteks, dan modalitas untuk lebih dari 4.000 model dari lebih dari 100 penyedia.",
+ "modelsDevInfoResolution": "Urutan penentuan harga (prioritas tertinggi terlebih dahulu):",
+ "modelsDevInfoOrder": "Penggantian oleh Pengguna → models.dev → LiteLLM → Default Bawaan",
"systemTheme": "Tema Sistem",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Aktifkan Mode Debug",
"logToolSourcesToggle": "Log Sumber Alat",
"logToolSourcesDescription": "Keluarkan baris log diagnostik per permintaan yang merangkum jumlah alat dan rincian sumber MCP/hosted/client.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "Sematkan Informasi ke Halaman Beranda",
"homePinnedSectionsDesc": "Pilih bagian mana yang akan disematkan ke bagian atas halaman Beranda.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "Batas Kuota Penyedia",
+ "homeProviderQuotaLimitsDesc": "Sematkan kontainer status Kuota Penyedia (dengan tombol Segarkan Semua) di bagian atas halaman Beranda.",
+ "homeQuickStart": "Mulai Cepat",
+ "homeQuickStartDesc": "Tampilkan panel Mulai Cepat di halaman Beranda.",
+ "homeProviderTopology": "Topologi Penyedia",
+ "homeProviderTopologyDesc": "Tampilkan Topologi Penyedia di halaman Beranda.",
"accountEmailVisibility": "Visibilitas email akun",
"accountEmailVisibilityDesc": "Tampilkan email akun lengkap di seluruh layar penyedia, kombo, log, kuota, dan playground. Matikan ini untuk menyamarkannya secara default.",
"comboConfigMode": "Mode konfigurasi kombo",
@@ -6657,28 +6664,28 @@
"providerQuotaAutoRefreshInterval": "Interval penyegaran",
"providerQuotaAutoRefreshIntervalDesc": "Seberapa sering tampilan kuota harus disegarkan, dalam detik.",
"seconds": "detik",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Tampilkan Item Bilah Samping",
"enableCache": "Aktifkan Cache",
"cacheTTL": "Tembolok TTL",
"maxCacheSize": "Ukuran Tembolok Maks",
"clearCache": "Hapus Tembolok",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "Cache berhasil dibersihkan",
+ "clearCacheFailed": "Gagal membersihkan cache",
"cacheHits": "Cache Hit",
"cacheMisses": "Cache Hilang",
"hitRate": "Tingkat Hit",
"cacheEntries": "Entri Cache",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
+ "cacheSettings": "Pengaturan Cache",
+ "semanticCache": "Cache Semantik",
+ "maxEntries": "Entri Maksimum",
+ "ttlMinutes": "TTL (menit)",
"promptCache": "Tembolok Cepat",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "strategy": "Strategi",
+ "preserveClientCache": "Pertahankan Cache Klien",
+ "enabled": "Diaktifkan",
"loading": "Loading...",
"saving": "Menyimpan...",
- "save": "Save",
+ "save": "Simpan",
"circuitBreaker": "Pemutus Arus",
"retryPolicy": "Kebijakan Coba Ulang",
"maxRetries": "Percobaan Ulang Maks",
@@ -6686,21 +6693,21 @@
"timeoutMs": "Batas waktu (md)",
"enableSystemPrompt": "Aktifkan Perintah Sistem",
"systemPromptText": "Teks Perintah Sistem",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedAccounts": "Nonaktifkan Otomatis Akun yang Diblokir",
+ "autoDisableDescription": "Tandai koneksi penyedia secara permanen sebagai dinonaktifkan jika koneksi tersebut mengembalikan sinyal pemblokiran terminal tertentu (misalnya HTTP 403 'verifikasi akun Anda'). Tindakan ini menghapusnya dari rotasi gabungan.",
+ "autoDisableThreshold": "Ambang Batas Pemblokiran",
+ "autoDisableThresholdDesc": "Jumlah sinyal pemblokiran berturut-turut yang diperlukan sebelum dinonaktifkan secara permanen.",
+ "autoDisableBannedScope": "Terapkan penonaktifan otomatis pada",
+ "autoDisableBannedScopeDesc": "Akun login (langganan berbayar dan akun gratis) dapat dikunci oleh penyedia upstream jika OmniRoute terus mencoba ulang setelah pemblokiran. Kunci API prabayar berbayar tidak memiliki risiko tersebut — biarkan tetap berada dalam kumpulan agar strategi isi-dahulu dapat menggunakan kunci berikutnya.",
+ "autoDisableBannedScopeAll": "Semua koneksi",
+ "autoDisableBannedScopeAllDesc": "Nonaktifkan setiap koneksi yang mengembalikan sinyal pemblokiran permanen, termasuk kunci API prabayar.",
+ "autoDisableBannedScopeSubscription": "Hanya akun login/langganan",
+ "autoDisableBannedScopeSubscriptionDesc": "Nonaktifkan akun OAuth, cookie, sesi, dan login web (berbayar atau gratis). Kunci API prabayar tetap aktif agar perutean dapat beralih saat terjadi kegagalan.",
"customBannedSignals": "Kata Kunci yang Diblokir",
"customBannedSignalsDesc": "Kata kunci tambahan yang memicu deteksi pemblokiran akun permanen. Kata kunci bawaan selalu berlaku.",
"customBannedSignalsPlaceholder": "mis. api key revoked",
"noCustomBannedSignals": "Tidak ada kata kunci kustom. Hanya kata kunci bawaan yang aktif.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Struktur Ketahanan",
"resilienceStructureDesc": "Halaman ini hanya mengonfigurasi perilaku. Status pemutusan langsung ditampilkan di halaman Kesehatan. Percobaan ulang khusus kombo dan kontrol slot round-robin tetap pada pengaturan kombo.",
"enableThinking": "Aktifkan Berpikir",
"maxThinkingTokens": "Token Berpikir Maks",
@@ -6748,21 +6755,21 @@
"showTailscaleFunnelDesc": "Tampilkan kontrol Corong Tailscale di halaman Titik Akhir.",
"showNgrokTunnel": "Terowongan ngrok",
"showNgrokTunnelDesc": "Tampilkan kontrol Terowongan ngrok di halaman Titik Akhir.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Sembunyikan item bilah sisi",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
+ "presetAll": "Semua",
+ "presetAllDesc": "Tampilkan semuanya",
+ "presetEssentials": "Esensial",
+ "presetEssentialsDesc": "Jalur pemula - Alat lanjutan tetap dapat dicari",
"presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
+ "presetMinimalDesc": "Hanya halaman inti",
+ "presetDeveloper": "Pengembang",
+ "presetDeveloperDesc": "Alat pengembangan & proksi",
"presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAdminDesc": "Pemantauan & audit",
+ "settingsSidebarTitle": "Penyesuaian Bilah Sisi",
+ "settingsSidebarDesc": "Pilih item bilah sisi yang akan ditampilkan. Esensial membuat alat Lanjutan tetap dapat dicari.",
"hideHealthLogs": "Sembunyikan Log Pemeriksaan Kesehatan",
"hideHealthLogsDesc": "Saat AKTIF, sembunyikan pesan [HealthCheck] di konsol server",
"themeAccent": "Warna tema",
@@ -6776,19 +6783,19 @@
"themeOrange": "Oranye",
"themeCyan": "Sian",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Sesuaikan nama dan logo aplikasi",
+ "appName": "Nama Aplikasi",
+ "appNameDesc": "Nama tampilan yang ditampilkan di bilah sisi dan tab browser",
+ "customLogo": "URL Logo Kustom",
+ "customLogoDesc": "URL ke gambar logo kustom Anda",
+ "uploadLogo": "Unggah Logo",
+ "resetLogo": "Atur Ulang ke Bawaan",
+ "logoPreview": "Pratinjau",
+ "customFavicon": "Favicon Browser",
+ "customFaviconDesc": "URL ke favicon kustom Anda (ditampilkan di tab browser)",
+ "uploadFavicon": "Unggah Favicon",
+ "resetFavicon": "Atur Ulang Favicon",
+ "faviconPreview": "Pratinjau Favicon",
"logoFileTooLarge": "File logo harus berukuran kurang dari 500KB",
"faviconFileTooLarge": "File favicon harus berukuran kurang dari 50KB",
"invalidLogoFileType": "Jenis file tidak valid. Harap unggah PNG, JPG, SVG, GIF, atau WebP.",
@@ -6892,21 +6899,21 @@
"refreshInterval": "Interval Penyegaran",
"ruleModeDescription": "Deskripsi Mode Aturan"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
+ "bulkHealthcheck": "Pemeriksaan Kesehatan Massal",
+ "bulkHealthcheckDesc": "Uji semua proksi yang dikonfigurasi terhadap URL target untuk mengetahui mana yang berfungsi.",
+ "healthcheckTesting": "Menguji...",
+ "healthcheckAll": "Periksa Kesehatan Semua",
+ "healthcheckFailed": "Gagal menjalankan pemeriksaan kesehatan",
+ "healthcheckTestingAll": "Menguji semua proksi secara paralel...",
"healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
+ "healthcheckWorking": "Berfungsi",
+ "healthcheckFailedLabel": "Gagal",
"healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "healthcheckProxyUrl": "URL Proksi",
+ "healthcheckLatency": "Latensi",
"proxyDocumentationScopeTitle": "Resolusi cakupan proksi",
"proxyDocumentationScopeDescBefore": "OmniRoute menentukan proksi keluar berdasarkan urutan prioritas:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "kombinasi → akun → penyedia → global",
"proxyDocumentationScopeDescAfter": ". Cakupan yang paling spesifik yang menang.",
"proxyDocumentationAddTitle": "Menambahkan proksi kustom",
"proxyDocumentationAddDescBefore": "Buka",
@@ -6980,7 +6987,7 @@
"passthroughDesc": "Tidak ada perubahan — klien mengontrol anggaran pemikiran",
"thinkingModePassthrough": "Lewati",
"thinkingModePassthroughDesc": "Biarkan alasan klien tidak berubah (usaha, ringkasan, blok pemikiran). Diperlukan untuk pemikiran terlihat Codex/Desktop. Default.",
- "thinkingModeAuto": "Auto (strip)",
+ "thinkingModeAuto": "Otomatis (hapus)",
"thinkingModeAutoDesc": "Hapus semua bidang pemikiran/alasan klien (reasoning, reasoning_effort, Claude thinking, Gemini thinking_config) dan biarkan penyedia menciptakan default. Dapat menyembunyikan panel pemikiran dan memutuskan permintaan ringkasan klien.",
"thinkingModeCustom": "Kustom",
"thinkingModeCustomDesc": "Timpakan setiap permintaan dengan anggaran token pemikiran tetap yang Anda tetapkan di bawah.",
@@ -7030,11 +7037,11 @@
"providersBlocked": "{count} penyedia diblokir dari /models",
"blockProviderTitle": "Blokir {provider}",
"unblockProviderTitle": "Buka blokir {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "cliFingerprint": "Pencocokan Sidik Jari CLI",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count} penyedia dengan sidik jari CLI aktif",
+ "enableFingerprintTitle": "Aktifkan sidik jari untuk {provider}",
+ "disableFingerprintTitle": "Nonaktifkan sidik jari untuk {provider}",
"systemTransforms": "Alur Transformasi Blok Sistem",
"systemTransformsDesc": "Alur transformasi yang dipesan per penyedia diterapkan ke isi permintaan sebelum meneruskan. Mendukung ID penyedia apa pun.",
"systemTransformsAddProvider": "Tambahkan penyedia",
@@ -7063,15 +7070,15 @@
"costOptDesc": "Lebih suka akun termurah yang tersedia",
"resetAware": "RR Sadar Reset",
"resetAwareDesc": "Lebih suka akun dengan sisa kuota yang sehat dan hampir disetel ulang",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Berbobot Kuota",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
+ "strictRandom": "Acak Ketat",
+ "strictRandomDesc": "Kocok tumpukan — menggunakan setiap akun satu kali sebelum mengocok ulang",
"stickyLimit": "Batas Lengket",
"stickyLimitDesc": "Panggilan per akun sebelum beralih",
"routingStrategyTitle": "Strategi Perutean",
"routingStrategySubtitle": "Cocokkan 9router: round-robin akun, batas sticky, dan rotasi kombo",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Bergiliran",
"accountRoundRobinDesc": "Bergilir antar akun untuk mendistribusikan beban",
"comboRoundRobin": "Round Robin Kombo",
"comboRoundRobinDesc": "Bergilir antar target kombo alih-alih selalu memulai dari yang pertama",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "Ganti strategi akun global untuk penyedia ini (paritas 9router).",
"providerRoutingStrategy": "Strategi akun",
"providerRoutingInheritGlobal": "Warisi default global",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Batas Awal Kuota",
+ "quotaPreflightSubtitle": "Lewati akun yang kehabisan kuota sebelum mengirim permintaan ke upstream",
+ "quotaPreflightEnable": "Aktifkan pemeriksaan awal kuota",
+ "quotaPreflightEnableDesc": "Sebelum setiap permintaan, periksa sisa kuota akun (periode 5 jam / mingguan / bulanan). Akun yang berada pada atau di bawah batas akan dilewati tanpa panggilan upstream. Batas per periode yang ditetapkan pada halaman Kuota Penyedia selalu diutamakan daripada nilai default di sini.",
+ "quotaPreflightCutoff": "Batas global (min. sisa %)",
+ "quotaPreflightCutoffDesc": "Berhenti menggunakan akun saat sisa kuotanya turun hingga persentase ini atau lebih rendah, untuk setiap periode yang tidak memiliki batas tersendiri. Sesuai dengan bilah persentase sisa pada halaman Kuota Penyedia.",
+ "quotaPreflightWindowsHint": "Periode yang memiliki batas per periode atau per penyedia sendiri (ditetapkan dalam modal Batas pada halaman Kuota Penyedia) tidak terpengaruh oleh nilai default ini.",
+ "quotaPreflightLoadFailed": "Tidak dapat memuat pengaturan pemeriksaan awal kuota.",
"modelAliases": "Alias Model",
"modelAliasesTitle": "Alias Model",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "Petakan ulang nama model menggunakan kecocokan persis atau pola wildcard.",
"addCustomAlias": "Tambah Alias Kustom",
"deprecatedModelId": "ID model yang sudah usang",
"newModelId": "ID model baru",
@@ -7184,7 +7191,7 @@
"comboStrategyAria": "Strategi kombo",
"priority": "Prioritas",
"weighted": "Tertimbang",
- "contextRelay": "Context Relay",
+ "contextRelay": "Relai Konteks",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "Percobaan Ulang Maks",
"retryDelayLabel": "Penundaan Coba Lagi (md)",
@@ -7210,10 +7217,10 @@
"concurrencyPerModel": "Konkurensi / Model",
"queueTimeout": "Batas Waktu Antrian (md)",
"queueDepth": "Kedalaman Antrean",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "Ambang Batas Serah Terima",
+ "contextRelayMaxMessages": "Jumlah Maksimum Pesan untuk Ringkasan",
+ "contextRelaySummaryModel": "Model Ringkasan",
+ "contextRelayProviderNote": "Relai Konteks saat ini membuat serah terima untuk akun Codex dan menggunakan nilai-nilai ini sebagai default global untuk kombinasi baru atau yang belum dikonfigurasi.",
"providerProfiles": "Profil Penyedia",
"providerProfilesDesc": "Pisahkan pengaturan ketahanan untuk penyedia OAuth (berbasis sesi) dan Kunci API (terukur). Penyedia OAuth memiliki ambang batas yang lebih ketat karena batas tarif yang lebih rendah.",
"oauthProviders": "Penyedia OAuth",
@@ -7295,7 +7302,7 @@
"daysAgo": "{count}hari yang lalu",
"backupReasonManual": "panduan",
"backupReasonPreRestore": "pra-pemulihan",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
+ "connectionsCount": "{count, plural, one {# koneksi} other {# koneksi}}",
"noChangesSinceBackup": "Tidak ada perubahan sejak pencadangan terakhir",
"backupFailed": "Pencadangan gagal",
"restoreFailed": "Pemulihan gagal",
@@ -7325,7 +7332,7 @@
"configured": "dikonfigurasi",
"none": "Tidak ada",
"modelOverrideValuePlaceholder": "Nilai numerik",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Dipisahkan dengan koma dalam bahasa Inggris, misalnya low, medium, high",
"addKeyValue": "Tambahkan nilai kunci",
"noModelOverrides": "Tidak ada override yang dikonfigurasi untuk model ini.",
"modelOverrideLoadFailed": "Gagal memuat override model",
@@ -7374,25 +7381,25 @@
"editPricing": "Sunting Harga",
"viewFullDetails": "Lihat Detail Lengkap",
"themeCoral": "Koral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Perutean Volume Adaptif",
+ "adaptiveVolumeRoutingDesc": "Skalakan koneksi secara dinamis berdasarkan volume payload dan tekanan throughput.",
+ "lkgpToggleTitle": "Penyedia Terakhir yang Diketahui Baik (LKGP)",
+ "lkgpToggleDesc": "Saat diaktifkan, router mengingat penyedia yang terakhir memberikan respons berhasil dan mencobanya terlebih dahulu pada permintaan berikutnya.",
"echoRequestedModelTitle": "Echo nama model yang diminta dalam respons",
"echoRequestedModelDesc": "Ketika diaktifkan, bidang `model` pada respons akan mengembalikan nama alias atau kombo yang diminta klien alih-alih nama model hulu. Memperbaiki klien yang ketat (mis. Claude Desktop) yang menolak respons yang modelnya tidak cocok dengan permintaan.",
"webSearchRouteTitle": "Perutean pencarian web",
"webSearchRouteDesc": "Ketika permintaan menyertakan alat web_search bawaan, rute seluruh permintaan ke model ini alih-alih default — berguna untuk penyedia yang tidak menerapkan alat server web_search Anthropic. Biarkan kosong untuk menonaktifkan.",
"webSearchRoutePlaceholder": "Cari atau pilih model…",
"paidModelPatternWarning": "Pola ini hanya cocok dengan model berbayar — aktifkan model berbayar atau sesuaikan polanya.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "Bersihkan Cache LKGP",
+ "lkgpCacheCleared": "Cache LKGP berhasil dibersihkan",
+ "lkgpCacheClearFailed": "Gagal membersihkan cache LKGP",
+ "days": "Hari",
+ "lkgp": "Mode LKGP",
+ "lkgpDesc": "Penyedia Terakhir yang Diketahui Baik (ketahanan yang dapat diprediksi)",
+ "maintenance": "Pemeliharaan",
+ "purgeExpiredLogs": "Hapus Log Kedaluwarsa",
+ "purgeLogsFailed": "Gagal menghapus log",
"logsDeleted": "{count, plural, =0 {Tidak ada log kedaluwarsa yang dibersihkan} one {Membersihkan # log kedaluwarsa} other {Membersihkan # log kedaluwarsa}}",
"resetUsageData": "Atur Ulang Data Penggunaan",
"resetUsageDataDesc": "Pilih seberapa jauh ke belakang Anda ingin menghapus data penggunaan, log permintaan, dan data analitik. Konfigurasi penyedia, koneksi, kunci API, kombo, dan pengaturan akan dipertahankan. Tindakan ini tidak dapat dibatalkan.",
@@ -7409,39 +7416,39 @@
"resetUsageFailed": "Gagal mengatur ulang data penggunaan",
"reset": "Atur Ulang",
"resetting": "Mengatur ulang...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "Dioptimalkan untuk Konteks",
+ "contextOptDesc": "Merutekan berdasarkan kebutuhan jendela konteks dan panjang percakapan",
+ "cacheOpt": "Dioptimalkan untuk Cache",
+ "cacheOptDesc": "Mempertahankan prefiks prompt yang dapat digunakan kembali pada akun penyedia yang sama",
+ "priorityDesc": "Fallback berurutan - mencoba penyedia 1 terlebih dahulu, lalu penyedia 2, dan seterusnya",
+ "weightedDesc": "Mendistribusikan lalu lintas berdasarkan bobot persentase ke seluruh penyedia",
+ "modelRoutingTitle": "Aturan Perutean Model",
+ "modelRoutingDesc": "Merutekan model secara otomatis ke kombinasi tertentu menggunakan pola glob",
+ "addRule": "Tambah Aturan",
+ "routeToCombo": "Rutekan ke Kombinasi",
+ "selectCombo": "Pilih kombinasi...",
+ "priorityHint": "Semakin tinggi = diperiksa lebih dahulu. Gunakan 10+ untuk pola tertentu.",
+ "patternHint": "Gunakan * untuk sejumlah karakter apa pun, ? untuk satu karakter. Tidak peka huruf besar-kecil.",
+ "noRoutingRules": "Tidak ada aturan perutean yang dikonfigurasi. Secara default, permintaan menggunakan kombinasi global.",
+ "routingRuleHint": "Tambahkan aturan seperti claude-opus* -> frontier-combo untuk merutekan permintaan secara otomatis.",
+ "deleteRoutingRule": "Hapus aturan perutean model ini?",
+ "exactMatchMode": "Kecocokan Persis",
+ "wildcardPatternMode": "Pola Wildcard",
+ "exactMatchModeDesc": "Gunakan alias persis untuk ID model yang sudah tidak digunakan atau diganti namanya.",
+ "wildcardPatternModeDesc": "Gunakan alias wildcard dengan * dan ? jika satu keluarga model harus dipetakan ke satu target.",
+ "noExactAliasesConfigured": "Tidak ada alias kecocokan persis yang dikonfigurasi.",
+ "wildcardRulesTitle": "Aturan Wildcard",
+ "noWildcardAliasesConfigured": "Tidak ada alias wildcard yang dikonfigurasi.",
+ "overview": "Ikhtisar",
+ "unknownError": "Kesalahan Tidak Diketahui",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "Daftar Putih",
+ "syncDisabled": "Sinkronisasi Dinonaktifkan",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,11 +7456,11 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "Sinkronisasi Diaktifkan",
+ "blacklist": "Daftar Hitam",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
+ "syncedModels": "Model yang Disinkronkan",
+ "budget": "Anggaran",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "Gagal menyetel ulang harga: {reason}",
"tab": "Tab",
@@ -7461,11 +7468,11 @@
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "Gagal menyimpan harga: {reason}",
"pricingResetProvider": "Penyetelan ulang harga untuk {provider}",
- "nextSync": "Next Sync",
+ "nextSync": "Sinkronisasi Berikutnya",
"pricingSyncFailedWithReason": "Sinkronisasi harga gagal: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "Hapus Harga yang Disinkronkan",
+ "compressionTitle": "Kompresi Prompt",
+ "compressionDesc": "Kurangi penggunaan token dengan mengompresi prompt sebelum mengirimkannya ke penyedia",
"compressionGuidanceFullGuideLink": "Panduan kompresi lengkap",
"compressionGuidanceShow": "Detail",
"compressionGuidanceHide": "Sembunyikan detail",
@@ -7481,15 +7488,15 @@
"tokenSaverInputCompressionDesc": "Tulis ulang riwayat obrolan yang memenuhi syarat sambil mempertahankan kode, URL, dan maksud.",
"tokenSaverFineTunePrefix": "Sesuaikan setiap mesin pada",
"tokenSaverFineTuneSuffix": "atau gabungkan mesin per permintaan pada",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Mode Kompresi",
+ "compressionModeOff": "Nonaktif",
+ "compressionModeOffDesc": "Tidak ada kompresi yang diterapkan",
+ "compressionModeLite": "Ringan",
+ "compressionModeLiteDesc": "Pengurangan spasi kosong dan baris kosong",
+ "compressionModeStandard": "Standar (Caveman)",
+ "compressionModeStandardDesc": "Kompresi berbasis aturan dengan 30+ pola, mempertahankan blok kode dan URL",
+ "compressionModeAggressive": "Agresif",
+ "compressionModeAggressiveDesc": "Peringkasan + kompresi hasil alat + penuaan progresif untuk penghematan maksimal",
"compressionModeUltra": "Ultra",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "Konfigurasi Mesin Agresif",
@@ -7502,7 +7509,7 @@
"compressionUltraModelPath": "Jalur Model SLM",
"compressionUltraEngine": "Tingkat Ultra",
"compressionUltraEngineHeuristic": "Heuristik (Tingkat-A, default)",
- "compressionUltraEngineSlm": "SLM (LLMLingua-2, opt-in)",
+ "compressionUltraEngineSlm": "SLM (LLMLingua-2, ikut serta secara opsional)",
"compressionUltraSlmHint": "SLM mengunduh model ONNX kecil pada penggunaan pertama (cold-start) dan secara transparan beralih kembali ke heuristik saat waktu habis atau jika tidak tersedia.",
"compressionUltraSlmPrewarm": "Pra-hangatkan model SLM saat diaktifkan",
"compressionSummarizerEnabled": "Aktifkan Peringkas",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "Jumlah pesan terbaru yang disimpan pada setiap tingkatan penuaan (lebih tinggi = lebih dipertahankan)",
"compressionToolStrategies": "Strategi Hasil Alat",
"compressionToolStrategiesDesc": "Alihkan strategi kompresi untuk jenis hasil alat yang berbeda",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "Pengaturan Umum",
+ "compressionAutoTrigger": "Ambang Batas Pemicu Otomatis",
+ "compressionCacheTTL": "TTL Cache",
+ "compressionPreserveSystem": "Pertahankan Prompt Sistem",
"compressionPreserveSystemAlways": "Selalu",
"compressionPreserveSystemWhenNoCache": "Saat tidak ada cache",
"compressionPreserveSystemNever": "Tidak pernah",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "Disimpan",
"compressionExclusionsCount": "{count, plural, one {# pengecualian} other {# pengecualian}} dikonfigurasi",
"compressionExclusionsEmpty": "Tidak ada pengecualian yang dikonfigurasi — setiap model/endpoint memenuhi syarat untuk kompresi (perilaku default).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Konfigurasi Mesin Caveman",
+ "compressionCavemanConfigDesc": "Sesuaikan mesin kompresi berbasis aturan",
"compressionCavemanPanelHint": "Status aktif/nonaktif dan tingkatannya diatur di panel:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Kompres Peran Pesan",
+ "compressionRoleUser": "Pengguna",
+ "compressionRoleAssistant": "Asisten",
+ "compressionRoleSystem": "Sistem",
+ "compressionMinLength": "Panjang Pesan Minimum",
+ "compressionSkipRules": "Lewati Aturan Kompresi",
+ "compressionSkipRulesDesc": "Klik aturan untuk melewatinya selama kompresi",
+ "compressionPreservePatterns": "Pertahankan Pola",
+ "compressionPreservePatternsDesc": "Pola regex yang tidak pernah dikompresi (satu per baris)",
+ "compressionLogTitle": "Log Kompresi",
+ "compressionLogEmpty": "Belum ada permintaan yang dikompresi. Statistik kompresi akan muncul di sini saat permintaan diproses dengan kompresi diaktifkan.",
"minutes": "menit",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
+ "compressionModeRtkDesc": "Pemfilteran output alat yang memahami perintah",
+ "compressionModeCodexResponses": "Output alat Responses",
+ "compressionModeCodexResponsesDesc": "Kompresi konservatif untuk output shell, patch, pencarian, build, dan JSON yang memenuhi syarat",
+ "compressionModeStacked": "Bertumpuk",
+ "compressionModeStackedDesc": "Pemfilteran output alat RTK yang diikuti oleh kompresi pesan Caveman",
+ "qdrantTitle": "Qdrant (Memori vektor)",
+ "qdrantDesc": "Opsional. Mengindeks memori semantik dalam basis data vektor eksternal untuk pengambilan yang lebih cepat.",
+ "qdrantStatusActive": "Aktif",
+ "qdrantStatusError": "Kesalahan",
+ "qdrantStatusDisabled": "Dinonaktifkan",
+ "qdrantEnable": "Aktifkan Qdrant",
+ "qdrantEnableDesc": "Saat diaktifkan, strategi semantik/hibrida dapat menggunakan Qdrant untuk mengambil memori.",
+ "qdrantTesting": "Menguji...",
+ "qdrantTestConnection": "Uji koneksi",
+ "qdrantSaved": "Konfigurasi disimpan",
+ "qdrantSaveError": "Gagal menyimpan konfigurasi",
+ "qdrantHostHint": "Tanpa port. Contoh: 127.0.0.1 atau http://qdrant",
"qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "qdrantPortHint": "Default Qdrant: 6333",
+ "qdrantCollectionHint": "Tempat titik memori akan disimpan.",
+ "qdrantEmbeddingModel": "Model embedding",
+ "qdrantHelpTitle": "Bantuan penyiapan cepat",
+ "qdrantHelpQuickTitle": "Penyiapan cepat (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Host: IP/URL Qdrant, Port: 6333, Koleksi: omniroute_memory.",
+ "qdrantHelpStep2": "2. Jika menggunakan nvidia/llama-nemotron-embed-vl-1b-v2:free, gunakan dimensi koleksi 2048.",
+ "qdrantHelpStep3": "3. Kolom model: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Simpan, uji koneksi, lalu uji pencarian.",
+ "qdrantEmbeddingQuickSelect": "Pilih cepat dari model yang ditemukan...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "Format: provider/model. Kredensial penyedia harus dikonfigurasi.",
+ "qdrantApiKeyPlaceholderKeep": "(biarkan kosong untuk mempertahankan kunci saat ini)",
+ "qdrantApiKeyPlaceholderOptional": "(biarkan kosong jika tidak digunakan)",
+ "qdrantSaveHint": "Tips: edit host/port/koleksi/model lalu klik Simpan. Kunci API bersifat opsional.",
+ "qdrantSearchTestTitle": "Uji pencarian",
+ "qdrantSearchTestDesc": "Menghasilkan embedding dan melakukan pencarian di Qdrant.",
+ "qdrantSearchPlaceholder": "Contoh: preferensi pengguna, riwayat, dll.",
+ "qdrantNoResults": "Tidak ada hasil (atau Qdrant belum dikonfigurasi).",
+ "qdrantCleanupTitle": "Retensi dan pembersihan",
+ "qdrantCleanupDesc": "Menghapus titik yang kedaluwarsa dan lama berdasarkan",
+ "searching": "Mencari...",
+ "cleaning": "Membersihkan...",
+ "cleanNow": "Bersihkan sekarang",
"optional": "Opsional",
"current": "Saat ini",
"remove": "Hapus",
@@ -7596,19 +7603,19 @@
"resilienceScope": "Ruang lingkup:",
"resilienceTrigger": "Pemicu:",
"resilienceEffect": "Efek:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "Antrean & Laju Permintaan",
+ "resilienceAutoEnableApiKeyProviders": "Aktifkan otomatis untuk penyedia kunci API",
+ "resilienceRequestsPerMinute": "Permintaan per menit",
+ "resilienceMinTimeBetweenRequests": "Waktu minimum antarpermintaan",
+ "resilienceConcurrentRequests": "Permintaan serentak",
+ "resilienceConnectionScopeConcurrentRequests": "Permintaan serentak per koneksi/cakupan kuota",
+ "resilienceGlobalConcurrentRequests": "Permintaan upstream serentak global (0 = dinonaktifkan)",
"resilienceMaxQueueWaitTime": "Waktu tunggu antrian maksimum",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Waktu tunggu dasar",
+ "resilienceUseUpstreamRetryHints": "Gunakan petunjuk percobaan ulang dari upstream",
+ "resilienceDefaultPerProvider": "Default (per penyedia)",
+ "resilienceAlwaysOn": "Selalu aktif",
+ "resilienceAlwaysOff": "Selalu nonaktif",
"routingRemoveEntry": "Hapus entri",
"routingNeedlesSubstrings": "Jarum (substring yang cocok)",
"routingCaseSensitive": "Peka huruf besar-kecil",
@@ -7665,7 +7672,7 @@
"routingAntigravitySignatureDesc": "Kontrol apakah OmniRoute hanya menggunakan kembali tanda tangan pemikiran Gemini yang disimpan atau menerima tanda tangan yang disediakan klien yang telah divalidasi dalam alur panggilan alat yang kompatibel dengan Antigravity.",
"routingAntigravitySignatureEnabledLabel": "Diaktifkan",
"routingAntigravitySignatureEnabledDesc": "Perilaku saat ini. Abaikan tanda tangan yang disediakan klien dan tetap gunakan alur OmniRoute yang disimpan.",
- "routingAntigravitySignatureBypassLabel": "Bypass",
+ "routingAntigravitySignatureBypassLabel": "Lewati",
"routingAntigravitySignatureBypassDesc": "Terima tanda tangan yang disediakan klien setelah validasi ringan dan kembali ke tanda tangan yang disimpan jika tidak valid.",
"routingAntigravitySignatureBypassStrictLabel": "Bypass Ketat",
"routingAntigravitySignatureBypassStrictDesc": "Wajibkan validasi protobuf penuh sebelum menerima tanda tangan yang disediakan klien.",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "Dikirim ke model visi sebelum deskripsi yang diekstrak disisipkan kembali ke dalam permintaan asli.",
"visionBridgeTimeoutMs": "Batas waktu (md)",
"visionBridgeMaxImagesPerRequest": "Gambar Maks Per Permintaan",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Langkah backoff maksimum",
+ "resilienceProviderBreakerTitle": "Pemutus Sirkuit per Penyedia",
+ "resilienceFailureThreshold": "Ambang batas kegagalan",
+ "resilienceDegradationThreshold": "Ambang batas degradasi",
"resilienceResetTimeout": "Setel ulang batas waktu",
"resilienceFailureThresholdLabel": "Ambang batas kegagalan",
"resilienceResetTimeoutLabel": "Setel ulang batas waktu",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Waktu tunggu koneksi",
"resilienceUseUpstreamRetryHintsLabel": "Gunakan petunjuk coba ulang hulu",
"resilienceUseUpstream429BreakerLabel": "Gunakan petunjuk 429 hulu (pemutus)",
"resilienceMaxBackoffStepsLabel": "Langkah mundur maksimal",
"resilienceYes": "Ya",
"resilienceNo": "Tidak",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Bawaan",
"storageDatabaseBackupRetention": "Retensi cadangan basis data",
"storageDatabaseBackups": "Cadangan database",
"storageBackupRetentionDescription": "Cadangan SQLite otomatis disimpan di",
@@ -7725,57 +7732,61 @@
"storageDatabaseStatistics": "Statistik Database",
"storageIntegrityNotChecked": "Tidak diperiksa",
"backupRetentionSaved": "Retensi cadangan disimpan.",
- "backupRetentionSaveFailed": "Failed to save backup retention",
- "backupCleanupSuccess": "Deleted {backups} backup set(s) and {files} file(s).",
- "backupCleanupFailed": "Failed to clean database backups",
- "purgeQuotaSnapshotsSuccess": "Purged {count} quota snapshots",
- "purgeQuotaSnapshotsFailed": "Failed to purge quota snapshots",
- "purgeCallLogsSuccess": "Purged {count} call logs",
- "purgeCallLogsFailed": "Failed to purge call logs",
- "purgeDetailedLogsSuccess": "Purged {count} detailed logs",
- "purgeDetailedLogsFailed": "Failed to purge detailed logs",
- "vacuumCompleted": "VACUUM completed",
- "vacuumFailed": "VACUUM failed",
- "jsonExportFailed": "JSON export failed",
- "invalidJsonFileType": "Invalid file type. Only .json files are allowed.",
- "legacyJsonImportSuccess": "Legacy JSON imported successfully!",
- "jsonImportFailed": "Failed to import JSON",
- "jsonImportError": "Error during JSON import",
+ "backupRetentionSaveFailed": "Gagal menyimpan retensi cadangan",
+ "backupCleanupSuccess": "Menghapus {backups} set cadangan dan {files} file.",
+ "backupCleanupFailed": "Gagal membersihkan cadangan basis data",
+ "purgeQuotaSnapshotsSuccess": "Menghapus permanen {count} snapshot kuota",
+ "purgeQuotaSnapshotsFailed": "Gagal menghapus permanen snapshot kuota",
+ "purgeCallLogsSuccess": "Menghapus permanen {count} log panggilan",
+ "purgeCallLogsFailed": "Gagal menghapus permanen log panggilan",
+ "purgeDetailedLogsSuccess": "Menghapus permanen {count} log terperinci",
+ "purgeDetailedLogsFailed": "Gagal menghapus permanen log terperinci",
+ "vacuumCompleted": "VACUUM selesai",
+ "vacuumFailed": "VACUUM gagal",
+ "jsonExportFailed": "Ekspor JSON gagal",
+ "invalidJsonFileType": "Jenis file tidak valid. Hanya file .json yang diizinkan.",
+ "legacyJsonImportSuccess": "JSON lama berhasil diimpor!",
+ "jsonImportFailed": "Gagal mengimpor JSON",
+ "jsonImportError": "Terjadi kesalahan saat mengimpor JSON",
+ "jsonImportAuthRequired": "Autentikasi diperlukan untuk mengimpor konfigurasi JSON lama. Silakan masuk atau selesaikan penyiapan terlebih dahulu.",
+ "databaseSettingsAuthRequiredTitle": "Autentikasi diperlukan",
+ "databaseSettingsAuthRequiredBody": "Pengaturan basis data dan impor JSON hanya tersedia bagi admin yang telah diautentikasi. Masuk atau selesaikan penyiapan untuk melihat dan mengeditnya.",
+ "databaseSettingsAuthRequiredCta": "Masuk",
"storagePurgeData": "Bersihkan Data",
- "storagePurgeDataDesc": "Immediately delete all records without applying retention checks. Use with caution.",
- "storageRetentionCleanup": "Retention Settings",
- "storageRetentionCleanupDesc": "Configure operational record retention and database backup cleanup.",
- "retentionCallDays": "Call {count}d",
- "retentionAppDays": "App {count}d",
- "retentionRows": "{count} rows",
+ "storagePurgeDataDesc": "Segera hapus semua data tanpa menerapkan pemeriksaan retensi. Gunakan dengan hati-hati.",
+ "storageRetentionCleanup": "Pengaturan Retensi",
+ "storageRetentionCleanupDesc": "Konfigurasikan retensi data operasional dan pembersihan cadangan basis data.",
+ "retentionCallDays": "Panggilan {count} hari",
+ "retentionAppDays": "Aplikasi {count} hari",
+ "retentionRows": "{count} baris",
"retentionQuotaSnapshots": "Cuplikan Kuota (hari)",
- "retentionCompressionAnalytics": "Compression Analytics (days)",
+ "retentionCompressionAnalytics": "Analitik Kompresi (hari)",
"retentionMcpAudit": "Audit MCP (hari)",
"retentionA2aEvents": "Acara A2A (hari)",
"retentionCallLogs": "Log Panggilan (hari)",
"retentionUsageHistory": "Riwayat Penggunaan (hari)",
"retentionMemoryEntries": "Entri Memori (hari)",
- "retentionXpAuditLog": "XP Audit Log (days)",
- "saveRetentionSettings": "Save retention settings",
+ "retentionXpAuditLog": "Log Audit XP (hari)",
+ "saveRetentionSettings": "Simpan pengaturan retensi",
"storageAutoVacuumMode": "Mode Vakum Otomatis",
"storageScheduledVacuum": "Vakum Terjadwal",
"storageVacuumHour": "Jam Vakum (0-23)",
"storagePageSize": "Ukuran Halaman (byte)",
- "storageOptimizationSettings": "Optimization Settings",
- "storageJournalModeNone": "None",
- "storageJournalModeFull": "Full",
- "storageJournalModeIncremental": "Incremental",
- "storageVacuumNever": "Never",
- "storageVacuumDaily": "Daily",
- "storageVacuumWeekly": "Weekly",
- "storageVacuumMonthly": "Monthly",
- "storageCacheSizeKb": "Cache Size (KB)",
- "storageOptimizeOnStartup": "Optimize on Startup",
- "storageSaveOptimization": "Save Optimization Settings",
- "storageCompressionAggregation": "Compression & Aggregation Settings",
- "storageEnableAggregation": "Enable Data Aggregation",
- "storageRawDataRetention": "Raw Data Retention (days)",
- "storageGranularity": "Granularity",
+ "storageOptimizationSettings": "Pengaturan Pengoptimalan",
+ "storageJournalModeNone": "Tidak ada",
+ "storageJournalModeFull": "Penuh",
+ "storageJournalModeIncremental": "Inkremental",
+ "storageVacuumNever": "Tidak Pernah",
+ "storageVacuumDaily": "Harian",
+ "storageVacuumWeekly": "Mingguan",
+ "storageVacuumMonthly": "Bulanan",
+ "storageCacheSizeKb": "Ukuran Cache (KB)",
+ "storageOptimizeOnStartup": "Optimalkan saat Startup",
+ "storageSaveOptimization": "Simpan Pengaturan Optimasi",
+ "storageCompressionAggregation": "Pengaturan Kompresi & Agregasi",
+ "storageEnableAggregation": "Aktifkan Agregasi Data",
+ "storageRawDataRetention": "Retensi Data Mentah (hari)",
+ "storageGranularity": "Granularitas",
"storageHourly": "Per Jam",
"storageDaily": "Harian",
"storageWeekly": "Mingguan",
@@ -7807,7 +7818,7 @@
"redisLauncherContainer": "Kontainer",
"redisLauncherRunning": "Berjalan",
"redisLauncherReachable": "Dapat Dijangkau",
- "redisLauncherError": "Error: {message}",
+ "redisLauncherError": "Kesalahan: {message}",
"redisLauncherHint": "Setara dengan menjalankan `omniroute redis up`. Kontainer ini dinamai `omniroute-redis` dan mendengarkan pada 127.0.0.1:6379.",
"compressionSettingsAutoTriggerMode": "Mode pemicu otomatis",
"compressionSettingsMcpDescriptionCompression": "Kompresi deskripsi MCP",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "mode: {mode}",
"compressionAdaptiveOff": "Anggaran konteks adaptif: nonaktif (pemicu otomatis warisan)",
"compressionAdaptiveTarget": "Adaptif ({mode}, kebijakan: {policy}) — target ≈ {target, number} token (untuk jendela {contextLimit, number}-token)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Anggaran konteks adaptif",
+ "compressionAdaptiveModeOff": "Nonaktif (pemicu otomatis lama)",
+ "compressionAdaptiveModeFloor": "Batas bawah (selalu menjamin kecukupan)",
+ "compressionAdaptiveModeReplace": "Gantikan pemicu otomatis",
+ "compressionAdaptivePolicy": "Kebijakan anggaran",
+ "compressionAdaptivePolicyReserve": "Cadangkan output",
+ "compressionAdaptivePolicyPercentage": "Persentase jendela",
+ "compressionAdaptivePolicyAbsolute": "Anggaran token absolut",
"compressionOutputStylesDescription": "Suntikkan instruksi pembentukan respons tanpa menulis ulang output penyedia. Kombinasikan secara bebas.",
"mcpAccessibilityDescription": "Membatasi cakupan output alat MCP (penyimpanan terpisah).",
"compressionStylesTileSummary": "{tokens, number} token disimpan · {runs, plural, one {# eksekusi digayakan} other {# eksekusi digayakan}}",
@@ -7840,7 +7851,7 @@
"minimal": "Minimal",
"standard": "Standar",
"aggressive": "Agresif",
- "lite": "Lite",
+ "lite": "Ringan",
"full": "Penuh",
"ultra": "Ultra"
},
@@ -7854,7 +7865,7 @@
"description": "Penanda pengambilan beralamat konten."
},
"lite": {
- "label": "Lite",
+ "label": "Ringan",
"description": "Pembersihan spasi kosong dan format."
},
"rtk": {
@@ -7862,11 +7873,11 @@
"description": "Penyaringan output perintah."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Output Responses Tool",
+ "description": "Kompresi konservatif untuk output Responses tool yang didukung."
},
"headroom": {
- "label": "Headroom",
+ "label": "Ruang cadangan",
"description": "Pemadatan JSON tabular."
},
"relevance": {
@@ -7874,7 +7885,7 @@
"description": "Penilaian kalimat ekstraktif terhadap kueri pengguna terakhir."
},
"caveman": {
- "label": "Caveman",
+ "label": "Manusia Gua",
"description": "Kompresi prosa berbasis aturan."
},
"aggressive": {
@@ -7904,12 +7915,12 @@
"description": "Tangga YAGNI: perubahan kerja terkecil, tanpa abstraksi yang tidak diminta."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Kuncir Kuda (developer senior pemalas)",
+ "description": "Disiplin developer senior pemalas: naiki tangga YAGNI, perbaiki akar masalah, gunakan diff terkecil yang berfungsi."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Saya memiliki ADHD (utamakan tindakan)",
+ "description": "Output yang mengutamakan tindakan: awali dengan tindakan berikutnya, beri nomor pada langkah-langkah, berikan satu langkah konkret berikutnya, tanpa pembukaan."
},
"terse-cjk": {
"label": "CJK Ringkas (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "Penggantian CLIProxyAPI",
"cliproxyapiEnableFallback": "Aktifkan Penggantian CLIProxyAPI",
"cliproxyapiUrl": "URL CLIProxyAPI",
+ "headroomProxyTitle": "Proxy Headroom",
+ "headroomProxyDesc": "URL proxy penghemat token Headroom opsional. Jika kosong, gunakan HEADROOM_URL atau http://localhost:8787.",
+ "headroomProxyUrl": "URL Headroom",
+ "headroomProxyUrlHint": "URL loopback dapat dimulai dari halaman ini. URL eksternal hanya diperiksa.",
+ "headroomProxySave": "Simpan",
+ "headroomProxyStart": "Mulai",
+ "headroomProxyStop": "Hentikan",
+ "headroomProxyExternalHint": "URL ini bukan loopback, sehingga OmniRoute tidak akan menjalankan CLI lokal.",
"cliproxyapiStatus": "Status CLIProxyAPI",
"cliproxyapiNotDetected": "Tidak terdeteksi",
"cliproxyapiImportAuthTitle": "Impor akun dari CLIProxyAPI",
@@ -7934,9 +7953,9 @@
"cliproxyapiImportAuthButton": "Impor akun",
"payloadRulesTitle": "Aturan Muatan",
"payloadRulesDesc": "Konfigurasikan mutasi payload permintaan berdasarkan model dan protokol. Perubahan disimpan dalam pengaturan dan langsung dimuat ulang (hot reloaded) ke dalam runtime segera setelah disimpan.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "bawaan",
"payloadRuleDefaultDesc": "Menerapkan parameter hanya ketika jalur target tidak ada dalam payload keluar.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "timpa",
"payloadRuleOverrideDesc": "Memaksa nilai ke dalam payload, menggantikan apa pun yang sudah ada di jalur tersebut.",
"payloadRuleFilterTitle": "filter",
"payloadRuleFilterDesc": "Menghapus param yang diblokir dari payload sebelum permintaan upstream dikirim.",
@@ -7985,14 +8004,14 @@
"codexFastTierDesc": "Menyuntikkan service_tier=priority secara global untuk permintaan OpenAI Codex.",
"codexFastTierHint": "Saat diaktifkan, OmniRoute menambahkan service_tier=priority ke permintaan Codex keluar untuk koneksi yang belum menentukan tingkat. Tingkat prioritas memerlukan kunci OpenAI Enterprise API atau jalur Codex autentikasi ChatGPT; jenis kunci lainnya akan menerima kesalahan terkait tingkatan dari OpenAI. Pengaturan per koneksi pada halaman penyedia Codex diutamakan.",
"codexFastTierSaveError": "Gagal memperbarui pengaturan Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Ping Otomatis Kuota Codex",
+ "codexAutoPingDesc": "Aktifkan per koneksi: mengirim permintaan kecil tepat setelah jendela sesi Codex direset agar tidak dalam kondisi dingin saat Anda membutuhkannya.",
+ "codexAutoPingWarning": "Menggunakan sedikit kuota Codex nyata pada setiap ping. Dinonaktifkan secara bawaan — aktifkan hanya untuk koneksi yang benar-benar Anda andalkan.",
+ "codexAutoPingSaveError": "Gagal memperbarui pengaturan Ping Otomatis Codex",
+ "codexAutoPingToggleAria": "Aktifkan/nonaktifkan ping otomatis kuota Codex untuk {connection}",
"codexFastTierTierLabel": "Tier layanan",
"codexFastTierTierPriority": "Prioritas",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierFlex": "Fleksibel",
"codexFastTierTierDefault": "Bawaan",
"codexFastTierModelsLabel": "Model tier cepat",
"codexFastTierModelsHint": "Hanya model yang dicentang yang menerima service_tier saat Fast Tier diaktifkan.",
@@ -8007,7 +8026,7 @@
"cors": {
"wildcard": {
"title": "CORS terbuka untuk setiap asal (CORS_ALLOW_ALL=true)",
- "desc": "Any website can call this server's API from a visitor's browser. Use only on trusted networks — set explicit origins in ALLOWED_ORIGINS and disable CORS_ALLOW_ALL in production."
+ "desc": "Situs web apa pun dapat memanggil API server ini dari browser pengunjung. Gunakan hanya di jaringan tepercaya — tetapkan origin secara eksplisit di ALLOWED_ORIGINS dan nonaktifkan CORS_ALLOW_ALL dalam produksi."
}
},
"title": "Inventaris Otorisasi",
@@ -8024,7 +8043,7 @@
"bypass": {
"section": "Bypass cakupan manajemen",
"kill_switch": {
- "label": "Bypass kill-switch",
+ "label": "Lewati kill-switch",
"desc": "Tombol utama. Saat mati, tidak ada awalan LOCAL_ONLY yang dapat dijangkau dari non-loopback terlepas dari daftar per-awalan."
},
"prefix": {
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "Interval pemeriksaan global",
"resilienceCredentialHealthEveryMinutes": "Setiap {minutes} mnt",
"resilienceCredentialHealthHint": "0 menonaktifkan pemindaian latar belakang (maks. 1440 mnt = 24 jam). Koneksi dengan nilai Pemeriksaan Kesehatan sendiri mengabaikan bawaan global ini; 0 pada suatu koneksi mengeluarkannya meski pemindaian global menyala.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "Selalu diaktifkan untuk {provider} — diperlukan demi keamanan akun OAuth; tidak dapat dinonaktifkan.",
+ "forcedFingerprintBadge": "Wajib",
"sessionAffinityTitle": "Afinitas sesi",
"sessionAffinityDesc": "Menjaga satu percakapan pada akun yang sama selama sekian detik ini, untuk penyedia mana pun. 0 menonaktifkannya.",
"sessionAffinityTtl": "TTL Afinitas (detik)",
@@ -8155,10 +8174,10 @@
"denoRelayProjectNameLabel": "Nama Aplikasi Deno",
"denoRelayFreeTierNote": "Deno Deploy v2 berjalan di jaringan edge global. Tingkat gratis: 1 juta permintaan & 100GiB lalu lintas keluar per bulan, tanpa batas CPU per permintaan, hingga 20 aplikasi aktif & 50 domain kustom.",
"denoRelayDeploying": "Mendeploy...",
- "denoRelayDeploy": "Deploy",
+ "denoRelayDeploy": "Terapkan",
"cloudflareRelaySuccess": "Cloudflare Relay berhasil dideploy",
- "cloudflareRelayButton": "Deploy Cloudflare Relay",
- "cloudflareRelayModalTitle": "Deploy Cloudflare Worker Relay",
+ "cloudflareRelayButton": "Terapkan Relai Cloudflare",
+ "cloudflareRelayModalTitle": "Terapkan Relai Worker Cloudflare",
"cloudflareRelayWarning": "Mendeploy Cloudflare Worker yang memproksi permintaan LLM melalui jaringan edge Cloudflare — menyamarkan IP host di balik alamat Cloudflare dinamis. Worker menerapkan rahasia autentikasi satu kali sehingga URL workers.dev publik tidak dapat digunakan kembali sebagai relai terbuka.",
"cloudflareRelayTokenHowto": "Buat token API di bawah Profil Saya -> Token API -> Buat Token -> Token Kustom -> Account / Workers Scripts / Edit.",
"cloudflareRelayAccountIdLabel": "ID Akun Cloudflare",
@@ -8168,7 +8187,7 @@
"cloudflareRelayProjectNameLabel": "Nama Worker",
"cloudflareRelayFreeTierNote": "Tingkat gratis: 100.000 permintaan/hari per akun Cloudflare.",
"cloudflareRelayDeploying": "Mendeploy...",
- "cloudflareRelayDeploy": "Deploy",
+ "cloudflareRelayDeploy": "Terapkan",
"cloudflareRelayCredsRequired": "ID Akun dan Token API wajib diisi",
"cloudflareRelayDeployFailed": "Deploy gagal",
"modelLockout": "Penguncian Model",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "Jumlah maksimum langkah backoff sebelum cooldown berhenti bertambah. Batas Cooldown Maksimum tercapai lebih dulu pada sebagian besar konfigurasi, menjadikannya batas pengaman saat Cooldown Maksimum dinaikkan.",
"disableSessionStickiness": "Nonaktifkan session stickiness",
"disableSessionStickinessDesc": "Kombo round-robin dan acak berganti ke koneksi yang berbeda pada setiap permintaan alih-alih menyematkan seluruh percakapan ke satu koneksi berdasarkan hash pesan pertama. Biarkan nonaktif untuk mempertahankan hit prompt-cache pada obrolan multi-turn. Penggantian per-kombo lebih diutamakan.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Perutean lokalitas cache prompt",
+ "promptCacheAffinityDesc": "Utamakan akun penyedia yang sama untuk kunci cache prompt yang cocok sambil mempertahankan failover berdasarkan kesehatan dan kuota.",
+ "reasoningTokenBuffer": "Buffer token penalaran",
+ "reasoningTokenBufferDesc": "Izinkan perutean kombinasi menambahkan ruang ekstra max_tokens hanya untuk model penalaran yang dikenal jika seluruh buffer muat dalam batas output yang diketahui.",
+ "zeroLatencyOptimizations": "Pengoptimalan latensi nol",
+ "zeroLatencyOptimizationsDesc": "Aktifkan hedging, lompatan TTFT prediktif, dan kompresi fallback proaktif. Biarkan nonaktif untuk mencegah fitur latensi ini memacu target atau mengompresi permintaan fallback.",
"credentialRedaction": "Redaksi Kredensial",
"credentialRedactionDesc": "Redaksi kunci API, token, dan rahasia dari konteks yang dikirim ke penyedia dan dari respons.",
"enableCredentialRedaction": "Aktifkan redaksi kredensial",
"enableCredentialRedactionDesc": "Membersihkan kunci API, token, private key, dan JWT dari pesan, panggilan alat, dan respons.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Sinkronisasi Otomatis Dinonaktifkan",
+ "pricingAutoSyncEnabled": "Sinkronisasi Otomatis Diaktifkan",
"modalityBridgeIntro": "Ubah konten multimodal menjadi teks sebelum mencapai model khusus teks. Jembatan visi, audio, dan video tersedia serta dapat dikonfigurasi.",
"modalityBridgeVisionTab": "Visi",
"modalityBridgeAudioTab": "Audio",
@@ -8239,7 +8258,7 @@
"modalityBridgeCacheTtlMinutes": "Cache TTL (menit)",
"modalityBridgeCacheMaxEntries": "Jumlah maksimum entri cache",
"modalityBridgeStatsBridged": "jembatan",
- "modalityBridgeStatsCacheHits": "cache hits",
+ "modalityBridgeStatsCacheHits": "cache hit",
"modalityBridgeStatsFailures": "kegagalan",
"modalityBridgeStatsLastUsed": "terakhir digunakan",
"modalityBridgeStatsNever": "tidak pernah",
@@ -8293,7 +8312,7 @@
"collection": "Koleksi",
"errorPage": {
"description": "Kami tidak dapat memuat pengaturan saat ini. Silakan coba lagi dalam beberapa detik.",
- "errorId": "Error ID: {id}",
+ "errorId": "ID Kesalahan: {id}",
"retry": "Coba Lagi",
"title": "Gagal memuat pengaturan"
},
@@ -8305,7 +8324,7 @@
"oneproxyCountry": "Negara Oneproxy",
"oneproxyDelete": "Oneproxy Hapus",
"oneproxyEmpty": "Oneproxy Kosong",
- "oneproxyHost": "Oneproxy Host",
+ "oneproxyHost": "Host Oneproxy",
"oneproxyLatency": "Oneproxy Latensi",
"oneproxyProtocol": "Protokol Oneproxy",
"oneproxyQuality": "Kualitas Oneproxy",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "Kesehatan",
"cliproxyapiPort": "Port",
"qdrantHost": "Host",
- "qdrantCollection": "Koleksi",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Koleksi"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
+ "title": "Mesin RTK",
+ "description": "Kompresi berbasis perintah untuk output alat, log terminal, dan hasil build.",
+ "enabled": "Diaktifkan",
+ "intensity": "Intensitas",
"intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "intensityStandard": "Standar",
+ "intensityAggressive": "Agresif",
+ "toolResults": "Hasil alat",
+ "assistantMessages": "Pesan asisten",
+ "codeBlocks": "Blok kode",
"filterCatalog": "Katalog Filter",
"filterCatalogDesc": "Filter keluaran tersedia berdasarkan kategori",
"guidedConfig": "Konfigurasi",
"guidedConfigDesc": "Sesuaikan cara RTK memfilter keluaran terminal Anda",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "Maks. baris",
+ "maxChars": "Maks. karakter",
"deduplicateThreshold": "Ambang batas penghapusan duplikat",
"customFilters": "Filter khusus",
"detectedType": "Tipe terdeteksi",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "Kegagalan",
"rawOutputAlways": "Selalu",
"rawOutputMaxBytes": "Byte maks keluaran mentah",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "Pengujian Filter",
+ "pasteOutput": "Tempel output alat untuk menguji pemfilteran...",
"presetHigh": "Agresif",
"presetLow": "Ringan",
"presetMaxChars": "Karakter keluaran maksimal",
"presetMaxLines": "Jalur keluaran maksimal",
"presetMedium": "Standar",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "Jalankan",
+ "result": "Hasil",
+ "previewEmpty": "Jalankan sampel untuk melihat pratinjau output RTK.",
+ "detected": "Terdeteksi",
"masterSwitchOffAlert": "Sakelar utama Token Saver NONAKTIF — pengaturan ini tidak akan memengaruhi permintaan hingga Anda mengaktifkannya dari halaman Endpoint.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "Token yang difilter",
+ "filtersActive": "Filter aktif",
+ "requests": "Permintaan",
+ "avgSavings": "Rata-rata penghematan",
"simpleMode": "Sederhana",
"advancedMode": "Lanjutan",
"searchFilters": "Filter pencarian...",
@@ -8477,7 +8488,7 @@
"savings": "Penghematan",
"original": "Asli",
"compressed": "Terkompresi",
- "diff": "Diff",
+ "diff": "Selisih",
"last7Days": "7 hari terakhir",
"noDataYet": "Belum ada data",
"runs": "Eksekusi",
@@ -8495,7 +8506,7 @@
"description": "Pemadatan tabular lossless dari array JSON homogen dengan penanda jumlah baris eksplisit."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "Deduplikasi Sesi",
"description": "Deduplikasi blok lintas-giliran dengan penanda konten yang dapat dipulihkan."
},
"ccr": {
@@ -8507,7 +8518,7 @@
"description": "Klasifikasi token semantik berbasis ONNX. Hanya mengompresi prosa; blok kode dan konstruksi yang dipertahankan dilindungi. Fails open jika terjadi kesalahan model atau worker."
},
"lite": {
- "name": "Lite",
+ "name": "Ringan",
"description": "Pengurangan cepat spasi kosong, tool-result, dan URL gambar."
},
"aggressive": {
@@ -8597,15 +8608,15 @@
"bert-base": "BERT-base (710 MB, akurasi lebih tinggi)"
},
"intensity": {
- "lite": "Lite",
+ "lite": "Ringan",
"full": "Penuh",
"ultra": "Ultra"
}
},
"modeOptions": {
- "default": "Default",
+ "default": "Bawaan",
"off": "Matikan",
- "lite": "Lite",
+ "lite": "Ringan",
"standard": "Standar",
"aggressive": "Agresif",
"ultra": "Ultra",
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
+ "title": "Kombinasi Kompresi",
+ "description": "Tentukan cara mesin digabungkan untuk berbagai skenario perutean.",
+ "createCombo": "Buat Kombinasi Kompresi",
"editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "deleteCombo": "Hapus",
+ "deleteConfirm": "Hapus kombinasi kompresi ini?",
+ "pipeline": "Alur Pemrosesan",
+ "addStep": "Tambahkan Langkah",
+ "removeStep": "Hapus",
+ "name": "Nama",
+ "descriptionField": "Deskripsi",
+ "languagePacks": "Paket Bahasa",
+ "outputMode": "Mode Output",
+ "assignToRouting": "Tetapkan ke Kombinasi Perutean",
+ "noAssignments": "Tidak ada kombinasi perutean yang tersedia",
+ "default": "Bawaan",
+ "setAsDefault": "Tetapkan sebagai Default",
+ "save": "Simpan",
+ "cancel": "Batal",
+ "enabled": "Diaktifkan",
"loading": "Memuat…",
"hubTitle": "Hub Kompresi",
"hubDescription": "Pilih profil kompresi mana yang berjalan secara global.",
@@ -8657,29 +8668,29 @@
"contextEditingNote": "Saat ini hanya tersedia untuk Claude (Anthropic). Ini adalah mode yang didelegasikan: penyedia menghapus blok penggunaan alat lama di sisi server — kami tidak menulis ulang pesan. Ini tidak memengaruhi penyedia lain.",
"namedCombos": "Kombo bernama",
"namedCombosDescription": "Simpan pipeline yang berbeda dan tetapkan ke kombo perutean tertentu.",
+ "activeProfileMasterSwitchOffWarning": "Profil aktif di bawah ini tidak akan berjalan hingga sakelar utama \"Kompresi Prompt\" diaktifkan.",
+ "activeProfileMasterSwitchOffCta": "Aktifkan di Pengaturan",
"comboNamePlaceholder": "Nama kombo",
"descriptionPlaceholder": "Deskripsi",
"nameRequired": "Masukkan nama kombo sebelum menyimpan.",
"pipelineRequired": "Tambahkan setidaknya satu langkah pipeline sebelum menyimpan.",
"saveComboFailed": "Gagal menyimpan kombo (HTTP {status}).",
"deleteNamedConfirm": "Hapus kombo “{name}”?",
- "intensityLite": "Lite",
+ "intensityLite": "Ringan",
"intensityFull": "Penuh",
"intensityUltra": "Ultra",
"active": "Aktif",
"languagePacksList": "Paket bahasa: {packs}",
"dragToReorder": "Seret untuk menyusun ulang langkah",
"engine": "Mesin",
- "intensity": "Intensitas",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Intensitas"
},
"compressionStudio": {
"noRun": "Tidak ada proses kompresi yang tersedia.",
"liveDataHint": "Data langsung tiba melalui saluran kompresi WebSocket.",
"cockpitView": "Tampilan kokpit",
"canvas": "Kanvas",
- "waterfall": "Waterfall",
+ "waterfall": "Berjenjang",
"replayDone": "Pemutaran ulang selesai",
"pauseReplay": "Jeda pemutaran ulang",
"playReplay": "Putar pemutaran ulang",
@@ -8687,7 +8698,7 @@
"replay": "Putar ulang",
"resetReplay": "Atur ulang pemutaran ulang",
"stepProgress": "langkah {current}/{total}",
- "inlineView": "Inline",
+ "inlineView": "Sebaris",
"splitComingSoon": "Tampilan terpisah (segera hadir)",
"inputPlaceholder": "Tempelkan prompt, output alat, atau konteks…",
"activeCombined": "Aktif dalam alur gabungan",
@@ -8701,7 +8712,7 @@
"run": "Jalankan",
"laneRejected": "ditolak: {reason}",
"error": "kesalahan",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Pratinjau pipeline gabungan gagal: {reason}",
"combinedFlow": "Alur gabungan",
"eachLayer": "Setiap lapisan secara terpisah",
"diff": "Perbedaan",
@@ -8730,7 +8741,7 @@
"compareTab": "Bandingkan",
"encoderComparison": "Encoder A/B — {count} array",
"encoderWinner": "pemenang: {winner}",
- "encoder": "encoder",
+ "encoder": "enkoder",
"bytes": "byte",
"tokensCl100k": "token (cl100k)"
},
@@ -8759,7 +8770,7 @@
"why": "Hanya Fable 5 yang membaca halaman padat dengan akurasi 100% (terukur, n=30). GPT-5.5 dan Gemini 2.5 Flash diblokir."
},
"transport": {
- "label": "Transport",
+ "label": "Transportasi",
"pass": "Anthropic langsung",
"why": "Agregator melakukan resample gambar dan merusak keterbacaan — hanya rute langsung yang otoritatif."
},
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Aktifkan mesin",
"enableDescription": "Berjalan terakhir dalam tumpukan (setelah RTK/Caveman membersihkan teks, OmniGlyph mengonversi sisanya menjadi gambar) dan juga berjalan mandiri melalui mode omniglyph. Ini adalah pratinjau dan tetap dinonaktifkan secara default hingga validasi menyeluruh selesai.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profil kompresi",
+ "profileDescription": "Profil adalah batas atas, bukan batas bawah: profil yang lebih ketat tidak dapat dilonggarkan kembali oleh penggantian per langkah. Berdasarkan pengukuran pada basis kode ini: dengan mode aman untuk coding atau seimbang, sesi yang belum mengumpulkan riwayat tidak mengompresi apa pun karena keduanya menaikkan ambang batas minimum karakter serta mempertahankan prompt sistem, skema alat, dan hasil alat dalam bentuk aslinya.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresif (default)",
+ "description": "Kebijakan yang diukur oleh tanda terima yang dipublikasikan. Mengubah prompt sistem, dokumentasi alat, dan riwayat padat menjadi citra."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Seimbang",
+ "description": "Mempertahankan status aktif dalam bentuk asli dan melindungi 8 giliran terakhir; hanya meringkas riwayat lama yang sudah ditutup."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Aman untuk coding",
+ "description": "Mempertahankan otoritas, skema alat, dan output alat aktif dalam bentuk asli, serta melindungi 12 giliran terakhir. Tidak mengompresi apa pun hingga sesi mengumpulkan riwayat."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Teruskan tanpa perubahan",
+ "description": "Merutekan tanpa transformasi. Mesin dilewati dan permintaan diteruskan tanpa perubahan."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Pilih profil kompresi OmniGlyph",
"saved": "Disimpan.",
"saveFailed": "Tidak dapat menyimpan.",
"enableAria": "Aktifkan mesin OmniGlyph",
@@ -8809,7 +8820,7 @@
"stateStopped": "Dihentikan",
"stateStarting": "Memulai",
"stateStopping": "Menghentikan",
- "stateError": "Error",
+ "stateError": "Kesalahan",
"stateNotInstalled": "Tidak terinstal",
"stateUnknown": "Tidak diketahui",
"port": "port {port}",
@@ -8897,38 +8908,38 @@
"save": "Simpan"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Mesin Caveman",
+ "description": "Kompresi pesan berbasis aturan, paket bahasa, analitik, dan kontrol mode keluaran.",
"advancedConfig": "Konfigurasi Lanjutan",
"advancedConfigDesc": "Sempurnakan perilaku kompresi",
"aggressiveSettings": "Pengaturan Agresif",
"aggressiveSettingsDesc": "Kompresi maksimum dengan potensi pengorbanan kualitas",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Permintaan",
+ "tokensSaved": "Token yang dihemat",
+ "savingsPercent": "Penghematan %",
+ "avgLatency": "Latensi rata-rata",
+ "languagePacks": "Paket Bahasa",
+ "languagePacksDesc": "Aktifkan aturan kompresi untuk bahasa tertentu.",
"labelAutoTrigger": "Kompres otomatis ketika konteks melebihi",
"labelCompressionRate": "Kekuatan kompresi",
"labelMaxTokens": "Targetkan token per pesan",
"labelMinLength": "Panjang pesan minimum",
"labelMinSavings": "Token minimum untuk disimpan",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Diaktifkan",
+ "autoDetect": "Deteksi bahasa secara otomatis",
+ "rulesCount": "{count} aturan",
"inputCompressionTitle": "Kompresi input",
"inputCompressionDesc": "Tulis ulang riwayat obrolan dengan kata-kata yang lebih singkat. Mengurangi token input sekitar ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Analitik Kompresi",
+ "noAnalytics": "Belum ada analitik kompresi.",
"masterDisabledWarning": "Sakelar utama Penghemat Token dalam keadaan MATI — pengaturan ini tidak akan memengaruhi permintaan sampai Anda mengaktifkannya dari Pengaturan Kompresi atau mengubahnya di sini.",
"outputMode": "Modus Keluaran",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Mode Keluaran",
"quickSettings": "Pengaturan Cepat",
"quickSettingsDesc": "Pengaturan kompresi dasar untuk memulai",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Pelewatan Kejelasan Otomatis",
+ "bypassConditions": "Kondisi pelewatan",
"bypassConditionsList": "keamanan, tidak dapat diubah, klarifikasi, peka terhadap perintah",
"simpleMode": "Sederhana",
"advancedMode": "Lanjutan",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Pengaturan Ultra",
"ultraSettingsDesc": "Kompresi semantik bertenaga SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Berikan respons ringkas. Pertahankan istilah teknis, kode, kesalahan, URL, dan pengidentifikasi.",
+ "full": "Berikan respons singkat dan padat. Pertahankan seluruh substansi teknis.",
+ "ultra": "Berikan respons sangat singkat dengan singkatan teknis umum. Pertahankan simbol secara persis."
}
},
"translator": {
@@ -9199,7 +9210,7 @@
"simpleModePreview": "Pratinjau terjemahan saja",
"simpleModeSend": "Kirim dan lihat respons",
"simpleAdvancedToggle": "Tingkat Lanjut",
- "simpleInputPanelTitle": "Input",
+ "simpleInputPanelTitle": "Masukan",
"simpleInputPanelHint": "Pesan teks bebas atau contoh siap pakai",
"simpleResultPanelTitle": "Terjemahan + Respons",
"narratedDetected": "✓ Terdeteksi: {format}",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Tempel permintaan JSON; formatnya akan dideteksi secara otomatis.",
"advancedPipelineTitle": "Pipeline perantara OpenAI",
"advancedPipelineSubtitle": "Visualisasikan setiap langkah terjemahan (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Transformator Stream (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Mengonversi Chat Completions SSE menjadi Responses API.",
"advancedTestBenchTitle": "Test Bench (8 skenario)",
"advancedTestBenchSubtitle": "Menjalankan semua skenario dan melaporkan lulus/gagal + % kompatibilitas.",
@@ -9228,7 +9239,7 @@
"pipelineStepClientRequestDesc": "Permintaan diterima dalam format klien",
"pipelineStepFormatDetected": "Format Terdeteksi",
"pipelineStepFormatDetectedDesc": "Format sumber terdeteksi otomatis",
- "pipelineStepOpenAIIntermediate": "OpenAI Intermediate",
+ "pipelineStepOpenAIIntermediate": "Perantara OpenAI",
"pipelineStepOpenAIIntermediateDesc": "Diterjemahkan ke format hub OpenAI",
"pipelineStepProviderFormat": "Format Penyedia",
"pipelineStepProviderFormatDesc": "Diterjemahkan ke format target penyedia",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Tersisa",
"kiloPassRenews": "Diperbarui dalam {count} hari",
"kiloPassUsageLabel": "Penggunaan bulan ini",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Kredit Penggunaan Tambahan",
+ "kimiExtraUsage": "Penggunaan Tambahan",
+ "kimiExtraUsageEnabled": "Diaktifkan",
+ "kimiExtraUsageDisabled": "Dinonaktifkan",
+ "kimiExtraUsageFrozen": "Dibekukan",
+ "kimiExtraUsageUnavailable": "Tidak tersedia",
+ "kimiMonthlyUsed": "Digunakan bulan ini",
+ "kimiMonthlyLimit": "Batas bulanan",
+ "kimiMonthlyLimitUnlimited": "Tidak terbatas",
+ "kimiAdditionalCredits": "Kredit Tambahan",
"loggerTab": "penebang",
"proxyTab": "Proksi",
"budgetManagement": "Manajemen Anggaran",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Pemutus Sirkuit",
"lockedIPs": "IP terkunci",
"lockoutsAutoRefreshHint": "Kunci batas kecepatan per model • Refresh otomatis 10 detik",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# terkunci} other {# terkunci}}",
"timeLeft": "{time} tersisa",
"howItWorks": "Cara Kerjanya",
"howItWorksSubtitle": "Pelajari bagaimana evaluasi memvalidasi respons LLM Anda",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Tanggapan dibandingkan dengan kriteria yang diharapkan. Lihat lulus/gagal untuk setiap kasus dengan metrik latensi dan masukan terperinci.",
"evalsStrategyContainsLabel": "Berisi",
"evalsStrategyExactLabel": "Pencocokan Persis",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Ekspresi Reguler",
"evalsStrategyCustomLabel": "Logika Kustom",
"evalsStrategyContainsDescription": "Memeriksa apakah output LLM berisi substring yang diharapkan.",
"evalsStrategyExactDescription": "Memeriksa apakah output LLM sama persis dengan nilai yang diharapkan.",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Model Sedang Diuji",
"searchSuitesPlaceholder": "Ruang pencarian...",
"passSuffix": "lulus",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# kasus} other {# kasus}}",
"runEval": "Jalankan Eval",
"runAllSuites": "Jalankan Semua",
"runAllRunning": "Menjalankan semua...",
"runAllProgress": "Menjalankan {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# rangkaian gagal} other {# rangkaian gagal}}",
"runAllCompleted": "Jalankan {suites} suite — {passed} lulus, {failed} gagal",
"runAllCompletedWithFailures": "Menjalankan {completed} suite; {failedSuites} gagal diselesaikan",
"runningProgress": "Menjalankan {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Batasan Penyedia",
"noProviders": "Tidak Ada Penyedia yang Terhubung",
"connectProvidersForQuota": "Hubungkan ke penyedia dengan OAuth untuk melacak batas dan penggunaan kuota API Anda.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# akun} other {# akun}}",
"filteredFromCount": "(difilter dari {count})",
"autoRefresh": "Segarkan otomatis",
"refreshAll": "Segarkan Semua",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Gagal memperbarui visibilitas kuota",
"account": "Akun",
"modelQuotas": "Kuota Model",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Terakhir Diperbarui",
"actions": "Tindakan",
"refreshQuota": "Segarkan kuota",
"today": "Hari ini",
@@ -9448,9 +9459,9 @@
"cardExpand": "Perluas",
"cardCollapse": "Ciutkan",
"moreQuotas": "+{count} lagi",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Tidak dikelompokkan",
+ "viewFlat": "Datar",
+ "viewByEnvironment": "Berdasarkan Lingkungan",
"noQuotaDataAvailable": "Tidak ada data kuota yang tersedia",
"noAccountsForTierFilter": "Tidak ditemukan akun untuk filter tingkat",
"tierAll": "Semua",
@@ -9461,14 +9472,14 @@
"tierPro": "Pro",
"tierPlus": "Ditambah lagi",
"tierFree": "Gratis",
- "tierLite": "Lite",
+ "tierLite": "Ringan",
"tierUnknown": "Tidak diketahui",
"statTotal": "Total",
"statCritical": "Kritis",
"statAlert": "Peringatan",
"statHealthy": "Sehat",
"filterPurchaseTypeLabel": "Tipe",
- "filterTierLabel": "Tier",
+ "filterTierLabel": "Tingkat",
"purchaseAll": "Semua",
"purchaseOauthSub": "Langganan",
"purchaseOauthFree": "OAuth Gratis",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Tukarkan kredit",
"resetCreditRedeemed": "Reset ditukarkan",
"resetCreditRedeemFailed": "Gagal menukarkan kredit reset",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Gagal menyimpan rangkaian",
"clone": "Klon",
"exportSuite": "Ekspor",
"importSuite": "Impor",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "JSON rangkaian evaluasi tidak valid",
"suiteBuilderCloneSuffix": "salin",
"suiteBuilderImportedSuite": "Suite yang Diimpor",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Kartu Skor",
+ "evalApiKey": "Kunci API",
+ "scorecardPassRate": "Tingkat Kelulusan",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "actualOutputLabel": "Keluaran Aktual",
+ "evalTargetHint": "Pilih model atau kombinasi untuk dievaluasi.",
+ "suiteBuilderDeleted": "Rangkaian berhasil dihapus",
+ "suiteBuilderCaseCardHint": "Tentukan prompt masukan dan kriteria keluaran yang diharapkan.",
+ "nextResetUtc": "Pengaturan ulang berikutnya (UTC)",
+ "scorecardHint": "Tingkat kelulusan gabungan dari semua rangkaian evaluasi.",
+ "suiteLatestRunsHint": "Proses evaluasi terbaru untuk rangkaian ini.",
+ "saving": "Menyimpan",
+ "suiteBuilderCaseModelLabel": "Model (opsional)",
+ "evalControlsTitle": "Kontrol Evaluasi",
+ "suiteBuilderEditTitle": "Edit Rangkaian Evaluasi",
+ "suiteBuilderCaseStrategyLabel": "Strategi Validasi",
+ "notifySelectDifferentCompareTarget": "Pilih target lain untuk perbandingan",
+ "recentRunsHint": "Menampilkan proses evaluasi terbaru. Klik proses untuk melihat hasil terperinci.",
+ "evalCompareHint": "Bandingkan hasil dengan target kedua jika diinginkan.",
+ "suiteBuilderCaseInvalid": "Kasus ini memiliki kesalahan validasi. Harap perbaiki sebelum menyimpan.",
+ "historyEmpty": "Belum ada riwayat evaluasi",
+ "suiteBuilderUpdated": "Suite berhasil diperbarui",
+ "resetInterval": "Atur Ulang Interval",
+ "suiteBuilderCreateTitle": "Buat Suite Evaluasi",
+ "activePeriodSpend": "Pengeluaran Periode Aktif",
+ "evalApiKeyHint": "Pilih kunci API yang akan digunakan untuk permintaan evaluasi.",
+ "evalCompareOptional": "Bandingkan (opsional)",
+ "suiteBuilderDeleteFailed": "Gagal menghapus suite",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Instruksi sistem opsional...",
+ "scorecardCases": "Kasus",
+ "runCompletedWithScore": "Evaluasi selesai — tingkat kelulusan {score}%",
+ "suiteBuilderCustomBadge": "Kustom",
+ "targetSuiteDefaults": "Default suite",
+ "suiteBuilderDeleteConfirm": "Apakah Anda yakin ingin menghapus suite ini? Tindakan ini tidak dapat dibatalkan.",
+ "suiteBuilderNameLabel": "Nama Suite",
+ "scorecardSuites": "Suite",
+ "evalCompareTarget": "Target Perbandingan",
+ "suiteBuilderCaseModelPlaceholder": "mis. gpt-4o-mini",
+ "evalControlsHint": "Konfigurasikan target evaluasi dan kunci API Anda, lalu jalankan suite untuk memvalidasi kualitas model.",
+ "recentRunsTitle": "Proses Terbaru",
+ "suiteBuilderCaseSystemPromptLabel": "Prompt Sistem",
+ "suiteBuilderCaseExpectedPlaceholder": "mis. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "misalnya def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Tempelkan respons yang diharapkan secara tepat",
"suiteBuilderCaseExpectedPlaceholderRegex": "misalnya ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Gunakan ekspresi reguler JavaScript tanpa menambahkan garis miring.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
+ "suiteBuilderNamePlaceholder": "mis. Suite Kualitas Pengodean",
+ "suiteBuilderAddCase": "Tambahkan Kasus",
+ "cancel": "Batal",
"evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderCaseNameLabel": "Nama Kasus",
+ "weeklyLimitUsd": "Batas Mingguan (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "mis. Tulis fungsi fibonacci dalam Python",
+ "suiteBuilderNameRequired": "Nama suite wajib diisi",
+ "suiteBuilderCaseUserPromptLabel": "Prompt Pengguna",
+ "daily": "Harian",
+ "resultErrorLabel": "Kesalahan",
+ "suiteBuilderBuiltInBadge": "Bawaan",
+ "suiteBuilderCaseCardTitle": "Kasus Uji",
"suiteBuilderDuplicateCase": "Duplikat",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
+ "weeklyLimitPlaceholder": "mis. 50.00",
+ "suiteBuilderCaseTagsHint": "Tag yang dipisahkan dengan koma untuk mengatur kasus uji.",
+ "notifyEvalRunFailedWithReason": "Evaluasi gagal: {reason}",
+ "weekly": "Mingguan",
+ "runEvalRunning": "Menjalankan evaluasi...",
+ "delete": "Hapus",
+ "resetTimeUtc": "Waktu Reset (UTC)",
+ "evalApiKeyAuto": "Otomatis (gunakan default)",
+ "suiteBuilderDescriptionPlaceholder": "Deskripsi opsional tentang apa yang diuji oleh rangkaian ini...",
+ "targetComparisonTitle": "Perbandingan Target",
+ "save": "Simpan",
+ "suiteBuilderCreated": "Rangkaian berhasil dibuat",
+ "suiteLatestRuns": "Proses Terbaru",
+ "suiteBuilderCaseExpectedLabel": "Nilai yang Diharapkan",
+ "historyLatency": "Latensi",
+ "suiteBuilderCaseTagsPlaceholder": "mis. coding, python",
+ "targetTypeCombo": "Kombinasi",
+ "scorecardPassed": "Lulus",
+ "suiteBuilderCaseTagsLabel": "Tag",
+ "suiteBuilderNewSuite": "Rangkaian Baru",
+ "notifyEvalLoadFailed": "Gagal memuat data evaluasi",
+ "notConfigured": "Belum Dikonfigurasi",
+ "suiteBuilderCaseNamePlaceholder": "mis. pengujian Fibonacci Python",
"intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "suiteBuilderCreateAction": "Buat Rangkaian",
+ "suiteBuilderCasesHint": "Setiap kasus mengirimkan prompt dan memvalidasi respons.",
+ "suiteBuilderUpdatedAt": "Diperbarui",
+ "errorBadge": "Kesalahan",
+ "suiteBuilderCasesTitle": "Kasus Uji",
+ "edit": "Sunting",
+ "monthly": "Bulanan",
+ "suiteBuilderCasesRequired": "Setidaknya satu kasus uji diperlukan",
+ "weeklyLimitSummary": "Ringkasan batas anggaran mingguan",
+ "suiteBuilderDescriptionLabel": "Deskripsi",
+ "targetComparisonHint": "Perbandingan hasil evaluasi antartarget secara berdampingan.",
+ "compareCompletedWithScore": "Perbandingan selesai — tingkat kelulusan {score}%",
+ "staleQuotaTooltip": "Penyegaran terakhir gagal — menampilkan data cache",
"quotaThresholdLabel": "menit ke kiri",
"quotaCutoffsColumnHelp": "Hentikan permintaan ketika sisa kuota mencapai persentase ini atau lebih rendah.",
"quotaCutoffsButtonDefault": "Bawaan",
@@ -9859,19 +9870,19 @@
"backToLogin": "Kembali ke Masuk",
"forgotPassword": "Lupa kata sandi?",
"continueWithOidc": "Lanjutkan dengan OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Kata sandi default: CHANGEME (kecuali INITIAL_PASSWORD telah ditetapkan)",
"Authorization": "Otorisasi",
"Content-Disposition": "Disposisi Konten",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "Menunggu otorisasi...",
+ "waitingForGoogleAuthorization": "Menunggu otorisasi Google...",
+ "waitingForOpenAIAuthorization": "Menunggu otorisasi OpenAI...",
+ "waitingForAntigravityAuthorization": "Menunggu otorisasi Antigravity...",
+ "waitingForQoderAuthorization": "Menunggu otorisasi Qoder...",
+ "exchangingCodeForTokens": "Menukar kode dengan token...",
+ "nodeIncompatibleTitle": "Versi Node.js Tidak Kompatibel",
+ "nodeIncompatibleDesc": "Anda menjalankan Node.js {version}, yang berada di luar kebijakan runtime aman yang didukung OmniRoute. Gunakan rilis Node.js 20.x atau 22.x LTS yang telah ditambal.",
+ "nodeIncompatibleFixLabel": "Perbaikan: instal rilis Node.js 22 LTS yang telah ditambal",
+ "nodeIncompatibleHint": "OmniRoute memerlukan Node.js 22.22.2+ (22.x LTS) atau 24.0.0+ (24.x LTS). Node 24 LTS direkomendasikan.",
"resetViaAppDataTitle": "Reset melalui Data Aplikasi",
"resetViaAppDataDescription": "Hapus file pengaturan dari direktori data aplikasi untuk mengatur ulang kata sandi Anda:",
"quitDesktopApp": "Tutup aplikasi desktop OmniRoute sepenuhnya",
@@ -10027,7 +10038,7 @@
"supportedProvidersToc": "Penyedia",
"commonUseCases": "Kasus Penggunaan Umum",
"clientCompatibility": "Kompatibilitas Klien",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Protokol",
"apiReference": "Referensi API",
"managementApiReference": "Referensi API Manajemen",
"managementApiDescription": "Endpoint automasi untuk registry proxy, assignment scope, dan migrasi proxy lama.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Instal OmniRoute sebagai Aplikasi Web Progresif di browser Android, iOS, dan desktop.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Jalankan OmniRoute tanpa antarmuka di Android melalui Termux. Akses dasbor dari peramban seluler Anda.",
"featureRoutingTitle": "Perutean Multi-Penyedia",
"featureRoutingText": "Rutekan permintaan ke 30+ penyedia AI melalui satu titik akhir yang kompatibel dengan OpenAI. Mendukung API obrolan, respons, audio, dan gambar.",
"featureCombosTitle": "Kombo dan Penyeimbangan",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Gunakan OmniRoute sebagai URL dasar yang stabil sambil merotasi akun atau kombo penyedia di bawahnya.",
"clientKimiBullet2": "Lebih memilih model awalan dalam alur pengkodean sehingga fallback dan jejak audit tetap eksplisit.",
"clientKimiBullet3": "Gunakan `/v1/responses` bila Anda menginginkan perutean gaya Respons asli untuk klien yang menggunakan alat.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protokol: MCP & A2A",
+ "protocolsDescription": "OmniRoute menyediakan dua protokol operasional selain API yang kompatibel dengan OpenAI: MCP untuk eksekusi alat dan A2A untuk alur kerja antaragen.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Gunakan MCP melalui stdio agar klien dapat menemukan dan memanggil alat OmniRoute dengan visibilitas audit.",
+ "protocolMcpStep1": "Mulai transpor MCP dengan `omniroute --mcp`.",
+ "protocolMcpStep2": "Arahkan klien MCP Anda ke transpor stdio.",
+ "protocolMcpStep3": "Panggil `omniroute_get_health` dan `omniroute_list_combos` untuk memvalidasi konektivitas.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Gunakan A2A JSON-RPC untuk mengirimkan tugas secara sinkron atau melalui streaming SSE.",
+ "protocolA2aStep1": "Baca `/.well-known/agent.json` untuk penemuan agen.",
+ "protocolA2aStep2": "Kirim permintaan `message/send` atau `message/stream` ke `POST /a2a`.",
+ "protocolA2aStep3": "Kelola siklus hidup tugas dengan `tasks/get` dan `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Pemecahan Masalah Protokol",
+ "protocolTroubleshooting1": "Jika status MCP luring, pastikan proses stdio sedang berjalan dan file heartbeat terus diperbarui.",
+ "protocolTroubleshooting2": "Jika tugas A2A tetap dalam status `working`, periksa `/api/a2a/tasks/:id` dan peristiwa streaming untuk mengetahui status terminal.",
+ "protocolTroubleshooting3": "Gunakan `/dashboard/mcp` dan `/dashboard/a2a` untuk kontrol operasional dan visibilitas audit.",
"endpointChatNote": "Titik akhir obrolan yang kompatibel dengan OpenAI (default).",
"endpointResponsesNote": "Titik akhir API respons (Codex, o-series).",
"endpointModelsNote": "Katalog model untuk semua penyedia yang terhubung.",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute adalah perangkat lunak sumber terbuka. Anda bebas memeriksa, memodifikasi, dan mendistribusikannya berdasarkan ketentuan lisensinya."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "Agen CLI",
+ "description": "Temukan agen CLI yang terinstal di sistem Anda. Tambahkan agen khusus untuk deteksi otomatis.",
+ "refresh": "Segarkan",
+ "installed": "Terinstal",
+ "notFound": "Tidak Ditemukan",
+ "builtIn": "Bawaan",
+ "custom": "Khusus",
+ "remove": "Hapus",
+ "addCustomAgent": "Tambahkan Agen Khusus",
+ "addCustomAgentDesc": "Daftarkan alat CLI apa pun untuk dideteksi. Alat tersebut akan dipindai secara otomatis saat dimuat ulang.",
+ "agentName": "Nama Agen",
+ "binaryName": "Nama Biner",
+ "versionCommand": "Perintah Versi",
+ "spawnArgs": "Argumen Spawn",
+ "addAgent": "Tambahkan Agen",
+ "scanning": "Memindai sistem untuk mencari agen CLI...",
+ "opencodeIntegration": "Integrasi OpenCode",
+ "opencodeDetected": "opencode {version} terdeteksi",
+ "opencodeDesc": "Buat {configFile} siap pakai dengan URL dasar OmniRoute Anda dan semua model yang tersedia — letakkan di root proyek Anda dan jalankan {command}.",
+ "downloadConfig": "Unduh {file}",
+ "downloaded": "Berhasil diunduh!",
+ "setupGuideTitle": "Panduan penyiapan",
+ "openCliTools": "Buka Alat CLI",
+ "setupGuideDetectCliTitle": "Deteksi CLI yang terinstal",
+ "setupGuideDetectCliDesc": "Klik Muat Ulang setelah menginstal atau memperbarui CLI agar OmniRoute dapat memindai ulang biner dan versinya.",
+ "setupGuideCustomAgentTitle": "Daftarkan biner kustom",
+ "setupGuideCustomAgentDesc": "Gunakan Tambahkan Agen Kustom jika CLI Anda tidak ada dalam daftar bawaan. Masukkan nama biner dan perintah versi.",
+ "setupGuideCommandMissingTitle": "Perbaiki 'perintah tidak ditemukan'",
+ "setupGuideCommandMissingDesc": "Pastikan perintah CLI tersedia di PATH, buka sesi terminal baru, lalu jalankan kembali Muat Ulang.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10482,17 +10493,17 @@
"command": "Perintah",
"code_change": "Perubahan kode",
"message": "Pesan",
- "error": "Error",
+ "error": "Kesalahan",
"completion": "Penyelesaian"
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "Obrolan Sederhana",
+ "streaming": "Pengaliran",
+ "system-prompt": "Prompt Sistem",
+ "thinking": "Penalaran",
+ "tool-calling": "Pemanggilan Alat",
+ "multi-turn": "Multi-giliran",
"vision": "Visi",
"schema-coercion": "Pemaksaan Skema"
},
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Pengelolaan Cache",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Muat Ulang",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Entri Memori",
+ "memoryEntriesSub": "LRU dalam memori",
+ "dbEntries": "Entri DB",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
+ "cacheHits": "Cache Hit",
+ "cacheHitsSub": "dari total {total}",
+ "tokensSaved": "Token yang Dihemat",
+ "tokensSavedSub": "Estimasi dari hit",
+ "hitRate": "Rasio Hit",
+ "performance": "Performa Cache",
+ "autoRefresh": "Dimuat ulang otomatis setiap {seconds} dtk",
+ "hits": "Hit",
+ "misses": "Miss",
"total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "behavior": "Perilaku Cache",
+ "behaviorDeterministic": "Hanya permintaan non-streaming dengan temperature=0 yang disimpan dalam cache.",
+ "behaviorBypass": "Lewati dengan header {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL default: 30 menit. Konfigurasikan melalui {envVar}.",
+ "idempotency": "Lapisan Idempotensi",
+ "activeDedupKeys": "Kunci Deduplikasi Aktif",
+ "dedupWindow": "Jendela Deduplikasi",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Gagal menghapus cache.",
+ "unavailable": "Cache tidak tersedia",
+ "unavailableDesc": "Tidak dapat mengambil statistik cache. Pastikan server sedang berjalan.",
"loadingCacheAria": "Memuat cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Cache Prompt (Sisi Penyedia)",
+ "semanticCache": "Cache Semantik",
+ "promptCacheSectionDesc": "Menampilkan aktivitas cache prompt sisi penyedia dari riwayat penggunaan sehingga Anda dapat melihat di mana kontrol cache aktif dan seberapa banyak input digunakan kembali.",
+ "promptTrendDesc": "Volume permintaan per jam, cakupan cache, dan volume pembacaan cache selama 24 jam terakhir.",
+ "cachedRequests": "Permintaan yang Di-cache",
+ "cachedRequests24h": "Permintaan yang Di-cache (24 jam)",
+ "cacheHitRate": "Tingkat Hit Cache",
+ "cacheRate": "Tingkat Cache",
+ "cacheRateDesc": "dari total permintaan",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Metrik Cache Prompt",
+ "withCacheControl": "Dengan Kontrol Cache",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Rasio Penggunaan Kembali Cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Est. Biaya yang Dihemat",
+ "lastUpdated": "Terakhir diperbarui",
+ "hoursTracked": "jam yang dilacak",
+ "busiestHour": "Jam Tersibuk",
+ "peakCacheRate": "Tingkat Cache Puncak",
+ "trendHour": "Jam",
+ "activityVolume": "Aktivitas",
+ "requestsShort": "permintaan",
+ "inputShort": "Masuk",
+ "cachedShort": "Di-cache",
+ "writeShort": "Tulis",
+ "resetting": "Mengatur ulang...",
+ "resetMetrics": "Atur Ulang Metrik",
+ "byProvider": "Rincian berdasarkan Penyedia",
+ "providerCacheRateDesc": "Setiap penyedia menampilkan total token input, token pembacaan cache, dan token penulisan cache sehingga Anda dapat memverifikasi rasio penggunaan kembali terhadap total mentah.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Permintaan",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Tren Cache (24 jam)",
+ "peakCached": "Cache tertinggi",
+ "cached": "Di-cache",
+ "overview": "Ringkasan",
"tableProvider": "Penyedia",
"tableModel": "Model",
"performanceTitle": "Performa",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "Cache respons deterministik milik OmniRoute. Saat diaktifkan, permintaan berulang non-streaming dengan temperature=0 dapat dilayani secara lokal tanpa mengakses penyedia upstream.",
+ "semanticCacheDisabledDesc": "Cache semantik dinonaktifkan. OmniRoute akan melewati penggunaan ulang respons lokal hingga Anda mengaktifkannya kembali di Pengaturan.",
+ "semanticEntriesDesc": "Catatan cache semantik persisten yang saat ini disimpan di SQLite. Aktivitas cache prompt di sisi penyedia tidak tercantum di sini.",
+ "searchEntries": "Cari entri...",
+ "search": "Cari",
+ "loading": "Memuat...",
+ "entriesLoadError": "Gagal memuat entri cache semantik.",
+ "noEntries": "Tidak ada entri cache yang ditemukan",
+ "noPromptCacheData": "Belum ada aktivitas cache prompt di sisi penyedia yang tercatat.",
+ "noTrendData": "Tidak ada aktivitas cache prompt yang tercatat selama 24 jam terakhir.",
+ "signature": "Tanda tangan",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Dibuat",
+ "expires": "Kedaluwarsa",
+ "actions": "Tindakan",
+ "deduplicatedRequests": "Permintaan yang Diduplikasi",
+ "savedCalls": "Panggilan API yang Dihemat",
+ "totalProcessed": "Total Permintaan yang Diproses",
+ "disabled": "Dinonaktifkan",
+ "totalRequests": "Total Permintaan",
"reasoningCache": "Pemutaran Ulang Penalaran",
"reasoningCacheDesc": "Mempertahankan pemikiran model untuk alur pemanggilan alat multi-putaran",
"reasoningEntries": "Entri Aktif",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes}m yang lalu",
"hoursAgo": "{hours}j yang lalu",
"daysAgo": "{days}h yang lalu",
- "entries": "Entries"
+ "entries": "Entri"
},
"proxyConfigModal": {
"levelGlobal": "Global",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "Tempelkan kunci API Devin yang ada dari sesi Devin yang terautentikasi. Ketersediaan ekspor kunci dan langkah-langkahnya bervariasi tergantung versi Devin dan akun.",
"devinPasteDescription": "Berikan WINDSURF_API_KEY Anda (diperoleh melalui `devin auth login`, atau melalui perintah IDE Windsurf \"Windsurf: Provide Auth Token\").",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Kunci API / Token",
"saving": "Menyimpan…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Hubungkan IDE Kursor",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Masuk dengan Cursor",
+ "tabImport": "Impor token",
+ "loginDescription": "Membuka halaman masuk Cursor di browser. Berfungsi di Docker — setujui di browser host Anda, lalu kembali ke sini.",
+ "loginWithCursor": "Masuk dengan Cursor",
+ "startingLogin": "Memulai…",
+ "waitingApproval": "Menunggu persetujuan masuk Cursor…",
+ "openUrlHint": "Jika browser tidak terbuka:",
+ "openLoginLink": "Buka halaman masuk",
+ "cancelLogin": "Batalkan login",
"autoDetecting": "Token yang terdeteksi secara otomatis...",
"readingFromCursor": "Membaca dari IDE Kursor atau agen kursor",
"tokensAutoDetected": "Token berhasil terdeteksi secara otomatis dari Cursor IDE!",
"cursorNotDetected": "IDE kursor tidak terdeteksi. Harap tempelkan token Anda secara manual.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Berjalan di Docker? Sebaiknya Masuk dengan Cursor. Impor otomatis IDE dan cursor-agent biasanya tidak tersedia di dalam container. Lihat docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Akses Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Token Penyegaran",
+ "refreshTokenPlaceholder": "Opsional — memungkinkan penyegaran token otomatis",
"required": "*",
"accessTokenPlaceholder": "Token akses akan terisi secara otomatis...",
"machineId": "ID Mesin",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Token deteksi otomatis gagal",
"errorEnterToken": "Silakan masukkan token akses",
"errorImportFailed": "Impor gagal",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Gagal memulai login Cursor",
+ "errorLoginPoll": "Login Cursor gagal",
+ "errorLoginTimeout": "Waktu login Cursor habis — coba lagi"
},
"pricingModal": {
"title": "Konfigurasi Harga",
@@ -10839,9 +10850,9 @@
"selectProxy": "Pilih {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Impor Versi Lama",
+ "bulkAssign": "Tetapkan Massal",
+ "addProxy": "Tambahkan Proksi",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Uji",
+ "edit": "Ubah",
+ "delete": "Hapus",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Gagal",
"successRate": "{rate}% sukses",
"avgLatency": "Rata-rata {latency}ms",
"assignmentsCount": "{count} tugas",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency}md",
"testFailure": "✗ {error}",
"repair": "Perbaiki",
"relayAuthMissing": "autentikasi hilang",
@@ -10938,7 +10949,7 @@
"batchSelectedCount": "{count} dipilih",
"batchDeleteSelected": "Hapus {count} yang dipilih",
"batchActivateSelected": "Aktifkan {count} yang dipilih",
- "testPassed": "✓ OK",
+ "testPassed": "✓ Oke",
"close": "Tutup",
"managePool": "Kelola Pool",
"poolTitle": "Pool & Rotasi Proksi",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Strategi rotasi",
"poolStrategyHint": "round-robin menggilir anggota secara berurutan; random memilih secara seragam; sticky mempertahankan satu anggota selama periode tertentu; latency-optimized memilih yang tercepat berdasarkan log.",
"poolStrategyFailed": "Gagal memperbarui strategi rotasi",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Bergiliran",
"strategyRandom": "Acak",
- "strategySticky": "Sticky",
+ "strategySticky": "Tetap",
"strategyLatency": "Dioptimalkan untuk latensi",
"poolMembersLabel": "Anggota pool ({count})",
"poolNoMembers": "Belum ada proksi di pool ini.",
+ "poolEgressObservation": "{exits, plural, one {# jalur keluar} other {# jalur keluar}} digunakan oleh {connections, plural, one {# koneksi} other {# koneksi}} · hingga {max} pada satu jalur keluar · {hours} jam terakhir",
+ "poolEgressObservationEmpty": "Tidak ada lalu lintas yang teramati dalam {hours} jam terakhir",
+ "poolEgressObservationHint": "Dihitung dari log proksi selama rentang waktu tersebut: IP keluar unik yang teramati untuk anggota kumpulan ini, serta koneksi OmniRoute yang menggunakannya. \"Pada satu jalur keluar\" berarti selama rentang waktu tersebut, bukan pada saat yang sama. Penguncian 429 per IP hanya menjeda koneksi dari keluarga penyedia yang sama.",
"poolRemove": "Hapus",
"poolRemoveFailed": "Gagal menghapus proksi dari pool",
"poolAddLabel": "Tambahkan proksi",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "endpoint": "Titik akhir",
+ "provider": "Penyedia",
"model": "Model",
"accountKey": "Account Key",
"autoAccounts": "Otomatis ({count} akun)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Kirim",
+ "cancel": "Batal",
+ "audioFile": "File Audio",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Hapus Semua",
+ "request": "Permintaan",
+ "response": "Respons",
+ "transcription": "Transkripsi",
+ "copy": "Salin",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Menghasilkan {count} gambar",
"generatedImage": "Gambar yang dihasilkan {index}",
- "save": "Save",
+ "save": "Simpan",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Respons",
"completions": "Penyelesaian",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Penyematan",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderasi",
- "rerank": "Rerank",
+ "rerank": "Peringkat ulang",
"search": "Search",
"webFetch": "Pengambilan web"
},
"conversationalChat": "Obrolan Percakapan",
"clearChat": "Hapus obrolan",
"typeMessagePlaceholder": "Ketik pesan... (Shift+Enter untuk baris baru)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Obrolan",
+ "tabCompare": "Bandingkan",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Bangun",
+ "configPane": "Konfigurasi",
+ "systemPrompt": "Prompt sistem",
+ "systemPromptPlaceholder": "Anda adalah asisten yang siap membantu.",
+ "modelPlaceholder": "mis. openai/gpt-4o",
+ "endpointLabel": "Titik akhir",
+ "parametersLabel": "Parameter",
+ "collapseConfig": "Ciutkan panel konfigurasi",
+ "expandConfig": "Perluas panel konfigurasi",
+ "temperature": "Temperatur",
+ "maxTokens": "Token maksimum",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Penalti kehadiran",
+ "frequencyPenalty": "Penalti frekuensi",
"reasoningLabel": "Penalaran",
"thinking": "Berpikir",
"effort": "Upaya",
- "effortDefault": "Default",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "effortDefault": "Bawaan",
+ "seedPlaceholder": "Acak (biarkan kosong)",
+ "presetsLabel": "Preset",
+ "loadPreset": "Muat preset",
+ "savePreset": "Simpan preset",
+ "noPresets": "Tidak ada preset",
+ "presetNamePlaceholder": "Nama preset",
+ "savingPreset": "Menyimpan…",
+ "nameRequired": "Nama wajib diisi",
+ "failedToSavePreset": "Gagal menyimpan preset",
+ "improvePrompt": "Tingkatkan prompt",
+ "improvingPrompt": "Meningkatkan…",
+ "improvePromptTitle": "Tingkatkan prompt Anda dengan AI",
+ "setModelFirst": "Tetapkan model terlebih dahulu",
"setModelInConfigFirst": "Atur model di panel Konfigurasi terlebih dahulu.",
"improvePromptFailed": "Gagal menyempurnakan prompt.",
"improvePromptAria": "Sempurnakan prompt menggunakan AI",
"confirmImprovePrompt": "Konfirmasi penyempurnaan prompt",
"improvePromptDescription": "Ini akan mengirimkan prompt sistem Anda saat ini ke skip:<reason>).",
"gates": {
"model": {
- "label": "Model",
+ "label": "Ụdị",
"pass": "claude-fable-5 (a tụrụ); gpt-5.6 (JIDE)",
"why": "Naanị ụzọ Fable 5 a tụrụ ka agbanyere na OmniRoute. Ngwugwu ahụ na-akwado GPT 5.6 n'usoro nhazi, mana a ka na-egbochi ya ruo mgbe nkwenye provider ya dị; ezinụlọ ndị a na-akwadoghị dịka Grok ga-anọgide na-eji naanị ederede."
},
@@ -9120,7 +9124,7 @@
"chatTesterFlow": "Arịrịọ Client → Nchọpụta Ụdị → OpenAI Etiti → Ụdị Provider → Nzaghachi",
"clickStepToInspect": "Pịa nzọụkwụ ọ bụla iji nyochaa data dị n'ọkwa ahụ.",
"clientFormat": "Ụdị Client",
- "provider": "Provider",
+ "provider": "Onye na-eweta ọrụ",
"modelPlaceholder": "Họrọ ma ọ bụ pịnye aha model...",
"sendMessageToSeePipeline": "Zipụ ozi ka ịhụ pipeline ntụgharị asụsụ",
"chatMessageHintPrefix": "A ga-ahazi ozi gị dịka arịrịọ",
@@ -9173,8 +9177,8 @@
"comboRouted": "Combo ndị e zigara n'ụzọ",
"uniqueEndpoints": "Endpoint pụrụ iche",
"routeDetails": "Nkọwa ụzọ",
- "comboBadge": "Combo",
- "routeEndpointLabel": "Endpoint",
+ "comboBadge": "Ngwakọta",
+ "routeEndpointLabel": "Ebe njedebe",
"routeConnectionLabel": "Njikọ",
"scenarioVision": "Ọhụụ (nghọta onyonyo)",
"scenarioSchemaCoercion": "Ịmanye schema (mmepụta ahaziri ahazi)",
@@ -9222,7 +9226,7 @@
"advancedRawJsonSubtitle": "Mado arịrịọ JSON; a ga-achọpụta ụdị ya na akpaghị aka.",
"advancedPipelineTitle": "Usoro etiti OpenAI",
"advancedPipelineSubtitle": "Gosipụta usoro ntụgharị ọ bụla n'ụzọ anya (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Ihe Ngbanwe Iyi (Nkata → Nzaghachi SSE)",
"advancedStreamTransformSubtitle": "Na-agbanwe Chat Completions SSE ka ọ bụrụ Responses API.",
"advancedTestBenchTitle": "Oche Nnwale (ọnọdụ 8)",
"advancedTestBenchSubtitle": "Na-eme ọnọdụ niile ma na-akọ gafere/dara + ndakọrịta %.",
@@ -9298,7 +9302,7 @@
"loadingBudgetData": "Na-ebunye data mmefu ego...",
"noApiKeysTitle": "Enweghị API Keys",
"noApiKeysDescription": "Buru ụzọ tinye API keys iji hazie oke mmefu ego.",
- "apiKey": "API Key",
+ "apiKey": "Igodo API",
"todaysSpend": "Mmefu nke taa",
"thisMonth": "Ọnwa a",
"setLimits": "Tọọ oke",
@@ -9324,7 +9328,7 @@
"openCircuitBreakersDetected": "Achọpụtara circuit breakers mepere emepe",
"hitRate": "Ọnụọgụ Mmezu",
"hitsMisses": "Mmezu / Agbaghara",
- "circuitBreakers": "Circuit Breakers",
+ "circuitBreakers": "Ndị nkwụsị sekit",
"lockedIPs": "IP ndị akpọchiri",
"lockoutsAutoRefreshHint": "Mkpọchi oke arịrịọ maka model ọ bụla • Mmelite akpaka 10s",
"lockedCount": "{count, plural, one {# akpọchiri} other {# akpọchiri}}",
@@ -9960,7 +9964,7 @@
"featureCloudSyncDesc": "Mekọrịta nhazi gị n'ofe ngwaọrụ ozugbo.",
"featureCliSupportTitle": "Nkwado CLI",
"featureCliSupportDesc": "Ọ na-arụ ọrụ na Claude Code, Codex, Cline, Cursor, na ndị ọzọ.",
- "featureDashboardTitle": "Dashboard",
+ "featureDashboardTitle": "Dasbọọdụ",
"featureDashboardDesc": "Dashboard anya maka nyocha okporo ụzọ ozugbo.",
"howItWorks": "Otu OmniRoute Si Arụ Ọrụ",
"howItWorksDescription": "Data na-aga nke ọma site na ngwa gị, gafee oyi akwa ntụgharị nwere ọgụgụ isi anyị, ruo na onye na-eweta kacha mma maka ọrụ ahụ.",
@@ -10100,7 +10104,7 @@
"providersCount": "Ndị na-eweta ọrụ {count}",
"providerTypeFree": "Ọkwa N'efu",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
+ "providerTypeApiKey": "Igodo API",
"useCaseSingleEndpointTitle": "Otu endpoint maka ọtụtụ ndị na-eweta ọrụ",
"useCaseSingleEndpointText": "Tụnye ndị ahịa aka n'otu base URL ma mee routing site na prefix nke ụdị (dịka ọmụmaatụ: gh/, cc/, kr/, openai/).",
"useCaseFallbackTitle": "Fallback na ịgbanwe ụdị site na combos",
@@ -10108,8 +10112,8 @@
"useCaseUsageVisibilityTitle": "Nghọta banyere ojiji, ụgwọ na debug",
"useCaseUsageVisibilityText": "Soro token na ụgwọ dịka onye na-eweta ọrụ, akaụntụ, na API key si dị na taabụ Usage na Analytics.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
+ "baseUrlLabel": "URL ndabere",
+ "chatEndpointLabel": "Ebe njedebe nkata",
"modelRecommendationLabel": "Nkwado ụdị: prefix doro anya",
"clientCodexTitle": "Ụdị Codex / GitHub Copilot",
"clientCodexBullet1": "Jiri NJ ụdị nwere",
@@ -10135,7 +10139,7 @@
"clientKimiBullet1": "Jiri OmniRoute dịka base URL kwụsiri ike mgbe ị na-agbanwe akaụntụ ma ọ bụ ngwakọta provider ndị dị n'okpuru ya.",
"clientKimiBullet2": "Họrọ model nwere nganiihu na usoro coding ka fallback na ndekọ audit nọgide bụrụ ihe doro anya.",
"clientKimiBullet3": "Jiri `/v1/responses` mgbe ịchọrọ routing ụdị Responses nke mbụ maka clients na-eji tools.",
- "protocolsTitle": "Protocols: MCP & A2A",
+ "protocolsTitle": "Usoro njikọ: MCP & A2A",
"protocolsDescription": "OmniRoute na-enye protocols arụmọrụ abụọ na mgbakwunye na APIs dakọtara na OpenAI: MCP maka imezu tools na A2A maka usoro ọrụ agent-na-agent.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
"protocolMcpDesc": "Jiri MCP site na stdio ka clients nwee ike ịchọpụta ma kpọọ tools OmniRoute, ebe a na-ahụkwa audit.",
@@ -10170,7 +10174,7 @@
"mgmtLegacyMigrationNote": "Bubata maapụ proxyConfig ochie n'ime nkesa ndekọ.",
"modelPrefixesDescriptionStart": "Jiri nganiihu provider tupu aha model iji duzie ya gaa na provider akọwapụtara. Ọmụmaatụ:",
"modelPrefixesDescriptionEnd": "na-eduga na GitHub Copilot.",
- "provider": "Provider",
+ "provider": "Onye na-eweta ọrụ",
"type": "Ụdị",
"troubleshootingModelRouting": "Ọ bụrụ na client ada na nhazi ụzọ model, jiri provider/model doro anya (dịka ọmụmaatụ: gh/gpt-5.1-codex).",
"troubleshootingAmbiguousModels": "Ọ bụrụ na ịnata njehie model na-edoghị anya, họrọ nganiihu provider kama iji naanị ID model.",
@@ -10218,7 +10222,7 @@
"mcpToolsMemoryDesc": "Chọọ, tinye, ma hichapụ ndenye ncheta mkparịta ụka na-adịgide adịgide.",
"mcpToolsSkillsTitle": "Nkà",
"mcpToolsSkillsDesc": "Depụta, mee ka ọ rụọ ọrụ, mee, ma nyochaa mmezu nkà ahaziri.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "Ngwakọta akpaaka",
"featureAutoComboText": "Mepụta combo ndị ahaziri nke ọma na-akpaghị aka dabere na ndị na-eweta ọrụ ị jikọtara, usoro ojiji gị, na ikike model.",
"featureSearchTitle": "Nchọgharị Weebụ",
"featureSearchText": "Nchọgharị weebụ agbakwunyere nke nwere ndị na-eweta ọrụ 5 (Serper, Brave, Exa, Tavily, Perplexity), tinyere nyocha data na nsuso ọnụ ahịa.",
@@ -10573,7 +10577,7 @@
"unavailableDesc": "Enweghị ike iweta ọnụ ọgụgụ cache. Gbaa mbọ hụ na sava ahụ na-arụ ọrụ.",
"loadingCacheAria": "Na-ebunye cache",
"promptCache": "Prompt Cache (N'akụkụ Provider)",
- "semanticCache": "Semantic Cache",
+ "semanticCache": "Nchekwa Semantiki",
"promptCacheSectionDesc": "Na-egosi ọrụ prompt caching nke provider site n'akụkọ ojiji ka ị nwee ike ịhụ ebe cache control na-arụ ọrụ na ole ntinye a na-ejigharị.",
"promptTrendDesc": "Ọnụọgụ arịrịọ kwa elekere, mkpuchi cache, na ọnụọgụ ọgụgụ cache n'ime awa 24 gara aga.",
"cachedRequests": "Arịrịọ Echekwara na Cache",
@@ -10614,7 +10618,7 @@
"cached": "Echekwara na cache",
"overview": "Nchịkọta",
"tableProvider": "Onye Na-enye Ọrụ",
- "tableModel": "Model",
+ "tableModel": "Ụdị",
"performanceTitle": "Ịrụ Ọrụ",
"semanticCacheSectionDesc": "Cache nzaghachi doro anya nke OmniRoute n'onwe ya. Mgbe agbanyere ya, enwere ike ijere arịrịọ temperature=0 na-adịghị eji streaming ma na-emegharị ugboro ugboro n'ime mpaghara na-akpọtụrụghị onye na-enye ọrụ upstream.",
"semanticCacheDisabledDesc": "Agbanyụrụ cache semantiki. OmniRoute agaghị eji nzaghachi mpaghara ọzọ ruo mgbe ị gbanyere ya ọzọ na Settings.",
@@ -10676,7 +10680,7 @@
},
"proxyConfigModal": {
"levelGlobal": "Ụwa Niile",
- "levelProvider": "Provider",
+ "levelProvider": "Onye na-eweta ọrụ",
"levelCombo": "Ngwakọta",
"levelKey": "Igodo",
"levelDirect": "Kpọmkwem (enweghị proxy)",
@@ -10689,9 +10693,9 @@
"custom": "Nke ahaziri iche",
"selectSavedProxyPlaceholder": "Họrọ proxy echekwara...",
"proxyType": "Ụdị Proxy",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
+ "host": "Onye nnabata",
+ "hostPlaceholder": "1.2.3.4 ma ọ bụ proxy.example.com",
+ "port": "Ọdụ ụgbọ mmiri",
"authOptional": "Nyocha njirimara (nhọrọ)",
"username": "Aha njirimara",
"usernamePlaceholder": "Aha njirimara",
@@ -10772,7 +10776,7 @@
"devinDesktopPasteDescription": "Nye igodo Devin API dị adị sitere na nnọkọ Devin a nyochara njirimara ya. Nnweta na usoro mbupụ igodo dịgasị iche dabere na ụdị Devin na akaụntụ.",
"devinPasteDescription": "Nye WINDSURF_API_KEY gị (nke enwetara site na `devin auth login`, ma ọ bụ site na iwu Windsurf IDE \"Windsurf: Provide Auth Token\").",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json nke Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Igodo API / Token",
"saving": "Na-echekwa…",
@@ -10802,8 +10806,8 @@
"tokensAutoDetected": "Achọpụtara token nke ọma na-akpaghị aka site na Cursor IDE!",
"cursorNotDetected": "Achọpụtaghị Cursor IDE. Tapawa access token gị (yana refresh token ma ọ bụrụ na ọ dị).",
"dockerImportHint": "Ị na-eji Docker? Ọ ka mma iji Login with Cursor. IDE auto-import na cursor-agent anaghị adịkarị n'ime container. Lee docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
+ "accessToken": "Token Nnweta",
+ "refreshToken": "Token Mmelite",
"refreshTokenPlaceholder": "Nhọrọ — na-eme ka mmegharị token akpaka rụọ ọrụ",
"required": "*",
"accessTokenPlaceholder": "Token nnweta ga-ejupụta na akpaghị aka...",
@@ -10869,8 +10873,8 @@
"familyIpv4": "Naanị IPv4",
"familyIpv6": "Naanị IPv6",
"familyHint": "Ezinụlọ adreesị ọpụpụ. Akpaka na-edobe dual-stack; IPv4/IPv6 na-ekechi proxy a na ezinụlọ ahụ (na-egbochi mwụpụ v4 n'okpuru proxy nke bụ naanị IPv6).",
- "labelHost": "Host",
- "labelPort": "Port",
+ "labelHost": "Onye nnabata",
+ "labelPort": "Ọdụ ụgbọ mmiri",
"labelUsername": "Aha njirimara",
"labelPassword": "Okwuntughe",
"labelRegion": "Mpaghara",
@@ -10884,13 +10888,13 @@
"save": "Chekwaa",
"bulkModalTitle": "Ikenye Proxy n'ìgwè",
"bulkLabelScope": "Oke ọrụ",
- "bulkLabelProxy": "Proxy",
+ "bulkLabelProxy": "Ihe nnọchiteanya",
"bulkClearAssignment": "(Kpochapụ nkesa)",
"bulkLabelScopeIds": "NJirimara oke ọrụ (jiri rịkọm ma ọ bụ ahịrị ọhụrụ kewaa ha)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
"bulkApply": "Tinye",
"labelScope": "Oke",
- "labelProxy": "Proxy",
+ "labelProxy": "Ihe nnọchiteanya",
"scopeGlobal": "ụwa niile",
"scopeProvider": "onye na-eweta ọrụ",
"scopeAccount": "akaụntụ",
@@ -10958,12 +10962,15 @@
"poolStrategyLabel": "Usoro ntụgharị",
"poolStrategyHint": "round-robin na-agagharị n'etiti ndị otu n'usoro; random na-ahọrọ n'ụzọ hà nhata; sticky na-ejide otu onye otu ruo oge ụfọdụ; latency-optimized na-ahọrọ nke kachasị ọsọ dabere na ndekọ.",
"poolStrategyFailed": "Imelite usoro ntụgharị dara",
- "strategyRoundRobin": "Round-robin",
- "strategyRandom": "Random",
- "strategySticky": "Sticky",
- "strategyLatency": "Latency-optimized",
+ "strategyRoundRobin": "N'usoro okirikiri",
+ "strategyRandom": "Na-enweghị usoro",
+ "strategySticky": "Na-adịgide",
+ "strategyLatency": "Ahaziri maka obere oge nzaghachi",
"poolMembersLabel": "Ndị otu ọdọ ({count})",
"poolNoMembers": "Enweghị proksi n'ọdọ a ugbu a.",
+ "poolEgressObservation": "{exits, plural, one {# ụzọ ọpụpụ} other {# ụzọ ọpụpụ}} nke {connections, plural, one {# njikọ} other {# njikọ}} jiri · ruo {max} n'otu ụzọ ọpụpụ · n'ime awa {hours} gara aga",
+ "poolEgressObservationEmpty": "Ahụghị ngagharị data ọ bụla n'ime awa {hours} gara aga",
+ "poolEgressObservationHint": "A gụrụ ya site na ndekọ proxy n'ime oge ahụ: IP ọpụpụ dị iche iche a hụrụ maka ndị otu pool a, yana njikọ OmniRoute ndị jiri ha. \"N'otu ụzọ ọpụpụ\" pụtara n'ime oge ahụ, ọ bụghị n'otu oge. Mkpọchi 429 nke IP ọ bụla na-akwụsịtụ naanị njikọ ndị sitere n'otu ezinụlọ provider.",
"poolRemove": "Wepụ",
"poolRemoveFailed": "Iwepụ proksi n'ọdọ dara",
"poolAddLabel": "Tinye proksi",
@@ -10975,9 +10982,9 @@
"playground": {
"title": "Ebe Nnwale Model",
"description": "Nwalee model ọ bụla ozugbo site na dashboard. Họrọ provider, model, na ụdị endpoint, wee zipụ arịrịọ ka ị hụ nzaghachi raw.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Ebe njedebe",
+ "provider": "Onye na-eweta ọrụ",
+ "model": "Ụdị",
"accountKey": "Akaụntụ / Key",
"autoAccounts": "Akpaaka ({count} akaụntụ)",
"noAccounts": "Enweghị akaụntụ",
@@ -10991,7 +10998,7 @@
"clearAll": "Hichapụ Ha Niile",
"request": "Arịrịọ",
"response": "Nzaghachi",
- "transcription": "Transcription",
+ "transcription": "Ntughari okwu ederede",
"copy": "Detuo",
"resetToDefault": "Tọgharịa gaa na ndabara",
"downloadAudio": "Budata ọdịyo",
@@ -11005,12 +11012,12 @@
"responses": "Nzaghachi",
"completions": "Mmecha",
"images": "Mmepụta onyonyo",
- "embeddings": "Embeddings",
+ "embeddings": "Ntinye",
"speech": "Ederede gaa na okwu ọnụ",
"transcription": "Transcription ọdịyo",
"video": "Mmepụta vidiyo",
"music": "Mmepụta egwu",
- "moderations": "Moderations",
+ "moderations": "Nnyocha ọdịnaya",
"rerank": "Hazie ọkwa ọzọ",
"search": "Ọchụchọ webụ",
"webFetch": "Nweta ọdịnaya webụ"
@@ -11077,7 +11084,7 @@
"runAll": "Gbaa ha niile",
"cancelAll": "Kagbuo ha niile",
"maxColumnsReached": "Ogidi kachasị bụ {max}",
- "modelPlaceholderCompare": "Model (Cmd+K)…",
+ "modelPlaceholderCompare": "Ụdị (Cmd+K)…",
"noModel": "Enweghị model",
"statusLabel": "Ọnọdụ: {status}",
"status": {
@@ -11121,7 +11128,7 @@
"jsonMode": "Ọnọdụ JSON",
"jsonModeDescription": "Na-amanye response_format: json_schema",
"schemaName": "Aha schema",
- "jsonSchema": "JSON schema",
+ "jsonSchema": "Skema JSON",
"jsonSchemaEditor": "Onye ndezi JSON schema",
"schemaValidated": "Ekwenyela na schema ziri ezi",
"validateSchema": "Nyochaa schema",
@@ -11372,7 +11379,7 @@
"upstreamCache": "Upstream (Onye Na-enye Ọrụ)",
"ariaLabel": "Nkọwa ndekọ arịrịọ",
"completed": "Emechara",
- "upstreamStatus": "Upstream: {status}",
+ "upstreamStatus": "Isi mmalite: {status}",
"statusDiscrepancy": "OmniRoute weghachiri {status} n'agbanyeghị na onye na-enye ọrụ weghachiri {provider}",
"previousRequest": "Arịrịọ gara aga",
"nextRequest": "Arịrịọ na-esote",
@@ -11427,11 +11434,11 @@
"filterSuccess": "Ihe ịga nke ọma",
"filterTimeout": "Oge agwụla",
"colStatus": "Ọnọdụ",
- "colProxy": "Proxy",
+ "colProxy": "Ihe nnọchiteanya",
"colTls": "TLS",
"colType": "Ụdị",
"colLevel": "Ọkwa",
- "colProvider": "Provider",
+ "colProvider": "Onye na-eweta ọrụ",
"colTarget": "Ebe Ebumnuche",
"colLatency": "Oge Nkwụsị",
"colClientIp": "IP Client",
@@ -11560,7 +11567,7 @@
"loading": "Na-ebunye…",
"removePool": "Wepụ pool",
"removeConfirm": "Wepụ pool a?",
- "pool": "Pool",
+ "pool": "Otu",
"used": "ejiworo",
"allocationsCount": "Nkesa ({count})",
"allocatedFree": "E kenyere {allocated}% · {free}% fọdụrụ",
@@ -11671,8 +11678,8 @@
"endpointsBaseUrl": "URL ntọala",
"endpointsCollapse": "Kpokọta",
"endpointsExpand": "Gbasaa",
- "endpointsAnthropicNote": "Anthropic-native",
- "endpointsResponsesNote": "OpenAI Responses — codex/github",
+ "endpointsAnthropicNote": "Nke Anthropic",
+ "endpointsResponsesNote": "Nzaghachi OpenAI — codex/github",
"endpointsWsNote": "WebSocket — naanị codex",
"betaText": "Quota Share na-arụ ọrụ mana a na-atụ anya ntụpọ. Ị hụrụ otu? Biko kọọ ya.",
"betaReportLink": "Kọọ nsogbu",
@@ -11685,7 +11692,7 @@
"dismiss": "Mechie"
},
"plugins": {
- "title": "Plugins",
+ "title": "Mgbakwunye",
"description": "Wụnye ma jikwaa plugins iji gbasaa ọrụ OmniRoute",
"loading": "Na-ebunye plugins...",
"scanning": "Na-enyocha...",
@@ -11900,7 +11907,7 @@
"addMapping": "Tinye njikọ",
"selectModel": "Họrọ…",
"saveMappings": "Chekwaa njikọ",
- "setupWizard": "Setup wizard",
+ "setupWizard": "Ọkachamara nhazi",
"startDns": "Malite DNS",
"stopDns": "Kwụsị DNS",
"toggling": "Na-agbanwe…",
@@ -12291,7 +12298,7 @@
"addAgent": "Tinye onye nnọchi anya",
"agentName": "Aha",
"agentNamePlaceholder": "dịka ọmụmaatụ: Onye Nnọchi Anya M",
- "binaryName": "Binary",
+ "binaryName": "Faịlụ ọnụọgụ abụọ",
"binaryNamePlaceholder": "dịka ọmụmaatụ: myagent",
"versionCommand": "Iwu ụdị",
"versionCommandPlaceholder": "dịka ọmụmaatụ: myagent --version",
@@ -12338,7 +12345,7 @@
"description": "Hazie proxy HTTP/HTTPS/SOCKS maka arịrịọ ndị na-eweta ọrụ dị n'elu. Tọọ iwu proxy maka onye na-eweta ọrụ ọ bụla ma ọ bụ n'ozuzu, nwalee njikọta, ma jikwaa ntụgharị proxy."
},
"omni-cache": {
- "name": "Cache",
+ "name": "Ebe nchekwa nwa oge",
"description": "Jikwaa cache nzaghachi LLM. Lelee ọnụ ọgụgụ cache, hichapụ ndenye, hazie iwu TTL, ma chịkwaa oke myirịta n'echiche maka itinye ihe na cache."
},
"omni-compression": {
@@ -12402,7 +12409,7 @@
"description": "Jikwaa njikọ ndị na-eweta ọrụ site na CLI: depụta ndị na-eweta ọrụ dị ma ọ bụ ahaziri, tinye, nwalee, nwalee ha niile, kwado, gbanwee API keys, ma lee metrik nke onye na-eweta ọrụ ọ bụla."
},
"cli-keys": {
- "name": "CLI: API Keys",
+ "name": "CLI: Igodo API",
"description": "Mepụta, depụta, gbanwee, ma kagbuo OmniRoute API keys site na CLI. Jikwaa usoro OAuth maka nkwenye njirimara onye na-eweta ọrụ, ma nyochaa ókè ikike na oge mmebi nke key."
},
"cli-models": {
@@ -12438,11 +12445,11 @@
"description": "Nyochaa ọnọdụ sava MCP, depụta ngwaọrụ na scopes e debanyere aha, kpọọ ngwaọrụ ka ọ rụọ ọrụ, ma jikwaa ndekọ nyocha MCP site na CLI."
},
"cli-a2a": {
- "name": "CLI: A2A Protocol",
+ "name": "CLI: Usoro A2A",
"description": "Site na CLI, soro sava OmniRoute A2A rụọkọ ọrụ. Zipu ọrụ, nyochaa akụkọ mmezu nka, ma nwalee JSON-RPC 2.0 agent-to-agent protocol n'ụzọ mmekọrịta."
},
"cli-tunnel": {
- "name": "CLI: Tunnels",
+ "name": "CLI: Ọwara",
"description": "Malite ma kwụsị njikọ tunnel (ngrok, Cloudflare, custom) site na CLI. Nyochaa URL tunnel ndị na-arụ ọrụ, hazie nkwenye njirimara, ma nwalee ma enwere ike iru ya site n'èzí."
},
"cli-backup-sync": {
@@ -12458,7 +12465,7 @@
"description": "Nyefee ma nyochaa ọrụ batch inference site na CLI. Bulite ma jikwaa files maka batch processing, nweta nsonaazụ, ma jikọta batch pipelines na usoro ọrụ CI/CD."
},
"cli-eval": {
- "name": "CLI: Evals",
+ "name": "CLI: Ntụle",
"description": "Mepụta ma gbaa evaluation suites, lelee ọganihu benchmark dị ndụ, lee scorecards, tulee arụmọrụ model, ma jikọta eval runs na usoro ọrụ CI site na CLI."
},
"cli-plugins-skills": {
@@ -12516,7 +12523,7 @@
"storage": {
"label": "Ebe nchekwa",
"agent": "Katalọgụ na-agbanwe agbanwe (/api/agent-skills) → SKILL.md na GitHub",
- "omni": "SQLite (SkillsMP / skills.sh / local)"
+ "omni": "SQLite (SkillsMP / skills.sh / nke mpaghara)"
},
"tagline": {
"label": "Ahịrịokwu njirimara",
@@ -12640,8 +12647,8 @@
"custom": "Nke ahaziri onwe ya",
"noSavedProxies": "Enweghị proxy echekwara — tinye otu na Settings → Proxy",
"directConnection": "Kpọmkwem (enweghị proxy)",
- "host": "Host",
- "port": "Port",
+ "host": "Nnabata",
+ "port": "Ọdụ ụgbọ",
"usernameOptional": "Aha njirimara (nhọrọ)",
"passwordOptional": "Okwuntughe (nhọrọ)",
"cancel": "Kagbuo",
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Kwe ka mgbake stream rịọ nzaghachi ahụ ọzọ ma jikọta ya mgbe byte ruterelarị client."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Mee ka ọ dị nchebe ịga n'ihu n'etiti stream mgbe a kpọrọ tool: amalitela stream e kwụsịrị mgbe ezipụchara tool call (ma ọ ka na-aga n'ihu ma ọ bụ na ọ gwụla), kwụsịkwa mgbe continuation efu mere otu ugboro kama iji retry budget niile."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Gafee otu ugboro gaa na njikọ ibe mgbe stream mechiri tupu o zipụta frame ọ bụla bara uru, ma nnwale ọzọ e nyere oke n'otu njikọ ahụ agwụla. Ọ bụrụ na enweghị njikọ ibe a pụrụ iji, a ga-eweghachi njehie early-EOF mbụ ahụ. Gbanyụọ: early-EOF ga-anọgide bụrụ njedebe mgbe nnwale ọzọ gasịrị."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Tinye field aha dị mfe igosi na nzaghachi /v1/models. Gbanyụọ nke a maka client ndị na-anabata naanị ID model."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Okirikiri Ngwaọrụ nke Sava Na-achịkwa",
"description": "Gaa n'ihu na oku ngwaọrụ sava na-achịkwa ndị na-abụghị streaming ruo mgbe model weghachiri nzaghachi onye ahịa nwere ike iji."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Isi mmalite Retry-After",
+ "description": "Na nzaghachi 429/503 ndị agbakọtara nke na-egosi enweghị nnweta, ewepụla Retry-After mgbe a maghị kpọmkwem oge nnwale ọzọ n'ọdịnihu kama izipu 1s e chepụtara echepụta; tinye error.retry_after_provenance, ma gụọ ntụnye nnwale ọzọ ndị e dere n'ahịrịokwu n'ụzọ combo drain."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Nkwụsị Akụrụngwa nke Prioriti Echedoro dịka 502",
+ "description": "Zaghachi 502 kama 503 mgbe ebumnuche prioriti quota-only-fallback kwụsịrị combo n'ihi ihe e gosipụtara na ọ bụghị quota: provider circuit breaker mepere emepe ma ọ bụ predictive latency skip."
}
}
},
@@ -13028,7 +13049,7 @@
"label": "Hazie site na",
"method": {
"manual": "Iji aka",
- "provider": "Provider",
+ "provider": "Onye na-eweta ọrụ",
"score": "Akara (model efu)",
"name": "Aha"
},
@@ -13054,7 +13075,7 @@
"requests": "Arịrịọ",
"success": "Ọganiihu",
"latency": "Oge igbu oge",
- "quota": "Quota",
+ "quota": "Oke ojiji",
"rangeWindow": "Oghere oge {range}",
"runtimeHealthBlend": "ngwakọta runtime/health",
"averageResponseTime": "nkezi oge nzaghachi",
@@ -13098,7 +13119,7 @@
"comboHealth": "Ahụike Ngwakọta",
"callLogs": "Ndekọ Oku",
"costs": "Ọnụ Ahịa",
- "playground": "Playground",
+ "playground": "Ebe nnwale",
"nestedCombo": "Ngwakọta dị n'ime",
"modelTarget": "Ebumnuche ụdị",
"weight": "Ibu {value}%",
@@ -13164,7 +13185,7 @@
"gated": "Ihe dịka token {tokens}/ọnwa ọzọ dị n’azụ nyocha njirimara mpaghara (dịka nkwenye ezigbo aha na ala China) — oke n’ezie, etinyeghị ya na isiokwu ukwu:",
"tosRestricted": "{count, plural, one {Akara # model dị ka nke ToS machibidoro — gị ga-ekpebi} other {Akara # models dị ka ndị ToS machibidoro — gị ga-ekpebi}}",
"provider": "Onye na-eweta",
- "model": "Model",
+ "model": "Ụdị",
"modelName": "Aha model",
"type": "Ụdị",
"tokensMonth": "Token/ọnwa",
@@ -13279,15 +13300,15 @@
"allModels": "model niile",
"keepModel": "Debe model",
"otherModel": "Model ọzọ",
- "combo": "Combo",
+ "combo": "Ngwakọta",
"priorityShort": "mkpa {value}",
"toggleAria": "Gbanye {name}",
"edit": "Dezie",
"delete": "Hichapụ",
"name": "Aha",
"description": "Nkọwa",
- "scopeLabel": "Scope",
- "apiKey": "API key",
+ "scopeLabel": "Oke",
+ "apiKey": "Igodo API",
"sourceCombo": "Combo mmalite",
"connection": "Njikọ",
"sourceModel": "Ụdịọrụ mmalite ma ọ bụ akara nnọchi",
@@ -13297,7 +13318,7 @@
"missing": "Ekwughị ya",
"signalOnly": "Mgbama echiche na-abụghị nke nwere ọkwa dị iche iche",
"requestTags": "Mkpado arịrịọ",
- "requestTagsExample": "coding, internal",
+ "requestTagsExample": "ide koodu, nke ime",
"tagMode": "Ndakọrịta mkpado",
"effortMode": "Ụdị mbọ",
"targetEffort": "Ọkwa mbọ ebumnuche",
@@ -13440,8 +13461,8 @@
"contributorHint": "GitHub OAuth na-enyocha ọkwa izu a: Ndị Top 10 na-enweta ụbọchị 365, ebe ọkwa 11–100 na-enweta ụbọchị 90. Ọnụ ọgụgụ PR naanị anaghị enye ohere ma ọ bụrụ na ịnọghị na Top 100.",
"supporterButton": "Kwado ọrụ a",
"supporterHint": "Nhọrọ otu ugboro nke ọnwa 6, otu afọ, na nke ndụ niile enweghị mmegharị akpaka; oge ndị tozuru etozu na-agbakọta, nke ndụ niile na-aka ha niile.",
- "colProvider": "Provider",
- "colModel": "Model",
+ "colProvider": "Onye na-eweta ọrụ",
+ "colModel": "Ụdị",
"colQuota": "Oke ojiji",
"colLimits": "Oke",
"trainsOnPrompts": "Na-eji prompts azụ model",
@@ -13449,7 +13470,7 @@
"limitsUnknownHelp": "Ọ bụ naanị Radar feed kọrọ oke ndị a; enweghị oke e bipụtara maka ndenye a",
"contextUnknownHelp": "Amaghị oke windo context maka ndenye a",
"capabilityUnknownHelp": "Feed ahụ akọpụtaghị ikike a",
- "colContext": "Context",
+ "colContext": "Ihe gbara ya gburugburu",
"colCapabilities": "Ikike",
"colTos": "Ihe ize ndụ ToS",
"newBadge": "ọhụrụ",
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Jụ arịrịọ tupu izipu ya mgbe ụdịdị e lekwasịrị anya enweghị ike ndị achọrọ (ọhụụ, ngwaọrụ, nsonaazụ ahaziri, windo ọnọdụ). Nke a na-echebe arịrịọ kpọmkwem nke otu onye na-eweta ọrụ, nke na-agafe nzacha ndakọrịta nke combo-layer.",
"featureFlagDisableContextWindowChecksDescription": "Mafee nyocha mpaghara nke OmniRoute maka windo ọnọdụ na oke token ntinye kachasị n'arịrịọ kpọmkwem nke otu ụdịdị. Ndị na-eweta ọrụ dị n'elu ka na-amanye oke ha n'ezie. Mkpakọ prompt na oke token nsonaazụ ka na-arụ ọrụ.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Ọnụọgụ ọchụchọ na ọchụchọ ndị e mere n'oge na-adịbeghị anya na-agụ naanị ndị na-eweta ọrụ ka nwere njikọ na-arụ ọrụ (a na-agụ ndị na-eweta ọrụ na-enweghị igodo dịka duckduckgo-free mgbe niile). Ịgbanyụ ya na-edobe ahịrị ọchụchọ niile echekwara nwere ID onye na-eweta ọrụ.",
"publicSystem": {
"notFound": {
"title": "Ahụghị ibe ahụ",
@@ -13845,13 +13867,13 @@
"openSoloTrae": "Mepee solo.trae.ai",
"orPasteManually": "ma ọ bụ mado token n'onwe gị",
"manualInstructions": "Banye na solo.trae.ai, mepee DevTools → Network, zipụ ozi nkata ọ bụla, wee detuo JWT site na nkụnye isi arịrịọ Authorization: Cloud-IDE-JWT {tokenPlaceholder}. Oge ndụ JWT bụ ihe dị ka ụbọchị 14. Oghere njirimara nhọrọ sitere na common_params dị n'otu ahụ arịrịọ ahụ.",
- "accessTokenLabel": "Access Token (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "accessTokenLabel": "Token nnweta (Cloud-IDE-JWT)",
+ "webId": "ID Weebụ",
"optional": "nhọrọ",
- "bizUserId": "Biz User ID",
- "userUniqueId": "User Unique ID",
+ "bizUserId": "ID onye ọrụ azụmahịa",
+ "userUniqueId": "ID pụrụ iche nke onye ọrụ",
"scope": "Oke",
- "tenant": "Tenant",
+ "tenant": "Onye mgbazinye",
"region": "Mpaghara",
"importing": "Na-ebubata…",
"importToken": "Bubata Token",
@@ -13894,9 +13916,9 @@
"duration": "Ogologo oge",
"model": "Ụdị",
"requestedModel": "Ụdị a rịọrọ",
- "provider": "Provider",
+ "provider": "Onye na-eweta ọrụ",
"requester": "Onye rịọrọ",
- "tokens": "Tokens"
+ "tokens": "Tọkẹn"
}
},
"proxyLog": {
diff --git a/src/i18n/messages/it.json b/src/i18n/messages/it.json
index bc41744b5b..39dfe2aeef 100644
--- a/src/i18n/messages/it.json
+++ b/src/i18n/messages/it.json
@@ -23,7 +23,7 @@
"back": "Indietro",
"next": "Prossimo",
"submit": "Invia",
- "reset": "Reset",
+ "reset": "Reimposta",
"copy": "Copia",
"copied": "Copiato!",
"enabled": "Abilitato",
@@ -31,7 +31,7 @@
"active": "Attivo",
"inactive": "Inattivo",
"noData": "Nessun dato disponibile",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Non c'è ancora nulla qui",
"configure": "Configura",
"manualConfig": "Configurazione manuale",
"manage": "Maneggio",
@@ -47,7 +47,7 @@
"time": "Tempo",
"details": "Dettagli",
"created": "Creato",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Ultimo aggiornamento",
"loadMore": "Carica altro",
"noResults": "Nessun risultato trovato",
"reloadPage": "Ricarica la pagina",
@@ -64,14 +64,14 @@
"none": "Nessuno",
"yes": "SÌ",
"no": "NO",
- "on": "ON",
- "off": "OFF",
+ "on": "ATTIVO",
+ "off": "DISATTIVATO",
"warning": "Avvertimento",
"note": "Nota",
"free": "Gratuito",
"skipToContent": "Vai al contenuto",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Il server sta riscontrando problemi. Alcune funzionalità potrebbero non essere disponibili.",
+ "maintenanceServerUnreachable": "Il server non è raggiungibile. Riconnessione in corso...",
"accept": "accept",
"accountId": "accountId",
"alias": "alias",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "Impossibile reimpostare i prezzi",
"apikey": "Chiave API",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Vai alla dashboard",
+ "checkSystemStatus": "Controlla lo stato del sistema",
+ "selectModel": "Seleziona modello",
"addModel": "Aggiungi modello",
"effortNone": "Nessuno",
"effortLow": "Basso",
@@ -164,10 +164,10 @@
"reasoningEffort": "Sforzo di ragionamento",
"wireApi": "Wire API",
"modelAliases": "Alias dei modelli",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Combinazioni",
+ "noModelsFound": "Nessun modello trovato",
+ "clear": "Cancella",
+ "done": "Fatto",
"selectAll": "Seleziona tutto",
"unselectAll": "Deseleziona tutto",
"visibleModels": "visibili",
@@ -184,519 +184,519 @@
"selectAllProviders": "Controlla tutti i fornitori",
"clearProviderSelection": "Deseleziona fornitori",
"providersSelectedCount": "{count} fornitori controllati",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Si è verificato un errore",
+ "comboDeleted": "Combinazione eliminata",
+ "hide": "Nascondi",
+ "creating": "Creazione in corso",
+ "comboCreated": "Combinazione creata",
+ "swapFormats": "Scambia formati",
+ "daysAgo": "Giorni fa",
+ "retries": "Tentativi",
+ "errorDuringRestore": "Errore durante il ripristino",
+ "eventsAppearHint": "Suggerimento sulla visualizzazione degli eventi",
+ "noLockouts": "Nessun blocco",
+ "webSearchDesc": "Descrizione della ricerca web",
+ "audioProvidersHeading": "Titolo dei provider audio",
"cloudAgentProviders": "Provider di agenti cloud",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Minuti fa",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
+ "liveAutoRefreshing": "Aggiornamento automatico in tempo reale",
+ "webSearch": "Ricerca web",
+ "anthropicPrefixPlaceholder": "Segnaposto del prefisso Anthropic",
+ "addModelToCombo": "Aggiungi modello alla combinazione",
+ "failedToLoad": "Caricamento non riuscito",
+ "categoryMedia": "Categoria Media",
+ "enableCloud": "Abilita Cloud",
+ "expirationBannerExpiringSoon": "Banner di scadenza imminente",
+ "retry": "Riprova",
+ "embeddings": "Embedding",
+ "errorCount": "Conteggio errori",
+ "backupReasonManual": "Motivo del backup: manuale",
+ "safeSearchModerate": "Ricerca sicura moderata",
+ "activeLimiters": "Limitatori attivi",
+ "a2aCardTitle": "Titolo della scheda A2A",
+ "cloudWorkerUnreachable": "Cloud Worker non raggiungibile",
+ "testFailed": "Test non riuscito",
+ "compatibleBaseUrlHint": "Suggerimento per l'URL di base compatibile",
+ "usageTracking": "Monitoraggio dell'utilizzo",
+ "disableCloudTitle": "Titolo per la disattivazione del cloud",
+ "noConnections": "Nessuna connessione",
+ "providerHealth": "Stato del provider",
+ "confirmDbImport": "Conferma l'importazione del database",
+ "notAvailableSymbol": "Simbolo non disponibile",
+ "backupsAvailable": "Backup disponibili",
+ "providerAuto": "Provider automatico",
+ "newProviderNamePlaceholder": "Segnaposto per il nome del nuovo provider",
+ "a2aQuickStartStep2": "Passaggio 2 della guida introduttiva A2A",
+ "ok": "OK",
+ "available": "Disponibile",
+ "noBackupYet": "Nessun backup per ora",
+ "more": "Altro",
+ "noCompatibleYet": "Nessun elemento compatibile per ora",
+ "multiProvider": "Multi-provider",
+ "repairEnvHint": "Suggerimento per la riparazione dell'ambiente",
+ "disablingCloud": "Disattivazione del cloud",
+ "testBench": "Banco di prova",
+ "valid": "Valido",
+ "cloudBenefitShare": "Condivisione dei vantaggi del cloud",
+ "mcpCardTitle": "Titolo della scheda MCP",
+ "disableConfirm": "Conferma la disattivazione",
+ "filters": "Filtri",
+ "expirationBannerExpiredDesc": "Descrizione del banner di scadenza avvenuta",
+ "saveComboDefaults": "Salva le impostazioni predefinite della combinazione",
+ "cloudConnectedVerified": "Connessione al cloud verificata",
+ "uptime": "Tempo di attività",
+ "compatibleProdPlaceholder": "Segnaposto compatibile per la produzione",
+ "fallbackChainsTitle": "Titolo delle catene di fallback",
+ "oauthLabel": "Etichetta OAuth",
+ "a2aCardDescription": "Descrizione della scheda A2A",
+ "okShort": "OK breve",
+ "maintenance": "Manutenzione",
+ "formatConverter": "Convertitore di formato",
+ "zedImportNetworkError": "Errore di rete durante l'importazione da Zed",
+ "apiKeyLabel": "Etichetta della chiave API",
+ "noModelsForProvider": "Nessun modello per il provider",
+ "mcpCardDescription": "Descrizione della scheda MCP",
+ "apiTypeLabel": "Etichetta del tipo di API",
+ "configuredProvidersLabel": "Etichetta dei provider configurati",
+ "maxRetriesLabel": "Etichetta del numero massimo di tentativi",
+ "title": "Titolo",
"output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
+ "prefixHint": "Suggerimento per il prefisso",
+ "skipWizard": "Salta la procedura guidata",
+ "failedCount": "Conteggio degli errori",
+ "confirmDbImportDesc": "Descrizione della conferma dell'importazione del database",
+ "entries": "Voci",
+ "until": "Fino a",
+ "disableCombo": "Disabilita combinazione",
+ "liveMonitorDescriptionPrefix": "Prefisso della descrizione del monitoraggio in tempo reale",
+ "runningCount": "Conteggio delle attività in esecuzione",
+ "noActiveConnectionsInGroup": "Nessuna connessione attiva nel gruppo",
+ "savedSuccessfully": "Salvato correttamente",
+ "systemStorage": "Archiviazione di sistema",
+ "videoDesc": "Descrizione del video",
+ "maxResults": "Numero massimo di risultati",
+ "timeRangeMonth": "Intervallo di tempo: mese",
+ "testSummary": "Riepilogo del test",
+ "failedSetPassword": "Impostazione della password non riuscita",
"audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "restore": "Ripristina",
+ "disableWarning": "Avviso di disabilitazione",
+ "moderationsDesc": "Descrizione delle moderazioni",
+ "providerHealthStatusAria": "ARIA dello stato di integrità del provider",
+ "modelNamePlaceholder": "Segnaposto del nome del modello",
+ "mcpQuickStartStep2": "Passaggio 2 dell'avvio rapido MCP",
+ "quickStart": "Avvio rapido",
+ "fullExportFailedWithError": "Esportazione completa non riuscita con errore",
+ "loadingBackups": "Caricamento dei backup",
+ "anthropicBaseUrlPlaceholder": "Segnaposto dell'URL di base di Anthropic",
+ "description": "Descrizione",
+ "noProviderFound": "Nessun provider trovato",
+ "auto": "Automatico",
+ "protocolsDescription": "Descrizione dei protocolli",
+ "cloudSessionNote": "Nota sulla sessione cloud",
+ "advancedSettings": "Impostazioni avanzate",
+ "defaultStrategy": "Strategia predefinita",
+ "purgeExpiredLogs": "Elimina definitivamente i log scaduti",
+ "justNow": "Proprio ora",
+ "providerTestFailed": "Test del provider non riuscito",
+ "openaiBaseUrlPlaceholder": "Segnaposto dell'URL di base di OpenAI",
+ "image": "Immagine",
+ "failedCreateChain": "Creazione della catena non riuscita",
+ "importDatabase": "Importa database",
+ "allDataLocal": "Tutti i dati in locale",
+ "sectionTitle": "Titolo della sezione",
+ "failedToggle": "Attivazione/disattivazione non riuscita",
+ "editCombo": "Modifica combinazione",
+ "testResults": "Risultati del test",
+ "searchQuery": "Query di ricerca",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
+ "duplicate": "Duplica",
+ "createCombo": "Crea combinazione",
+ "searchTypeWeb": "Tipo di ricerca: web",
+ "addChain": "Aggiungi catena",
+ "prefixLabel": "Etichetta del prefisso",
+ "listModelsDesc": "Descrizione dell'elenco dei modelli",
+ "databaseSize": "Dimensione del database",
+ "chainCreated": "Catena creata",
+ "providerTestTimeout": "Timeout del test del provider",
+ "routingStrategy": "Strategia di routing",
+ "translateAction": "Traduci",
+ "exportFailed": "Esportazione non riuscita",
+ "connectedVerificationPending": "Connesso, verifica in sospeso",
+ "a2aQuickStartTitle": "Titolo della guida introduttiva ad A2A",
+ "couldNotTest": "Impossibile eseguire il test",
+ "testAllCompatible": "Testa tutti quelli compatibili",
+ "anthropicCompatibleName": "Nome compatibile con Anthropic",
+ "disabling": "Disabilitazione",
+ "failedEnable": "Abilitazione non riuscita",
+ "categoryUtility": "Categoria Utilità",
+ "customUrlOptional": "URL personalizzato facoltativo",
+ "localProviders": "Provider locali",
+ "comboNamePlaceholder": "Segnaposto del nome della combinazione",
+ "memoryRss": "Memoria RSS",
+ "disableProvider": "Disabilita provider",
+ "welcomeDesc": "Descrizione di benvenuto",
+ "nameLabel": "Etichetta del nome",
+ "allOperational": "Tutto operativo",
+ "backupNow": "Esegui backup ora",
+ "providerMaxRetriesAria": "ARIA per il numero massimo di tentativi del provider",
+ "textToSpeechDesc": "Descrizione della sintesi vocale",
+ "machineId": "ID macchina",
+ "globalProxy": "Proxy globale",
+ "hitsMisses": "Riscontri e mancate corrispondenze",
+ "testDesc": "Descrizione del test",
+ "chatDesc": "Descrizione della chat",
+ "importSuccess": "Importazione riuscita",
"chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "a2aQuickStartStep1": "Passaggio 1 della guida introduttiva ad A2A",
+ "importFailed": "Importazione non riuscita",
+ "inputPlaceholder": "Segnaposto di input",
+ "providerModelsTitle": "Titolo dei modelli del provider",
+ "lastBackup": "Ultimo backup",
+ "yourEndpoint": "Il tuo endpoint",
+ "autoDisableThresholdDesc": "Descrizione della soglia di disabilitazione automatica",
+ "rerankDesc": "Descrizione del riordinamento",
+ "modelsPathPlaceholder": "Segnaposto del percorso dei modelli",
+ "noCombosYet": "Nessuna combinazione presente",
+ "connectedVerificationPendingWithError": "Connesso, verifica in sospeso con errore",
+ "comboDefaultsGuideHint1": "Suggerimento 1 della guida alle impostazioni predefinite delle combinazioni",
+ "enableCloudTitle": "Titolo per l'abilitazione del cloud",
+ "configuredProvidersHint": "Suggerimento sui provider configurati",
+ "paused": "In pausa",
+ "llmProviders": "Provider LLM",
+ "enableCombo": "Abilita combinazione",
+ "removeProviderOverrideAria": "ARIA per la rimozione dell'override del provider",
+ "nodeVersion": "Versione di Node",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Esportazione non riuscita con errore",
+ "proxyConfigured": "Proxy configurato",
+ "concurrencyPerModel": "Concorrenza per modello",
+ "protocolTasksLabel": "Etichetta attività del protocollo",
+ "oauthProviders": "Provider OAuth",
+ "lockedCount": "Numero di elementi bloccati",
+ "deleteChainConfirm": "Conferma eliminazione catena",
+ "recentTranslations": "Traduzioni recenti",
+ "zedImportButton": "Pulsante di importazione Zed",
+ "responsesDesc": "Descrizione delle risposte",
+ "testedCount": "Numero di elementi testati",
+ "providersCommaSeparatedPlaceholder": "Segnaposto dei provider separati da virgole",
+ "signatureDefaults": "Valori predefiniti della firma",
+ "errorCreating": "Errore durante la creazione",
+ "timeRangeYear": "Intervallo temporale: anno",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Cloud disabilitato correttamente",
+ "deleteConfirm": "Conferma eliminazione",
+ "check": "Verifica",
+ "safeSearch": "Ricerca sicura",
+ "protocolLastActivity": "Ultima attività del protocollo",
+ "openMcpDashboard": "Apri la dashboard MCP",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Etichetta del percorso della chat",
+ "retryDelay": "Ritardo tra i tentativi",
+ "errorUpdating": "Errore durante l'aggiornamento",
+ "ideCliIntegrations": "Integrazioni IDE e CLI",
+ "imageGeneration": "Generazione di immagini",
+ "apiKeyRequired": "Chiave API obbligatoria",
+ "resetAllTitle": "Titolo per reimpostare tutto",
+ "connectionError": "Errore di connessione",
+ "modelName": "Nome del modello",
+ "apiKeyForCheck": "Chiave API per la verifica",
+ "cloudRequestTimeout": "Timeout della richiesta cloud",
+ "showConfiguredOnly": "Mostra solo quelli configurati",
"showFreeOnly": "Solo gratuito",
"addFirstProvider": "Aggiungi il tuo primo fornitore",
"addFirstProviderDesc": "Connetti un provider AI per avviare l'instradamento delle richieste tramite OmniRoute. Puoi utilizzare provider gratuiti, chiavi API o account OAuth.",
"learnMore": "Saperne di più",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Includi domini",
+ "promptCache": "Cache dei prompt",
+ "cloudConnected": "Cloud connesso",
+ "deleteChain": "Elimina catena",
+ "chatPathPlaceholder": "Segnaposto del percorso della chat",
+ "databasePath": "Percorso del database",
+ "usingLocalServer": "Utilizzo del server locale",
+ "globalComboConfig": "Configurazione globale delle combinazioni",
+ "backupFailed": "Backup non riuscito",
+ "tabProtocols": "Protocolli delle schede",
+ "continue": "Continua",
+ "categorySearch": "Ricerca per categoria",
+ "rateLimitStatus": "Stato del limite di frequenza",
+ "repairEnvSuccess": "Riparazione dell'ambiente riuscita",
+ "nameRequired": "Nome obbligatorio",
+ "country": "Paese",
+ "trackMetricsDesc": "Descrizione del monitoraggio delle metriche",
+ "durationSecondsShort": "Durata in secondi (breve)",
+ "formatConverterDescription": "Descrizione del convertitore di formato",
+ "cloudBenefitAccess": "Accesso ai vantaggi del cloud",
+ "maxRetries": "Numero massimo di tentativi",
+ "queueTimeout": "Timeout della coda",
"queueDepth": "Profondità della coda",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Aggiungi provider",
+ "realtime": "In tempo reale",
+ "totalTranslations": "Traduzioni totali",
+ "protocolActiveStreamsLabel": "Etichetta dei flussi attivi del protocollo",
+ "repairEnv": "Ripara ambiente",
+ "modelsCount": "Numero di modelli",
+ "viewBackups": "Visualizza backup",
+ "responsesApi": "API Responses",
+ "copyComboName": "Copia nome della combinazione",
+ "failures": "Errori",
+ "failedUpdate": "Aggiornamento non riuscito",
+ "imageDesc": "Descrizione dell'immagine",
+ "failedCreate": "Creazione non riuscita",
+ "remainingOfLimit": "Residuo rispetto al limite",
+ "protocolsTitle": "Titolo dei protocolli",
+ "expirationBannerExpiringSoonDesc": "Descrizione del banner di scadenza imminente",
+ "source": "Origine",
+ "failed": "Non riuscito",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
+ "mcpQuickStartStep1": "MCP: passaggio 1 della guida introduttiva",
+ "runTest": "Esegui test",
+ "loadingFallbackChains": "Caricamento delle catene di fallback",
+ "healthy": "Integro",
+ "version": "Versione",
+ "saveBlockWeighted": "Salva blocco ponderato",
+ "zedImportNone": "Nessuna importazione da Zed",
+ "noBackupsYet": "Nessun backup per ora",
+ "noGlobalProxy": "Nessun proxy globale",
+ "noModels": "Nessun modello",
+ "stickyLimit": "Limite persistente",
+ "passedCount": "Conteggio dei test superati",
+ "zedImportFailed": "Importazione da Zed non riuscita",
+ "saving": "Salvataggio in corso",
+ "testAll": "Testa tutto",
+ "globalProxyDesc": "Descrizione del proxy globale",
+ "latencyP99": "Latenza P99",
+ "connectingToCloud": "Connessione al cloud in corso",
+ "responses": "Risposte",
+ "errorDeleting": "Errore durante l'eliminazione",
+ "openaiPrefixPlaceholder": "Segnaposto del prefisso Openai",
+ "enterPassword": "Inserisci la password",
+ "openA2aDashboard": "Apri la dashboard A2A",
+ "enableProvider": "Abilita provider",
+ "modeTest": "Modalità di test",
+ "failedDeleteChain": "Eliminazione della catena non riuscita",
+ "providerDesc": "Descrizione del provider",
+ "templateLoadHint": "Suggerimento per il caricamento del modello",
+ "lastFailure": "Ultimo errore",
+ "moveDown": "Sposta in basso",
+ "providerLabel": "Etichetta del provider",
+ "clearCacheFailed": "Svuotamento della cache non riuscito",
+ "imagesGenerations": "Generazione di immagini",
+ "repairEnvWorking": "Riparazione dell'ambiente in corso",
+ "millisecondsShort": "ms",
+ "globalLabel": "Etichetta globale",
+ "failuresPlural": "Errori",
+ "completionsLegacyDesc": "Descrizione dei completamenti legacy",
+ "searchProviders": "Cerca provider",
+ "chatPathHint": "Suggerimento per il percorso della chat",
+ "defaultStrategyDesc": "Descrizione della strategia predefinita",
+ "latencyP95": "Latenza P95",
+ "textToSpeech": "Sintesi vocale",
+ "searchType": "Tipo di ricerca",
+ "messages": "Messaggi",
+ "aggregatorsGateways": "Aggregatori e gateway",
+ "comboStrategyAria": "ARIA della strategia combinata",
"input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
+ "testingConnection": "Verifica della connessione",
+ "excludeDomains": "Escludi domini",
+ "webCookieProviders": "Provider di cookie web",
+ "allTestsPassed": "Tutti i test sono stati superati",
+ "openaiCompatibleName": "Nome compatibile con OpenAI",
+ "warningCostOptimizedPartialPricing": "Avviso sui prezzi parziali ottimizzati per i costi",
+ "comboDefaultsGuideTitle": "Titolo della guida alle impostazioni predefinite delle combinazioni",
+ "hoursAgo": "ore fa",
+ "notAvailable": "Non disponibile",
+ "skipAndContinue": "Salta e continua",
+ "moderations": "Moderazioni",
+ "proxyConfig": "Configurazione proxy",
+ "upstreamProxyProviders": "Provider proxy upstream",
+ "exportAll": "Esporta tutto",
+ "queuedCount": "Numero di elementi in coda",
+ "resetAll": "Reimposta tutto",
+ "noTranslations": "Nessuna traduzione",
+ "avgLatency": "Latenza media",
+ "throttleStatus": "Stato della limitazione",
+ "backupRetentionDesc": "Descrizione della conservazione dei backup",
+ "noCBData": "Nessun dato CB",
+ "chainDeleted": "Catena eliminata",
+ "timeLeft": "Tempo rimanente",
+ "expirationBannerExpired": "Banner di scadenza scaduto",
+ "language": "Lingua",
+ "invalidFileType": "Tipo di file non valido",
+ "monitoredProviders": "Provider monitorati",
+ "errors": "Errori",
"heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "chatCompletions": "Completamenti chat",
+ "exampleTemplatesHint": "Suggerimento per i modelli di esempio",
+ "retryDelayLabel": "Etichetta del ritardo tra i tentativi",
+ "audioTranscription": "Trascrizione audio",
+ "fallbackChainsDesc": "Descrizione delle catene di fallback",
+ "exampleTemplates": "Modelli di esempio",
+ "connectionsCount": "Numero di connessioni",
+ "modelsPathLabel": "Etichetta del percorso dei modelli",
+ "activeProvidersHint": "Suggerimento per i provider attivi",
+ "activeLockouts": "Blocchi attivi",
+ "invalid": "Non valido",
+ "skipPassword": "Salta password",
+ "moveUp": "Sposta su",
+ "timeRange": "Intervallo di tempo",
+ "stickyLimitDesc": "Descrizione del limite persistente",
+ "cloudBenefitEdge": "Vantaggio del cloud edge",
+ "custom": "Personalizzato",
+ "verifying": "Verifica in corso",
+ "baseUrlLabel": "Etichetta URL di base",
+ "setPassword": "Imposta password",
+ "safeSearchStrict": "Safe Search rigorosa",
+ "noChangesSinceBackup": "Nessuna modifica dal backup",
+ "modelsPathHint": "Suggerimento sul percorso dei modelli",
+ "audioTranscriptions": "Trascrizioni audio",
+ "testCombo": "Testa combinazione",
+ "mcpQuickStartTitle": "Guida introduttiva a MCP",
+ "comboUpdated": "Combinazione aggiornata",
+ "weighted": "Ponderato",
+ "providers": "Provider",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Descrizione dell'assenza di catene di fallback",
+ "yesImport": "Sì, importa",
+ "lockoutsAutoRefreshHint": "Suggerimento sull'aggiornamento automatico dei blocchi",
+ "tabApis": "Scheda API",
+ "sectionDescription": "Descrizione della sezione",
+ "filter": "Filtra",
+ "purgeLogsFailed": "Eliminazione dei log non riuscita",
+ "latency": "Latenza",
+ "testAllOAuth": "Testa tutti gli OAuth",
+ "mcpQuickStartStep3": "Passaggio 3 della guida introduttiva a MCP",
+ "repairEnvFailed": "Riparazione dell'ambiente non riuscita",
+ "zedImportHint": "Suggerimento per l'importazione da Zed",
+ "modelsAcrossEndpoints": "Modelli tra endpoint",
+ "autoDisableBannedAccounts": "Disabilita automaticamente gli account bloccati",
+ "securityDesc": "Descrizione della sicurezza",
+ "listModels": "Elenca modelli",
+ "backupRestore": "Backup e ripristino",
+ "target": "Destinazione",
+ "zedImportSuccess": "Importazione da Zed riuscita",
+ "lastHeaderUpdate": "Ultimo aggiornamento dell'intestazione",
+ "categoryCore": "Categoria principale",
+ "noFallbackChains": "Nessuna catena di fallback",
+ "noSearchProviders": "Nessun provider di ricerca",
+ "autoBalance": "Bilanciamento automatico",
+ "noModelsYet": "Nessun modello disponibile",
+ "signatureFamily": "Famiglia di firme",
+ "externalApiCalls": "Chiamate API esterne",
+ "providerOverridesDesc": "Descrizione delle sostituzioni del provider",
+ "signatureTool": "Strumento di firma",
+ "connectionFailed": "Connessione non riuscita",
+ "activeLimitersPlural": "Limitatori attivi (plurale)",
+ "doneDesc": "Descrizione del completamento",
+ "down": "Non disponibile",
+ "noDataYet": "Nessun dato disponibile",
+ "activeProviders": "Provider attivi",
+ "nameInvalid": "Nome non valido",
+ "skip": "Salta",
+ "createChain": "Crea catena",
+ "audioSpeech": "Sintesi vocale",
+ "cacheCleared": "Cache svuotata",
+ "searchTypeNews": "Tipo di ricerca: notizie",
+ "durationMillisecondsShort": "Durata in millisecondi (abbreviata)",
+ "addOpenAICompatible": "Aggiungi compatibile con Open Ai",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "In coda",
+ "domainPlaceholder": "Segnaposto del dominio",
+ "durationMinutesShort": "Durata in minuti (abbreviata)",
+ "verifyingConnection": "Verifica della connessione",
+ "imageProviders": "Provider di immagini",
+ "protocolToolsLabel": "Etichetta degli strumenti di protocollo",
+ "queryPlaceholder": "Segnaposto della query",
+ "videoGeneration": "Generazione video",
+ "timeRangeWeek": "Intervallo di tempo: settimana",
+ "limitExhausted": "Limite esaurito",
+ "failedDisable": "Disattivazione non riuscita",
+ "inMemoryNote": "Nota in memoria",
+ "compatibleHint": "Suggerimento sulla compatibilità",
+ "errorShort": "Errore breve",
+ "advancedHint": "Suggerimento avanzato",
+ "restoreFailed": "Ripristino non riuscito",
+ "searchProvidersHeading": "Intestazione dei provider di ricerca",
+ "comboName": "Nome della combinazione",
+ "autoDisableDescription": "Descrizione della disattivazione automatica",
+ "embeddingsDesc": "Descrizione degli embedding",
+ "operational": "Operativo",
+ "testAllApiKey": "Testa tutte le chiavi API",
+ "backupCreated": "Backup creato",
+ "errorDuringImport": "Errore durante l'importazione",
+ "comboDefaultsGuideHint2": "Suggerimento 2 della guida alle impostazioni predefinite delle combinazioni",
+ "connecting": "Connessione in corso",
+ "fillModelAndProviders": "Compila modello e provider",
+ "syncing": "Sincronizzazione in corso",
+ "resetConfirm": "Conferma reimpostazione",
+ "trackMetrics": "Monitora le metriche",
+ "successful": "Completato correttamente",
+ "recovering": "Ripristino in corso",
+ "autoDisableThreshold": "Soglia di disattivazione automatica",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Sincronizzazione dei dati in corso",
+ "cloudBenefitPorts": "Porte per i vantaggi del cloud",
+ "compatibleProviders": "Provider compatibili",
"freeTierProviders": "Provider del livello gratuito",
"freeTierLabel": "Livello gratuito disponibile",
"freeTierProvidersDesc": "Fornitori con livelli gratuiti: alcuni richiedono la registrazione con una chiave API, altri non necessitano di alcuna credenziale.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
+ "clearCache": "Svuota la cache",
+ "reqs": "Richieste",
+ "addAnthropicCompatible": "Aggiungi provider compatibile con Anthropic",
+ "apiKeyProviders": "Provider di chiavi API",
+ "tabsAria": "ARIA delle schede",
+ "resetting": "Reimpostazione in corso",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Motivo del backup prima del ripristino",
+ "disableCloud": "Disabilita il cloud",
+ "newProviderNameAria": "ARIA del nome del nuovo provider",
+ "passwordsMismatch": "Le password non corrispondono",
+ "a2aQuickStartStep3": "Passaggio 3 dell'avvio rapido di A2A",
+ "liveMonitorDescriptionSuffix": "Suffisso della descrizione del monitoraggio in tempo reale",
+ "failedAddProvider": "Impossibile aggiungere il provider",
+ "addAtLeastOneProvider": "Aggiungi almeno un provider",
+ "reasonSeparator": "Separatore del motivo",
+ "zedImporting": "Importazione di Zed in corso",
+ "confirmPasswordPlaceholder": "Conferma password",
+ "whatYouGet": "Cosa ottieni",
+ "signatureSession": "Sessione di firma",
+ "errorCountNoCode": "Conteggio errori senza codice",
+ "testing": "Test",
+ "providersCommaSeparated": "Provider separati da virgole",
+ "exportDatabase": "Esporta database",
+ "hitRate": "Tasso di successo",
+ "completionsLegacy": "Completamenti legacy",
+ "removeModel": "Rimuovi modello",
+ "timeRangeDay": "Intervallo temporale: giorno",
+ "cloudRequestFailed": "Richiesta cloud non riuscita",
+ "updatedAt": "Aggiornato il",
+ "monitoredProvidersHint": "Suggerimento sui provider monitorati",
+ "connectionSuccessful": "Connessione riuscita",
+ "latencyP50": "Latenza P50",
+ "logsDeleted": "Log eliminati",
+ "chatTester": "Tester della chat",
+ "safeSearchOff": "Ricerca sicura disattivata",
+ "nameHint": "Suggerimento per il nome",
+ "debugToggle": "Interruttore di debug",
"embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "issuesLabel": "Etichetta dei problemi",
+ "optionAny": "Qualsiasi opzione",
+ "maxNestingDepth": "Profondità massima di annidamento",
+ "rerank": "Riordinamento",
+ "checking": "Verifica in corso",
+ "getStarted": "Inizia",
+ "restoreSuccess": "Ripristino riuscito",
+ "issuesDetected": "Problemi rilevati",
+ "signatureCache": "Cache delle firme",
+ "modelLockouts": "Blocchi dei modelli",
+ "usingCloudProxy": "Utilizzo del proxy cloud",
+ "loadingHealth": "Caricamento dello stato",
+ "providerOverrides": "Override dei provider",
+ "audioTranscriptionDesc": "Descrizione della trascrizione audio",
+ "learnedFromHeaders": "Appreso dagli header",
+ "totalRequests": "Richieste totali",
+ "cloudUnstableNote": "Nota sull'instabilità del cloud",
"gamificationAdmin": "Amministrazione della gamification",
"monitorAnomaliesAndHealth": "Monitorare le anomalie e l'integrità del sistema",
"flaggedAnomalies": "Anomalie segnalate",
@@ -704,7 +704,7 @@
"apiKey": "Chiave API",
"xpLastHour": "XP (1 ora)",
"zScore": "Punteggio Z",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Sospetto",
"tokensCommunityServers": "Server della comunità",
"tokensServerNamePlaceholder": "Nome del server",
"tokensApiKeyPlaceholder": "Chiave API",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Caricamento altro...",
"recommended": "Consigliato",
"understand": "Ho capito",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
+ "batchConceptTitle": "Elaborazione in batch",
+ "batchConceptSubtitle": "Elabora migliaia di richieste in modo asincrono a circa il 50% del costo (finestra di 24 ore). Ideale per valutazioni, classificazione ed embedding.",
+ "batchConceptHowItWorks": "Come funziona",
+ "batchConceptBenefit50pct": "Sconto del 50% sui token di input + output",
+ "batchConceptAsync24h": "Asincrono con una finestra di completamento di 24 ore",
+ "batchConceptUseCases": "Ideale per classificazioni in blocco, valutazioni ed embedding",
+ "batchHeaderSubtitle": "Esegui più richieste come un unico processo",
+ "batchStep1": "1 · Carica JSONL",
+ "batchStep1Desc": "Aggiungi richieste",
+ "batchStep2": "2 · Crea batch",
+ "batchStep2Desc": "Esegui processo",
+ "batchStep3": "3 · Ottieni risultati",
+ "batchStep3Desc": "Scarica output",
+ "filesConceptTitle": "File batch",
+ "filesConceptSubtitle": "File JSONL utilizzati dai batch: richieste di input, risultati ed errori.",
+ "filesConceptInput": "Input — il tuo JSONL con una richiesta per riga",
+ "filesConceptOutput": "Output — risultati delle richieste completate",
+ "filesConceptError": "Errori — richieste non riuscite",
+ "filesConceptRetention": "Conservazione: 30 giorni per impostazione predefinita (29 giorni su Anthropic)",
+ "wizardTitle": "Nuovo batch",
+ "wizardClose": "Chiudi",
+ "wizardNext": "Avanti",
+ "wizardBack": "Indietro",
+ "wizardCancel": "Annulla",
+ "wizardCreate": "Crea batch",
+ "wizardCreating": "Creazione in corso…",
+ "wizardStep1Destination": "Destinazione",
"wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
+ "wizardStep3Validate": "Convalida",
+ "wizardStep4Cost": "Costo e creazione",
"wizardProviderLabel": "Provider",
"wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "wizardModelLabel": "Modello",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (lo convertiremo)",
+ "wizardDropOrPick": "Trascina qui un file o fai clic per selezionarlo",
+ "wizardCsvMappingTitle": "Mappa le colonne CSV → campi della richiesta",
+ "wizardCsvMappingAddField": "Aggiungi campo",
"wizardCsvNoColumns": "Nessuna colonna rilevata nell'intestazione CSV.",
"wizardCsvIgnoreColumn": "— ignora —",
"wizardCsvCustomIdMapped": "custom_id mappato",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} righe analizzate",
"wizardCsvRowsSkipped": "{count} righe saltate",
"wizardCsvRowError": "Riga {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Tutte le righe sono valide",
"wizardValidating": "Convalida in corso…",
"wizardValidationParseFailed": "Convalida non riuscita — impossibile analizzare il contenuto.",
"wizardValidationSummary": "{lines} righe · {ids} custom_ids univoci",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Rilevati custom_ids duplicati:",
"wizardValidationFirstErrors": "Errori (primi {count}):",
"wizardValidationLine": "Riga {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
+ "wizardValidationErrors": "Errori di convalida",
+ "wizardValidationPreview": "Anteprima (prime 5 richieste)",
+ "wizardValidationSamplingNote": "Il file è di grandi dimensioni: è stato convalidato tramite campionamento (prime 1000 + ultime 100 righe). La convalida completa viene eseguita lato server.",
+ "wizardCostSync": "Costo sincrono",
+ "wizardCostBatch": "Costo batch (-50%)",
+ "wizardCostSavings": "Risparmio",
+ "wizardCostEstimatedNotice": "Costo stimato — la fatturazione effettiva può variare.",
+ "wizardErrorUpload": "Caricamento del file non riuscito. Riprova.",
+ "wizardErrorCreate": "Creazione del batch non riuscita. Riprova.",
+ "wizardEmptyProviders": "Connetti un provider con supporto per i batch (OpenAI, Anthropic o Gemini) per creare un batch.",
+ "uploadModalTitle": "Carica file batch",
+ "uploadModalDropOrPick": "Trascina qui un file .jsonl o fai clic per selezionarlo",
+ "uploadModalUpload": "Carica",
+ "uploadModalCancel": "Annulla",
+ "uploadModalError": "Caricamento non riuscito. Riprova.",
+ "uploadModalSuccess": "Caricato",
+ "uploadModalSizeLimit": "Massimo 512 MB",
+ "batchListNewButton": "Nuovo batch",
+ "batchListAutoRefresh": "Aggiornamento automatico ogni 30 s",
+ "batchListCostColumn": "Costo",
+ "batchActionCancel": "Annulla",
+ "batchActionDownloadOutput": "Scarica output",
+ "batchActionDownloadErrors": "Scarica errori",
+ "batchActionRetry": "Riprova richieste non riuscite",
+ "batchActionRetryConfirm": "Riprovare {n} richiesta/e non riuscita/e? Il costo finale dipende dai token effettivamente utilizzati.",
+ "expirationBadgeCritical": "Critico",
+ "expirationBadgeWarning": "A breve",
+ "expirationBadgeNormal": "In sospeso",
+ "expirationBadgeExpired": "Scaduto",
+ "filesListUploadButton": "Caricamento",
+ "filesListUsedByColumn": "Utilizzato da",
+ "filesListUsedByNone": "Nessuno",
"filesListUsedByRoleInput": "input",
"filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
+ "filesListUsedByRoleError": "errore",
+ "filesListSizeColumn": "Dimensione",
+ "batchListProgressPartial": "(parziale)",
"batchListProviderColumn": "Provider",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "Altro",
+ "batchListTitle": "Batch",
+ "batchListCount": "{count} batch",
+ "batchListRemovingCompleted": "Rimozione…",
+ "batchListRemoveCompleted": "Rimuovi completati",
+ "batchListTableStatus": "Stato",
"batchListTableId": "ID",
"batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableModel": "Modello",
+ "batchListTableProgress": "Avanzamento",
+ "batchListTableCreated": "Creato",
+ "batchListTableExpires": "Scade",
+ "batchListLoading": "Caricamento…",
+ "batchListEmpty": "Nessun batch trovato",
+ "batchListValidating": "Convalida…",
+ "batchStatusAll": "Tutti gli stati",
+ "batchStatusInProgress": "In corso",
+ "batchStatusValidating": "Convalida",
+ "batchStatusFinalizing": "Finalizzazione",
+ "batchStatusCompleted": "Completato",
+ "batchStatusFailed": "Non riuscito",
+ "batchStatusCancelled": "Annullato",
+ "batchStatusCancelling": "Annullamento",
+ "batchStatusExpired": "Scaduto",
+ "batchStatusCompletedWithFailures": "completato con errori",
+ "batchStatusInProgressWithFailures": "in corso (con errori)",
+ "batchStatusFinalizingWithFailures": "in finalizzazione (con errori)",
+ "batchStatusCancelledWithFailures": "annullato con errori",
+ "batchStatusExpiredWithFailures": "scaduto (parziale)",
+ "wizardCostEstimating": "Stima del costo…",
+ "wizardCostRequests": "Richieste",
+ "wizardCostInputTok": "token di input",
+ "wizardCostOutputTok": "token di output",
+ "wizardCostWindow": "Finestra",
+ "wizardDestinationSelectProvider": "Seleziona un provider…",
+ "wizardDestinationSelectModel": "Seleziona un modello…",
+ "wizardDestinationConnectProvider": "Connetti un provider",
+ "batchListBatchCreated": "Batch {id} creato — aggiornamento dell'elenco…",
+ "batchListBatchCreatedDismiss": "Ignora",
+ "batchListRefreshing": "Aggiornamento…",
+ "batchListRefresh": "Aggiorna",
+ "uploadFileModalRemove": "Rimuovi",
+ "uploadFileModalUploading": "Caricamento…",
+ "wizardInputReading": "Lettura del file…",
+ "wizardInputReady": "Pronto",
+ "wizardInputLargeFileLabel": "File di grandi dimensioni — convalida a campione",
+ "wizardInputCsvJsonlReady": "JSONL generato — pronto per la convalida.",
+ "wizardInputLargeFileWarning": "Rilevato un file di grandi dimensioni — la convalida viene eseguita a campione (primi 5 MB + ultimi 100 KB). La convalida completa avviene lato server.",
+ "wizardCostWindow24h": "Finestra di completamento di 24 ore",
+ "wizardValidationFieldsOk": "campi obbligatori validi",
+ "filesListDelete": "Elimina",
+ "filesListDownload": "Scarica",
+ "batchDetailActionCancel": "Annulla batch",
+ "batchDetailActionRetry": "Riprova le richieste non riuscite",
+ "batchDetailCancelling": "Annullamento…",
+ "batchDetailRetrying": "Preparazione del nuovo tentativo…",
+ "batchDetailCancelConfirm": "Annullare questo batch? Le richieste in corso verranno interrotte.",
+ "batchActionCancelError": "Impossibile annullare il batch. Riprova.",
+ "batchActionRetryError": "Impossibile riprovare le richieste non riuscite. Riprova.",
+ "batchConceptRetentionNote": "I file dei risultati e degli errori vengono conservati per 30 giorni (Anthropic: 29 giorni)",
"batchFilesSizeColumn": "Dimensione",
"toggleNoAuthProvider": "Attiva/disattiva il provider senza autenticazione",
"loadingModels": "Caricamento modelli…",
@@ -961,7 +961,7 @@
"degraded": "Degradato",
"zeroConfigBannerTitle": "Esecuzione in modalità zero-config",
"zeroConfigBannerBody": "OmniRoute ha generato automaticamente chiavi di crittografia sicure al primo avvio. Sono memorizzate in {dataDir}. Non è necessaria alcuna azione: i tuoi dati sono crittografati e al sicuro. Per utilizzare chiavi personalizzate, aggiungi JWT_SECRET e STORAGE_ENCRYPTION_KEY a quel file.",
- "batchRelativeTimeIn": "in {value}",
+ "batchRelativeTimeIn": "tra {value}",
"batchRelativeTimeAgo": "{value} fa",
"batchDetailsTitle": "Dettagli del Batch",
"batchProgress": "Progresso",
@@ -988,10 +988,14 @@
"disabled": "Disabilitato",
"featureFlagOmnirouteEmergencyFallbackDescription": "Indirizza le richieste con budget esaurito al provider/modello di fallback gratuito di emergenza.",
"featureFlagArenaEloSyncEnabledDescription": "Abilita la sincronizzazione periodica dell'ELO della classifica Arena AI per le graduatorie di intelligenza dei modelli.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Genera e inserisce riepiloghi delle conversazioni quando il routing combinato cambia modello. Disabilita questa opzione per gestire i cambi di modello in modo indipendente e impedire richieste di passaggio in background per tutte le combinazioni esistenti e future.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Mostra gli id specchio claude/<provider>/<model> su /v1/models in modo che la scoperta dei modelli gateway di Claude Code elenchi i modelli non-Claude. Attenzione: raddoppia le voci nel catalogo per tutti i client quando abilitato globalmente.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Interruttore principale per gli alias del gateway no-think/<provider>/<model>. Attivo (impostazione predefinita): /v1/models mostra una variante senza ragionamento per ogni modello Claude idoneo con funzionalità di ragionamento e un ID no-think/ inviato in una richiesta viene ricondotto al modello reale con il ragionamento disattivato. Disattivo: non viene mostrata alcuna variante e un ID no-think/ viene trattato come qualsiasi altro ID modello sconosciuto. L'abilitazione/disabilitazione per singolo modello ModelSpec.noThinkingAlias continua ad applicarsi quando questa opzione è attiva.",
"featureFlagChatVirtualLanesEnabledDescription": "Attiva corsie di ammissione virtuali adattive per tenant per l'invio ai provider (#9654): il picco di un tenant non restituisce più 503 a un altro. La variabile d'ambiente OMNIROUTE_CHAT_VIRTUAL_LANES ha la precedenza su questa impostazione della dashboard; le modifiche hanno effetto al riavvio del server.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Pagine dei provider nella dashboard: mostra il badge Gratis solo in base ai segnali rispettati dal provider — elimina l'euristica del nome visualizzato, i campi gratuiti non booleani e i suffissi :free per i provider registrati senza un piano gratuito documentato. Se disattivato, mantiene la regola storica del badge.",
+ "featureFlagProxySkipRecentlyFailedDescription": "I pool di proxy e la rotazione per account di opencode smettono temporaneamente di riproporre un proxy che ha appena avuto un errore (sonda TCP rifiutata o risposta 429 ricevuta tramite il proxy) per un periodo per processo che raddoppia a ogni ripetizione, fino a un limite massimo. Non viene registrato alcuno stato del proxy; se tutti i candidati vengono messi da parte, la scelta rimane invariata. Disattivato per impostazione predefinita: l'ordine di selezione corrisponde esattamente alla normale rotazione.",
+ "featureFlagProxyPoolEgressObservationDescription": "Mostra, sotto un pool di proxy nella dashboard, quanti IP di uscita osservati hanno servito i suoi membri nelle ultime 24 ore, quante connessioni li hanno utilizzati e il numero massimo di connessioni osservate dietro un singolo IP. In sola lettura, calcolato dal log dei proxy e mai utilizzato per l'instradamento. Disattivato per impostazione predefinita: l'editor dei pool rimane invariato e la route di osservazione restituisce null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Durante la scansione dello stato dei proxy, consente a una sonda rifiutata dalla destinazione (401/403/429: il proxy ha inoltrato la richiesta, ma la destinazione ha rifiutato questo IP di uscita) di azzerare la serie di errori consecutivi del proxy, come una sonda servita. Disattivato per impostazione predefinita: un rifiuto rimane neutro e mantiene la serie. Una risposta 5xx rimane inconcludente in entrambi i casi e un rifiuto non rimuove, disabilita o riattiva mai un proxy.",
"sidebar": {
"home": "Casa",
"dashboard": "Pannello di controllo",
@@ -1004,15 +1008,15 @@
"proxy": "Proxy",
"limits": "Limiti e quote",
"cliTools": "Strumenti CLI",
- "media": "Media",
+ "media": "Contenuti multimediali",
"settings": "Impostazioni",
"translator": "Traduttore",
"playground": "Playground",
- "searchTools": "Search Tools",
+ "searchTools": "Strumenti di ricerca",
"agents": "Agenti",
"cloudAgents": "Agenti cloud",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Memoria",
+ "skills": "Competenze",
"omniSkills": "OmniSkill",
"agentSkills": "AgenteSkills",
"chaosConfig": "Modalità Caos",
@@ -1051,64 +1055,64 @@
"serverDisconnectedMsg": "Il server proxy è stato arrestato o si sta riavviando.",
"expandSidebar": "Espandi la barra laterale",
"collapseSidebar": "Comprimi la barra laterale",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "themes": "Temi",
+ "presetColors": "Colori popolari",
+ "createTheme": "Crea tema",
+ "chooseColor": "Scegli un colore",
+ "themeCoral": "Corallo",
+ "themeBlue": "Blu",
+ "themeRed": "Rosso",
+ "themeGreen": "Verde",
+ "themeViolet": "Viola",
+ "themeOrange": "Arancione",
+ "themeCyan": "Ciano",
"cliToolsShort": "Strumenti",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "Processi batch",
+ "themeSystem": "Sistema dei temi",
+ "whitelabelingDesc": "Descrizione del white-labeling",
+ "switchThemes": "Cambia tema",
+ "themeAccentDesc": "Descrizione dell'accento del tema",
+ "uploadFavicon": "Carica favicon",
+ "themeDark": "Tema scuro",
+ "customLogoDesc": "Descrizione del logo personalizzato",
+ "sidebarVisibilityToggle": "Attiva/disattiva la visibilità della barra laterale",
+ "themeAccent": "Accento del tema",
+ "resetFavicon": "Reimposta favicon",
+ "whitelabeling": "Personalizzazione white-label",
+ "darkMode": "Modalità scura",
+ "uploadLogo": "Carica logo",
+ "themeLight": "Tema chiaro",
+ "appName": "Nome dell'app",
+ "appNameDesc": "Descrizione del nome dell'app",
+ "resetLogo": "Reimposta logo",
+ "customFavicon": "Favicon personalizzata",
+ "hideHealthLogs": "Nascondi i log di integrità",
+ "customLogo": "Logo personalizzato",
+ "appearance": "Aspetto",
+ "themeSelectionAria": "Selezione del tema ARIA",
+ "themeCreate": "Crea tema",
+ "customFaviconDesc": "Descrizione della favicon personalizzata",
+ "logoPreview": "Anteprima del logo",
+ "themeCustom": "Tema personalizzato",
+ "hideHealthLogsDesc": "Descrizione dell'opzione per nascondere i log di integrità",
+ "faviconPreview": "Anteprima della favicon",
+ "changelog": "Registro delle modifiche",
+ "contextSection": "Contesto e cache",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Combinazioni di motori",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Impostazioni di compressione",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Studio delle combinazioni",
"combosLiveSubtitle": "Cascata di routing in tempo reale",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Esclusioni",
@@ -1124,27 +1128,27 @@
"compressionStudioSubtitle": "Cascata del motore in tempo reale",
"compressionExclusionsSubtitle": "Bypass per-modello/endpoint",
"chaosConfigSubtitle": "Esecuzione parallela multi-modello",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Instradamento",
+ "protocolsSection": "Protocolli",
+ "agentsAiSection": "Agenti e IA",
+ "cacheContextSection": "Cache e contesto",
+ "analyticsSection": "Analisi",
+ "costsSection": "Costi",
+ "monitoringSection": "Monitoraggio",
+ "auditSecuritySection": "Audit e sicurezza",
+ "devtoolsSection": "Strumenti di sviluppo",
+ "configurationSection": "Configurazione",
+ "aiFeaturesSection": "Funzionalità IA",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Plugin",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
+ "apiEndpoints": "Endpoint API",
+ "batchFiles": "File",
+ "analyticsEvals": "Valutazioni",
+ "analyticsSearch": "Ricerca",
+ "analyticsUtilization": "Utilizzo",
+ "analyticsComboHealth": "Stato delle combinazioni",
+ "analyticsCompression": "Compressione",
"costsBudget": "Budget",
"costsFreeTiers": "Budget del piano gratuito",
"costsFreeTiersSubtitle": "Quote mensili di token gratuiti",
@@ -1152,117 +1156,117 @@
"freeProviderRankingsSubtitle": "I migliori provider gratuiti classificati in base ai punteggi ELO dei modelli",
"radar": "Catalogo Radar",
"radarSubtitle": "Catalogo di modelli gratuito arricchito dalla comunità",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
+ "costsQuotaShare": "Condivisione delle quote",
+ "costsPricing": "Prezzi",
+ "logsProxy": "Log del proxy",
"logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "logsActivity": "Attività",
+ "auditMcp": "Audit MCP",
"auditA2a": "Verifica A2A",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Aspetto",
+ "settingsAi": "Impostazioni IA",
+ "settingsSecurity": "Sicurezza",
"settingsAccessTokens": "Token di accesso",
"settingsFeatureFlags": "Flag di funzionalità",
"settingsCache": "Cache",
"settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsRouting": "Instradamento",
+ "settingsResilience": "Resilienza",
"modelLockout": "Blocco del modello",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Avanzate",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
+ "quotaTracker": "Quota del provider",
+ "providerQuota": "Quota del provider",
"runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "consoleLogs": "Log della console",
+ "logsTimeline": "Cronologia",
"logsTimelineSubtitle": "Timeline visiva delle richieste",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Conversazioni",
+ "conversationsSubtitle": "Conversazioni agentiche multi-turno",
+ "globalRouting": "Routing globale",
+ "mitmProxy": "Proxy MITM",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Funzionalità agentiche",
+ "otherFeaturesSection": "Altre funzionalità",
+ "compressionContextGroup": "Compressione del contesto",
+ "gamificationGroup": "Gamificazione",
+ "toolsGroup": "Strumenti",
+ "integrationsGroup": "Integrazioni",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
+ "costsParametersGroup": "Parametri dei costi",
"auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "batchGroup": "Elaborazione in batch",
+ "homeSubtitle": "Panoramica della dashboard",
+ "providersSubtitle": "Gestisci i provider di IA",
+ "quotaTrackerSubtitle": "Monitora i limiti di utilizzo",
+ "providerQuotaSubtitle": "Monitora i limiti di utilizzo dei provider",
+ "runtimeSubtitle": "Resilienza e sessioni in tempo reale",
+ "contextCombosSubtitle": "Combina i motori di compressione",
+ "cliToolsSubtitle": "Configura gli ambienti di runtime CLI",
+ "agentsSubtitle": "Gestisci gli agenti locali",
+ "cloudAgentsSubtitle": "Gestisci gli agenti basati sul cloud",
+ "apiEndpointsSubtitle": "Esponi endpoint personalizzati",
+ "proxySubtitle": "Impostazioni del proxy HTTP",
+ "mitmProxySubtitle": "Intercettazione MITM",
+ "oneProxySubtitle": "Gateway proxy pubblico",
+ "leaderboard": "Classifica",
+ "profile": "Profilo",
+ "tokens": "Token",
+ "gamificationAdmin": "Amministrazione della gamification",
+ "leaderboardSubtitle": "Classifiche e obiettivi",
+ "profileSubtitle": "Account e preferenze",
+ "tokensSubtitle": "Utilizzo dei token e budget",
+ "gamificationAdminSubtitle": "Monitoraggio delle anomalie e prevenzione degli imbrogli",
+ "usageSubtitle": "Statistiche sul traffico e sull'utilizzo",
+ "analyticsComboHealthSubtitle": "Affidabilità della destinazione combinata",
+ "analyticsUtilizationSubtitle": "Utilizzo dei provider",
+ "costsSubtitle": "Ripartizione della spesa",
+ "cacheSubtitle": "Tassi di hit della cache",
+ "analyticsCompressionSubtitle": "Statistiche sul risparmio di token",
+ "analyticsSearchSubtitle": "Analisi dello strumento di ricerca",
+ "analyticsEvalsSubtitle": "Risultati della suite di valutazione",
"providerStats": "Statistiche del provider",
"providerStatsSubtitle": "Metriche di latenza e prestazioni",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Log dell'applicazione",
+ "logsProxySubtitle": "Log del traffico proxy",
+ "consoleLogsSubtitle": "Output della console",
+ "logsActivitySubtitle": "Log delle attività utente",
+ "healthSubtitle": "Controllo dello stato del sistema",
+ "costsPricingSubtitle": "Regole di prezzo per modello",
+ "costsBudgetSubtitle": "Limiti di budget",
+ "costsQuotaShareSubtitle": "Condividi le quote dei provider tra le chiavi",
+ "auditLogSubtitle": "Audit delle autorizzazioni",
+ "auditMcpSubtitle": "Audit del server MCP",
+ "auditA2aSubtitle": "Audit del protocollo A2A",
+ "translatorSubtitle": "Conversione del formato",
+ "playgroundSubtitle": "Testa i prompt in tempo reale",
+ "searchToolsSubtitle": "Registro degli strumenti di ricerca",
+ "memorySubtitle": "Memoria persistente degli agenti",
+ "omniSkillsSubtitle": "Registro delle skill Sandbox",
+ "agentSkillsSubtitle": "Registro delle skill A2A",
+ "mcpSubtitle": "Controlli del server MCP",
+ "a2aSubtitle": "Server del protocollo A2A",
"pluginsSubtitle": "Marketplace dei plugin e installazioni",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "File multimediali memorizzati nella cache",
+ "batchFilesSubtitle": "File di input/output batch",
+ "settingsSubtitle": "Tutte le impostazioni",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Tema e layout",
+ "settingsAiSubtitle": "Impostazioni predefinite del comportamento dell'IA",
+ "globalRoutingSubtitle": "Regole di routing globali",
+ "settingsResilienceSubtitle": "Tentativi e circuit breaker",
+ "settingsAdvancedSubtitle": "Opzioni per utenti esperti",
+ "settingsSecuritySubtitle": "Autenticazione e crittografia",
"settingsAccessTokensSubtitle": "Token CLI con ambito per la modalità remota",
"settingsFeatureFlagsSubtitle": "Attiva/disattiva le funzionalità del sistema",
"settingsCacheSubtitle": "Catalogo modelli e caching delle risposte",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Barra laterale",
+ "settingsSidebarSubtitle": "Personalizza il layout della barra laterale",
"settingsAuthzSubtitle": "Inventario delle route e criteri di bypass",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Documentazione",
+ "issuesSubtitle": "Segnala un bug",
+ "changelogSubtitle": "Note di rilascio",
"costsQuotaPlans": "Piani e quote",
"costsQuotaPlansSubtitle": "Configura i piani per provider",
"activity": "Attività",
@@ -1271,11 +1275,11 @@
"systemGroup": "Sistema",
"costsOverview": "Panoramica",
"costsOverviewSubtitle": "Analisi consolidata dei costi",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Bridge agente",
"agentBridgeSubtitle": "Intercetta il traffico dell'agente IDE",
"trafficInspector": "Ispettore del traffico",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Ispeziona il traffico di richieste e risposte delle tue app",
+ "trafficInspectorPurpose": "Visualizza esattamente ciò che la tua applicazione invia ai provider di IA e riceve da essi. Funziona con qualsiasi client compatibile con OpenAI.",
"cliCode": "CLI Code",
"cliCodeSubtitle": "Strumenti di codice che puntano a OmniRoute",
"cliAgents": "Agenti CLI",
@@ -1292,7 +1296,7 @@
"cannotHide": "Questo elemento non può essere nascosto",
"alwaysVisible": "Sempre visibile",
"groupSeparatorLabel": "Separatore",
- "discovery": "Discovery",
+ "discovery": "Rilevamento",
"discoverySubtitle": "Scansiona provider per accesso gratuito",
"conductor": "Conduttore",
"conductorSubtitle": "Flotta CLI-agent",
@@ -1341,7 +1345,7 @@
"refresh": "Aggiorna",
"loading": "Caricamento webhook...",
"never": "Mai",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {nessun errore} one {# errore} other {# errori}}",
"testWebhook": "Invia prova",
"testSuccess": "Webhook di prova inviato correttamente.",
"testFailed": "Il test del webhook non è riuscito.",
@@ -1465,7 +1469,7 @@
"action": "Azione",
"result": "Risultato",
"details": "Dettagli",
- "timestamp": "Timestamp",
+ "timestamp": "Data e ora",
"from": "Da",
"to": "A",
"refresh": "Aggiorna",
@@ -1559,13 +1563,13 @@
"mcpMetricTopTool": "Strumento principale"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "Temi",
+ "description": "Scegli un tema predefinito o creane uno personalizzato con un solo colore",
+ "presetColors": "Colori popolari",
+ "customTheme": "Tema personalizzato",
+ "customThemeDesc": "Fai clic su Crea tema e scegli un colore",
+ "createTheme": "Crea tema",
+ "activePreset": "Tema attivo"
},
"header": {
"logout": "Esci",
@@ -1590,60 +1594,60 @@
"endpoint": "Endpoint",
"endpointDescription": "Gestire endpoint proxy, MCP, A2A e endpoint API",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Gestione e strumenti del server Model Context Protocol",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Attività e osservabilità del protocollo Agent-to-Agent",
"settings": "Impostazioni",
"settingsDescription": "Gestisci le tue preferenze",
"openaiCompatible": "Compatibile con OpenAI",
"anthropicCompatible": "Compatibile antropico",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "media": "Contenuti multimediali",
+ "mediaDescription": "Genera immagini, video e musica",
+ "themes": "Temi",
+ "themesDescription": "Scegli un tema cromatico per l'intero pannello di controllo",
+ "costsDescription": "Monitora la spesa, analizza le tendenze e gestisci il budget per l'IA tra tutti i provider",
+ "cacheDescription": "Monitora l'efficienza della cache dei prompt dei provider e il riutilizzo locale delle risposte semantiche.",
+ "limitsDescription": "Configura limiti di frequenza e quote per chiave API e provider",
+ "runtimeDescription": "Osservabilità del runtime in tempo reale: circuit breaker, periodi di attesa, blocchi dei modelli, sessioni e avvisi sulle quote",
+ "apiManagerDescription": "Gestisci le chiavi API e il controllo degli accessi per la tua istanza OmniRoute",
+ "batchDescription": "Elabora grandi volumi di richieste in modo asincrono con chiamate API in batch",
+ "contextCavemanDescription": "Compressione dei messaggi basata su regole, pacchetti linguistici, analisi e controlli della modalità di output.",
+ "contextRtkDescription": "Compressione sensibile ai comandi per l'output degli strumenti, i log del terminale e i risultati delle build.",
+ "contextCombosDescription": "Definisci come combinare i motori per diversi scenari di routing.",
+ "changelogDescription": "Rimani aggiornato sulle ultime funzionalità e sugli annunci della piattaforma.",
+ "agentsDescription": "Gestisci e configura gli strumenti degli agenti IA: Codex, Devin, Jules e agenti personalizzati",
+ "cloudAgentsDescription": "Orchestra agenti IA basati sul cloud con monitoraggio delle attività in tempo reale e approvazione dei piani",
+ "memoryDescription": "Memoria conversazionale persistente con ricerca semantica e indicizzazione full-text FTS5",
+ "skillsDescription": "Installa e gestisci le skill sandbox per l'esecuzione automatizzata di prompt e strumenti",
+ "agentSkillsDescription": "Catalogo di skill pronte per gli agenti con copia dell'URL con un clic per l'integrazione con client AI",
+ "translatorDescription": "Traduci e testa i prompt tra formati API: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Testa i prompt in modo interattivo con risposte in tempo reale dei provider e analisi del formato",
+ "searchToolsDescription": "Analisi delle ricerche, suddivisione per provider, percentuali di hit della cache e monitoraggio dei costi",
+ "logsDescription": "Log delle richieste in tempo reale, tracce degli errori e analizzatore degli eventi di streaming",
+ "auditDescription": "Registro di audit di conformità sull'utilizzo delle chiavi API, sulle chiamate agli strumenti MCP e sugli eventi relativi alle policy",
+ "webhooksDescription": "Configura gli endpoint webhook per ricevere notifiche degli eventi in tempo reale",
+ "healthDescription": "Panoramica dello stato del sistema: provider, circuit breaker, limiti di frequenza e database",
+ "proxyDescription": "Configura le impostazioni del proxy upstream per le connessioni in uscita ai provider",
+ "apiEndpointsDescription": "Gestisci le configurazioni personalizzate degli endpoint API e le sostituzioni del routing",
+ "batchFilesDescription": "Esplora e gestisci i file di output e i risultati dei processi batch",
+ "analyticsEvalsDescription": "Risultati della valutazione dei modelli e benchmark delle prestazioni",
+ "analyticsSearchDescription": "Analisi delle query di ricerca, percentuali di hit della cache e monitoraggio dei costi",
+ "analyticsUtilizationDescription": "Metriche di utilizzo dei provider e pianificazione della capacità",
+ "analyticsComboHealthDescription": "Stato e prestazioni in tempo reale delle configurazioni di routing combinato",
+ "analyticsCompressionDescription": "Analisi della compressione del contesto e del risparmio di token",
+ "costsBudgetDescription": "Limiti di budget e avvisi di spesa per chiave API e provider",
+ "costsPricingDescription": "Configurazione personalizzata dei prezzi per il calcolo dei costi dei token",
+ "logsProxyDescription": "Log delle richieste del proxy upstream e analisi del traffico",
+ "logsConsoleDescription": "Output della console dell'applicazione e log di debug",
+ "logsActivityDescription": "Registro di audit delle azioni degli utenti e degli eventi di sistema",
+ "auditMcpDescription": "Registro di audit delle chiamate agli strumenti MCP e registri di conformità",
"auditA2a": "Verifica A2A",
"auditA2aDescription": "Traccia di controllo dell'esecuzione delle attività A2A, transizioni di stato e record di chiamata delle competenze",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Tema, branding e personalizzazione visiva",
+ "settingsAiDescription": "Comportamenti dell'AI, budget di ragionamento e impostazioni di visione e memoria",
"settingsCacheDescription": "TTL per le voci di cache del catalogo modelli",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Impostazioni di autenticazione, autorizzazione e controllo degli accessi",
"featureFlags": "Flag di funzionalità",
"featureFlagsDescription": "Capacità del sistema di controllo e caratteristiche sperimentali",
"featureFlagsActive": "{count} attivo",
@@ -1660,18 +1664,18 @@
"featureFlagsSourceDb": "DB",
"featureFlagsSourceEnv": "ENV",
"featureFlagsSourceDefault": "DEF",
- "featureFlagsReset": "Reset",
+ "featureFlagsReset": "Reimposta",
"featureFlagsResetAll": "Ripristina tutte le sostituzioni",
"featureFlagsResetAllConfirm": "Sei sicuro di voler reimpostare tutte le sostituzioni dei flag di funzionalità? Ciò ripristinerà tutti i flag ai loro valori ENV o predefiniti.",
"featureFlagsRestartRequired": "Per candidarsi è necessario riavviare",
"featureFlagsNoResults": "Nessuna segnalazione corrisponde alla tua ricerca",
"featureFlagsSaved": "Segnalazione aggiornata",
"featureFlagsError": "Impossibile aggiornare il contrassegno",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Regole di routing, alias dei modelli, impostazioni predefinite delle combinazioni e impostazioni di degradazione",
+ "settingsResilienceDescription": "Configurazione di circuit breaker, nuovi tentativi e fallback",
+ "settingsAdvancedDescription": "Regole avanzate per i payload, limiti delle richieste e impostazioni dell'API proxy",
+ "mitmProxyDescription": "Configura le impostazioni del proxy MITM per l'analisi e il debug del traffico",
+ "oneProxyDescription": "Configura le impostazioni di 1Proxy per il concatenamento avanzato dei proxy",
"omniSkillsDescription": "Installa e gestisci le skill sandbox per l'esecuzione automatica di prompt e strumenti"
},
"cloudSyncStatus": {
@@ -1686,7 +1690,7 @@
"statusLabel": "Stato sincronizzazione impostazioni remote: {status}"
},
"breadcrumbs": {
- "ariaLabel": "Breadcrumb",
+ "ariaLabel": "Percorso di navigazione",
"dashboard": "Dashboard",
"providers": "Provider",
"combos": "Combo",
@@ -1694,7 +1698,7 @@
"general": "Generale",
"appearance": "Aspetto",
"ai": "Impostazioni AI",
- "routing": "Routing",
+ "routing": "Instradamento",
"resilience": "Resilienza",
"advanced": "Avanzate",
"accessTokens": "Token di accesso",
@@ -1704,7 +1708,7 @@
"console": "Console",
"logger": "Logger",
"translator": "Traduttore",
- "playground": "Playground",
+ "playground": "Area di test",
"add": "Aggiungi",
"edit": "Modifica",
"apiKeys": "Chiavi API",
@@ -1713,11 +1717,11 @@
"cliAgents": "Agenti CLI",
"acpAgents": "Agenti ACP",
"endpoint": "Endpoint",
- "apiManager": "API Manager",
+ "apiManager": "Gestore API",
"context": "Contesto",
"compression": "Compressione",
"services": "Servizi",
- "analytics": "Analytics",
+ "analytics": "Analisi",
"costs": "Costi",
"health": "Salute",
"runtime": "Runtime",
@@ -1735,10 +1739,10 @@
"mcp": "MCP",
"batch": "Batch",
"files": "File",
- "media": "Media",
+ "media": "Contenuti multimediali",
"cache": "Cache",
- "changelog": "Changelog",
- "chaos": "Chaos",
+ "changelog": "Registro delle modifiche",
+ "chaos": "Caos",
"cloudAgents": "Agenti cloud",
"live": "Live",
"studio": "Studio",
@@ -1758,9 +1762,9 @@
"discovery": "Scoperta",
"freeProviderRankings": "Classifiche provider gratuiti",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Configurazione",
"freeTiers": "Piani gratuiti",
- "gamification": "Gamification",
+ "gamification": "Gamificazione",
"leaderboard": "Classifica",
"limits": "Limiti",
"profile": "Profilo",
@@ -1774,7 +1778,7 @@
"sidebar": "Barra laterale",
"tokens": "Token",
"tools": "Strumenti",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Bridge per agenti",
"trafficInspector": "Ispettore del traffico",
"usage": "Utilizzo",
"orchestration": "Orchestrazione"
@@ -1884,15 +1888,15 @@
"releaseNotes": "Note di Rilascio",
"readMore": "Leggi di più",
"noAuthLabel": "Nessuna Autenticazione",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Preparati a instradare",
+ "readinessTitle": "Invia la tua prima richiesta",
+ "readinessSubtitle": "Quattro semplici passaggi. OmniRoute verifica l'idoneità man mano che procedi.",
+ "readinessStep1": "Connetti un provider",
+ "readinessStep2": "Configura l'autenticazione dell'endpoint",
+ "readinessStep3": "Copia il tuo endpoint",
+ "readinessStep4": "Invia una richiesta di test",
+ "readinessContinue": "Continua la configurazione",
+ "readinessDismiss": "Ignora per ora"
},
"analytics": {
"title": "Analitica",
@@ -1908,8 +1912,8 @@
"diversityHigherExplanation": "Valori più alti indicano che il traffico è distribuito su più provider.",
"diversityNoData": "Nessun dato di utilizzo recente disponibile.",
"chartRequests": "Richieste",
- "chartInput": "Input",
- "chartOutput": "Output",
+ "chartInput": "Ingresso",
+ "chartOutput": "Uscita",
"chartTotal": "Totale",
"chartCost": "Costo",
"chartShare": "Quota",
@@ -1938,7 +1942,7 @@
"unknownApiKey": "Chiave API sconosciuta",
"chartModelBreakdown": "Dettaglio modelli",
"chartModel": "Modello",
- "chartProvider": "Provider",
+ "chartProvider": "Fornitore",
"chartProviderBreakdown": "Dettaglio provider",
"chartDate": "Data",
"chartRequestsByProviderDate": "Richieste per provider e data",
@@ -1963,7 +1967,7 @@
"period7D": "7G",
"period30D": "30G",
"period90D": "90G",
- "periodYTD": "YTD",
+ "periodYTD": "Da inizio anno",
"periodAll": "Tutto",
"totalTokens": "Token totali",
"inputTokens": "Token di input",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Errore",
"comboHealth": "Salute Combo",
"comboHealthDescription": "Quota a livello combo, distribuzione dell'utilizzo e metriche delle prestazioni",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Analisi della compressione",
+ "compressionAnalyticsDescription": "Analisi della compressione — risparmio di token, suddivisione per modalità e statistiche dei provider.",
"autoRoutingTotalAutoRequests": "Richieste automatiche totali",
"autoRoutingAvgSelectionScore": "Punteggio medio di selezione",
"autoRoutingExplorationRate": "Tasso di esplorazione",
@@ -2058,7 +2062,7 @@
"latencyInv": "Latenza",
"taskFit": "Idoneità al task",
"stability": "Stabilità",
- "tierPriority": "Tier",
+ "tierPriority": "Livello",
"tierAffinity": "Idoneità al tier",
"specificityMatch": "Specificità",
"contextAffinity": "Contesto",
@@ -2088,7 +2092,7 @@
"comboHealthPerformance": "Prestazioni",
"comboHealthPerformanceDescription": "Affidabilità e throughput per il traffico combo instradato.",
"comboHealthExecutionTargetsDescription": "Metriche di runtime a livello di passaggio e visibilità della quota per le destinazioni combo strutturate.",
- "comboHealthRequestShort": "{count} req",
+ "comboHealthRequestShort": "{count} richieste",
"comboHealthQuotaScope": "Ambito della quota: {scope}",
"comboHealthTrendValue": "Tendenza: {trend}",
"comboHealthFetchFailed": "Impossibile recuperare i dati sullo stato di salute della combo",
@@ -2184,7 +2188,7 @@
"routeRuntimeScoreNow": "Punteggio di runtime attuale",
"routeWouldSelectNow": "Selezionerebbe ora",
"routeNoRecomputeCandidates": "Nessuna classificazione dei candidati combo può essere ricalcolata per questa richiesta.",
- "runtime": "Runtime",
+ "runtime": "Ambiente di esecuzione",
"routeTopNow": "Principale attuale",
"routeFetchLogsFailed": "Impossibile recuperare i log delle richieste",
"routeExplainFailed": "Impossibile spiegare la route",
@@ -2199,11 +2203,11 @@
"routeRecentSuccess": "Successo recente",
"routeAvgTargetLatency": "Latenza media del target",
"routeSelectedTarget": "Target selezionato",
- "provider": "Provider",
+ "provider": "Fornitore",
"model": "Modello",
"account": "Account",
"connection": "Connessione",
- "combo": "Combo",
+ "combo": "Combinazione",
"routeStep": "Passaggio",
"tokens": "Token",
"notAvailable": "n/d",
@@ -2254,9 +2258,9 @@
"fullAccess": "Accesso completo",
"keyManagement": "Gestione delle chiavi API",
"keyManagementDesc": "Crea e gestisci le chiavi API per autenticare le richieste al tuo endpoint",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "La tua app invia richieste a OmniRoute tramite una chiave API",
+ "requestFlowYourApp": "La tua app",
+ "requestFlowApiKey": "Chiave API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Chiavi totali",
"restricted": "Limitato",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Copia e memorizza questa chiave adesso: non verrà più mostrata.",
"done": "Fatto",
"savePermissions": "Salva autorizzazioni",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Endpoint consentiti",
+ "allEndpointsAllowed": "Questa chiave può accedere a tutti gli endpoint API.",
+ "endpointsRestricted": "Limitata a {count} endpoint{count, plural, one {} other {}}.",
+ "autoResolve": "Risoluzione automatica",
+ "autoResolveDesc": "Risolve automaticamente i nomi di modello ambigui associandoli al provider nativo per questa chiave API.",
"streamDefaultMode": "Compatibilità predefinita dello streaming",
"streamDefaultModeDesc": "Controlla i flag `stream` omessi per questa chiave. La modalità JSON restituisce risposte non in streaming a meno che il client non richieda esplicitamente SSE.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Precedente",
"streamDefaultJson": "Compatibile con JSON",
"streamDefaultBadge": "Predefinito stream JSON",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Chiave attiva",
+ "keyActiveDesc": "Abilita o disabilita questa chiave API. Le chiavi disabilitate vengono immediatamente rifiutate con 403.",
+ "accessSchedule": "Pianificazione degli accessi",
+ "accessScheduleDesc": "Limita l'accesso a orari e giorni specifici della settimana.",
+ "scheduleFrom": "Dalle",
+ "scheduleUntil": "Alle",
+ "scheduleDays": "Giorni",
+ "scheduleTimezone": "Fuso orario",
+ "scheduleTimezoneHint": "Usa i nomi dei fusi orari IANA, ad es. America/New_York, Europe/Berlin",
+ "scheduleActive": "Pianificazione",
+ "disabled": "Disabilitata",
+ "daySun": "Dom",
+ "dayMon": "Lun",
+ "dayTue": "Mar",
+ "dayWed": "Mer",
+ "dayThu": "Gio",
+ "dayFri": "Ven",
+ "daySat": "Sab",
"allowAll": "Consenti tutto",
"restrict": "Limitare",
"allowAllInfo": "Questa chiave può accedere a tutti i modelli disponibili.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Impossibile aggiornare le autorizzazioni. Per favore riprova.",
"unknownProvider": "sconosciuto",
"copyMaskedKey": "Copia chiave mascherata",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "La chiave completa è disponibile solo al momento della creazione — copiala quando la crei per la prima volta",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# dispositivo} other {# dispositivi}}",
"devicesTooltip": "{count, plural, one {# IP/User-Agent distinto visto con questa chiave (ultimi 30 min)} other {# IP/User-Agent distinti visti con questa chiave (ultimi 30 min)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Combinazioni consentite",
"allCombosAllowed": "Questa chiave può utilizzare qualsiasi combinazione.",
"restrictedComboCount": "Limitato a {count, plural, one {# combinazione} other {# combinazioni}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# voce memorizzata non è} other {# voci memorizzate non sono}} presente in questo elenco combinato (ad esempio, nelle regole di instradamento) e verrà mantenuta così come salvata.",
+ "preservedComboRuleHint": "Mantenuta così come memorizzata. Questa voce non è un'opzione dell'elenco combinato precedente, quindi può essere modificata solo tramite l'API.",
"apiManagerCustomRateLimits": "Limiti di velocità personalizzati",
"apiManagerCustomRateLimitsDesc": "Sostituisci i limiti predefiniti globali. Lascia vuoto per utilizzare le impostazioni predefinite.",
"apiManagerRateLimitRequestsPlaceholder": "Richieste",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Consente a questa chiave di ignorare i criteri di limite del provider/account upstream durante l'instradamento. Si applicano comunque le quote USD della chiave API.",
"quotaPill": "QUOTA",
"quotaModeOnly": "Solo qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Lease esclusivo",
+ "exclusiveLeaseNoticeTitle": "Lease esclusivo",
+ "exclusiveLeaseNoticeDesc": "Questa chiave API dispone delle autorizzazioni di lease esclusivo per l'instradamento delle connessioni dedicate.",
+ "allConnections": "Tutte le connessioni",
+ "onlySelectedConnections": "Solo le connessioni selezionate",
+ "selectAtLeastOneConnection": "Seleziona almeno una connessione oppure scegli Tutte le connessioni.",
+ "allConnectionsDesc": "Questa chiave può utilizzare qualsiasi connessione attiva.",
+ "restrictedToConnections": "Limitata a {count, plural, one {# connessione} other {# connessioni}}."
},
"auditLog": {
"title": "Registro di controllo",
@@ -2432,7 +2436,7 @@
"actor": "Attore",
"target": "Bersaglio",
"ipAddress": "Indirizzo IP",
- "timestamp": "Timestamp",
+ "timestamp": "Data e ora",
"noEntries": "Nessuna voce di controllo trovata",
"filterByAction": "Filtra per azione...",
"filterByActor": "Filtra per attore...",
@@ -2453,14 +2457,14 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Genera",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Generazione in corso...",
+ "loadingModels": "Caricamento dei modelli disponibili...",
+ "noModels": "Nessun modello disponibile. Configura prima i provider con funzionalità multimediali.",
+ "error": "Generazione non riuscita",
+ "result": "Risultato",
+ "imageDescription": "Genera immagini da prompt testuali utilizzando OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI e altri.",
+ "videoDescription": "Crea video con AnimateDiff, Stable Video Diffusion tramite ComfyUI o SD WebUI.",
+ "musicDescription": "Componi musica utilizzando Stable Audio Open o MusicGen tramite ComfyUI.",
"kinds": {
"embedding": "Embedding",
"image": "Immagine",
@@ -2506,7 +2510,7 @@
"failedToReadFile": "Impossibile leggere il file",
"generationFailed": "Generazione non riuscita",
"requestFailed": "Richiesta non riuscita ({status})",
- "provider": "Provider",
+ "provider": "Fornitore",
"credentialsRequired": "Richiede la chiave API omniglyph. Questa è un'anteprima e rimane disattivata per impostazione predefinita fino al completamento della convalida end-to-end.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profilo di compressione",
+ "profileDescription": "Il profilo è un limite massimo, non minimo: un profilo più restrittivo non può essere reso meno restrittivo da un'override per singolo passaggio. Misurato su questa codebase: con coding-safe o balanced, una sessione che non ha ancora accumulato cronologia non comprime nulla, perché entrambi innalzano la soglia minima di caratteri e mantengono nativi il prompt di sistema, gli schemi degli strumenti e i risultati degli strumenti.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressive (predefinito)",
+ "description": "La policy misurata dalle ricevute pubblicate. Converte in immagini il prompt di sistema, la documentazione degli strumenti e la cronologia densa."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Bilanciato",
+ "description": "Mantiene nativo lo stato attivo e protegge gli ultimi 8 turni; comprime solo la cronologia chiusa meno recente."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Sicuro per la codifica",
+ "description": "Mantiene nativi le direttive, gli schemi degli strumenti e l'output attivo degli strumenti, proteggendo gli ultimi 12 turni. Non comprime nulla finché la sessione non accumula cronologia."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Pass-through",
+ "description": "Esegue il routing senza trasformazioni. Il motore viene ignorato e la richiesta viene inoltrata senza modifiche."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Seleziona il profilo di compressione OmniGlyph",
"saved": "Salvato.",
"saveFailed": "Impossibile salvare.",
"enableAria": "Abilita il motore OmniGlyph",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Compressione dei messaggi basata su regole, pacchetti lingua, analisi e controlli della modalità di output.",
"advancedConfig": "Configurazione avanzata",
"advancedConfigDesc": "Ottimizzare il comportamento di compressione",
"aggressiveSettings": "Impostazioni aggressive",
"aggressiveSettingsDesc": "Massima compressione con potenziali compromessi di qualità",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Richieste",
+ "tokensSaved": "Token risparmiati",
+ "savingsPercent": "Risparmio %",
+ "avgLatency": "Latenza media",
+ "languagePacks": "Pacchetti linguistici",
+ "languagePacksDesc": "Abilita le regole di compressione per lingue specifiche.",
"labelAutoTrigger": "Compressione automatica quando il contesto supera",
"labelCompressionRate": "Resistenza alla compressione",
"labelMaxTokens": "Token di destinazione per messaggio",
"labelMinLength": "Lunghezza minima del messaggio",
"labelMinSavings": "Token minimi da salvare",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Abilitato",
+ "autoDetect": "Rileva automaticamente la lingua",
+ "rulesCount": "{count} regole",
"inputCompressionTitle": "Compressione dell'input",
"inputCompressionDesc": "Riscrivi la cronologia della chat con parole più brevi. Riduce i token di input del ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Analisi della compressione",
+ "noAnalytics": "Non sono ancora disponibili analisi della compressione.",
"masterDisabledWarning": "L'interruttore principale di Token Saver è disattivato — queste impostazioni non influenzeranno le richieste finché non lo attivi dalle Impostazioni di compressione o lo modifichi qui.",
"outputMode": "Modalità di uscita",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Modalità di output",
"quickSettings": "Impostazioni rapide",
"quickSettingsDesc": "Impostazioni di compressione di base per iniziare",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Bypass automatico della chiarezza",
+ "bypassConditions": "Condizioni di bypass",
"bypassConditionsList": "sicurezza, irreversibile, chiarimento, sensibile all'ordine",
"simpleMode": "Semplice",
"advancedMode": "Avanzato",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Impostazioni ultra",
"ultraSettingsDesc": "Compressione semantica basata su SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Rispondi in modo conciso. Mantieni invariati termini tecnici, codice, errori, URL e identificatori.",
+ "full": "Rispondi in modo succinto e compatto. Mantieni tutto il contenuto tecnico.",
+ "ultra": "Rispondi in modo estremamente succinto usando abbreviazioni tecniche comuni. Mantieni invariati i simboli esatti."
}
},
"translator": {
@@ -9249,7 +9260,7 @@
"tokens": "token",
"pauseAutoRefresh": "Sospendi aggiornamento automatico",
"resumeAutoRefresh": "Riprendi aggiornamento automatico",
- "live": "Live",
+ "live": "In tempo reale",
"copyInput": "Copia input",
"copyOutput": "Copia output",
"streamTransformFailed": "Impossibile trasformare lo stream"
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Rimanente",
"kiloPassRenews": "Si rinnova tra {count} giorni",
"kiloPassUsageLabel": "Utilizzo di questo mese",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Crediti di utilizzo extra",
+ "kimiExtraUsage": "Utilizzo extra",
+ "kimiExtraUsageEnabled": "Abilitato",
+ "kimiExtraUsageDisabled": "Disabilitato",
+ "kimiExtraUsageFrozen": "Congelato",
+ "kimiExtraUsageUnavailable": "Non disponibile",
+ "kimiMonthlyUsed": "Utilizzati questo mese",
+ "kimiMonthlyLimit": "Limite mensile",
+ "kimiMonthlyLimitUnlimited": "Illimitato",
+ "kimiAdditionalCredits": "Crediti aggiuntivi",
"loggerTab": "Registratore",
"proxyTab": "Procura",
"budgetManagement": "Gestione del bilancio",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Interruttori automatici",
"lockedIPs": "IP bloccati",
"lockoutsAutoRefreshHint": "Blocchi del limite di velocità per modello • Aggiornamento automatico 10 secondi",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# bloccato} other {# bloccati}}",
"timeLeft": "{time} rimasto",
"howItWorks": "Come funziona",
"howItWorksSubtitle": "Scopri come le valutazioni convalidano le tue risposte LLM",
@@ -9339,7 +9350,7 @@
"evalsStrategyRegexDescription": "Valida l'output dell'LLM rispetto a un pattern di espressione regolare.",
"evalsStrategyCustomDescription": "Logica di valutazione personalizzata (configurata tramite JSON).",
"historyColumnSuiteName": "Nome della suite",
- "historyColumnTarget": "Target",
+ "historyColumnTarget": "Destinazione",
"historyColumnPassRate": "Tasso di superamento",
"historyColumnAvgLatencyMs": "Latenza media",
"historyColumnCreatedAt": "Eseguito",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Modelli in prova",
"searchSuitesPlaceholder": "Cerca suite...",
"passSuffix": "passaggio",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# caso} other {# casi}}",
"runEval": "Esegui valutazione",
"runAllSuites": "Esegui tutto",
"runAllRunning": "Correre tutto...",
"runAllProgress": "In esecuzione {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# suite non riuscita} other {# suite non riuscite}}",
"runAllCompleted": "Ho eseguito le suite {suites}: {passed} superato, {failed} fallito",
"runAllCompletedWithFailures": "Ho eseguito le suite {completed}; Impossibile completare {failedSuites}",
"runningProgress": "In esecuzione {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Limiti del fornitore",
"noProviders": "Nessun provider connesso",
"connectProvidersForQuota": "Connettiti ai provider con OAuth per monitorare i limiti di quota e l'utilizzo dell'API.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# account} other {# account}}",
"filteredFromCount": "(filtrato da {count})",
"autoRefresh": "Aggiornamento automatico",
"refreshAll": "Aggiorna tutto",
@@ -9432,13 +9443,13 @@
"quotaVisibilityUpdateFailed": "Impossibile aggiornare la visibilità della quota",
"account": "Account",
"modelQuotas": "Quote modello",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Ultimo aggiornamento",
"actions": "Azioni",
"refreshQuota": "Aggiorna quota",
"today": "Oggi",
"tomorrow": "Domani",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "tra {duration}",
"notApplicable": "N / A",
"rawPlanWithValue": "Piano grezzo: {plan}",
"noPlanFromProvider": "Nessun piano dal fornitore",
@@ -9448,9 +9459,9 @@
"cardExpand": "Espandi",
"cardCollapse": "Comprimi",
"moreQuotas": "+{count} altri",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Non raggruppati",
+ "viewFlat": "Piatto",
+ "viewByEnvironment": "Per ambiente",
"noQuotaDataAvailable": "Nessun dato sulle quote disponibile",
"noAccountsForTierFilter": "Nessun account trovato per il filtro del livello",
"tierAll": "Tutto",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "Livello",
"purchaseAll": "Tutti",
"purchaseOauthSub": "Abbonamento",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "Senza OAuth",
"purchaseApiKey": "Chiave API",
"creditsLabel": "Crediti",
"creditBalanceHint": "Saldo rimanente",
@@ -9500,8 +9511,8 @@
"confirmRedeemResetCreditButton": "Riscatta credito",
"resetCreditRedeemed": "Ripristino riscattato",
"resetCreditRedeemFailed": "Impossibile riscattare il credito di ripristino",
- "suiteBuilderSaveFailed": "Failed to save suite",
- "clone": "Clone",
+ "suiteBuilderSaveFailed": "Impossibile salvare la suite",
+ "clone": "Clona",
"exportSuite": "Esportare",
"importSuite": "Importare",
"suiteExported": "Suite esportata",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "JSON della suite di valutazione non valida",
"suiteBuilderCloneSuffix": "copia",
"suiteBuilderImportedSuite": "Suite importata",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Scheda di valutazione",
+ "evalApiKey": "Chiave API",
+ "scorecardPassRate": "Tasso di superamento",
+ "targetTypeModel": "Modello",
+ "actualOutputLabel": "Output effettivo",
+ "evalTargetHint": "Seleziona un modello o una combinazione da valutare.",
+ "suiteBuilderDeleted": "Suite eliminata correttamente",
+ "suiteBuilderCaseCardHint": "Definisci il prompt di input e i criteri per l'output previsto.",
+ "nextResetUtc": "Prossimo azzeramento (UTC)",
+ "scorecardHint": "Tassi di superamento aggregati per tutte le suite di valutazione.",
+ "suiteLatestRunsHint": "Esecuzioni di valutazione più recenti per questa suite.",
+ "saving": "Salvataggio",
+ "suiteBuilderCaseModelLabel": "Modello (facoltativo)",
+ "evalControlsTitle": "Controlli di valutazione",
+ "suiteBuilderEditTitle": "Modifica suite di valutazione",
+ "suiteBuilderCaseStrategyLabel": "Strategia di convalida",
+ "notifySelectDifferentCompareTarget": "Seleziona una destinazione diversa per il confronto",
+ "recentRunsHint": "Sono mostrate le esecuzioni di valutazione più recenti. Fai clic su un'esecuzione per visualizzare i risultati dettagliati.",
+ "evalCompareHint": "Confronta facoltativamente i risultati con una seconda destinazione.",
+ "suiteBuilderCaseInvalid": "Questo caso presenta errori di convalida. Correggili prima di salvare.",
+ "historyEmpty": "Nessuna cronologia di valutazione disponibile",
+ "suiteBuilderUpdated": "Suite aggiornata correttamente",
+ "resetInterval": "Intervallo di azzeramento",
+ "suiteBuilderCreateTitle": "Crea suite di valutazione",
+ "activePeriodSpend": "Spesa del periodo attivo",
+ "evalApiKeyHint": "Seleziona la chiave API da utilizzare per le richieste di valutazione.",
+ "evalCompareOptional": "Confronta (facoltativo)",
+ "suiteBuilderDeleteFailed": "Impossibile eliminare la suite",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Istruzioni di sistema facoltative...",
+ "scorecardCases": "Casi",
+ "runCompletedWithScore": "Valutazione completata — tasso di superamento: {score}%",
+ "suiteBuilderCustomBadge": "Personalizzato",
+ "targetSuiteDefaults": "Impostazioni predefinite della suite",
+ "suiteBuilderDeleteConfirm": "Vuoi davvero eliminare questa suite? Questa azione non può essere annullata.",
+ "suiteBuilderNameLabel": "Nome della suite",
+ "scorecardSuites": "Suite",
+ "evalCompareTarget": "Target di confronto",
+ "suiteBuilderCaseModelPlaceholder": "es. gpt-4o-mini",
+ "evalControlsHint": "Configura il target di valutazione e la chiave API, quindi esegui le suite per verificare la qualità del modello.",
+ "recentRunsTitle": "Esecuzioni recenti",
+ "suiteBuilderCaseSystemPromptLabel": "Prompt di sistema",
+ "suiteBuilderCaseExpectedPlaceholder": "es. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "per esempio. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Incolla l'esatta risposta prevista",
"suiteBuilderCaseExpectedPlaceholderRegex": "per esempio. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Utilizza un'espressione regolare JavaScript senza racchiudere le barre.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "es. Suite per la qualità del codice",
+ "suiteBuilderAddCase": "Aggiungi caso",
+ "cancel": "Annulla",
+ "evalTarget": "Destinazione",
+ "suiteBuilderCaseNameLabel": "Nome del caso",
+ "weeklyLimitUsd": "Limite settimanale (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "es. Scrivi una funzione fibonacci in Python",
+ "suiteBuilderNameRequired": "Il nome della suite è obbligatorio",
+ "suiteBuilderCaseUserPromptLabel": "Prompt utente",
+ "daily": "Giornaliero",
+ "resultErrorLabel": "Errore",
+ "suiteBuilderBuiltInBadge": "Integrato",
+ "suiteBuilderCaseCardTitle": "Caso di test",
"suiteBuilderDuplicateCase": "Duplicato",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "es. 50.00",
+ "suiteBuilderCaseTagsHint": "Tag separati da virgole per organizzare i casi di test.",
+ "notifyEvalRunFailedWithReason": "Valutazione non riuscita: {reason}",
+ "weekly": "Settimanale",
+ "runEvalRunning": "Valutazione in corso...",
+ "delete": "Elimina",
+ "resetTimeUtc": "Ora di reimpostazione (UTC)",
+ "evalApiKeyAuto": "Automatico (usa il valore predefinito)",
+ "suiteBuilderDescriptionPlaceholder": "Descrizione facoltativa di ciò che questa suite verifica...",
+ "targetComparisonTitle": "Confronto dei target",
+ "save": "Salva",
+ "suiteBuilderCreated": "Suite creata correttamente",
+ "suiteLatestRuns": "Ultime esecuzioni",
+ "suiteBuilderCaseExpectedLabel": "Valore atteso",
+ "historyLatency": "Latenza",
+ "suiteBuilderCaseTagsPlaceholder": "es. programmazione, python",
+ "targetTypeCombo": "Combinazione",
+ "scorecardPassed": "Superato",
+ "suiteBuilderCaseTagsLabel": "Tag",
+ "suiteBuilderNewSuite": "Nuova suite",
+ "notifyEvalLoadFailed": "Impossibile caricare i dati di valutazione",
+ "notConfigured": "Non configurato",
+ "suiteBuilderCaseNamePlaceholder": "es. test di Fibonacci in Python",
+ "intervalLabel": "Intervallo",
+ "suiteBuilderCreateAction": "Crea suite",
+ "suiteBuilderCasesHint": "Ogni caso invia un prompt e convalida la risposta.",
+ "suiteBuilderUpdatedAt": "Aggiornato",
+ "errorBadge": "Errore",
+ "suiteBuilderCasesTitle": "Casi di test",
+ "edit": "Modifica",
+ "monthly": "Mensile",
+ "suiteBuilderCasesRequired": "È richiesto almeno un caso di test",
+ "weeklyLimitSummary": "Riepilogo del limite di budget settimanale",
+ "suiteBuilderDescriptionLabel": "Descrizione",
+ "targetComparisonHint": "Confronto affiancato dei risultati della valutazione tra i target.",
+ "compareCompletedWithScore": "Confronto completato — tasso di superamento: {score}%",
+ "staleQuotaTooltip": "Ultimo aggiornamento non riuscito — visualizzazione dei dati memorizzati nella cache",
"quotaThresholdLabel": "Min rimasto",
"quotaCutoffsColumnHelp": "Interrompi le richieste quando la quota rimanente scende a questa percentuale o al di sotto.",
"quotaCutoffsButtonDefault": "Predefinito",
@@ -9859,19 +9870,19 @@
"backToLogin": "Torna all'accesso",
"forgotPassword": "Ha dimenticato la password?",
"continueWithOidc": "Continua con OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Password predefinita: CHANGEME (a meno che non sia stato impostato INITIAL_PASSWORD)",
"Authorization": "Autorizzazione",
"Content-Disposition": "Disposizione del contenuto",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "In attesa dell'autorizzazione...",
+ "waitingForGoogleAuthorization": "In attesa dell'autorizzazione di Google...",
+ "waitingForOpenAIAuthorization": "In attesa dell'autorizzazione di OpenAI...",
+ "waitingForAntigravityAuthorization": "In attesa dell'autorizzazione di Antigravity...",
+ "waitingForQoderAuthorization": "In attesa dell'autorizzazione di Qoder...",
+ "exchangingCodeForTokens": "Scambio del codice con i token...",
+ "nodeIncompatibleTitle": "Versione di Node.js incompatibile",
+ "nodeIncompatibleDesc": "È in esecuzione Node.js {version}, una versione non conforme ai criteri di sicurezza per gli ambienti di runtime supportati da OmniRoute. Utilizza una versione LTS aggiornata di Node.js 20.x o 22.x.",
+ "nodeIncompatibleFixLabel": "Soluzione: installa una versione LTS aggiornata di Node.js 22",
+ "nodeIncompatibleHint": "OmniRoute richiede Node.js 22.22.2+ (22.x LTS) o 24.0.0+ (24.x LTS). Si consiglia Node 24 LTS.",
"resetViaAppDataTitle": "Ripristina tramite Dati App",
"resetViaAppDataDescription": "Elimina il file delle impostazioni dalla directory dei dati dell'app per ripristinare la tua password:",
"quitDesktopApp": "Esci completamente dall'app desktop OmniRoute",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "Fornitori",
"commonUseCases": "Casi d'uso comuni",
"clientCompatibility": "Compatibilità con il cliente",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Protocolli",
"apiReference": "Riferimento API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Riferimento API di gestione",
+ "managementApiDescription": "Endpoint di automazione per il registro dei proxy, le assegnazioni degli ambiti e la migrazione dei proxy legacy.",
"method": "Metodo",
"path": "Sentiero",
"notes": "Note",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Installa OmniRoute come app Web progressiva su browser Android, iOS e desktop.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Esegui OmniRoute in modalità headless su Android tramite Termux. Accedi alla dashboard dal browser del tuo dispositivo mobile.",
"featureRoutingTitle": "Routing multi-provider",
"featureRoutingText": "Instrada le richieste a oltre 30 fornitori di intelligenza artificiale attraverso un singolo endpoint compatibile con OpenAI. Supporta API di chat, risposte, audio e immagini.",
"featureCombosTitle": "Combo e bilanciamento",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Utilizza OmniRoute come URL di base stabile ruotando gli account o le combinazioni di provider sottostanti.",
"clientKimiBullet2": "Preferire modelli con prefisso nei flussi di codifica in modo che il fallback e la traccia di controllo rimangano espliciti.",
"clientKimiBullet3": "Utilizza `/v1/responses` quando desideri un routing in stile Responses nativo per i client che utilizzano strumenti.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protocolli: MCP e A2A",
+ "protocolsDescription": "OmniRoute espone due protocolli operativi oltre alle API compatibili con OpenAI: MCP per l'esecuzione degli strumenti e A2A per i flussi di lavoro tra agenti.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Usa MCP tramite stdio per consentire ai client di individuare e richiamare gli strumenti OmniRoute con visibilità di audit.",
+ "protocolMcpStep1": "Avvia il trasporto MCP con `omniroute --mcp`.",
+ "protocolMcpStep2": "Configura il client MCP affinché utilizzi il trasporto stdio.",
+ "protocolMcpStep3": "Richiama `omniroute_get_health` e `omniroute_list_combos` per verificare la connettività.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Usa A2A JSON-RPC per inviare attività in modo sincrono o tramite streaming SSE.",
+ "protocolA2aStep1": "Leggi `/.well-known/agent.json` per individuare l'agente.",
+ "protocolA2aStep2": "Invia richieste `message/send` o `message/stream` a `POST /a2a`.",
+ "protocolA2aStep3": "Gestisci il ciclo di vita delle attività con `tasks/get` e `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Risoluzione dei problemi dei protocolli",
+ "protocolTroubleshooting1": "Se lo stato MCP è offline, verifica che il processo stdio sia in esecuzione e che il file heartbeat venga aggiornato.",
+ "protocolTroubleshooting2": "Se le attività A2A rimangono nello stato `working`, controlla `/api/a2a/tasks/:id` e gli eventi del flusso per individuare lo stato terminale.",
+ "protocolTroubleshooting3": "Usa `/dashboard/mcp` e `/dashboard/a2a` per i controlli operativi e la visibilità di audit.",
"endpointChatNote": "Endpoint chat compatibile con OpenAI (impostazione predefinita).",
"endpointResponsesNote": "Endpoint API di risposta (Codex, serie o).",
"endpointModelsNote": "Catalogo dei modelli per tutti i fornitori collegati.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Riscrivere l'helper per i client senza /v1.",
"endpointRewriteResponsesNote": "Riscrivi l'helper per le risposte senza /v1.",
"endpointRewriteModelsNote": "Riscrivere l'helper per l'individuazione dei modelli senza /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Elenca gli elementi salvati nel registro dei proxy (supporta la paginazione).",
+ "mgmtProxiesCreateNote": "Crea un elemento proxy riutilizzabile nel registro.",
+ "mgmtProxiesHealthNote": "Ottieni le metriche di integrità delle ultime 24 ore/scorrevoli per ciascun proxy salvato dai log dei proxy.",
+ "mgmtProxiesBulkAssignNote": "Assegna o rimuovi un proxy per più ID ambito in un'unica richiesta.",
+ "mgmtAssignmentsListNote": "Elenca le assegnazioni dei proxy per ambito, scope_id o proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Assegna o rimuovi il proxy per l'ambito globale/provider/account/combo.",
+ "mgmtLegacyMigrationNote": "Importa le mappe proxyConfig legacy nelle assegnazioni del registro.",
"modelPrefixesDescriptionStart": "Utilizzare il prefisso del provider prima del nome del modello per instradare a un provider specifico. Esempio:",
"modelPrefixesDescriptionEnd": "percorsi verso GitHub Copilot.",
"provider": "Fornitore",
@@ -10261,7 +10272,7 @@
"feedbackQuestion": "Questa pagina è stata utile?",
"pageMetadataTitle": "{title} — Documentazione OmniRoute",
"pageMetadataDescription": "Documentazione di OmniRoute: {title}",
- "breadcrumb": "Breadcrumb",
+ "breadcrumb": "Percorso di navigazione",
"apiReferenceTable": {
"parameters": "Parametri",
"name": "Nome",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute è un software open source. Sei libero di esaminarlo, modificarlo e distribuirlo secondo i termini della sua licenza."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "Agenti CLI",
+ "description": "Individua gli agenti CLI installati sul sistema. Aggiungi agenti personalizzati per il rilevamento automatico.",
+ "refresh": "Aggiorna",
+ "installed": "Installato",
+ "notFound": "Non trovato",
+ "builtIn": "Integrato",
+ "custom": "Personalizzato",
+ "remove": "Rimuovi",
+ "addCustomAgent": "Aggiungi agente personalizzato",
+ "addCustomAgentDesc": "Registra qualsiasi strumento CLI per il rilevamento. Verrà scansionato automaticamente all'aggiornamento.",
+ "agentName": "Nome agente",
+ "binaryName": "Nome del binario",
+ "versionCommand": "Comando per la versione",
+ "spawnArgs": "Argomenti di avvio",
+ "addAgent": "Aggiungi agente",
+ "scanning": "Scansione del sistema alla ricerca di agenti CLI...",
+ "opencodeIntegration": "Integrazione OpenCode",
+ "opencodeDetected": "Rilevato opencode {version}",
+ "opencodeDesc": "Genera un file {configFile} pronto all'uso con l'URL di base di OmniRoute e tutti i modelli disponibili: inseriscilo nella directory principale del progetto ed esegui {command}.",
+ "downloadConfig": "Scarica {file}",
+ "downloaded": "Scaricato!",
+ "setupGuideTitle": "Guida alla configurazione",
+ "openCliTools": "Apri gli strumenti CLI",
+ "setupGuideDetectCliTitle": "Rileva le CLI installate",
+ "setupGuideDetectCliDesc": "Fai clic su Aggiorna dopo aver installato o aggiornato una CLI, affinché OmniRoute possa ripetere la scansione dei binari e delle versioni.",
+ "setupGuideCustomAgentTitle": "Registra binario personalizzato",
+ "setupGuideCustomAgentDesc": "Usa Aggiungi agente personalizzato quando la tua CLI non è nell'elenco integrato. Specifica il nome del binario e il comando per la versione.",
+ "setupGuideCommandMissingTitle": "Correggi l'errore 'comando non trovato'",
+ "setupGuideCommandMissingDesc": "Assicurati che il comando CLI sia disponibile nel PATH, apri una nuova sessione del terminale e seleziona nuovamente Aggiorna.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,12 +10498,12 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
+ "simple-chat": "Chat semplice",
"streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "system-prompt": "Prompt di sistema",
+ "thinking": "Ragionamento",
+ "tool-calling": "Chiamata di strumenti",
+ "multi-turn": "Conversazione multi-turno",
"vision": "Visione",
"schema-coercion": "Coercizione dello schema"
},
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Gestione della cache",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Aggiorna",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Voci in memoria",
+ "memoryEntriesSub": "LRU in memoria",
+ "dbEntries": "Voci nel DB",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Hit della cache",
+ "cacheHitsSub": "su {total} totali",
+ "tokensSaved": "Token risparmiati",
+ "tokensSavedSub": "Stima basata sugli hit",
+ "hitRate": "Percentuale di hit",
+ "performance": "Prestazioni della cache",
+ "autoRefresh": "Aggiornamento automatico ogni {seconds}s",
+ "hits": "Hit",
+ "misses": "Miss",
+ "total": "Totale",
+ "behavior": "Comportamento della cache",
+ "behaviorDeterministic": "Vengono memorizzate nella cache solo le richieste non in streaming con temperature=0.",
+ "behaviorBypass": "Ignora con l'header {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL predefinito: 30 minuti. Configurabile tramite {envVar}.",
+ "idempotency": "Livello di idempotenza",
+ "activeDedupKeys": "Chiavi di deduplicazione attive",
+ "dedupWindow": "Finestra di deduplicazione",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Impossibile svuotare la cache.",
+ "unavailable": "Cache non disponibile",
+ "unavailableDesc": "Impossibile recuperare le statistiche della cache. Assicurati che il server sia in esecuzione.",
"loadingCacheAria": "Caricamento cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Cache dei prompt (lato provider)",
+ "semanticCache": "Cache semantica",
+ "promptCacheSectionDesc": "Mostra l'attività di caching dei prompt lato provider dalla cronologia di utilizzo, così puoi vedere dove è attivo il controllo della cache e quanto riutilizzo dell'input stai ottenendo.",
+ "promptTrendDesc": "Volume orario delle richieste, copertura della cache e volume di lettura dalla cache nelle ultime 24 ore.",
+ "cachedRequests": "Richieste memorizzate nella cache",
+ "cachedRequests24h": "Richieste memorizzate nella cache (24 h)",
+ "cacheHitRate": "Percentuale di hit della cache",
+ "cacheRate": "Tasso di utilizzo della cache",
+ "cacheRateDesc": "delle richieste totali",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Metriche della cache dei prompt",
+ "withCacheControl": "Con controllo della cache",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Rapporto di riutilizzo della cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Risparmio stimato",
+ "lastUpdated": "Ultimo aggiornamento",
+ "hoursTracked": "ore monitorate",
+ "busiestHour": "Ora di maggior traffico",
+ "peakCacheRate": "Tasso massimo della cache",
+ "trendHour": "Ora",
+ "activityVolume": "Attività",
+ "requestsShort": "richieste",
+ "inputShort": "Input",
+ "cachedShort": "In cache",
+ "writeShort": "Scrivi",
+ "resetting": "Reimpostazione...",
+ "resetMetrics": "Reimposta metriche",
+ "byProvider": "Suddivisione per provider",
+ "providerCacheRateDesc": "Ogni provider mostra il totale dei token di input, i token letti dalla cache e i token scritti nella cache, così puoi verificare il rapporto di riutilizzo rispetto ai totali grezzi.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Richieste",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
- "tableProvider": "Provider",
+ "trend24h": "Andamento della cache (24 ore)",
+ "peakCached": "Picco nella cache",
+ "cached": "Nella cache",
+ "overview": "Panoramica",
+ "tableProvider": "Fornitore",
"tableModel": "Modello",
"performanceTitle": "Prestazioni",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "La cache deterministica delle risposte di OmniRoute. Quando è abilitata, le richieste ripetute non in streaming con temperature=0 possono essere gestite localmente senza contattare il provider upstream.",
+ "semanticCacheDisabledDesc": "La cache semantica è disabilitata. OmniRoute ignorerà il riutilizzo locale delle risposte finché non la riattiverai nelle Impostazioni.",
+ "semanticEntriesDesc": "Record persistenti della cache semantica attualmente archiviati in SQLite. L'attività della cache dei prompt lato provider non è elencata qui.",
+ "searchEntries": "Cerca voci...",
+ "search": "Cerca",
+ "loading": "Caricamento...",
+ "entriesLoadError": "Impossibile caricare le voci della cache semantica.",
+ "noEntries": "Nessuna voce trovata nella cache",
+ "noPromptCacheData": "Non è stata ancora registrata alcuna attività della cache dei prompt lato provider.",
+ "noTrendData": "Non è stata registrata alcuna attività della cache dei prompt nelle ultime 24 ore.",
+ "signature": "Firma",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Creazione",
+ "expires": "Scadenza",
+ "actions": "Azioni",
+ "deduplicatedRequests": "Richieste deduplicate",
+ "savedCalls": "Chiamate API risparmiate",
+ "totalProcessed": "Totale richieste elaborate",
+ "disabled": "Disabilitata",
+ "totalRequests": "Richieste totali",
"reasoningCache": "Replica del ragionamento",
"reasoningCacheDesc": "Conserva il pensiero del modello per i flussi di chiamata degli strumenti multigiro",
"reasoningEntries": "Voci attive",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes}m fa",
"hoursAgo": "{hours}h fa",
"daysAgo": "{days}g fa",
- "entries": "Entries"
+ "entries": "Voci"
},
"proxyConfigModal": {
"levelGlobal": "Globale",
@@ -10674,7 +10685,7 @@
"levelKey": "Chiave",
"levelDirect": "Diretto (senza delega)",
"titleGlobal": "Configurazione proxy globale",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "Proxy {level} — {label}",
"loading": "Caricamento della configurazione del proxy...",
"inheritingFrom": "Ereditando da",
"source": "Fonte",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "Incolla una chiave API Devin esistente da una sessione Devin autenticata. La disponibilità dell'esportazione della chiave e i passaggi variano a seconda della versione e dell'account Devin.",
"devinPasteDescription": "Fornisci la tua WINDSURF_API_KEY (ottenuta tramite `devin auth login`, o tramite il comando \"Windsurf: Provide Auth Token\" dell'IDE Windsurf).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json di Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Chiave API / Token",
"saving": "Salvataggio…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Connetti l'IDE del cursore",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Accedi con Cursor",
+ "tabImport": "Importa token",
+ "loginDescription": "Apre l'accesso tramite browser di Cursor. Funziona in Docker: approva nel browser dell'host, quindi torna qui.",
+ "loginWithCursor": "Accedi con Cursor",
+ "startingLogin": "Avvio…",
+ "waitingApproval": "In attesa dell'approvazione dell'accesso a Cursor…",
+ "openUrlHint": "Se il browser non si è aperto:",
+ "openLoginLink": "Apri la pagina di accesso",
+ "cancelLogin": "Annulla l'accesso",
"autoDetecting": "Token di rilevamento automatico...",
"readingFromCursor": "Lettura da Cursor IDE o cursor-agent",
"tokensAutoDetected": "Token rilevati automaticamente con successo da Cursor IDE!",
"cursorNotDetected": "IDE del cursore non rilevato. Incolla manualmente il token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Esecuzione in Docker? È preferibile usare Accedi con Cursor. L'importazione automatica dall'IDE e cursor-agent in genere non sono disponibili all'interno del container. Consulta docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Gettone di accesso",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Token di aggiornamento",
+ "refreshTokenPlaceholder": "Facoltativo — abilita l'aggiornamento automatico del token",
"required": "*",
"accessTokenPlaceholder": "Il token di accesso si popolerà automaticamente...",
"machineId": "ID macchina",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Il rilevamento automatico dei token non è riuscito",
"errorEnterToken": "Inserisci il token di accesso",
"errorImportFailed": "Importazione non riuscita",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Impossibile avviare l'accesso a Cursor",
+ "errorLoginPoll": "Accesso a Cursor non riuscito",
+ "errorLoginTimeout": "Tempo scaduto per l'accesso a Cursor — riprova"
},
"pricingModal": {
"title": "Configurazione dei prezzi",
@@ -10839,9 +10850,9 @@
"selectProxy": "Seleziona {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importa dati legacy",
+ "bulkAssign": "Assegna in blocco",
+ "addProxy": "Aggiungi proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,15 +10861,15 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Testa",
+ "edit": "Modifica",
+ "delete": "Elimina",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Tipo",
"labelFamily": "Famiglia IP",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automatico (dual-stack)",
"familyIpv4": "Solo IPv4",
"familyIpv6": "Solo IPv6",
"familyHint": "Famiglia di indirizzi di uscita. Auto mantiene il dual-stack; IPv4/IPv6 vincolano questo proxy a quella famiglia (previene un leak v4 sotto un proxy solo IPv6).",
@@ -10885,9 +10896,9 @@
"labelScope": "Ambito",
"labelProxy": "Proxy",
"scopeGlobal": "globale",
- "scopeProvider": "provider",
+ "scopeProvider": "fornitore",
"scopeAccount": "account",
- "scopeCombo": "combo",
+ "scopeCombo": "combinazione",
"bulkImportErrorMissingName": "NOME mancante",
"bulkImportErrorMissingHost": "HOST mancante",
"bulkImportErrorInvalidPort": "PORTA non valida (deve essere 1-65535)",
@@ -10902,7 +10913,7 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Non riuscito",
"successRate": "{rate}% di successo",
"avgLatency": "{latency}ms in media",
"assignmentsCount": "{count} compiti",
@@ -10953,10 +10964,13 @@
"poolStrategyFailed": "Impossibile aggiornare la strategia di rotazione",
"strategyRoundRobin": "Round-robin",
"strategyRandom": "Casuale",
- "strategySticky": "Sticky",
+ "strategySticky": "Persistente",
"strategyLatency": "Ottimizzato per la latenza",
"poolMembersLabel": "Membri del pool ({count})",
"poolNoMembers": "Nessun proxy ancora presente in questo pool.",
+ "poolEgressObservation": "{exits, plural, one {# uscita} other {# uscite}} in uso per {connections, plural, one {# connessione} other {# connessioni}} · fino a {max} su una singola uscita · ultime {hours} h",
+ "poolEgressObservationEmpty": "Nessun traffico osservato nelle ultime {hours} h",
+ "poolEgressObservationHint": "Calcolato dal registro del proxy nella finestra temporale: gli IP di uscita distinti osservati per i membri di questo pool e le connessioni OmniRoute che li hanno utilizzati. \"Su una singola uscita\" si riferisce all'intera finestra temporale, non allo stesso momento. Il blocco 429 per IP sospende solo le connessioni della stessa famiglia di provider.",
"poolRemove": "Rimuovi",
"poolRemoveFailed": "Impossibile rimuovere il proxy dal pool",
"poolAddLabel": "Aggiungi un proxy",
@@ -10969,93 +10983,93 @@
"title": "Title",
"description": "Description",
"endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "provider": "Fornitore",
+ "model": "Modello",
"accountKey": "Account Key",
"autoAccounts": "Automatico ({count} account)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Invia",
+ "cancel": "Annulla",
+ "audioFile": "File audio",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Cancella tutto",
+ "request": "Richiesta",
+ "response": "Risposta",
+ "transcription": "Trascrizione",
+ "copy": "Copia",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "{count} immagini generate",
"generatedImage": "Immagine generata {index}",
- "save": "Save",
+ "save": "Salva",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Risposte",
"completions": "Completamenti",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Embedding",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderazioni",
- "rerank": "Rerank",
+ "rerank": "Riordina",
"search": "Search",
- "webFetch": "Web fetch"
+ "webFetch": "Recupero web"
},
"conversationalChat": "Chat conversazionale",
"clearChat": "Chiacchierata chiara",
"typeMessagePlaceholder": "Digita un messaggio... (Maiusc+Invio per una nuova riga)",
"tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabCompare": "Confronta",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
+ "tabBuild": "Crea",
+ "configPane": "Configurazione",
+ "systemPrompt": "Prompt di sistema",
+ "systemPromptPlaceholder": "Sei un assistente disponibile.",
+ "modelPlaceholder": "es. openai/gpt-4o",
"endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "parametersLabel": "Parametri",
+ "collapseConfig": "Comprimi il pannello di configurazione",
+ "expandConfig": "Espandi il pannello di configurazione",
+ "temperature": "Temperatura",
+ "maxTokens": "Token massimi",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Penalità di presenza",
+ "frequencyPenalty": "Penalità di frequenza",
"reasoningLabel": "Ragionamento",
"thinking": "Pensiero",
"effort": "Sforzo",
"effortDefault": "Predefinito",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Casuale (lascia vuoto)",
+ "presetsLabel": "Preimpostazioni",
+ "loadPreset": "Carica preimpostazione",
+ "savePreset": "Salva preimpostazione",
+ "noPresets": "Nessuna preimpostazione",
+ "presetNamePlaceholder": "Nome della preimpostazione",
+ "savingPreset": "Salvataggio…",
+ "nameRequired": "Il nome è obbligatorio",
+ "failedToSavePreset": "Impossibile salvare la preimpostazione",
+ "improvePrompt": "Migliora il prompt",
+ "improvingPrompt": "Miglioramento…",
+ "improvePromptTitle": "Migliora il prompt con l'IA",
+ "setModelFirst": "Prima imposta un modello",
"setModelInConfigFirst": "Imposta prima un modello nel pannello Config.",
"improvePromptFailed": "Miglioramento del prompt non riuscito.",
"improvePromptAria": "Migliora il prompt con l'IA",
"confirmImprovePrompt": "Conferma miglioramento prompt",
"improvePromptDescription": "Questo invierà il prompt di sistema corrente a omniglyph モードを介してスタンドアロンでも実行されます。これはプレビュー版であり、エンドツーエンドの検証が完了するまではデフォルトでオフのままになります。",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "圧縮プロファイル",
+ "profileDescription": "プロファイルは下限ではなく上限です。より厳格なプロファイルをステップごとのオーバーライドで緩和することはできません。このコードベースでの測定結果:coding-safe または balanced では、履歴がまだ蓄積されていないセッションは何も圧縮しません。これは、どちらも最小文字数のしきい値を引き上げ、システムプロンプト、ツールスキーマ、ツール結果をネイティブのまま保持するためです。",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "アグレッシブ(デフォルト)",
+ "description": "公開済みレシートで測定されたポリシーです。システムプロンプト、ツールのドキュメント、密度の高い履歴をイメージ化します。"
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "バランス",
+ "description": "ライブ状態をネイティブのまま保持し、直近8ターンを保護します。古い完了済みの履歴のみを折りたたみます。"
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "コーディングセーフ",
+ "description": "権限情報、ツールスキーマ、ライブのツール出力をネイティブのまま保持し、直近12ターンを保護します。セッションに履歴が蓄積されるまでは何も圧縮しません。"
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "パススルー",
+ "description": "変換せずにルーティングします。エンジンはスキップされ、リクエストは変更されずに転送されます。"
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph 圧縮プロファイルを選択",
"saved": "保存されました。",
"saveFailed": "保存できませんでした。",
"enableAria": "OmniGlyphエンジンを有効にする",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "ルールベースのメッセージ圧縮、言語パック、分析、出力モード制御。",
"advancedConfig": "高度な構成",
"advancedConfigDesc": "圧縮動作を微調整する",
"aggressiveSettings": "アグレッシブな設定",
"aggressiveSettingsDesc": "最大の圧縮率と潜在的な品質のトレードオフ",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "リクエスト",
+ "tokensSaved": "節約されたトークン",
+ "savingsPercent": "節約率(%)",
+ "avgLatency": "平均レイテンシ",
+ "languagePacks": "言語パック",
+ "languagePacksDesc": "特定の言語向けの圧縮ルールを有効にします。",
"labelAutoTrigger": "コンテキストが超過した場合に自動圧縮",
"labelCompressionRate": "圧縮強度",
"labelMaxTokens": "メッセージごとのターゲット トークン",
"labelMinLength": "最小メッセージ長",
"labelMinSavings": "保存する最小トークン数",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "有効",
+ "autoDetect": "言語を自動検出",
+ "rulesCount": "{count}件のルール",
"inputCompressionTitle": "入力圧縮",
"inputCompressionDesc": "チャット履歴をより短い表現に書き換えます。入力トークンを約50%削減します。",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "圧縮分析",
+ "noAnalytics": "圧縮分析データはまだありません。",
"masterDisabledWarning": "Token SaverのマスタースイッチがOFFです — 圧縮設定からオンにするかここで変更するまで、これらの設定はリクエストに影響しません。",
"outputMode": "出力モード",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "出力モード",
"quickSettings": "クイック設定",
"quickSettingsDesc": "始めるための基本的な圧縮設定",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "明瞭性の自動バイパス",
+ "bypassConditions": "バイパス条件",
"bypassConditionsList": "セキュリティ、不可逆的、明確化、順序依存",
"simpleMode": "シンプル",
"advancedMode": "上級者向け",
@@ -8940,9 +8951,9 @@
"ultraSettings": "ウルトラ設定",
"ultraSettingsDesc": "SLM を利用したセマンティック圧縮",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "簡潔に回答してください。技術用語、コード、エラー、URL、識別子は保持してください。",
+ "full": "簡潔かつコンパクトに回答してください。技術的な内容はすべて保持してください。",
+ "ultra": "一般的な技術略語を使用して、極めて簡潔に回答してください。記号は正確に保持してください。"
}
},
"translator": {
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "残り",
"kiloPassRenews": "{count} 日後に更新",
"kiloPassUsageLabel": "今月の使用量",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "追加使用クレジット",
+ "kimiExtraUsage": "追加使用量",
+ "kimiExtraUsageEnabled": "有効",
+ "kimiExtraUsageDisabled": "無効",
+ "kimiExtraUsageFrozen": "凍結",
+ "kimiExtraUsageUnavailable": "利用不可",
+ "kimiMonthlyUsed": "今月の使用量",
+ "kimiMonthlyLimit": "月間上限",
+ "kimiMonthlyLimitUnlimited": "無制限",
+ "kimiAdditionalCredits": "追加クレジット",
"loggerTab": "ロガー",
"proxyTab": "プロキシ",
"budgetManagement": "予算管理",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "サーキットブレーカー",
"lockedIPs": "ロックされたIP",
"lockoutsAutoRefreshHint": "モデルごとのレート制限ロック • 自動リフレッシュ 10 秒",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {#件がロック中} other {#件がロック中}}",
"timeLeft": "{time} 残り",
"howItWorks": "仕組み",
"howItWorksSubtitle": "評価によって LLM 応答がどのように検証されるかを学びます",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "テスト対象のモデル",
"searchSuitesPlaceholder": "スイートを検索...",
"passSuffix": "パスする",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {#件のケース} other {#件のケース}}",
"runEval": "評価の実行",
"runAllSuites": "すべて実行",
"runAllRunning": "すべて実行中...",
"runAllProgress": "{current}/{total} を実行中: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {#件のスイートが失敗} other {#件のスイートが失敗}}",
"runAllCompleted": "{suites} スイートを実行しました — {passed} は成功、{failed} は失敗しました",
"runAllCompletedWithFailures": "{completed} スイートを実行しました。 {failedSuites} は完了できませんでした",
"runningProgress": "{current}/{total} を実行中...",
@@ -9419,7 +9430,7 @@
"providerLimits": "プロバイダーの制限",
"noProviders": "プロバイダーが接続されていません",
"connectProvidersForQuota": "OAuth を使用してプロバイダーに接続し、API クォータの制限と使用状況を追跡します。",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {#件のアカウント} other {#件のアカウント}}",
"filteredFromCount": "({count} からフィルタリング)",
"autoRefresh": "自動更新",
"refreshAll": "すべて更新",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "クォータの表示設定の更新に失敗しました",
"account": "アカウント",
"modelQuotas": "モデルのクォータ",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "最終更新",
"actions": "アクション",
"refreshQuota": "クォータの更新",
"today": "今日",
@@ -9448,9 +9459,9 @@
"cardExpand": "展開",
"cardCollapse": "折りたたむ",
"moreQuotas": "+{count}件",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "未グループ化",
+ "viewFlat": "フラット",
+ "viewByEnvironment": "環境別",
"noQuotaDataAvailable": "利用可能なクォータ データがありません",
"noAccountsForTierFilter": "層フィルターのアカウントが見つかりませんでした",
"tierAll": "すべて",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "ティア",
"purchaseAll": "すべて",
"purchaseOauthSub": "サブスクリプション",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth不要",
"purchaseApiKey": "APIキー",
"creditsLabel": "クレジット",
"creditBalanceHint": "残高",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "クレジットを引き換える",
"resetCreditRedeemed": "引き換え済みのリセット",
"resetCreditRedeemFailed": "リセットクレジットの引き換えに失敗しました",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "スイートの保存に失敗しました",
"clone": "クローン",
"exportSuite": "エクスポート",
"importSuite": "インポート",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "無効な評価スイート JSON",
"suiteBuilderCloneSuffix": "コピー",
"suiteBuilderImportedSuite": "輸入スイート",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "スコアカード",
+ "evalApiKey": "APIキー",
+ "scorecardPassRate": "合格率",
+ "targetTypeModel": "モデル",
+ "actualOutputLabel": "実際の出力",
+ "evalTargetHint": "評価するモデルまたはコンボを選択してください。",
+ "suiteBuilderDeleted": "スイートを削除しました",
+ "suiteBuilderCaseCardHint": "入力プロンプトと期待される出力基準を定義します。",
+ "nextResetUtc": "次回のリセット(UTC)",
+ "scorecardHint": "すべての評価スイートを集計した合格率。",
+ "suiteLatestRunsHint": "このスイートの最新の評価実行。",
+ "saving": "保存中",
+ "suiteBuilderCaseModelLabel": "モデル(任意)",
+ "evalControlsTitle": "評価コントロール",
+ "suiteBuilderEditTitle": "評価スイートを編集",
+ "suiteBuilderCaseStrategyLabel": "検証方法",
+ "notifySelectDifferentCompareTarget": "比較には別のターゲットを選択してください",
+ "recentRunsHint": "最新の評価実行を表示しています。詳細な結果を確認するには、実行をクリックしてください。",
+ "evalCompareHint": "必要に応じて、結果を2つ目のターゲットと比較できます。",
+ "suiteBuilderCaseInvalid": "このケースには検証エラーがあります。保存する前に修正してください。",
+ "historyEmpty": "評価履歴はまだありません",
+ "suiteBuilderUpdated": "スイートを更新しました",
+ "resetInterval": "リセット間隔",
+ "suiteBuilderCreateTitle": "評価スイートを作成",
+ "activePeriodSpend": "現在の期間の支出額",
+ "evalApiKeyHint": "評価リクエストに使用するAPIキーを選択してください。",
+ "evalCompareOptional": "比較(任意)",
+ "suiteBuilderDeleteFailed": "スイートの削除に失敗しました",
+ "suiteBuilderCaseSystemPromptPlaceholder": "任意のシステム指示...",
+ "scorecardCases": "ケース",
+ "runCompletedWithScore": "評価が完了しました — 合格率{score}%",
+ "suiteBuilderCustomBadge": "カスタム",
+ "targetSuiteDefaults": "スイートのデフォルト設定",
+ "suiteBuilderDeleteConfirm": "このスイートを削除してもよろしいですか?この操作は元に戻せません。",
+ "suiteBuilderNameLabel": "スイート名",
+ "scorecardSuites": "スイート",
+ "evalCompareTarget": "比較ターゲット",
+ "suiteBuilderCaseModelPlaceholder": "例: gpt-4o-mini",
+ "evalControlsHint": "評価対象とAPIキーを設定し、スイートを実行してモデルの品質を検証します。",
+ "recentRunsTitle": "最近の実行",
+ "suiteBuilderCaseSystemPromptLabel": "システムプロンプト",
+ "suiteBuilderCaseExpectedPlaceholder": "例: def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "例:デフフィボナッチ",
"suiteBuilderCaseExpectedPlaceholderExact": "予想される正確な応答を貼り付けます",
"suiteBuilderCaseExpectedPlaceholderRegex": "例: ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "スラッシュを囲まずに JavaScript 正規表現を使用します。",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "例: コーディング品質スイート",
+ "suiteBuilderAddCase": "ケースを追加",
+ "cancel": "キャンセル",
+ "evalTarget": "対象",
+ "suiteBuilderCaseNameLabel": "ケース名",
+ "weeklyLimitUsd": "週間上限(USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "例: Pythonでフィボナッチ関数を作成してください",
+ "suiteBuilderNameRequired": "スイート名は必須です",
+ "suiteBuilderCaseUserPromptLabel": "ユーザープロンプト",
+ "daily": "毎日",
+ "resultErrorLabel": "エラー",
+ "suiteBuilderBuiltInBadge": "組み込み",
+ "suiteBuilderCaseCardTitle": "テストケース",
"suiteBuilderDuplicateCase": "重複",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "例: 50.00",
+ "suiteBuilderCaseTagsHint": "テストケースを整理するための、カンマ区切りのタグ。",
+ "notifyEvalRunFailedWithReason": "評価に失敗しました: {reason}",
+ "weekly": "毎週",
+ "runEvalRunning": "評価を実行中...",
+ "delete": "削除",
+ "resetTimeUtc": "リセット時刻(UTC)",
+ "evalApiKeyAuto": "自動(デフォルトを使用)",
+ "suiteBuilderDescriptionPlaceholder": "このスイートのテスト内容についての説明(任意)...",
+ "targetComparisonTitle": "対象の比較",
+ "save": "保存",
+ "suiteBuilderCreated": "スイートが正常に作成されました",
+ "suiteLatestRuns": "最新の実行",
+ "suiteBuilderCaseExpectedLabel": "期待値",
+ "historyLatency": "レイテンシー",
+ "suiteBuilderCaseTagsPlaceholder": "例: コーディング, python",
+ "targetTypeCombo": "コンボ",
+ "scorecardPassed": "合格",
+ "suiteBuilderCaseTagsLabel": "タグ",
+ "suiteBuilderNewSuite": "新規スイート",
+ "notifyEvalLoadFailed": "評価データの読み込みに失敗しました",
+ "notConfigured": "未設定",
+ "suiteBuilderCaseNamePlaceholder": "例:Python のフィボナッチテスト",
+ "intervalLabel": "間隔",
+ "suiteBuilderCreateAction": "スイートを作成",
+ "suiteBuilderCasesHint": "各ケースでプロンプトを送信し、レスポンスを検証します。",
+ "suiteBuilderUpdatedAt": "更新日時",
+ "errorBadge": "エラー",
+ "suiteBuilderCasesTitle": "テストケース",
+ "edit": "編集",
+ "monthly": "毎月",
+ "suiteBuilderCasesRequired": "少なくとも1つのテストケースが必要です",
+ "weeklyLimitSummary": "週間予算上限の概要",
+ "suiteBuilderDescriptionLabel": "説明",
+ "targetComparisonHint": "ターゲット間の評価結果を並べて比較します。",
+ "compareCompletedWithScore": "比較が完了しました — 合格率 {score}%",
+ "staleQuotaTooltip": "前回の更新に失敗しました — キャッシュされたデータを表示しています",
"quotaThresholdLabel": "残り分",
"quotaCutoffsColumnHelp": "残りのクォータがこのパーセンテージ以下になった場合、リクエストを停止します。",
"quotaCutoffsButtonDefault": "デフォルト",
@@ -9859,19 +9870,19 @@
"backToLogin": "ログインに戻る",
"forgotPassword": "パスワードをお忘れですか?",
"continueWithOidc": "OIDCで続行",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "デフォルトのパスワード:CHANGEME(INITIAL_PASSWORD が設定されていない場合)",
"Authorization": "認可",
"Content-Disposition": "コンテンツの配置",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "認証を待機しています...",
+ "waitingForGoogleAuthorization": "Google の認証を待機しています...",
+ "waitingForOpenAIAuthorization": "OpenAI の認証を待機しています...",
+ "waitingForAntigravityAuthorization": "Antigravity の認証を待機しています...",
+ "waitingForQoderAuthorization": "Qoder の認証を待機しています...",
+ "exchangingCodeForTokens": "コードをトークンと交換しています...",
+ "nodeIncompatibleTitle": "互換性のない Node.js バージョン",
+ "nodeIncompatibleDesc": "実行中の Node.js {version} は、OmniRoute がサポートするセキュアランタイムポリシーの対象外です。パッチ適用済みの Node.js 20.x または 22.x LTS リリースを使用してください。",
+ "nodeIncompatibleFixLabel": "修正方法:パッチ適用済みの Node.js 22 LTS リリースをインストールしてください",
+ "nodeIncompatibleHint": "OmniRoute には Node.js 22.22.2+(22.x LTS)または 24.0.0+(24.x LTS)が必要です。Node 24 LTS を推奨します。",
"resetViaAppDataTitle": "アプリデータを介してリセット",
"resetViaAppDataDescription": "アプリデータディレクトリから設定ファイルを削除してパスワードをリセットしてください:",
"quitDesktopApp": "OmniRouteデスクトップアプリを完全に終了します",
@@ -9980,8 +9991,8 @@
"readyToRoute": "ルートの準備ができました! ✓",
"configureProvidersNote": "📝 ダッシュボードでプロバイダーを構成するか、環境変数を使用する",
"dataLocation": "データの場所:",
- "dataLocationMacLinux": "macOS/Linux:",
- "dataLocationWindows": "Windows:",
+ "dataLocationMacLinux": "macOS/Linux:",
+ "dataLocationWindows": "Windows:",
"product": "製品",
"dashboardLink": "ダッシュボード",
"changelog": "変更履歴",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "プロバイダー",
"commonUseCases": "一般的な使用例",
"clientCompatibility": "クライアントの互換性",
- "protocolsToc": "Protocols",
+ "protocolsToc": "プロトコル",
"apiReference": "APIリファレンス",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "管理 API リファレンス",
+ "managementApiDescription": "プロキシレジストリ、スコープの割り当て、旧式プロキシの移行に使用する自動化エンドポイント。",
"method": "方法",
"path": "パス",
"notes": "注意事項",
@@ -10070,8 +10081,8 @@
"deployFlyText": "1 つの fly.toml と 1 つのデプロイ コマンドを使用して、Fly.io エッジ ランタイムにデプロイします。",
"deployPwaTitle": "PWA",
"deployPwaText": "OmniRoute をプログレッシブ Web アプリとして Android、iOS、デスクトップ ブラウザーにインストールします。",
- "deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxTitle": "Termux(Android)",
+ "deployTermuxText": "Termux を介して Android 上で OmniRoute をヘッドレス実行します。モバイルブラウザからダッシュボードにアクセスできます。",
"featureRoutingTitle": "マルチプロバイダールーティング",
"featureRoutingText": "単一の OpenAI 互換エンドポイントを通じて 30 以上の AI プロバイダーにリクエストをルーティングします。チャット、応答、音声、画像 API をサポートします。",
"featureCombosTitle": "コンボとバランス調整",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "OmniRoute を安定したベース URL として使用し、その下でアカウントまたはプロバイダーの組み合わせをローテーションします。",
"clientKimiBullet2": "フォールバックと監査証跡が明示的なままになるように、コーディング フローではプレフィックス付きのモデルを優先します。",
"clientKimiBullet3": "ツールを使用するクライアントに対してネイティブの Responses スタイルのルーティングが必要な場合は、「/v1/responses」を使用します。",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "プロトコル:MCP と A2A",
+ "protocolsDescription": "OmniRoute は、OpenAI 互換 API に加えて2つの運用プロトコルを提供します。ツール実行用の MCP と、エージェント間ワークフロー用の A2A です。",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "stdio 経由で MCP を使用し、監査可能な状態でクライアントが OmniRoute ツールを検出して呼び出せるようにします。",
+ "protocolMcpStep1": "`omniroute --mcp` で MCP トランスポートを起動します。",
+ "protocolMcpStep2": "MCP クライアントを stdio トランスポートに接続します。",
+ "protocolMcpStep3": "`omniroute_get_health` と `omniroute_list_combos` を呼び出して接続を確認します。",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "A2A JSON-RPC を使用して、タスクを同期的に、または SSE ストリーミング経由で送信します。",
+ "protocolA2aStep1": "エージェントを検出するには `/.well-known/agent.json` を読み取ります。",
+ "protocolA2aStep2": "`message/send` または `message/stream` リクエストを `POST /a2a` に送信します。",
+ "protocolA2aStep3": "`tasks/get` と `tasks/cancel` を使用してタスクのライフサイクルを管理します。",
+ "protocolTroubleshootingTitle": "プロトコルのトラブルシューティング",
+ "protocolTroubleshooting1": "MCP のステータスがオフラインの場合は、stdio プロセスが実行中で、ハートビートファイルが更新されていることを確認してください。",
+ "protocolTroubleshooting2": "A2A タスクが `working` のままの場合は、`/api/a2a/tasks/:id` とストリームイベントを調べ、終了状態を確認してください。",
+ "protocolTroubleshooting3": "運用管理と監査状況の確認には `/dashboard/mcp` と `/dashboard/a2a` を使用します。",
"endpointChatNote": "OpenAI 互換のチャット エンドポイント (デフォルト)。",
"endpointResponsesNote": "応答 API エンドポイント (Codex、o シリーズ)。",
"endpointModelsNote": "接続されているすべてのプロバイダーのモデル カタログ。",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "/v1 のないクライアント用のヘルパーを書き換えます。",
"endpointRewriteResponsesNote": "/v1 のない応答のヘルパーを書き換えます。",
"endpointRewriteModelsNote": "/v1 を使用せずにモデル検出用のヘルパーを書き換えます。",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "保存済みのプロキシレジストリアイテムを一覧表示します(ページネーション対応)。",
+ "mgmtProxiesCreateNote": "レジストリに再利用可能なプロキシアイテムを作成します。",
+ "mgmtProxiesHealthNote": "プロキシログから、保存済みプロキシごとの24時間/ローリング方式のヘルスメトリクスを取得します。",
+ "mgmtProxiesBulkAssignNote": "1回のリクエストで、多数のスコープ ID に対して1つのプロキシを割り当てるか、割り当てを解除します。",
+ "mgmtAssignmentsListNote": "scope、scope_id、または proxy_id ごとにプロキシの割り当てを一覧表示します。",
+ "mgmtAssignmentsUpdateNote": "global/provider/account/combo スコープのプロキシを割り当てるか、割り当てを解除します。",
+ "mgmtLegacyMigrationNote": "従来の proxyConfig マップをレジストリの割り当てにインポートします。",
"modelPrefixesDescriptionStart": "特定のプロバイダーにルーティングするには、モデル名の前にプロバイダーのプレフィックスを使用します。例:",
"modelPrefixesDescriptionEnd": "GitHub Copilot にルートします。",
"provider": "プロバイダー",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute はオープンソース ソフトウェアです。ライセンス条項に基づいて、自由に検査、変更、配布することができます。"
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI エージェント",
+ "description": "システムにインストールされている CLI エージェントを検出します。自動検出用のカスタムエージェントを追加できます。",
+ "refresh": "更新",
+ "installed": "インストール済み",
+ "notFound": "見つかりません",
+ "builtIn": "組み込み",
+ "custom": "カスタム",
+ "remove": "削除",
+ "addCustomAgent": "カスタムエージェントを追加",
+ "addCustomAgentDesc": "任意の CLI ツールを検出対象として登録します。更新時に自動的にスキャンされます。",
+ "agentName": "エージェント名",
+ "binaryName": "バイナリ名",
+ "versionCommand": "バージョン確認コマンド",
+ "spawnArgs": "起動引数",
+ "addAgent": "エージェントを追加",
+ "scanning": "システム上の CLI エージェントをスキャンしています...",
+ "opencodeIntegration": "OpenCode 連携",
+ "opencodeDetected": "opencode {version} を検出しました",
+ "opencodeDesc": "OmniRoute のベース URL と利用可能なすべてのモデルを含む、すぐに使える {configFile} を生成します。プロジェクトルートに配置し、{command} を実行してください。",
+ "downloadConfig": "{file} をダウンロード",
+ "downloaded": "ダウンロードしました!",
+ "setupGuideTitle": "セットアップガイド",
+ "openCliTools": "CLIツールを開く",
+ "setupGuideDetectCliTitle": "インストール済みのCLIを検出",
+ "setupGuideDetectCliDesc": "CLIをインストールまたは更新した後、「更新」をクリックすると、OmniRouteがバイナリとバージョンを再スキャンします。",
+ "setupGuideCustomAgentTitle": "カスタムバイナリを登録",
+ "setupGuideCustomAgentDesc": "使用するCLIが組み込みリストにない場合は、「カスタムエージェントを追加」を使用してください。バイナリ名とバージョン確認コマンドを入力します。",
+ "setupGuideCommandMissingTitle": "「command not found」を解決",
+ "setupGuideCommandMissingDesc": "CLIコマンドがPATHに存在することを確認し、新しいターミナルセッションを開いてから、再度「更新」を実行してください。",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,12 +10498,12 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "シンプルチャット",
+ "streaming": "ストリーミング",
+ "system-prompt": "システムプロンプト",
+ "thinking": "思考",
+ "tool-calling": "ツール呼び出し",
+ "multi-turn": "マルチターン",
"vision": "ビジョン",
"schema-coercion": "スキーマの強制"
},
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "キャッシュ管理",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "更新",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "メモリエントリ",
+ "memoryEntriesSub": "インメモリLRU",
+ "dbEntries": "DBエントリ",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "キャッシュヒット",
+ "cacheHitsSub": "全{total}件中",
+ "tokensSaved": "節約したトークン数",
+ "tokensSavedSub": "ヒット数から推定",
+ "hitRate": "ヒット率",
+ "performance": "キャッシュパフォーマンス",
+ "autoRefresh": "{seconds}秒ごとに自動更新",
+ "hits": "ヒット",
+ "misses": "ミス",
+ "total": "合計",
+ "behavior": "キャッシュの動作",
+ "behaviorDeterministic": "temperature=0の非ストリーミングリクエストのみがキャッシュされます。",
+ "behaviorBypass": "ヘッダー{header}を指定するとバイパスできます。",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "デフォルトのTTL:30分。{envVar}で設定できます。",
+ "idempotency": "冪等性レイヤー",
+ "activeDedupKeys": "アクティブな重複排除キー",
+ "dedupWindow": "重複排除ウィンドウ",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "キャッシュをクリアできませんでした。",
+ "unavailable": "キャッシュを利用できません",
+ "unavailableDesc": "キャッシュ統計を取得できませんでした。サーバーが実行中であることを確認してください。",
"loadingCacheAria": "キャッシュを読み込み中",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "プロンプトキャッシュ(プロバイダー側)",
+ "semanticCache": "セマンティックキャッシュ",
+ "promptCacheSectionDesc": "利用履歴からプロバイダー側のプロンプトキャッシュのアクティビティを表示し、キャッシュ制御が有効な箇所と、入力がどの程度再利用されているかを確認できます。",
+ "promptTrendDesc": "過去24時間の1時間ごとのリクエスト数、キャッシュカバレッジ、キャッシュ読み取り量。",
+ "cachedRequests": "キャッシュ済みリクエスト",
+ "cachedRequests24h": "キャッシュ済みリクエスト(24時間)",
+ "cacheHitRate": "キャッシュヒット率",
+ "cacheRate": "キャッシュ率",
+ "cacheRateDesc": "全リクエストに占める割合",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "プロンプトキャッシュのメトリクス",
+ "withCacheControl": "キャッシュ制御あり",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "キャッシュ再利用率",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "推定コスト削減額",
+ "lastUpdated": "最終更新",
+ "hoursTracked": "時間分を追跡",
+ "busiestHour": "最も利用の多い時間帯",
+ "peakCacheRate": "ピーク時のキャッシュ率",
+ "trendHour": "時刻",
+ "activityVolume": "アクティビティ",
+ "requestsShort": "リクエスト",
+ "inputShort": "入力",
+ "cachedShort": "キャッシュ済み",
+ "writeShort": "書き込み",
+ "resetting": "リセット中...",
+ "resetMetrics": "メトリクスをリセット",
+ "byProvider": "プロバイダー別の内訳",
+ "providerCacheRateDesc": "各プロバイダーは、入力トークン総数、キャッシュ読み取りトークン数、キャッシュ書き込みトークン数を表示するため、実測値に基づいて再利用率を検証できます。",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "リクエスト",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "キャッシュの推移(24時間)",
+ "peakCached": "キャッシュ数のピーク",
+ "cached": "キャッシュ済み",
+ "overview": "概要",
"tableProvider": "プロバイダー",
"tableModel": "モデル",
"performanceTitle": "パフォーマンス",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute独自の決定論的レスポンスキャッシュです。有効にすると、ストリーミングを使用しないtemperature=0の同一リクエストに対し、上流プロバイダーへアクセスせずにローカルからレスポンスを返せます。",
+ "semanticCacheDisabledDesc": "セマンティックキャッシュは無効です。Settingsで再度有効にするまで、OmniRouteはローカルレスポンスの再利用をスキップします。",
+ "semanticEntriesDesc": "現在SQLiteに保存されている永続化済みセマンティックキャッシュレコードです。プロバイダー側のプロンプトキャッシュのアクティビティはここには表示されません。",
+ "searchEntries": "エントリを検索...",
+ "search": "検索",
+ "loading": "読み込み中...",
+ "entriesLoadError": "セマンティックキャッシュのエントリを読み込めませんでした。",
+ "noEntries": "キャッシュエントリが見つかりません",
+ "noPromptCacheData": "プロバイダー側のプロンプトキャッシュのアクティビティはまだ記録されていません。",
+ "noTrendData": "過去24時間にプロンプトキャッシュのアクティビティは記録されていません。",
+ "signature": "署名",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "作成日時",
+ "expires": "有効期限",
+ "actions": "操作",
+ "deduplicatedRequests": "重複排除されたリクエスト",
+ "savedCalls": "節約されたAPI呼び出し",
+ "totalProcessed": "処理されたリクエストの合計",
+ "disabled": "無効",
+ "totalRequests": "リクエスト合計",
"reasoningCache": "推理リプレイ",
"reasoningCacheDesc": "マルチターン工具呼び出しフローのモデル思考を維持",
"reasoningEntries": "アクティブなエントリ",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes}分前",
"hoursAgo": "{hours}時間前",
"daysAgo": "{days}日前",
- "entries": "Entries"
+ "entries": "エントリ"
},
"proxyConfigModal": {
"levelGlobal": "グローバル",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "カーソルIDEの接続",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Cursorでログイン",
+ "tabImport": "トークンをインポート",
+ "loginDescription": "Cursorのブラウザログインを開きます。Dockerでも動作します。ホストのブラウザで承認してから、ここに戻ってください。",
+ "loginWithCursor": "Cursorでログイン",
+ "startingLogin": "開始中…",
+ "waitingApproval": "Cursorのログイン承認を待っています…",
+ "openUrlHint": "ブラウザが開かなかった場合:",
+ "openLoginLink": "ログインページを開く",
+ "cancelLogin": "ログインをキャンセル",
"autoDetecting": "トークンを自動検出しています...",
"readingFromCursor": "Cursor IDE またはカーソルエージェントからの読み取り",
"tokensAutoDetected": "トークンは Cursor IDE から正常に自動検出されました。",
"cursorNotDetected": "カーソル IDE が検出されません。トークンを手動で貼り付けてください。",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Dockerで実行していますか?「Cursorでログイン」の使用をおすすめします。通常、コンテナ内ではIDEからの自動インポートとcursor-agentは利用できません。docs/providers/CURSOR-DOCKER.mdを参照してください。",
"accessToken": "アクセストークン",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "更新トークン",
+ "refreshTokenPlaceholder": "任意 — トークンの自動更新を有効にします",
"required": "*",
"accessTokenPlaceholder": "アクセストークンは自動入力されます...",
"machineId": "マシンID",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "トークンの自動検出に失敗しました",
"errorEnterToken": "アクセストークンを入力してください",
"errorImportFailed": "インポートに失敗しました",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Cursorログインを開始できませんでした",
+ "errorLoginPoll": "Cursorログインに失敗しました",
+ "errorLoginTimeout": "Cursorログインがタイムアウトしました — もう一度お試しください"
},
"pricingModal": {
"title": "価格設定",
@@ -10839,9 +10850,9 @@
"selectProxy": "{name}を選択",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "旧形式からインポート",
+ "bulkAssign": "一括割り当て",
+ "addProxy": "プロキシを追加",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "テスト",
+ "edit": "編集",
+ "delete": "削除",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10884,10 +10895,10 @@
"bulkApply": "申し込む",
"labelScope": "スコープ",
"labelProxy": "プロキシ",
- "scopeGlobal": "global",
- "scopeProvider": "provider",
- "scopeAccount": "account",
- "scopeCombo": "combo",
+ "scopeGlobal": "グローバル",
+ "scopeProvider": "プロバイダー",
+ "scopeAccount": "アカウント",
+ "scopeCombo": "コンボ",
"bulkImportErrorMissingName": "名前がありません",
"bulkImportErrorMissingHost": "ホストが見つかりません",
"bulkImportErrorInvalidPort": "無効なポート (1 ~ 65535 である必要があります)",
@@ -10902,7 +10913,7 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "失敗",
"successRate": "{rate}% 成功",
"avgLatency": "平均{latency}ミリ秒",
"assignmentsCount": "{count} 件の割り当て",
@@ -10957,6 +10968,9 @@
"strategyLatency": "レイテンシー最適化",
"poolMembersLabel": "プールメンバー ({count})",
"poolNoMembers": "このプールにはまだプロキシがありません。",
+ "poolEgressObservation": "{exits, plural, one {# 個の出口} other {# 個の出口}}を{connections, plural, one {# 件の接続} other {# 件の接続}}が使用 · 1つの出口で最大{max}件 · 過去{hours}時間",
+ "poolEgressObservationEmpty": "過去{hours}時間にトラフィックは観測されませんでした",
+ "poolEgressObservationHint": "指定期間のプロキシログに基づく集計です。このプールのメンバーで観測された異なる送信元IPと、それらを使用したOmniRoute接続を示します。「1つの出口で」は指定期間全体を意味し、同時に使用された数ではありません。IPごとの429ロックアウトでは、同じプロバイダーファミリーの接続のみが一時停止されます。",
"poolRemove": "削除",
"poolRemoveFailed": "プールからプロキシを削除できませんでした",
"poolAddLabel": "プロキシを追加",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "エンドポイント",
+ "provider": "プロバイダー",
+ "model": "モデル",
"accountKey": "Account Key",
"autoAccounts": "自動 ({count} アカウント)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "送信",
+ "cancel": "キャンセル",
+ "audioFile": "音声ファイル",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "すべてクリア",
+ "request": "リクエスト",
+ "response": "レスポンス",
+ "transcription": "文字起こし",
+ "copy": "コピー",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "生成された画像は {count} 個です",
"generatedImage": "生成された画像 {index}",
- "save": "Save",
+ "save": "保存",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "レスポンス",
"completions": "補完",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "埋め込み",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "モデレーション",
- "rerank": "Rerank",
+ "rerank": "再ランキング",
"search": "Search",
"webFetch": "Webフェッチ"
},
"conversationalChat": "会話型チャット",
"clearChat": "クリアチャット",
"typeMessagePlaceholder": "メッセージを入力してください... (Shift+Enter で改行)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "チャット",
+ "tabCompare": "比較",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "ビルド",
+ "configPane": "設定",
+ "systemPrompt": "システムプロンプト",
+ "systemPromptPlaceholder": "あなたは親切なアシスタントです。",
+ "modelPlaceholder": "例: openai/gpt-4o",
+ "endpointLabel": "エンドポイント",
+ "parametersLabel": "パラメーター",
+ "collapseConfig": "設定ペインを折りたたむ",
+ "expandConfig": "設定ペインを展開",
+ "temperature": "温度",
+ "maxTokens": "最大トークン数",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "存在ペナルティ",
+ "frequencyPenalty": "頻度ペナルティ",
"reasoningLabel": "推論",
"thinking": "思考",
"effort": "エフォート",
"effortDefault": "デフォルト",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "ランダム(空欄のまま)",
+ "presetsLabel": "プリセット",
+ "loadPreset": "プリセットを読み込む",
+ "savePreset": "プリセットを保存",
+ "noPresets": "プリセットなし",
+ "presetNamePlaceholder": "プリセット名",
+ "savingPreset": "保存中…",
+ "nameRequired": "名前は必須です",
+ "failedToSavePreset": "プリセットの保存に失敗しました",
+ "improvePrompt": "プロンプトを改善",
+ "improvingPrompt": "改善中…",
+ "improvePromptTitle": "AIでプロンプトを改善",
+ "setModelFirst": "先にモデルを設定してください",
"setModelInConfigFirst": "最初に設定ペインでモデルを設定してください。",
"improvePromptFailed": "プロンプトの改善に失敗しました。",
"improvePromptAria": "AIを使用してプロンプトを改善",
"confirmImprovePrompt": "プロンプトの改善を確認",
"improvePromptDescription": "これにより、現在のシステムプロンプトが trae.ai にログインしている必要があります。認証ページは既存のセッションを確認するだけで、サインインすることはできません。「ログイン失敗」と表示された場合は、「solo.trae.aiを開く」をクリックし、サインインしてからここに戻ってください。",
"waitingForAuthorization": "trae.aiを待っています…",
"authorizeWithBrowser": "ブラウザで認証する",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai を開く",
"orPasteManually": "またはトークンを手動で貼り付けます",
"manualInstructions": "solo.trae.ai にサインインし、DevTools → ネットワークを開き、任意のチャットメッセージを送信し、Authorization: Cloud-IDE-JWT {tokenPlaceholder} リクエストヘッダーからJWTをコピーします。JWTの有効期限は約14日です。オプションのアイデンティティフィールドは、同じリクエストボディのcommon_paramsから取得されます。",
"accessTokenLabel": "アクセストークン (Cloud-IDE-JWT)",
@@ -13945,7 +13978,7 @@
"runners": "ランナー",
"tasks": "タスク",
"colName": "名前",
- "colClis": "CLIs",
+ "colClis": "CLI",
"colStatus": "ステータス",
"colTask": "タスク",
"colMode": "モード",
@@ -14048,11 +14081,11 @@
"actionApprove": "プランを承認",
"actionCancel": "キャンセル",
"actionSeeInGraph": "グラフで表示",
+ "actionRepeat": "再実行",
"actionDone": "アクションを適用しました",
"actionFailed": "アクションが失敗しました: {error}",
"detailFailed": "詳細の読み込みに失敗しました: {error}",
"mirroredInA2A": "A2Aにミラーリング",
- "actionRepeat": "再実行",
"repeatConfirm": "確認するにはもう一度クリック",
"repeatDone": "新しい実行を作成しました",
"repeatUnavailable": "元の入力を利用できません"
@@ -14087,36 +14120,36 @@
"trialDays": "{days} 日間"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "レーダーインテリジェンス",
+ "subtitle": "Radar が管理する ELO ランキングと、カタログの客観的な変動情報。",
+ "backToRadar": "Radar に戻る",
+ "loading": "Intel を読み込み中...",
+ "refresh": "Intel を更新",
+ "syncing": "更新中...",
+ "loadFailed": "Intel を更新できませんでした。最後に検証されたローカルキャッシュは保持されています。",
+ "empty": "検証済みの Intel スナップショットはまだありません。",
+ "supporterBadge": "Radar サポーター",
+ "methodology": "評価方法",
+ "eloMethod": "ELO、初期値 {initial}、K={factor}",
+ "freshness": "カタログの鮮度",
+ "ageDays": "{days, plural, one {# 日前} other {# 日前}}",
+ "trend": "カタログの傾向",
+ "modelDelta": "{current} モデル、+{added} / -{removed}",
+ "ranking": "モデルランキング",
+ "noRankings": "確定済みの比較データはまだありません。",
+ "model": "モデル",
+ "category": "カテゴリー",
+ "rating": "評価",
+ "matches": "一致",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "新鮮",
+ "aging": "経年",
+ "stale": "陳腐化"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "増加中",
+ "stable": "安定",
+ "shrinking": "減少中"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "リクエストがプロバイダーのコンテキストウィンドウを超えています"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper InferenceはOmniRouteのオープンソースフレンドです",
+ "description": "1つのOpenAI互換エンドポイントを通じて数十の最先端モデルを再販する、コスト順のゲートウェイです。各リクエストを条件を満たす最も安価なプロバイダーへルーティングし、定価を超えることはありません。",
+ "cta": "APIキーを取得",
+ "partnerLinkNote": "パートナーリンク",
+ "dismissAriaLabel": "閉じる"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/modelsカタログで思考レベルのバリアント(例:-low、-medium、-high)を生成しないようにします。"
}
diff --git a/src/i18n/messages/ka.json b/src/i18n/messages/ka.json
index c47cb2f420..f4b4078485 100644
--- a/src/i18n/messages/ka.json
+++ b/src/i18n/messages/ka.json
@@ -761,7 +761,7 @@
"tierCoverageSubtitle": "თითოეულ სარეზერვო დონეზე კონფიგურირებული პროვაიდერები",
"batchDetailCopyId": "ID-ის კოპირება",
"batchDetailClose": "დახურვა",
- "batchDetailEndpoint": "Endpoint",
+ "batchDetailEndpoint": "საბოლოო წერტილი",
"batchDetailModel": "მოდელი",
"batchDetailWindow": "ფანჯარა",
"batchDetailCreated": "შექმნილია",
@@ -901,7 +901,7 @@
"batchListRemoveCompleted": "წაშლა დასრულებულია",
"batchListTableStatus": "სტატუსი",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "საბოლოო წერტილი",
"batchListTableModel": "მოდელი",
"batchListTableProgress": "პროგრესი",
"batchListTableCreated": "შექმნილია",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "გამოაქვეყნეთ claude/<provider>/<model> სარკისებური ID-ები /v1/models-ზე, რათა Claude Code-ის კარიბჭის მოდელების აღმოჩენის სიაში არა-Claude მოდელებიც გამოჩნდეს. გაფრთხილება: გლობალურად ჩართვის შემთხვევაში კატალოგის ჩანაწერების რაოდენობა ყველა კლიენტისთვის გაორმაგდება.",
"featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> კარიბჭის ფსევდონიმების მთავარი გადამრთველი. ჩართულია (ნაგულისხმევი): /v1/models აქვეყნებს აზროვნების გარეშე ვარიანტს ყველა შესაბამისი, აზროვნების უნარის მქონე Claude მოდელისთვის, ხოლო მოთხოვნაში გაგზავნილი no-think/ ID კვლავ რეალურ მოდელზე გადადის, მსჯელობის ჩახშობით. გამორთულია: ვარიანტები არ ქვეყნდება და no-think/ ID განიხილება, როგორც ნებისმიერი სხვა უცნობი მოდელის ID. სანამ ეს ჩართულია, თითოეული მოდელისთვის ModelSpec.noThinkingAlias-ის ჩართვის/გამორთვის პარამეტრი კვლავ მოქმედებს.",
"featureFlagChatVirtualLanesEnabledDescription": "ჩართეთ თითოეული ტენანტისთვის ადაპტიური ვირტუალური დაშვების არხები პროვაიდერთან გადაგზავნისთვის (#9654): ერთი ტენანტის მოთხოვნების უეცარი მატება სხვას აღარ დაუბრუნებს 503 შეცდომას. OMNIROUTE_CHAT_VIRTUAL_LANES გარემოს ცვლადს უპირატესობა აქვს მართვის პანელის ამ პარამეტრთან შედარებით; ცვლილებები ძალაში შევა სერვერის გადატვირთვის შემდეგ.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "პროვაიდერის გვერდები მართვის პანელში: „უფასო“ ნიშანი გამოჩნდეს მხოლოდ იმ სიგნალების საფუძველზე, რომლებსაც პროვაიდერი ითვალისწინებს — აღარ გამოიყენება საჩვენებელი სახელის ევრისტიკა, არაბულური უფასო ველები და :free სუფიქსები რეგისტრირებული პროვაიდერებისთვის, რომლებსაც დოკუმენტირებული უფასო დონე არ აქვთ. გამორთვის შემთხვევაში შენარჩუნდება ნიშნის ჩვენების ისტორიული წესი.",
+ "featureFlagProxySkipRecentlyFailedDescription": "პროქსი-პულები და opencode-ის თითოეულ ანგარიშზე როტაცია აღარ იყენებს ახლახან ჩავარდნილ პროქსის (უარყოფილი TCP შემოწმება ან მისი მეშვეობით მიღებული 429) თითოეული პროცესისთვის განსაზღვრული პერიოდით, რომელიც ყოველი განმეორებისას ორმაგდება მაქსიმალურ ზღვრამდე. პროქსის სტატუსი არ იწერება; ყველა კანდიდატის გვერდზე გადადების შემთხვევაში არჩევანი უცვლელი რჩება. ნაგულისხმევად გამორთულია: არჩევის თანმიმდევრობა ზუსტად ჩვეულებრივი როტაციის იდენტურია.",
+ "featureFlagProxyPoolEgressObservationDescription": "დეშბორდზე, პროქსი-პულის ქვეშ, აჩვენეთ ბოლო 24 საათში რამდენი დაფიქსირებული გამავალი IP ემსახურებოდა მის წევრებს, რამდენმა კავშირმა გამოიყენა ისინი და ყველაზე მეტი რამდენი კავშირი დაფიქსირდა ერთი IP-ის უკან. მხოლოდ წაკითხვისთვისაა, გამოითვლება პროქსის ჟურნალიდან და არასოდეს გამოიყენება მარშრუტიზაციისთვის. ნაგულისხმევად გამორთულია: პულის რედაქტორი უცვლელია, ხოლო დაკვირვების მარშრუტი აბრუნებს null-ს.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "პროქსის მდგომარეობის შემოწმებისას, სამიზნის მიერ უარყოფილმა მოთხოვნამ (401/403/429: პროქსიმ გადააგზავნა მოთხოვნა, ხოლო დანიშნულების მხარემ უარყო ეს გამავალი IP) გაანულოს პროქსის ზედიზედ წარუმატებლობათა სერია, როგორც წარმატებით შესრულებული შემოწმებისას. ნაგულისხმევად გამორთულია: უარყოფა ნეიტრალური რჩება და სერიას ინარჩუნებს. 5xx ნებისმიერ შემთხვევაში გაურკვეველ შედეგად რჩება, ხოლო უარყოფა არასოდეს შლის, თიშავს ან ხელახლა ააქტიურებს პროქსის.",
"sidebar": {
"home": "მთავარი",
"dashboard": "მართვის პანელი",
@@ -1425,13 +1429,13 @@
"secretKeyHint": "გამოიყენება დატვირთვის სათაურის ხელმოსაწერად ავთენტიფიკაციის მიზნით."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "Discord-ის Webhook URL",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "Webhook-ის URL, რომელიც დაკოპირებულია თქვენი Discord არხის ინტეგრაციის პარამეტრებიდან.",
"tutorial": "როგორ შევქმნათ Discord webhook:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "Slack-ის Webhook URL",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "Webhook-ის URL, რომელიც დაკოპირებულია თქვენი Slack Incoming Webhooks ინტეგრაციიდან.",
"tutorial": "როგორ შევქმნათ Slack webhook:"
@@ -1441,7 +1445,7 @@
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "HTTP API ტოკენი, რომელიც მიღებულია @BotFather-ისგან თქვენი ბოტის შექმნისას.",
"chatId": "Telegram ჩატის ID / არხი",
- "chatIdPlaceholder": "-100123456789 or @channelname",
+ "chatIdPlaceholder": "-100123456789 ან @channelname",
"chatIdHint": "ჩატის/არხის უნიკალური რიცხვითი იდენტიფიკატორი ან საჯარო მომხმარებლის სახელი.",
"tutorial": "როგორ დავაკონფიგურიროთ Telegram webhook:"
}
@@ -2415,7 +2419,7 @@
"bypassProviderQuota": "პროვაიდერის კვოტის ზღვრული შეზღუდვების გვერდის ავლა",
"bypassProviderQuotaDescription": "საშუალებას აძლევს ამ გასაღებს, მარშრუტიზაციისას უგულებელყოს ზედა დონის პროვაიდერის/ანგარიშის ზღვრული შეზღუდვის პოლიტიკა. API გასაღების USD კვოტები კვლავ მოქმედებს.",
"quotaPill": "კვოტა",
- "quotaModeOnly": "qtSd-only",
+ "quotaModeOnly": "მხოლოდ qtSd",
"exclusiveLease": "ექსკლუზიური იჯარა",
"exclusiveLeaseNoticeTitle": "ექსკლუზიური იჯარა",
"exclusiveLeaseNoticeDesc": "ამ API გასაღებს აქვს გამოყოფილი კავშირების მარშრუტიზაციისთვის ექსკლუზიური იჯარის ნებართვები.",
@@ -4123,7 +4127,7 @@
"vscodeAliasDescriptionError": "ნაჩვენებია ჩანაცვლების URL-ები, რადგან ამ სესიაში CLI გასაღებების ჩატვირთვა ვერ მოხერხდა.",
"vscodeAliasDescriptionLoading": "CLI გასაღებები იტვირთება. ჩანაცვლების URL-ები ნაჩვენები იქნება, სანამ გასაღები ხელმისაწვდომი გახდება.",
"vscodeAliasDescriptionPlaceholder": "ნაჩვენებია ჩანაცვლების URL-ები. TOKEN-ის ჩასანაცვლებლად შექმენით ან გაააქტიურეთ API გასაღები CLI Tools-ში.",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "CLI ინსტრუმენტები",
"vscodeAliasBaseLabel": "VS Code საბაზო მისამართი",
"vscodeAliasModelsLabel": "VS Code მოდელები",
"vscodeAliasChatLabel": "VS Code ჩატი",
@@ -4135,7 +4139,7 @@
"badgeInternalTooltip": "ეს შიდა სისტემური ბოლო წერტილია",
"tierAll": "ყველა",
"tierAuth": "ავტორიზებული",
- "tierLoopback": "Loopback",
+ "tierLoopback": "ლუპბეკი",
"tierAlwaysProtected": "ყოველთვის დაცული",
"tierPublic": "საჯარო",
"hideInternal": "შიდა ელემენტების დამალვა",
@@ -4429,7 +4433,7 @@
"reindexFailed": "ხელახალი ინდექსირების დაწყება ვერ მოხერხდა",
"keywordLabel": "საკვანძო სიტყვა (FTS5)",
"keywordReason": "საკვანძო სიტყვებით ძიება ყოველთვის ხელმისაწვდომია",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "ემბედინგი",
"vectorStoreLabel": "ვექტორული საცავი",
"qdrantLabel": "Qdrant",
"rerankLabel": "ხელახალი რანჟირება",
@@ -4603,7 +4607,7 @@
"enabledSkills": "ჩართულია",
"totalExecutions": "შესრულებები",
"successRate": "წარმატების მაჩვენებელი",
- "marketplaceTab": "Marketplace",
+ "marketplaceTab": "მარკეტპლეისი",
"applyFilters": "ფილტრების გამოყენება",
"popularDefaultsLabel": "ნაგულისხმევად პოპულარული არჩეული პროვაიდერისთვის:",
"onMode": "ჩართულია",
@@ -4646,7 +4650,7 @@
"uptime": "უწყვეტი მუშაობის დრო",
"memory": "მეხსიერება",
"memoryRss": "მეხსიერება (RSS)",
- "heap": "Heap",
+ "heap": "გროვა",
"cpu": "CPU",
"database": "მონაცემთა ბაზა",
"version": "ვერსია",
@@ -5372,7 +5376,7 @@
"testAllProgress": "შემოწმებულია {done}/{total}",
"testAllFailedHidden": "დამალულია {count} წარუმატებელი მოდელი",
"testAllDone": "ყველა მოდელი შემოწმებულია",
- "productionKey": "Production Key",
+ "productionKey": "საწარმოო გასაღები",
"enterNewApiKey": "შეიყვანეთ ახალი API გასაღები",
"codexApplyModalTitle": "Local Codex-ზე გამოყენება",
"codexApplyTargetLabel": "სამიზნე მისამართი",
@@ -5797,10 +5801,10 @@
"ccCompatibleSummarizeThinkingDescription": "CC Compatible აზროვნების მოთხოვნებს ამატებს `display: \"summarized\"`-ს, რათა მხარდაჭერილმა Claude მოდელებმა აზროვნების ხილული ცვლილებები ნაკადის სახით გადასცენ.",
"ccCompatibleSummarizeThinkingLabel": "აზროვნების შეჯამებული ჩვენების ჩართვა",
"ccCompatibleDetailsTitle": "CC-compatible რელეის დეტალები",
- "ccCompatibleLabel": "CC Compatible",
+ "ccCompatibleLabel": "CC-თან თავსებადი",
"ccCompatibleModelsDescription": "CC-compatible რელეები მოდელების ჩამონათვალს არ აჩვენებს. დაამატეთ Claude მოდელების ID-ები, რომლებსაც თქვენი რელეი იღებს.",
"ccCompatibleNameHint": "ამ მხოლოდ Claude Code-ისთვის განკუთვნილი რელეის საჩვენებელი სახელი.",
- "ccCompatibleNamePlaceholder": "CC Relay Production",
+ "ccCompatibleNamePlaceholder": "CC Relay საწარმოო გარემო",
"ccCompatiblePrefixHint": "გამოიყენება მოდელის ფსევდონიმებში, როგორიცაა prefix/model-id.",
"ccCompatiblePrefixPlaceholder": "cc",
"ccCompatibleValidationHint": "გამოიყენეთ ეს პროვაიდერი მხოლოდ იმ რელეებისთვის, რომლებიც ექსკლუზიურად Claude Code კლიენტებს ემსახურება. OmniRoute ყველა შემომავალ მოთხოვნას Claude Code-თან თავსებად სადენოვან ფორმატში გარდაქმნის, რათა ამ რელეებმა მათი მიღება შეძლონ. თუ მხოლოდ Claude Code CLI-ის გამოყენება გსურთ ან დარწმუნებული არ ხართ, რას ნიშნავს რელეის ეს ტიპი, მის ნაცვლად გამოიყენეთ ჩვეულებრივი Anthropic-თან თავსებადი პროვაიდერი.",
@@ -6363,15 +6367,15 @@
"checkWebToken": "ტოკენის შემოწმება",
"huggingchatLabel": "HuggingChat (უფასო)",
"huggingchatDesc": "უფასო LLM ჩატი huggingface.co/chat-ის მეშვეობით",
- "poeWebLabel": "Poe Web",
+ "poeWebLabel": "Poe ვები",
"poeWebDesc": "მრავალმოდელიანი ჩატი poe.com-ის მეშვეობით",
- "veniceWebLabel": "Venice Web",
+ "veniceWebLabel": "Venice ვები",
"veniceWebDesc": "კონფიდენციალურობაზე ორიენტირებული AI ჩატი",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "v0 Vercel ვები",
"v0VercelWebDesc": "AI-ით კოდის გენერაცია v0.dev-ის მეშვეობით",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Kimi ვები",
"kimiWebDesc": "Moonshot AI-ის სამომხმარებლო ჩატი www.kimi.com-ის მეშვეობით (საერთაშორისო, Connect-RPC API)",
- "doubaoWebLabel": "Dola Web",
+ "doubaoWebLabel": "Dola ვები",
"doubaoWebDesc": "ByteDance-ის AI ჩატი dola.com-ის მეშვეობით",
"overrideBaseUrlAdvanced": "გაფართოებული: საბაზისო URL-ის ჩანაცვლება",
"overrideBaseUrlHint": "გაფართოებული: მიუთითეთ ამ ჩაშენებული პროვაიდერისთვის მორგებული ბოლო წერტილი. ნაგულისხმევი მნიშვნელობის გამოსაყენებლად ცარიელი დატოვეთ.",
@@ -6452,7 +6456,7 @@
"failedUpdateCodexServiceMode": "Codex-ის სერვისის რეჟიმის განახლება ვერ მოხერხდა",
"filterByMedia": "მედია",
"freeBadge": "უფასო",
- "kimiCodeApiKeyLabel": "Kimi Code API Key",
+ "kimiCodeApiKeyLabel": "Kimi Code API გასაღები",
"modelTestFailed": "მოდელის ტესტი ვერ შესრულდა",
"modelTestNetworkError": "მოდელის ტესტირებისას ქსელის შეცდომა მოხდა",
"networkError": "ქსელის შეცდომა",
@@ -6745,11 +6749,11 @@
"themeSystem": "სისტემა",
"endpointTunnelVisibility": "Endpoint-ის გვირაბის ხილვადობა",
"endpointTunnelVisibilityDesc": "დამალეთ გვირაბის მართვის ელემენტები Endpoint-ის გვერდიდან გვირაბის მდგომარეობის შეცვლის გარეშე.",
- "showCloudflareTunnel": "Cloudflare Quick Tunnel",
+ "showCloudflareTunnel": "Cloudflare სწრაფი გვირაბი",
"showCloudflareTunnelDesc": "აჩვენეთ Cloudflare Quick Tunnel-ის მართვის ელემენტები Endpoint-ის გვერდზე.",
"showTailscaleFunnel": "Tailscale Funnel",
"showTailscaleFunnelDesc": "აჩვენეთ Tailscale Funnel-ის მართვის ელემენტები Endpoint-ის გვერდზე.",
- "showNgrokTunnel": "ngrok Tunnel",
+ "showNgrokTunnel": "ngrok გვირაბი",
"showNgrokTunnelDesc": "აჩვენეთ ngrok Tunnel-ის მართვის ელემენტები Endpoint-ის გვერდზე.",
"sidebarVisibility": "გვერდითი ზოლის ელემენტების დამალვა",
"sidebarVisibilityDesc": "დამალეთ გვერდითი ზოლის ნებისმიერი სანავიგაციო ჩანაწერი ვიზუალური გადატვირთულობის შესამცირებლად, ფუნქციების გამორთვის გარეშე",
@@ -7139,7 +7143,7 @@
"ipModeWhitelist": "თეთრი სია",
"ipModeWhitelistPriority": "თეთრი სიის პრიორიტეტი",
"addIpAddress": "IP მისამართის დამატება",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
+ "ipAddressPlaceholder": "192.168.1.0/24 ან 10.0.*.*",
"block": "+ დაბლოკვა",
"allow": "+ დაშვება",
"blocked": "დაბლოკილი ({count})",
@@ -7927,16 +7931,16 @@
"resilienceEnableServerSideWait": "სერვერის მხარეს ლოდინის ჩართვა",
"resilienceMaximumRetries": "განმეორებითი მცდელობების მაქსიმალური რაოდენობა",
"resilienceMaximumWaitPerRetry": "მაქსიმალური ლოდინი თითოეულ განმეორებით მცდელობაზე",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "SkillsMP მარკეტპლეისი",
"memorySkillsFailedToSave": "შენახვა ვერ მოხერხდა",
"memorySkillsApiKey": "API გასაღები",
"memorySkillsActiveSkillsProvider": "უნარების აქტიური პროვაიდერი",
"cliproxyapiFallback": "CLIProxyAPI-ის სარეზერვო ვარიანტი",
"cliproxyapiEnableFallback": "CLIProxyAPI-ის სარეზერვო ვარიანტის ჩართვა",
- "cliproxyapiUrl": "CLIProxyAPI URL",
+ "cliproxyapiUrl": "CLIProxyAPI-ის URL",
"headroomProxyTitle": "Headroom პროქსი",
"headroomProxyDesc": "არასავალდებულო Headroom ტოკენების დამზოგავი პროქსის URL. ცარიელი მნიშვნელობის შემთხვევაში გამოიყენება HEADROOM_URL ან http://localhost:8787.",
- "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrl": "Headroom-ის URL",
"headroomProxyUrlHint": "Loopback URL-ების გაშვება ამ გვერდიდან შეიძლება. გარე URL-ები მხოლოდ მოწმდება.",
"headroomProxySave": "შენახვა",
"headroomProxyStart": "გაშვება",
@@ -8347,9 +8351,9 @@
"oneproxyClearAllConfirm": "გასუფთავდეს ყველა 1proxy-ის პროქსი?",
"memorySkillsSkillsmpDescription": "დაუკავშირდით SkillsMP-ს, რათა აღმოაჩინოთ და დააინსტალიროთ უნარები მარკეტფლეისიდან.",
"memorySkillsActiveProviderDescription": "აირჩიეთ, რომელ პროვაიდერს გამოიყენებს უნარების გვერდი ძიებისა და ინსტალაციისთვის.",
- "memorySkillsSkillsmpProviderTitle": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpProviderTitle": "SkillsMP მარკეტპლეისი",
"memorySkillsSkillsmpProviderDescription": "ავთენტიფიცირებული მარკეტფლეისი (იყენებს თქვენს SkillsMP API გასაღებს).",
- "memorySkillsSkillsshProviderTitle": "skills.sh Directory",
+ "memorySkillsSkillsshProviderTitle": "skills.sh კატალოგი",
"memorySkillsSkillsshProviderDescription": "საჯარო კატალოგის პროვაიდერი (API გასაღები არ არის საჭირო).",
"routingCcBridgeCatalogName": "Anthropic-თან თავსებადი CC ხიდი",
"routingClaudeProviderName": "Claude (OAuth)",
@@ -10256,11 +10260,11 @@
"techUsersSubtitle": "სიღრმისეულად გაეცანით არქიტექტურას, API-ებსა და შიდა მექანიზმებს",
"apiExplorerMetadataTitle": "API Explorer — OmniRoute-ის დოკუმენტაცია",
"apiExplorerMetadataDescription": "ინტერაქციული API Explorer — რეალურ დროში მიღებული პასუხებით გამოცადეთ OmniRoute-ის ენდფოინთები",
- "apiExplorerTitle": "API Explorer",
+ "apiExplorerTitle": "API-ის მკვლევარი",
"apiExplorerDescription": "გამოცადეთ OmniRoute-ის ენდფოინთები რეალურ დროში. აირჩიეთ ენდფოინთი, დააკონფიგურირეთ მოთხოვნა და იხილეთ პასუხი რეალურ დროში.",
"apiExplorerSseStarted": "SSE ნაკადი დაიწყო — რეალურ დროში გამომავალი მონაცემებისთვის შეამოწმეთ ტერმინალი/devtools.",
"apiExplorerError": "შეცდომა: {message}",
- "apiExplorerAuth": "auth",
+ "apiExplorerAuth": "ავტორიზაცია",
"apiExplorerResponseLabel": "პასუხი",
"apiExplorerSelectEndpoint": "შესასწავლად აირჩიეთ ენდფოინთი",
"apiExplorerChooseApi": "დეტალების სანახავად და რეალურ დროში გამოსაცდელად გვერდითა ზოლიდან აირჩიეთ API",
@@ -10772,7 +10776,7 @@
"devinDesktopPasteDescription": "ჩასვით არსებული Devin API გასაღები ავთენტიფიცირებული Devin სესიიდან. გასაღების ექსპორტის ხელმისაწვდომობა და ნაბიჯები განსხვავდება Devin-ის ვერსიისა და ანგარიშის მიხედვით.",
"devinPasteDescription": "მიუთითეთ თქვენი WINDSURF_API_KEY (მიღებული `devin auth login`-ის ან Windsurf IDE-ის ბრძანების „Windsurf: Provide Auth Token“ მეშვეობით).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "Grok Build-ის auth.json",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "API გასაღები / ტოკენი",
"saving": "ინახება…",
@@ -10915,7 +10919,7 @@
"assignmentsCount": "{count} მინიჭება",
"noData": "—",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency}მწმ",
"testFailure": "✗ {error}",
"repair": "აღდგენა",
"relayAuthMissing": "ავთენტიფიკაცია აკლია",
@@ -10964,6 +10968,9 @@
"strategyLatency": "შეყოვნებაზე ოპტიმიზებული",
"poolMembersLabel": "პულის წევრები ({count})",
"poolNoMembers": "ამ პულში ჯერ პროქსები არ არის.",
+ "poolEgressObservation": "გამოყენებულია {exits, plural, one {# გასასვლელი} other {# გასასვლელი}} {connections, plural, one {# კავშირის} other {# კავშირის}} მიერ · ერთ გასასვლელზე მაქსიმუმ {max} · ბოლო {hours} სთ",
+ "poolEgressObservationEmpty": "ბოლო {hours} სთ-ის განმავლობაში ტრაფიკი არ დაფიქსირებულა",
+ "poolEgressObservationHint": "დათვლილია პროქსის ჟურნალიდან მოცემული დროის შუალედში: ამ პულის წევრებისთვის დაფიქსირებული უნიკალური გამავალი IP-ები და OmniRoute-ის კავშირები, რომლებმაც ისინი გამოიყენეს. „ერთ გასასვლელზე“ გულისხმობს მთელ დროის შუალედს და არა ერთსა და იმავე დროს. თითოეულ IP-ზე 429 დაბლოკვა აჩერებს მხოლოდ იმავე პროვაიდერის ოჯახის კავშირებს.",
"poolRemove": "ამოღება",
"poolRemoveFailed": "პულიდან პროქსის ამოღება ვერ მოხერხდა",
"poolAddLabel": "პროქსის დამატება",
@@ -11444,8 +11451,8 @@
"allProviders": "ყველა პროვაიდერი",
"total": "სულ",
"ok": "OK",
- "err": "ERR",
- "timeoutShort": "TMO",
+ "err": "შეცდომა",
+ "timeoutShort": "დრო ამოიწურა",
"direct": "პირდაპირი",
"newest": "უახლესი",
"oldest": "უძველესი",
@@ -11941,7 +11948,7 @@
"diagnosing": "მიმდინარეობს დიაგნოსტიკა…",
"diagnoseHealthy": "ტრაფიკის დაფიქსირების კონვეიერი გამართულად მუშაობს.",
"diagnoseUnhealthy": "ტრაფიკის დაფიქსირების კონვეიერს აქვს პრობლემები:",
- "repair": "Repair",
+ "repair": "შეკეთება",
"repairing": "აღდგენა…",
"repairDone": "აღდგენილია: {items}",
"repairNothing": "აღსადგენი არაფერია — სისტემის მდგომარეობა სუფთაა.",
@@ -12165,7 +12172,7 @@
"cliCommon": {
"concept": {
"code": {
- "title": "CLI Code",
+ "title": "CLI კოდი",
"phrase": "კოდის ხელსაწყოები, რომლებსაც OmniRoute-ზე მიუთითებთ",
"flow": "თქვენ → CLI Code → OmniRoute → პროვაიდერი",
"seeOther": "იხილეთ →"
@@ -12233,7 +12240,7 @@
"category": "ტიპი",
"detectionStatus": "აღმოჩენა",
"configStatus": "კონფიგურაცია",
- "baseUrlLabel": "Base URL",
+ "baseUrlLabel": "საბაზისო URL",
"apiKeyLabel": "API გასაღები",
"modelMappingLabel": "მოდელების შესაბამისობა",
"noActiveProviders": "აქტიური პროვაიდერები არ არის.",
@@ -12246,7 +12253,7 @@
"pageSubtitle": "OmniRoute-ზე მიმართული კოდის ინსტრუმენტები",
"searchPlaceholder": "CLI-ის ძიება…",
"filterDetectionLabel": "აღმოჩენა",
- "filterBaseUrlLabel": "Base URL",
+ "filterBaseUrlLabel": "საბაზისო URL",
"detectionAll": "ყველა",
"detectionInstalled": "დაყენებული",
"detectionNotFound": "ვერ მოიძებნა",
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "ნაკადის აღდგენისას პასუხის ხელახლა მოთხოვნისა და მისი გაერთიანების დაშვება მას შემდეგაც, რაც ბაიტები უკვე მიაღწევს კლიენტამდე."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "ნაკადის შუაში გაგრძელება ინსტრუმენტის გამოძახებისას უსაფრთხო გახადეთ: არასოდეს განაახლოთ შეწყვეტილი ნაკადი ინსტრუმენტის გამოძახების გაგზავნის შემდეგ (მიუხედავად იმისა, ის ჯერ კიდევ მიმდინარეობს თუ უკვე დასრულდა) და ხელახალი ცდების მთელი ლიმიტის გამოყენების ნაცვლად შეჩერდით ერთი ცარიელი გაგრძელების შემდეგ."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "ერთხელ გადაერთოს მონათესავე კავშირზე, როდესაც ნაკადი იხურება რაიმე სასარგებლო ფრეიმის გამოშვებამდე და იმავე კავშირზე განმეორებითი ცდის დაშვებული რაოდენობა ამოწურულია. თუ გამოსაყენებელი მონათესავე კავშირი არ არსებობს, დაბრუნდება თავდაპირველი early-EOF შეცდომა. გამორთული: განმეორებითი ცდის შემდეგ early-EOF საბოლოო შეცდომად რჩება."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "/v1/models-ის პასუხებში ეკრანზე გამოსატანად მოსახერხებელი სახელის ველების ჩართვა. გამორთეთ ეს იმ კლიენტებისთვის, რომლებიც მხოლოდ მოდელის ID-ებს იღებენ."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "სერვერის მიერ მართული ხელსაწყოების ციკლი",
"description": "გააგრძელეთ სერვერის მიერ მართული ხელსაწყოების არასტრიმინგული გამოძახებები, სანამ მოდელი კლიენტისთვის გამოსაყენებელ პასუხს არ დააბრუნებს."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After-ის წარმოშობა",
+ "description": "გაერთიანებულ 429/503 მიუწვდომლობის პასუხებში გამოტოვეთ Retry-After, როდესაც მომდევნო ცდის კონკრეტული მომავალი დრო უცნობია, სინთეზური 1 წმ-ის გაგზავნის ნაცვლად; დაამატეთ error.retry_after_provenance და combo-ს დაცლის მარშრუტებზე წაიკითხეთ ტექსტურად მოცემული მინიშნებები ხელახალი ცდის შესახებ."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "დაცული პრიორიტეტის ინფრასტრუქტურული შეჩერებები, როგორც 502",
+ "description": "უპასუხეთ 502-ით 503-ის ნაცვლად, როდესაც მხოლოდ კვოტაზე ორიენტირებული სარეზერვო პრიორიტეტული სამიზნე აჩერებს combo-ს მიზეზით, რომელიც დადასტურებულად არ უკავშირდება კვოტას: პროვაიდერის ღია circuit breaker ან პროგნოზული დაყოვნების გამო გამოტოვება."
}
}
},
@@ -13098,7 +13119,7 @@
"comboHealth": "კომბოს მდგომარეობა",
"callLogs": "გამოძახებების ჟურნალები",
"costs": "ხარჯები",
- "playground": "Playground",
+ "playground": "სატესტო გარემო",
"nestedCombo": "ჩადგმული კომბო",
"modelTarget": "მოდელის სამიზნე",
"weight": "{value}% წონა",
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "გაგზავნამდე უარყავით მოთხოვნები, როდესაც სამიზნე მოდელს საჭირო შესაძლებლობები (ხედვა, ხელსაწყოები, სტრუქტურირებული გამომავალი, კონტექსტის ფანჯარა) არ გააჩნია. იცავს უშუალო, ერთი პროვაიდერისადმი გაგზავნილ მოთხოვნებს, რომლებიც კომბინირებული შრის თავსებადობის ფილტრს გვერდს უვლის.",
"featureFlagDisableContextWindowChecksDescription": "ერთი მოდელისადმი უშუალოდ გაგზავნილი მოთხოვნებისთვის გამოტოვეთ OmniRoute-ის კონტექსტის ფანჯრისა და შეყვანის ტოკენების მაქსიმალური რაოდენობის ლოკალური შემოწმება. ზემდგომი პროვაიდერები კვლავ იყენებენ საკუთარ რეალურ შეზღუდვებს. მოთხოვნის შეკუმშვა და გამომავალი ტოკენების ლიმიტები აქტიური რჩება.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "ძიების სტატისტიკა და ბოლო ძიებები ითვალისწინებს მხოლოდ იმ პროვაიდერებს, რომლებსაც ჯერ კიდევ აქვთ აქტიური კავშირი (გასაღების არმომთხოვნი პროვაიდერები, როგორიცაა duckduckgo-free, ყოველთვის ითვლება). გამორთვის შემთხვევაში შენარჩუნდება ძიების ყველა ჩანაწერი, რომელსაც პროვაიდერის ID აქვს.",
"publicSystem": {
"notFound": {
"title": "გვერდი ვერ მოიძებნა",
diff --git a/src/i18n/messages/km.json b/src/i18n/messages/km.json
index 458baf9e35..b9b9489f98 100644
--- a/src/i18n/messages/km.json
+++ b/src/i18n/messages/km.json
@@ -701,13 +701,13 @@
"monitorAnomaliesAndHealth": "តាមដានភាពមិនប្រក្រតី និងស្ថានភាពប្រព័ន្ធ",
"flaggedAnomalies": "ភាពមិនប្រក្រតីដែលបានសម្គាល់",
"noAnomaliesDetected": "មិនបានរកឃើញភាពមិនប្រក្រតីទេ",
- "apiKey": "API Key",
- "xpLastHour": "XP (1h)",
- "zScore": "Z-Score",
+ "apiKey": "សោ API",
+ "xpLastHour": "XP (1 ម៉ោង)",
+ "zScore": "ពិន្ទុ Z",
"suspicious": "គួរឱ្យសង្ស័យ",
"tokensCommunityServers": "ម៉ាស៊ីនមេសហគមន៍",
"tokensServerNamePlaceholder": "ឈ្មោះម៉ាស៊ីនមេ",
- "tokensApiKeyPlaceholder": "API key",
+ "tokensApiKeyPlaceholder": "សោ API",
"tokensTokenBalance": "សមតុល្យ Token",
"tokensSendTokens": "ផ្ញើ Token",
"tokensRecipientApiKeyId": "លេខសម្គាល់ API Key របស់អ្នកទទួល",
@@ -832,7 +832,7 @@
"wizardStep3Validate": "ផ្ទៀងផ្ទាត់",
"wizardStep4Cost": "ថ្លៃចំណាយ និងបង្កើត",
"wizardProviderLabel": "អ្នកផ្តល់សេវា",
- "wizardEndpointLabel": "Endpoint",
+ "wizardEndpointLabel": "ចំណុចបញ្ចប់",
"wizardModelLabel": "ម៉ូដែល",
"wizardInputKindJsonl": "JSONL",
"wizardInputKindCsv": "CSV (យើងនឹងបម្លែង)",
@@ -901,7 +901,7 @@
"batchListRemoveCompleted": "ការលុបបានបញ្ចប់",
"batchListTableStatus": "ស្ថានភាព",
"batchListTableId": "លេខសម្គាល់",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "ចំណុចបញ្ចប់",
"batchListTableModel": "ម៉ូដែល",
"batchListTableProgress": "វឌ្ឍនភាព",
"batchListTableCreated": "បានបង្កើត",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "ផ្សព្វផ្សាយ mirror ids របស់ claude/<provider>/<model> នៅលើ /v1/models ដើម្បីឱ្យការស្វែងរកម៉ូដែលតាម gateway របស់ Claude Code រាយបញ្ជីម៉ូដែលដែលមិនមែនជា Claude។ ការព្រមាន៖ វានឹងបង្កើនធាតុក្នុងកាតាឡុកទ្វេដងសម្រាប់ client ទាំងអស់ នៅពេលបើកជាសកល។",
"featureFlagNoThinkingAliasEnabledDescription": "កុងតាក់មេសម្រាប់ gateway aliases របស់ no-think/<provider>/<model>។ បើក (លំនាំដើម)៖ /v1/models ផ្សព្វផ្សាយវ៉ារ្យ៉ង់មិនគិតសម្រាប់គ្រប់ម៉ូដែល Claude ដែលមានសមត្ថភាពគិត និងមានលក្ខណៈសម្បត្តិគ្រប់គ្រាន់ ហើយ no-think/ id ដែលបានផ្ញើក្នុងសំណើ នឹងត្រូវដោះស្រាយត្រឡប់ទៅម៉ូដែលពិត ដោយបិទការវែកញែក។ បិទ៖ គ្មានវ៉ារ្យ៉ង់ណាមួយត្រូវបានផ្សព្វផ្សាយទេ ហើយ no-think/ id ត្រូវបានចាត់ទុកដូចជា model id មិនស្គាល់ផ្សេងទៀត។ ការជ្រើសរើសបើក/បិទ ModelSpec.noThinkingAlias សម្រាប់ម៉ូដែលនីមួយៗ នៅតែអនុវត្ត ខណៈដែលវាត្រូវបានបើក។",
"featureFlagChatVirtualLanesEnabledDescription": "បើកផ្លូវចូលនិម្មិតដែលសម្របខ្លួនតាម tenant នីមួយៗ សម្រាប់ការបញ្ជូនទៅ provider (#9654)៖ ការកើនឡើងខ្លាំងភ្លាមៗរបស់ tenant មួយ នឹងលែងបណ្ដាលឱ្យ tenant មួយទៀតទទួល 503។ env var OMNIROUTE_CHAT_VIRTUAL_LANES មានអាទិភាពលើការកំណត់ជំនួសពី dashboard នេះ ហើយការផ្លាស់ប្ដូរនឹងមានប្រសិទ្ធភាពនៅពេលចាប់ផ្ដើម server ឡើងវិញ។",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "ទំព័រអ្នកផ្តល់សេវានៅលើផ្ទាំងគ្រប់គ្រង៖ បង្ហាញស្លាក ឥតគិតថ្លៃ តែលើសញ្ញាដែលអ្នកផ្តល់សេវាទទួលស្គាល់ប៉ុណ្ណោះ — លុបចោលការសន្និដ្ឋានតាមឈ្មោះបង្ហាញ វាលឥតគិតថ្លៃដែលមិនមែនជាតម្លៃប៊ូលីន និងបច្ច័យ :free លើអ្នកផ្តល់សេវាដែលបានចុះបញ្ជី ប៉ុន្តែមិនមានកម្រិតសេវាឥតគិតថ្លៃដែលបានចងក្រងជាឯកសារ។ ការបិទនឹងរក្សាច្បាប់ស្លាកចាស់ដដែល។",
+ "featureFlagProxySkipRecentlyFailedDescription": "ក្រុមប្រូកស៊ី និងការបង្វិលតាមគណនីនីមួយៗរបស់ opencode នឹងផ្អាកការប្រើប្រូកស៊ីដែលទើបតែបរាជ័យឡើងវិញ (ការស្ទង់ TCP ត្រូវបានបដិសេធ ឬទទួលបាន 429 តាមរយៈវា) ក្នុងរយៈពេលមួយសម្រាប់ដំណើរការនីមួយៗ ដែលកើនទ្វេដងរាល់ពេលកើតឡើងម្តងទៀត រហូតដល់កម្រិតអតិបរមា។ គ្មានស្ថានភាពប្រូកស៊ីត្រូវបានកត់ត្រាទេ ហើយនៅពេលបេក្ខភាពទាំងអស់ត្រូវបានទុកមួយឡែក ជម្រើសនៅតែមិនផ្លាស់ប្តូរ។ បិទតាមលំនាំដើម៖ លំដាប់ជ្រើសរើសគឺដូចគ្នាទាំងស្រុងនឹងការបង្វិលធម្មតា។",
+ "featureFlagProxyPoolEgressObservationDescription": "បង្ហាញនៅក្រោមក្រុមប្រូកស៊ីក្នុងផ្ទាំងគ្រប់គ្រងថា ក្នុងរយៈពេល 24 ម៉ោងចុងក្រោយ មាន IP ចេញក្រៅដែលបានសង្កេតឃើញចំនួនប៉ុន្មានបានបម្រើសមាជិករបស់ក្រុម មានការតភ្ជាប់ចំនួនប៉ុន្មានបានប្រើពួកវា និងចំនួនអតិបរមាដែលបានឃើញនៅពីក្រោយ IP តែមួយ។ សម្រាប់តែអានប៉ុណ្ណោះ គណនាពីកំណត់ហេតុប្រូកស៊ី និងមិនដែលប្រើសម្រាប់ការកំណត់ផ្លូវទេ។ បិទតាមលំនាំដើម៖ កម្មវិធីកែសម្រួលក្រុមមិនផ្លាស់ប្តូរ ហើយផ្លូវសង្កេតឆ្លើយតបជា null។",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "ក្នុងការត្រួតពិនិត្យសុខភាពប្រូកស៊ី អនុញ្ញាតឱ្យការស្ទង់ដែលគោលដៅបានបដិសេធ (401/403/429៖ ប្រូកស៊ីបានបញ្ជូនបន្ត ប៉ុន្តែគោលដៅបានបដិសេធ IP ចេញក្រៅនេះ) កំណត់ចំនួនបរាជ័យជាប់ៗគ្នារបស់ប្រូកស៊ីឡើងវិញ ដូចការស្ទង់ដែលត្រូវបានបម្រើ។ បិទតាមលំនាំដើម៖ ការបដិសេធនៅតែអព្យាក្រឹត និងរក្សាចំនួនបរាជ័យជាប់ៗគ្នា។ 5xx នៅតែមិនអាចសន្និដ្ឋានបានក្នុងករណីទាំងពីរ ហើយការបដិសេធមិនដែលលុប បិទ ឬធ្វើឱ្យប្រូកស៊ីសកម្មឡើងវិញទេ។",
"sidebar": {
"home": "ទំព័រដើម",
"dashboard": "ផ្ទាំងគ្រប់គ្រង",
@@ -1420,7 +1424,7 @@
"custom": {
"endpointUrl": "URL របស់ Endpoint",
"endpointUrlPlaceholder": "https://api.yourdomain.com/webhook",
- "secretKey": "Secret Key",
+ "secretKey": "សោសម្ងាត់",
"secretKeyPlaceholder": "បញ្ចូលសោសម្ងាត់ ឬទុកឱ្យទទេដើម្បីបង្កើតដោយស្វ័យប្រវត្តិ",
"secretKeyHint": "ប្រើសម្រាប់ចុះហត្ថលេខាលើបឋមកថារបស់ payload ដើម្បីផ្ទៀងផ្ទាត់អត្តសញ្ញាណ។"
},
@@ -1437,11 +1441,11 @@
"tutorial": "របៀបបង្កើត Slack webhook៖"
},
"telegram": {
- "botToken": "Telegram Bot Token",
+ "botToken": "ថូខិនបូត Telegram",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "ថូខិន HTTP API ដែលទទួលបានពី @BotFather នៅពេលបង្កើត bot របស់អ្នក។",
"chatId": "Telegram Chat ID / ឆានែល",
- "chatIdPlaceholder": "-100123456789 or @channelname",
+ "chatIdPlaceholder": "-100123456789 ឬ @channelname",
"chatIdHint": "លេខសម្គាល់ជាលេខតែមួយគត់ ឬឈ្មោះអ្នកប្រើប្រាស់សាធារណៈរបស់ការជជែក/ឆានែល។",
"tutorial": "របៀបកំណត់រចនាសម្ព័ន្ធ Telegram webhook៖"
}
@@ -1811,7 +1815,7 @@
"topologyLegendRecent": "ថ្មីៗ",
"topologyLegendError": "កំហុស",
"oauthLabel": "OAuth",
- "apiKeyLabel": "API Key",
+ "apiKeyLabel": "សោ API",
"requestsShort": "សំណើ {count}",
"providerModelsTitle": "{provider} - ម៉ូដែល",
"copiedModel": "បានចម្លង៖ {model}",
@@ -2203,7 +2207,7 @@
"model": "ម៉ូដែល",
"account": "គណនី",
"connection": "ការតភ្ជាប់",
- "combo": "Combo",
+ "combo": "បន្សំ",
"routeStep": "ជំហាន",
"tokens": "ថូខិន",
"notAvailable": "មិនមាន",
@@ -2713,7 +2717,7 @@
"ccOnboardingTitle": "settings.json សម្រាប់ការស្វែងរកម៉ូដែល gateway",
"ccOnboardingCopy": "ចម្លង",
"ccOnboardingCopied": "បានចម្លង",
- "ccOnboardingKeyPlaceholder": "'omniglyph 모드를 통해 독립 실행형으로도 실행됩니다. 이것은 미리보기이며 엔드투엔드 검증이 완료될 때까지 기본적으로 비활성화되어 있습니다.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "압축 프로필",
+ "profileDescription": "프로필은 하한선이 아니라 상한선입니다. 더 엄격한 프로필은 단계별 재정의로 완화할 수 없습니다. 이 코드베이스에서 측정한 결과, 코딩 안전 또는 균형 조정 프로필을 사용하면 아직 기록이 쌓이지 않은 세션에서는 아무것도 압축하지 않습니다. 두 프로필 모두 최소 문자 수 임계값을 높이고 시스템 프롬프트, 도구 스키마 및 도구 결과를 원본 상태로 유지하기 때문입니다.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "적극적(기본값)",
+ "description": "게시된 결과에서 측정에 사용한 정책입니다. 시스템 프롬프트, 도구 문서 및 밀도 높은 기록을 이미지화합니다."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "균형 조정",
+ "description": "실시간 상태를 원본 상태로 유지하고 최근 8개 턴을 보호하며, 그보다 오래된 종료된 기록만 축약합니다."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "코딩 안전",
+ "description": "권한 정보, 도구 스키마 및 실시간 도구 출력을 원본 상태로 유지하고 최근 12개 턴을 보호합니다. 세션에 기록이 쌓일 때까지는 아무것도 압축하지 않습니다."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "패스스루",
+ "description": "변환 없이 라우팅합니다. 엔진을 건너뛰고 요청을 변경하지 않은 채 전달합니다."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph 압축 프로필 선택",
"saved": "저장되었습니다.",
"saveFailed": "저장할 수 없습니다.",
"enableAria": "OmniGlyph 엔진 활성화",
@@ -8807,55 +8818,55 @@
"description": "필요에 따라 관리되는 로컬 엔진 — CLIProxyAPI, 9Router, Mux 및 Bifrost. 루프백에서만 액세스할 수 있습니다.",
"stateRunning": "실행 중",
"stateStopped": "중지됨",
- "stateStarting": "Starting",
- "stateStopping": "Stopping",
- "stateError": "Error",
- "stateNotInstalled": "Not installed",
- "stateUnknown": "Unknown",
- "port": "port {port}",
- "externalBadge": "Externally managed",
- "externalTitle": "External 9Router detected",
- "externalDescription": "OmniRoute found 9Router at {host}:{port}. Its lifecycle, logs, updates, and service key remain managed by the external installation.",
- "start": "Start",
- "starting": "Starting…",
- "stop": "Stop",
- "stopping": "Stopping…",
- "restart": "Restart",
- "restarting": "Restarting…",
- "update": "Update",
- "updating": "Updating…",
- "install": "Install",
- "installing": "Installing…",
- "autoStart": "Auto-start",
- "autoStartDescription": "Launch {name} automatically when OmniRoute starts",
- "apiKey": "API Key",
- "apiKeyDescription": "Key used by OmniRoute to authenticate with {name}",
- "keyRotated": "Key rotated — {name} restarted to apply the new key",
- "keyRotateFailed": "Failed to rotate key",
- "keyRevealFailed": "Failed to reveal key",
- "keyRevealEmpty": "Reveal failed: key not returned",
- "reveal": "Reveal",
- "revealing": "Revealing…",
- "hide": "Hide",
- "rotateKey": "Rotate key",
- "rotating": "Rotating…",
- "keyAutoHide": "Key will be hidden automatically in 30 seconds.",
- "revealTitle": "Reveal API Key",
- "revealConfirm": "Revealing the API key will be logged in the audit trail. Continue?",
- "cancel": "Cancel",
- "install9Router": "Install 9Router",
- "install9RouterDescription": "Downloads and installs 9Router via npm. Requires approximately 500 MB of disk space.",
- "version": "Version",
- "versionHint": "Enter “latest” or a specific version (for example, 1.2.3).",
- "servicePort": "Port",
+ "stateStarting": "시작 중",
+ "stateStopping": "중지 중",
+ "stateError": "오류",
+ "stateNotInstalled": "설치되지 않음",
+ "stateUnknown": "알 수 없음",
+ "port": "포트 {port}",
+ "externalBadge": "외부에서 관리됨",
+ "externalTitle": "외부 9Router 감지됨",
+ "externalDescription": "OmniRoute가 {host}:{port}에서 9Router를 찾았습니다. 수명 주기, 로그, 업데이트 및 서비스 키는 외부 설치에서 계속 관리됩니다.",
+ "start": "시작",
+ "starting": "시작 중…",
+ "stop": "중지",
+ "stopping": "중지 중…",
+ "restart": "다시 시작",
+ "restarting": "다시 시작 중…",
+ "update": "업데이트",
+ "updating": "업데이트 중…",
+ "install": "설치",
+ "installing": "설치 중…",
+ "autoStart": "자동 시작",
+ "autoStartDescription": "OmniRoute가 시작될 때 {name} 자동 실행",
+ "apiKey": "API 키",
+ "apiKeyDescription": "OmniRoute가 {name} 인증에 사용하는 키",
+ "keyRotated": "키가 교체되었습니다. 새 키를 적용하기 위해 {name}이(가) 다시 시작되었습니다.",
+ "keyRotateFailed": "키 교체 실패",
+ "keyRevealFailed": "키 표시 실패",
+ "keyRevealEmpty": "표시 실패: 키가 반환되지 않았습니다.",
+ "reveal": "표시",
+ "revealing": "표시 중…",
+ "hide": "숨기기",
+ "rotateKey": "키 교체",
+ "rotating": "키 교체 중…",
+ "keyAutoHide": "키는 30초 후 자동으로 숨겨집니다.",
+ "revealTitle": "API 키 표시",
+ "revealConfirm": "API 키를 표시하면 감사 로그에 기록됩니다. 계속하시겠습니까?",
+ "cancel": "취소",
+ "install9Router": "9Router 설치",
+ "install9RouterDescription": "npm을 통해 9Router를 다운로드하고 설치합니다. 약 500 MB의 디스크 공간이 필요합니다.",
+ "version": "버전",
+ "versionHint": "“latest” 또는 특정 버전(예: 1.2.3)을 입력하세요.",
+ "servicePort": "포트",
"servicePortHint": "OmniRoute와 9Router는 서로 다른 포트를 사용해야 합니다. 기본 9Router 포트는 20130입니다.",
- "installationFailed": "Installation failed (HTTP {status})",
+ "installationFailed": "설치 실패(HTTP {status})",
"installationSucceeded": "9Router가 성공적으로 설치되었습니다. 시작하는 중…",
- "networkInstallFailed": "Network error — could not reach the install endpoint",
+ "networkInstallFailed": "네트워크 오류 — 설치 엔드포인트에 연결할 수 없습니다",
"availableModels": "사용 가능한 모델",
"modelsLoading": "로드 중…",
"modelsDiscovered": "{count, plural, one {#개 모델 발견됨} other {#개 모델 발견됨}}",
- "modelsLoadFailed": "Failed to load models",
+ "modelsLoadFailed": "모델을 불러오지 못했습니다",
"refreshing": "새로 고침 중…",
"refreshNow": "지금 새로 고침",
"noModels": "모델을 찾을 수 없습니다. 실행 중인 서비스에서 동기화하려면 “지금 새로 고침”을 선택하세요.",
@@ -8867,7 +8878,7 @@
"providerExposureDescription": "9Router 모델을 trae.ai에 이 브라우저에서 로그인해야 합니다. 인증 페이지는 기존 세션만 확인하며 — 로그인할 수 없습니다. \"로그인 실패\"가 표시되면 \"solo.trae.ai 열기\"를 클릭하고 로그인한 후 다시 여기로 돌아오세요.",
"waitingForAuthorization": "trae.ai를 기다리는 중…",
"authorizeWithBrowser": "브라우저로 인증하기",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai 열기",
"orPasteManually": "또는 토큰을 수동으로 붙여넣기",
"manualInstructions": "solo.trae.ai에 로그인하고 DevTools → Network를 열고, 임의의 채팅 메시지를 보내고 Authorization: Cloud-IDE-JWT {tokenPlaceholder} 요청 헤더에서 JWT를 복사하세요. JWT 수명은 약 14일입니다. 선택적 신원 필드는 동일한 요청 본문의 common_params에서 가져옵니다.",
"accessTokenLabel": "액세스 토큰 (Cloud-IDE-JWT)",
@@ -14048,11 +14081,11 @@
"actionApprove": "계획 승인",
"actionCancel": "취소",
"actionSeeInGraph": "그래프에서 보기",
+ "actionRepeat": "반복",
"actionDone": "작업이 적용됨",
"actionFailed": "작업 실패: {error}",
"detailFailed": "세부정보를 불러오지 못했습니다: {error}",
"mirroredInA2A": "A2A에 미러링됨",
- "actionRepeat": "반복",
"repeatConfirm": "확인하려면 다시 클릭하세요",
"repeatDone": "새 실행이 생성되었습니다",
"repeatUnavailable": "원본 입력을 사용할 수 없습니다"
@@ -14066,57 +14099,57 @@
"networkError": "네트워크 오류 — 공급자 노출 설정을 업데이트할 수 없습니다."
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "후원자 혜택",
+ "subtitle": "Radar에서 제공하는 공식 할인, 크레딧, 체험판 및 검토된 파트너 혜택입니다.",
+ "backToRadar": "Radar로 돌아가기",
+ "loading": "혜택을 불러오는 중...",
+ "refresh": "혜택 새로고침",
+ "refreshing": "새로고침 중...",
+ "loadFailed": "혜택을 새로고칠 수 없습니다. 마지막으로 확인된 로컬 캐시를 유지합니다.",
+ "empty": "현재 이용 가능한 활성 혜택이 없습니다.",
+ "keyRequiredTitle": "서포터 키가 필요합니다",
+ "keyRequiredDescription": "혜택은 실시간 Radar 혜택입니다. Radar 화면에서 기존 서포터 키를 추가하거나, 기여자 상태를 인증하거나, 프로젝트를 후원하여 키를 받으세요.",
+ "contributorButton": "저는 기여자입니다",
+ "supporterButton": "프로젝트 후원하기",
+ "partnerBadge": "파트너",
+ "officialBadge": "공식",
+ "conditionsLabel": "조건:",
+ "validUntil": "{date}까지 유효",
+ "noExpiry": "공지된 만료일 없음",
+ "openOffer": "혜택 보기",
+ "trialDays": "{days, plural, one {#일} other {#일}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "Radar 인텔리전스",
+ "subtitle": "Radar 자체 ELO 순위 및 카탈로그 변동 정보입니다.",
+ "backToRadar": "Radar로 돌아가기",
+ "loading": "인텔리전스를 불러오는 중...",
+ "refresh": "인텔리전스 새로고침",
+ "syncing": "새로고침 중...",
+ "loadFailed": "인텔리전스를 새로고칠 수 없습니다. 마지막으로 확인된 로컬 캐시를 유지합니다.",
+ "empty": "아직 확인된 인텔리전스 스냅샷이 없습니다.",
+ "supporterBadge": "Radar 서포터",
+ "methodology": "방법론",
+ "eloMethod": "ELO, 초깃값 {initial}, K={factor}",
+ "freshness": "카탈로그 최신도",
+ "ageDays": "{days, plural, one {#일 경과} other {#일 경과}}",
+ "trend": "카탈로그 추세",
+ "modelDelta": "모델 {current}개, +{added} / -{removed}",
+ "ranking": "모델 순위",
+ "noRankings": "아직 확인된 비교 결과가 없습니다.",
+ "model": "모델",
+ "category": "카테고리",
+ "rating": "레이팅",
+ "matches": "매치",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "최신",
+ "aging": "노후화 중",
+ "stale": "오래됨"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "성장 중",
+ "stable": "안정적",
+ "shrinking": "축소 중"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "요청이 공급자 컨텍스트 창을 초과했습니다"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference는 OmniRoute의 오픈 소스 친구입니다",
+ "description": "하나의 OpenAI 호환 엔드포인트를 통해 수십 개의 최첨단 모델을 재판매하는 비용 우선순위 게이트웨이로, 각 요청을 이용 가능한 제공업체 중 가장 저렴한 곳으로 라우팅하며 정가를 초과하지 않습니다.",
+ "cta": "API 키 받기",
+ "partnerLinkNote": "파트너 링크",
+ "dismissAriaLabel": "닫기"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models 카탈로그에서 사고 수준 변형(예: -low, -medium, -high)이 생성되지 않도록 설정합니다."
}
diff --git a/src/i18n/messages/lt.json b/src/i18n/messages/lt.json
index fffffe2b89..d0a8f3b3b6 100644
--- a/src/i18n/messages/lt.json
+++ b/src/i18n/messages/lt.json
@@ -124,8 +124,8 @@
"crypto": "Kriptografija",
"hours": "Valandos",
"selfsigned": "Savarankiškai pasirašytas",
- "proxy_id": "Proxy ID",
- "proxyId": "Proxy ID",
+ "proxy_id": "Tarpinio serverio ID",
+ "proxyId": "Tarpinio serverio ID",
"connectionId": "Ryšio ID",
"resolveConnectionId": "Nustatyti ryšio ID",
"resolve_connection_id": "Nustatyti ryšio ID",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Skelbti claude/<provider>/<model> atspindžio ID per /v1/models, kad Claude Code šliuzo modelių aptikimas rodytų ir ne-Claude modelius. Įspėjimas: įjungus visuotinai, katalogo įrašų skaičius padvigubėja visiems klientams.",
"featureFlagNoThinkingAliasEnabledDescription": "Pagrindinis no-think/<provider>/<model> šliuzo aliasų jungiklis. Įjungta (numatyta): /v1/models skelbia „no-thinking“ variantą kiekvienam tinkamam mąstymo galimybę turinčiam Claude modeliui, o užklausoje pateiktas no-think/ ID nukreipiamas atgal į tikrąjį modelį su slopintu samprotavimu. Išjungta: variantai nėra skelbiami, o no-think/ ID laikomas kaip bet koks kitas nežinomas modelio ID. Kol tai įjungta, vis tiek taikomas kiekvieno modelio ModelSpec.noThinkingAlias sutikimo/atsisakymo nustatymas.",
"featureFlagChatVirtualLanesEnabledDescription": "Įjungti kiekvienam nuomotojui pritaikomas adaptyvias virtualias priėmimo juostas teikėjų siuntimui (#9654): vieno nuomotojo srautas nebesukelia 503 klaidos kitam. Aplinkos kintamasis OMNIROUTE_CHAT_VIRTUAL_LANES turi pirmenybę prieš šį skydelio nustatymą; pakeitimai įsigalioja po serverio paleidimo iš naujo.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Teikėjų puslapiuose valdymo skydelyje ženklelį „Nemokama“ rodyti tik pagal tuos požymius, kuriuos teikėjas palaiko — nebenaudojama rodomo pavadinimo euristika, ne loginio tipo nemokamumo laukai ir :free priesagos registruotiems teikėjams, neturintiems dokumentuoto nemokamo plano. Išjungus taikoma ankstesnė ženklelio taisyklė.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Tarpinių serverių telkiniai ir kiekvienai paskyrai taikoma opencode rotacija pakartotinai nebenaudoja ką tik nesuveikusio tarpinio serverio (atmestas TCP patikrinimas arba per jį gautas 429 atsakymas) tam procesui nustatytą laikotarpį, kuris po kiekvieno pasikartojimo padvigubėja iki nustatytos ribos. Tarpinio serverio būsena neįrašoma; atidėjus visus kandidatus, pasirinkimas nesikeičia. Pagal numatytąsias nuostatas išjungta: pasirinkimo tvarka yra lygiai tokia pati kaip įprastos rotacijos.",
+ "featureFlagProxyPoolEgressObservationDescription": "Ataskaitų srityje po tarpinių serverių telkiniu rodyti, kiek stebėtų išeinančių IP adresų per pastarąsias 24 val. aptarnavo jo narius, kiek ryšių juos naudojo ir didžiausią už vieno IP adreso matytą skaičių. Tik skaitymui, apskaičiuojama pagal tarpinių serverių žurnalą ir niekada nenaudojama maršrutizavimui. Pagal numatytąsias nuostatas išjungta: telkinio redagavimo priemonė nesikeičia, o stebėjimo maršrutas grąžina null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Atliekant tarpinių serverių būklės patikrą leisti paskirties vietos atmestam patikrinimui (401/403/429: tarpinis serveris persiuntė užklausą, o paskirties vieta atmetė šį išeinantį IP adresą) iš naujo nustatyti tarpinio serverio nuoseklių nesėkmių seką, kaip ir aptarnauto patikrinimo atveju. Pagal numatytąsias nuostatas išjungta: atmetimas lieka neutralus ir išsaugo seką. 5xx atsakymas abiem atvejais lieka neapibrėžtas, o atmetimas niekada nepašalina, neišjungia ir iš naujo nesuaktyvina tarpinio serverio.",
"sidebar": {
"home": "Pradžia",
"dashboard": "Suvestinė",
@@ -1314,7 +1318,7 @@
"noResults": "Rezultatų nerasta"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Webhook’ai",
"description": "Konfigūruoti HTTP grįžtamuosius skambučius sistemos įvykiams.",
"configuredWebhooks": "Sukonfigūruoti Webhooks",
"configuredWebhooksDesc": "Tvarkyti pristatymo galutinius punktus, prenumeruotus įvykius, būseną ir testinius siuntimus.",
@@ -1425,13 +1429,13 @@
"secretKeyHint": "Naudojamas užklausos antraštei pasirašyti autentifikacijai."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "„Discord“ webhook’o URL",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "Webhook URL, nukopijuotas iš jūsų Discord kanalo integracijos nustatymų.",
"tutorial": "Kaip sukurti Discord webhook:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "„Slack“ webhook’o URL",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "Webhook URL, nukopijuotas iš jūsų Slack Incoming Webhooks integracijos.",
"tutorial": "Kaip sukurti Slack webhook:"
@@ -1721,7 +1725,7 @@
"costs": "Sąnaudos",
"health": "Būsena",
"runtime": "Vykdymo laikas",
- "webhooks": "Webhooks",
+ "webhooks": "Webhook’ai",
"home": "Pradžia",
"activity": "Veikla",
"agentSkills": "AgentSkills",
@@ -1959,11 +1963,11 @@
"rangeCancel": "Atšaukti",
"rangeApply": "Taikyti",
"rangeErrorInvalid": "Pradžia turi būti anksčiau nei pabaiga",
- "period1D": "1D",
- "period7D": "7D",
- "period30D": "30D",
- "period90D": "90D",
- "periodYTD": "YTD",
+ "period1D": "1 d.",
+ "period7D": "7 d.",
+ "period30D": "30 d.",
+ "period90D": "90 d.",
+ "periodYTD": "Nuo metų pradžios",
"periodAll": "Visi",
"totalTokens": "Iš viso žetonų",
"inputTokens": "Įvesties žetonai",
@@ -2206,7 +2210,7 @@
"combo": "Kombinacija",
"routeStep": "Žingsnis",
"tokens": "Žetonai",
- "notAvailable": "n/a",
+ "notAvailable": "netaikoma",
"routeTokenCounts": "{input} įvestis · {output} išvestis",
"routeEvidence": "Įrodymai",
"routeFactors": "Maršruto parinkimo veiksniai",
@@ -4014,9 +4018,9 @@
"messagesApiDesc": "Natyvus Anthropic Messages API formatas Claude suderintiems tiekėjams",
"imageEdits": "Vaizdų redagavimas",
"imageEditsDesc": "Redaguokite ir keiskite esamus vaizdus naudodami AI (inpainting, outpainting, variacijos)",
- "batchApi": "Batch API",
+ "batchApi": "Paketinis API",
"batchApiDesc": "Apdorokite dideles užklausų partijas asinchroniškai (suderinama su OpenAI)",
- "filesApi": "Files API",
+ "filesApi": "Failų API",
"filesApiDesc": "Įkelkite ir tvarkykite failus partiniam apdorojimui",
"videoGeneration": "Vaizdo generavimas",
"videoDesc": "Generuokite vaizdo įrašus naudodami AI modelius, tokius kaip ComfyUI ir Stable Video Diffusion.",
@@ -4135,7 +4139,7 @@
"badgeInternalTooltip": "Tai vidinis sistemos galutinis punktas",
"tierAll": "Visi",
"tierAuth": "Autentifikuota",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Grįžtamasis ryšys",
"tierAlwaysProtected": "Visada saugoma",
"tierPublic": "Vieša",
"hideInternal": "Slėpti vidinius",
@@ -4608,7 +4612,7 @@
"popularDefaultsLabel": "Pagal numatytuosius nustatymus populiaru pasirinktam tiekėjui:",
"onMode": "ĮJ.",
"offMode": "IŠJ.",
- "autoMode": "AUTO",
+ "autoMode": "AUTOMATIŠKAI",
"installSkillButton": "Įdiegti įgūdį",
"installSkillModalTitle": "Įdiegti įgūdį",
"installJsonPlaceholder": "Įklijuokite įgūdžio manifesto JSON čia...",
@@ -5797,10 +5801,10 @@
"ccCompatibleSummarizeThinkingDescription": "Prideda `display: \"summarized\"` prie CC Compatible mąstymo užklausų, kad palaikomi Claude modeliai srautu perduotų matomus mąstymo pokyčius.",
"ccCompatibleSummarizeThinkingLabel": "Įjungti apibendrinto mąstymo rodymą",
"ccCompatibleDetailsTitle": "Išsami su CC suderinamo perdavimo serverio informacija",
- "ccCompatibleLabel": "CC Compatible",
+ "ccCompatibleLabel": "Suderinama su CC",
"ccCompatibleModelsDescription": "Su CC suderinami perdavimo serveriai nepateikia modelių sąrašo. Pridėkite Claude modelių ID, kuriuos priima jūsų perdavimo serveris.",
"ccCompatibleNameHint": "Rodomas šio tik Claude Code skirto perdavimo serverio pavadinimas.",
- "ccCompatibleNamePlaceholder": "CC Relay Production",
+ "ccCompatibleNamePlaceholder": "CC Relay gamybinė aplinka",
"ccCompatiblePrefixHint": "Naudojamas modelių alternatyviuose pavadinimuose, pvz., prefix/model-id.",
"ccCompatiblePrefixPlaceholder": "cc",
"ccCompatibleValidationHint": "Naudokite šį paslaugų teikėją tik perdavimo serveriams, kurie skirti išimtinai Claude Code klientams. OmniRoute perrašo visas gaunamas užklausas į su Claude Code suderinamą perdavimo formatą, kad tie serveriai jas priimtų. Jei norite naudoti tik Claude Code CLI arba nesate tikri, ką reiškia šis perdavimo serverio tipas, vietoje jo naudokite įprastą su Anthropic suderinamą paslaugų teikėją.",
@@ -6363,15 +6367,15 @@
"checkWebToken": "Patikrinti prieigos raktą",
"huggingchatLabel": "HuggingChat (nemokama)",
"huggingchatDesc": "Nemokamas LLM pokalbis per huggingface.co/chat",
- "poeWebLabel": "Poe Web",
+ "poeWebLabel": "Poe žiniatinklis",
"poeWebDesc": "Kelių modelių pokalbis per poe.com",
- "veniceWebLabel": "Venice Web",
+ "veniceWebLabel": "Venice žiniatinklis",
"veniceWebDesc": "Į privatumą orientuotas DI pokalbis",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "v0 Vercel žiniatinklis",
"v0VercelWebDesc": "DI kodo generavimas per v0.dev",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Kimi žiniatinklis",
"kimiWebDesc": "Moonshot AI pokalbis vartotojams per www.kimi.com (tarptautinė versija, Connect-RPC API)",
- "doubaoWebLabel": "Dola Web",
+ "doubaoWebLabel": "Dola žiniatinklis",
"doubaoWebDesc": "ByteDance DI pokalbis per dola.com",
"overrideBaseUrlAdvanced": "Išplėstiniai nustatymai: pakeisti bazinį URL",
"overrideBaseUrlHint": "Išplėstiniai nustatymai: nukreipkite šį integruotą teikėją į pasirinktinį galinį tašką. Norėdami naudoti numatytąjį, palikite lauką tuščią.",
@@ -7376,7 +7380,7 @@
"customPricingNote": "Galite pakeisti numatytuosius konkrečių modelių įkainius. Pasirinktiniai pakeitimai turi pirmenybę prieš automatiškai aptiktus įkainius.",
"editPricing": "Redaguoti įkainius",
"viewFullDetails": "Peržiūrėti visą informaciją",
- "themeCoral": "Coral",
+ "themeCoral": "Koralų",
"adaptiveVolumeRouting": "Adaptyvus maršruto parinkimas pagal apimtį",
"adaptiveVolumeRoutingDesc": "Dinamiškai keiskite ryšių mastą pagal naudingosios apkrovos apimtį ir pralaidumo apkrovą.",
"lkgpToggleTitle": "Paskutinis sėkmingai naudotas teikėjas (LKGP)",
@@ -7949,11 +7953,11 @@
"cliproxyapiImportAuthButton": "Importuoti paskyras",
"payloadRulesTitle": "Duomenų taisyklės",
"payloadRulesDesc": "Konfigūruokite užklausos duomenų pakeitimus pagal modelį ir protokolą. Pakeitimai išsaugomi nustatymuose ir iš karto po išsaugojimo dinamiškai įkeliami į vykdymo aplinką.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "numatytasis",
"payloadRuleDefaultDesc": "Parametrai taikomi tik tada, kai siunčiamuose duomenyse nėra tikslinio kelio.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "perrašymas",
"payloadRuleOverrideDesc": "Priverstinai nustato duomenų reikšmes ir pakeičia viską, kas jau yra tame kelyje.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "filtras",
"payloadRuleFilterDesc": "Pašalina užblokuotus parametrus iš duomenų prieš išsiunčiant užklausą išorinei paslaugai.",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "Veikia kaip default, tačiau, kai įmanoma, tekstinės reikšmės pirmiausia analizuojamos kaip JSON. Išsaugant taip pat priimamas senasis įvesties alternatyvusis pavadinimas default-raw.",
@@ -9468,7 +9472,7 @@
"tierPro": "Pro",
"tierPlus": "Plus",
"tierFree": "Nemokamas",
- "tierLite": "Lite",
+ "tierLite": "Paprastoji",
"tierUnknown": "Nežinoma",
"statTotal": "Iš viso",
"statCritical": "Kritinė būklė",
@@ -10779,7 +10783,7 @@
"saveConnection": "Išsaugoti ryšį",
"gheDescription": "Įveskite savo GitHub Enterprise egzemplioriaus pagrindinį URL (pvz., https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise URL adresas",
"gheUrlRequired": "GitHub Enterprise URL yra privalomas",
"gitlabDuoSetupTitle": "GitLab Duo OAuth sąranka",
"gitlabDuoSetupMessage": "GitLab Duo OAuth nesukonfigūruotas. Užregistruokite OAuth programą adresu {applicationsUrl}, nurodydami peradresavimo URI {redirectUri} ir aprėptis „{scopes}“, tada nustatykite {clientIdEnv} (ir pasirinktinai {clientSecretEnv}) bei paleiskite iš naujo.",
@@ -10964,6 +10968,9 @@
"strategyLatency": "Optimizuota pagal delsą",
"poolMembersLabel": "Telkinio nariai ({count})",
"poolNoMembers": "Šiame telkinyje dar nėra tarpinių serverių.",
+ "poolEgressObservation": "Panaudota {exits, plural, one {# išėjimo IP} few {# išėjimo IP} other {# išėjimo IP}}, kuriuos naudojo {connections, plural, one {# ryšys} few {# ryšiai} other {# ryšių}} · iki {max} viename išėjimo IP · per pastarąsias {hours} val.",
+ "poolEgressObservationEmpty": "Per pastarąsias {hours} val. srauto nepastebėta",
+ "poolEgressObservationHint": "Apskaičiuota pagal įgaliotojo serverio žurnalą per nurodytą laikotarpį: atskiri išėjimo IP, pastebėti šio telkinio nariams, ir juos naudoję OmniRoute ryšiai. „Viename išėjimo IP“ reiškia per visą laikotarpį, o ne tuo pačiu metu. Atskiro IP 429 blokavimas pristabdo tik tos pačios teikėjo grupės ryšius.",
"poolRemove": "Pašalinti",
"poolRemoveFailed": "Nepavyko pašalinti tarpinio serverio iš telkinio",
"poolAddLabel": "Pridėti tarpinį serverį",
@@ -11282,7 +11289,7 @@
"refresh": "Atnaujinti",
"columnsLabel": "Stulpeliai",
"cacheSem": "SEM",
- "cacheUp": "UP",
+ "cacheUp": "VEIKIA",
"semantic": "Semantinis",
"upstream": "Pirminis šaltinis",
"semanticCacheHit": "Semantinės podėlio atitiktis (pateikta per OmniRoute)",
@@ -11671,7 +11678,7 @@
"endpointsBaseUrl": "Bazinis URL",
"endpointsCollapse": "Suskleisti",
"endpointsExpand": "Išskleisti",
- "endpointsAnthropicNote": "Anthropic-native",
+ "endpointsAnthropicNote": "Anthropic savasis",
"endpointsResponsesNote": "OpenAI Responses — codex/github",
"endpointsWsNote": "WebSocket — tik codex",
"betaText": "Quota Share veikia, tačiau gali pasitaikyti klaidų. Radote klaidą? Praneškite apie ją.",
@@ -12516,7 +12523,7 @@
"storage": {
"label": "Saugykla",
"agent": "Dinaminis katalogas (/api/agent-skills) → SKILL.md GitHub platformoje",
- "omni": "SQLite (SkillsMP / skills.sh / local)"
+ "omni": "SQLite (SkillsMP / skills.sh / vietinis)"
},
"tagline": {
"label": "Šūkis",
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Leisti atkuriant srautą dar kartą paprašyti atsakymo ir jį sujungti, net jei klientas jau gavo dalį baitų."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Užtikrinkite saugų įrankio iškvietimą tęsiant srautą nuo vidurio: niekada neatnaujinkite nutraukto srauto po to, kai buvo išsiųstas įrankio iškvietimas (jis vis dar vykdomas arba jau baigtas), ir sustokite po vieno tuščio tęsinio, užuot išnaudoję visą pakartotinių bandymų limitą."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Vieną kartą perjungti į giminingą ryšį, kai srautas užsidaro neišsiuntęs jokio naudingo kadro ir ribotas pakartotinis bandymas tame pačiame ryšyje išnaudotas. Jei tinkamo giminingo ryšio nėra, grąžinama pradinė early-EOF klaida. Išjungta: early-EOF po pakartotinio bandymo lieka galutinis."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Į /v1/models atsakymus įtraukti patogiam rodymui skirtus pavadinimų laukus. Išjunkite tai klientams, kurie priima tik modelių ID."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Serverio valdomas įrankių ciklas",
"description": "Tęsti serverio valdomus nesrautinius įrankių iškvietimus, kol modelis pateiks klientui tinkamą atsakymą."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After kilmė",
+ "description": "Gavę agreguotus 429/503 nepasiekiamumo atsakymus, nenurodykite Retry-After, kai konkretus būsimo pakartotinio bandymo laikas nežinomas, užuot siuntę dirbtinę 1 s reikšmę; pridėkite error.retry_after_provenance ir nuskaitykite tekstines pakartotinio bandymo užuominas kombinacijos ištuštinimo keliuose."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Apsaugoto prioriteto infrastruktūros stabdymai pateikiami kaip 502",
+ "description": "Pateikite 502, o ne 503, kai prioritetinis tik kvotos atsarginiam perėjimui skirtas tikslas sustabdo kombinaciją dėl priežasties, kuri akivaizdžiai nesusijusi su kvota: suveikusio teikėjo grandinės pertraukiklio arba prognozuojamo delsos praleidimo."
}
}
},
@@ -13098,7 +13119,7 @@
"comboHealth": "Derinio būklė",
"callLogs": "Iškvietimų žurnalai",
"costs": "Išlaidos",
- "playground": "Playground",
+ "playground": "Bandomoji aplinka",
"nestedCombo": "Įdėtasis derinys",
"modelTarget": "Tikslinis modelis",
"weight": "{value}% svoris",
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Atmesti užklausas prieš jas perduodant, kai tikslinis modelis neturi reikiamų galimybių (vaizdų apdorojimo, įrankių, struktūrizuotos išvesties, konteksto lango). Tai apsaugo tiesiogines vienam teikėjui skirtas užklausas, kurios apeina derinių lygmens suderinamumo filtrą.",
"featureFlagDisableContextWindowChecksDescription": "Tiesioginėms vieno modelio užklausoms praleisti OmniRoute vietinę konteksto lango ir didžiausio įvesties žetonų skaičiaus patikrą. Išoriniai teikėjai vis tiek taiko savo faktinius apribojimus. Raginimų glaudinimas ir išvesties žetonų apribojimai lieka aktyvūs.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Paieškos statistikoje ir naujausiose paieškose skaičiuojami tik tie teikėjai, kurie vis dar turi aktyvų ryšį (teikėjai, kuriems nereikia rakto, pvz., duckduckgo-free, skaičiuojami visada). Pasirinkus „Išjungta“, išsaugomos visos išlaikytos paieškos eilutės su teikėjo ID.",
"publicSystem": {
"notFound": {
"title": "Puslapis nerastas",
@@ -14029,9 +14051,9 @@
"filterSources": "Šaltiniai",
"filterProviders": "Teikėjai",
"clearFilters": "Išvalyti filtrus",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Debesijos agentas",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "Dirigentas",
"sourceStale": "Neaktyvu nuo {since}",
"sourceOffline": "Neprisijungęs",
"sourceCollapse": "Suskleisti",
diff --git a/src/i18n/messages/lv.json b/src/i18n/messages/lv.json
index 4e4c7ea39b..5818469dde 100644
--- a/src/i18n/messages/lv.json
+++ b/src/i18n/messages/lv.json
@@ -702,7 +702,7 @@
"flaggedAnomalies": "Atzīmētās anomālijas",
"noAnomaliesDetected": "Anomālijas nav konstatētas",
"apiKey": "API atslēga",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 h)",
"zScore": "Z-rādītājs",
"suspicious": "Aizdomīgs",
"tokensCommunityServers": "Kopienas serveri",
@@ -903,7 +903,7 @@
"batchListTableId": "ID",
"batchListTableEndpoint": "Galapunkts",
"batchListTableModel": "Modelis",
- "batchListTableProgress": "Progress",
+ "batchListTableProgress": "Norise",
"batchListTableCreated": "Izveidots",
"batchListTableExpires": "Derīgs līdz",
"batchListLoading": "Notiek ielāde…",
@@ -964,7 +964,7 @@
"batchRelativeTimeIn": "pēc {value}",
"batchRelativeTimeAgo": "pirms {value}",
"batchDetailsTitle": "Partijas detaļas",
- "batchProgress": "Progress",
+ "batchProgress": "Norise",
"batchCompletedCount": "{count} pabeigti",
"batchFailedCount": "{count} neizdevās",
"batchPendingCount": "{count} gaida",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Izziņot claude/<provider>/<model> spoguļa ID vietnē /v1/models, lai Claude Code vārtejas modeļu atrašana uzrādītu ne-Claude modeļus. Brīdinājums: kad iespējots globāli, dublējas katalogā ieraksti visiem klientiem.",
"featureFlagNoThinkingAliasEnabledDescription": "Galvenais slēdzis no-think/<provider><model> vārtejas aizstājvārdiem. Iesl. (pēc noklusējuma): /v1/models izziņo bezdomāšanas variantu katram atbilstošajam domāšanas spējīgajam Claude modelim, un no-think/ ID, kas nosūtīts pieprasījumā, tiek atrisināts atpakaļ uz reālo modeli ar apspiestu argumentāciju. Izsl.: nekādi varianti netiek izziņoti, un no-think/ ID tiek uzskatīts par jebkuru citu nezināmu modeļa ID. Modeļa ModelSpec.noThinkingAlias iekļaušanās/izslēgšanās iespēja joprojām darbojas, kamēr šis ir iespējots.",
"featureFlagChatVirtualLanesEnabledDescription": "Iespējot katra nomnieka adaptīvas virtuālās uzņemšanas joslas nodrošinātāju izsūtīšanai (#9654): viena nomnieka slodzes lēciens vairs neizraisa 503 kļūdu citam. OMNIROUTE_CHAT_VIRTUAL_LANES vides mainīgais ir prioritārāks par šo paneļa iestatījumu; izmaiņas stājas spēkā pēc servera pārstartēšanas.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Pakalpojumu sniedzēju lapas informācijas panelī: rādīt emblēmu “Bezmaksas” tikai tad, ja to apliecina pakalpojumu sniedzēja norādītā informācija — netiek izmantota parādāmā nosaukuma heiristika, brīvformas lauki par bezmaksas pieejamību un reģistrētu pakalpojumu sniedzēju sufiksi :free, ja tiem nav dokumentēta bezmaksas līmeņa. Izslēdzot šo opciju, tiek saglabāts iepriekšējais emblēmas rādīšanas noteikums.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Starpniekserveru pūli un opencode konta līmeņa rotācija uz katru procesu uz noteiktu laiku pārtrauc atkārtoti izmantot starpniekserveri, kas tikko cieta kļūmi (noraidīta TCP pārbaude vai caur to saņemts 429); šis laiks pēc katras atkārtotas kļūmes dubultojas līdz noteiktajam maksimumam. Starpniekservera statuss netiek ierakstīts; ja visi kandidāti ir atlikti malā, izvēle paliek nemainīga. Pēc noklusējuma izslēgts: atlases secība precīzi atbilst parastajai rotācijai.",
+ "featureFlagProxyPoolEgressObservationDescription": "Informācijas panelī zem starpniekserveru pūla rādīt, cik novēroto izejošo IP adrešu pēdējo 24 h laikā apkalpoja tā dalībniekus, cik savienojumu tās izmantoja un lielāko aiz vienas IP adreses novēroto skaitu. Tikai lasāms, aprēķināts no starpniekserveru žurnāla un nekad netiek izmantots maršrutēšanai. Pēc noklusējuma izslēgts: pūla redaktors paliek nemainīgs, un novērojumu maršruts atgriež null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Starpniekserveru darbspējas pārbaudē ļaut mērķa noraidītai pārbaudei (401/403/429: starpniekserveris pārsūtīja pieprasījumu, bet galamērķis noraidīja šo izejošo IP adresi) atiestatīt starpniekservera secīgo kļūmju sēriju tāpat kā apkalpotai pārbaudei. Pēc noklusējuma izslēgts: noraidījums paliek neitrāls un saglabā kļūmju sēriju. 5xx jebkurā gadījumā paliek nepārliecinošs, un noraidījums nekad neizraisa starpniekservera noņemšanu, atspējošanu vai atkārtotu aktivizēšanu.",
"sidebar": {
"home": "Sākums",
"dashboard": "Panelis",
@@ -1271,7 +1275,7 @@
"systemGroup": "Sistēma",
"costsOverview": "Pārskats",
"costsOverviewSubtitle": "Konsolidētā izmaksu analīze",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Aģentu tilts",
"agentBridgeSubtitle": "Pārtvert IDE aģenta trafiku",
"trafficInspector": "Trafika inspektors",
"trafficInspectorSubtitle": "Pārbaudīt pieprasījumu un atbilžu trafiku no jūsu lietotnēm",
@@ -1314,7 +1318,7 @@
"noResults": "Nav rezultātu"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Tīmekļa aizķeres",
"description": "Konfigurēt HTTP atzvanus sistēmas notikumiem.",
"configuredWebhooks": "Konfigurētie Webhooks",
"configuredWebhooksDesc": "Pārvaldīt piegādes galapunktus, abonētos notikumus, statusu un testa sūtījumus.",
@@ -1425,13 +1429,13 @@
"secretKeyHint": "Izmanto, lai parakstītu datu paketes galveni autentifikācijai."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "Discord tīmekļa aizķeres URL",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "Webhook URL, kas nokopēts no jūsu Discord kanāla integrāciju iestatījumiem.",
"tutorial": "Kā izveidot Discord webhook:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "Slack tīmekļa aizķeres URL",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "Webhook URL, kas nokopēts no jūsu Slack Incoming Webhooks integrācijas.",
"tutorial": "Kā izveidot Slack webhook:"
@@ -1959,10 +1963,10 @@
"rangeCancel": "Atcelt",
"rangeApply": "Piemērot",
"rangeErrorInvalid": "Sākumam jābūt pirms beigām",
- "period1D": "1D",
- "period7D": "7D",
- "period30D": "30D",
- "period90D": "90D",
+ "period1D": "1 d.",
+ "period7D": "7 d.",
+ "period30D": "30 d.",
+ "period90D": "90 d.",
"periodYTD": "GS",
"periodAll": "Visi",
"totalTokens": "Žetonu skaits kopā",
@@ -2206,7 +2210,7 @@
"combo": "Kombinācija",
"routeStep": "Solis",
"tokens": "Žetoni",
- "notAvailable": "n/a",
+ "notAvailable": "nav pieejams",
"routeTokenCounts": "{input} iekšā · {output} ārā",
"routeEvidence": "Pierādījumi",
"routeFactors": "Maršruta faktori",
@@ -2682,7 +2686,7 @@
"noActiveProviderDescription": "Nav aktīva meklēšanas pakalpojumu sniedzēja. Konfigurējiet vienu sadaļā Pakalpojumu sniedzēji.",
"configureProviders": "Konfigurēt pakalpojumu sniedzējus",
"compareQuery": "Salīdzināmais pieprasījums",
- "compareQueryPlaceholder": "artificial intelligence trends 2026",
+ "compareQueryPlaceholder": "mākslīgā intelekta tendences 2026",
"selectedProviders": "Pakalpojumu sniedzēji ({count} atlasīti):",
"selectAll": "Atlasīt visus",
"clear": "Notīrīt",
@@ -4014,7 +4018,7 @@
"messagesApiDesc": "Nativais Anthropic Messages API formāts nodrošinātājiem, kas saderīgi ar Claude",
"imageEdits": "Attēlu redaktors",
"imageEditsDesc": "Rediģējiet un modificējiet esošos attēlus ar AI (inpainting, outpainting, variācijas)",
- "batchApi": "Batch API",
+ "batchApi": "Pakešu API",
"batchApiDesc": "Apstrādājiet lielas pieprasījumu partijas asinhroni (saderīgs ar OpenAI)",
"filesApi": "Failu API",
"filesApiDesc": "Augšupielādējiet un pārvaldiet failus partiju apstrādei",
@@ -4135,7 +4139,7 @@
"badgeInternalTooltip": "Šis ir iekšējs sistēmas galapunkts",
"tierAll": "Visi",
"tierAuth": "Autentificēts",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Atgriezeniskā cilpa",
"tierAlwaysProtected": "Vienmēr aizsargāts",
"tierPublic": "Publisks",
"hideInternal": "Slēpt iekšējos",
@@ -4608,7 +4612,7 @@
"popularDefaultsLabel": "Noklusējuma populārs izvēlētajam nodrošinātājam:",
"onMode": "IESLĒGTS",
"offMode": "IZSLĒGTS",
- "autoMode": "AUTO",
+ "autoMode": "AUTOMĀTISKI",
"installSkillButton": "Instalēt prasmi",
"installSkillModalTitle": "Instalēt prasmi",
"installJsonPlaceholder": "Ielīmējiet prasmes manifesta JSON šeit...",
@@ -5304,7 +5308,7 @@
"openaiCompatibleDetails": "OpenAI saderības detaļas",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
+ "embeddings": "Iegultnes",
"audioTranscriptions": "Audio Transkripcijas",
"audioSpeech": "Audio Runa",
"imagesGenerations": "Attēlu Generācijas",
@@ -5810,13 +5814,13 @@
"codexFastServiceTierDescription": "Izmantot prioritāro pakalpojuma līmeni Codex pieprasījumiem, kad tas ir pieejams.",
"codexFastServiceTierLabel": "Codex ātrais pakalpojuma līmenis",
"codexWeeklyToggleTitle": "Izsekot Codex nedēļas kvotu šim savienojumam",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
+ "compatUpstreamHeaderNamePlaceholder": "Saderīgā augšupstraumes galvenes nosaukuma vietturis",
+ "compatUpstreamHeaderValuePlaceholder": "Saderīgās augšupstraumes galvenes vērtības vietturis",
"compatible": "Saderīgs",
"configuredCount": "Konfigurēto skaits",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
+ "consoleApiKeyOracleHint": "Konsoles API atslēgas Oracle padoms",
+ "consoleApiKeyOracleLabel": "Konsoles API atslēgas Oracle etiķete",
+ "consoleApiKeyOraclePlaceholder": "Konsoles API atslēgas Oracle vietturis",
"newApiUserIdLabel": "New-API lietotāja ID",
"newApiUserIdPlaceholder": "piem., 12345",
"newApiUserIdHint": "AgentRouter New-Api-User galvenes vērtība, ko izmanto kopā ar konsoles API atslēgu, lai iegūtu kvotas atlikumu.",
@@ -5829,7 +5833,7 @@
"featureFlagNewApiAggregatorBalanceDescription": "Iespējot bilances noteikšanu New-API / One-API / Sub2API apkopotāju saderīgiem mezgliem",
"cpaModeDisabledTitle": "CLIProxyAPI saderības režīms ir izslēgts",
"cpaModeEnabledTitle": "CLIProxyAPI saderības režīms ir iespējots",
- "customUserAgentHint": "Custom User Agent Hint",
+ "customUserAgentHint": "Pielāgotā lietotāja aģenta padoms",
"customUserAgentLabel": "Pielāgota lietotāja aģenta etiķete",
"databricksBaseUrlHint": "Databricks bāzes URL norāde",
"defaultThinkingStrengthHint": "Tiek izmantots, ja pieprasījumā nav norādīta domāšanas piepūle.",
@@ -6526,7 +6530,7 @@
"routingSummarizeDropParagraphContains": "izmest rindkopas, kas satur: {items}",
"routingSummarizeDropParagraphStartsWith": "izmest rindkopas, kas sākas ar: {items}",
"routingSummarizeReplaceText": "aizvietot \"{match}\" → \"{replacement}\"",
- "routingSummarizeReplaceRegex": "regex /{pattern}/{flags} → \"{replacement}\"",
+ "routingSummarizeReplaceRegex": "regulārā izteiksme /{pattern}/{flags} → \"{replacement}\"",
"routingSummarizeDropBlockContains": "izmest blokus, kas satur: {items}",
"routingSummarizePrependSystemBlock": "pievienot bloku sākumā: \"{text}\"",
"routingSummarizeAppendSystemBlock": "pievienot bloku beigās: \"{text}\"",
@@ -7052,7 +7056,7 @@
"routingAdvancedGuideTitle": "Papildu maršrutēšanas norādījumi",
"routingAdvancedGuideHint1": "Šī stratēģija ir sinhronizēta gan ar jaunajiem kombinācijas noklusējumiem, gan globālo konta rezerves maršrutēšanu.",
"routingAdvancedGuideHint2": "Izmantojiet Fill First prognozējamai kontu prioritātei, Round Robin plus Sticky Limit kontu grupām un P2C noturībai pret latentumu.",
- "fillFirst": "Fill First",
+ "fillFirst": "Vispirms aizpildīt",
"fillFirstDesc": "Izmantot kontus prioritārā secībā",
"roundRobin": "Round Robin",
"roundRobinDesc": "Iet cauri visiem kontiem pēc kārtas",
@@ -7064,21 +7068,21 @@
"leastUsedDesc": "Izvēlēties nesenāk lietoto kontu",
"costOpt": "Izmaksu optimizācija",
"costOptDesc": "Priekšroka lētākajam pieejamajam kontam",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "RR ar atiestates ievērošanu",
"resetAwareDesc": "Priekšroka kontiem ar veselīgu atlikušo kvotu un tuvākiem atiestatīšanas laikiem",
"quotaWeighted": "Kvotas svērts",
"quotaWeightedDesc": "Izlaist kontus ar izsmeltu kvotu, pēc tam izvēlēties no pārējiem proporcionāli atlikumam, dalot ar pašlaik apstrādāto pieprasījumu slodzi. Esošās sarunas paliek piesaistītas.",
"strictRandom": "Stingri nejauši",
"strictRandomDesc": "Sajaukt komplektu — izmanto katru kontu vienu reizi, pirms sajauc no jauna",
- "stickyLimit": "Sticky Limit",
+ "stickyLimit": "Piesaistes ierobežojums",
"stickyLimitDesc": "Izsaukumu skaits uz kontu, pirms pārslēdzas, kad globālā konta rezerves maršrutēšana izmanto Round Robin",
"routingStrategyTitle": "Maršrutēšanas stratēģija",
"routingStrategySubtitle": "Atbilst 9router: kontu round-robin, sticky limiti un kombinācijas rotācija",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Cikliskā sadale",
"accountRoundRobinDesc": "Iet cauri kontiem, lai sadalītu slodzi",
- "comboRoundRobin": "Combo Round Robin",
+ "comboRoundRobin": "Kombinētā cikliskā sadale",
"comboRoundRobinDesc": "Iet cauri kombinācijas mērķiem, nevis vienmēr sākt ar pirmo",
- "comboStickyLimit": "Combo Sticky Limit",
+ "comboStickyLimit": "Kombinētais piesaistes ierobežojums",
"comboStickyLimitDesc": "Izsaukumu skaits uz kombinācijas mērķi, pirms pārslēdzas",
"routingStrategyAccountSummary": "Pieprasījumi tiek sadalīti starp kontiem ar {limit} izsaukumiem uz kontu.",
"routingStrategyFillFirstSummary": "Izmantot kontus prioritārā secībā (Fill First).",
@@ -7799,7 +7803,7 @@
"storageLastVacuum": "Pēdējais Vakuums",
"storageLastOptimization": "Pēdējā Optimizācija",
"storageIntegrityCheck": "Integritātes Pārbaude",
- "storageIntegrityOk": "✓ OK",
+ "storageIntegrityOk": "✓ Labi",
"storageIntegrityError": "✗ Kļūda",
"storageUsageTokenBuffer": "Lietošanas Žetonu Buferis",
"storageUsageTokenBufferDesc": "Papildu žetoni pievienoti ziņotajam lietojumam, lai kompensētu sistēmas uzaicinājuma pārslodzi.",
@@ -7861,7 +7865,7 @@
"description": "Satura adresētas izgūšanas atzīmes."
},
"lite": {
- "label": "Lite",
+ "label": "Vieglā versija",
"description": "Atstarpju un formāta sakārtošana."
},
"rtk": {
@@ -7877,15 +7881,15 @@
"description": "Tabulāra JSON saspiešana."
},
"relevance": {
- "label": "Relevance",
+ "label": "Atbilstība",
"description": "Ekstraktīva teikumu vērtēšana pēc pēdējā lietotāja pieprasījuma."
},
"caveman": {
- "label": "Caveman",
+ "label": "Alu cilvēks",
"description": "Uz noteikumiem balstīta teksta saspiešana."
},
"aggressive": {
- "label": "Aggressive",
+ "label": "Agresīvs",
"description": "Vecu pagriezienu apkopošana un novecošana."
},
"llmlingua": {
@@ -7949,11 +7953,11 @@
"cliproxyapiImportAuthButton": "Importēt kontus",
"payloadRulesTitle": "Slodzes (payload) noteikumi",
"payloadRulesDesc": "Konfigurējiet pieprasījuma slodzes (payload) izmaiņas pēc modeļa un protokola. Izmaiņas tiek saglabātas iestatījumos un uzreiz pēc saglabāšanas ielādētas darbības laikā (hot reload).",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "noklusējums",
"payloadRuleDefaultDesc": "Piemēro parametrus tikai tad, ja mērķa ceļš izejošajā slodzē (payload) trūkst.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "ignorēt",
"payloadRuleOverrideDesc": "Piespiedu kārtā piešķir vērtības slodzei (payload), pārrakstot visu, kas jau ir norādītajā ceļā.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "filtrs",
"payloadRuleFilterDesc": "Noņem bloķētos parametrus no slodzes (payload), pirms pieprasījums tiek nosūtīts uzstumtajam (upstream) pakalpojumam.",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "Līdzīgi kā default, tikai virknes vērtības, kad iespējams, vispirms tiek parsētas kā JSON. Saglabāšanas laikā tiek pieņemts arī mantotais ievades aizstājvārds default-raw.",
@@ -8007,7 +8011,7 @@
"codexAutoPingToggleAria": "Pārslēgt Codex kvotas automātisko pingu savienojumam {connection}",
"codexFastTierTierLabel": "Pakalpojuma līmenis",
"codexFastTierTierPriority": "Prioritāte",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierFlex": "Elastīgs",
"codexFastTierTierDefault": "Noklusējums",
"codexFastTierModelsLabel": "Ātrā līmeņa modeļi",
"codexFastTierModelsHint": "Tikai atzīmētie modeļi saņem service_tier, kad Ātrais līmenis ir iespējots.",
@@ -8326,12 +8330,12 @@
"oneproxyQuality": "Oneproxy kvalitāte",
"oneproxySyncFailed": "Sinhronizācija neizdevās: {error}",
"oneproxySyncSuccess": "Sinhronizēti {total} starpniekserveri ({added} jauni, {updated} atjaunināti)",
- "proxyDocumentationSocks5DescAfter": "Proxy Documentation Socks5 Desc After",
- "proxyFreePoolAddProxy": "Proxy Free Pool Add Proxy",
- "proxyFreePoolAdding": "Proxy Free Pool Adding",
- "proxyFreePoolSelectProxy": "Proxy Free Pool Select Proxy",
- "proxyStatusActive": "Proxy Status Active",
- "proxyStatusInactive": "Proxy Status Inactive",
+ "proxyDocumentationSocks5DescAfter": "Starpniekservera dokumentācijas Socks5 apraksts pēc",
+ "proxyFreePoolAddProxy": "Pievienot starpniekserveri bezmaksas starpniekserveru kopai",
+ "proxyFreePoolAdding": "Pievieno bezmaksas starpniekserveru kopai",
+ "proxyFreePoolSelectProxy": "Bezmaksas starpniekserveru kopa Atlasīt starpniekserveri",
+ "proxyStatusActive": "Starpniekservera statuss Aktīvs",
+ "proxyStatusInactive": "Starpniekservera statuss Neaktīvs",
"routingAddEntry": "Pievienot ierakstu",
"settingSaveFailed": "Iestatījumu saglabāšana neizdevās",
"settingSaved": "Iestatījumi saglabāti",
@@ -8876,7 +8880,7 @@
"providerExposureHint": "Ja iespējots, atrastie modeļi tiek parādīti nodrošinātāju izvēlnēs visā OmniRoute.",
"providerExposureUpdateFailed": "Neizdevās atjaunināt (HTTP {status})",
"providerExposureNetworkFailed": "Tīkla kļūda — nevarēja atjaunināt nodrošinātāja pieejamības iestatījumu",
- "webUi": "9Router Web UI",
+ "webUi": "9Router tīmekļa saskarne",
"openNewTab": "Atvērt jaunā cilnē",
"filterLogs": "Filtrēt žurnālus…",
"resume": "Atsākt",
@@ -8990,7 +8994,7 @@
"ideCliIntegrations": "IDE/CLI integrācijas",
"inMemoryNote": "Piezīme: notikumi tiek glabāti atmiņā un tiek atiestatīti, restartējot serveri.",
"ok": "OK",
- "errorShort": "ERR",
+ "errorShort": "KĻŪDA",
"formatConverter": "Formāta pārveidotājs",
"formatConverterDescription": "Ielīmējiet vai ierakstiet JSON pieprasījuma pamattekstu. Tulkotājs automātiski noteiks avota formātu un pārveidos to uz mērķa formātu. Izmantojiet šo, lai atkļūdotu, kā OmniRoute pārveido pieprasījumus starp formātiem (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (starpformāts) → {target}",
@@ -9461,9 +9465,9 @@
"noQuotaDataAvailable": "Nav pieejamu kvotas datu",
"noAccountsForTierFilter": "Netika atrasts neviens konts atlasītajam līmenim",
"tierAll": "Visi",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "tierEnterprise": "Uzņēmumiem",
+ "tierTeam": "Komanda",
+ "tierBusiness": "Bizness",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
@@ -10681,7 +10685,7 @@
"levelKey": "Atslēga",
"levelDirect": "Tieši (bez proxy)",
"titleGlobal": "Globālā proxy konfigurācija",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "{level} starpniekserveris — {label}",
"loading": "Notiek proxy konfigurācijas ielāde...",
"inheritingFrom": "Manto no",
"source": "Avots",
@@ -10964,6 +10968,9 @@
"strategyLatency": "Ar aizkaves optimizāciju",
"poolMembersLabel": "Kopas dalībnieki ({count})",
"poolNoMembers": "Šajā kopā vēl nav starpniekserveru.",
+ "poolEgressObservation": "{exits, plural, one {# izeja izmantota} other {# izejas izmantotas}} {connections, plural, one {# savienojumā} other {# savienojumos}} · līdz {max} vienā izejā · pēdējo {hours} h laikā",
+ "poolEgressObservationEmpty": "Pēdējo {hours} h laikā datplūsma nav novērota",
+ "poolEgressObservationHint": "Aprēķināts no starpniekservera žurnāla attiecīgajā laika posmā: atšķirīgās izejošās IP adreses, kas novērotas šī pūla dalībniekiem, un OmniRoute savienojumi, kuri tās izmantoja. “Vienā izejā” nozīmē visā laika posmā, nevis vienlaikus. Katras IP adreses 429 bloķēšana aptur tikai tās pašas pakalpojumu sniedzēju saimes savienojumus.",
"poolRemove": "Noņemt",
"poolRemoveFailed": "Neizdevās noņemt starpniekserveri no kopas",
"poolAddLabel": "Pievienot proksi",
@@ -11443,7 +11450,7 @@
"allLevels": "Visi līmeņi",
"allProviders": "Visi nodrošinātāji",
"total": "kopā",
- "ok": "OK",
+ "ok": "Labi",
"err": "KĻŪDA",
"timeoutShort": "NOILGST",
"direct": "tiešs",
@@ -11549,7 +11556,7 @@
"title": "Kvotu dalīšana",
"description": "Dalīt piegādātāju kvotas pāri API atslēgām ar % ierobežojumiem",
"newPool": "Jauns baseins",
- "betaTitle": "Beta",
+ "betaTitle": "Beta versija",
"betaDescription": "Konfigurācija ir saglabāta localStorage (vēl nav saglabāta serverī). Pieprasījuma ierobežojuma izpilde vēl nav integrēta starpniekservera maršrutēšanā. Šis ekrāns ļauj projektēt un vizualizēt kvotu sadalījumu; reāla izpilde notiks nākamajā iterācijā ar DB saglabāšanu un augšupvērstu zvanu pārtraukšanu.",
"kpiActivePools": "Aktīvie baseini",
"kpiKeysAllocated": "Piešķirtās atslēgas",
@@ -11671,7 +11678,7 @@
"endpointsBaseUrl": "Bāzes URL",
"endpointsCollapse": "Sakļaut",
"endpointsExpand": "Izplest",
- "endpointsAnthropicNote": "Anthropic-native",
+ "endpointsAnthropicNote": "Anthropic vietējais",
"endpointsResponsesNote": "OpenAI Responses — codex/github",
"endpointsWsNote": "WebSocket — tikai codex",
"betaText": "Quota Share ir funkcionāls, bet ir sagaidāmas kļūdas. Atradāt kādu? Lūdzu, ziņojiet par to.",
@@ -11848,7 +11855,7 @@
"riskBannerTitle": "Lietojiet uz savu risku",
"riskBannerBody": "AgentBridge pārtver HTTPS satiksmi no IDE aģentiem. Aktivizējot to, jūs uzņematies atbildību par atbilstību katra aģenta pakalpojuma noteikumiem. Nekad neizmantojiet ierīcēs vai tīklos, kur TLS pārbaude ir aizliegta.",
"riskBannerDismiss": "Aizvērt",
- "serverCardTitle": "AgentBridge Server",
+ "serverCardTitle": "AgentBridge serveris",
"statusRunning": "Darbojas",
"statusStopped": "Apturēts",
"statusActive": "Aktīvs",
@@ -12458,46 +12465,46 @@
"description": "Iesniedziet un pārraugiet pakešu inferēšanas darbus no CLI. Augšupielādējiet un pārvaldiet failus pakešu apstrādei, izgūstiet rezultātus un integrējiet pakešu konveijerus ar CI/CD darbplūsmām."
},
"cli-eval": {
- "name": "CLI: Evals",
+ "name": "CLI: Novērtējumi",
"description": "Izveidojiet un palaidiet novērtēšanas komplektus, sekojiet līdzi etalona testu norisei reāllaikā, skatiet rezultātu kartītes, salīdziniet modeļu veiktspēju un integrējiet novērtēšanas izpildes ar CI darbplūsmām, izmantojot CLI."
},
"cli-plugins-skills": {
- "name": "CLI: Plugins, Skills & Memory",
+ "name": "CLI: Spraudņi, prasmes un atmiņa",
"description": "Pārvaldiet Omni Skills (uzskaitīt, instalēt, testēt, noņemt), spraudņus (izveidot, konfigurēt) un pastāvīgo atmiņu (meklēt, pievienot, notīrīt), izmantojot CLI."
},
"cli-setup": {
- "name": "CLI: Setup & Config",
+ "name": "CLI: Iestatīšana un konfigurācija",
"description": "Veiciet sākotnējo iestatīšanu, konfigurējiet globālos CLI iestatījumus, pārvaldiet vides mainīgos, pārbaudiet atjauninājumus un konfigurējiet automātisko palaišanu, izmantojot CLI iestatīšanas un konfigurācijas komandas."
},
"cli-skill-collector": {
- "name": "CLI: Agent Skill Collector",
+ "name": "CLI: Aģenta prasmju apkopotājs",
"description": "Nosakiet instalētos CLI programmēšanas rīkus (Claude Code, Codex, Cursor, Copilot, Cline un citus), meklējiet GitHub atbilstošās aģentu prasmes un instalējiet tās atrastajos rīkos, izmantojot OmniRoute iebūvētās API."
},
"config-codex-cli": {
- "name": "Config: Codex CLI",
+ "name": "Konfigurācija: Codex CLI",
"description": "Soli pa solim izpildāma aģenta darbplūsma OpenAI Codex CLI konfigurēšanai jebkurā datorā (Linux, macOS, Windows), lai izmantotu OmniRoute kā ar OpenAI saderīgu aizmugursistēmu. Nosaka operētājsistēmu un čaulu, ieraksta config.toml un 7 nosauktus profilus, iestata vides mainīgos un pārbauda iestatījumu."
},
"omni-github-skills": {
- "name": "GitHub Skill Discovery",
+ "name": "GitHub prasmju atklāšana",
"description": "Meklējiet, vērtējiet, skenējiet un importējiet aģentu prasmes no GitHub repozitorijiem, kuros ir SKILL.md, CLAUDE.md, .cursorrules un līdzīgi aģentu prasmju faili. Atklājiet kopienas prasmes vairāk nekā 160 pakalpojumu sniedzēju kategorijās, novērtējiet atbilstību, izmantojot heiristisku vērtēšanu, pārbaudiet, vai nav ļaunprogrammatūras vai cietkodētu slepeno atslēgu, un instalējiet tās Hermes, Claude Code, Gemini CLI vai OpenCode aģentu direktorijās."
}
},
- "pageTitle": "Agent Skills",
+ "pageTitle": "Aģenta prasmes",
"pageSubtitle": "Iemāciet savam aģentam darboties ar OmniRoute — 23 API jomas + 21 CLI saime",
"conceptCard": {
"agent": {
- "title": "Agent Skills — Outbound",
+ "title": "Aģenta prasmes — izejošās",
"description": "Agent Skills ir mašīnlasāmi SKILL.md dokumenti, ko ārējie MI aģenti (Claude Code, Cursor, Copilot…) iegūst no GitHub, lai iemācītos izmantot OmniRoute, izmantojot REST vai CLI. Tos nolasa aģents, nevis izpilda OmniRoute.",
"crossLinkLabel": "Izprotiet atšķirību →"
},
"omni": {
- "title": "Omni Skills — Inbound",
+ "title": "Omni prasmes — ienākošās",
"description": "Omni Skills ir smilškastes rīki, ko OmniRoute iekļauj modeļa kontekstā katrā pieprasījumā. Tos izpilda OmniRoute, nevis nolasa aģents.",
"crossLinkLabel": "Izprotiet atšķirību →"
},
"comparison": {
- "colAgent": "Agent Skills",
- "colOmni": "Omni Skills",
+ "colAgent": "Aģenta prasmes",
+ "colOmni": "Omni prasmes",
"whatIs": {
"label": "Kas tas ir",
"agent": "Mašīnlasāms SKILL.md, kas māca ārējam aģentam darboties ar OmniRoute",
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Ļaut straumes atkopšanai atkārtoti pieprasīt atbildi un pievienot to straumei pēc tam, kad baiti jau ir sasnieguši klientu."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Padariet turpināšanu plūsmas vidū drošu rīka izsaukumiem: nekad neatsāciet pārtrauktu plūsmu pēc rīka izsaukuma nosūtīšanas (kamēr tas vēl tiek izpildīts vai jau ir pabeigts) un pārtrauciet pēc viena tukša turpinājuma, nevis izmantojiet visu atkārtoto mēģinājumu limitu."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Vienreiz pārslēgties uz radniecīgu savienojumu, ja straume aizveras, pirms nosūtīts kāds noderīgs kadrs, un ierobežotais atkārtotais mēģinājums tajā pašā savienojumā ir izlietots. Ja nav izmantojama radniecīga savienojuma, tiek atgriezta sākotnējā early-EOF kļūda. Izslēgts: early-EOF pēc atkārtotā mēģinājuma paliek galīgs."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Iekļaut lietotājam draudzīga attēlojamā nosaukuma laukus /v1/models atbildēs. Atspējojiet šo opciju klientiem, kas pieņem tikai modeļu ID."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Servera pārvaldīta rīku izsaukumu cilpa",
"description": "Turpināt servera pārvaldītos rīku izsaukumus bez straumēšanas, līdz modelis atgriež klientam izmantojamu atbildi."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After izcelsme",
+ "description": "Apkopotajās 429/503 nepieejamības atbildēs izlaidiet Retry-After, ja nav zināms konkrēts atkārtota mēģinājuma laiks nākotnē, nevis nosūtiet mākslīgi izveidotu 1 s vērtību; pievienojiet error.retry_after_provenance un kombināciju iztukšošanas ceļos nolasiet tekstuālas norādes par atkārtotu mēģinājumu."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Aizsargātas prioritātes infrastruktūras apturēšanas kā 502",
+ "description": "Atbildiet ar 502, nevis 503, ja prioritārais mērķis ar atkāpšanos tikai kvotas dēļ aptur kombināciju tāda iemesla dēļ, kas pierādāmi nav saistīts ar kvotu: atvērts nodrošinātāja automātiskais slēdzis vai prognozējoša latentuma dēļ veikta izlaišana."
}
}
},
@@ -13098,7 +13119,7 @@
"comboHealth": "Kombinācijas veselība",
"callLogs": "Izsaukumu žurnāli",
"costs": "Izmaksas",
- "playground": "Playground",
+ "playground": "Izmēģinājumu vide",
"nestedCombo": "Ligzdota kombinācija",
"modelTarget": "Modeļa mērķis",
"weight": "{value}% svars",
@@ -13189,7 +13210,7 @@
"noApiKeyRequired": "API atslēga nav nepieciešama"
},
"providerHealthAutopilot": {
- "title": "Provider Health Autopilot",
+ "title": "Pakalpojumu sniedzēju darbspējas autopilots",
"description": "Atrod nestabilus pakalpojumu sniedzējus, kontu atdzišanas periodus, novecojušas kļūdas un drošus manuālus labojumus.",
"loadFailed": "Neizdevās ielādēt autopilota pārskatu",
"actionApplied": "{action} lietots.",
@@ -13482,7 +13503,7 @@
"localStateSaveFailed": "Neizdevās saglabāt vietējos Radar iestatījumus",
"guidedCombos": "Ieteiktās kombinācijas",
"offers": "Piedāvājumi",
- "intel": "Intel"
+ "intel": "Informācija"
},
"radarCombosPage": {
"title": "Radar ieteiktās kombinācijas",
@@ -13556,9 +13577,9 @@
"timeline": {
"title": "Pārtraucēja pārejas",
"window": "Intervāls",
- "window1h": "1h",
- "window6h": "6h",
- "window24h": "24h",
+ "window1h": "1 h",
+ "window6h": "6 h",
+ "window24h": "24 h",
"empty": "Atlasītajā periodā nav pāreju",
"currentState": "Pašreizējais stāvoklis",
"state": {
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Noraidīt pieprasījumus pirms nosūtīšanas, ja mērķa modelim trūkst nepieciešamo iespēju (redze, rīki, strukturēta izvade, konteksta logs). Aizsargā tiešus viena pakalpojumu sniedzēja pieprasījumus, kas apiet combo-layer saderības filtru.",
"featureFlagDisableContextWindowChecksDescription": "Izlaist OmniRoute lokālo konteksta loga un max-input-token pārbaudi tiešiem viena modeļa pieprasījumiem. Augšupējie pakalpojumu sniedzēji joprojām piemēro savus faktiskos ierobežojumus. Uzvedņu saspiešana un izvades marķieru ierobežojumi paliek aktīvi.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Meklēšanas statistikā un nesenajos meklējumos tiek ņemti vērā tikai tie nodrošinātāji, kuriem joprojām ir aktīvs savienojums (nodrošinātāji bez atslēgas, piemēram, duckduckgo-free, tiek ņemti vērā vienmēr). Izslēgts saglabā katru paturēto meklēšanas rindu ar nodrošinātāja ID.",
"publicSystem": {
"notFound": {
"title": "Lapa nav atrasta",
@@ -13947,7 +13969,7 @@
"compressionDescription": "Konfigurējiet konteksta saspiešanas iestatījumus, lai samazinātu žetonu lietojumu un izmaksas.",
"relayTitle": "OmniRoute — pārsūtīšanas starpniekserveri",
"relayDescription": "Bezservera pārsūtīšanas starpniekserveru galapunkti jūsu MI infrastruktūrai",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Datplūsmas inspektors — OmniRoute",
"trafficInspectorDescription": "Pārraugiet LLM izsaukumus un atkļūdojiet jebkuras lietotnes HTTPS datplūsmu"
},
"conductor": {
@@ -13956,7 +13978,7 @@
"runners": "Izpildītāji",
"tasks": "Uzdevumi",
"colName": "Nosaukums",
- "colClis": "CLIs",
+ "colClis": "CLI",
"colStatus": "Statuss",
"colTask": "Uzdevums",
"colMode": "Režīms",
diff --git a/src/i18n/messages/ml.json b/src/i18n/messages/ml.json
index 3ccf2ce103..34d872041e 100644
--- a/src/i18n/messages/ml.json
+++ b/src/i18n/messages/ml.json
@@ -162,7 +162,7 @@
"effortMax": "പരമാവധി",
"effortUltra": "അൾട്രാ",
"reasoningEffort": "റീസണിംഗ് ശ്രമം",
- "wireApi": "Wire API",
+ "wireApi": "വയർ API",
"modelAliases": "മോഡൽ അപരനാമങ്ങൾ",
"combos": "കോംബോകൾ",
"noModelsFound": "മോഡലുകളൊന്നും കണ്ടെത്തിയില്ല",
@@ -761,7 +761,7 @@
"tierCoverageSubtitle": "ഓരോ ഫാൾബാക്ക് ടയറിലും കോൺഫിഗർ ചെയ്ത Providers",
"batchDetailCopyId": "ID പകർത്തുക",
"batchDetailClose": "അടയ്ക്കുക",
- "batchDetailEndpoint": "Endpoint",
+ "batchDetailEndpoint": "എൻഡ്പോയിന്റ്",
"batchDetailModel": "മോഡൽ",
"batchDetailWindow": "വിൻഡോ",
"batchDetailCreated": "സൃഷ്ടിച്ചത്",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Claude Code ഗേറ്റ്വേ മോഡൽ കണ്ടെത്തലിൽ Claude ഇതര മോഡലുകൾ പട്ടികപ്പെടുത്തുന്നതിനായി /v1/models-ൽ claude/<provider>/<model> മിറർ ഐഡികൾ പ്രസിദ്ധപ്പെടുത്തുക. മുന്നറിയിപ്പ്: ആഗോളതലത്തിൽ പ്രവർത്തനക്ഷമമാക്കുമ്പോൾ എല്ലാ ക്ലയന്റുകൾക്കുമുള്ള കാറ്റലോഗ് എൻട്രികളുടെ എണ്ണം ഇരട്ടിയാകും.",
"featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> ഗേറ്റ്വേ അപരനാമങ്ങൾക്കുള്ള മാസ്റ്റർ സ്വിച്ച്. ഓൺ (ഡിഫോൾട്ട്): യോഗ്യതയുള്ള, ചിന്താശേഷിയുള്ള ഓരോ Claude മോഡലിനും ചിന്തിക്കാത്ത ഒരു വകഭേദം /v1/models പ്രസിദ്ധപ്പെടുത്തും; കൂടാതെ അഭ്യർത്ഥനയിൽ അയയ്ക്കുന്ന no-think/ ഐഡി, റീസണിങ് അടിച്ചമർത്തിക്കൊണ്ട് യഥാർഥ മോഡലിലേക്ക് തിരികെ പരിഹരിക്കപ്പെടും. ഓഫ്: വകഭേദങ്ങളൊന്നും പ്രസിദ്ധപ്പെടുത്തില്ല; no-think/ ഐഡി മറ്റേതൊരു അജ്ഞാത മോഡൽ ഐഡിയെയും പോലെ പരിഗണിക്കും. ഇത് ഓണായിരിക്കുമ്പോഴും ഓരോ മോഡലിനുമുള്ള ModelSpec.noThinkingAlias ഓപ്റ്റ്-ഇൻ/ഓപ്റ്റ്-ഔട്ട് ബാധകമാണ്.",
"featureFlagChatVirtualLanesEnabledDescription": "പ്രൊവൈഡർ ഡിസ്പാച്ചിനായി ഓരോ ടെനന്റിനും അനുയോജ്യമായി മാറുന്ന വെർച്വൽ അഡ്മിഷൻ ലെയിനുകൾ പ്രവർത്തനക്ഷമമാക്കുക (#9654): ഇനി ഒരു ടെനന്റിന്റെ പെട്ടെന്നുള്ള അഭ്യർത്ഥന വർധന മറ്റൊരാൾക്ക് 503 പിശക് സൃഷ്ടിക്കില്ല. ഈ ഡാഷ്ബോർഡ് ഓവർറൈഡിനേക്കാൾ OMNIROUTE_CHAT_VIRTUAL_LANES env var-ന് മുൻഗണനയുണ്ട്; സെർവർ പുനരാരംഭിക്കുമ്പോൾ മാറ്റങ്ങൾ പ്രാബല്യത്തിൽ വരും.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "ഡാഷ്ബോർഡ് പ്രൊവൈഡർ പേജുകൾ: പ്രൊവൈഡർ അംഗീകരിക്കുന്ന സൂചനകളിൽ മാത്രം Free ബാഡ്ജ് കാണിക്കുക — രേഖപ്പെടുത്തിയ സൗജന്യ ടയർ ഇല്ലാത്ത രജിസ്റ്റർ ചെയ്ത പ്രൊവൈഡറുകളിൽ ഡിസ്പ്ലേ-നെയിം ഹ്യൂറിസ്റ്റിക്, ബൂളിയൻ അല്ലാത്ത free ഫീൽഡുകൾ, :free സഫിക്സുകൾ എന്നിവ ഒഴിവാക്കുന്നു. ഓഫാക്കിയാൽ പഴയ ബാഡ്ജ് നിയമം നിലനിർത്തും.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy പൂളുകളും opencode-ന്റെ ഓരോ അക്കൗണ്ടിലുമുള്ള റൊട്ടേഷനും, ഇപ്പോൾ പരാജയപ്പെട്ട ഒരു Proxy-യെ (നിരസിക്കപ്പെട്ട TCP പ്രോബ്, അല്ലെങ്കിൽ അതിലൂടെ ലഭിച്ച 429) ഓരോ ആവർത്തനത്തിലും ഇരട്ടിയാകുന്ന, ഒരു പരമാവധി പരിധിവരെയുള്ള ഓരോ പ്രോസസിനുമുള്ള കാലയളവിൽ വീണ്ടും ഉപയോഗിക്കുന്നത് നിർത്തുന്നു. Proxy നിലയൊന്നും രേഖപ്പെടുത്തില്ല; എല്ലാ സ്ഥാനാർഥികളെയും മാറ്റിവെച്ചാൽ തിരഞ്ഞെടുപ്പ് മാറ്റമില്ലാതെ തുടരും. ഡിഫോൾട്ടായി ഓഫാണ്: തിരഞ്ഞെടുപ്പ് ക്രമം സാധാരണ റൊട്ടേഷൻ തന്നെയാണ്.",
+ "featureFlagProxyPoolEgressObservationDescription": "ഡാഷ്ബോർഡിലെ ഒരു Proxy പൂളിന് കീഴിൽ, കഴിഞ്ഞ 24 മണിക്കൂറിനിടെ അതിലെ അംഗങ്ങൾക്ക് സേവനം നൽകിയതായി നിരീക്ഷിച്ച എത്ര എഗ്രസ് IP-കൾ ഉണ്ടായിരുന്നു, എത്ര കണക്ഷനുകൾ അവ ഉപയോഗിച്ചു, ഒരു IP-ക്ക് പിന്നിൽ കണ്ട ഏറ്റവും ഉയർന്ന എണ്ണം എത്ര എന്നിവ കാണിക്കുക. വായനയ്ക്ക് മാത്രം; Proxy ലോഗിൽനിന്ന് കണക്കാക്കുന്നതും റൂട്ടിംഗിനായി ഒരിക്കലും ഉപയോഗിക്കാത്തതുമാണ്. ഡിഫോൾട്ടായി ഓഫാണ്: പൂൾ എഡിറ്ററിൽ മാറ്റമില്ല, നിരീക്ഷണ റൂട്ട് null എന്ന് മറുപടി നൽകും.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Proxy ആരോഗ്യ പരിശോധനയിൽ, ലക്ഷ്യം നിരസിച്ച ഒരു പ്രോബ് (401/403/429: Proxy റിലേ ചെയ്തു, ലക്ഷ്യസ്ഥാനം ഈ എഗ്രസ് IP നിരസിച്ചു) സേവനം നൽകിയ പ്രോബിനെപ്പോലെ Proxy-യുടെ തുടർച്ചയായ പരാജയങ്ങളുടെ എണ്ണം പുനഃസജ്ജമാക്കാൻ അനുവദിക്കുക. ഡിഫോൾട്ടായി ഓഫാണ്: ഒരു നിരസിക്കൽ നിഷ്പക്ഷമായി തുടരുകയും പരാജയങ്ങളുടെ എണ്ണം നിലനിർത്തുകയും ചെയ്യും. ഏതുവിധമായാലും 5xx അനിശ്ചിതമായി തുടരും; ഒരു നിരസിക്കൽ ഒരിക്കലും Proxy-യെ നീക്കം ചെയ്യുകയോ പ്രവർത്തനരഹിതമാക്കുകയോ വീണ്ടും സജീവമാക്കുകയോ ചെയ്യില്ല.",
"sidebar": {
"home": "ഹോം",
"dashboard": "ഡാഷ്ബോർഡ്",
@@ -1271,7 +1275,7 @@
"systemGroup": "സിസ്റ്റം",
"costsOverview": "അവലോകനം",
"costsOverviewSubtitle": "ഏകീകൃത ചെലവ് വിശകലനം",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "ഏജന്റ് ബ്രിഡ്ജ്",
"agentBridgeSubtitle": "IDE ഏജന്റ് ട്രാഫിക് തടഞ്ഞെടുത്ത് പരിശോധിക്കുക",
"trafficInspector": "Traffic Inspector",
"trafficInspectorSubtitle": "നിങ്ങളുടെ ആപ്പുകളിൽ നിന്നുള്ള അഭ്യർത്ഥനാ-പ്രതികരണ ട്രാഫിക് പരിശോധിക്കുക",
@@ -1294,7 +1298,7 @@
"groupSeparatorLabel": "വേർതിരിവ്",
"discovery": "കണ്ടെത്തൽ",
"discoverySubtitle": "സൗജന്യ ആക്സസിനായി പ്രൊവൈഡറുകളെ സ്കാൻ ചെയ്യുക",
- "conductor": "Conductor",
+ "conductor": "കണ്ടക്ടർ",
"conductorSubtitle": "CLI-ഏജന്റ് സംഘം",
"orchestration": "ഓർക്കസ്ട്രേഷൻ",
"orchestrationSubtitle": "പ്രവർത്തിക്കുന്ന എല്ലാറ്റിന്റെയും തത്സമയ കാഴ്ച",
@@ -1425,23 +1429,23 @@
"secretKeyHint": "പ്രാമാണീകരണത്തിനായി പേലോഡ് ഹെഡറിൽ ഒപ്പിടാൻ ഉപയോഗിക്കുന്നു."
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "Discord വെബ്ഹുക്ക് URL",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "നിങ്ങളുടെ Discord ചാനൽ ഇന്റഗ്രേഷൻ ക്രമീകരണങ്ങളിൽ നിന്ന് പകർത്തിയ വെബ്ഹുക്ക് URL.",
"tutorial": "Discord വെബ്ഹുക്ക് സൃഷ്ടിക്കുന്ന വിധം:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "Slack വെബ്ഹുക്ക് URL",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "നിങ്ങളുടെ Slack Incoming Webhooks ഇന്റഗ്രേഷനിൽ നിന്ന് പകർത്തിയ വെബ്ഹുക്ക് URL.",
"tutorial": "Slack വെബ്ഹുക്ക് സൃഷ്ടിക്കുന്ന വിധം:"
},
"telegram": {
- "botToken": "Telegram Bot Token",
+ "botToken": "Telegram ബോട്ട് ടോക്കൺ",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "നിങ്ങളുടെ ബോട്ട് സൃഷ്ടിക്കുമ്പോൾ @BotFather-ൽ നിന്ന് ലഭിച്ച HTTP API ടോക്കൺ.",
"chatId": "Telegram ചാറ്റ് ID / ചാനൽ",
- "chatIdPlaceholder": "-100123456789 or @channelname",
+ "chatIdPlaceholder": "-100123456789 അല്ലെങ്കിൽ @channelname",
"chatIdHint": "ചാറ്റിന്റെ/ചാനലിന്റെ തനതായ സംഖ്യാ ഐഡന്റിഫയർ അല്ലെങ്കിൽ പൊതു ഉപയോക്തൃനാമം.",
"tutorial": "Telegram വെബ്ഹുക്ക് കോൺഫിഗർ ചെയ്യുന്ന വിധം:"
}
@@ -1811,7 +1815,7 @@
"topologyLegendRecent": "സമീപകാലത്തേത്",
"topologyLegendError": "പിശക്",
"oauthLabel": "OAuth",
- "apiKeyLabel": "API Key",
+ "apiKeyLabel": "API കീ",
"requestsShort": "{count} അഭ്യർത്ഥനകൾ",
"providerModelsTitle": "{provider} - മോഡലുകൾ",
"copiedModel": "പകർത്തി: {model}",
@@ -2622,7 +2626,7 @@
"scrapeExtracting": "വേർതിരിച്ചെടുക്കുന്നു…",
"scrapeFullPage": "പൂർണ്ണ പേജ്",
"scrapeFormat": "ഫോർമാറ്റ്",
- "formatMarkdown": "Markdown",
+ "formatMarkdown": "മാർക്ക്ഡൗൺ",
"formatHtml": "HTML",
"formatText": "ടെക്സ്റ്റ്",
"scrapePreview": "പ്രിവ്യൂ",
@@ -3172,8 +3176,8 @@
"copilotToolCalling": "ടൂൾ കോളിംഗ്",
"copilotPasteInto": "ഇതിലേക്ക് ഒട്ടിക്കുക:",
"copilotReloadInstruction": "തുടർന്ന് VS Code റീലോഡ് ചെയ്ത് ഇൻപുട്ട് പ്രോംപ്റ്റിൽ API കീ സജ്ജമാക്കുക.",
- "wireApiChatCompletions": "Chat Completions (/chat/completions)",
- "wireApiResponses": "Responses API (/responses)",
+ "wireApiChatCompletions": "ചാറ്റ് പൂർത്തീകരണങ്ങൾ (/chat/completions)",
+ "wireApiResponses": "പ്രതികരണ API (/responses)",
"cliproxyapiActionFailed": "പ്രവർത്തനം പരാജയപ്പെട്ടു",
"cliproxyapiActionSucceeded": "പ്രവർത്തനം വിജയിച്ചു",
"cliproxyapiCheckUpdates": "അപ്ഡേറ്റുകൾ പരിശോധിക്കുക",
@@ -3858,9 +3862,9 @@
"groupApiKey": "API കീ",
"groupAccount": "അക്കൗണ്ട്",
"groupServiceTier": "സേവന നിരക്ക്",
- "serviceTierFast": "Fast",
- "serviceTierFlex": "Flex",
- "serviceTierStandard": "Standard",
+ "serviceTierFast": "വേഗതയേറിയത്",
+ "serviceTierFlex": "ഫ്ലെക്സ്",
+ "serviceTierStandard": "സ്റ്റാൻഡേർഡ്",
"serviceTierBreakdownTitle": "സേവന നിരക്ക്",
"serviceTierBreakdownSubtitle": "Fast / Flex / Standard വിഭജനം",
"serviceTierUsageSaved": "ഉപയോഗം ലാഭിച്ചു",
@@ -4016,7 +4020,7 @@
"imageEditsDesc": "AI ഉപയോഗിച്ച് നിലവിലുള്ള ചിത്രങ്ങൾ എഡിറ്റ് ചെയ്യുകയും പരിഷ്കരിക്കുകയും ചെയ്യുക (ഇൻപെയിന്റിങ്, ഔട്ട്പെയിന്റിങ്, വേരിയേഷനുകൾ)",
"batchApi": "ബാച്ച് API",
"batchApiDesc": "വലിയ ബാച്ച് അഭ്യർത്ഥനകൾ അസമന്വിതമായി പ്രോസസ് ചെയ്യുക (OpenAI-അനുയോജ്യം)",
- "filesApi": "Files API",
+ "filesApi": "ഫയലുകൾക്കുള്ള API",
"filesApiDesc": "ബാച്ച് പ്രോസസ്സിങ്ങിനായി ഫയലുകൾ അപ്ലോഡ് ചെയ്ത് മാനേജ് ചെയ്യുക",
"videoGeneration": "വീഡിയോ ജനറേഷൻ",
"videoDesc": "ComfyUI, Stable Video Diffusion എന്നിവ പോലുള്ള AI മോഡലുകൾ ഉപയോഗിച്ച് വീഡിയോകൾ സൃഷ്ടിക്കുക.",
@@ -4123,12 +4127,12 @@
"vscodeAliasDescriptionError": "ഈ സെഷനിൽ CLI കീകൾ ലോഡ് ചെയ്യാൻ കഴിയാത്തതിനാൽ പ്ലേസ്ഹോൾഡർ URL-കൾ കാണിക്കുന്നു.",
"vscodeAliasDescriptionLoading": "CLI കീകൾ ലോഡ് ചെയ്യുന്നു. ഒരു കീ ലഭ്യമാകുന്നതുവരെ പ്ലേസ്ഹോൾഡർ URL-കൾ കാണിക്കും.",
"vscodeAliasDescriptionPlaceholder": "പ്ലേസ്ഹോൾഡർ URL-കൾ കാണിക്കുന്നു. TOKEN മാറ്റിസ്ഥാപിക്കാൻ CLI Tools-ൽ ഒരു API കീ സൃഷ്ടിക്കുകയോ സജീവമാക്കുകയോ ചെയ്യുക.",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "CLI ടൂളുകൾ",
"vscodeAliasBaseLabel": "VS Code ബേസ്",
"vscodeAliasModelsLabel": "VS Code മോഡലുകൾ",
"vscodeAliasChatLabel": "VS Code ചാറ്റ്",
"localServer": "ലോക്കൽ സെർവർ",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "ക്ലൗഡ് OmniRoute",
"copyUrl": "URL പകർത്തുക",
"badgeLoopbackTooltip": "ഈ എൻഡ്പോയിന്റ് ലോക്കലായി മാത്രമേ ആക്സസ് ചെയ്യാനാകൂ (ലൂപ്പ്ബാക്ക് മാത്രം)",
"badgeAlwaysProtectedTooltip": "ഈ എൻഡ്പോയിന്റ് എല്ലായ്പ്പോഴും പരിരക്ഷിതമാണ്, കൂടാതെ അംഗീകാരം ആവശ്യമാണ്",
@@ -5797,10 +5801,10 @@
"ccCompatibleSummarizeThinkingDescription": "പിന്തുണയ്ക്കുന്ന Claude മോഡലുകൾ ദൃശ്യമാകുന്ന ചിന്താ ഡെൽറ്റകൾ സ്ട്രീം ചെയ്യുന്നതിന് CC Compatible ചിന്താ അഭ്യർത്ഥനകളിൽ `display: \"summarized\"` ചേർക്കുന്നു.",
"ccCompatibleSummarizeThinkingLabel": "സംഗ്രഹിച്ച ചിന്താ പ്രദർശനം പ്രവർത്തനക്ഷമമാക്കുക",
"ccCompatibleDetailsTitle": "CC-അനുയോജ്യ റിലേയുടെ വിശദാംശങ്ങൾ",
- "ccCompatibleLabel": "CC Compatible",
+ "ccCompatibleLabel": "CC അനുയോജ്യം",
"ccCompatibleModelsDescription": "CC-അനുയോജ്യ റിലേകൾ മോഡൽ പട്ടിക ലഭ്യമാക്കുന്നില്ല. നിങ്ങളുടെ റിലേ സ്വീകരിക്കുന്ന Claude മോഡൽ ID-കൾ ചേർക്കുക.",
"ccCompatibleNameHint": "ഈ Claude Code-ന് മാത്രമുള്ള റിലേയുടെ പ്രദർശന നാമം.",
- "ccCompatibleNamePlaceholder": "CC Relay Production",
+ "ccCompatibleNamePlaceholder": "CC Relay പ്രൊഡക്ഷൻ",
"ccCompatiblePrefixHint": "prefix/model-id പോലുള്ള മോഡൽ അപരനാമങ്ങളിൽ ഉപയോഗിക്കുന്നു.",
"ccCompatiblePrefixPlaceholder": "cc",
"ccCompatibleValidationHint": "Claude Code ക്ലയന്റുകൾക്ക് മാത്രമായി സേവനം നൽകുന്ന റിലേകൾക്കായി മാത്രം ഈ പ്രൊവൈഡർ ഉപയോഗിക്കുക. ആ റിലേകൾ സ്വീകരിക്കുന്നതിനായി OmniRoute ഇൻകമിംഗ് അഭ്യർത്ഥനകളെല്ലാം Claude Code-അനുയോജ്യമായ വയർ ഫോർമാറ്റിലേക്ക് പുനരെഴുതുന്നു. നിങ്ങൾ Claude Code CLI മാത്രം ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്നുവെങ്കിൽ, അല്ലെങ്കിൽ ഈ റിലേ തരം എന്താണെന്ന് ഉറപ്പില്ലെങ്കിൽ, പകരം ഒരു സാധാരണ Anthropic-അനുയോജ്യ പ്രൊവൈഡർ ഉപയോഗിക്കുക.",
@@ -5879,8 +5883,8 @@
"m365TierLabel": "Copilot ടിയർ",
"m365TierHint": "ഈ കണക്ഷൻ ഉപയോഗിക്കുന്ന Microsoft 365 Copilot സർഫേസ് തിരഞ്ഞെടുക്കുക. Individual എന്നത് ഡിഫോൾട്ട് ഉപഭോക്തൃ BizChat ആണ്; Education, Enterprise (work) എന്നിവ അതത് ടെനന്റ് സർഫേസുകൾ തിരഞ്ഞെടുക്കുന്നു.",
"m365TierIndividualOption": "Individual (ഡിഫോൾട്ട്)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "വിദ്യാഭ്യാസം",
+ "m365TierEnterpriseOption": "എന്റർപ്രൈസ് / ജോലി",
"tierOverrideLabel": "ടിയർ ഓവർറൈഡ്",
"tierOverrideAuto": "ഓട്ടോ (റൂട്ടിംഗ് തീരുമാനിക്കും)",
"tierOverrideFree": "സൗജന്യം",
@@ -6096,7 +6100,7 @@
"onboardingBaseUrlOverride": "Base URL ഓവർറൈഡ്",
"onboardingBaseUrlOverrideHint": "ഐച്ഛികം. providerSpecificData.baseUrl ആയി സംഭരിക്കും.",
"onboardingRegion": "പ്രദേശം",
- "onboardingSearchCx": "Search CX / Engine id",
+ "onboardingSearchCx": "Search CX / എഞ്ചിൻ ഐഡി",
"onboardingProviderSpecificIdPlaceholder": "ഐച്ഛികമായ ദാതാവ്-നിർദ്ദിഷ്ട id",
"onboardingCustomUserAgent": "ഇഷ്ടാനുസൃത User-Agent",
"onboardingWorking": "പ്രവർത്തിക്കുന്നു…",
@@ -6363,15 +6367,15 @@
"checkWebToken": "ടോക്കൺ പരിശോധിക്കുക",
"huggingchatLabel": "HuggingChat (സൗജന്യം)",
"huggingchatDesc": "huggingface.co/chat വഴിയുള്ള സൗജന്യ LLM ചാറ്റ്",
- "poeWebLabel": "Poe Web",
+ "poeWebLabel": "Poe വെബ്",
"poeWebDesc": "poe.com വഴിയുള്ള മൾട്ടി-മോഡൽ ചാറ്റ്",
- "veniceWebLabel": "Venice Web",
+ "veniceWebLabel": "Venice വെബ്",
"veniceWebDesc": "സ്വകാര്യതയിൽ ശ്രദ്ധ കേന്ദ്രീകരിച്ച AI ചാറ്റ്",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "v0 Vercel വെബ്",
"v0VercelWebDesc": "v0.dev വഴിയുള്ള AI കോഡ് ജനറേഷൻ",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Kimi വെബ്",
"kimiWebDesc": "www.kimi.com വഴിയുള്ള Moonshot AI ഉപഭോക്തൃ ചാറ്റ് (അന്തർദേശീയം, Connect-RPC API)",
- "doubaoWebLabel": "Dola Web",
+ "doubaoWebLabel": "Dola വെബ്",
"doubaoWebDesc": "dola.com വഴിയുള്ള ByteDance AI ചാറ്റ്",
"overrideBaseUrlAdvanced": "വിപുലമായത്: അടിസ്ഥാന URL അസാധുവാക്കുക",
"overrideBaseUrlHint": "വിപുലമായത്: ഈ ബിൽറ്റ്-ഇൻ പ്രൊവൈഡറെ ഒരു ഇഷ്ടാനുസൃത എൻഡ്പോയിന്റിലേക്ക് നയിക്കുക. ഡിഫോൾട്ട് ഉപയോഗിക്കാൻ ഇത് ശൂന്യമായി വിടുക.",
@@ -6474,7 +6478,7 @@
"savedModelEndpointSettings": "മോഡൽ എൻഡ്പോയിന്റ് ക്രമീകരണങ്ങൾ സംരക്ഷിച്ചു",
"searchByModelAria": "മോഡൽ ഉപയോഗിച്ച് തിരയുക",
"selectSupportedEndpoint": "പിന്തുണയ്ക്കുന്ന ഒരു എൻഡ്പോയിന്റെങ്കിലും തിരഞ്ഞെടുക്കുക",
- "antigravityClientProfileHarness": "Harness / CLI"
+ "antigravityClientProfileHarness": "ഹാർനെസ് / CLI"
},
"settings": {
"title": "ക്രമീകരണങ്ങൾ",
@@ -6526,7 +6530,7 @@
"routingSummarizeDropParagraphContains": "ഇവ അടങ്ങിയ ഖണ്ഡികകൾ ഒഴിവാക്കുക: {items}",
"routingSummarizeDropParagraphStartsWith": "ഇവകൊണ്ട് ആരംഭിക്കുന്ന ഖണ്ഡികകൾ ഒഴിവാക്കുക: {items}",
"routingSummarizeReplaceText": "\"{match}\" → \"{replacement}\" ആയി പകരംവയ്ക്കുക",
- "routingSummarizeReplaceRegex": "regex /{pattern}/{flags} → \"{replacement}\"",
+ "routingSummarizeReplaceRegex": "റെഗുലർ എക്സ്പ്രഷൻ /{pattern}/{flags} → \"{replacement}\"",
"routingSummarizeDropBlockContains": "ഇവ അടങ്ങിയ ബ്ലോക്കുകൾ ഒഴിവാക്കുക: {items}",
"routingSummarizePrependSystemBlock": "ബ്ലോക്ക് തുടക്കത്തിൽ ചേർക്കുക: \"{text}\"",
"routingSummarizeAppendSystemBlock": "ബ്ലോക്ക് അവസാനത്തിൽ ചേർക്കുക: \"{text}\"",
@@ -7139,7 +7143,7 @@
"ipModeWhitelist": "വൈറ്റ്ലിസ്റ്റ്",
"ipModeWhitelistPriority": "WL മുൻഗണന",
"addIpAddress": "IP വിലാസം ചേർക്കുക",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
+ "ipAddressPlaceholder": "192.168.1.0/24 അല്ലെങ്കിൽ 10.0.*.*",
"block": "+ തടയുക",
"allow": "+ അനുവദിക്കുക",
"blocked": "തടഞ്ഞവ ({count})",
@@ -7376,7 +7380,7 @@
"customPricingNote": "നിർദ്ദിഷ്ട മോഡലുകളുടെ ഡിഫോൾട്ട് നിരക്ക് നിങ്ങൾക്ക് മറികടക്കാം. സ്വയമേവ കണ്ടെത്തിയ നിരക്കുകളേക്കാൾ ഇഷ്ടാനുസൃത ഓവർറൈഡുകൾക്ക് മുൻഗണന ലഭിക്കും.",
"editPricing": "നിരക്ക് തിരുത്തുക",
"viewFullDetails": "പൂർണ്ണ വിശദാംശങ്ങൾ കാണുക",
- "themeCoral": "Coral",
+ "themeCoral": "കോറൽ",
"adaptiveVolumeRouting": "അഡാപ്റ്റീവ് വോള്യം റൂട്ടിംഗ്",
"adaptiveVolumeRoutingDesc": "പേലോഡ് വോളിയത്തിന്റെയും ത്രൂപുട്ട് സമ്മർദത്തിന്റെയും അടിസ്ഥാനത്തിൽ കണക്ഷനുകൾ ചലനാത്മകമായി സ്കെയിൽ ചെയ്യുക.",
"lkgpToggleTitle": "അവസാനം വിജയകരമായിരുന്ന പ്രൊവൈഡർ (LKGP)",
@@ -7927,7 +7931,7 @@
"resilienceEnableServerSideWait": "സെർവർ-സൈഡ് കാത്തിരിപ്പ് പ്രവർത്തനക്ഷമമാക്കുക",
"resilienceMaximumRetries": "പരമാവധി പുനഃശ്രമങ്ങൾ",
"resilienceMaximumWaitPerRetry": "ഓരോ പുനഃശ്രമത്തിനുമുള്ള പരമാവധി കാത്തിരിപ്പ്",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "SkillsMP മാർക്കറ്റ്പ്ലേസ്",
"memorySkillsFailedToSave": "സേവ് ചെയ്യാനായില്ല",
"memorySkillsApiKey": "API കീ",
"memorySkillsActiveSkillsProvider": "സജീവ Skills ദാതാവ്",
@@ -8268,7 +8272,7 @@
"modalityBridgeMovedTitle": "Vision Bridge മാറ്റി",
"modalityBridgeMovedBody": "Vision Bridge ക്രമീകരണങ്ങൾ ഇപ്പോൾ പ്രത്യേക Modality Bridge പേജിലാണ്.",
"modalityBridgeMovedCta": "Modality Bridge ക്രമീകരണങ്ങൾ തുറക്കുക",
- "modalityBridgeAudioTitle": "Audio Bridge",
+ "modalityBridgeAudioTitle": "ഓഡിയോ ബ്രിഡ്ജ്",
"modalityBridgeAudioDesc": "തിരഞ്ഞെടുത്ത ടെക്സ്റ്റ് മോഡലുമായി തുടരുന്നതിന് മുമ്പ് സ്പീച്ച്-ടു-ടെക്സ്റ്റ് മോഡൽ ഉപയോഗിച്ച് ഓഡിയോ ട്രാൻസ്ക്രൈബ് ചെയ്യുക.",
"modalityBridgeAudioEnabled": "Audio Bridge പ്രവർത്തനക്ഷമമാക്കുക",
"modalityBridgeAudioEnabledDesc": "ലക്ഷ്യ മോഡലിന് ഓഡിയോ പ്രോസസ്സ് ചെയ്യാൻ കഴിയാത്തപ്പോൾ ഓഡിയോ ഭാഗങ്ങൾക്ക് പകരം ട്രാൻസ്ക്രിപ്റ്റുകൾ ഉപയോഗിക്കുക.",
@@ -8280,7 +8284,7 @@
"modalityBridgeAudioTestOk": "Audio Bridge ശരിയായി പ്രവർത്തിക്കുന്നു — {model} ട്രാൻസ്ക്രൈബ് ചെയ്ത {count} ക്ലിപ്പ്(കൾ)",
"modalityBridgeAudioTestNoop": "Audio Bridge സജീവമായില്ല (ലക്ഷ്യ മോഡൽ ഓഡിയോ പിന്തുണയ്ക്കുന്നുണ്ടാകാം, ഒരു STT ദാതാവും കണക്റ്റുചെയ്തിട്ടില്ലായിരിക്കാം, അല്ലെങ്കിൽ Bridge പ്രവർത്തനരഹിതമായിരിക്കാം)",
"modalityBridgeAudioTestError": "ഓഡിയോ പരിശോധന പരാജയപ്പെട്ടു: {message}",
- "modalityBridgeVideoTitle": "Video Bridge",
+ "modalityBridgeVideoTitle": "വീഡിയോ ബ്രിഡ്ജ്",
"modalityBridgeVideoDesc": "വീഡിയോ ഫ്രെയിമുകൾ സാമ്പിൾ ചെയ്ത്, വിഷൻ മോഡൽ ഉപയോഗിച്ച് അവയെ വിവരിച്ചശേഷം, തിരഞ്ഞെടുത്ത ടെക്സ്റ്റ് മോഡലുമായി തുടരുക.",
"modalityBridgeVideoRuntimeReady": "റൺടൈം തയ്യാറാണ്",
"modalityBridgeVideoRuntimeChecking": "റൺടൈം പരിശോധിക്കുന്നു…",
@@ -8378,7 +8382,7 @@
"qdrantCollection": "ശേഖരം"
},
"contextRtk": {
- "title": "RTK Engine",
+ "title": "RTK എഞ്ചിൻ",
"description": "ടൂൾ ഔട്ട്പുട്ട്, ടെർമിനൽ ലോഗുകൾ, ബിൽഡ് ഫലങ്ങൾ എന്നിവയ്ക്കുള്ള കമാൻഡ്-അവബോധമുള്ള കംപ്രഷൻ.",
"enabled": "പ്രവർത്തനക്ഷമമാക്കി",
"intensity": "തീവ്രത",
@@ -8502,7 +8506,7 @@
"description": "വ്യക്തമായ വരി-എണ്ണ മാർക്കറുകളോടുകൂടിയ, ഒരേ ഘടനയുള്ള JSON അറേകളുടെ നഷ്ടരഹിത ടാബുലാർ കോംപാക്ഷൻ."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "സെഷൻ ഡീഡ്യൂപ്പ്",
"description": "വീണ്ടെടുക്കാവുന്ന ഉള്ളടക്ക മാർക്കറുകളോടുകൂടിയ, സംഭാഷണ ടേണുകൾക്കിടയിലെ ബ്ലോക്ക് ഡീഡ്യൂപ്ലിക്കേഷൻ."
},
"ccr": {
@@ -8904,7 +8908,7 @@
"save": "സംരക്ഷിക്കുക"
},
"contextCaveman": {
- "title": "Caveman Engine",
+ "title": "Caveman എഞ്ചിൻ",
"description": "നിയമാധിഷ്ഠിത സന്ദേശ കംപ്രഷൻ, ഭാഷാ പാക്കുകൾ, അനലിറ്റിക്സ്, ഔട്ട്പുട്ട് മോഡ് നിയന്ത്രണങ്ങൾ.",
"advancedConfig": "വിപുലമായ കോൺഫിഗറേഷൻ",
"advancedConfigDesc": "കംപ്രഷൻ പ്രവർത്തനം സൂക്ഷ്മമായി ക്രമീകരിക്കുക",
@@ -9716,8 +9720,8 @@
"chooseAuthMethod": "നിങ്ങളുടെ പ്രാമാണീകരണ രീതി തിരഞ്ഞെടുക്കുക:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
+ "googleAccount": "Google അക്കൗണ്ട്",
+ "githubAccount": "GitHub അക്കൗണ്ട്",
"importToken": "ടോക്കൺ ഇറക്കുമതി ചെയ്യുക",
"pasteToken": "Kiro IDE-യിൽ നിന്നുള്ള റിഫ്രഷ് ടോക്കൺ ഒട്ടിക്കുക.",
"awsRegion": "AWS മേഖല",
@@ -9966,7 +9970,7 @@
"howItWorksDescription": "നിങ്ങളുടെ ആപ്ലിക്കേഷനിൽ നിന്ന് ഞങ്ങളുടെ ബുദ്ധിപരമായ റൂട്ടിംഗ് ലെയറിലൂടെ ആ ജോലിക്ക് ഏറ്റവും അനുയോജ്യമായ ദാതാവിലേക്ക് ഡാറ്റ തടസ്സമില്ലാതെ ഒഴുകുന്നു.",
"howItWorksStep1Title": "1. CLI-കളും SDK-കളും",
"howItWorksStep1Description": "നിങ്ങളുടെ അഭ്യർത്ഥനകൾ നിങ്ങളുടെ പ്രിയപ്പെട്ട ടൂളുകളിൽ നിന്നോ ഞങ്ങളുടെ ഏകീകൃത SDK-യിൽ നിന്നോ ആരംഭിക്കുന്നു. base URL മാത്രം മാറ്റുക.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
+ "howItWorksStep2Title": "2. OmniRoute ഹബ്",
"howItWorksStep2Description": "ഞങ്ങളുടെ എൻജിൻ പ്രോംപ്റ്റ് വിശകലനം ചെയ്യുകയും ദാതാവിന്റെ നില പരിശോധിക്കുകയും ഏറ്റവും കുറഞ്ഞ ലേറ്റൻസിയോ ചെലവോ ലഭിക്കുന്ന രീതിയിൽ റൂട്ട് ചെയ്യുകയും ചെയ്യുന്നു.",
"howItWorksStep3Title": "3. AI ദാതാക്കൾ",
"howItWorksStep3Description": "അഭ്യർത്ഥന OpenAI, Anthropic, Gemini അല്ലെങ്കിൽ മറ്റുള്ളവ വഴി തൽക്ഷണം പൂർത്തീകരിക്കപ്പെടുന്നു.",
@@ -10100,7 +10104,7 @@
"providersCount": "{count} പ്രൊവൈഡർമാർ",
"providerTypeFree": "സൗജന്യ ടയർ",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
+ "providerTypeApiKey": "API കീ",
"useCaseSingleEndpointTitle": "നിരവധി പ്രൊവൈഡർമാർക്കായി ഒരൊറ്റ എൻഡ്പോയിന്റ്",
"useCaseSingleEndpointText": "ക്ലയന്റുകളെ ഒരൊറ്റ ബേസ് URL-ലേക്ക് പോയിന്റ് ചെയ്ത് മോഡൽ പ്രിഫിക്സ് അനുസരിച്ച് റൂട്ട് ചെയ്യുക (ഉദാഹരണത്തിന്: gh/, cc/, kr/, openai/).",
"useCaseFallbackTitle": "കോംബോകൾ ഉപയോഗിച്ചുള്ള ഫാൾബാക്കും മോഡൽ മാറ്റലും",
@@ -10218,7 +10222,7 @@
"mcpToolsMemoryDesc": "സ്ഥിരമായ സംഭാഷണ മെമ്മറി എൻട്രികൾ തിരയുക, ചേർക്കുക, മായ്ക്കുക.",
"mcpToolsSkillsTitle": "കഴിവുകൾ",
"mcpToolsSkillsDesc": "ഇഷ്ടാനുസൃത കഴിവുകളുടെ നിർവഹണങ്ങൾ പട്ടികപ്പെടുത്തുക, പ്രവർത്തനക്ഷമമാക്കുക, നിർവഹിക്കുക, നിരീക്ഷിക്കുക.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "ഓട്ടോ-കോംബോ",
"featureAutoComboText": "നിങ്ങൾ ബന്ധിപ്പിച്ചിട്ടുള്ള പ്രൊവൈഡർമാർ, ഉപയോഗ രീതികൾ, മോഡൽ ശേഷികൾ എന്നിവയെ അടിസ്ഥാനമാക്കി ഒപ്റ്റിമൈസ് ചെയ്ത കോംബോകൾ സ്വയമേവ സൃഷ്ടിക്കുക.",
"featureSearchTitle": "വെബ് തിരയൽ",
"featureSearchText": "അനലിറ്റിക്സും ചെലവ് ട്രാക്കിംഗും ഉൾപ്പെടെ 5 പ്രൊവൈഡർമാരുമായുള്ള (Serper, Brave, Exa, Tavily, Perplexity) സംയോജിത വെബ് തിരയൽ.",
@@ -10233,10 +10237,10 @@
"protocolAcpStep1": "രജിസ്റ്റർ ചെയ്ത ACP ഏജന്റുകളെ കാണാൻ Dashboard → Agents എന്നതിലേക്ക് പോകുക.",
"protocolAcpStep2": "ശേഷികളും എൻഡ്പോയിന്റ് കോൺഫിഗറേഷനും സഹിതം പുതിയ ഏജന്റുകളെ രജിസ്റ്റർ ചെയ്യുക.",
"protocolAcpStep3": "ഏജന്റ് ആശയവിനിമയ ചാനലുകൾ കോൺഫിഗർ ചെയ്യാൻ CLI Tools ഉപയോഗിക്കുക.",
- "metadataTitleTemplate": "%s — OmniRoute Docs",
+ "metadataTitleTemplate": "%s — OmniRoute ഡോക്സ്",
"metadataDefaultTitle": "OmniRoute ഡോക്യുമെന്റേഷൻ",
"metadataDescription": "OmniRoute AI ഗേറ്റ്വേയ്ക്കായുള്ള സമഗ്ര ഡോക്യുമെന്റേഷൻ — സജ്ജീകരണം, API, കംപ്രഷൻ, വിന്യാസം എന്നിവയും അതിലേറെയും.",
- "layoutNavTitle": "OmniRoute Docs",
+ "layoutNavTitle": "OmniRoute ഡോക്സ്",
"layoutHomeLink": "ഡോക്സ് ഹോം",
"layoutDashboardLink": "← ഡാഷ്ബോർഡിലേക്ക് മടങ്ങുക",
"homeTitle": "OmniRoute ഡോക്യുമെന്റേഷൻ",
@@ -10438,7 +10442,7 @@
"noTasksTitle": "ഇതുവരെ ടാസ്കുകളൊന്നുമില്ല",
"noTasksDesc": "ആരംഭിക്കാൻ നിങ്ങളുടെ ആദ്യ ടാസ്ക് സൃഷ്ടിക്കുക.",
"tasksTab": "ടാസ്കുകൾ",
- "agentsTab": "Agents",
+ "agentsTab": "ഏജന്റുകൾ",
"settingsTab": "ക്രമീകരണങ്ങൾ",
"agentsEnabled": "പ്രവർത്തനക്ഷമമാക്കി",
"agentsDisabled": "പ്രവർത്തനരഹിതമാക്കി",
@@ -10964,6 +10968,9 @@
"strategyLatency": "ലേറ്റൻസി-ഒപ്റ്റിമൈസ്ഡ്",
"poolMembersLabel": "പൂൾ അംഗങ്ങൾ ({count})",
"poolNoMembers": "ഈ പൂളിൽ ഇതുവരെ പ്രോക്സികളൊന്നുമില്ല.",
+ "poolEgressObservation": "{exits, plural, one {# എക്സിറ്റ്} other {# എക്സിറ്റുകൾ}} {connections, plural, one {# കണക്ഷൻ} other {# കണക്ഷനുകൾ}} ഉപയോഗിച്ചു · ഒരു എക്സിറ്റിൽ പരമാവധി {max} · കഴിഞ്ഞ {hours} മണിക്കൂർ",
+ "poolEgressObservationEmpty": "കഴിഞ്ഞ {hours} മണിക്കൂറിൽ ട്രാഫിക്കൊന്നും നിരീക്ഷിച്ചിട്ടില്ല",
+ "poolEgressObservationHint": "നിശ്ചിത സമയപരിധിയിലെ പ്രോക്സി ലോഗിൽ നിന്ന് കണക്കാക്കിയത്: ഈ പൂളിലെ അംഗങ്ങൾക്കായി നിരീക്ഷിച്ച വ്യത്യസ്ത എഗ്രസ് IP-കളും അവ ഉപയോഗിച്ച OmniRoute കണക്ഷനുകളും. \"ഒരു എക്സിറ്റിൽ\" എന്നത് ഒരേ സമയത്തെയല്ല, നിശ്ചിത സമയപരിധിയെയാണ് സൂചിപ്പിക്കുന്നത്. ഓരോ IP-യ്ക്കുമുള്ള 429 ലോക്കൗട്ട് ഒരേ പ്രൊവൈഡർ ഫാമിലിയിലെ കണക്ഷനുകൾ മാത്രമേ താൽക്കാലികമായി നിർത്തൂ.",
"poolRemove": "നീക്കം ചെയ്യുക",
"poolRemoveFailed": "പൂളിൽ നിന്ന് പ്രോക്സി നീക്കം ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
"poolAddLabel": "ഒരു പ്രോക്സി ചേർക്കുക",
@@ -11367,7 +11374,7 @@
},
"payloadMissing": "ഈ ലോഗ് എൻട്രിക്കായുള്ള വിശദമായ പേലോഡ് ആർട്ടിഫാക്റ്റ് ഇനി ലഭ്യമല്ല.",
"payloadCorrupt": "വിശദമായ പേലോഡ് ആർട്ടിഫാക്റ്റ് പാഴ്സ് ചെയ്യാനായില്ല.",
- "notAvailable": "N/A",
+ "notAvailable": "ലഭ്യമല്ല",
"semanticCache": "സെമാന്റിക് (OmniRoute)",
"upstreamCache": "അപ്സ്ട്രീം (Provider)",
"ariaLabel": "അഭ്യർത്ഥന ലോഗിന്റെ വിശദാംശങ്ങൾ",
@@ -11381,7 +11388,7 @@
"endedAt": "അവസാനിച്ച സമയം",
"duration": "ദൈർഘ്യം",
"model": "മോഡൽ",
- "provider": "Provider",
+ "provider": "ദാതാവ്",
"account": "അക്കൗണ്ട്",
"input": "ഇൻപുട്ട്",
"totalIn": "ആകെ ഇൻപുട്ട്: {value}",
@@ -11443,8 +11450,8 @@
"allLevels": "എല്ലാ നിലവാരങ്ങളും",
"allProviders": "എല്ലാ പ്രൊവൈഡർമാരും",
"total": "ആകെ",
- "ok": "OK",
- "err": "ERR",
+ "ok": "ശരി",
+ "err": "പിശക്",
"timeoutShort": "TMO",
"direct": "നേരിട്ട്",
"newest": "ഏറ്റവും പുതിയത്",
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "ബൈറ്റുകൾ ഇതിനകം ക്ലയന്റിൽ എത്തിയതിനുശേഷവും പ്രതികരണം വീണ്ടും അഭ്യർത്ഥിച്ച് കൂട്ടിച്ചേർക്കാൻ സ്ട്രീം വീണ്ടെടുക്കലിനെ അനുവദിക്കുക."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "മിഡ്-സ്ട്രീം തുടർച്ചയിലെ ടൂൾ കോൾ സുരക്ഷിതമാക്കുക: ഒരു ടൂൾ കോൾ അയച്ചതിന് ശേഷം (ഇപ്പോഴും പുരോഗതിയിലായാലും ഇതിനകം പൂർത്തിയായാലും) മുറിഞ്ഞ സ്ട്രീം ഒരിക്കലും പുനരാരംഭിക്കരുത്; മുഴുവൻ റീട്രൈ ബജറ്റും ഉപയോഗിക്കുന്നതിന് പകരം ഒരു ശൂന്യ തുടർച്ചയ്ക്ക് ശേഷം നിർത്തുക."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "ഉപയോഗപ്രദമായ ഒരു ഫ്രെയിമും അയയ്ക്കുന്നതിന് മുമ്പ് സ്ട്രീം അടയുകയും അതേ കണക്ഷനിലെ പരിമിതമായ പുനഃശ്രമം തീരുകയും ചെയ്യുമ്പോൾ ഒരിക്കൽ ഒരു സഹോദര കണക്ഷനിലേക്ക് ഫെയിൽഓവർ ചെയ്യുക. ഉപയോഗിക്കാവുന്ന സഹോദര കണക്ഷൻ ഇല്ലെങ്കിൽ യഥാർത്ഥ early-EOF പിശക് തിരികെ നൽകും. ഓഫ്: പുനഃശ്രമത്തിന് ശേഷം early-EOF അന്തിമമായി തുടരും."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "/v1/models പ്രതികരണങ്ങളിൽ പ്രദർശനത്തിന് അനുയോജ്യമായ നാമ ഫീൽഡുകൾ ഉൾപ്പെടുത്തുക. മോഡൽ ID-കൾ മാത്രം സ്വീകരിക്കുന്ന ക്ലയന്റുകൾക്കായി ഇത് പ്രവർത്തനരഹിതമാക്കുക."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "സെർവർ ഉടമസ്ഥതയിലുള്ള ടൂൾ ലൂപ്പ്",
"description": "മോഡൽ ക്ലയന്റിന് ഉപയോഗിക്കാവുന്ന പ്രതികരണം നൽകുന്നതുവരെ സ്ട്രീമിംഗ് അല്ലാത്ത, സെർവർ ഉടമസ്ഥതയിലുള്ള ടൂൾ കോളുകൾ തുടരുക."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After ഉറവിടം",
+ "description": "സമാഹരിച്ച 429/503 ലഭ്യമല്ലാത്ത പ്രതികരണങ്ങളിൽ, വ്യക്തമായ ഭാവി റീട്രൈ സമയം അറിയാത്തപ്പോൾ കൃത്രിമമായ 1s അയയ്ക്കുന്നതിന് പകരം Retry-After ഒഴിവാക്കുക, error.retry_after_provenance ചേർക്കുക, കൂടാതെ കോംബോ ഡ്രെയിൻ പാത്തുകളിലെ വിവരണാത്മക റീട്രൈ സൂചനകൾ വായിക്കുക."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "സംരക്ഷിത-മുൻഗണന ഇൻഫ്രാ സ്റ്റോപ്പുകൾ 502 ആയി",
+ "description": "ക്വോട്ട-മാത്രം-ഫാൾബാക്ക് മുൻഗണനാ ടാർഗറ്റ്, ക്വോട്ട കാരണമല്ലെന്ന് തെളിയിക്കാവുന്ന ഒരു കാരണത്താൽ കോംബോ നിർത്തുമ്പോൾ 503-ന് പകരം 502 നൽകുക: തുറന്ന പ്രൊവൈഡർ സർക്യൂട്ട് ബ്രേക്കർ അല്ലെങ്കിൽ പ്രവചനാത്മക ലേറ്റൻസി സ്കിപ്പ്."
}
}
},
@@ -13098,7 +13119,7 @@
"comboHealth": "കോംബോ ആരോഗ്യനില",
"callLogs": "കോൾ ലോഗുകൾ",
"costs": "ചെലവുകൾ",
- "playground": "Playground",
+ "playground": "പ്ലേഗ്രൗണ്ട്",
"nestedCombo": "നെസ്റ്റഡ് കോംബോ",
"modelTarget": "മോഡൽ ടാർഗെറ്റ്",
"weight": "{value}% ഭാരം",
@@ -13279,7 +13300,7 @@
"allModels": "എല്ലാ മോഡലുകളും",
"keepModel": "മോഡൽ നിലനിർത്തുക",
"otherModel": "മറ്റൊരു മോഡൽ",
- "combo": "Combo",
+ "combo": "കോംബോ",
"priorityShort": "മുൻഗണന {value}",
"toggleAria": "{name} പ്രവർത്തനക്ഷമമാക്കുക",
"edit": "തിരുത്തുക",
@@ -13297,7 +13318,7 @@
"missing": "വ്യക്തമാക്കിയിട്ടില്ല",
"signalOnly": "വ്യതിരിക്തമല്ലാത്ത റീസണിംഗ് സിഗ്നൽ",
"requestTags": "അഭ്യർത്ഥന ടാഗുകൾ",
- "requestTagsExample": "coding, internal",
+ "requestTagsExample": "കോഡിംഗ്, ആന്തരികം",
"tagMode": "ടാഗ് പൊരുത്തപ്പെടുത്തൽ",
"effortMode": "ശ്രമനില മോഡ്",
"targetEffort": "ലക്ഷ്യ ശ്രമം",
@@ -13337,7 +13358,7 @@
}
},
"chaosConfig": {
- "pageTitle": "Chaos Mode",
+ "pageTitle": "കേയോസ് മോഡ്",
"pageSubtitle": "ഒരേ ടാസ്ക്കിൽ ഒന്നിലധികം AI മോഡലുകൾ സമാന്തരമായോ സഹകരണപരമായോ പ്രവർത്തിപ്പിക്കുക",
"enableChaos": "Chaos Mode പ്രവർത്തനക്ഷമമാക്കുക",
"enableChaosDesc": "Chaos Mode പ്രവർത്തനക്ഷമമാക്കിയ API കീകൾക്ക് ഈ ഫീച്ചർ ഉപയോഗിക്കാൻ അനുവദിക്കുക",
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "ലക്ഷ്യമാക്കിയ മോഡലിന് ആവശ്യമായ ശേഷികൾ (വിഷൻ, ടൂളുകൾ, ഘടനാബദ്ധമായ ഔട്ട്പുട്ട്, കോൺടെക്സ്റ്റ് വിൻഡോ) ഇല്ലെങ്കിൽ അഭ്യർത്ഥനകൾ അയയ്ക്കുന്നതിന് മുമ്പ് നിരസിക്കുക. കോംബോ-ലെയർ അനുയോജ്യതാ ഫിൽട്ടർ മറികടക്കുന്ന നേരിട്ടുള്ള ഒറ്റ-പ്രൊവൈഡർ അഭ്യർത്ഥനകളെ ഇത് പരിരക്ഷിക്കുന്നു.",
"featureFlagDisableContextWindowChecksDescription": "നേരിട്ടുള്ള ഒറ്റ-മോഡൽ അഭ്യർത്ഥനകൾക്കായി OmniRoute-ന്റെ ലോക്കൽ കോൺടെക്സ്റ്റ്-വിൻഡോ, പരമാവധി ഇൻപുട്ട്-ടോക്കൺ പരിശോധനകൾ ഒഴിവാക്കുക. അപ്സ്ട്രീം പ്രൊവൈഡർമാർ അവരുടെ യഥാർഥ പരിധികൾ തുടർന്നും നടപ്പാക്കും. പ്രോംപ്റ്റ് കംപ്രഷനും ഔട്ട്പുട്ട്-ടോക്കൺ പരിധികളും സജീവമായി തുടരും.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "തിരയൽ സ്ഥിതിവിവരക്കണക്കുകളും സമീപകാല തിരയലുകളും ഇപ്പോഴും സജീവ കണക്ഷനുള്ള പ്രൊവൈഡർമാരെ മാത്രമേ കണക്കാക്കൂ (duckduckgo-free പോലുള്ള കീ ആവശ്യമില്ലാത്ത പ്രൊവൈഡർമാരെ എല്ലായ്പ്പോഴും കണക്കാക്കും). ഓഫാക്കിയാൽ, പ്രൊവൈഡർ ഐഡിയുള്ള നിലനിർത്തിയ എല്ലാ തിരയൽ വരികളും സൂക്ഷിക്കും.",
"publicSystem": {
"notFound": {
"title": "പേജ് കണ്ടെത്തിയില്ല",
@@ -13956,7 +13978,7 @@
"runners": "റണ്ണറുകൾ",
"tasks": "ടാസ്കുകൾ",
"colName": "പേര്",
- "colClis": "CLIs",
+ "colClis": "CLI-കൾ",
"colStatus": "നില",
"colTask": "ടാസ്ക്",
"colMode": "മോഡ്",
@@ -14029,9 +14051,9 @@
"filterSources": "ഉറവിടങ്ങൾ",
"filterProviders": "സേവനദാതാക്കൾ",
"clearFilters": "ഫിൽട്ടറുകൾ മായ്ക്കുക",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "ക്ലൗഡ് ഏജന്റ്",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "കണ്ടക്ടർ",
"sourceStale": "{since} മുതൽ പുതുക്കിയിട്ടില്ല",
"sourceOffline": "ഓഫ്ലൈൻ",
"sourceCollapse": "ചുരുക്കുക",
diff --git a/src/i18n/messages/mr.json b/src/i18n/messages/mr.json
index 27778d5ba6..036a6215c6 100644
--- a/src/i18n/messages/mr.json
+++ b/src/i18n/messages/mr.json
@@ -1,15 +1,15 @@
{
"common": {
- "save": "Save",
- "cancel": "Cancel",
- "delete": "Delete",
- "loading": "Loading...",
+ "save": "जतन करा",
+ "cancel": "रद्द करा",
+ "delete": "हटवा",
+ "loading": "लोड करत आहे...",
"selectOption": "पर्याय निवडा",
- "error": "An error occurred",
- "success": "Success",
- "confirm": "Are you sure?",
- "refresh": "Refresh",
- "close": "Close",
+ "error": "एक त्रुटी आली",
+ "success": "यशस्वी",
+ "confirm": "तुम्हाला खात्री आहे का?",
+ "refresh": "रीफ्रेश करा",
+ "close": "बंद करा",
"previousPage": "मागील पृष्ठ",
"nextPage": "पुढील पृष्ठ",
"capsLockOn": "Caps Lock सुरू आहे",
@@ -17,142 +17,142 @@
"toggleColumns": "कॉलम टॉगल करा",
"confirmTitle": "निश्चित करा",
"confirmAction": "निश्चित करा",
- "add": "Add",
- "edit": "Edit",
- "search": "Search",
- "back": "Back",
- "next": "Next",
- "submit": "Submit",
- "reset": "Reset",
- "copy": "Copy",
- "copied": "Copied!",
- "enabled": "Enabled",
- "disabled": "Disabled",
- "active": "Active",
- "inactive": "Inactive",
- "noData": "No data available",
- "nothingHere": "Nothing here yet",
- "configure": "Configure",
+ "add": "जोडा",
+ "edit": "संपादित करा",
+ "search": "शोधा",
+ "back": "मागे",
+ "next": "पुढे",
+ "submit": "सबमिट करा",
+ "reset": "रीसेट करा",
+ "copy": "कॉपी करा",
+ "copied": "कॉपी केले!",
+ "enabled": "सक्षम",
+ "disabled": "अक्षम",
+ "active": "सक्रिय",
+ "inactive": "निष्क्रिय",
+ "noData": "कोणताही डेटा उपलब्ध नाही",
+ "nothingHere": "अद्याप येथे काहीही नाही",
+ "configure": "कॉन्फिगर करा",
"manualConfig": "मॅन्युअल कॉन्फिग",
- "manage": "Manage",
- "name": "Name",
- "actions": "Actions",
- "status": "Status",
- "type": "Type",
+ "manage": "व्यवस्थापित करा",
+ "name": "नाव",
+ "actions": "क्रिया",
+ "status": "स्थिती",
+ "type": "प्रकार",
"model": "Model",
- "models": "models",
- "provider": "Provider",
+ "models": "मॉडेल्स",
+ "provider": "प्रदाता",
"unknownProvider": "अज्ञात प्रदाता",
- "account": "Account",
- "time": "Time",
- "details": "Details",
- "created": "Created",
- "lastUsed": "Last Refreshed",
- "loadMore": "Load More",
- "noResults": "No results found",
- "reloadPage": "Reload Page",
- "connected": "Connected",
- "disconnected": "Disconnected",
- "notConfigured": "Not configured",
- "testConnection": "Test Connection",
- "enable": "Enable",
- "disable": "Disable",
- "columns": "Columns",
- "newest": "Newest",
- "oldest": "Oldest",
- "all": "All",
- "none": "None",
- "yes": "Yes",
- "no": "No",
+ "account": "खाते",
+ "time": "वेळ",
+ "details": "तपशील",
+ "created": "तयार केले",
+ "lastUsed": "शेवटचे रीफ्रेश केले",
+ "loadMore": "आणखी लोड करा",
+ "noResults": "कोणतेही परिणाम आढळले नाहीत",
+ "reloadPage": "पृष्ठ पुन्हा लोड करा",
+ "connected": "कनेक्ट केलेले",
+ "disconnected": "डिस्कनेक्ट केलेले",
+ "notConfigured": "कॉन्फिगर केलेले नाही",
+ "testConnection": "कनेक्शन तपासा",
+ "enable": "सक्षम करा",
+ "disable": "अक्षम करा",
+ "columns": "स्तंभ",
+ "newest": "सर्वात नवीन",
+ "oldest": "सर्वात जुने",
+ "all": "सर्व",
+ "none": "काहीही नाही",
+ "yes": "होय",
+ "no": "नाही",
"on": "चालू",
"off": "बंद",
- "warning": "Warning",
- "note": "Note",
- "free": "Free",
- "skipToContent": "Skip to content",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
- "accept": "Accept",
- "accountId": "Account ID",
+ "warning": "चेतावणी",
+ "note": "टीप",
+ "free": "विनामूल्य",
+ "skipToContent": "मजकुराकडे जा",
+ "maintenanceServerIssues": "सर्व्हरमध्ये समस्या येत आहेत. काही वैशिष्ट्ये अनुपलब्ध असू शकतात.",
+ "maintenanceServerUnreachable": "सर्व्हरशी संपर्क होऊ शकत नाही. पुन्हा कनेक्ट करत आहे...",
+ "accept": "स्वीकारा",
+ "accountId": "खाते आयडी",
"alias": "Alias",
- "apiKeyId": "API Key ID",
- "apiKeyName": "API Key Name",
- "apiKeySecret": "API Key Secret",
- "authorization": "Authorization",
- "content-type": "Content Type",
- "content-length": "Content Length",
+ "apiKeyId": "API की आयडी",
+ "apiKeyName": "API कीचे नाव",
+ "apiKeySecret": "API की गुपित",
+ "authorization": "अधिकृतता",
+ "content-type": "सामग्री प्रकार",
+ "content-length": "सामग्रीची लांबी",
"cookie": "Cookie",
- "file": "File",
- "host": "Host",
+ "file": "फाइल",
+ "host": "होस्ट",
"id": "ID",
- "import": "Import",
+ "import": "आयात करा",
"limit": "Limit",
"offset": "Offset",
- "open": "Open",
- "origin": "Origin",
- "promptTokens": "Prompt Tokens",
- "completionTokens": "Completion Tokens",
- "totalTokens": "Total Tokens",
- "rawModel": "Raw Model",
- "scope": "Scope",
- "skill": "Skill",
- "sortBy": "Sort By",
- "sortOrder": "Sort Order",
- "tab": "Tab",
+ "open": "उघडा",
+ "origin": "मूळ",
+ "promptTokens": "प्रॉम्प्ट टोकन",
+ "completionTokens": "पूर्णता टोकन",
+ "totalTokens": "एकूण टोकन",
+ "rawModel": "मूळ मॉडेल",
+ "scope": "व्याप्ती",
+ "skill": "कौशल्य",
+ "sortBy": "यानुसार क्रम लावा",
+ "sortOrder": "क्रमवारीचा क्रम",
+ "tab": "टॅब",
"text": "Text",
- "textarea": "Textarea",
- "tool": "Tool",
- "toolId": "Tool ID",
+ "textarea": "मजकूर क्षेत्र",
+ "tool": "साधन",
+ "toolId": "साधन ID",
"web": "Web",
- "whereUsed": "Where Used",
- "whitelist": "Whitelist",
- "blacklist": "Blacklist",
- "resolve": "Resolve",
- "force": "Force",
+ "whereUsed": "वापराचे ठिकाण",
+ "whitelist": "अनुमतीसूची",
+ "blacklist": "प्रतिबंधसूची",
+ "resolve": "निराकरण करा",
+ "force": "सक्ती करा",
"base64url": "Base64 URL",
"hex": "Hex",
- "range": "Range",
- "component": "Component",
- "redirect_uri": "Redirect URI",
- "idempotency-key": "Idempotency Key",
- "error_description": "Error Description",
- "code": "Code",
- "compatible": "Compatible",
- "chat-completions": "Chat Completions",
+ "range": "श्रेणी",
+ "component": "घटक",
+ "redirect_uri": "पुनर्निर्देशन URI",
+ "idempotency-key": "आयडेम्पोटन्सी की",
+ "error_description": "त्रुटीचे वर्णन",
+ "code": "कोड",
+ "compatible": "सुसंगत",
+ "chat-completions": "चॅट पूर्णता",
"oauth": "OAuth",
- "auth_token": "Auth Token",
- "crypto": "Crypto",
- "hours": "Hours",
+ "auth_token": "प्रमाणीकरण टोकन",
+ "crypto": "क्रिप्टो",
+ "hours": "तास",
"selfsigned": "Self-signed",
- "proxy_id": "Proxy ID",
- "proxyId": "Proxy ID",
- "connectionId": "Connection ID",
- "resolveConnectionId": "Resolve Connection ID",
- "resolve_connection_id": "Resolve Connection ID",
- "scope_id": "Scope ID",
- "scopeId": "Scope ID",
- "jwtSecret": "JWT Secret",
+ "proxy_id": "प्रॉक्सी ID",
+ "proxyId": "प्रॉक्सी ID",
+ "connectionId": "कनेक्शन ID",
+ "resolveConnectionId": "कनेक्शन ID निराकरण करा",
+ "resolve_connection_id": "कनेक्शन ID निराकरण करा",
+ "scope_id": "व्याप्ती ID",
+ "scopeId": "व्याप्ती ID",
+ "jwtSecret": "JWT गुप्त की",
"keytar": "Keytar",
"better-sqlite3": "better-sqlite3",
"undici": "undici",
"builder-id": "Builder ID",
- "musicDesc": "Music Description",
- "musicGeneration": "Music Generation",
+ "musicDesc": "संगीताचे वर्णन",
+ "musicGeneration": "संगीत निर्मिती",
"idc": "IDC",
- "cloud-status-changed": "Cloud status changed",
- "where_used": "Where Used",
- "windowMs": "Window (ms)",
+ "cloud-status-changed": "क्लाउड स्थिती बदलली",
+ "where_used": "वापराचे ठिकाण",
+ "windowMs": "कालावधी (ms)",
"social-github": "GitHub",
"social-google": "Google",
- "TOOL_ALLOWLIST": "Tool Allowlist",
- "TOOL_DENYLIST": "Tool Denylist",
- "Failed to save pricing": "Failed to save pricing",
- "Failed to reset pricing": "Failed to reset pricing",
- "apikey": "API Key",
+ "TOOL_ALLOWLIST": "साधन अनुमतीसूची",
+ "TOOL_DENYLIST": "साधन प्रतिबंधसूची",
+ "Failed to save pricing": "किंमत जतन करण्यात अयशस्वी",
+ "Failed to reset pricing": "किंमत रीसेट करण्यात अयशस्वी",
+ "apikey": "API की",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "डॅशबोर्डवर जा",
+ "checkSystemStatus": "सिस्टमची स्थिती तपासा",
+ "selectModel": "मॉडेल निवडा",
"addModel": "मॉडेल जोडा",
"effortNone": "काहीही नाही",
"effortLow": "कमी",
@@ -162,12 +162,12 @@
"effortMax": "कमाल",
"effortUltra": "अल्ट्रा",
"reasoningEffort": "तार्किक प्रयत्न",
- "wireApi": "Wire API",
+ "wireApi": "API जोडा",
"modelAliases": "मॉडेल अलियासेस",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "कॉम्बो",
+ "noModelsFound": "कोणतेही मॉडेल सापडले नाही",
+ "clear": "साफ करा",
+ "done": "पूर्ण झाले",
"selectAll": "सर्व निवडा",
"unselectAll": "निवड रद्द करा",
"visibleModels": "दृश्यमान",
@@ -184,527 +184,527 @@
"selectAllProviders": "सर्व प्रदात्यांची तपासणी करा",
"clearProviderSelection": "प्रदात्यांचे निवडणे रद्द करा",
"providersSelectedCount": "{count} प्रदाते तपासले",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "त्रुटी आली",
+ "comboDeleted": "कॉम्बो हटवला",
+ "hide": "लपवा",
+ "creating": "तयार करत आहे",
+ "comboCreated": "कॉम्बो तयार केला",
+ "swapFormats": "स्वरूपांची अदलाबदल करा",
+ "daysAgo": "दिवसांपूर्वी",
+ "retries": "पुनःप्रयत्न",
+ "errorDuringRestore": "पुनर्संचयित करताना त्रुटी",
+ "eventsAppearHint": "इव्हेंट येथे दिसतील",
+ "noLockouts": "कोणतेही लॉकआउट नाहीत",
+ "webSearchDesc": "वेब शोधाचे वर्णन",
+ "audioProvidersHeading": "ऑडिओ प्रदाते",
"cloudAgentProviders": "क्लाउड एजंट प्रदाते",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "मिनिटांपूर्वी",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "थेट स्वयं-रीफ्रेश होत आहे",
+ "webSearch": "वेब शोध",
+ "anthropicPrefixPlaceholder": "Anthropic उपसर्ग प्लेसहोल्डर",
+ "addModelToCombo": "कॉम्बोमध्ये मॉडेल जोडा",
+ "failedToLoad": "लोड करण्यात अयशस्वी",
+ "categoryMedia": "मीडिया श्रेणी",
+ "enableCloud": "क्लाउड सक्षम करा",
+ "expirationBannerExpiringSoon": "कालबाह्यता जवळ आली आहे",
+ "retry": "पुन्हा प्रयत्न करा",
+ "embeddings": "एम्बेडिंग्ज",
+ "errorCount": "त्रुटी संख्या",
+ "backupReasonManual": "बॅकअपचे कारण: मॅन्युअल",
+ "safeSearchModerate": "सुरक्षित शोध: मध्यम",
+ "activeLimiters": "सक्रिय मर्यादक",
+ "a2aCardTitle": "A2A कार्डचे शीर्षक",
+ "cloudWorkerUnreachable": "क्लाउड वर्करशी संपर्क होऊ शकत नाही",
+ "testFailed": "चाचणी अयशस्वी",
+ "compatibleBaseUrlHint": "सुसंगत बेस URL सूचना",
+ "usageTracking": "वापराचा मागोवा",
+ "disableCloudTitle": "क्लाउड अक्षम करा शीर्षक",
+ "noConnections": "कोणतीही कनेक्शने नाहीत",
+ "providerHealth": "प्रदात्याची स्थिती",
+ "confirmDbImport": "Db आयात निश्चित करा",
+ "notAvailableSymbol": "उपलब्ध नसल्याचे चिन्ह",
+ "backupsAvailable": "उपलब्ध बॅकअप",
+ "providerAuto": "स्वयंचलित प्रदाता",
+ "newProviderNamePlaceholder": "नवीन प्रदात्याच्या नावाचा प्लेसहोल्डर",
+ "a2aQuickStartStep2": "A2A द्रुत प्रारंभ चरण 2",
+ "ok": "ठीक आहे",
+ "available": "उपलब्ध",
+ "noBackupYet": "अद्याप कोणताही बॅकअप नाही",
+ "more": "अधिक",
+ "noCompatibleYet": "अद्याप कोणतेही सुसंगत नाही",
+ "multiProvider": "एकाधिक प्रदाते",
+ "repairEnvHint": "Env दुरुस्तीची सूचना",
+ "disablingCloud": "क्लाउड अक्षम करत आहे",
+ "testBench": "चाचणी मंच",
+ "valid": "वैध",
+ "cloudBenefitShare": "क्लाउड लाभ सामायिकरण",
+ "mcpCardTitle": "Mcp कार्ड शीर्षक",
+ "disableConfirm": "अक्षम करण्याची पुष्टी करा",
+ "filters": "फिल्टर्स",
+ "expirationBannerExpiredDesc": "कालबाह्य बॅनरचे कालबाह्य वर्णन",
+ "saveComboDefaults": "कॉम्बो डीफॉल्ट जतन करा",
+ "cloudConnectedVerified": "क्लाउड कनेक्शन सत्यापित",
+ "uptime": "कार्यरत कालावधी",
+ "compatibleProdPlaceholder": "सुसंगत Prod प्लेसहोल्डर",
+ "fallbackChainsTitle": "फॉलबॅक साखळ्यांचे शीर्षक",
+ "oauthLabel": "Oauth लेबल",
+ "a2aCardDescription": "A2A कार्डचे वर्णन",
+ "okShort": "ठीक",
+ "maintenance": "देखभाल",
+ "formatConverter": "स्वरूप परिवर्तक",
+ "zedImportNetworkError": "Zed आयात नेटवर्क त्रुटी",
+ "apiKeyLabel": "Api की लेबल",
+ "noModelsForProvider": "प्रदात्यासाठी कोणतेही मॉडेल नाहीत",
+ "mcpCardDescription": "Mcp कार्डचे वर्णन",
+ "apiTypeLabel": "Api प्रकार लेबल",
+ "configuredProvidersLabel": "कॉन्फिगर केलेले प्रदाते लेबल",
+ "maxRetriesLabel": "कमाल पुनःप्रयत्न लेबल",
+ "title": "शीर्षक",
+ "output": "आउटपुट",
+ "prefixHint": "उपसर्गाची सूचना",
+ "skipWizard": "विझार्ड वगळा",
+ "failedCount": "अयशस्वी संख्या",
+ "confirmDbImportDesc": "डेटाबेस आयातीच्या पुष्टीकरणाचे वर्णन",
+ "entries": "नोंदी",
+ "until": "पर्यंत",
+ "disableCombo": "संयोजन अक्षम करा",
+ "liveMonitorDescriptionPrefix": "लाइव्ह मॉनिटरच्या वर्णनाचा उपसर्ग",
+ "runningCount": "चालू असलेल्यांची संख्या",
+ "noActiveConnectionsInGroup": "गटात कोणतीही सक्रिय कनेक्शने नाहीत",
+ "savedSuccessfully": "यशस्वीरीत्या जतन केले",
+ "systemStorage": "सिस्टम स्टोरेज",
+ "videoDesc": "व्हिडिओचे वर्णन",
+ "maxResults": "कमाल परिणाम",
+ "timeRangeMonth": "कालावधी: महिना",
+ "testSummary": "चाचणीचा सारांश",
+ "failedSetPassword": "पासवर्ड सेट करणे अयशस्वी झाले",
+ "audio": "ऑडिओ",
+ "restore": "पुनर्संचयित करा",
+ "disableWarning": "चेतावणी अक्षम करा",
+ "moderationsDesc": "मॉडरेशन्सचे वर्णन",
+ "providerHealthStatusAria": "प्रदात्याच्या आरोग्य स्थितीसाठी ARIA",
+ "modelNamePlaceholder": "मॉडेल नावासाठी प्लेसहोल्डर",
+ "mcpQuickStartStep2": "Mcp द्रुत प्रारंभ: पायरी 2",
+ "quickStart": "द्रुत प्रारंभ",
+ "fullExportFailedWithError": "त्रुटीसह संपूर्ण निर्यात अयशस्वी झाली",
+ "loadingBackups": "बॅकअप लोड होत आहेत",
+ "anthropicBaseUrlPlaceholder": "Anthropic बेस URL प्लेसहोल्डर",
+ "description": "वर्णन",
+ "noProviderFound": "कोणताही प्रदाता आढळला नाही",
+ "auto": "स्वयंचलित",
+ "protocolsDescription": "प्रोटोकॉलचे वर्णन",
+ "cloudSessionNote": "क्लाउड सत्राची नोंद",
+ "advancedSettings": "प्रगत सेटिंग्ज",
+ "defaultStrategy": "डीफॉल्ट धोरण",
+ "purgeExpiredLogs": "कालबाह्य लॉग हटवा",
+ "justNow": "आत्ताच",
+ "providerTestFailed": "प्रदाता चाचणी अयशस्वी",
+ "openaiBaseUrlPlaceholder": "Openai बेस URL प्लेसहोल्डर",
+ "image": "प्रतिमा",
+ "failedCreateChain": "साखळी तयार करण्यात अयशस्वी",
+ "importDatabase": "डेटाबेस आयात करा",
+ "allDataLocal": "सर्व डेटा स्थानिक",
+ "sectionTitle": "विभागाचे शीर्षक",
+ "failedToggle": "टॉगल करण्यात अयशस्वी",
+ "editCombo": "कॉम्बो संपादित करा",
+ "testResults": "चाचणी निकाल",
+ "searchQuery": "शोध क्वेरी",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "प्रत तयार करा",
+ "createCombo": "कॉम्बो तयार करा",
+ "searchTypeWeb": "शोध प्रकार: वेब",
+ "addChain": "साखळी जोडा",
+ "prefixLabel": "उपसर्ग लेबल",
+ "listModelsDesc": "मॉडेल सूचीचे वर्णन",
+ "databaseSize": "डेटाबेसचा आकार",
+ "chainCreated": "साखळी तयार झाली",
+ "providerTestTimeout": "प्रदाता चाचणीची वेळ संपली",
+ "routingStrategy": "राउटिंग धोरण",
+ "translateAction": "भाषांतर क्रिया",
+ "exportFailed": "निर्यात अयशस्वी",
+ "connectedVerificationPending": "कनेक्ट झाले, पडताळणी प्रलंबित",
+ "a2aQuickStartTitle": "A2A द्रुत प्रारंभ शीर्षक",
+ "couldNotTest": "चाचणी करता आली नाही",
+ "testAllCompatible": "सर्व सुसंगत पर्यायांची चाचणी करा",
+ "anthropicCompatibleName": "Anthropic-सुसंगत नाव",
+ "disabling": "अक्षम करत आहे",
+ "failedEnable": "सक्षम करण्यात अयशस्वी",
+ "categoryUtility": "उपयुक्तता श्रेणी",
+ "customUrlOptional": "सानुकूल URL (पर्यायी)",
+ "localProviders": "स्थानिक प्रदाते",
+ "comboNamePlaceholder": "कॉम्बो नाव प्लेसहोल्डर",
+ "memoryRss": "मेमरी RSS",
+ "disableProvider": "प्रदाता अक्षम करा",
+ "welcomeDesc": "स्वागत वर्णन",
+ "nameLabel": "नावाचे लेबल",
+ "allOperational": "सर्व कार्यरत",
+ "backupNow": "आत्ताच बॅकअप घ्या",
+ "providerMaxRetriesAria": "प्रदात्याच्या कमाल पुनर्प्रयत्नांसाठी ARIA",
+ "textToSpeechDesc": "टेक्स्ट टू स्पीचचे वर्णन",
+ "machineId": "मशीन आयडी",
+ "globalProxy": "जागतिक प्रॉक्सी",
+ "hitsMisses": "हिट्स आणि मिसेस",
+ "testDesc": "चाचणीचे वर्णन",
+ "chatDesc": "चॅटचे वर्णन",
+ "importSuccess": "आयात यशस्वी",
+ "chat": "चॅट",
+ "a2aQuickStartStep1": "A2A द्रुत प्रारंभ चरण 1",
+ "importFailed": "आयात अयशस्वी",
+ "inputPlaceholder": "इनपुट प्लेसहोल्डर",
+ "providerModelsTitle": "प्रदाता मॉडेल्सचे शीर्षक",
+ "lastBackup": "शेवटचा बॅकअप",
+ "yourEndpoint": "तुमचा एंडपॉइंट",
+ "autoDisableThresholdDesc": "स्वयं-अक्षम करण्याच्या मर्यादेचे वर्णन",
+ "rerankDesc": "पुनर्क्रमांकनाचे वर्णन",
+ "modelsPathPlaceholder": "मॉडेल्स पाथ प्लेसहोल्डर",
+ "noCombosYet": "अद्याप कोणतेही कॉम्बो नाहीत",
+ "connectedVerificationPendingWithError": "कनेक्ट केले आहे; त्रुटीमुळे पडताळणी प्रलंबित आहे",
+ "comboDefaultsGuideHint1": "कॉम्बो डीफॉल्ट्स मार्गदर्शक सूचना 1",
+ "enableCloudTitle": "क्लाउड सक्षम करा शीर्षक",
+ "configuredProvidersHint": "कॉन्फिगर केलेल्या प्रदात्यांची सूचना",
+ "paused": "विराम दिला",
+ "llmProviders": "LLM प्रदाते",
+ "enableCombo": "कॉम्बो सक्षम करा",
+ "removeProviderOverrideAria": "प्रदाता ओव्हरराइड काढण्यासाठी ARIA",
+ "nodeVersion": "Node आवृत्ती",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "त्रुटीसह निर्यात अयशस्वी",
+ "proxyConfigured": "प्रॉक्सी कॉन्फिगर केली",
+ "concurrencyPerModel": "प्रति मॉडेल समकालिकता",
+ "protocolTasksLabel": "प्रोटोकॉल कार्यांचे लेबल",
+ "oauthProviders": "OAuth प्रदाते",
+ "lockedCount": "लॉक केलेल्यांची संख्या",
+ "deleteChainConfirm": "साखळी हटवण्याची पुष्टी",
+ "recentTranslations": "अलीकडील भाषांतरे",
+ "zedImportButton": "Zed आयात बटण",
+ "responsesDesc": "प्रतिसादांचे वर्णन",
+ "testedCount": "चाचणी केलेल्यांची संख्या",
+ "providersCommaSeparatedPlaceholder": "प्रदाते स्वल्पविरामाने विभक्त केलेले प्लेसहोल्डर",
+ "signatureDefaults": "स्वाक्षरीची डीफॉल्ट मूल्ये",
+ "errorCreating": "तयार करताना त्रुटी",
+ "timeRangeYear": "कालावधी: वर्ष",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
- "testBenchTab": "Test Bench",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "cloudDisabledSuccess": "क्लाउड यशस्वीरित्या अक्षम केले",
+ "deleteConfirm": "हटवण्याची पुष्टी करा",
+ "check": "तपासा",
+ "safeSearch": "सुरक्षित शोध",
+ "protocolLastActivity": "प्रोटोकॉलची शेवटची गतिविधी",
+ "openMcpDashboard": "Mcp डॅशबोर्ड उघडा",
+ "testBenchTab": "चाचणी मंच",
+ "chatPathLabel": "चॅट पथ लेबल",
+ "retryDelay": "पुन्हा प्रयत्न करण्यापूर्वीचा विलंब",
+ "errorUpdating": "अपडेट करताना त्रुटी",
+ "ideCliIntegrations": "IDE CLI एकत्रीकरणे",
+ "imageGeneration": "प्रतिमा निर्मिती",
+ "apiKeyRequired": "API की आवश्यक आहे",
+ "resetAllTitle": "सर्व रीसेट करा",
+ "connectionError": "कनेक्शन त्रुटी",
+ "modelName": "मॉडेलचे नाव",
+ "apiKeyForCheck": "तपासणीसाठी API की",
+ "cloudRequestTimeout": "क्लाउड विनंतीची कालमर्यादा संपली",
+ "showConfiguredOnly": "केवळ कॉन्फिगर केलेले दाखवा",
"showFreeOnly": "फक्त मोफत",
"addFirstProvider": "तुमचा पहिला प्रदाता जोडा",
"addFirstProviderDesc": "OmniRoute द्वारे विनंती राउटिंग सुरू करण्यासाठी AI प्रदात्याशी कनेक्ट करा. तुम्ही मोफत प्रदाता, API की किंवा OAuth खाती वापरू शकता.",
"learnMore": "अधिक जाणून घ्या",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "डोमेन्स समाविष्ट करा",
+ "promptCache": "प्रॉम्प्ट कॅशे",
+ "cloudConnected": "क्लाउड कनेक्ट झाले",
+ "deleteChain": "शृंखला हटवा",
+ "chatPathPlaceholder": "चॅट पथ प्लेसहोल्डर",
+ "databasePath": "डेटाबेस पथ",
+ "usingLocalServer": "स्थानिक सर्व्हर वापरत आहे",
+ "globalComboConfig": "जागतिक कॉम्बो कॉन्फिगरेशन",
+ "backupFailed": "बॅकअप अयशस्वी",
+ "tabProtocols": "प्रोटोकॉल टॅब",
+ "continue": "सुरू ठेवा",
+ "categorySearch": "श्रेणी शोध",
+ "rateLimitStatus": "दरमर्यादा स्थिती",
+ "repairEnvSuccess": "वातावरण यशस्वीरित्या दुरुस्त केले",
+ "nameRequired": "नाव आवश्यक आहे",
+ "country": "देश",
+ "trackMetricsDesc": "मेट्रिक्सचा मागोवा घेण्याचे वर्णन",
+ "durationSecondsShort": "कालावधी (से.)",
+ "formatConverterDescription": "स्वरूप परिवर्तकाचे वर्णन",
+ "cloudBenefitAccess": "Cloud लाभाचा वापर",
+ "maxRetries": "कमाल पुनर्प्रयत्न",
+ "queueTimeout": "रांग कालबाह्यता",
"queueDepth": "क्यू डेप्थ",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "प्रदाता जोडा",
+ "realtime": "रिअलटाइम",
+ "totalTranslations": "एकूण भाषांतरे",
+ "protocolActiveStreamsLabel": "प्रोटोकॉल सक्रिय प्रवाह लेबल",
+ "repairEnv": "Env दुरुस्त करा",
+ "modelsCount": "मॉडेलची संख्या",
+ "viewBackups": "बॅकअप पहा",
+ "responsesApi": "Responses API",
+ "copyComboName": "कॉम्बोचे नाव कॉपी करा",
+ "failures": "अपयश",
+ "failedUpdate": "अपडेट अयशस्वी",
+ "imageDesc": "प्रतिमेचे वर्णन",
+ "failedCreate": "निर्मिती अयशस्वी",
+ "remainingOfLimit": "मर्यादेपैकी उर्वरित",
+ "protocolsTitle": "प्रोटोकॉल शीर्षक",
+ "expirationBannerExpiringSoonDesc": "लवकरच कालबाह्य होण्याच्या सूचनेचे वर्णन",
+ "source": "स्रोत",
+ "failed": "अयशस्वी",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "MCP द्रुत प्रारंभ पायरी 1",
+ "runTest": "चाचणी चालवा",
+ "loadingFallbackChains": "फॉलबॅक साखळ्या लोड होत आहेत",
+ "healthy": "सुस्थितीत",
+ "version": "आवृत्ती",
+ "saveBlockWeighted": "भारित ब्लॉक जतन करा",
+ "zedImportNone": "Zed आयात उपलब्ध नाही",
+ "noBackupsYet": "अद्याप कोणतेही बॅकअप नाहीत",
+ "noGlobalProxy": "कोणताही ग्लोबल प्रॉक्सी नाही",
+ "noModels": "कोणतीही मॉडेल्स नाहीत",
+ "stickyLimit": "स्थिर मर्यादा",
+ "passedCount": "उत्तीर्ण संख्या",
+ "zedImportFailed": "Zed आयात अयशस्वी",
+ "saving": "जतन होत आहे",
+ "testAll": "सर्वांची चाचणी करा",
+ "globalProxyDesc": "ग्लोबल प्रॉक्सीचे वर्णन",
+ "latencyP99": "विलंबता P99",
+ "connectingToCloud": "क्लाउडशी कनेक्ट करत आहे",
+ "responses": "प्रतिसाद",
+ "errorDeleting": "हटवताना त्रुटी",
+ "openaiPrefixPlaceholder": "Openai उपसर्ग प्लेसहोल्डर",
+ "enterPassword": "पासवर्ड प्रविष्ट करा",
+ "openA2aDashboard": "A2A डॅशबोर्ड उघडा",
+ "enableProvider": "प्रदाता सक्षम करा",
+ "modeTest": "चाचणी मोड",
+ "failedDeleteChain": "साखळी हटवण्यात अयशस्वी",
+ "providerDesc": "प्रदात्याचे वर्णन",
+ "templateLoadHint": "टेम्पलेट लोड करण्याची सूचना",
+ "lastFailure": "शेवटचे अपयश",
+ "moveDown": "खाली हलवा",
+ "providerLabel": "प्रदात्याचे लेबल",
+ "clearCacheFailed": "कॅशे साफ करण्यात अयशस्वी",
+ "imagesGenerations": "प्रतिमा निर्मिती",
+ "repairEnvWorking": "Env दुरुस्ती सुरू आहे",
+ "millisecondsShort": "मिलीसेकंद संक्षेप",
+ "globalLabel": "जागतिक लेबल",
+ "failuresPlural": "अपयशे",
+ "completionsLegacyDesc": "लेगसी पूर्णत्वाचे वर्णन",
+ "searchProviders": "प्रदाते शोधा",
+ "chatPathHint": "चॅट पथाची सूचना",
+ "defaultStrategyDesc": "डीफॉल्ट धोरणाचे वर्णन",
+ "latencyP95": "विलंबता P95",
+ "textToSpeech": "मजकूर ते भाषण",
+ "searchType": "शोध प्रकार",
+ "messages": "संदेश",
+ "aggregatorsGateways": "अॅग्रीगेटर्स आणि गेटवे",
+ "comboStrategyAria": "संयोजन धोरण Aria",
+ "input": "इनपुट",
+ "testingConnection": "कनेक्शनची चाचणी सुरू आहे",
+ "excludeDomains": "डोमेन वगळा",
+ "webCookieProviders": "वेब कुकी प्रदाते",
+ "allTestsPassed": "सर्व चाचण्या उत्तीर्ण झाल्या",
+ "openaiCompatibleName": "Openai-सुसंगत नाव",
+ "warningCostOptimizedPartialPricing": "इशारा: किंमत-अनुकूलित आंशिक मूल्यनिर्धारण",
+ "comboDefaultsGuideTitle": "संयोजन डीफॉल्ट मार्गदर्शकाचे शीर्षक",
+ "hoursAgo": "तासांपूर्वी",
+ "notAvailable": "उपलब्ध नाही",
+ "skipAndContinue": "वगळा आणि पुढे सुरू ठेवा",
+ "moderations": "मॉडरेशन्स",
+ "proxyConfig": "प्रॉक्सी कॉन्फिगरेशन",
+ "upstreamProxyProviders": "अपस्ट्रीम प्रॉक्सी प्रदाते",
+ "exportAll": "सर्व निर्यात करा",
+ "queuedCount": "रांगेतील संख्या",
+ "resetAll": "सर्व रीसेट करा",
+ "noTranslations": "भाषांतरे नाहीत",
+ "avgLatency": "सरासरी विलंब",
+ "throttleStatus": "थ्रॉटल स्थिती",
+ "backupRetentionDesc": "बॅकअप धारणा वर्णन",
+ "noCBData": "Cb डेटा नाही",
+ "chainDeleted": "साखळी हटवली",
+ "timeLeft": "उर्वरित वेळ",
+ "expirationBannerExpired": "कालबाह्यतेचा बॅनर कालबाह्य झाला",
+ "language": "भाषा",
+ "invalidFileType": "अवैध फाइल प्रकार",
+ "monitoredProviders": "निरीक्षण केलेले प्रदाते",
+ "errors": "त्रुटी",
+ "heap": "हीप",
+ "chatCompletions": "चॅट पूर्णता",
+ "exampleTemplatesHint": "उदाहरण टेम्पलेट्ससाठी सूचना",
+ "retryDelayLabel": "पुनःप्रयत्न विलंब लेबल",
+ "audioTranscription": "ऑडिओ लिप्यंतरण",
+ "fallbackChainsDesc": "फॉलबॅक साखळ्यांचे वर्णन",
+ "exampleTemplates": "उदाहरण टेम्पलेट्स",
+ "connectionsCount": "कनेक्शनची संख्या",
+ "modelsPathLabel": "मॉडेल्स पथ लेबल",
+ "activeProvidersHint": "सक्रिय प्रदात्यांसाठी सूचना",
+ "activeLockouts": "सक्रिय लॉकआउट्स",
+ "invalid": "अवैध",
+ "skipPassword": "पासवर्ड वगळा",
+ "moveUp": "वर हलवा",
+ "timeRange": "कालावधी",
+ "stickyLimitDesc": "स्टिकी मर्यादेचे वर्णन",
+ "cloudBenefitEdge": "क्लाउड लाभाचा काठ",
+ "custom": "सानुकूल",
+ "verifying": "पडताळणी सुरू आहे",
+ "baseUrlLabel": "बेस URL लेबल",
+ "setPassword": "पासवर्ड सेट करा",
+ "safeSearchStrict": "कठोर सुरक्षित शोध",
+ "noChangesSinceBackup": "बॅकअपनंतर कोणतेही बदल नाहीत",
+ "modelsPathHint": "मॉडेल्स पाथसाठी सूचना",
+ "audioTranscriptions": "ऑडिओ लिप्यंतरणे",
+ "testCombo": "कॉम्बोची चाचणी करा",
+ "mcpQuickStartTitle": "Mcp द्रुत प्रारंभ शीर्षक",
+ "comboUpdated": "कॉम्बो अपडेट केला",
+ "weighted": "भारित",
+ "providers": "प्रदाते",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
- "chatTesterTab": "Chat Tester",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "noFallbackChainsDesc": "फॉलबॅक शृंखला उपलब्ध नसल्याचे वर्णन",
+ "yesImport": "होय, आयात करा",
+ "lockoutsAutoRefreshHint": "लॉकआउट स्वयंचलित रीफ्रेश सूचना",
+ "tabApis": "APIs टॅब",
+ "sectionDescription": "विभागाचे वर्णन",
+ "filter": "फिल्टर",
+ "purgeLogsFailed": "लॉग हटवणे अयशस्वी झाले",
+ "latency": "विलंबता",
+ "testAllOAuth": "सर्व OAuth ची चाचणी करा",
+ "mcpQuickStartStep3": "Mcp द्रुत प्रारंभ चरण 3",
+ "repairEnvFailed": "Env दुरुस्ती अयशस्वी झाली",
+ "zedImportHint": "Zed आयात सूचना",
+ "modelsAcrossEndpoints": "सर्व एंडपॉइंट्सवरील मॉडेल्स",
+ "autoDisableBannedAccounts": "प्रतिबंधित खाती स्वयंचलितपणे निष्क्रिय करा",
+ "securityDesc": "सुरक्षेचे वर्णन",
+ "listModels": "मॉडेल्सची यादी",
+ "backupRestore": "बॅकअप पुनर्संचयित करा",
+ "target": "लक्ष्य",
+ "zedImportSuccess": "Zed आयात यशस्वी झाली",
+ "lastHeaderUpdate": "शेवटचे हेडर अपडेट",
+ "categoryCore": "मुख्य श्रेणी",
+ "noFallbackChains": "फॉलबॅक शृंखला नाहीत",
+ "noSearchProviders": "शोध प्रदाते नाहीत",
+ "autoBalance": "स्वयंचलित संतुलन",
+ "noModelsYet": "अद्याप कोणतीही मॉडेल्स नाहीत",
+ "signatureFamily": "स्वाक्षरी प्रकारसमूह",
+ "externalApiCalls": "बाह्य API कॉल्स",
+ "providerOverridesDesc": "प्रदाता ओव्हरराइड्सचे वर्णन",
+ "signatureTool": "स्वाक्षरी साधन",
+ "connectionFailed": "कनेक्शन अयशस्वी झाले",
+ "activeLimitersPlural": "सक्रिय मर्यादक",
+ "doneDesc": "पूर्ण झाल्याचे वर्णन",
+ "down": "खाली",
+ "noDataYet": "अद्याप कोणताही डेटा नाही",
+ "activeProviders": "सक्रिय प्रदाते",
+ "nameInvalid": "नाव अवैध आहे",
+ "skip": "वगळा",
+ "createChain": "साखळी तयार करा",
+ "audioSpeech": "ऑडिओ वाणी",
+ "cacheCleared": "कॅशे साफ केला",
+ "searchTypeNews": "शोध प्रकार: बातम्या",
+ "durationMillisecondsShort": "कालावधी (मिलीसेकंद, संक्षिप्त)",
+ "addOpenAICompatible": "Open Ai सुसंगत जोडा",
+ "chatTesterTab": "चॅट परीक्षक",
+ "queued": "रांगेत आहे",
+ "domainPlaceholder": "डोमेन प्लेसहोल्डर",
+ "durationMinutesShort": "कालावधी (मिनिटे, संक्षिप्त)",
+ "verifyingConnection": "कनेक्शनची पडताळणी सुरू आहे",
+ "imageProviders": "प्रतिमा प्रदाते",
+ "protocolToolsLabel": "प्रोटोकॉल साधनांचे लेबल",
+ "queryPlaceholder": "क्वेरी प्लेसहोल्डर",
+ "videoGeneration": "व्हिडिओ निर्मिती",
+ "timeRangeWeek": "कालमर्यादा: आठवडा",
+ "limitExhausted": "मर्यादा संपली",
+ "failedDisable": "अक्षम करणे अयशस्वी",
+ "inMemoryNote": "मेमरीमधील नोंद",
+ "compatibleHint": "सुसंगततेची सूचना",
+ "errorShort": "संक्षिप्त त्रुटी",
+ "advancedHint": "प्रगत सूचना",
+ "restoreFailed": "पुनर्संचयित करणे अयशस्वी",
+ "searchProvidersHeading": "शोध प्रदाते",
+ "comboName": "संयोजनाचे नाव",
+ "autoDisableDescription": "स्वयंचलितपणे अक्षम करण्याचे वर्णन",
+ "embeddingsDesc": "एम्बेडिंग्जचे वर्णन",
+ "operational": "कार्यरत",
+ "testAllApiKey": "सर्व API की तपासा",
+ "backupCreated": "बॅकअप तयार केला",
+ "errorDuringImport": "आयात करताना त्रुटी",
+ "comboDefaultsGuideHint2": "संयोजन डीफॉल्ट मार्गदर्शक सूचना 2",
+ "connecting": "कनेक्ट करत आहे",
+ "fillModelAndProviders": "मॉडेल आणि प्रदाते भरा",
+ "syncing": "समक्रमित करत आहे",
+ "resetConfirm": "रीसेटची पुष्टी",
+ "trackMetrics": "मेट्रिक्सचा मागोवा घ्या",
+ "successful": "यशस्वी",
+ "recovering": "पुनर्प्राप्त करत आहे",
+ "autoDisableThreshold": "स्वयं-अक्षम करण्याची मर्यादा",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "डेटा समक्रमित करत आहे",
+ "cloudBenefitPorts": "Cloud लाभ पोर्ट्स",
+ "compatibleProviders": "सुसंगत प्रदाते",
"freeTierProviders": "मोफत टियर प्रदाते",
"freeTierLabel": "मोफत टियर उपलब्ध",
"freeTierProvidersDesc": "विनामूल्य स्तरांसह प्रदाते — काहींना API की साइनअप आवश्यक आहे, इतरांना कोणत्याही क्रेडेन्शियल्सची आवश्यकता नाही.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "कॅशे साफ करा",
+ "reqs": "विनंत्या",
+ "addAnthropicCompatible": "Anthropic-सुसंगत जोडा",
+ "apiKeyProviders": "API की प्रदाते",
+ "tabsAria": "टॅब्स ARIA",
+ "resetting": "रीसेट करत आहे",
+ "millisecondsAbbr": "मिलीसेकंद संक्षेप",
+ "backupReasonPreRestore": "पुनर्संचयित करण्यापूर्वी बॅकअपचे कारण",
+ "disableCloud": "Cloud अक्षम करा",
+ "newProviderNameAria": "नवीन प्रदाता नाव ARIA",
+ "passwordsMismatch": "पासवर्ड जुळत नाहीत",
+ "a2aQuickStartStep3": "A2A द्रुत प्रारंभ पायरी 3",
+ "liveMonitorDescriptionSuffix": "थेट निरीक्षण वर्णन प्रत्यय",
+ "failedAddProvider": "प्रदाता जोडण्यात अयशस्वी",
+ "addAtLeastOneProvider": "किमान एक प्रदाता जोडा",
+ "reasonSeparator": "कारण विभाजक",
+ "zedImporting": "Zed आयात करत आहे",
+ "confirmPasswordPlaceholder": "पासवर्डची पुष्टी करा",
+ "whatYouGet": "तुम्हाला काय मिळते",
+ "signatureSession": "स्वाक्षरी सत्र",
+ "errorCountNoCode": "कोडशिवाय त्रुटी संख्या",
+ "testing": "चाचणी करत आहे",
+ "providersCommaSeparated": "स्वल्पविरामाने विभक्त केलेले प्रदाते",
+ "exportDatabase": "डेटाबेस निर्यात करा",
+ "hitRate": "हिट दर",
+ "completionsLegacy": "पूर्णता (जुनी आवृत्ती)",
+ "removeModel": "मॉडेल काढा",
+ "timeRangeDay": "कालावधी: दिवस",
+ "cloudRequestFailed": "Cloud विनंती अयशस्वी",
+ "updatedAt": "अद्यतनित केले",
+ "monitoredProvidersHint": "नियंत्रित प्रदाते सूचना",
+ "connectionSuccessful": "कनेक्शन यशस्वी",
+ "latencyP50": "विलंबता P50",
+ "logsDeleted": "लॉग हटवले",
+ "chatTester": "चॅट परीक्षक",
+ "safeSearchOff": "सुरक्षित शोध बंद",
+ "nameHint": "नावाची सूचना",
+ "debugToggle": "डीबग टॉगल",
+ "embedding": "एम्बेडिंग",
+ "issuesLabel": "समस्यांचे लेबल",
+ "optionAny": "कोणताही पर्याय",
+ "maxNestingDepth": "कमाल नेस्टिंग खोली",
+ "rerank": "पुनःक्रमांकन",
+ "checking": "तपासत आहे",
+ "getStarted": "सुरू करा",
+ "restoreSuccess": "पुनर्स्थापना यशस्वी",
+ "issuesDetected": "समस्या आढळल्या",
+ "signatureCache": "स्वाक्षरी कॅशे",
+ "modelLockouts": "मॉडेल लॉकआउट्स",
+ "usingCloudProxy": "Cloud Proxy वापरत आहे",
+ "loadingHealth": "आरोग्य स्थिती लोड करत आहे",
+ "providerOverrides": "प्रदाता ओव्हरराइड्स",
+ "audioTranscriptionDesc": "ऑडिओ लिप्यंतरणाचे वर्णन",
+ "learnedFromHeaders": "हेडर्समधून शिकलेले",
+ "totalRequests": "एकूण विनंत्या",
+ "cloudUnstableNote": "Cloud अस्थिरतेबाबत सूचना",
"gamificationAdmin": "गेमिफिकेशन प्रशासन",
"monitorAnomaliesAndHealth": "विसंगती आणि सिस्टम आरोग्याचे निरीक्षण करा",
"flaggedAnomalies": "ध्वजांकित विसंगती",
"noAnomaliesDetected": "कोणतीही विसंगती आढळली नाही",
"apiKey": "API की",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 तास)",
"zScore": "Z-स्कोअर",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "संशयास्पद",
"tokensCommunityServers": "समुदाय सर्व्हर",
"tokensServerNamePlaceholder": "सर्व्हरचे नाव",
"tokensApiKeyPlaceholder": "API की",
@@ -737,26 +737,26 @@
"tokensDate": "तारीख",
"tokensSent": "पाठवले",
"tokensReceived": "प्राप्त झाले",
- "tokensCreatingInvite": "Creating...",
- "tokensCreateInvite": "Create Invite",
- "tokensInviteCreated": "Invite code created",
- "tokensRedeeming": "Redeeming...",
- "tokensRedeem": "Redeem",
- "tokensInviteUses": "{used}/{max} uses",
- "tokensRevoked": "REVOKED",
- "tokensRevoke": "Revoke",
- "tokensConnecting": "Connecting...",
- "tokensConnectServer": "Connect Server",
- "tokensNoServersConnected": "No servers connected. Connect to a community server to share leaderboards.",
+ "tokensCreatingInvite": "तयार करत आहे...",
+ "tokensCreateInvite": "आमंत्रण तयार करा",
+ "tokensInviteCreated": "आमंत्रण कोड तयार केला",
+ "tokensRedeeming": "वापरत आहे...",
+ "tokensRedeem": "वापरा",
+ "tokensInviteUses": "{used}/{max} वापर",
+ "tokensRevoked": "रद्द केले",
+ "tokensRevoke": "रद्द करा",
+ "tokensConnecting": "कनेक्ट करत आहे...",
+ "tokensConnectServer": "सर्व्हर कनेक्ट करा",
+ "tokensNoServersConnected": "कोणतेही सर्व्हर कनेक्ट केलेले नाहीत. लीडरबोर्ड शेअर करण्यासाठी समुदाय सर्व्हरशी कनेक्ट करा.",
"tokensServerStatus": {
- "connected": "Connected",
- "disconnected": "Disconnected",
- "pending": "Pending",
- "syncing": "Syncing",
- "error": "Error"
+ "connected": "कनेक्ट केले",
+ "disconnected": "डिस्कनेक्ट केलेले",
+ "pending": "प्रलंबित",
+ "syncing": "समक्रमित होत आहे",
+ "error": "त्रुटी"
},
- "tokensLastSync": "Last sync: {date}",
- "tokensDisconnect": "Disconnect",
+ "tokensLastSync": "शेवटचे समक्रमण: {date}",
+ "tokensDisconnect": "डिस्कनेक्ट करा",
"tierCoverageTitle": "टियर कव्हरेज",
"tierCoverageSubtitle": "प्रति फॉलबॅक टियर कॉन्फिगर केलेले प्रदाते",
"batchDetailCopyId": "आयडी कॉपी करा",
@@ -781,179 +781,179 @@
"batchFileDetailCopyId": "आयडी कॉपी करा",
"batchFileDetailClose": "बंद करा",
"batchFileDetailFailedToLoad": "फाइल सामग्री लोड करण्यात अयशस्वी",
- "batchFileDetailLoadError": "Error loading file contents",
+ "batchFileDetailLoadError": "फाइलमधील मजकूर लोड करताना त्रुटी",
"batchFilesListSearchPlaceholder": "आयडी किंवा फाइल नावाने शोधा...",
"batchFilesListFilesTable": "फाईल्स",
"batchFilesCount": "{count, plural, one {# फाइल} other {# फाइल्स}}",
- "batchFilesAllPurposes": "All purposes",
- "batchFilesFilename": "Filename",
- "batchFilesPurpose": "Purpose",
- "batchFilesExpires": "Expires",
- "batchFilesNoneFound": "No files found",
- "batchFilesNeverExpires": "Never",
- "batchFileInUseByActiveBatch": "File in use by an active batch",
+ "batchFilesAllPurposes": "सर्व उद्देश",
+ "batchFilesFilename": "फाइलचे नाव",
+ "batchFilesPurpose": "उद्देश",
+ "batchFilesExpires": "कालबाह्य होते",
+ "batchFilesNoneFound": "कोणत्याही फाइल्स सापडल्या नाहीत",
+ "batchFilesNeverExpires": "कधीही नाही",
+ "batchFileInUseByActiveBatch": "फाइल सक्रिय बॅचमध्ये वापरात आहे",
"batchFilePurpose": {
- "batch": "Batch input",
- "batch-output": "Batch output",
- "fine-tune": "Fine-tuning",
- "assistants": "Assistants"
+ "batch": "बॅच इनपुट",
+ "batch-output": "बॅच आउटपुट",
+ "fine-tune": "फाइन-ट्यूनिंग",
+ "assistants": "असिस्टंट्स"
},
"batchPageLoadingMore": "अधिक लोड करत आहे...",
- "recommended": "Recommended",
- "understand": "I understand",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "recommended": "शिफारस केलेले",
+ "understand": "मला समजले",
+ "batchConceptTitle": "बॅच प्रक्रिया",
+ "batchConceptSubtitle": "सुमारे 50% खर्चात हजारो विनंत्यांवर असिंक्रोनस पद्धतीने प्रक्रिया करा (24 तासांची कालमर्यादा). मूल्यमापन, वर्गीकरण आणि एम्बेडिंग्जसाठी आदर्श.",
+ "batchConceptHowItWorks": "हे कसे कार्य करते",
+ "batchConceptBenefit50pct": "इनपुट + आउटपुट टोकन्सवर 50% सवलत",
+ "batchConceptAsync24h": "24 तासांच्या पूर्णत्व कालमर्यादेसह असिंक्रोनस",
+ "batchConceptUseCases": "मोठ्या प्रमाणातील वर्गीकरण, मूल्यमापन आणि एम्बेडिंग्जसाठी सर्वोत्तम",
+ "batchHeaderSubtitle": "अनेक विनंत्या एकाच जॉबच्या रूपात चालवा",
+ "batchStep1": "1 · JSONL अपलोड करा",
+ "batchStep1Desc": "विनंत्या जोडा",
+ "batchStep2": "2 · बॅच तयार करा",
+ "batchStep2Desc": "जॉब चालवा",
+ "batchStep3": "3 · परिणाम मिळवा",
+ "batchStep3Desc": "आउटपुट डाउनलोड करा",
+ "filesConceptTitle": "बॅच फाइल्स",
+ "filesConceptSubtitle": "बॅचद्वारे वापरल्या जाणाऱ्या JSONL फाइल्स: इनपुट विनंत्या, परिणाम आणि त्रुटी.",
+ "filesConceptInput": "इनपुट — प्रत्येक ओळीवर एक विनंती असलेली तुमची JSONL",
+ "filesConceptOutput": "आउटपुट — पूर्ण झालेल्या विनंत्यांचे परिणाम",
+ "filesConceptError": "त्रुटी — अयशस्वी झालेल्या विनंत्या",
+ "filesConceptRetention": "जतन कालावधी: डीफॉल्टनुसार 30 दिवस (Anthropic वर 29 दिवस)",
+ "wizardTitle": "नवीन बॅच",
+ "wizardClose": "बंद करा",
+ "wizardNext": "पुढे",
+ "wizardBack": "मागे",
+ "wizardCancel": "रद्द करा",
+ "wizardCreate": "बॅच तयार करा",
+ "wizardCreating": "तयार करत आहे…",
+ "wizardStep1Destination": "गंतव्य",
+ "wizardStep2Input": "इनपुट",
+ "wizardStep3Validate": "सत्यापित करा",
+ "wizardStep4Cost": "खर्च आणि निर्मिती",
+ "wizardProviderLabel": "प्रदाता",
+ "wizardEndpointLabel": "एंडपॉइंट",
+ "wizardModelLabel": "मॉडेल",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
- "wizardCsvNoColumns": "No columns detected in CSV header.",
- "wizardCsvIgnoreColumn": "— ignore —",
- "wizardCsvCustomIdMapped": "custom_id mapped",
- "wizardCsvContentMapped": "Content field mapped (messages, input, or prompt)",
- "wizardCsvApplyMapping": "Apply mapping",
+ "wizardInputKindCsv": "CSV (आम्ही रूपांतरित करू)",
+ "wizardDropOrPick": "फाइल येथे ड्रॉप करा किंवा निवडण्यासाठी क्लिक करा",
+ "wizardCsvMappingTitle": "CSV स्तंभ → विनंती फील्ड मॅप करा",
+ "wizardCsvMappingAddField": "फील्ड जोडा",
+ "wizardCsvNoColumns": "CSV हेडरमध्ये कोणतेही स्तंभ आढळले नाहीत.",
+ "wizardCsvIgnoreColumn": "— दुर्लक्ष करा —",
+ "wizardCsvCustomIdMapped": "custom_id मॅप केले",
+ "wizardCsvContentMapped": "कंटेंट फील्ड मॅप केले (messages, input किंवा prompt)",
+ "wizardCsvApplyMapping": "मॅपिंग लागू करा",
"wizardCsvRowsParsed": "{count} ओळी पार्स केल्या",
"wizardCsvRowsSkipped": "{count} ओळी वगळल्या",
- "wizardCsvRowError": "Row {row}: {reason}",
- "wizardValidationOk": "All lines valid",
- "wizardValidating": "Validating…",
- "wizardValidationParseFailed": "Validation failed — could not parse content.",
- "wizardValidationSummary": "{lines} lines · {ids} unique custom_ids",
+ "wizardCsvRowError": "पंक्ती {row}: {reason}",
+ "wizardValidationOk": "सर्व ओळी वैध आहेत",
+ "wizardValidating": "सत्यापित करत आहे…",
+ "wizardValidationParseFailed": "सत्यापन अयशस्वी — कंटेंट पार्स करता आला नाही.",
+ "wizardValidationSummary": "{lines} ओळी · {ids} अद्वितीय custom_ids",
"wizardValidationErrorCount": "{count, plural, one {# त्रुटी} other {# त्रुटी}} आढळल्या",
- "wizardValidationDuplicateIds": "Duplicate custom_ids detected:",
- "wizardValidationFirstErrors": "Errors (first {count}):",
- "wizardValidationLine": "Line {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationDuplicateIds": "डुप्लिकेट custom_ids आढळले:",
+ "wizardValidationFirstErrors": "त्रुटी (पहिल्या {count}):",
+ "wizardValidationLine": "ओळ {line}",
+ "wizardValidationErrors": "सत्यापन त्रुटी",
+ "wizardValidationPreview": "पूर्वावलोकन (पहिल्या 5 विनंत्या)",
+ "wizardValidationSamplingNote": "फाइल मोठी आहे — नमुना घेऊन सत्यापित केली (पहिल्या 1000 + शेवटच्या 100 ओळी). संपूर्ण सत्यापन सर्व्हरवर चालते.",
+ "wizardCostSync": "सिंक खर्च",
+ "wizardCostBatch": "बॅच खर्च (-50%)",
+ "wizardCostSavings": "बचत",
+ "wizardCostEstimatedNotice": "अंदाजित खर्च — प्रत्यक्ष बिलिंगमध्ये फरक असू शकतो.",
+ "wizardErrorUpload": "फाइल अपलोड करण्यात अयशस्वी. पुन्हा प्रयत्न करा.",
+ "wizardErrorCreate": "बॅच तयार करण्यात अयशस्वी. पुन्हा प्रयत्न करा.",
+ "wizardEmptyProviders": "बॅच तयार करण्यासाठी बॅच समर्थन असलेला प्रदाता (OpenAI, Anthropic किंवा Gemini) कनेक्ट करा.",
+ "uploadModalTitle": "बॅच फाइल अपलोड करा",
+ "uploadModalDropOrPick": ".jsonl फाइल येथे ड्रॉप करा किंवा निवडण्यासाठी क्लिक करा",
+ "uploadModalUpload": "अपलोड करा",
+ "uploadModalCancel": "रद्द करा",
+ "uploadModalError": "अपलोड अयशस्वी झाले. पुन्हा प्रयत्न करा.",
+ "uploadModalSuccess": "अपलोड केले",
+ "uploadModalSizeLimit": "कमाल 512 MB",
+ "batchListNewButton": "नवीन बॅच",
+ "batchListAutoRefresh": "दर 30 सेकंदांनी स्वयं-रिफ्रेश",
+ "batchListCostColumn": "खर्च",
+ "batchActionCancel": "रद्द करा",
+ "batchActionDownloadOutput": "आउटपुट डाउनलोड करा",
+ "batchActionDownloadErrors": "त्रुटी डाउनलोड करा",
+ "batchActionRetry": "अयशस्वी विनंत्यांचा पुन्हा प्रयत्न करा",
+ "batchActionRetryConfirm": "अयशस्वी झालेल्या {n} विनंतींचा पुन्हा प्रयत्न करायचा? अंतिम खर्च प्रत्यक्ष वापरलेल्या टोकनवर अवलंबून असतो.",
+ "expirationBadgeCritical": "गंभीर",
+ "expirationBadgeWarning": "लवकरच",
+ "expirationBadgeNormal": "प्रलंबित",
+ "expirationBadgeExpired": "कालबाह्य",
+ "filesListUploadButton": "अपलोड करा",
+ "filesListUsedByColumn": "याद्वारे वापरले जाते",
+ "filesListUsedByNone": "काहीही नाही",
+ "filesListUsedByRoleInput": "इनपुट",
+ "filesListUsedByRoleOutput": "आउटपुट",
+ "filesListUsedByRoleError": "त्रुटी",
+ "filesListSizeColumn": "आकार",
+ "batchListProgressPartial": "(अंशतः)",
+ "batchListProviderColumn": "प्रदाता",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "इतर",
+ "batchListTitle": "बॅचेस",
+ "batchListCount": "{count} बॅचेस",
+ "batchListRemovingCompleted": "काढून टाकत आहे…",
+ "batchListRemoveCompleted": "पूर्ण झालेले काढून टाका",
+ "batchListTableStatus": "स्थिती",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "एंडपॉइंट",
+ "batchListTableModel": "मॉडेल",
+ "batchListTableProgress": "प्रगती",
+ "batchListTableCreated": "तयार केले",
+ "batchListTableExpires": "कालबाह्य होते",
+ "batchListLoading": "लोड होत आहे…",
+ "batchListEmpty": "कोणतेही बॅच आढळले नाहीत",
+ "batchListValidating": "वैधता तपासत आहे…",
+ "batchStatusAll": "सर्व स्थिती",
+ "batchStatusInProgress": "प्रगतीपथावर",
+ "batchStatusValidating": "वैधता तपासत आहे",
+ "batchStatusFinalizing": "अंतिम रूप देत आहे",
+ "batchStatusCompleted": "पूर्ण झाले",
+ "batchStatusFailed": "अयशस्वी",
+ "batchStatusCancelled": "रद्द केले",
+ "batchStatusCancelling": "रद्द करत आहे",
+ "batchStatusExpired": "कालबाह्य झाले",
+ "batchStatusCompletedWithFailures": "त्रुटींसह पूर्ण झाले",
+ "batchStatusInProgressWithFailures": "प्रगतीपथावर (त्रुटींसह)",
+ "batchStatusFinalizingWithFailures": "अंतिम रूप देत आहे (त्रुटींसह)",
+ "batchStatusCancelledWithFailures": "त्रुटींसह रद्द केले",
+ "batchStatusExpiredWithFailures": "कालबाह्य झाले (अंशतः)",
+ "wizardCostEstimating": "खर्चाचा अंदाज घेत आहे…",
+ "wizardCostRequests": "विनंत्या",
+ "wizardCostInputTok": "इनपुट टोकन",
+ "wizardCostOutputTok": "आउटपुट टोकन",
+ "wizardCostWindow": "कालावधी",
+ "wizardDestinationSelectProvider": "प्रदाता निवडा…",
+ "wizardDestinationSelectModel": "मॉडेल निवडा…",
+ "wizardDestinationConnectProvider": "प्रदात्याशी कनेक्ट करा",
+ "batchListBatchCreated": "बॅच {id} तयार केले — सूची रीफ्रेश करत आहे…",
+ "batchListBatchCreatedDismiss": "बंद करा",
+ "batchListRefreshing": "रीफ्रेश करत आहे…",
+ "batchListRefresh": "रीफ्रेश करा",
+ "uploadFileModalRemove": "काढून टाका",
+ "uploadFileModalUploading": "अपलोड करत आहे…",
+ "wizardInputReading": "फाइल वाचत आहे…",
+ "wizardInputReady": "तयार",
+ "wizardInputLargeFileLabel": "मोठी फाइल — नमुना-आधारित वैधता तपासणी",
+ "wizardInputCsvJsonlReady": "JSONL तयार झाले — वैधता तपासणीसाठी सज्ज.",
+ "wizardInputLargeFileWarning": "मोठी फाइल आढळली — वैधता तपासणी नमुन्यांच्या आधारे केली जाते (पहिले 5 MB + शेवटचे 100 KB). संपूर्ण वैधता तपासणी सर्व्हरवर केली जाते.",
+ "wizardCostWindow24h": "24 तासांची पूर्णत्वाची मुदत",
+ "wizardValidationFieldsOk": "आवश्यक फील्ड वैध आहेत",
+ "filesListDelete": "हटवा",
+ "filesListDownload": "डाउनलोड करा",
+ "batchDetailActionCancel": "बॅच रद्द करा",
+ "batchDetailActionRetry": "अयशस्वी विनंत्यांचा पुन्हा प्रयत्न करा",
+ "batchDetailCancelling": "रद्द करत आहे…",
+ "batchDetailRetrying": "पुन्हा प्रयत्न करण्याची तयारी करत आहे…",
+ "batchDetailCancelConfirm": "हा बॅच रद्द करायचा? सुरू असलेल्या विनंत्या थांबतील.",
+ "batchActionCancelError": "बॅच रद्द करण्यात अयशस्वी. पुन्हा प्रयत्न करा.",
+ "batchActionRetryError": "अयशस्वी विनंत्यांचा पुन्हा प्रयत्न करण्यात अयशस्वी. पुन्हा प्रयत्न करा.",
+ "batchConceptRetentionNote": "परिणाम आणि त्रुटी फाइल्स 30 दिवसांसाठी जतन केल्या जातात (Anthropic: 29 दिवस)",
"batchFilesSizeColumn": "आकार",
"toggleNoAuthProvider": "नो-ऑथ प्रदाता टॉगल करा",
"loadingModels": "मॉडेल लोड करत आहे…",
@@ -985,46 +985,50 @@
"batchFilePreviewTruncated": "पहिल्या {shown} ओळी दाखवत आहे ({total} एकूण ओळी)",
"batchFileDownloadFull": "पूर्ण फाइल डाउनलोड करा"
},
- "disabled": "Disabled",
- "featureFlagOmnirouteEmergencyFallbackDescription": "Route budget-exhausted requests to the emergency free fallback provider/model.",
- "featureFlagArenaEloSyncEnabledDescription": "Enable periodic Arena AI leaderboard ELO sync for model intelligence rankings.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "disabled": "अक्षम",
+ "featureFlagOmnirouteEmergencyFallbackDescription": "बजेट संपलेल्या विनंत्या आपत्कालीन मोफत फॉलबॅक प्रदाता/मॉडेलकडे रूट करा.",
+ "featureFlagArenaEloSyncEnabledDescription": "मॉडेल इंटेलिजन्स क्रमवारीसाठी Arena AI लीडरबोर्डचे नियतकालिक ELO सिंक सक्षम करा.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "कॉम्बो रूटिंगमध्ये मॉडेल बदलल्यावर संभाषणाचे सारांश तयार करून अंतर्भूत करा. मॉडेल बदल स्वतंत्रपणे हाताळण्यासाठी आणि सर्व विद्यमान व भविष्यातील कॉम्बोंसाठी पार्श्वभूमीतील हँडऑफ विनंत्या रोखण्यासाठी हे अक्षम करा.",
"featureFlagExposeCcDiscoveryAliasesDescription": "/v1/models वर claude/<provider>/<model> मिरर आयडीज जाहिरात करा जेणेकरून Claude Code गेटवे मॉडेल शोध सूचीमध्ये नॉन-Claude मॉडेल्स समाविष्ट होतील. चेतावणी: जागतिक स्तरावर सक्षम केल्यास सर्व क्लायंटसाठी कॅटलॉग नोंदी दुहेरी होतात.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> गेटवे उपनामांसाठी मुख्य स्विच. चालू (डीफॉल्ट): /v1/models प्रत्येक पात्र, विचार-क्षम Claude मॉडेलसाठी विचार न करणारा प्रकार दाखवते आणि विनंतीमध्ये पाठवलेला no-think/ आयडी तर्कप्रक्रिया दडपून पुन्हा वास्तविक मॉडेलकडे निर्देशित केला जातो. बंद: कोणतेही प्रकार दाखवले जात नाहीत आणि no-think/ आयडीला इतर कोणत्याही अज्ञात मॉडेल आयडीप्रमाणे हाताळले जाते. हे चालू असताना प्रत्येक मॉडेलसाठी ModelSpec.noThinkingAlias ची निवड/निवड रद्द करण्याची सेटिंग तरीही लागू होते.",
"featureFlagChatVirtualLanesEnabledDescription": "प्रदाता डिस्पॅचसाठी प्रति-टेनंट अनुकूली व्हर्च्युअल अॅडमिशन लेन सक्षम करा (#9654): एका टेनंटचा बर्स्ट यापुढे दुसऱ्या टेनंटला 503 देत नाही. OMNIROUTE_CHAT_VIRTUAL_LANES पर्यावरण चल या डॅशबोर्ड सेटिंगपेक्षा वरचढ आहे; बदल सर्व्हर रीस्टार्ट केल्यावर प्रभावी होतात.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "डॅशबोर्डवरील प्रदाता पृष्ठे: प्रदाता ज्या संकेतांचा आदर करतो, केवळ त्यांवरच मोफत बॅज दाखवा — दस्तऐवजीकृत मोफत स्तर नसलेल्या नोंदणीकृत प्रदात्यांसाठी प्रदर्शन-नाव अनुमान, नॉन-बूलियन मोफत फील्ड आणि :free प्रत्यय वगळते. बंद केल्यास ऐतिहासिक बॅज नियम कायम राहतो.",
+ "featureFlagProxySkipRecentlyFailedDescription": "प्रॉक्सी पूल आणि opencode चे प्रति-खाते रोटेशन नुकताच अयशस्वी झालेला प्रॉक्सी (TCP प्रोब नाकारला गेला किंवा त्याद्वारे 429 प्राप्त झाला) प्रत्येक प्रक्रियेसाठी ठरावीक कालावधीपर्यंत पुन्हा वापरत नाहीत; प्रत्येक पुनरावृत्तीनंतर हा कालावधी दुप्पट होतो, कमाल मर्यादेपर्यंत. प्रॉक्सीची कोणतीही स्थिती लिहिली जात नाही; प्रत्येक उमेदवार बाजूला ठेवल्यास निवड अपरिवर्तित राहते. डीफॉल्टनुसार बंद: निवडीचा क्रम अगदी साध्या रोटेशनप्रमाणेच असतो.",
+ "featureFlagProxyPoolEgressObservationDescription": "डॅशबोर्डमध्ये प्रॉक्सी पूलखाली, मागील 24 तासांत त्याच्या सदस्यांना सेवा देणारे किती निरीक्षित इग्रेस IP होते, किती कनेक्शननी त्यांचा वापर केला आणि एका IP मागे दिसलेली सर्वाधिक संख्या किती होती हे दाखवा. हे केवळ-वाचनीय असून प्रॉक्सी लॉगवरून मोजले जाते आणि रूटिंगसाठी कधीही वापरले जात नाही. डीफॉल्टनुसार बंद: पूल एडिटर अपरिवर्तित राहतो आणि निरीक्षण रूट null असे उत्तर देतो.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "प्रॉक्सी आरोग्य तपासणीमध्ये, लक्ष्याने नाकारलेल्या प्रोबला (401/403/429: प्रॉक्सीने पुढे पाठवले, पण गंतव्याने हा इग्रेस IP नाकारला) सेवा दिलेल्या प्रोबप्रमाणे प्रॉक्सीच्या सलग अपयशांची मालिका रीसेट करू द्या. डीफॉल्टनुसार बंद: नकार तटस्थ राहतो आणि मालिका कायम ठेवतो. 5xx दोन्ही बाबतींत अनिर्णीत राहतो आणि नकारामुळे प्रॉक्सी कधीही काढला, अक्षम किंवा पुन्हा सक्रिय केला जात नाही.",
"sidebar": {
- "home": "Home",
- "dashboard": "Dashboard",
- "providers": "Providers",
- "combos": "Combos",
- "usage": "Usage",
- "analytics": "Analytics",
- "costs": "Costs",
- "health": "Health",
+ "home": "मुख्यपृष्ठ",
+ "dashboard": "डॅशबोर्ड",
+ "providers": "प्रदाते",
+ "combos": "कॉम्बो",
+ "usage": "वापर",
+ "analytics": "विश्लेषण",
+ "costs": "खर्च",
+ "health": "स्थिती",
"proxy": "प्रॉक्सी",
"limits": "Limits & Quotas",
- "cliTools": "CLI Tools",
- "media": "Media",
- "settings": "Settings",
- "translator": "Translator",
- "playground": "Playground",
- "searchTools": "Search Tools",
- "agents": "Agents",
+ "cliTools": "CLI साधने",
+ "media": "मीडिया",
+ "settings": "सेटिंग्ज",
+ "translator": "अनुवादक",
+ "playground": "प्लेग्राउंड",
+ "searchTools": "शोध साधने",
+ "agents": "एजंट्स",
"cloudAgents": "क्लाउड एजंट",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "मेमरी",
+ "skills": "कौशल्ये",
"omniSkills": "OmniSkills",
"agentSkills": "एजंट स्किल्स",
- "chaosConfig": "Chaos Mode",
- "docs": "Docs",
- "issues": "Issues",
- "endpoints": "Endpoints",
+ "chaosConfig": "केऑस मोड",
+ "docs": "दस्तऐवज",
+ "issues": "समस्या",
+ "endpoints": "एंडपॉइंट्स",
"endpointsSubtitle": "तुमचे AI कनेक्शन URL",
- "apiManager": "API Keys",
+ "apiManager": "API कीज",
"apiManagerSubtitle": "API की आणि प्रवेश व्यवस्थापित करा",
"embeddedServices": "एम्बेडेड सेवा",
"embeddedServicesSubtitle": "स्थानिक प्रॉक्सी सेवा व्यवस्थापित करा",
- "logs": "Logs",
+ "logs": "लॉग्स",
"webhooks": "वेबहुक",
"webhooksSubtitle": "इव्हेंटची सूचना मिळवा",
"logExport": "लॉग निर्यात",
@@ -1033,239 +1037,239 @@
"batchSubtitle": "एकाधिक विनंत्यांवर प्रक्रिया करा",
"contextCavemanSubtitle": "प्रॉम्प्ट कॉम्प्रेशन",
"contextRtkSubtitle": "आउटपुट फिल्टरिंग",
- "auditLog": "Audit Log",
- "shutdown": "Shutdown",
- "restart": "Restart",
- "shutdownConfirm": "Shut down OmniRoute?",
- "restartConfirm": "Restart OmniRoute?",
+ "auditLog": "ऑडिट लॉग",
+ "shutdown": "बंद करा",
+ "restart": "रीस्टार्ट करा",
+ "shutdownConfirm": "OmniRoute बंद करायचे?",
+ "restartConfirm": "OmniRoute रीस्टार्ट करायचे?",
"version": "v{version}",
"debug": "Debug",
- "system": "System",
- "help": "Help",
+ "system": "सिस्टम",
+ "help": "मदत",
"primarySection": "Main",
"cliSection": "CLI",
"debugSection": "Debug",
"systemSection": "System",
"helpSection": "Help",
- "serverDisconnected": "Server Disconnected",
- "serverDisconnectedMsg": "The proxy server has been stopped or is restarting.",
- "expandSidebar": "Expand sidebar",
- "collapseSidebar": "Collapse sidebar",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
- "cliToolsShort": "Tools",
+ "serverDisconnected": "सर्व्हर डिस्कनेक्ट झाला",
+ "serverDisconnectedMsg": "प्रॉक्सी सर्व्हर थांबवण्यात आला आहे किंवा तो रीस्टार्ट होत आहे.",
+ "expandSidebar": "साइडबार विस्तृत करा",
+ "collapseSidebar": "साइडबार संकुचित करा",
+ "themes": "थीम्स",
+ "presetColors": "लोकप्रिय रंग",
+ "createTheme": "थीम तयार करा",
+ "chooseColor": "एक रंग निवडा",
+ "themeCoral": "प्रवाळी",
+ "themeBlue": "निळा",
+ "themeRed": "लाल",
+ "themeGreen": "हिरवा",
+ "themeViolet": "जांभळा",
+ "themeOrange": "नारिंगी",
+ "themeCyan": "निळसर",
+ "cliToolsShort": "साधने",
"cache": "Cache",
"cacheShort": "Cache",
"batch": "Batch Testing",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "themeSystem": "थीम सिस्टम",
+ "whitelabelingDesc": "व्हाइटलेबलिंगचे वर्णन",
+ "switchThemes": "थीम्स बदला",
+ "themeAccentDesc": "थीम अॅक्सेंटचे वर्णन",
+ "uploadFavicon": "फेविकॉन अपलोड करा",
+ "themeDark": "गडद थीम",
+ "customLogoDesc": "सानुकूल लोगोचे वर्णन",
+ "sidebarVisibilityToggle": "साइडबार दृश्यमानता टॉगल",
+ "themeAccent": "थीम अॅक्सेंट",
+ "resetFavicon": "फेविकॉन रीसेट करा",
+ "whitelabeling": "व्हाइटलेबलिंग",
+ "darkMode": "गडद मोड",
+ "uploadLogo": "लोगो अपलोड करा",
+ "themeLight": "फिकट थीम",
+ "appName": "ॲपचे नाव",
+ "appNameDesc": "ॲपच्या नावाचे वर्णन",
+ "resetLogo": "लोगो रीसेट करा",
+ "customFavicon": "सानुकूल फेविकॉन",
+ "hideHealthLogs": "आरोग्य नोंदी लपवा",
+ "customLogo": "सानुकूल लोगो",
+ "appearance": "स्वरूप",
+ "themeSelectionAria": "थीम निवड Aria",
+ "themeCreate": "थीम तयार करा",
+ "customFaviconDesc": "सानुकूल फेविकॉनचे वर्णन",
+ "logoPreview": "लोगो पूर्वावलोकन",
+ "themeCustom": "सानुकूल थीम",
+ "hideHealthLogsDesc": "आरोग्य नोंदी लपवण्याचे वर्णन",
+ "faviconPreview": "फेविकॉन पूर्वावलोकन",
+ "changelog": "बदल नोंद",
+ "contextSection": "संदर्भ आणि कॅशे",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "इंजिन संयोजने",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
- "contextUltra": "Ultra",
+ "contextUltra": "अल्ट्रा",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "संक्षेप सेटिंग्ज",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
- "combosLiveSubtitle": "Live routing cascade",
+ "combosLive": "संयोजन स्टुडिओ",
+ "combosLiveSubtitle": "थेट रूटिंग शृंखला",
"compressionStudio": "Compression Studio",
"compressionExclusions": "बाह्यतत्त्वे",
- "contextSettingsSubtitle": "Global defaults",
- "contextHeadroomSubtitle": "Tabular compaction",
- "contextSessionDedupSubtitle": "Cross-turn deduplication",
- "contextCcrSubtitle": "Retrieve markers",
- "contextLlmlinguaSubtitle": "Semantic pruning",
- "contextLiteSubtitle": "Fast whitespace cleanup",
- "contextAggressiveSubtitle": "Summary and aging",
- "contextUltraSubtitle": "Heuristic pruning",
- "contextOmniglyphSubtitle": "Context as images",
- "compressionStudioSubtitle": "Live engine cascade",
+ "contextSettingsSubtitle": "जागतिक डीफॉल्ट्स",
+ "contextHeadroomSubtitle": "सारणीबद्ध संक्षिप्तीकरण",
+ "contextSessionDedupSubtitle": "विविध संवाद-फेऱ्यांतील पुनरावृत्ती-निर्मूलन",
+ "contextCcrSubtitle": "मार्कर पुनर्प्राप्त करा",
+ "contextLlmlinguaSubtitle": "अर्थाधारित छाटणी",
+ "contextLiteSubtitle": "जलद रिक्त-जागा स्वच्छता",
+ "contextAggressiveSubtitle": "सारांश आणि कालबाह्यता",
+ "contextUltraSubtitle": "अनुमानाधारित छाटणी",
+ "contextOmniglyphSubtitle": "प्रतिमांच्या स्वरूपात संदर्भ",
+ "compressionStudioSubtitle": "थेट इंजिन शृंखला",
"compressionExclusionsSubtitle": "प्रत्येक मॉडेल/अंतिम बिंदू बायपास",
- "chaosConfigSubtitle": "Multi-model parallel execution",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "chaosConfigSubtitle": "बहु-मॉडेल समांतर अंमलबजावणी",
+ "routingSection": "रूटिंग",
+ "protocolsSection": "प्रोटोकॉल",
+ "agentsAiSection": "एजंट्स आणि AI",
+ "cacheContextSection": "कॅशे आणि संदर्भ",
+ "analyticsSection": "विश्लेषण",
+ "costsSection": "खर्च",
+ "monitoringSection": "देखरेख",
+ "auditSecuritySection": "लेखापरीक्षण आणि सुरक्षा",
+ "devtoolsSection": "विकसक साधने",
+ "configurationSection": "संरचना",
+ "aiFeaturesSection": "AI वैशिष्ट्ये",
"mcp": "MCP",
"a2a": "A2A",
- "plugins": "Plugins",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
- "costsFreeTiers": "Free-Tier Budget",
- "costsFreeTiersSubtitle": "Monthly free-token allowances",
- "freeProviderRankings": "Free Provider Rankings",
- "freeProviderRankingsSubtitle": "Best free providers ranked by model ELO scores",
+ "plugins": "प्लगइन्स",
+ "apiEndpoints": "API एंडपॉइंट्स",
+ "batchFiles": "फायली",
+ "analyticsEvals": "मूल्यमापने",
+ "analyticsSearch": "शोध",
+ "analyticsUtilization": "वापर",
+ "analyticsComboHealth": "कॉम्बो स्थिती",
+ "analyticsCompression": "संपीडन",
+ "costsBudget": "अर्थसंकल्प",
+ "costsFreeTiers": "मोफत श्रेणीचा अर्थसंकल्प",
+ "costsFreeTiersSubtitle": "मासिक मोफत टोकन भत्ते",
+ "freeProviderRankings": "मोफत प्रदात्यांची क्रमवारी",
+ "freeProviderRankingsSubtitle": "मॉडेल ELO गुणांनुसार क्रमवारी लावलेले सर्वोत्तम मोफत प्रदाते",
"radar": "रडार कॅटलॉग",
"radarSubtitle": "समुदाय-समृद्ध मोफत मॉडेल कॅटलॉग",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "कोटा सामायिकरण",
+ "costsPricing": "किंमत निर्धारण",
+ "logsProxy": "प्रॉक्सी लॉग्स",
+ "logsConsole": "कन्सोल",
+ "logsActivity": "क्रियाकलाप",
+ "auditMcp": "MCP लेखापरीक्षण",
"auditA2a": "A2A ऑडिट",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
- "settingsAccessTokens": "Access Tokens",
+ "settingsAppearance": "स्वरूप",
+ "settingsAi": "AI सेटिंग्ज",
+ "settingsSecurity": "सुरक्षा",
+ "settingsAccessTokens": "प्रवेश टोकन्स",
"settingsFeatureFlags": "वैशिष्ट्य ध्वज",
"settingsCache": "कॅशे",
"settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
- "modelLockout": "Model Lockout",
- "settingsAdvanced": "Advanced",
+ "settingsRouting": "मार्गनिर्धारण",
+ "settingsResilience": "लवचिकता",
+ "modelLockout": "मॉडेल लॉकआउट",
+ "settingsAdvanced": "प्रगत",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "प्रदाता कोटा",
+ "providerQuota": "प्रदाता कोटा",
+ "runtime": "रनटाइम",
+ "consoleLogs": "कन्सोल लॉग्स",
+ "logsTimeline": "कालरेषा",
"logsTimelineSubtitle": "दृश्य विनंती कालरेषा",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "संभाषणे",
+ "conversationsSubtitle": "बहु-चरणीय एजेंटिक संभाषणे",
+ "globalRouting": "जागतिक रूटिंग",
+ "mitmProxy": "MITM प्रॉक्सी",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
- "providerStats": "Provider Stats",
- "providerStatsSubtitle": "Latency and performance metrics",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
- "pluginsSubtitle": "Plugin marketplace & installs",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "agenticFeaturesSection": "एजेंटिक वैशिष्ट्ये",
+ "otherFeaturesSection": "इतर वैशिष्ट्ये",
+ "compressionContextGroup": "संदर्भ संक्षेपण",
+ "gamificationGroup": "गेमिफिकेशन",
+ "toolsGroup": "साधने",
+ "integrationsGroup": "एकत्रीकरणे",
+ "proxyGroup": "प्रॉक्सी",
+ "costsParametersGroup": "खर्चाचे मापदंड",
+ "auditGroup": "लेखापरीक्षण",
+ "batchGroup": "बॅच",
+ "homeSubtitle": "डॅशबोर्डचा आढावा",
+ "providersSubtitle": "AI प्रदाते व्यवस्थापित करा",
+ "quotaTrackerSubtitle": "वापर मर्यादांचा मागोवा घ्या",
+ "providerQuotaSubtitle": "प्रदात्याच्या वापर मर्यादांचा मागोवा घ्या",
+ "runtimeSubtitle": "रिअल-टाइम लवचिकता आणि सत्रे",
+ "contextCombosSubtitle": "संक्षेपण इंजिने एकत्र करा",
+ "cliToolsSubtitle": "CLI रनटाइम्स कॉन्फिगर करा",
+ "agentsSubtitle": "स्थानिक एजंट व्यवस्थापित करा",
+ "cloudAgentsSubtitle": "क्लाउड-आधारित एजंट व्यवस्थापित करा",
+ "apiEndpointsSubtitle": "सानुकूल एंडपॉइंट्स उपलब्ध करा",
+ "proxySubtitle": "HTTP प्रॉक्सी सेटिंग्ज",
+ "mitmProxySubtitle": "MITM इंटरसेप्शन",
+ "oneProxySubtitle": "सार्वजनिक प्रॉक्सी गेटवे",
+ "leaderboard": "अग्रक्रम फलक",
+ "profile": "प्रोफाइल",
+ "tokens": "टोकन्स",
+ "gamificationAdmin": "गेमिफिकेशन प्रशासन",
+ "leaderboardSubtitle": "क्रमवारी आणि उपलब्धी",
+ "profileSubtitle": "खाते आणि प्राधान्ये",
+ "tokensSubtitle": "टोकन वापर आणि अंदाजपत्रके",
+ "gamificationAdminSubtitle": "विसंगती निरीक्षण आणि फसवणूक-प्रतिबंध",
+ "usageSubtitle": "ट्रॅफिक आणि वापराची आकडेवारी",
+ "analyticsComboHealthSubtitle": "कॉम्बो लक्ष्याची विश्वसनीयता",
+ "analyticsUtilizationSubtitle": "प्रदात्याचा वापर",
+ "costsSubtitle": "खर्चाचे विभाजन",
+ "cacheSubtitle": "कॅशे हिट दर",
+ "analyticsCompressionSubtitle": "टोकन बचतीची आकडेवारी",
+ "analyticsSearchSubtitle": "शोध साधनाचे विश्लेषण",
+ "analyticsEvalsSubtitle": "मूल्यमापन संचाचे निकाल",
+ "providerStats": "प्रदात्याची आकडेवारी",
+ "providerStatsSubtitle": "विलंब आणि कार्यप्रदर्शन मेट्रिक्स",
+ "logsSubtitle": "अनुप्रयोग लॉग",
+ "logsProxySubtitle": "प्रॉक्सी ट्रॅफिक लॉग",
+ "consoleLogsSubtitle": "कन्सोल आउटपुट",
+ "logsActivitySubtitle": "वापरकर्ता क्रियाकलाप लॉग",
+ "healthSubtitle": "सिस्टम स्थिती तपासणी",
+ "costsPricingSubtitle": "प्रत्येक मॉडेलनुसार किंमत नियम",
+ "costsBudgetSubtitle": "अर्थसंकल्प मर्यादा",
+ "costsQuotaShareSubtitle": "प्रदाता कोटा विविध कींमध्ये सामायिक करा",
+ "auditLogSubtitle": "अधिकृतता लेखापरीक्षण",
+ "auditMcpSubtitle": "MCP सर्व्हर लेखापरीक्षण",
+ "auditA2aSubtitle": "A2A प्रोटोकॉल लेखापरीक्षण",
+ "translatorSubtitle": "स्वरूप रूपांतरण",
+ "playgroundSubtitle": "प्रॉम्प्टची थेट चाचणी करा",
+ "searchToolsSubtitle": "शोध साधन नोंदणी",
+ "memorySubtitle": "सातत्यपूर्ण एजंट मेमरी",
+ "omniSkillsSubtitle": "सँडबॉक्स कौशल्य नोंदणी",
+ "agentSkillsSubtitle": "A2A कौशल्य नोंदणी",
+ "mcpSubtitle": "MCP सर्व्हर नियंत्रणे",
+ "a2aSubtitle": "A2A प्रोटोकॉल सर्व्हर",
+ "pluginsSubtitle": "प्लगइन मार्केटप्लेस आणि इंस्टॉलेशन्स",
+ "mediaSubtitle": "कॅशे केलेल्या मीडिया फाइल्स",
+ "batchFilesSubtitle": "बॅच इनपुट/आउटपुट फाइल्स",
+ "settingsSubtitle": "सर्व सेटिंग्ज",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
- "settingsAccessTokensSubtitle": "Scoped CLI tokens for remote mode",
+ "settingsAppearanceSubtitle": "थीम आणि मांडणी",
+ "settingsAiSubtitle": "AI वर्तनाची डीफॉल्ट मूल्ये",
+ "globalRoutingSubtitle": "जागतिक राउटिंग नियम",
+ "settingsResilienceSubtitle": "पुनर्प्रयत्न आणि सर्किट ब्रेकर",
+ "settingsAdvancedSubtitle": "प्रगत वापरकर्ता पर्याय",
+ "settingsSecuritySubtitle": "प्रमाणीकरण आणि एन्क्रिप्शन",
+ "settingsAccessTokensSubtitle": "रिमोट मोडसाठी मर्यादित-व्याप्तीचे CLI टोकन",
"settingsFeatureFlagsSubtitle": "सिस्टम क्षमता टॉगल करा",
"settingsCacheSubtitle": "मॉडेल कॅटलॉग आणि प्रतिसाद कॅशिंग",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
- "settingsAuthzSubtitle": "Route inventory and bypass policy",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
- "costsQuotaPlans": "Plans & Quotas",
- "costsQuotaPlansSubtitle": "Configure plans by provider",
- "activity": "Activity",
+ "settingsSidebar": "साइडबार",
+ "settingsSidebarSubtitle": "साइडबार मांडणी सानुकूलित करा",
+ "settingsAuthzSubtitle": "मार्ग सूची आणि बायपास धोरण",
+ "docsSubtitle": "दस्तऐवजीकरण",
+ "issuesSubtitle": "बग नोंदवा",
+ "changelogSubtitle": "आवृत्ती टिपा",
+ "costsQuotaPlans": "योजना आणि कोटा",
+ "costsQuotaPlansSubtitle": "प्रदात्यानुसार योजना कॉन्फिगर करा",
+ "activity": "क्रियाकलाप",
"activitySubtitle": "अलीकडील घटनांचे सुलभ फीड",
"logsGroup": "लॉग्स",
"systemGroup": "सिस्टम",
@@ -1274,8 +1278,8 @@
"agentBridge": "एजंट ब्रिज",
"agentBridgeSubtitle": "IDE एजंट ट्रॅफिक इंटरसेप्ट करा",
"trafficInspector": "ट्रॅफिक इन्स्पेक्टर",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "तुमच्या अॅप्समधील विनंती आणि प्रतिसाद ट्रॅफिक तपासा",
+ "trafficInspectorPurpose": "तुमचे अॅप्लिकेशन AI प्रदात्यांना नेमके काय पाठवते आणि त्यांच्याकडून काय प्राप्त करते ते पाहा. कोणत्याही OpenAI-सुसंगत क्लायंटसह कार्य करते.",
"cliCode": "CLI कोड",
"cliCodeSubtitle": "OmniRoute कडे पॉइंट करणारी कोड टूल्स",
"cliAgents": "CLI एजंट्स",
@@ -1341,7 +1345,7 @@
"refresh": "रिफ्रेश करा",
"loading": "वेबहुक लोड करत आहे...",
"never": "कधीच नाही",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {एकही अपयश नाही} one {# अपयश} other {# अपयशे}}",
"testWebhook": "चाचणी पाठवा",
"testSuccess": "चाचणी वेबहुक यशस्वीरीत्या पाठवला.",
"testFailed": "चाचणी वेबहुक अयशस्वी.",
@@ -1538,20 +1542,20 @@
"provider.credentials.bulk_imported": "प्रदाता क्रेडेंशियल्स मोठ्या प्रमाणात आयात केली",
"provider.credentials.created": "प्रदाता क्रेडेंशियल्स तयार केली",
"provider.credentials.imported": "प्रदाता क्रेडेंशियल्स आयात केली",
- "provider.credentials.revoked": "Provider Credentials Revoked",
- "provider.credentials.updated": "Provider Credentials Updated",
- "provider.validation.ssrf_blocked": "Provider SSRF Blocked",
- "quota.plan.updated": "Quota Plan Updated",
- "quota.pool.created": "Quota Pool Created",
- "quota.pool.deleted": "Quota Pool Deleted",
- "quota.pool.updated": "Quota Pool Updated",
- "quota.store.driver_changed": "Quota Store Driver Changed",
- "server.start": "Server Start",
- "service.reveal_api_key": "Service API Key Revealed",
- "settings.update": "Settings Updated",
- "settings.update_failed": "Settings Update Failed",
- "sync.token.created": "Sync Token Created",
- "sync.token.revoked": "Sync Token Revoked"
+ "provider.credentials.revoked": "प्रदात्याची क्रेडेन्शियल्स रद्द केली",
+ "provider.credentials.updated": "प्रदात्याची क्रेडेन्शियल्स अद्ययावत केली",
+ "provider.validation.ssrf_blocked": "प्रदात्याचा SSRF अवरोधित केला",
+ "quota.plan.updated": "कोटा योजना अद्ययावत केली",
+ "quota.pool.created": "कोटा पूल तयार केला",
+ "quota.pool.deleted": "कोटा पूल हटवला",
+ "quota.pool.updated": "कोटा पूल अद्ययावत केला",
+ "quota.store.driver_changed": "कोटा स्टोअर ड्रायव्हर बदलला",
+ "server.start": "सर्व्हर सुरू झाला",
+ "service.reveal_api_key": "सेवा API की उघड केली",
+ "settings.update": "सेटिंग्ज अद्ययावत केल्या",
+ "settings.update_failed": "सेटिंग्ज अद्ययावत करण्यात अयशस्वी",
+ "sync.token.created": "सिंक टोकन तयार केले",
+ "sync.token.revoked": "सिंक टोकन रद्द केले"
},
"mcpMetricCalls24h": "कॉल (24 तास)",
"mcpMetricSuccessRate": "यशाचा दर",
@@ -1559,91 +1563,91 @@
"mcpMetricTopTool": "उच्चतम साधन"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "थीम्स",
+ "description": "पूर्वनिर्धारित थीम निवडा किंवा एका रंगाने तुमची स्वतःची थीम तयार करा",
+ "presetColors": "लोकप्रिय रंग",
+ "customTheme": "सानुकूल थीम",
+ "customThemeDesc": "थीम तयार करा वर क्लिक करा आणि एक रंग निवडा",
+ "createTheme": "थीम तयार करा",
+ "activePreset": "सक्रिय थीम"
},
"header": {
- "logout": "Logout",
+ "logout": "लॉग आउट",
"quickNavigation": "जलद नेव्हिगेशन",
"quickNavigationTitle": "जलद नेव्हिगेशन (⌘K / Ctrl+K)",
"openQuickNavigation": "जलद नेव्हिगेशन उघडा",
"switchToLightMode": "लाइट मोडवर स्विच करा",
"switchToDarkMode": "डार्क मोडवर स्विच करा",
- "language": "Language",
- "providers": "Providers",
- "providerDescription": "Manage your AI provider connections",
- "combos": "Combos",
- "comboDescription": "Model combos with fallback",
- "usage": "Usage & Analytics",
- "usageDescription": "Monitor your API usage, token consumption, and request logs",
- "analytics": "Analytics",
- "analyticsDescription": "Charts, trends, and evaluation insights",
- "cliTools": "CLI Tools",
- "cliToolsDescription": "Configure CLI tools",
- "home": "Home",
- "homeDescription": "Welcome to OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "language": "भाषा",
+ "providers": "प्रदाते",
+ "providerDescription": "तुमच्या AI प्रदाता जोडण्या व्यवस्थापित करा",
+ "combos": "कॉम्बो",
+ "comboDescription": "फॉलबॅकसह मॉडेल कॉम्बो",
+ "usage": "वापर आणि विश्लेषण",
+ "usageDescription": "तुमचा API वापर, टोकनचा वापर आणि विनंती लॉगचे निरीक्षण करा",
+ "analytics": "विश्लेषण",
+ "analyticsDescription": "आलेख, कल आणि मूल्यमापनविषयक अंतर्दृष्टी",
+ "cliTools": "CLI साधने",
+ "cliToolsDescription": "CLI साधने कॉन्फिगर करा",
+ "home": "मुख्यपृष्ठ",
+ "homeDescription": "OmniRoute मध्ये आपले स्वागत आहे",
+ "endpoint": "एंडपॉइंट्स",
+ "endpointDescription": "प्रॉक्सी एंडपॉइंट्स, MCP, A2A आणि API एंडपॉइंट्स व्यवस्थापित करा",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Model Context Protocol सर्व्हर व्यवस्थापन आणि साधने",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
- "settings": "Settings",
- "settingsDescription": "Manage your preferences",
- "openaiCompatible": "OpenAI Compatible",
- "anthropicCompatible": "Anthropic Compatible",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "a2aDescription": "Agent-to-Agent प्रोटोकॉल कार्ये आणि निरीक्षणक्षमता",
+ "settings": "सेटिंग्ज",
+ "settingsDescription": "तुमची प्राधान्ये व्यवस्थापित करा",
+ "openaiCompatible": "OpenAI सुसंगत",
+ "anthropicCompatible": "Anthropic सुसंगत",
+ "media": "मीडिया",
+ "mediaDescription": "प्रतिमा, व्हिडिओ आणि संगीत तयार करा",
+ "themes": "थीम्स",
+ "themesDescription": "संपूर्ण डॅशबोर्ड पॅनेलसाठी रंगसंगती निवडा",
+ "costsDescription": "सर्व प्रदात्यांमधील खर्चाचा मागोवा घ्या, कलांचे विश्लेषण करा आणि तुमचे AI बजेट व्यवस्थापित करा",
+ "cacheDescription": "प्रदात्याच्या प्रॉम्प्ट कॅशेची कार्यक्षमता आणि स्थानिक सिमॅंटिक प्रतिसादांच्या पुनर्वापराचे निरीक्षण करा.",
+ "limitsDescription": "प्रत्येक API की आणि प्रदात्यासाठी दरमर्यादा आणि कोटा कॉन्फिगर करा",
+ "runtimeDescription": "थेट रनटाइम निरीक्षणक्षमता — सर्किट ब्रेकर्स, कूलडाउन्स, मॉडेल लॉकआउट्स, सत्रे आणि कोटा सूचना",
+ "apiManagerDescription": "तुमच्या OmniRoute इंस्टन्ससाठी API की आणि प्रवेश नियंत्रण व्यवस्थापित करा",
+ "batchDescription": "बॅच केलेल्या API कॉल्सद्वारे मोठ्या प्रमाणातील विनंत्यांवर असिंक्रोनस पद्धतीने प्रक्रिया करा",
+ "contextCavemanDescription": "नियम-आधारित संदेश संक्षेपण, भाषा पॅक्स, विश्लेषण आणि आउटपुट मोड नियंत्रणे.",
+ "contextRtkDescription": "साधनांचे आउटपुट, टर्मिनल लॉग आणि बिल्ड परिणामांसाठी कमांड-जाणिवायुक्त संक्षेपण.",
+ "contextCombosDescription": "विविध रूटिंग परिस्थितींसाठी इंजिन्स कशी एकत्र केली जातात ते निश्चित करा.",
+ "changelogDescription": "प्लॅटफॉर्मची नवीनतम वैशिष्ट्ये आणि घोषणांबाबत अद्ययावत राहा.",
+ "agentsDescription": "AI एजंट साधने व्यवस्थापित आणि कॉन्फिगर करा: Codex, Devin, Jules आणि कस्टम एजंट्स",
+ "cloudAgentsDescription": "थेट कार्य मागोवा आणि योजना मंजुरीसह क्लाउड-आधारित AI एजंट्सचे समन्वयन करा",
+ "memoryDescription": "सिमॅंटिक शोध आणि FTS5 पूर्ण-मजकूर अनुक्रमणिकेसह कायमस्वरूपी संभाषणात्मक स्मृती",
+ "skillsDescription": "स्वयंचलित प्रॉम्प्ट आणि साधन अंमलबजावणीसाठी सँडबॉक्स कौशल्ये स्थापित आणि व्यवस्थापित करा",
+ "agentSkillsDescription": "AI क्लायंट एकत्रीकरणासाठी एका क्लिकमध्ये URL कॉपी करण्याची सुविधा असलेली एजंट-सज्ज कौशल्य सूची",
+ "translatorDescription": "API स्वरूपांदरम्यान प्रॉम्प्टचे भाषांतर आणि चाचणी करा: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "थेट प्रदाता प्रतिसाद आणि स्वरूप तपासणीसह प्रॉम्प्टची परस्परसंवादी चाचणी करा",
+ "searchToolsDescription": "शोध विश्लेषण, प्रदातानिहाय तपशील, कॅशे हिट दर आणि खर्चाचा मागोवा",
+ "logsDescription": "रिअल-टाइम विनंती लॉग, त्रुटी ट्रेस आणि स्ट्रीमिंग इव्हेंट निरीक्षक",
+ "auditDescription": "API की वापर, MCP साधन कॉल आणि धोरण इव्हेंटची अनुपालन ऑडिट नोंद",
+ "webhooksDescription": "रिअल-टाइम इव्हेंट सूचना प्राप्त करण्यासाठी वेबहुक एंडपॉइंट कॉन्फिगर करा",
+ "healthDescription": "सिस्टमच्या स्थितीचा आढावा: प्रदाते, सर्किट ब्रेकर, दर मर्यादा आणि डेटाबेस",
+ "proxyDescription": "आउटबाउंड प्रदाता कनेक्शनसाठी अपस्ट्रीम प्रॉक्सी सेटिंग्ज कॉन्फिगर करा",
+ "apiEndpointsDescription": "सानुकूल API एंडपॉइंट कॉन्फिगरेशन आणि रूटिंग ओव्हरराइड व्यवस्थापित करा",
+ "batchFilesDescription": "बॅच जॉब आउटपुट फाइल्स आणि निकाल ब्राउझ व व्यवस्थापित करा",
+ "analyticsEvalsDescription": "मॉडेल मूल्यमापनाचे निकाल आणि कार्यप्रदर्शन बेंचमार्क",
+ "analyticsSearchDescription": "शोध क्वेरी विश्लेषण, कॅशे हिट दर आणि खर्चाचा मागोवा",
+ "analyticsUtilizationDescription": "प्रदाता वापराची मेट्रिक्स आणि क्षमता नियोजन",
+ "analyticsComboHealthDescription": "कॉम्बो रूटिंग कॉन्फिगरेशनची रिअल-टाइम स्थिती आणि कार्यप्रदर्शन",
+ "analyticsCompressionDescription": "संदर्भ संक्षेपण विश्लेषण आणि टोकन बचत",
+ "costsBudgetDescription": "प्रत्येक API की आणि प्रदात्यासाठी बजेट मर्यादा आणि खर्च सूचना",
+ "costsPricingDescription": "टोकन खर्च गणनेसाठी सानुकूल किंमत कॉन्फिगरेशन",
+ "logsProxyDescription": "अपस्ट्रीम प्रॉक्सी विनंती लॉग आणि ट्रॅफिक तपासणी",
+ "logsConsoleDescription": "ॲप्लिकेशन कन्सोल आउटपुट आणि डीबग लॉग",
+ "logsActivityDescription": "वापरकर्ता कृती आणि सिस्टम इव्हेंटची ऑडिट नोंद",
+ "auditMcpDescription": "MCP साधन वापराची ऑडिट नोंद आणि अनुपालन अभिलेख",
"auditA2a": "A2A ऑडिट",
"auditA2aDescription": "A2A टास्क एक्झिक्यूशन ऑडिट ट्रेल, राज्य संक्रमण आणि कौशल्य आवाहन रेकॉर्ड",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "थीम, ब्रँडिंग आणि दृश्य सानुकूलन",
+ "settingsAiDescription": "AI वर्तन, विचार बजेट, व्हिजन आणि स्मृती सेटिंग्ज",
"settingsCacheDescription": "मॉडेल कॅटलॉग कॅशे नोंदींसाठी TTL",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "प्रमाणीकरण, अधिकृतता आणि प्रवेश नियंत्रण सेटिंग्ज",
"featureFlags": "वैशिष्ट्य ध्वज",
"featureFlagsDescription": "नियंत्रण प्रणाली क्षमता आणि प्रायोगिक वैशिष्ट्ये",
"featureFlagsActive": "{count} सक्रिय",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "तुमच्या शोधाशी कोणतेही ध्वज जुळत नाहीत",
"featureFlagsSaved": "ध्वज अद्यतनित केला",
"featureFlagsError": "ध्वज अद्यतनित करण्यात अयशस्वी",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "रूटिंग नियम, मॉडेल उपनावे, कॉम्बो डीफॉल्ट्स आणि अवनती सेटिंग्ज",
+ "settingsResilienceDescription": "सर्किट ब्रेकर, पुनर्प्रयत्न आणि फॉलबॅक कॉन्फिगरेशन",
+ "settingsAdvancedDescription": "प्रगत पेलोड नियम, विनंती मर्यादा आणि प्रॉक्सी API सेटिंग्ज",
+ "mitmProxyDescription": "ट्रॅफिक तपासणी आणि डीबगिंगसाठी MITM प्रॉक्सी सेटिंग्ज कॉन्फिगर करा",
+ "oneProxyDescription": "प्रगत प्रॉक्सी शृंखलेसाठी 1Proxy सेटिंग्ज कॉन्फिगर करा",
"omniSkillsDescription": "स्वयंचलित प्रॉम्प्ट आणि टूल एक्झिक्यूशनसाठी सँडबॉक्स स्किल्स इन्स्टॉल आणि व्यवस्थापित करा"
},
"cloudSyncStatus": {
@@ -1758,7 +1762,7 @@
"discovery": "शोध",
"freeProviderRankings": "मोफत प्रदाता क्रमवारी",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "सेटअप",
"freeTiers": "मोफत स्तर",
"gamification": "गेमिफिकेशन",
"leaderboard": "लीडरबोर्ड",
@@ -1780,53 +1784,53 @@
"orchestration": "ऑर्केस्ट्रेशन"
},
"home": {
- "quickStart": "Quick Start",
- "quickStartDesc": "Get up and running in 4 steps. Connect providers, route models, monitor everything.",
- "fullDocs": "Full Docs",
- "step1Title": "1. Create API key",
+ "quickStart": "जलद प्रारंभ",
+ "quickStartDesc": "4 चरणांत सुरुवात करा. प्रदाते कनेक्ट करा, मॉडेल्स रूट करा आणि सर्वकाही निरीक्षण करा.",
+ "fullDocs": "संपूर्ण दस्तऐवजीकरण",
+ "step1Title": "1. API की तयार करा",
"step1Desc": "Go to --permission-mode auto सुरक्षा क्लासिफायरला सिंथेटिक allow प्रतिसादासह शॉर्ट-सर्किट करा जेणेकरून फॉलबॅक रूट्स fail closed होणार नाहीत. डीफॉल्टनुसार बंद.",
"classifierCompatCycle": "सायकल: बंद → ऑटो → नेहमी",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "मॉडेल शोधल्यानंतर ~/.codex/*.config.toml पुन्हा तयार करा.",
"claudeProfiles": "Claude Code प्रोफाइल्स",
"claudeProfilesDescription": "मॉडेल शोधल्यानंतर प्रत्येक ~/.claude/profiles/…/settings.json पुन्हा तयार करा.",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "कोणतेही सक्रिय प्रदाते नाहीत",
+ "noActiveProvidersDesc": "CLI साधने कॉन्फिगर करण्यासाठी प्रथम प्रदाते जोडा आणि कनेक्ट करा.",
+ "mapModels": "मॉडेल मॅप करा",
+ "testConnection": "कनेक्शन तपासा",
+ "connectionStatus": "कनेक्शन स्थिती",
+ "configureEndpoint": "एंडपॉइंट कॉन्फिगर करा",
+ "instructions": "सूचना",
+ "modelMapping": "मॉडेल मॅपिंग",
"reasoningEffort": "{model} साठी रिझनिंग एफर्ट",
"effortNone": "काहीही नाही",
"effortLow": "कमी",
@@ -2739,66 +2743,66 @@
"effortExtraHigh": "अतिरिक्त उच्च",
"effortMax": "कमाल",
"effortUltra": "अल्ट्रा",
- "wireApi": "Wire API",
+ "wireApi": "API जोडा",
"modelAliases": "मॉडेल उपनावे",
"addModel": "मॉडेल जोडा",
"routeModelPlaceholder": "{model} येथे रूट करा...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "बेस URL",
+ "apiKey": "API की",
+ "configured": "कॉन्फिगर केलेले",
+ "notConfigured": "कॉन्फिगर केलेले नाही",
+ "notInstalled": "इंस्टॉल केलेले नाही",
+ "custom": "सानुकूल",
+ "unknown": "अज्ञात",
+ "lastSavedAt": "शेवटचे जतन: {date}",
+ "never": "कधीही नाही",
+ "justNow": "आत्ताच",
+ "minutesAgoShort": "{count} मिनिटांपूर्वी",
+ "hoursAgoShort": "{count} तासांपूर्वी",
+ "daysAgoShort": "{count} दिवसांपूर्वी",
+ "monthsAgoShort": "{count} महिन्यांपूर्वी",
+ "yearsAgoShort": "{count} वर्षांपूर्वी",
+ "runtimeCheckFailed": "रनटाइम तपासणी अयशस्वी झाली",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "कॉन्फिगरेशन यशस्वीरित्या जतन केले.",
+ "failedToSave": "कॉन्फिगरेशन जतन करण्यात अयशस्वी.",
+ "noApiKeysCreateOne": "API की उपलब्ध नाहीत - Keys पृष्ठावर एक तयार करा",
+ "defaultOmnirouteKey": "sk_omniroute (डीफॉल्ट)",
+ "selectModel": "मॉडेल निवडा",
+ "selectModelForAlias": "{alias} साठी मॉडेल निवडा",
+ "selectModelForTool": "{tool} साठी मॉडेल निवडा",
+ "select": "निवडा",
+ "clear": "साफ करा",
+ "comingSoon": "लवकरच उपलब्ध",
+ "checkingRuntime": "रनटाइम स्थिती तपासत आहे...",
+ "guideOnlyIntegration": "केवळ मार्गदर्शक एकत्रीकरण (स्थानिक रनटाइमची आवश्यकता नाही)",
+ "cliRuntimeDetected": "CLI रनटाइम आढळला आणि तयार आहे",
+ "cliFoundNotRunnable": "CLI आढळले, परंतु चालवता येत नाही{reason}",
+ "cliRuntimeNotDetected": "CLI रनटाइम आढळला नाही",
+ "binary": "बायनरी",
+ "configPath": "कॉन्फिग पथ",
+ "configPathShort": "कॉन्फिग",
+ "failedCheckRuntimeStatus": "रनटाइम स्थिती तपासण्यात अयशस्वी.",
+ "copy": "कॉपी करा",
+ "copied": "कॉपी केले",
+ "copyConfig": "कॉन्फिग कॉपी करा",
+ "saveConfig": "कॉन्फिग जतन करा",
+ "selectionSaved": "निवड जतन केली",
+ "guide": "मार्गदर्शक",
+ "detected": "आढळले",
+ "notReady": "तयार नाही",
+ "active": "सक्रिय",
+ "inactive": "निष्क्रिय",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM यशस्वीरीत्या सुरू झाले!",
+ "mitmStopped": "MITM यशस्वीरीत्या थांबवले!",
+ "failedStart": "MITM सुरू करण्यात अयशस्वी",
+ "failedStop": "MITM थांबवण्यात अयशस्वी",
+ "saveMappings": "मॅपिंग्ज जतन करा",
+ "mappingsSaved": "मॅपिंग्ज जतन केली!",
+ "failedSaveMappings": "मॅपिंग्ज जतन करण्यात अयशस्वी",
"reasoningEffortDefault": "डीफॉल्ट",
"reasoningEffortHint": "डीफॉल्ट एजंटने पाठवलेला रिझनिंग एफर्ट कायम ठेवतो",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "उच्च",
"xhigh": "XHigh"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "हे कसे कार्य करते:",
+ "antigravityHowWorksDesc": "Antigravity विनंत्या Google च्या एंडपॉइंटकडे पाठवते. MITM त्या अडवून OmniRoute कडे पुनर्निर्देशित करते.",
+ "antigravityStep1": "1. OmniRoute द्वारे विनंत्या रूट करण्यासाठी MITM सुरू करा.",
+ "antigravityStep2Prefix": "2. हे जोडा:",
+ "antigravityStep2Suffix": "तुमच्या hosts फाइलमध्ये 127.0.0.1 म्हणून.",
+ "antigravityStep3": "3. Antigravity उघडा आणि विनंत्या प्रॉक्सी केल्या जातील.",
+ "mitmHowWorksDesc": "{toolName} त्याच्या प्रदात्याच्या एंडपॉइंटकडे विनंत्या पाठवते. MITM त्या अडवून OmniRoute कडे पुनर्निर्देशित करते.",
+ "mitmStep1": "1. OmniRoute द्वारे विनंत्या रूट करण्यासाठी MITM सुरू करा.",
+ "mitmStep2Prefix": "2. हे जोडा:",
+ "mitmStep2Suffix": "तुमच्या hosts फाइलमध्ये 127.0.0.1 म्हणून.",
+ "mitmStep3": "3. {toolName} उघडा आणि विनंत्या प्रॉक्सी केल्या जातील.",
+ "sudoPasswordRequiredTitle": "Sudo पासवर्ड आवश्यक",
+ "sudoPasswordHint": "hosts फाइल आणि सिस्टम प्रॉक्सी सेटिंग्जमध्ये बदल करण्यासाठी प्रशासकाचा पासवर्ड आवश्यक आहे.",
+ "enterSudoPassword": "sudo पासवर्ड प्रविष्ट करा",
+ "sudoPasswordRequiredError": "Sudo पासवर्ड आवश्यक आहे.",
+ "cancel": "रद्द करा",
+ "confirm": "पुष्टी करा",
+ "settingsApplied": "सेटिंग्ज यशस्वीरित्या लागू केल्या!",
+ "failedApplySettings": "सेटिंग्ज लागू करण्यात अयशस्वी",
+ "settingsReset": "सेटिंग्ज यशस्वीरित्या रीसेट केल्या!",
+ "failedResetSettings": "सेटिंग्ज रीसेट करण्यात अयशस्वी",
+ "backupRestored": "बॅकअप पुनर्संचयित केला!",
+ "failedRestore": "पुनर्संचयित करण्यात अयशस्वी",
+ "checkingCli": "{tool} CLI तपासत आहे...",
+ "cliNotRunnable": "{tool} CLI इंस्टॉल केले आहे, पण चालवता येत नाही",
+ "cliNotInstalled": "{tool} CLI इंस्टॉल केलेले नाही",
+ "cliNotDetected": "{tool} CLI आढळले नाही",
+ "cliDetectedReady": "{tool} CLI आढळले आणि तयार आहे",
+ "cliFoundFailedHealthcheck": "{tool} CLI आढळले, पण रनटाइम आरोग्य तपासणी अयशस्वी झाली{reason}.",
+ "installCliPrompt": "हे वैशिष्ट्य वापरण्यासाठी कृपया {tool} CLI इंस्टॉल करा.",
+ "installCodexPrompt": "स्वयं-लागू वैशिष्ट्य वापरण्यासाठी कृपया Codex CLI इंस्टॉल करा.",
+ "hide": "लपवा",
+ "howToInstall": "इंस्टॉल कसे करावे",
+ "installationGuide": "इंस्टॉलेशन मार्गदर्शक",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "इंस्टॉल केल्यानंतर, चालवा",
+ "toVerify": "पडताळणी करण्यासाठी.",
+ "current": "सध्याचे",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "डीफॉल्टवर रीसेट करा",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "लागू करा",
+ "reset": "रीसेट करा",
+ "manualConfig": "मॅन्युअल कॉन्फिगरेशन",
+ "backups": "बॅकअप्स",
+ "configBackups": "कॉन्फिगरेशन बॅकअप्स",
+ "noBackupsYet": "अद्याप कोणतेही बॅकअप नाहीत. प्रत्येक लागू किंवा रीसेट करण्यापूर्वी बॅकअप आपोआप तयार केले जातात.",
+ "restore": "पुनर्संचयित करा",
+ "backupRestoredReloading": "बॅकअप पुनर्संचयित केला! स्थिती पुन्हा लोड करत आहे...",
+ "failedRestoreBackup": "बॅकअप पुनर्संचयित करण्यात अयशस्वी",
+ "applied": "लागू केले!",
+ "failed": "अयशस्वी",
+ "resetDone": "रीसेट केले!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute हे OpenAI-सुसंगत प्रदाता म्हणून कॉन्फिगर केले आहे",
+ "provider": "प्रदाता",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "प्रदाते",
+ "auth": "प्रमाणीकरण",
+ "noApiKeysAvailable": "कोणत्याही API की उपलब्ध नाहीत",
+ "usingDefaultOmniroute": "डीफॉल्ट वापरत आहे: sk_omniroute",
+ "updateConfig": "कॉन्फिग अपडेट करा",
+ "applyConfig": "कॉन्फिग लागू करा",
+ "noBackupsAvailable": "कोणतेही बॅकअप उपलब्ध नाहीत.",
+ "profileSaved": "प्रोफाइल \"{name}\" जतन केले!",
+ "failedSaveProfile": "प्रोफाइल जतन करण्यात अयशस्वी",
+ "profileActivated": "प्रोफाइल सक्रिय केले!",
+ "failedActivateProfile": "प्रोफाइल सक्रिय करण्यात अयशस्वी",
+ "profiles": "प्रोफाइल्स",
+ "savedProfiles": "जतन केलेली प्रोफाइल्स",
+ "noProfilesYet": "अद्याप कोणतीही प्रोफाइल्स जतन केलेली नाहीत. खाली सध्याचे कॉन्फिग प्रोफाइल म्हणून जतन करा.",
+ "activate": "सक्रिय करा",
+ "deleteProfile": "प्रोफाइल हटवा",
+ "profileNamePlaceholder": "प्रोफाइलचे नाव (उदा. वैयक्तिक खाते)",
+ "saveCurrent": "सध्याचे जतन करा",
+ "codexAuthNotePrefix": "Codex वापरते",
+ "codexAuthNoteMiddle": "यासह",
+ "codexAuthNoteSuffix": "स्वयं-कॉन्फिगर करण्यासाठी \"लागू करा\" वर क्लिक करा.",
+ "claudeManualConfiguration": "Claude CLI - मॅन्युअल कॉन्फिगरेशन",
+ "codexManualConfiguration": "Codex CLI - मॅन्युअल कॉन्फिगरेशन",
+ "droidManualConfiguration": "Factory Droid - मॅन्युअल कॉन्फिगरेशन",
+ "openClawManualConfiguration": "Open Claw - मॅन्युअल कॉन्फिगरेशन",
+ "clineManualConfiguration": "Cline मॅन्युअल कॉन्फिगरेशन",
+ "kiloManualConfiguration": "Kilo Code मॅन्युअल कॉन्फिगरेशन",
+ "whenToUseLabel": "केव्हा वापरावे",
+ "openToolDocs": "टूलची कागदपत्रे उघडा",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "Claude Code सह प्रभावी नियोजन कार्यप्रवाह आणि अनेक फाइल्समध्ये दीर्घ रिफॅक्टरिंग हवे असेल तेव्हा वापरा.",
+ "codex": "तुमच्या टीमने OpenAI Codex CLI कार्यप्रवाह आणि प्रोफाइल-आधारित प्रमाणीकरण प्रमाणित केलेले असेल तेव्हा वापरा.",
+ "droid": "वेगवान कोडिंग आणि कमांड एक्झिक्युशन लूप्सवर केंद्रित असलेला हलका टर्मिनल एजंट हवा असेल तेव्हा वापरा.",
+ "openclaw": "Open Claw शैलीचा कोडिंग एजंट हवा असेल, पण त्याचे राउटिंग OmniRoute धोरणांद्वारे करायचे असेल तेव्हा वापरा.",
+ "cline": "एडिटर्समध्ये कोडिंग एजंट्स कॉन्फिगर करताना OmniRoute मॉडेल्ससह मार्गदर्शित सेटअप हवा असेल तेव्हा वापरा.",
+ "kilo": "तुमचा कार्यप्रवाह Kilo Code कमांड्स आणि वेगवान पुनरावृत्तीपूर्ण संपादनांवर अवलंबून असेल तेव्हा वापरा.",
+ "cursor": "Cursor मध्ये कोडिंग करताना OmniRoute द्वारे सानुकूल OpenAI-सुसंगत मॉडेल्सची आवश्यकता असेल तेव्हा वापरा.",
+ "continue": "IDEs मध्ये Continue चालवताना पोर्टेबल JSON-आधारित प्रोव्हायडर कॉन्फिगरेशनची आवश्यकता असेल तेव्हा वापरा.",
+ "opencode": "OpenCode द्वारे टर्मिनल-नेटिव्ह एजंट रन आणि स्क्रिप्टेड ऑटोमेशनला प्राधान्य देत असाल तेव्हा वापरा.",
+ "kiro": "Kiro समाकलित करताना आणि OmniRoute मधून मॉडेल राउटिंगचे केंद्रीकृत नियंत्रण करताना वापरा.",
+ "windsurf": "OmniRoute द्वारे रूट केलेल्या Codeium/Windsurf मॉडेल्ससह AI-प्रथम IDE हवे असेल तेव्हा वापरा.",
+ "antigravity": "Antigravity/Kiro ट्रॅफिक MITM द्वारे इंटरसेप्ट करून OmniRoute कडे रूट करणे आवश्यक असेल तेव्हा वापरा.",
+ "copilot": "OmniRoute कीज आणि राउटिंग नियम लागू करताना Copilot चॅट-शैलीचा UX हवा असेल तेव्हा वापरा.",
+ "amp": "Amp शॉर्टहँड कार्यप्रवाह हवे असतील, पण तरीही OmniRoute उपनाव आणि राउटिंग नियमांची अंमलबजावणी आवश्यक असेल तेव्हा वापरा.",
+ "hermes": "जलद कामांसाठी हलका, टर्मिनल-नेटिव्ह AI सहाय्यक हवा असेल तेव्हा वापरा.",
"hermes-agent": "जेव्हा तुम्हाला OmniRoute द्वारे रूट केलेल्या डीफॉल्ट, डेलिगेशन, व्हिजन आणि ऑक्झिलरी मॉडेल्ससह Hermes Agent (Nousresearch द्वारे) ची आवश्यकता असेल तेव्हा वापरा.",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "कस्टम टूल अंमलबजावणी किंवा सर्वसाधारण OpenAI-सुसंगत कॉन्फिगरेशनसाठी वापरा."
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "MITM सह Google Antigravity IDE",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "कस्टम प्रोव्हायडर सपोर्टसह xAI Grok Build TUI कोडिंग एजंट",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Factory Droid AI सहाय्यक",
+ "openclaw": "Open Claw AI सहाय्यक",
+ "cline": "Cline AI कोडिंग सहाय्यक CLI",
+ "kilo": "Kilo Code AI सहाय्यक CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Continue AI सहाय्यक",
+ "opencode": "OpenCode AI कोडिंग एजंट (टर्मिनल)",
+ "kiro": "Amazon Kiro — AI-सक्षम IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp कोडिंग सहाय्यक CLI",
+ "hermes": "Hermes AI टर्मिनल सहाय्यक",
"hermes-agent": "Hermes Agent (Nousresearch द्वारे) - मल्टी-मॉडेल सपोर्टसह प्रगत टर्मिनल AI (डेलिगेशन, व्हिजन, कॉम्प्रेशन, इत्यादी)",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "सर्वसाधारण OpenAI-सुसंगत CLI किंवा SDK कॉन्फिगरेशन जनरेटर",
"aider": "OpenAI-सुसंगत बेस URL सह Aider AI पेअर-प्रोग्रामिंग CLI",
"forge": "कस्टम प्रोव्हायडरसह ForgeCode कोडिंग एजंट CLI",
"cursor-cli": "हेडलेस एजंट मोडमध्ये Cursor Agent CLI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter ऑटोनॉमस कोडिंग एजंट CLI",
"omp": "Oh My Pi टर्मिनल कोडिंग एजंट",
"letta": "पर्सिस्टंट मेमरी आणि टूल वापरासह Letta CLI एजंट",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI-सुसंगत प्रदाता समर्थनासह स्वतःमध्ये सुधारणा करणारा RLM कोडिंग हार्नेस",
"warp": "कस्टम प्रोव्हायडर सपोर्टसह Warp AI टर्मिनल",
"agent-deck": "Agent Deck मल्टी-एजंट ऑर्केस्ट्रेटर",
"5dive": "5dive — स्वयं-होस्टेड कोडिंग एजंट्सचा ताफा; एक auth प्रोफाइल सर्वांना OmniRoute कडे निर्देशित करते"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "हे वैशिष्ट्य वापरण्यासाठी Cursor Pro खाते आवश्यक आहे.",
+ "1": "Cursor विनंत्या स्वतःच्या सर्व्हरद्वारे रूट करतो, त्यामुळे स्थानिक एंडपॉइंट समर्थित नाही. कृपया सेटिंग्जमध्ये Cloud Endpoint सक्षम करा."
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "सेटिंग्ज उघडा",
+ "desc": "सेटिंग्ज -> मॉडेल्स येथे जा"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI API सक्षम करा",
+ "desc": "\"OpenAI API key\" पर्याय सक्षम करा"
},
"3": {
- "title": "Base URL"
+ "title": "बेस URL"
},
"4": {
- "title": "API Key"
+ "title": "API की"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "कस्टम मॉडेल जोडा",
+ "desc": "\"View All Model\" -> \"Add Custom Model\" वर क्लिक करा"
},
"6": {
- "title": "Select Model"
+ "title": "मॉडेल निवडा"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "कॉन्फिगरेशन उघडा",
+ "desc": "Continue कॉन्फिगरेशन फाइल उघडा"
},
"2": {
- "title": "API Key"
+ "title": "API की"
},
"3": {
- "title": "Select Model"
+ "title": "मॉडेल निवडा"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "मॉडेल कॉन्फिगरेशन जोडा",
+ "desc": "तुमच्या models अॅरेमध्ये खालील कॉन्फिगरेशन जोडा:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue JSON कॉन्फिगरेशन फाइल वापरते."
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCode इंस्टॉल करा",
+ "desc": "npm द्वारे इंस्टॉल करा: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API की"
},
"3": {
- "title": "Set Base URL",
+ "title": "बेस URL सेट करा",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "मॉडेल निवडा"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "थिंकिंग व्हेरियंट वापरा",
+ "desc": "थिंकिंग मॉडेल्ससाठी, --variant high/low/max सह चालवा (खाली उदाहरण कमांड दिली आहे)."
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode साठी API की कॉन्फिगरेशन आवश्यक आहे.",
+ "1": "बेस URL तुमच्या OmniRoute एंडपॉइंटवर सेट करा."
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro सेटिंग्ज उघडा",
+ "desc": "सेटिंग्ज → AI प्रदाता येथे जा"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "बेस URL",
+ "desc": "तुमची OmniRoute एंडपॉइंट URL पेस्ट करा"
},
"3": {
- "title": "API Key"
+ "title": "API की"
},
"4": {
- "title": "Select Model"
+ "title": "मॉडेल निवडा"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro साठी Amazon खाते आवश्यक आहे."
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI सेटिंग्ज उघडा",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "सानुकूल प्रदाता जोडा",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "बेस URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API की",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "मॉडेल निवडा",
+ "desc": "ड्रॉपडाउनमधून मॉडेल निवडा"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "स्वयं-कॉन्फिगर केलेले",
+ "toolCategoriesDesc": "OmniRoute द्वारे रूट करण्यासाठी AI कोडिंग सहाय्यक कॉन्फिगर करा",
+ "allToolsTab": "सर्व साधने",
+ "guidedClientsTab": "मार्गदर्शित क्लायंट्स",
+ "mitmClientsTab": "MITM क्लायंट्स",
"customCliTab": "सानुकूल CLI",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "साधनांच्या श्रेणी",
+ "visibleToolsCount": "{count} साधने उपलब्ध",
"customCliBuilderTitle": "OpenAI- सुसंगत CLI बिल्डर",
"customCliBuilderDescription": "OpenAI- सुसंगत बेस URL, API की आणि मॉडेल आयडी स्वीकारणाऱ्या कोणत्याही CLI किंवा SDK साठी env vars आणि JSON स्निपेट्स व्युत्पन्न करा.",
"customCliNoModels": "मॉडेल निवडक पॉप्युलेट करण्यासाठी किमान एक प्रदाता कनेक्ट करा.",
@@ -3199,75 +3203,75 @@
"cliproxyapiVersion": "आवृत्ती"
},
"combos": {
- "title": "Combos",
- "description": "Create model combos with weighted routing and fallback support",
+ "title": "कॉम्बोज",
+ "description": "भारित रूटिंग आणि फॉलबॅक समर्थनासह मॉडेल कॉम्बोज तयार करा",
"autoCatalogTitle": "ऑटो-राउटिंग कॅटलॉग",
"autoCatalogTemplateCount": "{count} टेम्पलेट्स",
"autoCatalogDescription": "बिल्ट-इन ऑटो/* कॉम्बो कनेक्ट केलेल्या प्रदात्यांकडून डायनॅमिकपणे निराकरण केले. यापैकी कोणतेही आयडी मॉडेल फील्ड म्हणून वापरा — कोणत्याही सेटअपची आवश्यकता नाही.",
"autoCatalogExpand": "स्वयं-राउटिंग कॅटलॉग विस्तृत करा",
"autoCatalogCollapse": "ऑटो-राउटिंग कॅटलॉग संकुचित करा",
- "createCombo": "Create Combo",
- "editCombo": "Edit Combo",
- "deleteCombo": "Delete Combo",
- "noModels": "No models",
- "noModelsYet": "No models added yet",
- "addModel": "Add Model",
- "addModelToCombo": "Add Model to Combo",
- "routingStrategy": "Routing Strategy",
- "maxRetries": "Max Retries",
- "timeout": "Timeout (ms)",
- "healthcheck": "Healthcheck",
- "priority": "Priority",
- "fallback": "Fallback",
+ "createCombo": "कॉम्बो तयार करा",
+ "editCombo": "कॉम्बो संपादित करा",
+ "deleteCombo": "कॉम्बो हटवा",
+ "noModels": "कोणतेही मॉडेल नाही",
+ "noModelsYet": "अद्याप कोणतेही मॉडेल जोडलेले नाही",
+ "addModel": "मॉडेल जोडा",
+ "addModelToCombo": "कॉम्बोमध्ये मॉडेल जोडा",
+ "routingStrategy": "रूटिंग धोरण",
+ "maxRetries": "कमाल पुनःप्रयत्न",
+ "timeout": "टाइमआउट (ms)",
+ "healthcheck": "आरोग्य तपासणी",
+ "priority": "प्राधान्य",
+ "fallback": "फॉलबॅक",
"roundRobin": "Round Robin",
- "random": "Random",
- "leastLatency": "Least Latency",
- "comboName": "Combo Name",
- "comboNamePlaceholder": "my-combo",
+ "random": "यादृच्छिक",
+ "leastLatency": "सर्वात कमी विलंब",
+ "comboName": "कॉम्बोचे नाव",
+ "comboNamePlaceholder": "माझा-कॉम्बो",
"comboDescription": "वर्णन",
"comboDescriptionPlaceholder": "या कॉम्बोचे वर्णन करणारी पर्यायी नोंद",
- "deleteConfirm": "Delete this combo?",
- "noCombosYet": "No combos yet",
- "comboCreated": "Combo created successfully",
- "comboUpdated": "Combo updated successfully",
- "comboDeleted": "Combo deleted",
- "failedCreate": "Failed to create combo",
- "failedUpdate": "Failed to update combo",
- "errorCreating": "Error creating combo",
- "errorUpdating": "Error updating combo",
- "errorDeleting": "Error deleting combo",
- "testFailed": "Test request failed",
- "failedToggle": "Failed to toggle combo",
- "testResults": "Test Results — {name}",
- "resolvedBy": "Resolved by:",
- "more": "+{count} more",
- "reqs": "reqs",
- "success": "success",
- "proxyConfigured": "Proxy configured",
- "copyComboName": "Copy combo name",
- "enableCombo": "Enable combo",
- "disableCombo": "Disable combo",
- "testCombo": "Test combo",
- "duplicate": "Duplicate",
- "proxyConfig": "Proxy configuration",
- "nameRequired": "Name is required",
- "nameInvalid": "Only letters, numbers, -, _, / and . allowed",
- "nameHint": "Letters, numbers, -, _, / and . allowed",
- "priorityDesc": "Sequential fallback: tries model 1 first, then 2, etc.",
- "weightedDesc": "Distributes traffic by weight percentage with fallback",
- "roundRobinDesc": "Circular distribution: each request goes to the next model in rotation",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
- "randomDesc": "Uniform random selection, then fallback to remaining models",
- "leastUsedDesc": "Picks the model with fewest requests, balancing load over time",
- "costOptimizedDesc": "Routes to the cheapest model first based on pricing",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "deleteConfirm": "हा कॉम्बो हटवायचा?",
+ "noCombosYet": "अद्याप कोणतेही कॉम्बो नाहीत",
+ "comboCreated": "कॉम्बो यशस्वीरित्या तयार केला",
+ "comboUpdated": "कॉम्बो यशस्वीरित्या अपडेट केला",
+ "comboDeleted": "कॉम्बो हटवला",
+ "failedCreate": "कॉम्बो तयार करण्यात अयशस्वी",
+ "failedUpdate": "कॉम्बो अपडेट करण्यात अयशस्वी",
+ "errorCreating": "कॉम्बो तयार करताना त्रुटी",
+ "errorUpdating": "कॉम्बो अपडेट करताना त्रुटी",
+ "errorDeleting": "कॉम्बो हटवताना त्रुटी",
+ "testFailed": "चाचणी विनंती अयशस्वी",
+ "failedToggle": "कॉम्बोची स्थिती बदलण्यात अयशस्वी",
+ "testResults": "चाचणी निकाल — {name}",
+ "resolvedBy": "याद्वारे निराकरण:",
+ "more": "आणखी +{count}",
+ "reqs": "विनंत्या",
+ "success": "यशस्वी",
+ "proxyConfigured": "प्रॉक्सी कॉन्फिगर केली",
+ "copyComboName": "कॉम्बोचे नाव कॉपी करा",
+ "enableCombo": "कॉम्बो सक्षम करा",
+ "disableCombo": "कॉम्बो अक्षम करा",
+ "testCombo": "कॉम्बोची चाचणी करा",
+ "duplicate": "प्रत तयार करा",
+ "proxyConfig": "प्रॉक्सी कॉन्फिगरेशन",
+ "nameRequired": "नाव आवश्यक आहे",
+ "nameInvalid": "केवळ अक्षरे, अंक, -, _, / आणि . यांना परवानगी आहे",
+ "nameHint": "अक्षरे, अंक, -, _, / आणि . यांना परवानगी आहे",
+ "priorityDesc": "क्रमिक फॉलबॅक: प्रथम मॉडेल 1, त्यानंतर 2, अशा क्रमाने प्रयत्न करतो.",
+ "weightedDesc": "फॉलबॅकसह भाराच्या टक्केवारीनुसार ट्रॅफिक वितरित करतो",
+ "roundRobinDesc": "चक्रीय वितरण: प्रत्येक विनंती क्रमाने पुढील मॉडेलकडे जाते",
+ "contextRelay": "कॉन्टेक्स्ट रिले",
+ "contextRelayDesc": "खाती बदलताना हस्तांतरण सारांशांसह सत्राचे सातत्य जपतो",
+ "randomDesc": "समान संभाव्यतेने यादृच्छिक निवड, त्यानंतर उर्वरित मॉडेल्सकडे फॉलबॅक",
+ "leastUsedDesc": "सर्वांत कमी विनंत्या असलेले मॉडेल निवडून कालांतराने भार संतुलित करतो",
+ "costOptimizedDesc": "किंमतीच्या आधारे प्रथम सर्वांत स्वस्त मॉडेलकडे रूट करतो",
+ "cacheOptimizedDesc": "प्रत्येक पुनर्वापरयोग्य प्रॉम्प्ट उपसर्गाला सातत्याने त्याच प्रदाता खात्याकडे रूट करतो",
"resetAware": "रीसेट-अवेअर RR",
"resetAwareDesc": "शिल्लक कोटा 5h आणि साप्ताहिक रीसेट करा, नंतर समान स्कोअर राउंड-रॉबिन",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "कोटा-भारित",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "कठोर यादृच्छिक",
+ "strictRandomDesc": "शफल डेक — पुन्हा शफल करण्यापूर्वी प्रत्येक मॉडेल एकदा वापरतो",
"fusion": "फ्युजन",
"fusionDesc": "प्रॉम्प्ट समांतरपणे प्रत्येक पॅनेल मॉडेलकडे पाठवते, त्यानंतर एक जज मॉडेल एका अंतिम उत्तरामध्ये त्याचे संश्लेषण करते",
"fusionJudgeModel": "जज मॉडेल",
@@ -3278,27 +3282,27 @@
"fusionStragglerGraceMsHelp": "कोरम पूर्ण झाल्यावर संथ पॅनेल मॉडेल्ससाठी किती वेळ प्रतीक्षा करावी (डीफॉल्ट 8000).",
"fusionPanelHardTimeoutMs": "पॅनेल हार्ड टाइमआउट (ms)",
"fusionPanelHardTimeoutMsHelp": "कमाल मर्यादा जेणेकरून एक अडकलेले मॉडेल संपूर्ण पॅनेल थांबवू शकत नाही (डीफॉल्ट 90000).",
- "models": "Models",
- "autoBalance": "Auto-balance",
- "advancedSettings": "Advanced Settings",
- "retryDelay": "Retry Delay (ms)",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
- "advancedHint": "Leave empty to use global defaults. These override per-provider settings.",
+ "models": "मॉडेल्स",
+ "autoBalance": "स्वयं-संतुलन",
+ "advancedSettings": "प्रगत सेटिंग्ज",
+ "retryDelay": "पुनःप्रयत्न विलंब (ms)",
+ "concurrencyPerModel": "समवर्तीता / मॉडेल",
+ "queueTimeout": "रांग कालबाह्यता (ms)",
+ "contextRelayHandoffThreshold": "हँडऑफ मर्यादा",
+ "contextRelayHandoffThresholdHelp": "कोटा वापर या मर्यादेपर्यंत पोहोचल्यावर, सक्रिय खाते पूर्णपणे वापरले जाण्यापूर्वी OmniRoute एक संरचित हँडऑफ सारांश तयार करते.",
+ "contextRelayMaxMessages": "सारांशासाठी कमाल संदेश",
+ "contextRelayMaxMessagesHelp": "रिले सारांशात अलीकडील इतिहास किती प्रमाणात संक्षिप्त केला जाईल, हे मर्यादित करते.",
+ "contextRelaySummaryModel": "सारांश मॉडेल",
+ "contextRelaySummaryModelHelp": "केवळ हँडऑफ सारांश तयार करण्यासाठी वापरले जाणारे पर्यायी ओव्हरराइड मॉडेल. सक्रिय कॉम्बो मॉडेल पुन्हा वापरण्यासाठी हे रिकामे ठेवा.",
+ "contextRelayProviderNote": "Context Relay सध्या Codex खाते रोटेशनसाठी हँडऑफ तयार करते. सर्वोत्तम सातत्यासाठी ते एकाच provider च्या अनेक खात्यांसोबत वापरा.",
+ "advancedHint": "जागतिक डीफॉल्ट वापरण्यासाठी रिकामे ठेवा. हे प्रत्येक provider ची सेटिंग्ज ओव्हरराइड करतात.",
"failoverBeforeRetry": "पुन्हा प्रयत्न करण्यापूर्वी फेलओव्हर",
"maxSetRetries": "कमाल सेट पुन्हा प्रयत्न",
"setRetryDelayMs": "पुन्हा प्रयत्न विलंब सेट करा (ms)",
- "moveUp": "Move up",
- "moveDown": "Move down",
- "removeModel": "Remove",
- "saving": "Saving...",
+ "moveUp": "वर हलवा",
+ "moveDown": "खाली हलवा",
+ "removeModel": "काढून टाका",
+ "saving": "जतन करत आहे...",
"liveNoProviders": "अद्याप कोणतेही प्रदाते आढळले नाहीत.",
"liveFleetDataHint": "फ्लीट डेटा थेट कॉम्बो इव्हेंट्सद्वारे येतो.",
"liveActiveCount": "सक्रिय ({count})",
@@ -3338,43 +3342,43 @@
"playgroundEmptyHint": "राउटिंग पाथ पाहण्यासाठी एक कॉम्बो निवडा आणि Simulate Route वर क्लिक करा.",
"playgroundNoCombosYet": "अद्याप कोणतेही कॉम्बो कॉन्फिगर केलेले नाहीत.",
"playgroundCreateFirst": "प्रथम एक तयार करा",
- "weighted": "Weighted",
- "leastUsed": "Least-Used",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "weighted": "भारित",
+ "leastUsed": "सर्वात कमी वापरलेले",
+ "costOpt": "खर्च-अनुकूल",
+ "strategyGuideTitle": "ही रणनीती कशी वापरावी",
+ "strategyGuideWhen": "केव्हा वापरावे",
+ "strategyGuideAvoid": "केव्हा टाळावे",
+ "strategyGuideExample": "उदाहरण",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "तुमच्याकडे एक पसंतीचे मॉडेल आहे आणि तुम्हाला केवळ अपयश आल्यास फॉलबॅक हवा आहे.",
+ "avoid": "तुम्हाला विनंत्यांचे विविध मॉडेल्समध्ये वितरण करायचे आहे.",
+ "example": "आउटेजसाठी स्वस्त बॅकअप असलेले प्राथमिक कोडिंग मॉडेल."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "तुम्हाला विविध मॉडेल्समध्ये नियंत्रित ट्रॅफिक विभाजनाची आवश्यकता आहे.",
+ "avoid": "तुम्ही कालांतराने अचूक भार राखू शकत नाही.",
+ "example": "80% स्थिर मॉडेल + 20% कॅनरी मॉडेल रोलआउट."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "तुम्हाला अंदाज करता येण्याजोगे आणि समान वितरण हवे आहे.",
+ "avoid": "विलंब किंवा खर्चाच्या बाबतीत मॉडेल्समध्ये खूप फरक आहे.",
+ "example": "थ्रूपुट वितरित करण्यासाठी अनेक खात्यांवर समान मॉडेल."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "तुम्हाला कमीतकमी सेटअपसह सोपे वितरण हवे आहे.",
+ "avoid": "तुम्हाला ट्रॅफिकच्या कठोर हमींची आवश्यकता आहे.",
+ "example": "समतुल्य मॉडेल्ससह जलद प्रोटोटायपिंग."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "तुम्हाला प्रत्यक्ष मागणीवर आधारित अनुकूलनीय संतुलन हवे आहे.",
+ "avoid": "वापर संतुलनाचा लाभ मिळण्यासाठी ट्रॅफिक खूप कमी आहे.",
+ "example": "मिश्र कार्यभार, ज्यामध्ये एखादे मॉडेल अनेकदा ओव्हरलोड होते."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "खर्च कमी करणे ही तुमची सर्वोच्च प्राथमिकता आहे.",
+ "avoid": "किंमतविषयक डेटा उपलब्ध नाही किंवा कालबाह्य झाला आहे.",
+ "example": "कमी खर्चाला प्राधान्य असलेली पार्श्वभूमीतील किंवा बॅच कामे."
},
"reset-aware": {
"when": "तुम्ही कोटा टेलीमेट्री आणि भिन्न रीसेट विंडोसह एकाधिक खात्यांमधून मार्ग काढता.",
@@ -3382,104 +3386,104 @@
"example": "नंतर 80% खाते रीसेट करण्यापेक्षा उद्या 60% साप्ताहिक खाते रीसेट करण्यास प्राधान्य द्या."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "पूर्णपणे समान वितरण हवे असल्यास वापरा — पुनरावृत्ती होण्यापूर्वी प्रत्येक मॉडेल एकदा वापरले जाते.",
+ "avoid": "मॉडेल्सची गुणवत्ता किंवा विलंब वेगवेगळा असेल आणि क्रम महत्त्वाचा असेल, तर वापर टाळा.",
+ "example": "उदाहरण: वापराचे समान वितरण करण्यासाठी एकाच मॉडेलची अनेक खाती."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Power-of-Two-Choices अल्गोरिदम वापरून कमी-विलंबाची निवड हवी असल्यास वापरा.",
+ "avoid": "2 किंवा त्यापेक्षा कमी मॉडेल्स असलेल्या लहान संयोजनांसाठी वापर टाळा — राउंड-रॉबिनच्या तुलनेत कोणताही फायदा नाही.",
+ "example": "उदाहरण: 4+ समतुल्य मॉडेल एंडपॉइंट्सवर उच्च-थ्रूपुट इन्फरन्स."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "कार्यरत संदर्भ न गमावता खाते रोटेशनदरम्यान दीर्घ सत्रे टिकवायची असल्यास वापरा.",
+ "avoid": "खाते बदलणे क्वचित होत असल्यास किंवा अतिरिक्त सारांशीकरण विनंत्या नको असल्यास वापर टाळा.",
+ "example": "उदाहरण: कोटा संपण्याच्या जवळ असताना अनेक खात्यांमध्ये रोटेट होणारी Codex सत्रे."
},
"fill-first": {
- "when": "Use when you want to fully exhaust one provider's quota before moving to the next.",
- "avoid": "Avoid when you need request-level load balancing across providers.",
- "example": "Example: Use all $200 Deepgram credits before falling back to Groq."
+ "when": "पुढील प्रदात्याकडे जाण्यापूर्वी एका प्रदात्याचा कोटा पूर्णपणे वापरायचा असल्यास वापरा.",
+ "avoid": "प्रदात्यांमध्ये विनंती-स्तरीय लोड बॅलन्सिंग आवश्यक असल्यास वापर टाळा.",
+ "example": "उदाहरण: Groq कडे फॉलबॅक करण्यापूर्वी सर्व $200 Deepgram क्रेडिट्स वापरा."
},
"auto": {
- "when": "Use when you need multi-factor scoring routing based on cost, latency, and quality.",
- "avoid": "Avoid when you need strict priority ordering or historical persistence.",
- "example": "Example: Balance requests across models with different strengths."
+ "when": "खर्च, विलंब आणि गुणवत्ता यांच्या आधारे बहु-घटक स्कोअरिंग राउटिंग आवश्यक असल्यास वापरा.",
+ "avoid": "कठोर प्राधान्यक्रम किंवा ऐतिहासिक सातत्य आवश्यक असल्यास वापर टाळा.",
+ "example": "उदाहरण: वेगवेगळी बलस्थाने असलेल्या मॉडेल्समध्ये विनंत्यांचा समतोल राखा."
},
"lkgp": {
- "when": "Use when you want to route based on historical success rates and performance.",
- "avoid": "Avoid when historical data is limited or unreliable.",
- "example": "Example: Route to models with a good track record on specific tasks."
+ "when": "ऐतिहासिक यशदर आणि कार्यप्रदर्शनाच्या आधारे राउट करायचे असल्यास वापरा.",
+ "avoid": "ऐतिहासिक डेटा मर्यादित किंवा अविश्वसनीय असल्यास वापर टाळा.",
+ "example": "उदाहरण: विशिष्ट कामांमध्ये चांगली कामगिरी नोंदवलेल्या मॉडेल्सकडे राउट करा."
},
"context-optimized": {
- "when": "Use when you need to optimize context window usage across models.",
- "avoid": "Avoid when models have similar context lengths or tasks are simple.",
- "example": "Example: Distribute long conversations across models with larger context windows."
+ "when": "मॉडेल्समध्ये कॉन्टेक्स्ट विंडोचा वापर ऑप्टिमाइझ करायचा असल्यास वापरा.",
+ "avoid": "मॉडेल्सच्या कॉन्टेक्स्टची लांबी सारखी असल्यास किंवा कामे सोपी असल्यास वापर टाळा.",
+ "example": "उदाहरण: मोठ्या कॉन्टेक्स्ट विंडोज असलेल्या मॉडेल्समध्ये दीर्घ संभाषणे वितरित करा."
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "विनंती अयशस्वी घोषित करण्यापूर्वी किती पुनर्प्रयत्न केले जातात.",
+ "retryDelay": "पुनर्प्रयत्नांमधील प्रारंभिक प्रतीक्षा. अधिक मूल्यांमुळे अचानक येणाऱ्या भाराचा दबाव कमी होतो.",
+ "timeout": "रद्द करण्यापूर्वी विनंतीचा कमाल कालावधी.",
+ "healthcheck": "राउटिंग निर्णयांमधून अस्वस्थ मॉडेल्स/प्रदाते वगळते.",
+ "concurrencyPerModel": "राउंड-रॉबिनमध्ये प्रत्येक मॉडेलसाठी अनुमत कमाल समकालीन विनंत्या.",
+ "queueTimeout": "टाइमआउट होण्यापूर्वी विनंती रांगेत किती वेळ प्रतीक्षा करू शकते.",
"failoverBeforeRetry": "सक्षम केल्यावर, कोणतीही अपस्ट्रीम त्रुटी पुढील कॉम्बो लक्ष्यावर त्वरित फेलओव्हर ट्रिगर करते, सर्व पुन्हा प्रयत्न आणि फॉलबॅक URL वगळते.",
"maxSetRetries": "प्रत्येक लक्ष्य अयशस्वी झाल्यावर पूर्ण लक्ष्य सेट करण्याचा पुन्हा प्रयत्न करण्याची संख्या. 0 = सेट-स्तरीय पुन्हा प्रयत्न नाही.",
"setRetryDelayMs": "सेट-लेव्हल पुन्हा प्रयत्न करण्याच्या प्रयत्नांमध्ये विलंब, क्षणिक समस्यांचे निराकरण करण्यासाठी वेळ देते.",
"disableSessionStickiness": "पहिल्या-संदेश हॅशद्वारे संपूर्ण संभाषण एकाच कनेक्शनवर पिन करण्याऐवजी प्रत्येक विनंतीवर वेगळ्या कनेक्शनवर रोटेट करा. ग्लोबल डीफॉल्ट ओव्हरराइड करते. मल्टी-टर्न चॅट्ससाठी प्रॉम्प्ट-कॅशे हिट्स जतन करण्यासाठी Inherit वर ठेवा."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "द्रुत टेम्पलेट्स",
+ "templatesDescription": "प्रारंभिक प्रोफाइल लागू करा, त्यानंतर मॉडेल्स आणि कॉन्फिग समायोजित करा.",
+ "templateApply": "टेम्पलेट लागू करा",
+ "templateHighAvailability": "उच्च उपलब्धता",
+ "templateHighAvailabilityDesc": "आरोग्य तपासण्या आणि सुरक्षित पुनर्प्रयत्नांसह प्राधान्य राउटिंग.",
+ "templateCostSaver": "खर्च बचत",
+ "templateCostSaverDesc": "बजेटला प्राधान्य असलेल्या वर्कलोड्ससाठी खर्च-अनुकूलित राउटिंग.",
+ "templateBalanced": "संतुलित भार",
+ "templateBalancedDesc": "कालांतराने मागणी वितरित करण्यासाठी सर्वात कमी वापरावर आधारित राउटिंग.",
+ "usageGuideHide": "लपवा",
+ "usageGuideDontShowAgain": "पुन्हा दाखवू नका",
+ "usageGuideShow": "मार्गदर्शक दाखवा",
+ "quickTestTitle": "कॉम्बो पडताळणीसाठी तयार आहे",
+ "quickTestDescription": "फॉलबॅक आणि विलंबाचे वर्तन निश्चित करण्यासाठी आत्ताच चाचणी चालवा.",
+ "testNow": "आत्ताच चाचणी करा",
+ "pricingCoverage": "किंमत व्याप्ती",
+ "pricingCoverageHint": "सर्व कॉम्बो मॉडेल्ससाठी किंमत उपलब्ध असताना खर्च-अनुकूलित पर्याय सर्वोत्तम कार्य करतो.",
+ "pricingAvailable": "किंमत उपलब्ध",
+ "pricingMissing": "किंमत उपलब्ध नाही",
+ "pricingAvailableShort": "किंमत असलेले",
+ "pricingMissingShort": "किंमत-नसलेले",
"fallbackOnlyOnQuotaExhaustion": "फक्त कोटा संपल्यावर पुढे जा",
"fallbackOnlyOnQuotaExhaustionShort": "कोटा-फक्त बॅकअप",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
- "readinessCheckPricing": "Pricing data is available",
- "readinessCheckPricingOptional": "Pricing rule not required",
- "saveBlockedTitle": "Save is blocked until the following items are fixed:",
- "saveBlockName": "Define a combo name.",
- "saveBlockModels": "Add at least one model.",
- "saveBlockWeighted": "Set weights to 100% (current: {total}%).",
- "saveBlockPricing": "Add pricing for at least one model or choose a different strategy.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "warningRoundRobinSingleModel": "किमान 2 मॉडेल्स असताना राउंड-रॉबिन सर्वाधिक उपयुक्त ठरते.",
+ "warningCostOptimizedPartialPricing": "{total} पैकी फक्त {priced} मॉडेल्ससाठी किंमत उपलब्ध आहे. रूटिंग अंशतः खर्च-जागरूक असू शकते.",
+ "warningCostOptimizedNoPricing": "या कॉम्बोसाठी किंमतीचा कोणताही डेटा आढळला नाही. खर्च-अनुकूलित पर्याय अनपेक्षितपणे रूट करू शकतो.",
+ "filterAll": "सर्व",
+ "filterIntelligent": "बुद्धिमान",
+ "filterDeterministic": "निर्धारित",
+ "filterEmptyTitle": "या धोरण फिल्टरशी कोणतेही कॉम्बो जुळत नाहीत.",
+ "filterEmptyIntelligentDescription": "बुद्धिमान रूटिंग डॅशबोर्डमध्ये माहिती भरण्यासाठी auto किंवा LKGP कॉम्बो तयार करा.",
+ "filterEmptyDeterministicDescription": "सध्या फक्त auto आणि LKGP कॉम्बो उपलब्ध आहेत. पुन्हा सर्व वर स्विच करा किंवा निर्धारित कॉम्बो तयार करा.",
+ "readinessTitle": "जतन करण्यास तयार आहात?",
+ "readinessDescription": "हा कॉम्बो तयार किंवा अपडेट करण्यापूर्वी तपासणीसूचीचे पुनरावलोकन करा.",
+ "readinessCheckName": "कॉम्बोचे नाव वैध आहे",
+ "readinessCheckModels": "किमान एक मॉडेल निवडले आहे",
+ "readinessCheckWeights": "भारित एकूण 100% आहे",
+ "readinessCheckWeightsOptional": "वजनाचा नियम आवश्यक नाही",
+ "readinessCheckPricing": "किंमतीचा डेटा उपलब्ध आहे",
+ "readinessCheckPricingOptional": "किंमतीचा नियम आवश्यक नाही",
+ "saveBlockedTitle": "खालील बाबी दुरुस्त होईपर्यंत जतन करता येणार नाही:",
+ "saveBlockName": "कॉम्बोचे नाव निश्चित करा.",
+ "saveBlockModels": "किमान एक मॉडेल जोडा.",
+ "saveBlockWeighted": "वजने 100% वर सेट करा (सध्याचे: {total}%).",
+ "saveBlockPricing": "किमान एका मॉडेलसाठी किंमत जोडा किंवा वेगळे धोरण निवडा.",
+ "recommendationsLabel": "शिफारस केलेली संरचना",
+ "applyRecommendations": "शिफारसी लागू करा",
+ "recommendationsUpdated": "{strategy} साठी शिफारसी अपडेट केल्या.",
+ "recommendationsApplied": "या कॉम्बोवर शिफारसी लागू केल्या.",
+ "intelligentPanelTitle": "बुद्धिमान रूटिंग डॅशबोर्ड",
+ "intelligentPanelDesc": "या auto-routing कॉम्बोसाठी रिअल-टाइम स्कोअरिंग आणि स्थिती.",
"configOnlyStatus": "कॉन्फिगरेशन व्ह्यू",
"configOnlyHint": "हे पॅनेल केवळ राउटिंग इनपुट दाखवते. लाइव्ह ब्रेकर स्थिती Health पेजवर उपलब्ध आहे.",
"routingInputs": "राउटिंग इनपुट्स",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "अज्ञात प्रोव्हायडर प्रीफिक्स.",
"builderDynamicAccountShort": "डायनॅमिक खाते",
"builderNeedValidName": "पुढे जाण्यापूर्वी एक वैध कॉम्बो नाव परिभाषित करा.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "स्थितीचा आढावा",
+ "normalOperation": "सामान्य कार्यप्रणाली",
+ "allProvidersHealthy": "प्रदाते निरोगी रूटिंग स्थिती नोंदवत आहेत.",
+ "incidentMode": "घटना मोड",
+ "highCircuitBreakerRate": "सर्किट ब्रेकर ट्रिप होण्याचा उच्च दर आढळला.",
+ "activeModePack": "सक्रिय मोड पॅक",
+ "modePackUpdated": "मोड पॅक {pack} वर अपडेट केला.",
+ "modePackHint": "कॉम्बो पुन्हा तयार न करता रूटिंग इंजिनला प्राधान्य देण्यासाठी प्रीसेट बदला.",
+ "providerScores": "प्रदाता गुण",
+ "allProvidersEvaluated": "कोणताही उमेदवार पूल कॉन्फिगर केलेला नाही. रनटाइममध्ये सर्व सक्रिय प्रदात्यांचे मूल्यमापन केले जाते.",
+ "excludedProviders": "वगळलेले प्रदाते",
+ "excludedProvidersHint": "OPEN सर्किट ब्रेकर असलेले प्रदाते रूटिंगमधून तात्पुरते वगळले जातात.",
+ "noExcludedProviders": "सध्या कोणतेही प्रदाते वगळलेले नाहीत.",
+ "cooldownMinutes": "कूलडाउन: {minutes}मि.",
+ "builderIntelligentTitle": "बुद्धिमान रूटिंग कॉन्फिगरेशन",
+ "builderIntelligentDesc": "या ऑटो-रूटिंग कॉम्बोसाठी बहु-घटक गुणांकन इंजिन कॉन्फिगर करा.",
+ "candidatePoolLabel": "उमेदवार पूल",
+ "candidatePoolHint": "या इंजिनने कोणत्या प्रदात्यांचे मूल्यमापन करावे ते निवडा. सर्व सक्रिय प्रदाते वापरण्यासाठी हे रिकामे ठेवा.",
+ "candidatePoolEmpty": "अद्याप कोणतेही सक्रिय प्रदाते उपलब्ध नाहीत.",
+ "candidatePoolAllProviders": "सर्व प्रदाते",
+ "modePackLabel": "मोड पॅक",
+ "routerStrategyLabel": "राउटर धोरण",
+ "strategyRules": "नियम (६-घटक गुणांकन)",
+ "explorationRateLabel": "अन्वेषण दर",
+ "explorationRateHint": "{percent}% विनंत्या इष्टतम नसलेल्या प्रदात्यांचा वापर करून पाहू शकतात.",
+ "budgetCapLabel": "बजेट मर्यादा (USD / विनंती)",
+ "budgetCapPlaceholder": "मर्यादा नाही",
+ "advancedWeightsTitle": "प्रगत: गुणांकन भार",
"nestedComboFlatten": "नेस्टेड कॉम्बो फ्लॅटन करा",
"nestedComboExecute": "नेस्टेड कॉम्बो टार्गेट्स म्हणून कार्यान्वित करा",
"effectiveRoutingShare": "प्रभावी राउटिंग शेअर (weight ÷ total)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "कोटा",
+ "weightHealth": "आरोग्य",
+ "weightCostInv": "खर्च",
+ "weightLatencyInv": "विलंबता",
+ "weightTaskFit": "कार्य अनुरूपता",
+ "weightStability": "स्थिरता",
+ "weightTierPriority": "स्तर",
+ "weightCacheAffinity": "कॅश हिट अनुरूपता",
"weightSessionAvailability": "सत्र उपलब्धता",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "बुद्धिमान रूटिंग कॉन्फिगरेशन",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "अपयश-सुरक्षित आधाररेषा",
+ "description": "एक प्राथमिक मॉडेल वापरा आणि फॉलबॅक साखळी लहान व विश्वासार्ह ठेवा.",
+ "tip1": "तुमचे सर्वाधिक विश्वासार्ह मॉडेल प्रथम ठेवा.",
+ "tip2": "समान गुणवत्तेची १-२ बॅकअप मॉडेल्स ठेवा.",
+ "tip3": "प्रदात्यांच्या तात्पुरत्या अपयशांचा परिणाम कमी करण्यासाठी सुरक्षित पुनर्प्रयत्न वापरा."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "नियंत्रित ट्रॅफिक विभाजन",
+ "description": "कॅनरी रोलआउट्स आणि मॉडेल्समधील टप्प्याटप्प्याने स्थलांतरासाठी उत्तम.",
+ "tip1": "90/10 सारख्या सावध विभाजनाने सुरुवात करा.",
+ "tip2": "एकूण प्रमाण 100% ठेवा आणि बदलांनंतर स्वयंचलितपणे संतुलित करा.",
+ "tip3": "कॅनरीचे वजन वाढवण्यापूर्वी यशाचे प्रमाण आणि विलंबता यांचे निरीक्षण करा."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "अंदाज करता येण्याजोगे लोड वितरण",
+ "description": "मॉडेल्स समतुल्य असताना आणि सुरळीत वितरण आवश्यक असताना सर्वोत्तम.",
+ "tip1": "किमान 2 मॉडेल्स वापरा.",
+ "tip2": "अचानक होणारा ओव्हरलोड टाळण्यासाठी समवर्ती विनंत्यांच्या मर्यादा सेट करा.",
+ "tip3": "अतिभाराच्या स्थितीत त्वरित अपयशी होण्यासाठी रांग कालबाह्यता वापरा."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "कमी सेटअपसह जलद वितरण",
+ "description": "कठोर हमींशिवाय साधे वितरण आवश्यक असताना वापरा.",
+ "tip1": "समान विलंबता प्रोफाइल असलेली मॉडेल्स वापरा.",
+ "tip2": "यादृच्छिक त्रुटी हाताळण्यासाठी पुनःप्रयत्न सक्षम ठेवा.",
+ "tip3": "कठोर SLAs ऐवजी प्रयोगांसाठी याला प्राधान्य द्या."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "अनुकूली संतुलन",
+ "description": "कालांतराने हॉटस्पॉट्स कमी करण्यासाठी कमी वापरल्या जाणाऱ्या मॉडेल्सकडे रूट करते.",
+ "tip1": "सातत्यपूर्ण ट्रॅफिकमध्ये अधिक चांगले कार्य करते.",
+ "tip2": "अधिक सुरक्षित संतुलनासाठी हेल्थ चेक्ससह वापरा.",
+ "tip3": "वितरणातील लाभ पडताळण्यासाठी प्रत्येक मॉडेलच्या वापराचा मागोवा घ्या."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "बजेट-प्रथम रूटिंग",
+ "description": "किंमत मेटाडेटा उपलब्ध असताना कमी खर्चाच्या मॉडेल्सकडे रूट करते.",
+ "tip1": "निवडलेल्या सर्व मॉडेल्ससाठी किंमत माहिती उपलब्ध असल्याची खात्री करा.",
+ "tip2": "कठीण प्रॉम्प्ट्ससाठी उच्च-गुणवत्तेचा फॉलबॅक ठेवा.",
+ "tip3": "खर्च हा मुख्य KPI असलेल्या बॅच/पार्श्वभूमी जॉब्ससाठी वापरा."
},
"reset-aware": {
"title": "रीसेट-जागरूक खाते रोटेशन",
@@ -3593,155 +3597,155 @@
"tip3": "टाय बँड लहान ठेवा जेणेकरून समतुल्य खाती अजूनही योग्यरित्या फिरतील."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "शफल डेक वितरण",
+ "description": "पुन्हा शफल करण्यापूर्वी प्रत्येक चक्रात प्रत्येक मॉडेलचा नेमका एकदाच वापर केला जातो.",
+ "tip1": "अर्थपूर्ण वितरणासाठी किमान 2 मॉडेल्स वापरा.",
+ "tip2": "समतुल्य कार्यप्रदर्शन असलेल्या मॉडेल्ससह सर्वोत्तम कार्य करते.",
+ "tip3": "एकाधिक API खात्यांमध्ये लोड संतुलित करण्यासाठी आदर्श."
},
"fill-first": {
- "description": "Exhaust provider quotas sequentially before falling back.",
- "tip1": "Use for quota-based routing with clear fallback chains.",
- "tip2": "Set quotas accurately to avoid premature fallback.",
- "tip3": "Works best with providers offering free tiers or credit buckets.",
- "title": "Quota Exhaustion"
+ "description": "फॉलबॅक करण्यापूर्वी प्रदात्यांचे कोटे क्रमाक्रमाने पूर्णपणे वापरा.",
+ "tip1": "स्पष्ट फॉलबॅक साखळ्यांसह कोटा-आधारित रूटिंगसाठी वापरा.",
+ "tip2": "अकाली फॉलबॅक टाळण्यासाठी कोटे अचूकपणे सेट करा.",
+ "tip3": "मोफत स्तर किंवा क्रेडिट बकेट्स देणाऱ्या प्रदात्यांसह सर्वोत्तम कार्य करते.",
+ "title": "कोटा समाप्ती"
},
"auto": {
- "description": "Route based on real-time scoring for cost, latency, quality, and health.",
- "tip1": "Let the engine balance multiple factors automatically.",
- "tip2": "Monitor which factors drive routing decisions in logs.",
- "tip3": "Use for complex workloads where no single factor dominates.",
- "title": "Multi-Factor Optimization"
+ "description": "खर्च, विलंबता, गुणवत्ता आणि आरोग्य यांच्या रिअल-टाइम स्कोअरिंगवर आधारित रूट करा.",
+ "tip1": "इंजिनला अनेक घटक स्वयंचलितपणे संतुलित करू द्या.",
+ "tip2": "लॉग्समध्ये कोणते घटक रूटिंग निर्णयांवर प्रभाव टाकतात याचे निरीक्षण करा.",
+ "tip3": "ज्या जटिल वर्कलोड्समध्ये कोणताही एक घटक प्रबळ नसतो त्यांच्यासाठी वापरा.",
+ "title": "बहु-घटक अनुकूलन"
},
"lkgp": {
- "description": "Route based on historical performance and success patterns.",
- "tip1": "Requires sufficient request history for accurate predictions.",
- "tip2": "Good for workloads with consistent model performance patterns.",
- "tip3": "Monitor prediction accuracy and adjust weights as needed.",
- "title": "History-Based Routing"
+ "description": "ऐतिहासिक कार्यक्षमता आणि यशस्वी नमुन्यांच्या आधारे रूट करा.",
+ "tip1": "अचूक अंदाजांसाठी पुरेसा विनंती इतिहास आवश्यक आहे.",
+ "tip2": "सातत्यपूर्ण मॉडेल कार्यक्षमता नमुने असलेल्या वर्कलोडसाठी योग्य.",
+ "tip3": "अंदाजाच्या अचूकतेचे निरीक्षण करा आणि आवश्यकतेनुसार वजने समायोजित करा.",
+ "title": "इतिहास-आधारित रूटिंग"
},
"context-optimized": {
- "description": "Optimize routing based on context window usage and token efficiency.",
- "tip1": "Route long conversations to models with larger context windows.",
- "tip2": "Monitor context utilization to avoid token waste.",
- "tip3": "Best for conversational AI requiring extensive context retention.",
- "title": "Context Optimization"
+ "description": "कॉन्टेक्स्ट विंडोचा वापर आणि टोकन कार्यक्षमतेच्या आधारे रूटिंग ऑप्टिमाइझ करा.",
+ "tip1": "दीर्घ संभाषणे मोठ्या कॉन्टेक्स्ट विंडो असलेल्या मॉडेलकडे रूट करा.",
+ "tip2": "टोकनचा अपव्यय टाळण्यासाठी कॉन्टेक्स्ट वापराचे निरीक्षण करा.",
+ "tip3": "विस्तृत कॉन्टेक्स्ट टिकवून ठेवण्याची आवश्यकता असलेल्या संभाषणात्मक AI साठी सर्वोत्तम.",
+ "title": "कॉन्टेक्स्ट ऑप्टिमायझेशन"
},
"context-relay": {
- "description": "Best when account rotation is expected and the next account must inherit a simplified task summary.",
- "tip1": "Use with providers rotating accounts for the same model family.",
- "tip2": "Set handoff threshold below hard quota cutoffs for summary generation time.",
- "tip3": "Only set a dedicated summary model if the primary is too expensive or unstable.",
- "title": "Session Continuity Priority"
+ "description": "खाते रोटेशन अपेक्षित असताना आणि पुढील खात्याला सोप्या स्वरूपातील कार्य सारांश मिळणे आवश्यक असताना सर्वोत्तम.",
+ "tip1": "समान मॉडेल फॅमिलीसाठी खाती रोटेट करणाऱ्या प्रदात्यांसह वापरा.",
+ "tip2": "सारांश निर्मितीसाठी वेळ मिळावा म्हणून हँडऑफ थ्रेशोल्ड कठोर कोटा मर्यादेपेक्षा कमी ठेवा.",
+ "tip3": "प्राथमिक मॉडेल खूप महाग किंवा अस्थिर असेल तरच स्वतंत्र सारांश मॉडेल सेट करा.",
+ "title": "सत्र सातत्य प्राधान्य"
},
"p2c": {
- "description": "Route to the provider with the lowest current load based on real-time metrics.",
- "tip1": "Monitor provider health metrics for accurate load assessment.",
- "tip2": "Works best with homogeneous provider pools.",
- "tip3": "Adjust sensitivity to avoid oscillation during traffic spikes.",
- "title": "Power of Two Choices"
+ "description": "रिअल-टाइम मेट्रिक्सच्या आधारे सध्या सर्वात कमी लोड असलेल्या प्रदात्याकडे रूट करा.",
+ "tip1": "लोडचे अचूक मूल्यांकन करण्यासाठी प्रदात्याच्या आरोग्यविषयक मेट्रिक्सचे निरीक्षण करा.",
+ "tip2": "एकसमान प्रदाता पूलसह सर्वोत्तम कार्य करते.",
+ "tip3": "ट्रॅफिक वाढीदरम्यान होणारे दोलन टाळण्यासाठी संवेदनशीलता समायोजित करा.",
+ "title": "दोन पर्यायांची शक्ती"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
- "auto": "Intelligent Auto",
- "autoDesc": "Self-healing smart routing pool with multi-factor scoring",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Prioritizes the last provider that successfully completed a request",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "templateFreeStack": "मोफत स्टॅक ($0)",
+ "templateFreeStackDesc": "सर्व मोफत प्रदात्यांमध्ये राउंड-रॉबिन: Kiro (Claude), Qoder (5 मॉडेल), Qwen (4 मॉडेल). शून्य खर्च, कोडिंग कधीही थांबत नाही.",
+ "auto": "बुद्धिमान स्वयंचलित",
+ "autoDesc": "बहु-घटक स्कोअरिंगसह स्वतःहून पूर्ववत होणारा स्मार्ट रूटिंग पूल",
+ "lkgp": "LKGP मोड",
+ "lkgpDesc": "विनंती यशस्वीरीत्या पूर्ण करणाऱ्या शेवटच्या प्रदात्याला प्राधान्य देते",
+ "wizardGuideTitle": "कॉम्बोसह सुरुवात करणे",
+ "wizardGuideDesc": "AI ट्रॅफिक बुद्धिमानपणे रूट करण्यासाठी मॉडेल कॉम्बो तयार करा",
+ "wizardGuideHint": "किंवा वरील + कॉम्बो तयार करा वर क्लिक करा",
+ "createFirstCombo": "तुमचा पहिला कॉम्बो तयार करा",
+ "wizardStep1Title": "तुमच्या कॉम्बोला नाव द्या",
+ "wizardStep1Desc": "रूटिंग नियमांमध्ये ओळखता यावे यासाठी तुमच्या कॉम्बोला एक अद्वितीय नाव द्या",
+ "wizardStep2Title": "मॉडेल जोडा",
+ "wizardStep2Desc": "AI मॉडेल निवडा आणि त्यांचा फॉलबॅक प्राधान्यक्रम लावा",
+ "wizardStep3Title": "धोरण निवडा",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "पुनरावलोकन करा आणि जतन करा",
+ "wizardStep4Desc": "तुमच्या कॉन्फिगरेशनचे पुनरावलोकन करा आणि कॉम्बो सक्रिय करा",
+ "usageGuideInvokeTitle": "हा कॉम्बो कसा कॉल करावा",
+ "usageGuideInvokeDesc": "मॉडेल म्हणून कॉम्बोचे अचूक नाव पाठवा, उदा. model: \"my-combo\" (किंवा combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto आणि auto/* हा स्वतंत्र शून्य-कॉन्फिगरेशन राउटर आहे, जो तुमचे कॉम्बो वापरत नाही (एखाद्या कॉम्बोचे नाव अक्षरशः auto असल्याशिवाय).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto हे प्रत्यक्ष सशुल्क OpenRouter उत्पादन (Auto Best Available) आहे, OmniRoute उपनाव नाही — Settings → Routing → Hide paid models द्वारे ते वगळा.",
+ "emailVisibilityStateOn": "चालू",
+ "emailVisibilityStateOff": "बंद",
+ "reorderHandle": "क्रम बदलण्यासाठी ड्रॅग करा",
+ "failedReorder": "मॉडेल्सचा क्रम बदलण्यात अयशस्वी",
+ "builderFlowTitle": "कॉम्बो बिल्डर प्रवाह",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "मूलभूत बाबी",
+ "description": "नाव आणि प्रारंभिक टेम्पलेट"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "टप्पे",
+ "description": "प्रदाता, मॉडेल आणि खाते निवड"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "धोरण",
+ "description": "रूटिंग वर्तन आणि प्रगत सेटिंग्ज"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "स्मार्ट रूटिंग",
+ "description": "स्वयं-रूटिंग उमेदवार संच, पूर्वनिश्चित पर्याय आणि गुणांकन"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "पुनरावलोकन",
+ "description": "जतन करण्यापूर्वी अंतिम प्रमाणीकरण"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
- "builderDuplicateExact": "This exact provider/model/account step is already in the combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
- "builderStagesDescription": "Complete each stage in order to define combos, build steps, select routing strategy, and review results.",
- "builderStepsDescription": "Build each combo step in order: provider, model, then account. This allows reusing the same provider and model across different accounts.",
- "selectProvider": "Select Provider",
- "selectProviderPlaceholder": "Select a provider",
- "selectModel": "Select Model",
- "selectModelPlaceholder": "Select a provider first",
- "selectAccount": "Select Account",
- "selectComboToReference": "Select combo to reference",
- "comboReference": "Combo Reference",
- "addComboReference": "Add Combo Reference",
- "addStepBeforeContinue": "Please add at least one step before proceeding to the next stage.",
- "previewNextStep": "Preview next step",
- "autoSelectAccount": "Automatically select account at runtime",
- "modePackBalanced": "Balanced",
- "modePackBudget": "Budget",
- "modePackPerformance": "Performance",
- "modePackCustom": "Custom",
- "browseLegacyCatalog": "Browse legacy combo catalog",
- "agentFeaturesTitle": "Agent Features",
- "agentFeaturesDescription": "Enable advanced features for agents using this combo",
+ "builderStageVisited": "टप्पा पूर्ण झाला",
+ "builderStageCurrent": "सध्याचा टप्पा",
+ "builderStagePending": "प्रलंबित",
+ "builderStageLocked": "लॉक केलेले — आधी मागील टप्पा पूर्ण करा",
+ "builderTitle": "कॉम्बो तयार करा",
+ "builderBrowseCatalog": "कॅटलॉग ब्राउझ करा",
+ "builderProvider": "प्रदाता",
+ "builderLoadingProviders": "प्रदाते लोड होत आहेत...",
+ "builderSelectProvider": "प्रदाता निवडा",
+ "builderModel": "मॉडेल",
+ "builderSelectModel": "मॉडेल निवडा",
+ "builderProviderFirst": "आधी प्रदाता निवडा",
+ "builderAccount": "खाते",
+ "builderPreview": "पूर्वावलोकन",
+ "builderAddStep": "टप्पा जोडा",
+ "builderDuplicateExact": "हा नेमका प्रदाता/मॉडेल/खाते टप्पा कॉम्बोमध्ये आधीपासूनच आहे.",
+ "builderComboRef": "कॉम्बो संदर्भ",
+ "builderAddComboRef": "कॉम्बो संदर्भ जोडा",
+ "builderComboRefStep": "कॉम्बो संदर्भ जोडा",
+ "builderPinnedAccount": "पिन केलेले खाते",
+ "builderLegacyEntry": "वारसा नोंद",
+ "reviewName": "नाव",
+ "reviewStrategy": "धोरण",
+ "reviewSteps": "टप्पे",
+ "reviewAccounts": "खाती",
+ "reviewProviders": "प्रदाते",
+ "reviewComboRefs": "कॉम्बो संदर्भ",
+ "reviewAdvanced": "प्रगत सेटिंग्ज",
+ "reviewAgentFlags": "एजंट फ्लॅग्ज",
+ "reviewSequence": "मॉडेल क्रम",
+ "reviewNoSteps": "कोणत्याही पायऱ्या कॉन्फिगर केलेल्या नाहीत",
+ "builderStagesDescription": "कॉम्बो निश्चित करण्यासाठी, पायऱ्या तयार करण्यासाठी, राउटिंग धोरण निवडण्यासाठी आणि परिणामांचे पुनरावलोकन करण्यासाठी प्रत्येक टप्पा क्रमाने पूर्ण करा.",
+ "builderStepsDescription": "प्रत्येक कॉम्बो पायरी या क्रमाने तयार करा: प्रदाता, मॉडेल आणि नंतर खाते. यामुळे वेगवेगळ्या खात्यांमध्ये समान प्रदाता आणि मॉडेल पुन्हा वापरता येतात.",
+ "selectProvider": "प्रदाता निवडा",
+ "selectProviderPlaceholder": "एक प्रदाता निवडा",
+ "selectModel": "मॉडेल निवडा",
+ "selectModelPlaceholder": "प्रथम प्रदाता निवडा",
+ "selectAccount": "खाते निवडा",
+ "selectComboToReference": "संदर्भासाठी कॉम्बो निवडा",
+ "comboReference": "कॉम्बो संदर्भ",
+ "addComboReference": "कॉम्बो संदर्भ जोडा",
+ "addStepBeforeContinue": "पुढील टप्प्यावर जाण्यापूर्वी कृपया किमान एक पायरी जोडा.",
+ "previewNextStep": "पुढील पायरीचे पूर्वावलोकन करा",
+ "autoSelectAccount": "रनटाइमवर खाते स्वयंचलितपणे निवडा",
+ "modePackBalanced": "संतुलित",
+ "modePackBudget": "बजेट",
+ "modePackPerformance": "कार्यक्षमता",
+ "modePackCustom": "सानुकूल",
+ "browseLegacyCatalog": "जुना कॉम्बो कॅटलॉग ब्राउझ करा",
+ "agentFeaturesTitle": "एजंट वैशिष्ट्ये",
+ "agentFeaturesDescription": "हा कॉम्बो वापरणाऱ्या एजंटसाठी प्रगत वैशिष्ट्ये सक्षम करा",
"responseValidationTitle": "प्रतिसाद प्रमाणीकरण",
"responseValidationHelp": "जेव्हा 200 OK बॉडी या तपासण्यांमध्ये अयशस्वी होते (असिस्टंट सामग्री), तेव्हा पुढील टार्गेटवर फेल ओव्हर करा.",
"responseValidationForbidden": "प्रतिबंधित सबस्ट्रिंग्स (प्रति ओळ एक)",
@@ -3749,13 +3753,13 @@
"responseValidationMinLength": "किमान सामग्री लांबी (अक्षरे)",
"responseValidationJsonPaths": "JSON-path तपासण्या",
"responseValidationAddCheck": "+ तपासणी जोडा",
- "agentFeaturesSystemMessageOverride": "Override system message",
- "agentFeaturesSystemMessagePlaceholder": "You are an expert assistant...",
- "agentFeaturesSystemMessageHint": "System message override for agents",
+ "agentFeaturesSystemMessageOverride": "सिस्टम संदेश ओव्हरराइड करा",
+ "agentFeaturesSystemMessagePlaceholder": "तुम्ही एक तज्ज्ञ सहाय्यक आहात...",
+ "agentFeaturesSystemMessageHint": "एजंटसाठी सिस्टम संदेश ओव्हरराइड",
"agentFeaturesToolFilterRegex": "/regex-pattern/",
- "agentFeaturesToolFilterHint": "Tool filter regex for agents",
- "agentFeaturesContextCacheHint": "Enable in-context cache for agent tools",
- "agentFeaturesContextCacheProtection": "Protect cache from agent tool mutations",
+ "agentFeaturesToolFilterHint": "एजंटसाठी टूल फिल्टर रेगेक्स",
+ "agentFeaturesContextCacheHint": "एजंट टूल्ससाठी इन-कॉन्टेक्स्ट कॅशे सक्षम करा",
+ "agentFeaturesContextCacheProtection": "एजंट टूलमधील बदलांपासून कॅशेचे संरक्षण करा",
"agentFeaturesContextLength": "संदर्भ लांबी",
"agentFeaturesContextLengthPlaceholder": "उदा. 128000",
"agentFeaturesContextLengthHint": "या कॉम्बोसाठी संदर्भ विंडो /v1/मॉडेल्समध्ये परिभाषित करते.",
@@ -3784,40 +3788,40 @@
"duplicateAutoComboTitle": "{name} मधून स्थिर कॉम्बो तयार करा"
},
"costs": {
- "title": "Costs",
- "pageDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "overview": "Overview",
- "budget": "Budget",
- "totalCost": "Total Cost",
- "breakdown": "Cost Breakdown",
- "noData": "No cost data",
- "byModel": "By Model",
- "byProvider": "By Provider",
- "range7d": "7 Days",
- "range30d": "30 Days",
- "range90d": "90 Days",
- "range180d": "180 Days",
- "range365d": "365 Days",
- "rangeAll": "All Time",
- "spend30d": "Spend 30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
- "overviewTitle": "Cost Overview",
- "spend7d": "Spend 7D",
- "avgCostPerRequest": "Avg Cost / Request",
- "noCostDataDescription": "Start making requests to see cost data appear here. Costs are tracked automatically for all providers.",
- "spendToday": "Spend Today",
- "overviewLoadFailed": "Failed to load cost overview",
- "overviewDescription": "Real-time spending breakdown across all connected providers and models",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
- "noCostDataTitle": "No cost data yet",
- "topModels": "Top Models",
- "requestsInWindow": "Requests in Window",
+ "title": "खर्च",
+ "pageDescription": "सर्व प्रदात्यांवरील खर्चाचा मागोवा घ्या, कलांचे विश्लेषण करा आणि तुमचे AI बजेट व्यवस्थापित करा",
+ "overview": "आढावा",
+ "budget": "बजेट",
+ "totalCost": "एकूण खर्च",
+ "breakdown": "खर्चाचे विभाजन",
+ "noData": "खर्चाचा डेटा नाही",
+ "byModel": "मॉडेलनुसार",
+ "byProvider": "प्रदात्यानुसार",
+ "range7d": "७ दिवस",
+ "range30d": "३० दिवस",
+ "range90d": "९० दिवस",
+ "range180d": "१८० दिवस",
+ "range365d": "३६५ दिवस",
+ "rangeAll": "सर्व कालावधी",
+ "spend30d": "३० दिवसांचा खर्च",
+ "activeModels": "सक्रिय मॉडेल्स",
+ "flatRateEstimateNotice": "यामध्ये निश्चित-दर सदस्यतांसाठी टोकन-किमतीचे अंदाज समाविष्ट आहेत, बिल केलेला खर्च नाही.",
+ "flatRateEstimateForecast": "अंदाजामध्ये निश्चित-दराचे अंदाज समाविष्ट आहेत.",
+ "selectedWindow": "निवडलेला कालावधी",
+ "activeProviders": "सक्रिय प्रदाते",
+ "overviewTitle": "खर्चाचा आढावा",
+ "spend7d": "७ दिवसांचा खर्च",
+ "avgCostPerRequest": "प्रति विनंती सरासरी खर्च",
+ "noCostDataDescription": "खर्चाचा डेटा येथे दिसण्यासाठी विनंत्या करायला सुरुवात करा. सर्व प्रदात्यांसाठी खर्चाचा मागोवा स्वयंचलितपणे घेतला जातो.",
+ "spendToday": "आजचा खर्च",
+ "overviewLoadFailed": "खर्चाचा आढावा लोड करण्यात अयशस्वी",
+ "overviewDescription": "सर्व कनेक्ट केलेल्या प्रदात्यांमधील आणि मॉडेल्समधील खर्चाचे रिअल-टाइम विश्लेषण",
+ "providerShare": "प्रदात्याचा वाटा",
+ "topProviders": "आघाडीचे प्रदाते",
+ "costTrend": "खर्चाचा कल",
+ "noCostDataTitle": "अद्याप खर्चाचा डेटा नाही",
+ "topModels": "आघाडीची मॉडेल्स",
+ "requestsInWindow": "निवडलेल्या कालावधीतील विनंत्या",
"tokenUsage": "टोकन वापर",
"totalTokens": "एकूण टोकन",
"inputTokens": "इनपुट टोकन",
@@ -3877,139 +3881,139 @@
"showingTopCostRows": "जुळणाऱ्या {total} ओळींपैकी {shown} दाखवत आहे (शीर्ष 50)."
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
- "available": "Available Endpoints",
+ "title": "API एंडपॉइंट",
+ "subtitle": "बहुतेक SDK आणि साधनांसह OpenAI-सुसंगत एंडपॉइंट वापरा.",
+ "testEndpoint": "एंडपॉइंटची चाचणी करा →",
+ "advancedProtocols": "प्रगत प्रोटोकॉल्स",
+ "available": "उपलब्ध एंडपॉइंट्स",
"cloudProxy": "Cloud Proxy",
- "disableConfirm": "Are you sure you want to disable cloud proxy?",
- "baseUrl": "Base URL",
- "apiKeyLabel": "API Key",
- "registeredKeys": "Registered Keys",
+ "disableConfirm": "तुम्हाला खात्री आहे की तुम्ही क्लाउड प्रॉक्सी अक्षम करू इच्छिता?",
+ "baseUrl": "बेस URL",
+ "apiKeyLabel": "API की",
+ "registeredKeys": "नोंदणीकृत की",
"chatCompletions": "Chat Completions",
- "responses": "Responses",
- "listModels": "List Models",
- "usingCloudProxy": "Using Cloud Proxy",
- "usingLocalServer": "Using Local Server",
- "machineId": "Machine ID: {id}...",
- "disableCloud": "Disable Cloud",
- "enableCloud": "Enable Cloud",
- "modelsAcrossEndpoints": "{models} models across {endpoints} endpoints",
- "loadingModels": "Loading available models...",
- "chatDesc": "Streaming & non-streaming chat with all providers",
- "embeddings": "Embeddings",
- "embeddingsDesc": "Text embeddings for search & RAG pipelines",
- "imageGeneration": "Image Generation",
- "imageDesc": "Generate images from text prompts",
+ "responses": "प्रतिसाद",
+ "listModels": "मॉडेल्सची यादी",
+ "usingCloudProxy": "क्लाउड प्रॉक्सी वापरत आहे",
+ "usingLocalServer": "स्थानिक सर्व्हर वापरत आहे",
+ "machineId": "मशीन आयडी: {id}...",
+ "disableCloud": "क्लाउड अक्षम करा",
+ "enableCloud": "क्लाउड सक्षम करा",
+ "modelsAcrossEndpoints": "{endpoints} एंडपॉइंट्सवर {models} मॉडेल्स",
+ "loadingModels": "उपलब्ध मॉडेल्स लोड होत आहेत...",
+ "chatDesc": "सर्व प्रदात्यांसह स्ट्रीमिंग आणि नॉन-स्ट्रीमिंग चॅट",
+ "embeddings": "एम्बेडिंग्ज",
+ "embeddingsDesc": "शोध आणि RAG पाइपलाइनसाठी मजकूर एम्बेडिंग्ज",
+ "imageGeneration": "प्रतिमा निर्मिती",
+ "imageDesc": "मजकूर प्रॉम्प्टवरून प्रतिमा तयार करा",
"rerank": "Rerank",
- "rerankDesc": "Rerank documents by relevance to a query",
- "audioTranscription": "Audio Transcription",
- "audioTranscriptionDesc": "Transcribe audio files to text (Whisper)",
- "textToSpeech": "Text to Speech",
- "textToSpeechDesc": "Convert text to natural-sounding speech",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
- "moderations": "Moderations",
- "moderationsDesc": "Content moderation and safety classification",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
- "categoryCore": "Core APIs",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
- "categoryUtility": "Utility & Management",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
- "enableCloudTitle": "Enable Cloud Proxy",
- "whatYouGet": "What you will get",
- "cloudBenefitAccess": "Access your API from anywhere in the world",
- "cloudBenefitShare": "Share endpoint with your team easily",
- "cloudBenefitPorts": "No need to open ports or configure firewall",
- "cloudBenefitEdge": "Fast global edge network",
- "cloudSessionNote": "Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.",
- "cloudUnstableNote": "Cloud is currently unstable with Claude Code OAuth in some cases.",
- "cloudConnected": "Cloud Proxy connected!",
- "connectingToCloud": "Connecting to cloud...",
- "verifyingConnection": "Verifying connection...",
- "connecting": "Connecting...",
- "verifying": "Verifying...",
- "connected": "Connected!",
- "disableCloudTitle": "Disable Cloud Proxy",
- "disableWarning": "All auth sessions will be deleted from cloud.",
- "syncingData": "Syncing latest data...",
- "disablingCloud": "Disabling cloud...",
- "syncing": "Syncing...",
- "disabling": "Disabling...",
- "cloudConnectedVerified": "Cloud Proxy connected and verified!",
- "connectedVerificationPending": "Connected — verification pending",
- "connectedVerificationPendingWithError": "Connected — verification pending: {error}",
- "cloudDisabledSuccess": "Cloud disabled successfully",
- "syncedSuccess": "Synced successfully",
- "failedDisable": "Failed to disable cloud",
- "failedEnable": "Failed to enable cloud",
- "cloudRequestTimeout": "Cloud request timeout",
- "cloudRequestFailed": "Cloud request failed",
- "cloudWorkerUnreachable": "Could not reach cloud worker. Make sure the cloud service is running (npm run dev in /cloud).",
- "connectionFailed": "Connection failed",
- "syncFailed": "Failed to sync cloud data",
+ "rerankDesc": "क्वेरीशी असलेल्या सुसंगततेनुसार दस्तऐवजांचे पुनर्क्रमांकन करा",
+ "audioTranscription": "ऑडिओ प्रतिलेखन",
+ "audioTranscriptionDesc": "ऑडिओ फाइल्सचे मजकुरात प्रतिलेखन करा (Whisper)",
+ "textToSpeech": "मजकुराचे वाणीमध्ये रूपांतर",
+ "textToSpeechDesc": "मजकुराचे नैसर्गिक वाटणाऱ्या वाणीमध्ये रूपांतर करा",
+ "musicGeneration": "संगीत निर्मिती",
+ "musicDesc": "ComfyUI द्वारे संगीत आणि ऑडिओ ट्रॅक्स तयार करा (Stable Audio, MusicGen)",
+ "moderations": "नियमन",
+ "moderationsDesc": "आशयाचे नियमन आणि सुरक्षितता वर्गीकरण",
+ "responsesDesc": "Codex आणि प्रगत एजंटिक कार्यप्रवाहांसाठी OpenAI Responses API",
+ "listModelsDesc": "सर्व जोडलेल्या प्रदात्यांमधील सर्व उपलब्ध मॉडेल्सची सूची दाखवा",
+ "settingsApiDesc": "API द्वारे OmniRoute कॉन्फिगरेशन वाचा आणि सुधारित करा",
+ "settingsApi": "सेटिंग्ज API",
+ "categoryCore": "मुख्य APIs",
+ "categoryMedia": "मीडिया आणि मल्टी-मोडल",
+ "categorySearch": "शोध आणि अन्वेषण",
+ "categoryUtility": "उपयुक्तता आणि व्यवस्थापन",
+ "webSearch": "वेब शोध",
+ "webSearchDesc": "स्वयंचलित फेलओव्हर आणि कॅशिंगसह अनेक प्रदात्यांवरील एकत्रित वेब शोध",
+ "searchProvider": "शोध प्रदाता",
+ "searchProviderDesc": "हा प्रदाता POST /v1/search द्वारे वेब शोधासाठी वापरला जातो. मॉडेल कॉन्फिगरेशनची आवश्यकता नाही — API की जोडल्यानंतर शोध प्रदाते वापरण्यास तयार असतात.",
+ "enableCloudTitle": "क्लाउड प्रॉक्सी सक्षम करा",
+ "whatYouGet": "तुम्हाला काय मिळेल",
+ "cloudBenefitAccess": "जगात कुठूनही तुमच्या API मध्ये प्रवेश करा",
+ "cloudBenefitShare": "तुमच्या टीमसोबत एंडपॉइंट सहजपणे शेअर करा",
+ "cloudBenefitPorts": "पोर्ट्स उघडण्याची किंवा फायरवॉल कॉन्फिगर करण्याची आवश्यकता नाही",
+ "cloudBenefitEdge": "वेगवान जागतिक एज नेटवर्क",
+ "cloudSessionNote": "क्लाउड तुमचे प्रमाणीकरण सत्र 1 दिवसासाठी ठेवेल. वापरले नाही तर ते आपोआप हटवले जाईल.",
+ "cloudUnstableNote": "काही प्रकरणांमध्ये Claude Code OAuth सह क्लाउड सध्या अस्थिर आहे.",
+ "cloudConnected": "Cloud Proxy कनेक्ट झाला!",
+ "connectingToCloud": "क्लाउडशी कनेक्ट करत आहे...",
+ "verifyingConnection": "कनेक्शनची पडताळणी करत आहे...",
+ "connecting": "कनेक्ट करत आहे...",
+ "verifying": "पडताळणी करत आहे...",
+ "connected": "कनेक्ट झाले!",
+ "disableCloudTitle": "Cloud Proxy अक्षम करा",
+ "disableWarning": "सर्व प्रमाणीकरण सत्रे क्लाउडमधून हटवली जातील.",
+ "syncingData": "नवीनतम डेटा समक्रमित करत आहे...",
+ "disablingCloud": "क्लाउड अक्षम करत आहे...",
+ "syncing": "समक्रमित करत आहे...",
+ "disabling": "अक्षम करत आहे...",
+ "cloudConnectedVerified": "Cloud Proxy कनेक्ट झाला आणि त्याची पडताळणी झाली!",
+ "connectedVerificationPending": "कनेक्ट झाले — पडताळणी प्रलंबित",
+ "connectedVerificationPendingWithError": "कनेक्ट झाले — पडताळणी प्रलंबित: {error}",
+ "cloudDisabledSuccess": "क्लाउड यशस्वीरित्या अक्षम केला",
+ "syncedSuccess": "यशस्वीरित्या समक्रमित झाले",
+ "failedDisable": "क्लाउड अक्षम करण्यात अयशस्वी",
+ "failedEnable": "क्लाउड सक्षम करण्यात अयशस्वी",
+ "cloudRequestTimeout": "क्लाउड विनंतीची वेळमर्यादा संपली",
+ "cloudRequestFailed": "क्लाउड विनंती अयशस्वी झाली",
+ "cloudWorkerUnreachable": "क्लाउड वर्करशी संपर्क साधता आला नाही. क्लाउड सेवा सुरू असल्याची खात्री करा (npm run dev in /cloud).",
+ "connectionFailed": "कनेक्शन अयशस्वी झाले",
+ "syncFailed": "क्लाउड डेटा समक्रमित करण्यात अयशस्वी",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
- "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredDescription": "या एंडपॉइंटसाठी Cloudflare Quick Tunnel तयार करा.",
+ "cloudflaredUrlNotice": "तात्पुरता Cloudflare Quick Tunnel तयार करतो. प्रत्येक रीस्टार्टनंतर URL बदलतो.",
+ "cloudflaredEnable": "टनल सक्षम करा",
+ "cloudflaredInstallAndEnable": "इन्स्टॉल करा आणि सक्षम करा",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "चालू आहे",
+ "cloudflaredStarting": "सुरू होत आहे",
+ "cloudflaredStoppedState": "थांबले आहे",
+ "cloudflaredNotInstalled": "इन्स्टॉल केलेले नाही",
+ "cloudflaredUnsupported": "समर्थित नाही",
+ "cloudflaredError": "त्रुटी",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
- "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after every restart.",
- "cloudflaredUnsupportedNote": "This platform is not supported for managed installs. Install cloudflared manually or point CLOUDFLARED_BIN to an existing binary.",
+ "cloudflaredTemporaryNote": "Quick Tunnel URL तात्पुरते असतात आणि प्रत्येक रीस्टार्टनंतर बदलतात.",
+ "cloudflaredUnsupportedNote": "व्यवस्थापित इन्स्टॉलेशनसाठी हे प्लॅटफॉर्म समर्थित नाही. cloudflared व्यक्तिचलितपणे इन्स्टॉल करा किंवा CLOUDFLARED_BIN ला विद्यमान बायनरीकडे निर्देशित करा.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
- "providerModelsTitle": "{provider} — Models",
- "noModelsForProvider": "No models available for this provider.",
+ "cloudflaredLastError": "शेवटची त्रुटी: {error}",
+ "providerModelsTitle": "{provider} — मॉडेल्स",
+ "noModelsForProvider": "या प्रदात्यासाठी कोणतीही मॉडेल्स उपलब्ध नाहीत.",
"chat": "Chat",
- "embedding": "Embedding",
- "image": "Image",
- "custom": "custom",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "embedding": "एम्बेडिंग",
+ "image": "प्रतिमा",
+ "custom": "सानुकूल",
+ "modelsCount": "{count, plural, one {# मॉडेल} other {# मॉडेल्स}}",
+ "sectionTitle": "एकत्रीकरण पृष्ठभाग",
+ "sectionDescription": "OpenAI-सुसंगत APIs आणि कार्यात्मक प्रोटोकॉल एंडपॉइंट्स",
"tabApis": "एपीआयज्",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "प्रोटोकॉल्स",
+ "tabsAria": "एंडपॉइंट विभाग",
+ "protocolsTitle": "प्रोटोकॉल्स",
+ "protocolsDescription": "MCP आणि A2A हे समर्पित निरीक्षणक्षमता आणि नियंत्रणांसह प्रथम-श्रेणीचे एंडपॉइंट्स आहेत.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "stdio वरील Model Context Protocol",
+ "a2aCardTitle": "A2A सर्व्हर",
+ "a2aCardDescription": "Agent2Agent JSON-RPC एंडपॉइंट",
+ "protocolToolsLabel": "साधने",
+ "protocolTasksLabel": "कार्ये",
+ "protocolActiveStreamsLabel": "सक्रिय स्ट्रीम्स",
+ "protocolLastActivity": "शेवटची गतिविधी",
+ "quickStart": "त्वरित प्रारंभ",
+ "openMcpDashboard": "MCP व्यवस्थापन उघडा",
+ "openA2aDashboard": "A2A व्यवस्थापन उघडा",
+ "mcpQuickStartTitle": "MCP त्वरित प्रारंभ",
+ "mcpQuickStartStep1": "`omniroute --mcp` द्वारे MCP सर्व्हर चालवा.",
+ "mcpQuickStartStep2": "stdio ट्रान्सपोर्टवरून कनेक्ट होण्यासाठी तुमचा MCP क्लायंट कॉन्फिगर करा.",
+ "mcpQuickStartStep3": "`omniroute_get_health` आणि `omniroute_list_combos` यांसारखी साधने वापरा.",
+ "a2aQuickStartTitle": "A2A त्वरित प्रारंभ",
+ "a2aQuickStartStep1": "`/.well-known/agent.json` येथे एजंट कार्ड शोधा.",
+ "a2aQuickStartStep2": "`message/send` किंवा `message/stream` वापरून `POST /a2a` वर JSON-RPC विनंत्या पाठवा.",
+ "a2aQuickStartStep3": "`tasks/get` आणि `tasks/cancel` वापरून कार्यांचा मागोवा घ्या आणि त्यांवर नियंत्रण ठेवा.",
+ "completionsLegacy": "पूर्णता (लेगसी)",
+ "completionsLegacyDesc": "लेगसी OpenAI मजकूर पूर्णता — प्रॉम्प्ट स्ट्रिंग आणि मेसेजेस अॅरे हे दोन्ही स्वरूप स्वीकारते",
"messagesApi": "संदेश",
"messagesApiDesc": "क्लॉड-सुसंगत प्रदात्यांसाठी नेटिव्ह अँथ्रोपिक मेसेजेस API फॉरमॅट",
"imageEdits": "प्रतिमा संपादने",
@@ -4018,41 +4022,41 @@
"batchApiDesc": "विनंत्यांच्या मोठ्या बॅचवर एसिंक्रोनस पद्धतीने प्रक्रिया करा (ओपनएआय-सुसंगत)",
"filesApi": "फाइल API",
"filesApiDesc": "बॅच प्रक्रियेसाठी फायली अपलोड आणि व्यवस्थापित करा",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "व्हिडिओ निर्मिती",
+ "videoDesc": "ComfyUI आणि Stable Video Diffusion यांसारखी AI मॉडेल्स वापरून व्हिडिओ तयार करा.",
+ "tailscaleRequestFailed": "Tailscale स्थिती लोड करण्यात अयशस्वी",
+ "tailscaleEnableFailed": "Tailscale Funnel सक्षम करण्यात अयशस्वी",
+ "tailscaleWaitingForLogin": "उघडलेल्या ब्राउझर टॅबमध्ये Tailscale लॉगिन पूर्ण करा. OmniRoute आपोआप पुन्हा प्रयत्न करेल.",
+ "tailscaleLoginTimedOut": "Tailscale लॉगिनची वाट पाहण्याची वेळ संपली",
+ "tailscaleWaitingForFunnel": "उघडलेल्या ब्राउझर टॅबमध्ये या डिव्हाइससाठी Tailscale Funnel सक्षम करा. OmniRoute तपासणी सुरू ठेवेल.",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel सक्षम होण्याची वाट पाहण्याची वेळ संपली",
+ "tailscaleStarted": "Tailscale Funnel सक्षम केले",
+ "tailscaleDisableFailed": "Tailscale Funnel अक्षम करण्यात अयशस्वी",
+ "tailscaleStopped": "Tailscale Funnel अक्षम केले",
+ "tailscaleInstallFailed": "Tailscale स्थापित करण्यात अयशस्वी",
+ "tailscaleInstallProgress": "काम सुरू आहे...",
+ "tailscaleInstalled": "Tailscale यशस्वीरित्या स्थापित झाले",
+ "tailscaleRunning": "चालू आहे",
+ "tailscaleNeedsLogin": "लॉगिन आवश्यक",
+ "tailscaleStoppedState": "थांबले आहे",
+ "tailscaleNotInstalled": "स्थापित केलेले नाही",
+ "tailscaleUnsupported": "समर्थित नाही",
+ "tailscaleError": "त्रुटी",
+ "tailscaleDisable": "Funnel थांबवा",
+ "tailscaleInstallAndEnable": "स्थापित करा आणि सक्षम करा",
+ "tailscaleLoginAndEnable": "लॉगिन करा आणि सक्षम करा",
+ "tailscaleEnable": "Funnel सक्षम करा",
+ "tailscaleUrlNotice": "तुमचा Tailscale .ts.net पत्ता वापरते. प्रथम वापराच्या वेळी लॉगिन आणि Funnel मंजुरी आवश्यक असू शकते.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
- "tailscaleSudoLabel": "Sudo Password (required on macOS/Linux)",
+ "tailscaleNeedsLoginHint": "हे मशीन Tailscale सह प्रमाणित करा, त्यानंतर Funnel सक्षम करा.",
+ "tailscaleBinaryPath": "बायनरी: {path}",
+ "tailscaleLastError": "शेवटची त्रुटी: {error}",
+ "tailscaleInstallTitle": "Tailscale स्थापित करा",
+ "tailscaleInstallIntro": "या मशीनवर Tailscale स्थापित करते आणि Funnel सक्षम करण्यासाठी OmniRoute तयार करते.",
+ "tailscaleInstallPasswordHint": "macOS आणि Linux वर, पॅकेज स्थापित करण्यासाठी आणि डेमन सुरू करण्यासाठी sudo आवश्यक असू शकते.",
+ "tailscaleSudoPlaceholder": "पर्यायी sudo पासवर्ड",
+ "tailscaleInstalling": "स्थापित करत आहे",
+ "tailscaleSudoLabel": "Sudo पासवर्ड (macOS/Linux वर आवश्यक)",
"ngrokTitle": "ngrok बोगदा",
"ngrokRunning": "धावत आहे",
"ngrokStarting": "सुरू होत आहे",
@@ -4104,7 +4108,7 @@
"all": "सर्व",
"more": "+{count} अधिक",
"showInternalTooltip": "अंतर्गत मार्ग दाखवा किंवा लपवा (डीफॉल्टनुसार लपवलेले)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Bearer प्रमाणीकरण",
"requestBody": "रिक्वेस्ट बॉडी",
"close": "बंद करा",
"tryIt": "प्रयत्न करा",
@@ -4140,9 +4144,9 @@
"tierPublic": "सार्वजनिक",
"hideInternal": "अंतर्गत लपवा",
"showInternal": "अंतर्गत दाखवा",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "सानुकूल सिस्टम प्रॉम्प्ट",
+ "customSystemPromptDescription": "प्रत्येक मॉडेल विनंतीमध्ये सानुकूल सिस्टम प्रॉम्प्ट समाविष्ट करा",
+ "customSystemPromptPlaceholder": "उदा. नेहमी समुद्री चाच्यासारख्या शैलीत उत्तर द्या...",
"obsidianEnterToken": "कृपया Obsidian API टोकन प्रविष्ट करा",
"obsidianConnectFailed": "कनेक्ट करण्यात अयशस्वी",
"obsidianConnectionFailed": "कनेक्शन अयशस्वी झाले",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "टोकन कॉन्फिगर केले आहे. Notion साधने MCP द्वारे उपलब्ध आहेत."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "एंडपॉइंट प्रॉक्सी",
+ "tabApiEndpoints": "API एंडपॉइंट्स",
+ "apiEndpointsTitle": "API एंडपॉइंट्स",
+ "apiEndpointsDescription": "इतर ॲप्लिकेशन्स आणि सेवांद्वारे वापरता येणारे बॅकएंड API एंडपॉइंट्स. या विभागात दस्तऐवजीकरण आणि चाचणी क्षमतांसह सर्व उपलब्ध REST APIs सूचीबद्ध केले जातील.",
+ "comingSoon": "लवकरच येत आहे",
+ "plannedFeatures": "नियोजित वैशिष्ट्ये",
+ "featureRestApi": "परस्परसंवादी दस्तऐवजीकरणासह REST API एंडपॉइंट कॅटलॉग",
+ "featureWebhooks": "Webhook कॉन्फिगरेशन आणि इव्हेंट सदस्यत्वे",
+ "featureSwagger": "OpenAPI / Swagger स्पेसिफिकेशनची स्वयंचलित निर्मिती",
+ "featureAuth": "प्रत्येक एंडपॉइंटसाठी API की आणि OAuth स्कोप व्यवस्थापन"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP डॅशबोर्ड लोड होत आहे...",
+ "activate": "सक्रिय करा",
+ "deactivate": "निष्क्रिय करा",
+ "confirmSwitchCombo": "कॉम्बो \"{combo}\" {action} करण्याची पुष्टी करायची?",
+ "switchComboFailed": "कॉम्बोची स्थिती बदलण्यात अयशस्वी.",
+ "switchComboSuccess": "कॉम्बो \"{combo}\" अद्ययावत केला.",
+ "confirmApplyProfile": "रेझिलिअन्स प्रोफाइल \"{profile}\" लागू करायचे?",
+ "applyProfileFailed": "रेझिलिअन्स प्रोफाइल लागू करण्यात अयशस्वी.",
+ "applyProfileSuccess": "प्रोफाइल \"{profile}\" लागू केले.",
+ "confirmResetBreakers": "सर्व सर्किट ब्रेकर्स रीसेट करायचे?",
+ "resetBreakersFailed": "सर्किट ब्रेकर्स रीसेट करण्यात अयशस्वी.",
+ "resetBreakersSuccess": "सर्किट ब्रेकर्स रीसेट केले.",
+ "processStatus": "प्रक्रियेची स्थिती",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} अक्षम करा",
@@ -4233,119 +4237,119 @@
"mcpStep2": "stdio ट्रान्सपोर्टवर कनेक्ट करण्यासाठी तुमचा MCP क्लायंट कॉन्फिगर करा.",
"mcpStep3": "{code1} आणि {code2} सारखी टूल्स इन्व्होक करा.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "सत्राचा अपटाइम",
+ "lastHeartbeat": "शेवटचा हार्टबीट",
+ "activity24h": "क्रियाकलाप (24 तास)",
+ "totalCalls": "एकूण कॉल्स",
+ "successRate": "यशाचा दर",
+ "avgLatency": "सरासरी विलंब",
+ "topTools": "सर्वाधिक वापरलेली साधने",
+ "noToolCalls24h": "मागील 24 तासांत कोणतेही टूल कॉल्स झाले नाहीत.",
+ "runtimeDetails": "रनटाइम तपशील",
+ "transport": "ट्रान्सपोर्ट",
+ "scopesEnforced": "स्कोप्स लागू केले",
+ "yes": "होय",
+ "no": "नाही",
+ "lastCall": "शेवटचा कॉल",
+ "heartbeatPath": "हार्टबीट पाथ",
+ "operationalControls": "कार्यकारी नियंत्रणे",
+ "switchCombo": "कॉम्बो बदला",
+ "inactive": "निष्क्रिय",
+ "active": "सक्रिय",
+ "activateCombo": "कॉम्बो सक्रिय करा",
+ "deactivateCombo": "कॉम्बो निष्क्रिय करा",
+ "applyResilienceProfile": "रेझिलिअन्स प्रोफाइल लागू करा",
+ "profileAggressive": "आक्रमक",
+ "profileBalanced": "संतुलित",
+ "profileConservative": "पुराणमतवादी",
+ "applyProfile": "प्रोफाइल लागू करा",
+ "resetCircuitBreakers": "सर्किट ब्रेकर्स रीसेट करा",
+ "resetCircuitBreakersHelp": "प्रदात्यांसाठीची सध्याची ब्रेकर स्थिती आणि अपयश मोजणी साफ करते.",
+ "resetAllBreakers": "सर्व ब्रेकर्स रीसेट करा",
+ "toolsAndScopes": "साधने आणि व्याप्ती",
+ "tableTool": "साधन",
+ "tableScopes": "व्याप्ती",
+ "tablePhase": "टप्पा",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "ऑडिट लॉग",
+ "auditSummary": "कॉल्स: {total} | पृष्ठ {page} / {totalPages}",
+ "allTools": "सर्व साधने",
+ "allResults": "सर्व परिणाम",
+ "success": "यशस्वी",
+ "failure": "अयशस्वी",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "ऑडिट नोंदी लोड होत आहेत...",
+ "noAuditEntriesForFilters": "सध्याच्या फिल्टर्ससाठी कोणत्याही ऑडिट नोंदी आढळल्या नाहीत.",
+ "tableTimestamp": "टाइमस्टॅम्प",
+ "tableDuration": "कालावधी",
+ "tableResult": "परिणाम",
+ "tableApiKey": "API की",
+ "failed": "अयशस्वी",
+ "previous": "मागील",
+ "next": "पुढील",
+ "apiKeyId": "API की आयडी",
+ "offset": "ऑफसेट",
+ "limit": "मर्यादा",
+ "tool": "साधन"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A डॅशबोर्ड लोड होत आहे...",
+ "confirmCancelTask": "कार्य {taskId} रद्द करायचे?",
+ "cancelTaskFailed": "कार्य रद्द करण्यात अयशस्वी.",
+ "cancelTaskSuccess": "कार्य {taskId} रद्द केले.",
+ "smokeSendFailed": "message/send स्मोक चाचणी अयशस्वी.",
+ "smokeSendSuccessWithTask": "message/send यशस्वी (कार्य {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream स्मोक चाचणी अयशस्वी.",
+ "smokeStreamSuccessWithTask": "message/stream यशस्वी (कार्य {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream टास्क आयडीशिवाय पूर्ण झाले.",
+ "health": "स्थिती",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "एकूण कार्ये",
+ "activeStreams": "सक्रिय स्ट्रीम्स",
+ "lastTask": "शेवटचे कार्य",
+ "taskStateOverview": "कार्य स्थितीचा आढावा",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "सबमिट केले",
+ "working": "कार्यरत",
+ "completed": "पूर्ण झाले",
+ "failed": "अयशस्वी झाले",
+ "cancelled": "रद्द केले"
},
- "agentCard": "Agent card",
+ "agentCard": "एजंट कार्ड",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "आवृत्ती",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "क्षमता",
+ "agentCardNotAvailable": "एजंट कार्ड उपलब्ध नाही.",
+ "quickValidation": "त्वरित प्रमाणीकरण",
+ "quickValidationDescription": "लाइव्ह `/a2a` एंडपॉइंटद्वारे स्मोक कॉल्स कार्यान्वित करते.",
+ "runMessageSend": "message/send चालवा",
+ "runMessageStream": "message/stream चालवा",
+ "taskManagement": "कार्य व्यवस्थापन",
+ "taskSummary": "{total} कार्ये | पृष्ठ {page} / {totalPages}",
+ "allStates": "सर्व",
+ "allSkills": "सर्व कौशल्ये",
+ "loadingTasks": "कार्ये लोड होत आहेत...",
+ "noTasksForFilters": "सध्याच्या फिल्टरसाठी कोणतीही कार्ये आढळली नाहीत.",
+ "tableTask": "कार्य",
+ "tableSkill": "कौशल्य",
+ "tableState": "स्थिती",
+ "tableUpdated": "अद्यतनित",
+ "tableActions": "कृती",
+ "view": "पहा",
+ "cancel": "रद्द करा",
+ "previous": "मागील",
+ "next": "पुढील",
+ "taskDetail": "कार्य तपशील",
+ "close": "बंद करा",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "इव्हेंट्स",
+ "artifacts": "आर्टिफॅक्ट्स",
+ "tablePhase": "टेबल टप्पा",
+ "offset": "ऑफसेट",
+ "limit": "मर्यादा",
+ "skill": "कौशल्य",
"rpcEndpoint": "पोस्ट /a2a",
"rpcMethodSend": "संदेश/पाठवा",
"rpcMethodStream": "संदेश/प्रवाह",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "कृती",
+ "addMemory": "मेमरी जोडा",
+ "allTypes": "सर्व प्रकार",
"cancel": "रद्द करा",
"checkHealth": "आरोग्य तपासा",
"checkingHealth": "तपासत आहे...",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "हे कसे कार्य करते",
"howWorksContent": "1. स्वयंचलित निष्कर्षण: प्रत्येक प्रतिसादाच्या शेवटी, तथ्ये आणि प्रसंग स्वयंचलितपणे शोधले आणि जतन केले जातात.\n2. पुनर्प्राप्ती: प्रत्येक प्रतिसादापूर्वी, FTS5 (अचूक), वेक्टर (सिमेंटिक), किंवा हायब्रिड RRF द्वारे सर्वात संबंधित मेमरी शोधल्या जातात.\n3. इंजेक्शन: प्रतिसादाची गुणवत्ता सुधारण्यासाठी संबंधित मेमरी असिस्टंटच्या संदर्भात समाविष्ट केल्या जातात.\n4. व्यवस्थापन: जुन्या मेमरी पाहण्यासाठी, संपादित करण्यासाठी, निर्यात करण्यासाठी आणि कॉम्पॅक्ट करण्यासाठी हे पृष्ठ वापरा."
},
- "content": "Content",
+ "content": "मजकूर",
"contentPlaceholder": "लक्षात ठेवण्यासाठी मूल्य किंवा JSON सामग्री",
- "created": "Created",
- "delete": "Delete",
+ "created": "निर्मितीची वेळ",
+ "delete": "हटवा",
"deleteConfirmDesc": "ही कृती पूर्ववत केली जाऊ शकत नाही. मेमरी कायमची काढून टाकली जाईल.",
"deleteConfirmTitle": "मेमरी हटवायची?",
- "description": "View and manage stored memory entries",
+ "description": "संचयित मेमरी नोंदी पहा आणि व्यवस्थापित करा",
"editMemory": "मेमरी संपादित करा",
"editModal": {
"title": "मेमरी संपादित करा",
@@ -4440,20 +4444,20 @@
"configureCta": "कॉन्फिगर करा",
"vectorStoreInstallHint": "व्हेक्टर शोध सक्षम करण्यासाठी: npm install sqlite-vec (नेटिव्ह Node.js आवश्यक आहे, WASM नाही), नंतर रीस्टार्ट करा."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "प्रासंगिक",
+ "export": "निर्यात करा",
+ "factual": "तथ्यात्मक",
"healthUnknown": "आरोग्य माहीत नाही",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "यशाचा दर",
+ "import": "आयात करा",
"importError": "फाइल आयात करणे अयशस्वी झाले",
"importResult": "{imported} आयात केले, {skipped} वगळले",
- "key": "Key",
+ "key": "की",
"keyPlaceholder": "उदा. user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "मेमरी नोंदी",
"next": "पुढे",
- "noMemories": "No memories found",
+ "noMemories": "कोणत्याही मेमरी नोंदी आढळल्या नाहीत",
"pageInfo": "पृष्ठ {page} पैकी {totalPages} ({total} एकूण)",
"pipelineError": "पाइपलाइन त्रुटी",
"pipelineOk": "पाइपलाइन ठीक आहे ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "पूर्वावलोकन मिळवण्यात अयशस्वी"
},
"previous": "मागील",
- "procedural": "Procedural",
+ "procedural": "प्रक्रियात्मक",
"qdrant": {
"title": "Qdrant (व्हेक्टर स्टोअर टियर २)",
"description": "स्केलेबल सिमेंटिक शोधासाठी पर्यायी Qdrant एकत्रीकरण",
@@ -4530,8 +4534,8 @@
},
"save": "जतन करा",
"saving": "जतन करत आहे...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "मेमरी नोंदी शोधा...",
+ "semantic": "अर्थविषयक",
"summarize": {
"title": "जुन्या मेमरी कॉम्पॅक्ट करा",
"noCandidates": "कॉम्पॅक्शनसाठी कोणतीही मेमरी पात्र नाही (निकष: >30 दिवस जुनी).",
@@ -4543,8 +4547,8 @@
"playground": "प्लेग्राउंड",
"engine": "इंजिन"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "मेमरी व्यवस्थापन",
+ "tokensUsed": "वापरलेले टोकन",
"tooltip": {
"totalEntries": "या API की साठी साठवलेल्या एकूण आठवणी",
"tokensUsed": "सक्रिय आठवणींनी व्यापलेल्या एकूण टोकन्सचा अंदाजे आकडा",
@@ -4554,15 +4558,15 @@
"procedural": "सहाय्यकाने पाळायच्या प्रक्रिया, कार्यप्रवाह आणि सूचना",
"semantic": "संकल्पना, प्राधान्ये आणि डोमेन ज्ञान"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "एकूण नोंदी",
+ "type": "प्रकार",
"memoryEnabled": "मेमरी सक्षम केली"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "कौशल्ये",
+ "description": "AI कौशल्ये व्यवस्थापित करा आणि त्यांचे निरीक्षण करा",
+ "skillsTab": "कौशल्ये",
+ "executionsTab": "कार्यनिष्पादने",
"selectSkillToInspect": "तपासणी करण्यासाठी डावीकडील कौशल्य निवडा.",
"schemaTab": "स्कीमा",
"handlerTab": "हँडलर",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "चाचणी चालवा (प्लेसहोल्डर)",
"setModeAria": "मोड {mode} सेट करा",
"uninstallSkill": "कौशल्य अनइन्स्टॉल करा",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "सँडबॉक्स",
+ "loading": "कौशल्ये लोड होत आहेत...",
+ "noSkills": "कोणतीही कौशल्ये आढळली नाहीत",
+ "noExecutions": "कोणतीही कार्यनिष्पादने आढळली नाहीत",
+ "enabled": "सक्षम",
+ "disabled": "अक्षम",
"delete": "हटवा",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "आवृत्ती",
+ "tableDescription": "वर्णन",
+ "skill": "कौशल्य",
+ "status": "स्थिती",
+ "duration": "कालावधी",
+ "time": "वेळ",
+ "sandboxConfig": "Sandbox संरचना",
+ "cpuLimit": "CPU मर्यादा",
+ "cpuLimitDesc": "प्रति स्किल कमाल कार्यान्वयन वेळ",
+ "memoryLimit": "मेमरी मर्यादा",
+ "memoryLimitDesc": "कमाल मेमरी वाटप",
+ "timeout": "कालबाह्यता",
+ "timeoutDesc": "प्रतिसादासाठी कमाल प्रतीक्षा वेळ",
+ "networkAccess": "नेटवर्क प्रवेश",
+ "networkAccessDesc": "बाह्य नेटवर्क विनंत्यांना अनुमती द्या",
+ "mode": "मोड",
"q": "Q",
"filterSkillsPlaceholder": "नाव, वर्णन किंवा टॅगनुसार कौशल्ये फिल्टर करा",
"allModes": "सर्व मोड",
@@ -4638,90 +4642,90 @@
"installSkill": "कौशल्य स्थापित करा"
},
"health": {
- "title": "System Health",
- "description": "Real-time monitoring of your OmniRoute instance",
- "healthy": "Healthy",
- "degraded": "Degraded",
- "down": "Down",
- "uptime": "Uptime",
- "memory": "Memory",
- "memoryRss": "Memory (RSS)",
- "heap": "Heap",
+ "title": "सिस्टमचे आरोग्य",
+ "description": "तुमच्या OmniRoute इंस्टन्सचे रिअल-टाइम निरीक्षण",
+ "healthy": "सुस्थितीत",
+ "degraded": "कामगिरी खालावलेली",
+ "down": "बंद",
+ "uptime": "कार्यरत कालावधी",
+ "memory": "मेमरी",
+ "memoryRss": "मेमरी (RSS)",
+ "heap": "हीप",
"cpu": "CPU",
- "database": "Database",
- "version": "Version",
- "lastCheck": "Last Check",
- "providerHealth": "Provider Health",
- "systemMetrics": "System Metrics",
- "tokenHealth": "Token Health",
- "refreshAll": "Refresh All",
- "checkNow": "Check Now",
- "loadingHealth": "Loading health data...",
- "failedToLoad": "Failed to load health data: {error}",
- "retry": "Retry",
- "allOperational": "All systems operational",
- "issuesDetected": "System issues detected",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
- "updatedAt": "Updated {time}",
- "latency": "Latency",
+ "database": "डेटाबेस",
+ "version": "आवृत्ती",
+ "lastCheck": "शेवटची तपासणी",
+ "providerHealth": "प्रदात्याचे आरोग्य",
+ "systemMetrics": "सिस्टम मेट्रिक्स",
+ "tokenHealth": "टोकनचे आरोग्य",
+ "refreshAll": "सर्व रिफ्रेश करा",
+ "checkNow": "आता तपासा",
+ "loadingHealth": "आरोग्यविषयक डेटा लोड करत आहे...",
+ "failedToLoad": "आरोग्यविषयक डेटा लोड करण्यात अयशस्वी: {error}",
+ "retry": "पुन्हा प्रयत्न करा",
+ "allOperational": "सर्व सिस्टम कार्यरत आहेत",
+ "issuesDetected": "सिस्टममध्ये समस्या आढळल्या",
+ "healthVerdictReady": "OmniRoute तयार आहे",
+ "healthVerdictActionRequired": "पूर्ण कार्यप्रणाली पुनर्संचयित करण्यासाठी कृती आवश्यक आहे",
+ "healthVerdictCoolingDown": "अलीकडील बदलांनंतर स्थिर होत आहे",
+ "healthSubtitle": "सिस्टम आरोग्य तपासणी",
+ "advancedDiagnosticsTitle": "प्रगत निदान",
+ "hide": "लपवा",
+ "show": "दाखवा",
+ "updatedAt": "{time} रोजी अपडेट केले",
+ "latency": "विलंब",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
"millisecondsShort": "{value}ms",
"notAvailable": "—",
- "totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "promptCache": "Prompt Cache",
- "entries": "Entries",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "signatureCache": "Signature Cache",
- "signatureDefaults": "Defaults",
- "signatureTool": "Tool",
- "signatureFamily": "Family",
- "signatureSession": "Session",
- "recovering": "Recovering",
- "noCBData": "No circuit breaker data available. Make some requests first.",
- "providerHealthStatusAria": "Provider health status",
- "issuesLabel": "Issues Detected",
- "operational": "Operational",
- "providers": "Providers",
- "configuredProvidersLabel": "Configured in dashboard",
- "configuredProvidersHint": "Providers with credentials saved in /dashboard/providers, regardless of runtime state.",
- "activeProviders": "{count} active",
- "activeProvidersHint": "Configured providers currently enabled for routing requests.",
- "monitoredProviders": "{count} monitored",
- "monitoredProvidersHint": "Providers currently tracked by circuit-breaker health monitors.",
- "healthyCount": "{count} healthy",
+ "totalRequests": "एकूण विनंत्या",
+ "noDataYet": "अद्याप डेटा नाही",
+ "promptCache": "प्रॉम्प्ट कॅशे",
+ "entries": "नोंदी",
+ "hitRate": "हिट दर",
+ "hitsMisses": "हिट्स / मिसेस",
+ "signatureCache": "स्वाक्षरी कॅशे",
+ "signatureDefaults": "डीफॉल्ट्स",
+ "signatureTool": "साधन",
+ "signatureFamily": "कुटुंब",
+ "signatureSession": "सत्र",
+ "recovering": "पुनर्प्राप्त होत आहे",
+ "noCBData": "सर्किट ब्रेकरचा डेटा उपलब्ध नाही. प्रथम काही विनंत्या करा.",
+ "providerHealthStatusAria": "प्रदात्यांच्या आरोग्याची स्थिती",
+ "issuesLabel": "समस्या आढळल्या",
+ "operational": "कार्यरत",
+ "providers": "प्रदाते",
+ "configuredProvidersLabel": "डॅशबोर्डमध्ये कॉन्फिगर केलेले",
+ "configuredProvidersHint": "रनटाइम स्थिती काहीही असली तरी /dashboard/providers मध्ये क्रेडेन्शियल्स जतन केलेले प्रदाते.",
+ "activeProviders": "{count} सक्रिय",
+ "activeProvidersHint": "रूटिंग विनंत्यांसाठी सध्या सक्षम केलेले कॉन्फिगर केलेले प्रदाते.",
+ "monitoredProviders": "{count} निरीक्षणाखाली",
+ "monitoredProvidersHint": "सर्किट-ब्रेकर आरोग्य मॉनिटर्सद्वारे सध्या ट्रॅक केलेले प्रदाते.",
+ "healthyCount": "{count} निरोगी",
"nodeVersion": "Node {version}",
- "failures": "{count} failure",
- "failuresPlural": "{count} failures",
- "lastFailure": "Last",
- "rateLimitStatus": "Rate Limit Status",
- "activeLimiters": "{count} active limiter",
- "activeLimitersPlural": "{count} active limiters",
- "queued": "Queued",
- "queuedCount": "{count} queued",
- "running": "running",
- "runningCount": "{count} running",
+ "failures": "{count} अपयश",
+ "failuresPlural": "{count} अपयशे",
+ "lastFailure": "शेवटचे",
+ "rateLimitStatus": "दर मर्यादा स्थिती",
+ "activeLimiters": "{count} सक्रिय लिमिटर",
+ "activeLimitersPlural": "{count} सक्रिय लिमिटर्स",
+ "queued": "रांगेत",
+ "queuedCount": "{count} रांगेत",
+ "running": "चालू",
+ "runningCount": "{count} चालू",
"ok": "OK",
- "activeLockouts": "Active Lockouts",
- "resetConfirm": "Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.",
- "resetAllTitle": "Reset all circuit breakers to healthy state",
- "resetting": "Resetting...",
- "resetAll": "Reset All",
- "until": "Until {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "activeLockouts": "सक्रिय लॉकआउट्स",
+ "resetConfirm": "सर्व सर्किट ब्रेकर्स निरोगी स्थितीत रीसेट करायचे? यामुळे अपयशांची सर्व संख्या साफ होईल आणि सर्व प्रदाते पुन्हा कार्यरत स्थितीत येतील.",
+ "resetAllTitle": "सर्व सर्किट ब्रेकर्स निरोगी स्थितीत रीसेट करा",
+ "resetting": "रीसेट करत आहे...",
+ "resetAll": "सर्व रीसेट करा",
+ "until": "{time} पर्यंत",
+ "limitExhausted": "संपले",
+ "learnedFromHeaders": "हेडर्समधून शिकलेले",
+ "remainingOfLimit": "{remaining}/{limit} शिल्लक",
+ "throttleStatus": "थ्रॉटल: {value}",
+ "lastHeaderUpdate": "हेडर अपडेट: {age}",
"databaseHealth": "डेटाबेस आरोग्य",
"databaseHealthDescription": "जुने झालेले कोटा/डोमेन रो आणि तुटलेले कॉम्बो संदर्भ यांचे निदान आणि दुरुस्ती करा.",
"status": "स्थिती",
@@ -4847,65 +4851,65 @@
"noTargets": "कोणतेही लक्ष्य मार्ग कॉन्फिगर केलेले नाहीत."
},
"limits": {
- "title": "Limits & Quotas",
- "rateLimit": "Rate Limit",
- "remaining": "Remaining",
- "requestsPerMinute": "Requests/min",
- "tokensPerMinute": "Tokens/min",
- "dailyLimit": "Daily Limit"
+ "title": "मर्यादा आणि कोटा",
+ "rateLimit": "दर मर्यादा",
+ "remaining": "शिल्लक",
+ "requestsPerMinute": "विनंत्या/मिनिट",
+ "tokensPerMinute": "टोकन/मिनिट",
+ "dailyLimit": "दैनिक मर्यादा"
},
"logs": {
- "title": "Logs",
- "requestLogs": "Request Logs",
- "proxyLogs": "Proxy Logs",
- "auditLog": "Audit Log",
+ "title": "लॉग्स",
+ "requestLogs": "विनंती लॉग्स",
+ "proxyLogs": "प्रॉक्सी लॉग्स",
+ "auditLog": "ऑडिट लॉग",
"console": "Console",
- "auditLogDesc": "Administrative actions and security events",
- "loading": "Loading...",
- "refresh": "Refresh",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
- "showing": "Showing {count} entries (offset {offset})",
- "search": "Search",
- "timestamp": "Timestamp",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "details": "Details",
- "ipAddress": "IP Address",
+ "auditLogDesc": "प्रशासकीय कृती आणि सुरक्षा घटना",
+ "loading": "लोड होत आहे...",
+ "refresh": "रीफ्रेश करा",
+ "filterByAction": "कृतीनुसार फिल्टर करा...",
+ "filterByActor": "कर्ताानुसार फिल्टर करा...",
+ "filterEntriesAria": "ऑडिट लॉग नोंदी फिल्टर करा",
+ "filterByActionTypeAria": "कृतीच्या प्रकारानुसार फिल्टर करा",
+ "filterByActorAria": "कर्ताानुसार फिल्टर करा",
+ "refreshAuditLogAria": "ऑडिट लॉग रीफ्रेश करा",
+ "tableAria": "ऑडिट लॉग नोंदी",
+ "failedFetchAuditLog": "ऑडिट लॉग प्राप्त करण्यात अयशस्वी",
+ "showing": "{count} नोंदी दाखवत आहे (ऑफसेट {offset})",
+ "search": "शोधा",
+ "timestamp": "टाइमस्टॅम्प",
+ "action": "कृती",
+ "actor": "कर्ता",
+ "target": "लक्ष्य",
+ "details": "तपशील",
+ "ipAddress": "IP पत्ता",
"notAvailable": "—",
- "noEntries": "No audit log entries found",
- "previous": "Previous",
- "next": "Next",
- "providerWarningTitle": "Provider Warnings",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
- "providerWarningDesc": "Some providers returned warnings during request processing",
+ "noEntries": "कोणत्याही ऑडिट लॉग नोंदी आढळल्या नाहीत",
+ "previous": "मागील",
+ "next": "पुढील",
+ "providerWarningTitle": "प्रदात्याच्या चेतावण्या",
+ "viewDetails": "तपशील पहा",
+ "eventMetadata": "इव्हेंट मेटाडेटा",
+ "eventPayload": "इव्हेंट पेलोड",
+ "requestId": "विनंती आयडी",
+ "providerWarningDesc": "विनंतीवर प्रक्रिया करताना काही प्रदात्यांनी इशारे दिले",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "offset": "ऑफसेट",
+ "limit": "मर्यादा",
+ "status": "स्थिती",
+ "resourceType": "संसाधन प्रकार",
+ "totalEntries": "एकूण नोंदी",
+ "tab": "टॅब",
+ "auditModalSubtitle": "इव्हेंटचे तपशील आणि मेटाडेटा",
+ "close": "बंद करा",
+ "runningRequests": "सक्रिय विनंत्या",
+ "runningRequestsDesc": "सध्या सुरू असलेल्या अपस्ट्रीम विनंत्यांचे रिअल-टाइम दृश्य",
"clearAll": "सर्व साफ करा",
"confirmClearActiveRequests": "सर्व सक्रिय विनंत्या साफ करायच्या?",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "मॉडेल",
+ "provider": "प्रदाता",
+ "account": "खाते",
+ "elapsed": "लोटलेला वेळ",
"activeStage": "टप्पा",
"activeStageUnknown": "अद्याप अपस्ट्रीमवर पाठवले नाही",
"activeStageRegistered": "नोंदणीकृत",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "रेट लिमिट स्लॉट प्राप्त झाला",
"activeStageSendingToProvider": "अपस्ट्रीमवर पाठवत आहे",
"activeStageProviderResponseStarted": "अपस्ट्रीम प्रतिसाद सुरू झाला",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "संख्या",
+ "payloads": "पेलोड्स",
+ "viewPayloads": "पहा",
+ "activeCount": "{count} सक्रिय",
+ "clientPayload": "क्लायंट विनंती पेलोड",
+ "upstreamPayload": "अपस्ट्रीम प्रदाता पेलोड",
+ "upstreamNotSentYet": "अद्याप अपस्ट्रीमकडे पाठवलेले नाही",
+ "runningRequestDetailMeta": "खाते: {account} — लोटलेला वेळ: {elapsed}",
+ "export": "निर्यात करा",
+ "exporting": "निर्यात सुरू आहे...",
+ "exportFailed": "निर्यात अयशस्वी झाली",
"cleanHistoryButton": "इतिहास साफ करा",
"cleanHistoryTitle": "लॉग इतिहास साफ करायचा?",
"cleanHistoryMessage": "हे DATA_DIR/call_logs अंतर्गत सर्व विनंती लॉग ओळी, जुन्या तपशील ओळी आणि स्थानिक आर्टिफॅक्ट फाइल्स कायमच्या साफ करते. साफसफाईनंतर थेट पृष्ठ रिफ्रेश होईल.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "{deleted} लॉग नोंदी, {deletedArtifacts} आर्टिफॅक्ट्स आणि {deletedDetailedLogs} जुन्या तपशील ओळी साफ केल्या.",
"cleanHistoryEmpty": "कोणताही विनंती लॉग इतिहास आढळला नाही.",
"cleanHistoryFailed": "लॉग इतिहास साफ करण्यात अयशस्वी.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "कालमर्यादा",
+ "lastNHours": "मागील {hours}",
+ "defaultRange": "डीफॉल्ट",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "लॉग मिळवण्यात अयशस्वी",
+ "copyFailed": "लॉग नोंद कॉपी करण्यात अयशस्वी",
+ "copyLogEntry": "लॉग नोंद कॉपी करा",
"filterByLevel": "लॉग पातळीनुसार फिल्टर करा",
"searchPlaceholder": "लॉग शोधा…",
"searchAria": "लॉग नोंदी शोधा",
@@ -4960,49 +4964,49 @@
"tokens": "टोकन्स"
},
"onboarding": {
- "welcome": "Welcome",
+ "welcome": "स्वागत आहे",
"tiers": "टियर्स",
- "security": "Security",
+ "security": "सुरक्षा",
"test": "Test",
- "ready": "Ready!",
- "setPassword": "Set Password",
- "addProvider": "Add your first provider",
- "getStarted": "Get Started",
- "skip": "Skip",
- "skipWizard": "Skip wizard entirely",
- "skipPassword": "Skip password setup",
- "skipAndContinue": "Skip & Continue",
- "passwordLabel": "Password",
- "confirmPassword": "Confirm Password",
- "enterPassword": "Enter password",
- "confirmPasswordPlaceholder": "Confirm password",
- "passwordsMismatch": "Passwords do not match",
- "setupComplete": "Setup Complete!",
- "goToDashboard": "Go to Dashboard →",
- "welcomeDesc": "OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "multiProvider": "Multi-Provider",
- "usageTracking": "Usage Tracking",
- "securityDesc": "Set a password to protect your dashboard, or skip for now.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
- "providerDesc": "Connect your first AI provider. You can add more later.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
- "apiKeyRequired": "API Key (required)",
- "customUrlOptional": "Custom URL (optional)",
- "testDesc": "Let's verify your provider connection works.",
- "runTest": "Run Connection Test",
- "testingConnection": "Testing connection...",
- "connectionSuccessful": "Connection successful! Your provider is ready.",
- "noProviderFound": "No provider found. You can add one from the dashboard later.",
- "testFailed": "Test failed, but you can configure this later.",
- "couldNotTest": "Could not test right now. You can test from the dashboard.",
- "doneDesc": "You're all set! Your OmniRoute instance is configured and ready to proxy AI requests.",
- "yourEndpoint": "Your endpoint:",
- "continue": "Continue",
- "retry": "Retry",
- "failedSetPassword": "Failed to set password. Try again.",
- "failedAddProvider": "Failed to add provider. Try again.",
- "connectionError": "Connection error. Please try again.",
- "provider": "Provider",
+ "ready": "तयार!",
+ "setPassword": "पासवर्ड सेट करा",
+ "addProvider": "तुमचा पहिला प्रदाता जोडा",
+ "getStarted": "सुरू करा",
+ "skip": "वगळा",
+ "skipWizard": "संपूर्ण विझार्ड वगळा",
+ "skipPassword": "पासवर्ड सेटअप वगळा",
+ "skipAndContinue": "वगळा आणि पुढे जा",
+ "passwordLabel": "पासवर्ड",
+ "confirmPassword": "पासवर्डची पुष्टी करा",
+ "enterPassword": "पासवर्ड प्रविष्ट करा",
+ "confirmPasswordPlaceholder": "पासवर्डची पुष्टी करा",
+ "passwordsMismatch": "पासवर्ड जुळत नाहीत",
+ "setupComplete": "सेटअप पूर्ण झाले!",
+ "goToDashboard": "डॅशबोर्डवर जा →",
+ "welcomeDesc": "OmniRoute हा तुमचा स्थानिक AI API प्रॉक्सी आहे. तो लोड बॅलन्सिंग, फेलओव्हर आणि वापराचा मागोवा घेण्याच्या सुविधांसह विनंत्या अनेक AI प्रदात्यांकडे रूट करतो.",
+ "multiProvider": "एकाधिक प्रदाते",
+ "usageTracking": "वापराचा मागोवा",
+ "securityDesc": "तुमचा डॅशबोर्ड सुरक्षित ठेवण्यासाठी पासवर्ड सेट करा किंवा आत्तासाठी वगळा.",
+ "securityDescSkipWarning": "⚠️ पासवर्डशिवाय, सेटअपदरम्यान तुम्हाला प्रदाते जोडता येणार नाहीत. पासवर्ड सेट केल्यानंतर तुम्ही त्यांना नंतर डॅशबोर्डवरून जोडू शकता.",
+ "providerDesc": "तुमचा पहिला AI प्रदाता कनेक्ट करा. तुम्ही नंतर आणखी प्रदाते जोडू शकता.",
+ "providerRequiresPassword": "प्रदाते जोडण्यासाठी तुम्हाला आधी पासवर्ड सेट करणे आवश्यक आहे. कृपया सुरक्षा चरणावर परत जाऊन पासवर्ड सेट करा किंवा नंतर डॅशबोर्डवरून प्रदाते जोडा.",
+ "apiKeyRequired": "API की (आवश्यक)",
+ "customUrlOptional": "सानुकूल URL (ऐच्छिक)",
+ "testDesc": "तुमच्या प्रदात्याचे कनेक्शन कार्यरत आहे की नाही ते तपासूया.",
+ "runTest": "कनेक्शन चाचणी चालवा",
+ "testingConnection": "कनेक्शनची चाचणी सुरू आहे...",
+ "connectionSuccessful": "कनेक्शन यशस्वी झाले! तुमचा प्रदाता तयार आहे.",
+ "noProviderFound": "कोणताही प्रदाता आढळला नाही. तुम्ही नंतर डॅशबोर्डवरून प्रदाता जोडू शकता.",
+ "testFailed": "चाचणी अयशस्वी झाली, परंतु तुम्ही हे नंतर कॉन्फिगर करू शकता.",
+ "couldNotTest": "आत्ता चाचणी करता आली नाही. तुम्ही डॅशबोर्डवरून चाचणी करू शकता.",
+ "doneDesc": "सर्व काही तयार आहे! तुमचा OmniRoute इन्स्टन्स कॉन्फिगर झाला आहे आणि AI विनंत्या प्रॉक्सी करण्यासाठी तयार आहे.",
+ "yourEndpoint": "तुमचा एंडपॉइंट:",
+ "continue": "पुढे जा",
+ "retry": "पुन्हा प्रयत्न करा",
+ "failedSetPassword": "पासवर्ड सेट करण्यात अयशस्वी. पुन्हा प्रयत्न करा.",
+ "failedAddProvider": "प्रदाता जोडण्यात अयशस्वी. पुन्हा प्रयत्न करा.",
+ "connectionError": "कनेक्शन त्रुटी. कृपया पुन्हा प्रयत्न करा.",
+ "provider": "प्रदाता",
"apiKeyHelp": "एपीआय की AI सेवांसाठी पासवर्ड आहे. तुमच्या प्रदात्याच्या वेबसाइटवरून एक मिळवा (उदा. platform.openai.com, console.anthropic.com).",
"tier": {
"subtitle": "OmniRoute प्रदात्यांचे तीन स्तरांमध्ये आयोजन करते त्यामुळे राउटिंग सर्वात विश्वासार्ह, सर्वात कमी किमतीच्या मार्गाला प्राधान्य देते.",
@@ -5045,12 +5049,12 @@
}
},
"providers": {
- "title": "Providers",
+ "title": "प्रदाते",
"Account Deactivated": "खाते निष्क्रिय केले",
"allProviders": "सर्व प्रदाते",
"audioProviders": "ऑडिओ प्रदाता",
"showFreeOnly": "फक्त मोफत",
- "addProvider": "Add Provider",
+ "addProvider": "प्रदाता जोडा",
"addFirstProvider": "तुमचा पहिला प्रदाता जोडा",
"addFirstProviderDesc": "OmniRoute द्वारे विनंती राउटिंग सुरू करण्यासाठी AI प्रदात्याशी कनेक्ट करा. तुम्ही मोफत प्रदाता, API की किंवा OAuth खाती वापरू शकता.",
"learnMore": "अधिक जाणून घ्या",
@@ -5061,7 +5065,7 @@
"importFromFileSelectHint": "{total} पैकी {count} निवडले",
"importFromFileColProvider": "प्रोव्हायडर",
"importFromFileColName": "नाव",
- "importFromFileColBaseUrl": "Base URL",
+ "importFromFileColBaseUrl": "मूळ URL",
"importFromFileErrorLine": "पंक्ती {line}: {reason}",
"importErrorMissingProvider": "प्रोव्हायडर गहाळ आहे",
"importErrorMissingName": "नाव गहाळ आहे",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "इंपोर्ट करत आहे…",
"importFromFileImport": "{count} प्रोव्हायडर्स इंपोर्ट करा",
"importFromFileResult": "{success} प्रोव्हायडर्स इंपोर्ट केले ({failed} अयशस्वी)",
+ "importFromFileDownloadTemplate": "CSV टेम्पलेट डाउनलोड करा",
+ "importFromFileMoreErrors": "+{count} आणखी",
+ "importFromFileSchemaHint": "CSV स्तंभ स्थानानुसार आहेत: provider, name, apiKey, baseUrl (पर्यायी), priority (पर्यायी). provider स्तंभामध्ये विद्यमान व्यवस्थापित प्रदाता id किंवा आधीच नोंदणीकृत OpenAI/Anthropic-सुसंगत नोड id असणे आवश्यक आहे — हे आयात नवीन एंडपॉइंट नोड तयार करत नाही.",
"adaptaTutorial": {
"title": "Adapta Web कसे कनेक्ट करावे",
"introPrefix": "Adapta हे Clerk द्वारे प्रमाणीकृत होते. टोकन",
@@ -5099,31 +5106,31 @@
"tipPrefix": "ही",
"tipSuffix": "कुकी दीर्घकाळ टिकणारी असते, साधारणपणे काही महिने. तुम्ही साइन आउट केल्यास किंवा Adapta ने सत्र अवैध ठरवल्यासच तुम्हाला त्याचे नूतनीकरण करावे लागेल."
},
- "editProvider": "Edit Provider",
- "deleteProvider": "Delete Provider",
- "noProviders": "No providers configured",
- "modelAvailability": "Model Availability",
- "accounts": "Accounts",
- "newAccount": "New Account",
- "deleteConfirm": "Are you sure you want to delete this provider?",
- "testing": "Testing...",
- "testConnection": "Test Connection",
- "testSuccess": "Connection successful",
- "testFailed": "Connection failed",
- "available": "Available",
- "cooldown": "Cooldown",
- "unavailable": "Unavailable",
- "unknown": "Unknown",
+ "editProvider": "प्रदाता संपादित करा",
+ "deleteProvider": "प्रदाता हटवा",
+ "noProviders": "कोणतेही प्रदाते कॉन्फिगर केलेले नाहीत",
+ "modelAvailability": "मॉडेलची उपलब्धता",
+ "accounts": "खाती",
+ "newAccount": "नवीन खाते",
+ "deleteConfirm": "तुम्हाला हा प्रदाता नक्की हटवायचा आहे का?",
+ "testing": "चाचणी सुरू आहे...",
+ "testConnection": "कनेक्शनची चाचणी करा",
+ "testSuccess": "कनेक्शन यशस्वी झाले",
+ "testFailed": "कनेक्शन अयशस्वी झाले",
+ "available": "उपलब्ध",
+ "cooldown": "कूलडाउन",
+ "unavailable": "अनुपलब्ध",
+ "unknown": "अज्ञात",
"oauthLabel": "OAuth",
- "compatibleLabel": "Compatible",
+ "compatibleLabel": "सुसंगत",
"chat": "Chat",
"responses": "Responses",
"messages": "Messages",
- "oauthProviders": "OAuth Providers",
- "freeProviders": "Free Providers",
- "apiKeyProviders": "API Key Providers",
- "compatibleProviders": "API Key Compatible Providers",
- "testAll": "Test All",
+ "oauthProviders": "OAuth प्रदाते",
+ "freeProviders": "विनामूल्य प्रदाते",
+ "apiKeyProviders": "API Key प्रदाते",
+ "compatibleProviders": "API Key-सुसंगत प्रदाते",
+ "testAll": "सर्वांची चाचणी करा",
"reorderByAvailability": "पुन्हा क्रमवारी लावा",
"reorderByAvailabilityTitle": "उपलब्धतेनुसार कनेक्शन पुन्हा क्रमवारी लावा",
"reorderByAvailabilityError": "उपलब्धतेनुसार कनेक्शन पुन्हा क्रमवारी लावण्यात अयशस्वी",
@@ -5131,10 +5138,10 @@
"distributing": "वितरित करत आहे...",
"selectedCount": "{count, plural, one {# निवडले} other {# निवडले}}",
"accountsCount": "{count, plural, one {# खाते} other {# खाती}}",
- "testAllOAuth": "Test all OAuth connections",
- "testAllFree": "Test all Free connections",
- "testAllApiKey": "Test all API Key connections",
- "testAllCompatible": "Test all Compatible connections",
+ "testAllOAuth": "सर्व OAuth कनेक्शनची चाचणी करा",
+ "testAllFree": "सर्व विनामूल्य कनेक्शनची चाचणी करा",
+ "testAllApiKey": "सर्व API Key कनेक्शनची चाचणी करा",
+ "testAllCompatible": "सर्व सुसंगत कनेक्शनची चाचणी करा",
"testAllModels": "सर्व मॉडेल्सची चाचणी घ्या",
"testAllModelsConfirm": "सर्व दृश्यमान मॉडेल्सची चाचणी घ्यायची? ऑटो-हाइड सक्षम असल्यास अयशस्वी मॉडेल्स लपवले जातील.",
"testingAllModels": "{done}/{total} ची चाचणी घेत आहे...",
@@ -5150,9 +5157,9 @@
"filterByVisibility": "दृश्यमानतेनुसार फिल्टर करा",
"autoHideFailed": "अयशस्वी मॉडेल्स आपोआप लपवा",
"autoHideFailedHint": "सक्षम केल्यावर, 'सर्व चाचणी घ्या' हे /v1/models सारख्या सार्वजनिक कॅटलॉगमधून तात्पुरत्या नसलेल्या त्रुटी लपवते. सिंगल-मॉडेल चाचण्या कधीही आपोआप लपवल्या जात नाहीत.",
- "connected": "{count} Connected",
- "errorCount": "{count} Error ({code})",
- "errorCountNoCode": "{count} Error",
+ "connected": "{count} कनेक्ट केले",
+ "errorCount": "{count} त्रुटी ({code})",
+ "errorCountNoCode": "{count} त्रुटी",
"testAllCompleted": "{total} मॉडेल्सची चाचणी केली: {ok} OK, {failed} अयशस्वी",
"modelAutoHidden": "मॉडेल {model} आपोआप लपवले गेले (चाचणी अयशस्वी)",
"filterAll": "सर्व",
@@ -5160,9 +5167,9 @@
"filterHidden": "फक्त लपवलेले",
"modelsHiddenCount": "{count} लपवले",
"warningCount": "{count} चेतावणी",
- "noConnections": "No connections",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "noConnections": "कोणतेही कनेक्शन नाही",
+ "expiredBadge": "कालबाह्य",
+ "expiringSoonBadge": "लवकरच कालबाह्य होणार",
"freeTier": "मोफत टियर",
"freeTierAvailable": "मोफत टियर उपलब्ध",
"hasFreeTooltip": "विनामूल्य टियर उपलब्ध",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "हा प्रदाता बहिष्कृत केला गेला आहे",
"riskNotice": {
"title": "पुढे जाण्यापूर्वी",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "वापरासंबंधी सूचना",
"tooltip": "वापराच्या मर्यादा असलेला प्रदाता — तपशीलांसाठी क्लिक करा",
"oauth": "हा प्रदाता तुमचे अधिकृत उत्पादन सत्र/OAuth वापरतो, जे प्रॉक्सी/राऊटर वापरासाठी अधिकृत नाही. आम्ही सघन स्वायत्त एजंट वापराची (OpenCloud-शैली, लांब बहु-चरण प्रवाह, मोठे बॅचेस) शिफारस करत नाही — अपस्ट्रीम खाते प्रतिबंधित किंवा बॅन करून प्रतिक्रिया देऊ शकते. स्वतःच्या जोखमीवर वापरा.",
"webCookie": "हा प्रदाता तुमच्या वेब सत्र कुकीजद्वारे प्रमाणीकरण करतो. अपस्ट्रीम सेवा कोणत्याही वेळी सत्र अवैध करू शकते, ज्यामुळे तुम्हाला पुन्हा लॉग इन करावे लागेल. दीर्घकाळ लक्ष न ठेवलेल्या ऑपरेशन्ससाठी शिफारस केलेली नाही. स्वतःच्या जोखमीवर वापरा.",
@@ -5184,95 +5191,95 @@
"cancel": "रद्द करा"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} कनेक्शन ध्वजांकित — अलीकडील कमाल {maxFailures} अपयशे{lastFailureSuffix}. कनेक्शनचे आरोग्य पाहण्यासाठी क्लिक करा.",
+ "lastFailureSuffix": "(शेवटचे अपयश {time})",
+ "ariaLabel": "कनेक्शनच्या आरोग्याचे तपशील पहा, {count} इशारे"
},
- "disabled": "Disabled",
- "enableProvider": "Enable provider",
- "disableProvider": "Disable provider",
- "testResults": "Test Results",
- "noCompatibleYet": "No compatible providers added yet",
- "compatibleHint": "Use the buttons above to add OpenAI or Anthropic compatible endpoints",
- "addOpenAICompatible": "Add OpenAI Compatible",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "addNewProvider": "Add New Provider",
- "backToProviders": "Back to Providers",
- "configureNewProvider": "Configure a new AI provider to use with your applications.",
- "providerLabel": "Provider",
- "selectProvider": "Select a provider",
- "selectedProvider": "Selected provider",
- "authMethod": "Authentication Method",
- "apiKeyLabel": "API Key",
- "apiKeyRequired": "API Key is required",
- "selectProviderRequired": "Please select a provider",
- "enterApiKey": "Enter your API key",
- "apiKeySecure": "Your API key will be encrypted and stored securely.",
- "oauth2Connect": "Connect with OAuth2",
+ "disabled": "अक्षम",
+ "enableProvider": "प्रदाता सक्षम करा",
+ "disableProvider": "प्रदाता अक्षम करा",
+ "testResults": "चाचणीचे निकाल",
+ "noCompatibleYet": "अद्याप कोणतेही सुसंगत प्रदाते जोडलेले नाहीत",
+ "compatibleHint": "OpenAI किंवा Anthropic शी सुसंगत एंडपॉइंट जोडण्यासाठी वरील बटणे वापरा",
+ "addOpenAICompatible": "OpenAI सुसंगत प्रदाता जोडा",
+ "addAnthropicCompatible": "Anthropic सुसंगत प्रदाता जोडा",
+ "addNewProvider": "नवीन प्रदाता जोडा",
+ "backToProviders": "प्रदात्यांकडे परत जा",
+ "configureNewProvider": "आपल्या ॲप्लिकेशन्ससह वापरण्यासाठी नवीन AI प्रदाता कॉन्फिगर करा.",
+ "providerLabel": "प्रदाता",
+ "selectProvider": "प्रदाता निवडा",
+ "selectedProvider": "निवडलेला प्रदाता",
+ "authMethod": "प्रमाणीकरण पद्धत",
+ "apiKeyLabel": "API की",
+ "apiKeyRequired": "API Key आवश्यक आहे",
+ "selectProviderRequired": "कृपया प्रदाता निवडा",
+ "enterApiKey": "आपली API key प्रविष्ट करा",
+ "apiKeySecure": "आपली API key कूटबद्ध करून सुरक्षितपणे संग्रहित केली जाईल.",
+ "oauth2Connect": "OAuth2 द्वारे कनेक्ट करा",
"oauth2Label": "OAuth2",
- "oauth2Desc": "Connect your account using OAuth2 authentication.",
- "displayName": "Display Name",
- "displayNamePlaceholder": "e.g., Production API, Dev Environment",
- "displayNameHint": "Optional. A friendly name to identify this configuration.",
- "active": "Active",
- "activeDescription": "Enable this provider for use in your applications",
- "cancel": "Cancel",
- "createProvider": "Create Provider",
- "failedCreate": "Failed to create provider",
- "errorOccurred": "An error occurred. Please try again.",
- "modelStatus": "Model Status",
- "showConfiguredOnly": "Configured only",
- "allModelsOperational": "All models operational",
- "modelsWithIssues": "{count} model(s) with issues",
- "allModelsNormal": "All models are responding normally.",
- "cooldownCleared": "Cooldown cleared for {model}",
- "failedClearCooldown": "Failed to clear cooldown",
- "loadingAvailability": "Loading model availability...",
- "clearCooldown": "Clear",
- "clearing": "Clearing...",
- "until": "Until {time}",
- "providerTestFailed": "Provider test failed",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "oauth2Desc": "OAuth2 प्रमाणीकरण वापरून आपले खाते कनेक्ट करा.",
+ "displayName": "प्रदर्शित नाव",
+ "displayNamePlaceholder": "उदा., Production API, Dev Environment",
+ "displayNameHint": "पर्यायी. हे कॉन्फिगरेशन ओळखण्यासाठी एक सोपे नाव.",
+ "active": "सक्रिय",
+ "activeDescription": "आपल्या ॲप्लिकेशन्समध्ये वापरण्यासाठी हा प्रदाता सक्षम करा",
+ "cancel": "रद्द करा",
+ "createProvider": "प्रदाता तयार करा",
+ "failedCreate": "प्रदाता तयार करण्यात अयशस्वी",
+ "errorOccurred": "एक त्रुटी आली. कृपया पुन्हा प्रयत्न करा.",
+ "modelStatus": "मॉडेलची स्थिती",
+ "showConfiguredOnly": "फक्त कॉन्फिगर केलेले",
+ "allModelsOperational": "सर्व मॉडेल्स कार्यरत आहेत",
+ "modelsWithIssues": "{count} मॉडेलमध्ये समस्या आहेत",
+ "allModelsNormal": "सर्व मॉडेल्स सामान्यपणे प्रतिसाद देत आहेत.",
+ "cooldownCleared": "{model} साठी कूलडाउन साफ केला",
+ "failedClearCooldown": "कूलडाउन साफ करण्यात अयशस्वी",
+ "loadingAvailability": "मॉडेलची उपलब्धता लोड करत आहे...",
+ "clearCooldown": "साफ करा",
+ "clearing": "साफ करत आहे...",
+ "until": "{time} पर्यंत",
+ "providerTestFailed": "प्रदात्याची चाचणी अयशस्वी झाली",
+ "providerTestTimeout": "प्रदात्याच्या चाचणीची वेळ संपली — एकाच वेळी चाचणी करण्यासाठी खूप जास्त कनेक्शन्स आहेत",
"modeTest": "{mode} Test",
- "passedCount": "{count} passed",
- "failedCount": "{count} failed",
- "testedCount": "{count} tested",
+ "passedCount": "{count} उत्तीर्ण",
+ "failedCount": "{count} अयशस्वी",
+ "testedCount": "{count} तपासले",
"millisecondsAbbr": "{value}ms",
"okShort": "OK",
- "errorShort": "ERROR",
- "noActiveConnectionsInGroup": "No active connections found for this group.",
- "allTestsPassed": "All {total} tests passed",
- "testSummary": "{passed}/{total} passed, {failed} failed",
- "nameLabel": "Name",
+ "errorShort": "त्रुटी",
+ "noActiveConnectionsInGroup": "या गटासाठी कोणतीही सक्रिय कनेक्शन्स आढळली नाहीत.",
+ "allTestsPassed": "सर्व {total} चाचण्या उत्तीर्ण झाल्या",
+ "testSummary": "{passed}/{total} उत्तीर्ण, {failed} अयशस्वी",
+ "nameLabel": "नाव",
"prefixLabel": "Prefix",
- "baseUrlLabel": "Base URL",
- "apiTypeLabel": "API Type",
- "prefixHint": "Required. Unique prefix for model names.",
- "nameHint": "Required. A friendly label for this node.",
- "baseUrlHint": "Required. Provider API base URL.",
+ "baseUrlLabel": "बेस URL",
+ "apiTypeLabel": "API प्रकार",
+ "prefixHint": "आवश्यक. मॉडेलच्या नावांसाठी अद्वितीय उपसर्ग.",
+ "nameHint": "आवश्यक. या नोडसाठी सुलभ ओळख-नाव.",
+ "baseUrlHint": "आवश्यक. प्रदाता API चा बेस URL.",
"iconUrlLabel": "आयकॉन URL",
"iconUrlHint": "पर्यायी. या प्रदात्याचा आयकॉन म्हणून दर्शविलेली इमेज URL.",
"iconUrlInvalid": "अवैध आयकॉन URL. http(s):// किंवा data:image/*;base64 URL वापरा.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "दैनिक कोटा रीसेट करण्याचा वेळ क्षेत्र",
+ "dailyQuotaResetTimezoneHint": "अपस्ट्रीमने X-RateLimit-Reset वगळल्यास वापरले जाणारे पर्यायी IANA वेळ क्षेत्र. अल्प प्रतीक्षा कालावधी कायम ठेवण्यासाठी रिकामे सोडा.",
+ "dailyQuotaResetHourLabel": "दैनिक कोटा रीसेट करण्याची वेळ",
+ "dailyQuotaResetHourHint": "वरील वेळ क्षेत्रातील स्थानिक तास 0-23. रिकामे असल्यास नोड-स्तरीय घड्याळ नसेल.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
- "validateConnection": "Validate Connection",
- "validating": "Validating...",
- "connectionValid": "Connection is valid!",
- "connectionFailed": "Connection failed. Check URL and key.",
- "testKeyLabel": "Test API Key",
- "testKeyPlaceholder": "sk-... (for validation only)",
- "providerNotFound": "Provider not found",
- "deleteConnectionConfirm": "Delete this connection?",
+ "validateConnection": "कनेक्शन सत्यापित करा",
+ "validating": "सत्यापित करत आहे...",
+ "connectionValid": "कनेक्शन वैध आहे!",
+ "connectionFailed": "कनेक्शन अयशस्वी झाले. URL आणि की तपासा.",
+ "testKeyLabel": "API कीची चाचणी करा",
+ "testKeyPlaceholder": "sk-... (केवळ सत्यापनासाठी)",
+ "providerNotFound": "प्रदाता आढळला नाही",
+ "deleteConnectionConfirm": "हे कनेक्शन हटवायचे?",
"deleteConnectionConfirmNamed": "तुम्हाला खात्री आहे की तुम्ही {name} हटवू इच्छिता? ही क्रिया पूर्ववत केली जाऊ शकत नाही.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "निवडलेली हटवा ({count})",
+ "batchDeleteConfirm": "{count} कनेक्शन हटवायची? ही क्रिया पूर्ववत करता येणार नाही.",
+ "batchDeleteSuccess": "{count} कनेक्शन हटवली",
"batchActivateSelected": "सक्रिय करा",
"batchDeactivateSelected": "निष्क्रिय करा",
"batchRetestSelected": "पुन्हा चाचणी करा",
@@ -5288,32 +5295,32 @@
"filterError": "त्रुटी",
"filterBanned": "प्रतिबंधित",
"filterCreditsExhausted": "क्रेडिट संपले",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "खाती शोधा…",
"noFilteredConnections": "सध्याच्या फिल्टरशी कोणतेही कनेक्शन्स जुळत नाहीत.",
- "failedSetAlias": "Failed to set alias",
+ "failedSetAlias": "उपनाव सेट करण्यात अयशस्वी",
"setAliasSuccess": "उर्फनाव {alias} सेट केले",
"deleteAliasSuccess": "उर्फनाव {alias} हटवले",
- "failedSaveConnection": "Failed to save connection",
- "failedSaveConnectionRetry": "Failed to save connection. Please try again.",
- "failedRetestConnection": "Failed to retest connection",
- "deleteCompatibleNodeConfirm": "Delete this {type} Compatible node?",
- "anthropicCompatibleDetails": "Anthropic Compatible Details",
- "openaiCompatibleDetails": "OpenAI Compatible Details",
+ "failedSaveConnection": "कनेक्शन जतन करण्यात अयशस्वी",
+ "failedSaveConnectionRetry": "कनेक्शन जतन करण्यात अयशस्वी. कृपया पुन्हा प्रयत्न करा.",
+ "failedRetestConnection": "कनेक्शनची पुन्हा चाचणी करण्यात अयशस्वी",
+ "deleteCompatibleNodeConfirm": "हा {type} Compatible नोड हटवायचा?",
+ "anthropicCompatibleDetails": "Anthropic Compatible तपशील",
+ "openaiCompatibleDetails": "OpenAI Compatible तपशील",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "एम्बेडिंग्ज",
+ "audioTranscriptions": "ऑडिओ लिप्यंतरणे",
+ "audioSpeech": "ऑडिओ वाणी",
+ "imagesGenerations": "प्रतिमा निर्मिती",
"chatCompletions": "Chat Completions",
- "importingModels": "Importing...",
- "importFromModels": "Import from /models",
- "modelsImported": "{count} models imported",
- "allModelsAlreadyImported": "All models already imported",
- "noNewModelsToImport": "No new models to import — all models are already in the registry or custom models list",
- "skippingExistingModels": "Skipping {count} existing models",
- "autoSync": "Auto-Sync",
- "autoSyncShort": "Sync",
+ "importingModels": "आयात करत आहे...",
+ "importFromModels": "/models मधून आयात करा",
+ "modelsImported": "{count} मॉडेल आयात केली",
+ "allModelsAlreadyImported": "सर्व मॉडेल आधीच आयात केली आहेत",
+ "noNewModelsToImport": "आयात करण्यासाठी कोणतीही नवीन मॉडेल नाहीत — सर्व मॉडेल आधीच रजिस्ट्रीमध्ये किंवा सानुकूल मॉडेलच्या यादीत आहेत",
+ "skippingExistingModels": "अस्तित्वात असलेली {count} मॉडेल वगळत आहे",
+ "autoSync": "स्वयं-समक्रमण",
+ "autoSyncShort": "समक्रमित करा",
"autoFetchModels": "ऑटो-फेच अपस्ट्रीम मॉडेल्स",
"autoFetchModelsTooltip": "आवश्यकतेनुसार अपस्ट्रीम मॉडेल्स आणा आणि कॅश करा",
"autoFetchModelsEnabled": "उपधारा मॉडेल स्वयंचलित-आकर्षण सक्षम आहे",
@@ -5325,52 +5332,52 @@
"resetToUpstreamDefaults": "अपस्ट्रीम डिफॉल्ट्स पुनर्स्थापित करा",
"resetToUpstreamDefaultsSuccess": "उपस्ट्रीम मॉडेल डिफॉल्ट्स पुनर्स्थापित केले",
"resetToUpstreamDefaultsFailed": "उपस्ट्रीम मॉडेल डिफॉल्ट्स पुनर्स्थापित करण्यात अयशस्वी",
- "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)",
- "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically",
- "autoSyncDisabled": "Auto-sync disabled",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
- "autoSyncPartialFailure": "Auto-sync updated for some connections, but not all",
- "clearAllModels": "Clear All Models",
- "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.",
- "clearAllModelsSuccess": "All models cleared",
- "clearAllModelsFailed": "Failed to clear models",
- "addConnectionToImport": "Add a connection to enable importing.",
- "noModelsConfigured": "No models configured",
- "connectionCount": "{count} connection(s)",
- "fetchingModels": "Fetching available models...",
- "failedFetchModels": "Failed to fetch models",
+ "autoSyncTooltip": "दर 24 तासांनी मॉडेलची यादी स्वयंचलितपणे रीफ्रेश करा (MODEL_SYNC_INTERVAL_HOURS द्वारे कॉन्फिगर करता येते)",
+ "autoSyncEnabled": "स्वयं-समक्रमण सुरू केले — मॉडेल वेळोवेळी रीफ्रेश होतील",
+ "autoSyncDisabled": "स्वयं-समक्रमण बंद केले",
+ "autoSyncToggleFailed": "स्वयं-समक्रमण टॉगल करण्यात अयशस्वी",
+ "autoSyncPartialFailure": "काही कनेक्शनसाठी स्वयं-समक्रमण अद्ययावत केले, परंतु सर्वांसाठी नाही",
+ "clearAllModels": "सर्व मॉडेल साफ करा",
+ "clearAllModelsConfirm": "तुम्हाला या प्रदात्याची सर्व मॉडेल काढून टाकायची आहेत याची खात्री आहे का? ही क्रिया पूर्ववत करता येणार नाही.",
+ "clearAllModelsSuccess": "सर्व मॉडेल साफ केली",
+ "clearAllModelsFailed": "मॉडेल साफ करण्यात अयशस्वी",
+ "addConnectionToImport": "आयात सक्षम करण्यासाठी कनेक्शन जोडा.",
+ "noModelsConfigured": "कोणतीही मॉडेल कॉन्फिगर केलेली नाहीत",
+ "connectionCount": "{count} कनेक्शन",
+ "fetchingModels": "उपलब्ध मॉडेल आणत आहे...",
+ "failedFetchModels": "मॉडेल आणण्यात अयशस्वी",
"noFreeModelsFound": "या प्रदात्यासाठी कोणतेही विनामूल्य मॉडेल्स आढळले नाहीत — काहीही आयात केले नाही.",
"fetchModelsSuccess": "{count} नवीन मॉडेल्स आढळले",
"fetchModelsFailed": "मॉडेल्स आपोआप आणता आले नाहीत (तुम्ही सेटिंग्जमधून पुन्हा प्रयत्न करू शकता)",
- "noModelsFound": "No models found",
- "importFailed": "Import failed",
- "noNewModelsAdded": "No new models were added.",
+ "noModelsFound": "कोणतीही मॉडेल आढळली नाहीत",
+ "importFailed": "आयात अयशस्वी",
+ "noNewModelsAdded": "कोणतीही नवीन मॉडेल जोडली गेली नाहीत.",
"adding": "Adding...",
- "close": "Close",
- "importingModelsTitle": "Importing Models",
- "copyModel": "Copy model",
- "filterModels": "Filter models...",
+ "close": "बंद करा",
+ "importingModelsTitle": "मॉडेल आयात करत आहे",
+ "copyModel": "मॉडेल कॉपी करा",
+ "filterModels": "मॉडेल फिल्टर करा...",
"testAllRateLimited": "दर मर्यादा गाठली, लवकर थांबवले",
"hideFailedAuto": "अयशस्वी मॉडेल्स आपोआप लपवा",
- "selectAllModels": "Select all",
+ "selectAllModels": "सर्व निवडा",
"hideAllModels": "सर्व लपवा",
- "modelsActive": "Active",
- "showModel": "Show model",
- "hideModel": "Hide model",
- "removeModel": "Remove model",
- "rateLimitProtected": "Protected",
- "rateLimitUnprotected": "Unprotected",
+ "modelsActive": "सक्रिय",
+ "showModel": "मॉडेल दाखवा",
+ "hideModel": "मॉडेल लपवा",
+ "removeModel": "मॉडेल काढा",
+ "rateLimitProtected": "संरक्षित",
+ "rateLimitUnprotected": "असंरक्षित",
"providerQuotaShort": "कोटा",
"hideConnectionFromProviderQuota": "हे खाते Provider Quota मधून लपवा",
"showConnectionInProviderQuota": "हे खाते Provider Quota मध्ये दाखवा",
"quotaVisibilityUpdateFailed": "Provider Quota दृश्यमानता अपडेट करण्यात अयशस्वी",
- "enableRateLimitProtection": "Click to enable rate limit protection",
- "disableRateLimitProtection": "Click to disable rate limit protection",
+ "enableRateLimitProtection": "दरमर्यादा संरक्षण सुरू करण्यासाठी क्लिक करा",
+ "disableRateLimitProtection": "दर मर्यादा संरक्षण अक्षम करण्यासाठी क्लिक करा",
"testAllProgress": "{done}/{total} चाचणी केली",
"testAllFailedHidden": "{count} अयशस्वी मॉडेल्स लपवले आहेत",
"testAllDone": "सर्व मॉडेल्स तपासले",
- "productionKey": "Production Key",
- "enterNewApiKey": "Enter new API key",
+ "productionKey": "प्रॉडक्शन की",
+ "enterNewApiKey": "नवीन API की प्रविष्ट करा",
"codexApplyModalTitle": "स्थानिक कोडेक्सवर अर्ज करा",
"codexApplyTargetLabel": "लक्ष्य मार्ग",
"codexApplyBackupLabel": "बॅकअप",
@@ -5382,77 +5389,77 @@
"bulkAddFormatHint": "प्रति ओळ एक की. स्वरूप: नाव|apiKey किंवा फक्त apiKey (अनुक्रमणिका द्वारे स्वयं-नाम).",
"bulkValidateKeys": "जतन करण्यापूर्वी प्रत्येक की सत्यापित करा (हळू)",
"bulkAddAllKeys": "सर्व की जोडा",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
- "optional": "Optional",
+ "bulkAddedCount": "{count, plural, one {# की जोडली} other {# की जोडल्या}}",
+ "bulkFailedCount": "{count, plural, one {# अयशस्वी} other {# अयशस्वी}}",
+ "optional": "पर्यायी",
"anthropicCompatibleName": "Anthropic Compatible",
"openaiCompatibleName": "OpenAI Compatible",
"compatibleDefaultModelLabel": "डीफॉल्ट मॉडेल",
"compatibleDefaultModelHint": "तुमचा सुसंगत एंडपॉईंट ज्याप्रमाणे मॉडेल ID ची अपेक्षा करतो तसाच तो प्रविष्ट करा. हे मॉडेल कनेक्शन डीफॉल्ट म्हणून सेव्ह केले जाईल.",
- "failedImportModels": "Failed to import models",
- "noModelsReturnedFromEndpoint": "No models returned from /models endpoint.",
- "importingModelsProgress": "Importing {current} of {total} models...",
- "foundModelsStartingImport": "Found {count} models. Starting import...",
- "importingModelById": "Importing {modelId}...",
- "importSuccessCount": "Successfully imported {count, plural, one {# model} other {# models}}!",
- "noNewModelsAddedExisting": "No new models were added (all already exist).",
- "importDoneCount": "✓ Done! {count, plural, one {# model imported.} other {# models imported.}}",
- "unexpectedErrorOccurred": "An unexpected error occurred",
+ "failedImportModels": "मॉडेल आयात करण्यात अयशस्वी",
+ "noModelsReturnedFromEndpoint": "/models एंडपॉइंटवरून कोणतीही मॉडेल मिळाली नाहीत.",
+ "importingModelsProgress": "{total} पैकी {current} मॉडेल आयात करत आहे...",
+ "foundModelsStartingImport": "{count} मॉडेल सापडली. आयात सुरू करत आहे...",
+ "importingModelById": "{modelId} आयात करत आहे...",
+ "importSuccessCount": "{count, plural, one {# मॉडेल} other {# मॉडेल}} यशस्वीरीत्या आयात केली!",
+ "noNewModelsAddedExisting": "कोणतीही नवीन मॉडेल जोडली गेली नाहीत (सर्व आधीपासूनच अस्तित्वात आहेत).",
+ "importDoneCount": "✓ पूर्ण झाले! {count, plural, one {# मॉडेल आयात केले.} other {# मॉडेल आयात केली.}}",
+ "unexpectedErrorOccurred": "एक अनपेक्षित त्रुटी आली",
"getApiKey": "API की मिळवा",
"getApiKeyDescription": "API कीसाठी नोंदणी करा किंवा साइन अप करा",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# कनेक्शन} other {# कनेक्शन्स}}",
"messagesPath": "messages",
"responsesPath": "responses",
"chatCompletionsPath": "chat/completions",
- "add": "Add",
- "edit": "Edit",
- "delete": "Delete",
+ "add": "जोडा",
+ "edit": "संपादित करा",
+ "delete": "हटवा",
"anthropic": "Anthropic",
"openai": "OpenAI",
- "singleConnectionPerCompatible": "Only one connection is allowed per compatible node. Add another node if you need more connections.",
- "connections": "Connections",
- "providerProxyTitleConfigured": "Provider proxy: {host}",
- "configured": "configured",
- "providerProxyConfigureHint": "Configure proxy for all connections of this provider",
- "providerProxy": "Provider Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
- "noConnectionsYet": "No connections yet",
- "addFirstConnectionHint": "Add your first connection to get started",
- "addConnection": "Add Connection",
- "availableModels": "Available Models",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
- "pageAutoRefresh": "Page will refresh automatically...",
- "statusDisabled": "disabled",
- "statusConnected": "connected",
- "statusRuntimeIssue": "runtime issue",
- "statusAuthFailed": "auth failed",
- "statusRateLimited": "rate limited",
- "statusNetworkIssue": "network issue",
- "statusTestUnsupported": "test unsupported",
- "statusUnavailable": "unavailable",
- "statusFailed": "failed",
- "statusError": "error",
- "oauthAccount": "OAuth Account",
- "errorTypeRuntime": "Local runtime",
- "errorTypeUpstreamAuth": "Upstream auth",
- "errorTypeMissingCredential": "Missing credential",
- "errorTypeRefreshFailed": "Refresh failed",
- "errorTypeTokenExpired": "Token expired",
- "errorTypeRateLimited": "Rate limited",
- "errorTypeUpstreamUnavailable": "Upstream unavailable",
- "errorTypeNetworkError": "Network error",
- "errorTypeTestUnsupported": "Test unsupported",
- "errorTypeUpstreamError": "Upstream error",
+ "singleConnectionPerCompatible": "प्रत्येक सुसंगत नोडसाठी फक्त एक कनेक्शन अनुमत आहे. अधिक कनेक्शन्सची आवश्यकता असल्यास आणखी एक नोड जोडा.",
+ "connections": "कनेक्शन्स",
+ "providerProxyTitleConfigured": "प्रदाता प्रॉक्सी: {host}",
+ "configured": "कॉन्फिगर केलेले",
+ "providerProxyConfigureHint": "या प्रदात्याच्या सर्व कनेक्शन्ससाठी प्रॉक्सी कॉन्फिगर करा",
+ "providerProxy": "प्रदाता प्रॉक्सी",
+ "repairEnv": "env दुरुस्त करा",
+ "repairEnvWorking": "दुरुस्त करत आहे...",
+ "repairEnvHint": "विद्यमान मूल्ये ओव्हरराइट न करता गहाळ OAuth डीफॉल्ट्स .env मध्ये पुनर्संचयित करा.",
+ "repairEnvSuccess": "OAuth डीफॉल्ट्स पुनर्संचयित केले",
+ "repairEnvFailed": ".env दुरुस्त करण्यात अयशस्वी",
+ "noConnectionsYet": "अद्याप कोणतीही कनेक्शन्स नाहीत",
+ "addFirstConnectionHint": "सुरुवात करण्यासाठी तुमचे पहिले कनेक्शन जोडा",
+ "addConnection": "कनेक्शन जोडा",
+ "availableModels": "उपलब्ध मॉडेल",
+ "builtInModels": "अंगभूत मॉडेल",
+ "builtInModelsHint": "या प्रदात्यासाठी रजिस्ट्रीमधील मॉडेल. सुसंगतता पर्याय सेट करण्यासाठी पेन्सिल वापरा.",
+ "pageAutoRefresh": "पृष्ठ आपोआप रीफ्रेश होईल...",
+ "statusDisabled": "अक्षम",
+ "statusConnected": "कनेक्ट केलेले",
+ "statusRuntimeIssue": "रनटाइम समस्या",
+ "statusAuthFailed": "प्रमाणीकरण अयशस्वी",
+ "statusRateLimited": "दर मर्यादित केला",
+ "statusNetworkIssue": "नेटवर्क समस्या",
+ "statusTestUnsupported": "चाचणी समर्थित नाही",
+ "statusUnavailable": "अनुपलब्ध",
+ "statusFailed": "अयशस्वी",
+ "statusError": "त्रुटी",
+ "oauthAccount": "OAuth खाते",
+ "errorTypeRuntime": "स्थानिक रनटाइम",
+ "errorTypeUpstreamAuth": "अपस्ट्रीम प्रमाणीकरण",
+ "errorTypeMissingCredential": "क्रेडेन्शियल उपलब्ध नाही",
+ "errorTypeRefreshFailed": "रीफ्रेश अयशस्वी",
+ "errorTypeTokenExpired": "टोकनची मुदत संपली",
+ "errorTypeRateLimited": "दर मर्यादित केला",
+ "errorTypeUpstreamUnavailable": "अपस्ट्रीम अनुपलब्ध",
+ "errorTypeNetworkError": "नेटवर्क त्रुटी",
+ "errorTypeTestUnsupported": "चाचणी समर्थित नाही",
+ "errorTypeUpstreamError": "अपस्ट्रीम त्रुटी",
"errorTypeCreditsExhausted": "क्रेडिट्स शिल्लक नाहीत",
"errorTypeBanned": "403 प्रतिबंधित",
- "proxySourceGlobal": "Global",
- "proxySourceProvider": "Provider",
- "proxySourceKey": "Key",
+ "proxySourceGlobal": "जागतिक",
+ "proxySourceProvider": "प्रदाता",
+ "proxySourceKey": "की",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"proxyOn": "प्रॉक्सी सुरू",
"proxyOff": "थेट (प्रॉक्सी बायपास करा)",
@@ -5464,31 +5471,31 @@
"perKeyProxyDisabledTitle": "या प्रदात्यासाठी प्रति-की प्रॉक्सी असाइनमेंट अक्षम केले आहे",
"autoPriority": "Auto: {priority}",
"proxy": "Proxy",
- "retestAuthentication": "Retest authentication",
- "retest": "Retest",
- "disableConnection": "Disable connection",
- "enableConnection": "Enable connection",
- "reauthenticateConnection": "Re-authenticate this connection",
- "proxyConfig": "Proxy config",
- "aliasExistsAlert": "Alias \"{alias}\" already exists. Please use a different model or edit existing alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
- "openRouterAnyModelHint": "OpenRouter supports any model. Add models and create aliases for quick access.",
- "modelIdFromOpenRouter": "Model ID (from OpenRouter)",
+ "retestAuthentication": "प्रमाणीकरणाची पुन्हा चाचणी करा",
+ "retest": "पुन्हा चाचणी करा",
+ "disableConnection": "कनेक्शन अक्षम करा",
+ "enableConnection": "कनेक्शन सक्षम करा",
+ "reauthenticateConnection": "या कनेक्शनसाठी पुन्हा प्रमाणीकरण करा",
+ "proxyConfig": "प्रॉक्सी कॉन्फिगरेशन",
+ "aliasExistsAlert": "\"{alias}\" हे उपनाव आधीपासून अस्तित्वात आहे. कृपया वेगळे मॉडेल वापरा किंवा विद्यमान उपनाव संपादित करा.",
+ "aliasInputPlaceholder": "उपनावाचे नाव",
+ "clickToSetAlias": "उपनाव सेट करण्यासाठी क्लिक करा",
+ "clickToEditAlias": "उपनाव: {alias} (संपादित करण्यासाठी क्लिक करा)",
+ "openRouterAnyModelHint": "OpenRouter कोणत्याही मॉडेलला समर्थन देते. द्रुत प्रवेशासाठी मॉडेल जोडा आणि उपनावे तयार करा.",
+ "modelIdFromOpenRouter": "मॉडेल ID (OpenRouter कडून)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
- "customModels": "Custom Models",
- "customModelsHint": "Add model IDs not in the default list. These will be available for routing.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "customModels": "सानुकूल मॉडेल्स",
+ "customModelsHint": "डीफॉल्ट सूचीमध्ये नसलेले मॉडेल ID जोडा. ते रूटिंगसाठी उपलब्ध होतील.",
+ "normalizeToolCallIdLabel": "टूल कॉल ID 9 वर्णांमध्ये प्रमाणित करा (उदा. Mistral)",
+ "preserveDeveloperRoleLabel": "OpenAI Responses ची डेव्हलपर भूमिका कायम ठेवा (सिस्टमशी मॅप करू नका)",
+ "compatAdjustmentsTitle": "सुसंगतता",
+ "compatButtonLabel": "सुसंगतता",
+ "compatToolIdShort": "टूल ID 9",
+ "compatDeveloperShort": "डेव्हलपर भूमिका",
+ "compatDoNotPreserveDeveloper": "डेव्हलपर भूमिका जतन करू नका",
+ "compatBadgeNoPreserve": "जतन करू नका",
+ "compatProtocolLabel": "क्लायंट विनंती प्रोटोकॉल",
+ "compatProtocolHint": "OmniRoute ला हा विनंती प्रकार (OpenAI Chat, Responses API किंवा Anthropic Messages) आढळल्यावर हे पर्याय लागू होतात.",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,84 +5537,84 @@
"interceptFetchHint": "मूळ web_fetch टूल कॉल्स OmniRoute च्या /v1/web/fetch वर पुन्हा लिहा.",
"interceptionLoadError": "इंटरसेप्शन सेटिंग्ज लोड करण्यात अयशस्वी: {error}",
"interceptionSaveError": "इंटरसेप्शन सेटिंग्ज सेव्ह करण्यात अयशस्वी: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
- "perModelQuotaLabel": "Per-Model Quota",
- "perModelQuotaDescription": "When enabled, 429/404 errors only lock the specific model, not the entire connection. Use for providers with per-model rate limits (e.g., ModelScope).",
+ "ccAliasSectionTitle": "Claude Code मध्ये दर्शवा (claude/…)",
+ "ccAliasSectionHint": "या प्रदात्याची मॉडेल्स claude/<provider>/<model> मिरर आयडी अंतर्गत उपलब्ध म्हणून दर्शवा, जेणेकरून Claude Code चे गेटवे मॉडेल डिस्कव्हरी त्यांची सूची दाखवू शकेल. डीफॉल्टनुसार बंद — हे सुरू केल्यास सर्व क्लायंटसाठी कॅटलॉग नोंदी दुप्पट होतात.",
+ "ccAliasProviderLevelLabel": "प्रदात्याचे डीफॉल्ट",
+ "ccAliasModelOverridesLabel": "प्रति-मॉडेल ओव्हरराइड्स",
+ "ccAliasModelOverrideAriaLabel": "{modelId} साठी ओव्हरराइड",
+ "ccAliasStateInherit": "वारसा घ्या",
+ "ccAliasStateOn": "चालू",
+ "ccAliasStateOff": "बंद",
+ "ccAliasAddModelPlaceholder": "मॉडेल आयडी (उदा. gpt-4o)",
+ "ccAliasAddModelButton": "ओव्हरराइड जोडा",
+ "ccAliasLoadError": "डिस्कव्हरी-अलियास सेटिंग्ज लोड करण्यात अयशस्वी: {error}",
+ "ccAliasSaveError": "डिस्कव्हरी-अलियास सेटिंग जतन करण्यात अयशस्वी: {error}",
+ "compatUpstreamHeadersLabel": "अतिरिक्त अपस्ट्रीम हेडर्स",
+ "compatUpstreamHeadersHint": "उच्च-विशेषाधिकार सेटिंग — प्रदात्याची API क्रेडेन्शियल्स संपादित करण्याइतकीच विश्वासाची पातळी; फक्त विश्वासू प्रशासकांनीच ती वापरावी. OmniRoute ने प्रदात्याच्या API कीमधून प्रमाणीकरण जोडल्यानंतर हे विलीन केले जाते. सानुकूल हेडरचे नाव एखाद्या विद्यमान हेडरसारखेच असल्यास (उदा. Authorization), तुमचे मूल्य स्वयं-निर्मित हेडर पूर्णपणे बदलते (Bearer टोकनसह) — अपस्ट्रीमला फक्त तुम्ही टाइप केलेलेच दिसते, सेटिंग्जमधील की नाही. चुकीच्या कॉन्फिगरेशनमुळे 401 त्रुटी किंवा अपस्ट्रीम प्रमाणीकरण बिघडू शकते. प्रत्येक हेडरसाठी एक ओळ (उदा. काही गेटवेंसाठी अतिरिक्त Authentication). पूर्वावलोकनासाठी मूल्यावर होव्हर करा किंवा फोकस करा. फोकस हटवल्यावर, बाहेर क्लिक केल्यावर किंवा हे पॅनेल बंद केल्यावर जतन होते.",
+ "compatUpstreamHeaderName": "हेडरचे नाव",
+ "compatUpstreamHeaderValue": "मूल्य",
+ "compatUpstreamAddRow": "हेडर जोडा",
+ "compatUpstreamRemoveRow": "ओळ काढा",
+ "compatBadgeUpstreamHeaders": "हेडर्स",
+ "perModelQuotaLabel": "प्रति-मॉडेल कोटा",
+ "perModelQuotaDescription": "हे सुरू असताना, 429/404 त्रुटी संपूर्ण कनेक्शनऐवजी फक्त संबंधित मॉडेल लॉक करतात. प्रति-मॉडेल दरमर्यादा असलेल्या प्रदात्यांसाठी वापरा (उदा., ModelScope).",
"importFreeModelsOnlyLabel": "केवळ मोफत मॉडेल्स इंपोर्ट करा",
"importFreeModelsOnlyHint": "सक्षम केल्यावर, केवळ या प्रदात्याचे मोफत मॉडेल्स इंपोर्ट केले जातात. सशुल्क मॉडेल्स वगळले जातात.",
- "perModelQuotaToggle": "Per-Model Quota Toggle",
- "modelId": "Model ID",
- "customModelPlaceholder": "e.g. gpt-4.5-turbo",
- "loading": "Loading...",
- "removeCustomModel": "Remove custom model",
- "noCustomModels": "No custom models added yet.",
- "allSuggestedAliasesExist": "All suggested aliases already exist. Please choose a different model or remove conflicting aliases.",
- "failedSaveCustomModel": "Failed to save custom model",
- "modelAddedSuccess": "Model {modelId} added successfully",
- "failedAddModelTryAgain": "Failed to add model. Please try again.",
- "failedSaveImportedModel": "Failed to save imported model to custom database",
- "failedImportModelsTryAgain": "Failed to import models. Please try again.",
- "failedRemoveModelFromDatabase": "Failed to remove model from database",
- "modelRemovedSuccess": "Model removed successfully",
- "failedDeleteModelTryAgain": "Failed to delete model. Please try again.",
- "compatibleModelsDescription": "Add {type}-compatible models manually or import them from the /models endpoint.",
+ "perModelQuotaToggle": "प्रति-मॉडेल कोटा टॉगल",
+ "modelId": "मॉडेल आयडी",
+ "customModelPlaceholder": "उदा. gpt-4.5-turbo",
+ "loading": "लोड होत आहे...",
+ "removeCustomModel": "सानुकूल मॉडेल काढा",
+ "noCustomModels": "अद्याप कोणतेही सानुकूल मॉडेल जोडलेले नाही.",
+ "allSuggestedAliasesExist": "सर्व सुचवलेले अलियास आधीच अस्तित्वात आहेत. कृपया वेगळे मॉडेल निवडा किंवा परस्परविरोधी अलियास काढा.",
+ "failedSaveCustomModel": "सानुकूल मॉडेल जतन करण्यात अयशस्वी",
+ "modelAddedSuccess": "मॉडेल {modelId} यशस्वीरित्या जोडले",
+ "failedAddModelTryAgain": "मॉडेल जोडण्यात अयशस्वी. कृपया पुन्हा प्रयत्न करा.",
+ "failedSaveImportedModel": "आयात केलेले मॉडेल सानुकूल डेटाबेसमध्ये जतन करण्यात अयशस्वी",
+ "failedImportModelsTryAgain": "मॉडेल्स आयात करण्यात अयशस्वी. कृपया पुन्हा प्रयत्न करा.",
+ "failedRemoveModelFromDatabase": "डेटाबेसमधून मॉडेल काढण्यात अयशस्वी",
+ "modelRemovedSuccess": "मॉडेल यशस्वीरित्या काढले",
+ "failedDeleteModelTryAgain": "मॉडेल हटवण्यात अयशस्वी. कृपया पुन्हा प्रयत्न करा.",
+ "compatibleModelsDescription": "{type}-सुसंगत मॉडेल्स व्यक्तिचलितपणे जोडा किंवा /models एंडपॉइंटवरून आयात करा.",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
- "apiKeyValidationFailed": "API key validation failed. Please check your key and try again.",
- "addProviderApiKeyTitle": "Add {provider} API Key",
- "checking": "Checking...",
- "check": "Check",
- "valid": "Valid",
- "invalid": "Invalid",
- "creating": "Creating...",
- "validationChecksAnthropicCompatible": "Validation checks {provider} by verifying the API key.",
- "validationChecksOpenAiCompatible": "Validation checks {provider} via /models on your base URL.",
- "priorityLabel": "Priority",
- "saving": "Saving...",
- "save": "Save",
- "editConnection": "Edit Connection",
- "accountName": "Account name",
+ "apiKeyValidationFailed": "API की पडताळणी अयशस्वी. कृपया तुमची की तपासा आणि पुन्हा प्रयत्न करा.",
+ "addProviderApiKeyTitle": "{provider} API की जोडा",
+ "checking": "तपासत आहे...",
+ "check": "तपासा",
+ "valid": "वैध",
+ "invalid": "अवैध",
+ "creating": "तयार करत आहे...",
+ "validationChecksAnthropicCompatible": "API कीची पडताळणी करून {provider} ची वैधता तपासली जाते.",
+ "validationChecksOpenAiCompatible": "तुमच्या बेस URL वरील /models द्वारे {provider} ची वैधता तपासली जाते.",
+ "priorityLabel": "प्राधान्य",
+ "saving": "जतन करत आहे...",
+ "save": "जतन करा",
+ "editConnection": "कनेक्शन संपादित करा",
+ "accountName": "खात्याचे नाव",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "स्थिती तपासणी (मिनिटे)",
"healthCheckHint": "Proactive token refresh interval. 0 = disabled.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
- "failedTestConnection": "Failed to test connection",
- "failed": "Failed",
- "leaveBlankKeepCurrentApiKey": "Leave blank to keep the current API key.",
- "editCompatibleTitle": "Edit {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
- "apiKeyForCheck": "API Key (for Check)",
+ "deselectAllModels": "सर्व निवड रद्द करा",
+ "modelsActiveCount": "{active}/{total} सक्रिय",
+ "noModelsMatch": "\"{filter}\" शी कोणतेही मॉडेल जुळत नाही",
+ "groupLabel": "पर्यावरण",
+ "groupPlaceholder": "उदा. eKaizen, वैयक्तिक",
+ "failedTestConnection": "कनेक्शनची चाचणी करण्यात अयशस्वी",
+ "failed": "अयशस्वी",
+ "leaveBlankKeepCurrentApiKey": "सध्याची API की कायम ठेवण्यासाठी रिक्त सोडा.",
+ "editCompatibleTitle": "{type} सुसंगत संपादित करा",
+ "compatibleBaseUrlHint": "तुमच्या {type}-सुसंगत API चा रूट URL. सानुकूल एंडपॉइंट पथांसाठी प्रगत सेटिंग्ज वापरा.",
+ "apiKeyForCheck": "API की (तपासणीसाठी)",
"testModelIdLabel": "मॉडेल आयडी (पर्यायी)",
"testModelIdPlaceholder": "उदा. my-model-id",
"testModelIdHint": "प्रदात्याकडे /models एंडपॉइंट नसल्यास, त्याऐवजी /chat/completions द्वारे प्रमाणित करण्यासाठी मॉडेल आयडी प्रविष्ट करा.",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "compatibleProdPlaceholder": "{type} सुसंगत (Prod)",
+ "tokenRefreshed": "टोकन यशस्वीरित्या रिफ्रेश झाले",
+ "tokenRefreshFailed": "टोकन रिफ्रेश अयशस्वी",
"cursorSessionUnchanged": "सत्र आधीच चालू आहे",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "प्रमाणीकरण लागू करा",
+ "exportCodexAuthFile": "प्रमाणीकरण निर्यात करा",
"applyClaudeAuthLocal": "प्रमाणीकरण लागू करा",
"exportClaudeAuthFile": "प्रमाणीकरण निर्यात करा",
"importClaudeAuth": "आयात प्रमाणीकरण",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} अयशस्वी",
"codexImportBulkZipExtracting": "झिप काढत आहे...",
"codexImportBulkZipError": "ZIP काढण्यात अयशस्वी",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "प्रगत सेटिंग्ज",
+ "chatPathLabel": "चॅट एंडपॉइंट पथ",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "अप्रमाणित API असलेल्या प्रदात्यांसाठी सानुकूल चॅट पथ (उदा. /v4/chat/completions)",
+ "modelsPathLabel": "मॉडेल्स एंडपॉइंट पथ",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "पडताळणीसाठी सानुकूल मॉडेल्स पथ (उदा. /v4/models)",
"clientIdentityLabel": "क्लायंट ओळख",
"clientIdentityHint": "पर्यायी. सुसंगत गेटवे ज्यांना आवश्यकता आहे त्यांच्यासाठी ज्ञात CLI शी जुळणारे क्लायंट फिंगरप्रिंट हेडर (उदा. User-Agent) जोडते.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "निष्क्रिय केले (मॅन्युअल)",
+ "statusBanned": "प्रतिबंधित / Sandbox उल्लंघन",
+ "statusCreditsExhausted": "अपुरा शिल्लक निधी / कोटा संपला",
+ "showEmails": "सर्व ईमेल दाखवा",
+ "hideEmails": "सर्व ईमेल लपवा",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "आणखी एक API key जोडा किंवा एकापेक्षा जास्त keys पेस्ट करा",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "एग्रीगेटर गेटवे",
"enterpriseCloud": "एंटरप्राइझ आणि क्लाउड",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "API स्वरूपाचे लेबल",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "API प्रदेश चीन",
+ "apiRegionHint": "API प्रदेशाची सूचना",
+ "apiRegionInternational": "API प्रदेश आंतरराष्ट्रीय",
+ "apiRegionLabel": "API प्रदेशाचे लेबल",
+ "apikey": "API key",
+ "audio": "ऑडिओ",
+ "audioProvidersHeading": "ऑडिओ प्रदात्यांचे शीर्षक",
"cloudAgentProviders": "क्लाउड एजंट प्रदाते",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "ऑडिओचे संक्षिप्त लेबल",
+ "azureOpenAiBaseUrlHint": "Azure Open AI Base URL सूचना",
+ "bailianBaseUrlHint": "Bailian Base URL सूचना",
+ "claudeWebCookieHint": "claude.ai उघडा → DevTools → Application → Cookies → claude.ai, आणि 'sessionKey' मूल्य कॉपी करा. Cloudflare साठी cf_clearance, __cf_bm, _cfuvid देखील आवश्यक आहेत.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web Cookie सूचना",
+ "blackboxWebCookiePlaceholder": "Blackbox Web Cookie प्लेसहोल्डर",
"t3ChatWebCookieHint": "t3.chat → DevTools → Application → Local Storage → https://t3.chat उघडा, 'convex-session-id' कॉपी करा. नंतर DevTools → नेटवर्क उघडा, कोणत्याही चॅट विनंतीवरून संपूर्ण कुकी शीर्षलेख कॉपी करा. खालील फील्डमध्ये दोन्ही मूल्ये पेस्ट करा.",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web Cookie सूचना",
"blockClaudeExtraUsageDescription": "सक्षम केल्यास, OmniRoute या Claude कनेक्शनला अनुपलब्ध म्हणून चिन्हांकित करते जेव्हा वापर API क्यू केलेल्या अतिरिक्त वापराची माहिती देते, त्यामुळे फॉल्बॅक दुसऱ्या कनेक्शनवर स्विच करतो, पे-एझ-यू-गो अतिरिक्त बिलिंग चालू ठेवण्याऐवजी.",
"blockClaudeExtraUsageLabel": "अतिरिक्त Claude वापर थांबवा",
"disableCoolingDescription": "अस्थायी कूलडाउन वगळा जेणेकरून पुनर्प्राप्त करण्यायोग्य त्रुटींनंतरही हे कनेक्शन पात्र राहील (प्रतिबंधित/कालबाह्य यांसारख्या अंतिम स्थिती अजूनही लागू होतात).",
"disableCoolingLabel": "या कनेक्शनसाठी कूलडाउन अक्षम करा",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 key जोडली} other {# keys जोडल्या}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 डुप्लिकेट वगळली} other {# डुप्लिकेट्स वगळली}}",
+ "bulkPasteHint": "प्रत्येक ओळीवर एक API key पेस्ट करा. रिकाम्या ओळींकडे दुर्लक्ष केले जाते आणि डुप्लिकेट keys वगळल्या जातात.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "लपविलेले Claude विचारप्रवाह आवश्यक असलेल्या CC Compatible upstreams साठी redact-thinking beta header जोडते.",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking beta सक्षम करा",
+ "ccCompatibleSummarizeThinkingDescription": "समर्थित Claude मॉडेल्सना दृश्यमान thinking deltas प्रवाहित करता यावेत म्हणून CC Compatible thinking विनंत्यांमध्ये `display: \"summarized\"` जोडते.",
+ "ccCompatibleSummarizeThinkingLabel": "सारांशित विचारांचे प्रदर्शन सक्षम करा",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "उपलब्ध असल्यास Codex विनंत्यांसाठी प्राधान्य सेवा स्तर वापरा.",
+ "codexFastServiceTierLabel": "Codex जलद सेवा स्तर",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header नावाचा प्लेसहोल्डर",
+ "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header मूल्याचा प्लेसहोल्डर",
+ "compatible": "सुसंगत",
+ "configuredCount": "कॉन्फिगर केलेली संख्या",
+ "consoleApiKeyOracleHint": "Console API Key Oracle सूचना",
+ "consoleApiKeyOracleLabel": "Console API Key Oracle लेबल",
+ "consoleApiKeyOraclePlaceholder": "कन्सोल API की Oracle प्लेसहोल्डर",
+ "newApiUserIdLabel": "New-API वापरकर्ता आयडी",
+ "newApiUserIdPlaceholder": "उदा. 12345",
+ "newApiUserIdHint": "AgentRouter चे New-Api-User हेडर मूल्य, कोटा शिल्लक मिळवण्यासाठी कन्सोल API कीसोबत वापरले जाते.",
"newApiAggregatorToggleLabel": "एग्रीगेटर गेटवे",
"newApiAggregatorToggleHint": "New-API / One-API / Sub2API समाकलन नोडसाठी संतुलन शोध सक्षम करा. डॅशबोर्ड संतुलन बॅज दर्शवेल आणि कोटा-पूर्व उड्डाण मार्गक्रमण थकलेले खाते वगळेल.",
"newApiAggregatorConsoleApiKeyHint": "संविधानकर्ता /api/user/self अंतिम बिंदूसाठी प्रणाली प्रवेश टोकन. राउटिंग API की नाही.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "नवीन-एपीआय / वन-एपीआय / सब2एपीआय संकलक सुसंगत नोडसाठी संतुलन शोध सक्षम करा",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "सानुकूल वापरकर्ता एजंटसाठी सूचना",
+ "customUserAgentLabel": "सानुकूल वापरकर्ता एजंट लेबल",
+ "databricksBaseUrlHint": "Databricks बेस URL साठी सूचना",
+ "defaultThinkingStrengthHint": "विनंतीमध्ये तर्काचा प्रयत्न निर्दिष्ट केलेला नसताना वापरले जाते.",
+ "defaultThinkingStrengthLabel": "डीफॉल्ट विचारशक्ती",
+ "deleteAllExtraApiKeys": "सर्व हटवा",
+ "excludedModelsHint": "वगळलेल्या मॉडेल्ससाठी सूचना",
+ "excludedModelsLabel": "वगळलेल्या मॉडेल्सचे लेबल",
+ "excludedModelsPlaceholder": "वगळलेल्या मॉडेल्सचा प्लेसहोल्डर",
+ "expirationBannerExpired": "कालबाह्यता बॅनर: कालबाह्य",
+ "expirationBannerExpiredDesc": "कालबाह्यता बॅनर: कालबाह्य झाल्याचे वर्णन",
+ "expirationBannerExpiringSoon": "कालबाह्यता बॅनर: लवकरच कालबाह्य होणार",
+ "expirationBannerExpiringSoonDesc": "कालबाह्यता बॅनर: लवकरच कालबाह्य होणार असल्याचे वर्णन",
+ "extraApiKeyMasked": "की {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "अतिरिक्त API कींसाठी सूचना",
+ "extraApiKeysLabel": "अतिरिक्त API कींचे लेबल",
+ "apiKeyHealthLabel": "API कीची स्थिती",
+ "apiKeyStatusActive": "सक्रिय",
+ "apiKeyStatusWarning": "चेतावणी ({count} अपयश)",
+ "apiKeyStatusInvalid": "अवैध",
+ "primaryKey": "प्राथमिक की",
+ "apiKeyInvalidAlert": "कनेक्शनमधील प्रमाणीकरण अपयशांमुळे {count} API की अवैध म्हणून चिन्हांकित केल्या आहेत: {connections}. रोटेशनमध्ये त्या वगळल्या जातील. पुनरावलोकन करण्यासाठी क्लिक करा.",
+ "apiKeyInvalidAlertTitle": "API की स्थितीचा इशारा",
+ "apiKeyWarningAlert": "कनेक्शनमधील वाढलेल्या अपयश दरामुळे {count} API की चेतावणी स्थितीत आहेत: {connections}. रोटेशनमधील समस्या टाळण्यासाठी पुनरावलोकन करा.",
+ "apiKeyWarningAlertTitle": "API की चेतावणी",
+ "googlePseInfo": "Google PSE माहिती",
"antigravityProjectIdHint": "अँटीग्रॅव्हिटी क्लाउड कोड विनंत्यांसाठी पर्यायी ओव्हरराइड. Google OAuth दरम्यान शोधलेला प्रकल्प वापरण्यासाठी रिक्त सोडा.",
"antigravityClientProfileLabel": "क्लायंट प्रोफाइल",
"antigravityClientProfileHint": "OmniRoute API ला कोणती Antigravity क्लायंट ओळख सादर करते ते निवडा.",
@@ -5861,47 +5868,47 @@
"tierFast": "फास्ट",
"antigravityProjectIdLabel": "Google क्लाउड प्रोजेक्ट आयडी",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok वेब कुकी प्लेसहोल्डर",
+ "herokuBaseUrlHint": "Heroku बेस URL साठी सूचना",
+ "hideEmail": "ईमेल लपवा",
+ "imageProviders": "प्रतिमा प्रदाते",
"videoProviders": "व्हिडिओ निर्मिती",
"embeddingRerankProviders": "एम्बेडिंग आणि रँक",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "प्रतिमांचे संक्षिप्त लेबल",
+ "llmProviders": "LLM प्रदाते",
+ "localProviderApiKeyOptionalHint": "स्थानिक प्रदात्याच्या पर्यायी API कीसाठी सूचना",
+ "localProviderBaseUrlHint": "स्थानिक प्रदात्याच्या बेस URL साठी सूचना",
+ "localProviders": "स्थानिक प्रदाते",
+ "maxConcurrentWholeNumberError": "कमाल समवर्ती पूर्णांक त्रुटी",
"m365TierLabel": "Copilot स्तर",
"m365TierHint": "हे कनेक्शन कोणते Microsoft 365 Copilot पृष्ठभाग वापरते ते निवडा. Individual हे डीफॉल्ट ग्राहक BizChat आहे; Education आणि Enterprise (work) त्यांच्या टेनंट पृष्ठभागांची निवड करतात.",
"m365TierIndividualOption": "Individual (डीफॉल्ट)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "शिक्षण",
+ "m365TierEnterpriseOption": "एंटरप्राइझ / कार्य",
"tierOverrideLabel": "स्तर ओव्हरराइड",
"tierOverrideAuto": "ऑटो (राउटिंग ठरवते)",
"tierOverrideFree": "विनामूल्य",
"tierOverrideCheap": "स्वस्त",
"tierOverridePremium": "प्रीमियम",
"tierOverrideHelpText": "OmniRoute ला मॉडेलच्या किमतीवरून अंदाज लावू देण्याऐवजी या प्रदात्याला राउटिंग स्तरावर पिन करा.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark वेब कुकी सूचना",
+ "museSparkWebCookiePlaceholder": "Muse Spark वेब कुकी प्लेसहोल्डर",
+ "oauth": "OAuth",
+ "openCliTools": "CLI साधने उघडा",
+ "openSettings": "सेटिंग्ज उघडा",
+ "openaiResponsesStoreDescription": "सुसंगत Responses API विनंत्यांना संग्रहित प्रतिसाद स्थिती कायम ठेवण्याची परवानगी द्या.",
+ "openaiResponsesStoreLabel": "OpenAI Responses संग्रह",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search सामायिक की माहिती",
+ "perplexityWebCookieHint": "Perplexity वेब कुकी सूचना",
+ "perplexityWebCookiePlaceholder": "Perplexity वेब कुकी प्लेसहोल्डर",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "रेट लिमिट ओव्हरराइड्स",
"rateLimitOverridesMaxConcurrentHint": "या कनेक्शनसाठी कमाल समवर्ती विनंत्या ओव्हरराइड. खाते-पातळीवरील मर्यादा ओव्हरराइड करते.",
"rateLimitOverridesMaxConcurrentLabel": "कमाल समवर्ती (रेट लिमिट)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "दर-मर्यादा स्लॉटसाठी विनंती अयशस्वी होण्यापूर्वी प्रतीक्षा करू शकणारा कमाल वेळ (ms). केवळ या कनेक्शनसाठी जागतिक Resilience सेटिंग अधिलिखित करते.",
+ "rateLimitOverridesMaxWaitMsLabel": "कमाल रांग प्रतीक्षा (ms)",
"rateLimitOverridesMinTimeHint": "विनंत्यांमधील किमान वेळ (ms). डीफॉल्ट रेट लिमिटर विलंब ओव्हरराइड करते.",
"rateLimitOverridesMinTimeLabel": "किमान मध्यांतर (ms)",
"rateLimitOverridesRpdHint": "या कनेक्शनसाठी दररोज कमाल विनंत्या. प्रदाता डीफॉल्ट ओव्हरराइड करते.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (टोकन्स/दिवस)",
"rateLimitOverridesTpmHint": "या कनेक्शनसाठी प्रति मिनिट कमाल टोकन्स. प्रदाता डीफॉल्ट ओव्हरराइड करते.",
"rateLimitOverridesTpmLabel": "TPM (टोकन्स/मिनिट)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
- "searchProviders": "Search Providers",
+ "refreshOauthTokenTitle": "OAuth टोकन रीफ्रेश करा",
+ "regionHint": "प्रदेश सूचना",
+ "regionLabel": "प्रदेश लेबल",
+ "removeThisKey": "ही की काढून टाका",
+ "routingTagsHint": "रूटिंग टॅग सूचना",
+ "routingTagsLabel": "रूटिंग टॅग लेबल",
+ "routingTagsPlaceholder": "रूटिंग टॅग प्लेसहोल्डर",
+ "search": "शोधा",
+ "searchEngineIdHint": "शोध इंजिन ID सूचना",
+ "searchEngineIdLabel": "शोध इंजिन ID लेबल",
+ "searchEngineIdRequired": "शोध इंजिन ID आवश्यक आहे",
+ "searchProvider": "शोध प्रदाता",
+ "searchProviderDesc": "शोध प्रदात्याचे वर्णन",
+ "searchProviders": "शोध प्रदाते",
"searchByModel": "मॉडेलनुसार शोधा…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "शोध प्रदात्यांचे शीर्षक",
+ "searxngBaseUrlHint": "SearXNG बेस URL सूचना",
+ "searxngInfo": "SearXNG माहिती",
+ "sessionCookieLabel": "सत्र कुकी लेबल",
+ "showEmail": "ईमेल दाखवा",
+ "snowflakeBaseUrlHint": "Snowflake बेस URL सूचना",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "टॅग गट सूचना",
+ "tagGroupLabel": "टॅग गट लेबल",
+ "tagGroupPlaceholder": "टॅग गट प्लेसहोल्डर",
+ "testModel": "मॉडेलची चाचणी करा",
+ "testingModel": "मॉडेलची चाचणी करत आहे",
"modelTestQuotaTooltip": "कोटा संपला — उद्या रीसेट होईल किंवा टॉप-अपची आवश्यकता आहे",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "टोकन कालबाह्य बॅज",
+ "tokenExpiredTitle": "टोकन कालबाह्य शीर्षक",
+ "tokenExpiresSoonTitle": "टोकन लवकरच कालबाह्य होईल हे शीर्षक",
+ "tokenShort": "टोकन संक्षिप्त",
+ "totalKeysRotating": "{count, plural, one {1 की रोटेट होत आहे} other {# की रोटेट होत आहेत}}",
+ "unhideModel": "मॉडेल पुन्हा दर्शवा",
+ "upstreamProxyProviders": "अपस्ट्रीम प्रॉक्सी प्रदाते",
"validationModelIdHint": "API की सत्यापित करण्यासाठी वापरले जाणारे मॉडेल. प्रदात्याचे पहिले उपलब्ध मॉडेल वापरण्यासाठी रिकामे सोडा.",
"validationModelIdLabel": "प्रमाणीकरण मॉडेल",
"validationModelIdPlaceholder": "उदा. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "तुमचे Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) किंवा OAuth access_token पेस्ट करा",
+ "webCookieProviders": "वेब कुकी प्रदाते",
+ "weeklyShort": "साप्ताहिक संक्षिप्त",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo बेस URL सूचना",
"globalCodexServiceMode": "ग्लोबल Codex सेवा मोड",
"connect": "कनेक्ट करा",
"manualApiKey": "मॅन्युअल API की",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "OS कीचेनमध्ये Zed IDE द्वारे स्टोअर केलेली AI प्रदाता क्रेडेंशियल्स (OpenAI, Anthropic, Google, Mistral, xAI) शोधा आणि त्यांना कनेक्शन्स म्हणून इम्पोर्ट करा. या मशीनवर Zed IDE इन्स्टॉल केलेले असणे आवश्यक आहे.",
"zedImportButton": "Zed कडून आयात करा",
"zedImportFailed": "Zed आयात अयशस्वी झाला",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed आयात सूचना",
+ "zedImportNetworkError": "Zed आयात नेटवर्क त्रुटी",
+ "zedImportNone": "Zed आयात नाही",
"zedImportSuccess": "{providers} प्रदाता(s) साठी Zed कडून आयात केलेले {credentials} प्रमाणपत्र(s)",
"zedImporting": "आयात करत आहे…",
"zedNoCredentials": "कीचेनमध्ये कोणतीही Zed क्रेडेंशियल्स आढळली नाहीत",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 सह 40+ मॉडेल्ससाठी सवलतीचा API प्रॉक्सी. https://freeaiapikey.com/dashboard वर तुमची API की मिळवा. बेस URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "https://freemodel.dev वर $300 विनामूल्य API क्रेडिट्स मिळवा — पेमेंट माहितीची आवश्यकता नाही. OpenAI-सुसंगत एंडपॉइंट. GPT-5.4 आणि GPT-5.5 मॉडेल्स उपलब्ध आहेत.",
"friendliai": "सर्व्हरलेस इन्फरन्ससाठी विनामूल्य टियर — क्रेडिट कार्डची आवश्यकता नाही",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio द्वारे विनामूल्य स्तर; प्रत्येक मॉडेलचे कोटे आता प्रकाशित केले जात नाहीत (AI Studio मधील कोटा पृष्ठ तपासा) — क्रेडिट कार्ड आवश्यक नाही.",
"gigachat": "API की सह GigaChat (Sber) कनेक्ट करा.",
"gitlab": "सार्वजनिक Code Suggestions API साठी GitLab वैयक्तिक ॲक्सेस टोकन. gitlab.com न वापरताना सेल्फ-होस्टेड बेस URL कॉन्फिगर करा.",
"gitlawb-gmi": "Gitlawb Opengateway डॅशबोर्डवरून तुमची API की मिळवा.",
@@ -6180,7 +6187,7 @@
"glm-cn": "API की सह GLM Coding (China) कनेक्ट करा.",
"glmt": "उच्च टोकन बजेट, थिंकिंग सक्षम आणि दीर्घ टाइमआउटसह प्रीसेट GLM प्रोफाइल.",
"getgoapi": "API की सह GoAPI कनेक्ट करा.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "विनामूल्य योजना: प्रत्येक मॉडेलसाठी मर्यादा (प्रति चॅट मॉडेल 200K टोकन/दिवस; RPM/RPD साठी console.groq.com/docs/rate-limits पहा) — कोणतीही पेमेंट पद्धत नोंदवलेली नाही.",
"haiper": "haiper.ai/haiper-api वर API की मिळवा",
"heroku": "API की सह Heroku AI कनेक्ट करा.",
"hcnsec": "api.hcnsec.cn वर API की मिळवा",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai वर API की तयार करा, नंतर ती येथे Bearer टोकन म्हणून पेस्ट करा. https://router.requesty.ai/v1 वर OpenAI-सुसंगत एंडपॉइंट आहे, ज्यामध्ये थेट /v1/models कॅटलॉग उपलब्ध आहे.",
"runwayml": "Runway व्हिडिओ निर्मिती ही टास्क-आधारित आहे. OmniRoute हे text-to-video किंवा image-to-video जॉब्स सबमिट करते, /v1/tasks/[id] पोल करते आणि पूर्ण झालेल्या व्हिडिओ आउटपुटला पुन्हा OpenAI-सारख्या /v1/videos/generations प्रतिसादात सामान्य करते.",
"sambanova": "साइनअपवर $5 मोफत क्रेडिट्स (30 दिवसांची वैधता), क्रेडिट कार्डची आवश्यकता नाही",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.cc येथे API की तयार करा, त्यानंतर ती Bearer टोकन म्हणून येथे पेस्ट करा. OpenAI-सुसंगत बेस URL: https://seekai.cc/v1.",
"sap": "मॉडेल शोध AI_API_URL वरील /v2/lm/scenarios/foundation-models/models वापरतो. चॅट विनंत्या deploymentUrl/chat/completions वापरतात आणि त्यासाठी AI-Resource-Group आवश्यक आहे.",
"sarvam": "Sarvam AI हे OpenAI-संगत आहे /v1. OmniRoute /v1/models चा शोध घेतो आणि चॅट ट्रॅफिक /v1/chat/completions कडे मार्गदर्शित करतो. मॉडेल्स भारतीय भाषांसाठी ट्यून केलेले आहेत.",
"scaleway": "नवीन खात्यांसाठी 1M मोफत टोकन्स — EU/GDPR सुसंगत (पॅरिस), Qwen3 235B आणि Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "सध्याच्या OAuth फ्लोसह Claude Code कनेक्ट करा.",
"cline": "सध्याच्या OAuth फ्लोसह Cline कनेक्ट करा.",
"cursor": "सध्याच्या OAuth फ्लोसह Cursor IDE कनेक्ट करा.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "cursor.com/dashboard/api वरील वापरकर्ता API की (crsr_...) वापरून Cursor कनेक्ट करा; IDE सत्राची आवश्यकता नाही.",
"github": "सध्याच्या OAuth फ्लोसह GitHub Copilot कनेक्ट करा.",
"gitlab-duo": "ai_features + read_user स्कोप्ससह OAuth ॲप्लिकेशन. या OmniRoute इन्स्टन्सवर GITLAB_DUO_OAUTH_CLIENT_ID आणि पर्यायीपणे GITLAB_DUO_OAUTH_CLIENT_SECRET कॉन्फिगर करा.",
"kilocode": "सध्याच्या OAuth फ्लोसह Kilo Code कनेक्ट करा.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "प्रदात्याच्या स्वतःच्या डोमेनवरून आवश्यक क्रेडेंशियल कॉपी करा. कुकीजसाठी, फक्त कुकी हेडर मूल्य कॉपी करा आणि कुकी वगळा:.",
"webSessionGuideStep3Manual": "हाताने मार्ग: ब्राउझर डेव्हलपर टूल्स उघडा (F12 → नेटवर्क), पृष्ठ ताजे करा, एक प्रमाणित विनंती उघडा, आणि विनंती हेडर्समधून कुकी हेडर मूल्य कॉपी करा — कुकी: प्रीफिक्स वगळा.",
"webSessionGuideStep4": "ते येथे पेस्ट करा आणि कनेक्शन तपासा. ते काम करणे थांबवल्यास, पुन्हा साइन इन करा आणि नवीन मूल्यासह बदला.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har फाइल आयात करा",
+ "harImportButtonBusy": "आयात करत आहे…",
+ "harImportButtonHint": "किमान एक चॅट संदेश पाठवल्यानंतर DevTools Network टॅबमधून निर्यात करा.",
+ "harImportStatusValid": "आयात केले — सुमारे {minutes}मि. वैध.",
+ "harImportStatusExpiringSoon": "आयात केले — आणखी फक्त सुमारे {minutes}मि. वैध.",
+ "harImportStatusExpired": "आयात केले, परंतु हे टोकन {minutes}मि. पूर्वीच कालबाह्य झाले — नवीन HAR निर्यात करा.",
+ "harImportStatusUnknownExpiry": "आयात केले. त्याची कालबाह्यता वाचता आली नाही.",
+ "harImportErrorNotJson": "ही फाइल वैध JSON नाही — ती खरोखर .har निर्यात आहे का?",
+ "harImportErrorNoEntries": "या HAR मध्ये कोणत्याही नेटवर्क नोंदी रेकॉर्ड केलेल्या नाहीत.",
+ "harImportErrorNoChathubUrl": "या HAR मध्ये Copilot चॅट कनेक्शन आढळले नाही. निर्यात करण्यापूर्वी m365.cloud.microsoft मध्ये किमान एक चॅट संदेश पाठवा.",
+ "harImportErrorUnparsableUrl": "चॅट कनेक्शन सापडले, परंतु त्याचा URL वाचता आला नाही.",
+ "harImportErrorMissingFields": "चॅट कनेक्शन सापडले, परंतु त्यामध्ये टोकन नव्हते.",
+ "harImportErrorReadFailed": "ती फाइल वाचता आली नाही.",
+ "harImportErrorUnknown": "त्या HAR फाइलमधून क्रेडेन्शियल काढता आले नाही.",
"webSessionSecurityHint": "याला पासवर्डप्रमाणे वागवा: ते कालबाह्य होईपर्यंत किंवा रद्द होईपर्यंत ते तुमच्या साइन-इन केलेल्या वेब खात्यात प्रवेश करू शकते.",
"webNoAuthGuideTitle": "क्रेडेंशियल आवश्यक नाही",
"webNoAuthGuideBody": "{provider} ला API की किंवा कुकीची आवश्यकता नाही. विनामूल्य वेब एंडपॉइंट वापरण्यासाठी कनेक्शन जतन करा.",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "कमांड कोड प्रमाणपत्र कालबाह्य झाले",
"commandCodeConnected": "कमांड कोड कनेक्टेड",
"commandCodeConnectionAdded": "कमांड कोड कनेक्शन जोडले गेले",
+ "clearConnectionCooldown": "कूलडाउन साफ करा",
+ "clearConnectionCooldownInProgress": "साफ करत आहे…",
+ "clearConnectionCooldownTitle": "कूलडाउन आत्ताच हटवा — अपस्ट्रीममध्ये कोटा आधीच रीफ्रेश झाला असेल तेव्हा वापरा",
"commandCodeLinkExpired": "कमांड कोड लिंक कालबाह्य झाला",
"commandCodeOpeningStudio": "कमांड कोड स्टुडिओ उघडत आहे…",
"commandCodePopupBlocked": "पॉपअप अवरोधित. कृपया पॉपअपला परवानगी द्या आणि Command Code Connect पुन्हा प्रयत्न करा.",
"commandCodeStartFailed": "कमांड कोड प्रमाणीकरण सुरू करण्यात अयशस्वी",
"connectionDeleted": "संपर्क हटवला गेला",
"connectionFallback": "संपर्क",
+ "connectionCooldownCleared": "कूलडाउन हटवला — कनेक्शन पुन्हा रूटिंगमध्ये सामील झाले",
"coolingConnectionsDescription": "ही कनेक्शन शेवटच्या विनंतीनंतर थंड होत आहेत. टाइमर संपेपर्यंत OmniRoute त्यांना वगळेल — हाताने बंद करण्याची गरज नाही.",
"coolingConnectionsTitle": "सध्या थंड करणे ({count})",
+ "failedClearConnectionCooldown": "कूलडाउन हटवण्यात अयशस्वी",
"failedDeleteAlias": "अलियास हटवण्यात अयशस्वी",
"failedDeleteConnection": "संपर्क हटवण्यात अयशस्वी",
"failedDistributeProxies": "प्रॉक्सी वितरित करण्यात अयशस्वी.",
@@ -6466,21 +6478,16 @@
"savedModelEndpointSettings": "सुरक्षित केलेल्या मॉडेल एंडपॉइंट सेटिंग्ज",
"searchByModelAria": "मॉडेलद्वारे शोधा",
"selectSupportedEndpoint": "किमान एक समर्थित एंडपॉइंट निवडा",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "हार्नेस / CLI"
},
"settings": {
- "title": "Settings",
- "general": "General",
- "security": "Security",
- "appearance": "Appearance",
- "routing": "Routing",
- "cache": "Cache",
- "resilience": "Resilience",
+ "title": "सेटिंग्ज",
+ "general": "सामान्य",
+ "security": "सुरक्षा",
+ "appearance": "स्वरूप",
+ "routing": "रूटिंग",
+ "cache": "कॅशे",
+ "resilience": "लवचिकता",
"description": "वर्णन",
"enable": "सक्षम करा",
"disable": "अक्षम करा",
@@ -6547,25 +6554,25 @@
"routingOpStatusSeparator": " ·",
"resilienceSettingsIntro": "प्रदाते अयशस्वी झाल्यावर स्वयंचलित पुन्हा प्रयत्न करा, कूलडाउन आणि फॉलबॅक.",
"aiSettingsIntro": "विचार बजेट, मॉडेल वर्तन आणि कॉम्प्रेशनसाठी AI-विशिष्ट सेटिंग्ज.",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "सिस्टम प्रॉम्प्ट",
+ "thinkingBudget": "विचार बजेट",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP प्रॉक्सी",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "प्रॉक्सी विभाग",
+ "requestBodyLimitTitle": "विनंती बॉडी मर्यादा",
+ "requestBodyLimitDescription": "विनंती बॉडी पार्स करण्यापूर्वी स्वीकारला जाणारा कमाल API पेलोड आकार. समर्पित अपलोड मार्गांसाठी त्यांची अंगभूत 100 MB मर्यादा किमान कायम राहते.",
+ "requestBodyLimitInputLabel": "विनंती बॉडीची मर्यादा MB मध्ये",
+ "requestBodyLimitEmptyError": "MB मध्ये मर्यादा प्रविष्ट करा",
+ "requestBodyLimitWholeNumberError": "पूर्णांक वापरा",
+ "requestBodyLimitMinimumError": "किमान मर्यादा {min} MB आहे",
+ "requestBodyLimitMaximumError": "कमाल मर्यादा {max} MB आहे",
+ "requestBodyLimitLoadFailed": "विनंती मर्यादा सेटिंग्ज लोड करण्यात अयशस्वी",
+ "requestBodyLimitSaveSuccess": "विनंती बॉडी मर्यादा जतन केली",
+ "requestBodyLimitSaveFailed": "विनंती बॉडी मर्यादा जतन करण्यात अयशस्वी",
+ "requestBodyLimitSaving": "जतन करत आहे...",
+ "requestBodyLimitSave": "जतन करा",
+ "requestBodyLimitCurrent": "सध्याचे: {value}",
"cacheConfigLoadFailed": "कॅश सेटिंग्ज लोड करण्यात अयशस्वी",
"cacheConfigSaveSuccess": "कॅश सेटिंग्ज जतन केल्या गेल्या",
"cacheConfigSaveFailed": "कॅश सेटिंग्ज जतन करण्यात अयशस्वी",
@@ -6579,69 +6586,69 @@
"modelCatalogCacheTtlSave": "जतन करा",
"modelCatalogCacheTtlCurrent": "सद्य: {value} मि.से.",
"mitmProxy": "MITM प्रॉक्सी",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
- "comboDefaults": "Combo Defaults",
- "fallbackChains": "Fallback Chains",
- "changePassword": "Change Password",
- "enablePassword": "Enable Password",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "pricing": "किंमत निर्धारण",
+ "storage": "स्टोरेज",
+ "policies": "धोरणे",
+ "ipFilter": "IP फिल्टर",
+ "comboDefaults": "कॉम्बो डीफॉल्ट्स",
+ "fallbackChains": "फॉलबॅक साखळ्या",
+ "changePassword": "पासवर्ड बदला",
+ "enablePassword": "पासवर्ड सक्षम करा",
+ "darkMode": "गडद मोड",
+ "lightMode": "उजळ मोड",
+ "memoryTitle": "मेमरी",
+ "memoryDesc": "सत्रांदरम्यान टिकून राहणारी संभाषणात्मक मेमरी",
+ "memoryEnabled": "मेमरी सक्षम करा",
+ "memoryEnabledDesc": "सक्षम केल्यावर, OmniRoute संबंधित मागील संदर्भ समाविष्ट करेल.",
"memoryTokenCostWarning": "सावधान: मेमरी सक्षम केल्यास, OmniRoute प्रत्येक चॅट विनंतीमध्ये पुनर्प्राप्त केलेल्या संदर्भाचे {tokens} पर्यंतचे टोकन्स इंजेक्ट करते — यामुळे टोकनचा वापर आणि खर्च वाढतो. विशिष्ट विनंतीसाठी इंजेक्शन वगळण्यासाठी, \"x-omniroute-no-memory: true\" हेडर पाठवा.",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
- "justNow": "Just now",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
- "providers": "Providers",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
- "systemTheme": "System Theme",
- "debugToggle": "Enable Debug Mode",
+ "maxTokens": "कमाल टोकन्स",
+ "retentionDays": "धारण कालावधी",
+ "recent": "अलीकडील",
+ "recentDesc": "कालानुक्रमिक विंडो",
+ "semantic": "सिमॅंटिक",
+ "semanticDesc": "व्हेक्टर शोध",
+ "hybrid": "हायब्रिड",
+ "hybridDesc": "अलीकडील + सिमॅंटिक",
+ "skillsTitle": "कौशल्ये",
+ "skillsDesc": "मॉडेल्ससाठी साधने",
+ "skillsEnabled": "कौशल्ये सक्षम करा",
+ "skillsEnabledDesc": "एजंट्सना फंक्शन्स ट्रिगर करण्याची अनुमती देते.",
+ "skillsComingSoon": "कौशल्यांचे मार्केटप्लेस लवकरच येत आहे.",
+ "memorySkillsTitle": "मेमरी आणि कौशल्ये",
+ "memorySkillsDesc": "टिकून राहणारा संदर्भ आणि क्षमता",
+ "modelsDevTitle": "मॉडेल डेटाबेस",
+ "modelsDevDesc": "models.dev वरून किंमत, क्षमता आणि तपशील स्वयंचलितपणे सिंक करा",
+ "modelsDevEnabled": "models.dev सिंक सक्षम करा",
+ "modelsDevEnabledDesc": "मुक्त-स्रोत models.dev डेटाबेसमधून मॉडेलची किंमत, क्षमता आणि तपशील मिळवा",
+ "modelsDevInterval": "सिंकचे अंतराल",
+ "syncNow": "आता सिंक करा",
+ "syncing": "सिंक होत आहे...",
+ "lastSync": "शेवटचे सिंक",
+ "never": "कधीही नाही",
+ "justNow": "आत्ताच",
+ "modelsDevStats": "सिंकची आकडेवारी",
+ "modelsDevStatsDesc": "सध्याच्या models.dev डेटाचे व्याप्तीक्षेत्र",
+ "providers": "प्रदाते",
+ "modelsWithPricing": "किंमत उपलब्ध असलेली मॉडेल्स",
+ "capabilities": "क्षमता",
+ "lastSyncCount": "मागील सिंकमधील संख्या",
+ "lastSyncFull": "शेवटचे पूर्ण सिंक",
+ "modelsDevInfo": "हे कसे कार्य करते",
+ "modelsDevInfoDesc": "models.dev हा SST/OpenCode टीमद्वारे देखरेख केला जाणारा AI मॉडेल तपशीलांचा मुक्त-स्रोत डेटाबेस आहे. तो 100+ प्रदात्यांमधील 4,000+ मॉडेल्ससाठी किंमत, क्षमता, संदर्भ मर्यादा आणि मोडॅलिटीज प्रदान करतो.",
+ "modelsDevInfoResolution": "किंमत निर्धारणाचा क्रम (सर्वोच्च प्राधान्य प्रथम):",
+ "modelsDevInfoOrder": "वापरकर्ता ओव्हरराइड → models.dev → LiteLLM → हार्डकोड केलेले डीफॉल्ट",
+ "systemTheme": "सिस्टम थीम",
+ "debugToggle": "डीबग मोड सक्षम करा",
"logToolSourcesToggle": "टूल स्रोत लॉग करा",
"logToolSourcesDescription": "टूल संख्या आणि MCP/होस्ट केलेले/क्लायंट स्रोत ब्रेकडाउनचा सारांश देणारी प्रति विनंती एक निदानात्मक लॉग लाइन जारी करा.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "मुख्यपृष्ठावर माहिती पिन करा",
"homePinnedSectionsDesc": "मुख्य पृष्ठाच्या शीर्षस्थानी कोणते विभाग पिन करायचे ते निवडा.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "प्रदात्याच्या कोटा मर्यादा",
+ "homeProviderQuotaLimitsDesc": "प्रदात्याच्या कोटाची स्थिती दर्शवणारा कंटेनर (सर्व रीफ्रेश करा बटणासह) मुख्यपृष्ठाच्या शीर्षस्थानी पिन करा.",
+ "homeQuickStart": "त्वरित प्रारंभ",
+ "homeQuickStartDesc": "मुख्यपृष्ठावर त्वरित प्रारंभ पॅनेल दाखवा.",
+ "homeProviderTopology": "प्रदाता टोपोलॉजी",
+ "homeProviderTopologyDesc": "मुख्यपृष्ठावर प्रदाता टोपोलॉजी दाखवा.",
"accountEmailVisibility": "खाते ईमेल दृश्यमानता",
"accountEmailVisibilityDesc": "प्रदाते, कॉम्बो, लॉग, कोटा आणि प्लेग्राउंड स्क्रीनवर संपूर्ण खाते ईमेल दाखवा. डीफॉल्टनुसार ते मास्क करण्यासाठी हे बंद करा.",
"comboConfigMode": "कॉम्बो कॉन्फिगरेशन मोड",
@@ -6657,89 +6664,89 @@
"providerQuotaAutoRefreshInterval": "रिफ्रेश अंतराल",
"providerQuotaAutoRefreshIntervalDesc": "कोटा व्ह्यू किती वेळाने रिफ्रेश व्हावा, सेकंदात.",
"seconds": "सेकंद",
- "sidebarVisibilityToggle": "Show Sidebar Items",
- "enableCache": "Enable Cache",
- "cacheTTL": "Cache TTL",
- "maxCacheSize": "Max Cache Size",
- "clearCache": "Clear Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
- "cacheMisses": "Cache Misses",
- "hitRate": "Hit Rate",
- "cacheEntries": "Cache Entries",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "sidebarVisibilityToggle": "साइडबारमधील घटक दाखवा",
+ "enableCache": "कॅशे सक्षम करा",
+ "cacheTTL": "कॅशे TTL",
+ "maxCacheSize": "कॅशेचा कमाल आकार",
+ "clearCache": "कॅशे साफ करा",
+ "cacheCleared": "कॅशे यशस्वीरीत्या साफ करण्यात आली",
+ "clearCacheFailed": "कॅशे साफ करण्यात अयशस्वी",
+ "cacheHits": "कॅशे हिट्स",
+ "cacheMisses": "कॅशे मिसेस",
+ "hitRate": "हिट दर",
+ "cacheEntries": "कॅशे नोंदी",
+ "cacheSettings": "कॅशे सेटिंग्ज",
+ "semanticCache": "अर्थाधारित कॅशे",
+ "maxEntries": "कमाल नोंदी",
+ "ttlMinutes": "TTL (मिनिटे)",
+ "promptCache": "प्रॉम्प्ट कॅशे",
+ "strategy": "धोरण",
+ "preserveClientCache": "क्लायंट कॅशे कायम ठेवा",
+ "enabled": "सक्षम",
"loading": "Loading...",
- "saving": "Saving...",
- "save": "Save",
- "circuitBreaker": "Circuit Breaker",
- "retryPolicy": "Retry Policy",
- "maxRetries": "Max Retries",
- "retryDelay": "Retry Delay",
- "timeoutMs": "Timeout (ms)",
- "enableSystemPrompt": "Enable System Prompt",
- "systemPromptText": "System Prompt Text",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "saving": "जतन करत आहे...",
+ "save": "जतन करा",
+ "circuitBreaker": "सर्किट ब्रेकर",
+ "retryPolicy": "पुनःप्रयत्न धोरण",
+ "maxRetries": "कमाल पुनःप्रयत्न",
+ "retryDelay": "पुनःप्रयत्न विलंब",
+ "timeoutMs": "टाइमआउट (ms)",
+ "enableSystemPrompt": "सिस्टम प्रॉम्प्ट सक्षम करा",
+ "systemPromptText": "सिस्टम प्रॉम्प्ट मजकूर",
+ "autoDisableBannedAccounts": "प्रतिबंधित खाती स्वयंचलितपणे अक्षम करा",
+ "autoDisableDescription": "प्रदाता कनेक्शननी विशिष्ट अंतिम प्रतिबंध संकेत (उदा. HTTP 403 'तुमचे खाते सत्यापित करा') दिल्यास, ती कायमस्वरूपी निष्क्रिय म्हणून चिन्हांकित करा. यामुळे ती कॉम्बो रोटेशनमधून काढली जातात.",
+ "autoDisableThreshold": "प्रतिबंध मर्यादा",
+ "autoDisableThresholdDesc": "कायमचे निष्क्रिय करण्यापूर्वी आवश्यक असलेले सलग बंदी संकेत.",
+ "autoDisableBannedScope": "स्वयं-निष्क्रियता यांना लागू करा",
+ "autoDisableBannedScopeDesc": "OmniRoute बंदीनंतरही पुन्हा प्रयत्न करत राहिल्यास, अपस्ट्रीमद्वारे लॉगिन सीट्स (सशुल्क सदस्यत्वे आणि मोफत खाती) लॉक केल्या जाऊ शकतात. सशुल्क प्रीपेड API कींना हा धोका नसतो — त्या पूलमध्येच ठेवा, जेणेकरून fill-first पुढील की वापरू शकेल.",
+ "autoDisableBannedScopeAll": "सर्व कनेक्शन्स",
+ "autoDisableBannedScopeAllDesc": "प्रीपेड API कींसह, कायमस्वरूपी बंदीचा संकेत देणारे प्रत्येक कनेक्शन निष्क्रिय करा.",
+ "autoDisableBannedScopeSubscription": "फक्त लॉगिन / सदस्यत्व खाती",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth, कुकी, सत्र आणि वेब-लॉगिन सीट्स (सशुल्क किंवा मोफत) निष्क्रिय करा. प्रीपेड API की सक्रिय राहतात, जेणेकरून रूटिंग फेलओव्हर करू शकेल.",
"customBannedSignals": "प्रतिबंधित कीवर्ड",
"customBannedSignalsDesc": "अतिरिक्त कीवर्ड जे कायमचे खाते बंदी शोधणे ट्रिगर करतात. अंगभूत कीवर्ड नेहमी लागू होतात.",
"customBannedSignalsPlaceholder": "उदा. api key revoked",
"noCustomBannedSignals": "कोणतेही सानुकूल कीवर्ड नाहीत. फक्त अंगभूत कीवर्ड सक्रिय आहेत.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "लवचिकता संरचना",
"resilienceStructureDesc": "हे पृष्ठ फक्त वर्तन कॉन्फिगर करते. थेट ब्रेकर स्थिती आरोग्य पृष्ठावर दर्शविली आहे. कॉम्बो-विशिष्ट पुन्हा प्रयत्न आणि राऊंड-रॉबिन स्लॉट नियंत्रण कॉम्बो सेटिंग्जवर राहतील.",
- "enableThinking": "Enable Thinking",
- "maxThinkingTokens": "Max Thinking Tokens",
- "enableProxy": "Enable Proxy",
+ "enableThinking": "विचार प्रक्रिया सक्षम करा",
+ "maxThinkingTokens": "विचार प्रक्रियेसाठी कमाल टोकन्स",
+ "enableProxy": "प्रॉक्सी सक्षम करा",
"perKeyProxyEnabled": "प्रति-की प्रॉक्सी असाइनमेंट सक्षम करा",
"perKeyProxyEnabledDesc": "सक्षम केल्यावर, प्रत्येक प्रदाता कनेक्शन स्वतःचे प्रॉक्सी असाइनमेंट वापरू शकते",
- "proxyUrl": "Proxy URL",
- "pricingRates": "Pricing Rates Format",
- "currentPricing": "Current Pricing Overview",
- "loadingPricing": "Loading pricing data...",
- "noPricing": "No pricing data available",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
+ "proxyUrl": "प्रॉक्सी URL",
+ "pricingRates": "किंमत दरांचे स्वरूप",
+ "currentPricing": "सध्याच्या किंमतींचा आढावा",
+ "loadingPricing": "किंमत डेटा लोड करत आहे...",
+ "noPricing": "किंमत डेटा उपलब्ध नाही",
+ "input": "इनपुट",
+ "output": "आउटपुट",
+ "cached": "कॅश केलेले",
"reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "customPricing": "Custom Pricing",
- "databaseSize": "Database Size",
- "backupDb": "Backup Database",
- "restoreDb": "Restore Database",
- "exportData": "Export Data",
- "importData": "Import Data",
- "clearData": "Clear All Data",
- "clearDataConfirm": "This will permanently delete all data. Are you sure?",
- "enableRequestLogs": "Enable Request Logs",
- "logRetention": "Log Retention",
- "ipWhitelist": "IP Whitelist",
- "ipBlacklist": "IP Blacklist",
- "addIP": "Add IP",
- "savedSuccessfully": "Settings saved successfully",
+ "cacheCreation": "कॅश निर्मिती",
+ "customPricing": "सानुकूल किंमत",
+ "databaseSize": "डेटाबेसचा आकार",
+ "backupDb": "डेटाबेसचा बॅकअप घ्या",
+ "restoreDb": "डेटाबेस पुनर्संचयित करा",
+ "exportData": "डेटा निर्यात करा",
+ "importData": "डेटा आयात करा",
+ "clearData": "सर्व डेटा साफ करा",
+ "clearDataConfirm": "यामुळे सर्व डेटा कायमचा हटवला जाईल. तुम्हाला खात्री आहे का?",
+ "enableRequestLogs": "विनंती लॉग सक्षम करा",
+ "logRetention": "लॉग जतन कालावधी",
+ "ipWhitelist": "IP श्वेतसूची",
+ "ipBlacklist": "IP काळीसूची",
+ "addIP": "IP जोडा",
+ "savedSuccessfully": "सेटिंग्ज यशस्वीरित्या जतन केल्या",
"ai": "AI",
- "advanced": "Advanced",
- "localMode": "Local Mode — All data stored on your machine",
- "settingsSectionsAria": "Settings sections",
- "switchThemes": "Switch between light and dark themes",
- "themeSelectionAria": "Theme selection",
- "themeLight": "Light",
- "themeDark": "Dark",
- "themeSystem": "System",
+ "advanced": "प्रगत",
+ "localMode": "स्थानिक मोड — सर्व डेटा तुमच्या मशीनवर संग्रहित केला जातो",
+ "settingsSectionsAria": "सेटिंग्ज विभाग",
+ "switchThemes": "फिकट आणि गडद थीममध्ये स्विच करा",
+ "themeSelectionAria": "थीम निवड",
+ "themeLight": "फिकट",
+ "themeDark": "गडद",
+ "themeSystem": "सिस्टम",
"endpointTunnelVisibility": "एंडपॉइंट बोगदा दृश्यमानता",
"endpointTunnelVisibilityDesc": "बोगद्याची स्थिती न बदलता एंडपॉइंट पृष्ठावरून बोगदा नियंत्रणे लपवा.",
"showCloudflareTunnel": "क्लाउडफ्लेअर क्विक टनेल",
@@ -6748,47 +6755,47 @@
"showTailscaleFunnelDesc": "एंडपॉइंट पृष्ठावर टेलस्केल फनेल नियंत्रणे दर्शवा.",
"showNgrokTunnel": "ngrok बोगदा",
"showNgrokTunnelDesc": "एंडपॉईंट पेजवर एनग्रोक टनेल कंट्रोल्स दाखवा.",
- "sidebarVisibility": "Hide sidebar items",
- "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter without disabling any features",
- "sidebarVisibilityHint": "Any sidebar section is hidden automatically when all of its entries are hidden",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
- "hideHealthLogs": "Hide Health Check Logs",
- "hideHealthLogsDesc": "When ON, suppress [HealthCheck] messages in server console",
- "themeAccent": "Theme color",
- "themeAccentDesc": "Choose a preset color or create your own theme with one color",
- "themeCreate": "Create theme",
- "themeCustom": "Custom theme",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "sidebarVisibility": "साइडबारमधील घटक लपवा",
+ "sidebarVisibilityDesc": "कोणतीही वैशिष्ट्ये अक्षम न करता दृश्यातील गर्दी कमी करण्यासाठी साइडबारमधील कोणतीही नेव्हिगेशन नोंद लपवा",
+ "sidebarVisibilityHint": "एखाद्या साइडबार विभागातील सर्व नोंदी लपवल्यावर तो विभाग आपोआप लपवला जातो",
+ "presetAll": "सर्व",
+ "presetAllDesc": "सर्वकाही दाखवा",
+ "presetEssentials": "अत्यावश्यक",
+ "presetEssentialsDesc": "नवशिक्यांसाठी मार्ग - प्रगत साधने शोधता येतील",
+ "presetMinimal": "किमान",
+ "presetMinimalDesc": "फक्त मुख्य पृष्ठे",
+ "presetDeveloper": "डेव्हलपर",
+ "presetDeveloperDesc": "डेव्हलपमेंट आणि प्रॉक्सी साधने",
+ "presetAdmin": "प्रशासक",
+ "presetAdminDesc": "निरीक्षण आणि लेखापरीक्षण",
+ "settingsSidebarTitle": "साइडबार सानुकूलन",
+ "settingsSidebarDesc": "साइडबारमधील कोणते घटक दाखवायचे ते निवडा. अत्यावश्यक पर्याय निवडल्यास प्रगत साधने शोधता येतात.",
+ "hideHealthLogs": "आरोग्य तपासणी लॉग लपवा",
+ "hideHealthLogsDesc": "सुरू असताना, सर्व्हर कन्सोलमधील [HealthCheck] संदेश दडपले जातात",
+ "themeAccent": "थीमचा रंग",
+ "themeAccentDesc": "पूर्वनिर्धारित रंग निवडा किंवा एका रंगासह स्वतःची थीम तयार करा",
+ "themeCreate": "थीम तयार करा",
+ "themeCustom": "सानुकूल थीम",
+ "themeBlue": "निळा",
+ "themeRed": "लाल",
+ "themeGreen": "हिरवा",
+ "themeViolet": "जांभळा",
+ "themeOrange": "नारिंगी",
+ "themeCyan": "सायन",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "ॲप्लिकेशनचे नाव आणि लोगो सानुकूलित करा",
+ "appName": "ॲप्लिकेशनचे नाव",
+ "appNameDesc": "साइडबार आणि ब्राउझर टॅबमध्ये दिसणारे नाव",
+ "customLogo": "सानुकूल लोगो URL",
+ "customLogoDesc": "तुमच्या सानुकूल लोगो प्रतिमेचा URL",
+ "uploadLogo": "लोगो अपलोड करा",
+ "resetLogo": "डीफॉल्टवर रीसेट करा",
+ "logoPreview": "पूर्वावलोकन",
+ "customFavicon": "ब्राउझर फेविकॉन",
+ "customFaviconDesc": "तुमच्या सानुकूल फेविकॉनचा URL (ब्राउझर टॅबमध्ये दिसतो)",
+ "uploadFavicon": "फेविकॉन अपलोड करा",
+ "resetFavicon": "फॅविकॉन रीसेट करा",
+ "faviconPreview": "फॅविकॉन पूर्वावलोकन",
"logoFileTooLarge": "लोगो फाइल ५००KB पेक्षा कमी असणे आवश्यक आहे",
"faviconFileTooLarge": "फॅव्हिकॉन फाइल ५०KB पेक्षा कमी असणे आवश्यक आहे",
"invalidLogoFileType": "अवैध फाइल प्रकार. कृपया PNG, JPG, SVG, GIF किंवा WebP अपलोड करा.",
@@ -6796,15 +6803,15 @@
"failedToReadFile": "फाइल वाचण्यात अयशस्वी",
"startOnLogin": "लॉगिनवर सुरू करा",
"startOnLoginDesc": "सिस्टम स्टार्टअपवर OmniRoute स्वयंचलितपणे लाँच करा आणि बॅकग्राउंड ट्रेमध्ये शांतपणे चालवा.",
- "flushCache": "Flush Cache",
- "flushing": "Flushing…",
- "size": "Size",
- "hits": "Hits",
- "evictions": "Evictions",
- "loadingCacheStats": "Loading cache stats…",
- "globalProxy": "Global Proxy",
- "globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
- "noGlobalProxy": "No global proxy configured",
+ "flushCache": "कॅशे रिकामी करा",
+ "flushing": "कॅशे रिकामी करत आहे…",
+ "size": "आकार",
+ "hits": "हिट्स",
+ "evictions": "निष्कासने",
+ "loadingCacheStats": "कॅशेची आकडेवारी लोड करत आहे…",
+ "globalProxy": "ग्लोबल प्रॉक्सी",
+ "globalProxyDesc": "सर्व API कॉल्ससाठी ग्लोबल आउटबाउंड प्रॉक्सी कॉन्फिगर करा. स्वतंत्र प्रदाते, कॉम्बोज आणि कीज हे सेटिंग ओव्हरराइड करू शकतात.",
+ "noGlobalProxy": "ग्लोबल प्रॉक्सी कॉन्फिगर केलेली नाही",
"proxyPool": "प्रॉक्सी पूल",
"freePool": "विनामूल्य पूल",
"proxyDocumentation": "प्रॉक्सी दस्तऐवजीकरण",
@@ -6892,21 +6899,21 @@
"refreshInterval": "ताजेतवाने अंतराल",
"ruleModeDescription": "नियम मोड वर्णन"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "एकत्रित आरोग्य तपासणी",
+ "bulkHealthcheckDesc": "कोणते प्रॉक्सी कार्यरत आहेत हे शोधण्यासाठी सर्व कॉन्फिगर केलेले प्रॉक्सी लक्ष्य URL वर तपासा.",
+ "healthcheckTesting": "तपासत आहे...",
+ "healthcheckAll": "सर्वांची आरोग्य तपासणी करा",
+ "healthcheckFailed": "आरोग्य तपासणी चालवण्यात अयशस्वी",
+ "healthcheckTestingAll": "सर्व प्रॉक्सींची समांतर तपासणी करत आहे...",
+ "healthcheckTotal": "एकूण",
+ "healthcheckWorking": "कार्यरत",
+ "healthcheckFailedLabel": "अयशस्वी",
+ "healthcheckStatus": "स्थिती",
+ "healthcheckProxyUrl": "प्रॉक्सी URL",
+ "healthcheckLatency": "विलंबता",
"proxyDocumentationScopeTitle": "प्रॉक्सी स्कोप रिझोल्यूशन",
"proxyDocumentationScopeDescBefore": "OmniRoute आउटबाउंड प्रॉक्सीचे प्राधान्य क्रमाने निराकरण करते:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "कॉम्बो → खाते → प्रदाता → ग्लोबल",
"proxyDocumentationScopeDescAfter": ". सर्वात विशिष्ट स्कोप जिंकतो.",
"proxyDocumentationAddTitle": "सानुकूल प्रॉक्सी जोडणे",
"proxyDocumentationAddDescBefore": "येथे जा",
@@ -6962,22 +6969,22 @@
"proxyFreePoolLoadMore": "आणखी लोड करा",
"close": "बंद करा",
"cancel": "रद्द करा",
- "globalLabel": "Global",
- "configure": "Configure",
- "globalSystemPrompt": "Global System Prompt",
- "saved": "Saved",
+ "globalLabel": "ग्लोबल",
+ "configure": "कॉन्फिगर करा",
+ "globalSystemPrompt": "ग्लोबल सिस्टम प्रॉम्प्ट",
+ "saved": "जतन केले",
"beforePromptLabel": "प्रॉम्प्टपूर्वी",
"beforePromptDesc": "एजंट/प्रदाता सिस्टम सूचनांपूर्वी समाविष्ट केले",
"beforePromptPlaceholder": "एजंट/प्रदाता प्रॉम्प्टपूर्वी समाविष्ट केलेल्या सूचना...",
"afterPromptLabel": "प्रॉम्प्टनंतर",
"afterPromptDesc": "एजंट/प्रदाता सिस्टम सूचनांनंतर समाविष्ट केले",
"afterPromptPlaceholder": "एजंट/प्रदाता प्रॉम्प्टनंतर समाविष्ट केलेल्या सूचना...",
- "chars": "{count} chars",
- "thinkingBudgetTitle": "Thinking Budget",
+ "chars": "{count} अक्षरे",
+ "thinkingBudgetTitle": "विचार बजेट",
"thinkingBudgetDesc": "Control AI reasoning token usage across all requests",
"thinkingBudgetIndependenceHint": "संकुचन, मार्गनिर्देशन, आणि टोकन-सीमा वैशिष्ट्ये प्रत्येक मोडमध्ये कार्यरत राहतात. ऑटो म्हणजे \"ऑटो-शो विचार\" नाही — हे क्लायंट विचार क्षेत्रे काढून टाकते.",
- "passthrough": "Passthrough",
- "passthroughDesc": "No changes — client controls thinking budget",
+ "passthrough": "जसेच्या तसे पाठवा",
+ "passthroughDesc": "कोणतेही बदल नाहीत — क्लायंट विचार बजेट नियंत्रित करतो",
"thinkingModePassthrough": "पॅसथ्रू",
"thinkingModePassthroughDesc": "क्लायंटचे कारण बदलू नका (प्रयत्न, सारांश, विचार ब्लॉक्स). Codex/Desktop दृश्यमान विचारांसाठी आवश्यक. डिफॉल्ट.",
"thinkingModeAuto": "ऑटो (स्ट्रीप)",
@@ -6987,36 +6994,36 @@
"thinkingModeAdaptive": "अनुकूलनीय",
"thinkingModeAdaptiveDesc": "संदेश संख्या, साधने, आणि प्रॉम्प्ट लांबीचा वापर करून मूलभूत प्रयत्नातून विचारांचा बजेट स्केल करा.",
"auto": "Auto Combo",
- "autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "custom": "Custom",
- "customDesc": "Set a fixed token budget for all requests",
- "adaptive": "Adaptive",
- "adaptiveDesc": "Scale budget based on request complexity",
- "effortNone": "None (0 tokens)",
- "effortLow": "Low (1K tokens)",
- "effortMedium": "Medium (10K tokens)",
- "effortHigh": "High (128K tokens)",
- "tokenBudget": "Token Budget",
- "tokens": "tokens",
- "baseEffortLevel": "Base Effort Level",
+ "autoDesc": "स्वयं-दुरुस्ती करणारा स्मार्ट राउटिंग पूल (कार्यक्षमतेसाठी ऑप्टिमाइझ केलेला)",
+ "custom": "सानुकूल",
+ "customDesc": "सर्व विनंत्यांसाठी निश्चित टोकन बजेट सेट करा",
+ "adaptive": "अनुकूली",
+ "adaptiveDesc": "विनंतीच्या जटिलतेनुसार बजेट समायोजित करा",
+ "effortNone": "काहीही नाही (0 टोकन्स)",
+ "effortLow": "कमी (1K टोकन)",
+ "effortMedium": "मध्यम (10K टोकन)",
+ "effortHigh": "जास्त (128K टोकन)",
+ "tokenBudget": "टोकन बजेट",
+ "tokens": "टोकन",
+ "baseEffortLevel": "मूलभूत प्रयत्न पातळी",
"adaptiveHint": "Adaptive mode scales from this base level based on message count, tool usage, and prompt length.",
- "requireLogin": "Require login",
- "requireLoginDesc": "When ON, dashboard requires password. When OFF, access without login.",
- "currentPassword": "Current Password",
- "enterCurrentPassword": "Enter current password",
- "newPassword": "New Password",
- "enterNewPassword": "Enter new password",
- "confirmPassword": "Confirm New Password",
- "confirmPasswordPlaceholder": "Confirm new password",
- "passwordsNoMatch": "Passwords do not match",
- "passwordUpdated": "Password updated successfully",
- "failedUpdatePassword": "Failed to update password",
- "errorOccurred": "An error occurred",
- "updatePassword": "Update Password",
- "setPassword": "Set Password",
- "apiEndpointProtection": "API Endpoint Protection",
- "requireAuthModels": "Require API key for /models",
- "requireAuthModelsDesc": "When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.",
+ "requireLogin": "लॉगिन आवश्यक",
+ "requireLoginDesc": "चालू असताना, डॅशबोर्डसाठी पासवर्ड आवश्यक असतो. बंद असताना, लॉगिनशिवाय प्रवेश करता येतो.",
+ "currentPassword": "सध्याचा पासवर्ड",
+ "enterCurrentPassword": "सध्याचा पासवर्ड प्रविष्ट करा",
+ "newPassword": "नवीन पासवर्ड",
+ "enterNewPassword": "नवीन पासवर्ड प्रविष्ट करा",
+ "confirmPassword": "नवीन पासवर्डची पुष्टी करा",
+ "confirmPasswordPlaceholder": "नवीन पासवर्डची पुष्टी करा",
+ "passwordsNoMatch": "पासवर्ड जुळत नाहीत",
+ "passwordUpdated": "पासवर्ड यशस्वीरित्या अद्यतनित झाला",
+ "failedUpdatePassword": "पासवर्ड अद्यतनित करण्यात अयशस्वी",
+ "errorOccurred": "एक त्रुटी आली",
+ "updatePassword": "पासवर्ड अद्यतनित करा",
+ "setPassword": "पासवर्ड सेट करा",
+ "apiEndpointProtection": "API एंडपॉइंट संरक्षण",
+ "requireAuthModels": "/models साठी API की आवश्यक करा",
+ "requireAuthModelsDesc": "चालू असताना, प्रमाणीकरण न केलेल्या विनंत्यांसाठी /v1/models एंडपॉइंट 404 परत करतो. अनधिकृत वापरकर्त्यांना मॉडेल शोधण्यापासून प्रतिबंधित करतो.",
"authModelHeading": "सक्रिय अधिकृतता मॉडेल",
"authModelClient": "क्लायंट API एंडपॉइंट्स (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) ला Bearer API की आवश्यक आहे.",
"authModelManagement": "व्यवस्थापन एंडपॉइंट्स (/dashboard, /api/*) साठी डॅशबोर्ड सत्र किंवा व्यवस्थापन क्रेडेन्शियल आवश्यक आहे.",
@@ -7025,16 +7032,16 @@
"bruteForceProtectionDesc": "थ्रॉटल आणि लॉक /api/auth/लॉगिन त्याच IP वरून वारंवार अपयशी झाल्यानंतर.",
"corsAllowedOrigins": "CORS अनुमत मूळ",
"corsAllowedOriginsDesc": "या सर्व्हरला कॉल करण्याची परवानगी असलेल्या ब्राउझरच्या उत्पत्तीची स्वल्पविरामाने विभक्त केलेली सूची. रिक्त सूची = ब्राउझरमध्ये CORS प्रवेश नाही (सर्व्हर-टू-सर्व्हर अद्याप कार्य करते). केवळ विकासासाठी CORS_ALLOW_ALL=true env var वापरा.",
- "blockedProviders": "Blocked Providers",
- "blockedProvidersDesc": "Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.",
- "providersBlocked": "{count} provider(s) blocked from /models",
- "blockProviderTitle": "Block {provider}",
- "unblockProviderTitle": "Unblock {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "blockedProviders": "ब्लॉक केलेले प्रदाते",
+ "blockedProvidersDesc": "/v1/models प्रतिसादातून विशिष्ट प्रदाते लपवा. ब्लॉक केलेले प्रदाते मॉडेल सूचींमध्ये दिसणार नाहीत.",
+ "providersBlocked": "/models मधून {count} प्रदाता ब्लॉक केले",
+ "blockProviderTitle": "{provider} ला ब्लॉक करा",
+ "unblockProviderTitle": "{provider} वरील ब्लॉक काढा",
+ "cliFingerprint": "CLI फिंगरप्रिंट जुळवणी",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "CLI फिंगरप्रिंट सक्रिय असलेले {count} प्रदाते",
+ "enableFingerprintTitle": "{provider} साठी फिंगरप्रिंट सक्षम करा",
+ "disableFingerprintTitle": "{provider} साठी फिंगरप्रिंट अक्षम करा",
"systemTransforms": "सिस्टम-ब्लॉक ट्रान्सफॉर्म पाइपलाइन",
"systemTransformsDesc": "प्रति-प्रदात्याने फॉरवर्ड करण्यापूर्वी विनंती मुख्य भागावर लागू केलेल्या ट्रान्सफॉर्म्सची पाइपलाइन ऑर्डर केली. कोणत्याही प्रदाता आयडीला समर्थन देते.",
"systemTransformsAddProvider": "प्रदाता जोडा",
@@ -7045,29 +7052,29 @@
"systemTransformsOpMoveUp": "वर हलवा",
"systemTransformsOpMoveDown": "खाली हलवा",
"systemTransformsOpDelete": "ओप हटवा",
- "routingStrategy": "Routing Strategy",
- "routingAdvancedGuideTitle": "Advanced routing guidance",
+ "routingStrategy": "रूटिंग धोरण",
+ "routingAdvancedGuideTitle": "प्रगत रूटिंग मार्गदर्शन",
"routingAdvancedGuideHint1": "Use Fill First for predictable priority, Round Robin for fairness, and P2C for latency resilience.",
"routingAdvancedGuideHint2": "If providers vary in quality/cost, start with Cost Opt for background work and Least Used for balanced wear.",
- "fillFirst": "Fill First",
- "fillFirstDesc": "Use accounts in priority order",
+ "fillFirst": "प्रथम भरा",
+ "fillFirstDesc": "प्राधान्यक्रमानुसार खाती वापरा",
"roundRobin": "Round Robin",
- "roundRobinDesc": "Cycle through all accounts",
+ "roundRobinDesc": "सर्व खाती क्रमाने वापरा",
"p2c": "P2C",
- "p2cDesc": "Pick 2 random, use the healthier one",
- "random": "Random",
- "randomDesc": "Random account each request",
- "leastUsed": "Least Used",
- "leastUsedDesc": "Pick least recently used account",
- "costOpt": "Cost Opt",
- "costOptDesc": "Prefer cheapest available account",
+ "p2cDesc": "यादृच्छिकपणे 2 निवडा आणि अधिक सक्षम असलेले वापरा",
+ "random": "यादृच्छिक",
+ "randomDesc": "प्रत्येक विनंतीसाठी यादृच्छिक खाते",
+ "leastUsed": "सर्वात कमी वापरलेले",
+ "leastUsedDesc": "सर्वात अलीकडे कमी वापरलेले खाते निवडा",
+ "costOpt": "खर्च अनुकूलन",
+ "costOptDesc": "उपलब्ध असलेल्या सर्वात स्वस्त खात्याला प्राधान्य द्या",
"resetAware": "रीसेट-अवेअर RR",
"resetAwareDesc": "निरोगी उर्वरित कोटा आणि जवळच्या रीसेटसह खात्यांना प्राधान्य द्या",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "कोटा-भारित",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "कठोर यादृच्छिक",
+ "strictRandomDesc": "डेक शफल करा — पुन्हा शफल करण्यापूर्वी प्रत्येक खाते एकदा वापरते",
+ "stickyLimit": "स्टिकी मर्यादा",
"stickyLimitDesc": "Calls per account before switching",
"routingStrategyTitle": "राउटिंग धोरण",
"routingStrategySubtitle": "9router शी जुळवा: खाते राउंड-रॉबिन, स्टिकी मर्यादा आणि कॉम्बो रोटेशन",
@@ -7085,225 +7092,225 @@
"providerAccountRoutingDesc": "या प्रदात्यासाठी ग्लोबल खाते धोरण ओव्हरराइड करा (9router पॅरिटी).",
"providerRoutingStrategy": "खाते धोरण",
"providerRoutingInheritGlobal": "ग्लोबल डीफॉल्ट इनहेरिट करा",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
- "modelAliases": "Model Aliases",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
- "addCustomAlias": "Add Custom Alias",
- "deprecatedModelId": "Deprecated model ID",
- "newModelId": "New model ID",
- "customAliases": "Custom Aliases",
- "builtInAliases": "Built-in Aliases",
- "backgroundDegradationTitle": "Background Task Degradation",
- "backgroundDegradationDesc": "Auto-detect background tasks (titles, summaries) and route to cheaper models",
- "enableDegradation": "Enable Background Degradation",
- "enableDegradationHint": "When enabled, background tasks like title generation and summarization are routed to cheaper models automatically",
- "tasksDetected": "Tasks detected",
- "degradationMap": "Model Degradation Map",
- "premiumModel": "Premium model",
- "cheapModel": "Cheap model",
- "detectionPatterns": "Detection Patterns",
- "newPattern": "e.g. \"generate a title\"",
+ "quotaPreflightTitle": "कोटा पूर्वतपासणी कटऑफ",
+ "quotaPreflightSubtitle": "विनंती अपस्ट्रीमकडे पाठवण्यापूर्वी कोटा संपलेली खाती वगळा",
+ "quotaPreflightEnable": "कोटा पूर्वतपासणी सक्षम करा",
+ "quotaPreflightEnableDesc": "प्रत्येक विनंतीपूर्वी खात्याचा उर्वरित कोटा (5h / साप्ताहिक / मासिक कालखंड) तपासा. कटऑफइतका किंवा त्याहून कमी कोटा असलेली खाती अपस्ट्रीम कॉल न करता वगळली जातात. Provider Quota पृष्ठावर सेट केलेले प्रत्येक कालखंडाचे कटऑफ येथील डीफॉल्टपेक्षा नेहमीच प्राधान्य घेतात.",
+ "quotaPreflightCutoff": "जागतिक कटऑफ (किमान उर्वरित %)",
+ "quotaPreflightCutoffDesc": "ज्या प्रत्येक कालखंडासाठी स्वतंत्र कटऑफ नाही, त्यामध्ये खात्याचा उर्वरित कोटा या टक्केवारीपर्यंत किंवा त्याहून कमी झाल्यास ते खाते वापरणे थांबवा. हे Provider Quota पृष्ठावरील उर्वरित-% पट्ट्यांशी जुळते.",
+ "quotaPreflightWindowsHint": "स्वतःचा प्रत्येक-कालखंड किंवा प्रत्येक-provider कटऑफ असलेल्या कालखंडांवर (Provider Quota पृष्ठावरील Cutoff मोडलमध्ये सेट केलेला) या डीफॉल्टचा परिणाम होत नाही.",
+ "quotaPreflightLoadFailed": "कोटा पूर्वतपासणी सेटिंग्ज लोड करता आल्या नाहीत.",
+ "modelAliases": "मॉडेल उपनावे",
+ "modelAliasesTitle": "मॉडेल उपनावे",
+ "modelAliasesDesc": "अचूक जुळण्या किंवा वाइल्डकार्ड नमुने वापरून मॉडेलची नावे पुन्हा मॅप करा.",
+ "addCustomAlias": "सानुकूल उपनाव जोडा",
+ "deprecatedModelId": "कालबाह्य मॉडेल ID",
+ "newModelId": "नवीन मॉडेल ID",
+ "customAliases": "सानुकूल उपनावे",
+ "builtInAliases": "अंगभूत उपनावे",
+ "backgroundDegradationTitle": "पार्श्वभूमी कार्य अवनती",
+ "backgroundDegradationDesc": "पार्श्वभूमी कार्ये (शीर्षके, सारांश) स्वयंचलितपणे शोधा आणि स्वस्त मॉडेलकडे रूट करा",
+ "enableDegradation": "पार्श्वभूमी अवनती सक्षम करा",
+ "enableDegradationHint": "सक्षम केल्यावर, शीर्षक निर्मिती आणि सारांशीकरण यांसारखी पार्श्वभूमी कार्ये स्वयंचलितपणे स्वस्त मॉडेलकडे रूट केली जातात",
+ "tasksDetected": "आढळलेली कार्ये",
+ "degradationMap": "मॉडेल अवनती नकाशा",
+ "premiumModel": "प्रीमियम मॉडेल",
+ "cheapModel": "स्वस्त मॉडेल",
+ "detectionPatterns": "शोध नमुने",
+ "newPattern": "उदा. \"शीर्षक तयार करा\"",
"aliasPatternPlaceholder": "claude-sonnet-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
- "pattern": "Pattern",
- "targetModel": "Target Model",
- "add": "+ Add",
- "session": "Session",
- "sessionDetailsAria": "Session details",
+ "pattern": "नमुना",
+ "targetModel": "लक्ष्य मॉडेल",
+ "add": "+ जोडा",
+ "session": "सत्र",
+ "sessionDetailsAria": "सत्र तपशील",
"status": "Status",
- "authenticated": "Authenticated",
- "guest": "Guest",
- "loginTime": "Login Time",
- "sessionAge": "Session Age",
- "browser": "Browser",
- "clearLocalData": "Clear Local Data",
- "logout": "Logout",
- "clearLocalDataConfirm": "Clear all local data? This will reset your preferences.",
- "unknown": "Unknown",
- "systemActor": "system",
- "ipAccessControl": "IP Access Control",
- "ipAccessControlDesc": "Block or allow specific IP addresses",
- "ipModeDisabled": "Disabled",
- "ipModeBlacklist": "Blacklist",
- "ipModeWhitelist": "Whitelist",
- "ipModeWhitelistPriority": "WL Priority",
- "addIpAddress": "Add IP Address",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
- "block": "+ Block",
- "allow": "+ Allow",
- "blocked": "Blocked ({count})",
- "allowed": "Allowed ({count})",
- "temporaryBans": "Temporary Bans ({count})",
- "minLeft": "{min}m left",
- "auditLog": "Audit Log",
- "searchAuditLogs": "Search audit logs...",
- "failedLoadAuditLog": "Failed to load audit log",
- "noAuditEvents": "No audit events found",
- "action": "Action",
- "actor": "Actor",
- "details": "Details",
- "time": "Time",
- "fallbackChainsTitle": "Fallback Chains",
- "fallbackChainsDesc": "Define provider fallback order per model",
- "addChain": "+ Add Chain",
- "modelName": "Model Name",
+ "authenticated": "प्रमाणित",
+ "guest": "अतिथी",
+ "loginTime": "लॉगिन वेळ",
+ "sessionAge": "सत्र कालावधी",
+ "browser": "ब्राउझर",
+ "clearLocalData": "स्थानिक डेटा साफ करा",
+ "logout": "लॉगआउट",
+ "clearLocalDataConfirm": "सर्व स्थानिक डेटा साफ करायचा? यामुळे तुमची प्राधान्ये रीसेट होतील.",
+ "unknown": "अज्ञात",
+ "systemActor": "सिस्टम",
+ "ipAccessControl": "IP प्रवेश नियंत्रण",
+ "ipAccessControlDesc": "विशिष्ट IP पत्ते ब्लॉक करा किंवा अनुमती द्या",
+ "ipModeDisabled": "अक्षम",
+ "ipModeBlacklist": "ब्लॅकलिस्ट",
+ "ipModeWhitelist": "व्हाइटलिस्ट",
+ "ipModeWhitelistPriority": "WL प्राधान्य",
+ "addIpAddress": "IP पत्ता जोडा",
+ "ipAddressPlaceholder": "192.168.1.0/24 किंवा 10.0.*.*",
+ "block": "+ ब्लॉक करा",
+ "allow": "+ अनुमती द्या",
+ "blocked": "ब्लॉक केलेले ({count})",
+ "allowed": "अनुमती दिलेले ({count})",
+ "temporaryBans": "तात्पुरत्या बंदी ({count})",
+ "minLeft": "{min} मि. शिल्लक",
+ "auditLog": "ऑडिट लॉग",
+ "searchAuditLogs": "ऑडिट लॉग शोधा...",
+ "failedLoadAuditLog": "ऑडिट लॉग लोड करण्यात अयशस्वी",
+ "noAuditEvents": "कोणत्याही ऑडिट घटना आढळल्या नाहीत",
+ "action": "कृती",
+ "actor": "कर्ता",
+ "details": "तपशील",
+ "time": "वेळ",
+ "fallbackChainsTitle": "फॉलबॅक साखळ्या",
+ "fallbackChainsDesc": "प्रत्येक मॉडेलसाठी प्रदात्यांचा फॉलबॅक क्रम निश्चित करा",
+ "addChain": "+ साखळी जोडा",
+ "modelName": "मॉडेलचे नाव",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
- "providersCommaSeparated": "Providers (comma-separated, in priority order)",
+ "providersCommaSeparated": "प्रदाते (स्वल्पविरामाने विभक्त, प्राधान्यक्रमानुसार)",
"providersCommaSeparatedPlaceholder": "anthropic, openai, gemini",
- "createChain": "Create Chain",
- "noFallbackChains": "No Fallback Chains",
- "noFallbackChainsDesc": "Create a chain to define provider fallback order for a model.",
- "loadingFallbackChains": "Loading fallback chains...",
- "deleteChainConfirm": "Delete fallback chain for \"{model}\"?",
- "chainCreated": "Chain created for {model}",
- "chainDeleted": "Chain deleted for {model}",
- "failedCreateChain": "Failed to create chain",
- "failedDeleteChain": "Failed to delete chain",
- "deleteChain": "Delete chain",
- "fillModelAndProviders": "Please fill model name and providers",
- "addAtLeastOneProvider": "Add at least one provider",
- "comboDefaultsTitle": "Combo Defaults",
- "comboDefaultsGuideTitle": "How to tune combo defaults",
- "comboDefaultsGuideHint1": "Keep retries low in low-latency flows; increase timeout only for long generation tasks.",
- "comboDefaultsGuideHint2": "Use provider overrides when one provider needs different timeout/retry behavior than global defaults.",
- "globalComboConfig": "Global combo configuration",
+ "createChain": "साखळी तयार करा",
+ "noFallbackChains": "फॉलबॅक साखळ्या नाहीत",
+ "noFallbackChainsDesc": "मॉडेलसाठी प्रदात्यांचा फॉलबॅक क्रम निश्चित करण्यासाठी साखळी तयार करा.",
+ "loadingFallbackChains": "फॉलबॅक साखळ्या लोड होत आहेत...",
+ "deleteChainConfirm": "\"{model}\" साठी फॉलबॅक साखळी हटवायची?",
+ "chainCreated": "{model} साठी साखळी तयार केली",
+ "chainDeleted": "{model} साठी साखळी हटवली",
+ "failedCreateChain": "साखळी तयार करण्यात अयशस्वी",
+ "failedDeleteChain": "साखळी हटवण्यात अयशस्वी",
+ "deleteChain": "साखळी हटवा",
+ "fillModelAndProviders": "कृपया मॉडेलचे नाव आणि प्रदाते भरा",
+ "addAtLeastOneProvider": "किमान एक प्रदाता जोडा",
+ "comboDefaultsTitle": "कॉम्बो डीफॉल्ट्स",
+ "comboDefaultsGuideTitle": "कॉम्बो डीफॉल्ट्स कसे समायोजित करावेत",
+ "comboDefaultsGuideHint1": "कमी-विलंबाच्या प्रवाहांमध्ये पुनःप्रयत्नांची संख्या कमी ठेवा; केवळ दीर्घ निर्मिती कार्यांसाठी टाइमआउट वाढवा.",
+ "comboDefaultsGuideHint2": "एखाद्या प्रदात्यासाठी जागतिक डीफॉल्ट्सपेक्षा वेगळे टाइमआउट/पुनःप्रयत्न वर्तन आवश्यक असल्यास प्रदाता ओव्हरराइड्स वापरा.",
+ "globalComboConfig": "जागतिक कॉम्बो कॉन्फिगरेशन",
"moveUp": "वर हलवा",
"moveDown": "खाली हलवा",
"allProvidersAdded": "सर्व प्रदाते जोडले",
"noProvidersFound": "कोणतेही प्रदाते आढळले नाहीत",
- "defaultStrategy": "Default Strategy",
+ "defaultStrategy": "डीफॉल्ट धोरण",
"defaultStrategyDesc": "Applied to new combos without explicit strategy",
- "comboStrategyAria": "Combo strategy",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Priority-style routing with automatic context handoffs when account rotation happens",
- "maxRetriesLabel": "Max Retries",
- "retryDelayLabel": "Retry Delay (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
- "healthCheckDesc": "Pre-check provider availability",
- "trackMetrics": "Track Metrics",
- "trackMetricsDesc": "Record per-combo request metrics",
- "providerOverrides": "Provider Overrides",
- "providerOverridesDesc": "Override timeout and retries per provider. Provider settings override global defaults.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
- "removeProviderOverrideAria": "Remove {provider} override",
+ "comboStrategyAria": "कॉम्बो धोरण",
+ "priority": "प्राधान्य",
+ "weighted": "भारित",
+ "contextRelay": "संदर्भ रिले",
+ "contextRelayDesc": "खाते रोटेशन झाल्यावर स्वयंचलित संदर्भ हस्तांतरणासह प्राधान्य-शैलीतील रूटिंग",
+ "maxRetriesLabel": "कमाल पुनःप्रयत्न",
+ "retryDelayLabel": "पुनःप्रयत्न विलंब (ms)",
+ "timeoutLabel": "टाइमआउट (ms)",
+ "healthCheck": "स्थिती तपासणी",
+ "healthCheckDesc": "प्रदात्याची उपलब्धता आधी तपासा",
+ "trackMetrics": "मेट्रिक्सचा मागोवा घ्या",
+ "trackMetricsDesc": "प्रत्येक कॉम्बोसाठी विनंती मेट्रिक्स नोंदवा",
+ "providerOverrides": "प्रदाता ओव्हरराइड्स",
+ "providerOverridesDesc": "प्रत्येक प्रदात्यासाठी टाइमआउट आणि पुनःप्रयत्न ओव्हरराइड करा. प्रदाता सेटिंग्ज जागतिक डीफॉल्ट्सना ओव्हरराइड करतात.",
+ "providerMaxRetriesAria": "{provider} कमाल पुनःप्रयत्न",
+ "providerTimeoutAria": "{provider} टाइमआउट ms",
+ "removeProviderOverrideAria": "{provider} ओव्हरराइड काढा",
"selectProviderPlaceholder": "प्रदाता निवडा...",
"searchProviderPlaceholder": "प्रदाते शोधा...",
"searchProviderAria": "प्रदाते शोधा",
- "newProviderNamePlaceholder": "e.g. google, openai...",
- "newProviderNameAria": "New provider name",
- "retries": "retries",
+ "newProviderNamePlaceholder": "उदा. google, openai...",
+ "newProviderNameAria": "नवीन प्रदात्याचे नाव",
+ "retries": "पुनःप्रयत्न",
"ms": "ms",
- "saveComboDefaults": "Save Combo Defaults",
- "maxNestingDepth": "Max Nesting Depth",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
+ "saveComboDefaults": "कॉम्बो डीफॉल्ट्स जतन करा",
+ "maxNestingDepth": "कमाल नेस्टिंग खोली",
+ "concurrencyPerModel": "समवर्तीता / मॉडेल",
+ "queueTimeout": "रांग टाइमआउट (ms)",
"queueDepth": "रांगेची खोली",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
- "providerProfiles": "Provider Profiles",
- "providerProfilesDesc": "Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
- "maxBackoffLevel": "Max Backoff Level",
- "cbThreshold": "CB Threshold",
- "cbResetTime": "CB Reset Time",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
- "defaultSafetyNet": "Default Safety Net",
+ "contextRelayHandoffThreshold": "हस्तांतरण मर्यादा",
+ "contextRelayMaxMessages": "सारांशासाठी कमाल संदेश",
+ "contextRelaySummaryModel": "सारांश मॉडेल",
+ "contextRelayProviderNote": "Context Relay सध्या Codex खात्यांसाठी हँडऑफ तयार करते आणि नवीन किंवा कॉन्फिगर न केलेल्या कॉम्बोसाठी ही मूल्ये जागतिक डीफॉल्ट म्हणून वापरते.",
+ "providerProfiles": "प्रदाता प्रोफाइल्स",
+ "providerProfilesDesc": "OAuth (सत्र-आधारित) आणि API Key (वापरानुसार शुल्क आकारले जाणारे) प्रदात्यांसाठी स्वतंत्र लवचिकता सेटिंग्ज. कमी दर मर्यादांमुळे OAuth प्रदात्यांसाठी अधिक कठोर थ्रेशोल्ड असतात.",
+ "oauthProviders": "OAuth प्रदाते",
+ "apiKeyProviders": "API Key प्रदाते",
+ "transientCooldown": "तात्पुरता कूलडाउन",
+ "rateLimitCooldown": "दर मर्यादा कूलडाउन",
+ "maxBackoffLevel": "कमाल बॅकऑफ पातळी",
+ "cbThreshold": "CB थ्रेशोल्ड",
+ "cbResetTime": "CB रीसेट वेळ",
+ "rateLimiting": "दर मर्यादा नियंत्रण",
+ "rateLimitingDesc": "API Key प्रदात्यांवर सुरक्षित डीफॉल्टसह आपोआप दर मर्यादा लागू केली जाते. प्रतिसाद हेडर्समधून मर्यादा जाणून घेतल्या जातात आणि त्या कालांतराने जुळवून घेतात.",
+ "defaultSafetyNet": "डीफॉल्ट सुरक्षा जाळे",
"rpm": "RPM",
- "minGap": "Min Gap",
- "maxConcurrent": "Max Concurrent",
- "activeLimiters": "Active Limiters",
- "noActiveLimiters": "No active rate limiters yet.",
- "reservoir": "Reservoir",
- "running": "Running",
- "queued": "Queued",
- "circuitBreakers": "Circuit Breakers",
- "breakerStateClosed": "Closed",
- "breakerStateOpen": "Open",
- "breakerStateHalfOpen": "Half-Open",
- "tripped": "{count} tripped",
- "healthy": "{count} healthy",
- "resetAll": "Reset All",
- "noCircuitBreakers": "No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.",
- "failures": "{count} failure(s)",
- "policiesLocked": "Policies & Locked Identifiers",
- "allOperational": "All systems operational — no lockouts or tripped breakers",
- "loadingPolicies": "Loading policies...",
- "lockedIdentifiers": "Locked Identifiers",
- "unlockedIdentifier": "Unlocked: {identifier}",
- "sinceDate": "since {date}",
- "forceUnlock": "Force Unlock",
- "unlocking": "Unlocking...",
- "failedUnlock": "Failed to unlock",
- "failedLoadWithStatus": "Failed to load: {status}",
- "failedLoadResilience": "Failed to load resilience status",
- "saveFailed": "Save failed",
- "resetFailed": "Reset failed",
- "loadingResilience": "Loading resilience status...",
- "retry": "Retry",
+ "minGap": "किमान अंतर",
+ "maxConcurrent": "कमाल समवर्ती",
+ "activeLimiters": "सक्रिय दर मर्यादक",
+ "noActiveLimiters": "अद्याप कोणतेही सक्रिय दर मर्यादक नाहीत.",
+ "reservoir": "साठा",
+ "running": "चालू",
+ "queued": "रांगेत",
+ "circuitBreakers": "सर्किट ब्रेकर्स",
+ "breakerStateClosed": "बंद",
+ "breakerStateOpen": "उघडे",
+ "breakerStateHalfOpen": "अर्ध-उघडे",
+ "tripped": "{count} ट्रिप झाले",
+ "healthy": "{count} सुस्थितीत",
+ "resetAll": "सर्व रीसेट करा",
+ "noCircuitBreakers": "अद्याप कोणतेही सर्किट ब्रेकर सक्रिय नाहीत. कॉम्बो पाइपलाइनमधून विनंत्या प्रवाहित झाल्यावर ते आपोआप तयार केले जातात.",
+ "failures": "{count} अपयश",
+ "policiesLocked": "धोरणे आणि लॉक केलेले आयडेंटिफायर्स",
+ "allOperational": "सर्व प्रणाली कार्यरत आहेत — कोणतेही लॉकआउट किंवा ट्रिप झालेले ब्रेकर नाहीत",
+ "loadingPolicies": "धोरणे लोड करत आहे...",
+ "lockedIdentifiers": "लॉक केलेले आयडेंटिफायर्स",
+ "unlockedIdentifier": "अनलॉक केले: {identifier}",
+ "sinceDate": "{date} पासून",
+ "forceUnlock": "सक्तीने अनलॉक करा",
+ "unlocking": "अनलॉक करत आहे...",
+ "failedUnlock": "अनलॉक करण्यात अयशस्वी",
+ "failedLoadWithStatus": "लोड करण्यात अयशस्वी: {status}",
+ "failedLoadResilience": "लवचिकता स्थिती लोड करण्यात अयशस्वी",
+ "saveFailed": "जतन करणे अयशस्वी",
+ "resetFailed": "रीसेट अयशस्वी",
+ "loadingResilience": "लवचिकता स्थिती लोड होत आहे...",
+ "retry": "पुन्हा प्रयत्न करा",
"systemStorage": "System & Storage",
- "allDataLocal": "All data stored locally on your machine",
- "databasePath": "Database Path",
+ "allDataLocal": "सर्व डेटा तुमच्या मशीनवर स्थानिकरीत्या संग्रहित केला जातो",
+ "databasePath": "डेटाबेस पथ",
"export": "निर्यात करा",
- "exportDatabase": "Export Database",
- "exportAll": "Export All (.tar.gz)",
- "importDatabase": "Import Database",
- "confirmDbImport": "Confirm Database Import",
- "confirmDbImportDesc": "This will replace all current data with the content from {file}. A backup will be created automatically before the import.",
- "yesImport": "Yes, Import",
- "lastBackup": "Last Backup",
- "noBackupYet": "No backup yet",
- "backupNow": "Backup Now",
- "backupRestore": "Backup & Restore",
- "viewBackups": "View Backups",
- "hide": "Hide",
- "backupRetentionDesc": "Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.",
- "loadingBackups": "Loading backups...",
- "noBackupsYet": "No backups available yet. Backups will be created automatically when data changes.",
- "backupsAvailable": "{count} backup(s) available",
- "refresh": "Refresh",
- "confirm": "Confirm?",
- "yes": "Yes",
- "no": "No",
- "restore": "Restore",
- "invalidFileType": "Invalid file type. Only .sqlite files are accepted.",
- "exportFailed": "Export failed",
- "exportFailedWithError": "Export failed: {error}",
- "fullExportFailedWithError": "Full export failed: {error}",
- "backupCreated": "Backup created: {file}",
- "restoreSuccess": "Restored! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "importSuccess": "Database imported! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "minutesAgo": "{count}m ago",
- "hoursAgo": "{count}h ago",
- "daysAgo": "{count}d ago",
- "backupReasonManual": "manual",
- "backupReasonPreRestore": "pre-restore",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
- "noChangesSinceBackup": "No changes since last backup",
- "backupFailed": "Backup failed",
- "restoreFailed": "Restore failed",
- "importFailed": "Import failed",
- "errorDuringRestore": "An error occurred during restore",
- "errorDuringImport": "An error occurred during import",
- "modelPricing": "Model Pricing",
- "modelPricingDesc": "Configure cost rates per model • All rates in $/1M tokens",
+ "exportDatabase": "डेटाबेस निर्यात करा",
+ "exportAll": "सर्व निर्यात करा (.tar.gz)",
+ "importDatabase": "डेटाबेस आयात करा",
+ "confirmDbImport": "डेटाबेस आयातीची पुष्टी करा",
+ "confirmDbImportDesc": "यामुळे सध्याचा सर्व डेटा {file} मधील सामग्रीने बदलला जाईल. आयात करण्यापूर्वी बॅकअप आपोआप तयार केला जाईल.",
+ "yesImport": "होय, आयात करा",
+ "lastBackup": "शेवटचा बॅकअप",
+ "noBackupYet": "अद्याप बॅकअप नाही",
+ "backupNow": "आता बॅकअप घ्या",
+ "backupRestore": "बॅकअप आणि पुनर्संचयित करा",
+ "viewBackups": "बॅकअप पहा",
+ "hide": "लपवा",
+ "backupRetentionDesc": "पुनर्संचयित करण्यापूर्वी आणि डेटामध्ये बदल झाल्यावर दर 15 मिनिटांनी डेटाबेस स्नॅपशॉट आपोआप तयार केले जातात. धारणा: स्मार्ट रोटेशनसह 24 तासिक + 30 दैनिक बॅकअप.",
+ "loadingBackups": "बॅकअप लोड होत आहेत...",
+ "noBackupsYet": "अद्याप कोणतेही बॅकअप उपलब्ध नाहीत. डेटामध्ये बदल झाल्यावर बॅकअप आपोआप तयार केले जातील.",
+ "backupsAvailable": "{count} बॅकअप उपलब्ध",
+ "refresh": "रिफ्रेश करा",
+ "confirm": "पुष्टी करायची?",
+ "yes": "होय",
+ "no": "नाही",
+ "restore": "पुनर्संचयित करा",
+ "invalidFileType": "अवैध फाइल प्रकार. फक्त .sqlite फाइल स्वीकारल्या जातात.",
+ "exportFailed": "निर्यात अयशस्वी",
+ "exportFailedWithError": "निर्यात अयशस्वी: {error}",
+ "fullExportFailedWithError": "संपूर्ण निर्यात अयशस्वी: {error}",
+ "backupCreated": "बॅकअप तयार केला: {file}",
+ "restoreSuccess": "पुनर्संचयित झाले! {connections} कनेक्शन, {nodes} नोड्स, {combos} कॉम्बो, {apiKeys} API की.",
+ "importSuccess": "डेटाबेस आयात झाला! {connections} कनेक्शन, {nodes} नोड्स, {combos} कॉम्बो, {apiKeys} API की.",
+ "minutesAgo": "{count} मि. पूर्वी",
+ "hoursAgo": "{count} ता. पूर्वी",
+ "daysAgo": "{count} दि. पूर्वी",
+ "backupReasonManual": "मॅन्युअल",
+ "backupReasonPreRestore": "पुनर्संचयित करण्यापूर्वी",
+ "connectionsCount": "{count, plural, one {# कनेक्शन} other {# कनेक्शन्स}}",
+ "noChangesSinceBackup": "शेवटच्या बॅकअपनंतर कोणतेही बदल नाहीत",
+ "backupFailed": "बॅकअप अयशस्वी झाला",
+ "restoreFailed": "पुनर्संचयित करणे अयशस्वी झाले",
+ "importFailed": "आयात अयशस्वी झाली",
+ "errorDuringRestore": "पुनर्संचयित करताना त्रुटी आली",
+ "errorDuringImport": "आयात करताना त्रुटी आली",
+ "modelPricing": "मॉडेल किंमत",
+ "modelPricingDesc": "प्रत्येक मॉडेलसाठी खर्चाचे दर कॉन्फिगर करा • सर्व दर $/1M टोकन्समध्ये",
"pricingCoverage": "कव्हरेज",
"pricingAuth": "प्रमाणीकरण",
"pricingSort": "क्रमवारी लावा",
@@ -7325,7 +7332,7 @@
"configured": "कॉन्फिगर केलेले",
"none": "काहीही नाही",
"modelOverrideValuePlaceholder": "संख्यात्मक मूल्य",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "स्वल्पविरामाने विभक्त केलेले इंग्रजी शब्द, उदा. low, medium, high",
"addKeyValue": "की व्हॅल्यू जोडा",
"noModelOverrides": "या मॉडेलसाठी कोणतेही ओव्हरराइड्स कॉन्फिगर केलेले नाहीत.",
"modelOverrideLoadFailed": "मॉडेल ओव्हरराइड्स लोड करण्यात अयशस्वी",
@@ -7333,66 +7340,66 @@
"modelOverrideRemoved": "मॉडेल ओव्हरराइड काढून टाकले",
"modelOverrideSaveFailed": "मॉडेल ओव्हरराइड सेव्ह करण्यात अयशस्वी",
"modelOverrideRemoveFailed": "मॉडेल ओव्हरराइड काढून टाकण्यात अयशस्वी",
- "registry": "Registry",
- "priced": "Priced",
- "searchProvidersModels": "Search providers or models...",
- "showAll": "Show All",
- "noProvidersMatch": "No providers match your search.",
- "howPricingWorks": "How Pricing Works",
- "cacheWrite": "Cache Write",
- "unsaved": "unsaved",
+ "registry": "रेजिस्ट्री",
+ "priced": "किंमत निर्धारित",
+ "searchProvidersModels": "प्रदाते किंवा मॉडेल्स शोधा...",
+ "showAll": "सर्व दाखवा",
+ "noProvidersMatch": "तुमच्या शोधाशी कोणताही प्रदाता जुळत नाही.",
+ "howPricingWorks": "किंमत कशी कार्य करते",
+ "cacheWrite": "कॅश लेखन",
+ "unsaved": "जतन न केलेले",
"resetDefaults": "डिफॉल्ट रीसेट करा",
- "saveProvider": "Save Provider",
+ "saveProvider": "प्रदाता जतन करा",
"model": "Model",
- "models": "models",
- "moreProviders": "{count} more providers",
- "withPricing": "with pricing configured",
- "policiesCircuitBreakers": "Policies & Circuit Breakers",
- "activeIssuesDetected": "Active issues detected",
- "off": "Off",
- "resetPricingConfirm": "Reset all pricing for {provider} to defaults?",
- "pricingDescInput": "Input: tokens sent to the model",
- "pricingDescOutput": "Output: tokens generated",
- "pricingDescCached": "Cached: reused input (~50% of input rate)",
- "pricingDescReasoning": "Reasoning: thinking tokens (falls back to Output)",
- "pricingDescCacheWrite": "Cache Write: creating cache entries (falls back to Input)",
- "pricingDescFormula": "Cost = (input × input_rate) + (output × output_rate) + (cached × cached_rate) per million tokens.",
- "pricingSettingsTitle": "Pricing Settings",
- "totalModels": "Total Models",
- "active": "Active",
- "costCalculation": "Cost Calculation",
- "costCalculationDesc": "Costs are calculated based on token usage and pricing rates configured for each model.",
- "pricingFormat": "Pricing Format",
- "pricingFormatDesc": "All rates are in $/1M tokens (dollars per million tokens).",
- "tokenTypes": "Token Types",
- "inputTokenDesc": "Standard prompt tokens",
- "outputTokenDesc": "Completion/response tokens",
- "cachedTokenDesc": "Cached input tokens (typically 50% of input rate)",
- "reasoningTokenDesc": "Special reasoning/thinking tokens (fallback to output rate)",
- "cacheCreationTokenDesc": "Tokens used to create cache entries (fallback to input rate)",
- "customPricingNote": "You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.",
- "editPricing": "Edit Pricing",
- "viewFullDetails": "View Full Details",
+ "models": "मॉडेल्स",
+ "moreProviders": "आणखी {count} प्रदाते",
+ "withPricing": "यांच्यासाठी किंमत कॉन्फिगर केली आहे",
+ "policiesCircuitBreakers": "धोरणे आणि सर्किट ब्रेकर्स",
+ "activeIssuesDetected": "सक्रिय समस्या आढळल्या",
+ "off": "बंद",
+ "resetPricingConfirm": "{provider} साठी सर्व किंमती डीफॉल्टवर रीसेट करायच्या?",
+ "pricingDescInput": "इनपुट: मॉडेलला पाठवलेले टोकन्स",
+ "pricingDescOutput": "आउटपुट: व्युत्पन्न केलेले टोकन्स",
+ "pricingDescCached": "कॅश केलेले: पुन्हा वापरलेले इनपुट (इनपुट दराच्या ~50%)",
+ "pricingDescReasoning": "तर्क: विचार प्रक्रियेतील टोकन्स (उपलब्ध नसल्यास आउटपुट दर वापरला जातो)",
+ "pricingDescCacheWrite": "कॅश लेखन: कॅश नोंदी तयार करणे (उपलब्ध नसल्यास इनपुट दर वापरला जातो)",
+ "pricingDescFormula": "खर्च = (input × input_rate) + (output × output_rate) + (cached × cached_rate), प्रति दशलक्ष टोकन्स.",
+ "pricingSettingsTitle": "किंमत सेटिंग्ज",
+ "totalModels": "एकूण मॉडेल्स",
+ "active": "सक्रिय",
+ "costCalculation": "खर्चाची गणना",
+ "costCalculationDesc": "टोकनचा वापर आणि प्रत्येक मॉडेलसाठी कॉन्फिगर केलेले किंमत दर यांच्या आधारे खर्चाची गणना केली जाते.",
+ "pricingFormat": "किंमत स्वरूप",
+ "pricingFormatDesc": "सर्व दर $/1M टोकन्समध्ये आहेत (प्रति दशलक्ष टोकन्ससाठी डॉलर).",
+ "tokenTypes": "टोकनचे प्रकार",
+ "inputTokenDesc": "मानक प्रॉम्प्ट टोकन्स",
+ "outputTokenDesc": "पूर्णता/प्रतिसाद टोकन्स",
+ "cachedTokenDesc": "कॅश केलेले इनपुट टोकन्स (सामान्यतः इनपुट दराच्या 50%)",
+ "reasoningTokenDesc": "विशेष तर्क/विचार टोकन्स (पर्याय म्हणून आउटपुट दर)",
+ "cacheCreationTokenDesc": "कॅश नोंदी तयार करण्यासाठी वापरलेले टोकन्स (पर्याय म्हणून इनपुट दर)",
+ "customPricingNote": "तुम्ही विशिष्ट मॉडेल्ससाठी डीफॉल्ट किंमत बदलू शकता. सानुकूल बदलांना स्वयं-शोधलेल्या किंमतीपेक्षा प्राधान्य दिले जाते.",
+ "editPricing": "किंमत संपादित करा",
+ "viewFullDetails": "संपूर्ण तपशील पहा",
"themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "अनुकूलनीय व्हॉल्यूम रूटिंग",
+ "adaptiveVolumeRoutingDesc": "पेलोडचे प्रमाण आणि थ्रूपुटचा ताण यांनुसार कनेक्शन्स गतिशीलपणे स्केल करा.",
+ "lkgpToggleTitle": "शेवटचा ज्ञात चांगला प्रदाता (LKGP)",
+ "lkgpToggleDesc": "सक्षम केल्यावर, राउटर शेवटचा यशस्वी प्रतिसाद कोणत्या प्रदात्याने दिला होता हे लक्षात ठेवतो आणि पुढील विनंत्यांमध्ये प्रथम त्याच प्रदात्याचा प्रयत्न करतो.",
"echoRequestedModelTitle": "प्रतिसादांमध्ये विनंती केलेले मॉडेल नाव इको करा",
"echoRequestedModelDesc": "सक्षम केल्यावर, रिस्पॉन्स `model` फील्ड अपस्ट्रीम मॉडेल नावाऐवजी क्लायंटने विनंती केलेले अलियास किंवा कॉम्बो नाव इको करते. ज्यांचा मॉडेल विनंतीशी जुळत नाही असा रिस्पॉन्स नाकारणाऱ्या स्ट्रिक्ट क्लायंट्सच्या (उदा. Claude Desktop) समस्यांचे हे निवारण करते.",
"webSearchRouteTitle": "वेब सर्च राउटिंग",
"webSearchRouteDesc": "जेव्हा विनंतीमध्ये मूळ web_search टूल समाविष्ट असते, तेव्हा डीफॉल्टऐवजी संपूर्ण विनंती या मॉडेलकडे राउट करा — Anthropic चे web_search सर्व्हर टूल लागू न करणाऱ्या प्रोव्हायडर्ससाठी उपयुक्त. अक्षम करण्यासाठी रिक्त ठेवा.",
"webSearchRoutePlaceholder": "उदा. openrouter,anthropic/claude-3.5-sonnet",
"paidModelPatternWarning": "हा पॅटर्न केवळ सशुल्क मॉडेल्सशी जुळतो — सशुल्क मॉडेल्स सक्षम करा किंवा पॅटर्न समायोजित करा.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP कॅश साफ करा",
+ "lkgpCacheCleared": "LKGP कॅश यशस्वीरित्या साफ केली",
+ "lkgpCacheClearFailed": "LKGP कॅश साफ करण्यात अयशस्वी",
+ "days": "दिवस",
+ "lkgp": "LKGP मोड",
+ "lkgpDesc": "शेवटचा ज्ञात चांगला प्रदाता (अंदाज करता येण्याजोगी लवचिकता)",
+ "maintenance": "देखभाल",
+ "purgeExpiredLogs": "कालबाह्य लॉग्स हटवा",
+ "purgeLogsFailed": "लॉग्स हटवण्यात अयशस्वी",
"logsDeleted": "{count, plural, =0 {कोणतेही कालबाह्य लॉग हटवले नाहीत} one {# कालबाह्य झालेला लॉग हटवला} other {# कालबाह्य झालेले लॉग हटवले}}",
"resetUsageData": "वापर डेटा रीसेट करा",
"resetUsageDataDesc": "तुम्हाला वापर, विनंती लॉग्स आणि ॲनालिटिक्स डेटा किती जुना हटवायचा आहे ते निवडा. प्रोव्हायडर कॉन्फिगरेशन, कनेक्शन्स, API कीज, कॉम्बोज आणि सेटिंग्ज जतन केल्या जातात. ही कृती पूर्ववत केली जाऊ शकत नाही.",
@@ -7409,63 +7416,63 @@
"resetUsageFailed": "वापर डेटा रीसेट करण्यात अयशस्वी",
"reset": "रीसेट करा",
"resetting": "रीसेट करत आहे...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
- "clearSyncedPricingConfirm": "Clear all synced pricing data? Provider defaults will be used instead.",
- "clearSyncedPricingFailed": "Failed to clear synced pricing",
- "pricingSourceUser": "User Override",
- "pageDescription": "Manage application settings, model aliases, pricing, and routing rules",
- "pricingSyncStatus": "Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
- "pricingLoadFailed": "Failed to load pricing data",
- "pricingSyncDescription": "Automatically sync model pricing from external sources to keep cost calculations accurate",
- "clearSyncedPricingSuccess": "Synced pricing data cleared",
- "clearSyncedPricingFailedWithReason": "Failed to clear pricing: {reason}",
- "pricingSourceDefault": "Built-in Default",
- "pricingSyncSuccess": "Pricing synced successfully",
- "enableSyncError": "Failed to toggle pricing sync",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "contextOpt": "संदर्भासाठी अनुकूलित",
+ "contextOptDesc": "संदर्भ विंडोच्या आवश्यकता आणि संभाषणाच्या लांबीवर आधारित रूट करते",
+ "cacheOpt": "कॅशसाठी अनुकूलित",
+ "cacheOptDesc": "समान पुनर्वापरयोग्य प्रॉम्प्ट उपसर्ग त्याच प्रदाता खात्यावर ठेवतो",
+ "priorityDesc": "क्रमिक फॉलबॅक - प्रथम प्रदाता 1, नंतर प्रदाता 2 आणि त्यानंतर क्रमाने प्रयत्न करतो",
+ "weightedDesc": "प्रदात्यांमध्ये टक्केवारी वजनांनुसार ट्रॅफिक वितरित करते",
+ "modelRoutingTitle": "मॉडेल रूटिंग नियम",
+ "modelRoutingDesc": "ग्लॉब पॅटर्न्स वापरून मॉडेल्सना विशिष्ट कॉम्बोंकडे स्वयंचलितपणे रूट करा",
+ "addRule": "नियम जोडा",
+ "routeToCombo": "कॉम्बोकडे रूट करा",
+ "selectCombo": "कॉम्बो निवडा...",
+ "priorityHint": "जास्त मूल्य = आधी तपासले जाते. विशिष्ट पॅटर्न्ससाठी 10+ वापरा.",
+ "patternHint": "कोणत्याही अक्षरांसाठी * आणि एका अक्षरासाठी ? वापरा. अक्षरांच्या आकाराबाबत असंवेदनशील.",
+ "noRoutingRules": "कोणतेही रूटिंग नियम कॉन्फिगर केलेले नाहीत. डीफॉल्टनुसार विनंत्या जागतिक कॉम्बो वापरतात.",
+ "routingRuleHint": "विनंत्या स्वयंचलितपणे रूट करण्यासाठी claude-opus* -> frontier-combo सारखा नियम जोडा.",
+ "deleteRoutingRule": "हा मॉडेल रूटिंग नियम हटवायचा?",
+ "exactMatchMode": "अचूक जुळणी",
+ "wildcardPatternMode": "वाइल्डकार्ड पॅटर्न",
+ "exactMatchModeDesc": "कालबाह्य किंवा पुनर्नामित केलेल्या मॉडेल ID साठी तंतोतंत उपनावे वापरा.",
+ "wildcardPatternModeDesc": "मॉडेलचे कुटुंब एका लक्ष्याशी मॅप करायचे असल्यास * आणि ? असलेली वाइल्डकार्ड उपनावे वापरा.",
+ "noExactAliasesConfigured": "कोणतीही तंतोतंत-जुळणारी उपनावे कॉन्फिगर केलेली नाहीत.",
+ "wildcardRulesTitle": "वाइल्डकार्ड नियम",
+ "noWildcardAliasesConfigured": "कोणतीही वाइल्डकार्ड उपनावे कॉन्फिगर केलेली नाहीत.",
+ "overview": "आढावा",
+ "unknownError": "अज्ञात त्रुटी",
+ "pricingSourceLiteLLM": "LiteLLM (समुदाय)",
+ "clearSyncedPricingConfirm": "सिंक केलेला सर्व किंमत डेटा साफ करायचा? त्याऐवजी प्रदात्याची डीफॉल्ट मूल्ये वापरली जातील.",
+ "clearSyncedPricingFailed": "सिंक केलेला किंमत डेटा साफ करण्यात अयशस्वी",
+ "pricingSourceUser": "वापरकर्ता अधिलिखित मूल्य",
+ "pageDescription": "ॲप्लिकेशन सेटिंग्ज, मॉडेल उपनावे, किंमत आणि राउटिंग नियम व्यवस्थापित करा",
+ "pricingSyncStatus": "सिंक स्थिती",
+ "whitelist": "अनुमतसूची",
+ "syncDisabled": "सिंक अक्षम",
+ "pricingLoadFailed": "किंमत डेटा लोड करण्यात अयशस्वी",
+ "pricingSyncDescription": "खर्चाची गणना अचूक ठेवण्यासाठी बाह्य स्रोतांमधून मॉडेलच्या किंमती आपोआप सिंक करा",
+ "clearSyncedPricingSuccess": "सिंक केलेला किंमत डेटा साफ केला",
+ "clearSyncedPricingFailedWithReason": "किंमत साफ करण्यात अयशस्वी: {reason}",
+ "pricingSourceDefault": "अंगभूत डीफॉल्ट",
+ "pricingSyncSuccess": "किंमत यशस्वीपणे सिंक केली",
+ "enableSyncError": "किंमत सिंक टॉगल करण्यात अयशस्वी",
+ "syncEnabled": "सिंक सक्षम",
+ "blacklist": "प्रतिबंधसूची",
"pricingSourceModelsDev": "Models.dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
- "pricingSyncTitle": "Pricing Sync",
- "pricingResetFailedWithReason": "Failed to reset pricing: {reason}",
- "tab": "Tab",
- "pricingSavedProvider": "Pricing saved for {provider}",
- "pricingSyncFailed": "Pricing sync failed",
- "pricingSaveFailedWithReason": "Failed to save pricing: {reason}",
- "pricingResetProvider": "Pricing reset for {provider}",
- "nextSync": "Next Sync",
- "pricingSyncFailedWithReason": "Pricing sync failed: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "syncedModels": "सिंक केलेली मॉडेल्स",
+ "budget": "अर्थसंकल्प",
+ "pricingSyncTitle": "किंमत सिंक",
+ "pricingResetFailedWithReason": "किंमत रीसेट करण्यात अयशस्वी: {reason}",
+ "tab": "टॅब",
+ "pricingSavedProvider": "{provider} साठी किंमत जतन केली",
+ "pricingSyncFailed": "किंमत सिंक अयशस्वी",
+ "pricingSaveFailedWithReason": "किंमत जतन करण्यात अयशस्वी: {reason}",
+ "pricingResetProvider": "{provider} साठी किंमत रीसेट केली",
+ "nextSync": "पुढील सिंक",
+ "pricingSyncFailedWithReason": "किंमत सिंक अयशस्वी: {reason}",
+ "clearSyncedPricing": "सिंक केलेली किंमत साफ करा",
+ "compressionTitle": "प्रॉम्प्ट संक्षेपण",
+ "compressionDesc": "प्रदात्यांना पाठवण्यापूर्वी प्रॉम्प्ट संक्षिप्त करून टोकनचा वापर कमी करा",
"compressionGuidanceFullGuideLink": "संपूर्ण कॉम्प्रेशन मार्गदर्शिका",
"compressionGuidanceShow": "तपशील",
"compressionGuidanceHide": "तपशील लपवा",
@@ -7481,13 +7488,13 @@
"tokenSaverInputCompressionDesc": "कोड, URLs आणि हेतू जतन करून पात्र चॅट इतिहास पुन्हा लिहा.",
"tokenSaverFineTunePrefix": "प्रत्येक इंजिन यावर फाइन-ट्यून करा",
"tokenSaverFineTuneSuffix": "किंवा प्रति विनंती इंजिन यावर एकत्र करा",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
+ "compressionMode": "संक्षेपण मोड",
+ "compressionModeOff": "बंद",
+ "compressionModeOffDesc": "कोणतेही संक्षेपण लागू केलेले नाही",
+ "compressionModeLite": "हलके",
+ "compressionModeLiteDesc": "व्हाइटस्पेस आणि रिकाम्या ओळी कमी करणे",
+ "compressionModeStandard": "मानक (Caveman)",
+ "compressionModeStandardDesc": "30+ नमुन्यांसह नियम-आधारित संक्षेपण; कोड ब्लॉक्स आणि URLs जतन करते",
"compressionModeAggressive": "आक्रमक",
"compressionModeAggressiveDesc": "जास्तीत जास्त बचतीसाठी सारांश + साधन परिणाम कॉम्प्रेशन + प्रगतीशील वृद्धत्व",
"compressionModeUltra": "अल्ट्रा",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "प्रत्येक वृद्धत्व स्तरावर ठेवलेल्या अलीकडील संदेशांची संख्या (उच्च = अधिक संरक्षित)",
"compressionToolStrategies": "साधन परिणाम धोरणे",
"compressionToolStrategiesDesc": "विविध साधन परिणाम प्रकारांसाठी कॉम्प्रेशन धोरण टॉगल करा",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "सामान्य सेटिंग्ज",
+ "compressionAutoTrigger": "स्वयं-ट्रिगर मर्यादा",
+ "compressionCacheTTL": "कॅशे TTL",
+ "compressionPreserveSystem": "सिस्टम प्रॉम्प्ट जतन करा",
"compressionPreserveSystemAlways": "नेहमी",
"compressionPreserveSystemWhenNoCache": "जेव्हा कॅशे नसेल",
"compressionPreserveSystemNever": "कधीही नाही",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "सुरक्षित केलेले",
"compressionExclusionsCount": "{count, plural, one {# वगळणे} other {# वगळण्या}} कॉन्फिगर केलेले",
"compressionExclusionsEmpty": "कोणतीही वगळणी कॉन्फिगर केलेली नाही — प्रत्येक मॉडेल/एंडपॉइंट संकुचनासाठी पात्र आहे (डीफॉल्ट वर्तन).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman इंजिन कॉन्फिगरेशन",
+ "compressionCavemanConfigDesc": "नियम-आधारित संक्षेपण इंजिनचे सूक्ष्म समायोजन करा",
"compressionCavemanPanelHint": "त्याचे चालू/बंद आणि स्तर पॅनेलमध्ये सेट केले जातात:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "संदेश भूमिका संक्षेपित करा",
+ "compressionRoleUser": "वापरकर्ता",
+ "compressionRoleAssistant": "सहाय्यक",
+ "compressionRoleSystem": "सिस्टम",
+ "compressionMinLength": "किमान संदेश लांबी",
+ "compressionSkipRules": "संक्षेपण नियम वगळा",
+ "compressionSkipRulesDesc": "संक्षेपणादरम्यान नियम वगळण्यासाठी त्यांवर क्लिक करा",
+ "compressionPreservePatterns": "नमुने जतन करा",
+ "compressionPreservePatternsDesc": "कधीही संक्षेपित न केले जाणारे Regex नमुने (प्रत्येक ओळीत एक)",
+ "compressionLogTitle": "संक्षेपण लॉग",
+ "compressionLogEmpty": "अद्याप कोणत्याही विनंत्या संक्षेपित केलेल्या नाहीत. संक्षेपण सक्षम असताना विनंत्यांवर प्रक्रिया झाल्यानंतर संक्षेपणाची आकडेवारी येथे दिसेल.",
"minutes": "मिनिटे",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "कमांड-जागरूक टूल आउटपुट फिल्टरिंग",
+ "compressionModeCodexResponses": "Responses टूल आउटपुट",
+ "compressionModeCodexResponsesDesc": "पात्र shell, patch, search, build आणि JSON आउटपुटसाठी मर्यादित संक्षेपण",
+ "compressionModeStacked": "स्टॅक केलेले",
+ "compressionModeStackedDesc": "RTK टूल-आउटपुट फिल्टरिंगनंतर Caveman संदेश संक्षेपण",
+ "qdrantTitle": "Qdrant (व्हेक्टर मेमरी)",
+ "qdrantDesc": "पर्यायी. जलद पुनर्प्राप्तीसाठी बाह्य व्हेक्टर डेटाबेसमध्ये अर्थाधारित स्मृती अनुक्रमित करते.",
+ "qdrantStatusActive": "सक्रिय",
+ "qdrantStatusError": "त्रुटी",
+ "qdrantStatusDisabled": "अक्षम",
+ "qdrantEnable": "Qdrant सक्षम करा",
+ "qdrantEnableDesc": "सक्षम केल्यावर, अर्थाधारित/हायब्रिड रणनीती स्मृती पुनर्प्राप्त करण्यासाठी Qdrant वापरू शकते.",
+ "qdrantTesting": "चाचणी सुरू आहे...",
+ "qdrantTestConnection": "कनेक्शनची चाचणी करा",
+ "qdrantSaved": "कॉन्फिगरेशन जतन केले",
+ "qdrantSaveError": "कॉन्फिगरेशन जतन करण्यात अयशस्वी",
+ "qdrantHostHint": "पोर्टशिवाय. उदाहरण: 127.0.0.1 किंवा http://qdrant",
+ "qdrantPort": "पोर्ट",
+ "qdrantPortHint": "Qdrant डीफॉल्ट: 6333",
+ "qdrantCollectionHint": "मेमरी पॉइंट्स जिथे संग्रहित केले जातील.",
+ "qdrantEmbeddingModel": "एम्बेडिंग मॉडेल",
+ "qdrantHelpTitle": "द्रुत सेटअप मदत",
+ "qdrantHelpQuickTitle": "द्रुत सेटअप (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. होस्ट: Qdrant IP/URL, पोर्ट: 6333, कलेक्शन: omniroute_memory.",
+ "qdrantHelpStep2": "2. nvidia/llama-nemotron-embed-vl-1b-v2:free वापरत असल्यास, कलेक्शन डायमेन्शन 2048 वापरा.",
+ "qdrantHelpStep3": "3. मॉडेल फील्ड: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. सेव्ह करा, कनेक्शन तपासा आणि नंतर शोध तपासा.",
+ "qdrantEmbeddingQuickSelect": "शोधलेल्या मॉडेल्समधून द्रुत निवड करा...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "स्वरूप: provider/model. प्रदात्याचे क्रेडेन्शियल कॉन्फिगर केलेले असणे आवश्यक आहे.",
+ "qdrantApiKeyPlaceholderKeep": "(सध्याची की कायम ठेवण्यासाठी रिकामे सोडा)",
+ "qdrantApiKeyPlaceholderOptional": "(वापरात नसल्यास रिकामे सोडा)",
+ "qdrantSaveHint": "टीप: होस्ट/पोर्ट/कलेक्शन/मॉडेल संपादित करा आणि सेव्ह क्लिक करा. API की ऐच्छिक आहे.",
+ "qdrantSearchTestTitle": "शोध चाचणी",
+ "qdrantSearchTestDesc": "एम्बेडिंग तयार करते आणि Qdrant मध्ये शोधते.",
+ "qdrantSearchPlaceholder": "उदाहरण: वापरकर्ता प्राधान्ये, इतिहास इ.",
+ "qdrantNoResults": "कोणतेही परिणाम नाहीत (किंवा Qdrant कॉन्फिगर केलेले नाही).",
+ "qdrantCleanupTitle": "धारण आणि साफसफाई",
+ "qdrantCleanupDesc": "यावर आधारित कालबाह्य आणि जुने पॉइंट्स काढून टाकते",
+ "searching": "शोध सुरू आहे...",
+ "cleaning": "साफसफाई सुरू आहे...",
+ "cleanNow": "आता साफ करा",
"optional": "ऐच्छिक",
"current": "चालू",
"remove": "काढा",
@@ -7596,19 +7603,19 @@
"resilienceScope": "व्याप्ती:",
"resilienceTrigger": "ट्रिगर:",
"resilienceEffect": "प्रभाव:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "विनंती रांग आणि दर",
+ "resilienceAutoEnableApiKeyProviders": "API-की प्रदात्यांसाठी स्वयं-सक्षम करा",
+ "resilienceRequestsPerMinute": "प्रति मिनिट विनंत्या",
+ "resilienceMinTimeBetweenRequests": "विनंत्यांमधील किमान वेळ",
+ "resilienceConcurrentRequests": "समवर्ती विनंत्या",
+ "resilienceConnectionScopeConcurrentRequests": "प्रति कनेक्शन/कोटा व्याप्ती समवर्ती विनंत्या",
+ "resilienceGlobalConcurrentRequests": "जागतिक समवर्ती अपस्ट्रीम विनंत्या (0 = अक्षम)",
"resilienceMaxQueueWaitTime": "कमाल रांगेत प्रतीक्षा वेळ",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "मूलभूत कूलडाउन",
+ "resilienceUseUpstreamRetryHints": "अपस्ट्रीम पुनर्प्रयत्न संकेत वापरा",
+ "resilienceDefaultPerProvider": "डीफॉल्ट (प्रति प्रदाता)",
+ "resilienceAlwaysOn": "नेहमी सुरू",
+ "resilienceAlwaysOff": "नेहमी बंद",
"routingRemoveEntry": "एंट्री काढा",
"routingNeedlesSubstrings": "सुया (जुळण्यासाठी सबस्ट्रिंग्स)",
"routingCaseSensitive": "केस संवेदनशील",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "काढलेले वर्णन मूळ विनंतीमध्ये परत इंजेक्ट करण्यापूर्वी व्हिजन मॉडेलला पाठवले जाते.",
"visionBridgeTimeoutMs": "कालबाह्य (ms)",
"visionBridgeMaxImagesPerRequest": "प्रति विनंती कमाल प्रतिमा",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "कमाल बॅकऑफ टप्पे",
+ "resilienceProviderBreakerTitle": "प्रति प्रदाता सर्किट ब्रेकर",
+ "resilienceFailureThreshold": "अपयश मर्यादा",
+ "resilienceDegradationThreshold": "कार्यक्षमता घट मर्यादा",
"resilienceResetTimeout": "टाइमआउट रीसेट करा",
"resilienceFailureThresholdLabel": "अयशस्वी थ्रेशोल्ड",
"resilienceResetTimeoutLabel": "टाइमआउट रीसेट करा",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "कनेक्शन कूलडाउन",
"resilienceUseUpstreamRetryHintsLabel": "अपस्ट्रीम पुन्हा प्रयत्न करण्याच्या सूचना वापरा",
"resilienceUseUpstream429BreakerLabel": "अपस्ट्रीम 429 इशारे वापरा (ब्रेकर)",
"resilienceMaxBackoffStepsLabel": "कमाल बॅकऑफ पावले",
"resilienceYes": "होय",
"resilienceNo": "नाही",
- "resilienceDefault": "Default",
+ "resilienceDefault": "डीफॉल्ट",
"storageDatabaseBackupRetention": "डेटाबेस बॅकअप धारणा",
"storageDatabaseBackups": "डेटाबेस बॅकअप्स",
"storageBackupRetentionDescription": "स्वयंचलित SQLite बॅकअप्स येथे साठवले जातात",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "लेगसी JSON यशस्वीरीत्या आयात केले!",
"jsonImportFailed": "JSON आयात करण्यात अयशस्वी",
"jsonImportError": "JSON आयात करताना त्रुटी आली",
+ "jsonImportAuthRequired": "जुने JSON कॉन्फिगरेशन आयात करण्यासाठी प्रमाणीकरण आवश्यक आहे. कृपया साइन इन करा किंवा प्रथम सेटअप पूर्ण करा.",
+ "databaseSettingsAuthRequiredTitle": "प्रमाणीकरण आवश्यक",
+ "databaseSettingsAuthRequiredBody": "डेटाबेस सेटिंग्ज आणि JSON आयात फक्त प्रमाणित अॅडमिनसाठी उपलब्ध आहेत. त्या पाहण्यासाठी आणि संपादित करण्यासाठी साइन इन करा किंवा सेटअप पूर्ण करा.",
+ "databaseSettingsAuthRequiredCta": "साइन इन करा",
"storagePurgeData": "डेटा शुद्ध करा",
"storagePurgeDataDesc": "रिटेंशन तपासण्या लागू न करता सर्व रेकॉर्ड त्वरित हटवा. सावधगिरीने वापरा.",
"storageRetentionCleanup": "रिटेंशन सेटिंग्ज",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "मोड: {mode}",
"compressionAdaptiveOff": "अॅडॉप्टिव्ह संदर्भ बजेट: बंद (लेगसी ऑटो-ट्रिगर)",
"compressionAdaptiveTarget": "अॅडॉप्टिव्ह ({mode}, पॉलिसी: {policy}) — लक्ष्य ≈ {target, number} टोकन्स ({contextLimit, number}-टोकन विंडोसाठी)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "अनुकूलनीय संदर्भ बजेट",
+ "compressionAdaptiveModeOff": "बंद (जुना ऑटो-ट्रिगर)",
+ "compressionAdaptiveModeFloor": "किमान मर्यादा (नेहमी समावेशाची खात्री करा)",
+ "compressionAdaptiveModeReplace": "ऑटो-ट्रिगर बदला",
+ "compressionAdaptivePolicy": "बजेट धोरण",
+ "compressionAdaptivePolicyReserve": "आउटपुटसाठी राखीव ठेवा",
+ "compressionAdaptivePolicyPercentage": "विंडोची टक्केवारी",
+ "compressionAdaptivePolicyAbsolute": "निश्चित टोकन बजेट",
"compressionOutputStylesDescription": "प्रोव्हाइडर आउटपुट पुन्हा न लिहिता रिस्पॉन्स-शेपिंग सूचना इंजेक्ट करा. मुक्तपणे एकत्र करा.",
"mcpAccessibilityDescription": "MCP टूल आउटपुटची व्याप्ती ठरवते (स्वतंत्र स्टोअर).",
"compressionStylesTileSummary": "{tokens, number} टोकन्स वाचवले · {runs, plural, one {# रन स्टाईल केला} other {# रन्स स्टाईल केले}}",
@@ -7862,8 +7873,8 @@
"description": "कमांड-आउटपुट फिल्टरिंग."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses टूल आउटपुट",
+ "description": "समर्थित Responses टूल आउटपुटसाठी सावध संक्षेपण."
},
"headroom": {
"label": "हेडरूम",
@@ -7904,12 +7915,12 @@
"description": "YAGNI शिडी: सर्वात लहान कार्यरत बदल, कोणतीही न मागितलेली ॲब्स्ट्रॅक्शन्स नाहीत."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (आळशी वरिष्ठ डेव्हलपर)",
+ "description": "आळशी वरिष्ठ-डेव्हलपरची शिस्त: YAGNI पायरी-पायरीने वापरा, मूळ कारण दुरुस्त करा, कार्य करणारा सर्वात लहान फरक ठेवा."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "मला ADHD आहे (कृती-प्रथम)",
+ "description": "कृती-प्रथम आउटपुट: पुढील कृती आधी, क्रमांकित पायऱ्या, एक ठोस पुढील पाऊल, प्रस्तावना नाही."
},
"terse-cjk": {
"label": "संक्षिप्त CJK (文言)",
@@ -7926,7 +7937,15 @@
"memorySkillsActiveSkillsProvider": "सक्रिय कौशल्य प्रदाता",
"cliproxyapiFallback": "CLIProxyAPI फॉलबॅक",
"cliproxyapiEnableFallback": "CLIProxyAPI फॉलबॅक सक्षम करा",
- "cliproxyapiUrl": "CLIProxyAPI URL",
+ "cliproxyapiUrl": "CLIProxyAPI यूआरएल",
+ "headroomProxyTitle": "हेडरूम प्रॉक्सी",
+ "headroomProxyDesc": "पर्यायी Headroom टोकन-बचत प्रॉक्सीचा URL. रिकामे ठेवल्यास HEADROOM_URL किंवा http://localhost:8787 वापरला जातो.",
+ "headroomProxyUrl": "Headroom यूआरएल",
+ "headroomProxyUrlHint": "लूपबॅक URL या पृष्ठावरून सुरू करता येतात. बाह्य URL ची फक्त तपासणी केली जाते.",
+ "headroomProxySave": "जतन करा",
+ "headroomProxyStart": "सुरू करा",
+ "headroomProxyStop": "थांबवा",
+ "headroomProxyExternalHint": "हा URL लूपबॅक नाही, त्यामुळे OmniRoute स्थानिक CLI सुरू करणार नाही.",
"cliproxyapiStatus": "CLIProxyAPI स्थिती",
"cliproxyapiNotDetected": "आढळले नाही",
"cliproxyapiImportAuthTitle": "CLIProxyAPI मधून खाती आयात करा",
@@ -7934,11 +7953,11 @@
"cliproxyapiImportAuthButton": "खाती आयात करा",
"payloadRulesTitle": "पेलोड नियम",
"payloadRulesDesc": "मॉडेल आणि प्रोटोकॉलनुसार विनंती पेलोड म्यूटेशन्स कॉन्फिगर करा. बदल सेटिंग्जमध्ये सेव्ह केले जातात आणि सेव्ह केल्यानंतर लगेच रनटाइममध्ये हॉट रीलोड केले जातात.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "डीफॉल्ट",
"payloadRuleDefaultDesc": "जेव्हा आउटगोइंग पेलोडमधून लक्ष्य पाथ गहाळ असतो तेव्हाच पॅरामीटर्स लागू करतो.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "ओव्हरराइड",
"payloadRuleOverrideDesc": "पेलोडवर व्हॅल्यूज सक्तीने लागू करतो, त्या पाथवर आधीपासून असलेल्या कोणत्याही गोष्टीला बदलतो.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "फिल्टर",
"payloadRuleFilterDesc": "अपस्ट्रीम विनंती पाठवण्यापूर्वी पेलोडमधून ब्लॉक केलेले पॅरामीटर्स काढून टाकतो.",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "default प्रमाणेच, परंतु शक्य असेल तेव्हा स्ट्रिंग व्हॅल्यूज प्रथम JSON म्हणून पार्स केल्या जातात. सेव्ह करताना जुना इनपुट अलाईस default-raw देखील स्वीकारला जातो.",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "OpenAI कोडेक्स विनंत्यांसाठी जागतिक स्तरावर service_tier=प्राधान्य इंजेक्ट करा.",
"codexFastTierHint": "सक्षम केल्यावर, OmniRoute आधीपासून टियर निर्दिष्ट करत नसलेल्या कनेक्शनसाठी आउटबाउंड कोडेक्स विनंत्यांना service_tier=priority जोडते. प्राधान्य श्रेणीसाठी OpenAI Enterprise API की किंवा ChatGPT-auth Codex पथ आवश्यक आहे; इतर प्रमुख प्रकारांना OpenAI कडून टियर-संबंधित त्रुटी प्राप्त होईल. कोडेक्स प्रदाता पृष्ठावरील प्रति-कनेक्शन सेटिंग्ज प्राधान्य घेतात.",
"codexFastTierSaveError": "कोडेक्स फास्ट टियर सेटिंग अपडेट करण्यात अयशस्वी",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex कोटा ऑटो-पिंग",
+ "codexAutoPingDesc": "प्रत्येक कनेक्शनसाठी निवडून सक्षम करा: Codex सत्राची विंडो रीसेट झाल्यानंतर लगेच एक छोटी विनंती पाठवते, जेणेकरून गरज पडल्यावर ते कोल्ड नसते.",
+ "codexAutoPingWarning": "प्रत्येक पिंगसाठी वास्तविक Codex कोट्याची थोडी मात्रा वापरली जाते. डीफॉल्टनुसार बंद — तुम्ही सक्रियपणे अवलंबून असलेल्या कनेक्शनसाठीच सक्षम करा.",
+ "codexAutoPingSaveError": "Codex Auto-Ping सेटिंग अपडेट करण्यात अयशस्वी",
+ "codexAutoPingToggleAria": "{connection} साठी Codex कोटा ऑटो-पिंग टॉगल करा",
"codexFastTierTierLabel": "सेवा स्तर",
"codexFastTierTierPriority": "प्राधान्य",
"codexFastTierTierFlex": "फ्लेक्स",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "जागतिक तपासणी अंतराल",
"resilienceCredentialHealthEveryMinutes": "दर {minutes} मिनिटे",
"resilienceCredentialHealthHint": "0 पार्श्वभूमी स्कॅन बंद करतो (कमाल 1440 मिनिटे = 24 तास). स्वतःचे आरोग्य तपासणी मूल्य असलेली कनेक्शन हे जागतिक डीफॉल्ट दुर्लक्षित करतात; एखाद्या कनेक्शनवर 0 ते जागतिक स्कॅन चालू असतानाही वगळते.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "{provider} साठी नेहमी सक्षम — OAuth खात्याच्या सुरक्षिततेसाठी आवश्यक; बंद करता येत नाही.",
+ "forcedFingerprintBadge": "आवश्यक",
"sessionAffinityTitle": "सत्र एफिनिटी",
"sessionAffinityDesc": "कोणत्याही प्रदात्यासाठी, एकाच खात्यावर इतक्या सेकंदांसाठी एक संभाषण ठेवते. 0 हे अक्षम करते.",
"sessionAffinityTtl": "एफिनिटी TTL (सेकंद)",
@@ -8161,7 +8180,7 @@
"cloudflareRelayModalTitle": "Cloudflare Worker Relay डिप्लॉय करा",
"cloudflareRelayWarning": "एक Cloudflare Worker डिप्लॉय करते जे Cloudflare च्या एज नेटवर्कद्वारे LLM विनंत्या प्रॉक्सी करते — डायनॅमिक Cloudflare पत्त्यांमागे होस्ट IP लपवते. Worker एक-वेळचे ऑथ सिक्रेट लागू करतो जेणेकरून सार्वजनिक workers.dev URL चा ओपन रिले म्हणून पुन्हा वापर केला जाऊ शकत नाही.",
"cloudflareRelayTokenHowto": "My Profile -> API Tokens -> Create Token -> Custom Token -> Account / Workers Scripts / Edit अंतर्गत API टोकन तयार करा.",
- "cloudflareRelayAccountIdLabel": "Cloudflare Account ID",
+ "cloudflareRelayAccountIdLabel": "Cloudflare खाते ID",
"cloudflareRelayAccountIdHint": "Cloudflare डॅशबोर्ड ओव्हरव्ह्यू पेजच्या उजव्या बाजूला आढळते.",
"cloudflareRelayApiTokenLabel": "Cloudflare API टोकन",
"cloudflareRelayApiTokenHint": "'Workers Scripts: Edit' परवानगी आवश्यक आहे. टोकन फक्त डिप्लॉयमेंटच्या वेळी वापरले जाते आणि कधीही साठवले जात नाही.",
@@ -8183,33 +8202,33 @@
"removeErrorCode": "{code} काढा",
"addErrorCode": "त्रुटी कोड जोडा...",
"suggestions": "सुझाव:",
- "modelLockoutMaxCooldownHint": "≥ Base Cooldown — 3,600,000ms",
+ "modelLockoutMaxCooldownHint": "≥ बेस कूलडाउन — 3,600,000ms",
"modelLockoutEnabled": "मॉडेल लॉकआउट सक्षम करा",
"modelLockoutEnabledDescription": "सक्षम केल्यावर, रीट्राय लूप टाळण्यासाठी कॉन्फिगर केलेल्या त्रुटी कोडसह अपयशी ठरणारे मॉडेल तात्पुरते लॉक केले जातात.",
"modelLockoutErrorCodes": "त्रुटी कोड",
"modelLockoutErrorCodesDescription": "HTTP स्टेटस कोड जे मॉडेल लॉकआउट ट्रिगर करतात. कोड टाईप करा आणि 'जोडा' वर क्लिक करा, किंवा सुचवलेल्यांमधून निवडा.",
- "modelLockoutBaseCooldown": "Base Cooldown (ms)",
+ "modelLockoutBaseCooldown": "बेस कूलडाउन (ms)",
"modelLockoutBaseCooldownDescription": "मॉडेलचा पुन्हा प्रयत्न करण्यापूर्वी मिलिसेकंदमधील सुरुवातीचा कूलडाउन कालावधी.",
- "modelLockoutMaxCooldown": "Max Cooldown (ms)",
+ "modelLockoutMaxCooldown": "कमाल कूलडाउन (ms)",
"modelLockoutMaxCooldownDescription": "मिलिसेकंदमधील कमाल कूलडाउन कालावधी. जास्त काळ लॉकआउट होण्यापासून रोखतो.",
"modelLockoutExponentialBackoff": "एक्स्पोनेन्शियल बॅकऑफ",
"modelLockoutExponentialBackoffDescription": "सक्षम केल्यावर, प्रत्येक लागोपाठच्या अपयशामुळे कूलडाउन कालावधी वेगाने वाढतो.",
- "modelLockoutMaxBackoffSteps": "Max Backoff Steps",
+ "modelLockoutMaxBackoffSteps": "कमाल बॅकऑफ टप्पे",
"modelLockoutMaxBackoffStepsDescription": "कूलडाउन वाढणे थांबण्यापूर्वी बॅकऑफ पायऱ्यांची कमाल संख्या. बर्याच कॉन्फिगरेशनमध्ये Max Cooldown मर्यादा आधी गाठली जाते, ज्यामुळे Max Cooldown वाढवल्यास ही एक सुरक्षा मर्यादा बनते.",
"disableSessionStickiness": "सेशन स्टिकिनेस अक्षम करा",
"disableSessionStickinessDesc": "राउंड-रॉबिन आणि रँडम कॉम्बोज पहिल्या-मेसेज हॅशद्वारे संपूर्ण संभाषण एका कनेक्शनवर पिन करण्याऐवजी प्रत्येक विनंतीवर वेगळ्या कनेक्शनवर रोटेट होतात. मल्टी-टर्न चॅट्ससाठी प्रॉम्प्ट-कॅशे हिट्स जतन करण्यासाठी हे बंद ठेवा. प्रति-कॉम्बो ओव्हरराइड्सना प्राधान्य दिले जाईल.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "प्रॉम्प्ट-कॅश लोकॅलिटी राउटिंग",
+ "promptCacheAffinityDesc": "आरोग्य आणि कोटा फेलओव्हर कायम ठेवत, जुळणाऱ्या प्रॉम्प्ट-कॅश कींसाठी त्याच प्रदाता खात्याला प्राधान्य द्या.",
+ "reasoningTokenBuffer": "रीझनिंग टोकन बफर",
+ "reasoningTokenBufferDesc": "संपूर्ण बफर ज्ञात आउटपुट मर्यादेत बसत असेल, तर केवळ ज्ञात रीझनिंग मॉडेल्ससाठी कॉम्बो राउटिंगला max_tokens हेडरूम जोडण्याची अनुमती द्या.",
+ "zeroLatencyOptimizations": "शून्य-विलंब ऑप्टिमायझेशन्स",
+ "zeroLatencyOptimizationsDesc": "हेजिंग, प्रेडिक्टिव्ह TTFT स्किप्स आणि प्रोॲक्टिव्ह फॉलबॅक कॉम्प्रेशनसाठी निवडून सक्षम करा. या विलंब वैशिष्ट्यांनी लक्ष्यांशी स्पर्धा करू नये किंवा फॉलबॅक विनंत्या कॉम्प्रेस करू नयेत यासाठी हे बंद ठेवा.",
"credentialRedaction": "क्रेडेन्शियल रिडॅक्शन",
"credentialRedactionDesc": "प्रदात्यांना पाठवलेल्या संदर्भातून आणि प्रतिसादांमधून API की, टोकन आणि सिक्रेट्स रिडॅक्ट करा.",
"enableCredentialRedaction": "क्रेडेंशियल रिडॅक्शन सक्षम करा",
"enableCredentialRedactionDesc": "मेसेज, टूल कॉल्स आणि प्रतिसादांमधून API की, टोकन्स, प्रायव्हेट की आणि JWTs काढून टाकते.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "स्वयंचलित सिंक बंद",
+ "pricingAutoSyncEnabled": "स्वयंचलित सिंक सुरू",
"modalityBridgeIntro": "मल्टिमोडल सामग्री केवळ-मजकूर मॉडेलपर्यंत पोहोचण्यापूर्वी मजकूरात रूपांतरित करा. व्हिजन, ऑडिओ आणि व्हिडिओ ब्रिज उपलब्ध व कॉन्फिगर करता येतात.",
"modalityBridgeVisionTab": "दृष्टी",
"modalityBridgeAudioTab": "ऑडिओ",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "आरोग्य",
"cliproxyapiPort": "पोर्ट",
"qdrantHost": "होस्ट",
- "qdrantCollection": "संग्रह",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "संग्रह"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "RTK इंजिन",
+ "description": "टूल आउटपुट, टर्मिनल लॉग्स आणि बिल्ड परिणामांसाठी कमांड-जागरूक कॉम्प्रेशन.",
+ "enabled": "सक्षम",
+ "intensity": "तीव्रता",
+ "intensityMinimal": "किमान",
+ "intensityStandard": "मानक",
+ "intensityAggressive": "आक्रमक",
+ "toolResults": "टूल परिणाम",
+ "assistantMessages": "असिस्टंट संदेश",
+ "codeBlocks": "कोड ब्लॉक्स",
"filterCatalog": "फिल्टर कॅटलॉग",
"filterCatalogDesc": "श्रेणीनुसार उपलब्ध आउटपुट फिल्टर",
"guidedConfig": "कॉन्फिगरेशन",
"guidedConfigDesc": "RTK तुमचे टर्मिनल आउटपुट कसे फिल्टर करते ते समायोजित करा",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "कमाल ओळी",
+ "maxChars": "कमाल वर्ण",
"deduplicateThreshold": "डुप्लिकेट थ्रेशोल्ड",
"customFilters": "सानुकूल फिल्टर",
"detectedType": "शोधलेला प्रकार",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "अपयश",
"rawOutputAlways": "नेहमी",
"rawOutputMaxBytes": "कच्चे आउटपुट कमाल बाइट्स",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "फिल्टर चाचणी",
+ "pasteOutput": "फिल्टरिंगची चाचणी घेण्यासाठी टूल आउटपुट पेस्ट करा...",
"presetHigh": "आक्रमक",
"presetLow": "प्रकाश",
"presetMaxChars": "कमाल आउटपुट वर्ण",
"presetMaxLines": "कमाल आउटपुट ओळी",
"presetMedium": "मानक",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "चालवा",
+ "result": "परिणाम",
+ "previewEmpty": "RTK आउटपुटचे पूर्वावलोकन करण्यासाठी नमुना चालवा.",
+ "detected": "आढळले",
"masterSwitchOffAlert": "टोकन सेव्हर मास्टर स्विच बंद आहे — तुम्ही एंडपॉइंट पेजवरून ते सुरू करेपर्यंत हे सेटिंग्ज विनंत्यांवर परिणाम करणार नाहीत.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "फिल्टर केलेले टोकन्स",
+ "filtersActive": "सक्रिय फिल्टर्स",
+ "requests": "विनंत्या",
+ "avgSavings": "सरासरी बचत",
"simpleMode": "साधे",
"advancedMode": "प्रगत",
"searchFilters": "फिल्टर शोधा...",
@@ -8495,7 +8506,7 @@
"description": "स्पष्ट रो-काउंट मार्कर्ससह एकसमान JSON ॲरेचे लॉसलेस टॅब्युलर कॉम्पॅक्शन."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "सत्र डीडुप्लिकेशन",
"description": "रिकव्हरेबल कंटेंट मार्कर्ससह क्रॉस-टर्न ब्लॉक डीडुप्लिकेशन."
},
"ccr": {
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "कॉम्प्रेशन कॉम्बो",
+ "description": "वेगवेगळ्या रूटिंग परिस्थितींसाठी इंजिने कशी एकत्र केली जातात ते निश्चित करा.",
+ "createCombo": "कॉम्प्रेशन कॉम्बो तयार करा",
+ "editCombo": "संपादित करा",
+ "deleteCombo": "हटवा",
+ "deleteConfirm": "हा कॉम्प्रेशन कॉम्बो हटवायचा?",
+ "pipeline": "पाइपलाइन",
+ "addStep": "चरण जोडा",
+ "removeStep": "काढून टाका",
+ "name": "नाव",
+ "descriptionField": "वर्णन",
+ "languagePacks": "भाषा पॅक",
+ "outputMode": "आउटपुट मोड",
+ "assignToRouting": "रूटिंग कॉम्बोंना नियुक्त करा",
+ "noAssignments": "कोणतेही रूटिंग कॉम्बो उपलब्ध नाहीत",
+ "default": "डीफॉल्ट",
+ "setAsDefault": "डीफॉल्ट म्हणून सेट करा",
+ "save": "जतन करा",
+ "cancel": "रद्द करा",
+ "enabled": "सक्षम",
"loading": "लोड होत आहे...",
"hubTitle": "कॉम्प्रेशन हब",
"hubDescription": "कोणते कॉम्प्रेशन प्रोफाइल जागतिक स्तरावर चालेल ते निवडते.",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "सध्या फक्त Claude (Anthropic) साठी उपलब्ध आहे. हा एक डेलिगेटेड मोड आहे: प्रोव्हाइडर सर्व्हर-साइडवरील जुने tool-use ब्लॉक्स साफ करतो — आम्ही संदेश पुन्हा लिहीत नाही. याचा इतर प्रोव्हाइडर्सवर परिणाम होत नाही.",
"namedCombos": "नामित कॉम्बोज",
"namedCombosDescription": "वेगवेगळ्या पाइपलाइन्स सेव्ह करा आणि त्या विशिष्ट राउटिंग कॉम्बोजना नियुक्त करा.",
+ "activeProfileMasterSwitchOffWarning": "मास्टर \"Prompt Compression\" स्विच चालू करेपर्यंत खालील सक्रिय प्रोफाइल कार्यान्वित होणार नाही.",
+ "activeProfileMasterSwitchOffCta": "Settings मध्ये ते चालू करा",
"comboNamePlaceholder": "कॉम्बोचे नाव",
"descriptionPlaceholder": "वर्णन",
"nameRequired": "सेव्ह करण्यापूर्वी कॉम्बोचे नाव प्रविष्ट करा.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "भाषा पॅक्स: {packs}",
"dragToReorder": "पायरीचा क्रम बदलण्यासाठी ड्रॅग करा",
"engine": "इंजिन",
- "intensity": "तीव्रता",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "तीव्रता"
},
"compressionStudio": {
"noRun": "कोणताही कॉम्प्रेशन रन उपलब्ध नाही.",
@@ -8701,7 +8712,7 @@
"run": "चालवा",
"laneRejected": "नाकारले: {reason}",
"error": "त्रुटी",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "एकत्रित पाइपलाइन पूर्वावलोकन अयशस्वी झाले: {reason}",
"combinedFlow": "एकत्रित फ्लो",
"eachLayer": "प्रत्येक लेयर स्वतंत्रपणे",
"diff": "फरक",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "इंजिन सक्षम करा",
"enableDescription": "स्टॅकमध्ये शेवटी चालते (RTK/Caveman मजकूर साफ केल्यानंतर, OmniGlyph उर्वरित मजकूर इमेजेसमध्ये रूपांतरित करते) आणि omniglyph मोडद्वारे स्वतंत्रपणे देखील चालते. हे एक पूर्वावलोकन आहे आणि एंड-टू-एंड प्रमाणीकरण पूर्ण होईपर्यंत डीफॉल्टनुसार बंद राहते.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "कॉम्प्रेशन प्रोफाइल",
+ "profileDescription": "प्रोफाइल ही कमाल मर्यादा आहे, किमान नाही: अधिक कठोर प्रोफाइल प्रति-चरण ओव्हरराइडद्वारे पुन्हा शिथिल करता येत नाही. या कोडबेसवर मोजल्याप्रमाणे: coding-safe किंवा balanced वापरताना, अद्याप इतिहास जमा न झालेल्या सत्रात काहीही कॉम्प्रेस होत नाही, कारण दोन्ही किमान-अक्षर मर्यादा वाढवतात आणि सिस्टम प्रॉम्प्ट, टूल स्कीमा व टूल परिणाम मूळ स्वरूपात ठेवतात.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "आक्रमक (डीफॉल्ट)",
+ "description": "प्रकाशित पावत्यांनी मोजलेले धोरण. सिस्टम प्रॉम्प्ट, टूल दस्तऐवजीकरण आणि सघन इतिहासाचे प्रतिमारूप तयार करते."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "संतुलित",
+ "description": "सक्रिय स्थिती मूळ स्वरूपात ठेवते आणि शेवटच्या 8 संवाद-फेऱ्यांचे संरक्षण करते; फक्त जुना पूर्ण झालेला इतिहास संक्षिप्त करते."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "कोडिंग-सुरक्षित",
+ "description": "अधिकार-सूचना, टूल स्कीमा आणि सक्रिय टूल आउटपुट मूळ स्वरूपात ठेवून शेवटच्या 12 संवाद-फेऱ्यांचे संरक्षण करते. सत्रात इतिहास जमा होईपर्यंत काहीही कॉम्प्रेस करत नाही."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "पासथ्रू",
+ "description": "कोणतेही रूपांतरण न करता रूट करते. इंजिन वगळले जाते आणि विनंती कोणताही बदल न करता पुढे पाठवली जाते."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph कॉम्प्रेशन प्रोफाइल निवडा",
"saved": "जतन केले.",
"saveFailed": "जतन करता आले नाही.",
"enableAria": "OmniGlyph इंजिन सक्षम करा",
@@ -8869,7 +8880,7 @@
"providerExposureHint": "सक्षम केल्यावर, शोधलेली मॉडेल्स OmniRoute मधील प्रोव्हायडर सिलेक्टर्समध्ये दिसतात.",
"providerExposureUpdateFailed": "अपडेट करण्यात अयशस्वी (HTTP {status})",
"providerExposureNetworkFailed": "नेटवर्क त्रुटी — प्रोव्हायडर एक्सपोजर सेटिंग अपडेट करता आली नाही",
- "webUi": "9Router Web UI",
+ "webUi": "9Router वेब UI",
"openNewTab": "नवीन टॅबमध्ये उघडा",
"filterLogs": "लॉग्स फिल्टर करा…",
"resume": "पुन्हा सुरू करा",
@@ -8881,7 +8892,7 @@
"fallbackRouting": "फॉलबॅक राउटिंग",
"fallbackRoutingDescription": "CLIProxyAPI द्वारे अयशस्वी प्रोव्हायडर विनंत्यांचा पुन्हा प्रयत्न करा",
"enableFallback": "फॉलबॅक सक्षम करा",
- "cliproxyUrl": "CLIProxyAPI URL",
+ "cliproxyUrl": "CLIProxyAPI यूआरएल",
"fallbackCodes": "फॉलबॅक स्टेटस कोड (स्वल्पविरामाने विभक्त)",
"invalidUrl": "अवैध URL — http:// किंवा https:// ने सुरू होणे आवश्यक आहे",
"saved": "जतन केले",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "नियम-आधारित संदेश संक्षेपण, भाषा पॅक, विश्लेषण आणि आउटपुट मोड नियंत्रणे.",
"advancedConfig": "प्रगत कॉन्फिगरेशन",
"advancedConfigDesc": "फाइन-ट्यून कॉम्प्रेशन वर्तन",
"aggressiveSettings": "आक्रमक सेटिंग्ज",
"aggressiveSettingsDesc": "संभाव्य गुणवत्तेच्या ट्रेड-ऑफसह जास्तीत जास्त कॉम्प्रेशन",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "विनंत्या",
+ "tokensSaved": "वाचवलेले टोकन",
+ "savingsPercent": "बचत %",
+ "avgLatency": "सरासरी विलंब",
+ "languagePacks": "भाषा पॅक",
+ "languagePacksDesc": "विशिष्ट भाषांसाठी संक्षेपण नियम सक्षम करा.",
"labelAutoTrigger": "संदर्भ ओलांडल्यावर स्वयं-संकुचित करा",
"labelCompressionRate": "संक्षेप शक्ती",
"labelMaxTokens": "प्रति संदेश लक्ष्य टोकन",
"labelMinLength": "किमान संदेश लांबी",
"labelMinSavings": "जतन करण्यासाठी किमान टोकन",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "सक्षम",
+ "autoDetect": "भाषा आपोआप ओळखा",
+ "rulesCount": "{count} नियम",
"inputCompressionTitle": "इनपुट कॉम्प्रेशन",
"inputCompressionDesc": "चॅट इतिहास कमी शब्दांत पुन्हा लिहा. इनपुट टोकन्स ~50% ने कमी करते.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "संक्षेपण विश्लेषण",
+ "noAnalytics": "अद्याप संक्षेपण विश्लेषण उपलब्ध नाही.",
"masterDisabledWarning": "Token Saver मास्टर स्विच OFF आहे — तुम्ही ते Compression Settings मधून सुरू करेपर्यंत किंवा येथे बदलेपर्यंत या सेटिंग्जचा विनंत्यांवर परिणाम होणार नाही.",
"outputMode": "आउटपुट मोड",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "आउटपुट मोड",
"quickSettings": "द्रुत सेटिंग्ज",
"quickSettingsDesc": "प्रारंभ करण्यासाठी मूलभूत कॉम्प्रेशन सेटिंग्ज",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "स्वयं-स्पष्टता बायपास",
+ "bypassConditions": "बायपास अटी",
"bypassConditionsList": "सुरक्षा, अपरिवर्तनीय, स्पष्टीकरण, ऑर्डर-संवेदनशील",
"simpleMode": "साधे",
"advancedMode": "प्रगत",
@@ -8940,52 +8951,52 @@
"ultraSettings": "अल्ट्रा सेटिंग्ज",
"ultraSettingsDesc": "SLM-चालित सिमेंटिक कॉम्प्रेशन",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "संक्षिप्त उत्तर द्या. तांत्रिक संज्ञा, कोड, त्रुटी, URLs आणि आयडेंटिफायर्स जसेच्या तसे ठेवा.",
+ "full": "अतिशय थोडक्यात आणि नेमके उत्तर द्या. सर्व तांत्रिक आशय जतन करा.",
+ "ultra": "सामान्य तांत्रिक संक्षेप वापरून अत्यंत थोडक्यात उत्तर द्या. अचूक चिन्हे जशीच्या तशी ठेवा."
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "भाषांतरक",
+ "metaTitle": "भाषांतरक प्लेग्राउंड | OmniRoute",
+ "metaDescription": "प्रदात्यांमधील API स्वरूप भाषांतरे डीबग करा, तपासा आणि दृश्यरूपात पाहा",
+ "playgroundTitle": "भाषांतरक प्लेग्राउंड",
+ "playground": "प्लेग्राउंड",
+ "realtime": "रिअल-टाइम भाषांतर क्रियाकलाप",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "चाचणी मंच",
+ "liveMonitor": "थेट निरीक्षण",
+ "modeDescriptionPlayground": "कोणत्याही API विनंतीचा मुख्य भाग पेस्ट करा आणि OmniRoute त्याचे प्रदाता स्वरूपांमध्ये (OpenAI ↔ Claude ↔ Gemini ↔ Responses API) भाषांतर कसे करते ते पाहा",
+ "modeDescriptionChatTester": "OmniRoute द्वारे वास्तविक चॅट विनंत्या पाठवा आणि संपूर्ण फेरी तपासा: इनपुट, भाषांतरित विनंती, प्रदात्याचा प्रतिसाद आणि भाषांतरित आउटपुट.",
+ "modeDescriptionTestBench": "पूर्वनिर्धारित परिस्थिती चालवा आणि प्रदाते व मॉडेल्समधील सुसंगततेची तुलना करा.",
+ "modeDescriptionLiveMonitor": "विनंत्या OmniRoute मधून प्रवाहित होत असताना भाषांतर इव्हेंट्स रिअल टाइममध्ये पाहा.",
+ "modeDescriptionFallback": "OmniRoute प्रदात्यांदरम्यान API विनंत्यांचे भाषांतर कसे करते ते डीबग करा, तपासा आणि दृश्यरूपात पाहा.",
+ "recentTranslations": "अलीकडील भाषांतरे",
+ "noTranslations": "अद्याप कोणतेही भाषांतर नाही",
+ "source": "स्रोत",
+ "target": "लक्ष्य",
+ "time": "वेळ",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "विलंब",
+ "totalTranslations": "एकूण भाषांतरे",
+ "successful": "यशस्वी",
+ "errors": "त्रुटी",
+ "avgLatency": "सरासरी विलंब",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "लाइव्ह — स्वयंचलितपणे रिफ्रेश होत आहे",
+ "paused": "विराम दिला",
+ "eventsAppearHint": "OmniRoute मधून विनंत्या प्रवाहित होत असताना भाषांतर इव्हेंट येथे दिसतात. इव्हेंट निर्माण करण्यासाठी यापैकी कोणतीही पद्धत वापरा:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "बाह्य API कॉल्स",
+ "ideCliIntegrations": "IDE/CLI एकत्रीकरणे",
+ "inMemoryNote": "टीप: इव्हेंट्स मेमरीमध्ये संग्रहित केले जातात आणि सर्व्हर रीस्टार्ट झाल्यावर रीसेट होतात.",
"ok": "OK",
"errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "formatConverter": "फॉरमॅट कन्व्हर्टर",
+ "formatConverterDescription": "JSON विनंतीचा मुख्य भाग पेस्ट करा किंवा टाइप करा. ट्रान्सलेटर स्रोत फॉरमॅट आपोआप ओळखून त्याचे लक्ष्य फॉरमॅटमध्ये रूपांतर करेल. OmniRoute विविध फॉरमॅटदरम्यान विनंत्यांचे भाषांतर कसे करते हे डीबग करण्यासाठी याचा वापर करा (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (मध्यवर्ती) → {target}",
"translationPathDirect": "{source} → {target} (थेट अनुवादक)",
"translationPathPassthrough": "समान स्वरूप — भाषांतर आवश्यक नाही",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "काही फॉरमॅट जोड्या (क्लॉड→जेमिनी) मध्ये थेट अनुवादक असतात जे OpenAI हबला बायपास करतात, अधिक अचूक आउटपुट देतात.",
"featureImageMapping": "प्रतिमा आकार मॅपिंग",
"featureImageMappingDesc": "API फॉरमॅट (उदा. OpenAI तपशील स्तर → मिथुन परिमाणे) दरम्यान प्रतिमा परिमाण नियमांचे भाषांतर करते.",
- "input": "Input",
- "output": "Output",
+ "input": "इनपुट",
+ "output": "आउटपुट",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "फॉरमॅट अदलाबदल करा",
+ "translateAction": "भाषांतर करा",
+ "clear": "साफ करा",
+ "inputPlaceholder": "येथे विनंतीचा मुख्य भाग पेस्ट करा किंवा खालील टेम्पलेट निवडा...",
+ "exampleTemplates": "उदाहरण टेम्पलेट्स",
+ "exampleTemplatesHint": "— लोड करण्यासाठी क्लिक करा",
+ "templateLoadHint": "टेम्पलेट विनंती {format} फॉरमॅटमध्ये लोड करते. वेगळ्या फॉरमॅटमध्ये लोड करण्यासाठी स्रोत फॉरमॅट बदला.",
+ "compatibilityTester": "सुसंगतता परीक्षक",
+ "compatibilityReport": "सुसंगतता अहवाल",
+ "testBenchDescription": "भाषांतर आणि प्रदाता सुसंगतता पडताळण्यासाठी पूर्वनिर्धारित परिस्थिती (साधे चॅट, टूल कॉलिंग इ.) चालवा. स्रोत फॉरमॅट आणि लक्ष्य प्रदाता निवडा, त्यानंतर सुसंगततेची टक्केवारी पाहण्यासाठी सर्व चाचण्या चालवा. विविध प्रदात्यांमध्ये कोणती वैशिष्ट्ये कार्य करतात हे शोधण्यासाठी याचा वापर करा.",
+ "targetProvider": "लक्ष्य प्रदाता",
+ "runAllTests": "सर्व चाचण्या चालवा",
+ "runTest": "चाचणी चालवा",
+ "reRun": "पुन्हा चालवा",
+ "running": "चालू आहे...",
+ "passed": "उत्तीर्ण",
+ "failed": "अयशस्वी",
+ "passedIconLabel": "✅ उत्तीर्ण",
+ "chunks": "खंड",
+ "scenarioSimpleChat": "साधे चॅट",
+ "scenarioToolCalling": "टूल कॉलिंग",
+ "scenarioMultiTurn": "बहु-सत्रीय",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "सिस्टम प्रॉम्प्ट",
+ "scenarioStreaming": "स्ट्रीमिंग",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "साधी चॅट",
+ "tool-calling": "टूल कॉलिंग",
+ "multi-turn": "बहु-टप्प्यांचा संवाद",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "सिस्टम प्रॉम्प्ट",
+ "streaming": "स्ट्रीमिंग",
"vision": "दृष्टी",
"schema-coercion": "स्कीमा जबरदस्ती"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "मूलभूत मजकूर संदेश",
+ "tool-calling": "फंक्शन/टूलचे आवाहन",
+ "multi-turn": "इतिहासासह संभाषण",
+ "thinking": "विस्तारित विचार / तर्क",
+ "system-prompt": "जटिल सिस्टम सूचना",
+ "streaming": "SSE स्ट्रीमिंग विनंती",
"vision": "इमेज इनपुटसह मल्टीमोडल विनंती",
"schema-coercion": "संरचित-आउटपुट / JSON स्कीमा अंमलबजावणी"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "तुम्ही एक उपयुक्त सहाय्यक आहात.",
+ "userGreeting": "नमस्कार! आज तुम्ही कसे आहात?"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "São Paulo मधील हवामान कसे आहे?",
+ "toolDescription": "एखाद्या स्थानाचे सध्याचे हवामान मिळवा",
+ "cityNameDescription": "शहराचे नाव"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "तुम्ही एक कोडिंग सहाय्यक आहात.",
+ "userInitial": "Python मध्ये अॅरे क्रमबद्ध करण्यासाठी फंक्शन लिहा.",
+ "assistantExample": "हे एक साधे क्रमवारी लावणारे फंक्शन आहे: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "आता ते उतरत्या क्रमाने क्रमबद्ध करा."
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "पहिल्या 100 मूळ संख्यांची बेरीज किती आहे?"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "तुम्ही वितरित प्रणालींमध्ये विशेषज्ञ असलेले वरिष्ठ सॉफ्टवेअर अभियंता आहात. उद्योगातील सर्वोत्तम पद्धती वापरून प्रश्नांची संक्षिप्त उत्तरे द्या. जेव्हा संबंधित असेल तेव्हा नेहमी कोडची उदाहरणे द्या. तुमची उत्तरे markdown वापरून स्वरूपित करा.",
+ "question": "मी सर्किट ब्रेकर पॅटर्न कसा अंमलात आणू?"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "चित्रकला शिकणाऱ्या रोबोटबद्दल मला एक छोटी गोष्ट सांगा."
},
"vision": {
"system": "तुम्ही सहाय्यक आहात जे प्रतिमांचे अचूक वर्णन करतात.",
@@ -9093,12 +9104,12 @@
"cityDescription": "क्वेरी करण्यासाठी शहर, उदा. 'टोक्यो' किंवा 'न्यूयॉर्क'."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "OpenAI सुसंगत",
+ "anthropicCompatibleLabel": "Anthropic सुसंगत",
+ "noTemplateForFormat": "या स्वरूपासाठी कोणताही टेम्पलेट नाही",
+ "translationFailed": "भाषांतर अयशस्वी: {error}",
+ "pipelineDebugger": "पाइपलाइन डीबगर",
+ "translationPipeline": "भाषांतर पाइपलाइन",
"loading": "लोड होत आहे…",
"compressionOriginal": "मूळ",
"compressionCompressed": "कॉम्प्रेस केलेले",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "पाइपलाइन पायऱ्या",
"copyIntermediateJson": "इंटरमीडिएट JSON कॉपी करा",
"copyOutputJson": "आउटपुट JSON कॉपी करा",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "पाइपलाइन दृश्यीकरण",
+ "pipelineVisualizationHint": "तुमची विनंती शोध → भाषांतर → प्रदाता कॉल या प्रक्रियेतून कशी जाते हे पाहण्यासाठी संदेश पाठवा.",
+ "chatTesterDescription": "विशिष्ट क्लायंट स्वरूपात संदेश पाठवा आणि भाषांतर पाइपलाइनच्या प्रत्येक टप्प्याचे निरीक्षण करा.",
+ "chatTesterFlow": "क्लायंट विनंती → स्वरूप शोध → OpenAI मध्यवर्ती स्वरूप → प्रदाता स्वरूप → प्रतिसाद",
+ "clickStepToInspect": "त्या टप्प्यावरील डेटाचे निरीक्षण करण्यासाठी कोणत्याही टप्प्यावर क्लिक करा.",
+ "clientFormat": "क्लायंट स्वरूप",
+ "provider": "प्रदाता",
+ "modelPlaceholder": "मॉडेलचे नाव निवडा किंवा टाइप करा...",
+ "sendMessageToSeePipeline": "भाषांतर पाइपलाइन पाहण्यासाठी संदेश पाठवा",
+ "chatMessageHintPrefix": "तुमचा संदेश या स्वरूपात मांडला जाईल:",
+ "chatMessageHintSuffix": "विनंती, पाइपलाइनद्वारे भाषांतरित केली जाईल आणि निवडलेल्या प्रदात्याकडे पाठवली जाईल.",
+ "youWithFormat": "तुम्ही ({format})",
+ "assistant": "सहाय्यक",
+ "typeMessage": "संदेश टाइप करा...",
+ "send": "पाठवा",
+ "clientRequest": "क्लायंट विनंती",
+ "clientRequestDescription": "तुमचा क्लायंट जसा पाठवेल तसा विनंतीचा मजकूर",
+ "formatDetected": "आढळलेले स्वरूप",
+ "formatDetectedDescription": "OmniRoute विनंतीच्या संरचनेवरून API स्वरूप आपोआप ओळखते",
+ "openaiIntermediate": "OpenAI मध्यवर्ती स्वरूप",
+ "openaiIntermediateDescription": "सर्व स्वरूपे प्रथम OpenAI स्वरूपात (सार्वत्रिक दुवा) प्रमाणित केली जातात",
+ "providerFormat": "प्रदाता स्वरूप",
+ "providerFormatDescription": "OpenAI स्वरूपाचे प्रदात्याच्या मूळ स्वरूपात भाषांतर केले जाते",
+ "providerResponse": "प्रदात्याचा प्रतिसाद",
+ "providerResponseRawDescription": "प्रदाता API कडून मिळालेला कच्चा प्रतिसाद",
+ "providerResponseSseDescription": "प्रदाता API कडून मिळालेला कच्चा SSE प्रवाह",
+ "unexpectedError": "एक अनपेक्षित त्रुटी आली",
+ "error": "त्रुटी",
+ "errorMessage": "त्रुटी: {message}",
+ "requestFailed": "विनंती अयशस्वी झाली",
+ "noTextExtracted": "(कोणताही मजकूर काढता आला नाही)",
"liveMonitorMemoryNote": "इव्हेंट मेमरीमध्ये संग्रहित केले जातात आणि रीस्टार्ट केल्यावर गमावले जातात.",
"liveMonitorMemoryCapNote": "कमाल 200 इव्हेंट राखले.",
"eventSourcesLabel": "इव्हेंट स्रोत:",
"eventSourceTranslatorPage": "• अनुवादक पृष्ठ (चॅट परीक्षक, चाचणी खंडपीठ)",
"eventSourceMainPipeline": "• मुख्य विनंती पाइपलाइन (CLI/IDE/API रहदारी)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "API कॉल OmniRoute मधून प्रवाहित होताना भाषांतर घटना दाखवते. घटना इन-मेमरी बफरमधून येतात (रीस्टार्ट केल्यावर रीसेट होतात). वापरा",
+ "liveMonitorDescriptionSuffix": ", किंवा घटना निर्माण करण्यासाठी बाह्य API कॉल वापरा.",
"streamTransformer": "प्रवाह ट्रान्सफॉर्मर",
"modeDescriptionStreamTransformer": "प्रतिसाद ट्रान्सफॉर्मरद्वारे चॅट पूर्णता SSE प्रवाह चालवा.",
"streamTransformerTitle": "प्रतिसाद प्रवाह ट्रान्सफॉर्मर",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "स्ट्रीम रूपांतरित करण्यात अयशस्वी"
},
"usage": {
- "title": "Usage",
+ "title": "वापर",
"grokExtraUsageCredits": "अतिरिक्त वापर क्रेडिट्स",
"grokAutoTopUp": "स्वयंचलित टॉप-अप",
"grokAutoTopUpUnavailable": "उपलब्ध नाही",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "शिल्लक",
"kiloPassRenews": "{count} दिवसांत नूतनीकरण होईल",
"kiloPassUsageLabel": "या महिन्याचा वापर",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "अतिरिक्त वापर क्रेडिट्स",
+ "kimiExtraUsage": "अतिरिक्त वापर",
+ "kimiExtraUsageEnabled": "सक्षम",
+ "kimiExtraUsageDisabled": "अक्षम",
+ "kimiExtraUsageFrozen": "गोठवलेले",
+ "kimiExtraUsageUnavailable": "अनुपलब्ध",
+ "kimiMonthlyUsed": "या महिन्यात वापरलेले",
+ "kimiMonthlyLimit": "मासिक मर्यादा",
+ "kimiMonthlyLimitUnlimited": "अमर्यादित",
+ "kimiAdditionalCredits": "अतिरिक्त क्रेडिट्स",
+ "loggerTab": "लॉगर",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "बजेट व्यवस्थापन",
+ "budgetSaved": "बजेट मर्यादा जतन केल्या",
+ "budgetSaveFailed": "बजेट जतन करण्यात अयशस्वी",
+ "loadingBudgetData": "बजेट डेटा लोड होत आहे...",
+ "noApiKeysTitle": "API की उपलब्ध नाहीत",
+ "noApiKeysDescription": "बजेट मर्यादा सेट करण्यासाठी प्रथम API की जोडा.",
+ "apiKey": "API की",
+ "todaysSpend": "आजचा खर्च",
+ "thisMonth": "या महिन्यातील खर्च",
+ "setLimits": "मर्यादा सेट करा",
+ "dailyLimitUsd": "दैनिक मर्यादा (USD)",
+ "monthlyLimitUsd": "मासिक मर्यादा (USD)",
+ "warningThresholdPercent": "चेतावणीची मर्यादा (%)",
+ "dailyLimitPlaceholder": "उदा. 5.00",
+ "monthlyLimitPlaceholder": "उदा. 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "मर्यादा जतन करा",
+ "budgetOk": "बजेट ठीक आहे — {remaining} शिल्लक",
+ "budgetExceeded": "बजेट ओलांडले — विनंत्या अवरोधित केल्या जाऊ शकतात",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "अद्याप कोणताही डेटा नाही",
+ "latency": "विलंबता",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "प्रॉम्प्ट कॅशे",
+ "systemHealth": "सिस्टमचे आरोग्य",
+ "entries": "नोंदी",
+ "activeCount": "{count} सक्रिय",
+ "openCircuitBreakersDetected": "ओपन सर्किट ब्रेकर आढळले",
+ "hitRate": "हिट दर",
+ "hitsMisses": "हिट्स / मिसेस",
+ "circuitBreakers": "सर्किट ब्रेकर्स",
+ "lockedIPs": "लॉक केलेले IP",
+ "lockoutsAutoRefreshHint": "प्रति-मॉडेल दरमर्यादा लॉक • दर 10 सेकंदांनी स्वयं-रीफ्रेश",
+ "lockedCount": "{count, plural, one {# लॉक} other {# लॉक}}",
+ "timeLeft": "{time} शिल्लक",
+ "howItWorks": "हे कसे कार्य करते",
+ "howItWorksSubtitle": "मूल्यमापन तुमच्या LLM प्रतिसादांची पडताळणी कशी करते ते जाणून घ्या",
+ "define": "परिभाषित करा",
+ "defineStepDescription": "contains, regex किंवा exact match यांसारख्या पद्धती वापरून इनपुट प्रॉम्प्ट आणि अपेक्षित आउटपुट निकषांसह चाचणी प्रकरणे तयार करा.",
+ "run": "चालवा",
+ "runStepDescription": "OmniRoute द्वारे तुमच्या LLM एंडपॉइंट्सवर चाचणी प्रकरणे चालवा. प्रत्येक प्रकरण वास्तविक API विनंती म्हणून पाठवले जाते.",
+ "evaluate": "मूल्यमापन करा",
+ "evaluateStepDescription": "प्रतिसादांची अपेक्षित निकषांशी तुलना केली जाते. विलंबता मेट्रिक्स आणि तपशीलवार अभिप्रायासह प्रत्येक प्रकरणाचा यशस्वी/अयशस्वी निकाल पाहा.",
"evalsStrategyContainsLabel": "समाविष्ट आहे",
"evalsStrategyExactLabel": "अचूक जुळणी",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "रेगेक्स",
"evalsStrategyCustomLabel": "सानुकूल लॉजिक",
"evalsStrategyContainsDescription": "LLM आउटपुटमध्ये अपेक्षित सबस्ट्रिंग समाविष्ट आहे की नाही हे तपासते.",
"evalsStrategyExactDescription": "LLM आउटपुट अपेक्षित मूल्याशी तंतोतंत जुळते की नाही हे तपासते.",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "पास दर",
"historyColumnAvgLatencyMs": "सरासरी विलंबता",
"historyColumnCreatedAt": "कार्यान्वित केले",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "मूल्यमापन संच",
+ "evalSuitesHint": "चाचणी प्रकरणे पाहण्यासाठी संचावर क्लिक करा, त्यानंतर तुमच्या LLM एंडपॉइंट्सचे मूल्यमापन करण्यासाठी तो चालवा",
+ "evalsLoading": "मूल्यमापन संच लोड होत आहेत...",
+ "noEvalSuitesFound": "कोणतेही मूल्यमापन संच आढळले नाहीत",
+ "noEvalSuitesDescription": "मूल्यमापन संच API द्वारे किंवा कोडमध्ये परिभाषित करता येतात. ते contains, regex, exact match आणि custom functions यांसारख्या धोरणांचा वापर करून अपेक्षित परिणामांच्या तुलनेत मॉडेलच्या आउटपुटची चाचणी करतात.",
+ "columnCase": "प्रकरण",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "विलंब",
+ "columnDetails": "तपशील",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "धोरण",
+ "columnExpected": "अपेक्षित",
+ "statsSuites": "संच",
+ "statsTestCases": "चाचणी प्रकरणे",
+ "statsModels": "मॉडेल्स",
+ "statsCoverage": "व्याप्ती",
+ "statsStrategiesCount": "{count} धोरणे",
+ "evaluationStrategies": "मूल्यमापन धोरणे",
+ "modelsUnderTest": "चाचणीअंतर्गत मॉडेल्स",
+ "searchSuitesPlaceholder": "संच शोधा...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# प्रकरण} other {# प्रकरणे}}",
+ "runEval": "मूल्यमापन चालवा",
"runAllSuites": "सर्व चालवा",
"runAllRunning": "सर्व चालवत आहे...",
"runAllProgress": "{current}/{total} धावत आहे: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# संच अयशस्वी झाला} other {# संच अयशस्वी झाले}}",
"runAllCompleted": "{suites} संच चालवले — {passed} उत्तीर्ण झाले, {failed} अयशस्वी",
"runAllCompletedWithFailures": "{completed} संच चालवले; {failedSuites} पूर्ण करण्यात अयशस्वी",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "{current}/{total} चालू आहे...",
+ "passRate": "उत्तीर्ण होण्याचे प्रमाण",
+ "summaryBreakdown": "{passed} उत्तीर्ण · {failed} अयशस्वी · एकूण {total}",
+ "passedIconLabel": "✅ उत्तीर्ण",
+ "failedIconLabel": "❌ अयशस्वी",
"resultPassed": "उत्तीर्ण",
"resultFailed": "अयशस्वी",
"expandResult": "परिणाम तपशील विस्तृत करा",
"collapseResult": "परिणाम तपशील संक्षिप्त करा",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "समाविष्ट आहे: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "अपेक्षित: \"{expected}\"",
"expectedOutputLabel": "अपेक्षित आउटपुट",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "अद्याप कोणतेही परिणाम नाहीत",
+ "testCasesCount": "चाचणी प्रकरणे ({count})",
+ "noTestCasesDefined": "कोणतीही चाचणी प्रकरणे परिभाषित केलेली नाहीत",
+ "runEvalHint": "तुमच्या LLM एंडपॉइंटवर सर्व प्रकरणे कार्यान्वित करण्यासाठी \"मूल्यमापन चालवा\" वर क्लिक करा. प्रत्येक चाचणी OmniRoute द्वारे प्रत्यक्ष विनंती पाठवते.",
+ "notifyNoTestCases": "या संचासाठी कोणतीही चाचणी प्रकरणे परिभाषित केलेली नाहीत",
+ "notifyAllCasesPassed": "सर्व {total} प्रकरणे उत्तीर्ण झाली ✅",
+ "notifySomeCasesFailed": "{passed}/{total} उत्तीर्ण, {failed} अयशस्वी",
+ "notifyEvalRunFailed": "मूल्यमापन चालवणे अयशस्वी झाले",
+ "notifyEvalTitle": "मूल्यमापन: {name}",
+ "modelEvals": "मॉडेल मूल्यमापने",
+ "evalsHeroDescription": "पूर्वपरिभाषित मूल्यमापन संच चालवून तुमच्या LLM एंडपॉइंट्सची चाचणी आणि पडताळणी करा. प्रत्येक संचामध्ये अशी चाचणी प्रकरणे असतात जी OmniRoute द्वारे प्रत्यक्ष प्रॉम्प्ट पाठवतात आणि प्रतिसादांची अपेक्षित निकषांशी तुलना करतात—यामुळे तुम्हाला रिग्रेशन्स शोधणे, मॉडेल्सची तुलना करणे आणि विविध प्रदात्यांमध्ये प्रतिसादाची गुणवत्ता सुनिश्चित करणे शक्य होते.",
+ "qualityValidation": "गुणवत्ता पडताळणी",
+ "modelComparison": "मॉडेल तुलना",
+ "regressionDetection": "रिग्रेशन शोध",
+ "latencyBenchmarks": "विलंब बेंचमार्क",
+ "modelLockouts": "मॉडेल लॉकआउट्स",
+ "noLockouts": "सध्या कोणतेही मॉडेल लॉक केलेले नाही",
+ "activeSessions": "सक्रिय सत्रे",
+ "noSessions": "कोणतीही सक्रिय सत्रे नाहीत",
+ "sessionsHint": "प्रॉक्सीद्वारे विनंत्या प्रवाहित होताना सत्रे दिसतात",
+ "sessionsTrackedHint": "विनंती फिंगरप्रिंटिंगद्वारे ट्रॅक केलेले • स्वयं-रिफ्रेश 5s",
+ "session": "सत्र",
+ "age": "कालावधी",
+ "requests": "विनंत्या",
+ "connection": "कनेक्शन",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "प्रदाता मर्यादा",
+ "noProviders": "कोणतेही प्रदाते कनेक्ट केलेले नाहीत",
+ "connectProvidersForQuota": "तुमच्या API कोटा मर्यादा आणि वापराचा मागोवा घेण्यासाठी OAuth वापरून प्रदात्यांशी कनेक्ट करा.",
+ "accountsCount": "{count, plural, one {# खाते} other {# खाती}}",
+ "filteredFromCount": "({count} मधून फिल्टर केलेले)",
+ "autoRefresh": "स्वयं-रिफ्रेश",
+ "refreshAll": "सर्व रिफ्रेश करा",
+ "loadingQuotas": "लोड होत आहे...",
"showMoreQuotas": "आणखी {count} दाखवा",
"showLessQuotas": "कमी दाखवा",
"hideQuotaRow": "हा कोटा रो लपवा",
"showQuotaRow": "हा कोटा रो दाखवा",
"hiddenQuotaRowsLabel": "लपवलेले:",
- "quotaVisibilityUpdateFailed": "Failed to update quota visibility",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
+ "quotaVisibilityUpdateFailed": "कोटा दृश्यमानता अपडेट करण्यात अयशस्वी",
+ "account": "खाते",
+ "modelQuotas": "मॉडेल कोटे",
+ "lastUsed": "शेवटचे रिफ्रेश केले",
+ "actions": "क्रिया",
+ "refreshQuota": "कोटा रिफ्रेश करा",
+ "today": "आज",
+ "tomorrow": "उद्या",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "{duration} मध्ये",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "मूळ प्लॅन: {plan}",
+ "noPlanFromProvider": "प्रदात्याकडून कोणताही प्लॅन नाही",
"tokenExpiresIn": "टोकन {time} मध्ये कालबाह्य होईल",
"tokenExpired": "टोकन कालबाह्य झाले",
- "noQuotaData": "No quota data",
+ "noQuotaData": "कोटा डेटा नाही",
"cardExpand": "विस्तार करा",
"cardCollapse": "संकुचित करा",
"moreQuotas": "+{count} अधिक",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "गटबद्ध न केलेले",
+ "viewFlat": "सपाट",
+ "viewByEnvironment": "वातावरणानुसार",
+ "noQuotaDataAvailable": "कोणताही कोटा डेटा उपलब्ध नाही",
+ "noAccountsForTierFilter": "टियर फिल्टरसाठी कोणतीही खाती आढळली नाहीत",
+ "tierAll": "सर्व",
+ "tierEnterprise": "एंटरप्राइझ",
+ "tierTeam": "टीम",
+ "tierBusiness": "व्यवसाय",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "विनामूल्य",
"tierLite": "लाईट",
- "tierUnknown": "Unknown",
+ "tierUnknown": "अज्ञात",
"statTotal": "एकूण",
"statCritical": "गंभीर",
"statAlert": "अलर्ट",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "क्रेडिट रिडीम करा",
"resetCreditRedeemed": "रिडीम केलेले रीसेट करा",
"resetCreditRedeemFailed": "रीसेट क्रेडिट रिडीम करण्यात अयशस्वी",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "संच जतन करण्यात अयशस्वी",
"clone": "क्लोन",
"exportSuite": "निर्यात करा",
"importSuite": "आयात करा",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "अवैध eval सूट JSON",
"suiteBuilderCloneSuffix": "कॉपी",
"suiteBuilderImportedSuite": "इंपोर्टेड सुट",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "गुणपत्रक",
+ "evalApiKey": "API की",
+ "scorecardPassRate": "उत्तीर्णता दर",
+ "targetTypeModel": "मॉडेल",
+ "actualOutputLabel": "प्रत्यक्ष आउटपुट",
+ "evalTargetHint": "मूल्यमापनासाठी मॉडेल किंवा कॉम्बो निवडा.",
+ "suiteBuilderDeleted": "संच यशस्वीरित्या हटवला",
+ "suiteBuilderCaseCardHint": "इनपुट प्रॉम्प्ट आणि अपेक्षित आउटपुट निकष निश्चित करा.",
+ "nextResetUtc": "पुढील रीसेट (UTC)",
+ "scorecardHint": "सर्व मूल्यमापन संचांमधील एकत्रित उत्तीर्णता दर.",
+ "suiteLatestRunsHint": "या संचासाठी सर्वात अलीकडील मूल्यमापन रन.",
+ "saving": "जतन करत आहे",
+ "suiteBuilderCaseModelLabel": "मॉडेल (ऐच्छिक)",
+ "evalControlsTitle": "मूल्यमापन नियंत्रणे",
+ "suiteBuilderEditTitle": "मूल्यमापन संच संपादित करा",
+ "suiteBuilderCaseStrategyLabel": "वैधता तपासणी धोरण",
+ "notifySelectDifferentCompareTarget": "तुलनेसाठी कृपया वेगळे लक्ष्य निवडा",
+ "recentRunsHint": "सर्वात अलीकडील मूल्यमापन रन दाखवत आहे. तपशीलवार निकाल पाहण्यासाठी रनवर क्लिक करा.",
+ "evalCompareHint": "ऐच्छिकरित्या निकालांची दुसऱ्या लक्ष्याशी तुलना करा.",
+ "suiteBuilderCaseInvalid": "या प्रकरणात वैधता तपासणीच्या त्रुटी आहेत. जतन करण्यापूर्वी कृपया त्या दुरुस्त करा.",
+ "historyEmpty": "अद्याप कोणताही मूल्यमापन इतिहास नाही",
+ "suiteBuilderUpdated": "संच यशस्वीरित्या अद्यतनित केला",
+ "resetInterval": "रीसेट मध्यांतर",
+ "suiteBuilderCreateTitle": "मूल्यमापन संच तयार करा",
+ "activePeriodSpend": "सक्रिय कालावधीतील खर्च",
+ "evalApiKeyHint": "मूल्यमापन विनंत्यांसाठी कोणती API की वापरायची ते निवडा.",
+ "evalCompareOptional": "तुलना करा (ऐच्छिक)",
+ "suiteBuilderDeleteFailed": "संच हटवण्यात अयशस्वी",
+ "suiteBuilderCaseSystemPromptPlaceholder": "ऐच्छिक सिस्टम सूचना...",
+ "scorecardCases": "प्रकरणे",
+ "runCompletedWithScore": "मूल्यमापन पूर्ण झाले — {score}% उत्तीर्णता दर",
+ "suiteBuilderCustomBadge": "सानुकूल",
+ "targetSuiteDefaults": "संचाची डीफॉल्ट मूल्ये",
+ "suiteBuilderDeleteConfirm": "तुम्हाला खात्री आहे की तुम्ही हा संच हटवू इच्छिता? ही कृती पूर्ववत करता येणार नाही.",
+ "suiteBuilderNameLabel": "संचाचे नाव",
+ "scorecardSuites": "संच",
+ "evalCompareTarget": "तुलना लक्ष्य",
+ "suiteBuilderCaseModelPlaceholder": "उदा. gpt-4o-mini",
+ "evalControlsHint": "तुमचे मूल्यमापन लक्ष्य आणि API की कॉन्फिगर करा, त्यानंतर मॉडेलची गुणवत्ता तपासण्यासाठी संच चालवा.",
+ "recentRunsTitle": "अलीकडील रन",
+ "suiteBuilderCaseSystemPromptLabel": "सिस्टम प्रॉम्प्ट",
+ "suiteBuilderCaseExpectedPlaceholder": "उदा. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "उदा. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "अचूक अपेक्षित प्रतिसाद पेस्ट करा",
"suiteBuilderCaseExpectedPlaceholderRegex": "उदा. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "स्लॅश न गुंडाळता JavaScript रेग्युलर एक्सप्रेशन वापरा.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "उदा. कोडिंग गुणवत्ता संच",
+ "suiteBuilderAddCase": "केस जोडा",
+ "cancel": "रद्द करा",
+ "evalTarget": "लक्ष्य",
+ "suiteBuilderCaseNameLabel": "केसचे नाव",
+ "weeklyLimitUsd": "साप्ताहिक मर्यादा (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "उदा. Python मध्ये fibonacci फंक्शन लिहा",
+ "suiteBuilderNameRequired": "संचाचे नाव आवश्यक आहे",
+ "suiteBuilderCaseUserPromptLabel": "वापरकर्ता प्रॉम्प्ट",
+ "daily": "दैनिक",
+ "resultErrorLabel": "त्रुटी",
+ "suiteBuilderBuiltInBadge": "अंगभूत",
+ "suiteBuilderCaseCardTitle": "चाचणी केस",
"suiteBuilderDuplicateCase": "डुप्लिकेट",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "उदा. 50.00",
+ "suiteBuilderCaseTagsHint": "चाचणी केसेस व्यवस्थित करण्यासाठी स्वल्पविरामाने विभक्त केलेले टॅग.",
+ "notifyEvalRunFailedWithReason": "मूल्यमापन अयशस्वी: {reason}",
+ "weekly": "साप्ताहिक",
+ "runEvalRunning": "मूल्यमापन सुरू आहे...",
+ "delete": "हटवा",
+ "resetTimeUtc": "रीसेट वेळ (UTC)",
+ "evalApiKeyAuto": "स्वयंचलित (डीफॉल्ट वापरा)",
+ "suiteBuilderDescriptionPlaceholder": "हा संच कशाची चाचणी करतो याचे पर्यायी वर्णन...",
+ "targetComparisonTitle": "लक्ष्य तुलना",
+ "save": "जतन करा",
+ "suiteBuilderCreated": "संच यशस्वीरित्या तयार केला",
+ "suiteLatestRuns": "नवीनतम रन",
+ "suiteBuilderCaseExpectedLabel": "अपेक्षित मूल्य",
+ "historyLatency": "विलंब",
+ "suiteBuilderCaseTagsPlaceholder": "उदा. coding, python",
+ "targetTypeCombo": "संयोजन",
+ "scorecardPassed": "उत्तीर्ण",
+ "suiteBuilderCaseTagsLabel": "टॅग",
+ "suiteBuilderNewSuite": "नवीन संच",
+ "notifyEvalLoadFailed": "मूल्यांकन डेटा लोड करण्यात अयशस्वी",
+ "notConfigured": "कॉन्फिगर केलेले नाही",
+ "suiteBuilderCaseNamePlaceholder": "उदा. Python fibonacci चाचणी",
+ "intervalLabel": "मध्यांतर",
+ "suiteBuilderCreateAction": "संच तयार करा",
+ "suiteBuilderCasesHint": "प्रत्येक केस एक प्रॉम्प्ट पाठवते आणि प्रतिसादाची पडताळणी करते.",
+ "suiteBuilderUpdatedAt": "अद्ययावत केले",
+ "errorBadge": "त्रुटी",
+ "suiteBuilderCasesTitle": "चाचणी केसेस",
+ "edit": "संपादित करा",
+ "monthly": "मासिक",
+ "suiteBuilderCasesRequired": "किमान एक चाचणी केस आवश्यक आहे",
+ "weeklyLimitSummary": "साप्ताहिक बजेट मर्यादेचा सारांश",
+ "suiteBuilderDescriptionLabel": "वर्णन",
+ "targetComparisonHint": "लक्ष्यांमधील मूल्यांकन परिणामांची शेजारी-शेजारी तुलना.",
+ "compareCompletedWithScore": "तुलना पूर्ण झाली — {score}% उत्तीर्ण दर",
+ "staleQuotaTooltip": "मागील रीफ्रेश अयशस्वी — कॅश केलेला डेटा दाखवत आहे",
"quotaThresholdLabel": "मि बाकी",
"quotaCutoffsColumnHelp": "उर्वरित कोटा या टक्केवारीवर किंवा त्यापेक्षा कमी झाल्यास विनंत्या थांबवा.",
"quotaCutoffsButtonDefault": "डीफॉल्ट",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "कनेक्ट केलेल्या खात्यांमधील थेट स्थिती"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "अधिकृततेची प्रतीक्षा करत आहे",
+ "verificationUrl": "पडताळणी URL",
+ "yourCode": "तुमचा कोड",
+ "remoteAccess": "दूरस्थ प्रवेश:",
+ "connectedSuccess": "यशस्वीरित्या कनेक्ट झाले!",
+ "connectionFailed": "कनेक्शन अयशस्वी",
+ "chooseAuthMethod": "तुमची प्रमाणीकरण पद्धत निवडा:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Google खाते",
+ "githubAccount": "GitHub खाते",
+ "importToken": "टोकन आयात करा",
+ "pasteToken": "Kiro IDE मधील रीफ्रेश टोकन पेस्ट करा.",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "टोकन स्वयंचलितपणे शोधत आहे...",
+ "readingFromCache": "AWS SSO कॅशेमधून वाचत आहे",
+ "readingFromCursor": "Cursor IDE डेटाबेसमधून वाचत आहे",
+ "initializing": "आरंभ करत आहे...",
+ "pricingConfig": "किंमत कॉन्फिगरेशन",
+ "loadingPricing": "किंमतीचा डेटा लोड करत आहे...",
+ "pricingRatesFormat": "किंमत दरांचे स्वरूप",
+ "noPricingData": "किंमतीचा डेटा उपलब्ध नाही",
+ "noModelsFound": "कोणतीही मॉडेल्स आढळली नाहीत"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "सर्व प्रदाते",
+ "allModels": "सर्व मॉडेल्स",
+ "allAccounts": "सर्व खाती",
+ "allApiKeys": "सर्व API कळा",
+ "allTypes": "सर्व प्रकार",
+ "allLevels": "सर्व स्तर",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "लॉग लोड होत आहेत...",
+ "loadingProxyLogs": "प्रॉक्सी लॉग लोड होत आहेत...",
+ "noLogEntries": "कोणत्याही लॉग नोंदी आढळल्या नाहीत",
+ "noPayloadData": "या लॉग नोंदीसाठी कोणताही पेलोड डेटा उपलब्ध नाही.",
+ "proxyEvent": "प्रॉक्सी इव्हेंट",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "स्तर",
+ "directNative": "थेट (मूळ)",
+ "combo": "कॉम्बो",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "वापराचा आढावा",
+ "outputTokens": "आउटपुट टोकन्स",
+ "totalCost": "एकूण खर्च",
+ "usageByModel": "मॉडेलनुसार वापर",
+ "usageByAccount": "खात्यानुसार वापर",
+ "failedToLoad": "वापराची आकडेवारी लोड करण्यात अयशस्वी.",
+ "tokenHealth": "टोकनची स्थिती",
+ "totalOAuth": "एकूण OAuth",
+ "healthy": "सुस्थितीत",
+ "warning": "इशारा",
+ "errored": "त्रुटीग्रस्त",
+ "lastCheck": "शेवटची तपासणी",
+ "noData": "डेटा उपलब्ध नाही",
+ "share": "शेअर करा",
+ "unableToLoad": "सिस्टम मेट्रिक्स लोड करता आले नाहीत",
+ "product": "उत्पादन",
+ "resources": "संसाधने",
+ "company": "कंपनी",
"tokenHealthTooltips": {
"allHealthy": "सर्व टोकन आरोग्यदायी आहेत",
"needsAttention": "काही टोकनला लक्ष देण्याची आवश्यकता आहे",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "सिस्टम मेट्रिक्स",
"memory": "स्मृती",
- "memoryShort": "mem",
+ "memoryShort": "मेमरी",
"uptime": "उपलब्धता",
"ariaLabel": "सिस्टम मॉनिटरिंग",
"title": "सिस्टम मॉनिटर",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "अजून कोणतीही खाते-विशिष्ट वापराची नोंद केलेली नाही. येथे डेटा पाहण्यासाठी OAuth खात्यांचा वापर करून विनंत्या करा."
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "स्वागत आहे",
+ "signIn": "साइन इन करा",
+ "enterPassword": "पुढे सुरू ठेवण्यासाठी तुमचा पासवर्ड प्रविष्ट करा",
+ "password": "पासवर्ड",
+ "unifiedProxy": "एकत्रित AI API प्रॉक्सी",
+ "unifiedAiApiProxy": "एकत्रित AI API प्रॉक्सी",
+ "unifiedAiApiProxyDesc": "एका एंडपॉइंटद्वारे अनेक AI प्रदात्यांकडे विनंत्या पाठवा. लोड बॅलन्सिंग, फेलओव्हर आणि वापराचे ट्रॅकिंग अंगभूत आहे.",
+ "passwordNotEnabled": "पासवर्ड संरक्षण सक्षम केलेले नाही",
+ "loading": "लोड होत आहे...",
+ "invalidPassword": "अवैध पासवर्ड",
+ "errorOccurredRetry": "एक त्रुटी आली. कृपया पुन्हा प्रयत्न करा.",
+ "configureInstance": "चला, तुमचे OmniRoute इन्स्टन्स कॉन्फिगर करूया",
+ "runOnboardingWizard": "तुमचा पासवर्ड सेट करण्यासाठी आणि तुमचा पहिला AI प्रदाता कनेक्ट करण्यासाठी ऑनबोर्डिंग विझार्ड चालवा.",
+ "startOnboarding": "ऑनबोर्डिंग सुरू करा",
+ "secureYourInstance": "तुमचे इन्स्टन्स सुरक्षित करा",
+ "setPasswordDescription": "तुमच्या डॅशबोर्डचे संरक्षण करण्यासाठी आणि अनधिकृत प्रवेशापासून तुमचे API एंडपॉइंट्स सुरक्षित ठेवण्यासाठी पासवर्ड सेट करा.",
+ "configurePassword": "पासवर्ड कॉन्फिगर करा",
+ "continue": "पुढे सुरू ठेवा",
+ "windowWillClose": "ही विंडो आपोआप बंद होईल...",
+ "closeTabNow": "तुम्ही आता हा टॅब बंद करू शकता.",
+ "copyUrlManual": "कृपया ॲड्रेस बारमधील URL कॉपी करून ॲप्लिकेशनमध्ये पेस्ट करा.",
+ "accessDeniedDescription": "तुम्हाला या रिसोर्समध्ये प्रवेश करण्याची परवानगी नाही. तुमची API की तपासा किंवा प्रशासकाशी संपर्क साधा.",
+ "goToDashboard": "डॅशबोर्डवर जा",
+ "featureMultiProviderTitle": "एकाधिक प्रदाते",
+ "featureMultiProviderDesc": "OpenAI, Anthropic, Google आणि इतर",
+ "featureLoadBalancingTitle": "लोड बॅलन्सिंग",
+ "featureLoadBalancingDesc": "विनंत्यांचे बुद्धिमान पद्धतीने वितरण करा",
+ "featureUsageTrackingTitle": "वापराचा मागोवा",
+ "featureUsageTrackingDesc": "खर्च आणि टोकन्सचे निरीक्षण करा",
+ "resetPassword": "पासवर्ड रीसेट करा",
+ "resetDescription": "तुमच्या डॅशबोर्डवरील प्रवेश पुनर्प्राप्त करण्यासाठी एक पद्धत निवडा",
+ "stopServer": "OmniRoute सर्व्हर थांबवा",
+ "processing": "प्रक्रिया सुरू आहे...",
+ "pleaseWait": "आम्ही प्रमाणीकरण पूर्ण करेपर्यंत कृपया प्रतीक्षा करा.",
+ "authSuccess": "प्रमाणीकरण यशस्वी झाले!",
+ "copyUrl": "हा URL कॉपी करा",
+ "accessDenied": "प्रवेश नाकारला",
+ "methodCliTitle": "पद्धत 1: CLI रीसेट",
+ "methodCliDescription": "OmniRoute चालू असलेल्या सर्व्हरवर खालील कमांड चालवा:",
+ "methodCliHint": "यामुळे तुम्हाला नवीन पासवर्ड सेट करण्यास सांगितले जाईल. प्रथम सर्व्हर थांबवणे आवश्यक आहे.",
+ "methodManualTitle": "पद्धत 2: मॅन्युअल रीसेट",
+ "methodManualDescription": "डेटाबेसमधून पासवर्ड हटवा आणि स्टार्टअपच्या वेळी नवीन पासवर्ड सेट करा:",
+ "setPasswordInYour": "तुमच्या",
+ "fileLabelSuffix": "फाइलमध्ये नवीन पासवर्ड सेट करा:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "हटवा",
+ "orRemovePasswordHashField": "किंवा passwordHash फील्ड काढून टाका",
+ "restartServerWithNewPassword": "सर्व्हर रीस्टार्ट करा - तो नवीन पासवर्ड वापरेल",
+ "backToLogin": "लॉगिनकडे परत जा",
+ "forgotPassword": "पासवर्ड विसरलात?",
"continueWithOidc": "OIDC सह पुढे जा",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "डीफॉल्ट पासवर्ड: CHANGEME (INITIAL_PASSWORD सेट केला नसल्यास)",
+ "Authorization": "अधिकृतता",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "अधिकृततेची प्रतीक्षा करत आहे...",
+ "waitingForGoogleAuthorization": "Google अधिकृततेची प्रतीक्षा करत आहे...",
+ "waitingForOpenAIAuthorization": "OpenAI अधिकृततेची प्रतीक्षा करत आहे...",
+ "waitingForAntigravityAuthorization": "Antigravity अधिकृततेची प्रतीक्षा करत आहे...",
+ "waitingForQoderAuthorization": "Qoder अधिकृततेची प्रतीक्षा करत आहे...",
+ "exchangingCodeForTokens": "टोकन्ससाठी कोडची देवाणघेवाण करत आहे...",
+ "nodeIncompatibleTitle": "विसंगत Node.js आवृत्ती",
+ "nodeIncompatibleDesc": "तुम्ही Node.js {version} वापरत आहात, जी OmniRoute च्या समर्थित सुरक्षित रनटाइम धोरणाच्या कक्षेबाहेर आहे. पॅच केलेली Node.js 20.x किंवा 22.x LTS आवृत्ती वापरा.",
+ "nodeIncompatibleFixLabel": "उपाय: पॅच केलेली Node.js 22 LTS आवृत्ती इंस्टॉल करा",
+ "nodeIncompatibleHint": "OmniRoute साठी Node.js 22.22.2+ (22.x LTS) किंवा 24.0.0+ (24.x LTS) आवश्यक आहे. Node 24 LTS ची शिफारस केली जाते.",
"resetViaAppDataTitle": "अॅप डेटा द्वारे रीसेट करा",
"resetViaAppDataDescription": "आपला पासवर्ड रीसेट करण्यासाठी अॅप डेटा निर्देशिकेतून सेटिंग्ज फाइल हटवा:",
"quitDesktopApp": "OmniRoute डेस्कटॉप अॅप पूर्णपणे बंद करा",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "मुख्यपृष्ठावर जा",
+ "toggleMenu": "मेनू उघडा किंवा बंद करा",
+ "featuresLink": "वैशिष्ट्ये",
+ "docsLink": "दस्तऐवजीकरण",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "versionLive": "v1.0 आता उपलब्ध आहे",
+ "oneEndpoint": "एक एंडपॉइंट",
+ "allProviders": "सर्व AI प्रदात्यांसाठी",
+ "heroDescription": "वेब डॅशबोर्डसह AI एंडपॉइंट प्रॉक्सी — CLIProxyAPI चे JavaScript पोर्ट. Claude Code, OpenAI Codex, Cline, RooCode आणि इतर CLI साधनांसह अखंडपणे कार्य करते.",
+ "getStarted": "सुरुवात करा",
+ "viewOnGithub": "GitHub वर पहा",
+ "powerfulFeatures": "शक्तिशाली वैशिष्ट्ये",
+ "featuresSubtitle": "तुमच्या AI पायाभूत सुविधांचे एकाच ठिकाणी व्यवस्थापन करण्यासाठी आवश्यक असलेले सर्व काही, मोठ्या प्रमाणावर वापरासाठी तयार केलेले.",
+ "featureUnifiedEndpointTitle": "एकीकृत एंडपॉइंट",
+ "featureUnifiedEndpointDesc": "एकाच मानक API URL द्वारे सर्व प्रदात्यांमध्ये प्रवेश करा.",
+ "featureEasySetupTitle": "सुलभ सेटअप",
+ "featureEasySetupDesc": "npx कमांड वापरून काही मिनिटांत कार्य सुरू करा.",
+ "featureModelFallbackTitle": "मॉडेल फॉलबॅक",
+ "featureModelFallbackDesc": "अयशस्वी झाल्यास किंवा विलंब जास्त असल्यास प्रदाता आपोआप बदला.",
+ "featureUsageTrackingTitle": "वापराचे ट्रॅकिंग",
+ "featureUsageTrackingDesc": "सर्व मॉडेल्ससाठी तपशीलवार विश्लेषण आणि खर्चाचे निरीक्षण.",
+ "featureOAuthApiKeysTitle": "OAuth आणि API कीज",
+ "featureOAuthApiKeysDesc": "एका व्हॉल्टमध्ये क्रेडेन्शियल्स सुरक्षितपणे व्यवस्थापित करा.",
+ "featureCloudSyncTitle": "क्लाउड सिंक",
+ "featureCloudSyncDesc": "तुमची कॉन्फिगरेशन्स सर्व डिव्हाइसेसवर त्वरित सिंक करा.",
+ "featureCliSupportTitle": "CLI समर्थन",
+ "featureCliSupportDesc": "Claude Code, Codex, Cline, Cursor आणि इतरांसह कार्य करते.",
+ "featureDashboardTitle": "डॅशबोर्ड",
+ "featureDashboardDesc": "रिअल-टाइम ट्रॅफिक विश्लेषणासाठी दृश्यात्मक डॅशबोर्ड.",
+ "howItWorks": "OmniRoute कसे कार्य करते",
+ "howItWorksDescription": "तुमच्या अनुप्रयोगातून डेटा आमच्या बुद्धिमान रूटिंग स्तराद्वारे त्या कामासाठी सर्वोत्तम प्रदात्याकडे अखंडपणे प्रवाहित होतो.",
+ "howItWorksStep1Title": "1. CLI आणि SDKs",
+ "howItWorksStep1Description": "तुमच्या विनंत्या तुमच्या आवडत्या साधनांमधून किंवा आमच्या एकीकृत SDK मधून सुरू होतात. फक्त बेस URL बदला.",
+ "howItWorksStep2Title": "2. OmniRoute हब",
+ "howItWorksStep2Description": "आमचे इंजिन प्रॉम्प्टचे विश्लेषण करते, प्रदात्याची स्थिती तपासते आणि सर्वात कमी विलंब किंवा खर्चासाठी रूट करते.",
+ "howItWorksStep3Title": "3. AI प्रदाते",
+ "howItWorksStep3Description": "विनंती OpenAI, Anthropic, Gemini किंवा इतर प्रदात्यांकडून त्वरित पूर्ण केली जाते.",
+ "getStartedIn30Seconds": "30 सेकंदांत सुरुवात करा",
+ "getStartedDescription": "OmniRoute इंस्टॉल करा, वेब डॅशबोर्डद्वारे तुमचे प्रदाते कॉन्फिगर करा आणि AI विनंत्या रूट करणे सुरू करा.",
+ "installOmniRoute": "OmniRoute इंस्टॉल करा",
+ "installStepDescription": "सर्व्हर त्वरित सुरू करण्यासाठी npx कमांड चालवा",
+ "openDashboard": "डॅशबोर्ड उघडा",
+ "openDashboardStepDescription": "वेब इंटरफेसद्वारे प्रदाते आणि API की कॉन्फिगर करा",
+ "routeRequests": "विनंत्या रूट करा",
+ "routeRequestsStepDescription": "तुमची CLI साधने {endpoint} कडे निर्देशित करा",
+ "terminal": "टर्मिनल",
+ "copy": "कॉपी करा",
+ "copied": "✓ कॉपी केले",
+ "startingOmniRoute": "OmniRoute सुरू होत आहे...",
+ "serverRunningOnLabel": "सर्व्हर येथे चालू आहे",
+ "dashboardLabel": "डॅशबोर्ड",
+ "readyToRoute": "रूट करण्यासाठी तयार! ✓",
+ "configureProvidersNote": "📝 डॅशबोर्डमध्ये प्रदाते कॉन्फिगर करा किंवा एन्व्हायर्नमेंट व्हेरिएबल्स वापरा",
+ "dataLocation": "डेटाचे स्थान:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "उत्पादन",
+ "dashboardLink": "डॅशबोर्ड",
+ "changelog": "बदल नोंद",
+ "resources": "संसाधने",
+ "documentation": "दस्तऐवजीकरण",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "कायदेशीर",
+ "mitLicense": "MIT परवाना",
+ "footerTagline": "AI निर्मितीसाठी एकीकृत एंडपॉइंट. तुमचे AI प्रदाते सहजपणे कनेक्ट, रूट आणि व्यवस्थापित करा.",
+ "copyright": "© {year} OmniRoute. सर्व हक्क राखीव.",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "डेस्कटॉपवर परस्परसंवादी आकृती दृश्यमान आहे",
+ "ctaTitle": "तुमची AI पायाभूत सुविधा सुलभ करण्यास तयार आहात?",
+ "ctaDescription": "OmniRoute सह आपली AI एकत्रीकरणे सुव्यवस्थित करणाऱ्या विकसकांमध्ये सामील व्हा. हे मुक्त-स्रोत आहे आणि सुरुवात करण्यासाठी विनामूल्य आहे.",
+ "startFree": "विनामूल्य सुरू करा",
+ "readDocumentation": "दस्तऐवजीकरण वाचा",
"company": "कंपनी",
"pricing": "किमती",
"apiReference": "API संदर्भ",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "समुदाय चर्चा"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "दस्तऐवजीकरण",
+ "quickStart": "त्वरित सुरुवात",
"deploymentGuides": "उपयोजन मार्गदर्शक",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "वैशिष्ट्ये",
+ "supportedProviders": "समर्थित प्रदाते",
+ "supportedProvidersToc": "प्रदाते",
+ "commonUseCases": "सामान्य वापर प्रकरणे",
+ "clientCompatibility": "क्लायंट सुसंगतता",
+ "protocolsToc": "प्रोटोकॉल",
+ "apiReference": "API संदर्भ",
+ "managementApiReference": "व्यवस्थापन API संदर्भ",
+ "managementApiDescription": "प्रॉक्सी रजिस्ट्री, स्कोप असाइनमेंट्स आणि लेगसी प्रॉक्सी माइग्रेशनसाठी ऑटोमेशन एंडपॉइंट्स.",
+ "method": "पद्धत",
+ "path": "पाथ",
+ "notes": "टिपा",
+ "modelPrefixes": "मॉडेल प्रीफिक्सेस",
+ "prefix": "प्रीफिक्स",
+ "troubleshooting": "समस्यानिवारण",
+ "supportsChat": "चॅट आणि रिस्पॉन्सेस या दोन्ही एंडपॉइंट्सना समर्थन देते.",
+ "oauthAutoRefresh": "स्वयंचलित टोकन रिफ्रेशसह OAuth कनेक्शन.",
+ "fullStreaming": "सर्व मॉडेल्ससाठी संपूर्ण स्ट्रीमिंग समर्थन.",
+ "docsLabel": "दस्तऐवज",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "डॅशबोर्ड उघडा",
+ "endpointPage": "एंडपॉइंट पृष्ठ",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "समस्या नोंदवा",
+ "onThisPage": "या पृष्ठावर",
+ "documentationVersion": "दस्तऐवजीकरण - v{version}",
+ "quickStartStep1Title": "1. इंस्टॉल करा आणि चालवा",
+ "quickStartStep1Prefix": "चालवा",
+ "quickStartStep1Middle": "किंवा GitHub वरून क्लोन करा आणि चालवा",
+ "quickStartStep2Title": "2. API की तयार करा",
+ "quickStartStep2Text": "Endpoint -> Registered Keys वर जा. प्रत्येक एन्व्हायर्नमेंटसाठी एक की तयार करा.",
+ "quickStartStep3Title": "3. प्रदाते कनेक्ट करा",
+ "quickStartStep3Text": "OAuth लॉगिन, API की किंवा फ्री-टियर ऑटो-कनेक्टद्वारे प्रदाता खाती जोडा.",
+ "quickStartStep4Title": "4. क्लायंट बेस URL सेट करा",
+ "quickStartStep4Prefix": "तुमचा IDE किंवा API क्लायंट याकडे निर्देशित करा",
+ "quickStartStep4Suffix": "प्रोव्हायडर प्रीफिक्स वापरा, उदाहरणार्थ",
"deploySetupTitle": "सेटअप मार्गदर्शक",
"deploySetupText": "OmniRoute साठी चरण-दर-चरण स्थापना, पर्यावरण कॉन्फिगरेशन आणि प्रथम-रन वॉकथ्रू.",
"deployElectronTitle": "इलेक्ट्रॉन डेस्कटॉप",
@@ -10071,161 +10082,161 @@
"deployPwaTitle": "पीडब्ल्यूए",
"deployPwaText": "Android, iOS आणि डेस्कटॉप ब्राउझरवर प्रोग्रेसिव्ह वेब ॲप म्हणून OmniRoute इंस्टॉल करा.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "Termux द्वारे Android वर OmniRoute हेडलेस पद्धतीने चालवा. तुमच्या मोबाइल ब्राउझरमधून डॅशबोर्ड उघडा.",
+ "featureRoutingTitle": "मल्टी-प्रोव्हायडर राउटिंग",
+ "featureRoutingText": "एका OpenAI-सुसंगत एंडपॉइंटद्वारे 30+ AI प्रोव्हायडर्सकडे विनंत्या रूट करा. चॅट, प्रतिसाद, ऑडिओ आणि इमेज API समर्थित आहेत.",
+ "featureCombosTitle": "कॉम्बोज आणि संतुलन",
+ "featureCombosText": "फॉलबॅक साखळ्या आणि संतुलन धोरणांसह मॉडेल कॉम्बोज तयार करा: राउंड-रॉबिन, प्राधान्य, यादृच्छिक, सर्वात कमी वापरलेले आणि खर्च-अनुकूलित.",
+ "featureUsageTitle": "वापर आणि खर्चाचा मागोवा",
+ "featureUsageText": "रिअल-टाइम टोकन मोजणी, प्रत्येक प्रोव्हायडर/मॉडेलनुसार खर्चाची गणना आणि API की व खात्यानुसार वापराचे तपशीलवार विभाजन.",
+ "featureAnalyticsTitle": "विश्लेषण डॅशबोर्ड",
+ "featureAnalyticsText": "कालांतराने विनंत्या, टोकन्स, त्रुटी, विलंब, खर्च आणि मॉडेलची लोकप्रियता यांसाठी चार्टसह दृश्यात्मक विश्लेषण.",
+ "featureHealthTitle": "स्थितीचे निरीक्षण",
+ "featureHealthText": "लाइव्ह आरोग्य तपासण्या, प्रोव्हायडर स्थिती, सर्किट ब्रेकर अवस्था आणि एक्स्पोनेन्शियल बॅकऑफसह दरमर्यादेचा स्वयंचलित शोध.",
+ "featureCliTitle": "CLI साधने",
+ "featureCliText": "IDE कॉन्फिगरेशन्स व्यवस्थापित करा, बॅकअप निर्यात/आयात करा, codex प्रोफाइल शोधा आणि डॅशबोर्डमधून सेटिंग्ज कॉन्फिगर करा.",
+ "featureSecurityTitle": "सुरक्षा आणि धोरणे",
+ "featureSecurityText": "API की प्रमाणीकरण, IP फिल्टरिंग, प्रॉम्प्ट इंजेक्शन संरक्षण, डोमेन धोरणे, सत्र व्यवस्थापन आणि ऑडिट लॉगिंग.",
+ "featureCloudSyncTitle": "क्लाउड सिंक",
+ "featureCloudSyncText": "एन्क्रिप्टेड क्रेडेन्शियल्स आणि स्वयंचलित फेलओव्हरसह दूरस्थ प्रवेशासाठी तुमचे कॉन्फिगरेशन Cloudflare Workers वर सिंक करा.",
+ "providersAcrossConnectionTypes": "तीन कनेक्शन प्रकारांमध्ये {count} प्रोव्हायडर्स.",
+ "manageProviders": "प्रोव्हायडर्स व्यवस्थापित करा",
+ "providersCount": "{count} प्रोव्हायडर्स",
+ "providerTypeFree": "मोफत स्तर",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "API की",
+ "useCaseSingleEndpointTitle": "अनेक प्रोव्हायडर्ससाठी एकच एंडपॉइंट",
+ "useCaseSingleEndpointText": "क्लायंट्सना एका बेस URL कडे निर्देशित करा आणि मॉडेल प्रीफिक्सनुसार रूट करा (उदाहरणार्थ: gh/, cc/, kr/, openai/).",
+ "useCaseFallbackTitle": "कॉम्बोजसह फॉलबॅक आणि मॉडेल स्विचिंग",
+ "useCaseFallbackText": "Dashboard मध्ये कॉम्बो मॉडेल्स तयार करा आणि प्रोव्हायडर्स अंतर्गत बदलत असतानाही क्लायंट कॉन्फिगरेशन स्थिर ठेवा.",
+ "useCaseUsageVisibilityTitle": "वापर, खर्च आणि डीबगची दृश्यमानता",
+ "useCaseUsageVisibilityText": "Usage आणि Analytics टॅबमध्ये प्रोव्हायडर, खाते आणि API कीनुसार टोकन्स व खर्चाचा मागोवा घ्या.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "बेस URL",
+ "chatEndpointLabel": "चॅट एंडपॉइंट",
+ "modelRecommendationLabel": "मॉडेल शिफारस: स्पष्ट प्रीफिक्स",
+ "clientCodexTitle": "Codex / GitHub Copilot मॉडेल्स",
+ "clientCodexBullet1": "यासह मॉडेल ID वापरा",
+ "clientCodexBullet2": "Codex-फॅमिली मॉडेल्स आपोआप याकडे रूट होतात",
+ "clientCodexBullet3": "Codex व्यतिरिक्त इतर मॉडेल्स यावर सुरू राहतात",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "वापरा",
+ "clientCursorBullet1Suffix": "Cursor मॉडेल्ससाठी प्रीफिक्स वापरा.",
+ "clientCursorBullet2": "OAuth कनेक्शन - Providers पृष्ठावरून लॉग इन करा.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "वापरा",
+ "clientClaudeBullet1Middle": "(Claude) किंवा",
+ "clientClaudeBullet1Suffix": "(Antigravity) उपसर्ग.",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "OmniRoute चा OpenAI-सुसंगत बेस URL म्हणून वापर करा आणि निर्धारक रूटिंगसाठी स्पष्ट प्रोव्हायडर उपसर्ग कायम ठेवा.",
+ "clientWindsurfBullet2": "सामान्य ट्रॅफिकसाठी मॉडेल्सना `/v1/chat/completions` कडे निर्देशित करा आणि Codex-शैलीतील प्रवाहांसाठी `/v1/responses` कायम ठेवा.",
+ "clientWindsurfBullet3": "तयार Windsurf कॉन्फिगरेशन मार्गदर्शिकेसाठी Dashboard -> CLI Tools वापरा.",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "स्पष्ट प्रोव्हायडर/मॉडेल उपसर्गांसह Cline सर्वोत्तम प्रकारे कार्य करते, त्यामुळे राउटरला बॅकएंडचा अंदाज लावावा लागत नाही.",
+ "clientClineBullet2": "सामान्य मॉडेल्ससाठी `/v1/chat/completions` वापरा आणि वेगवेगळ्या खात्यांमध्ये तोच OmniRoute बेस URL पुन्हा वापरा.",
+ "clientClineBullet3": "Cline रनटाइम समस्यांचे डीबगिंग करण्यापूर्वी OAuth/API की सत्यापित करण्यासाठी Providers डॅशबोर्ड वापरा.",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "अंतर्गत खाती किंवा प्रोव्हायडर संयोजने बदलत असताना OmniRoute चा स्थिर बेस URL म्हणून वापर करा.",
+ "clientKimiBullet2": "कोडिंग प्रवाहांमध्ये उपसर्ग असलेल्या मॉडेल्सना प्राधान्य द्या, जेणेकरून फॉलबॅक आणि ऑडिट ट्रेल स्पष्ट राहतील.",
+ "clientKimiBullet3": "टूल्स वापरणाऱ्या क्लायंटसाठी नेटिव्ह Responses-शैलीतील रूटिंग हवे असल्यास `/v1/responses` वापरा.",
+ "protocolsTitle": "प्रोटोकॉल्स: MCP आणि A2A",
+ "protocolsDescription": "OpenAI-सुसंगत API व्यतिरिक्त OmniRoute दोन कार्यकारी प्रोटोकॉल उपलब्ध करून देते: टूल अंमलबजावणीसाठी MCP आणि एजंट-टू-एजंट वर्कफ्लोजसाठी A2A.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "क्लायंटना ऑडिट दृश्यमानतेसह OmniRoute टूल्स शोधता आणि कॉल करता यावीत यासाठी stdio वरील MCP वापरा.",
+ "protocolMcpStep1": "`omniroute --mcp` सह MCP ट्रान्सपोर्ट सुरू करा.",
+ "protocolMcpStep2": "तुमच्या MCP क्लायंटला stdio ट्रान्सपोर्टकडे निर्देशित करा.",
+ "protocolMcpStep3": "कनेक्टिव्हिटी सत्यापित करण्यासाठी `omniroute_get_health` आणि `omniroute_list_combos` कॉल करा.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "टास्क समकालिकपणे किंवा SSE स्ट्रीमिंगद्वारे सबमिट करण्यासाठी A2A JSON-RPC वापरा.",
+ "protocolA2aStep1": "एजंट शोधण्यासाठी `/.well-known/agent.json` वाचा.",
+ "protocolA2aStep2": "`POST /a2a` वर `message/send` किंवा `message/stream` विनंत्या पाठवा.",
+ "protocolA2aStep3": "`tasks/get` आणि `tasks/cancel` वापरून टास्कचे जीवनचक्र व्यवस्थापित करा.",
+ "protocolTroubleshootingTitle": "प्रोटोकॉल समस्यानिवारण",
+ "protocolTroubleshooting1": "MCP स्थिती ऑफलाइन असल्यास, stdio प्रक्रिया सुरू असल्याची आणि हार्टबीट फाइल अपडेट होत असल्याची खात्री करा.",
+ "protocolTroubleshooting2": "A2A टास्क `working` मध्येच राहिल्यास, अंतिम स्थितीसाठी `/api/a2a/tasks/:id` आणि स्ट्रीम इव्हेंट्स तपासा.",
+ "protocolTroubleshooting3": "कार्यकारी नियंत्रणे आणि ऑडिट दृश्यमानतेसाठी `/dashboard/mcp` आणि `/dashboard/a2a` वापरा.",
+ "endpointChatNote": "OpenAI-सुसंगत चॅट एंडपॉइंट (डीफॉल्ट).",
+ "endpointResponsesNote": "Responses API एंडपॉइंट (Codex, o-series).",
+ "endpointModelsNote": "सर्व कनेक्ट केलेल्या प्रोव्हायडर्ससाठी मॉडेल कॅटलॉग.",
+ "endpointAudioNote": "ऑडिओ ट्रान्सक्रिप्शन (Deepgram, AssemblyAI).",
+ "endpointSpeechNote": "टेक्स्ट-टू-स्पीच निर्मिती (ElevenLabs, OpenAI TTS).",
+ "endpointEmbeddingsNote": "टेक्स्ट एम्बेडिंग निर्मिती (OpenAI, Cohere, Voyage).",
+ "endpointImagesNote": "प्रतिमा निर्मिती (NanoBanana).",
+ "endpointRewriteChatNote": "/v1 नसलेल्या क्लायंटसाठी पुनर्लेखन सहाय्यक.",
+ "endpointRewriteResponsesNote": "/v1 नसलेल्या Responses साठी पुनर्लेखन सहाय्यक.",
+ "endpointRewriteModelsNote": "/v1 शिवाय मॉडेल शोधण्यासाठी पुनर्लेखन सहाय्यक.",
+ "mgmtProxiesListNote": "जतन केलेल्या प्रॉक्सी रजिस्ट्री आयटमची सूची दाखवा (पृष्ठांकन समर्थित).",
+ "mgmtProxiesCreateNote": "रजिस्ट्रीमध्ये पुन्हा वापरता येणारा प्रॉक्सी आयटम तयार करा.",
+ "mgmtProxiesHealthNote": "प्रॉक्सी लॉगमधून प्रत्येक जतन केलेल्या प्रॉक्सीसाठी 24 तासांची/रोलिंग आरोग्य मेट्रिक्स मिळवा.",
+ "mgmtProxiesBulkAssignNote": "एका विनंतीमध्ये अनेक स्कोप ID साठी एक प्रॉक्सी नियुक्त करा किंवा त्याची नियुक्ती काढून टाका.",
+ "mgmtAssignmentsListNote": "स्कोप, scope_id किंवा proxy_id नुसार प्रॉक्सी नियुक्त्यांची सूची दाखवा.",
+ "mgmtAssignmentsUpdateNote": "ग्लोबल/प्रोव्हायडर/अकाउंट/कॉम्बो स्कोपसाठी प्रॉक्सी नियुक्त करा किंवा त्याची नियुक्ती काढून टाका.",
+ "mgmtLegacyMigrationNote": "लेगसी proxyConfig मॅप्स रजिस्ट्री नियुक्त्यांमध्ये आयात करा.",
+ "modelPrefixesDescriptionStart": "विशिष्ट प्रोव्हायडरकडे रूट करण्यासाठी मॉडेलच्या नावापूर्वी प्रोव्हायडर प्रीफिक्स वापरा. उदाहरण:",
+ "modelPrefixesDescriptionEnd": "GitHub Copilot कडे रूट करते.",
+ "provider": "प्रोव्हायडर",
+ "type": "प्रकार",
+ "troubleshootingModelRouting": "मॉडेल रूटिंगमध्ये क्लायंट अयशस्वी झाल्यास, स्पष्ट provider/model वापरा (उदाहरणार्थ: gh/gpt-5.1-codex).",
+ "troubleshootingAmbiguousModels": "मॉडेलसंबंधी संदिग्ध त्रुटी आल्यास, केवळ मॉडेल ID ऐवजी प्रोव्हायडर प्रीफिक्स निवडा.",
+ "troubleshootingCodexFamily": "GitHub Codex-फॅमिली मॉडेल्ससाठी, मॉडेल gh/codex-model असेच ठेवा; राउटर आपोआप /responses निवडतो.",
+ "troubleshootingTestConnection": "IDEs किंवा बाह्य क्लायंटमधून चाचणी करण्यापूर्वी Dashboard > Providers > Test Connection वापरा.",
+ "troubleshootingCircuitBreaker": "एखाद्या प्रोव्हायडरसाठी सर्किट ब्रेकर उघडा असल्याचे दिसल्यास, कूलडाउनची प्रतीक्षा करा किंवा तपशीलांसाठी Health पृष्ठ तपासा.",
+ "troubleshootingOAuth": "OAuth प्रोव्हायडर्ससाठी, टोकन्सची मुदत संपल्यास पुन्हा प्रमाणीकरण करा. प्रोव्हायडर कार्डवरील स्थिती निर्देशक तपासा.",
+ "endpointCompletionsNote": "मजकूर निर्मितीसाठी लेगसी कम्प्लिशन्स एंडपॉइंट.",
+ "endpointModerationsNote": "आशय मॉडरेशन आणि सुरक्षितता वर्गीकरण.",
+ "endpointRerankNote": "रिट्रीव्हल-ऑगमेंटेड जनरेशनसाठी दस्तऐवजांचे पुनःरँकिंग (Cohere, Jina).",
+ "endpointSearchNote": "5 प्रोव्हायडर्ससह वेब शोध (Serper, Brave, Exa, Tavily, Perplexity).",
+ "endpointSearchAnalyticsNote": "शोध विनंत्यांसाठी विश्लेषण आणि मेट्रिक्स.",
+ "endpointVideoNote": "व्हिडिओ निर्मिती (ComfyUI, SD WebUI वर्कफ्लोज).",
+ "endpointMusicNote": "ComfyUI वर्कफ्लोजद्वारे संगीत निर्मिती.",
+ "endpointMessagesNote": "Anthropic-नेटिव्ह मेसेजेस एंडपॉइंट.",
+ "endpointCountTokensNote": "दिलेल्या मेसेज पेलोडसाठी टोकन्स मोजा.",
+ "endpointFilesNote": "मल्टिमोडल इनपुट्ससाठी फाइल अपलोड.",
+ "endpointBatchesNote": "मोठ्या प्रमाणातील API विनंत्यांसाठी बॅच प्रक्रिया.",
+ "endpointWsNote": "रिअल-टाइम स्ट्रीमिंगसाठी WebSocket एंडपॉइंट.",
+ "mgmtProvidersListNote": "सर्व नोंदणीकृत प्रोव्हायडर कनेक्शन्सची सूची दाखवा.",
+ "mgmtProvidersCreateNote": "नवीन प्रोव्हायडर कनेक्शन तयार करा.",
+ "mgmtProvidersUpdateNote": "विद्यमान प्रोव्हायडर कनेक्शन अपडेट करा.",
+ "mgmtProvidersDeleteNote": "प्रोव्हायडर कनेक्शन हटवा.",
+ "mgmtProvidersTestNote": "प्रोव्हायडरसाठी कनेक्टिव्हिटी आणि प्रमाणीकरणाची चाचणी करा.",
+ "mgmtProvidersModelsNote": "विशिष्ट प्रोव्हायडरसाठी उपलब्ध मॉडेल्सची सूची दाखवा.",
+ "mgmtSettingsGetNote": "सध्याच्या ॲप्लिकेशन सेटिंग्ज मिळवा.",
+ "mgmtSettingsUpdateNote": "ॲप्लिकेशन सेटिंग्ज अपडेट करा.",
+ "mgmtPayloadRulesGetNote": "पेलोड रूपांतरणाचे नियम मिळवा.",
+ "mgmtPayloadRulesUpdateNote": "पेलोड रूपांतरणाचे नियम अपडेट करा.",
+ "mcpToolsTitle": "MCP साधने",
+ "mcpToolsDescription": "OmniRoute एजंट ऑर्केस्ट्रेशनसाठी Model Context Protocol द्वारे {count} साधने उपलब्ध करून देते.",
+ "mcpToolsCount": "{count} साधने",
+ "mcpToolsToc": "MCP साधने",
+ "mcpToolsRoutingTitle": "रूटिंग आणि शोध",
+ "mcpToolsRoutingDesc": "स्थिती तपासण्या, कॉम्बो व्यवस्थापन, कोटा निरीक्षण, खर्च अहवाल आणि मॉडेल कॅटलॉगचा ॲक्सेस.",
+ "mcpToolsOperationsTitle": "कार्यप्रणाली आणि धोरण",
+ "mcpToolsOperationsDesc": "रूट सिम्युलेशन, बजेट मर्यादा, धोरण बदल, लवचिकता प्रोफाइल आणि प्रदाता मेट्रिक्स.",
+ "mcpToolsCacheTitle": "कॅशे व्यवस्थापन",
+ "mcpToolsCacheDesc": "कॅशेची आकडेवारी पाहा आणि सिमॅंटिक किंवा सिग्नेचर कॅशे रिकामे करा.",
"mcpToolsCompressionTitle": "कॉम्प्रेशन इंजिन",
"mcpToolsCompressionDesc": "RTK/Brotli कॉम्प्रेशन कॉन्फिगर करा, इंजिन स्वॅप करा आणि कॉम्बोद्वारे कॉम्प्रेशन ॲनालिटिक्सची तपासणी करा.",
"mcpToolsOneProxyTitle": "1 प्रॉक्सी / बोगदे",
"mcpToolsOneProxyDesc": "आउटबाउंड प्रॉक्सी व्यवस्थापित करा, निवासी IP फिरवा आणि प्रॉक्सी आरोग्याची तपासणी करा.",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "मेमरी",
+ "mcpToolsMemoryDesc": "कायमस्वरूपी संभाषण मेमरी नोंदी शोधा, जोडा आणि साफ करा.",
+ "mcpToolsSkillsTitle": "कौशल्ये",
+ "mcpToolsSkillsDesc": "सानुकूल कौशल्य अंमलबजावण्यांची सूची पाहा, त्या सक्षम व कार्यान्वित करा आणि त्यांचे निरीक्षण करा.",
+ "featureAutoComboTitle": "ऑटो-कॉम्बो",
+ "featureAutoComboText": "तुमचे कनेक्ट केलेले प्रदाते, वापर पद्धती आणि मॉडेल क्षमता यांच्या आधारे ऑप्टिमाइझ केलेले कॉम्बो स्वयंचलितपणे तयार करा.",
+ "featureSearchTitle": "वेब शोध",
+ "featureSearchText": "विश्लेषण आणि खर्च ट्रॅकिंगसह 5 प्रदात्यांचा (Serper, Brave, Exa, Tavily, Perplexity) एकात्मिक वेब शोध.",
+ "featureMemoryTitle": "मेमरी प्रणाली",
+ "featureMemoryText": "सत्रांमध्ये निष्कर्षण, अंतःक्षेपण, पुनर्प्राप्ती आणि सारांशीकरणासह कायमस्वरूपी संभाषण मेमरी.",
+ "featureSkillsTitle": "कौशल्य फ्रेमवर्क",
+ "featureSkillsText": "अंगभूत आणि सानुकूल कौशल्ये, सँडबॉक्स अंमलबजावणी, विनंती इंटरसेप्शन आणि संदर्भ अंतःक्षेपणासह विस्तारक्षम कौशल्य प्रणाली.",
+ "featureAcpTitle": "एजंट संप्रेषण",
+ "featureAcpText": "एजंट-टू-एजंट कार्यप्रवाह आणि साधन ऑर्केस्ट्रेशन व्यवस्थापित करण्यासाठी Agent Communication Protocol (ACP) रजिस्ट्री.",
+ "protocolAcpTitle": "ACP (एजंट संप्रेषण)",
+ "protocolAcpDesc": "एजंटमधील संप्रेषण आणि साधन सामायिकरणासाठी ACP रजिस्ट्रीद्वारे एजंटची नोंदणी आणि व्यवस्थापन करा.",
+ "protocolAcpStep1": "नोंदणीकृत ACP एजंट पाहण्यासाठी Dashboard → Agents येथे जा.",
+ "protocolAcpStep2": "क्षमता आणि एंडपॉइंट कॉन्फिगरेशनसह नवीन एजंटची नोंदणी करा.",
+ "protocolAcpStep3": "एजंट संप्रेषण चॅनेल कॉन्फिगर करण्यासाठी CLI Tools वापरा.",
"metadataTitleTemplate": "%s — OmniRoute दस्तऐवज",
"metadataDefaultTitle": "OmniRoute दस्तऐवज",
"metadataDescription": "OmniRoute AI गेटवे साठी व्यापक दस्तऐवज — सेटअप, API, संकुचन, तैनाती, आणि अधिक.",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "गोपनीयता धोरण",
+ "termsOfService": "सेवा अटी",
+ "providerConfigurations": "प्रदाता कॉन्फिगरेशन्स",
+ "apiKeys": "API की",
+ "usageLogs": "वापर लॉग",
+ "applicationSettings": "ॲप्लिकेशन सेटिंग्ज",
+ "viewExportAnalytics": "वापर विश्लेषण पाहा आणि निर्यात करा",
+ "clearHistory": "वापर इतिहास कधीही साफ करा",
+ "configureRetention": "लॉग धारणा धोरणे कॉन्फिगर करा",
+ "backupRestore": "तुमच्या डेटाबेसचा बॅकअप घ्या आणि तो पुनर्संचयित करा",
+ "privacyMetadataTitle": "गोपनीयता धोरण | OmniRoute",
+ "privacyMetadataDescription": "OmniRoute AI API प्रॉक्सी राउटरसाठी गोपनीयता धोरण.",
+ "termsMetadataTitle": "सेवा अटी | OmniRoute",
+ "termsMetadataDescription": "OmniRoute AI API प्रॉक्सी राउटरसाठी सेवा अटी.",
+ "backToHome": "मुख्यपृष्ठावर परत जा",
+ "lastUpdated": "शेवटचे अद्यतन: {date}",
+ "policyLastUpdatedDate": "13 फेब्रुवारी 2026",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "प्रश्न आहेत? आमच्या येथे भेट द्या:",
+ "githubRepository": "GitHub रिपॉझिटरी",
+ "privacySection1Title": "1. स्थानिक-प्रथम आर्किटेक्चर",
+ "privacySection1Text": "OmniRoute हे स्थानिक-प्रथम ॲप्लिकेशन म्हणून डिझाइन केले आहे. सर्व डेटा प्रक्रिया आणि संचयन पूर्णपणे तुमच्या मशीनवर होते. तुमची माहिती गोळा करणारा कोणताही केंद्रीकृत सर्व्हर नाही.",
+ "privacySection2Title": "2. आम्ही संचयित करत असलेला डेटा",
+ "privacyDataStoredIn": "खालील डेटा स्थानिक पातळीवर येथे संचयित केला जातो:",
+ "privacyDataProviderConfigurationsDesc": "कनेक्शन URLs, प्रदात्यांचे प्रकार आणि प्राधान्य सेटिंग्ज",
+ "privacyDataApiKeysDesc": "AI प्रदात्यांसोबत प्रमाणीकरणासाठी कूटबद्ध करून स्थानिक पातळीवर संचयित केले जाते",
+ "privacyDataUsageLogsDesc": "विनंती संख्या, टोकन वापर, मॉडेलची नावे, टाइमस्टॅम्प आणि प्रतिसाद वेळा",
+ "privacyDataApplicationSettingsDesc": "थीम प्राधान्ये, राउटिंग धोरण आणि कॉम्बो कॉन्फिगरेशन्स",
+ "privacySection3Title": "3. कोणतीही टेलिमेट्री नाही",
+ "privacySection3Text": "OmniRoute टेलिमेट्री, विश्लेषण किंवा क्रॅश अहवाल गोळा करत नाही. आम्हाला किंवा कोणत्याही तृतीय पक्षाला कोणताही डेटा पाठवला जात नाही. तुमच्या वापराच्या पद्धती, API कॉल्स आणि कॉन्फिगरेशन्स पूर्णपणे खाजगी राहतात.",
+ "privacySection4Title": "4. तृतीय-पक्ष AI प्रदाते",
+ "privacySection4Text": "तुम्ही OmniRoute द्वारे API कॉल करता तेव्हा, तुमच्या विनंत्या तुम्ही कॉन्फिगर केलेल्या AI प्रदात्यांकडे (उदाहरणार्थ: OpenAI, Anthropic, Google) अग्रेषित केल्या जातात. हे प्रदाते तुमचा डेटा कसा हाताळतात हे त्यांच्या स्वतःच्या गोपनीयता धोरणांद्वारे नियंत्रित केले जाते. कृपया पुढील धोरणे पाहा:",
+ "privacyOpenAiPolicy": "OpenAI गोपनीयता धोरण",
+ "privacyAnthropicPolicy": "Anthropic गोपनीयता धोरण",
+ "privacyGooglePolicy": "Google गोपनीयता धोरण",
+ "privacySection5Title": "5. क्लाउड सिंक (पर्यायी)",
+ "privacySection5Text": "तुम्ही पर्यायी क्लाउड सिंक वैशिष्ट्य सक्षम केल्यास, प्रदाता कॉन्फिगरेशन्स आणि API कीज कॉन्फिगर केलेल्या क्लाउड एंडपॉइंटवर पाठवल्या जाऊ शकतात. हे वैशिष्ट्य डीफॉल्टनुसार अक्षम असते आणि ते स्पष्टपणे स्वीकारून सक्षम करावे लागते.",
+ "privacySection6Title": "6. लॉगिंग",
+ "privacyLoggingIntro": "विनंती लॉग्स डॅशबोर्ड सेटिंग्जमधून कॉन्फिगर करता येतात. तुम्ही पुढील गोष्टी करू शकता:",
+ "privacySection7Title": "7. तुमचे अधिकार",
+ "privacySection7TextStart": "सर्व डेटा स्थानिक पातळीवर संचयित केला जात असल्यामुळे, त्यावर तुमचे पूर्ण नियंत्रण असते. तुम्ही कोणत्याही वेळी पुढील गोष्ट काढून टाकून तुमचा डेटा हटवू शकता:",
+ "privacySection7TextEnd": "डिरेक्टरी किंवा डॅशबोर्डमधील डेटाबेस बॅकअप आणि पुनर्संचयित करण्याची वैशिष्ट्ये वापरून.",
+ "termsSection1Title": "1. आढावा",
+ "termsSection1Text": "OmniRoute हा स्थानिक-प्रथम AI API प्रॉक्सी राउटर आहे, जो पूर्णपणे तुमच्या मशीनवर चालतो. तो लोड बॅलन्सिंग, फेलओव्हर आणि वापराचा मागोवा घेण्यासह अनेक AI प्रदात्यांकडे विनंत्या रूट करतो.",
+ "termsSection2Title": "2. वापरकर्त्याच्या जबाबदाऱ्या",
+ "termsResponsibilityApiKeys": "तृतीय-पक्ष AI प्रदात्यांसाठी (OpenAI, Anthropic, Google इ.) तुमच्या स्वतःच्या API कीज आणि क्रेडेन्शियल्स व्यवस्थापित करण्याची संपूर्ण जबाबदारी तुमची आहे.",
+ "termsResponsibilityCompliance": "OmniRoute द्वारे ज्या प्रत्येक AI प्रदात्याच्या API मध्ये तुम्ही प्रवेश करता, त्या प्रदात्याच्या सेवा अटींचे तुम्ही पालन करणे आवश्यक आहे.",
+ "termsResponsibilitySecurity": "पासवर्ड सेट करणे आणि नेटवर्क प्रवेश मर्यादित करणे यांसह तुमच्या स्थानिक OmniRoute इंस्टॉलेशनच्या सुरक्षिततेची जबाबदारी तुमची आहे.",
+ "termsSection3Title": "3. हे कसे कार्य करते",
+ "termsSection3Text": "OmniRoute मध्यस्थ प्रॉक्सी म्हणून काम करते. OmniRoute कडे पाठवलेले API कॉल्स रूपांतरित करून तुम्ही कॉन्फिगर केलेल्या AI प्रदात्यांकडे अग्रेषित केले जातात. आवश्यक प्रोटोकॉल रूपांतरणाव्यतिरिक्त OmniRoute तुमच्या विनंत्या किंवा प्रतिसादांमधील मजकूर बदलत नाही.",
+ "termsSection4Title": "4. डेटा हाताळणी",
+ "termsDataStoredLocally": "सर्व डेटा तुमच्या मशीनवरील SQLite डेटाबेसमध्ये स्थानिक पातळीवर संचयित केला जातो.",
+ "termsNoTransmission": "तुम्ही क्लाउड सिंक वैशिष्ट्ये स्पष्टपणे सक्षम केल्याशिवाय OmniRoute कोणताही डेटा बाह्य सर्व्हरवर पाठवत नाही.",
+ "termsDataLocationText": "वापर नोंदी, API की आणि कॉन्फिगरेशन येथे संग्रहित केले जातात",
+ "termsSection5Title": "5. अस्वीकरण",
+ "termsSection5Text": "OmniRoute कोणत्याही प्रकारच्या हमीशिवाय \"जसे आहे तसे\" प्रदान केले जाते. API वापरामुळे आलेला कोणताही खर्च, सेवा खंडित होणे किंवा डेटा गमावणे यासाठी आम्ही जबाबदार नाही. तुमच्या कॉन्फिगरेशनच्या बॅकअप प्रती नेहमी ठेवा.",
+ "termsSection6Title": "6. मुक्त स्रोत",
+ "termsSection6Text": "OmniRoute हे मुक्त-स्रोत सॉफ्टवेअर आहे. त्याच्या परवान्याच्या अटींनुसार तुम्ही त्याचे परीक्षण, बदल आणि वितरण करू शकता."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI एजंट्स",
+ "description": "तुमच्या सिस्टमवर इंस्टॉल केलेले CLI एजंट्स शोधा. स्वयंचलित शोधासाठी सानुकूल एजंट्स जोडा.",
+ "refresh": "रीफ्रेश करा",
+ "installed": "इंस्टॉल केलेले",
+ "notFound": "आढळले नाही",
+ "builtIn": "अंगभूत",
+ "custom": "सानुकूल",
+ "remove": "काढून टाका",
+ "addCustomAgent": "सानुकूल एजंट जोडा",
+ "addCustomAgentDesc": "शोधासाठी कोणतेही CLI साधन नोंदणीकृत करा. रीफ्रेश केल्यावर ते स्वयंचलितपणे स्कॅन केले जाईल.",
+ "agentName": "एजंटचे नाव",
+ "binaryName": "बायनरीचे नाव",
+ "versionCommand": "आवृत्ती कमांड",
+ "spawnArgs": "स्पॉन आर्ग्युमेंट्स",
+ "addAgent": "एजंट जोडा",
+ "scanning": "CLI एजंट्ससाठी सिस्टम स्कॅन करत आहे...",
+ "opencodeIntegration": "OpenCode एकत्रीकरण",
+ "opencodeDetected": "opencode {version} आढळले",
+ "opencodeDesc": "तुमचा OmniRoute बेस URL आणि सर्व उपलब्ध मॉडेल्ससह वापरण्यास तयार {configFile} तयार करा — ती तुमच्या प्रकल्पाच्या रूटमध्ये ठेवा आणि {command} चालवा.",
+ "downloadConfig": "{file} डाउनलोड करा",
+ "downloaded": "डाउनलोड झाले!",
+ "setupGuideTitle": "सेटअप मार्गदर्शक",
+ "openCliTools": "CLI साधने उघडा",
+ "setupGuideDetectCliTitle": "इंस्टॉल केलेले CLI शोधा",
+ "setupGuideDetectCliDesc": "CLI इंस्टॉल किंवा अपडेट केल्यानंतर रीफ्रेश करा क्लिक करा, जेणेकरून OmniRoute बायनरी आणि आवृत्त्या पुन्हा स्कॅन करू शकेल.",
+ "setupGuideCustomAgentTitle": "सानुकूल बायनरी नोंदणीकृत करा",
+ "setupGuideCustomAgentDesc": "तुमचे CLI अंगभूत सूचीमध्ये नसल्यास सानुकूल एजंट जोडा वापरा. बायनरीचे नाव आणि आवृत्ती कमांड द्या.",
+ "setupGuideCommandMissingTitle": "'command not found' चे निराकरण करा",
+ "setupGuideCommandMissingDesc": "CLI कमांड PATH मध्ये अस्तित्वात असल्याची खात्री करा, नवीन टर्मिनल सत्र उघडा आणि रीफ्रेश पुन्हा चालवा.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "साधा चॅट",
+ "streaming": "स्ट्रीमिंग",
+ "system-prompt": "सिस्टम प्रॉम्प्ट",
+ "thinking": "विचार प्रक्रिया",
+ "tool-calling": "साधन कॉलिंग",
+ "multi-turn": "बहु-टर्न",
"vision": "दृष्टी",
"schema-coercion": "स्कीमा जबरदस्ती"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "सिस्टम संदेशासह मूलभूत चॅट टेम्पलेट",
+ "streaming": "स्ट्रीमिंग प्रतिसादांसाठी टेम्पलेट",
+ "system-prompt": "सानुकूल सिस्टम प्रॉम्प्टसह टेम्पलेट",
+ "thinking": "तर्क/विचार बजेटसह टेम्पलेट",
+ "tool-calling": "टूल/फंक्शन कॉलिंगसाठी टेम्पलेट",
+ "multi-turn": "बहु-टर्न संभाषणांसाठी टेम्पलेट",
"vision": "प्रतिमा इनपुटसह मल्टीमोडल टेम्पलेट",
"schema-coercion": "संरचित-आउटपुट / JSON स्कीमा अंमलबजावणी"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "तुम्ही एक उपयुक्त AI सहाय्यक आहात.",
+ "userGreeting": "नमस्कार! आज मी तुम्हाला कशी मदत करू शकतो?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "याबद्दल एक कथा लिहा"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "जीवनाचा अर्थ काय आहे?",
+ "systemInstruction": "विचारपूर्वक, तात्त्विक उत्तर द्या."
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "क्वांटम संगणन समजावून सांगा"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "हवामानाची माहिती मिळवण्यासाठी शहराचे नाव",
+ "toolDescription": "एखाद्या ठिकाणचे सध्याचे हवामान मिळवा",
+ "userWeather": "Tokyo मधील हवामान कसे आहे?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "तुम्ही एक उपयुक्त सहाय्यक आहात.",
+ "assistantExample": "याबाबत तुम्हाला मदत करण्यात मला आनंद होईल.",
+ "userInitial": "मला याबाबत मदत हवी आहे",
+ "userFollowUp": "तुम्ही याबद्दल अधिक सविस्तर सांगू शकता का?"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "कॅशे व्यवस्थापन",
+ "description": "प्रदात्याच्या प्रॉम्प्ट कॅशेची कार्यक्षमता आणि स्थानिक सिमॅंटिक प्रतिसादांचा पुनर्वापर यांचे निरीक्षण करा.",
+ "refresh": "रीफ्रेश करा",
+ "clearAll": "सिमॅंटिक कॅशे साफ करा",
+ "memoryEntries": "मेमरी नोंदी",
+ "memoryEntriesSub": "इन-मेमरी LRU",
+ "dbEntries": "DB नोंदी",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "कॅशे हिट्स",
+ "cacheHitsSub": "एकूण {total} पैकी",
+ "tokensSaved": "वाचवलेले टोकन",
+ "tokensSavedSub": "हिट्सवरून अंदाजित",
+ "hitRate": "हिट दर",
+ "performance": "कॅशे कार्यप्रदर्शन",
+ "autoRefresh": "प्रत्येक {seconds}s नंतर आपोआप रीफ्रेश होते",
+ "hits": "हिट्स",
+ "misses": "मिसेस",
+ "total": "एकूण",
+ "behavior": "कॅशेचे वर्तन",
+ "behaviorDeterministic": "केवळ temperature=0 असलेल्या नॉन-स्ट्रीमिंग विनंत्या कॅशे केल्या जातात.",
+ "behaviorBypass": "{header} हेडर वापरून वगळा.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "डीफॉल्ट TTL: 30 मिनिटे. {envVar} द्वारे कॉन्फिगर करा.",
+ "idempotency": "आयडेम्पोटन्सी स्तर",
+ "activeDedupKeys": "सक्रिय डीड्युप कीज",
+ "dedupWindow": "डीड्युप कालावधी",
+ "clearSuccess": "सिमॅंटिक कॅशे साफ केली. {count} नोंदी काढल्या.",
+ "clearError": "कॅशे साफ करण्यात अयशस्वी.",
+ "unavailable": "कॅशे अनुपलब्ध",
+ "unavailableDesc": "कॅशेची आकडेवारी मिळवता आली नाही. सर्व्हर सुरू असल्याची खात्री करा.",
"loadingCacheAria": "कॅश लोड होत आहे",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "प्रॉम्प्ट कॅशे (प्रदात्याच्या बाजूचे)",
+ "semanticCache": "सिमॅंटिक कॅशे",
+ "promptCacheSectionDesc": "वापर इतिहासातील प्रदात्याच्या बाजूच्या प्रॉम्प्ट कॅशिंगची गतिविधी दाखवते, ज्यामुळे कॅशे नियंत्रण कुठे सक्रिय आहे आणि इनपुटचा किती पुनर्वापर होत आहे हे तुम्ही पाहू शकता.",
+ "promptTrendDesc": "मागील 24 तासांमधील तासानुसार विनंती संख्या, कॅशे व्याप्ती आणि कॅशे वाचन संख्या.",
+ "cachedRequests": "कॅशे केलेल्या विनंत्या",
+ "cachedRequests24h": "कॅशे केलेल्या विनंत्या (24 तास)",
+ "cacheHitRate": "कॅशे हिट दर",
+ "cacheRate": "कॅशे दर",
+ "cacheRateDesc": "एकूण विनंत्यांपैकी",
+ "cachedTokens": "कॅशे वाचन टोकन",
+ "cacheCreationTokens": "कॅशे लेखन टोकन",
+ "cacheMetrics": "प्रॉम्प्ट कॅशे मेट्रिक्स",
+ "withCacheControl": "कॅशे नियंत्रणासह",
+ "cachedTokensRead": "कॅशेमधून वाचले",
+ "cacheCreationWrite": "कॅशेमध्ये लिहिले",
+ "cacheReuseRatio": "कॅशे पुनर्वापर गुणोत्तर",
+ "cacheReuseRatioDesc": "कॅशे वाचन टोकन / एकूण इनपुट टोकन",
+ "estCostSaved": "अंदाजे वाचलेला खर्च",
+ "lastUpdated": "शेवटचे अद्यतन",
+ "hoursTracked": "ट्रॅक केलेले तास",
+ "busiestHour": "सर्वाधिक व्यस्त तास",
+ "peakCacheRate": "कमाल कॅशे दर",
+ "trendHour": "तास",
+ "activityVolume": "गतिविधी",
+ "requestsShort": "विनंत्या",
+ "inputShort": "इनपुट",
+ "cachedShort": "कॅशे केलेले",
+ "writeShort": "लेखन",
+ "resetting": "रीसेट करत आहे...",
+ "resetMetrics": "मेट्रिक्स रीसेट करा",
+ "byProvider": "प्रदात्यानुसार तपशील",
+ "providerCacheRateDesc": "प्रत्येक प्रदाता एकूण इनपुट टोकन, कॅशे वाचन टोकन आणि कॅशे लेखन टोकन दाखवतो, ज्यामुळे तुम्ही मूळ एकूण संख्यांशी पुनर्वापर गुणोत्तर पडताळू शकता.",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "विनंत्या",
+ "inputTokens": "एकूण इनपुट टोकन्स",
+ "cachedTokensCol": "कॅशे वाचन",
+ "cacheCreation": "कॅशे लेखन",
+ "trend24h": "कॅशे कल (24 तास)",
+ "peakCached": "कमाल कॅश केलेले",
+ "cached": "कॅश केलेले",
+ "overview": "आढावा",
"tableProvider": "प्रदाता",
"tableModel": "मॉडेल",
"performanceTitle": "कामगिरी",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute ची स्वतःची निर्धारक प्रतिसाद कॅशे. सक्षम केल्यावर, वारंवार येणाऱ्या नॉन-स्ट्रीमिंग temperature=0 विनंत्या अपस्ट्रीम प्रदात्याकडे न पाठवता स्थानिकरीत्या पूर्ण केल्या जाऊ शकतात.",
+ "semanticCacheDisabledDesc": "सिमॅंटिक कॅशे अक्षम आहे. तुम्ही Settings मध्ये ती पुन्हा सुरू करेपर्यंत OmniRoute स्थानिक प्रतिसादांचा पुनर्वापर वगळेल.",
+ "semanticEntriesDesc": "सध्या SQLite मध्ये संग्रहित केलेल्या कायमस्वरूपी सिमॅंटिक कॅशे नोंदी. प्रदात्याच्या बाजूची प्रॉम्प्ट कॅशे गतिविधी येथे सूचीबद्ध केलेली नाही.",
+ "searchEntries": "नोंदी शोधा...",
+ "search": "शोधा",
+ "loading": "लोड होत आहे...",
+ "entriesLoadError": "सिमॅंटिक कॅशे नोंदी लोड करण्यात अयशस्वी.",
+ "noEntries": "कॅशे नोंदी आढळल्या नाहीत",
+ "noPromptCacheData": "प्रदात्याच्या बाजूची कोणतीही प्रॉम्प्ट कॅशे गतिविधी अद्याप नोंदवली गेलेली नाही.",
+ "noTrendData": "गेल्या 24 तासांत कोणतीही प्रॉम्प्ट कॅशे गतिविधी नोंदवली गेलेली नाही.",
+ "signature": "स्वाक्षरी",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "निर्मितीची वेळ",
+ "expires": "कालबाह्यता",
+ "actions": "क्रिया",
+ "deduplicatedRequests": "डिडुप्लिकेट केलेल्या विनंत्या",
+ "savedCalls": "वाचवलेले API कॉल्स",
+ "totalProcessed": "प्रक्रिया केलेल्या एकूण विनंत्या",
+ "disabled": "अक्षम",
+ "totalRequests": "एकूण विनंत्या",
"reasoningCache": "रिझनिंग रीप्ले",
"reasoningCacheDesc": "मल्टी-टर्न टूल कॉलिंग फ्लोसाठी मॉडेल विचार जतन करते",
"reasoningEntries": "सक्रिय नोंदी",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}m पूर्वी",
"hoursAgo": "{hours}h पूर्वी",
"daysAgo": "{days}d पूर्वी",
- "entries": "Entries"
+ "entries": "नोंदी"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
- "ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "levelGlobal": "जागतिक",
+ "levelProvider": "प्रदाता",
+ "levelCombo": "संयोजन",
+ "levelKey": "की",
+ "levelDirect": "थेट (प्रॉक्सी नाही)",
+ "titleGlobal": "जागतिक प्रॉक्सी कॉन्फिगरेशन",
+ "titleLevel": "{level} प्रॉक्सी — {label}",
+ "loading": "प्रॉक्सी कॉन्फिगरेशन लोड होत आहे...",
+ "inheritingFrom": "याकडून वारसा घेत आहे",
+ "source": "स्रोत",
+ "savedProxy": "जतन केलेला प्रॉक्सी",
+ "custom": "सानुकूल",
+ "selectSavedProxyPlaceholder": "जतन केलेली प्रॉक्सी निवडा...",
+ "proxyType": "प्रॉक्सी प्रकार",
+ "host": "होस्ट",
+ "hostPlaceholder": "1.2.3.4 किंवा proxy.example.com",
+ "port": "पोर्ट",
+ "authOptional": "प्रमाणीकरण (पर्यायी)",
+ "username": "वापरकर्तानाव",
+ "usernamePlaceholder": "वापरकर्तानाव",
+ "password": "पासवर्ड",
+ "passwordPlaceholder": "पासवर्ड",
+ "connected": "कनेक्ट झाले",
+ "ip": "आयपी:",
+ "connectionFailed": "कनेक्शन अयशस्वी",
+ "testConnection": "कनेक्शनची चाचणी घ्या",
+ "clear": "साफ करा",
+ "cancel": "रद्द करा",
+ "save": "जतन करा",
+ "errorSelectSavedProxy": "कृपया प्रथम जतन केलेली प्रॉक्सी निवडा.",
+ "errorSelectProxyFirst": "कृपया प्रथम प्रॉक्सी निवडा.",
+ "errorProxyNotFound": "निवडलेली प्रॉक्सी सापडली नाही.",
+ "errorClearSavedProxy": "जतन केलेली प्रॉक्सी साफ करण्यात अयशस्वी",
+ "errorSaveProxy": "प्रॉक्सी कॉन्फिगरेशन जतन करण्यात अयशस्वी",
+ "errorClearProxy": "प्रॉक्सी कॉन्फिगरेशन साफ करण्यात अयशस्वी",
+ "errorSocks5Hidden": "SOCKS5 कॉन्फिगर केले आहे, परंतु NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false असल्यामुळे ते लपवले आहे."
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "{providerName} कनेक्ट करा",
+ "waiting": "अधिकृततेची प्रतीक्षा करत आहे",
+ "completeAuthInPopup": "पॉपअपमध्ये अधिकृतता पूर्ण करा.",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "पॉपअप ब्लॉक झाला? URL स्वतः प्रविष्ट करा",
+ "deviceCodeVisitUrl": "खालील URL ला भेट द्या आणि कोड प्रविष्ट करा:",
+ "deviceCodeVerificationUrl": "पडताळणी URL",
+ "deviceCodeYourCode": "तुमचा कोड",
+ "deviceCodeWaiting": "अधिकृततेची प्रतीक्षा करत आहे...",
"googleLoopbackTitle": "या पत्त्यावरून Google साइन-इन पूर्ण होऊ शकत नाही",
"googleLoopbackWhatHappens": "Google फक्त अधिकृतता कोड जारी करतो जेव्हा {redirectUri} त्या ब्राउझरमधून पोहोचता येतो जो साइन-इनला मान्यता देतो. येथे त्या पत्त्याचा निर्देश या संगणकाकडे आहे, OmniRoute सर्व्हरकडे नाही — त्यामुळे संमती स्क्रीन थांबते, पुनर्निर्देशित होत नाही, आणि कॉपी करण्यासाठी कोणतीही कॉलबॅक URL नाही.",
"googleLoopbackRecommended": "शिफारस केलेले — हे तुमच्या स्वतःच्या संगणकावर चालवा, नंतर खाली परिणाम पेस्ट करा:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "किंवा SSH द्वारे डॅशबोर्ड पोर्ट पुढे करा आणि टनेलद्वारे OmniRoute पुनः लोड करा:",
"googleLoopbackTunnelNote": "{userPlaceholder} आपल्या SSH वापरकर्तानावाने बदला, टर्मिनल उघडे ठेवा, नंतर {localUrl} उघडा आणि तिथून पुन्हा कनेक्ट करा.",
"googleLoopbackHeadlessAlt": "पूर्ण हेडलेस वापरासाठी स्थानिक कॉलबॅकशिवाय, आपले स्वतःचे Google OAuth प्रमाणपत्रे आणि एक सार्वजनिक बेस URL कॉन्फिगर करा.",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "दूरस्थ प्रवेश: तुम्ही OmniRoute मध्ये दूरस्थपणे प्रवेश करत असल्यामुळे, अधिकृततेनंतर तुम्हाला त्रुटी पृष्ठ दिसेल (localhost सापडले नाही). हे सामान्य आहे — फक्त तुमच्या ब्राउझरच्या अॅड्रेस बारमधील संपूर्ण URL कॉपी करा आणि खाली पेस्ट करा.",
"loopbackMismatchTitle": "या पत्त्यावर साइन-इन पूर्ण होऊ शकत नाही",
"loopbackMismatchWhatHappened": "काय चालले आहे",
"loopbackMismatchExplanation": "लॉगिन मंजूर केल्यानंतर, {providerName} नेहमी ब्राउझरला {redirectUri} कडे परत पाठवतो. ती पत्ता या ब्राउझर चालवणाऱ्या संगणकाकडे निर्देशित करते, OmniRoute सर्व्हरकडे नाही — त्यामुळे अधिकृतता कोड कधीच OmniRoute कडे पोहोचत नाही आणि प्रदाता त्रुटी न दाखवता साइन-इनमध्ये अपयशी ठरतो.",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "या ब्राउझरमध्ये, टनेलद्वारे OmniRoute पुन्हा उघडा:",
"loopbackMismatchStep3": "त्यानंतर नवीन टॅबमधून {providerName} पुन्हा कनेक्ट करा. कॉलबॅक आता सर्व्हरपर्यंत पोहोचतो आणि लॉगिन सामान्यपणे पूर्ण होते.",
"loopbackMismatchAlternative": "SSH प्रवेश नाही का? जर या प्रदात्याकडे टोकन आयात टॅब असेल, तर टोकनद्वारे कनेक्ट करा — ती पद्धत लूपबॅक कॉलबॅकचा वापर करत नाही.",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "पायरी 1: हा URL तुमच्या ब्राउझरमध्ये उघडा",
+ "copy": "कॉपी करा",
+ "step2PasteCallback": "पायरी 2: कॉलबॅक URL किंवा अधिकृतता कोड येथे पेस्ट करा",
+ "step2Hint": "अधिकृततेनंतर, संपूर्ण कॉलबॅक URL पेस्ट करा. Claude Code आणि Cline साठी, तुम्ही प्रमाणीकरण कोड थेटही पेस्ट करू शकता, उदा. code#state.",
+ "connect": "कनेक्ट करा",
+ "cancel": "रद्द करा",
+ "success": "कनेक्शन यशस्वी झाले!",
+ "successMessage": "तुमचे {providerName} खाते कनेक्ट केले आहे.",
+ "done": "पूर्ण झाले",
+ "error": "कनेक्शन अयशस्वी झाले",
+ "tryAgain": "पुन्हा प्रयत्न करा",
"errorSessionIncomplete": "OAuth सत्र अपूर्ण आहे (पुनर्निर्देश URI किंवा कोड सत्यापक गहाळ आहे). कनेक्शन पुन्हा सुरू करा आणि पुन्हा प्रयत्न करा.",
"errorExchangeFailed": "विनिमय अयशस्वी झाला",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: डिफॉल्ट Google OAuth क्रेडेन्शियल्स फक्त localhost वर कार्य करतात. दूरस्थ वापरासाठी, आपल्या स्वतःच्या OAuth क्रेडेन्शियल्स पर्यावरणीय चलांद्वारे कॉन्फिगर करा: ANTIGRAVITY_OAUTH_CLIENT_ID आणि ANTIGRAVITY_OAUTH_CLIENT_SECRET. 'दूरस्थ सर्व्हरवरील OAuth' या README विभागाकडे पहा.",
@@ -10765,14 +10776,14 @@
"devinDesktopPasteDescription": "एक प्रमाणित Devin सत्रातून विद्यमान Devin API की पेस्ट करा. की निर्यात उपलब्धता आणि चरण Devin आवृत्ती आणि खात्यानुसार भिन्न असू शकतात.",
"devinPasteDescription": "आपला WINDSURF_API_KEY प्रदान करा (जो `devin auth login` द्वारे किंवा Windsurf IDE \"Windsurf: Provide Auth Token\" कमांडद्वारे मिळविला जातो).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "Grok बिल्ड auth.json",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "API की / टोकन",
"saving": "जतन करत आहे…",
"saveConnection": "संपर्क जतन करा",
"gheDescription": "तुमच्या GitHub Enterprise उदाहरणाचा बेस URL प्रविष्ट करा (उदाहरणार्थ, https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise यूआरएल",
"gheUrlRequired": "GitHub Enterprise URL आवश्यक आहे",
"gitlabDuoSetupTitle": "GitLab Duo OAuth सेटअप",
"gitlabDuoSetupMessage": "GitLab Duo OAuth कॉन्फिगर केलेले नाही. {applicationsUrl} येथे एक OAuth अनुप्रयोग नोंदणी करा ज्यामध्ये पुनर्निर्देश URI {redirectUri} आणि स्कोप्स \"{scopes}\" आहेत, नंतर {clientIdEnv} (आणि पर्यायी {clientSecretEnv}) सेट करा आणि पुन्हा सुरू करा.",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Cursor द्वारे लॉग इन करा",
+ "tabImport": "टोकन आयात करा",
+ "loginDescription": "Cursor चे ब्राउझर लॉगिन उघडते. Docker मध्ये कार्य करते — तुमच्या होस्ट ब्राउझरमध्ये मंजुरी द्या, त्यानंतर येथे परत या.",
+ "loginWithCursor": "Cursor द्वारे लॉग इन करा",
+ "startingLogin": "सुरू करत आहे…",
+ "waitingApproval": "Cursor लॉगिनच्या मंजुरीची प्रतीक्षा करत आहे…",
+ "openUrlHint": "ब्राउझर उघडला नसल्यास:",
+ "openLoginLink": "लॉगिन पृष्ठ उघडा",
+ "cancelLogin": "लॉगिन रद्द करा",
+ "autoDetecting": "टोकन आपोआप शोधत आहे...",
+ "readingFromCursor": "Cursor IDE किंवा cursor-agent मधून वाचत आहे",
+ "tokensAutoDetected": "Cursor IDE मधून टोकन यशस्वीरीत्या आपोआप शोधली गेली!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Docker मध्ये चालवत आहात? Cursor द्वारे लॉग इन करण्यास प्राधान्य द्या. कंटेनरमध्ये IDE स्वयंचलित आयात आणि cursor-agent सहसा उपलब्ध नसतात. docs/providers/CURSOR-DOCKER.md पहा.",
+ "accessToken": "अॅक्सेस टोकन",
+ "refreshToken": "रिफ्रेश टोकन",
+ "refreshTokenPlaceholder": "पर्यायी — स्वयंचलित टोकन रिफ्रेश सक्षम करते",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "अॅक्सेस टोकन आपोआप भरले जाईल...",
+ "machineId": "मशीन ID",
+ "optional": "(पर्यायी)",
+ "machineIdPlaceholder": "मशीन ID आपोआप भरला जाईल...",
+ "importing": "आयात करत आहे...",
+ "importToken": "टोकन आयात करा",
+ "cancel": "रद्द करा",
+ "errorAutoDetect": "टोकन आपोआप शोधता आली नाहीत",
+ "errorAutoDetectFailed": "टोकन स्वयंचलितपणे शोधणे अयशस्वी झाले",
+ "errorEnterToken": "कृपया अॅक्सेस टोकन प्रविष्ट करा",
+ "errorImportFailed": "आयात अयशस्वी झाली",
+ "errorLoginStart": "Cursor लॉगिन सुरू करण्यात अयशस्वी",
+ "errorLoginPoll": "Cursor लॉगिन अयशस्वी झाले",
+ "errorLoginTimeout": "Cursor लॉगिनची वेळ संपली — पुन्हा प्रयत्न करा"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "किंमत संरचना",
+ "loading": "किंमत डेटा लोड होत आहे...",
+ "pricingRatesFormat": "किंमत दरांचे स्वरूप",
+ "ratesDescription": "सर्व दर प्रति दशलक्ष टोकनमागे डॉलरमध्ये ($/1M tokens) आहेत. उदाहरण: 2.50 चा इनपुट दर म्हणजे प्रति 1,000,000 इनपुट टोकनसाठी $2.50.",
+ "model": "मॉडेल",
+ "input": "इनपुट",
+ "output": "आउटपुट",
+ "cached": "कॅश केलेले",
+ "reasoning": "तर्क",
+ "cacheCreation": "कॅश निर्मिती",
+ "noPricingData": "किंमत डेटा उपलब्ध नाही",
+ "resetToDefaults": "डीफॉल्टवर रीसेट करा",
+ "cancel": "रद्द करा",
+ "saving": "जतन करत आहे...",
+ "saveChanges": "बदल जतन करा",
+ "resetConfirm": "सर्व किंमती डीफॉल्टवर रीसेट करायच्या? ही क्रिया पूर्ववत करता येणार नाही.",
+ "errorSaveFailed": "किंमती जतन करण्यात अयशस्वी",
+ "errorResetFailed": "किंमती रीसेट करण्यात अयशस्वी"
},
"proxyRegistry": {
"selectAllProxies": "सर्व प्रॉक्सी निवडा",
"selectProxy": "{name} निवडा",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "प्रॉक्सी रजिस्ट्री",
+ "description": "पुन्हा वापरता येणारे प्रॉक्सी साठवा आणि त्यांच्या नेमणुकांचा मागोवा घ्या.",
+ "importLegacy": "जुना डेटा आयात करा",
+ "bulkAssign": "एकत्रित नेमणूक",
+ "addProxy": "प्रॉक्सी जोडा",
+ "loading": "प्रॉक्सी लोड होत आहेत...",
+ "noProxies": "अद्याप कोणतेही प्रॉक्सी जतन केलेले नाहीत.",
+ "tableName": "नाव",
+ "tableEndpoint": "एंडपॉइंट",
+ "tableStatus": "स्थिती",
+ "tableHealth": "आरोग्य (24h)",
+ "tableUsage": "वापर",
+ "tableActions": "क्रिया",
+ "test": "चाचणी करा",
+ "edit": "संपादित करा",
+ "delete": "हटवा",
+ "modalCreateTitle": "प्रॉक्सी तयार करा",
+ "modalEditTitle": "प्रॉक्सी संपादित करा",
+ "labelName": "नाव",
+ "labelType": "प्रकार",
"labelFamily": "IP फॅमिली",
"familyAuto": "ऑटो (ड्युअल-स्टॅक)",
"familyIpv4": "फक्त IPv4",
"familyIpv6": "फक्त IPv6",
"familyHint": "इग्रेस ॲड्रेस फॅमिली. ऑटो ड्युअल-स्टॅक ठेवते; IPv4/IPv6 या प्रॉक्सीला त्या फॅमिलीशी पिन करते (फक्त IPv6 प्रॉक्सी अंतर्गत v4 लीक होण्यापासून रोखते).",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "होस्ट",
+ "labelPort": "पोर्ट",
+ "labelUsername": "वापरकर्तानाव",
+ "labelPassword": "पासवर्ड",
+ "labelRegion": "प्रदेश",
+ "labelStatus": "स्थिती",
+ "labelNotes": "नोंदी",
+ "usernamePlaceholderEdit": "सध्याचे वापरकर्तानाव कायम ठेवण्यासाठी रिक्त सोडा",
+ "passwordPlaceholderEdit": "सध्याचा पासवर्ड कायम ठेवण्यासाठी रिक्त सोडा",
+ "statusActive": "सक्रिय",
+ "statusInactive": "निष्क्रिय",
+ "cancel": "रद्द करा",
+ "save": "जतन करा",
+ "bulkModalTitle": "मोठ्या प्रमाणात प्रॉक्सी नेमणूक",
+ "bulkLabelScope": "व्याप्ती",
+ "bulkLabelProxy": "प्रॉक्सी",
+ "bulkClearAssignment": "(नेमणूक काढून टाका)",
+ "bulkLabelScopeIds": "व्याप्ती ID (स्वल्पविरामाने किंवा नवीन ओळीने विभक्त)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "लागू करा",
"labelScope": "स्कोप",
"labelProxy": "प्रॉक्सी",
"scopeGlobal": "ग्लोबल",
@@ -10893,19 +10904,19 @@
"bulkImportErrorInvalidPort": "अवैध PORT (1-65535 असणे आवश्यक आहे)",
"bulkImportErrorInvalidType": "अवैध प्रकार (http, https किंवा सॉक्स5 वापरा)",
"bulkImportErrorInvalidStatus": "अवैध स्थिती (सक्रिय किंवा निष्क्रिय वापरा)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "प्रॉक्सी नोंदणी लोड करण्यात अयशस्वी",
+ "errorNameHostRequired": "नाव आणि होस्ट आवश्यक आहेत",
+ "errorSaveFailed": "प्रॉक्सी जतन करण्यात अयशस्वी",
+ "errorDeleteFailed": "प्रॉक्सी हटवण्यात अयशस्वी",
+ "errorForceDeleteConfirm": "हा प्रॉक्सी अजूनही नेमलेला आहे. सक्तीने हटवून सर्व नेमणुका काढून टाकायच्या?",
+ "errorMigrateFailed": "जुने प्रॉक्सी कॉन्फिग स्थलांतरित करण्यात अयशस्वी",
+ "errorBulkFailed": "मोठ्या प्रमाणातील नेमणूक कार्यान्वित करण्यात अयशस्वी",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "अयशस्वी",
+ "successRate": "{rate}% यशस्वी",
+ "avgLatency": "सरासरी {latency}ms",
+ "assignmentsCount": "{count} नेमणुका",
"noData": "—",
"testSuccess": "✓ {ip}",
"testLatency": "{latency}ms",
@@ -10957,6 +10968,9 @@
"strategyLatency": "लेटन्सी-ऑप्टिमाइझ्ड",
"poolMembersLabel": "पूल सदस्य ({count})",
"poolNoMembers": "या पूलमध्ये अद्याप कोणतेही प्रॉक्सी नाहीत.",
+ "poolEgressObservation": "{exits, plural, one {# निर्गमन} other {# निर्गमने}} {connections, plural, one {# कनेक्शनद्वारे} other {# कनेक्शनद्वारे}} वापरले · एका निर्गमनावर कमाल {max} · मागील {hours} तास",
+ "poolEgressObservationEmpty": "मागील {hours} तासांत कोणतीही वाहतूक आढळली नाही",
+ "poolEgressObservationHint": "या कालावधीतील प्रॉक्सी लॉगवरून मोजलेले: या पूलच्या सदस्यांसाठी आढळलेले वेगवेगळे निर्गमन IP आणि त्यांचा वापर करणारी OmniRoute कनेक्शने. \"एका निर्गमनावर\" याचा अर्थ संपूर्ण कालावधीत असा आहे, एकाच वेळी नाही. प्रति-IP 429 लॉकआउट केवळ त्याच प्रदाता कुटुंबातील कनेक्शने थांबवते.",
"poolRemove": "काढून टाका",
"poolRemoveFailed": "पूलमधून प्रॉक्सी काढून टाकण्यात अयशस्वी",
"poolAddLabel": "प्रॉक्सी जोडा",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "पूल असाइनमेंट सेव्ह करण्यात अयशस्वी"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "मॉडेल प्लेग्राउंड",
+ "description": "डॅशबोर्डवरून कोणत्याही मॉडेलची थेट चाचणी करा. प्रदाता, मॉडेल आणि एंडपॉइंट प्रकार निवडा, त्यानंतर मूळ प्रतिसाद पाहण्यासाठी विनंती पाठवा.",
+ "endpoint": "एंडपॉइंट",
+ "provider": "प्रदाता",
+ "model": "मॉडेल",
+ "accountKey": "खाते / की",
+ "autoAccounts": "स्वयं ({count} खाती)",
+ "noAccounts": "कोणतीही खाती नाहीत",
+ "send": "पाठवा",
+ "cancel": "रद्द करा",
+ "audioFile": "ऑडिओ फाइल",
+ "attachImages": "प्रतिमा संलग्न करा (व्हिजन)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "कमाल 4 प्रतिमा",
+ "selectAudioFile": "लिप्यंतरणासाठी ऑडिओ फाइल निवडा (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "सर्व साफ करा",
+ "request": "विनंती",
+ "response": "प्रतिसाद",
+ "transcription": "लिप्यंतरण",
+ "copy": "कॉपी करा",
+ "resetToDefault": "डीफॉल्टवर रीसेट करा",
+ "downloadAudio": "ऑडिओ डाउनलोड करा",
+ "copyText": "मजकूर कॉपी करा",
+ "transcriptionHint": "लिप्यंतरणासाठी multipart/form-data वापरले जाते. वरील ऑडिओ फाइल अपलोड करा — खालील JSON अतिरिक्त पॅरामीटर्स (model, language) नियंत्रित करते.",
+ "imagesGenerated": "{count} प्रतिमा तयार केल्या",
+ "generatedImage": "तयार केलेली प्रतिमा {index}",
+ "save": "जतन करा",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "चॅट पूर्णता",
+ "responses": "प्रतिसाद",
"completions": "कम्प्लिशन्स",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "प्रतिमा निर्मिती",
+ "embeddings": "एम्बेडिंग्ज",
+ "speech": "मजकूर-ते-वाणी",
+ "transcription": "ऑडिओ लिप्यंतरण",
+ "video": "व्हिडिओ निर्मिती",
+ "music": "संगीत निर्मिती",
"moderations": "मॉडरेशन्स",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "पुनःक्रमांकन",
+ "search": "वेब शोध",
"webFetch": "वेब फेच"
},
"conversationalChat": "संभाषणात्मक गप्पा",
"clearChat": "चॅट साफ करा",
"typeMessagePlaceholder": "संदेश टाइप करा... (नवीन ओळीसाठी Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "चॅट",
+ "tabCompare": "तुलना करा",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "बिल्ड",
+ "configPane": "कॉन्फिग",
+ "systemPrompt": "सिस्टम प्रॉम्प्ट",
+ "systemPromptPlaceholder": "तुम्ही एक उपयुक्त सहाय्यक आहात.",
+ "modelPlaceholder": "उदा. openai/gpt-4o",
+ "endpointLabel": "एंडपॉइंट",
+ "parametersLabel": "पॅरामीटर्स",
+ "collapseConfig": "कॉन्फिग पेन संकुचित करा",
+ "expandConfig": "कॉन्फिग पेन विस्तृत करा",
+ "temperature": "तापमान",
+ "maxTokens": "कमाल टोकन्स",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "उपस्थिती दंड",
+ "frequencyPenalty": "वारंवारता दंड",
"reasoningLabel": "रीझनिंग",
"thinking": "थिंकिंग",
"effort": "प्रयत्न",
"effortDefault": "डिफॉल्ट",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "यादृच्छिक (रिकामे ठेवा)",
+ "presetsLabel": "प्रीसेट्स",
+ "loadPreset": "प्रीसेट लोड करा",
+ "savePreset": "प्रीसेट जतन करा",
+ "noPresets": "प्रीसेट्स नाहीत",
+ "presetNamePlaceholder": "प्रीसेटचे नाव",
+ "savingPreset": "जतन करत आहे…",
+ "nameRequired": "नाव आवश्यक आहे",
+ "failedToSavePreset": "प्रीसेट जतन करण्यात अयशस्वी",
+ "improvePrompt": "प्रॉम्प्ट सुधारा",
+ "improvingPrompt": "सुधारत आहे…",
+ "improvePromptTitle": "AI वापरून तुमचा प्रॉम्प्ट सुधारा",
+ "setModelFirst": "प्रथम मॉडेल सेट करा",
"setModelInConfigFirst": "प्रथम Config पॅनेलमध्ये मॉडेल सेट करा.",
"improvePromptFailed": "प्रॉम्प्ट सुधारणे अयशस्वी झाले.",
"improvePromptAria": "AI वापरून प्रॉम्प्ट सुधारा",
"confirmImprovePrompt": "प्रॉम्प्ट सुधारण्याची पुष्टी करा",
"improvePromptDescription": "हे सुधारित आवृत्ती तयार करण्यासाठी तुमचे सध्याचे सिस्टम प्रॉम्प्ट trae.ai मध्ये या ब्राउझरमध्ये प्रथम लॉगिन केलेले असावे. अधिकृत पृष्ठ फक्त विद्यमान सत्राची पुष्टी करते — ते तुम्हाला लॉगिन करू शकत नाही. तुम्हाला \"लॉगिन अयशस्वी\" दिसल्यास, \"open solo.trae.ai\" वर क्लिक करा, लॉगिन करा, आणि नंतर येथे परत या.",
"waitingForAuthorization": "trae.ai साठी वाट पाहत आहे…",
"authorizeWithBrowser": "ब्राउझरद्वारे अधिकृत करा",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai उघडा",
"orPasteManually": "किंवा टोकन हाताने पेस्ट करा",
"manualInstructions": "solo.trae.ai मध्ये साइन इन करा, DevTools → Network उघडा, कोणतीही चॅट संदेश पाठवा, आणि Authorization: Cloud-IDE-JWT {tokenPlaceholder} विनंती हेडरमधून JWT कॉपी करा. JWT आयुष्य ~14 दिवस आहे. वैकल्पिक ओळख क्षेत्रे त्याच विनंती शरीरातील common_params मधून येतात.",
"accessTokenLabel": "ऍक्सेस टोकन (क्लाउड-आयडीई-जेडब्ल्यूटी)",
@@ -14048,11 +14081,11 @@
"actionApprove": "योजना मंजूर करा",
"actionCancel": "रद्द करा",
"actionSeeInGraph": "आलेखात पहा",
+ "actionRepeat": "पुनरावृत्ती करा",
"actionDone": "क्रिया लागू केली",
"actionFailed": "क्रिया अयशस्वी: {error}",
"detailFailed": "तपशील लोड करण्यात अयशस्वी: {error}",
"mirroredInA2A": "A2A मध्ये प्रतिबिंबित",
- "actionRepeat": "पुनरावृत्ती करा",
"repeatConfirm": "पुष्टीसाठी पुन्हा क्लिक करा",
"repeatDone": "नवीन रन तयार केला",
"repeatUnavailable": "मूळ इनपुट उपलब्ध नाही"
@@ -14066,57 +14099,57 @@
"networkError": "नेटवर्क त्रुटी — प्रदाता एक्सपोजर सेटिंग अद्यतनित करता येत नाही"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "समर्थकांसाठी ऑफर",
+ "subtitle": "Radar कडून अधिकृत सवलती, क्रेडिट्स, चाचणी कालावधी आणि पुनरावलोकन केलेले भागीदार लाभ.",
+ "backToRadar": "Radar कडे परत जा",
+ "loading": "ऑफर लोड होत आहेत...",
+ "refresh": "ऑफर रीफ्रेश करा",
+ "refreshing": "रीफ्रेश करत आहे...",
+ "loadFailed": "आम्हाला ऑफर रीफ्रेश करता आल्या नाहीत. शेवटची सत्यापित स्थानिक कॅशे जतन केली आहे.",
+ "empty": "सध्या कोणत्याही सक्रिय ऑफर उपलब्ध नाहीत.",
+ "keyRequiredTitle": "समर्थक की आवश्यक आहे",
+ "keyRequiredDescription": "ऑफर हा Radar चा थेट लाभ आहे. Radar स्क्रीनवर विद्यमान समर्थक की जोडा, तुमची योगदानकर्ता स्थिती सत्यापित करा किंवा ती मिळवण्यासाठी प्रकल्पाला समर्थन द्या.",
+ "contributorButton": "मी योगदानकर्ता आहे",
+ "supporterButton": "प्रकल्पाला समर्थन द्या",
+ "partnerBadge": "भागीदार",
+ "officialBadge": "अधिकृत",
+ "conditionsLabel": "अटी:",
+ "validUntil": "{date} पर्यंत वैध",
+ "noExpiry": "कालबाह्यता जाहीर केलेली नाही",
+ "openOffer": "ऑफर पहा",
+ "trialDays": "{days, plural, one {# दिवस} other {# दिवस}}"
},
"radarIntelPage": {
"title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "subtitle": "Radar च्या मालकीची ELO क्रमवारी आणि कॅटलॉगमधील वस्तुनिष्ठ बदल.",
+ "backToRadar": "Radar कडे परत जा",
+ "loading": "Intel लोड होत आहे...",
+ "refresh": "Intel रीफ्रेश करा",
+ "syncing": "रीफ्रेश करत आहे...",
+ "loadFailed": "आम्हाला Intel रीफ्रेश करता आले नाही. शेवटची सत्यापित स्थानिक कॅशे जतन केली आहे.",
+ "empty": "अद्याप कोणताही सत्यापित Intel स्नॅपशॉट उपलब्ध नाही.",
+ "supporterBadge": "Radar समर्थक",
+ "methodology": "कार्यपद्धती",
+ "eloMethod": "ELO, प्रारंभिक {initial}, K={factor}",
+ "freshness": "कॅटलॉगचा अद्ययावतपणा",
+ "ageDays": "{days, plural, one {# दिवस जुना} other {# दिवस जुना}}",
+ "trend": "कॅटलॉगचा कल",
+ "modelDelta": "{current} मॉडेल, +{added} / -{removed}",
+ "ranking": "मॉडेल क्रमवारी",
+ "noRankings": "अद्याप कोणत्याही पुष्टी झालेल्या तुलना उपलब्ध नाहीत.",
+ "model": "मॉडेल",
+ "category": "श्रेणी",
+ "rating": "रेटिंग",
+ "matches": "जुळण्या",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "नवीन",
+ "aging": "जुने होत आहे",
+ "stale": "कालबाह्य"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "वाढत आहे",
+ "stable": "स्थिर",
+ "shrinking": "घटत आहे"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "विनंती प्रदाता संदर्भ विंडो ओलांडते"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference हा OmniRoute चा मुक्त-स्रोत मित्र आहे",
+ "description": "एकाच OpenAI-सुसंगत एंडपॉइंटद्वारे डझनभर अत्याधुनिक मॉडेल्सची पुनर्विक्री करणारे, किंमतीनुसार क्रमबद्ध केलेले गेटवे — प्रत्येक विनंती सर्वात स्वस्त पात्र प्रदात्याकडे रूट करते आणि सूची किमतीपेक्षा कधीही जास्त आकारत नाही.",
+ "cta": "API की मिळवा",
+ "partnerLinkNote": "भागीदार लिंक",
+ "dismissAriaLabel": "बंद करा"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models कॅटलॉगमध्ये विचार-पातळीच्या प्रकारांची (उदा. -low, -medium, -high) निर्मिती अक्षम करा."
}
diff --git a/src/i18n/messages/ms.json b/src/i18n/messages/ms.json
index 0854540494..82d40caada 100644
--- a/src/i18n/messages/ms.json
+++ b/src/i18n/messages/ms.json
@@ -31,7 +31,7 @@
"active": "Aktif",
"inactive": "Tidak aktif",
"noData": "Tiada data tersedia",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Belum ada apa-apa di sini",
"configure": "Konfigurasikan",
"manualConfig": "Konfigurasi manual",
"manage": "Urus",
@@ -47,7 +47,7 @@
"time": "Masa",
"details": "Butiran",
"created": "Dicipta",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Kali Terakhir Disegar Semula",
"loadMore": "Muatkan Lagi",
"noResults": "Tiada hasil ditemui",
"reloadPage": "Muat Semula Halaman",
@@ -70,8 +70,8 @@
"note": "Nota",
"free": "Percuma",
"skipToContent": "Langkau ke kandungan",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Pelayan sedang mengalami masalah. Sesetengah ciri mungkin tidak tersedia.",
+ "maintenanceServerUnreachable": "Pelayan tidak dapat dicapai. Menyambung semula...",
"accept": "Terima",
"accountId": "ID Akaun",
"alias": "Alias",
@@ -100,7 +100,7 @@
"sortOrder": "Susun Susunan",
"tab": "Tab",
"text": "Teks",
- "textarea": "Textarea",
+ "textarea": "Kawasan Teks",
"tool": "alat",
"toolId": "ID alat",
"web": "Web",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "Gagal menetapkan semula harga",
"apikey": "Kunci API",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Pergi ke Papan Pemuka",
+ "checkSystemStatus": "Semak Status Sistem",
+ "selectModel": "Pilih Model",
"addModel": "Tambah model",
"effortNone": "Tiada",
"effortLow": "Rendah",
@@ -162,12 +162,12 @@
"effortMax": "Maks",
"effortUltra": "Ultra",
"reasoningEffort": "Usaha penaakulan",
- "wireApi": "Wire API",
+ "wireApi": "API Wire",
"modelAliases": "Alias model",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Gabungan",
+ "noModelsFound": "Tiada model ditemukan",
+ "clear": "Kosongkan",
+ "done": "Selesai",
"selectAll": "Pilih semua",
"unselectAll": "Batal pilih semua",
"visibleModels": "kelihatan",
@@ -184,519 +184,519 @@
"selectAllProviders": "Semak semua penyedia",
"clearProviderSelection": "Nyahpilih penyedia",
"providersSelectedCount": "{count} penyedia diperiksa",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Ralat Berlaku",
+ "comboDeleted": "Gabungan Dipadamkan",
+ "hide": "Sembunyikan",
+ "creating": "Sedang Mencipta",
+ "comboCreated": "Gabungan Dicipta",
+ "swapFormats": "Tukar Format",
+ "daysAgo": "Hari Lalu",
+ "retries": "Percubaan Semula",
+ "errorDuringRestore": "Ralat Semasa Pemulihan",
+ "eventsAppearHint": "Petunjuk Kemunculan Acara",
+ "noLockouts": "Tiada Sekatan",
+ "webSearchDesc": "Perihalan Carian Web",
+ "audioProvidersHeading": "Tajuk Penyedia Audio",
"cloudAgentProviders": "Pembekal Agen Awan",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Minit Lalu",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
+ "liveAutoRefreshing": "Penyegaran Automatik Langsung",
+ "webSearch": "Carian Web",
+ "anthropicPrefixPlaceholder": "Ruang Letak Awalan Anthropic",
+ "addModelToCombo": "Tambah Model pada Gabungan",
+ "failedToLoad": "Gagal Dimuatkan",
+ "categoryMedia": "Kategori Media",
+ "enableCloud": "Dayakan Awan",
+ "expirationBannerExpiringSoon": "Sepanduk Tamat Tempoh Tidak Lama Lagi",
+ "retry": "Cuba semula",
+ "embeddings": "Pembenaman",
+ "errorCount": "Bilangan Ralat",
+ "backupReasonManual": "Sebab Sandaran Manual",
+ "safeSearchModerate": "Carian Selamat Sederhana",
+ "activeLimiters": "Pengehad Aktif",
+ "a2aCardTitle": "Tajuk Kad A2A",
+ "cloudWorkerUnreachable": "Cloud Worker Tidak Dapat Dihubungi",
+ "testFailed": "Ujian Gagal",
+ "compatibleBaseUrlHint": "Petunjuk URL Asas Serasi",
+ "usageTracking": "Penjejakan Penggunaan",
+ "disableCloudTitle": "Tajuk Lumpuhkan Cloud",
+ "noConnections": "Tiada Sambungan",
+ "providerHealth": "Kesihatan Penyedia",
+ "confirmDbImport": "Sahkan Import Pangkalan Data",
+ "notAvailableSymbol": "Simbol Tidak Tersedia",
+ "backupsAvailable": "Sandaran Tersedia",
+ "providerAuto": "Penyedia Automatik",
+ "newProviderNamePlaceholder": "Ruang Letak Nama Penyedia Baharu",
+ "a2aQuickStartStep2": "Langkah 2 Mula Pantas A2A",
+ "ok": "OK",
+ "available": "Tersedia",
+ "noBackupYet": "Belum Ada Sandaran",
+ "more": "Lagi",
+ "noCompatibleYet": "Belum Ada yang Serasi",
+ "multiProvider": "Berbilang Penyedia",
+ "repairEnvHint": "Petunjuk Baiki Env",
+ "disablingCloud": "Melumpuhkan Cloud",
+ "testBench": "Bangku Ujian",
+ "valid": "Sah",
+ "cloudBenefitShare": "Perkongsian Manfaat Cloud",
+ "mcpCardTitle": "Tajuk Kad MCP",
+ "disableConfirm": "Sahkan Pelumpuhan",
+ "filters": "Penapis",
+ "expirationBannerExpiredDesc": "Perihalan Sepanduk Tamat Tempoh",
+ "saveComboDefaults": "Simpan Lalai Gabungan",
+ "cloudConnectedVerified": "Cloud Disambungkan dan Disahkan",
+ "uptime": "Masa Operasi",
+ "compatibleProdPlaceholder": "Ruang Letak Produksi Serasi",
+ "fallbackChainsTitle": "Tajuk Rantaian Sandaran",
+ "oauthLabel": "Label OAuth",
+ "a2aCardDescription": "Perihalan Kad A2A",
+ "okShort": "OK Ringkas",
+ "maintenance": "Penyelenggaraan",
+ "formatConverter": "Penukar Format",
+ "zedImportNetworkError": "Ralat Rangkaian Import Zed",
+ "apiKeyLabel": "Label Kunci API",
+ "noModelsForProvider": "Tiada Model untuk Penyedia",
+ "mcpCardDescription": "Perihalan Kad MCP",
+ "apiTypeLabel": "Label Jenis API",
+ "configuredProvidersLabel": "Label Penyedia yang Dikonfigurasikan",
+ "maxRetriesLabel": "Label Percubaan Semula Maksimum",
+ "title": "Tajuk",
"output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
+ "prefixHint": "Petunjuk Awalan",
+ "skipWizard": "Langkau Pembantu Persediaan",
+ "failedCount": "Bilangan Gagal",
+ "confirmDbImportDesc": "Perihalan Pengesahan Import Pangkalan Data",
+ "entries": "Entri",
+ "until": "Sehingga",
+ "disableCombo": "Nyahdayakan Kombo",
+ "liveMonitorDescriptionPrefix": "Awalan Perihalan Pemantau Langsung",
+ "runningCount": "Bilangan Sedang Berjalan",
+ "noActiveConnectionsInGroup": "Tiada Sambungan Aktif dalam Kumpulan",
+ "savedSuccessfully": "Berjaya Disimpan",
+ "systemStorage": "Storan Sistem",
+ "videoDesc": "Perihalan Video",
+ "maxResults": "Hasil Maksimum",
+ "timeRangeMonth": "Julat Masa Bulan",
+ "testSummary": "Ringkasan Ujian",
+ "failedSetPassword": "Gagal Menetapkan Kata Laluan",
"audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
+ "restore": "Pulihkan",
+ "disableWarning": "Amaran Penyahdayaan",
+ "moderationsDesc": "Perihalan Penyederhanaan",
+ "providerHealthStatusAria": "ARIA Status Kesihatan Penyedia",
+ "modelNamePlaceholder": "Ruang Letak Nama Model",
+ "mcpQuickStartStep2": "Langkah 2 Mula Pantas MCP",
+ "quickStart": "Mula Pantas",
+ "fullExportFailedWithError": "Eksport Penuh Gagal dengan Ralat",
+ "loadingBackups": "Memuatkan Sandaran",
+ "anthropicBaseUrlPlaceholder": "Ruang Letak URL Asas Anthropic",
+ "description": "Penerangan",
+ "noProviderFound": "Tiada Penyedia Ditemui",
"auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "protocolsDescription": "Penerangan Protokol",
+ "cloudSessionNote": "Nota Sesi Awan",
+ "advancedSettings": "Tetapan Lanjutan",
+ "defaultStrategy": "Strategi Lalai",
+ "purgeExpiredLogs": "Bersihkan Log Tamat Tempoh",
+ "justNow": "Baru Sahaja",
+ "providerTestFailed": "Ujian Penyedia Gagal",
+ "openaiBaseUrlPlaceholder": "Ruang Letak URL Asas OpenAI",
+ "image": "Imej",
+ "failedCreateChain": "Gagal Mencipta Rantaian",
+ "importDatabase": "Import Pangkalan Data",
+ "allDataLocal": "Semua Data Disimpan Secara Setempat",
+ "sectionTitle": "Tajuk Bahagian",
+ "failedToggle": "Gagal Menogol",
+ "editCombo": "Edit Gabungan",
+ "testResults": "Keputusan Ujian",
+ "searchQuery": "Pertanyaan Carian",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "Duplikat",
+ "createCombo": "Cipta Gabungan",
+ "searchTypeWeb": "Jenis Carian Web",
+ "addChain": "Tambah Rantaian",
+ "prefixLabel": "Label Awalan",
+ "listModelsDesc": "Penerangan Senarai Model",
+ "databaseSize": "Saiz Pangkalan Data",
+ "chainCreated": "Rantaian Dicipta",
+ "providerTestTimeout": "Ujian Penyedia Tamat Masa",
+ "routingStrategy": "Strategi Penghalaan",
+ "translateAction": "Tindakan Terjemah",
+ "exportFailed": "Eksport Gagal",
+ "connectedVerificationPending": "Disambungkan, Pengesahan Belum Selesai",
+ "a2aQuickStartTitle": "Tajuk Mula Pantas A2A",
+ "couldNotTest": "Tidak Dapat Menguji",
+ "testAllCompatible": "Uji Semua yang Serasi",
+ "anthropicCompatibleName": "Nama Serasi Anthropic",
+ "disabling": "Melumpuhkan",
+ "failedEnable": "Gagal Didayakan",
+ "categoryUtility": "Kategori Utiliti",
+ "customUrlOptional": "URL Tersuai Pilihan",
+ "localProviders": "Penyedia Tempatan",
+ "comboNamePlaceholder": "Ruang Letak Nama Gabungan",
+ "memoryRss": "RSS Memori",
+ "disableProvider": "Lumpuhkan Penyedia",
+ "welcomeDesc": "Penerangan Selamat Datang",
+ "nameLabel": "Label Nama",
+ "allOperational": "Semua Beroperasi",
+ "backupNow": "Sandarkan Sekarang",
+ "providerMaxRetriesAria": "ARIA Percubaan Semula Maksimum Penyedia",
+ "textToSpeechDesc": "Penerangan Teks kepada Pertuturan",
+ "machineId": "ID Mesin",
+ "globalProxy": "Proksi Global",
+ "hitsMisses": "Capaian dan Kegagalan",
+ "testDesc": "Penerangan Ujian",
+ "chatDesc": "Penerangan Sembang",
+ "importSuccess": "Import Berjaya",
+ "chat": "Sembang",
+ "a2aQuickStartStep1": "Langkah 1 Mula Pantas A2A",
+ "importFailed": "Import Gagal",
+ "inputPlaceholder": "Ruang Letak Input",
+ "providerModelsTitle": "Tajuk Model Penyedia",
+ "lastBackup": "Sandaran Terakhir",
+ "yourEndpoint": "Titik Akhir Anda",
+ "autoDisableThresholdDesc": "Penerangan Ambang Lumpuh Automatik",
+ "rerankDesc": "Penerangan Susun Semula Kedudukan",
+ "modelsPathPlaceholder": "Ruang Letak Laluan Model",
+ "noCombosYet": "Belum Ada Gabungan",
+ "connectedVerificationPendingWithError": "Disambungkan, Pengesahan Belum Selesai dengan Ralat",
+ "comboDefaultsGuideHint1": "Petunjuk 1 Panduan Lalai Gabungan",
+ "enableCloudTitle": "Tajuk Dayakan Awan",
+ "configuredProvidersHint": "Petunjuk Penyedia yang Dikonfigurasikan",
+ "paused": "Dijeda",
+ "llmProviders": "Penyedia LLM",
+ "enableCombo": "Dayakan Gabungan",
+ "removeProviderOverrideAria": "ARIA Alih Keluar Penggantian Penyedia",
+ "nodeVersion": "Versi Node",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Eksport Gagal Dengan Ralat",
+ "proxyConfigured": "Proksi Dikonfigurasikan",
+ "concurrencyPerModel": "Keserentakan Bagi Setiap Model",
+ "protocolTasksLabel": "Label Tugas Protokol",
+ "oauthProviders": "Penyedia OAuth",
+ "lockedCount": "Bilangan Dikunci",
+ "deleteChainConfirm": "Sahkan Pemadaman Rantaian",
+ "recentTranslations": "Terjemahan Terkini",
+ "zedImportButton": "Butang Import Zed",
+ "responsesDesc": "Penerangan Respons",
+ "testedCount": "Bilangan Diuji",
+ "providersCommaSeparatedPlaceholder": "Ruang Letak Penyedia Dipisahkan Koma",
+ "signatureDefaults": "Lalai Tandatangan",
+ "errorCreating": "Ralat Semasa Mencipta",
+ "timeRangeYear": "Julat Masa Tahun",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Awan Berjaya Dilumpuhkan",
+ "deleteConfirm": "Sahkan Pemadaman",
+ "check": "Semak",
+ "safeSearch": "Carian Selamat",
+ "protocolLastActivity": "Aktiviti Terakhir Protokol",
+ "openMcpDashboard": "Buka Papan Pemuka MCP",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Label Laluan Sembang",
+ "retryDelay": "Kelewatan Cubaan Semula",
+ "errorUpdating": "Ralat Semasa Mengemas Kini",
+ "ideCliIntegrations": "Integrasi IDE dan CLI",
+ "imageGeneration": "Penjanaan Imej",
+ "apiKeyRequired": "Kunci API Diperlukan",
+ "resetAllTitle": "Tajuk Tetapkan Semula Semua",
+ "connectionError": "Ralat Sambungan",
+ "modelName": "Nama Model",
+ "apiKeyForCheck": "Kunci API Untuk Semakan",
+ "cloudRequestTimeout": "Tamat Masa Permintaan Awan",
+ "showConfiguredOnly": "Tunjukkan Yang Dikonfigurasikan Sahaja",
"showFreeOnly": "Percuma sahaja",
"addFirstProvider": "Tambahkan pembekal pertama anda",
"addFirstProviderDesc": "Sambungkan pembekal AI untuk memulakan penghalaan permintaan melalui OmniRoute. Anda boleh menggunakan pembekal percuma, kunci API atau akaun OAuth.",
"learnMore": "Ketahui lebih lanjut",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Sertakan Domain",
+ "promptCache": "Cache Prom",
+ "cloudConnected": "Awan Disambungkan",
+ "deleteChain": "Padam Rantaian",
+ "chatPathPlaceholder": "Ruang Letak Laluan Sembang",
+ "databasePath": "Laluan Pangkalan Data",
+ "usingLocalServer": "Menggunakan Pelayan Tempatan",
+ "globalComboConfig": "Konfigurasi Kombo Global",
+ "backupFailed": "Sandaran Gagal",
+ "tabProtocols": "Protokol Tab",
+ "continue": "Teruskan",
+ "categorySearch": "Carian Kategori",
+ "rateLimitStatus": "Status Had Kadar",
+ "repairEnvSuccess": "Pembaikan Persekitaran Berjaya",
+ "nameRequired": "Nama Diperlukan",
+ "country": "Negara",
+ "trackMetricsDesc": "Perihalan Penjejakan Metrik",
+ "durationSecondsShort": "Tempoh Saat Pendek",
+ "formatConverterDescription": "Perihalan Penukar Format",
+ "cloudBenefitAccess": "Akses Manfaat Awan",
+ "maxRetries": "Percubaan Semula Maksimum",
+ "queueTimeout": "Tamat Masa Baris Gilir",
"queueDepth": "Kedalaman Baris Gilir",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Tambah Penyedia",
+ "realtime": "Masa Nyata",
+ "totalTranslations": "Jumlah Terjemahan",
+ "protocolActiveStreamsLabel": "Label Strim Aktif Protokol",
+ "repairEnv": "Baiki Persekitaran",
+ "modelsCount": "Bilangan Model",
+ "viewBackups": "Lihat Sandaran",
+ "responsesApi": "Responses API",
+ "copyComboName": "Salin Nama Kombo",
+ "failures": "Kegagalan",
+ "failedUpdate": "Kemas Kini Gagal",
+ "imageDesc": "Perihalan Imej",
+ "failedCreate": "Penciptaan Gagal",
+ "remainingOfLimit": "Baki Daripada Had",
+ "protocolsTitle": "Tajuk Protokol",
+ "expirationBannerExpiringSoonDesc": "Perihalan Sepanduk Tamat Tempoh Tidak Lama Lagi",
+ "source": "Sumber",
+ "failed": "Gagal",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
+ "mcpQuickStartStep1": "Langkah 1 Permulaan Pantas MCP",
+ "runTest": "Jalankan Ujian",
+ "loadingFallbackChains": "Memuatkan Rantaian Sandaran",
+ "healthy": "Sihat",
+ "version": "Versi",
+ "saveBlockWeighted": "Simpan Blok Berwajaran",
+ "zedImportNone": "Tiada Import Zed",
+ "noBackupsYet": "Belum Ada Sandaran",
+ "noGlobalProxy": "Tiada Proksi Global",
+ "noModels": "Tiada Model",
+ "stickyLimit": "Had Kekal",
+ "passedCount": "Bilangan Lulus",
+ "zedImportFailed": "Import Zed Gagal",
+ "saving": "Menyimpan",
+ "testAll": "Uji Semua",
+ "globalProxyDesc": "Perihalan Proksi Global",
+ "latencyP99": "Kependaman P99",
+ "connectingToCloud": "Menyambung ke Cloud",
+ "responses": "Respons",
+ "errorDeleting": "Ralat Semasa Memadam",
+ "openaiPrefixPlaceholder": "Ruang Letak Awalan OpenAI",
+ "enterPassword": "Masukkan Kata Laluan",
+ "openA2aDashboard": "Buka Papan Pemuka A2A",
+ "enableProvider": "Dayakan Penyedia",
+ "modeTest": "Mod Ujian",
+ "failedDeleteChain": "Gagal Memadam Rantaian",
+ "providerDesc": "Perihalan Penyedia",
+ "templateLoadHint": "Petunjuk Memuatkan Templat",
+ "lastFailure": "Kegagalan Terakhir",
+ "moveDown": "Alih ke Bawah",
+ "providerLabel": "Label Penyedia",
+ "clearCacheFailed": "Gagal Mengosongkan Cache",
+ "imagesGenerations": "Penjanaan Imej",
+ "repairEnvWorking": "Membaiki Persekitaran Kerja",
+ "millisecondsShort": "ms",
+ "globalLabel": "Label Global",
+ "failuresPlural": "Kegagalan",
+ "completionsLegacyDesc": "Perihalan Pelengkapan Legasi",
+ "searchProviders": "Cari Penyedia",
+ "chatPathHint": "Petunjuk Laluan Sembang",
+ "defaultStrategyDesc": "Perihalan Strategi Lalai",
+ "latencyP95": "Kependaman P95",
+ "textToSpeech": "Teks kepada Pertuturan",
+ "searchType": "Jenis Carian",
+ "messages": "Mesej",
+ "aggregatorsGateways": "Pengagregat dan Gerbang",
+ "comboStrategyAria": "Strategi Gabungan Aria",
"input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "testingConnection": "Menguji Sambungan",
+ "excludeDomains": "Kecualikan Domain",
+ "webCookieProviders": "Penyedia Kuki Web",
+ "allTestsPassed": "Semua Ujian Lulus",
+ "openaiCompatibleName": "Nama Serasi Openai",
+ "warningCostOptimizedPartialPricing": "Amaran Harga Separa Dioptimumkan untuk Kos",
+ "comboDefaultsGuideTitle": "Tajuk Panduan Lalai Kombo",
+ "hoursAgo": "Jam yang Lalu",
+ "notAvailable": "Tidak Tersedia",
+ "skipAndContinue": "Langkau dan Teruskan",
+ "moderations": "Moderasi",
+ "proxyConfig": "Konfigurasi Proksi",
+ "upstreamProxyProviders": "Penyedia Proksi Huluan",
+ "exportAll": "Eksport Semua",
+ "queuedCount": "Bilangan dalam Baris Gilir",
+ "resetAll": "Tetapkan Semula Semua",
+ "noTranslations": "Tiada Terjemahan",
+ "avgLatency": "Purata Kependaman",
+ "throttleStatus": "Status Pendikitan",
+ "backupRetentionDesc": "Penerangan Pengekalan Sandaran",
+ "noCBData": "Tiada Data Cb",
+ "chainDeleted": "Rantaian Dipadamkan",
+ "timeLeft": "Masa Berbaki",
+ "expirationBannerExpired": "Sepanduk Tamat Tempoh Telah Luput",
+ "language": "Bahasa",
+ "invalidFileType": "Jenis Fail Tidak Sah",
+ "monitoredProviders": "Penyedia yang Dipantau",
+ "errors": "Ralat",
+ "heap": "Timbunan",
+ "chatCompletions": "Pelengkapan Sembang",
+ "exampleTemplatesHint": "Petunjuk Templat Contoh",
+ "retryDelayLabel": "Label Kelewatan Cuba Semula",
+ "audioTranscription": "Transkripsi Audio",
+ "fallbackChainsDesc": "Penerangan Rantaian Sandaran",
+ "exampleTemplates": "Templat Contoh",
+ "connectionsCount": "Bilangan Sambungan",
+ "modelsPathLabel": "Label Laluan Model",
+ "activeProvidersHint": "Petunjuk Penyedia Aktif",
+ "activeLockouts": "Sekatan Aktif",
+ "invalid": "Tidak Sah",
+ "skipPassword": "Langkau Kata Laluan",
+ "moveUp": "Alih ke Atas",
+ "timeRange": "Julat Masa",
+ "stickyLimitDesc": "Perihalan Had Lekat",
+ "cloudBenefitEdge": "Kelebihan Cloud Edge",
+ "custom": "Tersuai",
+ "verifying": "Mengesahkan",
+ "baseUrlLabel": "Label URL Asas",
+ "setPassword": "Tetapkan Kata Laluan",
+ "safeSearchStrict": "Carian Selamat Ketat",
+ "noChangesSinceBackup": "Tiada Perubahan Sejak Sandaran",
+ "modelsPathHint": "Petunjuk Laluan Model",
+ "audioTranscriptions": "Transkripsi Audio",
+ "testCombo": "Uji Gabungan",
+ "mcpQuickStartTitle": "Tajuk Mula Pantas Mcp",
+ "comboUpdated": "Gabungan Dikemas Kini",
+ "weighted": "Berwajaran",
+ "providers": "Penyedia",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Perihalan Tiada Rantaian Sandaran",
+ "yesImport": "Ya, Import",
+ "lockoutsAutoRefreshHint": "Petunjuk Muat Semula Automatik Penguncian",
+ "tabApis": "Tab API",
+ "sectionDescription": "Perihalan Bahagian",
+ "filter": "Tapis",
+ "purgeLogsFailed": "Gagal Menghapuskan Log",
+ "latency": "Kependaman",
+ "testAllOAuth": "Uji Semua O Auth",
+ "mcpQuickStartStep3": "Langkah 3 Mula Pantas Mcp",
+ "repairEnvFailed": "Gagal Membaiki Env",
+ "zedImportHint": "Petunjuk Import Zed",
+ "modelsAcrossEndpoints": "Model Merentas Titik Akhir",
+ "autoDisableBannedAccounts": "Nyahdayakan Akaun Dilarang Secara Automatik",
+ "securityDesc": "Perihalan Keselamatan",
+ "listModels": "Senaraikan Model",
+ "backupRestore": "Sandaran dan Pemulihan",
+ "target": "Sasaran",
+ "zedImportSuccess": "Import Zed Berjaya",
+ "lastHeaderUpdate": "Kemas Kini Pengepala Terakhir",
+ "categoryCore": "Kategori Teras",
+ "noFallbackChains": "Tiada Rantaian Sandaran",
+ "noSearchProviders": "Tiada Penyedia Carian",
+ "autoBalance": "Pengimbangan Automatik",
+ "noModelsYet": "Belum Ada Model",
+ "signatureFamily": "Keluarga Tandatangan",
+ "externalApiCalls": "Panggilan API Luaran",
+ "providerOverridesDesc": "Penerangan Penggantian Penyedia",
+ "signatureTool": "Alat Tandatangan",
+ "connectionFailed": "Sambungan Gagal",
+ "activeLimitersPlural": "Pengehad Aktif Jamak",
+ "doneDesc": "Penerangan Selesai",
+ "down": "Tidak Beroperasi",
+ "noDataYet": "Belum Ada Data",
+ "activeProviders": "Penyedia Aktif",
+ "nameInvalid": "Nama Tidak Sah",
+ "skip": "Langkau",
+ "createChain": "Cipta Rantaian",
+ "audioSpeech": "Pertuturan Audio",
+ "cacheCleared": "Cache Dikosongkan",
+ "searchTypeNews": "Jenis Carian Berita",
+ "durationMillisecondsShort": "Tempoh ms",
+ "addOpenAICompatible": "Tambah yang Serasi dengan Open Ai",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "Dalam Baris Gilir",
+ "domainPlaceholder": "Ruang Letak Domain",
+ "durationMinutesShort": "Tempoh min",
+ "verifyingConnection": "Mengesahkan Sambungan",
+ "imageProviders": "Penyedia Imej",
+ "protocolToolsLabel": "Label Alat Protokol",
+ "queryPlaceholder": "Ruang Letak Pertanyaan",
+ "videoGeneration": "Penjanaan Video",
+ "timeRangeWeek": "Julat Masa Minggu",
+ "limitExhausted": "Had Telah Habis",
+ "failedDisable": "Gagal Dilumpuhkan",
+ "inMemoryNote": "Nota Dalam Memori",
+ "compatibleHint": "Petunjuk Keserasian",
+ "errorShort": "Ralat Ringkas",
+ "advancedHint": "Petunjuk Lanjutan",
+ "restoreFailed": "Pemulihan Gagal",
+ "searchProvidersHeading": "Tajuk Penyedia Carian",
+ "comboName": "Nama Gabungan",
+ "autoDisableDescription": "Penerangan Nyahdaya Automatik",
+ "embeddingsDesc": "Penerangan Pembenaman",
+ "operational": "Beroperasi",
+ "testAllApiKey": "Uji Semua Kunci API",
+ "backupCreated": "Sandaran Dicipta",
+ "errorDuringImport": "Ralat Semasa Import",
+ "comboDefaultsGuideHint2": "Petunjuk 2 Panduan Lalai Kombo",
+ "connecting": "Menyambung",
+ "fillModelAndProviders": "Isi Model dan Penyedia",
+ "syncing": "Menyegerakkan",
+ "resetConfirm": "Sahkan Tetapan Semula",
+ "trackMetrics": "Jejaki Metrik",
+ "successful": "Berjaya",
+ "recovering": "Memulihkan",
+ "autoDisableThreshold": "Ambang Nyahdaya Automatik",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Menyegerakkan Data",
+ "cloudBenefitPorts": "Port Manfaat Awan",
+ "compatibleProviders": "Penyedia Serasi",
"freeTierProviders": "Pembekal Peringkat Percuma",
"freeTierLabel": "Peringkat percuma tersedia",
"freeTierProvidersDesc": "Penyedia dengan peringkat percuma — sesetengahnya memerlukan pendaftaran kunci API, yang lain tidak memerlukan bukti kelayakan langsung.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "Kosongkan Cache",
+ "reqs": "Keperluan",
+ "addAnthropicCompatible": "Tambah Penyedia Serasi Anthropic",
+ "apiKeyProviders": "Penyedia Kunci API",
+ "tabsAria": "ARIA Tab",
+ "resetting": "Menetapkan Semula",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Sebab Sandaran Sebelum Pemulihan",
+ "disableCloud": "Nyahdayakan Awan",
+ "newProviderNameAria": "ARIA Nama Penyedia Baharu",
+ "passwordsMismatch": "Kata Laluan Tidak Sepadan",
+ "a2aQuickStartStep3": "Langkah 3 Permulaan Pantas A2A",
+ "liveMonitorDescriptionSuffix": "Akhiran Penerangan Pemantau Langsung",
+ "failedAddProvider": "Gagal Menambah Penyedia",
+ "addAtLeastOneProvider": "Tambah Sekurang-kurangnya Satu Penyedia",
+ "reasonSeparator": "Pemisah Sebab",
+ "zedImporting": "Zed Sedang Mengimport",
+ "confirmPasswordPlaceholder": "Ruang Letak Sahkan Kata Laluan",
+ "whatYouGet": "Apa yang Anda Dapat",
+ "signatureSession": "Sesi Tandatangan",
+ "errorCountNoCode": "Kiraan Ralat Tanpa Kod",
+ "testing": "Pengujian",
+ "providersCommaSeparated": "Penyedia Dipisahkan dengan Koma",
+ "exportDatabase": "Eksport Pangkalan Data",
+ "hitRate": "Kadar Hit",
+ "completionsLegacy": "Pelengkapan Legasi",
+ "removeModel": "Alih Keluar Model",
+ "timeRangeDay": "Julat Masa Hari",
+ "cloudRequestFailed": "Permintaan Awan Gagal",
+ "updatedAt": "Dikemas Kini Pada",
+ "monitoredProvidersHint": "Petunjuk Penyedia yang Dipantau",
+ "connectionSuccessful": "Sambungan Berjaya",
+ "latencyP50": "Kependaman P50",
+ "logsDeleted": "Log Dipadamkan",
+ "chatTester": "Penguji Sembang",
+ "safeSearchOff": "Carian Selamat Dimatikan",
+ "nameHint": "Petunjuk Nama",
+ "debugToggle": "Togol Nyahpepijat",
+ "embedding": "Pembenaman",
+ "issuesLabel": "Label Isu",
+ "optionAny": "Pilihan Mana-mana",
+ "maxNestingDepth": "Kedalaman Bersarang Maksimum",
+ "rerank": "Susun Semula Kedudukan",
+ "checking": "Sedang Menyemak",
+ "getStarted": "Mulakan",
+ "restoreSuccess": "Pemulihan Berjaya",
+ "issuesDetected": "Isu Dikesan",
+ "signatureCache": "Cache Tandatangan",
+ "modelLockouts": "Sekatan Model",
+ "usingCloudProxy": "Menggunakan Proksi Awan",
+ "loadingHealth": "Memuatkan Status Kesihatan",
+ "providerOverrides": "Penggantian Penyedia",
+ "audioTranscriptionDesc": "Perihalan Transkripsi Audio",
+ "learnedFromHeaders": "Dipelajari daripada Pengepala",
+ "totalRequests": "Jumlah Permintaan",
+ "cloudUnstableNote": "Nota Ketidakstabilan Awan",
"gamificationAdmin": "Pentadbir gamification",
"monitorAnomaliesAndHealth": "Pantau anomali dan kesihatan sistem",
"flaggedAnomalies": "Anomali Dibenderakan",
@@ -704,7 +704,7 @@
"apiKey": "Kunci API",
"xpLastHour": "XP (1j)",
"zScore": "Skor Z",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Mencurigakan",
"tokensCommunityServers": "Pelayan Komuniti",
"tokensServerNamePlaceholder": "Nama pelayan",
"tokensApiKeyPlaceholder": "kunci API",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Memuatkan lagi…",
"recommended": "Disyorkan",
"understand": "Saya faham",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
+ "batchConceptTitle": "Pemprosesan kelompok",
+ "batchConceptSubtitle": "Proses beribu-ribu permintaan secara tak segerak pada kos ~50% (tempoh 24 jam). Sesuai untuk penilaian, pengelasan dan pembenaman.",
+ "batchConceptHowItWorks": "Cara ia berfungsi",
+ "batchConceptBenefit50pct": "Diskaun 50% untuk token input + output",
+ "batchConceptAsync24h": "Tak segerak dengan tempoh penyelesaian 24j",
+ "batchConceptUseCases": "Terbaik untuk pengelasan pukal, penilaian dan pembenaman",
+ "batchHeaderSubtitle": "Jalankan banyak permintaan sebagai satu tugas",
+ "batchStep1": "1 · Muat naik JSONL",
+ "batchStep1Desc": "Tambah permintaan",
+ "batchStep2": "2 · Cipta kelompok",
+ "batchStep2Desc": "Jalankan tugas",
+ "batchStep3": "3 · Dapatkan hasil",
+ "batchStep3Desc": "Muat turun output",
+ "filesConceptTitle": "Fail kelompok",
+ "filesConceptSubtitle": "Fail JSONL yang digunakan oleh kelompok: permintaan input, hasil dan ralat.",
+ "filesConceptInput": "Input — JSONL anda dengan satu permintaan bagi setiap baris",
+ "filesConceptOutput": "Output — hasil daripada permintaan yang selesai",
+ "filesConceptError": "Ralat — permintaan yang gagal",
+ "filesConceptRetention": "Pengekalan: 30 hari secara lalai (29 hari di Anthropic)",
+ "wizardTitle": "Kelompok baharu",
+ "wizardClose": "Tutup",
+ "wizardNext": "Seterusnya",
+ "wizardBack": "Kembali",
+ "wizardCancel": "Batal",
+ "wizardCreate": "Cipta kelompok",
+ "wizardCreating": "Sedang mencipta…",
+ "wizardStep1Destination": "Destinasi",
"wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
+ "wizardStep3Validate": "Sahkan",
+ "wizardStep4Cost": "Kos & cipta",
+ "wizardProviderLabel": "Penyedia",
+ "wizardEndpointLabel": "Titik akhir",
"wizardModelLabel": "Model",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (kami akan menukarnya)",
+ "wizardDropOrPick": "Lepaskan fail atau klik untuk memilih",
+ "wizardCsvMappingTitle": "Petakan lajur CSV → medan permintaan",
+ "wizardCsvMappingAddField": "Tambah medan",
"wizardCsvNoColumns": "Tiada lajur dikesan dalam pengepala CSV.",
"wizardCsvIgnoreColumn": "— abaikan —",
"wizardCsvCustomIdMapped": "custom_id dipetakan",
@@ -846,114 +846,114 @@
"wizardCsvApplyMapping": "Gunakan pemetaan",
"wizardCsvRowsParsed": "{count} baris dihuraikan",
"wizardCsvRowsSkipped": "{count} baris dilangkau",
- "wizardCsvRowError": "Row {row}: {reason}",
- "wizardValidationOk": "All lines valid",
- "wizardValidating": "Validating…",
- "wizardValidationParseFailed": "Validation failed — could not parse content.",
- "wizardValidationSummary": "{lines} lines · {ids} unique custom_ids",
+ "wizardCsvRowError": "Baris {row}: {reason}",
+ "wizardValidationOk": "Semua baris sah",
+ "wizardValidating": "Sedang mengesahkan…",
+ "wizardValidationParseFailed": "Pengesahan gagal — kandungan tidak dapat dihuraikan.",
+ "wizardValidationSummary": "{lines} baris · {ids} custom_id unik",
"wizardValidationErrorCount": "{count, plural, one {# ralat} other {# ralat}} ditemui",
- "wizardValidationDuplicateIds": "Duplicate custom_ids detected:",
- "wizardValidationFirstErrors": "Errors (first {count}):",
- "wizardValidationLine": "Line {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
+ "wizardValidationDuplicateIds": "custom_id pendua dikesan:",
+ "wizardValidationFirstErrors": "Ralat ({count} pertama):",
+ "wizardValidationLine": "Baris {line}",
+ "wizardValidationErrors": "Ralat pengesahan",
+ "wizardValidationPreview": "Pratonton (5 permintaan pertama)",
+ "wizardValidationSamplingNote": "Fail bersaiz besar — disahkan melalui pensampelan (1000 baris pertama + 100 baris terakhir). Pengesahan penuh dijalankan pada pelayan.",
+ "wizardCostSync": "Kos segerak",
+ "wizardCostBatch": "Kos kelompok (-50%)",
+ "wizardCostSavings": "Penjimatan",
+ "wizardCostEstimatedNotice": "Anggaran kos — pengebilan sebenar mungkin berbeza.",
+ "wizardErrorUpload": "Gagal memuat naik fail. Cuba lagi.",
+ "wizardErrorCreate": "Gagal mencipta kelompok. Cuba lagi.",
+ "wizardEmptyProviders": "Sambungkan penyedia yang menyokong kelompok (OpenAI, Anthropic, atau Gemini) untuk mencipta kelompok.",
+ "uploadModalTitle": "Muat naik fail kelompok",
+ "uploadModalDropOrPick": "Lepaskan fail .jsonl atau klik untuk memilih",
+ "uploadModalUpload": "Muat naik",
+ "uploadModalCancel": "Batal",
+ "uploadModalError": "Muat naik gagal. Cuba lagi.",
+ "uploadModalSuccess": "Dimuat naik",
+ "uploadModalSizeLimit": "Maksimum 512 MB",
+ "batchListNewButton": "Kelompok baharu",
+ "batchListAutoRefresh": "Muat semula automatik setiap 30 saat",
+ "batchListCostColumn": "Kos",
+ "batchActionCancel": "Batal",
+ "batchActionDownloadOutput": "Muat turun output",
+ "batchActionDownloadErrors": "Muat turun ralat",
+ "batchActionRetry": "Cuba semula yang gagal",
+ "batchActionRetryConfirm": "Cuba semula {n} permintaan yang gagal? Kos akhir bergantung pada token sebenar yang digunakan.",
+ "expirationBadgeCritical": "Kritikal",
+ "expirationBadgeWarning": "Tidak lama lagi",
+ "expirationBadgeNormal": "Belum selesai",
+ "expirationBadgeExpired": "Tamat tempoh",
+ "filesListUploadButton": "Muat naik",
+ "filesListUsedByColumn": "Digunakan oleh",
+ "filesListUsedByNone": "Tiada",
"filesListUsedByRoleInput": "input",
"filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "filesListUsedByRoleError": "ralat",
+ "filesListSizeColumn": "Saiz",
+ "batchListProgressPartial": "(separa)",
+ "batchListProviderColumn": "Penyedia",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
+ "batchListProviderOther": "Lain-lain",
+ "batchListTitle": "Kelompok",
+ "batchListCount": "{count} kelompok",
+ "batchListRemovingCompleted": "Mengalih keluar…",
+ "batchListRemoveCompleted": "Pengalihan keluar selesai",
"batchListTableStatus": "Status",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "Titik akhir",
"batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableProgress": "Kemajuan",
+ "batchListTableCreated": "Dicipta",
+ "batchListTableExpires": "Tamat tempoh",
+ "batchListLoading": "Memuatkan…",
+ "batchListEmpty": "Tiada kelompok ditemukan",
+ "batchListValidating": "Mengesahkan…",
+ "batchStatusAll": "Semua status",
+ "batchStatusInProgress": "Sedang diproses",
+ "batchStatusValidating": "Mengesahkan",
+ "batchStatusFinalizing": "Memuktamadkan",
+ "batchStatusCompleted": "Selesai",
+ "batchStatusFailed": "Gagal",
+ "batchStatusCancelled": "Dibatalkan",
+ "batchStatusCancelling": "Sedang membatalkan",
+ "batchStatusExpired": "Tamat tempoh",
+ "batchStatusCompletedWithFailures": "selesai dengan kegagalan",
+ "batchStatusInProgressWithFailures": "sedang diproses (dengan kegagalan)",
+ "batchStatusFinalizingWithFailures": "sedang dimuktamadkan (dengan kegagalan)",
+ "batchStatusCancelledWithFailures": "dibatalkan dengan kegagalan",
+ "batchStatusExpiredWithFailures": "tamat tempoh (separa)",
+ "wizardCostEstimating": "Menganggarkan kos…",
+ "wizardCostRequests": "Permintaan",
+ "wizardCostInputTok": "token input",
+ "wizardCostOutputTok": "token output",
+ "wizardCostWindow": "Tetingkap",
+ "wizardDestinationSelectProvider": "Pilih penyedia…",
+ "wizardDestinationSelectModel": "Pilih model…",
+ "wizardDestinationConnectProvider": "Sambungkan penyedia",
+ "batchListBatchCreated": "Kelompok {id} dicipta — memuat semula senarai…",
+ "batchListBatchCreatedDismiss": "Tutup",
+ "batchListRefreshing": "Memuat semula…",
+ "batchListRefresh": "Muat semula",
+ "uploadFileModalRemove": "Alih keluar",
+ "uploadFileModalUploading": "Memuat naik…",
+ "wizardInputReading": "Membaca fail…",
+ "wizardInputReady": "Sedia",
+ "wizardInputLargeFileLabel": "Fail besar — pengesahan secara pensampelan",
+ "wizardInputCsvJsonlReady": "JSONL dijana — sedia untuk disahkan.",
+ "wizardInputLargeFileWarning": "Fail besar dikesan — pengesahan dijalankan secara pensampelan (5 MB pertama + 100 KB terakhir). Pengesahan penuh dilakukan di sebelah pelayan.",
+ "wizardCostWindow24h": "Tempoh penyiapan 24 jam",
+ "wizardValidationFieldsOk": "medan wajib sah",
+ "filesListDelete": "Padam",
+ "filesListDownload": "Muat turun",
+ "batchDetailActionCancel": "Batalkan kelompok",
+ "batchDetailActionRetry": "Cuba semula permintaan yang gagal",
+ "batchDetailCancelling": "Membatalkan…",
+ "batchDetailRetrying": "Menyediakan percubaan semula…",
+ "batchDetailCancelConfirm": "Batalkan kelompok ini? Permintaan yang sedang diproses akan dihentikan.",
+ "batchActionCancelError": "Gagal membatalkan kelompok. Cuba lagi.",
+ "batchActionRetryError": "Gagal mencuba semula permintaan yang gagal. Cuba lagi.",
+ "batchConceptRetentionNote": "Fail hasil dan ralat disimpan selama 30 hari (Anthropic: 29 hari)",
"batchFilesSizeColumn": "Saiz",
"toggleNoAuthProvider": "Togol penyedia tanpa pengesahan",
"loadingModels": "Memuatkan model…",
@@ -985,13 +985,17 @@
"batchFilePreviewTruncated": "Menunjukkan {shown} baris pertama ({total} jumlah baris)",
"batchFileDownloadFull": "Muat Turun Fail Penuh"
},
- "disabled": "Disabled",
- "featureFlagOmnirouteEmergencyFallbackDescription": "Route budget-exhausted requests to the emergency free fallback provider/model.",
- "featureFlagArenaEloSyncEnabledDescription": "Enable periodic Arena AI leaderboard ELO sync for model intelligence rankings.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "disabled": "Dilumpuhkan",
+ "featureFlagOmnirouteEmergencyFallbackDescription": "Halakan permintaan yang telah kehabisan belanjawan kepada penyedia/model sandaran percuma kecemasan.",
+ "featureFlagArenaEloSyncEnabledDescription": "Dayakan penyegerakan ELO papan kedudukan Arena AI secara berkala untuk kedudukan kecerdasan model.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Jana dan masukkan ringkasan perbualan apabila penghalaan kombo bertukar model. Lumpuhkan untuk mengendalikan pertukaran model secara berasingan dan menghalang permintaan penyerahan latar belakang bagi semua kombo sedia ada dan akan datang.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Iklankan claude/<provider>/<model> mirror ids pada /v1/models supaya senarai penemuan model gerbang Claude Code termasuk model bukan Claude. Amaran: menggandakan entri katalog untuk semua klien apabila diaktifkan secara global.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Suis utama untuk alias get laluan no-think/<provider>/<model>. Hidup (lalai): /v1/models memaparkan varian tanpa penaakulan bagi setiap model Claude berkeupayaan menaakul yang layak, dan id no-think/ yang dihantar dalam permintaan akan dipadankan semula kepada model sebenar dengan penaakulan disekat. Mati: tiada varian dipaparkan dan id no-think/ dianggap seperti mana-mana id model tidak diketahui yang lain. Pilihan ikut serta/tarik diri ModelSpec.noThinkingAlias bagi setiap model masih terpakai semasa tetapan ini dihidupkan.",
"featureFlagChatVirtualLanesEnabledDescription": "Aktifkan lorong kemasukan maya adaptif setiap-tenant untuk penghantaran pembekal (#9654): lonjakan satu tenant tidak lagi memberikan 503 kepada tenant lain. Pemboleh ubah persekitaran OMNIROUTE_CHAT_VIRTUAL_LANES mengatasi tetapan papan pemuka ini; perubahan berkuat kuasa apabila pelayan dimulakan semula.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Halaman penyedia papan pemuka: tunjukkan lencana Percuma hanya pada isyarat yang disokong oleh penyedia — menggugurkan heuristik nama paparan, medan percuma bukan boolean dan akhiran :free pada penyedia berdaftar tanpa peringkat percuma yang didokumenkan. Mati mengekalkan peraturan lencana terdahulu.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Kumpulan proksi dan penggiliran opencode bagi setiap akaun akan berhenti menyediakan semula proksi yang baru sahaja gagal (menolak probe TCP atau menerima 429 melaluinya) untuk tempoh setiap proses yang berganda pada setiap kegagalan berulang, sehingga had maksimum. Tiada status proksi direkodkan; apabila setiap calon diketepikan, pilihan tidak berubah. Dimatikan secara lalai: susunan pemilihan adalah sama seperti penggiliran biasa.",
+ "featureFlagProxyPoolEgressObservationDescription": "Tunjukkan, di bawah kumpulan proksi dalam papan pemuka, bilangan IP keluar yang diperhatikan telah digunakan oleh ahlinya sepanjang 24 jam yang lalu, bilangan sambungan yang menggunakannya dan bilangan terbanyak yang dilihat di sebalik satu IP. Baca sahaja, dikira daripada log proksi dan tidak pernah digunakan untuk penghalaan. Dimatikan secara lalai: editor kumpulan tidak berubah dan laluan pemerhatian memberikan null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Dalam imbasan kesihatan proksi, benarkan probe yang ditolak oleh sasaran (401/403/429: proksi telah menyampaikan permintaan, tetapi destinasi menolak IP keluar ini) menetapkan semula rentetan kegagalan berturut-turut proksi, seperti probe yang berjaya disediakan. Dimatikan secara lalai: penolakan kekal neutral dan mengekalkan rentetan tersebut. 5xx kekal tidak muktamad dalam kedua-dua keadaan dan penolakan tidak akan mengalih keluar, menyahdayakan atau mengaktifkan semula proksi.",
"sidebar": {
"home": "Rumah",
"dashboard": "Papan pemuka",
@@ -1007,15 +1011,15 @@
"media": "Media",
"settings": "tetapan",
"translator": "Penterjemah",
- "playground": "Playground",
- "searchTools": "Search Tools",
+ "playground": "Ruang Uji",
+ "searchTools": "Alat Carian",
"agents": "Ejen",
"cloudAgents": "Agen Awan",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Memori",
+ "skills": "Kemahiran",
"omniSkills": "OmniSkills",
"agentSkills": "AgentSkills",
- "chaosConfig": "Chaos Mode",
+ "chaosConfig": "Mod Kecelaruan",
"docs": "Dokumen",
"issues": "Isu",
"endpoints": "Titik Akhir",
@@ -1025,7 +1029,7 @@
"embeddedServices": "Perkhidmatan Terbenam",
"embeddedServicesSubtitle": "Urus perkhidmatan proksi tempatan",
"logs": "Log",
- "webhooks": "Webhooks",
+ "webhooks": "Webhook",
"webhooksSubtitle": "Dapatkan pemberitahuan tentang acara",
"logExport": "Eksport log",
"logExportSubtitle": "Hantar log panggilan ke luar",
@@ -1051,231 +1055,231 @@
"serverDisconnectedMsg": "Pelayan proksi telah dihentikan atau dimulakan semula.",
"expandSidebar": "Kembangkan bar sisi",
"collapseSidebar": "Runtuhkan bar sisi",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "themes": "Tema",
+ "presetColors": "Warna popular",
+ "createTheme": "Cipta tema",
+ "chooseColor": "Pilih satu warna",
+ "themeCoral": "Karang",
+ "themeBlue": "Biru",
+ "themeRed": "Merah",
+ "themeGreen": "Hijau",
+ "themeViolet": "Ungu lembayung",
+ "themeOrange": "Jingga",
+ "themeCyan": "Sian",
"cliToolsShort": "Alat",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "batch": "Tugas Kelompok",
+ "themeSystem": "Sistem Tema",
+ "whitelabelingDesc": "Perihalan Penjenamaan Label Putih",
+ "switchThemes": "Tukar Tema",
+ "themeAccentDesc": "Perihalan Warna Aksen Tema",
+ "uploadFavicon": "Muat Naik Favicon",
+ "themeDark": "Tema Gelap",
+ "customLogoDesc": "Perihalan Logo Tersuai",
+ "sidebarVisibilityToggle": "Togol Keterlihatan Bar Sisi",
+ "themeAccent": "Aksen Tema",
+ "resetFavicon": "Tetapkan Semula Favicon",
+ "whitelabeling": "Penjenamaan Label Putih",
+ "darkMode": "Mod Gelap",
+ "uploadLogo": "Muat Naik Logo",
+ "themeLight": "Tema Cerah",
+ "appName": "Nama Aplikasi",
+ "appNameDesc": "Perihalan Nama Aplikasi",
+ "resetLogo": "Tetapkan Semula Logo",
+ "customFavicon": "Favicon Tersuai",
+ "hideHealthLogs": "Sembunyikan Log Kesihatan",
+ "customLogo": "Logo Tersuai",
+ "appearance": "Penampilan",
+ "themeSelectionAria": "ARIA Pemilihan Tema",
+ "themeCreate": "Cipta Tema",
+ "customFaviconDesc": "Perihalan Favicon Tersuai",
+ "logoPreview": "Pratonton Logo",
+ "themeCustom": "Tema Tersuai",
+ "hideHealthLogsDesc": "Perihalan Sembunyikan Log Kesihatan",
+ "faviconPreview": "Pratonton Favicon",
+ "changelog": "Log Perubahan",
+ "contextSection": "Konteks & Cache",
+ "contextCaveman": "Manusia Gua",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Gabungan Enjin",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Tetapan Pemampatan",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
- "combosLiveSubtitle": "Live routing cascade",
+ "combosLive": "Studio Gabungan",
+ "combosLiveSubtitle": "Lata penghalaan langsung",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Pengecualian",
- "contextSettingsSubtitle": "Global defaults",
- "contextHeadroomSubtitle": "Tabular compaction",
- "contextSessionDedupSubtitle": "Cross-turn deduplication",
- "contextCcrSubtitle": "Retrieve markers",
- "contextLlmlinguaSubtitle": "Semantic pruning",
- "contextLiteSubtitle": "Fast whitespace cleanup",
- "contextAggressiveSubtitle": "Summary and aging",
- "contextUltraSubtitle": "Heuristic pruning",
- "contextOmniglyphSubtitle": "Context as images",
- "compressionStudioSubtitle": "Live engine cascade",
+ "contextSettingsSubtitle": "Tetapan lalai global",
+ "contextHeadroomSubtitle": "Pemadatan berjadual",
+ "contextSessionDedupSubtitle": "Penyahduplikasian rentas giliran",
+ "contextCcrSubtitle": "Dapatkan semula penanda",
+ "contextLlmlinguaSubtitle": "Pemangkasan semantik",
+ "contextLiteSubtitle": "Pembersihan ruang kosong pantas",
+ "contextAggressiveSubtitle": "Peringkasan dan penuaan",
+ "contextUltraSubtitle": "Pemangkasan heuristik",
+ "contextOmniglyphSubtitle": "Konteks sebagai imej",
+ "compressionStudioSubtitle": "Lata enjin langsung",
"compressionExclusionsSubtitle": "Pintas per-model/endpoint",
- "chaosConfigSubtitle": "Multi-model parallel execution",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "chaosConfigSubtitle": "Pelaksanaan berbilang model secara selari",
+ "routingSection": "Penghalaan",
+ "protocolsSection": "Protokol",
+ "agentsAiSection": "Ejen & AI",
+ "cacheContextSection": "Cache & Konteks",
+ "analyticsSection": "Analitik",
+ "costsSection": "Kos",
+ "monitoringSection": "Pemantauan",
+ "auditSecuritySection": "Audit & Keselamatan",
+ "devtoolsSection": "Alat Pembangun",
+ "configurationSection": "Konfigurasi",
+ "aiFeaturesSection": "Ciri AI",
"mcp": "MCP",
"a2a": "A2A",
- "plugins": "Plugins",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
- "costsFreeTiers": "Free-Tier Budget",
- "costsFreeTiersSubtitle": "Monthly free-token allowances",
- "freeProviderRankings": "Free Provider Rankings",
- "freeProviderRankingsSubtitle": "Best free providers ranked by model ELO scores",
+ "plugins": "Pemalam",
+ "apiEndpoints": "Titik Akhir API",
+ "batchFiles": "Fail",
+ "analyticsEvals": "Penilaian",
+ "analyticsSearch": "Cari",
+ "analyticsUtilization": "Penggunaan",
+ "analyticsComboHealth": "Kesihatan Kombo",
+ "analyticsCompression": "Pemampatan",
+ "costsBudget": "Bajet",
+ "costsFreeTiers": "Bajet Peringkat Percuma",
+ "costsFreeTiersSubtitle": "Elaun token percuma bulanan",
+ "freeProviderRankings": "Kedudukan Penyedia Percuma",
+ "freeProviderRankingsSubtitle": "Penyedia percuma terbaik berdasarkan skor ELO model",
"radar": "Katalog Radar",
"radarSubtitle": "Katalog model percuma yang diperkaya komuniti",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Perkongsian Kuota",
+ "costsPricing": "Harga",
+ "logsProxy": "Log Proksi",
+ "logsConsole": "Konsol",
+ "logsActivity": "Aktiviti",
+ "auditMcp": "Audit MCP",
"auditA2a": "Audit A2A",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
- "settingsAccessTokens": "Access Tokens",
+ "settingsAppearance": "Penampilan",
+ "settingsAi": "Tetapan AI",
+ "settingsSecurity": "Keselamatan",
+ "settingsAccessTokens": "Token Akses",
"settingsFeatureFlags": "Bendera Ciri",
"settingsCache": "Cache",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
- "modelLockout": "Model Lockout",
- "settingsAdvanced": "Advanced",
+ "settingsAuthz": "Kebenaran",
+ "settingsRouting": "Penghalaan",
+ "settingsResilience": "Daya Tahan",
+ "modelLockout": "Sekatan Model",
+ "settingsAdvanced": "Lanjutan",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Kuota Penyedia",
+ "providerQuota": "Kuota Penyedia",
+ "runtime": "Masa Jalan",
+ "consoleLogs": "Log Konsol",
+ "logsTimeline": "Garis Masa",
"logsTimelineSubtitle": "Garis Masa Permintaan Visual",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Perbualan",
+ "conversationsSubtitle": "Perbualan agentik berbilang giliran",
+ "globalRouting": "Penghalaan Global",
+ "mitmProxy": "Proksi MITM",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
+ "agenticFeaturesSection": "Ciri Agentik",
+ "otherFeaturesSection": "Ciri Lain",
+ "compressionContextGroup": "Konteks Pemampatan",
+ "gamificationGroup": "Gamifikasi",
+ "toolsGroup": "Alat",
+ "integrationsGroup": "Integrasi",
+ "proxyGroup": "Proksi",
+ "costsParametersGroup": "Parameter Kos",
"auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
- "providerStats": "Provider Stats",
- "providerStatsSubtitle": "Latency and performance metrics",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
- "pluginsSubtitle": "Plugin marketplace & installs",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "batchGroup": "Kelompok",
+ "homeSubtitle": "Gambaran keseluruhan papan pemuka",
+ "providersSubtitle": "Urus penyedia AI",
+ "quotaTrackerSubtitle": "Jejak had penggunaan",
+ "providerQuotaSubtitle": "Jejak had penggunaan penyedia",
+ "runtimeSubtitle": "Ketahanan masa nyata & sesi",
+ "contextCombosSubtitle": "Gabungkan enjin pemampatan",
+ "cliToolsSubtitle": "Konfigurasikan persekitaran masa jalan CLI",
+ "agentsSubtitle": "Urus ejen setempat",
+ "cloudAgentsSubtitle": "Urus ejen berasaskan awan",
+ "apiEndpointsSubtitle": "Dedahkan titik akhir tersuai",
+ "proxySubtitle": "Tetapan proksi HTTP",
+ "mitmProxySubtitle": "Pemintasan MITM",
+ "oneProxySubtitle": "Gerbang proksi awam",
+ "leaderboard": "Carta kedudukan",
+ "profile": "Profil",
+ "tokens": "Token",
+ "gamificationAdmin": "Pentadbir Gamifikasi",
+ "leaderboardSubtitle": "Kedudukan dan pencapaian",
+ "profileSubtitle": "Akaun dan keutamaan",
+ "tokensSubtitle": "Penggunaan token dan belanjawan",
+ "gamificationAdminSubtitle": "Pemantauan anomali dan antipenipuan",
+ "usageSubtitle": "Statistik trafik dan penggunaan",
+ "analyticsComboHealthSubtitle": "Kebolehpercayaan sasaran gabungan",
+ "analyticsUtilizationSubtitle": "Penggunaan penyedia",
+ "costsSubtitle": "Pecahan perbelanjaan",
+ "cacheSubtitle": "Kadar kejayaan cache",
+ "analyticsCompressionSubtitle": "Statistik penjimatan token",
+ "analyticsSearchSubtitle": "Analitik alat carian",
+ "analyticsEvalsSubtitle": "Keputusan set penilaian",
+ "providerStats": "Statistik Penyedia",
+ "providerStatsSubtitle": "Metrik kependaman dan prestasi",
+ "logsSubtitle": "Log aplikasi",
+ "logsProxySubtitle": "Log trafik proksi",
+ "consoleLogsSubtitle": "Output konsol",
+ "logsActivitySubtitle": "Log aktiviti pengguna",
+ "healthSubtitle": "Pemeriksaan kesihatan sistem",
+ "costsPricingSubtitle": "Peraturan harga mengikut model",
+ "costsBudgetSubtitle": "Had belanjawan",
+ "costsQuotaShareSubtitle": "Kongsi kuota penyedia merentas kunci",
+ "auditLogSubtitle": "Audit kebenaran",
+ "auditMcpSubtitle": "Audit pelayan MCP",
+ "auditA2aSubtitle": "Audit protokol A2A",
+ "translatorSubtitle": "Penukaran format",
+ "playgroundSubtitle": "Uji gesaan secara langsung",
+ "searchToolsSubtitle": "Cari daftar alat",
+ "memorySubtitle": "Memori ejen berterusan",
+ "omniSkillsSubtitle": "Daftar kemahiran sandbox",
+ "agentSkillsSubtitle": "Daftar kemahiran A2A",
+ "mcpSubtitle": "Kawalan pelayan MCP",
+ "a2aSubtitle": "Pelayan protokol A2A",
+ "pluginsSubtitle": "Pasaran pemalam & pemasangan",
+ "mediaSubtitle": "Fail media dalam cache",
+ "batchFilesSubtitle": "Fail input/output kelompok",
+ "settingsSubtitle": "Semua tetapan",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
- "settingsAccessTokensSubtitle": "Scoped CLI tokens for remote mode",
+ "settingsAppearanceSubtitle": "Tema dan susun atur",
+ "settingsAiSubtitle": "Tetapan lalai tingkah laku AI",
+ "globalRoutingSubtitle": "Peraturan penghalaan global",
+ "settingsResilienceSubtitle": "Percubaan semula dan pemutus litar",
+ "settingsAdvancedSubtitle": "Pilihan pengguna lanjutan",
+ "settingsSecuritySubtitle": "Pengesahan dan penyulitan",
+ "settingsAccessTokensSubtitle": "Token CLI berskop untuk mod jauh",
"settingsFeatureFlagsSubtitle": "Togol keupayaan sistem",
"settingsCacheSubtitle": "Katalog Model dan Cache Respons",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
- "settingsAuthzSubtitle": "Route inventory and bypass policy",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
- "costsQuotaPlans": "Plans & Quotas",
- "costsQuotaPlansSubtitle": "Configure plans by provider",
- "activity": "Activity",
+ "settingsSidebar": "Bar sisi",
+ "settingsSidebarSubtitle": "Sesuaikan susun atur bar sisi",
+ "settingsAuthzSubtitle": "Inventori laluan dan dasar pintasan",
+ "docsSubtitle": "Dokumentasi",
+ "issuesSubtitle": "Laporkan pepijat",
+ "changelogSubtitle": "Nota keluaran",
+ "costsQuotaPlans": "Pelan & Kuota",
+ "costsQuotaPlansSubtitle": "Konfigurasikan pelan mengikut penyedia",
+ "activity": "Aktiviti",
"activitySubtitle": "Suapan mesra acara baru-baru ini",
"logsGroup": "Log",
"systemGroup": "Sistem",
"costsOverview": "Gambaran Keseluruhan",
"costsOverviewSubtitle": "Analisis kos disatukan",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Jambatan Ejen",
"agentBridgeSubtitle": "Pintas trafik ejen IDE",
"trafficInspector": "Pemeriksa Trafik",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Periksa trafik permintaan dan respons daripada aplikasi anda",
+ "trafficInspectorPurpose": "Lihat dengan tepat perkara yang dihantar oleh aplikasi anda kepada dan diterima daripada penyedia AI. Berfungsi dengan mana-mana klien yang serasi dengan OpenAI.",
"cliCode": "Kod CLI",
"cliCodeSubtitle": "Alatan kod yang menghala ke OmniRoute",
"cliAgents": "Ejen CLI",
@@ -1314,7 +1318,7 @@
"noResults": "Tiada hasil"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Webhook",
"description": "Konfigurasikan panggilan balik HTTP untuk acara sistem.",
"configuredWebhooks": "Webhook yang dikonfigurasikan",
"configuredWebhooksDesc": "Urus titik akhir penghantaran, acara yang dilanggan, status dan hantaran ujian.",
@@ -1341,7 +1345,7 @@
"refresh": "Muat semula",
"loading": "Memuatkan webhook...",
"never": "tidak pernah",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {tiada kegagalan} one {# kegagalan} other {# kegagalan}}",
"testWebhook": "Hantar Ujian",
"testSuccess": "Ujian webhook berjaya dihantar.",
"testFailed": "Ujian webhook gagal.",
@@ -1559,13 +1563,13 @@
"mcpMetricTopTool": "Alat Terbaik"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "Tema",
+ "description": "Pilih tema praset atau cipta tema anda sendiri dengan satu warna",
+ "presetColors": "Warna popular",
+ "customTheme": "Tema tersuai",
+ "customThemeDesc": "Klik cipta tema dan pilih satu warna",
+ "createTheme": "Cipta tema",
+ "activePreset": "Tema aktif"
},
"header": {
"logout": "Log keluar",
@@ -1587,63 +1591,63 @@
"cliToolsDescription": "Konfigurasikan alatan CLI",
"home": "Rumah",
"homeDescription": "Selamat datang ke OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Titik akhir",
+ "endpointDescription": "Urus titik akhir proksi, MCP, A2A dan titik akhir API",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Pengurusan dan alatan pelayan Model Context Protocol",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Tugas dan kebolehcerapan protokol Agent-to-Agent",
"settings": "tetapan",
"settingsDescription": "Urus pilihan anda",
"openaiCompatible": "Serasi OpenAI",
"anthropicCompatible": "Serasi Anthropic",
"media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "mediaDescription": "Jana imej, video dan muzik",
+ "themes": "Tema",
+ "themesDescription": "Pilih tema warna untuk seluruh panel papan pemuka",
+ "costsDescription": "Jejaki perbelanjaan, analisis trend dan urus belanjawan AI anda merentas semua penyedia",
+ "cacheDescription": "Pantau kecekapan cache gesaan penyedia dan penggunaan semula respons semantik setempat.",
+ "limitsDescription": "Konfigurasikan had kadar dan kuota bagi setiap kunci API dan penyedia",
+ "runtimeDescription": "Kebolehcerapan masa jalan secara langsung — pemutus litar, tempoh bertenang, sekatan model, sesi dan amaran kuota",
+ "apiManagerDescription": "Urus kunci API dan kawalan akses untuk tika OmniRoute anda",
+ "batchDescription": "Proses jumlah permintaan yang besar secara tak segerak dengan panggilan API berkelompok",
+ "contextCavemanDescription": "Pemampatan mesej berasaskan peraturan, pek bahasa, analitik dan kawalan mod output.",
+ "contextRtkDescription": "Pemampatan peka perintah untuk output alat, log terminal dan hasil binaan.",
+ "contextCombosDescription": "Tentukan cara enjin digabungkan untuk senario penghalaan yang berbeza.",
+ "changelogDescription": "Ikuti perkembangan terkini tentang ciri dan pengumuman platform.",
+ "agentsDescription": "Urus dan konfigurasikan alat ejen AI: Codex, Devin, Jules, dan ejen tersuai",
+ "cloudAgentsDescription": "Orkestrakan ejen AI berasaskan awan dengan penjejakan tugas secara langsung dan kelulusan pelan",
+ "memoryDescription": "Memori perbualan berterusan dengan carian semantik dan pengindeksan teks penuh FTS5",
+ "skillsDescription": "Pasang dan urus kemahiran kotak pasir untuk pelaksanaan gesaan dan alat secara automatik",
+ "agentSkillsDescription": "Katalog kemahiran sedia ejen dengan penyalinan URL satu klik untuk penyepaduan klien AI",
+ "translatorDescription": "Terjemah dan uji gesaan merentas format API: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Uji gesaan secara interaktif dengan respons penyedia secara langsung dan pemeriksaan format",
+ "searchToolsDescription": "Analitis carian, pecahan mengikut penyedia, kadar padanan cache, dan penjejakan kos",
+ "logsDescription": "Log permintaan masa nyata, jejak ralat, dan pemeriksa peristiwa penstriman",
+ "auditDescription": "Jejak audit pematuhan bagi penggunaan kunci API, panggilan alat MCP, dan peristiwa dasar",
+ "webhooksDescription": "Konfigurasikan titik akhir webhook untuk menerima pemberitahuan peristiwa masa nyata",
+ "healthDescription": "Gambaran keseluruhan kesihatan sistem: penyedia, pemutus litar, had kadar, dan pangkalan data",
+ "proxyDescription": "Konfigurasikan tetapan proksi huluan untuk sambungan keluar penyedia",
+ "apiEndpointsDescription": "Urus konfigurasi titik akhir API tersuai dan penggantian penghalaan",
+ "batchFilesDescription": "Semak imbas dan urus fail output serta hasil kerja kelompok",
+ "analyticsEvalsDescription": "Hasil penilaian model dan penanda aras prestasi",
+ "analyticsSearchDescription": "Analitis pertanyaan carian, kadar padanan cache, dan penjejakan kos",
+ "analyticsUtilizationDescription": "Metrik penggunaan penyedia dan perancangan kapasiti",
+ "analyticsComboHealthDescription": "Kesihatan dan prestasi masa nyata bagi konfigurasi penghalaan gabungan",
+ "analyticsCompressionDescription": "Analitis pemampatan konteks dan penjimatan token",
+ "costsBudgetDescription": "Had belanjawan dan amaran perbelanjaan bagi setiap kunci API dan penyedia",
+ "costsPricingDescription": "Konfigurasi harga tersuai untuk pengiraan kos token",
+ "logsProxyDescription": "Log permintaan proksi huluan dan pemeriksaan trafik",
+ "logsConsoleDescription": "Output konsol aplikasi dan log penyahpepijatan",
+ "logsActivityDescription": "Jejak audit tindakan pengguna dan peristiwa sistem",
+ "auditMcpDescription": "Jejak audit panggilan alat MCP dan rekod pematuhan",
"auditA2a": "Audit A2A",
"auditA2aDescription": "Jejak audit pelaksanaan tugas A2A, peralihan negeri dan rekod permohonan kemahiran",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Tema, penjenamaan, dan penyesuaian visual",
+ "settingsAiDescription": "Tingkah laku AI, belanjawan pemikiran, penglihatan, dan tetapan memori",
"settingsCacheDescription": "TTL untuk entri cache katalog model",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Tetapan pengesahan, pemberian kuasa, dan kawalan akses",
"featureFlags": "Bendera Ciri",
"featureFlagsDescription": "Keupayaan sistem kawalan dan ciri eksperimen",
"featureFlagsActive": "{count} aktif",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Tiada bendera yang sepadan dengan carian anda",
"featureFlagsSaved": "Bendera dikemas kini",
"featureFlagsError": "Gagal mengemas kini bendera",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Peraturan penghalaan, alias model, tetapan lalai gabungan, dan tetapan degradasi",
+ "settingsResilienceDescription": "Konfigurasi pemutus litar, percubaan semula, dan sandaran",
+ "settingsAdvancedDescription": "Peraturan muatan lanjutan, had permintaan, dan tetapan API proksi",
+ "mitmProxyDescription": "Konfigurasikan tetapan proksi MITM untuk pemeriksaan trafik dan penyahpepijatan",
+ "oneProxyDescription": "Konfigurasikan tetapan 1Proxy untuk perangkaian proksi lanjutan",
"omniSkillsDescription": "Pasang dan urus kemahiran kotak pasir untuk pelaksanaan gesaan dan alat automatik"
},
"cloudSyncStatus": {
@@ -1704,7 +1708,7 @@
"console": "Konsol",
"logger": "Pencatat Log",
"translator": "Penterjemah",
- "playground": "Playground",
+ "playground": "Ruang Uji",
"add": "Tambah",
"edit": "Sunting",
"apiKeys": "Kunci API",
@@ -1720,7 +1724,7 @@
"analytics": "Analitis",
"costs": "Kos",
"health": "Kesihatan",
- "runtime": "Runtime",
+ "runtime": "Masa jalan",
"webhooks": "Webhook",
"home": "Utama",
"activity": "Aktiviti",
@@ -1738,7 +1742,7 @@
"media": "Media",
"cache": "Cache",
"changelog": "Log Perubahan",
- "chaos": "Chaos",
+ "chaos": "Kekacauan",
"cloudAgents": "Ejen Awan",
"live": "Langsung",
"studio": "Studio",
@@ -1758,7 +1762,7 @@
"discovery": "Penemuan",
"freeProviderRankings": "Kedudukan Penyedia Percuma",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Persediaan",
"freeTiers": "Tier Percuma",
"gamification": "Gamifikasi",
"leaderboard": "Papan Pendahulu",
@@ -1808,7 +1812,7 @@
"reportIssue": "Laporkan isu",
"activeError": "{active} aktif · {errors} ralat",
"topologyLegendActive": "Aktif",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Terkini",
"topologyLegendError": "ralat",
"oauthLabel": "OAuth",
"apiKeyLabel": "Kunci API",
@@ -1822,11 +1826,11 @@
"updateStarted": "Kemas kini bermula...",
"reloadingPageAutomatically": "Memuat semula halaman secara automatik...",
"providerTopology": "Topologi Pembekal",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Permintaan Terkini",
+ "recentRequestsEmpty": "Belum ada permintaan.",
+ "recentRequestsModel": "Model",
+ "recentRequestsTokens": "Masuk / Keluar",
+ "recentRequestsWhen": "Bila",
"downloadDmg": "Muat Turun DMG (macOS)",
"downloadDmgDescription": "Versi baru aplikasi desktop OmniRoute tersedia. Sila muat turun dan pasang pemasang DMG macOS untuk mengemas kini (semasa: v{version}).",
"downloadExe": "Muat Turun EXE (Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "Nota Rilisan",
"readMore": "Baca Lagi",
"noAuthLabel": "Tiada Auth",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Bersedia untuk menghalakan",
+ "readinessTitle": "Hantar permintaan pertama anda",
+ "readinessSubtitle": "Empat langkah ringkas. OmniRoute menyemak kesediaan semasa anda meneruskan.",
+ "readinessStep1": "Sambungkan penyedia",
+ "readinessStep2": "Konfigurasikan pengesahan titik akhir",
+ "readinessStep3": "Salin titik akhir anda",
+ "readinessStep4": "Hantar permintaan ujian",
+ "readinessContinue": "Teruskan persediaan",
+ "readinessDismiss": "Abaikan buat masa ini"
},
"analytics": {
"title": "Analitis",
@@ -1963,7 +1967,7 @@
"period7D": "7H",
"period30D": "30H",
"period90D": "90H",
- "periodYTD": "YTD",
+ "periodYTD": "Tahun Semasa",
"periodAll": "Semua",
"totalTokens": "Jumlah Token",
"inputTokens": "Token Input",
@@ -1989,20 +1993,20 @@
"overviewDescription": "Pantau corak penggunaan API anda, penggunaan token, kos dan aliran aktiviti merentas semua pembekal dan model.",
"evalsDescription": "Jalankan suite penilaian untuk menguji dan mengesahkan titik akhir LLM anda. Bandingkan kualiti model, mengesan regresi dan kependaman penanda aras.",
"overview": "Gambaran keseluruhan",
- "evals": "Evals",
+ "evals": "Penilaian",
"search": "Cari",
"utilization": "Pemanfaatan",
"routeTrace": "Jejak Laluan",
"sectionsAria": "Bahagian analitis",
"utilizationDescription": "Tren penggunaan kuota pembekal dan penjejakan had kadar",
"modelStatus": "Status Model",
- "modelStatusCooldown": "Cooldown",
+ "modelStatusCooldown": "Tempoh Bertenang",
"modelStatusUnavailable": "Tidak tersedia",
"modelStatusError": "ralat",
"comboHealth": "Kesihatan Combo",
"comboHealthDescription": "Kuota peringkat combo, pengagihan penggunaan dan metrik prestasi",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Analitik Pemampatan",
+ "compressionAnalyticsDescription": "Analitik pemampatan — penjimatan token, pecahan mod dan statistik penyedia.",
"autoRoutingTotalAutoRequests": "Jumlah Permintaan Auto",
"autoRoutingAvgSelectionScore": "Purata Skor Pemilihan",
"autoRoutingExplorationRate": "Kadar Penerokaan",
@@ -2106,7 +2110,7 @@
"compressionAnalyticsAvgSavings": "Purata Simpanan",
"compressionAnalyticsAvgDuration": "Purata Tempoh",
"compressionAnalyticsReceipts": "resit",
- "compressionAnalyticsFallbacks": "Fallbacks",
+ "compressionAnalyticsFallbacks": "Sandaran",
"compressionAnalyticsPromptTokens": "Token segera",
"compressionAnalyticsCompletionTokens": "Token penyiapan",
"compressionAnalyticsTotalTokens": "Jumlah token",
@@ -2206,7 +2210,7 @@
"combo": "Kombo",
"routeStep": "Langkah",
"tokens": "Token",
- "notAvailable": "n/a",
+ "notAvailable": "tiada",
"routeTokenCounts": "{input} masuk · {output} keluar",
"routeEvidence": "Bukti",
"routeFactors": "Faktor penghalaan",
@@ -2254,9 +2258,9 @@
"fullAccess": "Akses Penuh",
"keyManagement": "Pengurusan Kunci API",
"keyManagementDesc": "Buat dan urus kunci API untuk mengesahkan permintaan ke titik akhir anda",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Aplikasi anda menghantar permintaan melalui kunci API ke OmniRoute",
+ "requestFlowYourApp": "Aplikasi anda",
+ "requestFlowApiKey": "Kunci API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Jumlah Kunci",
"restricted": "Terhad",
@@ -2271,7 +2275,7 @@
"usage": "Penggunaan",
"created": "Dicipta",
"actions": "Tindakan",
- "reqs": "reqs",
+ "reqs": "permintaan",
"neverUsed": "Tidak pernah digunakan",
"deleteConfirm": "Padamkan kunci API ini?",
"usageTips": "Petua Penggunaan",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Salin dan simpan kunci ini sekarang — ia tidak akan ditunjukkan lagi.",
"done": "Selesai",
"savePermissions": "Simpan Kebenaran",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Titik Akhir yang Dibenarkan",
+ "allEndpointsAllowed": "Kunci ini boleh mengakses semua titik akhir API.",
+ "endpointsRestricted": "Terhad kepada {count} titik akhir.",
+ "autoResolve": "Penyelesaian Automatik",
+ "autoResolveDesc": "Selesaikan nama model yang kabur secara automatik kepada penyedia asal untuk kunci API ini.",
"streamDefaultMode": "Keserasian Lalai Penstriman",
"streamDefaultModeDesc": "Mengawal bendera `stream` yang diabaikan untuk kunci ini. Mod JSON mengembalikan respons bukan penstriman melainkan pelanggan meminta SSE secara eksplisit.",
"streamDefaultLegacy": "Legasi",
"streamDefaultJson": "Serasi JSON",
"streamDefaultBadge": "Lalai strim JSON",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Kunci Aktif",
+ "keyActiveDesc": "Dayakan atau nyahdayakan kunci API ini. Kunci yang dinyahdayakan akan ditolak serta-merta dengan kod 403.",
+ "accessSchedule": "Jadual Akses",
+ "accessScheduleDesc": "Hadkan akses kepada waktu dan hari tertentu dalam seminggu.",
+ "scheduleFrom": "Dari",
+ "scheduleUntil": "Hingga",
+ "scheduleDays": "Hari",
+ "scheduleTimezone": "Zon waktu",
+ "scheduleTimezoneHint": "Gunakan nama zon waktu IANA, cth. America/New_York, Europe/Berlin",
+ "scheduleActive": "Jadual",
+ "disabled": "Dinyahdayakan",
+ "daySun": "Ahd",
+ "dayMon": "Isn",
+ "dayTue": "Sel",
+ "dayWed": "Rab",
+ "dayThu": "Kha",
+ "dayFri": "Jum",
+ "daySat": "Sab",
"allowAll": "Benarkan Semua",
"restrict": "Sekat",
"allowAllInfo": "Kunci ini boleh mengakses semua model yang tersedia.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Gagal mengemas kini kebenaran. Sila cuba lagi.",
"unknownProvider": "tidak diketahui",
"copyMaskedKey": "Salin kunci bertopeng",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Kunci penuh hanya tersedia semasa penciptaan — salin apabila anda mula-mula mencipta kunci tersebut",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# peranti} other {# peranti}}",
"devicesTooltip": "{count, plural, one {# peranti IP/User-Agent berbeza dilihat dengan kunci ini (30 minit terakhir)} other {# peranti IP/User-Agent berbeza dilihat dengan kunci ini (30 minit terakhir)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Kombo yang Dibenarkan",
"allCombosAllowed": "Kunci ini boleh menggunakan mana-mana kombo.",
"restrictedComboCount": "Terhad kepada {count, plural, one {# kombo} other {# kombo}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# entri tersimpan} other {# entri tersimpan}} tidak terdapat dalam senarai kombo ini (contohnya peraturan penghalaan) dan akan dikekalkan seperti yang disimpan.",
+ "preservedComboRuleHint": "Dikekalkan seperti yang disimpan. Entri ini bukan kombo dalam senarai di atas, jadi ia hanya boleh diubah melalui API.",
"apiManagerCustomRateLimits": "Had Kadar Tersuai",
"apiManagerCustomRateLimitsDesc": "Gantikan had lalai global. Biarkan kosong untuk menggunakan lalai.",
"apiManagerRateLimitRequestsPlaceholder": "Permintaan",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Membenarkan kunci ini mengabaikan dasar had penyedia/akaun huluan semasa penghalaan. Kuota USD kunci API masih terpakai.",
"quotaPill": "KUOTA",
"quotaModeOnly": "qtSd-sahaja",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Pajakan Eksklusif",
+ "exclusiveLeaseNoticeTitle": "Pajakan Eksklusif",
+ "exclusiveLeaseNoticeDesc": "Kunci API ini mempunyai kebenaran pajakan eksklusif untuk penghalaan sambungan khusus.",
+ "allConnections": "Semua sambungan",
+ "onlySelectedConnections": "Hanya sambungan yang dipilih",
+ "selectAtLeastOneConnection": "Pilih sekurang-kurangnya satu sambungan atau pilih Semua sambungan.",
+ "allConnectionsDesc": "Kunci ini boleh menggunakan mana-mana sambungan aktif.",
+ "restrictedToConnections": "Terhad kepada {count, plural, one {# sambungan} other {# sambungan}}."
},
"auditLog": {
"title": "Log Audit",
@@ -2453,16 +2457,16 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Jana",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Sedang menjana...",
+ "loadingModels": "Sedang memuatkan model yang tersedia...",
+ "noModels": "Tiada model tersedia. Konfigurasikan penyedia dengan keupayaan media terlebih dahulu.",
+ "error": "Penjanaan Gagal",
+ "result": "Hasil",
+ "imageDescription": "Jana imej daripada gesaan teks menggunakan OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI dan banyak lagi.",
+ "videoDescription": "Cipta video dengan AnimateDiff, Stable Video Diffusion melalui ComfyUI atau SD WebUI.",
+ "musicDescription": "Gubah muzik menggunakan Stable Audio Open atau MusicGen melalui ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Pembenaman",
"image": "Imej",
"imageToText": "Imej ke Teks",
"tts": "Teks ke Ucapan",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "Model suara-ke-teks OpenRouter menggunakan sambungan OpenRouter yang telah anda konfigurasi. Tiada kelayakan berasingan diperlukan."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Pertanyaan Carian",
+ "searchResults": "Hasil Carian",
+ "cachedResult": "Dicache",
+ "searchCost": "Kos",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Ujian carian lanjutan dengan perbandingan penyedia",
+ "compareProviders": "Bandingkan Penyedia",
+ "rerankResults": "Susun Semula Kedudukan Hasil",
+ "searchHistory": "Sejarah Carian",
+ "urlOverlap": "Pertindihan URL",
+ "noSearchProviders": "Tiada penyedia carian dikonfigurasikan. Tambahkan penyedia dalam Tetapan.",
+ "noRerankModels": "Tiada model penyusunan semula kedudukan tersedia",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Penyedia",
+ "searchType": "Jenis Carian",
+ "maxResults": "Hasil Maksimum",
+ "filters": "Penapis",
+ "country": "Negara",
+ "language": "Bahasa",
+ "timeRange": "Julat Masa",
+ "includeDomains": "Sertakan Domain",
+ "excludeDomains": "Kecualikan Domain",
+ "safeSearch": "Carian Selamat",
+ "safeSearchOff": "Dimatikan",
+ "safeSearchModerate": "Sederhana",
+ "safeSearchStrict": "Ketat",
+ "queryPlaceholder": "Masukkan pertanyaan carian...",
+ "providerAuto": "auto (termurah)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "berita",
+ "optionAny": "mana-mana",
+ "timeRangeDay": "Hari lalu",
+ "timeRangeWeek": "Minggu lalu",
+ "timeRangeMonth": "Bulan lalu",
+ "timeRangeYear": "Tahun lalu",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Permintaan tamat masa ({seconds}s)",
+ "networkError": "Ralat rangkaian",
+ "formatted": "Diformatkan",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "cache tidak ditemui",
+ "cacheHit": "cache ditemui",
+ "latency": "Kependaman",
+ "cost": "Kos",
+ "results": "Hasil",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Model Penyusunan Semula",
+ "positionDelta": "Perubahan Kedudukan",
+ "emptyState": "Hantar pertanyaan carian untuk melihat hasil",
"copy": "salin",
"resetToDefault": "Tetapkan semula kepada lalai",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Cari",
+ "tabScrape": "Kikis",
+ "tabCompare": "Bandingkan",
+ "modalitiesGuide": "Panduan modaliti",
+ "searchConceptTitle": "Carian",
+ "searchConceptDesc": "Carian = mendapatkan senarai hasil web (tajuk, URL, petikan, skor kerelevanan)",
+ "scrapeConceptTitle": "Pengikisan",
+ "scrapeConceptDesc": "Pengikisan = mengekstrak kandungan penuh URL (markdown, teks atau HTML)",
+ "compareConceptTitle": "Perbandingan",
+ "compareConceptDesc": "Perbandingan = menjalankan pertanyaan yang sama merentas N penyedia secara bersebelahan untuk membandingkan kependaman, kos dan pertindihan hasil",
+ "rerankConceptTitle": "Susun Semula",
+ "rerankConceptDesc": "Susun Semula = menyusun semula hasil melalui LLM untuk meningkatkan kerelevanan berdasarkan pertanyaan",
+ "autoConceptTitle": "Auto (termurah)",
+ "autoConceptDesc": "Auto (termurah) = memilih penyedia tersedia yang paling murah secara automatik dengan kelayakan yang telah dikonfigurasikan",
+ "providerCatalogTitle": "Katalog Penyedia",
+ "kindSearch": "Cari",
+ "kindFetch": "Ambil/Kikis",
+ "statusConfigured": "Dikonfigurasikan",
+ "statusMissing": "Tiada kelayakan",
+ "statusRateLimited": "Kadar dihadkan",
+ "configureProvider": "Konfigurasikan dalam Penyedia",
+ "loadingProviders": "Memuatkan penyedia…",
+ "failedToLoadProviders": "Gagal memuatkan penyedia",
+ "costPerQuery": "Kos/pertanyaan",
+ "freeQuota": "Kuota percuma/bln",
+ "scrapeUrl": "URL untuk dikikis",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL diperlukan",
"scrapeUrlInvalid": "URL tidak sah — ia mesti bermula dengan http:// atau https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
+ "scrapeExtract": "Ekstrak",
+ "scrapeExtracting": "Mengekstrak…",
+ "scrapeFullPage": "Halaman penuh",
"scrapeFormat": "Format",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
+ "formatText": "Teks",
+ "scrapePreview": "Pratonton",
+ "scrapeRaw": "Mentah",
+ "scrapeContentTruncated": "(dipendekkan, lihat data mentah)",
"scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "scrapeProvider": "Penyedia",
+ "scrapeSize": "Saiz",
"scrapeEmptyState": "Masukkan URL untuk mengekstrak kandungannya",
"scrapeProvidersAvailable": "Penyedia yang tersedia: Firecrawl, Jina Reader, Tavily.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Bandingkan",
+ "compareRunning": "Membandingkan…",
+ "autoProvider": "Auto (termurah)",
+ "configuredStatus": "Dikonfigurasikan",
+ "rateLimitedStatus": "Kadar dihadkan",
+ "noCredential": "Tiada kelayakan",
+ "searchTypeLabel": "Jenis",
+ "rerankModelLabel": "Model penyusunan semula",
+ "noneOption": "Tiada",
+ "size": "Saiz",
"configurationPane": "Panel konfigurasi",
"configuration": "Konfigurasi",
"status": "Status",
@@ -2677,7 +2681,7 @@
"ttsSample": "Hello, ini ialah ujian teks-ke-pertuturan.",
"video": "Video",
"videoSample": "Selang masa awan di atas banjaran gunung",
- "webFetch": "Web Fetch",
+ "webFetch": "Pengambilan Web",
"webSearchSample": "Apakah itu get laluan AI OmniRoute?",
"noActiveProviderDescription": "Tiada penyedia carian aktif. Konfigurasikan satu di Penyedia.",
"configureProviders": "Konfigurasikan penyedia",
@@ -2704,7 +2708,7 @@
"classifierCompatLoadFailed": "Gagal memuatkan tetapan",
"classifierCompatMode": {
"off": "Mati",
- "auto": "Auto",
+ "auto": "Automatik",
"always": "Sentiasa"
},
"ccDiscoveryInfoButton": "Cara mengaktifkan penemuan dalam Claude Code",
@@ -2739,7 +2743,7 @@
"effortExtraHigh": "Sangat tinggi",
"effortMax": "Maks",
"effortUltra": "Ultra",
- "wireApi": "Wire API",
+ "wireApi": "API Wire",
"modelAliases": "Alias model",
"addModel": "Tambah model",
"routeModelPlaceholder": "Hala {model} ke...",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Tambah",
"antigravityStep2Suffix": "ke fail hos anda sebagai 127.0.0.1.",
"antigravityStep3": "3. Buka Antigraviti dan permintaan akan diproksikan.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} menghantar permintaan ke titik akhir penyedianya. MITM memintas dan mengalihkannya ke OmniRoute.",
+ "mitmStep1": "1. Mulakan MITM untuk menghalakan permintaan melalui OmniRoute.",
+ "mitmStep2Prefix": "2. Tambahkan",
+ "mitmStep2Suffix": "ke fail hosts anda sebagai 127.0.0.1.",
+ "mitmStep3": "3. Buka {toolName} dan permintaan akan diproksikan.",
"sudoPasswordRequiredTitle": "Kata Laluan Sudo Diperlukan",
"sudoPasswordHint": "Kata laluan pentadbir diperlukan untuk mengubah suai fail hos dan tetapan proksi sistem.",
"enterSudoPassword": "Masukkan kata laluan sudo",
@@ -2904,7 +2908,7 @@
"continue": "Gunakan semasa menjalankan Teruskan dalam IDE dan anda memerlukan konfigurasi pembekal berasaskan JSON mudah alih.",
"opencode": "Gunakan apabila anda lebih suka ejen terminal-native run dan automasi skrip melalui OpenCode.",
"kiro": "Gunakan apabila menyepadukan Kiro dan mengawal penghalaan model secara berpusat daripada OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Gunakan apabila anda mahukan IDE berteraskan AI dengan model Codeium/Windsurf yang dihalakan melalui OmniRoute.",
"antigravity": "Gunakan apabila trafik Antigraviti/Kiro mesti dipintas melalui MITM dan dihalakan ke OmniRoute.",
"copilot": "Gunakan apabila anda mahu Copilot gaya sembang UX sambil menguatkuasakan kekunci OmniRoute dan peraturan penghalaan.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2920,15 +2924,15 @@
"droid": "Pembantu AI Droid Kilang",
"openclaw": "Buka Pembantu AI Claw",
"cline": "Pembantu Pengekodan AI Cline CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "kilo": "CLI Pembantu AI Kilo Code",
"qwen": "Qwen Code CLI",
"cursor": "Editor Kod AI Kursor",
"continue": "Teruskan AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "Ejen pengekodan AI OpenCode (Terminal)",
+ "kiro": "Amazon Kiro — IDE dikuasakan AI",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "CLI pembantu pengekodan Sourcegraph Amp",
"hermes": "Pembantu Terminal AI Hermes",
"hermes-agent": "Hermes Agent (oleh Nousresearch) - AI terminal lanjutan dengan sokongan berbilang model (delegasi, penglihatan, pemampatan, dll.)",
"custom": "Generik penjana konfigurasi CLI atau SDK serasi OpenAI",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI ejen pengekodan autonomi Open Interpreter",
"omp": "Ejen pengekodan terminal Oh My Pi",
"letta": "Ejen CLI Letta dengan memori berterusan dan penggunaan alat",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — kerangka pengekodan RLM yang menambah baik sendiri dengan sokongan penyedia serasi OpenAI",
"warp": "Terminal Warp AI dengan sokongan penyedia tersuai",
"agent-deck": "Orkestrator berbilang ejen Agent Deck",
"5dive": "5dive — armada ejen pengekodan yang dihoskan sendiri; satu profil auth menghalakan semuanya ke OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Pasang OpenCode",
+ "desc": "Pasang melalui npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Kunci API"
},
"3": {
- "title": "Set Base URL",
+ "title": "Tetapkan URL Asas",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Pilih Model"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Gunakan Varian Pemikiran",
+ "desc": "Untuk model pemikiran, jalankan dengan --variant high/low/max (contoh arahan di bawah)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Buka Tetapan Kiro",
+ "desc": "Pergi ke Tetapan → Penyedia AI"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "URL Asas",
+ "desc": "Tampalkan URL titik akhir OmniRoute anda"
},
"3": {
- "title": "API Key"
+ "title": "Kunci API"
},
"4": {
- "title": "Select Model"
+ "title": "Pilih Model"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Buka Tetapan AI",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Tambah Penyedia Tersuai",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "URL Asas",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "Kunci API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Pilih Model",
+ "desc": "Pilih model daripada menu juntai bawah"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "CLI tersuai",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Kategori Alat",
"visibleToolsCount": "{count} alatan tersedia",
"customCliBuilderTitle": "Pembina CLI serasi OpenAI",
"customCliBuilderDescription": "Hasilkan env vars dan coretan JSON untuk mana-mana CLI atau SDK yang menerima URL asas, kunci API dan ID model yang serasi dengan OpenAI.",
@@ -3218,7 +3222,7 @@
"timeout": "Tamat masa (ms)",
"healthcheck": "Pemeriksaan kesihatan",
"priority": "Keutamaan",
- "fallback": "Fallback",
+ "fallback": "Sandaran",
"roundRobin": "Round Robin",
"random": "rawak",
"leastLatency": "Kependaman Terkecil",
@@ -3241,7 +3245,7 @@
"testResults": "Keputusan Ujian — {name}",
"resolvedBy": "diselesaikan oleh:",
"more": "+{count} lagi",
- "reqs": "reqs",
+ "reqs": "permintaan",
"success": "kejayaan",
"proxyConfigured": "Proksi dikonfigurasikan",
"copyComboName": "Salin nama kombo",
@@ -3256,23 +3260,23 @@
"priorityDesc": "Saling berurutan: cuba model 1 dahulu, kemudian 2, dsb.",
"weightedDesc": "Mengagihkan trafik mengikut peratusan berat dengan sandaran",
"roundRobinDesc": "Pengedaran pekeliling: setiap permintaan pergi ke model seterusnya secara bergilir",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "Penyampaian Konteks",
+ "contextRelayDesc": "Mengekalkan kesinambungan sesi dengan ringkasan serahan apabila akaun bertukar gilir",
"randomDesc": "Pemilihan rawak seragam, kemudian sandarkan kepada model yang tinggal",
"leastUsedDesc": "Memilih model dengan permintaan paling sedikit, mengimbangi beban dari semasa ke semasa",
"costOptimizedDesc": "Laluan ke model termurah dahulu berdasarkan harga",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "cacheOptimizedDesc": "Menghalakan setiap awalan gesaan boleh guna semula secara konsisten ke akaun penyedia yang sama",
"resetAware": "Set Semula-Sedar RR",
"resetAwareDesc": "Baki baki kuota dengan tetapan semula 5j dan mingguan, kemudian round-robin markah yang serupa",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Berwajaran Kuota",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "Rawak Ketat",
+ "strictRandomDesc": "Dek kocok — menggunakan setiap model sekali sebelum dikocok semula",
"fusion": "Gabungan",
"fusionDesc": "Menyebarkan prom ke setiap model panel secara selari, kemudian model hakim mensintesis satu jawapan akhir",
"fusionJudgeModel": "Model hakim",
"fusionJudgeModelHelp": "Model yang mensintesis jawapan panel menjadi satu respons akhir. Biarkan kosong untuk menggunakan model panel pertama.",
- "fusionMinPanel": "Min panel",
+ "fusionMinPanel": "Panel minimum",
"fusionMinPanelHelp": "Jawapan panel yang berjaya diperlukan sebelum model yang lambat mendapat tempoh ihsan (lalai 2).",
"fusionStragglerGraceMs": "Tempoh ihsan model lambat (ms)",
"fusionStragglerGraceMsHelp": "Berapa lama untuk menunggu model panel yang lambat setelah kuorum dicapai (lalai 8000).",
@@ -3282,15 +3286,15 @@
"autoBalance": "Imbangan automatik",
"advancedSettings": "Tetapan Lanjutan",
"retryDelay": "Cuba Semula Kelewatan (ms)",
- "concurrencyPerModel": "Concurrency / Model",
+ "concurrencyPerModel": "Keserentakan / Model",
"queueTimeout": "Waktu Beratur (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "Ambang Penyerahan",
+ "contextRelayHandoffThresholdHelp": "Apabila penggunaan kuota mencapai ambang ini, OmniRoute menjana ringkasan penyerahan berstruktur sebelum akaun aktif kehabisan kuota.",
+ "contextRelayMaxMessages": "Mesej Maksimum untuk Ringkasan",
+ "contextRelayMaxMessagesHelp": "Mengehadkan jumlah sejarah terkini yang diringkaskan ke dalam ringkasan penyampaian.",
+ "contextRelaySummaryModel": "Model Ringkasan",
+ "contextRelaySummaryModelHelp": "Model penggantian pilihan yang digunakan hanya untuk menjana ringkasan penyerahan. Biarkan kosong untuk menggunakan semula model kombo aktif.",
+ "contextRelayProviderNote": "Context Relay kini menjana penyerahan untuk penggiliran akaun Codex. Padankan ciri ini dengan berbilang akaun daripada penyedia yang sama untuk kesinambungan terbaik.",
"advancedHint": "Biarkan kosong untuk menggunakan lalai global. Ini mengatasi tetapan setiap pembekal.",
"failoverBeforeRetry": "Failover Sebelum Cuba Semula",
"maxSetRetries": "Percubaan Semula Set Maks",
@@ -3341,40 +3345,40 @@
"weighted": "Ditimbang",
"leastUsed": "Paling Kurang Digunakan",
"costOpt": "Kos-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "strategyGuideTitle": "Cara menggunakan strategi ini",
+ "strategyGuideWhen": "Bila hendak digunakan",
+ "strategyGuideAvoid": "Elakkan apabila",
+ "strategyGuideExample": "Contoh",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "Anda mempunyai satu model pilihan dan hanya mahu beralih kepada model sandaran apabila berlaku kegagalan.",
+ "avoid": "Anda memerlukan pengagihan permintaan merentas model.",
+ "example": "Model pengekodan utama dengan sandaran lebih murah semasa gangguan."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "Anda memerlukan pembahagian trafik terkawal merentas model.",
+ "avoid": "Anda tidak dapat mengekalkan pemberat yang tepat dari semasa ke semasa.",
+ "example": "Pelancaran 80% model stabil + 20% model canary."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "Anda mahukan pengagihan yang boleh diramal dan sekata.",
+ "avoid": "Model terlalu berbeza dari segi kependaman atau kos.",
+ "example": "Model yang sama pada berbilang akaun untuk mengagihkan daya pemprosesan."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "Anda mahukan pengagihan mudah dengan persediaan minimum.",
+ "avoid": "Anda memerlukan jaminan trafik yang ketat.",
+ "example": "Penciptaan prototaip pantas dengan model yang setara."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "Anda mahukan pengimbangan adaptif berdasarkan permintaan semasa.",
+ "avoid": "Trafik terlalu rendah untuk mendapat manfaat daripada pengimbangan penggunaan.",
+ "example": "Beban kerja bercampur yang menyebabkan satu model kerap terlebih beban."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "Pengurangan kos ialah keutamaan utama anda.",
+ "avoid": "Data harga tiada atau sudah lapuk.",
+ "example": "Tugas latar belakang atau kelompok yang mengutamakan kos lebih rendah."
},
"reset-aware": {
"when": "Anda membuat laluan merentasi berbilang akaun dengan telemetri kuota dan tetingkap tetapan semula yang berbeza.",
@@ -3382,19 +3386,19 @@
"example": "Lebih suka penetapan semula akaun mingguan 60% esok berbanding penetapan semula akaun 80% kemudian."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Gunakan apabila anda mahukan pengagihan yang benar-benar sekata — setiap model digunakan sekali sebelum diulangi.",
+ "avoid": "Elakkan apabila model mempunyai kualiti atau kependaman yang berbeza dan urutan adalah penting.",
+ "example": "Contoh: Berbilang akaun bagi model yang sama untuk mengagihkan penggunaan secara sekata."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Gunakan apabila anda mahukan pemilihan berkependaman rendah menggunakan algoritma Power-of-Two-Choices.",
+ "avoid": "Elakkan untuk kombo kecil dengan 2 atau kurang model — tiada kelebihan berbanding round-robin.",
+ "example": "Contoh: Inferens daya pemprosesan tinggi merentas 4+ titik akhir model yang setara."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Gunakan apabila sesi panjang perlu bertahan melalui penggiliran akaun tanpa kehilangan konteks kerja.",
+ "avoid": "Elakkan apabila pertukaran akaun jarang berlaku atau apabila anda tidak mahu permintaan peringkasan tambahan.",
+ "example": "Contoh: Sesi Codex yang bergilir merentas berbilang akaun apabila hampir kehabisan kuota."
},
"fill-first": {
"when": "Gunakan apabila anda ingin menghabiskan sepenuhnya kuota satu pembekal sebelum beralih ke yang seterusnya.",
@@ -3418,49 +3422,49 @@
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "Berapa banyak percubaan semula dilakukan sebelum permintaan dianggap gagal.",
+ "retryDelay": "Masa menunggu awal antara percubaan semula. Nilai yang lebih tinggi mengurangkan tekanan lonjakan.",
+ "timeout": "Tempoh maksimum permintaan sebelum dibatalkan.",
+ "healthcheck": "Mengecualikan model/penyedia yang tidak sihat daripada keputusan penghalaan.",
+ "concurrencyPerModel": "Permintaan serentak maksimum yang dibenarkan bagi setiap model dalam giliran bergilir.",
+ "queueTimeout": "Tempoh permintaan boleh menunggu dalam baris gilir sebelum tamat masa.",
"failoverBeforeRetry": "Apabila didayakan, sebarang ralat huluan mencetuskan kegagalan serta-merta ke sasaran kombo seterusnya, melangkau semua percubaan semula dan URL sandaran.",
"maxSetRetries": "Bilangan kali untuk mencuba semula sasaran penuh yang ditetapkan apabila setiap sasaran gagal. 0 = tiada percubaan semula peringkat set.",
"setRetryDelayMs": "Kelewatan antara percubaan percubaan semula peringkat set, memberikan masa untuk menyelesaikan masalah sementara.",
"disableSessionStickiness": "Putar ke sambungan berbeza pada setiap permintaan dan bukannya menambat keseluruhan perbualan ke satu sambungan mengikut hash mesej pertama. Mengatasi lalai global. Biarkan pada Warisi untuk mengekalkan hit cache gesaan bagi sembang berbilang pusingan."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "Templat pantas",
+ "templatesDescription": "Gunakan profil permulaan, kemudian laraskan model dan konfigurasi.",
+ "templateApply": "Gunakan templat",
+ "templateHighAvailability": "Ketersediaan tinggi",
+ "templateHighAvailabilityDesc": "Penghalaan keutamaan dengan pemeriksaan kesihatan dan percubaan semula yang selamat.",
+ "templateCostSaver": "Penjimatan kos",
+ "templateCostSaverDesc": "Penghalaan yang dioptimumkan untuk kos bagi beban kerja yang mengutamakan bajet.",
+ "templateBalanced": "Beban seimbang",
+ "templateBalancedDesc": "Penghalaan berdasarkan penggunaan paling rendah untuk mengagihkan permintaan dari semasa ke semasa.",
+ "usageGuideHide": "Sembunyikan",
+ "usageGuideDontShowAgain": "Jangan tunjukkan lagi",
+ "usageGuideShow": "Tunjukkan panduan",
+ "quickTestTitle": "Kombo sedia untuk disahkan",
+ "quickTestDescription": "Jalankan ujian sekarang untuk mengesahkan tingkah laku sandaran dan kependaman.",
+ "testNow": "Uji sekarang",
+ "pricingCoverage": "Liputan harga",
+ "pricingCoverageHint": "Pengoptimuman kos berfungsi paling baik apabila semua model kombo mempunyai maklumat harga.",
+ "pricingAvailable": "Harga tersedia",
+ "pricingMissing": "Tiada harga",
+ "pricingAvailableShort": "mempunyai harga",
+ "pricingMissingShort": "tanpa harga",
"fallbackOnlyOnQuotaExhaustion": "Hanya maju apabila kuota habis",
"fallbackOnlyOnQuotaExhaustionShort": "fallback hanya kuota",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "warningRoundRobinSingleModel": "Giliran bergilir paling berguna dengan sekurang-kurangnya 2 model.",
+ "warningCostOptimizedPartialPricing": "Hanya {priced} daripada {total} model mempunyai maklumat harga. Penghalaan mungkin hanya mengambil kira kos secara separa.",
+ "warningCostOptimizedNoPricing": "Tiada data harga ditemukan untuk kombo ini. Penghalaan yang dioptimumkan untuk kos mungkin berlaku di luar jangkaan.",
+ "filterAll": "Semua",
+ "filterIntelligent": "Pintar",
+ "filterDeterministic": "Deterministik",
+ "filterEmptyTitle": "Tiada kombo yang sepadan dengan penapis strategi ini.",
+ "filterEmptyIntelligentDescription": "Cipta kombo auto atau LKGP untuk mengisi papan pemuka penghalaan pintar.",
+ "filterEmptyDeterministicDescription": "Hanya kombo auto dan LKGP yang wujud sekarang. Tukar kembali kepada Semua atau cipta kombo deterministik.",
"readinessTitle": "Bersedia untuk menyimpan?",
"readinessDescription": "Semak senarai semak sebelum membuat atau mengemas kini kombo ini.",
"readinessCheckName": "Nama kombo adalah sah",
@@ -3474,12 +3478,12 @@
"saveBlockModels": "Tambah sekurang-kurangnya satu model.",
"saveBlockWeighted": "Tetapkan berat kepada 100% (semasa: {total}%).",
"saveBlockPricing": "Tambahkan harga untuk sekurang-kurangnya satu model atau pilih strategi lain.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "Persediaan disyorkan",
+ "applyRecommendations": "Gunakan cadangan",
+ "recommendationsUpdated": "Cadangan dikemas kini untuk {strategy}.",
+ "recommendationsApplied": "Cadangan digunakan pada kombo ini.",
+ "intelligentPanelTitle": "Papan Pemuka Penghalaan Pintar",
+ "intelligentPanelDesc": "Pemarkahan masa nyata dan status kesihatan untuk gabungan penghalaan automatik ini.",
"configOnlyStatus": "Paparan Konfigurasi",
"configOnlyHint": "Panel ini menunjukkan input penghalaan sahaja. Keadaan pemutus langsung tersedia di halaman Kesihatan.",
"routingInputs": "Input Penghalaan",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "Awalan penyedia tidak diketahui.",
"builderDynamicAccountShort": "Akaun dinamik",
"builderNeedValidName": "Takrifkan nama kombo yang sah sebelum meneruskan.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Gambaran Keseluruhan Status",
+ "normalOperation": "Operasi Normal",
+ "allProvidersHealthy": "Penyedia melaporkan keadaan penghalaan yang sihat.",
+ "incidentMode": "Mod Insiden",
+ "highCircuitBreakerRate": "Kadar pengaktifan pemutus litar yang tinggi dikesan.",
+ "activeModePack": "Pek Mod Aktif",
+ "modePackUpdated": "Pek mod dikemas kini kepada {pack}.",
+ "modePackHint": "Tukar pratetap untuk menyesuaikan kecenderungan enjin penghalaan tanpa membina semula gabungan.",
+ "providerScores": "Skor Penyedia",
+ "allProvidersEvaluated": "Tiada kumpulan calon dikonfigurasikan. Semua penyedia aktif dinilai semasa masa jalan.",
+ "excludedProviders": "Penyedia yang Dikecualikan",
+ "excludedProvidersHint": "Penyedia dengan pemutus litar OPEN dikecualikan buat sementara waktu daripada penghalaan.",
+ "noExcludedProviders": "Tiada penyedia yang sedang dikecualikan.",
+ "cooldownMinutes": "Tempoh bertenang: {minutes}m",
+ "builderIntelligentTitle": "Konfigurasi Penghalaan Pintar",
+ "builderIntelligentDesc": "Konfigurasikan enjin pemarkahan berbilang faktor untuk gabungan penghalaan automatik ini.",
+ "candidatePoolLabel": "Kumpulan Calon",
+ "candidatePoolHint": "Pilih penyedia yang patut dinilai oleh enjin ini. Biarkan kosong untuk menggunakan semua penyedia aktif.",
+ "candidatePoolEmpty": "Belum ada penyedia aktif yang tersedia.",
+ "candidatePoolAllProviders": "Semua penyedia",
+ "modePackLabel": "Pek Mod",
+ "routerStrategyLabel": "Strategi Penghala",
+ "strategyRules": "Peraturan (Pemarkahan 6 Faktor)",
+ "explorationRateLabel": "Kadar Penerokaan",
+ "explorationRateHint": "{percent}% daripada permintaan boleh meneroka penyedia yang tidak optimum.",
+ "budgetCapLabel": "Had Belanjawan (USD / permintaan)",
+ "budgetCapPlaceholder": "Tiada had",
+ "advancedWeightsTitle": "Lanjutan: Wajaran Pemarkahan",
"nestedComboFlatten": "Ratakan kombo bersarang",
"nestedComboExecute": "Laksanakan kombo bersarang sebagai sasaran",
"effectiveRoutingShare": "Kongsi penghalaan berkesan (pemberat ÷ jumlah)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Kuota",
+ "weightHealth": "Kesihatan",
+ "weightCostInv": "Kos",
+ "weightLatencyInv": "Kependaman",
+ "weightTaskFit": "Kesesuaian Tugas",
+ "weightStability": "Kestabilan",
+ "weightTierPriority": "Peringkat",
+ "weightCacheAffinity": "Afiniti Padanan Cache",
"weightSessionAvailability": "Ketersediaan Sesi",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Konfigurasi Penghalaan Pintar",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "Garis dasar selamat gagal",
+ "description": "Gunakan satu model utama dan pastikan rantaian sandaran ringkas serta boleh dipercayai.",
+ "tip1": "Letakkan model anda yang paling boleh dipercayai di tempat pertama.",
+ "tip2": "Sediakan 1-2 model sandaran dengan kualiti yang setara.",
+ "tip3": "Gunakan percubaan semula yang selamat untuk menangani kegagalan sementara penyedia."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "Pembahagian trafik terkawal",
+ "description": "Sesuai untuk pelancaran canary dan migrasi beransur-ansur antara model.",
+ "tip1": "Mulakan dengan pembahagian konservatif seperti 90/10.",
+ "tip2": "Pastikan jumlah keseluruhan kekal pada 100% dan seimbangkan secara automatik selepas perubahan.",
+ "tip3": "Pantau kejayaan dan kependaman sebelum meningkatkan wajaran canary."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "Perkongsian beban yang boleh diramal",
+ "description": "Terbaik apabila model adalah setara dan anda memerlukan pengagihan yang lancar.",
+ "tip1": "Gunakan sekurang-kurangnya 2 model.",
+ "tip2": "Tetapkan had keserentakan untuk mengelakkan beban lampau akibat lonjakan.",
+ "tip3": "Gunakan tamat masa baris gilir untuk menggagalkan permintaan dengan cepat apabila tepu."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "Pengagihan pantas dengan persediaan minimum",
+ "description": "Gunakan apabila anda memerlukan pengagihan mudah tanpa jaminan yang ketat.",
+ "tip1": "Gunakan model dengan profil kependaman yang serupa.",
+ "tip2": "Pastikan percubaan semula didayakan untuk menangani kegagalan rawak.",
+ "tip3": "Utamakan pilihan ini untuk percubaan, bukan SLA yang ketat."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "Pengimbangan adaptif",
+ "description": "Menghalakan permintaan kepada model yang kurang digunakan untuk mengurangkan titik sesak dari semasa ke semasa.",
+ "tip1": "Berfungsi dengan lebih baik di bawah trafik berterusan.",
+ "tip2": "Gabungkan dengan pemeriksaan kesihatan untuk pengimbangan yang lebih selamat.",
+ "tip3": "Jejaki penggunaan setiap model untuk mengesahkan peningkatan pengagihan."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "Penghalaan berasaskan bajet",
+ "description": "Menghalakan permintaan kepada model berkos lebih rendah apabila metadata harga tersedia.",
+ "tip1": "Pastikan maklumat harga tersedia untuk semua model yang dipilih.",
+ "tip2": "Kekalkan model sandaran berkualiti untuk gesaan yang sukar.",
+ "tip3": "Gunakan untuk tugas kelompok/latar belakang apabila kos ialah KPI utama."
},
"reset-aware": {
"title": "Tetapkan semula putaran akaun sedar",
@@ -3593,11 +3597,11 @@
"tip3": "Pastikan jalur seri kecil supaya akaun yang setara masih berputar secara adil."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Pengagihan dek kocok",
+ "description": "Setiap model digunakan tepat sekali bagi setiap kitaran sebelum dikocok semula.",
+ "tip1": "Gunakan sekurang-kurangnya 2 model untuk pengagihan yang bermakna.",
+ "tip2": "Berfungsi paling baik dengan model yang mempunyai prestasi setara.",
+ "tip3": "Sesuai untuk pengimbangan beban merentas berbilang akaun API."
},
"fill-first": {
"description": "Habiskan kuota pembekal ekzos secara berurutan sebelum jatuh semula.",
@@ -3642,86 +3646,86 @@
"title": "Kuasa Dua Pilihan"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "Tindanan Percuma ($0)",
+ "templateFreeStackDesc": "Penggiliran round-robin merentas semua penyedia percuma: Kiro (Claude), Qoder (5 model), Qwen (4 model). Kos sifar, pengekodan tidak pernah berhenti.",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "Mod LKGP",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "Bermula dengan Combo",
+ "wizardGuideDesc": "Cipta combo model untuk menghalakan trafik AI secara pintar",
+ "wizardGuideHint": "atau klik + Cipta Combo di atas",
+ "createFirstCombo": "Cipta Kombo Pertama Anda",
+ "wizardStep1Title": "Namakan Kombo Anda",
+ "wizardStep1Desc": "Berikan kombo anda nama unik untuk mengenal pastinya dalam peraturan penghalaan",
+ "wizardStep2Title": "Tambah Model",
+ "wizardStep2Desc": "Pilih model AI dan susun keutamaan sandaran model tersebut",
+ "wizardStep3Title": "Pilih Strategi",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "Semak & Simpan",
+ "wizardStep4Desc": "Semak konfigurasi anda dan aktifkan kombo",
+ "usageGuideInvokeTitle": "Cara memanggil kombo ini",
+ "usageGuideInvokeDesc": "Hantar nama tepat kombo sebagai model, cth. model: \"my-combo\" (atau combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto dan auto/* ialah penghala konfigurasi sifar berasingan yang tidak menggunakan kombo anda (melainkan kombo benar-benar dinamakan auto).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto ialah produk OpenRouter berbayar sebenar (Auto Best Available), bukan alias OmniRoute — kecualikannya melalui Settings → Routing → Hide paid models.",
+ "emailVisibilityStateOn": "Hidup",
+ "emailVisibilityStateOff": "Mati",
+ "reorderHandle": "Seret untuk menyusun semula",
+ "failedReorder": "Gagal menyusun semula model",
+ "builderFlowTitle": "Aliran Pembina Kombo",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Asas",
+ "description": "Nama dan templat permulaan"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Langkah",
+ "description": "Pemilihan penyedia, model dan akaun"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Strategi",
+ "description": "Tingkah laku penghalaan dan tetapan lanjutan"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Penghalaan Pintar",
+ "description": "Kumpulan calon penghalaan automatik, pratetap dan pemarkahan"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Semakan",
+ "description": "Pengesahan akhir sebelum menyimpan"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
+ "builderStageVisited": "Peringkat selesai",
+ "builderStageCurrent": "Peringkat semasa",
+ "builderStagePending": "Belum selesai",
+ "builderStageLocked": "Dikunci — lengkapkan peringkat sebelumnya dahulu",
+ "builderTitle": "Bina Kombo",
+ "builderBrowseCatalog": "Layari katalog",
+ "builderProvider": "Penyedia",
+ "builderLoadingProviders": "Memuatkan penyedia...",
+ "builderSelectProvider": "Pilih penyedia",
"builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderSelectModel": "Pilih model",
+ "builderProviderFirst": "Pilih penyedia dahulu",
+ "builderAccount": "Akaun",
+ "builderPreview": "Pratonton",
+ "builderAddStep": "Tambah langkah",
"builderDuplicateExact": "Langkah pembekal/model/akaun yang tepat ini sudah ada dalam kombo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "Rujukan Kombo",
+ "builderAddComboRef": "Tambah rujukan kombo",
+ "builderComboRefStep": "Tambah rujukan kombo",
+ "builderPinnedAccount": "Akaun Disematkan",
+ "builderLegacyEntry": "Entri legasi",
+ "reviewName": "Nama",
+ "reviewStrategy": "Strategi",
+ "reviewSteps": "Langkah",
+ "reviewAccounts": "Akaun",
+ "reviewProviders": "Penyedia",
+ "reviewComboRefs": "Rujukan Kombo",
+ "reviewAdvanced": "Tetapan Lanjutan",
+ "reviewAgentFlags": "Bendera Ejen",
+ "reviewSequence": "Urutan Model",
+ "reviewNoSteps": "Tiada langkah dikonfigurasikan",
"builderStagesDescription": "Lengkapkan setiap peringkat untuk menentukan gabungan, membina langkah, memilih strategi penghalaan dan menyemak hasil.",
"builderStepsDescription": "Bina setiap langkah kombo mengikut urutan: pembekal, model, kemudian akaun. Ini membolehkan penggunaan semula pembekal dan model yang sama merentas akaun yang berbeza.",
"selectProvider": "Pilih Pembekal",
@@ -3796,27 +3800,27 @@
"range7d": "7 Hari",
"range30d": "30 Hari",
"range90d": "90 Hari",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 Hari",
+ "range365d": "365 Hari",
"rangeAll": "Sepanjang Masa",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "Model Aktif",
+ "flatRateEstimateNotice": "Termasuk anggaran harga token untuk langganan kadar rata, bukan kos yang dibilkan.",
+ "flatRateEstimateForecast": "Unjuran termasuk anggaran kadar rata.",
+ "selectedWindow": "Tempoh Dipilih",
+ "activeProviders": "Penyedia Aktif",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "Perbelanjaan Hari Ini",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "Bahagian Penyedia",
+ "topProviders": "Penyedia Teratas",
+ "costTrend": "Trend Kos",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "Model Teratas",
"requestsInWindow": "Requests In Window",
"tokenUsage": "Penggunaan Token",
"totalTokens": "Jumlah Token",
@@ -3859,7 +3863,7 @@
"groupAccount": "Akaun",
"groupServiceTier": "Tahap perkhidmatan",
"serviceTierFast": "Pantas",
- "serviceTierFlex": "Flex",
+ "serviceTierFlex": "Fleksibel",
"serviceTierStandard": "Standard",
"serviceTierBreakdownTitle": "Tahap Perkhidmatan",
"serviceTierBreakdownSubtitle": "Pecahan Pantas / Flex / Standard",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "Titik Akhir API",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "Gunakan titik akhir yang serasi dengan OpenAI bersama kebanyakan SDK dan alat.",
+ "testEndpoint": "Uji titik akhir →",
+ "advancedProtocols": "Protokol lanjutan",
"available": "Titik Akhir Tersedia",
"cloudProxy": "Proksi Awan",
"disableConfirm": "Adakah anda pasti mahu melumpuhkan proksi awan?",
@@ -3896,9 +3900,9 @@
"disableCloud": "Lumpuhkan Cloud",
"enableCloud": "Dayakan Cloud",
"modelsAcrossEndpoints": "{models} model merentas {endpoints} titik akhir",
- "loadingModels": "Loading available models...",
+ "loadingModels": "Memuatkan model yang tersedia...",
"chatDesc": "Sembang penstriman & bukan penstriman dengan semua pembekal",
- "embeddings": "Embeddings",
+ "embeddings": "Pembenaman",
"embeddingsDesc": "Pembenaman teks untuk carian & saluran paip RAG",
"imageGeneration": "Penjanaan Imej",
"imageDesc": "Hasilkan imej daripada gesaan teks",
@@ -3908,22 +3912,22 @@
"audioTranscriptionDesc": "Transkripsikan fail audio kepada teks (Bisikan)",
"textToSpeech": "Teks kepada Ucapan",
"textToSpeechDesc": "Tukar teks kepada pertuturan yang berbunyi semula jadi",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Penjanaan Muzik",
+ "musicDesc": "Jana muzik dan trek audio melalui ComfyUI (Stable Audio, MusicGen)",
"moderations": "Kesederhanaan",
"moderationsDesc": "Penyederhanaan kandungan dan klasifikasi keselamatan",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
+ "responsesDesc": "OpenAI Responses API untuk Codex dan aliran kerja berasaskan ejen yang lanjutan",
+ "listModelsDesc": "Senaraikan semua model yang tersedia merentas semua penyedia yang disambungkan",
+ "settingsApiDesc": "Baca dan ubah suai konfigurasi OmniRoute melalui API",
+ "settingsApi": "API Tetapan",
"categoryCore": "API Teras",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
+ "categoryMedia": "Media & Multimodal",
+ "categorySearch": "Carian & Penemuan",
"categoryUtility": "Utiliti & Pengurusan",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "Carian Web",
+ "webSearchDesc": "Carian web bersepadu merentas berbilang penyedia dengan failover dan cache automatik",
+ "searchProvider": "Penyedia Carian",
+ "searchProviderDesc": "Penyedia ini digunakan untuk carian web melalui POST /v1/search. Tiada konfigurasi model diperlukan — penyedia carian sedia untuk digunakan sebaik sahaja kunci API disambungkan.",
"enableCloudTitle": "Dayakan Cloud Proxy",
"whatYouGet": "Apa yang anda akan dapat",
"cloudBenefitAccess": "Akses API anda dari mana-mana sahaja di dunia",
@@ -3959,48 +3963,48 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Dayakan Terowong",
+ "cloudflaredInstallAndEnable": "Pasang & Dayakan",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Sedang berjalan",
+ "cloudflaredStarting": "Sedang dimulakan",
+ "cloudflaredStoppedState": "Dihentikan",
+ "cloudflaredNotInstalled": "Tidak dipasang",
+ "cloudflaredUnsupported": "Tidak disokong",
+ "cloudflaredError": "Ralat",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Ralat terakhir: {error}",
"providerModelsTitle": "{provider} — Model",
"noModelsForProvider": "Tiada model tersedia untuk pembekal ini.",
"chat": "Sembang",
"embedding": "Membenamkan",
"image": "Imej",
"custom": "adat",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "modelsCount": "{count, plural, one {# model} other {# model}}",
+ "sectionTitle": "Permukaan Integrasi",
+ "sectionDescription": "API yang serasi dengan OpenAI dan titik akhir protokol operasi",
"tabApis": "API",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "Protokol",
+ "tabsAria": "Bahagian titik akhir",
+ "protocolsTitle": "Protokol",
+ "protocolsDescription": "MCP dan A2A ialah titik akhir kelas pertama dengan kebolehcerapan dan kawalan khusus.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
+ "mcpCardDescription": "Model Context Protocol melalui stdio",
+ "a2aCardTitle": "Pelayan A2A",
+ "a2aCardDescription": "Titik akhir JSON-RPC Agent2Agent",
+ "protocolToolsLabel": "Alat",
+ "protocolTasksLabel": "Tugasan",
"protocolActiveStreamsLabel": "Aliran aktif",
"protocolLastActivity": "Aktiviti terakhir",
"quickStart": "Mula Pantas",
"openMcpDashboard": "Buka pengurusan MCP",
"openA2aDashboard": "Buka pengurusan A2A",
- "mcpQuickStartTitle": "MCP Quick Start",
+ "mcpQuickStartTitle": "Panduan Mula Pantas MCP",
"mcpQuickStartStep1": "Jalankan pelayan MCP melalui `omniroute --mcp`.",
"mcpQuickStartStep2": "Konfigurasikan klien MCP anda untuk menyambung melalui pengangkutan stdio.",
"mcpQuickStartStep3": "Panggil alatan seperti `omniroute_get_health` dan `omniroute_list_combos`.",
@@ -4008,8 +4012,8 @@
"a2aQuickStartStep1": "Temui kad ejen di `/.well-known/agent.json`.",
"a2aQuickStartStep2": "Hantar permintaan JSON-RPC ke `POST /a2a` menggunakan `message/send` atau `message/stream`.",
"a2aQuickStartStep3": "Jejak dan kawal tugas menggunakan `tasks/get` dan `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "completionsLegacy": "Pelengkapan (Legasi)",
+ "completionsLegacyDesc": "Pelengkapan teks OpenAI legasi — menerima kedua-dua format rentetan prompt dan tatasusunan messages",
"messagesApi": "Mesej",
"messagesApiDesc": "Format API Native Anthropic Messages untuk pembekal yang serasi dengan Claude",
"imageEdits": "Suntingan Imej",
@@ -4018,40 +4022,40 @@
"batchApiDesc": "Proses kumpulan besar permintaan secara tidak segerak (serasi OpenAI)",
"filesApi": "API Fail",
"filesApiDesc": "Muat naik dan urus fail untuk pemprosesan kelompok",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Penjanaan Video",
+ "videoDesc": "Jana video menggunakan model AI seperti ComfyUI dan Stable Video Diffusion.",
+ "tailscaleRequestFailed": "Gagal memuatkan status Tailscale",
+ "tailscaleEnableFailed": "Gagal mendayakan Tailscale Funnel",
+ "tailscaleWaitingForLogin": "Lengkapkan log masuk Tailscale dalam tab pelayar yang dibuka. OmniRoute akan mencuba semula secara automatik.",
+ "tailscaleLoginTimedOut": "Tamat masa ketika menunggu log masuk Tailscale",
+ "tailscaleWaitingForFunnel": "Dayakan Funnel untuk peranti ini dalam tab pelayar yang dibuka. OmniRoute akan terus membuat tinjauan.",
+ "tailscaleFunnelTimedOut": "Masa menunggu tamat sementara menanti Tailscale Funnel didayakan",
+ "tailscaleStarted": "Tailscale Funnel didayakan",
+ "tailscaleDisableFailed": "Gagal menyahdayakan Tailscale Funnel",
+ "tailscaleStopped": "Tailscale Funnel dinyahdayakan",
+ "tailscaleInstallFailed": "Gagal memasang Tailscale",
+ "tailscaleInstallProgress": "Sedang diproses...",
+ "tailscaleInstalled": "Tailscale berjaya dipasang",
+ "tailscaleRunning": "Sedang Berjalan",
+ "tailscaleNeedsLogin": "Perlu Log Masuk",
+ "tailscaleStoppedState": "Dihentikan",
+ "tailscaleNotInstalled": "Belum dipasang",
+ "tailscaleUnsupported": "Tidak disokong",
+ "tailscaleError": "Ralat",
+ "tailscaleDisable": "Hentikan Funnel",
+ "tailscaleInstallAndEnable": "Pasang & Dayakan",
+ "tailscaleLoginAndEnable": "Log Masuk & Dayakan",
+ "tailscaleEnable": "Dayakan Funnel",
+ "tailscaleUrlNotice": "Menggunakan alamat .ts.net Tailscale anda. Log masuk dan kelulusan Funnel mungkin diperlukan pada penggunaan pertama.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "Sahkan mesin ini dengan Tailscale, kemudian dayakan Funnel.",
+ "tailscaleBinaryPath": "Binari: {path}",
+ "tailscaleLastError": "Ralat terakhir: {error}",
+ "tailscaleInstallTitle": "Pasang Tailscale",
+ "tailscaleInstallIntro": "Memasang Tailscale pada mesin ini dan menyediakan OmniRoute untuk mendayakan Funnel.",
+ "tailscaleInstallPasswordHint": "Pada macOS dan Linux, sudo mungkin diperlukan untuk pemasangan pakej dan memulakan daemon.",
+ "tailscaleSudoPlaceholder": "Kata laluan sudo pilihan",
+ "tailscaleInstalling": "Sedang memasang",
"tailscaleSudoLabel": "Kata Laluan Sudo (diperlukan pada macOS/Linux)",
"ngrokTitle": "Terowong ngrok",
"ngrokRunning": "Berlari",
@@ -4104,7 +4108,7 @@
"all": "Semua",
"more": "+{count} lagi",
"showInternalTooltip": "Tunjukkan atau sembunyikan laluan dalaman (disembunyikan secara lalai)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Pengesahan Bearer",
"requestBody": "Badan Permintaan",
"close": "Tutup",
"tryIt": "Cuba",
@@ -4128,21 +4132,21 @@
"vscodeAliasModelsLabel": "Model VS Code",
"vscodeAliasChatLabel": "Sembang VS Code",
"localServer": "Pelayan Tempatan",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "OmniRoute Awan",
"copyUrl": "Salin URL",
"badgeLoopbackTooltip": "Titik akhir ini hanya boleh diakses secara setempat (loopback sahaja)",
"badgeAlwaysProtectedTooltip": "Titik akhir ini sentiasa dilindungi dan memerlukan kebenaran",
"badgeInternalTooltip": "Ini ialah titik akhir sistem dalaman",
"tierAll": "Semua",
"tierAuth": "Disahkan",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Gelung Balik",
"tierAlwaysProtected": "Sentiasa Dilindungi",
"tierPublic": "Awam",
"hideInternal": "Sembunyikan Dalaman",
"showInternal": "Tunjukkan Dalaman",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Prom Sistem Tersuai",
+ "customSystemPromptDescription": "Masukkan prom sistem tersuai ke dalam setiap permintaan model",
+ "customSystemPromptPlaceholder": "cth. Sentiasa balas dalam gaya pertuturan lanun...",
"obsidianEnterToken": "Sila masukkan token API Obsidian",
"obsidianConnectFailed": "Gagal menyambung",
"obsidianConnectionFailed": "Sambungan gagal",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "Token telah dikonfigurasikan. Alat Notion boleh didapati melalui MCP."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "Proksi Titik Akhir",
+ "tabApiEndpoints": "Titik Akhir API",
+ "apiEndpointsTitle": "Titik Akhir API",
+ "apiEndpointsDescription": "Titik akhir API bahagian belakang yang boleh digunakan oleh aplikasi dan perkhidmatan lain. Bahagian ini akan menyenaraikan semua REST API yang tersedia berserta dokumentasi dan keupayaan pengujian.",
+ "comingSoon": "Akan Datang",
+ "plannedFeatures": "Ciri Dirancang",
+ "featureRestApi": "Katalog titik akhir REST API dengan dokumentasi interaktif",
+ "featureWebhooks": "Konfigurasi webhook dan langganan acara",
+ "featureSwagger": "Penjanaan automatik spesifikasi OpenAPI / Swagger",
+ "featureAuth": "Pengurusan kunci API dan skop OAuth bagi setiap titik akhir"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
+ "loading": "Memuatkan papan pemuka MCP...",
"activate": "aktifkan",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "deactivate": "nyahaktifkan",
+ "confirmSwitchCombo": "Sahkan untuk {action} gabungan \"{combo}\"?",
+ "switchComboFailed": "Gagal menukar keadaan gabungan.",
+ "switchComboSuccess": "Gabungan \"{combo}\" dikemas kini.",
+ "confirmApplyProfile": "Gunakan profil daya tahan \"{profile}\"?",
+ "applyProfileFailed": "Gagal menggunakan profil daya tahan.",
+ "applyProfileSuccess": "Profil \"{profile}\" digunakan.",
+ "confirmResetBreakers": "Tetapkan semula semua pemutus litar?",
+ "resetBreakersFailed": "Gagal menetapkan semula pemutus litar.",
+ "resetBreakersSuccess": "Pemutus litar telah ditetapkan semula.",
+ "processStatus": "Status proses",
"online": "Online",
"offline": "Offline",
"disableLabel": "Nyahdayakan {label}",
@@ -4233,119 +4237,119 @@
"mcpStep2": "Konfigurasikan klien MCP anda untuk menyambung melalui pengangkutan stdio.",
"mcpStep3": "Panggil alat seperti {code1} dan {code2}.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "Masa aktif sesi",
+ "lastHeartbeat": "Denyutan jantung terakhir",
+ "activity24h": "Aktiviti (24j)",
+ "totalCalls": "Jumlah panggilan",
+ "successRate": "Kadar kejayaan",
+ "avgLatency": "Purata kependaman",
+ "topTools": "Alat teratas",
+ "noToolCalls24h": "Tiada panggilan alat dalam tempoh 24 jam yang lalu.",
+ "runtimeDetails": "Butiran masa jalan",
+ "transport": "Pengangkutan",
+ "scopesEnforced": "Skop dikuatkuasakan",
+ "yes": "ya",
+ "no": "tidak",
+ "lastCall": "Panggilan terakhir",
+ "heartbeatPath": "Laluan denyutan jantung",
+ "operationalControls": "Kawalan operasi",
+ "switchCombo": "Tukar gabungan",
+ "inactive": "tidak aktif",
+ "active": "aktif",
+ "activateCombo": "Aktifkan gabungan",
+ "deactivateCombo": "Nyahaktifkan gabungan",
+ "applyResilienceProfile": "Gunakan profil daya tahan",
+ "profileAggressive": "agresif",
+ "profileBalanced": "seimbang",
+ "profileConservative": "konservatif",
+ "applyProfile": "Gunakan profil",
+ "resetCircuitBreakers": "Tetapkan semula pemutus litar",
+ "resetCircuitBreakersHelp": "Mengosongkan keadaan pemutus semasa dan kaunter kegagalan untuk penyedia.",
+ "resetAllBreakers": "Tetapkan semula semua pemutus",
+ "toolsAndScopes": "Alat dan skop",
+ "tableTool": "Alat",
+ "tableScopes": "Skop",
+ "tablePhase": "Fasa",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "Log audit",
+ "auditSummary": "Panggilan: {total} | halaman {page} daripada {totalPages}",
+ "allTools": "Semua alat",
+ "allResults": "Semua hasil",
+ "success": "Berjaya",
+ "failure": "Gagal",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "Memuatkan entri audit...",
+ "noAuditEntriesForFilters": "Tiada entri audit ditemukan untuk penapis semasa.",
+ "tableTimestamp": "Cap masa",
+ "tableDuration": "Tempoh",
+ "tableResult": "Hasil",
+ "tableApiKey": "Kunci API",
+ "failed": "gagal",
+ "previous": "Sebelumnya",
+ "next": "Seterusnya",
+ "apiKeyId": "ID Kunci API",
+ "offset": "Ofset",
+ "limit": "Had",
+ "tool": "Alat"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "Memuatkan papan pemuka A2A...",
+ "confirmCancelTask": "Batalkan tugas {taskId}?",
+ "cancelTaskFailed": "Gagal membatalkan tugas.",
+ "cancelTaskSuccess": "Tugas {taskId} dibatalkan.",
+ "smokeSendFailed": "Ujian ringkas message/send gagal.",
+ "smokeSendSuccessWithTask": "message/send berjaya (tugas {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "Ujian ringkas message/stream gagal.",
+ "smokeStreamSuccessWithTask": "message/stream berjaya (tugas {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream selesai tanpa ID tugas.",
+ "health": "Kesihatan",
"ok": "ok",
- "totalTasks": "Total tasks",
+ "totalTasks": "Jumlah tugas",
"activeStreams": "Aliran aktif",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "lastTask": "Tugas terakhir",
+ "taskStateOverview": "Gambaran keseluruhan status tugas",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "diserahkan",
+ "working": "sedang diproses",
+ "completed": "selesai",
+ "failed": "gagal",
+ "cancelled": "dibatalkan"
},
- "agentCard": "Agent card",
+ "agentCard": "Kad ejen",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "Versi",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "Keupayaan",
+ "agentCardNotAvailable": "Kad ejen tidak tersedia.",
+ "quickValidation": "Pengesahan pantas",
+ "quickValidationDescription": "Melaksanakan panggilan ujian asas melalui titik akhir `/a2a` secara langsung.",
+ "runMessageSend": "Jalankan message/send",
+ "runMessageStream": "Jalankan message/stream",
+ "taskManagement": "Pengurusan tugas",
+ "taskSummary": "{total} tugas | halaman {page} daripada {totalPages}",
+ "allStates": "semua",
+ "allSkills": "semua kemahiran",
+ "loadingTasks": "Memuatkan tugas...",
+ "noTasksForFilters": "Tiada tugas ditemukan untuk penapis semasa.",
+ "tableTask": "Tugas",
+ "tableSkill": "Kemahiran",
+ "tableState": "Status",
+ "tableUpdated": "Dikemas kini",
+ "tableActions": "Tindakan",
+ "view": "Lihat",
+ "cancel": "Batalkan",
+ "previous": "Sebelumnya",
+ "next": "Seterusnya",
+ "taskDetail": "Butiran tugas",
+ "close": "Tutup",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "Peristiwa",
+ "artifacts": "Artifak",
+ "tablePhase": "Fasa Jadual",
+ "offset": "Ofset",
+ "limit": "Had",
+ "skill": "Kemahiran",
"rpcEndpoint": "POS /a2a",
"rpcMethodSend": "mesej/hantar",
"rpcMethodStream": "mesej/strim",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Tindakan",
+ "addMemory": "Tambah Memori",
+ "allTypes": "Semua Jenis",
"cancel": "Batal",
"checkHealth": "Periksa kesihatan",
"checkingHealth": "Menyemak…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "Cara ia berfungsi",
"howWorksContent": "1. Pengekstrakan automatik: pada akhir setiap respons, fakta dan episod dikesan dan disimpan secara automatik.\n2. Pengambilan semula: sebelum setiap respons, memori yang paling berkaitan dicari melalui FTS5 (tepat), vektor (semantik), atau RRF hibrid.\n3. Suntikan: memori yang berkaitan disuntik ke dalam konteks pembantu untuk meningkatkan kualiti respons.\n4. Pengurusan: gunakan halaman ini untuk melihat, mengedit, mengeksport dan memadatkan memori lama."
},
- "content": "Content",
+ "content": "Kandungan",
"contentPlaceholder": "Nilai atau kandungan JSON untuk diingati",
- "created": "Created",
- "delete": "Delete",
+ "created": "Dicipta",
+ "delete": "Padam",
"deleteConfirmDesc": "Tindakan ini tidak boleh dibuat asal. Memori akan dipadamkan secara kekal.",
"deleteConfirmTitle": "Padamkan memori?",
- "description": "View and manage stored memory entries",
+ "description": "Lihat dan urus entri memori yang disimpan",
"editMemory": "Edit memori",
"editModal": {
"title": "Edit Memori",
@@ -4440,20 +4444,20 @@
"configureCta": "Konfigurasi",
"vectorStoreInstallHint": "Untuk mendayakan carian vektor: npm install sqlite-vec (memerlukan Node.js asli, bukan WASM), kemudian mulakan semula."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Episodik",
+ "export": "Eksport",
+ "factual": "Fakta",
"healthUnknown": "Kesihatan tidak diketahui",
- "hitRate": "Hit Rate",
+ "hitRate": "Kadar Padanan",
"import": "Import",
"importError": "Gagal mengimport fail",
"importResult": "{imported} diimport, {skipped} dilangkau",
- "key": "Key",
+ "key": "Kunci",
"keyPlaceholder": "cth. pengguna.keutamaan.tema",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Memori",
"next": "Seterusnya",
- "noMemories": "No memories found",
+ "noMemories": "Tiada memori ditemukan",
"pageInfo": "Halaman {page} daripada {totalPages} ({total} jumlah)",
"pipelineError": "Ralat saluran paip",
"pipelineOk": "Saluran paip OK ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "Gagal mengambil pratonton"
},
"previous": "Sebelumnya",
- "procedural": "Procedural",
+ "procedural": "Prosedural",
"qdrant": {
"title": "Qdrant (Storan Vektor Tahap 2)",
"description": "Penyepaduan Qdrant pilihan untuk carian semantik berskala",
@@ -4530,8 +4534,8 @@
},
"save": "Jimat",
"saving": "Menyimpan...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Cari memori...",
+ "semantic": "Semantik",
"summarize": {
"title": "Mampatkan memori lama",
"noCandidates": "Tiada memori yang layak untuk pemampatan (kriteria: berusia >30 hari).",
@@ -4540,11 +4544,11 @@
},
"tabs": {
"memories": "Memori",
- "playground": "Playground",
+ "playground": "Ruang Uji",
"engine": "Enjin"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Pengurusan Memori",
+ "tokensUsed": "Token Digunakan",
"tooltip": {
"totalEntries": "Jumlah memori yang disimpan untuk kunci API ini",
"tokensUsed": "Anggaran jumlah token yang diduduki oleh memori aktif",
@@ -4554,15 +4558,15 @@
"procedural": "Prosedur, aliran kerja, dan arahan yang harus diikuti oleh pembantu",
"semantic": "Konsep, keutamaan, dan pengetahuan domain"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "Jumlah Entri",
+ "type": "Jenis",
"memoryEnabled": "Memori didayakan"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Kemahiran",
+ "description": "Urus dan pantau kemahiran AI",
+ "skillsTab": "Kemahiran",
+ "executionsTab": "Pelaksanaan",
"selectSkillToInspect": "Pilih kemahiran di sebelah kiri untuk diperiksa.",
"schemaTab": "Skema",
"handlerTab": "Pengendali",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "Jalankan ujian (penjaga tempat)",
"setModeAria": "Tetapkan mod {mode}",
"uninstallSkill": "Nyahpasang kemahiran",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "Kotak Pasir",
+ "loading": "Memuatkan kemahiran...",
+ "noSkills": "Tiada kemahiran ditemukan",
+ "noExecutions": "Tiada pelaksanaan ditemukan",
+ "enabled": "Didayakan",
+ "disabled": "Dilumpuhkan",
"delete": "Padam",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
+ "version": "Versi",
+ "tableDescription": "Penerangan",
+ "skill": "Kemahiran",
"status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "duration": "Tempoh",
+ "time": "Masa",
+ "sandboxConfig": "Konfigurasi Kotak Pasir",
+ "cpuLimit": "Had CPU",
+ "cpuLimitDesc": "Masa pelaksanaan maksimum bagi setiap kemahiran",
+ "memoryLimit": "Had Memori",
+ "memoryLimitDesc": "Peruntukan memori maksimum",
+ "timeout": "Tamat Masa",
+ "timeoutDesc": "Masa menunggu maksimum untuk respons",
+ "networkAccess": "Akses Rangkaian",
+ "networkAccessDesc": "Benarkan permintaan rangkaian keluar",
+ "mode": "Mod",
"q": "Q",
"filterSkillsPlaceholder": "Tapis kemahiran mengikut nama, perihalan atau tag",
"allModes": "Semua mod",
@@ -4608,7 +4612,7 @@
"popularDefaultsLabel": "Popular secara lalai untuk penyedia yang dipilih:",
"onMode": "HIDUP",
"offMode": "MATI",
- "autoMode": "AUTO",
+ "autoMode": "AUTOMATIK",
"installSkillButton": "Pasang Kemahiran",
"installSkillModalTitle": "Pasang Kemahiran",
"installJsonPlaceholder": "Tampal JSON manifes kemahiran di sini...",
@@ -4661,13 +4665,13 @@
"retry": "Cuba semula",
"allOperational": "Semua sistem beroperasi",
"issuesDetected": "Isu sistem dikesan",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute sedia digunakan",
+ "healthVerdictActionRequired": "Tindakan diperlukan untuk memulihkan operasi sepenuhnya",
+ "healthVerdictCoolingDown": "Sedang menyejuk selepas perubahan terkini",
+ "healthSubtitle": "Pemeriksaan kesihatan sistem",
+ "advancedDiagnosticsTitle": "Diagnostik lanjutan",
+ "hide": "Sembunyikan",
+ "show": "Tunjukkan",
"updatedAt": "Dikemas kini {time}",
"latency": "Latensi",
"latencyP50": "p50",
@@ -4694,9 +4698,9 @@
"providers": "Pembekal",
"configuredProvidersLabel": "Dikonfigurasikan dalam papan pemuka",
"configuredProvidersHint": "Pembekal dengan bukti kelayakan disimpan dalam /papan pemuka/penyedia, tanpa mengira keadaan masa jalan.",
- "activeProviders": "{count} active",
+ "activeProviders": "{count} aktif",
"activeProvidersHint": "Penyedia yang dikonfigurasikan pada masa ini didayakan untuk permintaan penghalaan.",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "{count} dipantau",
"monitoredProvidersHint": "Pembekal kini dijejaki oleh pemantau kesihatan pemutus litar.",
"healthyCount": "{count} sihat",
"nodeVersion": "Nod {version}",
@@ -4717,11 +4721,11 @@
"resetting": "Menetapkan semula...",
"resetAll": "Tetapkan Semula Semua",
"until": "Sehingga {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "Kehabisan",
+ "learnedFromHeaders": "Dipelajari daripada pengepala",
+ "remainingOfLimit": "{remaining}/{limit} berbaki",
+ "throttleStatus": "Pendikitan: {value}",
+ "lastHeaderUpdate": "Kemas kini pengepala: {age}",
"databaseHealth": "Kesihatan Pangkalan Data",
"databaseHealthDescription": "Diagnosis dan baiki baris kuota/domain lapuk serta rujukan kombo yang rosak.",
"status": "Status",
@@ -4740,7 +4744,7 @@
"errors": "Ralat",
"degradationFull": "Penuh",
"degradationReduced": "Dikurangkan",
- "degradationMinimal": "Minimal",
+ "degradationMinimal": "Minimum",
"degradationDefault": "Lalai",
"sinceTime": "Sejak {time}",
"retryIn": "cuba lagi dalam {duration}",
@@ -4754,7 +4758,7 @@
"providerHealthMatrixDescription": "Keadaan penyedia × akaun × model daripada pemutus, tempoh bertenang, sekatan masuk dan log.",
"healthMatrixRange": "Julat matriks kesihatan",
"providerFilter": "Penapis penyedia",
- "onlyIssues": "Only issues",
+ "onlyIssues": "Isu sahaja",
"refresh": "Muat semula",
"accounts": "Akaun",
"models": "Model",
@@ -4769,11 +4773,11 @@
"inactive": "Tidak aktif",
"noConnectionId": "tiada id sambungan",
"accountModelSummary": "{connectionId} · {count} model",
- "cooldown": "cooldown",
+ "cooldown": "tempoh bertenang",
"durationRemaining": "{duration} berbaki",
"noSyncedModelsOrTraffic": "Belum ada model yang disinkronkan atau trafik terkini.",
"providerRowSummary": "{active}/{total} akaun aktif · {requests} req · {successRate} berjaya · {latency} purata",
- "cooldownCount": "{count} cooldown",
+ "cooldownCount": "{count} dalam tempoh bertenang",
"lockoutCount": "{count} sekatan",
"issueCount": "{count} isu",
"score": "Skor",
@@ -4884,28 +4888,28 @@
"previous": "Sebelumnya",
"next": "Seterusnya",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "Lihat Butiran",
+ "eventMetadata": "Metadata Peristiwa",
+ "eventPayload": "Muatan Peristiwa",
+ "requestId": "ID Permintaan",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
+ "offset": "Ofset",
+ "limit": "Had",
"status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
+ "resourceType": "Jenis Sumber",
+ "totalEntries": "Jumlah Entri",
"tab": "Tab",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "Tutup",
+ "runningRequests": "Permintaan Aktif",
+ "runningRequestsDesc": "Paparan masa nyata bagi permintaan huluan yang sedang berjalan",
"clearAll": "Kosongkan Semua",
"confirmClearActiveRequests": "Kosongkan semua permintaan aktif?",
"model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "provider": "Penyedia",
+ "account": "Akaun",
+ "elapsed": "Masa Berlalu",
"activeStage": "Peringkat",
"activeStageUnknown": "Belum dihantar ke upstream",
"activeStageRegistered": "Didaftarkan",
@@ -4915,35 +4919,35 @@
"activeStageRateLimitSlotAcquired": "Slot had kadar diperoleh",
"activeStageSendingToProvider": "Menghantar ke upstream",
"activeStageProviderResponseStarted": "Respons upstream bermula",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "Bilangan",
+ "payloads": "Muatan",
+ "viewPayloads": "Lihat",
+ "activeCount": "{count} aktif",
+ "clientPayload": "Muatan Permintaan Klien",
+ "upstreamPayload": "Muatan Penyedia Huluan",
+ "upstreamNotSentYet": "Belum dihantar ke huluan",
+ "runningRequestDetailMeta": "Akaun: {account} — Masa berlalu: {elapsed}",
+ "export": "Eksport",
+ "exporting": "Sedang mengeksport...",
+ "exportFailed": "Eksport gagal",
"cleanHistoryButton": "Bersihkan sejarah",
"cleanHistoryTitle": "Bersihkan sejarah log?",
"cleanHistoryMessage": "Ini memadamkan secara kekal semua baris log permintaan, baris butiran legasi, dan fail artifak tempatan di bawah DATA_DIR/call_logs. Halaman langsung akan dimuat semula selepas pembersihan.",
"cleanHistoryConfirm": "Bersihkan sejarah",
"cleanHistoryCancel": "Batal",
"cleanHistorySuccess": "Membersihkan {deleted} entri log, {deletedArtifacts} artifak, dan {deletedDetailedLogs} baris butiran legasi.",
- "cleanHistoryEmpty": "No request log history was found.",
- "cleanHistoryFailed": "Failed to clean log history.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "cleanHistoryEmpty": "Tiada sejarah log permintaan ditemukan.",
+ "cleanHistoryFailed": "Gagal membersihkan sejarah log.",
+ "timeRange": "Julat Masa",
+ "lastNHours": "{hours} Terakhir",
+ "defaultRange": "lalai",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
- "filterByLevel": "Filter by log level",
- "searchPlaceholder": "Search logs…",
- "searchAria": "Search log entries",
+ "fetchFailed": "Gagal mendapatkan log",
+ "copyFailed": "Gagal menyalin entri log",
+ "copyLogEntry": "Salin entri log",
+ "filterByLevel": "Tapis mengikut tahap log",
+ "searchPlaceholder": "Cari log…",
+ "searchAria": "Cari entri log",
"disableAutoScroll": "Nyahdayakan tatal automatik",
"enableAutoScroll": "Dayakan tatal automatik",
"autoScroll": "Tatal automatik",
@@ -4983,9 +4987,9 @@
"multiProvider": "Pelbagai Pembekal",
"usageTracking": "Penjejakan Penggunaan",
"securityDesc": "Tetapkan kata laluan untuk melindungi papan pemuka anda atau langkau buat masa ini.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ Tanpa kata laluan, anda tidak akan dapat menambah penyedia semasa persediaan. Anda boleh menambahnya kemudian daripada papan pemuka selepas menetapkan kata laluan.",
"providerDesc": "Sambungkan pembekal AI pertama anda. Anda boleh menambah lagi kemudian.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "Anda perlu menetapkan kata laluan terlebih dahulu untuk menambah penyedia. Sila kembali ke langkah keselamatan dan tetapkan kata laluan, atau tambah penyedia kemudian daripada papan pemuka.",
"apiKeyRequired": "Kunci API (diperlukan)",
"customUrlOptional": "URL tersuai (pilihan)",
"testDesc": "Mari sahkan sambungan pembekal anda berfungsi.",
@@ -5072,8 +5076,11 @@
"importFromFileImporting": "Mengimport…",
"importFromFileImport": "Import {count} penyedia",
"importFromFileResult": "Berjaya mengimport {success} penyedia ({failed} gagal)",
+ "importFromFileDownloadTemplate": "Muat turun templat CSV",
+ "importFromFileMoreErrors": "+{count} lagi",
+ "importFromFileSchemaHint": "Lajur CSV adalah mengikut kedudukan: provider, name, apiKey, baseUrl (pilihan), priority (pilihan). Lajur provider mestilah id penyedia terurus yang sedia ada atau id nod serasi OpenAI/Anthropic yang telah didaftarkan — import ini tidak mencipta nod titik akhir baharu.",
"adaptaTutorial": {
- "title": "How to connect Adapta Web",
+ "title": "Cara menyambungkan Adapta Web",
"introPrefix": "Adapta mengesahkan identiti melalui Clerk. Token tersebut",
"introSuffix": "ialah JWT tahan lama yang membolehkan OmniRoute menyegarkan sesi secara automatik.",
"or": "atau",
@@ -5095,7 +5102,7 @@
"step5DescPrefix": "Klik",
"step5DescMiddle": "tampal",
"step5DescSuffix": "nilai ke dalam medan Kunci API, kemudian simpan. OmniRoute akan menyegarkan sesi secara automatik.",
- "tipLabel": "Tip:",
+ "tipLabel": "Petua:",
"tipPrefix": "Kuki",
"tipSuffix": "adalah tahan lama, biasanya untuk berbulan-bulan. Anda hanya perlu memperbaharuinya jika anda log keluar atau Adapta membatalkan sesi tersebut."
},
@@ -5111,7 +5118,7 @@
"testSuccess": "Sambungan berjaya",
"testFailed": "Sambungan gagal",
"available": "Tersedia",
- "cooldown": "Cooldown",
+ "cooldown": "Tempoh bertenang",
"unavailable": "Tidak tersedia",
"unknown": "Tidak diketahui",
"oauthLabel": "OAuth",
@@ -5161,8 +5168,8 @@
"modelsHiddenCount": "{count} tersembunyi",
"warningCount": "{count} Amaran",
"noConnections": "Tiada sambungan",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "Tamat tempoh",
+ "expiringSoonBadge": "Akan Tamat Tempoh Tidak Lama Lagi",
"freeTier": "Peringkat Percuma",
"freeTierAvailable": "Peringkat percuma tersedia",
"hasFreeTooltip": "Pelan percuma tersedia",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "Pembekal ini telah ditamatkan",
"riskNotice": {
"title": "Sebelum meneruskan",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Peringatan penggunaan",
"tooltip": "Penyedia dengan kekangan penggunaan — klik untuk butiran",
"oauth": "Penyedia ini menggunakan sesi produk/OAuth rasmi anda, yang tidak dibenarkan untuk penggunaan proksi/penghala. Kami tidak mengesyorkan penggunaan ejen autonomi yang intensif (gaya OpenCloud, aliran berbilang langkah yang panjang, kelompok besar) — upstream mungkin bertindak balas dengan menyekat atau mengharamkan akaun tersebut. Gunakan atas risiko anda sendiri.",
"webCookie": "Penyedia ini mengesahkan melalui kuki sesi web anda. Perkhidmatan upstream mungkin membatalkan sesi pada bila-bila masa, memerlukan anda untuk log masuk semula. Tidak disyorkan untuk operasi tanpa pengawasan yang lama. Gunakan atas risiko anda sendiri.",
@@ -5184,9 +5191,9 @@
"cancel": "Batal"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} sambungan ditandai — sehingga {maxFailures} kegagalan terkini{lastFailureSuffix}. Klik untuk melihat status sambungan.",
+ "lastFailureSuffix": "(kegagalan terakhir {time})",
+ "ariaLabel": "Lihat butiran status sambungan, {count} amaran"
},
"disabled": "Dilumpuhkan",
"enableProvider": "Dayakan pembekal",
@@ -5221,7 +5228,7 @@
"failedCreate": "Gagal membuat pembekal",
"errorOccurred": "Ralat berlaku. Sila cuba lagi.",
"modelStatus": "Status Model",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "Yang dikonfigurasikan sahaja",
"allModelsOperational": "Semua model beroperasi",
"modelsWithIssues": "{count} model dengan isu",
"allModelsNormal": "Semua model bertindak balas secara normal.",
@@ -5232,7 +5239,7 @@
"clearing": "Membersihkan...",
"until": "Sehingga {time}",
"providerTestFailed": "Ujian pembekal gagal",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "Ujian penyedia tamat masa — terlalu banyak sambungan untuk diuji serentak",
"modeTest": "{mode} Ujian",
"passedCount": "{count} lulus",
"failedCount": "{count} gagal",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "URL Ikon",
"iconUrlHint": "Pilihan. URL imej yang ditunjukkan sebagai ikon penyedia ini.",
"iconUrlInvalid": "URL ikon tidak sah. Gunakan URL http(s):// atau data:image/*;base64.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Zon waktu penetapan semula kuota harian",
+ "dailyQuotaResetTimezoneHint": "Zon waktu IANA pilihan yang digunakan apabila perkhidmatan huluan tidak menyertakan X-RateLimit-Reset. Biarkan kosong untuk mengekalkan tempoh bertenang yang singkat.",
+ "dailyQuotaResetHourLabel": "Waktu penetapan semula kuota harian",
+ "dailyQuotaResetHourHint": "Jam tempatan 0-23 dalam zon waktu di atas. Kosong bermaksud tiada jam peringkat nod.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "Pembekal tidak ditemui",
"deleteConnectionConfirm": "Padamkan sambungan ini?",
"deleteConnectionConfirmNamed": "Adakah anda pasti mahu memadamkan {name}? Tindakan ini tidak boleh dibuat asal.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Padam yang Dipilih ({count})",
+ "batchDeleteConfirm": "Padam {count} sambungan? Tindakan ini tidak boleh dibuat asal.",
+ "batchDeleteSuccess": "{count} sambungan dipadamkan",
"batchActivateSelected": "Aktifkan",
"batchDeactivateSelected": "Nyahaktifkan",
"batchRetestSelected": "Uji semula",
@@ -5288,7 +5295,7 @@
"filterError": "Ralat",
"filterBanned": "Disekat",
"filterCreditsExhausted": "Kredit habis",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Cari akaun…",
"noFilteredConnections": "Tiada sambungan yang sepadan dengan penapis semasa.",
"failedSetAlias": "Gagal menetapkan alias",
"setAliasSuccess": "Alias {alias} ditetapkan",
@@ -5301,14 +5308,14 @@
"openaiCompatibleDetails": "Butiran Serasi OpenAI",
"messagesApi": "API Messages",
"responsesApi": "API Respons",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Pembenaman",
+ "audioTranscriptions": "Transkripsi Audio",
+ "audioSpeech": "Pertuturan Audio",
+ "imagesGenerations": "Penjanaan Imej",
"chatCompletions": "Selesai Sembang",
"importingModels": "Mengimport...",
"importFromModels": "Import daripada /models",
- "modelsImported": "{count} models imported",
+ "modelsImported": "{count} model diimport",
"allModelsAlreadyImported": "Semua model sudah diimport",
"noNewModelsToImport": "Tiada model baru untuk diimport — semua model sudah ada dalam registri atau senarai model tersuai",
"skippingExistingModels": "Melangkau {count} model sedia ada",
@@ -5346,13 +5353,13 @@
"importFailed": "Import gagal",
"noNewModelsAdded": "Tiada model baharu ditambahkan.",
"adding": "Menambah...",
- "close": "Close",
+ "close": "Tutup",
"importingModelsTitle": "Mengimport Model",
"copyModel": "Salin model",
"filterModels": "Tapis model…",
"testAllRateLimited": "Had kadar dicapai, dihentikan awal",
"hideFailedAuto": "Sembunyikan model yang gagal secara automatik",
- "selectAllModels": "Select all",
+ "selectAllModels": "Pilih semua",
"hideAllModels": "Sembunyikan semua",
"modelsActive": "aktif",
"showModel": "Tunjukkan model",
@@ -5382,8 +5389,8 @@
"bulkAddFormatHint": "Satu kunci setiap baris. Format: nama|apiKey atau hanya apiKey (dinamakan secara automatik mengikut indeks).",
"bulkValidateKeys": "Sahkan setiap kunci sebelum menyimpan (lebih perlahan)",
"bulkAddAllKeys": "Tambah Semua Kekunci",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {# kunci ditambahkan} other {# kunci ditambahkan}}",
+ "bulkFailedCount": "{count, plural, one {# gagal} other {# gagal}}",
"optional": "Pilihan",
"anthropicCompatibleName": "Serasi Anthropic",
"openaiCompatibleName": "Serasi OpenAI",
@@ -5400,7 +5407,7 @@
"unexpectedErrorOccurred": "Ralat yang tidak dijangka berlaku",
"getApiKey": "Dapatkan kunci API",
"getApiKeyDescription": "Daftar atau mendaftar untuk kunci API",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# sambungan} other {# sambungan}}",
"messagesPath": "mesej",
"responsesPath": "maklum balas",
"chatCompletionsPath": "sembang/penyelesaian",
@@ -5415,17 +5422,17 @@
"configured": "dikonfigurasikan",
"providerProxyConfigureHint": "Konfigurasikan proksi untuk semua sambungan pembekal ini",
"providerProxy": "Proksi Pembekal",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": "Baiki env",
+ "repairEnvWorking": "Sedang membaiki...",
+ "repairEnvHint": "Pulihkan nilai lalai OAuth yang tiada ke dalam .env tanpa menulis ganti nilai sedia ada.",
+ "repairEnvSuccess": "Nilai lalai OAuth dipulihkan",
+ "repairEnvFailed": "Gagal membaiki .env",
"noConnectionsYet": "Tiada sambungan lagi",
"addFirstConnectionHint": "Tambahkan sambungan pertama anda untuk bermula",
"addConnection": "Tambah Sambungan",
"availableModels": "Model Tersedia",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "Model terbina dalam",
+ "builtInModelsHint": "Model pendaftaran untuk penyedia ini. Gunakan ikon pensel untuk menetapkan pilihan keserasian.",
"pageAutoRefresh": "Halaman akan dimuat semula secara automatik...",
"statusDisabled": "kurang upaya",
"statusConnected": "bersambung",
@@ -5471,24 +5478,24 @@
"reauthenticateConnection": "Sahkan semula sambungan ini",
"proxyConfig": "Konfigurasi proksi",
"aliasExistsAlert": "Alias \"{alias}\" sudah wujud. Sila gunakan model lain atau edit alias sedia ada.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "nama alias",
+ "clickToSetAlias": "Klik untuk menetapkan alias",
+ "clickToEditAlias": "Alias: {alias} (klik untuk mengedit)",
"openRouterAnyModelHint": "OpenRouter menyokong mana-mana model. Tambah model dan buat alias untuk akses pantas.",
"modelIdFromOpenRouter": "ID Model (dari OpenRouter)",
"openRouterModelPlaceholder": "antropik/claude-3-opus",
"customModels": "Model Tersuai",
"customModelsHint": "Tambahkan ID model yang tiada dalam senarai lalai. Ini akan tersedia untuk penghalaan.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "Normalkan ID panggilan alat kepada 9 aksara (cth. Mistral)",
+ "preserveDeveloperRoleLabel": "Kekalkan peranan pembangun OpenAI Responses (jangan petakan kepada sistem)",
+ "compatAdjustmentsTitle": "Keserasian",
+ "compatButtonLabel": "Keserasian",
+ "compatToolIdShort": "ID alat 9",
+ "compatDeveloperShort": "Peranan pembangun",
+ "compatDoNotPreserveDeveloper": "Jangan kekalkan peranan pembangun",
+ "compatBadgeNoPreserve": "Jangan kekalkan",
+ "compatProtocolLabel": "Protokol permintaan klien",
+ "compatProtocolHint": "Pilihan ini digunakan apabila OmniRoute mengesan bentuk permintaan ini (OpenAI Chat, Responses API atau Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5496,7 +5503,7 @@
"targetFormatHint": "Pintas format wayar huluan. Gunakan 'Anthropic Messages' untuk menghalakan penyedia serasi OpenAI (cth. opencode-go) melalui titik akhir /v1/messages.",
"targetFormatAuto": "Lalai (auto)",
"targetFormatGemini": "Gemini",
- "targetFormatAntigravity": "Antigravity",
+ "targetFormatAntigravity": "Antigraviti",
"contextWindowOverrideLabel": "Pintasan Tetingkap Konteks",
"contextWindowOverridePlaceholder": "cth. 131072",
"contextWindowOverrideHint": "Tetapkan tetingkap konteks sebenar model ini (token) secara manual apabila penyedia salah melaporkannya. Mengatasi nilai yang dikesan secara automatik/katalog dan menghalang penghalaan kombo daripada menggugurkan model.",
@@ -5530,25 +5537,25 @@
"interceptFetchHint": "Tulis semula panggilan alat web_fetch asli ke /v1/web/fetch OmniRoute.",
"interceptionLoadError": "Gagal memuatkan tetapan pintasan: {error}",
"interceptionSaveError": "Gagal menyimpan tetapan pintasan: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "ccAliasSectionTitle": "Paparkan dalam Claude Code (claude/…)",
+ "ccAliasSectionHint": "Iklankan model penyedia ini di bawah ID cermin claude/<provider>/<model> supaya penemuan model get laluan Claude Code boleh menyenaraikannya. Dimatikan secara lalai — mendayakan pilihan ini akan menggandakan entri katalog untuk semua klien.",
+ "ccAliasProviderLevelLabel": "Lalai penyedia",
+ "ccAliasModelOverridesLabel": "Penggantian mengikut model",
+ "ccAliasModelOverrideAriaLabel": "Penggantian untuk {modelId}",
+ "ccAliasStateInherit": "Warisi",
+ "ccAliasStateOn": "Hidup",
+ "ccAliasStateOff": "Mati",
+ "ccAliasAddModelPlaceholder": "ID model (cth. gpt-4o)",
+ "ccAliasAddModelButton": "Tambah penggantian",
+ "ccAliasLoadError": "Gagal memuatkan tetapan alias penemuan: {error}",
+ "ccAliasSaveError": "Gagal menyimpan tetapan alias penemuan: {error}",
+ "compatUpstreamHeadersLabel": "Pengepala huluan tambahan",
+ "compatUpstreamHeadersHint": "Tetapan berkeistimewaan tinggi — tahap kepercayaan yang sama seperti mengedit kelayakan API penyedia; hanya pentadbir yang dipercayai patut menggunakannya. Digabungkan selepas OmniRoute menambahkan pengesahan daripada kunci API penyedia. Jika pengepala tersuai menggunakan nama yang sama dengan pengepala sedia ada (cth. Authorization), nilai anda menggantikan sepenuhnya pengepala yang dijana secara automatik (termasuk token Bearer) — pihak huluan hanya melihat apa yang anda taip, bukan kunci daripada tetapan. Salah konfigurasi boleh menyebabkan ralat 401 atau kegagalan pengesahan huluan. Satu baris bagi setiap pengepala (cth. Authentication tambahan untuk sesetengah get laluan). Tuding atau fokus pada nilai untuk pratonton. Disimpan apabila fokus beralih, mengklik di luar atau menutup panel ini.",
+ "compatUpstreamHeaderName": "Nama pengepala",
+ "compatUpstreamHeaderValue": "Nilai",
+ "compatUpstreamAddRow": "Tambah pengepala",
+ "compatUpstreamRemoveRow": "Alih keluar baris",
+ "compatBadgeUpstreamHeaders": "Pengepala",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
"importFreeModelsOnlyLabel": "Import model percuma sahaja",
@@ -5588,26 +5595,26 @@
"email": "E-mel",
"healthCheckMinutes": "Pemeriksaan Kesihatan (min)",
"healthCheckHint": "Selang penyegaran token proaktif. 0 = kurang upaya.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "deselectAllModels": "Nyahpilih semua",
+ "modelsActiveCount": "{active}/{total} aktif",
+ "noModelsMatch": "Tiada model yang sepadan dengan \"{filter}\"",
+ "groupLabel": "Persekitaran",
+ "groupPlaceholder": "cth. eKaizen, Peribadi",
"failedTestConnection": "Gagal menguji sambungan",
"failed": "gagal",
"leaveBlankKeepCurrentApiKey": "Biarkan kosong untuk mengekalkan kunci API semasa.",
"editCompatibleTitle": "Edit {type} Serasi",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "URL akar bagi API serasi {type} anda. Gunakan Tetapan Lanjutan untuk laluan titik akhir tersuai.",
"apiKeyForCheck": "Kunci API (untuk Semakan)",
"testModelIdLabel": "ID Model (pilihan)",
"testModelIdPlaceholder": "cth. my-model-id",
"testModelIdHint": "Jika penyedia tidak mempunyai titik akhir /models, masukkan ID model untuk mengesahkan melalui /chat/completions sebagai ganti.",
"compatibleProdPlaceholder": "{type} Serasi (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "Token berjaya dimuat semula",
+ "tokenRefreshFailed": "Penyegaran token gagal",
"cursorSessionUnchanged": "Sesi sudah sedia ada",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Gunakan pengesahan",
+ "exportCodexAuthFile": "Eksport pengesahan",
"applyClaudeAuthLocal": "Gunakan pengesahan",
"exportClaudeAuthFile": "Eksport pengesahan",
"importClaudeAuth": "Import pengesahan",
@@ -5622,7 +5629,7 @@
"claudeAuthApplyFailed": "Gagal menggunakan pengesahan Claude secara setempat",
"claudeAuthExported": "Fail pengesahan Claude dieksport",
"claudeAuthExportFailed": "Gagal mengeksport fail pengesahan Claude",
- "claudeImportModalTitle": "Import Claude Auth",
+ "claudeImportModalTitle": "Import Pengesahan Claude",
"claudeImportTabSingle": "Bujang",
"claudeImportTabBulk": "Pukal",
"claudeImportTabUpload": "Muat naik fail",
@@ -5654,7 +5661,7 @@
"geminiAuthApplyFailed": "Gagal menggunakan pengesahan Gemini secara tempatan",
"geminiAuthExported": "Fail pengesahan Gemini dieksport",
"geminiAuthExportFailed": "Gagal mengeksport fail pengesahan Gemini",
- "geminiImportModalTitle": "Import Gemini Auth",
+ "geminiImportModalTitle": "Import Pengesahan Gemini",
"geminiImportTabSingle": "Bujang",
"geminiImportTabBulk": "Pukal",
"geminiImportTabUpload": "Muat naik fail",
@@ -5700,7 +5707,7 @@
"codexExternalLinkConnected": "Akaun Codex disambungkan melalui pautan luaran.",
"codexExternalLinkExpired": "Pautan telah tamat tempoh sebelum selesai.",
"importCodexAuth": "Import pengesahan",
- "codexImportModalTitle": "Import Codex Auth",
+ "codexImportModalTitle": "Import Pengesahan Codex",
"codexImportTabSingle": "Bujang",
"codexImportTabBulk": "Pukal",
"codexImportTabUpload": "Muat naik fail",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} gagal",
"codexImportBulkZipExtracting": "Mengeluarkan ZIP…",
"codexImportBulkZipError": "Gagal mengeluarkan ZIP",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Tetapan Lanjutan",
+ "chatPathLabel": "Laluan Titik Akhir Sembang",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Laluan sembang tersuai untuk penyedia dengan API bukan standard (cth. /v4/chat/completions)",
+ "modelsPathLabel": "Laluan Titik Akhir Model",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Laluan model tersuai untuk pengesahan (cth. /v4/models)",
"clientIdentityLabel": "Identiti Klien",
"clientIdentityHint": "Pilihan. Menambah pengepala cap jari klien (cth. User-Agent) yang sepadan dengan CLI yang dikenali untuk get laluan serasi yang mengharapkannya.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "Dinyahaktifkan (Manual)",
+ "statusBanned": "Disekat / Pelanggaran Sandbox",
+ "statusCreditsExhausted": "Baki Tidak Mencukupi / Kuota Habis",
+ "showEmails": "Tunjukkan semua e-mel",
+ "hideEmails": "Sembunyikan semua e-mel",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Tambah kunci API lain atau tampal berbilang kunci",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "Gerbang Pengagregat",
"enterpriseCloud": "Perusahaan & Awan",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "Label Format API",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
+ "apiRegionChina": "Rantau API China",
+ "apiRegionHint": "Petunjuk Rantau API",
+ "apiRegionInternational": "Rantau API Antarabangsa",
+ "apiRegionLabel": "Label Rantau API",
+ "apikey": "Kunci API",
"audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "audioProvidersHeading": "Tajuk Penyedia Audio",
"cloudAgentProviders": "Pembekal Agen Awan",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Label Ringkas Audio",
+ "azureOpenAiBaseUrlHint": "Petunjuk URL Asas Azure Open AI",
+ "bailianBaseUrlHint": "Petunjuk URL Asas Bailian",
+ "claudeWebCookieHint": "Buka claude.ai → DevTools → Application → Cookies → claude.ai, salin nilai 'sessionKey'. Turut memerlukan cf_clearance, __cf_bm, _cfuvid untuk Cloudflare.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Petunjuk Kuki Blackbox Web",
+ "blackboxWebCookiePlaceholder": "Ruang Letak Kuki Blackbox Web",
"t3ChatWebCookieHint": "Buka t3.chat → DevTools → Aplikasi → Storan Tempatan → https://t3.chat, salin 'convex-session-id'. Kemudian buka DevTools → Rangkaian, salin pengepala Kuki penuh daripada sebarang permintaan sembang. Tampalkan kedua-dua nilai dalam medan di bawah.",
"t3ChatWebCookiePlaceholder": "cembung-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Petunjuk Kuki Grok Web",
"blockClaudeExtraUsageDescription": "Apabila diaktifkan, OmniRoute menandakan sambungan Claude ini tidak tersedia sebaik sahaja API penggunaan melaporkan penggunaan tambahan yang beratur, jadi fallback beralih ke sambungan lain dan bukannya meneruskan dengan pengebilan tambahan bayar mengikut penggunaan.",
"blockClaudeExtraUsageLabel": "Sekat penggunaan Claude yang berlebihan",
"disableCoolingDescription": "Langkau tempoh bertenang sementara supaya sambungan ini kekal layak walaupun selepas ralat yang boleh dipulihkan (keadaan terminal seperti disekat/tamat tempoh masih terpakai).",
"disableCoolingLabel": "Nyahdayakan tempoh bertenang untuk sambungan ini",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 kunci ditambahkan} other {# kunci ditambahkan}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 pendua dilangkau} other {# pendua dilangkau}}",
+ "bulkPasteHint": "Tampal satu kunci API bagi setiap baris. Baris kosong akan diabaikan dan kunci pendua akan dilangkau.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Menambahkan pengepala beta redact-thinking untuk huluan CC Compatible yang memerlukan strim pemikiran Claude tersembunyi.",
+ "ccCompatibleRedactThinkingLabel": "Dayakan beta redact-thinking",
+ "ccCompatibleSummarizeThinkingDescription": "Menambahkan `display: \"summarized\"` pada permintaan pemikiran CC Compatible supaya model Claude yang disokong menstrim delta pemikiran yang boleh dilihat.",
+ "ccCompatibleSummarizeThinkingLabel": "Dayakan paparan pemikiran diringkaskan",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "Gunakan peringkat perkhidmatan keutamaan untuk permintaan Codex apabila tersedia.",
+ "codexFastServiceTierLabel": "Peringkat perkhidmatan pantas Codex",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "Ruang Letak Nama Pengepala Huluan Serasi",
+ "compatUpstreamHeaderValuePlaceholder": "Ruang Letak Nilai Pengepala Huluan Serasi",
+ "compatible": "Serasi",
+ "configuredCount": "Bilangan Dikonfigurasikan",
+ "consoleApiKeyOracleHint": "Petunjuk Kunci API Konsol Oracle",
+ "consoleApiKeyOracleLabel": "Label Kunci API Konsol Oracle",
+ "consoleApiKeyOraclePlaceholder": "Ruang Letak Kunci API Konsol Oracle",
+ "newApiUserIdLabel": "ID Pengguna New-API",
+ "newApiUserIdPlaceholder": "cth. 12345",
+ "newApiUserIdHint": "Nilai pengepala AgentRouter New-Api-User, digunakan bersama-sama dengan kunci API konsol untuk mendapatkan baki kuota.",
"newApiAggregatorToggleLabel": "Gerbang Pengumpul",
"newApiAggregatorToggleHint": "Aktifkan pengesanan baki untuk nod pengumpul New-API / One-API / Sub2API. Papan pemuka akan menunjukkan lencana baki dan penghalaan pra-penggunaan kuota akan mengabaikan akaun yang telah habis.",
"newApiAggregatorConsoleApiKeyHint": "Token Akses Sistem untuk titik akhir /api/user/self pengumpul. Bukan kunci API penghalaan.",
@@ -5826,53 +5833,53 @@
"featureFlagNewApiAggregatorBalanceDescription": "Aktifkan pengesanan baki untuk nod yang serasi dengan New-API / One-API / Sub2API aggregator",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Petunjuk Ejen Pengguna Tersuai",
+ "customUserAgentLabel": "Label Ejen Pengguna Tersuai",
+ "databricksBaseUrlHint": "Petunjuk URL Asas Databricks",
+ "defaultThinkingStrengthHint": "Digunakan apabila permintaan tidak menentukan tahap usaha penaakulan.",
+ "defaultThinkingStrengthLabel": "Kekuatan pemikiran lalai",
+ "deleteAllExtraApiKeys": "Padam semua",
+ "excludedModelsHint": "Petunjuk Model Dikecualikan",
+ "excludedModelsLabel": "Label Model Dikecualikan",
+ "excludedModelsPlaceholder": "Ruang Letak Model Dikecualikan",
+ "expirationBannerExpired": "Sepanduk Tamat Tempoh: Telah Tamat Tempoh",
+ "expirationBannerExpiredDesc": "Perihalan Sepanduk Tamat Tempoh",
+ "expirationBannerExpiringSoon": "Sepanduk Tamat Tempoh: Akan Tamat Tidak Lama Lagi",
+ "expirationBannerExpiringSoonDesc": "Perihalan Sepanduk Akan Tamat Tidak Lama Lagi",
+ "extraApiKeyMasked": "Kunci {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Petunjuk Kunci API Tambahan",
+ "extraApiKeysLabel": "Label Kunci API Tambahan",
+ "apiKeyHealthLabel": "Status Kunci API",
+ "apiKeyStatusActive": "Aktif",
+ "apiKeyStatusWarning": "Amaran ({count} kegagalan)",
+ "apiKeyStatusInvalid": "Tidak sah",
+ "primaryKey": "Kunci Utama",
+ "apiKeyInvalidAlert": "{count} kunci API ditandai sebagai tidak sah disebabkan kegagalan pengesahan dalam sambungan: {connections}. Kunci tersebut akan dilangkau dalam penggiliran. Klik untuk menyemak.",
+ "apiKeyInvalidAlertTitle": "Amaran Status Kunci API",
+ "apiKeyWarningAlert": "{count} kunci API berada dalam keadaan amaran disebabkan kadar kegagalan sambungan yang tinggi: {connections}. Semak untuk mengelakkan isu penggiliran.",
+ "apiKeyWarningAlertTitle": "Amaran Kunci API",
+ "googlePseInfo": "Maklumat Google Pse",
"antigravityProjectIdHint": "Penggantian pilihan untuk permintaan Kod Awan Antigraviti. Biarkan kosong untuk menggunakan projek yang ditemui semasa Google OAuth.",
"antigravityClientProfileLabel": "Profil klien",
"antigravityClientProfileHint": "Pilih identiti klien Antigravity yang dibentangkan oleh OmniRoute kepada API.",
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "Harness / CLI",
"codexFastTierActiveChip": "Tier Fast Codex aktif",
- "tierFast": "Fast",
+ "tierFast": "Pantas",
"antigravityProjectIdLabel": "ID Projek Awan Google",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Ruang Letak Cookie Web Grok",
+ "herokuBaseUrlHint": "Petunjuk URL Asas Heroku",
+ "hideEmail": "Sembunyikan E-mel",
+ "imageProviders": "Penyedia Imej",
"videoProviders": "Penjanaan Video",
"embeddingRerankProviders": "Pembenaman & Kedudukan Semula",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "Label Ringkas Imej",
+ "llmProviders": "Penyedia LLM",
+ "localProviderApiKeyOptionalHint": "Petunjuk Kunci API Pilihan bagi Penyedia Setempat",
+ "localProviderBaseUrlHint": "Petunjuk URL Asas Penyedia Setempat",
+ "localProviders": "Penyedia Setempat",
+ "maxConcurrentWholeNumberError": "Ralat Nombor Bulat bagi Bilangan Serentak Maksimum",
"m365TierLabel": "Tahap Copilot",
"m365TierHint": "Pilih permukaan Microsoft 365 Copilot yang digunakan oleh sambungan ini. Individu ialah BizChat pengguna lalai; Pendidikan dan Perusahaan (kerja) memilih permukaan penyewa mereka.",
"m365TierIndividualOption": "Individu (lalai)",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "Murah",
"tierOverridePremium": "Premium",
"tierOverrideHelpText": "Sematkan penyedia ini ke tahap penghalaan dan bukannya membiarkan OmniRoute menentukannya daripada harga model.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Petunjuk Cookie Web Muse Spark",
+ "museSparkWebCookiePlaceholder": "Ruang Letak Cookie Web Muse Spark",
+ "oauth": "OAuth",
+ "openCliTools": "Buka Alat CLI",
+ "openSettings": "Buka Tetapan",
+ "openaiResponsesStoreDescription": "Benarkan permintaan Responses API yang serasi mengekalkan keadaan respons yang disimpan.",
+ "openaiResponsesStoreLabel": "Storan OpenAI Responses",
+ "perplexitySearchSharedKeyInfo": "Maklumat Kunci Dikongsi Perplexity Search",
+ "perplexityWebCookieHint": "Petunjuk Cookie Web Perplexity",
+ "perplexityWebCookiePlaceholder": "Ruang Letak Cookie Web Perplexity",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Ganti Had Kadar",
"rateLimitOverridesMaxConcurrentHint": "Ganti permintaan serentak maksimum untuk sambungan ini. Menggantikan had tahap akaun.",
"rateLimitOverridesMaxConcurrentLabel": "Maksimum Serentak (Had Kadar)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Tempoh maksimum (ms) sesuatu permintaan boleh menunggu slot had kadar sebelum gagal. Mengatasi tetapan Ketahanan global untuk sambungan ini sahaja.",
+ "rateLimitOverridesMaxWaitMsLabel": "Masa Menunggu Baris Gilir Maksimum (ms)",
"rateLimitOverridesMinTimeHint": "Masa minimum (ms) antara permintaan. Menggantikan kelewatan pengehad kadar lalai.",
"rateLimitOverridesMinTimeLabel": "Selang Minimum (ms)",
"rateLimitOverridesRpdHint": "Permintaan maksimum sehari untuk sambungan ini. Mengatasi lalai penyedia.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (Token/hari)",
"rateLimitOverridesTpmHint": "Token maksimum seminit untuk sambungan ini. Menggantikan lalai penyedia.",
"rateLimitOverridesTpmLabel": "TPM (Token/min)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "refreshOauthTokenTitle": "Tajuk Muat Semula Token OAuth",
+ "regionHint": "Petunjuk Rantau",
+ "regionLabel": "Label Rantau",
+ "removeThisKey": "Alih Keluar Kunci Ini",
+ "routingTagsHint": "Petunjuk Tag Penghalaan",
+ "routingTagsLabel": "Label Tag Penghalaan",
+ "routingTagsPlaceholder": "Ruang Letak Tag Penghalaan",
+ "search": "Cari",
+ "searchEngineIdHint": "Petunjuk ID Enjin Carian",
+ "searchEngineIdLabel": "Label ID Enjin Carian",
+ "searchEngineIdRequired": "ID Enjin Carian Diperlukan",
+ "searchProvider": "Penyedia Carian",
+ "searchProviderDesc": "Perihalan Penyedia Carian",
"searchProviders": "Cari pembekal...",
"searchByModel": "Cari mengikut model…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Tajuk Penyedia Carian",
+ "searxngBaseUrlHint": "Petunjuk URL Asas Searxng",
+ "searxngInfo": "Maklumat Searxng",
+ "sessionCookieLabel": "Label Kuki Sesi",
+ "showEmail": "Tunjukkan E-mel",
+ "snowflakeBaseUrlHint": "Petunjuk URL Asas Snowflake",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Petunjuk Kumpulan Tag",
+ "tagGroupLabel": "Label Kumpulan Tag",
+ "tagGroupPlaceholder": "Ruang Letak Kumpulan Tag",
+ "testModel": "Uji Model",
+ "testingModel": "Menguji Model",
"modelTestQuotaTooltip": "Kuota habis — akan diset semula esok atau memerlukan tambah nilai",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Lencana Token Tamat Tempoh",
+ "tokenExpiredTitle": "Tajuk Token Tamat Tempoh",
+ "tokenExpiresSoonTitle": "Tajuk Token Akan Tamat Tempoh Tidak Lama Lagi",
+ "tokenShort": "Token Ringkas",
+ "totalKeysRotating": "{count, plural, one {1 kunci bergilir} other {# kunci bergilir}}",
+ "unhideModel": "Nyahsembunyikan Model",
+ "upstreamProxyProviders": "Penyedia Proksi Huluan",
"validationModelIdHint": "Model yang digunakan untuk mengesahkan kunci API. Biarkan kosong untuk menggunakan model pertama yang tersedia daripada penyedia.",
"validationModelIdLabel": "Model pengesahan",
"validationModelIdPlaceholder": "cth. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Tampalkan JSON Akaun Perkhidmatan anda ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) atau OAuth access_token",
+ "webCookieProviders": "Penyedia Kuki Web",
+ "weeklyShort": "Mingguan Ringkas",
+ "xiaomiMimoBaseUrlHint": "Petunjuk URL Asas Xiaomi Mimo",
"globalCodexServiceMode": "Mod perkhidmatan Codex Global",
"connect": "Sambung",
"manualApiKey": "Kunci API manual",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Kesan kelayakan penyedia AI (OpenAI, Anthropic, Google, Mistral, xAI) yang disimpan oleh Zed IDE dalam rantai kunci OS dan importnya sebagai sambungan. Zed IDE mesti dipasang pada mesin ini.",
"zedImportButton": "Import dari Zed",
"zedImportFailed": "Zed gagal diimport",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Petunjuk Import Zed",
+ "zedImportNetworkError": "Ralat Rangkaian Import Zed",
+ "zedImportNone": "Tiada Import Zed",
"zedImportSuccess": "Mengimport {credentials} kelayakan dari Zed untuk {providers} penyedia(s)",
"zedImporting": "Mengimport…",
"zedNoCredentials": "Tiada kelayakan Zed ditemui dalam rantai kunci",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "Proksi API berdiskaun untuk 40+ model termasuk GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5. Dapatkan kunci API anda di https://freeaiapikey.com/dashboard. URL asas: https://freeaiapikey.com/v1.",
"freemodel-dev": "Dapatkan kredit API percuma $300 di https://freemodel.dev — tiada maklumat pembayaran diperlukan. Titik akhir serasi OpenAI. Model GPT-5.4 dan GPT-5.5 tersedia.",
"friendliai": "Peringkat percuma untuk inferens tanpa pelayan — tiada kad kredit diperlukan",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Peringkat percuma melalui Google AI Studio; kuota bagi setiap model tidak lagi diterbitkan (semak halaman kuota dalam AI Studio) — tiada kad kredit.",
"gigachat": "Sambungkan GigaChat (Sber) dengan kunci API.",
"gitlab": "Token akses peribadi GitLab untuk API Code Suggestions awam. Konfigurasikan URL asas dihoskan sendiri apabila tidak menggunakan gitlab.com.",
"gitlawb-gmi": "Dapatkan kunci API anda daripada papan pemuka Gitlawb Opengateway.",
@@ -6180,7 +6187,7 @@
"glm-cn": "Sambungkan GLM Coding (China) dengan kunci API.",
"glmt": "Profil GLM pratetap dengan belanjawan token yang lebih tinggi, pemikiran didayakan dan tamat masa yang lebih lama.",
"getgoapi": "Sambungkan GoAPI dengan kunci API.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Pelan percuma: had bagi setiap model (200K token/hari bagi setiap model sembang; lihat console.groq.com/docs/rate-limits untuk RPM/RPD) — tiada kaedah pembayaran dalam fail.",
"haiper": "Dapatkan kunci API di haiper.ai/haiper-api",
"heroku": "Sambungkan Heroku AI dengan kunci API.",
"hcnsec": "Dapatkan kunci API di api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "Cipta kunci API di https://app.requesty.ai, kemudian tampalkannya di sini sebagai token Bearer. Titik akhir serasi OpenAI di https://router.requesty.ai/v1, dengan katalog /v1/models langsung.",
"runwayml": "Penjanaan video Runway adalah berasaskan tugas. OmniRoute menyerahkan kerja teks-ke-video atau imej-ke-video, meninjau /v1/tasks/[id], dan menormalkan output video yang telah selesai kembali ke dalam respons /v1/videos/generations seperti OpenAI.",
"sambanova": "Kredit percuma $5 semasa pendaftaran (tempoh sah 30 hari), tiada kad kredit diperlukan",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Cipta kunci API di https://seekai.cc, kemudian tampalkannya di sini sebagai token Bearer. URL asas yang serasi dengan OpenAI: https://seekai.cc/v1.",
"sap": "Penemuan model menggunakan /v2/lm/scenarios/foundation-models/models pada AI_API_URL. Permintaan sembang menggunakan deploymentUrl/chat/completions dan memerlukan AI-Resource-Group.",
"sarvam": "Sarvam AI adalah serasi dengan OpenAI pada /v1. OmniRoute menyiasat /v1/models dan mengarahkan trafik sembang ke /v1/chat/completions. Model disesuaikan untuk bahasa-bahasa India.",
"scaleway": "1M token percuma untuk akaun baharu — mematuhi EU/GDPR (Paris), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "Sambungkan Claude Code dengan aliran OAuth sedia ada.",
"cline": "Sambungkan Cline dengan aliran OAuth sedia ada.",
"cursor": "Sambungkan Cursor IDE dengan aliran OAuth sedia ada.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Sambungkan Cursor dengan kunci API pengguna (crsr_...) daripada cursor.com/dashboard/api; sesi IDE tidak diperlukan.",
"github": "Sambungkan GitHub Copilot dengan aliran OAuth sedia ada.",
"gitlab-duo": "Aplikasi OAuth dengan skop ai_features + read_user. Konfigurasikan GITLAB_DUO_OAUTH_CLIENT_ID dan secara pilihan GITLAB_DUO_OAUTH_CLIENT_SECRET pada tika OmniRoute ini.",
"kilocode": "Sambungkan Kilo Code dengan aliran OAuth sedia ada.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "Salin bukti kelayakan yang diperlukan daripada domain penyedia sendiri. Untuk kuki, salin hanya nilai pengepala Kuki dan tinggalkan Kuki:.",
"webSessionGuideStep3Manual": "Jalan manual: buka alat pemaju pelayar (F12 → Rangkaian), segarkan halaman, buka permintaan yang telah disahkan, dan salin nilai tajuk Cookie dari Tajuk Permintaan — abaikan awalan Cookie:.",
"webSessionGuideStep4": "Tampalkannya di sini dan semak sambungannya. Jika ia berhenti berfungsi, log masuk semula dan gantikannya dengan nilai baharu.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "Import fail .har",
+ "harImportButtonBusy": "Sedang mengimport…",
+ "harImportButtonHint": "Eksport daripada tab Network DevTools selepas menghantar sekurang-kurangnya satu mesej sembang.",
+ "harImportStatusValid": "Diimport — sah selama ~{minutes}m.",
+ "harImportStatusExpiringSoon": "Diimport — hanya sah selama ~{minutes}m lagi.",
+ "harImportStatusExpired": "Diimport, tetapi token ini telah tamat tempoh ({minutes}m yang lalu) — eksport HAR yang baharu.",
+ "harImportStatusUnknownExpiry": "Diimport. Tarikh luputnya tidak dapat dibaca.",
+ "harImportErrorNotJson": "Fail itu bukan JSON yang sah — adakah ia benar-benar eksport .har?",
+ "harImportErrorNoEntries": "HAR ini tidak mempunyai entri rangkaian yang direkodkan.",
+ "harImportErrorNoChathubUrl": "Tiada sambungan sembang Copilot ditemui dalam HAR ini. Hantar sekurang-kurangnya satu mesej sembang dalam m365.cloud.microsoft sebelum mengeksport.",
+ "harImportErrorUnparsableUrl": "Sambungan sembang ditemui, tetapi URL-nya tidak dapat dibaca.",
+ "harImportErrorMissingFields": "Sambungan sembang ditemui, tetapi token tiada daripadanya.",
+ "harImportErrorReadFailed": "Fail itu tidak dapat dibaca.",
+ "harImportErrorUnknown": "Tidak dapat mengekstrak kelayakan daripada fail HAR itu.",
"webSessionSecurityHint": "Anggap ini seperti kata laluan: ia boleh mengakses akaun web anda yang dilog masuk sehingga ia tamat tempoh atau dibatalkan.",
"webNoAuthGuideTitle": "Tiada kelayakan diperlukan",
"webNoAuthGuideBody": "{provider} tidak memerlukan kunci API atau kuki. Simpan sambungan untuk menggunakan titik akhir web percumanya.",
@@ -6360,13 +6367,13 @@
"checkWebToken": "Semak token",
"huggingchatLabel": "HuggingChat (Percuma)",
"huggingchatDesc": "Sembang LLM percuma melalui huggingface.co/chat",
- "poeWebLabel": "Poe Web",
+ "poeWebLabel": "Web Poe",
"poeWebDesc": "Sembang pelbagai model melalui poe.com",
- "veniceWebLabel": "Venice Web",
+ "veniceWebLabel": "Web Venice",
"veniceWebDesc": "Sembang AI berfokuskan privasi",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "Web v0 Vercel",
"v0VercelWebDesc": "Penjanaan kod AI melalui v0.dev",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Web Kimi",
"kimiWebDesc": "Sembang pengguna Moonshot AI melalui www.kimi.com (antarabangsa, API Connect-RPC)",
"doubaoWebLabel": "Doubao Web",
"doubaoWebDesc": "Sembang AI ByteDance melalui doubao.com",
@@ -6417,7 +6424,7 @@
"codexServiceModeUpdated": "Modus perkhidmatan Codex telah dikemas kini",
"codexServiceTierActive": "Tahap perkhidmatan Codex {tier} sedang aktif",
"codexTierFastLabel": "Cepat",
- "codexTierFlexLabel": "Flex",
+ "codexTierFlexLabel": "Fleksibel",
"commandCodeApplyFailed": "Gagal untuk memohon Kod Perintah auth",
"commandCodeApplyingApproval": "Pelayar diluluskan, sedang memohon…",
"commandCodeApplyingKey": "Memohon kunci yang diluluskan oleh pelayar…",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Kod Perintah auth telah tamat tempoh",
"commandCodeConnected": "Kod Perintah disambungkan",
"commandCodeConnectionAdded": "Kod Perintah sambungan ditambah",
+ "clearConnectionCooldown": "Kosongkan tempoh bertenang",
+ "clearConnectionCooldownInProgress": "Sedang mengosongkan…",
+ "clearConnectionCooldownTitle": "Kosongkan tempoh bertenang sekarang — gunakan apabila kuota telah dimuat semula di huluan",
"commandCodeLinkExpired": "Pautan Kod Perintah telah tamat tempoh",
"commandCodeOpeningStudio": "Membuka Command Code Studio…",
"commandCodePopupBlocked": "Popup disekat. Sila benarkan popup dan cuba Command Code Connect sekali lagi.",
"commandCodeStartFailed": "Gagal untuk memulakan Command Code auth",
"connectionDeleted": "Sambungan dipadamkan",
"connectionFallback": "sambungan",
+ "connectionCooldownCleared": "Tempoh bertenang dikosongkan — sambungan menyertai semula penghalaan",
"coolingConnectionsDescription": "Sambungan ini sedang menyejuk selepas permintaan terakhir. OmniRoute akan langkauinya sehingga pemasa tamat — tidak perlu dinyahaktif secara manual.",
"coolingConnectionsTitle": "Sedang menyejukkan ({count})",
+ "failedClearConnectionCooldown": "Gagal mengosongkan tempoh bertenang",
"failedDeleteAlias": "Gagal untuk memadam alias",
"failedDeleteConnection": "Gagal untuk memadam sambungan",
"failedDistributeProxies": "Gagal untuk mengedarkan proksi.",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "Tetapan titik akhir model yang disimpan",
"searchByModelAria": "Cari mengikut model",
"selectSupportedEndpoint": "Pilih sekurang-kurangnya satu titik akhir yang disokong",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "tetapan",
@@ -6550,22 +6557,22 @@
"systemPrompt": "Gesaan Sistem",
"thinkingBudget": "Belanjawan Berfikir",
"proxy": "proksi",
- "httpProxy": "HTTP Proxy",
- "1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "httpProxy": "Proksi HTTP",
+ "1proxy": "1proksi",
+ "proxySubTabsAria": "Bahagian proksi",
+ "requestBodyLimitTitle": "Had Badan Permintaan",
+ "requestBodyLimitDescription": "Saiz muatan API maksimum yang diterima sebelum badan permintaan dihuraikan. Laluan muat naik khusus mengekalkan sekurang-kurangnya had terbina dalam sebanyak 100 MB.",
+ "requestBodyLimitInputLabel": "Had badan permintaan dalam MB",
+ "requestBodyLimitEmptyError": "Masukkan had dalam MB",
+ "requestBodyLimitWholeNumberError": "Gunakan nombor bulat",
+ "requestBodyLimitMinimumError": "Minimum ialah {min} MB",
+ "requestBodyLimitMaximumError": "Maksimum ialah {max} MB",
+ "requestBodyLimitLoadFailed": "Gagal memuatkan tetapan had permintaan",
+ "requestBodyLimitSaveSuccess": "Had badan permintaan disimpan",
+ "requestBodyLimitSaveFailed": "Gagal menyimpan had badan permintaan",
+ "requestBodyLimitSaving": "Sedang menyimpan...",
+ "requestBodyLimitSave": "Simpan",
+ "requestBodyLimitCurrent": "Semasa: {value}",
"cacheConfigLoadFailed": "Gagal memuat tetapan cache",
"cacheConfigSaveSuccess": "Tetapan cache disimpan",
"cacheConfigSaveFailed": "Gagal menyimpan tetapan cache",
@@ -6589,59 +6596,59 @@
"enablePassword": "Dayakan Kata Laluan",
"darkMode": "Mod Gelap",
"lightMode": "Mod Cahaya",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "Memori",
+ "memoryDesc": "Memori perbualan rentas sesi yang berterusan",
+ "memoryEnabled": "Dayakan Memori",
+ "memoryEnabledDesc": "Apabila didayakan, OmniRoute akan memasukkan konteks lampau yang berkaitan.",
"memoryTokenCostWarning": "Perhatian: dengan memori didayakan, OmniRoute menyuntik sehingga {tokens} token konteks yang diperoleh semula ke dalam setiap permintaan sembang — ini meningkatkan penggunaan token dan kos. Untuk melangkau suntikan bagi permintaan tertentu, hantar pengepala \"x-omniroute-no-memory: true\".",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "maxTokens": "Token Maksimum",
+ "retentionDays": "Pengekalan",
+ "recent": "Terkini",
+ "recentDesc": "Tetingkap kronologi",
+ "semantic": "Semantik",
+ "semanticDesc": "Carian vektor",
+ "hybrid": "Hibrid",
+ "hybridDesc": "Terkini + Semantik",
+ "skillsTitle": "Kemahiran",
+ "skillsDesc": "Alat untuk model",
+ "skillsEnabled": "Dayakan Kemahiran",
+ "skillsEnabledDesc": "Membolehkan ejen mencetuskan fungsi.",
+ "skillsComingSoon": "Pasaran kemahiran akan datang tidak lama lagi.",
+ "memorySkillsTitle": "Memori & Kemahiran",
+ "memorySkillsDesc": "Konteks & keupayaan berterusan",
+ "modelsDevTitle": "Pangkalan Data Model",
+ "modelsDevDesc": "Segerakkan harga, keupayaan & spesifikasi secara automatik daripada models.dev",
+ "modelsDevEnabled": "Dayakan Penyegerakan models.dev",
+ "modelsDevEnabledDesc": "Dapatkan harga, keupayaan dan spesifikasi model daripada pangkalan data sumber terbuka models.dev",
+ "modelsDevInterval": "Selang Penyegerakan",
+ "syncNow": "Segerakkan Sekarang",
+ "syncing": "Sedang menyegerakkan...",
+ "lastSync": "Penyegerakan terakhir",
+ "never": "Tidak pernah",
"justNow": "tadi",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Statistik Penyegerakan",
+ "modelsDevStatsDesc": "Liputan data models.dev semasa",
"providers": "Pembekal",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Model dengan Maklumat Harga",
+ "capabilities": "Keupayaan",
+ "lastSyncCount": "Kiraan Penyegerakan Terakhir",
+ "lastSyncFull": "Penyegerakan penuh terakhir",
+ "modelsDevInfo": "Cara Ia Berfungsi",
+ "modelsDevInfoDesc": "models.dev ialah pangkalan data sumber terbuka bagi spesifikasi model AI yang diselenggara oleh pasukan SST/OpenCode. Ia menyediakan harga, keupayaan, had konteks dan modaliti untuk lebih 4,000 model daripada lebih 100 penyedia.",
+ "modelsDevInfoResolution": "Turutan penentuan harga (keutamaan tertinggi dahulu):",
+ "modelsDevInfoOrder": "Tetapan Pengguna → models.dev → LiteLLM → Lalai Terbina Dalam",
"systemTheme": "Tema Sistem",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Dayakan Mod Nyahpepijat",
"logToolSourcesToggle": "Log Sumber Alat",
"logToolSourcesDescription": "Keluarkan baris log diagnostik bagi setiap permintaan yang meringkaskan bilangan alat dan pecahan sumber MCP/dihoskan/klien.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "Sematkan Maklumat pada Halaman Utama",
"homePinnedSectionsDesc": "Pilih bahagian yang ingin disematkan ke bahagian atas halaman Utama.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "Had Kuota Penyedia",
+ "homeProviderQuotaLimitsDesc": "Sematkan bekas status Kuota Penyedia (dengan butang Segar Semula Semua) di bahagian atas halaman Utama.",
+ "homeQuickStart": "Mula Pantas",
+ "homeQuickStartDesc": "Tunjukkan panel Mula Pantas pada halaman Utama.",
+ "homeProviderTopology": "Topologi Penyedia",
+ "homeProviderTopologyDesc": "Tunjukkan Topologi Penyedia pada halaman Utama.",
"accountEmailVisibility": "Keterlihatan e-mel akaun",
"accountEmailVisibilityDesc": "Tunjukkan e-mel akaun penuh merentas penyedia, kombo, log, kuota dan skrin playground. Matikan ini untuk menyamarkannya secara lalai.",
"comboConfigMode": "Mod konfigurasi kombo",
@@ -6657,28 +6664,28 @@
"providerQuotaAutoRefreshInterval": "Selang masa segar semula",
"providerQuotaAutoRefreshIntervalDesc": "Kekerapan paparan kuota harus disegarkan semula, dalam saat.",
"seconds": "saat",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Tunjukkan Item Bar Sisi",
"enableCache": "Dayakan Cache",
- "cacheTTL": "Cache TTL",
+ "cacheTTL": "TTL Cache",
"maxCacheSize": "Saiz Cache Maks",
"clearCache": "Kosongkan Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
+ "cacheCleared": "Cache berjaya dikosongkan",
+ "clearCacheFailed": "Gagal mengosongkan cache",
+ "cacheHits": "Capaian Cache",
"cacheMisses": "Cache Rindu",
"hitRate": "Kadar Hit",
"cacheEntries": "Entri Cache",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
+ "cacheSettings": "Tetapan Cache",
+ "semanticCache": "Cache Semantik",
+ "maxEntries": "Entri Maksimum",
+ "ttlMinutes": "TTL (minit)",
"promptCache": "Cache Prompt",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "strategy": "Strategi",
+ "preserveClientCache": "Kekalkan Cache Klien",
+ "enabled": "Didayakan",
"loading": "Loading...",
"saving": "Menyimpan...",
- "save": "Save",
+ "save": "Simpan",
"circuitBreaker": "Pemutus Litar",
"retryPolicy": "Dasar Cuba semula",
"maxRetries": "Max Cuba Semula",
@@ -6686,21 +6693,21 @@
"timeoutMs": "Tamat masa (ms)",
"enableSystemPrompt": "Dayakan Sistem Prompt",
"systemPromptText": "Teks Gesaan Sistem",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedAccounts": "Nyahdayakan Akaun Disekat Secara Automatik",
+ "autoDisableDescription": "Tandai sambungan penyedia sebagai dinyahaktifkan secara kekal jika sambungan tersebut mengembalikan isyarat sekatan muktamad tertentu (cth. HTTP 403 'verify your account'). Ini akan mengeluarkannya daripada giliran kombo.",
+ "autoDisableThreshold": "Ambang Sekatan",
+ "autoDisableThresholdDesc": "Bilangan isyarat sekatan berturut-turut yang diperlukan sebelum penyahaktifan kekal.",
+ "autoDisableBannedScope": "Gunakan penyahdayaan automatik pada",
+ "autoDisableBannedScopeDesc": "Slot log masuk (langganan berbayar dan akaun percuma) boleh dikunci oleh penyedia huluan jika OmniRoute terus mencuba semula selepas sekatan. Kunci API prabayar berbayar tidak menghadapi risiko tersebut — biarkannya dalam kumpulan supaya strategi isi-dahulu boleh menggunakan kunci seterusnya.",
+ "autoDisableBannedScopeAll": "Semua sambungan",
+ "autoDisableBannedScopeAllDesc": "Nyahaktifkan setiap sambungan yang mengembalikan isyarat sekatan kekal, termasuk kunci API prabayar.",
+ "autoDisableBannedScopeSubscription": "Akaun log masuk / langganan sahaja",
+ "autoDisableBannedScopeSubscriptionDesc": "Nyahaktifkan slot OAuth, kuki, sesi dan log masuk web (berbayar atau percuma). Kunci API prabayar kekal aktif supaya penghalaan boleh beralih apabila berlaku kegagalan.",
"customBannedSignals": "Kata Kunci Disekat",
"customBannedSignalsDesc": "Kata kunci tambahan yang mencetuskan pengesanan sekatan akaun kekal. Kata kunci terbina dalam sentiasa digunakan.",
"customBannedSignalsPlaceholder": "cth. api key revoked",
"noCustomBannedSignals": "Tiada kata kunci tersuai. Hanya kata kunci terbina dalam yang aktif.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Struktur Ketahanan",
"resilienceStructureDesc": "Halaman ini hanya mengkonfigurasi tingkah laku. Keadaan pemutus langsung ditunjukkan pada halaman Kesihatan. Percubaan semula khusus kombo dan kawalan slot round-robin kekal pada tetapan kombo.",
"enableThinking": "Dayakan Berfikir",
"maxThinkingTokens": "Token Pemikiran Maks",
@@ -6748,21 +6755,21 @@
"showTailscaleFunnelDesc": "Tunjukkan kawalan Corong Skala Ekor pada halaman Endpoint.",
"showNgrokTunnel": "Terowong ngrok",
"showNgrokTunnelDesc": "Tunjukkan kawalan Terowong ngrok pada halaman Endpoint.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Sembunyikan item bar sisi",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "Semua",
+ "presetAllDesc": "Tunjukkan semuanya",
+ "presetEssentials": "Asas",
+ "presetEssentialsDesc": "Laluan pemula - Alat lanjutan kekal boleh dicari",
+ "presetMinimal": "Minimum",
+ "presetMinimalDesc": "Halaman teras sahaja",
+ "presetDeveloper": "Pembangun",
+ "presetDeveloperDesc": "Alat pembangunan & proksi",
+ "presetAdmin": "Pentadbir",
+ "presetAdminDesc": "Pemantauan & audit",
+ "settingsSidebarTitle": "Penyesuaian Bar Sisi",
+ "settingsSidebarDesc": "Pilih item bar sisi yang hendak dipaparkan. Keperluan Asas memastikan alat Lanjutan boleh dicari.",
"hideHealthLogs": "Sembunyikan Log Pemeriksaan Kesihatan",
"hideHealthLogsDesc": "Apabila HIDUP, sekat mesej [HealthCheck] dalam konsol pelayan",
"themeAccent": "Warna tema",
@@ -6776,19 +6783,19 @@
"themeOrange": "Oren",
"themeCyan": "Sian",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Sesuaikan nama dan logo aplikasi",
+ "appName": "Nama Aplikasi",
+ "appNameDesc": "Nama paparan yang ditunjukkan dalam bar sisi dan tab pelayar",
+ "customLogo": "URL Logo Tersuai",
+ "customLogoDesc": "URL imej logo tersuai anda",
+ "uploadLogo": "Muat Naik Logo",
+ "resetLogo": "Tetapkan Semula kepada Lalai",
+ "logoPreview": "Pratonton",
+ "customFavicon": "Favicon Pelayar",
+ "customFaviconDesc": "URL favicon tersuai anda (ditunjukkan dalam tab pelayar)",
+ "uploadFavicon": "Muat Naik Favicon",
+ "resetFavicon": "Tetapkan Semula Favicon",
+ "faviconPreview": "Pratonton Favicon",
"logoFileTooLarge": "Fail logo mestilah kurang daripada 500KB",
"faviconFileTooLarge": "Fail favicon mestilah kurang daripada 50KB",
"invalidLogoFileType": "Jenis fail tidak sah. Sila muat naik PNG, JPG, SVG, GIF, atau WebP.",
@@ -6796,10 +6803,10 @@
"failedToReadFile": "Gagal membaca fail",
"startOnLogin": "Mula semasa Log Masuk",
"startOnLoginDesc": "Lancar OmniRoute secara automatik semasa permulaan sistem dan jalankan secara senyap di talam latar belakang.",
- "flushCache": "Flush Cache",
+ "flushCache": "Kosongkan Cache",
"flushing": "Membilas…",
"size": "Saiz",
- "hits": "Hits",
+ "hits": "Hit",
"evictions": "Pengusiran",
"loadingCacheStats": "Memuatkan statistik cache…",
"globalProxy": "Proksi Global",
@@ -6892,21 +6899,21 @@
"refreshInterval": "Selang Penyegaran",
"ruleModeDescription": "Deskripsi Mod Peraturan"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
+ "bulkHealthcheck": "Pemeriksaan Kesihatan Pukal",
+ "bulkHealthcheckDesc": "Uji semua proksi yang dikonfigurasikan terhadap URL sasaran untuk mengenal pasti proksi yang berfungsi.",
+ "healthcheckTesting": "Sedang menguji...",
+ "healthcheckAll": "Periksa Kesihatan Semua",
+ "healthcheckFailed": "Gagal menjalankan pemeriksaan kesihatan",
+ "healthcheckTestingAll": "Sedang menguji semua proksi secara selari...",
+ "healthcheckTotal": "Jumlah",
+ "healthcheckWorking": "Berfungsi",
+ "healthcheckFailedLabel": "Gagal",
"healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "healthcheckProxyUrl": "URL Proksi",
+ "healthcheckLatency": "Kependaman",
"proxyDocumentationScopeTitle": "Resolusi skop proksi",
"proxyDocumentationScopeDescBefore": "OmniRoute menyelesaikan proksi keluar mengikut urutan keutamaan:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "gabungan → akaun → penyedia → global",
"proxyDocumentationScopeDescAfter": ". Skop yang paling khusus menang.",
"proxyDocumentationAddTitle": "Menambah proksi tersuai",
"proxyDocumentationAddDescBefore": "Pergi ke",
@@ -6978,9 +6985,9 @@
"thinkingBudgetIndependenceHint": "Ciri pemampatan, penghalaan, dan had token terus berfungsi dalam setiap mod. Auto tidak bermaksud “auto-tunjuk pemikiran” — ia menghapuskan medan pemikiran klien.",
"passthrough": "Laluan",
"passthroughDesc": "Tiada perubahan — pelanggan mengawal belanjawan berfikir",
- "thinkingModePassthrough": "Passthrough",
+ "thinkingModePassthrough": "Laluan Terus",
"thinkingModePassthroughDesc": "Biarkan alasan klien tidak berubah (usaha, ringkasan, blok pemikiran). Diperlukan untuk pemikiran terlihat Codex/Desktop. Lalai.",
- "thinkingModeAuto": "Auto (strip)",
+ "thinkingModeAuto": "Auto (buang)",
"thinkingModeAutoDesc": "Buang semua medan pemikiran/pertimbangan klien (reasoning, reasoning_effort, Claude thinking, Gemini thinking_config) dan biarkan penyedia mencipta lalai. Boleh menyembunyikan panel pemikiran dan memecahkan permintaan ringkasan klien.",
"thinkingModeCustom": "Kustom",
"thinkingModeCustomDesc": "Tulis semula setiap permintaan dengan bajet token pemikiran tetap yang anda tetapkan di bawah.",
@@ -7030,11 +7037,11 @@
"providersBlocked": "{count} pembekal disekat daripada /models",
"blockProviderTitle": "Sekat {provider}",
"unblockProviderTitle": "Nyahsekat {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "cliFingerprint": "Pemadanan Cap Jari CLI",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count} penyedia dengan cap jari CLI aktif",
+ "enableFingerprintTitle": "Dayakan cap jari untuk {provider}",
+ "disableFingerprintTitle": "Lumpuhkan cap jari untuk {provider}",
"systemTransforms": "Talian Transformasi Blok Sistem",
"systemTransformsDesc": "Setiap pembekal mengarahkan saluran paip perubahan yang digunakan pada badan permintaan sebelum pemajuan. Menyokong sebarang ID pembekal.",
"systemTransformsAddProvider": "Tambah pembekal",
@@ -7063,15 +7070,15 @@
"costOptDesc": "Pilih akaun termurah yang tersedia",
"resetAware": "Set Semula-Sedar RR",
"resetAwareDesc": "Lebih suka akaun dengan baki kuota yang sihat dan penetapan semula yang lebih hampir",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Berwajaran Kuota",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
+ "strictRandom": "Rawak Ketat",
+ "strictRandomDesc": "Kocok dek — menggunakan setiap akaun sekali sebelum dikocok semula",
"stickyLimit": "Had Melekit",
"stickyLimitDesc": "Panggilan setiap akaun sebelum bertukar",
"routingStrategyTitle": "Strategi Penghalaan",
"routingStrategySubtitle": "Padankan 9router: round-robin akaun, had melekit, dan putaran kombo",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Giliran Bergilir",
"accountRoundRobinDesc": "Kitar melalui akaun untuk mengagihkan beban",
"comboRoundRobin": "Round Robin Kombo",
"comboRoundRobinDesc": "Kitar melalui sasaran kombo dan bukannya sentiasa bermula dengan yang pertama",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "Batalkan strategi akaun global untuk penyedia ini (pariti 9router).",
"providerRoutingStrategy": "Strategi akaun",
"providerRoutingInheritGlobal": "Warisi lalai global",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Ambang Prasemakan Kuota",
+ "quotaPreflightSubtitle": "Langkau akaun yang telah kehabisan kuota sebelum menghantar permintaan ke huluan",
+ "quotaPreflightEnable": "Dayakan prasemakan kuota",
+ "quotaPreflightEnableDesc": "Sebelum setiap permintaan, semak baki kuota akaun (tetingkap 5 jam / mingguan / bulanan). Akaun yang berada pada atau di bawah ambang akan dilangkau tanpa panggilan ke huluan. Ambang bagi setiap tetingkap yang ditetapkan pada halaman Kuota Penyedia sentiasa mengatasi nilai lalai di sini.",
+ "quotaPreflightCutoff": "Ambang global (baki minimum %)",
+ "quotaPreflightCutoffDesc": "Berhenti menggunakan akaun apabila baki kuotanya menurun kepada peratusan ini atau lebih rendah, bagi setiap tetingkap yang tidak mempunyai ambangnya sendiri. Sepadan dengan bar baki-% pada halaman Kuota Penyedia.",
+ "quotaPreflightWindowsHint": "Tetingkap yang mempunyai ambang setiap tetingkap atau setiap penyedia sendiri (ditetapkan dalam modal Ambang pada halaman Kuota Penyedia) tidak dipengaruhi oleh nilai lalai ini.",
+ "quotaPreflightLoadFailed": "Tidak dapat memuatkan tetapan prasemakan kuota.",
"modelAliases": "Alias Model",
"modelAliasesTitle": "Alias Model",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "Petakan semula nama model menggunakan padanan tepat atau corak kad bebas.",
"addCustomAlias": "Tambah Alias Tersuai",
"deprecatedModelId": "ID model yang ditamatkan",
"newModelId": "ID model baharu",
@@ -7184,7 +7191,7 @@
"comboStrategyAria": "Strategi kombo",
"priority": "Keutamaan",
"weighted": "Ditimbang",
- "contextRelay": "Context Relay",
+ "contextRelay": "Penyampaian Konteks",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "Max Cuba Semula",
"retryDelayLabel": "Cuba Semula Kelewatan (ms)",
@@ -7207,13 +7214,13 @@
"ms": "ms",
"saveComboDefaults": "Simpan Combo Lalai",
"maxNestingDepth": "Kedalaman Bersarang Maks",
- "concurrencyPerModel": "Concurrency / Model",
+ "concurrencyPerModel": "Keserentakan / Model",
"queueTimeout": "Waktu Beratur (ms)",
"queueDepth": "Kedalaman Baris Gilir",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "Ambang Penyerahan",
+ "contextRelayMaxMessages": "Mesej Maksimum untuk Ringkasan",
+ "contextRelaySummaryModel": "Model Ringkasan",
+ "contextRelayProviderNote": "Penyampaian Konteks kini menjana penyerahan untuk akaun Codex dan menggunakan nilai ini sebagai nilai lalai global bagi gabungan baharu atau yang belum dikonfigurasikan.",
"providerProfiles": "Profil Pembekal",
"providerProfilesDesc": "Tetapan daya tahan yang berasingan untuk pembekal OAuth (berasaskan sesi) dan Kunci API (bermeter). Pembekal OAuth mempunyai ambang yang lebih ketat disebabkan oleh had kadar yang lebih rendah.",
"oauthProviders": "Pembekal OAuth",
@@ -7295,7 +7302,7 @@
"daysAgo": "{count}h yang lalu",
"backupReasonManual": "manual",
"backupReasonPreRestore": "pra-pemulihan",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
+ "connectionsCount": "{count, plural, one {# sambungan} other {# sambungan}}",
"noChangesSinceBackup": "Tiada perubahan sejak sandaran terakhir",
"backupFailed": "Sandaran gagal",
"restoreFailed": "Pemulihan gagal",
@@ -7325,7 +7332,7 @@
"configured": "dikonfigurasikan",
"none": "Tiada",
"modelOverrideValuePlaceholder": "Nilai angka",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Dipisahkan dengan koma bahasa Inggeris, cth. low, medium, high",
"addKeyValue": "Tambah nilai kunci",
"noModelOverrides": "Tiada pintasan dikonfigurasikan untuk model ini.",
"modelOverrideLoadFailed": "Gagal memuatkan pintasan model",
@@ -7374,25 +7381,25 @@
"editPricing": "Edit Harga",
"viewFullDetails": "Lihat Butiran Penuh",
"themeCoral": "Koral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Penghalaan Volum Adaptif",
+ "adaptiveVolumeRoutingDesc": "Skalakan sambungan secara dinamik berdasarkan volum muatan dan tekanan daya pemprosesan.",
+ "lkgpToggleTitle": "Penyedia Terakhir Diketahui Baik (LKGP)",
+ "lkgpToggleDesc": "Apabila didayakan, penghala akan mengingati penyedia yang terakhir memberikan respons yang berjaya dan mencubanya dahulu untuk permintaan berikutnya.",
"echoRequestedModelTitle": "Gema nama model yang diminta dalam respons",
"echoRequestedModelDesc": "Apabila didayakan, medan `model` respons menggema nama alias atau kombo yang diminta oleh klien dan bukannya nama model huluan. Memperbaiki klien ketat (cth. Claude Desktop) yang menolak respons yang modelnya tidak sepadan dengan permintaan.",
"webSearchRouteTitle": "Penghalaan carian web",
"webSearchRouteDesc": "Apabila permintaan menyertakan alat web_search asli, halakan keseluruhan permintaan ke model ini dan bukannya lalai — berguna untuk penyedia yang tidak melaksanakan alat pelayan web_search Anthropic. Biarkan kosong untuk menyahdayakan.",
"webSearchRoutePlaceholder": "cth. openrouter,anthropic/claude-3.5-sonnet",
"paidModelPatternWarning": "Corak ini hanya sepadan dengan model berbayar — dayakan model berbayar atau laraskan corak.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "Kosongkan Cache LKGP",
+ "lkgpCacheCleared": "Cache LKGP berjaya dikosongkan",
+ "lkgpCacheClearFailed": "Gagal mengosongkan cache LKGP",
+ "days": "Hari",
+ "lkgp": "Mod LKGP",
+ "lkgpDesc": "Penyedia Terakhir Diketahui Baik (Ketahanan yang boleh diramal)",
+ "maintenance": "Penyelenggaraan",
+ "purgeExpiredLogs": "Hapuskan Log Tamat Tempoh",
+ "purgeLogsFailed": "Gagal menghapuskan log",
"logsDeleted": "{count, plural, =0 {Tiada log tamat tempoh dibersihkan} one {Dibersihkan # log tamat tempoh} other {Dibersihkan # log tamat tempoh}}",
"resetUsageData": "Set Semula Data Penggunaan",
"resetUsageDataDesc": "Pilih sejauh mana ke belakang anda mahu memadamkan penggunaan, log permintaan dan data analitik. Konfigurasi penyedia, sambungan, kunci API, kombo dan tetapan akan dikekalkan. Tindakan ini tidak boleh diundur.",
@@ -7409,39 +7416,39 @@
"resetUsageFailed": "Gagal menetapkan semula data penggunaan",
"reset": "Set semula",
"resetting": "Menetapkan semula...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "Dioptimumkan untuk Konteks",
+ "contextOptDesc": "Menghalakan berdasarkan keperluan tetingkap konteks dan panjang perbualan",
+ "cacheOpt": "Dioptimumkan untuk Cache",
+ "cacheOptDesc": "Mengekalkan awalan gesaan boleh guna semula yang sama pada akaun penyedia yang sama",
+ "priorityDesc": "Sandaran berurutan - mencuba penyedia 1 dahulu, kemudian penyedia 2, dan seterusnya",
+ "weightedDesc": "Mengagihkan trafik mengikut pemberat peratusan merentas penyedia",
+ "modelRoutingTitle": "Peraturan Penghalaan Model",
+ "modelRoutingDesc": "Halakan model secara automatik ke kombo tertentu menggunakan corak glob",
+ "addRule": "Tambah Peraturan",
+ "routeToCombo": "Halakan ke Kombo",
+ "selectCombo": "Pilih kombo...",
+ "priorityHint": "Lebih tinggi = disemak dahulu. Gunakan 10+ untuk corak khusus.",
+ "patternHint": "Gunakan * untuk sebarang aksara, ? untuk satu aksara. Tidak sensitif huruf besar/kecil.",
+ "noRoutingRules": "Tiada peraturan penghalaan dikonfigurasikan. Permintaan menggunakan kombo global secara lalai.",
+ "routingRuleHint": "Tambah peraturan seperti claude-opus* -> frontier-combo untuk menghalakan permintaan secara automatik.",
+ "deleteRoutingRule": "Padam peraturan penghalaan model ini?",
+ "exactMatchMode": "Padanan Tepat",
+ "wildcardPatternMode": "Corak Kad Bebas",
+ "exactMatchModeDesc": "Gunakan alias tepat untuk ID model yang telah ditamatkan atau dinamakan semula.",
+ "wildcardPatternModeDesc": "Gunakan alias kad bebas dengan * dan ? apabila satu keluarga model perlu dipetakan kepada satu sasaran.",
+ "noExactAliasesConfigured": "Tiada alias padanan tepat dikonfigurasikan.",
+ "wildcardRulesTitle": "Peraturan Kad Bebas",
+ "noWildcardAliasesConfigured": "Tiada alias kad bebas dikonfigurasikan.",
+ "overview": "Gambaran Keseluruhan",
+ "unknownError": "Ralat Tidak Diketahui",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "Senarai Putih",
+ "syncDisabled": "Penyegerakan Dilumpuhkan",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,11 +7456,11 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "Penyegerakan Didayakan",
+ "blacklist": "Senarai Hitam",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
+ "syncedModels": "Model Disegerakkan",
+ "budget": "Bajet",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "Gagal menetapkan semula harga: {reason}",
"tab": "Tab",
@@ -7461,11 +7468,11 @@
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "Gagal menyimpan harga: {reason}",
"pricingResetProvider": "Penetapan semula harga untuk {provider}",
- "nextSync": "Next Sync",
+ "nextSync": "Penyegerakan Seterusnya",
"pricingSyncFailedWithReason": "Penyegerakan harga gagal: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "Kosongkan Harga Disegerakkan",
+ "compressionTitle": "Pemampatan Prom",
+ "compressionDesc": "Kurangkan penggunaan token dengan memampatkan prom sebelum dihantar kepada penyedia",
"compressionGuidanceFullGuideLink": "Panduan pemampatan penuh",
"compressionGuidanceShow": "Butiran",
"compressionGuidanceHide": "Sembunyikan butiran",
@@ -7481,15 +7488,15 @@
"tokenSaverInputCompressionDesc": "Tulis semula sejarah sembang yang layak sambil mengekalkan kod, URL dan niat.",
"tokenSaverFineTunePrefix": "Perhalusi setiap enjin pada",
"tokenSaverFineTuneSuffix": "atau gabungkan enjin bagi setiap permintaan pada",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Mod Pemampatan",
+ "compressionModeOff": "Mati",
+ "compressionModeOffDesc": "Tiada pemampatan digunakan",
+ "compressionModeLite": "Ringan",
+ "compressionModeLiteDesc": "Pengurangan ruang putih dan baris kosong",
+ "compressionModeStandard": "Standard (Manusia Gua)",
+ "compressionModeStandardDesc": "Pemampatan berasaskan peraturan dengan lebih 30 corak, mengekalkan blok kod dan URL",
+ "compressionModeAggressive": "Agresif",
+ "compressionModeAggressiveDesc": "Peringkasan + pemampatan hasil alat + penuaan progresif untuk penjimatan maksimum",
"compressionModeUltra": "Ultra",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "Konfigurasi Enjin Agresif",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "Bilangan mesej terbaharu yang disimpan pada setiap peringkat penuaan (lebih tinggi = lebih dipelihara)",
"compressionToolStrategies": "Strategi Hasil Alat",
"compressionToolStrategiesDesc": "Togol strategi mampatan untuk jenis hasil alat yang berbeza",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "Tetapan Umum",
+ "compressionAutoTrigger": "Ambang Pencetus Automatik",
+ "compressionCacheTTL": "TTL Cache",
+ "compressionPreserveSystem": "Kekalkan Prom Sistem",
"compressionPreserveSystemAlways": "Sentiasa",
"compressionPreserveSystemWhenNoCache": "Apabila tiada cache",
"compressionPreserveSystemNever": "Tidak pernah",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "Disimpan",
"compressionExclusionsCount": "{count, plural, one {# pengecualian} other {# pengecualian}} dikonfigurasikan",
"compressionExclusionsEmpty": "Tiada pengecualian yang dikonfigurasikan — setiap model/titik akhir layak untuk pemampatan (tingkah laku lalai).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Konfigurasi Enjin Caveman",
+ "compressionCavemanConfigDesc": "Perhalus enjin pemampatan berasaskan peraturan",
"compressionCavemanPanelHint": "Keadaan hidup/mati dan tahapnya ditetapkan dalam panel:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Mampatkan Peranan Mesej",
+ "compressionRoleUser": "Pengguna",
+ "compressionRoleAssistant": "Pembantu",
+ "compressionRoleSystem": "Sistem",
+ "compressionMinLength": "Panjang Mesej Minimum",
+ "compressionSkipRules": "Peraturan Langkau Pemampatan",
+ "compressionSkipRulesDesc": "Klik peraturan untuk melangkaunya semasa pemampatan",
+ "compressionPreservePatterns": "Kekalkan Corak",
+ "compressionPreservePatternsDesc": "Corak regex yang tidak pernah dimampatkan (satu setiap baris)",
+ "compressionLogTitle": "Log Pemampatan",
+ "compressionLogEmpty": "Belum ada permintaan yang dimampatkan. Statistik pemampatan akan dipaparkan di sini apabila permintaan diproses dengan pemampatan didayakan.",
"minutes": "minit",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
+ "compressionModeRtkDesc": "Penapisan output alat yang peka terhadap perintah",
+ "compressionModeCodexResponses": "Output alat respons",
+ "compressionModeCodexResponsesDesc": "Pemampatan konservatif untuk output shell, tampalan, carian, binaan dan JSON yang layak",
+ "compressionModeStacked": "Bertindan",
+ "compressionModeStackedDesc": "Penapisan output alat RTK diikuti oleh pemampatan mesej Caveman",
+ "qdrantTitle": "Qdrant (Memori vektor)",
+ "qdrantDesc": "Pilihan. Mengindeks memori semantik dalam pangkalan data vektor luaran untuk capaian semula yang lebih pantas.",
+ "qdrantStatusActive": "Aktif",
+ "qdrantStatusError": "Ralat",
+ "qdrantStatusDisabled": "Dilumpuhkan",
+ "qdrantEnable": "Dayakan Qdrant",
+ "qdrantEnableDesc": "Apabila didayakan, strategi semantik/hibrid boleh menggunakan Qdrant untuk mendapatkan semula memori.",
+ "qdrantTesting": "Menguji...",
+ "qdrantTestConnection": "Uji sambungan",
+ "qdrantSaved": "Konfigurasi disimpan",
+ "qdrantSaveError": "Gagal menyimpan konfigurasi",
+ "qdrantHostHint": "Tanpa port. Contoh: 127.0.0.1 atau http://qdrant",
"qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "qdrantPortHint": "Lalai Qdrant: 6333",
+ "qdrantCollectionHint": "Lokasi titik memori akan disimpan.",
+ "qdrantEmbeddingModel": "Model pembenaman",
+ "qdrantHelpTitle": "Bantuan persediaan pantas",
+ "qdrantHelpQuickTitle": "Persediaan pantas (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Hos: IP/URL Qdrant, Port: 6333, Koleksi: omniroute_memory.",
+ "qdrantHelpStep2": "2. Jika menggunakan nvidia/llama-nemotron-embed-vl-1b-v2:free, gunakan dimensi koleksi 2048.",
+ "qdrantHelpStep3": "3. Medan model: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Simpan, uji sambungan, kemudian uji carian.",
+ "qdrantEmbeddingQuickSelect": "Pilih dengan pantas daripada model yang ditemui...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "Format: provider/model. Kelayakan penyedia mesti dikonfigurasikan.",
+ "qdrantApiKeyPlaceholderKeep": "(biarkan kosong untuk mengekalkan kunci semasa)",
+ "qdrantApiKeyPlaceholderOptional": "(biarkan kosong jika tidak digunakan)",
+ "qdrantSaveHint": "Petua: edit hos/port/koleksi/model dan klik Simpan. Kunci API adalah pilihan.",
+ "qdrantSearchTestTitle": "Ujian carian",
+ "qdrantSearchTestDesc": "Menjana pembenaman dan membuat carian dalam Qdrant.",
+ "qdrantSearchPlaceholder": "Contoh: keutamaan pengguna, sejarah dan sebagainya",
+ "qdrantNoResults": "Tiada hasil (atau Qdrant tidak dikonfigurasikan).",
+ "qdrantCleanupTitle": "Pengekalan dan pembersihan",
+ "qdrantCleanupDesc": "Mengalih keluar titik yang telah tamat tempoh dan titik lama berdasarkan",
+ "searching": "Sedang mencari...",
+ "cleaning": "Sedang membersihkan...",
+ "cleanNow": "Bersihkan sekarang",
"optional": "Pilihan",
"current": "semasa",
"remove": "Alih keluar",
@@ -7596,19 +7603,19 @@
"resilienceScope": "Skop:",
"resilienceTrigger": "Pencetus:",
"resilienceEffect": "Kesan:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "Baris Gilir Permintaan & Had Kadar",
+ "resilienceAutoEnableApiKeyProviders": "Dayakan secara automatik untuk penyedia kunci API",
+ "resilienceRequestsPerMinute": "Permintaan seminit",
+ "resilienceMinTimeBetweenRequests": "Masa minimum antara permintaan",
+ "resilienceConcurrentRequests": "Permintaan serentak",
+ "resilienceConnectionScopeConcurrentRequests": "Permintaan serentak bagi setiap skop sambungan/kuota",
+ "resilienceGlobalConcurrentRequests": "Permintaan huluan serentak global (0 = dinyahdayakan)",
"resilienceMaxQueueWaitTime": "Masa menunggu giliran maksimum",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Tempoh bertenang asas",
+ "resilienceUseUpstreamRetryHints": "Gunakan petunjuk percubaan semula huluan",
+ "resilienceDefaultPerProvider": "Lalai (bagi setiap penyedia)",
+ "resilienceAlwaysOn": "Sentiasa aktif",
+ "resilienceAlwaysOff": "Sentiasa tidak aktif",
"routingRemoveEntry": "Alih keluar masukan",
"routingNeedlesSubstrings": "Jarum (substring untuk dipadankan)",
"routingCaseSensitive": "Kes sensitif",
@@ -7621,7 +7628,7 @@
"routingNeedles": "Jarum",
"routingBlockText": "Sekat teks",
"routingIdempotencyKey": "Kunci mati pucuk",
- "routingEntrypoint": "Entrypoint",
+ "routingEntrypoint": "Titik masuk",
"routingVersionFormat": "Format versi",
"routingCchAlgorithm": "Algoritma CCH",
"routingWordsToObfuscate": "Perkataan untuk mengelirukan (ZWJ disisipkan selepas aksara pertama)",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "Dihantar ke model penglihatan sebelum perihalan yang diekstrak disuntik semula ke dalam permintaan asal.",
"visionBridgeTimeoutMs": "Tamat masa (ms)",
"visionBridgeMaxImagesPerRequest": "Imej Maks Setiap Permintaan",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Langkah undur maksimum",
+ "resilienceProviderBreakerTitle": "Pemutus Litar bagi Setiap Penyedia",
+ "resilienceFailureThreshold": "Ambang kegagalan",
+ "resilienceDegradationThreshold": "Ambang kemerosotan",
"resilienceResetTimeout": "Tetapkan semula tamat masa",
"resilienceFailureThresholdLabel": "Ambang kegagalan",
"resilienceResetTimeoutLabel": "Tetapkan semula tamat masa",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Tempoh Bertenang Sambungan",
"resilienceUseUpstreamRetryHintsLabel": "Gunakan petunjuk percubaan semula huluan",
"resilienceUseUpstream429BreakerLabel": "Gunakan huluan 429 petunjuk (pemutus)",
"resilienceMaxBackoffStepsLabel": "Langkah mundur maksimum",
"resilienceYes": "ya",
"resilienceNo": "Tidak",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Lalai",
"storageDatabaseBackupRetention": "Pengekalan sandaran pangkalan data",
"storageDatabaseBackups": "Sandaran pangkalan data",
"storageBackupRetentionDescription": "Sandaran SQLite automatik disimpan di",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "JSON legasi berjaya diimport!",
"jsonImportFailed": "Gagal mengimport JSON",
"jsonImportError": "Ralat semasa import JSON",
+ "jsonImportAuthRequired": "Pengesahan diperlukan untuk mengimport konfigurasi JSON lama. Sila log masuk atau lengkapkan persediaan terlebih dahulu.",
+ "databaseSettingsAuthRequiredTitle": "Pengesahan diperlukan",
+ "databaseSettingsAuthRequiredBody": "Tetapan pangkalan data dan import JSON hanya tersedia kepada pentadbir yang telah disahkan. Log masuk atau lengkapkan persediaan untuk melihat dan mengeditnya.",
+ "databaseSettingsAuthRequiredCta": "Log masuk",
"storagePurgeData": "Bersihkan Data",
"storagePurgeDataDesc": "Padamkan semua rekod dengan segera tanpa menggunakan semakan penahanan. Gunakan dengan berhati-hati.",
"storageRetentionCleanup": "Tetapan Penahanan",
@@ -7824,23 +7835,23 @@
"compressionDerivedMode": "mod: {mode}",
"compressionAdaptiveOff": "Belanjawan konteks adaptif: mati (pencetus automatik legasi)",
"compressionAdaptiveTarget": "Adaptif ({mode}, dasar: {policy}) — sasaran ≈ {target, number} token (untuk tetingkap {contextLimit, number}-token)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Bajet konteks adaptif",
+ "compressionAdaptiveModeOff": "Mati (pencetus automatik lama)",
+ "compressionAdaptiveModeFloor": "Had minimum (sentiasa pastikan muat)",
+ "compressionAdaptiveModeReplace": "Gantikan pencetus automatik",
+ "compressionAdaptivePolicy": "Dasar bajet",
+ "compressionAdaptivePolicyReserve": "Rizab output",
+ "compressionAdaptivePolicyPercentage": "Peratusan tetingkap",
+ "compressionAdaptivePolicyAbsolute": "Bajet token mutlak",
"compressionOutputStylesDescription": "Suntik arahan pembentukan respons tanpa menulis semula output penyedia. Gabungkan secara bebas.",
"mcpAccessibilityDescription": "Menskupkan output alat MCP (storan berasingan).",
"compressionStylesTileSummary": "{tokens, number} token dijimatkan · {runs, plural, one {# larian digayakan} other {# larian digayakan}}",
"compressionStylesTileEmpty": "Belum ada larian yang digayakan.",
"compressionLevel": {
- "minimal": "Minimal",
- "standard": "Standard",
+ "minimal": "Minimum",
+ "standard": "Piawai",
"aggressive": "Agresif",
- "lite": "Lite",
+ "lite": "Ringan",
"full": "Penuh",
"ultra": "Ultra"
},
@@ -7854,7 +7865,7 @@
"description": "Penanda pengambilan beralamat kandungan."
},
"lite": {
- "label": "Lite",
+ "label": "Ringan",
"description": "Pembersihan ruang putih dan format."
},
"rtk": {
@@ -7862,11 +7873,11 @@
"description": "Penapisan output arahan."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Output Alat Responses",
+ "description": "Pemampatan konservatif untuk output alat Responses yang disokong."
},
"headroom": {
- "label": "Headroom",
+ "label": "Ruang lebihan",
"description": "Pemadatan JSON berjadual."
},
"relevance": {
@@ -7874,7 +7885,7 @@
"description": "Pemarkahan ayat ekstraktif terhadap pertanyaan pengguna terakhir."
},
"caveman": {
- "label": "Caveman",
+ "label": "Manusia Gua",
"description": "Pemampatan prosa berasaskan peraturan."
},
"aggressive": {
@@ -7904,12 +7915,12 @@
"description": "Tangga YAGNI: perubahan berfungsi terkecil, tiada abstraksi yang tidak diminta."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (pembangun kanan yang malas)",
+ "description": "Disiplin pembangun kanan yang malas: naiki tangga YAGNI, baiki punca masalah, perbezaan kerja yang paling kecil."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Saya mempunyai ADHD (tindakan dahulu)",
+ "description": "Output berorientasikan tindakan: mulakan dengan tindakan seterusnya, langkah dinomborkan, satu langkah seterusnya yang konkrit, tanpa mukadimah."
},
"terse-cjk": {
"label": "CJK Ringkas (文言)",
@@ -7920,13 +7931,21 @@
"resilienceEnableServerSideWait": "Dayakan menunggu sebelah pelayan",
"resilienceMaximumRetries": "Percubaan semula maksimum",
"resilienceMaximumWaitPerRetry": "Penantian maksimum setiap percubaan semula",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "Pasaran SkillsMP",
"memorySkillsFailedToSave": "Gagal menyimpan",
"memorySkillsApiKey": "Kunci API",
"memorySkillsActiveSkillsProvider": "Pembekal Kemahiran Aktif",
- "cliproxyapiFallback": "CLIProxyAPI Fallback",
+ "cliproxyapiFallback": "Sandaran CLIProxyAPI",
"cliproxyapiEnableFallback": "Dayakan CLIProxyAPI Fallback",
"cliproxyapiUrl": "URL CLIProxyAPI",
+ "headroomProxyTitle": "Proksi Headroom",
+ "headroomProxyDesc": "URL bagi proksi penjimat token Headroom pilihan. Jika kosong, gunakan HEADROOM_URL atau http://localhost:8787.",
+ "headroomProxyUrl": "URL Headroom",
+ "headroomProxyUrlHint": "URL gelung balik boleh dimulakan dari halaman ini. URL luaran hanya diuji.",
+ "headroomProxySave": "Simpan",
+ "headroomProxyStart": "Mula",
+ "headroomProxyStop": "Henti",
+ "headroomProxyExternalHint": "URL ini bukan gelung balik, jadi OmniRoute tidak akan memulakan CLI setempat.",
"cliproxyapiStatus": "Status CLIProxyAPI",
"cliproxyapiNotDetected": "Tidak dikesan",
"cliproxyapiImportAuthTitle": "Import akaun daripada CLIProxyAPI",
@@ -7934,15 +7953,15 @@
"cliproxyapiImportAuthButton": "Import akaun",
"payloadRulesTitle": "Peraturan Muatan",
"payloadRulesDesc": "Konfigurasikan mutasi payload permintaan mengikut model dan protokol. Perubahan dikekalkan dalam tetapan dan dimuat semula secara langsung ke dalam runtime serta-merta selepas disimpan.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "lalai",
"payloadRuleDefaultDesc": "Menerapkan parameter hanya apabila laluan sasaran tiada dalam payload keluar.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "ganti",
"payloadRuleOverrideDesc": "Memaksa nilai ke dalam payload, menggantikan apa-apa sahaja yang sedia ada pada laluan tersebut.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "tapis",
"payloadRuleFilterDesc": "Mengalih keluar parameter yang disekat daripada payload sebelum permintaan huluan dihantar.",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "Seperti default, tetapi nilai rentetan dihuraikan sebagai JSON terlebih dahulu jika boleh. Alias input legasi default-raw juga diterima semasa menyimpan.",
- "payloadEditorTitle": "Editor",
+ "payloadEditorTitle": "Penyunting",
"payloadEditorDesc": "Gunakan bentuk skema runtime: default, override, filter, defaultRaw. API ini juga menerima kunci input legasi default-raw.",
"payloadEditorReady": "Sedia",
"payloadResetInfo": "Editor ditetapkan semula kepada templat neutral. Simpan untuk menggunakannya.",
@@ -7976,7 +7995,7 @@
"responsesStateTitle": "Keadaan Respons",
"responsesStateDesc": "Kawal cara OmniRoute memajukan previous_response_id.",
"responsesStateModeLabel": "Pengendalian previous_response_id",
- "responsesStateModeAuto": "Auto",
+ "responsesStateModeAuto": "Automatik",
"responsesStateModeStrip": "Buang",
"responsesStateModePreserve": "Kekalkan",
"responsesStateHint": "Auto membuang previous_response_id melainkan sambungan mendayakan storan OpenAI Responses secara eksplisit. Buang adalah paling selamat untuk klien tanpa keadaan seperti VS Code Custom Endpoint; konteks kemudiannya bergantung pada klien yang menghantar sejarah penuh.",
@@ -7985,14 +8004,14 @@
"codexFastTierDesc": "Suntikan service_tier=keutamaan secara global untuk permintaan OpenAI Codex.",
"codexFastTierHint": "Apabila didayakan, OmniRoute menambah service_tier=priority kepada permintaan Codex keluar untuk sambungan yang belum menentukan peringkat. Peringkat keutamaan memerlukan kunci API OpenAI Enterprise atau laluan ChatGPT-auth Codex; jenis kunci lain akan menerima ralat berkaitan peringkat daripada OpenAI. Tetapan per sambungan pada halaman penyedia Codex diutamakan.",
"codexFastTierSaveError": "Gagal mengemas kini tetapan Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Ping Auto Kuota Codex",
+ "codexAutoPingDesc": "Pilih serta bagi setiap sambungan: menghantar permintaan kecil sejurus selepas tetingkap sesi Codex ditetapkan semula supaya ia sedia digunakan apabila anda memerlukannya.",
+ "codexAutoPingWarning": "Menggunakan sejumlah kecil kuota Codex sebenar pada setiap ping. Dimatikan secara lalai — dayakan hanya untuk sambungan yang anda gunakan secara aktif.",
+ "codexAutoPingSaveError": "Gagal mengemas kini tetapan Ping Auto Codex",
+ "codexAutoPingToggleAria": "Togol ping auto kuota Codex untuk {connection}",
"codexFastTierTierLabel": "Tier perkhidmatan",
"codexFastTierTierPriority": "Keutamaan",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierFlex": "Fleksibel",
"codexFastTierTierDefault": "Lalai",
"codexFastTierModelsLabel": "Model tier pantas",
"codexFastTierModelsHint": "Hanya model yang ditandakan menerima service_tier apabila Fast Tier didayakan.",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "Selang pemeriksaan global",
"resilienceCredentialHealthEveryMinutes": "Setiap {minutes} min",
"resilienceCredentialHealthHint": "0 mematikan imbasan latar (maks. 1440 min = 24 jam). Sambungan dengan nilai Pemeriksaan Kesihatan sendiri mengabaikan lalai global ini; 0 pada sesuatu sambungan mengeluarkannya walaupun imbasan global dihidupkan.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "Sentiasa didayakan untuk {provider} — diperlukan untuk keselamatan akaun OAuth; tidak boleh dimatikan.",
+ "forcedFingerprintBadge": "Diperlukan",
"sessionAffinityTitle": "Afiniti sesi",
"sessionAffinityDesc": "Mengekalkan satu perbualan pada akaun yang sama selama bilangan saat ini, untuk mana-mana penyedia. 0 melumpuhkannya.",
"sessionAffinityTtl": "TTL Afiniti (saat)",
@@ -8168,7 +8187,7 @@
"cloudflareRelayProjectNameLabel": "Nama Worker",
"cloudflareRelayFreeTierNote": "Peringkat percuma: 100,000 permintaan/hari bagi setiap akaun Cloudflare.",
"cloudflareRelayDeploying": "Sedang deploy...",
- "cloudflareRelayDeploy": "Deploy",
+ "cloudflareRelayDeploy": "Laksana",
"cloudflareRelayCredsRequired": "ID Akaun dan Token API diperlukan",
"cloudflareRelayDeployFailed": "Deploy gagal",
"modelLockout": "Sekatan Model",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "Bilangan maksimum langkah backoff sebelum cooldown berhenti meningkat. Had Cooldown Maksimum dicapai terlebih dahulu dalam kebanyakan konfigurasi, menjadikannya siling keselamatan apabila Cooldown Maksimum dinaikkan.",
"disableSessionStickiness": "Nyahdayakan kelekatan sesi",
"disableSessionStickinessDesc": "Kombinasi round-robin dan rawak bertukar ke sambungan yang berbeza pada setiap permintaan dan bukannya menyematkan keseluruhan perbualan pada satu sambungan melalui hash mesej pertama. Biarkan dimatikan untuk mengekalkan hit cache prompt bagi sembang berbilang giliran. Penggantian bagi setiap kombinasi diutamakan.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Penghalaan kelokalan cache gesaan",
+ "promptCacheAffinityDesc": "Utamakan akaun penyedia yang sama untuk kunci cache gesaan yang sepadan sambil mengekalkan pertukaran semasa kegagalan berdasarkan kesihatan dan kuota.",
+ "reasoningTokenBuffer": "Penimbal token penaakulan",
+ "reasoningTokenBufferDesc": "Benarkan penghalaan gabungan menambah ruang tambahan max_tokens hanya untuk model penaakulan yang diketahui apabila penimbal penuh muat dalam had output yang diketahui.",
+ "zeroLatencyOptimizations": "Pengoptimuman kependaman sifar",
+ "zeroLatencyOptimizationsDesc": "Pilih serta untuk perlindungan nilai, langkauan TTFT ramalan dan pemampatan sandaran proaktif. Biarkan dimatikan untuk menghalang ciri kependaman ini daripada menjalankan sasaran secara serentak atau memampatkan permintaan sandaran.",
"credentialRedaction": "Redaksi Kredensial",
"credentialRedactionDesc": "Redaksikan kunci API, token, dan rahsia daripada konteks yang dihantar kepada penyedia dan daripada respons.",
"enableCredentialRedaction": "Dayakan penyuntingan kelayakan",
"enableCredentialRedactionDesc": "Membersihkan kunci API, token, kunci peribadi, dan JWT daripada mesej, panggilan alat, dan respons.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Penyegerakan Automatik Dilumpuhkan",
+ "pricingAutoSyncEnabled": "Penyegerakan Automatik Didayakan",
"modalityBridgeIntro": "Tukarkan kandungan berbilang mod kepada teks sebelum sampai kepada model teks sahaja. Jambatan penglihatan, audio dan video tersedia serta boleh dikonfigurasi.",
"modalityBridgeVisionTab": "Visi",
"modalityBridgeAudioTab": "Audio",
@@ -8239,7 +8258,7 @@
"modalityBridgeCacheTtlMinutes": "Cache TTL (minit)",
"modalityBridgeCacheMaxEntries": "Cache maksimum entri",
"modalityBridgeStatsBridged": "dijembatani",
- "modalityBridgeStatsCacheHits": "cache hits",
+ "modalityBridgeStatsCacheHits": "padanan cache",
"modalityBridgeStatsFailures": "kegagalan",
"modalityBridgeStatsLastUsed": "terakhir digunakan",
"modalityBridgeStatsNever": "tidak pernah",
@@ -8305,7 +8324,7 @@
"oneproxyCountry": "Satuproxy Negara",
"oneproxyDelete": "Oneproxy Padam",
"oneproxyEmpty": "Oneproxy Kosong",
- "oneproxyHost": "Oneproxy Host",
+ "oneproxyHost": "Hos Oneproxy",
"oneproxyLatency": "Kelewatan Oneproxy",
"oneproxyProtocol": "Protokol Oneproxy",
"oneproxyQuality": "Kualiti Oneproxy",
@@ -8351,7 +8370,7 @@
"routingOpMissingKind": "Op #{index}: `kind` hilang atau tidak sah",
"routingOpUnknownKind": "Op #{index}: jenis tidak diketahui \"{kind}\"",
"routingJsonEditorHide": "Sembunyikan penyunting JSON",
- "routingJsonEditorImportExport": "Import / export JSON",
+ "routingJsonEditorImportExport": "Import / eksport JSON",
"routingJsonEditorLabel": "JSON (edit dan terapkan, atau tampal untuk mengimport)",
"routingApplyJson": "Terapkan JSON",
"routingTransformsFootnote": "Semua operasi transform adalah idempotent pada pengulangan. Perubahan berkuat kuasa serta-merta pada permintaan seterusnya.",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "Kesihatan",
"cliproxyapiPort": "Pelabuhan",
"qdrantHost": "Hos",
- "qdrantCollection": "Koleksi",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Koleksi"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "Enjin RTK",
+ "description": "Pemampatan peka perintah untuk output alat, log terminal dan hasil binaan.",
+ "enabled": "Didayakan",
+ "intensity": "Keamatan",
+ "intensityMinimal": "Minimum",
+ "intensityStandard": "Piawai",
+ "intensityAggressive": "Agresif",
+ "toolResults": "Hasil alat",
+ "assistantMessages": "Mesej pembantu",
+ "codeBlocks": "Blok kod",
"filterCatalog": "Katalog Penapis",
"filterCatalogDesc": "Penapis keluaran yang tersedia mengikut kategori",
"guidedConfig": "Konfigurasi",
"guidedConfigDesc": "Laraskan cara RTK menapis output terminal anda",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "Baris maksimum",
+ "maxChars": "Aksara maksimum",
"deduplicateThreshold": "Nyahduplikasi ambang",
"customFilters": "Penapis tersuai",
"detectedType": "Jenis yang dikesan",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "Kegagalan",
"rawOutputAlways": "Sentiasa",
"rawOutputMaxBytes": "Bait maksimum keluaran mentah",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "Pengujian Penapis",
+ "pasteOutput": "Tampal output alat untuk menguji penapisan...",
"presetHigh": "Agresif",
"presetLow": "Cahaya",
"presetMaxChars": "Aksara output maksimum",
"presetMaxLines": "Garis keluaran maksimum",
- "presetMedium": "Standard",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "presetMedium": "Piawai",
+ "run": "Jalankan",
+ "result": "Hasil",
+ "previewEmpty": "Jalankan sampel untuk pratonton output RTK.",
+ "detected": "Dikesan",
"masterSwitchOffAlert": "Suis utama Token Saver adalah MATI — tetapan ini tidak akan mempengaruhi permintaan sehingga anda menghidupkannya dari halaman Titik Akhir.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "Token ditapis",
+ "filtersActive": "Penapis aktif",
+ "requests": "Permintaan",
+ "avgSavings": "Purata penjimatan",
"simpleMode": "Mudah",
"advancedMode": "Maju",
"searchFilters": "Cari penapis...",
@@ -8507,7 +8518,7 @@
"description": "Klasifikasi token semantik berasaskan ONNX. Memampatkan prosa sahaja; blok kod dan binaan yang dipelihara dilindungi. Gagal buka jika berlaku ralat model atau pekerja."
},
"lite": {
- "name": "Lite",
+ "name": "Ringan",
"description": "Pengurangan pantas ruang putih, hasil alat dan URL imej."
},
"aggressive": {
@@ -8597,7 +8608,7 @@
"bert-base": "BERT-base (710 MB, ketepatan lebih tinggi)"
},
"intensity": {
- "lite": "Lite",
+ "lite": "Ringan",
"full": "Penuh",
"ultra": "Ultra"
}
@@ -8605,34 +8616,34 @@
"modeOptions": {
"default": "Paparansedia",
"off": "Matikan",
- "lite": "Lite",
- "standard": "Standard",
+ "lite": "Ringan",
+ "standard": "Piawai",
"aggressive": "Agresif",
"ultra": "Ultra",
"responsesToolOutput": "Keluaran alat respons"
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "Gabungan Pemampatan",
+ "description": "Tentukan cara enjin digabungkan untuk senario penghalaan yang berbeza.",
+ "createCombo": "Cipta Gabungan Pemampatan",
+ "editCombo": "Sunting",
+ "deleteCombo": "Padam",
+ "deleteConfirm": "Padam gabungan pemampatan ini?",
+ "pipeline": "Saluran Paip",
+ "addStep": "Tambah Langkah",
+ "removeStep": "Alih Keluar",
+ "name": "Nama",
+ "descriptionField": "Penerangan",
+ "languagePacks": "Pek Bahasa",
+ "outputMode": "Mod Output",
+ "assignToRouting": "Tetapkan kepada Kombo Penghalaan",
+ "noAssignments": "Tiada kombo penghalaan tersedia",
+ "default": "Lalai",
+ "setAsDefault": "Tetapkan sebagai Lalai",
+ "save": "Simpan",
+ "cancel": "Batal",
+ "enabled": "Didayakan",
"loading": "Memuatkan…",
"hubTitle": "Hab Pemampatan",
"hubDescription": "Pilih profil pemampatan yang dijalankan secara global.",
@@ -8657,29 +8668,29 @@
"contextEditingNote": "Kini tersedia untuk Claude (Anthropic) sahaja. Ia adalah mod yang didelegasikan: penyedia mengosongkan blok penggunaan alat yang lama di sebelah pelayan — kami tidak menulis semula mesej tersebut. Ia tidak menjejaskan penyedia lain.",
"namedCombos": "Kombo bernama",
"namedCombosDescription": "Simpan talian paip yang berbeza dan tetapkan ia kepada kombo penghalaan tertentu.",
+ "activeProfileMasterSwitchOffWarning": "Profil aktif di bawah tidak akan berjalan sehingga suis utama \"Pemampatan Prom\" dihidupkan.",
+ "activeProfileMasterSwitchOffCta": "Hidupkannya dalam Tetapan",
"comboNamePlaceholder": "Nama kombo",
"descriptionPlaceholder": "Penerangan",
"nameRequired": "Masukkan nama kombo sebelum menyimpan.",
"pipelineRequired": "Tambah sekurang-kurangnya satu langkah talian paip sebelum menyimpan.",
"saveComboFailed": "Gagal menyimpan kombo (HTTP {status}).",
"deleteNamedConfirm": "Padam kombo “{name}”?",
- "intensityLite": "Lite",
+ "intensityLite": "Ringan",
"intensityFull": "Penuh",
"intensityUltra": "Ultra",
"active": "Aktif",
"languagePacksList": "Pek bahasa: {packs}",
"dragToReorder": "Seret untuk menyusun semula langkah",
"engine": "Enjin",
- "intensity": "Keamatan",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Keamatan"
},
"compressionStudio": {
"noRun": "Tiada larian pemampatan tersedia.",
"liveDataHint": "Data langsung tiba melalui saluran pemampatan WebSocket.",
"cockpitView": "Paparan kokpit",
"canvas": "Kanvas",
- "waterfall": "Waterfall",
+ "waterfall": "Bertingkat",
"replayDone": "Main semula selesai",
"pauseReplay": "Jeda main semula",
"playReplay": "Mainkan main semula",
@@ -8701,14 +8712,14 @@
"run": "Jalankan",
"laneRejected": "ditolak: {reason}",
"error": "ralat",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Pratonton saluran paip gabungan gagal: {reason}",
"combinedFlow": "Aliran gabungan",
"eachLayer": "Setiap lapisan secara berasingan",
"diff": "Perbezaan",
"combined": "digabungkan",
"skipped": "langkau",
- "input": "INPUT",
- "output": "OUTPUT",
+ "input": "MASUKAN",
+ "output": "KELUARAN",
"tokenCount": "{count, number} token",
"tokenShort": "tok",
"provider": "Penyedia",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Dayakan enjin",
"enableDescription": "Berjalan terakhir dalam tindanan (selepas RTK/Caveman membersihkan teks, OmniGlyph menukar baki kepada imej) dan juga berjalan secara bersendirian melalui mod omniglyph. Ini ialah pratonton dan kekal dimatikan secara lalai sehingga pengesahan hujung-ke-hujung selesai.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profil pemampatan",
+ "profileDescription": "Profil ialah had maksimum, bukannya had minimum: profil yang lebih ketat tidak boleh dilonggarkan semula oleh penggantian pada setiap langkah. Diukur pada pangkalan kod ini: dengan mod selamat untuk pengekodan atau seimbang, sesi yang belum mengumpulkan sejarah tidak memampatkan apa-apa, kerana kedua-duanya meningkatkan ambang aksara minimum dan mengekalkan prom sistem, skema alat serta hasil alat dalam bentuk asal.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresif (lalai)",
+ "description": "Dasar yang diukur oleh resit yang diterbitkan. Memimejkan prom sistem, dokumentasi alat dan sejarah padat."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Seimbang",
+ "description": "Mengekalkan keadaan aktif dalam bentuk asal dan melindungi 8 pusingan terakhir; hanya meruntuhkan sejarah lama yang telah ditutup."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Selamat untuk pengekodan",
+ "description": "Mengekalkan autoriti, skema alat dan output alat aktif dalam bentuk asal, sambil melindungi 12 pusingan terakhir. Tidak memampatkan apa-apa sehingga sesi mengumpulkan sejarah."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Laluan terus",
+ "description": "Menghalakan tanpa mengubah. Enjin dilangkau dan permintaan dimajukan tanpa sebarang perubahan."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Pilih profil pemampatan OmniGlyph",
"saved": "Disimpan.",
"saveFailed": "Tidak dapat menyimpan.",
"enableAria": "Dayakan enjin OmniGlyph",
@@ -8897,38 +8908,38 @@
"save": "Simpan"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Enjin Caveman",
+ "description": "Pemampatan mesej berasaskan peraturan, pek bahasa, analitik dan kawalan mod output.",
"advancedConfig": "Konfigurasi Lanjutan",
"advancedConfigDesc": "Perhalusi tingkah laku mampatan",
"aggressiveSettings": "Tetapan Agresif",
"aggressiveSettingsDesc": "Pemampatan maksimum dengan potensi pertukaran kualiti",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Permintaan",
+ "tokensSaved": "Token dijimatkan",
+ "savingsPercent": "Penjimatan %",
+ "avgLatency": "Purata kependaman",
+ "languagePacks": "Pek Bahasa",
+ "languagePacksDesc": "Dayakan peraturan pemampatan untuk bahasa tertentu.",
"labelAutoTrigger": "Automampat apabila konteks melebihi",
"labelCompressionRate": "Kekuatan mampatan",
"labelMaxTokens": "Token sasaran setiap mesej",
"labelMinLength": "Panjang mesej minimum",
"labelMinSavings": "Token minimum untuk disimpan",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Didayakan",
+ "autoDetect": "Kesan bahasa secara automatik",
+ "rulesCount": "{count} peraturan",
"inputCompressionTitle": "Pemampatan input",
"inputCompressionDesc": "Tulis semula sejarah sembang dengan perkataan yang lebih pendek. Mengurangkan token input sebanyak ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Analitis Pemampatan",
+ "noAnalytics": "Belum ada analitis pemampatan.",
"masterDisabledWarning": "Suis utama Penjimat Token adalah MATI — tetapan ini tidak akan mempengaruhi permintaan sehingga anda menghidupkannya dari Tetapan Pemampatan atau mengubahnya di sini.",
"outputMode": "Mod Output",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Mod Output",
"quickSettings": "Tetapan Pantas",
"quickSettingsDesc": "Tetapan mampatan asas untuk bermula",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Pintasan Auto-Clarity",
+ "bypassConditions": "Syarat pintasan",
"bypassConditionsList": "keselamatan, tidak boleh balik, penjelasan, peka perintah",
"simpleMode": "Mudah",
"advancedMode": "Maju",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Tetapan Ultra",
"ultraSettingsDesc": "Pemampatan semantik berkuasa SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Berikan respons ringkas. Kekalkan istilah teknikal, kod, ralat, URL dan pengecam.",
+ "full": "Berikan respons padat dan ringkas. Kekalkan semua kandungan teknikal.",
+ "ultra": "Berikan respons amat ringkas dengan singkatan teknikal lazim. Kekalkan simbol tepat."
}
},
"translator": {
@@ -8989,7 +9000,7 @@
"translationPathHubSpoke": "{source} → OpenAI (perantaraan) → {target}",
"translationPathDirect": "{source} → {target} (penterjemah langsung)",
"translationPathPassthrough": "Format yang sama — tiada terjemahan diperlukan",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "Perantaraan OpenAI",
"autoFeaturesTitle": "Perkara yang dilakukan oleh OmniRoute secara automatik",
"autoFeaturesCount": "8 ciri",
"featureReasoningCache": "Cache Penaakulan",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "Badan permintaan sebagai pelanggan anda akan menghantarnya",
"formatDetected": "Format Dikesan",
"formatDetectedDescription": "OmniRoute mengesan secara automatik format API daripada struktur permintaan",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "Perantaraan OpenAI",
"openaiIntermediateDescription": "Semua format mula-mula dinormalkan kepada format OpenAI (jambatan universal)",
"providerFormat": "Format Pembekal",
"providerFormatDescription": "Format OpenAI diterjemahkan kepada format asal pembekal",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Baki",
"kiloPassRenews": "Diperbaharui dalam {count} hari",
"kiloPassUsageLabel": "Penggunaan bulan ini",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Kredit Penggunaan Tambahan",
+ "kimiExtraUsage": "Penggunaan Tambahan",
+ "kimiExtraUsageEnabled": "Didayakan",
+ "kimiExtraUsageDisabled": "Dilumpuhkan",
+ "kimiExtraUsageFrozen": "Dibekukan",
+ "kimiExtraUsageUnavailable": "Tidak tersedia",
+ "kimiMonthlyUsed": "Digunakan bulan ini",
+ "kimiMonthlyLimit": "Had bulanan",
+ "kimiMonthlyLimitUnlimited": "Tanpa had",
+ "kimiAdditionalCredits": "Kredit Tambahan",
"loggerTab": "Pembalak",
"proxyTab": "proksi",
"budgetManagement": "Pengurusan Belanjawan",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Pemutus Litar",
"lockedIPs": "IP berkunci",
"lockoutsAutoRefreshHint": "Kunci had kadar setiap model • Muat semula automatik 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# dikunci} other {# dikunci}}",
"timeLeft": "{time} tinggal",
"howItWorks": "Bagaimana Ia Berfungsi",
"howItWorksSubtitle": "Ketahui cara penilaian mengesahkan respons LLM anda",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Model Dalam Ujian",
"searchSuitesPlaceholder": "Cari suite...",
"passSuffix": "lulus",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# kes} other {# kes}}",
"runEval": "Lari Eval",
"runAllSuites": "Jalankan Semua",
"runAllRunning": "Berjalan semua...",
"runAllProgress": "Berjalan {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# set ujian gagal} other {# set ujian gagal}}",
"runAllCompleted": "Menjalankan {suites} suite — {passed} lulus, {failed} gagal",
"runAllCompletedWithFailures": "Menjalankan {completed} suite; {failedSuites} gagal diselesaikan",
"runningProgress": "Menjalankan {current}/{total}...",
@@ -9393,7 +9404,7 @@
"notifyAllCasesPassed": "Semua kes {total} lulus ✅",
"notifySomeCasesFailed": "{passed}/{total} lulus, {failed} gagal",
"notifyEvalRunFailed": "Larian Eval gagal",
- "notifyEvalTitle": "Eval: {name}",
+ "notifyEvalTitle": "Penilaian: {name}",
"modelEvals": "Penilaian Model",
"evalsHeroDescription": "Uji dan sahkan titik akhir LLM anda dengan menjalankan suite penilaian yang telah ditetapkan. Setiap suite mengandungi kes ujian yang menghantar gesaan sebenar melalui OmniRoute dan membandingkan respons dengan kriteria yang dijangkakan — membantu anda mengesan regresi, membandingkan model dan memastikan kualiti respons merentas penyedia.",
"qualityValidation": "Pengesahan Kualiti",
@@ -9419,7 +9430,7 @@
"providerLimits": "Had Pembekal",
"noProviders": "Tiada Pembekal Disambungkan",
"connectProvidersForQuota": "Sambung kepada pembekal dengan OAuth untuk menjejak had kuota dan penggunaan API anda.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# akaun} other {# akaun}}",
"filteredFromCount": "(ditapis daripada {count})",
"autoRefresh": "Muat semula automatik",
"refreshAll": "Muat semula Semua",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Gagal mengemas kini keterlihatan kuota",
"account": "Akaun",
"modelQuotas": "Kuota Model",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Kali Terakhir Disegar Semula",
"actions": "Tindakan",
"refreshQuota": "Muat semula kuota",
"today": "Hari ini",
@@ -9448,9 +9459,9 @@
"cardExpand": "Kembangkan",
"cardCollapse": "Kuncupkan",
"moreQuotas": "+{count} lagi",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Tidak dikumpulkan",
+ "viewFlat": "Rata",
+ "viewByEnvironment": "Mengikut Persekitaran",
"noQuotaDataAvailable": "Tiada data kuota tersedia",
"noAccountsForTierFilter": "Tiada akaun ditemui untuk penapis peringkat",
"tierAll": "Semua",
@@ -9461,7 +9472,7 @@
"tierPro": "Pro",
"tierPlus": "Tambahan pula",
"tierFree": "Percuma",
- "tierLite": "Lite",
+ "tierLite": "Ringan",
"tierUnknown": "Tidak diketahui",
"statTotal": "Jumlah",
"statCritical": "Kritikal",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Tebus kredit",
"resetCreditRedeemed": "Tetapan semula ditebus",
"resetCreditRedeemFailed": "Gagal menebus kredit tetapan semula",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Gagal menyimpan set ujian",
"clone": "Klon",
"exportSuite": "Eksport",
"importSuite": "Import",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "JSON suite eval tidak sah",
"suiteBuilderCloneSuffix": "salinan",
"suiteBuilderImportedSuite": "Suite Diimport",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Kad Skor",
+ "evalApiKey": "Kunci API",
+ "scorecardPassRate": "Kadar Lulus",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "actualOutputLabel": "Output Sebenar",
+ "evalTargetHint": "Pilih model atau gabungan untuk dinilai.",
+ "suiteBuilderDeleted": "Set ujian berjaya dipadamkan",
+ "suiteBuilderCaseCardHint": "Tentukan gesaan input dan kriteria output yang dijangkakan.",
+ "nextResetUtc": "Tetapan semula seterusnya (UTC)",
+ "scorecardHint": "Kadar lulus teragregat merentas semua set ujian penilaian.",
+ "suiteLatestRunsHint": "Jalankan penilaian terkini bagi set ujian ini.",
+ "saving": "Menyimpan",
+ "suiteBuilderCaseModelLabel": "Model (pilihan)",
+ "evalControlsTitle": "Kawalan Penilaian",
+ "suiteBuilderEditTitle": "Edit Set Ujian Penilaian",
+ "suiteBuilderCaseStrategyLabel": "Strategi Pengesahan",
+ "notifySelectDifferentCompareTarget": "Sila pilih sasaran lain untuk perbandingan",
+ "recentRunsHint": "Menunjukkan pelaksanaan penilaian terkini. Klik pelaksanaan untuk melihat hasil terperinci.",
+ "evalCompareHint": "Bandingkan hasil dengan sasaran kedua secara pilihan.",
+ "suiteBuilderCaseInvalid": "Kes ini mempunyai ralat pengesahan. Sila betulkan sebelum menyimpan.",
+ "historyEmpty": "Belum ada sejarah penilaian",
+ "suiteBuilderUpdated": "Set ujian berjaya dikemas kini",
+ "resetInterval": "Selang Tetapan Semula",
+ "suiteBuilderCreateTitle": "Cipta Set Ujian Penilaian",
+ "activePeriodSpend": "Perbelanjaan Tempoh Aktif",
+ "evalApiKeyHint": "Pilih kunci API yang hendak digunakan untuk permintaan penilaian.",
+ "evalCompareOptional": "Bandingkan (pilihan)",
+ "suiteBuilderDeleteFailed": "Gagal memadamkan set ujian",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Arahan sistem pilihan...",
+ "scorecardCases": "Kes",
+ "runCompletedWithScore": "Penilaian selesai — kadar lulus {score}%",
+ "suiteBuilderCustomBadge": "Tersuai",
+ "targetSuiteDefaults": "Tetapan lalai set ujian",
+ "suiteBuilderDeleteConfirm": "Adakah anda pasti mahu memadamkan set ujian ini? Tindakan ini tidak boleh dibuat asal.",
+ "suiteBuilderNameLabel": "Nama Set Ujian",
+ "scorecardSuites": "Set Ujian",
+ "evalCompareTarget": "Bandingkan Sasaran",
+ "suiteBuilderCaseModelPlaceholder": "cth. gpt-4o-mini",
+ "evalControlsHint": "Konfigurasikan sasaran penilaian dan kunci API anda, kemudian jalankan set ujian untuk mengesahkan kualiti model.",
+ "recentRunsTitle": "Jalankan Terkini",
+ "suiteBuilderCaseSystemPromptLabel": "Prom Sistem",
+ "suiteBuilderCaseExpectedPlaceholder": "cth. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "cth. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Tampalkan jawapan yang dijangkakan dengan tepat",
"suiteBuilderCaseExpectedPlaceholderRegex": "cth. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Gunakan ungkapan biasa JavaScript tanpa membalut garis miring.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "cth. Set Ujian Kualiti Pengekodan",
+ "suiteBuilderAddCase": "Tambah Kes",
+ "cancel": "Batal",
+ "evalTarget": "Sasaran",
+ "suiteBuilderCaseNameLabel": "Nama Kes",
+ "weeklyLimitUsd": "Had Mingguan (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "cth. Tulis fungsi fibonacci dalam Python",
+ "suiteBuilderNameRequired": "Nama set ujian diperlukan",
+ "suiteBuilderCaseUserPromptLabel": "Prom Pengguna",
+ "daily": "Harian",
+ "resultErrorLabel": "Ralat",
+ "suiteBuilderBuiltInBadge": "Terbina dalam",
+ "suiteBuilderCaseCardTitle": "Kes Ujian",
"suiteBuilderDuplicateCase": "Pendua",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "cth. 50.00",
+ "suiteBuilderCaseTagsHint": "Tag dipisahkan koma untuk menyusun kes ujian.",
+ "notifyEvalRunFailedWithReason": "Penilaian gagal: {reason}",
+ "weekly": "Mingguan",
+ "runEvalRunning": "Menjalankan penilaian...",
+ "delete": "Padam",
+ "resetTimeUtc": "Masa Tetapan Semula (UTC)",
+ "evalApiKeyAuto": "Auto (gunakan lalai)",
+ "suiteBuilderDescriptionPlaceholder": "Perihalan pilihan tentang perkara yang diuji oleh set ujian ini...",
+ "targetComparisonTitle": "Perbandingan Sasaran",
+ "save": "Simpan",
+ "suiteBuilderCreated": "Set ujian berjaya dicipta",
+ "suiteLatestRuns": "Jalankan Terbaharu",
+ "suiteBuilderCaseExpectedLabel": "Nilai Dijangka",
+ "historyLatency": "Kependaman",
+ "suiteBuilderCaseTagsPlaceholder": "cth. pengekodan, python",
+ "targetTypeCombo": "Gabungan",
+ "scorecardPassed": "Lulus",
+ "suiteBuilderCaseTagsLabel": "Tag",
+ "suiteBuilderNewSuite": "Set Ujian Baharu",
+ "notifyEvalLoadFailed": "Gagal memuatkan data penilaian",
+ "notConfigured": "Belum Dikonfigurasikan",
+ "suiteBuilderCaseNamePlaceholder": "cth. ujian fibonacci Python",
+ "intervalLabel": "Selang",
+ "suiteBuilderCreateAction": "Cipta Suit",
+ "suiteBuilderCasesHint": "Setiap kes menghantar prom dan mengesahkan respons.",
+ "suiteBuilderUpdatedAt": "Dikemas kini",
+ "errorBadge": "Ralat",
+ "suiteBuilderCasesTitle": "Kes Ujian",
+ "edit": "Sunting",
+ "monthly": "Bulanan",
+ "suiteBuilderCasesRequired": "Sekurang-kurangnya satu kes ujian diperlukan",
+ "weeklyLimitSummary": "Ringkasan had belanjawan mingguan",
+ "suiteBuilderDescriptionLabel": "Perihalan",
+ "targetComparisonHint": "Perbandingan keputusan penilaian antara sasaran secara sebelah-menyebelah.",
+ "compareCompletedWithScore": "Perbandingan selesai — kadar lulus {score}%",
+ "staleQuotaTooltip": "Penyegaran terakhir gagal — memaparkan data cache",
"quotaThresholdLabel": "Min pergi",
"quotaCutoffsColumnHelp": "Hentikan permintaan apabila baki kuota jatuh kepada peratusan ini atau lebih rendah.",
"quotaCutoffsButtonDefault": "Lalai",
@@ -9859,7 +9870,7 @@
"backToLogin": "Kembali ke Log Masuk",
"forgotPassword": "Lupa kata laluan?",
"continueWithOidc": "Teruskan dengan OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Kata laluan lalai: CHANGEME (melainkan INITIAL_PASSWORD telah ditetapkan)",
"Authorization": "Keizinan",
"Content-Disposition": "Kandungan-Pelupusan",
"waitingForAuthorization": "Menunggu kebenaran...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Menunggu kebenaran Antigraviti...",
"waitingForQoderAuthorization": "Menunggu kebenaran Qoder...",
"exchangingCodeForTokens": "Bertukar kod untuk token...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Versi Node.js Tidak Serasi",
+ "nodeIncompatibleDesc": "Anda sedang menjalankan Node.js {version}, yang berada di luar dasar masa jalan selamat yang disokong oleh OmniRoute. Gunakan keluaran Node.js 20.x atau 22.x LTS yang telah ditampal.",
+ "nodeIncompatibleFixLabel": "Penyelesaian: pasang keluaran Node.js 22 LTS yang telah ditampal",
+ "nodeIncompatibleHint": "OmniRoute memerlukan Node.js 22.22.2+ (22.x LTS) atau 24.0.0+ (24.x LTS). Node 24 LTS disyorkan.",
"resetViaAppDataTitle": "Tetapkan Semula melalui Data Aplikasi",
"resetViaAppDataDescription": "Padam fail tetapan dari direktori data aplikasi untuk menetapkan semula kata laluan anda:",
"quitDesktopApp": "Tutup aplikasi desktop OmniRoute sepenuhnya",
@@ -9943,7 +9954,7 @@
"featureUnifiedEndpointDesc": "Akses semua pembekal melalui URL API standard tunggal.",
"featureEasySetupTitle": "Persediaan Mudah",
"featureEasySetupDesc": "Bangun dan jalankan dalam beberapa minit dengan arahan npx.",
- "featureModelFallbackTitle": "Model Fallback",
+ "featureModelFallbackTitle": "Sandaran Model",
"featureModelFallbackDesc": "Tukar pembekal secara automatik pada kegagalan atau kependaman tinggi.",
"featureUsageTrackingTitle": "Penjejakan Penggunaan",
"featureUsageTrackingDesc": "Analisis terperinci dan pemantauan kos merentas semua model.",
@@ -9984,7 +9995,7 @@
"dataLocationWindows": "Windows:",
"product": "produk",
"dashboardLink": "Papan pemuka",
- "changelog": "Changelog",
+ "changelog": "Log Perubahan",
"resources": "Sumber",
"documentation": "Dokumentasi",
"npm": "NPM",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "Pembekal",
"commonUseCases": "Kes Penggunaan Biasa",
"clientCompatibility": "Keserasian Pelanggan",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Protokol",
"apiReference": "Rujukan API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Rujukan API Pengurusan",
+ "managementApiDescription": "Titik akhir automasi untuk pendaftaran proksi, penugasan skop dan migrasi proksi legasi.",
"method": "Kaedah",
"path": "Laluan",
"notes": "Nota",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Pasang OmniRoute sebagai Apl Web Progresif pada penyemak imbas Android, iOS dan desktop.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Jalankan OmniRoute tanpa antara muka pada Android melalui Termux. Akses papan pemuka daripada pelayar mudah alih anda.",
"featureRoutingTitle": "Penghalaan Berbilang Penyedia",
"featureRoutingText": "Halakan permintaan kepada 30+ pembekal AI melalui satu titik akhir serasi OpenAI. Menyokong sembang, respons, audio dan API imej.",
"featureCombosTitle": "Kombo dan Pengimbangan",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Gunakan OmniRoute sebagai URL asas yang stabil sambil memutarkan akaun atau gabungan penyedia di bawahnya.",
"clientKimiBullet2": "Lebih suka model awalan dalam aliran pengekodan supaya sandaran dan jejak audit kekal eksplisit.",
"clientKimiBullet3": "Gunakan `/v1/responses` apabila anda mahukan penghalaan gaya Respons asli untuk pelanggan yang menggunakan alat.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protokol: MCP & A2A",
+ "protocolsDescription": "OmniRoute menyediakan dua protokol operasi sebagai tambahan kepada API yang serasi dengan OpenAI: MCP untuk pelaksanaan alat dan A2A untuk aliran kerja antara ejen.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Gunakan MCP melalui stdio untuk membolehkan klien menemui dan memanggil alat OmniRoute dengan kebolehlihatan audit.",
+ "protocolMcpStep1": "Mulakan pengangkutan MCP dengan `omniroute --mcp`.",
+ "protocolMcpStep2": "Halakan klien MCP anda kepada pengangkutan stdio.",
+ "protocolMcpStep3": "Panggil `omniroute_get_health` dan `omniroute_list_combos` untuk mengesahkan kesambungan.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Gunakan A2A JSON-RPC untuk menyerahkan tugasan secara segerak atau melalui penstriman SSE.",
+ "protocolA2aStep1": "Baca `/.well-known/agent.json` untuk penemuan ejen.",
+ "protocolA2aStep2": "Hantar permintaan `message/send` atau `message/stream` ke `POST /a2a`.",
+ "protocolA2aStep3": "Urus kitar hayat tugasan dengan `tasks/get` dan `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Penyelesaian Masalah Protokol",
+ "protocolTroubleshooting1": "Jika status MCP di luar talian, sahkan proses stdio sedang berjalan dan fail denyutan jantung sedang dikemas kini.",
+ "protocolTroubleshooting2": "Jika tugasan A2A kekal dalam keadaan `working`, periksa `/api/a2a/tasks/:id` dan strimkan peristiwa untuk keadaan akhir.",
+ "protocolTroubleshooting3": "Gunakan `/dashboard/mcp` dan `/dashboard/a2a` untuk kawalan operasi dan kebolehlihatan audit.",
"endpointChatNote": "Titik akhir sembang serasi OpenAI (lalai).",
"endpointResponsesNote": "Titik akhir API Respons (Codex, o-siri).",
"endpointModelsNote": "Katalog model untuk semua pembekal yang disambungkan.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Tulis semula pembantu untuk pelanggan tanpa /v1.",
"endpointRewriteResponsesNote": "Tulis semula pembantu untuk Respons tanpa /v1.",
"endpointRewriteModelsNote": "Tulis semula pembantu untuk penemuan model tanpa /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Senaraikan item pendaftaran proksi yang disimpan (menyokong penomboran halaman).",
+ "mgmtProxiesCreateNote": "Cipta item proksi boleh guna semula dalam pendaftaran.",
+ "mgmtProxiesHealthNote": "Dapatkan metrik kesihatan 24 jam/berterusan bagi setiap proksi yang disimpan daripada log proksi.",
+ "mgmtProxiesBulkAssignNote": "Tetapkan atau kosongkan satu proksi merentas banyak ID skop dalam satu permintaan.",
+ "mgmtAssignmentsListNote": "Senaraikan penetapan proksi mengikut scope, scope_id atau proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Tetapkan atau kosongkan proksi untuk skop global/penyedia/akaun/gabungan.",
+ "mgmtLegacyMigrationNote": "Import peta proxyConfig legasi ke dalam penetapan pendaftaran.",
"modelPrefixesDescriptionStart": "Gunakan awalan pembekal sebelum nama model untuk menghala ke pembekal tertentu. Contoh:",
"modelPrefixesDescriptionEnd": "laluan ke GitHub Copilot.",
"provider": "Pembekal",
@@ -10253,7 +10264,7 @@
"apiExplorerDescription": "Cuba ujian titik akhir OmniRoute secara langsung. Pilih titik akhir, konfigurasikan permintaan anda, dan lihat responsnya secara masa nyata.",
"apiExplorerSseStarted": "Aliran SSE bermula — semak terminal/devtools untuk output masa nyata.",
"apiExplorerError": "Ralat: {message}",
- "apiExplorerAuth": "auth",
+ "apiExplorerAuth": "pengesahan",
"apiExplorerResponseLabel": "Tindak Balas",
"apiExplorerSelectEndpoint": "Pilih titik akhir untuk diterokai",
"apiExplorerChooseApi": "Pilih API dari bar sisi untuk melihat butiran dan mencubanya secara langsung",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute ialah perisian sumber terbuka. Anda bebas untuk memeriksa, mengubah suai dan mengedarkannya di bawah syarat lesennya."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "Ejen CLI",
+ "description": "Temui ejen CLI yang dipasang pada sistem anda. Tambahkan ejen tersuai untuk pengesanan automatik.",
+ "refresh": "Segar Semula",
+ "installed": "Dipasang",
+ "notFound": "Tidak Ditemui",
+ "builtIn": "Terbina Dalam",
+ "custom": "Tersuai",
+ "remove": "Alih Keluar",
+ "addCustomAgent": "Tambah Ejen Tersuai",
+ "addCustomAgentDesc": "Daftarkan sebarang alat CLI untuk pengesanan. Alat tersebut akan diimbas secara automatik apabila disegar semula.",
+ "agentName": "Nama Ejen",
+ "binaryName": "Nama Binari",
+ "versionCommand": "Perintah Versi",
+ "spawnArgs": "Argumen Pelancaran",
+ "addAgent": "Tambah Ejen",
+ "scanning": "Mengimbas sistem untuk ejen CLI...",
+ "opencodeIntegration": "Integrasi OpenCode",
+ "opencodeDetected": "opencode {version} dikesan",
+ "opencodeDesc": "Jana {configFile} sedia digunakan dengan URL asas OmniRoute anda dan semua model yang tersedia — letakkannya dalam akar projek anda dan jalankan {command}.",
+ "downloadConfig": "Muat turun {file}",
+ "downloaded": "Dimuat turun!",
+ "setupGuideTitle": "Panduan persediaan",
+ "openCliTools": "Buka Alat CLI",
+ "setupGuideDetectCliTitle": "Kesan CLI yang dipasang",
+ "setupGuideDetectCliDesc": "Klik Muat Semula selepas memasang atau mengemas kini CLI supaya OmniRoute boleh mengimbas semula binari dan versi.",
+ "setupGuideCustomAgentTitle": "Daftar binari tersuai",
+ "setupGuideCustomAgentDesc": "Gunakan Tambah Ejen Tersuai apabila CLI anda tiada dalam senarai terbina dalam. Berikan nama binari dan perintah versi.",
+ "setupGuideCommandMissingTitle": "Baiki 'command not found'",
+ "setupGuideCommandMissingDesc": "Pastikan perintah CLI wujud dalam PATH, buka sesi terminal baharu dan jalankan semula Muat Semula.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Pengurusan Cache",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Muat Semula",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Entri Memori",
+ "memoryEntriesSub": "LRU dalam memori",
+ "dbEntries": "Entri DB",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Padanan Cache",
+ "cacheHitsSub": "daripada {total} keseluruhan",
+ "tokensSaved": "Token Dijimatkan",
+ "tokensSavedSub": "Anggaran daripada padanan",
+ "hitRate": "Kadar Padanan",
+ "performance": "Prestasi Cache",
+ "autoRefresh": "Muat semula secara automatik setiap {seconds}s",
+ "hits": "Padanan",
+ "misses": "Tidak Padanan",
+ "total": "Jumlah",
+ "behavior": "Tingkah Laku Cache",
+ "behaviorDeterministic": "Hanya permintaan tanpa penstriman dengan temperature=0 dicache.",
+ "behaviorBypass": "Pintas dengan pengepala {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL lalai: 30 minit. Konfigurasikan melalui {envVar}.",
+ "idempotency": "Lapisan Idempotensi",
+ "activeDedupKeys": "Kunci Penyahduplikasian Aktif",
+ "dedupWindow": "Tetingkap Penyahduplikasian",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Gagal mengosongkan cache.",
+ "unavailable": "Cache tidak tersedia",
+ "unavailableDesc": "Tidak dapat mendapatkan statistik cache. Pastikan pelayan sedang berjalan.",
"loadingCacheAria": "Memuatkan cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Cache Prom (Bahagian Penyedia)",
+ "semanticCache": "Cache Semantik",
+ "promptCacheSectionDesc": "Memaparkan aktiviti cache gesaan di pihak penyedia daripada sejarah penggunaan supaya anda dapat melihat tempat kawalan cache aktif dan jumlah input yang digunakan semula.",
+ "promptTrendDesc": "Jumlah permintaan setiap jam, liputan cache dan jumlah bacaan cache sepanjang 24 jam yang lalu.",
+ "cachedRequests": "Permintaan Dicache",
+ "cachedRequests24h": "Permintaan Dicache (24j)",
+ "cacheHitRate": "Kadar Capaian Cache",
+ "cacheRate": "Kadar Cache",
+ "cacheRateDesc": "daripada jumlah permintaan",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Metrik Cache Gesaan",
+ "withCacheControl": "Dengan Kawalan Cache",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Nisbah Penggunaan Semula Cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Anggaran Kos Dijimatkan",
+ "lastUpdated": "Kemas kini terakhir",
+ "hoursTracked": "jam dijejaki",
+ "busiestHour": "Waktu Paling Sibuk",
+ "peakCacheRate": "Kadar Cache Tertinggi",
+ "trendHour": "Jam",
+ "activityVolume": "Aktiviti",
+ "requestsShort": "permintaan",
+ "inputShort": "Input",
+ "cachedShort": "Dicache",
+ "writeShort": "Tulis",
+ "resetting": "Menetapkan semula...",
+ "resetMetrics": "Tetapkan Semula Metrik",
+ "byProvider": "Pecahan mengikut Penyedia",
+ "providerCacheRateDesc": "Setiap penyedia memaparkan jumlah token input, token bacaan cache dan token penulisan cache supaya anda boleh mengesahkan nisbah penggunaan semula berbanding jumlah mentah.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Permintaan",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Trend Cache (24j)",
+ "peakCached": "Cache tertinggi",
+ "cached": "Dicache",
+ "overview": "Gambaran Keseluruhan",
"tableProvider": "Penyedia",
"tableModel": "Model",
"performanceTitle": "Prestasi",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "Cache respons deterministik OmniRoute sendiri. Apabila didayakan, permintaan berulang tanpa penstriman dengan temperature=0 boleh disampaikan secara setempat tanpa menghubungi penyedia huluan.",
+ "semanticCacheDisabledDesc": "Cache semantik dinyahdayakan. OmniRoute akan melangkau penggunaan semula respons setempat sehingga anda menghidupkannya semula dalam Tetapan.",
+ "semanticEntriesDesc": "Rekod cache semantik tersimpan yang kini disimpan dalam SQLite. Aktiviti cache gesaan di pihak penyedia tidak disenaraikan di sini.",
+ "searchEntries": "Cari entri...",
+ "search": "Cari",
+ "loading": "Memuatkan...",
+ "entriesLoadError": "Gagal memuatkan entri cache semantik.",
+ "noEntries": "Tiada entri cache ditemukan",
+ "noPromptCacheData": "Belum ada aktiviti cache gesaan di pihak penyedia direkodkan.",
+ "noTrendData": "Tiada aktiviti cache gesaan direkodkan sepanjang 24 jam yang lalu.",
+ "signature": "Tandatangan",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Dicipta",
+ "expires": "Tamat Tempoh",
+ "actions": "Tindakan",
+ "deduplicatedRequests": "Permintaan Dinyahduplikasi",
+ "savedCalls": "Panggilan API yang Dijimatkan",
+ "totalProcessed": "Jumlah Permintaan Diproses",
+ "disabled": "Dilumpuhkan",
+ "totalRequests": "Jumlah Permintaan",
"reasoningCache": "Main Semula Penaakulan",
"reasoningCacheDesc": "Mengekalkan pemikiran model untuk aliran panggilan alat berbilang pusingan",
"reasoningEntries": "Penyertaan Aktif",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes}m lalu",
"hoursAgo": "{hours}j lalu",
"daysAgo": "{days}h lalu",
- "entries": "Entries"
+ "entries": "Entri"
},
"proxyConfigModal": {
"levelGlobal": "Global",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "Tampal kunci API Devin yang sedia ada dari sesi Devin yang telah disahkan. Ketersediaan eksport kunci dan langkah-langkah berbeza mengikut versi Devin dan akaun.",
"devinPasteDescription": "Sila berikan WINDSURF_API_KEY anda (diperoleh melalui `devin auth login`, atau melalui perintah IDE Windsurf \"Windsurf: Provide Auth Token\").",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "Bina auth.json Grok",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Kunci API / Token",
"saving": "Menyimpan…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Sambungkan IDE Kursor",
- "tabLogin": "Login with Cursor",
+ "tabLogin": "Log masuk dengan Cursor",
"tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "loginDescription": "Membuka log masuk pelayar Cursor. Berfungsi dalam Docker — luluskan dalam pelayar hos anda, kemudian kembali ke sini.",
+ "loginWithCursor": "Log masuk dengan Cursor",
+ "startingLogin": "Memulakan…",
+ "waitingApproval": "Menunggu kelulusan log masuk Cursor…",
+ "openUrlHint": "Jika pelayar tidak dibuka:",
+ "openLoginLink": "Buka halaman log masuk",
+ "cancelLogin": "Batalkan log masuk",
"autoDetecting": "Token pengesan automatik...",
"readingFromCursor": "Membaca daripada Cursor IDE atau cursor-agent",
"tokensAutoDetected": "Token berjaya dikesan secara automatik daripada Cursor IDE!",
"cursorNotDetected": "IDE kursor tidak dikesan. Sila tampal token anda secara manual.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Berjalan dalam Docker? Sebaiknya gunakan Log masuk dengan Cursor. Import automatik IDE dan cursor-agent biasanya tidak tersedia dalam bekas. Lihat docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Token Akses",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Token Muat Semula",
+ "refreshTokenPlaceholder": "Pilihan — membolehkan token dimuat semula secara automatik",
"required": "*",
"accessTokenPlaceholder": "Token akses akan diisi secara automatik...",
"machineId": "ID mesin",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Autokesan token gagal",
"errorEnterToken": "Sila masukkan token akses",
"errorImportFailed": "Import gagal",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Gagal memulakan log masuk Cursor",
+ "errorLoginPoll": "Log masuk Cursor gagal",
+ "errorLoginTimeout": "Log masuk Cursor tamat masa — cuba lagi"
},
"pricingModal": {
"title": "Konfigurasi Harga",
@@ -10839,9 +10850,9 @@
"selectProxy": "Pilih {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Import Legasi",
+ "bulkAssign": "Tetapkan Secara Pukal",
+ "addProxy": "Tambah Proksi",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Uji",
+ "edit": "Sunting",
+ "delete": "Padam",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,7 +10913,7 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Gagal",
"successRate": "{rate}% kejayaan",
"avgLatency": "{latency}ms purata",
"assignmentsCount": "{count} tugasan",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Strategi putaran",
"poolStrategyHint": "round-robin mengitar ahli mengikut urutan; rawak memilih secara seragam; sticky mengekalkan satu ahli untuk satu tetingkap; dioptimumkan kependaman memilih yang terpantas berdasarkan log.",
"poolStrategyFailed": "Gagal mengemas kini strategi putaran",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Giliran bergilir",
"strategyRandom": "Rawak",
- "strategySticky": "Sticky",
+ "strategySticky": "Kekal",
"strategyLatency": "Dioptimumkan kependaman",
"poolMembersLabel": "Ahli kolam ({count})",
"poolNoMembers": "Belum ada proksi dalam kolam ini.",
+ "poolEgressObservation": "{exits, plural, one {# laluan keluar} other {# laluan keluar}} digunakan oleh {connections, plural, one {# sambungan} other {# sambungan}} · sehingga {max} pada satu laluan keluar · {hours} j terakhir",
+ "poolEgressObservationEmpty": "Tiada trafik dikesan dalam tempoh {hours} j terakhir",
+ "poolEgressObservationHint": "Dikira daripada log proksi sepanjang tempoh tersebut: IP egress berbeza yang dikesan untuk ahli kumpulan ini dan sambungan OmniRoute yang menggunakannya. \"Pada satu laluan keluar\" bermaksud sepanjang tempoh tersebut, bukan pada masa yang sama. Sekatan 429 bagi setiap IP hanya menjeda sambungan daripada keluarga penyedia yang sama.",
"poolRemove": "Alih keluar",
"poolRemoveFailed": "Gagal mengalih keluar proksi daripada kolam",
"poolAddLabel": "Tambah proksi",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "endpoint": "Titik akhir",
+ "provider": "Penyedia",
"model": "Model",
"accountKey": "Account Key",
"autoAccounts": "Auto ({count} akaun)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Hantar",
+ "cancel": "Batal",
+ "audioFile": "Fail Audio",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Kosongkan Semua",
+ "request": "Permintaan",
+ "response": "Respons",
+ "transcription": "Transkripsi",
+ "copy": "Salin",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Imej {count} dihasilkan",
"generatedImage": "Imej yang dihasilkan {index}",
- "save": "Save",
+ "save": "Simpan",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Respons",
"completions": "Penyempurnaan",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Pembenaman",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderasi",
- "rerank": "Rerank",
+ "rerank": "Susun Semula",
"search": "Search",
"webFetch": "Ambilan web"
},
"conversationalChat": "Sembang Perbualan",
"clearChat": "Kosongkan sembang",
"typeMessagePlaceholder": "Taip mesej... (Shift+Enter untuk baris baharu)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Sembang",
+ "tabCompare": "Bandingkan",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Bina",
+ "configPane": "Konfigurasi",
+ "systemPrompt": "Prom sistem",
+ "systemPromptPlaceholder": "Anda ialah pembantu yang suka menolong.",
+ "modelPlaceholder": "cth. openai/gpt-4o",
+ "endpointLabel": "Titik akhir",
+ "parametersLabel": "Parameter",
+ "collapseConfig": "Runtuhkan anak tetingkap konfigurasi",
+ "expandConfig": "Kembangkan anak tetingkap konfigurasi",
+ "temperature": "Suhu",
+ "maxTokens": "Token maksimum",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Penalti kehadiran",
+ "frequencyPenalty": "Penalti kekerapan",
"reasoningLabel": "Penaakulan",
"thinking": "Pemikiran",
"effort": "Usaha",
"effortDefault": "Lalai",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Rawak (biarkan kosong)",
+ "presetsLabel": "Pratetap",
+ "loadPreset": "Muatkan pratetap",
+ "savePreset": "Simpan pratetap",
+ "noPresets": "Tiada pratetap",
+ "presetNamePlaceholder": "Nama pratetap",
+ "savingPreset": "Menyimpan…",
+ "nameRequired": "Nama diperlukan",
+ "failedToSavePreset": "Gagal menyimpan pratetap",
+ "improvePrompt": "Perbaik gesaan",
+ "improvingPrompt": "Sedang memperbaik…",
+ "improvePromptTitle": "Perbaik gesaan anda dengan AI",
+ "setModelFirst": "Tetapkan model terlebih dahulu",
"setModelInConfigFirst": "Tetapkan model dalam panel Konfigurasi terlebih dahulu.",
"improvePromptFailed": "Gagal menambah baik gesaan.",
"improvePromptAria": "Tambah baik gesaan menggunakan AI",
"confirmImprovePrompt": "Sahkan tambah baik gesaan",
"improvePromptDescription": "Ini akan menghantar gesaan sistem semasa anda ke solo.trae.ai သို့ လော့ဂ်အင်ဝင်ပြီး DevTools → Network ကို ဖွင့်ပါ၊ မည်သည့် ချတ်မက်ဆေ့ချ်မဆို ပို့ပြီး Authorization: Cloud-IDE-JWT {tokenPlaceholder} request header မှ JWT ကို ကူးယူပါ။ JWT ၏ သက်တမ်းမှာ ~14 ရက်ဖြစ်သည်။ ထည့်သွင်းရန် မဖြစ်မနေမလိုသော အထောက်အထားအကွက်များကို အလားတူ request body ရှိ common_params မှ ရယူသည်။",
- "accessTokenLabel": "Access Token (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "accessTokenLabel": "အသုံးပြုခွင့် တိုကင် (Cloud-IDE-JWT)",
+ "webId": "ဝဘ် ID",
"optional": "ထည့်သွင်းရန် မဖြစ်မနေမလိုပါ",
- "bizUserId": "Biz User ID",
- "userUniqueId": "User Unique ID",
- "scope": "Scope",
- "tenant": "Tenant",
+ "bizUserId": "လုပ်ငန်းသုံး အသုံးပြုသူ ID",
+ "userUniqueId": "အသုံးပြုသူ သီးသန့် ID",
+ "scope": "နယ်ပယ်",
+ "tenant": "အဖွဲ့အစည်းခွဲ",
"region": "ဒေသ",
"importing": "ထည့်သွင်းနေသည်…",
"importToken": "တိုကင်ကို ထည့်သွင်းပါ",
@@ -13947,7 +13969,7 @@
"compressionDescription": "တိုကင်အသုံးပြုမှုနှင့် ကုန်ကျစရိတ်များကို လျှော့ချရန် အကြောင်းအရာချုံ့ခြင်း ဆက်တင်များကို စီစဉ်သတ်မှတ်ပါ။",
"relayTitle": "OmniRoute — Relay Proxy များ",
"relayDescription": "သင်၏ AI အခြေခံအဆောက်အအုံအတွက် ဆာဗာမဲ့ Relay Proxy Endpoint များ",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "အသွားအလာ စစ်ဆေးကိရိယာ — OmniRoute",
"trafficInspectorDescription": "LLM ခေါ်ဆိုမှုများကို စောင့်ကြည့်ပြီး မည်သည့်အပလီကေးရှင်း၏ HTTPS လမ်းကြောင်းကိုမဆို အမှားရှာပါ"
},
"conductor": {
@@ -13970,7 +13992,7 @@
"noTasks": "လုပ်ငန်းများ မရှိသေးပါ",
"detailTitle": "လုပ်ငန်းအသေးစိတ်",
"prompt": "ညွှန်ကြားချက်",
- "branch": "Branch",
+ "branch": "ဘရန်ချ်",
"fetchHint": "ရလဒ်ကို ဤအမိန့်ဖြင့် ရယူပါ- git fetch origin {branch}",
"council": "ကောင်စီ",
"candidates": "အဆိုပြုရလဒ်များ",
@@ -14029,9 +14051,9 @@
"filterSources": "ရင်းမြစ်များ",
"filterProviders": "ဝန်ဆောင်မှုပေးသူများ",
"clearFilters": "စစ်ထုတ်မှုများကို ရှင်းရန်",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Cloud အေးဂျင့်",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "စီမံထိန်းချုပ်သူ",
"sourceStale": "{since} မှစ၍ အပ်ဒိတ်မရှိပါ",
"sourceOffline": "အော့ဖ်လိုင်း",
"sourceCollapse": "ခေါက်သိမ်းရန်",
diff --git a/src/i18n/messages/ne.json b/src/i18n/messages/ne.json
index 12beceb056..3f5cf4fab2 100644
--- a/src/i18n/messages/ne.json
+++ b/src/i18n/messages/ne.json
@@ -832,8 +832,8 @@
"wizardStep3Validate": "प्रमाणीकरण गर्नुहोस्",
"wizardStep4Cost": "लागत र सिर्जना",
"wizardProviderLabel": "प्रदायक",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "wizardEndpointLabel": "अन्तिम बिन्दु",
+ "wizardModelLabel": "मोडेल",
"wizardInputKindJsonl": "JSONL",
"wizardInputKindCsv": "CSV (हामी रूपान्तरण गर्नेछौँ)",
"wizardDropOrPick": "फाइल यहाँ छोड्नुहोस् वा छनोट गर्न क्लिक गर्नुहोस्",
@@ -901,7 +901,7 @@
"batchListRemoveCompleted": "पूरा भएकाहरू हटाउनुहोस्",
"batchListTableStatus": "स्थिति",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "अन्तिम बिन्दु",
"batchListTableModel": "मोडेल",
"batchListTableProgress": "प्रगति",
"batchListTableCreated": "सिर्जना गरिएको",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Claude Code गेटवे मोडेल खोजले गैर-Claude मोडेलहरू सूचीबद्ध गरोस् भन्नका लागि /v1/models मा claude/<provider>/<model> मिरर id हरू देखाउनुहोस्। चेतावनी: विश्वव्यापी रूपमा सक्षम गर्दा सबै क्लाइन्टका लागि क्याटलग प्रविष्टिहरू दोब्बर हुन्छन्।",
"featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> गेटवे एलियसहरूका लागि मुख्य स्विच। अन (पूर्वनिर्धारित): /v1/models ले हरेक योग्य सोच्न-सक्षम Claude मोडेलका लागि सोचाइ-विहीन भेरियन्ट देखाउँछ, र अनुरोधमा पठाइएको no-think/ id वास्तविक मोडेलमा फर्केर रिजोल्भ हुन्छ र रिजनिङ दबाइन्छ। अफ: कुनै पनि भेरियन्ट देखाइँदैन र no-think/ id लाई अन्य कुनै अज्ञात मोडेल id सरह व्यवहार गरिन्छ। यो अन हुँदा पनि प्रत्येक मोडेलको ModelSpec.noThinkingAlias अप्ट-इन/अप्ट-आउट लागू हुन्छ।",
"featureFlagChatVirtualLanesEnabledDescription": "प्रदायक डिस्प्याच (#9654) का लागि प्रत्येक टेनेन्टअनुसार अनुकूल हुने भर्चुअल एडमिसन लेनहरू सक्षम गर्नुहोस्: अब एउटा टेनेन्टको अचानक बढेको ट्राफिकले अर्कोलाई 503 गराउँदैन। OMNIROUTE_CHAT_VIRTUAL_LANES env var ले यस ड्यासबोर्ड ओभरराइडभन्दा प्राथमिकता पाउँछ; परिवर्तनहरू सर्भर पुनः सुरु भएपछि लागू हुन्छन्।",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "ड्यासबोर्डका प्रदायक पृष्ठहरू: प्रदायकले मान्ने सङ्केतहरूमा मात्र निःशुल्क ब्याज देखाउनुहोस् — दस्तावेजीकृत निःशुल्क तह नभएका दर्ता गरिएका प्रदायकहरूमा प्रदर्शन-नामको अनुमान, गैर-बुलियन निःशुल्क फिल्डहरू र :free प्रत्ययहरू हटाउँछ। बन्द गर्दा ऐतिहासिक ब्याज नियम कायम रहन्छ।",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy pools र opencode को प्रति-खाता रोटेसनले भर्खरै असफल भएको प्रोक्सी (TCP प्रोब अस्वीकार भएको वा त्यसमार्फत 429 प्राप्त भएको) लाई प्रत्येक पटक दोब्बर हुँदै अधिकतम सीमासम्म पुग्ने प्रति-प्रक्रिया अवधिका लागि पुनः प्रयोग गर्न रोक्छ। कुनै प्रोक्सी स्थिति लेखिँदैन; प्रत्येक उम्मेदवारलाई अलग राख्दा छनोट अपरिवर्तित रहन्छ। पूर्वनिर्धारित रूपमा बन्द: छनोट क्रम ठ्याक्कै साधारण रोटेसन नै हुन्छ।",
+ "featureFlagProxyPoolEgressObservationDescription": "ड्यासबोर्डमा प्रोक्सी पूलअन्तर्गत, पछिल्लो २४ घण्टामा त्यसका सदस्यहरूलाई सेवा दिने कति वटा अवलोकित इग्रेस IP थिए, कति जडानले तिनलाई प्रयोग गरे र एउटै IP पछाडि देखिएको अधिकतम संख्या कति थियो भन्ने देखाउनुहोस्। पढ्नका लागि मात्र, प्रोक्सी लगबाट गणना गरिएको र राउटिङका लागि कहिल्यै प्रयोग नगरिने। पूर्वनिर्धारित रूपमा बन्द: पूल सम्पादक अपरिवर्तित रहन्छ र अवलोकन रुटले null फर्काउँछ।",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "प्रोक्सी स्वास्थ्य स्वीपमा, लक्ष्यले अस्वीकार गरेको प्रोब (401/403/429: प्रोक्सीले रिले गर्यो, गन्तव्यले यो इग्रेस IP अस्वीकार गर्यो) लाई सेवा दिइएको प्रोबजस्तै प्रोक्सीको लगातार-असफलता क्रम रिसेट गर्न दिनुहोस्। पूर्वनिर्धारित रूपमा बन्द: अस्वीकृति तटस्थ रहन्छ र क्रम कायम राख्छ। दुवै अवस्थामा 5xx अनिर्णायक नै रहन्छ, र अस्वीकृतिले प्रोक्सीलाई कहिल्यै हटाउँदैन, निष्क्रिय पार्दैन वा पुनः सक्रिय गर्दैन।",
"sidebar": {
"home": "गृहपृष्ठ",
"dashboard": "ड्यासबोर्ड",
@@ -1425,19 +1429,19 @@
"secretKeyHint": "प्रमाणीकरणका लागि पेलोड हेडरमा हस्ताक्षर गर्न प्रयोग गरिन्छ।"
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "Discord वेबहुक URL",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "तपाईंको Discord च्यानल एकीकरण सेटिङहरूबाट प्रतिलिपि गरिएको वेबहुक URL।",
"tutorial": "Discord वेबहुक कसरी सिर्जना गर्ने:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "Slack वेबहुक URL",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "तपाईंको Slack Incoming Webhooks एकीकरणबाट प्रतिलिपि गरिएको वेबहुक URL।",
"tutorial": "Slack वेबहुक कसरी सिर्जना गर्ने:"
},
"telegram": {
- "botToken": "Telegram Bot Token",
+ "botToken": "Telegram बट टोकन",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "तपाईंको बट सिर्जना गर्दा @BotFather बाट प्राप्त HTTP API टोकन।",
"chatId": "Telegram च्याट ID / च्यानल",
@@ -1811,7 +1815,7 @@
"topologyLegendRecent": "हालैको",
"topologyLegendError": "त्रुटि",
"oauthLabel": "OAuth",
- "apiKeyLabel": "API Key",
+ "apiKeyLabel": "एपीआई कुञ्जी",
"requestsShort": "{count} अनुरोधहरू",
"providerModelsTitle": "{provider} - मोडेलहरू",
"copiedModel": "प्रतिलिपि गरियो: {model}",
@@ -1899,7 +1903,7 @@
"usageAnalyticsTitle": "प्रयोग विश्लेषण",
"diversityScoreTitle": "प्रदायक विविधता",
"diversityScoreDesc": "हालैको ट्राफिक अवधिका लागि प्रदायक एकाग्रताको झलक।",
- "diversityShannonEntropy": "Shannon entropy",
+ "diversityShannonEntropy": "श्यानन एन्ट्रोपी",
"diversityWindow": "अवधि: {count} अनुरोधहरू · पछिल्ला {mins} मिनेट",
"diversityHealthy": "स्वस्थ वितरण",
"diversityRiskHigh": "उच्च विक्रेता निर्भरता जोखिम",
@@ -2622,7 +2626,7 @@
"scrapeExtracting": "निकालिँदै छ…",
"scrapeFullPage": "पूरा पृष्ठ",
"scrapeFormat": "ढाँचा",
- "formatMarkdown": "Markdown",
+ "formatMarkdown": "मार्कडाउन",
"formatHtml": "HTML",
"formatText": "पाठ",
"scrapePreview": "पूर्वावलोकन",
@@ -2713,7 +2717,7 @@
"ccOnboardingTitle": "गेटवे मोडेल खोजका लागि settings.json",
"ccOnboardingCopy": "प्रतिलिपि गर्नुहोस्",
"ccOnboardingCopied": "प्रतिलिपि गरियो",
- "ccOnboardingKeyPlaceholder": "'{dataDir}. Er is geen actie vereist — uw gegevens zijn versleuteld en veilig. Om aangepaste sleutels te gebruiken, voeg JWT_SECRET en STORAGE_ENCRYPTION_KEY toe aan dat bestand.",
- "batchRelativeTimeIn": "in {value}",
+ "batchRelativeTimeIn": "over {value}",
"batchRelativeTimeAgo": "{value} geleden",
"batchDetailsTitle": "Batchdetails",
"batchProgress": "Voortgang",
@@ -978,7 +978,7 @@
"batchTimelineCancelling": "Annuleren",
"batchTimelineCancelled": "Geannuleerd",
"batchTokenUsage": "Tokengebruik",
- "batchMetadata": "Metadata",
+ "batchMetadata": "Metagegevens",
"batchFileContents": "Bestandsinhoud",
"batchFileUsedByCount": "Gebruikt door {count, plural, one {# batch} other {# batches}}",
"batchFilePreview": "Voorbeeld",
@@ -988,10 +988,14 @@
"disabled": "Uitgeschakeld",
"featureFlagOmnirouteEmergencyFallbackDescription": "Routeer verzoeken met uitgeput budget naar de gratis nood-fallbackprovider/-model.",
"featureFlagArenaEloSyncEnabledDescription": "Schakel periodieke ELO-synchronisatie van het Arena AI-leaderboard in voor modelintelligentieranglijsten.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Genereer en voeg gesprekssamenvattingen toe wanneer bij combinatieroutering van model wordt gewisseld. Schakel dit uit om modelwisselingen onafhankelijk te behandelen en overdrachtsverzoeken op de achtergrond te voorkomen voor alle bestaande en toekomstige combinaties.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Adverteer claude/<provider>/<model> spiegel-id's op /v1/models zodat Claude Code gateway modelontdekking niet-Claude modellen vermeldt. Waarschuwing: dubbele catalogusvermeldingen voor alle klanten wanneer wereldwijd ingeschakeld.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Hoofdschakelaar voor de no-think/<provider>/<model>-gatewayaliassen. Aan (standaard): /v1/models vermeldt een variant zonder denkproces voor elk geschikt Claude-model met denkfunctionaliteit, en een no-think/-id dat met een verzoek wordt meegestuurd, wordt omgezet naar het echte model waarbij redeneren wordt onderdrukt. Uit: er worden geen varianten vermeld en een no-think/-id wordt behandeld als elke andere onbekende model-id. De opt-in/opt-out per model via ModelSpec.noThinkingAlias blijft van toepassing zolang dit is ingeschakeld.",
"featureFlagChatVirtualLanesEnabledDescription": "Schakel adaptieve virtuele toegangsbanen per tenant in voor provider-dispatch (#9654): een piek van de ene tenant geeft de andere niet langer een 503. De omgevingsvariabele OMNIROUTE_CHAT_VIRTUAL_LANES wint het van deze dashboard-instelling; wijzigingen gaan in bij een serverherstart.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Providerpagina's in het dashboard: toon de badge Gratis alleen bij signalen die de provider respecteert — de heuristiek voor weergavenamen, niet-booleaanse gratis-velden en :free-achtervoegsels bij geregistreerde providers zonder een gedocumenteerde gratis laag worden niet meer gebruikt. Uit behoudt de historische badgeregel.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxypools en de rotatie per account van opencode zorgen ervoor dat een proxy die zojuist is mislukt (geweigerde TCP-probe of een 429 die via de proxy is ontvangen) gedurende een periode per proces niet opnieuw wordt aangeboden. Deze periode verdubbelt bij elke herhaling, tot een maximum. Er wordt geen proxystatus opgeslagen; wanneer elke kandidaat terzijde is geschoven, blijft de keuze ongewijzigd. Standaard uitgeschakeld: de selectievolgorde is exact gelijk aan de gewone rotatie.",
+ "featureFlagProxyPoolEgressObservationDescription": "Toon onder een proxypool in het dashboard hoeveel waargenomen uitgaande IP-adressen de leden ervan in de afgelopen 24 uur hebben bediend, hoeveel verbindingen deze hebben gebruikt en hoeveel verbindingen maximaal achter één IP zijn waargenomen. Alleen-lezen, berekend op basis van het proxylogboek en nooit gebruikt voor routering. Standaard uitgeschakeld: de pooleditor blijft ongewijzigd en de observatieroute antwoordt met null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Laat bij de proxygezondheidscontrole een probe die door het doel is geweigerd (401/403/429: de proxy heeft doorgestuurd, maar de bestemming heeft dit uitgaande IP-adres geweigerd) de reeks opeenvolgende fouten van de proxy resetten, net als een geslaagde probe. Standaard uitgeschakeld: een weigering blijft neutraal en behoudt de reeks. Een 5xx blijft in beide gevallen onbeslist, en een weigering verwijdert, deactiveert of heractiveert een proxy nooit.",
"sidebar": {
"home": "Thuis",
"dashboard": "Dashboard",
@@ -1008,11 +1012,11 @@
"settings": "Instellingen",
"translator": "Vertaler",
"playground": "Speeltuin",
- "searchTools": "Search Tools",
+ "searchTools": "Zoektools",
"agents": "Agenten",
"cloudAgents": "Cloudagenten",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Geheugen",
+ "skills": "Vaardigheden",
"omniSkills": "OmniSkills",
"agentSkills": "Agentvaardigheden",
"chaosConfig": "Chaosmodus",
@@ -1051,59 +1055,59 @@
"serverDisconnectedMsg": "De proxyserver is gestopt of wordt opnieuw opgestart.",
"expandSidebar": "Vouw zijbalk uit",
"collapseSidebar": "Zijbalk samenvouwen",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
+ "themes": "Thema's",
+ "presetColors": "Populaire kleuren",
+ "createTheme": "Thema maken",
+ "chooseColor": "Kies één kleur",
+ "themeCoral": "Koraal",
+ "themeBlue": "Blauw",
+ "themeRed": "Rood",
+ "themeGreen": "Groen",
"themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "themeOrange": "Oranje",
+ "themeCyan": "Cyaan",
"cliToolsShort": "Gereedschap",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
+ "batch": "Batchtaken",
+ "themeSystem": "Themasysteem",
+ "whitelabelingDesc": "Beschrijving van whitelabeling",
+ "switchThemes": "Van thema wisselen",
+ "themeAccentDesc": "Beschrijving van thematische accentkleur",
+ "uploadFavicon": "Favicon uploaden",
+ "themeDark": "Donker thema",
+ "customLogoDesc": "Beschrijving van aangepast logo",
+ "sidebarVisibilityToggle": "Zichtbaarheid van zijbalk in-/uitschakelen",
+ "themeAccent": "Thematische accentkleur",
+ "resetFavicon": "Favicon herstellen",
"whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "darkMode": "Donkere modus",
+ "uploadLogo": "Logo uploaden",
+ "themeLight": "Licht thema",
+ "appName": "Appnaam",
+ "appNameDesc": "Beschrijving van appnaam",
+ "resetLogo": "Logo herstellen",
+ "customFavicon": "Aangepast favicon",
+ "hideHealthLogs": "Statuslogs verbergen",
+ "customLogo": "Aangepast logo",
+ "appearance": "Weergave",
+ "themeSelectionAria": "ARIA-label voor themaselectie",
+ "themeCreate": "Thema maken",
+ "customFaviconDesc": "Beschrijving van aangepast favicon",
+ "logoPreview": "Logovoorbeeld",
+ "themeCustom": "Aangepast thema",
+ "hideHealthLogsDesc": "Beschrijving voor het verbergen van statuslogs",
+ "faviconPreview": "Faviconvoorbeeld",
+ "changelog": "Wijzigingslogboek",
+ "contextSection": "Context en cache",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Engine-combinaties",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Compressie-instellingen",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
@@ -1124,27 +1128,27 @@
"compressionStudioSubtitle": "Live engine-cascade",
"compressionExclusionsSubtitle": "Per-model/eindpunt omzeiling",
"chaosConfigSubtitle": "Multi-model parallelle uitvoering",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
+ "routingSection": "Routering",
+ "protocolsSection": "Protocollen",
+ "agentsAiSection": "Agents en AI",
+ "cacheContextSection": "Cache en context",
+ "analyticsSection": "Analyses",
+ "costsSection": "Kosten",
"monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "auditSecuritySection": "Audit en beveiliging",
+ "devtoolsSection": "Ontwikkelaarstools",
+ "configurationSection": "Configuratie",
+ "aiFeaturesSection": "AI-functies",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Plug-ins",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
+ "apiEndpoints": "API-eindpunten",
+ "batchFiles": "Bestanden",
+ "analyticsEvals": "Evaluaties",
+ "analyticsSearch": "Zoeken",
+ "analyticsUtilization": "Gebruik",
+ "analyticsComboHealth": "Combostatus",
+ "analyticsCompression": "Compressie",
"costsBudget": "Budget",
"costsFreeTiers": "Free-tier-budget",
"costsFreeTiersSubtitle": "Maandelijkse toewijzingen van gratis tokens",
@@ -1152,135 +1156,135 @@
"freeProviderRankingsSubtitle": "Beste gratis providers gerangschikt op model-ELO-scores",
"radar": "Radar Catalogus",
"radarSubtitle": "Community-verrijkte gratis modelcatalogus",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
+ "costsQuotaShare": "Quotumdeling",
+ "costsPricing": "Prijzen",
+ "logsProxy": "Proxylogboeken",
"logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "logsActivity": "Activiteit",
+ "auditMcp": "MCP-audit",
"auditA2a": "A2A-audit",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Weergave",
+ "settingsAi": "AI-instellingen",
+ "settingsSecurity": "Beveiliging",
"settingsAccessTokens": "Toegangstokens",
"settingsFeatureFlags": "Functievlaggen",
"settingsCache": "Cache",
"settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsRouting": "Routering",
+ "settingsResilience": "Veerkracht",
"modelLockout": "Modelvergrendeling",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Geavanceerd",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
+ "quotaTracker": "Providerquotum",
+ "providerQuota": "Providerquotum",
"runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "consoleLogs": "Consolelogboeken",
+ "logsTimeline": "Tijdlijn",
"logsTimelineSubtitle": "Visueel verzoek tijdlijn",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Gesprekken",
+ "conversationsSubtitle": "Agentgestuurde gesprekken met meerdere beurten",
+ "globalRouting": "Globale routering",
+ "mitmProxy": "MITM-proxy",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Agentfuncties",
+ "otherFeaturesSection": "Overige functies",
+ "compressionContextGroup": "Contextcompressie",
+ "gamificationGroup": "Gamificatie",
+ "toolsGroup": "Hulpmiddelen",
+ "integrationsGroup": "Integraties",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
+ "costsParametersGroup": "Kostenparameters",
"auditGroup": "Audit",
"batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
+ "homeSubtitle": "Dashboardoverzicht",
+ "providersSubtitle": "AI-providers beheren",
+ "quotaTrackerSubtitle": "Gebruikslimieten bijhouden",
+ "providerQuotaSubtitle": "Gebruikslimieten van providers bijhouden",
+ "runtimeSubtitle": "Realtime veerkracht en sessies",
+ "contextCombosSubtitle": "Compressie-engines combineren",
+ "cliToolsSubtitle": "CLI-runtimes configureren",
+ "agentsSubtitle": "Lokale agents beheren",
+ "cloudAgentsSubtitle": "Cloudgebaseerde agents beheren",
+ "apiEndpointsSubtitle": "Aangepaste eindpunten beschikbaar stellen",
+ "proxySubtitle": "HTTP-proxy-instellingen",
+ "mitmProxySubtitle": "MITM-interceptie",
+ "oneProxySubtitle": "Openbare proxygateway",
+ "leaderboard": "Ranglijst",
+ "profile": "Profiel",
"tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "gamificationAdmin": "Gamificatiebeheer",
+ "leaderboardSubtitle": "Ranglijsten en prestaties",
+ "profileSubtitle": "Account en voorkeuren",
+ "tokensSubtitle": "Tokengebruik en budgetten",
+ "gamificationAdminSubtitle": "Anomaliebewaking en fraudepreventie",
+ "usageSubtitle": "Verkeers- en gebruiksstatistieken",
+ "analyticsComboHealthSubtitle": "Betrouwbaarheid van combinatiedoelen",
+ "analyticsUtilizationSubtitle": "Providergebruik",
+ "costsSubtitle": "Kostenverdeling",
+ "cacheSubtitle": "Cachetrefferpercentages",
+ "analyticsCompressionSubtitle": "Statistieken over tokenbesparingen",
+ "analyticsSearchSubtitle": "Analyse van zoektools",
+ "analyticsEvalsSubtitle": "Resultaten van evaluatiesuites",
"providerStats": "Providerstatistieken",
"providerStatsSubtitle": "Latentie- en prestatiemetrieken",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Applicatielogs",
+ "logsProxySubtitle": "Proxyverkeerslogs",
+ "consoleLogsSubtitle": "Console-uitvoer",
+ "logsActivitySubtitle": "Gebruikersactiviteitenlog",
+ "healthSubtitle": "Systeemstatuscontrole",
+ "costsPricingSubtitle": "Prijsregels per model",
+ "costsBudgetSubtitle": "Budgetlimieten",
+ "costsQuotaShareSubtitle": "Providerquota delen tussen sleutels",
+ "auditLogSubtitle": "Autorisatie-audit",
+ "auditMcpSubtitle": "MCP-serveraudit",
+ "auditA2aSubtitle": "A2A-protocolaudit",
+ "translatorSubtitle": "Formaatconversie",
+ "playgroundSubtitle": "Prompts live testen",
+ "searchToolsSubtitle": "Register voor zoektools",
+ "memorySubtitle": "Permanent agentgeheugen",
+ "omniSkillsSubtitle": "Register voor sandboxvaardigheden",
+ "agentSkillsSubtitle": "Register voor A2A-vaardigheden",
+ "mcpSubtitle": "MCP-serverbeheer",
+ "a2aSubtitle": "A2A-protocolserver",
"pluginsSubtitle": "Plug-inmarktplaats & -installaties",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Gecachte mediabestanden",
+ "batchFilesSubtitle": "Bestanden voor batchinvoer en -uitvoer",
+ "settingsSubtitle": "Alle instellingen",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Thema en lay-out",
+ "settingsAiSubtitle": "Standaardinstellingen voor AI-gedrag",
+ "globalRoutingSubtitle": "Algemene routeringsregels",
+ "settingsResilienceSubtitle": "Nieuwe pogingen en circuitbreakers",
+ "settingsAdvancedSubtitle": "Opties voor ervaren gebruikers",
+ "settingsSecuritySubtitle": "Authenticatie en versleuteling",
"settingsAccessTokensSubtitle": "Scoped CLI-tokens voor externe modus",
"settingsFeatureFlagsSubtitle": "Schakel systeemmogelijkheden in",
"settingsCacheSubtitle": "Modelcatalogus en responscaching",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Zijbalk",
+ "settingsSidebarSubtitle": "Zijbalkindeling aanpassen",
"settingsAuthzSubtitle": "Route-inventaris en bypassbeleid",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Documentatie",
+ "issuesSubtitle": "Een bug melden",
+ "changelogSubtitle": "Releaseopmerkingen",
"costsQuotaPlans": "Abonnementen & quota",
"costsQuotaPlansSubtitle": "Configureer abonnementen per provider",
"activity": "Activiteit",
"activitySubtitle": "Overzichtelijke feed van recente gebeurtenissen",
- "logsGroup": "Logs",
+ "logsGroup": "Logboeken",
"systemGroup": "Systeem",
"costsOverview": "Overzicht",
"costsOverviewSubtitle": "Geconsolideerde kostenanalyse",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Agentbrug",
"agentBridgeSubtitle": "IDE-agentverkeer onderscheppen",
"trafficInspector": "Traffic Inspector",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Inspecteer aanvraag- en antwoordverkeer van je apps",
+ "trafficInspectorPurpose": "Bekijk precies wat je applicatie naar AI-providers verzendt en van hen ontvangt. Werkt met elke OpenAI-compatibele client.",
"cliCode": "CLI Code",
"cliCodeSubtitle": "Codetools die naar OmniRoute verwijzen",
- "cliAgents": "CLI Agents",
+ "cliAgents": "CLI-agents",
"cliAgentsSubtitle": "Autonome CLI-agents",
- "acpAgents": "ACP Agents",
+ "acpAgents": "ACP-agents",
"acpAgentsSubtitle": "CLI's gestart door OmniRoute",
"skipToContent": "Naar inhoud springen",
"mainNavigation": "Hoofdnavigatie",
@@ -1341,7 +1345,7 @@
"refresh": "Vernieuwen",
"loading": "Webhooks laden...",
"never": "Nooit",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {geen fouten} one {# fout} other {# fouten}}",
"testWebhook": "Test verzenden",
"testSuccess": "Testwebhook succesvol verzonden.",
"testFailed": "Testwebhook mislukt.",
@@ -1457,7 +1461,7 @@
"eventTypePlaceholder": "Filter op actie of gebeurtenistype",
"severity": "Ernst",
"allSeverities": "Alle ernst",
- "info": "Info",
+ "info": "Informatie",
"warning": "Waarschuwing",
"critical": "Kritisch",
"sourceIp": "Bron-IP",
@@ -1513,7 +1517,7 @@
"a2aArtifacts": "Artefacten",
"a2aNoTasks": "Geen A2A-taken geregistreerd.",
"a2aLoadingTasks": "A2A-taken laden...",
- "actor": "Actor",
+ "actor": "Uitvoerder",
"actorPlaceholder": "Filteren op actor",
"eventTypes": {
"apiKey.activate": "API-sleutel Geactiveerd",
@@ -1556,15 +1560,15 @@
"mcpMetricCalls24h": "Oproepen (24u)",
"mcpMetricSuccessRate": "Succespercentage",
"mcpMetricAvgDuration": "Gem. duur",
- "mcpMetricTopTool": "Top tool"
+ "mcpMetricTopTool": "Meestgebruikte tool"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
+ "title": "Thema's",
+ "description": "Kies een vooraf ingesteld thema of maak je eigen thema met één kleur",
+ "presetColors": "Populaire kleuren",
+ "customTheme": "Aangepast thema",
+ "customThemeDesc": "Klik op Thema maken en kies één kleur",
+ "createTheme": "Thema maken",
"activePreset": "Actief thema"
},
"header": {
@@ -1587,63 +1591,63 @@
"cliToolsDescription": "Configureer CLI-tools",
"home": "Thuis",
"homeDescription": "Welkom bij OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Eindpunten",
+ "endpointDescription": "Beheer proxy-endpoints, MCP-, A2A- en API-endpoints",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Beheer en tools voor Model Context Protocol-servers",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Agent-to-Agent-protocoltaken en observeerbaarheid",
"settings": "Instellingen",
"settingsDescription": "Beheer uw voorkeuren",
"openaiCompatible": "OpenAI-compatibel",
"anthropicCompatible": "Antropisch compatibel",
"media": "Media",
"mediaDescription": "Genereer afbeeldingen, video's en muziek",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "themes": "Thema's",
+ "themesDescription": "Kies een kleurthema voor het volledige dashboardpaneel",
+ "costsDescription": "Houd uitgaven bij, analyseer trends en beheer je AI-budget voor alle providers",
+ "cacheDescription": "Bewaak de efficiëntie van de promptcache van providers en lokaal semantisch hergebruik van antwoorden.",
+ "limitsDescription": "Configureer snelheidslimieten en quota per API-sleutel en provider",
+ "runtimeDescription": "Live observatie van de runtime — stroomonderbrekers, afkoelperioden, modelblokkeringen, sessies en quotawaarschuwingen",
+ "apiManagerDescription": "Beheer API-sleutels en toegangsbeheer voor je OmniRoute-instance",
+ "batchDescription": "Verwerk grote hoeveelheden verzoeken asynchroon met gebundelde API-aanroepen",
+ "contextCavemanDescription": "Regelgebaseerde berichtcompressie, taalpakketten, analyses en instellingen voor de uitvoermodus.",
+ "contextRtkDescription": "Opdrachtherkennende compressie voor tooluitvoer, terminallogboeken en buildresultaten.",
+ "contextCombosDescription": "Definieer hoe engines worden gecombineerd voor verschillende routeringsscenario's.",
+ "changelogDescription": "Blijf op de hoogte van de nieuwste platformfuncties en aankondigingen.",
+ "agentsDescription": "Beheer en configureer tools voor AI-agenten: Codex, Devin, Jules en aangepaste agenten",
+ "cloudAgentsDescription": "Orkestreer cloudgebaseerde AI-agenten met live taaktracking en goedkeuring van plannen",
+ "memoryDescription": "Permanent gespreksgeheugen met semantisch zoeken en FTS5-indexering van volledige tekst",
+ "skillsDescription": "Installeer en beheer sandboxvaardigheden voor geautomatiseerde uitvoering van prompts en tools",
+ "agentSkillsDescription": "Catalogus met vaardigheden voor agenten, met één klik de URL kopiëren voor integratie met AI-clients",
+ "translatorDescription": "Vertaal en test prompts tussen API-indelingen: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Test prompts interactief met live antwoorden van providers en inspectie van de indeling",
+ "searchToolsDescription": "Zoekanalyses, uitsplitsing per provider, cachetrefferpercentages en kostentracking",
+ "logsDescription": "Realtime verzoeklogboeken, fouttraceringen en inspectie van streaminggebeurtenissen",
+ "auditDescription": "Compliance-audittrail van API-sleutelgebruik, MCP-toolaanroepen en beleidsgebeurtenissen",
+ "webhooksDescription": "Configureer webhook-eindpunten om realtime gebeurtenismeldingen te ontvangen",
+ "healthDescription": "Overzicht van de systeemstatus: providers, stroomonderbrekers, snelheidslimieten en database",
+ "proxyDescription": "Configureer upstream-proxyinstellingen voor uitgaande providerverbindingen",
+ "apiEndpointsDescription": "Beheer aangepaste configuraties van API-eindpunten en routeringsoverschrijvingen",
+ "batchFilesDescription": "Bekijk en beheer uitvoerbestanden en resultaten van batchtaken",
+ "analyticsEvalsDescription": "Resultaten van modelevaluaties en prestatiebenchmarks",
+ "analyticsSearchDescription": "Analyses van zoekopdrachten, cachetrefferpercentages en kostentracking",
+ "analyticsUtilizationDescription": "Gebruiksstatistieken van providers en capaciteitsplanning",
+ "analyticsComboHealthDescription": "Realtime status en prestaties van configuraties voor combinatieroutering",
+ "analyticsCompressionDescription": "Analyses van contextcompressie en tokenbesparingen",
+ "costsBudgetDescription": "Budgetlimieten en uitgavenwaarschuwingen per API-sleutel en provider",
+ "costsPricingDescription": "Aangepaste prijsconfiguratie voor berekeningen van tokenkosten",
+ "logsProxyDescription": "Logboeken van upstream-proxyverzoeken en verkeersinspectie",
+ "logsConsoleDescription": "Console-uitvoer van de applicatie en foutopsporingslogboeken",
+ "logsActivityDescription": "Audittrail van gebruikersacties en systeemgebeurtenissen",
+ "auditMcpDescription": "Audittrail van MCP-toolaanroepen en complianceregistraties",
"auditA2a": "A2A-audit",
"auditA2aDescription": "A2A-audittraject voor taakuitvoering, statusovergangen en records voor het aanroepen van vaardigheden",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Thema, huisstijl en visuele aanpassingen",
+ "settingsAiDescription": "AI-gedrag, denkbudgetten, beeldverwerking en geheugeninstellingen",
"settingsCacheDescription": "TTL voor modelcatalogus cache-items",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Instellingen voor authenticatie, autorisatie en toegangsbeheer",
"featureFlags": "Functievlaggen",
"featureFlagsDescription": "Besturingssysteemmogelijkheden en experimentele functies",
"featureFlagsActive": "{count} actief",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Er zijn geen vlaggen die overeenkomen met uw zoekopdracht",
"featureFlagsSaved": "Vlag bijgewerkt",
"featureFlagsError": "Kan de vlag niet updaten",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Routeringsregels, modelaliassen, standaardinstellingen voor combinaties en degradatie-instellingen",
+ "settingsResilienceDescription": "Configuratie voor circuitonderbreking, nieuwe pogingen en terugvalopties",
+ "settingsAdvancedDescription": "Geavanceerde payloadregels, aanvraaglimieten en proxy-API-instellingen",
+ "mitmProxyDescription": "Configureer MITM-proxy-instellingen voor verkeersinspectie en foutopsporing",
+ "oneProxyDescription": "Configureer 1Proxy-instellingen voor geavanceerde proxyketens",
"omniSkillsDescription": "Installeer en beheer sandbox-skills voor geautomatiseerde prompt- en tooluitvoering"
},
"cloudSyncStatus": {
@@ -1688,7 +1692,7 @@
"breadcrumbs": {
"ariaLabel": "Kruimelpad",
"dashboard": "Dashboard",
- "providers": "Providers",
+ "providers": "Aanbieders",
"combos": "Combinaties",
"settings": "Instellingen",
"general": "Algemeen",
@@ -1699,12 +1703,12 @@
"advanced": "Geavanceerd",
"accessTokens": "Toegangstokens",
"featureFlags": "Feature flags",
- "logs": "Logs",
+ "logs": "Logboeken",
"auditLog": "Auditlog",
"console": "Console",
"logger": "Logger",
"translator": "Vertaler",
- "playground": "Playground",
+ "playground": "Testomgeving",
"add": "Toevoegen",
"edit": "Bewerken",
"apiKeys": "API-sleutels",
@@ -1712,17 +1716,17 @@
"cliCode": "CLI-code",
"cliAgents": "CLI-agents",
"acpAgents": "ACP-agents",
- "endpoint": "Endpoint",
+ "endpoint": "Eindpunt",
"apiManager": "API-manager",
"context": "Context",
"compression": "Compressie",
- "services": "Services",
- "analytics": "Analytics",
+ "services": "Diensten",
+ "analytics": "Analyses",
"costs": "Kosten",
"health": "Gezondheid",
"runtime": "Runtime",
"webhooks": "Webhooks",
- "home": "Home",
+ "home": "Start",
"activity": "Activiteit",
"agentSkills": "AgentSkills",
"comboHealth": "Combo-gezondheid",
@@ -1737,7 +1741,7 @@
"files": "Bestanden",
"media": "Media",
"cache": "Cache",
- "changelog": "Changelog",
+ "changelog": "Wijzigingslogboek",
"chaos": "Chaos",
"cloudAgents": "Cloud-agents",
"live": "Live",
@@ -1758,23 +1762,23 @@
"discovery": "Ontdekking",
"freeProviderRankings": "Ranglijst gratis providers",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Configuratie",
"freeTiers": "Gratis niveaus",
- "gamification": "Gamification",
- "leaderboard": "Leaderboard",
+ "gamification": "Gamificatie",
+ "leaderboard": "Ranglijst",
"limits": "Limieten",
"profile": "Profiel",
- "plugins": "Plugins",
+ "plugins": "Plug-ins",
"providerStats": "Providerstatistieken",
"new": "Nieuw",
- "quota": "Quota",
+ "quota": "Quotum",
"relay": "Relay",
"searchTools": "Zoektools",
"security": "Beveiliging",
"sidebar": "Zijbalk",
"tokens": "Tokens",
- "tools": "Tools",
- "agentBridge": "Agent Bridge",
+ "tools": "Hulpmiddelen",
+ "agentBridge": "Agentbrug",
"trafficInspector": "Verkeersinspectie",
"usage": "Gebruik",
"orchestration": "Orkestratie"
@@ -1808,7 +1812,7 @@
"reportIssue": "Probleem melden",
"activeError": "{active} actief · {errors} fout",
"topologyLegendActive": "Actief",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Recent",
"topologyLegendError": "Fout",
"oauthLabel": "OAuth",
"apiKeyLabel": "API-sleutel",
@@ -1822,18 +1826,18 @@
"updateStarted": "Update gestart...",
"reloadingPageAutomatically": "Pagina automatisch herladen...",
"providerTopology": "Provider-topologie",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
- "downloadDmg": "Download DMG (macOS)",
+ "recentRequests": "Recente verzoeken",
+ "recentRequestsEmpty": "Nog geen verzoeken.",
+ "recentRequestsModel": "Model",
+ "recentRequestsTokens": "In/uit",
+ "recentRequestsWhen": "Wanneer",
+ "downloadDmg": "DMG downloaden (macOS)",
"downloadDmgDescription": "Er is een nieuwe versie van de OmniRoute desktopapp beschikbaar. Download en installeer alstublieft de macOS DMG-installatieprogramma om bij te werken (huidig: v{version}).",
- "downloadExe": "Download EXE (Windows)",
+ "downloadExe": "EXE downloaden (Windows)",
"downloadExeDescription": "Er is een nieuwe versie van de OmniRoute desktopapp beschikbaar. Download en installeer alstublieft de Windows EXE-installatieprogramma om bij te werken (huidig: v{version}).",
- "downloadAppImage": "Download AppImage (Linux)",
+ "downloadAppImage": "AppImage downloaden (Linux)",
"downloadAppImageDescription": "Er is een nieuwe versie van de OmniRoute desktop-app beschikbaar. Download alstublieft het Linux AppImage-pakket om bij te werken (huidig: v{version}).",
- "downloadUpdate": "Download Update",
+ "downloadUpdate": "Update downloaden",
"downloadUpdateDescription": "Er is een nieuwe versie van de OmniRoute desktop-app beschikbaar. Download alstublieft het respectieve app-formaat voor uw systeem om bij te werken (huidig: v{version}).",
"updateQueued": "Geplande update naar v{version}.",
"updateDockerRebuilding": "Docker-image wordt op de achtergrond opnieuw opgebouwd.",
@@ -1884,15 +1888,15 @@
"releaseNotes": "Release-opmerkingen",
"readMore": "Lees Meer",
"noAuthLabel": "Geen Auth",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Maak je klaar om te routeren",
+ "readinessTitle": "Verstuur je eerste verzoek",
+ "readinessSubtitle": "Vier kleine stappen. OmniRoute controleert gaandeweg of alles gereed is.",
+ "readinessStep1": "Verbind een provider",
+ "readinessStep2": "Configureer eindpuntauthenticatie",
+ "readinessStep3": "Kopieer je eindpunt",
+ "readinessStep4": "Verstuur een testverzoek",
+ "readinessContinue": "Doorgaan met configureren",
+ "readinessDismiss": "Voorlopig sluiten"
},
"analytics": {
"title": "Analyses",
@@ -1908,8 +1912,8 @@
"diversityHigherExplanation": "Hogere waarden betekenen dat het verkeer over meerdere providers is verspreid.",
"diversityNoData": "Geen recente gebruiksgegevens beschikbaar.",
"chartRequests": "Verzoeken",
- "chartInput": "Input",
- "chartOutput": "Output",
+ "chartInput": "Invoer",
+ "chartOutput": "Uitvoer",
"chartTotal": "Totaal",
"chartCost": "Kosten",
"chartShare": "Aandeel",
@@ -1938,7 +1942,7 @@
"unknownApiKey": "Onbekende API-key",
"chartModelBreakdown": "Specificatie per model",
"chartModel": "Model",
- "chartProvider": "Provider",
+ "chartProvider": "Aanbieder",
"chartProviderBreakdown": "Verdeling per provider",
"chartDate": "Datum",
"chartRequestsByProviderDate": "Verzoeken per provider en datum",
@@ -1954,16 +1958,16 @@
"rangeLast14Days": "Afgelopen 14 dagen",
"rangeThisMonth": "Deze maand",
"rangeQuickSelect": "Snelle selectie",
- "rangeStart": "Start",
+ "rangeStart": "Begin",
"rangeEnd": "Einde",
"rangeCancel": "Annuleren",
"rangeApply": "Toepassen",
"rangeErrorInvalid": "Start moet voor einde liggen",
- "period1D": "1D",
- "period7D": "7D",
- "period30D": "30D",
- "period90D": "90D",
- "periodYTD": "YTD",
+ "period1D": "1 d",
+ "period7D": "7 d",
+ "period30D": "30 d",
+ "period90D": "90 d",
+ "periodYTD": "JTD",
"periodAll": "Alles",
"totalTokens": "Totaal aantal tokens",
"inputTokens": "Input-tokens",
@@ -1971,7 +1975,7 @@
"estCost": "Gesch. kosten",
"infraTitle": "Infrastructuur",
"infraAccounts": "Accounts",
- "infraProviders": "Providers",
+ "infraProviders": "Aanbieders",
"infraApiKeys": "API-sleutels",
"infraModels": "Modellen",
"perfTitle": "Prestaties",
@@ -1989,7 +1993,7 @@
"overviewDescription": "Houd toezicht op uw API-gebruikspatronen, tokenverbruik, kosten en activiteitstrends voor alle providers en modellen.",
"evalsDescription": "Voer evaluatiesuites uit om uw LLM-eindpunten te testen en te valideren. Vergelijk de modelkwaliteit, detecteer regressies en benchmark de latentie.",
"overview": "Overzicht",
- "evals": "Evals",
+ "evals": "Evaluaties",
"search": "Zoeken",
"utilization": "Benutting",
"routeTrace": "Route-tracering",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Fout",
"comboHealth": "Combo-gezondheid",
"comboHealthDescription": "Quota op combo-niveau, gebruiksdistributie en prestatiegegevens",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Compressieanalyse",
+ "compressionAnalyticsDescription": "Compressieanalyse — tokenbesparingen, uitsplitsing per modus en providerstatistieken.",
"autoRoutingTotalAutoRequests": "Totaal aantal automatische verzoeken",
"autoRoutingAvgSelectionScore": "Gemiddelde selectiescore",
"autoRoutingExplorationRate": "Verkenningssnelheid",
@@ -2038,11 +2042,11 @@
"comboHealthTraffic": "verkeer",
"comboHealthProjectedQuota": "Geprojecteerd quotum",
"comboHealthPricingCoverage": "Prijsdekking",
- "comboHealthAutopilotTitle": "Combo Health Autopilot",
+ "comboHealthAutopilotTitle": "Autopilot voor combinatiegezondheid",
"comboHealthAutopilotDescription": "Geprioriteerde aanbevelingen op basis van combo-gezondheid, prognoses, quota en providergezondheid.",
"comboHealthIssues": "Problemen",
"comboHealthActionable": "{count} actiegericht",
- "comboHealthDown": "Down",
+ "comboHealthDown": "Uitgevallen",
"comboHealthDegraded": "Verslechterd",
"comboHealthHealthy": "Gezond",
"comboHealthNoActiveIssues": "Geen actieve combo-gezondheidsproblemen gedetecteerd voor het geselecteerde bereik.",
@@ -2058,24 +2062,24 @@
"latencyInv": "Latentie",
"taskFit": "Task-fit",
"stability": "Stabiliteit",
- "tierPriority": "Tier",
+ "tierPriority": "Niveau",
"tierAffinity": "Tier-fit",
"specificityMatch": "Specificiteit",
"contextAffinity": "Context",
"resetWindowAffinity": "Reset-venster"
},
- "comboHealthQuotaValue": "Quota {value}",
+ "comboHealthQuotaValue": "Quotum {value}",
"comboHealthLatencyValue": "Latentie {value}ms",
"comboHealthIssueCount": "Problemen {count}",
"comboHealthNoInspectableTargets": "Geen inspecteerbare doelen voor deze combo.",
"comboHealthAutopilotState": {
- "down": "Down",
+ "down": "Uitgevallen",
"degraded": "Aandacht vereist",
"healthy": "Gezond"
},
"comboHealthModelProviderCount": "{models} modellen over {providers} providers",
"comboHealthGiniCoefficient": "Gini-coëfficiënt",
- "comboHealthRequestCount": "{count} requests",
+ "comboHealthRequestCount": "{count} verzoeken",
"comboHealthQuotaHealthDescription": "Laagste resterende quota over providers met korte trendsignalen.",
"comboHealthRemainingQuota": "Resterend quota {value}",
"comboHealthTrend": {
@@ -2088,7 +2092,7 @@
"comboHealthPerformance": "Prestaties",
"comboHealthPerformanceDescription": "Betrouwbaarheid en doorvoer voor gerouteerd comboverkeer.",
"comboHealthExecutionTargetsDescription": "Runtime-statistieken op stapniveau en quota-zichtbaarheid voor gestructureerde combodoelen.",
- "comboHealthRequestShort": "{count} req",
+ "comboHealthRequestShort": "{count} verz.",
"comboHealthQuotaScope": "Quota-scope: {scope}",
"comboHealthTrendValue": "Trend: {trend}",
"comboHealthFetchFailed": "Ophalen van combo-gezondheidsgegevens mislukt",
@@ -2107,7 +2111,7 @@
"compressionAnalyticsAvgDuration": "Gem. duur",
"compressionAnalyticsReceipts": "Ontvangsten",
"compressionAnalyticsFallbacks": "Terugval",
- "compressionAnalyticsPromptTokens": "Prompt tokens",
+ "compressionAnalyticsPromptTokens": "Prompttokens",
"compressionAnalyticsCompletionTokens": "Voltooiingstokens",
"compressionAnalyticsTotalTokens": "Totaal tokens",
"compressionAnalyticsCacheTokens": "Cachetokens",
@@ -2184,11 +2188,11 @@
"routeRuntimeScoreNow": "Runtime-score nu",
"routeWouldSelectNow": "Zou nu selecteren",
"routeNoRecomputeCandidates": "Er kan geen rangschikking van combo-kandidaten worden herberekend voor deze aanvraag.",
- "runtime": "Runtime",
+ "runtime": "Uitvoeringstijd",
"routeTopNow": "Top nu",
"routeFetchLogsFailed": "Ophalen van aanvraaglogs mislukt",
"routeExplainFailed": "Toelichten van route mislukt",
- "direct": "direct",
+ "direct": "rechtstreeks",
"routeUnableToLoad": "Kan routetoelichting niet laden",
"routeNoRequestLogs": "Geen aanvraaglogs beschikbaar",
"routeNoRequestLogsDescription": "Stuur eerst verkeer via OmniRoute. Routetoelichtingen worden gegenereerd op basis van opgeslagen gestructureerde call-logs.",
@@ -2199,11 +2203,11 @@
"routeRecentSuccess": "Recent succes",
"routeAvgTargetLatency": "Gemiddelde doellatentie",
"routeSelectedTarget": "Geselecteerd doel",
- "provider": "Provider",
+ "provider": "Aanbieder",
"model": "Model",
"account": "Account",
"connection": "Verbinding",
- "combo": "Combo",
+ "combo": "Combinatie",
"routeStep": "Stap",
"tokens": "Tokens",
"notAvailable": "n.v.t.",
@@ -2254,9 +2258,9 @@
"fullAccess": "Volledige toegang",
"keyManagement": "API-sleutelbeheer",
"keyManagementDesc": "Maak en beheer API-sleutels voor het verifiëren van verzoeken aan uw eindpunt",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Je app verstuurt verzoeken via een API-sleutel naar OmniRoute",
+ "requestFlowYourApp": "Je app",
+ "requestFlowApiKey": "API-sleutel",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Totaal aantal sleutels",
"restricted": "Beperkt",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Kopieer en bewaar deze sleutel nu. Deze wordt niet meer weergegeven.",
"done": "Klaar",
"savePermissions": "Bewaar machtigingen",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Toegestane eindpunten",
+ "allEndpointsAllowed": "Deze sleutel heeft toegang tot alle API-eindpunten.",
+ "endpointsRestricted": "Beperkt tot {count} API-endpoint{count, plural, one {} other {s}}.",
+ "autoResolve": "Automatisch oplossen",
+ "autoResolveDesc": "Los dubbelzinnige modelnamen voor deze API-sleutel automatisch op naar de oorspronkelijke provider.",
"streamDefaultMode": "Standaardcompatibiliteit voor streaming",
"streamDefaultModeDesc": "Bepaalt weggelaten `stream`-vlaggen voor deze sleutel. JSON-modus retourneert niet-streamende antwoorden, tenzij de client expliciet om SSE verzoekt.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Verouderd",
"streamDefaultJson": "JSON-compatibel",
"streamDefaultBadge": "JSON-streamstandaard",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Sleutel actief",
+ "keyActiveDesc": "Schakel deze API-sleutel in of uit. Uitgeschakelde sleutels worden onmiddellijk geweigerd met 403.",
+ "accessSchedule": "Toegangsschema",
+ "accessScheduleDesc": "Beperk de toegang tot specifieke uren en dagen van de week.",
+ "scheduleFrom": "Van",
+ "scheduleUntil": "Tot",
+ "scheduleDays": "Dagen",
+ "scheduleTimezone": "Tijdzone",
+ "scheduleTimezoneHint": "Gebruik IANA-tijdzonenamen, bijvoorbeeld America/New_York, Europe/Berlin",
+ "scheduleActive": "Schema",
+ "disabled": "Uitgeschakeld",
+ "daySun": "Zo",
+ "dayMon": "Ma",
+ "dayTue": "Di",
+ "dayWed": "Wo",
+ "dayThu": "Do",
+ "dayFri": "Vr",
+ "daySat": "Za",
"allowAll": "Alles toestaan",
"restrict": "Beperken",
"allowAllInfo": "Met deze sleutel heeft u toegang tot alle beschikbare modellen.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Kan rechten niet updaten. Probeer het opnieuw.",
"unknownProvider": "onbekend",
"copyMaskedKey": "Kopieer gemaskeerde sleutel",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "De volledige sleutel is alleen beschikbaar bij het aanmaken — kopieer deze wanneer je de sleutel voor het eerst aanmaakt",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# apparaat} other {# apparaten}}",
"devicesTooltip": "{count, plural, one {# uniek IP/User-Agent-apparaat gezien met deze sleutel (laatste 30 min)} other {# unieke IP/User-Agent-apparaten gezien met deze sleutel (laatste 30 min)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Toegestane combo's",
"allCombosAllowed": "Deze sleutel kan elke combo gebruiken.",
"restrictedComboCount": "Beperkt tot {count, plural, one {# combo} other {# combo's}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# opgeslagen vermelding staat} other {# opgeslagen vermeldingen staan}} niet in deze keuzelijst (bijvoorbeeld routeringsregels) en blijft ongewijzigd opgeslagen.",
+ "preservedComboRuleHint": "Blijft ongewijzigd opgeslagen. Deze vermelding is geen optie in de bovenstaande keuzelijst en kan daarom alleen via de API worden gewijzigd.",
"apiManagerCustomRateLimits": "Aangepaste tarieflimieten",
"apiManagerCustomRateLimitsDesc": "Overschrijf de algemene standaardlimieten. Laat leeg om standaardinstellingen te gebruiken.",
"apiManagerRateLimitRequestsPlaceholder": "Verzoeken",
@@ -2414,16 +2418,16 @@
"quotaKeysSection": "Quotasleutels",
"bypassProviderQuota": "Quotalimieten van provider omzeilen",
"bypassProviderQuotaDescription": "Hiermee kan deze sleutel het afsluitbeleid van de upstream-provider/het upstream-account negeren tijdens routering. USD-quota voor API-sleutels blijven van toepassing.",
- "quotaPill": "QUOTA",
+ "quotaPill": "QUOTUM",
"quotaModeOnly": "qtSd-only",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Exclusieve lease",
+ "exclusiveLeaseNoticeTitle": "Exclusieve lease",
+ "exclusiveLeaseNoticeDesc": "Deze API-sleutel heeft exclusieve leaserechten voor routering via een gereserveerde verbinding.",
+ "allConnections": "Alle verbindingen",
+ "onlySelectedConnections": "Alleen geselecteerde verbindingen",
+ "selectAtLeastOneConnection": "Selecteer ten minste één verbinding of kies Alle verbindingen.",
+ "allConnectionsDesc": "Deze sleutel kan elke actieve verbinding gebruiken.",
+ "restrictedToConnections": "Beperkt tot {count, plural, one {# verbinding} other {# verbindingen}}."
},
"auditLog": {
"title": "Auditlogboek",
@@ -2453,16 +2457,16 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Genereren",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Genereren...",
+ "loadingModels": "Beschikbare modellen laden...",
+ "noModels": "Geen modellen beschikbaar. Configureer eerst providers met mediamogelijkheden.",
+ "error": "Genereren mislukt",
+ "result": "Resultaat",
+ "imageDescription": "Genereer afbeeldingen op basis van tekstprompts met OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI en meer.",
+ "videoDescription": "Maak video's met AnimateDiff, Stable Video Diffusion via ComfyUI of SD WebUI.",
+ "musicDescription": "Componeer muziek met Stable Audio Open of MusicGen via ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Inbedding",
"image": "Afbeelding",
"imageToText": "Afbeelding naar tekst",
"tts": "Tekst naar spraak",
@@ -2506,7 +2510,7 @@
"failedToReadFile": "Bestand lezen mislukt",
"generationFailed": "Genereren mislukt",
"requestFailed": "Verzoek mislukt ({status})",
- "provider": "Provider",
+ "provider": "Aanbieder",
"credentialsRequired": "Vereist /api/v1/images/understanding is geïmplementeerd.",
"imageToTextBridgeCta": "Configureer de Image→Text-brug in de Modality Bridge-instellingen",
"sttBridgeCta": "Configureer de Spraak→Tekst brug in de Modality Bridge-instellingen",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "OpenRouter spraak-naar-tekstmodellen gebruiken uw geconfigureerde OpenRouter-verbinding. Er zijn geen aparte inloggegevens vereist."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Zoekopdracht",
+ "searchResults": "Zoekresultaten",
+ "cachedResult": "In cache",
+ "searchCost": "Kosten",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Geavanceerde zoektests met providervergelijking",
+ "compareProviders": "Providers vergelijken",
+ "rerankResults": "Resultaten opnieuw rangschikken",
+ "searchHistory": "Zoekgeschiedenis",
+ "urlOverlap": "URL-overlap",
+ "noSearchProviders": "Geen zoekproviders geconfigureerd. Voeg providers toe in Instellingen.",
+ "noRerankModels": "Geen model voor herrangschikking beschikbaar",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
+ "provider": "Aanbieder",
+ "searchType": "Zoektype",
+ "maxResults": "Maximumaantal resultaten",
"filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "country": "Land",
+ "language": "Taal",
+ "timeRange": "Tijdsbereik",
+ "includeDomains": "Domeinen opnemen",
+ "excludeDomains": "Domeinen uitsluiten",
+ "safeSearch": "Veilig zoeken",
+ "safeSearchOff": "Uit",
+ "safeSearchModerate": "Gemiddeld",
+ "safeSearchStrict": "Strikt",
+ "queryPlaceholder": "Voer een zoekopdracht in...",
+ "providerAuto": "automatisch (goedkoopste)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "nieuws",
+ "optionAny": "willekeurig",
+ "timeRangeDay": "Afgelopen dag",
+ "timeRangeWeek": "Afgelopen week",
+ "timeRangeMonth": "Afgelopen maand",
+ "timeRangeYear": "Afgelopen jaar",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Time-out van aanvraag ({seconds}s)",
+ "networkError": "Netwerkfout",
+ "formatted": "Opgemaakt",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "cachemisser",
+ "cacheHit": "cachetreffer",
+ "latency": "Latentie",
+ "cost": "Kosten",
+ "results": "Resultaten",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Hersorteermodel",
+ "positionDelta": "Positiewijziging",
+ "emptyState": "Voer een zoekopdracht uit om resultaten te bekijken",
"copy": "Kopieer",
"resetToDefault": "Resetten naar standaard",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Zoeken",
+ "tabScrape": "Scrapen",
+ "tabCompare": "Vergelijken",
+ "modalitiesGuide": "Handleiding voor modaliteiten",
+ "searchConceptTitle": "Zoeken",
+ "searchConceptDesc": "Zoeken = haalt een lijst met webresultaten op (titel, URL, fragment, relevantiescore)",
+ "scrapeConceptTitle": "Scrapen",
+ "scrapeConceptDesc": "Scrapen = extraheert de volledige inhoud van een URL (markdown, tekst of HTML)",
+ "compareConceptTitle": "Vergelijken",
+ "compareConceptDesc": "Vergelijken = voert dezelfde zoekopdracht naast elkaar uit bij N providers om latentie, kosten en overlap van resultaten te vergelijken",
+ "rerankConceptTitle": "Hersorteren",
+ "rerankConceptDesc": "Hersorteren = ordent resultaten opnieuw via LLM om de relevantie op basis van de zoekopdracht te verbeteren",
+ "autoConceptTitle": "Automatisch (goedkoopste)",
+ "autoConceptDesc": "Automatisch (goedkoopste) = selecteert automatisch de goedkoopste beschikbare provider met geconfigureerde inloggegevens",
+ "providerCatalogTitle": "Providercatalogus",
+ "kindSearch": "Zoeken",
+ "kindFetch": "Ophalen/scrapen",
+ "statusConfigured": "Geconfigureerd",
+ "statusMissing": "Geen inloggegevens",
+ "statusRateLimited": "Snelheidslimiet bereikt",
+ "configureProvider": "Configureren in Providers",
+ "loadingProviders": "Providers laden…",
+ "failedToLoadProviders": "Laden van providers mislukt",
+ "costPerQuery": "Kosten/zoekopdracht",
+ "freeQuota": "Gratis quotum/mnd.",
+ "scrapeUrl": "URL om te scrapen",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL is verplicht",
"scrapeUrlInvalid": "Ongeldige URL — deze moet beginnen met http:// of https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "Extraheren",
+ "scrapeExtracting": "Extraheren…",
+ "scrapeFullPage": "Volledige pagina",
+ "scrapeFormat": "Indeling",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "Tekst",
+ "scrapePreview": "Voorbeeld",
+ "scrapeRaw": "Onbewerkt",
+ "scrapeContentTruncated": "(ingekort, bekijk onbewerkt)",
+ "scrapeMetadata": "Metagegevens",
+ "scrapeProvider": "Aanbieder",
+ "scrapeSize": "Grootte",
"scrapeEmptyState": "Voer een URL in om de inhoud ervan te extraheren",
"scrapeProvidersAvailable": "Beschikbare providers: Firecrawl, Jina Reader, Tavily.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
+ "compareRun": "Vergelijken",
+ "compareRunning": "Bezig met vergelijken…",
+ "autoProvider": "Automatisch (goedkoopste)",
+ "configuredStatus": "Geconfigureerd",
+ "rateLimitedStatus": "Snelheidslimiet bereikt",
+ "noCredential": "Geen inloggegevens",
"searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "rerankModelLabel": "Rerank-model",
+ "noneOption": "Geen",
+ "size": "Grootte",
"configurationPane": "Configuratiepaneel",
"configuration": "Configuratie",
"status": "Status",
@@ -2660,7 +2664,7 @@
"httpError": "Fout {status}",
"failed": "Mislukt",
"requestFailed": "Verzoek mislukt",
- "embedding": "Embedding",
+ "embedding": "Inbedding",
"embeddingSample": "Hallo, wereld!",
"image": "Afbeelding",
"imageSample": "Een sereen landschap met bergen bij zonsondergang",
@@ -2677,7 +2681,7 @@
"ttsSample": "Hallo, dit is een tekst-naar-spraaktest.",
"video": "Video",
"videoSample": "Een time-lapse van wolken boven een bergketen",
- "webFetch": "Web Fetch",
+ "webFetch": "Web ophalen",
"webSearchSample": "Wat is OmniRoute AI gateway?",
"noActiveProviderDescription": "Geen actieve zoekprovider. Configureer er een in Providers.",
"configureProviders": "Providers configureren",
@@ -2704,12 +2708,12 @@
"classifierCompatLoadFailed": "Instelling laden mislukt",
"classifierCompatMode": {
"off": "Uit",
- "auto": "Auto",
+ "auto": "Automatisch",
"always": "Altijd"
},
"ccDiscoveryInfoButton": "Hoe ontdekking in Claude Code in te schakelen",
"ccDiscoveryInfoTooltip": "Adverteer non-Claude-modellen onder claude/<provider>/<model> mirror-id's zodat Claude Code's gateway modelontdekking ze kan weergeven. Verdubbelt catalogusvermeldingen voor alle klanten wanneer wereldwijd ingeschakeld.",
- "ccDiscoveryInfoLink": "Open Feature Flags",
+ "ccDiscoveryInfoLink": "Functievlaggen openen",
"ccOnboardingTitle": "settings.json voor gateway model ontdekking",
"ccOnboardingCopy": "Kopiëren",
"ccOnboardingCopied": "Gekopieerd",
@@ -2739,7 +2743,7 @@
"effortExtraHigh": "Extra hoog",
"effortMax": "Max",
"effortUltra": "Ultra",
- "wireApi": "Wire API",
+ "wireApi": "API koppelen",
"modelAliases": "Modelaliassen",
"addModel": "Model toevoegen",
"routeModelPlaceholder": "Routeer {model} naar...",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Toevoegen",
"antigravityStep2Suffix": "naar uw hosts-bestand als 127.0.0.1.",
"antigravityStep3": "3. Open Antigravity en verzoeken zullen worden geproxyd.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} stuurt verzoeken naar het endpoint van de provider. MITM onderschept deze en leidt ze om naar OmniRoute.",
+ "mitmStep1": "1. Start MITM om verzoeken via OmniRoute te routeren.",
+ "mitmStep2Prefix": "2. Voeg",
+ "mitmStep2Suffix": "toe aan je hosts-bestand als 127.0.0.1.",
+ "mitmStep3": "3. Open {toolName}; verzoeken worden dan via een proxy geleid.",
"sudoPasswordRequiredTitle": "Sudo-wachtwoord vereist",
"sudoPasswordHint": "Het beheerderswachtwoord is vereist om de hosts-bestand- en systeemproxy-instellingen te wijzigen.",
"enterSudoPassword": "Voer het sudo-wachtwoord in",
@@ -2904,7 +2908,7 @@
"continue": "Gebruik dit wanneer u Doorgaan in IDE's uitvoert en u een draagbare, op JSON gebaseerde providerconfiguratie nodig hebt.",
"opencode": "Gebruik dit wanneer u de voorkeur geeft aan terminal-native agentruns en scriptautomatisering via OpenCode.",
"kiro": "Te gebruiken bij het integreren van Kiro en het centraal beheren van modelrouting vanuit OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Gebruik dit wanneer je een AI-first IDE wilt met Codeium/Windsurf-modellen die via OmniRoute worden gerouteerd.",
"antigravity": "Gebruik wanneer Antigravity/Kiro-verkeer moet worden onderschept via MITM en naar OmniRoute moet worden gerouteerd.",
"copilot": "Gebruik wanneer u UX in Copilot-chatstijl wilt terwijl u OmniRoute-sleutels en routeringsregels afdwingt.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2924,11 +2928,11 @@
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI-code-editor",
"continue": "Ga door met AI-assistent",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "OpenCode AI-codeeragent (Terminal)",
+ "kiro": "Amazon Kiro — AI-aangedreven IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "Sourcegraph Amp CLI-codeerassistent",
"hermes": "Hermes AI Terminalassistent",
"hermes-agent": "Hermes Agent (van Nousresearch) - Geavanceerde terminal-AI met ondersteuning voor meerdere modellen (delegatie, visie, compressie, enz.)",
"custom": "Generieke OpenAI-compatibele CLI- of SDK-configuratiegenerator",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter autonome codeeragent-CLI",
"omp": "Oh My Pi terminal-codeeragent",
"letta": "Letta CLI-agent met persistent geheugen en toolgebruik",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — zelfverbeterende RLM-codeeromgeving met ondersteuning voor OpenAI-compatibele providers",
"warp": "Warp AI-terminal met ondersteuning voor aangepaste providers",
"agent-deck": "Agent Deck multi-agent-orchestrator",
"5dive": "5dive — zelf gehoste vloot van codeeragents; één auth-profiel wijst ze allemaal naar OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCode installeren",
+ "desc": "Installeren via npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API-sleutel"
},
"3": {
- "title": "Set Base URL",
+ "title": "Basis-URL instellen",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Model selecteren"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Denkvariant gebruiken",
+ "desc": "Voer denkmodellen uit met --variant high/low/max (zie de voorbeeldopdracht hieronder)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro-instellingen openen",
+ "desc": "Ga naar Instellingen → AI-provider"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Basis-URL",
+ "desc": "Plak de URL van je OmniRoute-eindpunt"
},
"3": {
- "title": "API Key"
+ "title": "API-sleutel"
},
"4": {
- "title": "Select Model"
+ "title": "Model selecteren"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI-instellingen openen",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Aangepaste provider toevoegen",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Basis-URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API-sleutel",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Model selecteren",
+ "desc": "Kies een model in de vervolgkeuzelijst"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Aangepaste CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Toolcategorieën",
"visibleToolsCount": "{count} tools beschikbaar",
"customCliBuilderTitle": "OpenAI-compatibele CLI-builder",
"customCliBuilderDescription": "Genereer env vars en JSON-fragmenten voor elke CLI of SDK die een OpenAI-compatibele basis-URL, API-sleutel en model-ID accepteert.",
@@ -3108,13 +3112,13 @@
"hermesRoleDefaultDesc": "Primair conversatiemodel",
"hermesRoleDelegation": "Delegatie (subagenten)",
"hermesRoleDelegationDesc": "Orchestrator- en subagentmodel",
- "hermesRoleVision": "Vision",
+ "hermesRoleVision": "Visie",
"hermesRoleVisionDesc": "Begrip van afbeeldingen en screenshots",
"hermesRoleCompression": "Compressie",
"hermesRoleCompressionDesc": "Prompt-compressie en samenvatting",
"hermesRoleWebExtract": "Webextractie",
"hermesRoleWebExtractDesc": "Extractie van webpagina-inhoud",
- "hermesRoleSkillsHub": "Skills Hub",
+ "hermesRoleSkillsHub": "Vaardighedenhub",
"hermesRoleSkillsHubDesc": "Vaardigheden en redeneren over toolgebruik",
"hermesRoleApproval": "Goedkeuring",
"hermesRoleApprovalDesc": "Veiligheids- en goedkeuringsbeslissingen",
@@ -3124,11 +3128,11 @@
"hermesRoleTitleGenerationDesc": "Generatie van sessietitels",
"hermesRoleMemoryQueryRewrite": "Geheugenquery herschrijven",
"hermesRoleMemoryQueryRewriteDesc": "Herschrijven van geheugenzoekopdrachten",
- "hermesRoleTtsAudioTags": "TTS Audio Tags",
+ "hermesRoleTtsAudioTags": "TTS-audiotags",
"hermesRoleTtsAudioTagsDesc": "TTS-audio-tag generatie",
"hermesRoleTriageSpecifier": "Triage Specificatie",
"hermesRoleTriageSpecifierDesc": "Specificatie voor het triëren van issues en PR's",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Kanban-opsplitser",
"hermesRoleKanbanDecomposerDesc": "Kanban-taakdecompositie",
"hermesRoleProfileDescriber": "Profielbeschrijving",
"hermesRoleProfileDescriberDesc": "Gebruikersprofielbeschrijving",
@@ -3164,7 +3168,7 @@
"selectAll": "Alles selecteren",
"loadingModels": "Modellen laden...",
"advancedOptions": "Geavanceerde opties",
- "vision": "Vision",
+ "vision": "Visie",
"copilotCopyConfigForModels": "Configuratie kopiëren ({count, plural, one {# model} other {# modellen}})",
"copilotFilterModelsPlaceholder": "Modellen filteren...",
"copilotMaxInputTokens": "Max. invoertokens",
@@ -3185,13 +3189,13 @@
"cliproxyapiPort": "Haven",
"cliproxyapiRequestFailed": "Verzoek mislukt",
"cliproxyapiRestart": "Herstarten",
- "cliproxyapiStart": "Start",
+ "cliproxyapiStart": "Starten",
"cliproxyapiStatusError": "Fout",
"cliproxyapiStatusInstalled": "Geïnstalleerd",
"cliproxyapiStatusNotInstalled": "Niet Geïnstalleerd",
"cliproxyapiStatusRunning": "Lopen",
"cliproxyapiStatusStopped": "Gestopt",
- "cliproxyapiStop": "Stop",
+ "cliproxyapiStop": "Stoppen",
"cliproxyapiUnhealthy": "Ongezond",
"cliproxyapiUnknown": "Onbekend",
"cliproxyapiUpdate": "Bijwerken",
@@ -3256,19 +3260,19 @@
"priorityDesc": "Sequentiële fallback: probeert eerst model 1, dan 2, etc.",
"weightedDesc": "Verdeelt verkeer op basis van gewichtspercentage met terugval",
"roundRobinDesc": "Circulaire distributie: elke aanvraag gaat roulerend naar het volgende model",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "Contextoverdracht",
+ "contextRelayDesc": "Behoudt de sessiecontinuïteit met overdrachtssamenvattingen wanneer er tussen accounts wordt gewisseld",
"randomDesc": "Uniforme willekeurige selectie en vervolgens terugvallen op de resterende modellen",
"leastUsedDesc": "Kiest het model met de minste verzoeken, waarbij de belasting in de loop van de tijd wordt verdeeld",
"costOptimizedDesc": "Routes eerst naar het goedkoopste model op basis van prijzen",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "cacheOptimizedDesc": "Stuurt elk herbruikbaar promptvoorvoegsel consequent naar hetzelfde provideraccount",
"resetAware": "Reset-bewuste RR",
"resetAwareDesc": "Brengt het resterende quotum in evenwicht met 5 uur en wekelijkse resets, waarna vergelijkbare scores worden afgerond",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Quotagewogen",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
- "fusion": "Fusion",
+ "strictRandom": "Strikt willekeurig",
+ "strictRandomDesc": "Geschud kaartspel — gebruikt elk model één keer voordat er opnieuw wordt geschud",
+ "fusion": "Fusie",
"fusionDesc": "Stuurt de prompt parallel naar elk panelmodel, waarna een judgemodel één definitief antwoord synthetiseert",
"fusionJudgeModel": "Judgemodel",
"fusionJudgeModelHelp": "Model dat de panelantwoorden synthetiseert tot één definitief antwoord. Laat leeg om het eerste panelmodel te gebruiken.",
@@ -3284,13 +3288,13 @@
"retryDelay": "Vertraging opnieuw proberen (ms)",
"concurrencyPerModel": "Gelijktijdigheid / model",
"queueTimeout": "Wachtrijtime-out (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "Overdrachtsdrempel",
+ "contextRelayHandoffThresholdHelp": "Wanneer het quotagebruik deze drempel bereikt, genereert OmniRoute een gestructureerde overdrachtssamenvatting voordat het actieve account is uitgeput.",
+ "contextRelayMaxMessages": "Maximaal aantal berichten voor samenvatting",
+ "contextRelayMaxMessagesHelp": "Beperkt hoeveel recente geschiedenis wordt samengevat in de relay-samenvatting.",
+ "contextRelaySummaryModel": "Samenvattingsmodel",
+ "contextRelaySummaryModelHelp": "Optioneel vervangend model dat alleen wordt gebruikt om de overdrachtssamenvatting te genereren. Laat dit leeg om het actieve combinatiemodel opnieuw te gebruiken.",
+ "contextRelayProviderNote": "Context Relay genereert momenteel overdrachten voor Codex-accountrotatie. Combineer dit met meerdere accounts van dezelfde provider voor optimale continuïteit.",
"advancedHint": "Laat leeg om globale standaardwaarden te gebruiken. Deze overschrijven de instellingen per provider.",
"failoverBeforeRetry": "Failover vóór nieuwe poging",
"maxSetRetries": "Max. aantal nieuwe pogingen",
@@ -3311,14 +3315,14 @@
"liveSelectComboPlaceholder": "— selecteer combo —",
"liveTargetCount": "{count, plural, one {# doel} other {# doelen}}",
"liveSingle": "Enkel",
- "liveFleet": "Fleet",
+ "liveFleet": "Vloot",
"playgroundStatusAvailable": "Beschikbaar",
"playgroundStatusNoQuota": "Geen quotum",
"playgroundStatusDegraded": "Gedegradeerd",
"playgroundStatusError": "Fout",
"playgroundStatusUnknown": "Onbekend",
"playgroundNetworkError": "Netwerkfout tijdens simulatie",
- "playgroundTitle": "Combo Playground",
+ "playgroundTitle": "Combinatie-speelomgeving",
"playgroundDescription": "Simuleer hoe verzoeken door uw combo's worden gerouteerd",
"playgroundConfiguration": "Configuratie",
"playgroundNoCombosConfigured": "Geen combo's geconfigureerd",
@@ -3331,7 +3335,7 @@
"playgroundStrategy": "Strategie",
"playgroundEstimatedCost": "Gesch. kosten",
"playgroundEstimatedLatency": "Gesch. latentie",
- "playgroundFallback": "fallback",
+ "playgroundFallback": "terugvaloptie",
"playgroundWeight": "gewicht {value}",
"playgroundWarningCount": "Waarschuwingen ({count})",
"playgroundErrorCount": "Fouten ({count})",
@@ -3348,33 +3352,33 @@
"strategyGuide": {
"priority": {
"when": "U heeft één voorkeursmodel en wilt alleen terugvallen op mislukkingen.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "avoid": "Je hebt verdeling van verzoeken over modellen nodig.",
+ "example": "Primair programmeermodel met een goedkoper reservemodel voor storingen."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "Je hebt een gecontroleerde verdeling van verkeer over modellen nodig.",
+ "avoid": "Je kunt de gewichten niet langdurig nauwkeurig bijhouden.",
+ "example": "Uitrol met 80% stabiel model en 20% canarymodel."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "Je wilt een voorspelbare en gelijkmatige verdeling.",
+ "avoid": "De modellen verschillen te veel in latentie of kosten.",
+ "example": "Hetzelfde model op meerdere accounts om de doorvoer te verdelen."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "Je wilt een eenvoudige verdeling met minimale configuratie.",
+ "avoid": "Je hebt strikte verkeersgaranties nodig.",
+ "example": "Snel prototypen met gelijkwaardige modellen."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "Je wilt adaptieve taakverdeling op basis van de actuele vraag.",
+ "avoid": "Het verkeer is te beperkt om te profiteren van verdeling op basis van gebruik.",
+ "example": "Gemengde workloads waarbij één model vaak overbelast raakt."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "Kostenverlaging heeft je hoogste prioriteit.",
+ "avoid": "Prijsgegevens ontbreken of zijn verouderd.",
+ "example": "Achtergrond- of batchtaken waarbij lagere kosten de voorkeur hebben."
},
"reset-aware": {
"when": "U routeert over meerdere accounts met quota-telemetrie en verschillende reset-vensters.",
@@ -3382,19 +3386,19 @@
"example": "Geef de voorkeur aan een wekelijkse account van 60% die morgen wordt gereset boven een account van 80% die later wordt gereset."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Gebruik dit als je een perfect gelijkmatige verdeling wilt: elk model wordt één keer gebruikt voordat de cyclus opnieuw begint.",
+ "avoid": "Vermijd dit wanneer modellen verschillen in kwaliteit of latentie en de volgorde belangrijk is.",
+ "example": "Voorbeeld: meerdere accounts van hetzelfde model om het gebruik gelijkmatig te verdelen."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Gebruik dit als je selectie met lage latentie wilt via het Power-of-Two-Choices-algoritme.",
+ "avoid": "Vermijd dit voor kleine combinaties met 2 of minder modellen: het biedt geen voordeel ten opzichte van round-robin.",
+ "example": "Voorbeeld: inference met hoge doorvoer via 4 of meer gelijkwaardige modeleindpunten."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Gebruik dit wanneer lange sessies accountrotatie moeten doorstaan zonder de werkcontext te verliezen.",
+ "avoid": "Vermijd dit wanneer er zelden van account wordt gewisseld of wanneer je geen extra samenvattingsverzoeken wilt.",
+ "example": "Voorbeeld: Codex-sessies die bij het bijna bereiken van het quotum tussen meerdere accounts roteren."
},
"fill-first": {
"when": "Gebruik dit wanneer u het quotum van de ene provider volledig wilt benutten voordat u naar de volgende overstapt.",
@@ -3418,49 +3422,49 @@
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "Het aantal nieuwe pogingen voordat een verzoek als mislukt wordt beschouwd.",
+ "retryDelay": "Initiële wachttijd tussen nieuwe pogingen. Hogere waarden verminderen piekbelasting.",
+ "timeout": "Maximale duur van een verzoek voordat het wordt afgebroken.",
+ "healthcheck": "Sluit niet goed functionerende modellen/providers uit van routeringsbeslissingen.",
+ "concurrencyPerModel": "Maximaal aantal gelijktijdige verzoeken per model bij round-robin.",
+ "queueTimeout": "Hoe lang een verzoek in de wachtrij mag staan voordat er een time-out optreedt.",
"failoverBeforeRetry": "Indien ingeschakeld, activeert elke upstream-fout onmiddellijke failover naar het volgende combo-doel, waarbij alle nieuwe pogingen en reserve-URL's worden overgeslagen.",
"maxSetRetries": "Aantal keren dat de volledige doelset opnieuw moet worden geprobeerd als elk doel mislukt. 0 = geen nieuwe poging op ingesteld niveau.",
"setRetryDelayMs": "Vertraging tussen nieuwe pogingen op ingesteld niveau, waardoor tijdelijke problemen de tijd krijgen om op te lossen.",
"disableSessionStickiness": "Roteer naar een andere verbinding bij elk verzoek in plaats van een heel gesprek vast te pinnen op één verbinding via de hash van het eerste bericht. Overschrijft de globale standaardinstelling. Laat op Overnemen staan om prompt-cache hits te behouden voor chats met meerdere beurten."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "Snelle sjablonen",
+ "templatesDescription": "Pas een startprofiel toe en pas daarna de modellen en configuratie aan.",
+ "templateApply": "Sjabloon toepassen",
+ "templateHighAvailability": "Hoge beschikbaarheid",
+ "templateHighAvailabilityDesc": "Prioriteitsroutering met statuscontroles en veilige nieuwe pogingen.",
+ "templateCostSaver": "Kostenbesparing",
+ "templateCostSaverDesc": "Kostengeoptimaliseerde routering voor workloads waarbij het budget vooropstaat.",
+ "templateBalanced": "Gebalanceerde belasting",
+ "templateBalancedDesc": "Routering naar het minst gebruikte model om de vraag over tijd te spreiden.",
+ "usageGuideHide": "Verbergen",
+ "usageGuideDontShowAgain": "Niet meer weergeven",
+ "usageGuideShow": "Handleiding weergeven",
+ "quickTestTitle": "Combinatie klaar voor validatie",
+ "quickTestDescription": "Voer nu een test uit om het fallback- en latentiegedrag te bevestigen.",
+ "testNow": "Nu testen",
+ "pricingCoverage": "Prijsdekking",
+ "pricingCoverageHint": "Kostengeoptimaliseerde routering werkt het best wanneer alle modellen in de combinatie prijsgegevens hebben.",
+ "pricingAvailable": "Prijs beschikbaar",
+ "pricingMissing": "Geen prijsgegevens",
+ "pricingAvailableShort": "met prijs",
+ "pricingMissingShort": "zonder prijs",
"fallbackOnlyOnQuotaExhaustion": "Alleen doorgaan bij quota-uitputting",
- "fallbackOnlyOnQuotaExhaustionShort": "quota-only fallback",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
+ "fallbackOnlyOnQuotaExhaustionShort": "fallback alleen op basis van quota",
+ "warningRoundRobinSingleModel": "Round-robin is het nuttigst met minstens 2 modellen.",
+ "warningCostOptimizedPartialPricing": "Slechts {priced} van de {total} modellen hebben prijsgegevens. De routering houdt mogelijk slechts gedeeltelijk rekening met kosten.",
+ "warningCostOptimizedNoPricing": "Geen prijsgegevens gevonden voor deze combinatie. Kostengeoptimaliseerde routering kan onverwachte routes kiezen.",
+ "filterAll": "Alle",
"filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "filterDeterministic": "Deterministisch",
+ "filterEmptyTitle": "Geen combinaties komen overeen met dit strategiefilter.",
+ "filterEmptyIntelligentDescription": "Maak een automatische of LKGP-combinatie om het dashboard voor intelligente routering te vullen.",
+ "filterEmptyDeterministicDescription": "Er bestaan momenteel alleen automatische en LKGP-combinaties. Schakel terug naar Alle of maak een deterministische combinatie.",
"readinessTitle": "Klaar om te besparen?",
"readinessDescription": "Bekijk de checklist voordat u deze combo maakt of bijwerkt.",
"readinessCheckName": "Combinatienaam is geldig",
@@ -3474,12 +3478,12 @@
"saveBlockModels": "Voeg ten minste één model toe.",
"saveBlockWeighted": "Stel de gewichten in op 100% (huidig: {total}%).",
"saveBlockPricing": "Voeg prijzen toe voor ten minste één model of kies een andere strategie.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "Aanbevolen configuratie",
+ "applyRecommendations": "Aanbevelingen toepassen",
+ "recommendationsUpdated": "Aanbevelingen bijgewerkt voor {strategy}.",
+ "recommendationsApplied": "Aanbevelingen toegepast op deze combinatie.",
+ "intelligentPanelTitle": "Dashboard voor intelligente routering",
+ "intelligentPanelDesc": "Realtime scores en status voor deze combinatie met automatische routering.",
"configOnlyStatus": "Configuratieweergave",
"configOnlyHint": "Dit paneel toont alleen routeringsinvoer. De live breaker-status is beschikbaar op de Statuspagina.",
"routingInputs": "Routeringsinvoer",
@@ -3492,7 +3496,7 @@
"builderGlobalAddAll": "Alles toevoegen",
"builderGlobalShortcuts": "Sneltoetsen:",
"builderGlobalNoResults": "Geen model gevonden voor \"{query}\".",
- "builderGlobalProviderLabel": "Provider:",
+ "builderGlobalProviderLabel": "Aanbieder:",
"builderGlobalAccountCount": "{count, plural, one {# account} other {# accounts}}",
"builderGlobalAdded": "Toegevoegd",
"builderGlobalAdd": "Toevoegen",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "Onbekend provider-voorvoegsel.",
"builderDynamicAccountShort": "Dynamisch account",
"builderNeedValidName": "Definieer een geldige combonaam voordat u doorgaat.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Statusoverzicht",
+ "normalOperation": "Normale werking",
+ "allProvidersHealthy": "Providers melden gezonde routeringsomstandigheden.",
+ "incidentMode": "Incidentmodus",
+ "highCircuitBreakerRate": "Een hoog activeringspercentage van de stroomonderbreker is gedetecteerd.",
+ "activeModePack": "Actief moduspakket",
+ "modePackUpdated": "Moduspakket bijgewerkt naar {pack}.",
+ "modePackHint": "Wissel van voorinstelling om de routeringsengine bij te sturen zonder de combinatie opnieuw samen te stellen.",
+ "providerScores": "Providerscores",
+ "allProvidersEvaluated": "Geen kandidatenpool geconfigureerd. Alle actieve providers worden tijdens runtime geëvalueerd.",
+ "excludedProviders": "Uitgesloten providers",
+ "excludedProvidersHint": "Providers met een OPEN stroomonderbreker worden tijdelijk uitgesloten van routering.",
+ "noExcludedProviders": "Er zijn momenteel geen providers uitgesloten.",
+ "cooldownMinutes": "Afkoelperiode: {minutes} m",
+ "builderIntelligentTitle": "Configuratie voor intelligente routering",
+ "builderIntelligentDesc": "Configureer de multifactoriële scoringengine voor deze combinatie met automatische routering.",
+ "candidatePoolLabel": "Kandidatenpool",
+ "candidatePoolHint": "Selecteer welke providers deze engine moet evalueren. Laat dit leeg om alle actieve providers te gebruiken.",
+ "candidatePoolEmpty": "Er zijn nog geen actieve providers beschikbaar.",
+ "candidatePoolAllProviders": "Alle providers",
+ "modePackLabel": "Moduspakket",
+ "routerStrategyLabel": "Routerstrategie",
+ "strategyRules": "Regels (scoring op basis van 6 factoren)",
+ "explorationRateLabel": "Verkenningspercentage",
+ "explorationRateHint": "{percent}% van de verzoeken kan niet-optimale providers verkennen.",
+ "budgetCapLabel": "Budgetlimiet (USD/verzoek)",
+ "budgetCapPlaceholder": "Geen limiet",
+ "advancedWeightsTitle": "Geavanceerd: scoringsgewichten",
"nestedComboFlatten": "Geneste combo's afvlakken",
"nestedComboExecute": "Geneste combo's uitvoeren als doelen",
"effectiveRoutingShare": "Effectief routeringsaandeel (gewicht ÷ totaal)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Quotum",
+ "weightHealth": "Status",
+ "weightCostInv": "Kosten",
+ "weightLatencyInv": "Latentie",
+ "weightTaskFit": "Geschiktheid voor taak",
+ "weightStability": "Stabiliteit",
+ "weightTierPriority": "Niveau",
+ "weightCacheAffinity": "Affiniteit voor cachetreffers",
"weightSessionAvailability": "Beschikbaarheid van de Sessie",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Configuratie voor intelligente routering",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "Fail-safe-basislijn",
+ "description": "Gebruik één primair model en houd de fallbackketen kort en betrouwbaar.",
+ "tip1": "Plaats uw betrouwbaarste model als eerste.",
+ "tip2": "Gebruik 1-2 reservemodellen van vergelijkbare kwaliteit.",
+ "tip3": "Gebruik veilige nieuwe pogingen om tijdelijke providerstoringen op te vangen."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "Gecontroleerde verkeersverdeling",
+ "description": "Ideaal voor canary-uitrol en geleidelijke migratie tussen modellen.",
+ "tip1": "Begin met een conservatieve verdeling, zoals 90/10.",
+ "tip2": "Houd het totaal op 100% en balanceer automatisch na wijzigingen.",
+ "tip3": "Monitor het succespercentage en de latentie voordat je het canary-aandeel verhoogt."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "Voorspelbare belastingverdeling",
+ "description": "Ideaal wanneer modellen gelijkwaardig zijn en je een gelijkmatige verdeling nodig hebt.",
+ "tip1": "Gebruik minimaal 2 modellen.",
+ "tip2": "Stel gelijktijdigheidslimieten in om overbelasting door pieken te voorkomen.",
+ "tip3": "Gebruik een time-out voor de wachtrij om bij verzadiging snel een fout te retourneren."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "Snelle verdeling met weinig configuratie",
+ "description": "Gebruik dit wanneer je een eenvoudige verdeling zonder strikte garanties nodig hebt.",
+ "tip1": "Gebruik modellen met vergelijkbare latentieprofielen.",
+ "tip2": "Houd nieuwe pogingen ingeschakeld om willekeurige missers op te vangen.",
+ "tip3": "Gebruik dit bij voorkeur voor experimenten, niet voor strikte SLA's."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "Adaptieve balancering",
+ "description": "Routeert naar minder gebruikte modellen om hotspots na verloop van tijd te verminderen.",
+ "tip1": "Werkt beter bij continu verkeer.",
+ "tip2": "Combineer dit met statuscontroles voor een veiligere balancering.",
+ "tip3": "Houd het gebruik per model bij om de verbeterde verdeling te verifiëren."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "Budgetgerichte routering",
+ "description": "Routeert naar goedkopere modellen wanneer prijsmetadata beschikbaar is.",
+ "tip1": "Zorg dat prijsinformatie beschikbaar is voor alle geselecteerde modellen.",
+ "tip2": "Behoud een kwalitatief terugvalmodel voor moeilijke prompts.",
+ "tip3": "Gebruik dit voor batch- en achtergrondtaken waarbij kosten de belangrijkste KPI zijn."
},
"reset-aware": {
"title": "Resetbewuste accountrotatie",
@@ -3593,11 +3597,11 @@
"tip3": "Houd de band klein, zodat gelijkwaardige accounts nog steeds eerlijk roteren."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Verdeling met geschud kaartspel",
+ "description": "Elk model wordt per cyclus precies één keer gebruikt voordat er opnieuw wordt geschud.",
+ "tip1": "Gebruik minimaal 2 modellen voor een zinvolle verdeling.",
+ "tip2": "Werkt het beste met modellen die gelijkwaardig presteren.",
+ "tip3": "Ideaal voor taakverdeling over meerdere API-accounts."
},
"fill-first": {
"description": "Voer de quota's van leveranciers opeenvolgend uit voordat u terugvalt.",
@@ -3642,86 +3646,86 @@
"title": "Kracht van twee keuzes"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "Gratis stack ($0)",
+ "templateFreeStackDesc": "Round-robin over alle gratis providers: Kiro (Claude), Qoder (5 modellen), Qwen (4 modellen). Kost niets en blijft altijd coderen.",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "LKGP-modus",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "Aan de slag met combo's",
+ "wizardGuideDesc": "Maak modelcombo's om AI-verkeer intelligent te routeren",
+ "wizardGuideHint": "of klik hierboven op + Combo maken",
+ "createFirstCombo": "Maak je eerste combo",
+ "wizardStep1Title": "Geef je combo een naam",
+ "wizardStep1Desc": "Geef je combo een unieke naam om deze in routeringsregels te herkennen",
+ "wizardStep2Title": "Modellen toevoegen",
+ "wizardStep2Desc": "Selecteer AI-modellen en rangschik hun terugvalprioriteit",
+ "wizardStep3Title": "Strategie kiezen",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "Controleren en opslaan",
+ "wizardStep4Desc": "Controleer je configuratie en activeer de combo",
+ "usageGuideInvokeTitle": "Deze combo aanroepen",
+ "usageGuideInvokeDesc": "Stuur de exacte naam van de combo als model, bijvoorbeeld model: \"my-combo\" (of combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto en auto/* vormen een afzonderlijke router zonder configuratie die je combo's niet gebruikt (tenzij een combo letterlijk auto heet).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto is een echt betaald product van OpenRouter (Auto Best Available), geen alias van OmniRoute — sluit het uit via Instellingen → Routering → Betaalde modellen verbergen.",
+ "emailVisibilityStateOn": "Aan",
+ "emailVisibilityStateOff": "Uit",
+ "reorderHandle": "Sleep om de volgorde te wijzigen",
+ "failedReorder": "Kan de volgorde van modellen niet wijzigen",
+ "builderFlowTitle": "Combo Builder-proces",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Basisinstellingen",
+ "description": "Naam en beginsjabloon"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Stappen",
+ "description": "Selectie van provider, model en account"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Strategie",
+ "description": "Routeringsgedrag en geavanceerde instellingen"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Slimme routering",
+ "description": "Kandidatenpool, voorinstellingen en scores voor automatische routering"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Controleren",
+ "description": "Definitieve validatie vóór het opslaan"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
+ "builderStageVisited": "Fase voltooid",
+ "builderStageCurrent": "Huidige fase",
+ "builderStagePending": "In afwachting",
+ "builderStageLocked": "Vergrendeld — voltooi eerst de vorige fase",
+ "builderTitle": "Een combo maken",
+ "builderBrowseCatalog": "Catalogus bekijken",
+ "builderProvider": "Aanbieder",
+ "builderLoadingProviders": "Providers laden...",
+ "builderSelectProvider": "Selecteer provider",
"builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
+ "builderSelectModel": "Selecteer model",
+ "builderProviderFirst": "Kies eerst een provider",
"builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderPreview": "Voorbeeld",
+ "builderAddStep": "Stap toevoegen",
"builderDuplicateExact": "Deze exacte provider/model/account-stap zit al in de combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
+ "builderComboRef": "Combo-referentie",
+ "builderAddComboRef": "Comboreferentie toevoegen",
+ "builderComboRefStep": "Comboreferentie toevoegen",
+ "builderPinnedAccount": "Vastgezet account",
+ "builderLegacyEntry": "Verouderde invoer",
+ "reviewName": "Naam",
+ "reviewStrategy": "Strategie",
+ "reviewSteps": "Stappen",
"reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "reviewProviders": "Aanbieders",
+ "reviewComboRefs": "Comboreferenties",
+ "reviewAdvanced": "Geavanceerde instellingen",
+ "reviewAgentFlags": "Agentvlaggen",
+ "reviewSequence": "Modelvolgorde",
+ "reviewNoSteps": "Geen stappen geconfigureerd",
"builderStagesDescription": "Voltooi elke fase om combo's te definiëren, stappen te bouwen, routeringsstrategie te selecteren en de resultaten te bekijken.",
"builderStepsDescription": "Bouw elke combinatiestap op volgorde: provider, model en vervolgens account. Hierdoor kunt u dezelfde provider en hetzelfde model voor verschillende accounts hergebruiken.",
"selectProvider": "Selecteer Aanbieder",
@@ -3770,13 +3774,13 @@
"kimiPresetDescription": "Kimi K3 als het primaire model (Moonshot API), met automatische terugval naar uw Kimi Code-verbindingen (kimi-coding, kimi-web) indien geconfigureerd.",
"kimiPresetCta": "Preset toevoegen",
"intelligentComboCount": "{count, plural, one {# intelligente combinatie} other {# intelligente combinaties}}",
- "providersInScope": "{count, plural, one {# provider in scope} other {# providers in scope}}",
+ "providersInScope": "{count, plural, one {# provider binnen bereik} other {# providers binnen bereik}}",
"savingModePack": "Opslaan {pack}…",
"errorTitle": "Kon combos niet laden",
"errorDescription": "We konden de combogegevens op dit moment niet laden. Controleer je verbinding en probeer het opnieuw.",
"errorId": "Fout-ID: {id}",
"errorRetry": "Probeer het opnieuw",
- "comboLabel": "Combo",
+ "comboLabel": "Combinatie",
"duplicateAutoComboConfirm": "Een statische combinatie maken van \"{name}\"?",
"duplicateAutoComboSnapshotMsg": "Dit maakt een momentopname van de momenteel verbonden providers/modellen die overeenkomen met dit sjabloon in een bewerkbare combinatie.",
"duplicateAutoComboFailedPrefix": "Automatische combinatie dupliceren mislukt:",
@@ -3796,27 +3800,27 @@
"range7d": "7 dagen",
"range30d": "30 dagen",
"range90d": "90 dagen",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 dagen",
+ "range365d": "365 dagen",
"rangeAll": "Altijd",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "Actieve modellen",
+ "flatRateEstimateNotice": "Bevat schattingen van tokenprijzen voor abonnementen met een vast tarief, niet de gefactureerde kosten.",
+ "flatRateEstimateForecast": "De prognose bevat schattingen op basis van vaste tarieven.",
+ "selectedWindow": "Geselecteerde periode",
+ "activeProviders": "Actieve providers",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "Uitgaven vandaag",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "Aandeel per provider",
+ "topProviders": "Belangrijkste providers",
+ "costTrend": "Kostentrend",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "Belangrijkste modellen",
"requestsInWindow": "Requests In Window",
"tokenUsage": "Tokengebruik",
"totalTokens": "Totaal tokens",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "API-eindpunt",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "Gebruik het OpenAI-compatibele eindpunt met de meeste SDK's en tools.",
+ "testEndpoint": "Eindpunt testen →",
+ "advancedProtocols": "Geavanceerde protocollen",
"available": "Beschikbare eindpunten",
"cloudProxy": "Cloud-proxy",
"disableConfirm": "Weet u zeker dat u cloudproxy wilt uitschakelen?",
@@ -3896,7 +3900,7 @@
"disableCloud": "Schakel Cloud uit",
"enableCloud": "Schakel Cloud in",
"modelsAcrossEndpoints": "{models} modellen voor {endpoints} eindpunten",
- "loadingModels": "Loading available models...",
+ "loadingModels": "Beschikbare modellen laden...",
"chatDesc": "Streaming & non-streaming chat met alle providers",
"embeddings": "Inbedding",
"embeddingsDesc": "Tekstinsluitingen voor zoek- en RAG-pijplijnen",
@@ -3908,22 +3912,22 @@
"audioTranscriptionDesc": "Audiobestanden omzetten naar tekst (Whisper)",
"textToSpeech": "Tekst naar spraak",
"textToSpeechDesc": "Converteer tekst naar natuurlijk klinkende spraak",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Muziek genereren",
+ "musicDesc": "Genereer muziek en audiotracks via ComfyUI (Stable Audio, MusicGen)",
"moderations": "Moderaties",
"moderationsDesc": "Contentmoderatie en veiligheidsclassificatie",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
+ "responsesDesc": "OpenAI Responses API voor Codex en geavanceerde agentische workflows",
+ "listModelsDesc": "Toon alle beschikbare modellen van alle verbonden providers",
+ "settingsApiDesc": "Lees en wijzig de OmniRoute-configuratie via de API",
+ "settingsApi": "Instellingen-API",
"categoryCore": "Kern-API's",
"categoryMedia": "Media & Multi-Modaal",
- "categorySearch": "Search & Discovery",
+ "categorySearch": "Zoeken en ontdekken",
"categoryUtility": "Hulpmiddelen & Beheer",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "Zoeken op het web",
+ "webSearchDesc": "Geïntegreerd zoeken op het web via meerdere providers, met automatische failover en caching",
+ "searchProvider": "Zoekprovider",
+ "searchProviderDesc": "Deze provider wordt gebruikt voor zoeken op het web via POST /v1/search. Er is geen modelconfiguratie nodig — zoekproviders zijn klaar voor gebruik zodra een API-sleutel is gekoppeld.",
"enableCloudTitle": "Schakel Cloudproxy in",
"whatYouGet": "Wat je krijgt",
"cloudBenefitAccess": "Krijg overal ter wereld toegang tot uw API",
@@ -3959,57 +3963,57 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Tunnel inschakelen",
+ "cloudflaredInstallAndEnable": "Installeren en inschakelen",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Actief",
+ "cloudflaredStarting": "Wordt gestart",
+ "cloudflaredStoppedState": "Gestopt",
+ "cloudflaredNotInstalled": "Niet geïnstalleerd",
+ "cloudflaredUnsupported": "Niet ondersteund",
+ "cloudflaredError": "Fout",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Laatste fout: {error}",
"providerModelsTitle": "{provider} — Modellen",
"noModelsForProvider": "Er zijn geen modellen beschikbaar voor deze aanbieder.",
"chat": "Chatten",
"embedding": "Inbedding",
"image": "Afbeelding",
"custom": "gewoonte",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "modelsCount": "{count, plural, one {# model} other {# modellen}}",
+ "sectionTitle": "Integratie-interface",
+ "sectionDescription": "OpenAI-compatibele API's en operationele protocoleindpunten",
"tabApis": "API's",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "Protocollen",
+ "tabsAria": "Eindpuntsecties",
+ "protocolsTitle": "Protocollen",
+ "protocolsDescription": "MCP en A2A zijn volwaardige eindpunten met specifieke observatiemogelijkheden en bedieningselementen.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "Model Context Protocol via stdio",
+ "a2aCardTitle": "A2A-server",
+ "a2aCardDescription": "Agent2Agent JSON-RPC-eindpunt",
+ "protocolToolsLabel": "Hulpmiddelen",
+ "protocolTasksLabel": "Taken",
+ "protocolActiveStreamsLabel": "Actieve streams",
+ "protocolLastActivity": "Laatste activiteit",
+ "quickStart": "Snel aan de slag",
+ "openMcpDashboard": "MCP-beheer openen",
+ "openA2aDashboard": "A2A-beheer openen",
+ "mcpQuickStartTitle": "Snel aan de slag met MCP",
+ "mcpQuickStartStep1": "Voer de MCP-server uit via `omniroute --mcp`.",
+ "mcpQuickStartStep2": "Configureer je MCP-client om verbinding te maken via stdio-transport.",
+ "mcpQuickStartStep3": "Roep tools aan zoals `omniroute_get_health` en `omniroute_list_combos`.",
+ "a2aQuickStartTitle": "Snel aan de slag met A2A",
+ "a2aQuickStartStep1": "Vind de agentkaart op `/.well-known/agent.json`.",
+ "a2aQuickStartStep2": "Stuur JSON-RPC-verzoeken naar `POST /a2a` met `message/send` of `message/stream`.",
+ "a2aQuickStartStep3": "Volg en beheer taken met `tasks/get` en `tasks/cancel`.",
+ "completionsLegacy": "Voltooiingen (verouderd)",
+ "completionsLegacyDesc": "Verouderde OpenAI-tekstaanvullingen — accepteert zowel een prompttekenreeks als een berichtenarray",
"messagesApi": "Berichten",
"messagesApiDesc": "Native Anthropic Messages API-indeling voor Claude-compatibele providers",
"imageEdits": "Afbeeldingsbewerkingen",
@@ -4018,40 +4022,40 @@
"batchApiDesc": "Verwerk grote batches verzoeken asynchroon (OpenAI-compatibel)",
"filesApi": "Bestanden-API",
"filesApiDesc": "Upload en beheer bestanden voor batchverwerking",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Videogeneratie",
+ "videoDesc": "Genereer video's met AI-modellen zoals ComfyUI en Stable Video Diffusion.",
+ "tailscaleRequestFailed": "Kan de Tailscale-status niet laden",
+ "tailscaleEnableFailed": "Kan Tailscale Funnel niet inschakelen",
+ "tailscaleWaitingForLogin": "Voltooi de Tailscale-aanmelding in het geopende browsertabblad. OmniRoute probeert het automatisch opnieuw.",
+ "tailscaleLoginTimedOut": "Time-out tijdens het wachten op de Tailscale-aanmelding",
+ "tailscaleWaitingForFunnel": "Schakel Funnel voor dit apparaat in via het geopende browsertabblad. OmniRoute blijft de status controleren.",
+ "tailscaleFunnelTimedOut": "Time-out tijdens het wachten tot Tailscale Funnel is ingeschakeld",
+ "tailscaleStarted": "Tailscale Funnel ingeschakeld",
+ "tailscaleDisableFailed": "Kan Tailscale Funnel niet uitschakelen",
+ "tailscaleStopped": "Tailscale Funnel uitgeschakeld",
+ "tailscaleInstallFailed": "Kan Tailscale niet installeren",
+ "tailscaleInstallProgress": "Bezig...",
+ "tailscaleInstalled": "Tailscale is geïnstalleerd",
+ "tailscaleRunning": "Actief",
+ "tailscaleNeedsLogin": "Aanmelding vereist",
+ "tailscaleStoppedState": "Gestopt",
+ "tailscaleNotInstalled": "Niet geïnstalleerd",
+ "tailscaleUnsupported": "Niet ondersteund",
+ "tailscaleError": "Fout",
+ "tailscaleDisable": "Funnel stoppen",
+ "tailscaleInstallAndEnable": "Installeren en inschakelen",
+ "tailscaleLoginAndEnable": "Aanmelden en inschakelen",
+ "tailscaleEnable": "Funnel inschakelen",
+ "tailscaleUrlNotice": "Gebruikt je Tailscale .ts.net-adres. Bij het eerste gebruik zijn mogelijk aanmelding en goedkeuring voor Funnel vereist.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "Verifieer deze machine bij Tailscale en schakel daarna Funnel in.",
+ "tailscaleBinaryPath": "Binair bestand: {path}",
+ "tailscaleLastError": "Laatste fout: {error}",
+ "tailscaleInstallTitle": "Tailscale installeren",
+ "tailscaleInstallIntro": "Installeert Tailscale op deze machine en bereidt OmniRoute voor om Funnel in te schakelen.",
+ "tailscaleInstallPasswordHint": "Op macOS en Linux kan sudo vereist zijn voor de installatie van het pakket en het starten van de daemon.",
+ "tailscaleSudoPlaceholder": "Optioneel sudo-wachtwoord",
+ "tailscaleInstalling": "Bezig met installeren",
"tailscaleSudoLabel": "Sudo-wachtwoord (vereist op macOS/Linux)",
"ngrokTitle": "ngrok-tunnel",
"ngrokRunning": "Rennen",
@@ -4104,8 +4108,8 @@
"all": "Alle",
"more": "+{count} meer",
"showInternalTooltip": "Interne routes tonen of verbergen (standaard verborgen)",
- "bearerAuth": "Bearer Auth",
- "requestBody": "Request Body",
+ "bearerAuth": "Bearer-authenticatie",
+ "requestBody": "Requestbody",
"close": "Sluiten",
"tryIt": "Probeer het uit",
"example": "Voorbeeld",
@@ -4140,9 +4144,9 @@
"tierPublic": "Openbaar",
"hideInternal": "Interne verbergen",
"showInternal": "Interne tonen",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Aangepaste systeemprompt",
+ "customSystemPromptDescription": "Voeg aan elk modelverzoek een aangepaste systeemprompt toe",
+ "customSystemPromptPlaceholder": "bijv. Antwoord altijd als een piraat...",
"obsidianEnterToken": "Voer een Obsidian API-token in",
"obsidianConnectFailed": "Verbinding maken mislukt",
"obsidianConnectionFailed": "Verbinding mislukt",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "Token geconfigureerd. Notion-tools zijn beschikbaar via MCP."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "Endpointproxy",
+ "tabApiEndpoints": "API-endpoints",
+ "apiEndpointsTitle": "API-endpoints",
+ "apiEndpointsDescription": "Backend-API-endpoints die door andere applicaties en services kunnen worden gebruikt. In deze sectie worden alle beschikbare REST-API's vermeld, inclusief documentatie en testmogelijkheden.",
+ "comingSoon": "Binnenkort beschikbaar",
+ "plannedFeatures": "Geplande functies",
+ "featureRestApi": "Catalogus met REST-API-endpoints en interactieve documentatie",
+ "featureWebhooks": "Webhookconfiguratie en gebeurtenisabonnementen",
+ "featureSwagger": "Automatische generatie van OpenAPI-/Swagger-specificaties",
+ "featureAuth": "Beheer van API-sleutels en OAuth-scopes per endpoint"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP-dashboard laden...",
+ "activate": "activeren",
+ "deactivate": "deactiveren",
+ "confirmSwitchCombo": "Combinatie \"{combo}\" {action}?",
+ "switchComboFailed": "Kan de status van de combinatie niet wijzigen.",
+ "switchComboSuccess": "Combinatie \"{combo}\" bijgewerkt.",
+ "confirmApplyProfile": "Weerbaarheidsprofiel \"{profile}\" toepassen?",
+ "applyProfileFailed": "Kan het weerbaarheidsprofiel niet toepassen.",
+ "applyProfileSuccess": "Profiel \"{profile}\" toegepast.",
+ "confirmResetBreakers": "Alle circuitbreakers resetten?",
+ "resetBreakersFailed": "Kan de circuitbreakers niet resetten.",
+ "resetBreakersSuccess": "Circuitbreakers gereset.",
+ "processStatus": "Processtatus",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} uitschakelen",
@@ -4233,84 +4237,84 @@
"mcpStep2": "Configureer je MCP-client om verbinding te maken via stdio-transport.",
"mcpStep3": "Roep tools aan zoals {code1} en {code2}.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
+ "sessionUptime": "Sessieduur",
+ "lastHeartbeat": "Laatste heartbeat",
+ "activity24h": "Activiteit (24 u)",
+ "totalCalls": "Totaal aantal aanroepen",
+ "successRate": "Slagingspercentage",
+ "avgLatency": "Gem. latentie",
+ "topTools": "Meest gebruikte tools",
+ "noToolCalls24h": "Geen toolaanroepen in de afgelopen 24 uur.",
+ "runtimeDetails": "Runtimegegevens",
"transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
+ "scopesEnforced": "Scopes afgedwongen",
+ "yes": "ja",
+ "no": "nee",
+ "lastCall": "Laatste aanroep",
+ "heartbeatPath": "Heartbeat-pad",
+ "operationalControls": "Operationele bedieningselementen",
+ "switchCombo": "Combinatie omschakelen",
+ "inactive": "inactief",
+ "active": "actief",
+ "activateCombo": "Combinatie activeren",
+ "deactivateCombo": "Combinatie deactiveren",
+ "applyResilienceProfile": "Veerkrachtprofiel toepassen",
+ "profileAggressive": "agressief",
+ "profileBalanced": "gebalanceerd",
+ "profileConservative": "conservatief",
+ "applyProfile": "Profiel toepassen",
+ "resetCircuitBreakers": "Stroomonderbrekers resetten",
+ "resetCircuitBreakersHelp": "Wist de huidige status en fouttellers van de stroomonderbrekers voor providers.",
+ "resetAllBreakers": "Alle stroomonderbrekers resetten",
+ "toolsAndScopes": "Tools en bereiken",
"tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "tableScopes": "Bereiken",
+ "tablePhase": "Fase",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "Auditlogboek",
+ "auditSummary": "Aanroepen: {total} | pagina {page} van {totalPages}",
+ "allTools": "Alle tools",
+ "allResults": "Alle resultaten",
+ "success": "Geslaagd",
+ "failure": "Mislukt",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
+ "loadingAuditEntries": "Auditvermeldingen laden...",
+ "noAuditEntriesForFilters": "Geen auditvermeldingen gevonden voor de huidige filters.",
+ "tableTimestamp": "Tijdstempel",
+ "tableDuration": "Duur",
+ "tableResult": "Resultaat",
+ "tableApiKey": "API-sleutel",
+ "failed": "mislukt",
+ "previous": "Vorige",
+ "next": "Volgende",
+ "apiKeyId": "API-sleutel-ID",
+ "offset": "Verschuiving",
+ "limit": "Limiet",
"tool": "Tool"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A-dashboard laden...",
+ "confirmCancelTask": "Taak {taskId} annuleren?",
+ "cancelTaskFailed": "Kan taak niet annuleren.",
+ "cancelTaskSuccess": "Taak {taskId} geannuleerd.",
+ "smokeSendFailed": "message/send-rooktest mislukt.",
+ "smokeSendSuccessWithTask": "message/send geslaagd (taak {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream-rooktest mislukt.",
+ "smokeStreamSuccessWithTask": "message/stream geslaagd (taak {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream voltooid zonder taak-ID.",
+ "health": "Status",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "Totaal aantal taken",
+ "activeStreams": "Actieve streams",
+ "lastTask": "Laatste taak",
+ "taskStateOverview": "Overzicht van taakstatussen",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "ingediend",
+ "working": "in uitvoering",
+ "completed": "voltooid",
+ "failed": "mislukt",
+ "cancelled": "geannuleerd"
},
"agentCard": "Agentenkaart",
"agentCardPath": "/.well-known/agent.json",
@@ -4320,32 +4324,32 @@
"agentCardNotAvailable": "Agentenkaart niet beschikbaar.",
"quickValidation": "Snelle validatie",
"quickValidationDescription": "Voert rookoproepen uit via het live `/a2a` eindpunt.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "runMessageSend": "message/send uitvoeren",
+ "runMessageStream": "message/stream uitvoeren",
+ "taskManagement": "Taakbeheer",
+ "taskSummary": "{total} taken | pagina {page} van {totalPages}",
+ "allStates": "alle",
+ "allSkills": "alle vaardigheden",
+ "loadingTasks": "Taken laden...",
+ "noTasksForFilters": "Geen taken gevonden voor de huidige filters.",
+ "tableTask": "Taak",
+ "tableSkill": "Vaardigheid",
+ "tableState": "Status",
+ "tableUpdated": "Bijgewerkt",
+ "tableActions": "Acties",
+ "view": "Bekijken",
+ "cancel": "Annuleren",
+ "previous": "Vorige",
+ "next": "Volgende",
+ "taskDetail": "Taakdetails",
+ "close": "Sluiten",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "Gebeurtenissen",
+ "artifacts": "Artefacten",
+ "tablePhase": "Tabelfase",
+ "offset": "Verschuiving",
+ "limit": "Limiet",
+ "skill": "Vaardigheid",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "bericht/verzenden",
"rpcMethodStream": "bericht/stream",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Acties",
+ "addMemory": "Geheugen toevoegen",
+ "allTypes": "Alle typen",
"cancel": "Annuleer",
"checkHealth": "Controleer de gezondheid",
"checkingHealth": "Controleren…",
@@ -4378,17 +4382,17 @@
"howWorksToggle": "Hoe het werkt",
"howWorksContent": "1. Automatische extractie: aan het einde van elk antwoord worden feiten en episodes automatisch gedetecteerd en opgeslagen.\n2. Ophalen: voorafgaand aan elk antwoord wordt er gezocht naar de meest relevante herinneringen via FTS5 (exact), vector (semantisch) of hybride RRF.\n3. Injectie: relevante herinneringen worden in de context van de assistent geïnjecteerd om de kwaliteit van de antwoorden te verbeteren.\n4. Beheer: gebruik deze pagina om oude herinneringen te bekijken, te bewerken, te exporteren en te comprimeren."
},
- "content": "Content",
+ "content": "Inhoud",
"contentPlaceholder": "Waarde- of JSON-inhoud om te onthouden",
- "created": "Created",
- "delete": "Delete",
+ "created": "Aangemaakt",
+ "delete": "Verwijderen",
"deleteConfirmDesc": "Deze actie kan niet ongedaan worden gemaakt. De herinnering wordt permanent verwijderd.",
"deleteConfirmTitle": "Herinnering verwijderen?",
- "description": "View and manage stored memory entries",
+ "description": "Opgeslagen geheugenitems bekijken en beheren",
"editMemory": "Herinnering bewerken",
"editModal": {
"title": "Herinnering bewerken",
- "metadataLabel": "Metadata (JSON)",
+ "metadataLabel": "Metagegevens (JSON)",
"metadataInvalid": "Ongeldige JSON",
"saveFailed": "Opslaan van herinnering mislukt"
},
@@ -4401,7 +4405,7 @@
"staticDesc": "Lokale embedding zonder WASM of externe afhankelijkheden",
"transformersLabel": "Transformers.js (MiniLM)",
"transformersDesc": "Lokale embedding via @huggingface/transformers (~400MB RAM)",
- "providerModelLabel": "Provider / Model",
+ "providerModelLabel": "Provider / model",
"noRemoteProviders": "Geen providers met geconfigureerde API-sleutel",
"selectProviderModel": "Selecteer een model",
"customBaseUrlLabel": "Aangepaste basis-URL (optioneel)",
@@ -4429,10 +4433,10 @@
"reindexFailed": "Starten van herindexeren mislukt",
"keywordLabel": "Trefwoord (FTS5)",
"keywordReason": "Zoeken op trefwoord is altijd beschikbaar",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Inbedding",
"vectorStoreLabel": "Vector store",
"qdrantLabel": "Qdrant",
- "rerankLabel": "Rerank",
+ "rerankLabel": "Herrangschikken",
"qdrantDisabled": "Uitgeschakeld",
"qdrantOk": "Gezond ({latencyMs}ms)",
"qdrantError": "Verbindingsfout",
@@ -4440,25 +4444,25 @@
"configureCta": "Configureren",
"vectorStoreInstallHint": "Om vectorgestuurd zoeken in te schakelen: npm install sqlite-vec (vereist native Node.js, niet WASM), start daarna opnieuw op."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Episodisch",
+ "export": "Exporteren",
+ "factual": "Feitelijk",
"healthUnknown": "Gezondheid onbekend",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "Trefferpercentage",
+ "import": "Importeren",
"importError": "Importeren van bestand mislukt",
"importResult": "{imported} geïmporteerd, {skipped} overgeslagen",
- "key": "Key",
+ "key": "Sleutel",
"keyPlaceholder": "bijv. gebruikersvoorkeuren.thema",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Geheugens",
"next": "Volgende",
- "noMemories": "No memories found",
+ "noMemories": "Geen geheugens gevonden",
"pageInfo": "Pagina {page} van {totalPages} ({total} totaal)",
"pipelineError": "Pijplijnfout",
"pipelineOk": "Pijplijn OK ({latencyMs}ms)",
"playground": {
- "infoTitle": "Memory Playground",
+ "infoTitle": "Geheugenproeftuin",
"infoDesc": "Simuleer wat er zou worden opgehaald voor een gegeven zoekopdracht. Er worden geen geheugens gewijzigd — alleen-lezen voorbeeld.",
"queryLabel": "Testzoekopdracht",
"queryPlaceholder": "Typ een vraag of testzin...",
@@ -4470,18 +4474,18 @@
"simulate": "Simuleren",
"resultsTitle": "{count} resulta(a)t(en)",
"resolutionTitle": "Zoekresolutie",
- "resolutionEmbedding": "Embedding",
- "resolutionStore": "Vector store",
+ "resolutionEmbedding": "Inbedding",
+ "resolutionStore": "Vectoropslag",
"resolutionStrategy": "Gebruikte strategie",
"rerankApplied": "Rerank toegepast",
- "fallback": "Fallback",
+ "fallback": "Terugvaloptie",
"noResults": "Geen geheugens gevonden voor deze zoekopdracht.",
"tokensUsed": "tokens gebruikt",
"none": "geen",
"errorFetch": "Ophalen van voorbeeld mislukt"
},
"previous": "Vorige",
- "procedural": "Procedural",
+ "procedural": "Procedureel",
"qdrant": {
"title": "Qdrant (Vector store Tier 2)",
"description": "Optionele Qdrant-integratie voor schaalbaar semantisch zoeken",
@@ -4530,8 +4534,8 @@
},
"save": "Opslaan",
"saving": "Opslaan...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Herinneringen zoeken...",
+ "semantic": "Semantisch",
"summarize": {
"title": "Oude herinneringen comprimeren",
"noCandidates": "Geen herinneringen die in aanmerking komen voor compressie (criteria: >30 dagen oud).",
@@ -4540,11 +4544,11 @@
},
"tabs": {
"memories": "Herinneringen",
- "playground": "Playground",
+ "playground": "Speelomgeving",
"engine": "Engine"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Geheugenbeheer",
+ "tokensUsed": "Gebruikte tokens",
"tooltip": {
"totalEntries": "Totaal aantal herinneringen opgeslagen voor deze API-sleutel",
"tokensUsed": "Geschat totaal aantal tokens ingenomen door actieve herinneringen",
@@ -4554,18 +4558,18 @@
"procedural": "Procedures, workflows en instructies die de assistent moet volgen",
"semantic": "Concepten, voorkeuren en domeinkennis"
},
- "totalEntries": "Total Entries",
+ "totalEntries": "Totaal aantal vermeldingen",
"type": "Type",
"memoryEnabled": "Geheugen ingeschakeld"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Vaardigheden",
+ "description": "AI-vaardigheden beheren en monitoren",
+ "skillsTab": "Vaardigheden",
+ "executionsTab": "Uitvoeringen",
"selectSkillToInspect": "Selecteer links een skill om te inspecteren.",
"schemaTab": "Schema",
- "handlerTab": "Handler",
+ "handlerTab": "Afhandelaar",
"inputSchema": "Invoerschema",
"outputSchema": "Uitvoerschema",
"handlerCode": "Handlercode",
@@ -4574,28 +4578,28 @@
"setModeAria": "Modus {mode} instellen",
"uninstallSkill": "Skill deïnstalleren",
"sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "loading": "Vaardigheden laden...",
+ "noSkills": "Geen vaardigheden gevonden",
+ "noExecutions": "Geen uitvoeringen gevonden",
+ "enabled": "Ingeschakeld",
+ "disabled": "Uitgeschakeld",
"delete": "Verwijderen",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
+ "version": "Versie",
+ "tableDescription": "Beschrijving",
+ "skill": "Vaardigheid",
"status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "duration": "Duur",
+ "time": "Tijd",
+ "sandboxConfig": "Sandboxconfiguratie",
+ "cpuLimit": "CPU-limiet",
+ "cpuLimitDesc": "Maximale uitvoeringstijd per vaardigheid",
+ "memoryLimit": "Geheugenlimiet",
+ "memoryLimitDesc": "Maximale geheugentoewijzing",
+ "timeout": "Time-out",
+ "timeoutDesc": "Maximale wachttijd voor antwoord",
+ "networkAccess": "Netwerktoegang",
+ "networkAccessDesc": "Uitgaande netwerkverzoeken toestaan",
+ "mode": "Modus",
"q": "Q",
"filterSkillsPlaceholder": "Filter vaardigheden op naam, beschrijving of tag",
"allModes": "Alle modi",
@@ -4603,7 +4607,7 @@
"enabledSkills": "Ingeschakeld",
"totalExecutions": "Uitvoeringen",
"successRate": "Slagingspercentage",
- "marketplaceTab": "Marketplace",
+ "marketplaceTab": "Marktplaats",
"applyFilters": "Filters toepassen",
"popularDefaultsLabel": "Standaard populair voor geselecteerde provider:",
"onMode": "AAN",
@@ -4643,7 +4647,7 @@
"healthy": "Gezond",
"degraded": "Gedegradeerd",
"down": "Naar beneden",
- "uptime": "Uptime",
+ "uptime": "Bedrijfstijd",
"memory": "Geheugen",
"memoryRss": "Geheugen (RSS)",
"heap": "Hoop",
@@ -4661,13 +4665,13 @@
"retry": "Opnieuw proberen",
"allOperational": "Alle systemen operationeel",
"issuesDetected": "Systeemproblemen gedetecteerd",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute is gereed",
+ "healthVerdictActionRequired": "Actie vereist om de volledige werking te herstellen",
+ "healthVerdictCoolingDown": "Afkoelen na recente wijzigingen",
+ "healthSubtitle": "Systeemstatuscontrole",
+ "advancedDiagnosticsTitle": "Geavanceerde diagnostiek",
+ "hide": "Verbergen",
+ "show": "Tonen",
"updatedAt": "{time} bijgewerkt",
"latency": "Latentie",
"latencyP50": "p50",
@@ -4694,9 +4698,9 @@
"providers": "Aanbieders",
"configuredProvidersLabel": "Geconfigureerd in dashboard",
"configuredProvidersHint": "Providers met inloggegevens opgeslagen in /dashboard/providers, ongeacht de runtimestatus.",
- "activeProviders": "{count} active",
+ "activeProviders": "{count} actief",
"activeProvidersHint": "Geconfigureerde providers die momenteel zijn ingeschakeld voor het routeren van verzoeken.",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "{count} gemonitord",
"monitoredProvidersHint": "Providers worden momenteel gevolgd door gezondheidsmonitors van stroomonderbrekers.",
"healthyCount": "{count} gezond",
"nodeVersion": "Knooppunt {version}",
@@ -4717,11 +4721,11 @@
"resetting": "Resetten...",
"resetAll": "Alles resetten",
"until": "Tot {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "Uitgeput",
+ "learnedFromHeaders": "Afgeleid uit headers",
+ "remainingOfLimit": "{remaining}/{limit} resterend",
+ "throttleStatus": "Beperking: {value}",
+ "lastHeaderUpdate": "Headerupdate: {age}",
"databaseHealth": "Databasestatus",
"databaseHealthDescription": "Diagnosticeer en herstel verouderde quota-/domeinrijen en verbroken combo-verwijzingen.",
"status": "Status",
@@ -4769,11 +4773,11 @@
"inactive": "Inactief",
"noConnectionId": "geen verbindings-id",
"accountModelSummary": "{connectionId} · {count} modellen",
- "cooldown": "cooldown",
+ "cooldown": "afkoelperiode",
"durationRemaining": "{duration} resterend",
"noSyncedModelsOrTraffic": "Nog geen gesynchroniseerde modellen of recent verkeer.",
"providerRowSummary": "{active}/{total} actieve accounts · {requests} req · {successRate} succes · {latency} gem.",
- "cooldownCount": "{count} cooldown",
+ "cooldownCount": "{count} in afkoelperiode",
"lockoutCount": "{count} vergrendelingen",
"issueCount": "{count} problemen",
"score": "Score",
@@ -4783,7 +4787,7 @@
"telemetry": {
"title": "Systeemtelemetrie",
"description": "Rolling request-, runtime-, sessie- en geheugensignalen van dit OmniRoute-proces.",
- "uptime": "Uptime",
+ "uptime": "Beschikbaarheid",
"totalRequests": "Totaal aantal verzoeken",
"avgLatency": "Gem. latentie",
"errorRate": "Foutpercentage",
@@ -4806,7 +4810,7 @@
"running": "Rennen",
"stopped": "Gestopt",
"start": "Begin",
- "stop": "Stop",
+ "stop": "Stoppen",
"refresh": "Vernieuwen",
"port": "Proxy-poort",
"apiKey": "Router-API-sleutel",
@@ -4884,28 +4888,28 @@
"previous": "Vorige",
"next": "Volgende",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "Details bekijken",
+ "eventMetadata": "Gebeurtenismetadata",
+ "eventPayload": "Gebeurtenisgegevens",
+ "requestId": "Aanvraag-ID",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
+ "offset": "Verschuiving",
+ "limit": "Limiet",
"status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
+ "resourceType": "Resourcetype",
+ "totalEntries": "Totaal aantal vermeldingen",
+ "tab": "Tabblad",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "Sluiten",
+ "runningRequests": "Actieve aanvragen",
+ "runningRequestsDesc": "Realtimeweergave van momenteel actieve upstreamaanvragen",
"clearAll": "Alles wissen",
"confirmClearActiveRequests": "Alle actieve verzoeken wissen?",
"model": "Model",
- "provider": "Provider",
+ "provider": "Aanbieder",
"account": "Account",
- "elapsed": "Elapsed",
+ "elapsed": "Verstreken tijd",
"activeStage": "Fase",
"activeStageUnknown": "Nog niet verzonden naar upstream",
"activeStageRegistered": "Geregistreerd",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "Rate limit-slot verkregen",
"activeStageSendingToProvider": "Verzenden naar upstream",
"activeStageProviderResponseStarted": "Upstream-respons gestart",
- "count": "Count",
+ "count": "Aantal",
"payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "viewPayloads": "Bekijken",
+ "activeCount": "{count} actief",
+ "clientPayload": "Payload van clientverzoek",
+ "upstreamPayload": "Payload van upstreamprovider",
+ "upstreamNotSentYet": "Nog niet naar upstream verzonden",
+ "runningRequestDetailMeta": "Account: {account} — Verstreken tijd: {elapsed}",
+ "export": "Exporteren",
+ "exporting": "Bezig met exporteren...",
+ "exportFailed": "Exporteren mislukt",
"cleanHistoryButton": "Geschiedenis opschonen",
"cleanHistoryTitle": "Loggeschiedenis opschonen?",
"cleanHistoryMessage": "Dit wist permanent alle verzoeklogrijen, verouderde detailrijen en lokale artefactbestanden onder DATA_DIR/call_logs. De livepagina wordt na het opschonen vernieuwd.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "{deleted} logvermeldingen, {deletedArtifacts} artefacten en {deletedDetailedLogs} verouderde detailrijen opgeschoond.",
"cleanHistoryEmpty": "Er is geen aanvraagloggeschiedenis gevonden.",
"cleanHistoryFailed": "Loggeschiedenis opschonen mislukt.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "Tijdsbereik",
+ "lastNHours": "Afgelopen {hours}",
+ "defaultRange": "standaard",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "Kan logboeken niet ophalen",
+ "copyFailed": "Kan logboekvermelding niet kopiëren",
+ "copyLogEntry": "Logboekvermelding kopiëren",
"filterByLevel": "Filteren op logniveau",
"searchPlaceholder": "Logs zoeken…",
"searchAria": "Logitems zoeken",
@@ -4983,9 +4987,9 @@
"multiProvider": "Meerdere aanbieders",
"usageTracking": "Gebruik volgen",
"securityDesc": "Stel een wachtwoord in om uw dashboard te beschermen, of sla dit voorlopig over.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ Zonder wachtwoord kun je tijdens de configuratie geen providers toevoegen. Je kunt ze later vanuit het dashboard toevoegen nadat je een wachtwoord hebt ingesteld.",
"providerDesc": "Sluit uw eerste AI-provider aan. Je kunt later meer toevoegen.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "Je moet eerst een wachtwoord instellen om providers toe te voegen. Ga terug naar de beveiligingsstap en stel een wachtwoord in, of voeg providers later vanuit het dashboard toe.",
"apiKeyRequired": "API-sleutel (vereist)",
"customUrlOptional": "Aangepaste URL (optioneel)",
"testDesc": "Laten we controleren of uw providerverbinding werkt.",
@@ -5059,7 +5063,7 @@
"importFromFileDescription": "Upload een CSV- of JSON-bestand met meerdere providers (elke rij kan een ander providertype zijn). Controleer de verwerkte rijen hieronder en kies welke u wilt importeren.",
"importFromFileChoose": "Bestand kiezen",
"importFromFileSelectHint": "{count} van {total} geselecteerd",
- "importFromFileColProvider": "Provider",
+ "importFromFileColProvider": "Aanbieder",
"importFromFileColName": "Naam",
"importFromFileColBaseUrl": "Basis-URL",
"importFromFileErrorLine": "Rij {line}: {reason}",
@@ -5072,15 +5076,18 @@
"importFromFileImporting": "Importeren…",
"importFromFileImport": "{count} providers importeren",
"importFromFileResult": "{success} providers geïmporteerd ({failed} mislukt)",
+ "importFromFileDownloadTemplate": "CSV-sjabloon downloaden",
+ "importFromFileMoreErrors": "Nog +{count}",
+ "importFromFileSchemaHint": "CSV-kolommen zijn positioneel: provider, name, apiKey, baseUrl (optioneel), priority (optioneel). De kolom provider moet een bestaande beheerde provider-id of een reeds geregistreerde OpenAI/Anthropic-compatibele node-id bevatten — met deze import worden geen nieuwe endpointnodes aangemaakt.",
"adaptaTutorial": {
"title": "Hoe Adapta Web te verbinden",
"introPrefix": "Adapta authenticeert via Clerk. Het token",
"introSuffix": "is een JWT met een lange levensduur waarmee OmniRoute sessies automatisch kan vernieuwen.",
"or": "of",
"step1Title": "Open Adapta-chat",
- "step1DescPrefix": "Open",
+ "step1DescPrefix": "Openen",
"step1DescSuffix": "en meld u aan met uw Gold- of Business-account.",
- "step2Title": "Open DevTools",
+ "step2Title": "DevTools openen",
"step2DescPrefix": "Druk op",
"step2DescSuffix": "om Developer Tools te openen.",
"step3Title": "Ga naar Application → Cookies",
@@ -5161,8 +5168,8 @@
"modelsHiddenCount": "{count} verborgen",
"warningCount": "{count} Waarschuwing",
"noConnections": "Geen verbindingen",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "Verlopen",
+ "expiringSoonBadge": "Verloopt binnenkort",
"freeTier": "Gratis niveau",
"freeTierAvailable": "Gratis niveau beschikbaar",
"hasFreeTooltip": "Gratis niveau beschikbaar",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "Deze aanbieder is beëindigd",
"riskNotice": {
"title": "Voordat je doorgaat",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Aandachtspunten voor gebruik",
"tooltip": "Provider met gebruiksvoorbehouden — klik voor details",
"oauth": "Deze provider gebruikt je officiële productsessie/OAuth, die niet is geautoriseerd voor proxy-/routergebruik. We raden intensief gebruik van autonome agenten (OpenCloud-stijl, lange stappenreeksen, grote batches) af — de upstream kan reageren door het account te beperken of te blokkeren. Gebruik op eigen risico.",
"webCookie": "Deze provider authenticeert via je websessiecookies. De upstream-dienst kan de sessie op elk moment ongeldig maken, waardoor je opnieuw moet inloggen. Niet aanbevolen voor langdurig onbeheerd gebruik. Gebruik op eigen risico.",
@@ -5184,9 +5191,9 @@
"cancel": "Annuleren"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} verbinding(en) gemarkeerd — maximaal {maxFailures} recente fouten{lastFailureSuffix}. Klik om de verbindingsstatus te bekijken.",
+ "lastFailureSuffix": "(laatste fout {time})",
+ "ariaLabel": "Details van de verbindingsstatus bekijken, {count} waarschuwing(en)"
},
"disabled": "Uitgeschakeld",
"enableProvider": "Aanbieder inschakelen",
@@ -5221,7 +5228,7 @@
"failedCreate": "Kan provider niet maken",
"errorOccurred": "Er is een fout opgetreden. Probeer het opnieuw.",
"modelStatus": "Modelstatus",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "Alleen geconfigureerd",
"allModelsOperational": "Alle modellen operationeel",
"modelsWithIssues": "{count} model(len) met problemen",
"allModelsNormal": "Alle modellen reageren normaal.",
@@ -5232,7 +5239,7 @@
"clearing": "Wissen...",
"until": "Tot {time}",
"providerTestFailed": "Providertest mislukt",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "Time-out bij providertest — te veel verbindingen om tegelijk te testen",
"modeTest": "{mode} Testen",
"passedCount": "{count} geslaagd",
"failedCount": "{count} mislukt",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "Pictogram-URL",
"iconUrlHint": "Optioneel. Afbeeldings-URL die wordt getoond als het pictogram van deze provider.",
"iconUrlInvalid": "Ongeldige pictogram-URL. Gebruik een http(s):// of data:image/*;base64 URL.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Tijdzone voor dagelijkse quotareset",
+ "dailyQuotaResetTimezoneHint": "Optionele IANA-tijdzone die wordt gebruikt wanneer de upstream X-RateLimit-Reset weglaat. Laat leeg om een korte afkoelperiode te behouden.",
+ "dailyQuotaResetHourLabel": "Uur waarop het dagelijkse quotum wordt gereset",
+ "dailyQuotaResetHourHint": "Lokaal uur van 0-23 in de bovenstaande tijdzone. Leeg betekent dat er geen klok op knooppuntniveau is.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "Aanbieder niet gevonden",
"deleteConnectionConfirm": "Deze verbinding verwijderen?",
"deleteConnectionConfirmNamed": "Weet u zeker dat u {name} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Geselecteerde verwijderen ({count})",
+ "batchDeleteConfirm": "{count} verbinding(en) verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
+ "batchDeleteSuccess": "{count} verbinding(en) verwijderd",
"batchActivateSelected": "Activeren",
"batchDeactivateSelected": "Deactiveren",
"batchRetestSelected": "Opnieuw testen",
@@ -5288,7 +5295,7 @@
"filterError": "Fout",
"filterBanned": "Geblokkeerd",
"filterCreditsExhausted": "Tegoed op",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Accounts zoeken…",
"noFilteredConnections": "Geen verbindingen komen overeen met het huidige filter.",
"failedSetAlias": "Kan alias niet instellen",
"setAliasSuccess": "Alias {alias} ingesteld",
@@ -5301,14 +5308,14 @@
"openaiCompatibleDetails": "OpenAI-compatibele details",
"messagesApi": "Berichten-API",
"responsesApi": "Reacties-API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Inbeddingen",
+ "audioTranscriptions": "Audiotranscripties",
+ "audioSpeech": "Audiospraak",
+ "imagesGenerations": "Afbeeldingen genereren",
"chatCompletions": "Chat-voltooiingen",
"importingModels": "Importeren...",
"importFromModels": "Importeren uit /modellen",
- "modelsImported": "{count} models imported",
+ "modelsImported": "{count} modellen geïmporteerd",
"allModelsAlreadyImported": "Alle modellen zijn al geïmporteerd",
"noNewModelsToImport": "Geen nieuwe modellen om te importeren — alle modellen staan al in het register of de lijst met aangepaste modellen",
"skippingExistingModels": "{count} bestaande modellen overgeslagen",
@@ -5346,13 +5353,13 @@
"importFailed": "Importeren is mislukt",
"noNewModelsAdded": "Er zijn geen nieuwe modellen toegevoegd.",
"adding": "Toevoegen...",
- "close": "Close",
+ "close": "Sluiten",
"importingModelsTitle": "Modellen importeren",
"copyModel": "Kopieermodel",
"filterModels": "Modellen filteren…",
"testAllRateLimited": "Limiet bereikt, vroegtijdig gestopt",
"hideFailedAuto": "Mislukte modellen automatisch verbergen",
- "selectAllModels": "Select all",
+ "selectAllModels": "Alles selecteren",
"hideAllModels": "Alles verbergen",
"modelsActive": "actief",
"showModel": "Model tonen",
@@ -5360,7 +5367,7 @@
"removeModel": "Model verwijderen",
"rateLimitProtected": "Beschermd",
"rateLimitUnprotected": "Onbeschermd",
- "providerQuotaShort": "Quota",
+ "providerQuotaShort": "Quotum",
"hideConnectionFromProviderQuota": "Verberg dit account voor Provider Quota",
"showConnectionInProviderQuota": "Toon dit account in Provider Quota",
"quotaVisibilityUpdateFailed": "Bijwerken van zichtbaarheid van Provider Quota mislukt",
@@ -5382,8 +5389,8 @@
"bulkAddFormatHint": "Eén sleutel per regel. Formaat: naam|apiKey of gewoon apiKey (automatisch benoemd door index).",
"bulkValidateKeys": "Valideer elke sleutel voordat u deze opslaat (langzamer)",
"bulkAddAllKeys": "Voeg alle sleutels toe",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {# sleutel toegevoegd} other {# sleutels toegevoegd}}",
+ "bulkFailedCount": "{count, plural, one {# mislukt} other {# mislukt}}",
"optional": "Optioneel",
"anthropicCompatibleName": "Antropisch compatibel",
"openaiCompatibleName": "OpenAI-compatibel",
@@ -5400,7 +5407,7 @@
"unexpectedErrorOccurred": "Er is een onverwachte fout opgetreden",
"getApiKey": "API-sleutel ophalen",
"getApiKeyDescription": "Registreer of meld je aan voor een API-sleutel",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# verbinding} other {# verbindingen}}",
"messagesPath": "berichten",
"responsesPath": "reacties",
"chatCompletionsPath": "chat/voltooiingen",
@@ -5415,17 +5422,17 @@
"configured": "geconfigureerd",
"providerProxyConfigureHint": "Configureer proxy voor alle verbindingen van deze provider",
"providerProxy": "Proxy van aanbieder",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": ".env herstellen",
+ "repairEnvWorking": "Bezig met herstellen...",
+ "repairEnvHint": "Herstel ontbrekende standaardwaarden voor OAuth in .env zonder bestaande waarden te overschrijven.",
+ "repairEnvSuccess": "Standaardwaarden voor OAuth hersteld",
+ "repairEnvFailed": "Herstellen van .env mislukt",
"noConnectionsYet": "Nog geen verbindingen",
"addFirstConnectionHint": "Voeg uw eerste verbinding toe om aan de slag te gaan",
"addConnection": "Verbinding toevoegen",
"availableModels": "Beschikbare modellen",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "Ingebouwde modellen",
+ "builtInModelsHint": "Registermodellen voor deze provider. Gebruik het potlood om compatibiliteitsopties in te stellen.",
"pageAutoRefresh": "Pagina wordt automatisch vernieuwd...",
"statusDisabled": "uitgeschakeld",
"statusConnected": "verbonden",
@@ -5471,24 +5478,24 @@
"reauthenticateConnection": "Authenticeer deze verbinding opnieuw",
"proxyConfig": "Proxy-configuratie",
"aliasExistsAlert": "Alias \"{alias}\" bestaat al. Gebruik een ander model of bewerk de bestaande alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "aliasnaam",
+ "clickToSetAlias": "Klik om alias in te stellen",
+ "clickToEditAlias": "Alias: {alias} (klik om te bewerken)",
"openRouterAnyModelHint": "OpenRouter ondersteunt elk model. Voeg modellen toe en maak aliassen voor snelle toegang.",
"modelIdFromOpenRouter": "Model-ID (van OpenRouter)",
"openRouterModelPlaceholder": "antropisch/claude-3-opus",
"customModels": "Aangepaste modellen",
"customModelsHint": "Voeg model-ID's toe die niet in de standaardlijst staan. Deze zullen beschikbaar zijn voor routering.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "Normaliseer toolaanroep-ID's naar 9 tekens (bijv. Mistral)",
+ "preserveDeveloperRoleLabel": "Behoud de ontwikkelaarsrol van OpenAI Responses (niet toewijzen aan system)",
+ "compatAdjustmentsTitle": "Compatibiliteit",
+ "compatButtonLabel": "Compatibiliteit",
+ "compatToolIdShort": "Tool-ID 9",
+ "compatDeveloperShort": "Ontwikkelaarsrol",
+ "compatDoNotPreserveDeveloper": "Ontwikkelaarsrol niet behouden",
+ "compatBadgeNoPreserve": "Niet behouden",
+ "compatProtocolLabel": "Protocol voor clientverzoeken",
+ "compatProtocolHint": "Deze opties zijn van toepassing wanneer OmniRoute deze verzoekstructuur detecteert (OpenAI Chat, Responses API of Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,24 +5537,24 @@
"interceptFetchHint": "Herschrijf systeemeigen web_fetch-tool-aanroepen naar /v1/web/fetch van OmniRoute.",
"interceptionLoadError": "Laden van onderscheppingsinstellingen mislukt: {error}",
"interceptionSaveError": "Opslaan van onderscheppingsinstellingen mislukt: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
+ "ccAliasSectionTitle": "Beschikbaar maken in Claude Code (claude/…)",
+ "ccAliasSectionHint": "Bied de modellen van deze provider aan onder gespiegelde id's met de indeling claude/<provider>/<model>, zodat ze kunnen worden vermeld via de modeldetectie van de gateway van Claude Code. Standaard uitgeschakeld — als u dit inschakelt, verdubbelt het aantal catalogusvermeldingen voor alle clients.",
+ "ccAliasProviderLevelLabel": "Standaardinstelling van provider",
+ "ccAliasModelOverridesLabel": "Overschrijvingen per model",
+ "ccAliasModelOverrideAriaLabel": "Overschrijving voor {modelId}",
+ "ccAliasStateInherit": "Overnemen",
+ "ccAliasStateOn": "Aan",
+ "ccAliasStateOff": "Uit",
+ "ccAliasAddModelPlaceholder": "Model-id (bijv. gpt-4o)",
+ "ccAliasAddModelButton": "Overschrijving toevoegen",
+ "ccAliasLoadError": "Kan instellingen voor detectiealiassen niet laden: {error}",
+ "ccAliasSaveError": "Kan instelling voor detectiealias niet opslaan: {error}",
+ "compatUpstreamHeadersLabel": "Extra upstream-headers",
+ "compatUpstreamHeadersHint": "Instelling met hoge bevoegdheden — hetzelfde vertrouwensniveau als het bewerken van API-inloggegevens van de provider; alleen vertrouwde beheerders mogen deze gebruiken. Wordt samengevoegd nadat OmniRoute authenticatie via de API-sleutel van de provider heeft toegevoegd. Als een aangepaste header dezelfde naam gebruikt als een bestaande header (bijv. Authorization), vervangt uw waarde de automatisch gegenereerde header volledig (inclusief het Bearer-token) — de upstream ziet alleen wat u hebt ingevoerd, niet de sleutel uit de instellingen. Een verkeerde configuratie kan een 401-fout of defecte upstream-authenticatie veroorzaken. Eén rij per header (bijv. extra Authentication voor sommige gateways). Plaats de muisaanwijzer op de waarde of geef deze focus om een voorbeeld te bekijken. Wordt opgeslagen bij verlies van focus, klikken buiten dit paneel of het sluiten ervan.",
+ "compatUpstreamHeaderName": "Headernaam",
+ "compatUpstreamHeaderValue": "Waarde",
+ "compatUpstreamAddRow": "Header toevoegen",
+ "compatUpstreamRemoveRow": "Rij verwijderen",
"compatBadgeUpstreamHeaders": "Headers",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
@@ -5588,26 +5595,26 @@
"email": "E-mail",
"healthCheckMinutes": "Gezondheidscontrole (min)",
"healthCheckHint": "Proactief tokenvernieuwingsinterval. 0 = uitgeschakeld.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "deselectAllModels": "Alles deselecteren",
+ "modelsActiveCount": "{active}/{total} actief",
+ "noModelsMatch": "Geen modellen komen overeen met \"{filter}\"",
+ "groupLabel": "Omgeving",
+ "groupPlaceholder": "bijv. eKaizen, Persoonlijk",
"failedTestConnection": "Kan de verbinding niet testen",
"failed": "Mislukt",
"leaveBlankKeepCurrentApiKey": "Laat dit leeg om de huidige API-sleutel te behouden.",
"editCompatibleTitle": "Bewerk {type} Compatibel",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "Basis-URL van uw {type}-compatibele API. Gebruik Geavanceerde instellingen voor aangepaste endpointpaden.",
"apiKeyForCheck": "API-sleutel (ter controle)",
"testModelIdLabel": "Model-ID (optioneel)",
"testModelIdPlaceholder": "bijv. my-model-id",
"testModelIdHint": "Als de provider geen /models-endpoint heeft, voer dan een model-ID in om in plaats daarvan te valideren via /chat/completions.",
"compatibleProdPlaceholder": "{type} Compatibel (product)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "Token vernieuwd",
+ "tokenRefreshFailed": "Vernieuwen van token mislukt",
"cursorSessionUnchanged": "Sessie al actueel",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Authenticatie toepassen",
+ "exportCodexAuthFile": "Authenticatie exporteren",
"applyClaudeAuthLocal": "Autorisatie toepassen",
"exportClaudeAuthFile": "Autorisatie exporteren",
"importClaudeAuth": "Autorisatie importeren",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} mislukt",
"codexImportBulkZipExtracting": "ZIP uitpakken...",
"codexImportBulkZipError": "Kan ZIP niet uitpakken",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Geavanceerde instellingen",
+ "chatPathLabel": "Pad van chatendpoint",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Aangepast chatpad voor providers met niet-standaard-API's (bijv. /v4/chat/completions)",
+ "modelsPathLabel": "Pad van modellenendpoint",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Aangepast modellenpad voor validatie (bijv. /v4/models)",
"clientIdentityLabel": "Clientidentiteit",
"clientIdentityHint": "Optioneel. Voegt client-fingerprint-headers toe (bijv. User-Agent) die overeenkomen met een bekende CLI voor compatibele gateways die er een verwachten.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "Gedeactiveerd (handmatig)",
+ "statusBanned": "Geblokkeerd / schending van sandboxregels",
+ "statusCreditsExhausted": "Onvoldoende saldo / quotum opgebruikt",
+ "showEmails": "Alle e-mails tonen",
+ "hideEmails": "Alle e-mails verbergen",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Nog een API-sleutel toevoegen of meerdere sleutels plakken",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "Aggregatorgateways",
"enterpriseCloud": "Onderneming en cloud",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "Label voor API-indeling",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
+ "apiRegionChina": "API-regio China",
+ "apiRegionHint": "Hint voor API-regio",
+ "apiRegionInternational": "API-regio Internationaal",
+ "apiRegionLabel": "Label voor API-regio",
+ "apikey": "API-sleutel",
"audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "audioProvidersHeading": "Koptekst voor audioproviders",
"cloudAgentProviders": "Aanbieders van cloudagenten",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Kort label voor audio",
+ "azureOpenAiBaseUrlHint": "Hint voor Azure Open AI-basis-URL",
+ "bailianBaseUrlHint": "Hint voor Bailian-basis-URL",
+ "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai en kopieer de waarde van 'sessionKey'. cf_clearance, __cf_bm en _cfuvid zijn ook vereist voor Cloudflare.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Hint voor Blackbox Web-cookie",
+ "blackboxWebCookiePlaceholder": "Tijdelijke aanduiding voor Blackbox Web-cookie",
"t3ChatWebCookieHint": "Open t3.chat → DevTools → Applicatie → Lokale opslag → https://t3.chat, kopieer 'convex-session-id'. Open vervolgens DevTools → Netwerk en kopieer de volledige Cookie-header van elk chatverzoek. Plak beide waarden in de onderstaande velden.",
"t3ChatWebCookiePlaceholder": "convexe-sessie-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Hint voor Grok Web-cookie",
"blockClaudeExtraUsageDescription": "Wanneer ingeschakeld, markeert OmniRoute deze Claude-verbinding als niet beschikbaar zodra de usage API gerapporteerde extra gebruik in de wachtrij plaatst, zodat de fallback overschakelt naar een andere verbinding in plaats van door te gaan met pay-as-you-go extra facturering.",
"blockClaudeExtraUsageLabel": "Blokkeer extra Claude-gebruik",
"disableCoolingDescription": "Sla de tijdelijke afkoelperiode over, zodat deze verbinding in aanmerking blijft komen, zelfs na herstelbare fouten (definitieve statussen zoals verbannen/verlopen zijn nog steeds van toepassing).",
"disableCoolingLabel": "Afkoelperiode uitschakelen voor deze verbinding",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 sleutel toegevoegd} other {# sleutels toegevoegd}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicaat overgeslagen} other {# duplicaten overgeslagen}}",
+ "bulkPasteHint": "Plak één API-sleutel per regel. Lege regels worden genegeerd en dubbele sleutels worden overgeslagen.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Voegt de bètaheader voor redact-thinking toe voor CC Compatible-upstreams die verborgen Claude-denkstreams vereisen.",
+ "ccCompatibleRedactThinkingLabel": "Bètafunctie redact-thinking inschakelen",
+ "ccCompatibleSummarizeThinkingDescription": "Voegt `display: \"summarized\"` toe aan CC Compatible-denkverzoeken, zodat ondersteunde Claude-modellen zichtbare denkdelta's streamen.",
+ "ccCompatibleSummarizeThinkingLabel": "Samengevatte weergave van denkproces inschakelen",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,20 +5811,20 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "Gebruik waar mogelijk de prioriteitsservicelaag voor Codex-verzoeken.",
+ "codexFastServiceTierLabel": "Snelle Codex-servicelaag",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
+ "compatUpstreamHeaderNamePlaceholder": "Tijdelijke aanduiding voor headernaam van compatibele upstream",
+ "compatUpstreamHeaderValuePlaceholder": "Tijdelijke aanduiding voor headerwaarde van compatibele upstream",
+ "compatible": "Compatibel",
+ "configuredCount": "Aantal geconfigureerd",
+ "consoleApiKeyOracleHint": "Hint voor Console API Key Oracle",
+ "consoleApiKeyOracleLabel": "Label voor Console API Key Oracle",
+ "consoleApiKeyOraclePlaceholder": "Tijdelijke aanduiding voor Console API Key Oracle",
"newApiUserIdLabel": "New-API-gebruikers-ID",
"newApiUserIdPlaceholder": "bijv. 12345",
"newApiUserIdHint": "Waarde van de New-Api-User-header van AgentRouter, gebruikt samen met de console-API-sleutel om het quotasaldo op te halen.",
- "newApiAggregatorToggleLabel": "Aggregator Gateway",
+ "newApiAggregatorToggleLabel": "Aggregatorgateway",
"newApiAggregatorToggleHint": "Schakel balansdetectie in voor New-API / One-API / Sub2API aggregator nodes. Het dashboard toont de balansbadge en quota-preflight routering zal uitgeputte accounts overslaan.",
"newApiAggregatorConsoleApiKeyHint": "Systeemtoegangstoken voor de aggregator's /api/user/self eindpunt. Niet de routerings-API-sleutel.",
"newApiAggregatorUserIdHint": "New-Api-User headerwaarde gebruikt om de quotabalans van de aggregator-gebruiker op te halen.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "Schakel balansdetectie in voor New-API / One-API / Sub2API aggregator compatibele knooppunten",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Hint voor aangepaste user-agent",
+ "customUserAgentLabel": "Label voor aangepaste user-agent",
+ "databricksBaseUrlHint": "Hint voor Databricks-basis-URL",
+ "defaultThinkingStrengthHint": "Wordt gebruikt wanneer in een verzoek geen redeneerinspanning is opgegeven.",
+ "defaultThinkingStrengthLabel": "Standaard denkkracht",
+ "deleteAllExtraApiKeys": "Alles verwijderen",
+ "excludedModelsHint": "Hint voor uitgesloten modellen",
+ "excludedModelsLabel": "Label voor uitgesloten modellen",
+ "excludedModelsPlaceholder": "Plaatshouder voor uitgesloten modellen",
+ "expirationBannerExpired": "Vervaldatumbanner: verlopen",
+ "expirationBannerExpiredDesc": "Beschrijving van vervaldatumbanner: verlopen",
+ "expirationBannerExpiringSoon": "Vervaldatumbanner: verloopt binnenkort",
+ "expirationBannerExpiringSoonDesc": "Beschrijving van vervaldatumbanner: verloopt binnenkort",
+ "extraApiKeyMasked": "Sleutel {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Hint voor extra API-sleutels",
+ "extraApiKeysLabel": "Label voor extra API-sleutels",
+ "apiKeyHealthLabel": "Status van API-sleutel",
+ "apiKeyStatusActive": "Actief",
+ "apiKeyStatusWarning": "Waarschuwing ({count} mislukkingen)",
+ "apiKeyStatusInvalid": "Ongeldig",
+ "primaryKey": "Primaire sleutel",
+ "apiKeyInvalidAlert": "{count} API-sleutel(s) als ongeldig gemarkeerd vanwege authenticatiefouten in verbindingen: {connections}. Ze worden overgeslagen bij de rotatie. Klik om te controleren.",
+ "apiKeyInvalidAlertTitle": "Statuswaarschuwing voor API-sleutels",
+ "apiKeyWarningAlert": "{count} API-sleutel(s) met de waarschuwingsstatus vanwege een verhoogd foutpercentage in verbindingen: {connections}. Controleer ze om rotatieproblemen te voorkomen.",
+ "apiKeyWarningAlertTitle": "Waarschuwing voor API-sleutel",
+ "googlePseInfo": "Informatie over Google PSE",
"antigravityProjectIdHint": "Optionele overschrijving voor Antigravity Cloud Code-verzoeken. Laat dit veld leeg om het project te gebruiken dat tijdens Google OAuth is ontdekt.",
"antigravityClientProfileLabel": "Clientprofiel",
"antigravityClientProfileHint": "Kies welke Antigravity-clientidentiteit OmniRoute aan de API presenteert.",
@@ -5861,18 +5868,18 @@
"tierFast": "Snel",
"antigravityProjectIdLabel": "Google Cloud-project-ID",
"antigravityProjectIdPlaceholder": "mijn-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Plaatshouder voor Grok Web-cookie",
+ "herokuBaseUrlHint": "Hint voor Heroku-basis-URL",
+ "hideEmail": "E-mailadres verbergen",
+ "imageProviders": "Afbeeldingsproviders",
"videoProviders": "Videogeneratie",
"embeddingRerankProviders": "Insluitingen en herrangschikking",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "Kort label voor afbeeldingen",
+ "llmProviders": "LLM-providers",
+ "localProviderApiKeyOptionalHint": "Hint voor optionele API-sleutel van lokale provider",
+ "localProviderBaseUrlHint": "Hint voor basis-URL van lokale provider",
+ "localProviders": "Lokale providers",
+ "maxConcurrentWholeNumberError": "Fout: maximum aantal gelijktijdige aanvragen moet een geheel getal zijn",
"m365TierLabel": "Copilot-tier",
"m365TierHint": "Kies welke Microsoft 365 Copilot-omgeving deze verbinding gebruikt. Individueel is de standaard consumenten-BizChat; Onderwijs en Enterprise (werk) kiezen voor hun tenant-omgevingen.",
"m365TierIndividualOption": "Individueel (standaard)",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "Goedkoop",
"tierOverridePremium": "Premium",
"tierOverrideHelpText": "Zet deze provider vast op een routerings-tier in plaats van OmniRoute dit te laten afleiden uit de modelprijzen.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Hint voor Muse Spark Web-cookie",
+ "museSparkWebCookiePlaceholder": "Plaatshouder voor Muse Spark Web-cookie",
+ "oauth": "OAuth",
+ "openCliTools": "CLI-tools openen",
+ "openSettings": "Instellingen openen",
+ "openaiResponsesStoreDescription": "Toestaan dat compatibele Responses API-verzoeken de opgeslagen responsstatus behouden.",
+ "openaiResponsesStoreLabel": "OpenAI Responses-opslag",
+ "perplexitySearchSharedKeyInfo": "Informatie over gedeelde sleutel voor Perplexity Search",
+ "perplexityWebCookieHint": "Hint voor Perplexity Web-cookie",
+ "perplexityWebCookiePlaceholder": "Tijdelijke aanduiding voor Perplexity Web-cookie",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Rate limit-overschrijvingen",
"rateLimitOverridesMaxConcurrentHint": "Overschrijving van het maximaal aantal gelijktijdige verzoeken voor deze verbinding. Overschrijft de limiet op accountniveau.",
"rateLimitOverridesMaxConcurrentLabel": "Max. gelijktijdig (rate limit)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Maximale tijd (ms) dat een verzoek op een plek binnen de snelheidslimiet mag wachten voordat het mislukt. Overschrijft de algemene weerbaarheidsinstelling alleen voor deze verbinding.",
+ "rateLimitOverridesMaxWaitMsLabel": "Max. wachttijd in wachtrij (ms)",
"rateLimitOverridesMinTimeHint": "Minimale tijd (ms) tussen verzoeken. Overschrijft de standaardvertraging van de rate limiter.",
"rateLimitOverridesMinTimeLabel": "Min. interval (ms)",
"rateLimitOverridesRpdHint": "Maximaal aantal verzoeken per dag voor deze verbinding. Overschrijft de standaardinstelling van de provider.",
@@ -5911,55 +5918,55 @@
"rateLimitOverridesTpdHint": "Maximaal aantal tokens per dag voor deze verbinding. Overschrijft de standaardwaarde van de provider.",
"rateLimitOverridesTpdLabel": "TPD (Tokens/dag)",
"rateLimitOverridesTpmHint": "Maximaal aantal tokens per minuut voor deze verbinding. Overschrijft de standaardwaarde van de provider.",
- "rateLimitOverridesTpmLabel": "TPM (Tokens/min)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "rateLimitOverridesTpmLabel": "TPM (tokens/min)",
+ "refreshOauthTokenTitle": "Titel voor vernieuwen van OAuth-token",
+ "regionHint": "Regiohint",
+ "regionLabel": "Regiolabel",
+ "removeThisKey": "Deze sleutel verwijderen",
+ "routingTagsHint": "Hint voor routeringstags",
+ "routingTagsLabel": "Label voor routeringstags",
+ "routingTagsPlaceholder": "Tijdelijke aanduiding voor routeringstags",
+ "search": "Zoeken",
+ "searchEngineIdHint": "Hint voor zoekmachine-ID",
+ "searchEngineIdLabel": "Label voor zoekmachine-ID",
+ "searchEngineIdRequired": "Zoekmachine-ID vereist",
+ "searchProvider": "Zoekprovider",
+ "searchProviderDesc": "Beschrijving van zoekprovider",
"searchProviders": "Zoekaanbieders...",
"searchByModel": "Zoeken op model…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Koptekst voor zoekproviders",
+ "searxngBaseUrlHint": "Hint voor Searxng-basis-URL",
+ "searxngInfo": "Searxng-informatie",
+ "sessionCookieLabel": "Label voor sessiecookie",
+ "showEmail": "E-mailadres tonen",
+ "snowflakeBaseUrlHint": "Hint voor Snowflake-basis-URL",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Hint voor taggroep",
+ "tagGroupLabel": "Label voor taggroep",
+ "tagGroupPlaceholder": "Tijdelijke aanduiding voor taggroep",
+ "testModel": "Model testen",
+ "testingModel": "Model wordt getest",
"modelTestQuotaTooltip": "Quota uitgeput — wordt morgen gereset of heeft een aanvulling nodig",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Badge voor verlopen token",
+ "tokenExpiredTitle": "Titel voor verlopen token",
+ "tokenExpiresSoonTitle": "Titel voor token dat binnenkort verloopt",
+ "tokenShort": "Token kort",
+ "totalKeysRotating": "{count, plural, one {1 sleutel wordt geroteerd} other {# sleutels worden geroteerd}}",
+ "unhideModel": "Model zichtbaar maken",
+ "upstreamProxyProviders": "Upstream-proxyproviders",
"validationModelIdHint": "Model dat wordt gebruikt om de API-sleutel te verifiëren. Laat leeg om het eerste beschikbare model van de provider te gebruiken.",
"validationModelIdLabel": "Validatiemodel",
"validationModelIdPlaceholder": "bijv. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Plak je Service Account-JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) of een OAuth-access_token",
+ "webCookieProviders": "Webcookieproviders",
+ "weeklyShort": "Wekelijks kort",
+ "xiaomiMimoBaseUrlHint": "Hint voor Xiaomi Mimo-basis-URL",
"globalCodexServiceMode": "Globale Codex-servicemodus",
"connect": "Verbinden",
"manualApiKey": "Handmatige API-sleutel",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Ontdek inloggegevens van AI-providers (OpenAI, Anthropic, Google, Mistral, xAI) die door Zed IDE zijn opgeslagen in de sleutelhanger van het besturingssysteem en importeer ze als verbindingen. Zed IDE moet op deze machine zijn geïnstalleerd.",
"zedImportButton": "Importeren vanuit Zed",
"zedImportFailed": "Zed importeren mislukt",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Hint voor Zed-import",
+ "zedImportNetworkError": "Netwerkfout bij Zed-import",
+ "zedImportNone": "Geen Zed-import",
"zedImportSuccess": "Geïmporteerde {credentials} referentie(s) van Zed voor {providers} provider(s)",
"zedImporting": "Importeren…",
"zedNoCredentials": "Geen Zed-inloggegevens gevonden in de sleutelhanger",
@@ -6028,7 +6035,7 @@
"claudeImportEntryName": "item {number}",
"claudeImportParseError": "parsefout",
"claudeImportNoValidEntries": "Geen geldige items om te importeren",
- "webFetch": "Web Fetch",
+ "webFetch": "Web ophalen",
"webFetchTooltip": "Providers die inhoud extraheren uit web-URL's (HTML → Markdown, scrapen, screenshot)",
"webFetchProvidersHeading": "Web Fetch-providers",
"compatibleProvidersDesc": "OpenAI-compatibele en Anthropic-compatibele eindpunten die u host of configureert. Verwijs elke OpenAI SDK naar uw eigen URL en leid verzoeken hiernaartoe.",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "API-proxy met korting voor meer dan 40 modellen, waaronder GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5. Haal je API-sleutel op via https://freeaiapikey.com/dashboard. Basis-URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "Ontvang $300 gratis API-tegoed op https://freemodel.dev — geen betalingsgegevens vereist. OpenAI-compatibel eindpunt. GPT-5.4- en GPT-5.5-modellen beschikbaar.",
"friendliai": "Gratis abonnement voor serverloze inferentie — geen creditcard vereist",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Gratis niveau via Google AI Studio; quota per model worden niet langer gepubliceerd (bekijk de quotapagina in AI Studio) — geen creditcard vereist.",
"gigachat": "Verbind GigaChat (Sber) met een API-sleutel.",
"gitlab": "Persoonlijk toegangstoken van GitLab voor de openbare Code Suggestions-API. Configureer een zelf-gehoste basis-URL als je gitlab.com niet gebruikt.",
"gitlawb-gmi": "Haal je API-sleutel op uit het Gitlawb Opengateway-dashboard.",
@@ -6180,7 +6187,7 @@
"glm-cn": "Verbind GLM Coding (China) met een API-sleutel.",
"glmt": "Vooraf ingesteld GLM-profiel met een hoger tokenbudget, denken ingeschakeld en een langere time-out.",
"getgoapi": "Verbind GoAPI met een API-sleutel.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Gratis abonnement: limieten per model (200K tokens/dag per chatmodel; zie console.groq.com/docs/rate-limits voor RPM/RPD) — geen betaalmethode geregistreerd.",
"haiper": "Haal de API-sleutel op via haiper.ai/haiper-api",
"heroku": "Verbind Heroku AI met een API-sleutel.",
"hcnsec": "Haal de API-sleutel op via api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "Maak een API-sleutel aan op https://app.requesty.ai en plak deze hier als een Bearer-token. OpenAI-compatibel eindpunt op https://router.requesty.ai/v1, met een live /v1/models-catalogus.",
"runwayml": "Runway-videogeneratie is taakgebaseerd. OmniRoute dient text-to-video- of image-to-video-taken in, peilt /v1/tasks/[id] en normaliseert de voltooide video-uitvoer terug naar het OpenAI-achtige /v1/videos/generations-antwoord.",
"sambanova": "$5 gratis tegoed bij aanmelding (30 dagen geldig), geen creditcard vereist",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Maak een API-sleutel aan op https://seekai.cc en plak deze hier als Bearer-token. OpenAI-compatibele basis-URL: https://seekai.cc/v1.",
"sap": "Modeldetectie gebruikt /v2/lm/scenarios/foundation-models/models op AI_API_URL. Chatverzoeken gebruiken deploymentUrl/chat/completions en vereisen AI-Resource-Group.",
"sarvam": "Sarvam AI is OpenAI-compatibel op /v1. OmniRoute onderzoekt /v1/models en leidt chatverkeer naar /v1/chat/completions. Modellen zijn afgestemd op Indic-talen.",
"scaleway": "1M gratis tokens voor nieuwe accounts — EU/AVG-conform (Parijs), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "Verbind Claude Code met de bestaande OAuth-flow.",
"cline": "Verbind Cline met de bestaande OAuth-flow.",
"cursor": "Verbind Cursor IDE met de bestaande OAuth-flow.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Verbind Cursor met een gebruikers-API-sleutel (crsr_...) van cursor.com/dashboard/api; geen IDE-sessie nodig.",
"github": "Verbind GitHub Copilot met de bestaande OAuth-flow.",
"gitlab-duo": "OAuth-applicatie met ai_features + read_user scopes. Configureer GITLAB_DUO_OAUTH_CLIENT_ID en optioneel GITLAB_DUO_OAUTH_CLIENT_SECRET op deze OmniRoute-instantie.",
"kilocode": "Verbind Kilo Code met de bestaande OAuth-flow.",
@@ -6319,7 +6326,7 @@
"bedrockModelsDescription": "Amazon Bedrock-modellen zijn afgestemd op de AWS-regio. Importeer uit /models of voeg Bedrock-model-ID's toe die zijn ingeschakeld in de geselecteerde regio.",
"bedrockModelPlaceholder": "antropisch.claude-sonnet-4-6",
"addProviderSessionCookieTitle": "Voeg {provider} sessiecookie toe",
- "openWebProviderSite": "Open {host}",
+ "openWebProviderSite": "{host} openen",
"addProviderWebTokenTitle": "Voeg {provider} webtoken toe",
"addProviderConnectionTitle": "Voeg {provider}-verbinding toe",
"webTokenCredentialLabel": "Token voor websessie",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "Kopieer de vereiste inloggegevens uit het eigen domein van de provider. Kopieer voor cookies alleen de waarde van de Cookie-header en laat Cookie: weg.",
"webSessionGuideStep3Manual": "Handmatige pad: open de browserontwikkelaarstools (F12 → Netwerk), vernieuw de pagina, open een geauthenticeerd verzoek en kopieer de waarde van de Cookie-header uit de Verzoekheaders — laat de Cookie: prefix weg.",
"webSessionGuideStep4": "Plak het hier en controleer de verbinding. Als het niet meer werkt, logt u opnieuw in en vervangt u het door een nieuwe waarde.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har-bestand importeren",
+ "harImportButtonBusy": "Importeren…",
+ "harImportButtonHint": "Exporteer vanuit het tabblad Network van DevTools nadat je ten minste één chatbericht hebt verzonden.",
+ "harImportStatusValid": "Geïmporteerd — nog ~{minutes}m geldig.",
+ "harImportStatusExpiringSoon": "Geïmporteerd — nog slechts ~{minutes}m geldig.",
+ "harImportStatusExpired": "Geïmporteerd, maar dit token is al verlopen ({minutes}m geleden) — exporteer een nieuw HAR-bestand.",
+ "harImportStatusUnknownExpiry": "Geïmporteerd. De vervaldatum kon niet worden gelezen.",
+ "harImportErrorNotJson": "Dat bestand bevat geen geldige JSON — is het echt een .har-export?",
+ "harImportErrorNoEntries": "Deze HAR bevat geen geregistreerde netwerkvermeldingen.",
+ "harImportErrorNoChathubUrl": "Geen Copilot-chatverbinding gevonden in deze HAR. Stuur ten minste één chatbericht in m365.cloud.microsoft voordat je exporteert.",
+ "harImportErrorUnparsableUrl": "De chatverbinding is gevonden, maar de URL kon niet worden gelezen.",
+ "harImportErrorMissingFields": "De chatverbinding is gevonden, maar het token ontbrak.",
+ "harImportErrorReadFailed": "Dat bestand kon niet worden gelezen.",
+ "harImportErrorUnknown": "Er kon geen inloggegeven uit dat HAR-bestand worden gehaald.",
"webSessionSecurityHint": "Behandel dit als een wachtwoord: het heeft toegang tot uw ingelogde webaccount totdat het verloopt of wordt ingetrokken.",
"webNoAuthGuideTitle": "Geen legitimatie vereist",
"webNoAuthGuideBody": "{provider} heeft geen API-sleutel of cookie nodig. Sla de verbinding op om het gratis webeindpunt te gebruiken.",
@@ -6361,7 +6368,7 @@
"huggingchatLabel": "HuggingChat (Gratis)",
"huggingchatDesc": "Gratis LLM-chat via huggingface.co/chat",
"poeWebLabel": "Poe Web",
- "poeWebDesc": "Multi-model chat via poe.com",
+ "poeWebDesc": "Chat met meerdere modellen via poe.com",
"veniceWebLabel": "Venice Web",
"veniceWebDesc": "Privacygerichte AI-chat",
"v0VercelWebLabel": "v0 Vercel Web",
@@ -6401,7 +6408,7 @@
"batchUpdateFailed": "Batch-update mislukt",
"batchUpdateNetworkError": "Netwerkfout tijdens batchupdate",
"categoryAudio": "Audio",
- "categoryCloudAgent": "Cloud Agent",
+ "categoryCloudAgent": "Cloudagent",
"categoryIde": "IDE",
"categoryLocal": "Lokaal",
"categorySearch": "Zoeken",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Opdrachtcode is verlopen",
"commandCodeConnected": "Opdrachtcode verbonden",
"commandCodeConnectionAdded": "Command Code verbinding toegevoegd",
+ "clearConnectionCooldown": "Afkoelperiode wissen",
+ "clearConnectionCooldownInProgress": "Wissen…",
+ "clearConnectionCooldownTitle": "Wis de afkoelperiode nu — gebruik dit wanneer het quota upstream al is vernieuwd",
"commandCodeLinkExpired": "De link voor de opdrachtcode is verlopen",
"commandCodeOpeningStudio": "Opdracht Code Studio openen…",
"commandCodePopupBlocked": "Pop-up geblokkeerd. Sta pop-ups toe en probeer Command Code Connect opnieuw.",
"commandCodeStartFailed": "Kon opdracht Code auth niet starten",
"connectionDeleted": "Verbinding verwijderd",
"connectionFallback": "verbinding",
+ "connectionCooldownCleared": "Cooldown gewist — verbinding opnieuw aan routering toegevoegd",
"coolingConnectionsDescription": "Deze verbindingen koelen af na hun laatste verzoek. OmniRoute slaat ze over tot de timer verloopt — handmatig uitschakelen is niet nodig.",
"coolingConnectionsTitle": "Momenteel aan het koelen ({count})",
+ "failedClearConnectionCooldown": "Wissen van cooldown mislukt",
"failedDeleteAlias": "Kon alias niet verwijderen",
"failedDeleteConnection": "Verbinding verwijderen mislukt",
"failedDistributeProxies": "Mislukt om proxies te distribueren.",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "Instellingen voor opgeslagen model-eindpunt",
"searchByModelAria": "Zoeken op model",
"selectSupportedEndpoint": "Selecteer ten minste één ondersteunde eindpunt",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Testomgeving / CLI"
},
"settings": {
"title": "Instellingen",
@@ -6550,29 +6557,29 @@
"systemPrompt": "Systeemprompt",
"thinkingBudget": "Denkbudget",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP-proxy",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
+ "proxySubTabsAria": "Proxysecties",
+ "requestBodyLimitTitle": "Limiet voor aanvraagbody",
+ "requestBodyLimitDescription": "Maximale grootte van de API-payload die wordt geaccepteerd voordat een aanvraagbody wordt geparseerd. Speciale uploadroutes behouden ten minste hun ingebouwde limiet van 100 MB.",
+ "requestBodyLimitInputLabel": "Limiet voor aanvraagbody in MB",
+ "requestBodyLimitEmptyError": "Voer een limiet in MB in",
+ "requestBodyLimitWholeNumberError": "Gebruik een geheel getal",
"requestBodyLimitMinimumError": "Minimum is {min} MB",
"requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "requestBodyLimitLoadFailed": "Laden van instellingen voor de aanvraaglimiet mislukt",
+ "requestBodyLimitSaveSuccess": "Limiet voor aanvraagbody opgeslagen",
+ "requestBodyLimitSaveFailed": "Opslaan van limiet voor aanvraagbody mislukt",
+ "requestBodyLimitSaving": "Opslaan...",
+ "requestBodyLimitSave": "Opslaan",
+ "requestBodyLimitCurrent": "Huidig: {value}",
"cacheConfigLoadFailed": "Kon de cache-instellingen niet laden",
"cacheConfigSaveSuccess": "Cache-instellingen opgeslagen",
"cacheConfigSaveFailed": "Kon de cache-instellingen niet opslaan",
"modelCatalogTtlWholeNumberError": "Gebruik een geheel getal",
"modelCatalogTtlMinimumError": "Minimum is {min} ms",
"modelCatalogTtlMaximumError": "Maximaal is {max} ms",
- "modelCatalogCacheTtl": "Model Catalog Cache TTL",
+ "modelCatalogCacheTtl": "TTL van modelcataloguscache",
"modelCatalogCacheTtlDescription": "Hoe lang worden modelcatalogusreacties gecached voordat ze worden vernieuwd",
"modelCatalogCacheTtlLabel": "Model catalog cache TTL in milliseconden",
"modelCatalogCacheTtlSaving": "Opslaan...",
@@ -6589,59 +6596,59 @@
"enablePassword": "Wachtwoord inschakelen",
"darkMode": "Donkere modus",
"lightMode": "Lichtmodus",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "Geheugen",
+ "memoryDesc": "Permanent gespreksgeheugen voor meerdere sessies",
+ "memoryEnabled": "Geheugen inschakelen",
+ "memoryEnabledDesc": "Wanneer ingeschakeld, voegt OmniRoute relevante eerdere context toe.",
"memoryTokenCostWarning": "Let op: wanneer geheugen is ingeschakeld, injecteert OmniRoute tot {tokens} tokens aan opgehaalde context in elk chatverzoek — dit verhoogt het tokengebruik en de kosten. Om injectie voor een specifiek verzoek over te slaan, verzendt u de header \"x-omniroute-no-memory: true\".",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
+ "maxTokens": "Max. aantal tokens",
+ "retentionDays": "Bewaartermijn",
"recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "recentDesc": "Chronologisch venster",
+ "semantic": "Semantisch",
+ "semanticDesc": "Vectorzoekopdracht",
+ "hybrid": "Hybride",
+ "hybridDesc": "Recent + semantisch",
+ "skillsTitle": "Vaardigheden",
+ "skillsDesc": "Tools voor modellen",
+ "skillsEnabled": "Vaardigheden inschakelen",
+ "skillsEnabledDesc": "Hiermee kunnen agents functies activeren.",
+ "skillsComingSoon": "Marketplace voor skills binnenkort beschikbaar.",
+ "memorySkillsTitle": "Geheugen en skills",
+ "memorySkillsDesc": "Permanente context en mogelijkheden",
+ "modelsDevTitle": "Modeldatabase",
+ "modelsDevDesc": "Prijzen, mogelijkheden en specificaties automatisch synchroniseren vanuit models.dev",
+ "modelsDevEnabled": "Synchronisatie met models.dev inschakelen",
+ "modelsDevEnabledDesc": "Modelprijzen, mogelijkheden en specificaties ophalen uit de opensourcedatabase models.dev",
+ "modelsDevInterval": "Synchronisatie-interval",
+ "syncNow": "Nu synchroniseren",
+ "syncing": "Bezig met synchroniseren...",
+ "lastSync": "Laatste synchronisatie",
+ "never": "Nooit",
"justNow": "zojuist",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Synchronisatiestatistieken",
+ "modelsDevStatsDesc": "Huidige gegevensdekking van models.dev",
"providers": "Aanbieders",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Modellen met prijsgegevens",
+ "capabilities": "Mogelijkheden",
+ "lastSyncCount": "Aantal bij laatste synchronisatie",
+ "lastSyncFull": "Laatste volledige synchronisatie",
+ "modelsDevInfo": "Hoe het werkt",
+ "modelsDevInfoDesc": "models.dev is een opensourcedatabase met specificaties van AI-modellen, onderhouden door het SST/OpenCode-team. De database bevat prijzen, mogelijkheden, contextlimieten en modaliteiten voor meer dan 4.000 modellen van meer dan 100 providers.",
+ "modelsDevInfoResolution": "Volgorde voor prijsbepaling (hoogste prioriteit eerst):",
+ "modelsDevInfoOrder": "Gebruikersoverschrijving → models.dev → LiteLLM → Hardcoded standaardwaarde",
"systemTheme": "Systeem Thema",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Debugmodus inschakelen",
"logToolSourcesToggle": "Toolbronnen loggen",
"logToolSourcesDescription": "Genereer per verzoek een diagnostische logregel met een samenvatting van het aantal tools en de uitsplitsing naar MCP-/hosted-/client-bronnen.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "Informatie vastmaken aan de startpagina",
"homePinnedSectionsDesc": "Kies welke secties u bovenaan de startpagina wilt vastpinnen.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "Quotumlimieten van providers",
+ "homeProviderQuotaLimitsDesc": "De container met de quotumstatus van providers (met de knop Alles vernieuwen) bovenaan de startpagina vastmaken.",
+ "homeQuickStart": "Snel aan de slag",
+ "homeQuickStartDesc": "Het paneel Snel aan de slag op de startpagina weergeven.",
+ "homeProviderTopology": "Providertopologie",
+ "homeProviderTopologyDesc": "De providertopologie op de startpagina weergeven.",
"accountEmailVisibility": "Zichtbaarheid van account-e-mails",
"accountEmailVisibilityDesc": "Toon volledige account-e-mails op de schermen voor providers, combo's, logs, quota en playground. Schakel dit uit om ze standaard te maskeren.",
"comboConfigMode": "Combo-configuratiemodus",
@@ -6657,28 +6664,28 @@
"providerQuotaAutoRefreshInterval": "Vernieuwingsinterval",
"providerQuotaAutoRefreshIntervalDesc": "Hoe vaak de quotaweergave moet worden vernieuwd, in seconden.",
"seconds": "seconden",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Zijbalkitems weergeven",
"enableCache": "Cache inschakelen",
"cacheTTL": "TTL cachen",
"maxCacheSize": "Maximale cachegrootte",
"clearCache": "Cache wissen",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "Cache is gewist",
+ "clearCacheFailed": "Cache wissen mislukt",
"cacheHits": "Cache-hits",
"cacheMisses": "Cache-missers",
"hitRate": "Hitpercentage",
"cacheEntries": "Cache-invoer",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
+ "cacheSettings": "Cache-instellingen",
+ "semanticCache": "Semantische cache",
+ "maxEntries": "Maximumaantal vermeldingen",
+ "ttlMinutes": "TTL (minuten)",
"promptCache": "Snelle cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "strategy": "Strategie",
+ "preserveClientCache": "Clientcache behouden",
+ "enabled": "Ingeschakeld",
"loading": "Loading...",
"saving": "Opslaan...",
- "save": "Save",
+ "save": "Opslaan",
"circuitBreaker": "Stroomonderbreker",
"retryPolicy": "Beleid voor opnieuw proberen",
"maxRetries": "Maximaal aantal nieuwe pogingen",
@@ -6686,21 +6693,21 @@
"timeoutMs": "Time-out (ms)",
"enableSystemPrompt": "Systeemprompt inschakelen",
"systemPromptText": "Systeemprompttekst",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedAccounts": "Geblokkeerde accounts automatisch uitschakelen",
+ "autoDisableDescription": "Markeer providerverbindingen permanent als gedeactiveerd wanneer ze specifieke definitieve blokkeringssignalen retourneren (bijv. HTTP 403 'verify your account'). Hierdoor worden ze uit de combinatieroulatie verwijderd.",
+ "autoDisableThreshold": "Blokkeringsdrempel",
+ "autoDisableThresholdDesc": "Aantal opeenvolgende blokkeringssignalen dat vereist is vóór permanente deactivering.",
+ "autoDisableBannedScope": "Automatisch uitschakelen toepassen op",
+ "autoDisableBannedScopeDesc": "Inlogaccounts (betaalde abonnementen en gratis accounts) kunnen door de upstreamprovider worden geblokkeerd als OmniRoute na een blokkering pogingen blijft uitvoeren. Betaalde prepaid-API-sleutels lopen dat risico niet — laat ze in de pool zodat fill-first de volgende sleutel kan gebruiken.",
+ "autoDisableBannedScopeAll": "Alle verbindingen",
+ "autoDisableBannedScopeAllDesc": "Deactiveer elke verbinding die een permanent blokkeringssignaal retourneert, inclusief prepaid-API-sleutels.",
+ "autoDisableBannedScopeSubscription": "Alleen inlog-/abonnementsaccounts",
+ "autoDisableBannedScopeSubscriptionDesc": "Deactiveer OAuth-, cookie-, sessie- en webinlogaccounts (betaald of gratis). Prepaid-API-sleutels blijven actief, zodat de routering kan overschakelen.",
"customBannedSignals": "Verboden trefwoorden",
"customBannedSignalsDesc": "Aanvullende trefwoorden die detectie van permanente accountblokkering activeren. Ingebouwde trefwoorden zijn altijd van toepassing.",
"customBannedSignalsPlaceholder": "bijv. api key revoked",
"noCustomBannedSignals": "Geen aangepaste trefwoorden. Alleen ingebouwde trefwoorden zijn actief.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Veerkrachtstructuur",
"resilienceStructureDesc": "Deze pagina configureert alleen gedrag. De status van de live-breker wordt weergegeven op de Gezondheidspagina. Combo-specifieke nieuwe pogingen en round-robin slotcontrole blijven op de combo-instellingen staan.",
"enableThinking": "Maak het denken mogelijk",
"maxThinkingTokens": "Max Thinking-tokens",
@@ -6748,21 +6755,21 @@
"showTailscaleFunnelDesc": "Toon Tailscale Funnel-besturingselementen op de eindpuntpagina.",
"showNgrokTunnel": "ngrok-tunnel",
"showNgrokTunnelDesc": "Toon ngrok Tunnel-besturingselementen op de eindpuntpagina.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Zijbalkitems verbergen",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "Alles",
+ "presetAllDesc": "Alles weergeven",
+ "presetEssentials": "Essentieel",
+ "presetEssentialsDesc": "Beginnerstraject - Geavanceerde tools blijven vindbaar via zoeken",
+ "presetMinimal": "Minimaal",
+ "presetMinimalDesc": "Alleen kernpagina's",
+ "presetDeveloper": "Ontwikkelaar",
+ "presetDeveloperDesc": "Ontwikkelaars- en proxytools",
+ "presetAdmin": "Beheerder",
+ "presetAdminDesc": "Monitoring en audit",
+ "settingsSidebarTitle": "Zijbalk aanpassen",
+ "settingsSidebarDesc": "Kies welke zijbalkitems worden weergegeven. Met Essentieel blijven Geavanceerde tools vindbaar via zoeken.",
"hideHealthLogs": "Statuschecklogboeken verbergen",
"hideHealthLogsDesc": "Indien AAN: onderdruk [HealthCheck]-berichten in de serverconsole",
"themeAccent": "Themakleur",
@@ -6772,23 +6779,23 @@
"themeBlue": "Blauw",
"themeRed": "Rood",
"themeGreen": "Groen",
- "themeViolet": "Violet",
+ "themeViolet": "Paars",
"themeOrange": "Oranje",
"themeCyan": "Cyaan",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Pas de naam en het logo van de toepassing aan",
+ "appName": "Naam van toepassing",
+ "appNameDesc": "Weergavenaam in de zijbalk en het browsertabblad",
+ "customLogo": "URL van aangepast logo",
+ "customLogoDesc": "URL naar uw aangepaste logoafbeelding",
+ "uploadLogo": "Logo uploaden",
+ "resetLogo": "Standaardinstellingen herstellen",
+ "logoPreview": "Voorbeeld",
+ "customFavicon": "Browserfavicon",
+ "customFaviconDesc": "URL naar uw aangepaste favicon (weergegeven in het browsertabblad)",
+ "uploadFavicon": "Favicon uploaden",
+ "resetFavicon": "Favicon herstellen",
+ "faviconPreview": "Faviconvoorbeeld",
"logoFileTooLarge": "Logobestand moet kleiner zijn dan 500 KB",
"faviconFileTooLarge": "Faviconbestand moet kleiner zijn dan 50 KB",
"invalidLogoFileType": "Ongeldig bestandstype. Upload PNG, JPG, SVG, GIF of WebP.",
@@ -6799,7 +6806,7 @@
"flushCache": "Cache leegmaken",
"flushing": "Doorspoelen…",
"size": "Grootte",
- "hits": "Hits",
+ "hits": "Treffers",
"evictions": "Uitzettingen",
"loadingCacheStats": "Cachestatistieken laden…",
"globalProxy": "Mondiale proxy",
@@ -6887,26 +6894,26 @@
"localCoreHint": "Lokale Kernhint",
"nodeSummary": "Knoop Samenvatting",
"providerRequired": "Provider Vereist",
- "providerRouting": "Provider Routing",
+ "providerRouting": "Providerroutering",
"refresh": "Vernieuwen",
"refreshInterval": "Vernieuwingsinterval",
"ruleModeDescription": "Regelmodus Beschrijving"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
+ "bulkHealthcheck": "Bulkstatuscontrole",
+ "bulkHealthcheckDesc": "Test alle geconfigureerde proxy's met een doel-URL om te bepalen welke werken.",
+ "healthcheckTesting": "Bezig met testen...",
+ "healthcheckAll": "Alles controleren",
+ "healthcheckFailed": "Kan statuscontrole niet uitvoeren",
+ "healthcheckTestingAll": "Alle proxy's worden parallel getest...",
+ "healthcheckTotal": "Totaal",
+ "healthcheckWorking": "Werkend",
+ "healthcheckFailedLabel": "Mislukt",
"healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "healthcheckProxyUrl": "Proxy-URL",
+ "healthcheckLatency": "Latentie",
"proxyDocumentationScopeTitle": "Proxy-scope-resolutie",
"proxyDocumentationScopeDescBefore": "OmniRoute herleidt de uitgaande proxy in volgorde van prioriteit:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "combinatie → account → provider → globaal",
"proxyDocumentationScopeDescAfter": ". De meest specifieke scope wint.",
"proxyDocumentationAddTitle": "Een aangepaste proxy toevoegen",
"proxyDocumentationAddDescBefore": "Ga naar de",
@@ -6980,7 +6987,7 @@
"passthroughDesc": "Geen wijzigingen – de klant bepaalt het denkbudget",
"thinkingModePassthrough": "Doorvoer",
"thinkingModePassthroughDesc": "Laat de reden van de cliënt ongewijzigd (inspanningen, samenvatting, denkblokken). Vereist voor Codex/Desktop zichtbare gedachten. Standaard.",
- "thinkingModeAuto": "Auto (strip)",
+ "thinkingModeAuto": "Automatisch (verwijderen)",
"thinkingModeAutoDesc": "Verwijder alle velden voor klantdenken/redenering (redenering, redenering_inspanning, Claude denken, Gemini denken_config) en laat de provider standaardwaarden verzinnen. Kan denkpanelen verbergen en klant samenvattingsverzoeken onderbreken.",
"thinkingModeCustom": "Aangepast",
"thinkingModeCustomDesc": "Overschrijf elke aanvraag met een vast denk-tokenbudget dat je hieronder instelt.",
@@ -7030,11 +7037,11 @@
"providersBlocked": "{count} provider(s) geblokkeerd voor /models",
"blockProviderTitle": "Blokkeer {provider}",
"unblockProviderTitle": "Deblokkeer {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "cliFingerprint": "CLI-fingerprintmatching",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count} provider(s) met actieve CLI-fingerprint",
+ "enableFingerprintTitle": "Fingerprint inschakelen voor {provider}",
+ "disableFingerprintTitle": "Fingerprint uitschakelen voor {provider}",
"systemTransforms": "Systeemblok-transformatiepijplijn",
"systemTransformsDesc": "Per provider bestelde pijplijn met transformaties die op de aanvraagtekst worden toegepast voordat deze wordt doorgestuurd. Ondersteunt elke provider-ID.",
"systemTransformsAddProvider": "Aanbieder toevoegen",
@@ -7063,17 +7070,17 @@
"costOptDesc": "Geef de voorkeur aan het goedkoopste beschikbare account",
"resetAware": "Reset-bewuste RR",
"resetAwareDesc": "Geef de voorkeur aan accounts met een gezond resterend quotum en een bijna-reset",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Quotagewogen",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
+ "strictRandom": "Strikt willekeurig",
+ "strictRandomDesc": "Geschud kaartspel — gebruikt elk account één keer voordat opnieuw wordt geschud",
"stickyLimit": "Kleverige limiet",
"stickyLimitDesc": "Gesprekken per account voordat u overstapt",
"routingStrategyTitle": "Routeringsstrategie",
"routingStrategySubtitle": "Overeenkomen met 9router: account round-robin, sticky limieten en combo-rotatie",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Roulerend",
"accountRoundRobinDesc": "Doorloop accounts om de belasting te verdelen",
- "comboRoundRobin": "Combo Round Robin",
+ "comboRoundRobin": "Combinatie roulerend",
"comboRoundRobinDesc": "Doorloop combo-doelen in plaats van altijd met de eerste te beginnen",
"comboStickyLimit": "Combo Sticky-limiet",
"comboStickyLimitDesc": "Aanroepen per combo-doel voor het wisselen",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "Globale accountstrategie overschrijven voor deze provider (9router-pariteit).",
"providerRoutingStrategy": "Accountstrategie",
"providerRoutingInheritGlobal": "Globale standaard overnemen",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Drempelwaarde voor quotumcontrole vooraf",
+ "quotaPreflightSubtitle": "Accounts waarvan het quotum is opgebruikt overslaan voordat de aanvraag upstream wordt verzonden",
+ "quotaPreflightEnable": "Quotumcontrole vooraf inschakelen",
+ "quotaPreflightEnableDesc": "Controleer vóór elke aanvraag het resterende quotum van het account (vensters van 5 uur / wekelijks / maandelijks). Accounts op of onder de drempelwaarde worden overgeslagen zonder upstream-aanroep. Drempelwaarden per venster die zijn ingesteld op de pagina Provider Quota hebben altijd voorrang op de standaardwaarde hier.",
+ "quotaPreflightCutoff": "Globale drempelwaarde (min. resterend %)",
+ "quotaPreflightCutoffDesc": "Stop met het gebruik van een account wanneer het resterende quotum daalt tot dit percentage of lager, voor elk venster zonder eigen drempelwaarde. Komt overeen met de balken voor het resterende percentage op de pagina Provider Quota.",
+ "quotaPreflightWindowsHint": "Vensters met een eigen drempelwaarde per venster of per provider (ingesteld in het dialoogvenster Cutoff op de pagina Provider Quota) worden niet beïnvloed door deze standaardwaarde.",
+ "quotaPreflightLoadFailed": "Kan instellingen voor quotumcontrole vooraf niet laden.",
"modelAliases": "Modelaliassen",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesTitle": "Modelaliassen",
+ "modelAliasesDesc": "Wijs modelnamen opnieuw toe met exacte overeenkomsten of jokertekenpatronen.",
"addCustomAlias": "Aangepast Alias Toevoegen",
"deprecatedModelId": "Verouderd model-ID",
"newModelId": "Nieuw model-ID",
@@ -7107,7 +7114,7 @@
"enableDegradationHint": "Wanneer ingeschakeld, worden achtergrondtaken zoals titelgeneratie en samenvattingen automatisch naar goedkopere modellen gerouteerd",
"tasksDetected": "Taken gedetecteerd",
"degradationMap": "Model Degradatie Kaart",
- "premiumModel": "Premium model",
+ "premiumModel": "Premiummodel",
"cheapModel": "Goedkoop model",
"detectionPatterns": "Detectiepatronen",
"newPattern": "bijv. \"genereer een titel\"",
@@ -7184,7 +7191,7 @@
"comboStrategyAria": "Combinatiestrategie",
"priority": "Prioriteit",
"weighted": "Gewogen",
- "contextRelay": "Context Relay",
+ "contextRelay": "Contextdoorgifte",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "Maximaal aantal nieuwe pogingen",
"retryDelayLabel": "Vertraging opnieuw proberen (ms)",
@@ -7210,10 +7217,10 @@
"concurrencyPerModel": "Gelijktijdigheid / model",
"queueTimeout": "Wachtrijtime-out (ms)",
"queueDepth": "Wachtrijdiepte",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "Overdrachtsdrempel",
+ "contextRelayMaxMessages": "Max. aantal berichten voor samenvatting",
+ "contextRelaySummaryModel": "Samenvattingsmodel",
+ "contextRelayProviderNote": "Contextdoorgifte genereert momenteel overdrachten voor Codex-accounts en gebruikt deze waarden als globale standaardinstellingen voor nieuwe of niet-geconfigureerde combinaties.",
"providerProfiles": "Providerprofielen",
"providerProfilesDesc": "Afzonderlijke veerkrachtinstellingen voor OAuth (sessiegebaseerd) en API Key (gemeten) providers. OAuth-providers hanteren strengere drempels vanwege lagere tarieflimieten.",
"oauthProviders": "OAuth-providers",
@@ -7295,7 +7302,7 @@
"daysAgo": "{count}d geleden",
"backupReasonManual": "handleiding",
"backupReasonPreRestore": "vooraf herstellen",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
+ "connectionsCount": "{count, plural, one {# verbinding} other {# verbindingen}}",
"noChangesSinceBackup": "Geen wijzigingen sinds de laatste back-up",
"backupFailed": "Back-up mislukt",
"restoreFailed": "Herstellen mislukt",
@@ -7325,7 +7332,7 @@
"configured": "geconfigureerd",
"none": "Geen",
"modelOverrideValuePlaceholder": "Numerieke waarde",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Engelse kommagescheiden waarden, bijv. low, medium, high",
"addKeyValue": "Sleutelwaarde toevoegen",
"noModelOverrides": "Geen overschrijvingen geconfigureerd voor dit model.",
"modelOverrideLoadFailed": "Laden van modeloverschrijvingen mislukt",
@@ -7374,25 +7381,25 @@
"editPricing": "Prijzen bewerken",
"viewFullDetails": "Bekijk volledige details",
"themeCoral": "Koraal",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Adaptieve volumeroutering",
+ "adaptiveVolumeRoutingDesc": "Schaal verbindingen dynamisch op basis van het payloadvolume en de doorvoerbelasting.",
+ "lkgpToggleTitle": "Laatst bekende goede provider (LKGP)",
+ "lkgpToggleDesc": "Als dit is ingeschakeld, onthoudt de router welke provider als laatste een succesvol antwoord heeft geleverd en probeert deze bij volgende aanvragen als eerste.",
"echoRequestedModelTitle": "Gevraagde modelnaam echoën in antwoorden",
"echoRequestedModelDesc": "Indien ingeschakeld, echoot het `model`-veld in het antwoord de alias of combonaam die de client heeft aangevraagd in plaats van de upstream modelnaam. Dit lost problemen op met strikte clients (bijv. Claude Desktop) die een antwoord weigeren waarvan het model niet overeenkomt met het verzoek.",
"webSearchRouteTitle": "Webzoekroutering",
"webSearchRouteDesc": "Wanneer een verzoek een systeemeigen web_search-tool bevat, routeer dan het hele verzoek naar dit model in plaats van het standaardmodel — handig voor providers die de web_search-servertool van Anthropic niet implementeren. Laat leeg om uit te schakelen.",
"webSearchRoutePlaceholder": "bijv. openrouter,anthropic/claude-3.5-sonnet",
"paidModelPatternWarning": "Dit patroon komt alleen overeen met betaalde modellen — schakel betaalde modellen in of pas het patroon aan.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP-cache wissen",
+ "lkgpCacheCleared": "LKGP-cache is gewist",
+ "lkgpCacheClearFailed": "Wissen van LKGP-cache is mislukt",
+ "days": "Dagen",
+ "lkgp": "LKGP-modus",
+ "lkgpDesc": "Laatst bekende goede provider (voorspelbare veerkracht)",
+ "maintenance": "Onderhoud",
+ "purgeExpiredLogs": "Verlopen logs verwijderen",
+ "purgeLogsFailed": "Verwijderen van logs is mislukt",
"logsDeleted": "{count, plural, =0 {Geen verlopen logboeken opgeschoond} one {# verlopen logboek opgeschoond} other {# verlopen logboeken opgeschoond}}",
"resetUsageData": "Gebruiksgegevens resetten",
"resetUsageDataDesc": "Selecteer hoe ver terug u gebruiksgegevens, verzoeklogboeken en analysegegevens wilt verwijderen. Providerconfiguratie, verbindingen, API-sleutels, combo's en instellingen blijven behouden. Deze actie kan niet ongedaan worden gemaakt.",
@@ -7403,45 +7410,45 @@
"resetUsagePeriod_12h": "12 uur",
"resetUsagePeriod_1d": "1 dag",
"resetUsagePeriod_7d": "7 dagen",
- "resetUsagePeriod_30d": "30 days",
+ "resetUsagePeriod_30d": "30 dagen",
"resetUsagePeriod_all": "Altijd",
"resetUsageSuccess": "{count, plural, =0 {Geen verbruiksgegevensrijen verwijderd} one {Verbruiksgegevens resetten (# rij verwijderd)} other {Verbruiksgegevens resetten (# rijen verwijderd)}}",
"resetUsageFailed": "Resetten van verbruiksgegevens mislukt",
"reset": "Resetten",
"resetting": "Resetten...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "Contextgeoptimaliseerd",
+ "contextOptDesc": "Routeert op basis van de vereisten voor het contextvenster en de gesprekslengte",
+ "cacheOpt": "Cachegeoptimaliseerd",
+ "cacheOptDesc": "Behoudt hetzelfde herbruikbare promptvoorvoegsel op hetzelfde provideraccount",
+ "priorityDesc": "Sequentiële terugval: probeert eerst provider 1, daarna provider 2, enzovoort",
+ "weightedDesc": "Verdeelt verkeer volgens procentuele gewichten over providers",
+ "modelRoutingTitle": "Modelrouteringsregels",
+ "modelRoutingDesc": "Routeer modellen automatisch naar specifieke combinaties met glob-patronen",
+ "addRule": "Regel toevoegen",
+ "routeToCombo": "Routeren naar combinatie",
+ "selectCombo": "Selecteer combinatie...",
+ "priorityHint": "Hoger = eerder gecontroleerd. Gebruik 10+ voor specifieke patronen.",
+ "patternHint": "Gebruik * voor willekeurige tekens en ? voor één teken. Niet hoofdlettergevoelig.",
+ "noRoutingRules": "Er zijn geen routeringsregels geconfigureerd. Aanvragen gebruiken standaard de globale combinatie.",
+ "routingRuleHint": "Voeg een regel toe zoals claude-opus* -> frontier-combo om aanvragen automatisch te routeren.",
+ "deleteRoutingRule": "Deze modelrouteringsregel verwijderen?",
+ "exactMatchMode": "Exacte overeenkomst",
+ "wildcardPatternMode": "Jokertekenpatroon",
+ "exactMatchModeDesc": "Gebruik exacte aliassen voor verouderde of hernoemde model-ID's.",
+ "wildcardPatternModeDesc": "Gebruik jokertekenaliassen met * en ? wanneer een reeks modellen naar één doel moet verwijzen.",
+ "noExactAliasesConfigured": "Geen aliassen voor exacte overeenkomsten geconfigureerd.",
+ "wildcardRulesTitle": "Jokertekenregels",
+ "noWildcardAliasesConfigured": "Geen jokertekenaliassen geconfigureerd.",
+ "overview": "Overzicht",
+ "unknownError": "Onbekende fout",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "Witte lijst",
+ "syncDisabled": "Synchronisatie uitgeschakeld",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,29 +7456,29 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "Synchronisatie ingeschakeld",
+ "blacklist": "Zwarte lijst",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
+ "syncedModels": "Gesynchroniseerde modellen",
"budget": "Budget",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "Kan de prijzen niet opnieuw instellen: {reason}",
- "tab": "Tab",
+ "tab": "Tabblad",
"pricingSavedProvider": "Prijzen opgeslagen voor {provider}",
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "Kan prijzen niet opslaan: {reason}",
"pricingResetProvider": "Prijsreset voor {provider}",
- "nextSync": "Next Sync",
+ "nextSync": "Volgende synchronisatie",
"pricingSyncFailedWithReason": "Synchronisatie van prijzen mislukt: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "Gesynchroniseerde prijzen wissen",
+ "compressionTitle": "Promptcompressie",
+ "compressionDesc": "Verminder het tokengebruik door prompts te comprimeren voordat ze naar providers worden verzonden",
"compressionGuidanceFullGuideLink": "Volledige compressiegids",
"compressionGuidanceShow": "Details",
"compressionGuidanceHide": "Details verbergen",
"compressionGuidanceSafeDefault": "Veilige standaard",
"compressionGuidanceCacheImpact": "Cache-impact",
- "tokenSaverTitle": "Token Saver",
+ "tokenSaverTitle": "Tokenbesparing",
"tokenSaverSubtitle": "Verbruik minder tokens per verzoek.",
"tokenSaverToolOutput": "Tool-output",
"tokenSaverToolOutputDesc": "Schoon de output van git, grep, ls, tree en log op voordat deze de provider bereikt.",
@@ -7481,15 +7488,15 @@
"tokenSaverInputCompressionDesc": "Herschrijf geschikte chatgeschiedenis met behoud van code, URL's en intentie.",
"tokenSaverFineTunePrefix": "Elke engine fine-tunen op",
"tokenSaverFineTuneSuffix": "of engines per verzoek combineren op",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Compressiemodus",
+ "compressionModeOff": "Uit",
+ "compressionModeOffDesc": "Geen compressie toegepast",
+ "compressionModeLite": "Licht",
+ "compressionModeLiteDesc": "Vermindering van witruimte en lege regels",
+ "compressionModeStandard": "Standaard (Caveman)",
+ "compressionModeStandardDesc": "Regelgebaseerde compressie met meer dan 30 patronen; codeblokken en URL's blijven behouden",
+ "compressionModeAggressive": "Agressief",
+ "compressionModeAggressiveDesc": "Samenvatting + compressie van toolresultaten + progressieve veroudering voor maximale besparing",
"compressionModeUltra": "Ultra",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "Agressieve motorconfiguratie",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "Aantal recente berichten dat op elke verouderingslaag wordt bewaard (hoger = beter bewaard)",
"compressionToolStrategies": "Tool Resultaatstrategieën",
"compressionToolStrategiesDesc": "Schakel compressiestrategieën in voor verschillende typen toolresultaten",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "Algemene instellingen",
+ "compressionAutoTrigger": "Drempelwaarde voor automatisch activeren",
+ "compressionCacheTTL": "Cache-TTL",
+ "compressionPreserveSystem": "Systeemprompt behouden",
"compressionPreserveSystemAlways": "Altijd",
"compressionPreserveSystemWhenNoCache": "Wanneer geen cache",
"compressionPreserveSystemNever": "Nooit",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "Opgeslagen",
"compressionExclusionsCount": "{count, plural, one {# uitsluiting} other {# uitsluitingen}} geconfigureerd",
"compressionExclusionsEmpty": "Geen uitsluitingen geconfigureerd — elk model/eindpunt komt in aanmerking voor compressie (standaardgedrag).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Configuratie van de Caveman-engine",
+ "compressionCavemanConfigDesc": "Stem de regelgebaseerde compressie-engine nauwkeurig af",
"compressionCavemanPanelHint": "De aan/uit-status en het niveau worden ingesteld in het paneel:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Berichtrollen comprimeren",
+ "compressionRoleUser": "Gebruiker",
+ "compressionRoleAssistant": "Assistent",
+ "compressionRoleSystem": "Systeem",
+ "compressionMinLength": "Minimale berichtlengte",
+ "compressionSkipRules": "Compressieregels overslaan",
+ "compressionSkipRulesDesc": "Klik op regels om ze tijdens de compressie over te slaan",
+ "compressionPreservePatterns": "Patronen behouden",
+ "compressionPreservePatternsDesc": "Regex-patronen die nooit worden gecomprimeerd (één per regel)",
+ "compressionLogTitle": "Compressielogboek",
+ "compressionLogEmpty": "Nog geen gecomprimeerde aanvragen. Compressiestatistieken verschijnen hier wanneer aanvragen worden verwerkt terwijl compressie is ingeschakeld.",
"minutes": "minuten",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "Opdrachtafhankelijke filtering van tooluitvoer",
+ "compressionModeCodexResponses": "Tooluitvoer van Responses",
+ "compressionModeCodexResponsesDesc": "Voorzichtige compressie voor geschikte shell-, patch-, zoek-, build- en JSON-uitvoer",
+ "compressionModeStacked": "Gestapeld",
+ "compressionModeStackedDesc": "RTK-filtering van tooluitvoer, gevolgd door Caveman-berichtcompressie",
+ "qdrantTitle": "Qdrant (vectorgeheugen)",
+ "qdrantDesc": "Optioneel. Indexeert semantische herinneringen in een externe vectordatabase om ze sneller op te halen.",
+ "qdrantStatusActive": "Actief",
+ "qdrantStatusError": "Fout",
+ "qdrantStatusDisabled": "Uitgeschakeld",
+ "qdrantEnable": "Qdrant inschakelen",
+ "qdrantEnableDesc": "Wanneer dit is ingeschakeld, kan de semantische/hybride strategie Qdrant gebruiken om herinneringen op te halen.",
+ "qdrantTesting": "Testen...",
+ "qdrantTestConnection": "Verbinding testen",
+ "qdrantSaved": "Configuratie opgeslagen",
+ "qdrantSaveError": "Opslaan van configuratie mislukt",
+ "qdrantHostHint": "Zonder poort. Voorbeeld: 127.0.0.1 of http://qdrant",
+ "qdrantPort": "Poort",
+ "qdrantPortHint": "Standaardwaarde van Qdrant: 6333",
+ "qdrantCollectionHint": "Waar geheugenpunten worden opgeslagen.",
+ "qdrantEmbeddingModel": "Embeddingmodel",
+ "qdrantHelpTitle": "Hulp bij snelle configuratie",
+ "qdrantHelpQuickTitle": "Snelle configuratie (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Host: IP/URL van Qdrant, poort: 6333, collectie: omniroute_memory.",
+ "qdrantHelpStep2": "2. Gebruik bij nvidia/llama-nemotron-embed-vl-1b-v2:free een collectiedimensie van 2048.",
+ "qdrantHelpStep3": "3. Modelveld: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Sla op, test de verbinding en test vervolgens het zoeken.",
+ "qdrantEmbeddingQuickSelect": "Snel kiezen uit gevonden modellen...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "Indeling: provider/model. De inloggegevens van de provider moeten zijn geconfigureerd.",
+ "qdrantApiKeyPlaceholderKeep": "(laat leeg om de huidige sleutel te behouden)",
+ "qdrantApiKeyPlaceholderOptional": "(laat leeg indien niet gebruikt)",
+ "qdrantSaveHint": "Tip: bewerk host/port/collection/model en klik op Opslaan. De API-sleutel is optioneel.",
+ "qdrantSearchTestTitle": "Zoektest",
+ "qdrantSearchTestDesc": "Genereert een embedding en zoekt in Qdrant.",
+ "qdrantSearchPlaceholder": "Voorbeeld: gebruikersvoorkeuren, geschiedenis, enz.",
+ "qdrantNoResults": "Geen resultaten (of Qdrant is niet geconfigureerd).",
+ "qdrantCleanupTitle": "Bewaartermijn en opschoning",
+ "qdrantCleanupDesc": "Verwijdert verlopen en oude punten op basis van",
+ "searching": "Bezig met zoeken...",
+ "cleaning": "Bezig met opschonen...",
+ "cleanNow": "Nu opschonen",
"optional": "Optioneel",
"current": "Huidig",
"remove": "Verwijderen",
@@ -7594,21 +7601,21 @@
"oneproxyTotalProxies": "Totaal proxy's",
"oneproxyAvgQuality": "Gemiddelde kwaliteit",
"resilienceScope": "Toepassingsgebied:",
- "resilienceTrigger": "Trigger:",
+ "resilienceTrigger": "Activering:",
"resilienceEffect": "Effect:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "Aanvraagwachtrij en -frequentie",
+ "resilienceAutoEnableApiKeyProviders": "Automatisch inschakelen voor providers met API-sleutel",
+ "resilienceRequestsPerMinute": "Aanvragen per minuut",
+ "resilienceMinTimeBetweenRequests": "Minimale tijd tussen aanvragen",
+ "resilienceConcurrentRequests": "Gelijktijdige aanvragen",
+ "resilienceConnectionScopeConcurrentRequests": "Gelijktijdige aanvragen per verbinding/quotabereik",
+ "resilienceGlobalConcurrentRequests": "Globale gelijktijdige upstream-aanvragen (0 = uitgeschakeld)",
"resilienceMaxQueueWaitTime": "Maximale wachtrijwachttijd",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Basisafkoelperiode",
+ "resilienceUseUpstreamRetryHints": "Hints voor opnieuw proberen van upstream gebruiken",
+ "resilienceDefaultPerProvider": "Standaard (per provider)",
+ "resilienceAlwaysOn": "Altijd aan",
+ "resilienceAlwaysOff": "Altijd uit",
"routingRemoveEntry": "Invoer verwijderen",
"routingNeedlesSubstrings": "Naalden (substrings die overeenkomen)",
"routingCaseSensitive": "Hoofdlettergevoelig",
@@ -7665,7 +7672,7 @@
"routingAntigravitySignatureDesc": "Bepaal of OmniRoute alleen opgeslagen Gemini-gedachtesignaturen hergebruikt of ook gevalideerde, door de client geleverde signaturen accepteert in Antigravity-compatibele tool-call-flows.",
"routingAntigravitySignatureEnabledLabel": "Ingeschakeld",
"routingAntigravitySignatureEnabledDesc": "Huidig gedrag. Negeer door de client geleverde handtekeningen en blijf de opgeslagen OmniRoute-flow gebruiken.",
- "routingAntigravitySignatureBypassLabel": "Bypass",
+ "routingAntigravitySignatureBypassLabel": "Omzeilen",
"routingAntigravitySignatureBypassDesc": "Accepteer door de client geleverde handtekeningen na een lichte validatie en val terug op de opgeslagen handtekening wanneer deze ongeldig is.",
"routingAntigravitySignatureBypassStrictLabel": "Strikte bypass",
"routingAntigravitySignatureBypassStrictDesc": "Vereis volledige protobuf-validatie alvorens een door de client geleverde handtekening te accepteren.",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "Verzonden naar het vision-model voordat de geëxtraheerde beschrijving weer in het oorspronkelijke verzoek wordt geïnjecteerd.",
"visionBridgeTimeoutMs": "Time-out (ms)",
"visionBridgeMaxImagesPerRequest": "Max. aantal afbeeldingen per aanvraag",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Maximaal aantal back-offstappen",
+ "resilienceProviderBreakerTitle": "Circuitbreaker per provider",
+ "resilienceFailureThreshold": "Drempelwaarde voor fouten",
+ "resilienceDegradationThreshold": "Drempelwaarde voor degradatie",
"resilienceResetTimeout": "Time-out opnieuw instellen",
"resilienceFailureThresholdLabel": "Mislukkingsdrempel",
"resilienceResetTimeoutLabel": "Time-out opnieuw instellen",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Afkoelperiode voor verbinding",
"resilienceUseUpstreamRetryHintsLabel": "Gebruik upstream-tips voor opnieuw proberen",
"resilienceUseUpstream429BreakerLabel": "Gebruik upstream 429-hints (breker)",
"resilienceMaxBackoffStepsLabel": "Max. uitstelstappen",
"resilienceYes": "Ja",
"resilienceNo": "Nee",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Standaard",
"storageDatabaseBackupRetention": "Bewaren van databaseback-ups",
"storageDatabaseBackups": "Databaseback-ups",
"storageBackupRetentionDescription": "Automatische SQLite-back-ups worden opgeslagen in",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "Legacy JSON succesvol geïmporteerd!",
"jsonImportFailed": "Importeren van JSON mislukt",
"jsonImportError": "Fout tijdens JSON-import",
+ "jsonImportAuthRequired": "Authenticatie is vereist om een verouderde JSON-configuratie te importeren. Meld u aan of voltooi eerst de configuratie.",
+ "databaseSettingsAuthRequiredTitle": "Authenticatie vereist",
+ "databaseSettingsAuthRequiredBody": "Database-instellingen en JSON-import zijn alleen beschikbaar voor een geverifieerde beheerder. Meld u aan of voltooi de configuratie om ze te bekijken en te bewerken.",
+ "databaseSettingsAuthRequiredCta": "Aanmelden",
"storagePurgeData": "Gegevens opschonen",
"storagePurgeDataDesc": "Verwijder onmiddellijk alle records zonder retentiecontroles toe te passen. Wees voorzichtig.",
"storageRetentionCleanup": "Retentie-instellingen",
@@ -7820,18 +7831,18 @@
"compressionSettingsAutoClarityBypass": "Automatische helderheidsbypass",
"compressionEffectivePipeline": "Effectieve pipeline:",
"compressionDerivedOff": "uit",
- "compressionDerivedRuns": "runs: {pipeline}",
+ "compressionDerivedRuns": "uitvoeringen: {pipeline}",
"compressionDerivedMode": "modus: {mode}",
"compressionAdaptiveOff": "Adaptief contextbudget: uit (legacy auto-trigger)",
"compressionAdaptiveTarget": "Adaptief ({mode}, beleid: {policy}) — doel ≈ {target, number} tokens (voor een venster van {contextLimit, number} tokens)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Adaptief contextbudget",
+ "compressionAdaptiveModeOff": "Uit (verouderde automatische activering)",
+ "compressionAdaptiveModeFloor": "Ondergrens (altijd garanderen dat het past)",
+ "compressionAdaptiveModeReplace": "Automatische activering vervangen",
+ "compressionAdaptivePolicy": "Budgetbeleid",
+ "compressionAdaptivePolicyReserve": "Uitvoer reserveren",
+ "compressionAdaptivePolicyPercentage": "Percentage van venster",
+ "compressionAdaptivePolicyAbsolute": "Absoluut tokenbudget",
"compressionOutputStylesDescription": "Injecteer instructies voor responsvormgeving zonder de uitvoer van de provider te herschrijven. Vrij te combineren.",
"mcpAccessibilityDescription": "Beperkt de scope van MCP-tooluitvoer (afzonderlijke opslag).",
"compressionStylesTileSummary": "{tokens, number} tokens bespaard · {runs, plural, one {# run gestyled} other {# runs gestyled}}",
@@ -7850,7 +7861,7 @@
"description": "Blokdeduplicatie over meerdere beurten."
},
"ccr": {
- "label": "CCR (Retrieval)",
+ "label": "CCR (Ophalen)",
"description": "Inhoudsgeadresseerde retrieval-markers."
},
"lite": {
@@ -7862,11 +7873,11 @@
"description": "Filteren van opdrachtuitvoer."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Uitvoer van Responses-tool",
+ "description": "Voorzichtige compressie voor ondersteunde uitvoer van de Responses-tool."
},
"headroom": {
- "label": "Headroom",
+ "label": "Speling",
"description": "Tabelvormige JSON-compactie."
},
"relevance": {
@@ -7874,7 +7885,7 @@
"description": "Extractieve zinsscore ten opzichte van de laatste gebruikersquery."
},
"caveman": {
- "label": "Caveman",
+ "label": "Holbewoner",
"description": "Op regels gebaseerde prozacompressie."
},
"aggressive": {
@@ -7904,12 +7915,12 @@
"description": "YAGNI-ladder: kleinste werkende wijziging, geen ongevraagde abstracties."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (luie senior developer)",
+ "description": "Discipline van een luie senior developer: beklim de YAGNI-ladder, los de hoofdoorzaak op, maak de kleinst mogelijke werkende wijziging."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Ik heb ADHD (actie eerst)",
+ "description": "Actiegerichte uitvoer: begin met de volgende actie, nummer de stappen, geef één concrete volgende stap, geen inleiding."
},
"terse-cjk": {
"label": "Beknopt CJK (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI-terugval",
"cliproxyapiEnableFallback": "Schakel CLIProxyAPI Fallback in",
"cliproxyapiUrl": "CLIProxyAPI-URL",
+ "headroomProxyTitle": "Headroom-proxy",
+ "headroomProxyDesc": "URL van de optionele Headroom-proxy voor tokenbesparing. Indien leeg, wordt HEADROOM_URL of http://localhost:8787/ gebruikt.",
+ "headroomProxyUrl": "Headroom-URL",
+ "headroomProxyUrlHint": "Loopback-URL's kunnen vanaf deze pagina worden gestart. Externe URL's worden alleen getest.",
+ "headroomProxySave": "Opslaan",
+ "headroomProxyStart": "Starten",
+ "headroomProxyStop": "Stoppen",
+ "headroomProxyExternalHint": "Deze URL is geen loopback-URL, dus OmniRoute zal de lokale CLI niet starten.",
"cliproxyapiStatus": "CLIProxyAPI-status",
"cliproxyapiNotDetected": "Niet gedetecteerd",
"cliproxyapiImportAuthTitle": "Accounts importeren uit CLIProxyAPI",
@@ -7934,9 +7953,9 @@
"cliproxyapiImportAuthButton": "Accounts importeren",
"payloadRulesTitle": "Payload-regels",
"payloadRulesDesc": "Configureer payloadmutaties voor verzoeken per model en protocol. Wijzigingen worden opgeslagen in de instellingen en direct na het opslaan hot-reloaded in de runtime.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "standaard",
"payloadRuleDefaultDesc": "Past parameters alleen toe wanneer het doelpad ontbreekt in de uitgaande payload.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "overschrijven",
"payloadRuleOverrideDesc": "Dwingt waarden af op de payload en vervangt alles wat al aanwezig is op dat pad.",
"payloadRuleFilterTitle": "filter",
"payloadRuleFilterDesc": "Verwijdert geblokkeerde parameters uit de payload voordat het upstream-verzoek wordt verzonden.",
@@ -7976,8 +7995,8 @@
"responsesStateTitle": "Status van antwoorden",
"responsesStateDesc": "Beheer hoe OmniRoute previous_response_id doorstuurt.",
"responsesStateModeLabel": "Afhandeling van previous_response_id",
- "responsesStateModeAuto": "Auto",
- "responsesStateModeStrip": "Strip",
+ "responsesStateModeAuto": "Automatisch",
+ "responsesStateModeStrip": "Strook",
"responsesStateModePreserve": "Behouden",
"responsesStateHint": "Auto verwijdert previous_response_id tenzij een verbinding expliciet OpenAI Responses-opslag inschakelt. Strip is het veiligst voor stateless clients zoals VS Code Custom Endpoint; context hangt dan af van de client die de volledige geschiedenis verzendt.",
"responsesStateSaveError": "Bijwerken van instelling voor antwoordenstatus mislukt",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "Injecteer wereldwijd service_tier=priority voor OpenAI Codex-verzoeken.",
"codexFastTierHint": "Indien ingeschakeld, voegt OmniRoute service_tier=priority toe aan uitgaande Codex-aanvragen voor verbindingen die nog geen laag specificeren. Prioriteitslaag vereist een OpenAI Enterprise API-sleutel of het ChatGPT-auth Codex-pad; andere sleuteltypen ontvangen een laaggerelateerde fout van OpenAI. Instellingen per verbinding op de Codex-providerpagina hebben voorrang.",
"codexFastTierSaveError": "Kan Codex Fast Tier-instelling niet updaten",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Automatische Codex-quotaping",
+ "codexAutoPingDesc": "Aanmelding per verbinding: verstuurt direct na het resetten van een Codex-sessievenster een klein verzoek, zodat de verbinding niet koud is wanneer je die nodig hebt.",
+ "codexAutoPingWarning": "Verbruikt bij elke ping een kleine hoeveelheid echt Codex-quotum. Standaard uitgeschakeld — schakel dit alleen in voor verbindingen waarop je actief vertrouwt.",
+ "codexAutoPingSaveError": "Bijwerken van de instelling voor automatische Codex-pings mislukt",
+ "codexAutoPingToggleAria": "Automatische Codex-quotaping voor {connection} in- of uitschakelen",
"codexFastTierTierLabel": "Serviceniveau",
"codexFastTierTierPriority": "Prioriteit",
"codexFastTierTierFlex": "Flex",
@@ -8067,7 +8086,7 @@
},
"resilienceBaseCooldownLabel": "Basis afkoeling",
"scopeLabel": "Reikwijdte",
- "triggerLabel": "Trigger",
+ "triggerLabel": "Activering",
"effectLabel": "Effect",
"statusEnabled": "Ingeschakeld",
"statusDisabled": "Uitgeschakeld",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "Globaal controle-interval",
"resilienceCredentialHealthEveryMinutes": "Elke {minutes} min",
"resilienceCredentialHealthHint": "0 schakelt de achtergrondscan uit (max. 1440 min = 24 u). Verbindingen met een eigen gezondheidscontrolewaarde negeren deze globale standaard; 0 op een verbinding sluit die uit, ook als de globale scan aanstaat.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "Altijd ingeschakeld voor {provider} — vereist voor de beveiliging van OAuth-accounts; kan niet worden uitgeschakeld.",
+ "forcedFingerprintBadge": "Vereist",
"sessionAffinityTitle": "Sessie-affiniteit",
"sessionAffinityDesc": "Houdt één gesprek gedurende dit aantal seconden op hetzelfde account, voor elke provider. 0 schakelt dit uit.",
"sessionAffinityTtl": "Affiniteit TTL (seconden)",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "Maximaal aantal backoff-stappen voordat de cooldown stopt met groeien. De limiet voor Max. cooldown wordt in de meeste configuraties als eerste bereikt, waardoor dit een veiligheidsplafond is voor wanneer Max. cooldown wordt verhoogd.",
"disableSessionStickiness": "Sessie-stickiness uitschakelen",
"disableSessionStickinessDesc": "Round-robin- en willekeurige combinaties wisselen bij elk verzoek naar een andere verbinding in plaats van een heel gesprek vast te pinnen aan één verbinding op basis van de hash van het eerste bericht. Laat uitgeschakeld om prompt-cache-hits voor multi-turn chats te behouden. Overschrijvingen per combinatie hebben voorrang.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Routering op basis van promptcachelokaliteit",
+ "promptCacheAffinityDesc": "Geef bij overeenkomende promptcachesleutels de voorkeur aan hetzelfde provideraccount, met behoud van failover voor status en quotum.",
+ "reasoningTokenBuffer": "Buffer voor redeneertokens",
+ "reasoningTokenBufferDesc": "Sta combinatieroutering toe om alleen voor bekende redeneermodellen extra ruimte aan max_tokens toe te voegen wanneer de volledige buffer binnen een bekende uitvoerlimiet past.",
+ "zeroLatencyOptimizations": "Optimalisaties zonder latentie",
+ "zeroLatencyOptimizationsDesc": "Meld je aan voor hedging, voorspellend overslaan op basis van TTFT en proactieve fallbackcompressie. Laat dit uitgeschakeld om te voorkomen dat deze latentiefuncties met doelen concurreren of fallbackverzoeken comprimeren.",
"credentialRedaction": "Maskeren van inloggegevens",
"credentialRedactionDesc": "Maskeer API-sleutels, tokens en geheimen in context die naar providers wordt verzonden en in antwoorden.",
"enableCredentialRedaction": "Maskeren van inloggegevens inschakelen",
"enableCredentialRedactionDesc": "Verwijdert API-sleutels, tokens, privésleutels en JWT's uit berichten, tool-aanroepen en reacties.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Automatische synchronisatie uitgeschakeld",
+ "pricingAutoSyncEnabled": "Automatische synchronisatie ingeschakeld",
"modalityBridgeIntro": "Zet multimodale inhoud om in tekst voordat die modellen bereikt die alleen tekst verwerken. De bruggen voor beeld, audio en video zijn beschikbaar en configureerbaar.",
"modalityBridgeVisionTab": "Visie",
"modalityBridgeAudioTab": "Audio",
@@ -8239,7 +8258,7 @@
"modalityBridgeCacheTtlMinutes": "Cache TTL (minuten)",
"modalityBridgeCacheMaxEntries": "Cache max items",
"modalityBridgeStatsBridged": "verbonden",
- "modalityBridgeStatsCacheHits": "cache hits",
+ "modalityBridgeStatsCacheHits": "cachetreffers",
"modalityBridgeStatsFailures": "fouten",
"modalityBridgeStatsLastUsed": "laatst gebruikt",
"modalityBridgeStatsNever": "nooit",
@@ -8278,17 +8297,17 @@
"modalityBridgeVideoFrameCount": "Videobeelden per video",
"modalityBridgeVideoMaxVideos": "Maximaal aantal video's per aanvraag",
"modelRoutingDescriptionPlaceholder": "Route Opus-modellen naar frontier-combo",
- "cliproxyapiFallbackCodes": "Cliproxyapi Fallback Codes",
+ "cliproxyapiFallbackCodes": "Cliproxyapi-fallbackcodes",
"cliproxyapiFallbackDescription": "Cliproxyapi Fallback Beschrijving",
"cliproxyapiHealthLabel": "Cliproxyapi Gezondheidslabel",
"cliproxyapiImportFailed": "Cliproxyapi Importeren Mislukt",
- "cliproxyapiImportResult": "Cliproxyapi Import Result",
+ "cliproxyapiImportResult": "Cliproxyapi-importresultaat",
"cliproxyapiInvalidUrl": "Cliproxyapi Ongeldige URL",
"cliproxyapiLifecycleNoticeAfter": "Cliproxyapi Levenscyclusmelding Na",
"cliproxyapiLifecycleNoticeBefore": "Cliproxyapi Levenscyclusmelding Voor",
"cliproxyapiLifecycleNoticeLink": "Cliproxyapi Levenscyclus Kennisgeving Link",
"cliproxyapiPortLabel": "Cliproxyapi Poortlabel",
- "cliproxyapiStatusLabel": "Cliproxyapi Status Label",
+ "cliproxyapiStatusLabel": "Cliproxyapi-statuslabel",
"cliproxyapiVersionLabel": "Cliproxyapi Versie Label",
"collection": "Verzameling",
"errorPage": {
@@ -8305,9 +8324,9 @@
"oneproxyCountry": "Oneproxy Land",
"oneproxyDelete": "Oneproxy Verwijderen",
"oneproxyEmpty": "Oneproxy Leeg",
- "oneproxyHost": "Oneproxy Host",
+ "oneproxyHost": "Oneproxy-host",
"oneproxyLatency": "Oneproxy Latentie",
- "oneproxyProtocol": "Oneproxy Protocol",
+ "oneproxyProtocol": "Oneproxy-protocol",
"oneproxyQuality": "Oneproxy Kwaliteit",
"oneproxySyncFailed": "Synchronisatie mislukt: {error}",
"oneproxySyncSuccess": "Gesynchroniseerde {total} proxies ({added} nieuw, {updated} bijgewerkt)",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "Gezondheid",
"cliproxyapiPort": "Haven",
"qdrantHost": "Host",
- "qdrantCollection": "Verzameling",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Verzameling"
},
"contextRtk": {
"title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "description": "Opdrachtbewuste compressie voor tooluitvoer, terminallogboeken en buildresultaten.",
+ "enabled": "Ingeschakeld",
+ "intensity": "Intensiteit",
+ "intensityMinimal": "Minimaal",
+ "intensityStandard": "Standaard",
+ "intensityAggressive": "Agressief",
+ "toolResults": "Toolresultaten",
+ "assistantMessages": "Assistentberichten",
+ "codeBlocks": "Codeblokken",
"filterCatalog": "Filtercatalogus",
"filterCatalogDesc": "Beschikbare uitvoerfilters per categorie",
"guidedConfig": "Configuratie",
"guidedConfigDesc": "Pas aan hoe RTK uw terminaluitvoer filtert",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "Max. aantal regels",
+ "maxChars": "Max. aantal tekens",
"deduplicateThreshold": "Drempel ontdubbelen",
"customFilters": "Aangepaste filters",
"detectedType": "Gedetecteerd type",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "Mislukkingen",
"rawOutputAlways": "Altijd",
"rawOutputMaxBytes": "Max. aantal bytes onbewerkte uitvoer",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "Filters testen",
+ "pasteOutput": "Plak tooluitvoer om de filtering te testen...",
"presetHigh": "Agressief",
"presetLow": "Licht",
"presetMaxChars": "Maximale uitvoertekens",
"presetMaxLines": "Maximale uitvoerlijnen",
"presetMedium": "Standaard",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "Uitvoeren",
+ "result": "Resultaat",
+ "previewEmpty": "Voer een voorbeeld uit om een voorvertoning van de RTK-uitvoer te bekijken.",
+ "detected": "Gedetecteerd",
"masterSwitchOffAlert": "Token Saver-hoofdschakelaar staat UIT — deze instellingen hebben geen invloed op verzoeken totdat u deze inschakelt via de Endpoint-pagina.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "Gefilterde tokens",
+ "filtersActive": "Actieve filters",
+ "requests": "Verzoeken",
+ "avgSavings": "Gem. besparing",
"simpleMode": "Eenvoudig",
"advancedMode": "Geavanceerd",
"searchFilters": "Zoekfilters...",
@@ -8477,7 +8488,7 @@
"savings": "Besparingen",
"original": "Origineel",
"compressed": "Gecomprimeerd",
- "diff": "Diff",
+ "diff": "Verschil",
"last7Days": "Laatste 7 dagen",
"noDataYet": "Nog geen gegevens",
"runs": "Uitvoeringen",
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "Compressiecombinaties",
+ "description": "Definieer hoe engines worden gecombineerd voor verschillende routeringsscenario's.",
+ "createCombo": "Compressiecombinatie maken",
+ "editCombo": "Bewerken",
+ "deleteCombo": "Verwijderen",
+ "deleteConfirm": "Deze compressiecombinatie verwijderen?",
+ "pipeline": "Pijplijn",
+ "addStep": "Stap toevoegen",
+ "removeStep": "Verwijderen",
+ "name": "Naam",
+ "descriptionField": "Beschrijving",
+ "languagePacks": "Taalpakketten",
+ "outputMode": "Uitvoermodus",
+ "assignToRouting": "Toewijzen aan routeringscombinaties",
+ "noAssignments": "Geen routeringscombinaties beschikbaar",
+ "default": "Standaard",
+ "setAsDefault": "Instellen als standaard",
+ "save": "Opslaan",
+ "cancel": "Annuleren",
+ "enabled": "Ingeschakeld",
"loading": "Laden…",
"hubTitle": "Compressiehub",
"hubDescription": "Kies welk compressieprofiel globaal wordt uitgevoerd.",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "Momenteel alleen beschikbaar voor Claude (Anthropic). Het is een gedelegeerde modus: de provider wist oude tool-use-blokken aan de serverzijde — we herschrijven het bericht niet. Het heeft geen invloed op andere providers.",
"namedCombos": "Benoemde combo's",
"namedCombosDescription": "Sla verschillende pipelines op en wijs ze toe aan specifieke routingcombo's.",
+ "activeProfileMasterSwitchOffWarning": "Het onderstaande actieve profiel wordt pas uitgevoerd wanneer de hoofdschakelaar 'Promptcompressie' is ingeschakeld.",
+ "activeProfileMasterSwitchOffCta": "Schakel deze in bij Instellingen",
"comboNamePlaceholder": "Combonaam",
"descriptionPlaceholder": "Beschrijving",
"nameRequired": "Voer een combonaam in voordat u opslaat.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "Taalpakketten: {packs}",
"dragToReorder": "Sleep om stap opnieuw te ordenen",
"engine": "Engine",
- "intensity": "Intensiteit",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Intensiteit"
},
"compressionStudio": {
"noRun": "Geen compressierun beschikbaar.",
@@ -8684,10 +8695,10 @@
"pauseReplay": "Replay pauzeren",
"playReplay": "Replay afspelen",
"pause": "Pauzeren",
- "replay": "Replay",
+ "replay": "Opnieuw afspelen",
"resetReplay": "Replay resetten",
"stepProgress": "stap {current}/{total}",
- "inlineView": "Inline",
+ "inlineView": "Ingebed",
"splitComingSoon": "Gesplitste weergave (binnenkort beschikbaar)",
"inputPlaceholder": "Plak een prompt, tooluitvoer of context…",
"activeCombined": "Actief in de gecombineerde flow",
@@ -8701,7 +8712,7 @@
"run": "Uitvoeren",
"laneRejected": "afgewezen: {reason}",
"error": "fout",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Voorbeeld van gecombineerde pipeline mislukt: {reason}",
"combinedFlow": "Gecombineerde flow",
"eachLayer": "Elke laag afzonderlijk",
"diff": "Verschil",
@@ -8711,7 +8722,7 @@
"output": "UITVOER",
"tokenCount": "{count, number} tokens",
"tokenShort": "tok",
- "provider": "Provider",
+ "provider": "Aanbieder",
"judgeModel": "Judge-model",
"judgeModelPlaceholder": "bijv. claude-haiku",
"maxCostUsd": "USD-limiet",
@@ -8725,7 +8736,7 @@
"savings": "Besparingen",
"retention": "Retentie",
"outputTokensShort": "Uitvoertokens",
- "fidelity": "Fidelity",
+ "fidelity": "Getrouwheid",
"playTab": "Afspelen",
"compareTab": "Vergelijken",
"encoderComparison": "Encoder A/B — {count} array(s)",
@@ -8735,7 +8746,7 @@
"tokensCl100k": "tokens (cl100k)"
},
"omniglyph": {
- "preview": "Preview",
+ "preview": "Voorbeeld",
"description": "Context-als-afbeelding-compressie. Rendert de systeemprompt, tooldocumentatie en dichte geschiedenis als compacte PNG-pagina's die Claude Fable 5 leest in plaats van tekst. Afbeeldingstokens worden gefactureerd op basis van afmetingen in plaats van tekens, waardoor het geconverteerde blok ongeveer 10× minder kost. Alleen directe Anthropic-route.",
"economicsTitle": "De economische aspecten",
"economics": {
@@ -8764,7 +8775,7 @@
"why": "Aggregators resamplen afbeeldingen en vernietigen de leesbaarheid — alleen de directe route is leidend."
},
"format": {
- "label": "Format",
+ "label": "Indeling",
"pass": "native Claude",
"why": "De body moet het Claude-format gebruiken en mag nooit een systeemrol binnen berichten plaatsen."
},
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Schakel de engine in",
"enableDescription": "Draait als laatste in de stack (nadat RTK/Caveman de tekst opschoont, converteert OmniGlyph de rest naar afbeeldingen) en draait ook standalone via de omniglyph-modus. Dit is een preview en blijft standaard uitgeschakeld totdat de end-to-end-validatie is voltooid.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Compressieprofiel",
+ "profileDescription": "Het profiel is een bovengrens, geen ondergrens: een strenger profiel kan niet opnieuw worden verruimd door een overschrijving per stap. Gemeten op deze codebase: met coding-safe of balanced wordt er niets gecomprimeerd voor een sessie die nog geen geschiedenis heeft opgebouwd, omdat beide de drempel voor het minimumaantal tekens verhogen en de systeemprompt, toolschema's en toolresultaten in hun oorspronkelijke vorm behouden.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agressief (standaard)",
+ "description": "Het beleid waarop de gepubliceerde meetresultaten zijn gebaseerd. Zet de systeemprompt, tooldocumentatie en compacte geschiedenis om in afbeeldingen."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Gebalanceerd",
+ "description": "Behoudt de actuele status in de oorspronkelijke vorm en beschermt de laatste 8 beurten; alleen oudere, afgesloten geschiedenis wordt samengevouwen."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Veilig voor code",
+ "description": "Behoudt autoriteit, toolschema's en actuele tooluitvoer in de oorspronkelijke vorm en beschermt de laatste 12 beurten. Er wordt niets gecomprimeerd totdat de sessie geschiedenis heeft opgebouwd."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Ongewijzigd doorgeven",
+ "description": "Routeert zonder transformatie. De engine wordt overgeslagen en het verzoek wordt ongewijzigd doorgestuurd."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Selecteer het OmniGlyph-compressieprofiel",
"saved": "Opgeslagen.",
"saveFailed": "Opslaan mislukt.",
"enableAria": "Schakel de OmniGlyph-engine in",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Regelgebaseerde berichtcompressie, taalpakketten, analyses en instellingen voor de uitvoermodus.",
"advancedConfig": "Geavanceerde configuratie",
"advancedConfigDesc": "Verfijn het compressiegedrag",
"aggressiveSettings": "Agressieve instellingen",
"aggressiveSettingsDesc": "Maximale compressie met potentiële kwaliteitsafwegingen",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Verzoeken",
+ "tokensSaved": "Bespaarde tokens",
+ "savingsPercent": "Besparing in %",
+ "avgLatency": "Gem. latentie",
+ "languagePacks": "Taalpakketten",
+ "languagePacksDesc": "Compressieregels inschakelen voor specifieke talen.",
"labelAutoTrigger": "Automatisch comprimeren wanneer de context groter is",
"labelCompressionRate": "Compressie sterkte",
"labelMaxTokens": "Doeltokens per bericht",
"labelMinLength": "Minimale berichtlengte",
"labelMinSavings": "Minimale tokens om op te slaan",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Ingeschakeld",
+ "autoDetect": "Taal automatisch detecteren",
+ "rulesCount": "{count} regels",
"inputCompressionTitle": "Invoercompressie",
"inputCompressionDesc": "Herschrijf chatgeschiedenis met kortere bewoordingen. Vermindert invoertokens met ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Compressieanalyse",
+ "noAnalytics": "Nog geen compressieanalyses.",
"masterDisabledWarning": "De hoofdschakelaar van Token Saver staat UIT — deze instellingen hebben geen invloed op verzoeken totdat u deze inschakelt via Compressie-instellingen of hier wijzigt.",
"outputMode": "Uitvoermodus",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Uitvoermodus",
"quickSettings": "Snelle instellingen",
"quickSettingsDesc": "Basiscompressie-instellingen om aan de slag te gaan",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Automatische omzeiling voor duidelijkheid",
+ "bypassConditions": "Omzeilingsvoorwaarden",
"bypassConditionsList": "veiligheid, onomkeerbaar, verduidelijking, ordergevoelig",
"simpleMode": "Eenvoudig",
"advancedMode": "Geavanceerd",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra-instellingen",
"ultraSettingsDesc": "SLM-aangedreven semantische compressie",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Antwoord bondig. Behoud technische termen, code, fouten, URLs en identificatiecodes.",
+ "full": "Antwoord beknopt en compact. Behoud alle technische inhoud.",
+ "ultra": "Antwoord uiterst beknopt met gangbare technische afkortingen. Behoud exacte symbolen."
}
},
"translator": {
@@ -8983,7 +8994,7 @@
"ideCliIntegrations": "IDE/CLI-integraties",
"inMemoryNote": "Opmerking: Gebeurtenissen worden in het geheugen opgeslagen en opnieuw ingesteld wanneer de server opnieuw opstart.",
"ok": "Oké",
- "errorShort": "ERR",
+ "errorShort": "FOUT",
"formatConverter": "Formaatconverter",
"formatConverterDescription": "Plak of typ een JSON-aanvraagtekst. De vertaler detecteert automatisch het bronformaat en converteert dit naar het doelformaat. Gebruik dit om fouten op te sporen in de manier waarop OmniRoute verzoeken tussen formaten vertaalt (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (gemiddeld) → {target}",
@@ -9032,14 +9043,14 @@
"chunks": "brokken",
"scenarioSimpleChat": "Eenvoudig chatten",
"scenarioToolCalling": "Gereedschap bellen",
- "scenarioMultiTurn": "Multi-turn",
+ "scenarioMultiTurn": "Meerdere beurten",
"scenarioThinking": "Denken",
"scenarioSystemPrompt": "Systeemprompt",
"scenarioStreaming": "Streamen",
"templateNames": {
"simple-chat": "Eenvoudig chatten",
"tool-calling": "Gereedschap bellen",
- "multi-turn": "Multi-turn",
+ "multi-turn": "Meerdere beurten",
"thinking": "Denken",
"system-prompt": "Systeemprompt",
"streaming": "Streamen",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Plak een JSON-verzoek; het formaat wordt automatisch gedetecteerd.",
"advancedPipelineTitle": "OpenAI tussenliggende pipeline",
"advancedPipelineSubtitle": "Visualiseer elke vertaalstap (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Streamtransformator (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Converteert Chat Completions SSE naar Responses API.",
"advancedTestBenchTitle": "Testbench (8 scenario's)",
"advancedTestBenchSubtitle": "Voert alle scenario's uit en rapporteert geslaagd/mislukt + compatibiliteit %.",
@@ -9263,7 +9274,7 @@
"grokAutoTopUpDisabled": "Uitgeschakeld",
"grokAutoTopUpAt": "bij",
"grokAutoTopUpAdd": "toevoegen",
- "grokAutoTopUpMax": "max",
+ "grokAutoTopUpMax": "max.",
"grokAutoTopUpMonth": "maand",
"grokAdditionalCredits": "Aanvullende Credits",
"kiloAccountBalance": "Accountsaldo",
@@ -9273,17 +9284,17 @@
"kiloPassRemaining": "Resterend",
"kiloPassRenews": "Verlengt over {count} dagen",
"kiloPassUsageLabel": "Verbruik van deze maand",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Extra gebruikstegoed",
+ "kimiExtraUsage": "Extra gebruik",
+ "kimiExtraUsageEnabled": "Ingeschakeld",
+ "kimiExtraUsageDisabled": "Uitgeschakeld",
+ "kimiExtraUsageFrozen": "Bevroren",
+ "kimiExtraUsageUnavailable": "Niet beschikbaar",
+ "kimiMonthlyUsed": "Deze maand gebruikt",
+ "kimiMonthlyLimit": "Maandelijkse limiet",
+ "kimiMonthlyLimitUnlimited": "Onbeperkt",
+ "kimiAdditionalCredits": "Extra credits",
+ "loggerTab": "Logboek",
"proxyTab": "Proxy",
"budgetManagement": "Budgetbeheer",
"budgetSaved": "Budgetlimieten opgeslagen",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Stroomonderbrekers",
"lockedIPs": "Vergrendelde IP's",
"lockoutsAutoRefreshHint": "Tarieflimietvergrendelingen per model • Automatisch vernieuwen 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# vergrendeld} other {# vergrendeld}}",
"timeLeft": "{time} over",
"howItWorks": "Hoe het werkt",
"howItWorksSubtitle": "Ontdek hoe evaluaties uw LLM-reacties valideren",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Modellen die worden getest",
"searchSuitesPlaceholder": "Zoek suites...",
"passSuffix": "passeren",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# testgeval} other {# testgevallen}}",
"runEval": "Voer Eval uit",
"runAllSuites": "Alles uitvoeren",
"runAllRunning": "Alles draaien...",
"runAllProgress": "{current}/{total} wordt uitgevoerd: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# suite mislukt} other {# suites mislukt}}",
"runAllCompleted": "Heeft {suites} suites uitgevoerd — {passed} geslaagd, {failed} mislukt",
"runAllCompletedWithFailures": "Heeft {completed} suites uitgevoerd; {failedSuites} kan niet worden voltooid",
"runningProgress": "{current}/{total} wordt uitgevoerd...",
@@ -9432,13 +9443,13 @@
"quotaVisibilityUpdateFailed": "Bijwerken van quotazichtbaarheid mislukt",
"account": "Rekening",
"modelQuotas": "Modelquota",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Laatst vernieuwd",
"actions": "Acties",
"refreshQuota": "Quota vernieuwen",
"today": "Vandaag",
"tomorrow": "Morgen",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "over {duration}",
"notApplicable": "N.v.t",
"rawPlanWithValue": "Ruw plan: {plan}",
"noPlanFromProvider": "Geen abonnement van aanbieder",
@@ -9448,9 +9459,9 @@
"cardExpand": "Uitvouwen",
"cardCollapse": "Inklappen",
"moreQuotas": "+{count} meer",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Niet gegroepeerd",
+ "viewFlat": "Plat",
+ "viewByEnvironment": "Op omgeving",
"noQuotaDataAvailable": "Geen quotagegevens beschikbaar",
"noAccountsForTierFilter": "Er zijn geen accounts gevonden voor niveaufilter",
"tierAll": "Allemaal",
@@ -9471,9 +9482,9 @@
"filterTierLabel": "Niveau",
"purchaseAll": "Alle",
"purchaseOauthSub": "Abonnement",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth-vrij",
"purchaseApiKey": "API-sleutel",
- "creditsLabel": "Credits",
+ "creditsLabel": "Tegoed",
"creditBalanceHint": "Resterend saldo",
"unlimitedLabel": "Onbeperkt",
"refreshing": "Vernieuwen",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Credit inwisselen",
"resetCreditRedeemed": "Inwisseling gereset",
"resetCreditRedeemFailed": "Inwisselen van reset-tegoed mislukt",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Suite opslaan mislukt",
"clone": "Kloon",
"exportSuite": "Exporteren",
"importSuite": "Importeren",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Ongeldige evaluatiesuite JSON",
"suiteBuilderCloneSuffix": "kopiëren",
"suiteBuilderImportedSuite": "Geïmporteerde suite",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Scorekaart",
+ "evalApiKey": "API-sleutel",
+ "scorecardPassRate": "Slagingspercentage",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
+ "actualOutputLabel": "Werkelijke uitvoer",
+ "evalTargetHint": "Selecteer een model of combinatie om te evalueren.",
+ "suiteBuilderDeleted": "Suite is verwijderd",
+ "suiteBuilderCaseCardHint": "Definieer de invoerprompt en de criteria voor de verwachte uitvoer.",
+ "nextResetUtc": "Volgende reset (UTC)",
+ "scorecardHint": "Geaggregeerde slagingspercentages voor alle evaluatiesuites.",
+ "suiteLatestRunsHint": "Meest recente evaluatieruns voor deze suite.",
+ "saving": "Opslaan",
+ "suiteBuilderCaseModelLabel": "Model (optioneel)",
+ "evalControlsTitle": "Evaluatie-instellingen",
+ "suiteBuilderEditTitle": "Evaluatiesuite bewerken",
+ "suiteBuilderCaseStrategyLabel": "Validatiestrategie",
+ "notifySelectDifferentCompareTarget": "Selecteer een ander doel voor de vergelijking",
+ "recentRunsHint": "De meest recente evaluatieruns worden weergegeven. Klik op een run om gedetailleerde resultaten te bekijken.",
+ "evalCompareHint": "Vergelijk de resultaten desgewenst met een tweede doel.",
+ "suiteBuilderCaseInvalid": "Deze testcase bevat validatiefouten. Los deze op voordat je opslaat.",
+ "historyEmpty": "Nog geen evaluatiegeschiedenis",
+ "suiteBuilderUpdated": "Suite is bijgewerkt",
+ "resetInterval": "Interval resetten",
+ "suiteBuilderCreateTitle": "Evaluatiesuite maken",
+ "activePeriodSpend": "Uitgaven in actieve periode",
+ "evalApiKeyHint": "Selecteer welke API-sleutel moet worden gebruikt voor evaluatieverzoeken.",
+ "evalCompareOptional": "Vergelijken (optioneel)",
+ "suiteBuilderDeleteFailed": "Verwijderen van suite mislukt",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Optionele systeeminstructies...",
+ "scorecardCases": "Testcases",
+ "runCompletedWithScore": "Evaluatie voltooid — slagingspercentage: {score}%",
+ "suiteBuilderCustomBadge": "Aangepast",
+ "targetSuiteDefaults": "Standaardinstellingen van suite",
+ "suiteBuilderDeleteConfirm": "Weet je zeker dat je deze suite wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
+ "suiteBuilderNameLabel": "Suitenaam",
"scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "evalCompareTarget": "Vergelijkingsdoel",
+ "suiteBuilderCaseModelPlaceholder": "bijv. gpt-4o-mini",
+ "evalControlsHint": "Configureer je evaluatiedoel en API-sleutel en voer vervolgens suites uit om de modelkwaliteit te valideren.",
+ "recentRunsTitle": "Recente runs",
+ "suiteBuilderCaseSystemPromptLabel": "Systeemprompt",
+ "suiteBuilderCaseExpectedPlaceholder": "bijv. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "bijv. zeker fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Plak het exacte verwachte antwoord",
"suiteBuilderCaseExpectedPlaceholderRegex": "bijv. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Gebruik een reguliere JavaScript-expressie zonder schuine strepen.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "bijv. suite voor codekwaliteit",
+ "suiteBuilderAddCase": "Testcase toevoegen",
+ "cancel": "Annuleren",
+ "evalTarget": "Doel",
+ "suiteBuilderCaseNameLabel": "Naam van testcase",
+ "weeklyLimitUsd": "Wekelijkse limiet (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "bijv. Schrijf een fibonacci-functie in Python",
+ "suiteBuilderNameRequired": "Suitenaam is verplicht",
+ "suiteBuilderCaseUserPromptLabel": "Gebruikersprompt",
+ "daily": "Dagelijks",
+ "resultErrorLabel": "Fout",
+ "suiteBuilderBuiltInBadge": "Ingebouwd",
+ "suiteBuilderCaseCardTitle": "Testcase",
"suiteBuilderDuplicateCase": "Duplicaat",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
+ "weeklyLimitPlaceholder": "bijv. 50,00",
+ "suiteBuilderCaseTagsHint": "Door komma's gescheiden tags voor het organiseren van testcases.",
+ "notifyEvalRunFailedWithReason": "Evaluatie mislukt: {reason}",
+ "weekly": "Wekelijks",
+ "runEvalRunning": "Evaluatie wordt uitgevoerd...",
+ "delete": "Verwijderen",
+ "resetTimeUtc": "Resettijd (UTC)",
+ "evalApiKeyAuto": "Automatisch (standaard gebruiken)",
+ "suiteBuilderDescriptionPlaceholder": "Optionele beschrijving van wat deze suite test...",
+ "targetComparisonTitle": "Doelvergelijking",
+ "save": "Opslaan",
+ "suiteBuilderCreated": "Suite succesvol aangemaakt",
+ "suiteLatestRuns": "Meest recente uitvoeringen",
+ "suiteBuilderCaseExpectedLabel": "Verwachte waarde",
+ "historyLatency": "Latentie",
+ "suiteBuilderCaseTagsPlaceholder": "bijv. coding, python",
+ "targetTypeCombo": "Combinatie",
+ "scorecardPassed": "Geslaagd",
"suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
+ "suiteBuilderNewSuite": "Nieuwe suite",
+ "notifyEvalLoadFailed": "Kan evaluatiegegevens niet laden",
+ "notConfigured": "Niet geconfigureerd",
+ "suiteBuilderCaseNamePlaceholder": "bijv. Python-fibonaccitest",
"intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "suiteBuilderCreateAction": "Suite aanmaken",
+ "suiteBuilderCasesHint": "Elke testcase verzendt een prompt en valideert het antwoord.",
+ "suiteBuilderUpdatedAt": "Bijgewerkt",
+ "errorBadge": "Fout",
+ "suiteBuilderCasesTitle": "Testcases",
+ "edit": "Bewerken",
+ "monthly": "Maandelijks",
+ "suiteBuilderCasesRequired": "Er is ten minste één testcase vereist",
+ "weeklyLimitSummary": "Samenvatting van de wekelijkse budgetlimiet",
+ "suiteBuilderDescriptionLabel": "Beschrijving",
+ "targetComparisonHint": "Vergelijking van evaluatieresultaten tussen doelen naast elkaar.",
+ "compareCompletedWithScore": "Vergelijking voltooid — slagingspercentage van {score}%",
+ "staleQuotaTooltip": "Laatste vernieuwing mislukt — gecachte gegevens worden weergegeven",
"quotaThresholdLabel": "Min. resterend",
"quotaCutoffsColumnHelp": "Stop verzoeken als het resterende quotum dit percentage of lager bereikt.",
"quotaCutoffsButtonDefault": "Standaard",
@@ -9740,7 +9751,7 @@
"proxyEvent": "Proxy-evenement",
"proxy": "Proxy",
"level": "Niveau",
- "directNative": "Direct (native)",
+ "directNative": "Rechtstreeks (native)",
"combo": "Combinatie",
"inputTokens": "ik:",
"outputTokens": "O:"
@@ -9773,13 +9784,13 @@
"systemMonitor": {
"metricsAriaLabel": "Systeemstatistieken",
"memory": "Geheugen",
- "memoryShort": "mem",
- "uptime": "Uptime",
+ "memoryShort": "geh",
+ "uptime": "Bedrijfstijd",
"ariaLabel": "Systeemmonitoring",
"title": "Systeemmonitor",
"version": "Versie",
"connections": "Verbindingen",
- "circuitBreakers": "Circuit Breakers",
+ "circuitBreakers": "Stroomonderbrekers",
"open": "{count} open",
"memoryUsage": "Geheugengebruik"
},
@@ -9795,7 +9806,7 @@
"totalRequests": "Totaal Aantal Verzoeken",
"totalInputTokens": "Totaal Invoertokens",
"model": "Model",
- "provider": "Provider",
+ "provider": "Aanbieder",
"requests": "Verzoeken",
"lastUsed": "Laatst Gebruikt",
"inputTokens": "Invoertokens",
@@ -9859,7 +9870,7 @@
"backToLogin": "Terug naar Inloggen",
"forgotPassword": "Wachtwoord vergeten?",
"continueWithOidc": "Doorgaan met OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Standaardwachtwoord: CHANGEME (tenzij INITIAL_PASSWORD is ingesteld)",
"Authorization": "Autorisatie",
"Content-Disposition": "Inhoud-dispositie",
"waitingForAuthorization": "Wachten op toestemming...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Wachten op toestemming voor anti-zwaartekracht...",
"waitingForQoderAuthorization": "Wachten op Qoder-autorisatie...",
"exchangingCodeForTokens": "Code uitwisselen voor tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Incompatibele Node.js-versie",
+ "nodeIncompatibleDesc": "Je gebruikt Node.js {version}, dat buiten het beleid van OmniRoute voor veilige ondersteunde runtimes valt. Gebruik een gepatchte Node.js 20.x- of 22.x LTS-release.",
+ "nodeIncompatibleFixLabel": "Oplossing: installeer een gepatchte Node.js 22 LTS-release",
+ "nodeIncompatibleHint": "OmniRoute vereist Node.js 22.22.2+ (22.x LTS) of 24.0.0+ (24.x LTS). Node 24 LTS wordt aanbevolen.",
"resetViaAppDataTitle": "Reset via App Gegevens",
"resetViaAppDataDescription": "Verwijder het instellingenbestand uit de app-datamap om je wachtwoord opnieuw in te stellen:",
"quitDesktopApp": "Sluit de OmniRoute desktopapp volledig af",
@@ -9880,7 +9891,7 @@
"relaunchDesktopFreshSetup": "Herstart de OmniRoute desktopapp — het zal een nieuwe installatie starten",
"alternativeSetPasswordTitle": "Alternatief: Stel Nieuw Wachtwoord In",
"alternativeSetPasswordDescription": "Stel een nieuw initieel wachtwoord in via het serveromgeving bestand:",
- "openServerEnvFilePrefix": "Open",
+ "openServerEnvFilePrefix": "Openen",
"relaunchDesktopApp": "Herstart de OmniRoute desktop-app",
"codexLinkInvalidOrExpired": "Deze link is ongeldig of is verlopen.",
"codexValidationServerError": "Kon de server niet bereiken om deze link te valideren.",
@@ -9893,7 +9904,7 @@
"codexConnectDescription": "Authorize een ChatGPT-account om deze verbinding af te ronden.",
"validatingCodexLink": "Link aan het valideren…",
"codexGenerateCodeDescription": "Klik hieronder om een eenmalige code te genereren en meld je vervolgens aan bij OpenAI.",
- "startCodexFlow": "Start",
+ "startCodexFlow": "Starten",
"requestingOpenAiCode": "Code opvragen bij OpenAI…",
"codexVerificationInstructions": "1. Open de OpenAI verificatiepagina en 2. voer deze code in. Deze pagina wordt automatisch bijgewerkt zodra je autoriseert.",
"yourCode": "Je code",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "Aanbieders",
"commonUseCases": "Veelvoorkomende gebruiksscenario's",
"clientCompatibility": "Compatibiliteit met klanten",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Protocollen",
"apiReference": "API-referentie",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Naslagwerk voor de beheer-API",
+ "managementApiDescription": "Automatiseringseindpunten voor het proxyregister, scopetoewijzingen en migratie van verouderde proxy's.",
"method": "Methode",
"path": "Pad",
"notes": "Opmerkingen",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Installeer OmniRoute als een progressieve webapp op Android-, iOS- en desktopbrowsers.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Voer OmniRoute zonder grafische interface uit op Android via Termux. Open het dashboard vanuit je mobiele browser.",
"featureRoutingTitle": "Routering door meerdere providers",
"featureRoutingText": "Routeer verzoeken naar meer dan 30 AI-providers via één enkel OpenAI-compatibel eindpunt. Ondersteunt API's voor chat, reacties, audio en afbeeldingen.",
"featureCombosTitle": "Combo's en balanceren",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Gebruik OmniRoute als een stabiele basis-URL terwijl u daaronder accounts of providercombinaties roteert.",
"clientKimiBullet2": "Geef de voorkeur aan vooraf ingestelde modellen in codeerstromen, zodat fallback en audittrail expliciet blijven.",
"clientKimiBullet3": "Gebruik `/v1/responses` als u routering in native Response-stijl wilt voor clients die tools gebruiken.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protocollen: MCP en A2A",
+ "protocolsDescription": "Naast OpenAI-compatibele API's biedt OmniRoute twee operationele protocollen: MCP voor het uitvoeren van tools en A2A voor workflows tussen agents.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Gebruik MCP via stdio zodat clients OmniRoute-tools kunnen ontdekken en aanroepen met inzicht in de auditgegevens.",
+ "protocolMcpStep1": "Start het MCP-transport met `omniroute --mcp`.",
+ "protocolMcpStep2": "Stel je MCP-client in op stdio-transport.",
+ "protocolMcpStep3": "Roep `omniroute_get_health` en `omniroute_list_combos` aan om de connectiviteit te valideren.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Gebruik A2A JSON-RPC om taken synchroon of via SSE-streaming in te dienen.",
+ "protocolA2aStep1": "Lees `/.well-known/agent.json` voor agentdetectie.",
+ "protocolA2aStep2": "Stuur `message/send`- of `message/stream`-verzoeken naar `POST /a2a`.",
+ "protocolA2aStep3": "Beheer de taaklevenscyclus met `tasks/get` en `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Protocolproblemen oplossen",
+ "protocolTroubleshooting1": "Als de MCP-status offline is, controleer dan of het stdio-proces actief is en het heartbeatbestand wordt bijgewerkt.",
+ "protocolTroubleshooting2": "Als A2A-taken in `working` blijven staan, controleer dan `/api/a2a/tasks/:id` en streamgebeurtenissen op een eindstatus.",
+ "protocolTroubleshooting3": "Gebruik `/dashboard/mcp` en `/dashboard/a2a` voor operationele bediening en inzicht in audits.",
"endpointChatNote": "OpenAI-compatibel chat-eindpunt (standaard).",
"endpointResponsesNote": "Reacties API-eindpunt (Codex, o-serie).",
"endpointModelsNote": "Modelcatalogus voor alle aangesloten providers.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Herschrijfhulp voor clients zonder /v1.",
"endpointRewriteResponsesNote": "Herschrijfhulp voor reacties zonder /v1.",
"endpointRewriteModelsNote": "Herschrijfhulp voor modeldetectie zonder /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Opgeslagen items in het proxyregister weergeven (ondersteunt paginering).",
+ "mgmtProxiesCreateNote": "Een herbruikbaar proxy-item in het register maken.",
+ "mgmtProxiesHealthNote": "24-uurs-/voortschrijdende statusstatistieken per opgeslagen proxy ophalen uit proxylogboeken.",
+ "mgmtProxiesBulkAssignNote": "Eén proxy in één aanvraag toewijzen aan of verwijderen uit meerdere bereik-ID's.",
+ "mgmtAssignmentsListNote": "Proxytoewijzingen weergeven op bereik, scope_id of proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Een proxy toewijzen aan of verwijderen uit een globaal/provider-/account-/combinatiebereik.",
+ "mgmtLegacyMigrationNote": "Verouderde proxyConfig-toewijzingen importeren in registertoewijzingen.",
"modelPrefixesDescriptionStart": "Gebruik het providervoorvoegsel vóór de modelnaam om naar een specifieke provider te routeren. Voorbeeld:",
"modelPrefixesDescriptionEnd": "routes naar GitHub Copilot.",
"provider": "Aanbieder",
@@ -10205,7 +10216,7 @@
"mcpToolsCacheDesc": "Bekijk cachestatistieken en spoel semantische caches of handtekeningcaches.",
"mcpToolsCompressionTitle": "Compressiemotoren",
"mcpToolsCompressionDesc": "Configureer RTK/Brotli-compressie, wissel van engine en inspecteer compressieanalyses per combo.",
- "mcpToolsOneProxyTitle": "1Proxy / Tunnels",
+ "mcpToolsOneProxyTitle": "1Proxy / tunnels",
"mcpToolsOneProxyDesc": "Beheer uitgaande proxy's, roteer residentiële IP's en inspecteer de proxystatus.",
"mcpToolsMemoryTitle": "Geheugen",
"mcpToolsMemoryDesc": "Zoeken, toevoegen en wissen van persistente gespreksgeheugenvermeldingen.",
@@ -10247,13 +10258,13 @@
"nonTechUsersSubtitle": "Begin snel — geen technische achtergrond nodig",
"techUsersTitle": "Voor Techgebruikers",
"techUsersSubtitle": "Diepgaande verkenning van architectuur, API's en interne systemen",
- "apiExplorerMetadataTitle": "API Explorer — OmniRoute Docs",
+ "apiExplorerMetadataTitle": "API-verkenner — OmniRoute-documentatie",
"apiExplorerMetadataDescription": "Interactieve API-onderzoeker — probeer OmniRoute-eindpunten live met realtime reacties",
"apiExplorerTitle": "API Verkenner",
"apiExplorerDescription": "Probeer OmniRoute-eindpunten live. Selecteer een eindpunt, configureer uw verzoek en zie de reactie in real time.",
"apiExplorerSseStarted": "SSE-stream gestart — controleer de terminal/devtools voor realtime-uitvoer.",
"apiExplorerError": "Fout: {message}",
- "apiExplorerAuth": "auth",
+ "apiExplorerAuth": "authenticatie",
"apiExplorerResponseLabel": "Antwoord",
"apiExplorerSelectEndpoint": "Selecteer een eindpunt om te verkennen",
"apiExplorerChooseApi": "Kies een API uit de zijbalk om details te zien en het live uit te proberen",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute is open source-software. U bent vrij om het te inspecteren, wijzigen en distribueren onder de voorwaarden van de licentie."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-agents",
+ "description": "Ontdek geïnstalleerde CLI-agents op je systeem. Voeg aangepaste agents toe voor automatische detectie.",
+ "refresh": "Vernieuwen",
+ "installed": "Geïnstalleerd",
+ "notFound": "Niet gevonden",
+ "builtIn": "Ingebouwd",
+ "custom": "Aangepast",
+ "remove": "Verwijderen",
+ "addCustomAgent": "Aangepaste agent toevoegen",
+ "addCustomAgentDesc": "Registreer een willekeurige CLI-tool voor detectie. Deze wordt bij het vernieuwen automatisch gescand.",
+ "agentName": "Agentnaam",
+ "binaryName": "Naam van binair bestand",
+ "versionCommand": "Versieopdracht",
+ "spawnArgs": "Opstartargumenten",
+ "addAgent": "Agent toevoegen",
+ "scanning": "Systeem wordt gescand op CLI-agents...",
+ "opencodeIntegration": "OpenCode-integratie",
+ "opencodeDetected": "opencode {version} gedetecteerd",
+ "opencodeDesc": "Genereer een gebruiksklaar {configFile} met je OmniRoute-basis-URL en alle beschikbare modellen — plaats het in de hoofdmap van je project en voer {command} uit.",
+ "downloadConfig": "{file} downloaden",
+ "downloaded": "Gedownload!",
+ "setupGuideTitle": "Installatiehandleiding",
+ "openCliTools": "CLI-tools openen",
+ "setupGuideDetectCliTitle": "Geïnstalleerde CLI's detecteren",
+ "setupGuideDetectCliDesc": "Klik na het installeren of bijwerken van een CLI op Vernieuwen, zodat OmniRoute opnieuw naar uitvoerbare bestanden en versies kan zoeken.",
+ "setupGuideCustomAgentTitle": "Aangepast uitvoerbaar bestand registreren",
+ "setupGuideCustomAgentDesc": "Gebruik Aangepaste agent toevoegen als je CLI niet in de ingebouwde lijst staat. Geef de naam van het uitvoerbare bestand en de versieopdracht op.",
+ "setupGuideCommandMissingTitle": "'command not found' oplossen",
+ "setupGuideCommandMissingDesc": "Controleer of de CLI-opdracht in PATH staat, open een nieuwe terminalsessie en voer Vernieuwen opnieuw uit.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10478,7 +10489,7 @@
"cursorCloud": "Cursor's achtergrond- / cloudagents (officiële API-sleutel)"
},
"activityTypes": {
- "plan": "Plan",
+ "plan": "Abonnement",
"command": "Commando",
"code_change": "Codewijziging",
"message": "Bericht",
@@ -10492,7 +10503,7 @@
"system-prompt": "Systeemprompt",
"thinking": "Denken",
"tool-calling": "Gereedschap bellen",
- "multi-turn": "Multi-turn",
+ "multi-turn": "Meerdere beurten",
"vision": "Visie",
"schema-coercion": "Schema dwang"
},
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Cachebeheer",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Vernieuwen",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Geheugenitems",
+ "memoryEntriesSub": "LRU in het geheugen",
+ "dbEntries": "Database-items",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Cachetreffers",
+ "cacheHitsSub": "van in totaal {total}",
+ "tokensSaved": "Bespaarde tokens",
+ "tokensSavedSub": "Geschat op basis van treffers",
+ "hitRate": "Trefferpercentage",
+ "performance": "Cacheprestaties",
+ "autoRefresh": "Wordt elke {seconds} s automatisch vernieuwd",
+ "hits": "Treffers",
+ "misses": "Missers",
+ "total": "Totaal",
+ "behavior": "Cachegedrag",
+ "behaviorDeterministic": "Alleen niet-streamende verzoeken met temperature=0 worden gecachet.",
+ "behaviorBypass": "Omzeil dit met de header {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Standaard-TTL: 30 minuten. Configureer via {envVar}.",
+ "idempotency": "Idempotentielaag",
+ "activeDedupKeys": "Actieve deduplicatiesleutels",
+ "dedupWindow": "Deduplicatievenster",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Kan de cache niet wissen.",
+ "unavailable": "Cache niet beschikbaar",
+ "unavailableDesc": "Kan cachestatistieken niet ophalen. Controleer of de server actief is.",
"loadingCacheAria": "Cache laden",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Promptcache (aan de kant van de provider)",
+ "semanticCache": "Semantische cache",
+ "promptCacheSectionDesc": "Toont promptcacheactiviteit aan de kant van de provider uit de gebruiksgeschiedenis, zodat je kunt zien waar cachebeheer actief is en hoeveel invoer wordt hergebruikt.",
+ "promptTrendDesc": "Uurlijks verzoekvolume, cachedekking en cacheleesvolume gedurende de afgelopen 24 uur.",
+ "cachedRequests": "Gecachete verzoeken",
+ "cachedRequests24h": "Gecachete verzoeken (24u)",
+ "cacheHitRate": "Cachetrefferpercentage",
+ "cacheRate": "Cachepercentage",
+ "cacheRateDesc": "van alle verzoeken",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Promptcache-statistieken",
+ "withCacheControl": "Met cachebeheer",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Hergebruiksratio van cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Geschatte kostenbesparing",
+ "lastUpdated": "Laatst bijgewerkt",
+ "hoursTracked": "bijgehouden uren",
+ "busiestHour": "Drukste uur",
+ "peakCacheRate": "Hoogste cachepercentage",
+ "trendHour": "Uur",
+ "activityVolume": "Activiteit",
+ "requestsShort": "verzoeken",
+ "inputShort": "Invoer",
+ "cachedShort": "Gecachet",
+ "writeShort": "Schrijven",
+ "resetting": "Bezig met resetten...",
+ "resetMetrics": "Statistieken resetten",
+ "byProvider": "Uitsplitsing per provider",
+ "providerCacheRateDesc": "Elke provider toont het totale aantal invoertokens, uit de cache gelezen tokens en naar de cache geschreven tokens, zodat u de hergebruiksratio aan de hand van de ruwe totalen kunt controleren.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Verzoeken",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
- "tableProvider": "Provider",
+ "trend24h": "Cachetrend (24u)",
+ "peakCached": "Piek gecachet",
+ "cached": "Gecachet",
+ "overview": "Overzicht",
+ "tableProvider": "Aanbieder",
"tableModel": "Model",
"performanceTitle": "Prestaties",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "De eigen deterministische responscache van OmniRoute. Wanneer deze is ingeschakeld, kunnen herhaalde niet-streamingverzoeken met temperature=0 lokaal worden afgehandeld zonder de upstream-provider aan te spreken.",
+ "semanticCacheDisabledDesc": "De semantische cache is uitgeschakeld. OmniRoute slaat lokaal hergebruik van antwoorden over totdat u dit weer inschakelt in Instellingen.",
+ "semanticEntriesDesc": "Permanent opgeslagen semantische cacherecords die momenteel in SQLite zijn opgeslagen. Promptcache-activiteit aan de providerzijde wordt hier niet weergegeven.",
+ "searchEntries": "Items zoeken...",
+ "search": "Zoeken",
+ "loading": "Laden...",
+ "entriesLoadError": "Kan semantische cache-items niet laden.",
+ "noEntries": "Geen cache-items gevonden",
+ "noPromptCacheData": "Er is nog geen promptcache-activiteit aan de providerzijde geregistreerd.",
+ "noTrendData": "Er is de afgelopen 24 uur geen promptcache-activiteit geregistreerd.",
+ "signature": "Handtekening",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Aangemaakt",
+ "expires": "Verloopt",
+ "actions": "Acties",
+ "deduplicatedRequests": "Ontdubbelde verzoeken",
+ "savedCalls": "Bespaarde API-aanroepen",
+ "totalProcessed": "Totaal aantal verwerkte verzoeken",
+ "disabled": "Uitgeschakeld",
+ "totalRequests": "Totaal aantal verzoeken",
"reasoningCache": "Redenering herhaling",
"reasoningCacheDesc": "Behoudt modeldenken voor multi-turn tool-aanroepstromen",
"reasoningEntries": "Actieve inzendingen",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes}m geleden",
"hoursAgo": "{hours}u geleden",
"daysAgo": "{days}d geleden",
- "entries": "Entries"
+ "entries": "Items"
},
"proxyConfigModal": {
"levelGlobal": "Globaal",
@@ -10674,7 +10685,7 @@
"levelKey": "Sleutel",
"levelDirect": "Direct (geen proxy)",
"titleGlobal": "Algemene proxyconfiguratie",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "{level}-proxy — {label}",
"loading": "Proxyconfiguratie laden...",
"inheritingFrom": "Erven van",
"source": "Bron",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Sluit Cursor-IDE aan",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Inloggen met Cursor",
+ "tabImport": "Token importeren",
+ "loginDescription": "Opent de browseraanmelding van Cursor. Werkt in Docker — keur de aanmelding goed in de browser op je host en keer daarna hier terug.",
+ "loginWithCursor": "Inloggen met Cursor",
+ "startingLogin": "Starten…",
+ "waitingApproval": "Wachten op goedkeuring voor aanmelding bij Cursor…",
+ "openUrlHint": "Als de browser niet is geopend:",
+ "openLoginLink": "Aanmeldpagina openen",
+ "cancelLogin": "Aanmelding annuleren",
"autoDetecting": "Tokens automatisch detecteren...",
"readingFromCursor": "Lezen vanuit Cursor IDE of cursor-agent",
"tokensAutoDetected": "Tokens succesvol automatisch gedetecteerd vanuit Cursor IDE!",
"cursorNotDetected": "Cursor-IDE niet gedetecteerd. Plak uw token handmatig.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Werk je in Docker? Gebruik bij voorkeur Inloggen met Cursor. Automatisch importeren vanuit de IDE en cursor-agent zijn doorgaans niet beschikbaar in de container. Zie docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Toegangstoken",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Vernieuwingstoken",
+ "refreshTokenPlaceholder": "Optioneel — schakelt automatische tokenvernieuwing in",
"required": "*",
"accessTokenPlaceholder": "Toegangstoken wordt automatisch ingevuld...",
"machineId": "Machine-ID",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Automatische detectie van tokens is mislukt",
"errorEnterToken": "Voer een toegangstoken in",
"errorImportFailed": "Importeren is mislukt",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Kan aanmelding bij Cursor niet starten",
+ "errorLoginPoll": "Aanmelding bij Cursor mislukt",
+ "errorLoginTimeout": "Time-out bij aanmelding bij Cursor — probeer het opnieuw"
},
"pricingModal": {
"title": "Prijsconfiguratie",
@@ -10839,9 +10850,9 @@
"selectProxy": "{name} selecteren",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Legacy importeren",
+ "bulkAssign": "Bulksgewijs toewijzen",
+ "addProxy": "Proxy toevoegen",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Testen",
+ "edit": "Bewerken",
+ "delete": "Verwijderen",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10882,10 +10893,10 @@
"bulkLabelScopeIds": "Bereik-ID's (door komma's of nieuwe regels gescheiden)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-antropisch",
"bulkApply": "Toepassen",
- "labelScope": "Scope",
+ "labelScope": "Bereik",
"labelProxy": "Proxy",
"scopeGlobal": "globaal",
- "scopeProvider": "provider",
+ "scopeProvider": "aanbieder",
"scopeAccount": "account",
"scopeCombo": "combinatie",
"bulkImportErrorMissingName": "NAAM ontbreekt",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Mislukt",
"successRate": "{rate}% succes",
"avgLatency": "{latency}ms gemiddeld",
"assignmentsCount": "{count} opdrachten",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Herstellen",
"relayAuthMissing": "authenticatie ontbreekt",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Rotatiestrategie",
"poolStrategyHint": "round-robin doorloopt leden op volgorde; random kiest gelijkmatig; sticky behoudt één lid gedurende een tijdvenster; latency-optimized kiest de snelste op basis van logs.",
"poolStrategyFailed": "Kan de rotatiestrategie niet bijwerken",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Roulerend",
"strategyRandom": "Willekeurig",
- "strategySticky": "Sticky",
+ "strategySticky": "Permanent",
"strategyLatency": "Latentie-geoptimaliseerd",
"poolMembersLabel": "Poolleden ({count})",
"poolNoMembers": "Nog geen proxy's in deze pool.",
+ "poolEgressObservation": "{exits, plural, one {# uitgang} other {# uitgangen}} gebruikt door {connections, plural, one {# verbinding} other {# verbindingen}} · maximaal {max} op één uitgang · laatste {hours} u",
+ "poolEgressObservationEmpty": "Geen verkeer waargenomen in de afgelopen {hours} u",
+ "poolEgressObservationHint": "Geteld op basis van het proxylogboek binnen dit tijdsvenster: afzonderlijke uitgaande IP-adressen die zijn waargenomen voor de leden van deze pool, en de OmniRoute-verbindingen die deze hebben gebruikt. ‘Op één uitgang’ heeft betrekking op het tijdsvenster, niet op hetzelfde moment. De 429-blokkering per IP pauzeert alleen verbindingen van dezelfde providerfamilie.",
"poolRemove": "Verwijderen",
"poolRemoveFailed": "Kan de proxy niet uit de pool verwijderen",
"poolAddLabel": "Een proxy toevoegen",
@@ -10968,43 +10982,43 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "endpoint": "Eindpunt",
+ "provider": "Aanbieder",
"model": "Model",
"accountKey": "Account Key",
"autoAccounts": "Automatisch ({count} accounts)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Verzenden",
+ "cancel": "Annuleren",
+ "audioFile": "Audiobestand",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Alles wissen",
+ "request": "Verzoek",
+ "response": "Antwoord",
+ "transcription": "Transcriptie",
+ "copy": "Kopiëren",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Gegenereerde {count} afbeeldingen",
"generatedImage": "Gegenereerde afbeelding {index}",
- "save": "Save",
+ "save": "Opslaan",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Antwoorden",
"completions": "Voltooiingen",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Insluitingen",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderaties",
- "rerank": "Rerank",
+ "rerank": "Herrangschikken",
"search": "Search",
"webFetch": "Web ophalen"
},
@@ -11012,50 +11026,50 @@
"clearChat": "Duidelijke chat",
"typeMessagePlaceholder": "Typ een bericht... (Shift+Enter voor nieuwe regel)",
"tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabCompare": "Vergelijken",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
+ "tabBuild": "Bouwen",
+ "configPane": "Configuratie",
+ "systemPrompt": "Systeemprompt",
+ "systemPromptPlaceholder": "Je bent een behulpzame assistent.",
+ "modelPlaceholder": "bijv. openai/gpt-4o",
+ "endpointLabel": "Eindpunt",
"parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "collapseConfig": "Configuratievenster inklappen",
+ "expandConfig": "Configuratievenster uitklappen",
+ "temperature": "Temperatuur",
+ "maxTokens": "Max. tokens",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Aanwezigheidsstraf",
+ "frequencyPenalty": "Frequentiestraf",
"reasoningLabel": "Redeneren",
"thinking": "Denken",
"effort": "Inspanning",
"effortDefault": "Standaard",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Willekeurig (leeg laten)",
+ "presetsLabel": "Voorinstellingen",
+ "loadPreset": "Voorinstelling laden",
+ "savePreset": "Voorinstelling opslaan",
+ "noPresets": "Geen voorinstellingen",
+ "presetNamePlaceholder": "Naam van voorinstelling",
+ "savingPreset": "Opslaan…",
+ "nameRequired": "Naam is vereist",
+ "failedToSavePreset": "Opslaan van voorinstelling mislukt",
+ "improvePrompt": "Prompt verbeteren",
+ "improvingPrompt": "Verbeteren…",
+ "improvePromptTitle": "Verbeter je prompt met AI",
+ "setModelFirst": "Stel eerst een model in",
"setModelInConfigFirst": "Stel eerst een model in het Config-venster in.",
"improvePromptFailed": "Prompt verbeteren mislukt.",
"improvePromptAria": "Prompt verbeteren met AI",
"confirmImprovePrompt": "Prompt verbeteren bevestigen",
"improvePromptDescription": "Dit verzendt uw huidige systeemprompt naar trae.ai in solo.trae.ai, open DevTools → Netwerk, stuur een chatbericht en kopieer de JWT uit de Authorization: Cloud-IDE-JWT {tokenPlaceholder} aanvraagheader. De levensduur van de JWT is ~14 dagen. Optionele identiteitsvelden komen van common_params in dezelfde aanvraagbody.",
"accessTokenLabel": "Toegangstoken (Cloud-IDE-JWT)",
@@ -13854,7 +13887,7 @@
}
},
"providerTest": {
- "dialogLabel": "Test {provider}",
+ "dialogLabel": "{provider} testen",
"deprecated": "verouderd",
"risk": "risico",
"close": "Sluiten",
@@ -13883,7 +13916,7 @@
"duration": "Duur",
"model": "Model",
"requestedModel": "Aangevraagd model",
- "provider": "Provider",
+ "provider": "Aanbieder",
"requester": "Aanvrager",
"tokens": "Tokens"
}
@@ -13896,10 +13929,10 @@
"latency": "Latentie",
"clientIp": "Klant IP",
"proxy": "Proxy",
- "direct": "Direct",
+ "direct": "Rechtstreeks",
"type": "Type",
"level": "Niveau",
- "provider": "Provider",
+ "provider": "Aanbieder",
"tlsFingerprint": "TLS-vingerafdruk",
"directNative": "Direct",
"targetUrl": "Doel-URL",
@@ -13913,7 +13946,7 @@
"followDescription": "As as de as naar links, blijft de NOW-lijn op 75%",
"now": "Nu",
"nowDescription": "Spring naar huidige tijd, NOW-lijn reset naar midden",
- "pan": "Pan",
+ "pan": "Verschuiven",
"panDescription": "Sleep om te verkennen, achtergrond is bevroren"
},
"reset": "Resetten",
@@ -13921,11 +13954,11 @@
"ended": "Eindigde",
"duration": "Duur",
"status": "Status",
- "provider": "Provider",
+ "provider": "Aanbieder",
"tokens": "Tokens",
"active": "Actief",
"other": "Overig",
- "tenMinutes": "10min",
+ "tenMinutes": "10 min",
"hour": "uur",
"day": "dag",
"unknownModel": "onbekend",
@@ -13934,9 +13967,9 @@
"metadata": {
"compressionTitle": "Compressie",
"compressionDescription": "Configureer de instellingen voor contextcompressie om het tokenverbruik en de kosten te verlagen.",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — Relayproxy's",
"relayDescription": "Serverless relay proxy-eindpunten voor je AI-infrastructuur",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Verkeersinspecteur — OmniRoute",
"trafficInspectorDescription": "Monitor LLM-aanroepen + debug het HTTPS-verkeer van elke applicatie"
},
"conductor": {
@@ -13945,7 +13978,7 @@
"runners": "Hardlopers",
"tasks": "Taken",
"colName": "Naam",
- "colClis": "CLIs",
+ "colClis": "CLI's",
"colStatus": "Status",
"colTask": "Taak",
"colMode": "Modus",
@@ -13992,7 +14025,7 @@
"orchestration": {
"title": "Orkestratie",
"description": "Alles wat OmniRoute op dit moment uitvoert — agents, vloot en routering",
- "tabAgents": "Agents",
+ "tabAgents": "Agenten",
"tabRouting": "Routering",
"tabOverview": "Overzicht",
"tabHistory": "Geschiedenis",
@@ -14018,7 +14051,7 @@
"filterSources": "Bronnen",
"filterProviders": "Aanbieders",
"clearFilters": "Filters wissen",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Cloudagent",
"sourceA2A": "A2A",
"sourceConductor": "Conductor",
"sourceStale": "Verouderd sinds {since}",
@@ -14048,11 +14081,11 @@
"actionApprove": "Plan goedkeuren",
"actionCancel": "Annuleren",
"actionSeeInGraph": "Bekijk in grafiek",
+ "actionRepeat": "Herhalen",
"actionDone": "Actie toegepast",
"actionFailed": "Actie mislukt: {error}",
"detailFailed": "Details laden mislukt: {error}",
"mirroredInA2A": "Weergegeven in A2A",
- "actionRepeat": "Herhalen",
"repeatConfirm": "Klik nogmaals om te bevestigen",
"repeatDone": "Nieuwe run aangemaakt",
"repeatUnavailable": "Oorspronkelijke invoer niet beschikbaar"
@@ -14066,57 +14099,57 @@
"networkError": "Netwerkfout — kon de blootstellingsinstelling van de provider niet bijwerken"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
+ "title": "Aanbiedingen voor supporters",
+ "subtitle": "Officiële kortingen, tegoeden, proefperiodes en beoordeelde partnervoordelen van Radar.",
+ "backToRadar": "Terug naar Radar",
+ "loading": "Aanbiedingen laden...",
+ "refresh": "Aanbiedingen vernieuwen",
+ "refreshing": "Vernieuwen...",
+ "loadFailed": "We konden de aanbiedingen niet vernieuwen. De laatst geverifieerde lokale cache blijft behouden.",
+ "empty": "Er zijn momenteel geen actieve aanbiedingen beschikbaar.",
+ "keyRequiredTitle": "Een supporterssleutel is vereist",
+ "keyRequiredDescription": "Aanbiedingen zijn een livevoordeel van Radar. Voeg op het Radar-scherm een bestaande supporterssleutel toe, verifieer je bijdragersstatus of steun het project om er een te verkrijgen.",
+ "contributorButton": "Ik ben een bijdrager",
+ "supporterButton": "Steun het project",
"partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "officialBadge": "Officieel",
+ "conditionsLabel": "Voorwaarden:",
+ "validUntil": "Geldig tot {date}",
+ "noExpiry": "Geen vervaldatum aangekondigd",
+ "openOffer": "Aanbieding bekijken",
+ "trialDays": "{days, plural, one {# dag} other {# dagen}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
+ "title": "Radarinformatie",
+ "subtitle": "Door Radar beheerde ELO-ranglijsten en feitelijke cataloguswijzigingen.",
+ "backToRadar": "Terug naar Radar",
+ "loading": "Intel laden...",
+ "refresh": "Intel vernieuwen",
+ "syncing": "Vernieuwen...",
+ "loadFailed": "We konden Intel niet vernieuwen. De laatst geverifieerde lokale cache blijft behouden.",
+ "empty": "Er is nog geen geverifieerde Intel-momentopname beschikbaar.",
+ "supporterBadge": "Radar-supporter",
+ "methodology": "Methodologie",
+ "eloMethod": "ELO, initieel {initial}, K={factor}",
+ "freshness": "Actualiteit van de catalogus",
+ "ageDays": "{days, plural, one {# dag oud} other {# dagen oud}}",
+ "trend": "Catalogustrend",
+ "modelDelta": "{current} modellen, +{added} / -{removed}",
+ "ranking": "Modelranglijst",
+ "noRankings": "Er zijn nog geen bevestigde vergelijkingen beschikbaar.",
"model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "category": "Categorie",
+ "rating": "Beoordeling",
+ "matches": "Wedstrijden",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Actueel",
+ "aging": "Verouderend",
+ "stale": "Verouderd"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "Groeiend",
+ "stable": "Stabiel",
+ "shrinking": "Krimpend"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "Verzoek overschrijdt de contextvenster van de provider"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference is een opensourcevriend van OmniRoute",
+ "description": "Een op kosten gerangschikte gateway die tientallen geavanceerde modellen via één OpenAI-compatibel endpoint doorverkoopt — waarbij elk verzoek naar de goedkoopste geschikte provider wordt gerouteerd, nooit boven de catalogusprijs.",
+ "cta": "Een API-sleutel verkrijgen",
+ "partnerLinkNote": "Partnerlink",
+ "dismissAriaLabel": "Sluiten"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Schakel het genereren van varianten op denkniveau (bijv. -low, -medium, -high) in de catalogus /v1/models uit."
}
diff --git a/src/i18n/messages/no.json b/src/i18n/messages/no.json
index 141764faa5..1b561286bf 100644
--- a/src/i18n/messages/no.json
+++ b/src/i18n/messages/no.json
@@ -31,7 +31,7 @@
"active": "Aktiv",
"inactive": "Inaktiv",
"noData": "Ingen data tilgjengelig",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Ingenting her ennå",
"configure": "Konfigurer",
"manualConfig": "Manuell konfig",
"manage": "Administrer",
@@ -47,7 +47,7 @@
"time": "Tid",
"details": "Detaljer",
"created": "Opprettet",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Sist oppdatert",
"loadMore": "Last inn mer",
"noResults": "Ingen resultater funnet",
"reloadPage": "Last inn siden på nytt",
@@ -70,8 +70,8 @@
"note": "Merk",
"free": "Gratis",
"skipToContent": "Gå til innhold",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Serveren har problemer. Enkelte funksjoner kan være utilgjengelige.",
+ "maintenanceServerUnreachable": "Serveren er ikke tilgjengelig. Kobler til på nytt...",
"accept": "Godta",
"accountId": "Konto-ID",
"alias": "Alias",
@@ -98,7 +98,7 @@
"skill": "Ferdighet",
"sortBy": "Sorter etter",
"sortOrder": "Sorteringsrekkefølge",
- "tab": "Tab",
+ "tab": "Fane",
"text": "Tekst",
"textarea": "Tekstområde",
"tool": "Verktøy",
@@ -120,12 +120,12 @@
"compatible": "Kompatibel",
"chat-completions": "Chatfullføringer",
"oauth": "OAuth",
- "auth_token": "Auth Token",
+ "auth_token": "Autentiseringstoken",
"crypto": "Krypto",
"hours": "Timer",
"selfsigned": "Selvsignert",
- "proxy_id": "Proxy ID",
- "proxyId": "Proxy ID",
+ "proxy_id": "Proxy-ID",
+ "proxyId": "Proxy-ID",
"connectionId": "Tilkoblings-ID",
"resolveConnectionId": "Løs tilkoblings-ID",
"resolve_connection_id": "Løs tilkoblings-ID",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "Kunne ikke tilbakestille priser",
"apikey": "API-nøkkel",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Gå til kontrollpanelet",
+ "checkSystemStatus": "Sjekk systemstatus",
+ "selectModel": "Velg modell",
"addModel": "Legg til modell",
"effortNone": "Ingen",
"effortLow": "Lav",
@@ -164,10 +164,10 @@
"reasoningEffort": "Resonneringsinnsats",
"wireApi": "Wire API",
"modelAliases": "Modellaliaser",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Kombinasjoner",
+ "noModelsFound": "Ingen modeller funnet",
+ "clear": "Tøm",
+ "done": "Ferdig",
"selectAll": "Velg alle",
"unselectAll": "Fjern alle valg",
"visibleModels": "synlige",
@@ -184,527 +184,527 @@
"selectAllProviders": "Sjekk alle leverandører",
"clearProviderSelection": "Fjern merket for leverandører",
"providersSelectedCount": "{count} leverandører sjekket",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Det oppstod en feil",
+ "comboDeleted": "Kombinasjonen ble slettet",
+ "hide": "Skjul",
+ "creating": "Oppretter",
+ "comboCreated": "Kombinasjonen ble opprettet",
+ "swapFormats": "Bytt formater",
+ "daysAgo": "Dager siden",
+ "retries": "Nye forsøk",
+ "errorDuringRestore": "Feil under gjenoppretting",
+ "eventsAppearHint": "Hint om visning av hendelser",
+ "noLockouts": "Ingen utestengninger",
+ "webSearchDesc": "Beskrivelse av nettsøk",
+ "audioProvidersHeading": "Overskrift for lydleverandører",
"cloudAgentProviders": "Cloud Agent-leverandører",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Minutter siden",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "Automatisk oppdatering i sanntid",
+ "webSearch": "Nettsøk",
+ "anthropicPrefixPlaceholder": "Plassholder for Anthropic-prefiks",
+ "addModelToCombo": "Legg til modell i kombinasjonen",
+ "failedToLoad": "Kunne ikke laste inn",
+ "categoryMedia": "Mediekategori",
+ "enableCloud": "Aktiver sky",
+ "expirationBannerExpiringSoon": "Utløpsbanner – utløper snart",
+ "retry": "Prøv på nytt",
+ "embeddings": "Innebygginger",
+ "errorCount": "Antall feil",
+ "backupReasonManual": "Sikkerhetskopieringsårsak – manuell",
+ "safeSearchModerate": "Moderat sikkert søk",
+ "activeLimiters": "Aktive begrensere",
+ "a2aCardTitle": "A2A-korttittel",
+ "cloudWorkerUnreachable": "Skyarbeideren kan ikke nås",
+ "testFailed": "Test mislyktes",
+ "compatibleBaseUrlHint": "Tips for kompatibel basis-URL",
+ "usageTracking": "Brukssporing",
+ "disableCloudTitle": "Tittel for deaktivering av sky",
+ "noConnections": "Ingen tilkoblinger",
+ "providerHealth": "Leverandørstatus",
+ "confirmDbImport": "Bekreft databaseimport",
+ "notAvailableSymbol": "Symbol for ikke tilgjengelig",
+ "backupsAvailable": "Tilgjengelige sikkerhetskopier",
+ "providerAuto": "Automatisk leverandør",
+ "newProviderNamePlaceholder": "Plassholder for nytt leverandørnavn",
+ "a2aQuickStartStep2": "A2A-hurtigstart – trinn 2",
+ "ok": "OK",
+ "available": "Tilgjengelig",
+ "noBackupYet": "Ingen sikkerhetskopi ennå",
+ "more": "Mer",
+ "noCompatibleYet": "Ingen kompatible ennå",
+ "multiProvider": "Flere leverandører",
+ "repairEnvHint": "Tips for reparasjon av miljø",
+ "disablingCloud": "Deaktiverer sky",
+ "testBench": "Testbenk",
+ "valid": "Gyldig",
+ "cloudBenefitShare": "Fordel med skydeling",
+ "mcpCardTitle": "MCP-korttittel",
+ "disableConfirm": "Bekreft deaktivering",
+ "filters": "Filtre",
+ "expirationBannerExpiredDesc": "Beskrivelse for utløpsbanner – utløpt",
+ "saveComboDefaults": "Lagre standardinnstillinger for kombinasjon",
+ "cloudConnectedVerified": "Skytilkobling bekreftet",
+ "uptime": "Oppetid",
+ "compatibleProdPlaceholder": "Plassholder for kompatibelt produkt",
+ "fallbackChainsTitle": "Tittel for reservekjeder",
+ "oauthLabel": "OAuth-etikett",
+ "a2aCardDescription": "Beskrivelse av A2A-kort",
+ "okShort": "Kort OK",
+ "maintenance": "Vedlikehold",
+ "formatConverter": "Formatkonverterer",
+ "zedImportNetworkError": "Nettverksfeil ved import fra Zed",
+ "apiKeyLabel": "API-nøkkeletikett",
+ "noModelsForProvider": "Ingen modeller for leverandøren",
+ "mcpCardDescription": "Beskrivelse av MCP-kort",
+ "apiTypeLabel": "Etikett for API-type",
+ "configuredProvidersLabel": "Etikett for konfigurerte leverandører",
+ "maxRetriesLabel": "Etikett for maksimalt antall nye forsøk",
+ "title": "Tittel",
+ "output": "Utdata",
+ "prefixHint": "Tips for prefiks",
+ "skipWizard": "Hopp over veiviseren",
+ "failedCount": "Antall mislykkede",
+ "confirmDbImportDesc": "Beskrivelse av bekreftelse på databaseimport",
+ "entries": "Oppføringer",
+ "until": "Til",
+ "disableCombo": "Deaktiver kombinasjon",
+ "liveMonitorDescriptionPrefix": "Prefiks for beskrivelse av sanntidsovervåking",
+ "runningCount": "Antall som kjører",
+ "noActiveConnectionsInGroup": "Ingen aktive tilkoblinger i gruppen",
+ "savedSuccessfully": "Lagret",
+ "systemStorage": "Systemlagring",
+ "videoDesc": "Videobeskrivelse",
+ "maxResults": "Maksimalt antall resultater",
+ "timeRangeMonth": "Tidsperiode: måned",
+ "testSummary": "Testsammendrag",
+ "failedSetPassword": "Kunne ikke angi passord",
+ "audio": "Lyd",
+ "restore": "Gjenopprett",
+ "disableWarning": "Advarsel om deaktivering",
+ "moderationsDesc": "Beskrivelse av modereringer",
+ "providerHealthStatusAria": "ARIA for leverandørens helsestatus",
+ "modelNamePlaceholder": "Plassholder for modellnavn",
+ "mcpQuickStartStep2": "MCP-hurtigstart, trinn 2",
+ "quickStart": "Hurtigstart",
+ "fullExportFailedWithError": "Full eksport mislyktes med feil",
+ "loadingBackups": "Laster inn sikkerhetskopier",
+ "anthropicBaseUrlPlaceholder": "Plassholder for Anthropic-basis-URL",
+ "description": "Beskrivelse",
+ "noProviderFound": "Ingen leverandør funnet",
+ "auto": "Automatisk",
+ "protocolsDescription": "Beskrivelse av protokoller",
+ "cloudSessionNote": "Merknad om skyøkt",
+ "advancedSettings": "Avanserte innstillinger",
+ "defaultStrategy": "Standardstrategi",
+ "purgeExpiredLogs": "Slett utløpte logger",
+ "justNow": "Akkurat nå",
+ "providerTestFailed": "Leverandørtest mislyktes",
+ "openaiBaseUrlPlaceholder": "Plassholder for OpenAI-basis-URL",
+ "image": "Bilde",
+ "failedCreateChain": "Kunne ikke opprette kjede",
+ "importDatabase": "Importer database",
+ "allDataLocal": "Alle data er lokale",
+ "sectionTitle": "Seksjonstittel",
+ "failedToggle": "Kunne ikke veksle",
+ "editCombo": "Rediger kombinasjon",
+ "testResults": "Testresultater",
+ "searchQuery": "Søkespørring",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
+ "duplicate": "Dupliser",
+ "createCombo": "Opprett kombinasjon",
+ "searchTypeWeb": "Søketype: nett",
+ "addChain": "Legg til kjede",
+ "prefixLabel": "Prefiksetikett",
+ "listModelsDesc": "Beskrivelse av modelliste",
+ "databaseSize": "Databasestørrelse",
+ "chainCreated": "Kjede opprettet",
+ "providerTestTimeout": "Tidsavbrudd for leverandørtest",
+ "routingStrategy": "Rutingsstrategi",
+ "translateAction": "Oversettelseshandling",
+ "exportFailed": "Eksport mislyktes",
+ "connectedVerificationPending": "Tilkoblet, venter på bekreftelse",
+ "a2aQuickStartTitle": "Tittel for hurtigstart av A2A",
+ "couldNotTest": "Kunne ikke teste",
+ "testAllCompatible": "Test alle kompatible",
+ "anthropicCompatibleName": "Anthropic-kompatibelt navn",
+ "disabling": "Deaktiverer",
+ "failedEnable": "Kunne ikke aktivere",
+ "categoryUtility": "Kategori: verktøy",
+ "customUrlOptional": "Egendefinert URL (valgfritt)",
+ "localProviders": "Lokale leverandører",
+ "comboNamePlaceholder": "Plassholder for kombinasjonsnavn",
+ "memoryRss": "Minne-RSS",
+ "disableProvider": "Deaktiver leverandør",
+ "welcomeDesc": "Velkomstbeskrivelse",
+ "nameLabel": "Navneetikett",
+ "allOperational": "Alle er operative",
+ "backupNow": "Sikkerhetskopier nå",
+ "providerMaxRetriesAria": "ARIA-etikett for maksimalt antall leverandørforsøk",
+ "textToSpeechDesc": "Beskrivelse av tekst til tale",
+ "machineId": "Maskin-ID",
+ "globalProxy": "Global proxy",
+ "hitsMisses": "Treff og bom",
+ "testDesc": "Testbeskrivelse",
+ "chatDesc": "Chatbeskrivelse",
+ "importSuccess": "Importen var vellykket",
"chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "a2aQuickStartStep1": "A2A-hurtigstart, trinn 1",
+ "importFailed": "Importen mislyktes",
+ "inputPlaceholder": "Plassholder for inndata",
+ "providerModelsTitle": "Tittel for leverandørmodeller",
+ "lastBackup": "Siste sikkerhetskopi",
+ "yourEndpoint": "Endepunktet ditt",
+ "autoDisableThresholdDesc": "Beskrivelse av terskel for automatisk deaktivering",
+ "rerankDesc": "Beskrivelse av omrangering",
+ "modelsPathPlaceholder": "Plassholder for modellbane",
+ "noCombosYet": "Ingen kombinasjoner ennå",
+ "connectedVerificationPendingWithError": "Tilkoblet, venter på bekreftelse med feil",
+ "comboDefaultsGuideHint1": "Tips 1 i veiledningen for standardinnstillinger for kombinasjoner",
+ "enableCloudTitle": "Tittel for aktivering av skyen",
+ "configuredProvidersHint": "Tips om konfigurerte leverandører",
+ "paused": "Satt på pause",
+ "llmProviders": "LLM-leverandører",
+ "enableCombo": "Aktiver kombinasjon",
+ "removeProviderOverrideAria": "ARIA-etikett for å fjerne leverandøroverstyring",
+ "nodeVersion": "Node-versjon",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Eksport mislyktes med feil",
+ "proxyConfigured": "Proxy konfigurert",
+ "concurrencyPerModel": "Samtidighet per modell",
+ "protocolTasksLabel": "Etikett for protokolloppgaver",
+ "oauthProviders": "Oauth-leverandører",
+ "lockedCount": "Antall låste",
+ "deleteChainConfirm": "Bekreft sletting av kjede",
+ "recentTranslations": "Nylige oversettelser",
+ "zedImportButton": "Importknapp for Zed",
+ "responsesDesc": "Beskrivelse av svar",
+ "testedCount": "Antall testede",
+ "providersCommaSeparatedPlaceholder": "Plassholder for kommaseparerte leverandører",
+ "signatureDefaults": "Standardverdier for signatur",
+ "errorCreating": "Feil under oppretting",
+ "timeRangeYear": "Tidsperiode: år",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Skyen ble deaktivert",
+ "deleteConfirm": "Bekreft sletting",
+ "check": "Kontroller",
+ "safeSearch": "Sikkert søk",
+ "protocolLastActivity": "Siste protokollaktivitet",
+ "openMcpDashboard": "Åpne Mcp-kontrollpanelet",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Etikett for chatbane",
+ "retryDelay": "Forsinkelse før nytt forsøk",
+ "errorUpdating": "Feil under oppdatering",
+ "ideCliIntegrations": "IDE- og CLI-integrasjoner",
+ "imageGeneration": "Bildegenerering",
+ "apiKeyRequired": "API-nøkkel kreves",
+ "resetAllTitle": "Tilbakestill alt",
+ "connectionError": "Tilkoblingsfeil",
+ "modelName": "Modellnavn",
+ "apiKeyForCheck": "API-nøkkel for kontroll",
+ "cloudRequestTimeout": "Tidsavbrudd for skyforespørsel",
+ "showConfiguredOnly": "Vis bare konfigurerte",
"showFreeOnly": "Bare gratis",
"addFirstProvider": "Legg til din første leverandør",
"addFirstProviderDesc": "Koble til en AI-leverandør for å starte ruting av forespørsler gjennom OmniRoute. Du kan bruke gratisleverandører, API-nøkler eller OAuth-kontoer.",
"learnMore": "Lær mer",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Inkluder domener",
+ "promptCache": "Promptbuffer",
+ "cloudConnected": "Tilkoblet skyen",
+ "deleteChain": "Slett kjede",
+ "chatPathPlaceholder": "Plassholder for chatbane",
+ "databasePath": "Databasebane",
+ "usingLocalServer": "Bruker lokal server",
+ "globalComboConfig": "Global kombinasjonskonfigurasjon",
+ "backupFailed": "Sikkerhetskopiering mislyktes",
+ "tabProtocols": "Faneprotokoller",
+ "continue": "Fortsett",
+ "categorySearch": "Kategorisøk",
+ "rateLimitStatus": "Status for hastighetsbegrensning",
+ "repairEnvSuccess": "Miljøet ble reparert",
+ "nameRequired": "Navn er påkrevd",
+ "country": "Land",
+ "trackMetricsDesc": "Beskrivelse av metrikksporing",
+ "durationSecondsShort": "Varighet i sekunder (kort)",
+ "formatConverterDescription": "Beskrivelse av formatkonverterer",
+ "cloudBenefitAccess": "Tilgang til skyfordeler",
+ "maxRetries": "Maksimalt antall forsøk",
+ "queueTimeout": "Tidsavbrudd for kø",
"queueDepth": "Kødybde",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Legg til leverandør",
+ "realtime": "Sanntid",
+ "totalTranslations": "Totalt antall oversettelser",
+ "protocolActiveStreamsLabel": "Aktive protokollstrømmer",
+ "repairEnv": "Reparer miljø",
+ "modelsCount": "Antall modeller",
+ "viewBackups": "Vis sikkerhetskopier",
+ "responsesApi": "Responses API",
+ "copyComboName": "Kopier kombinasjonsnavn",
+ "failures": "Feil",
+ "failedUpdate": "Oppdatering mislyktes",
+ "imageDesc": "Bildebeskrivelse",
+ "failedCreate": "Opprettelse mislyktes",
+ "remainingOfLimit": "Gjenstår av grensen",
+ "protocolsTitle": "Protokoller",
+ "expirationBannerExpiringSoonDesc": "Beskrivelse for banner om snarlig utløp",
+ "source": "Kilde",
+ "failed": "Mislyktes",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
+ "mcpQuickStartStep1": "MCP-hurtigstart, trinn 1",
+ "runTest": "Kjør test",
+ "loadingFallbackChains": "Laster reservekjeder",
+ "healthy": "Fungerer som den skal",
+ "version": "Versjon",
+ "saveBlockWeighted": "Lagre blokkvektet",
+ "zedImportNone": "Ingen Zed-import",
+ "noBackupsYet": "Ingen sikkerhetskopier ennå",
+ "noGlobalProxy": "Ingen global proxy",
+ "noModels": "Ingen modeller",
+ "stickyLimit": "Grense for fastholding",
+ "passedCount": "Antall beståtte",
+ "zedImportFailed": "Zed-import mislyktes",
+ "saving": "Lagrer",
+ "testAll": "Test alle",
+ "globalProxyDesc": "Beskrivelse av global proxy",
+ "latencyP99": "Ventetid P99",
+ "connectingToCloud": "Kobler til skyen",
+ "responses": "Svar",
+ "errorDeleting": "Feil ved sletting",
+ "openaiPrefixPlaceholder": "Plassholder for Openai-prefiks",
+ "enterPassword": "Skriv inn passord",
+ "openA2aDashboard": "Åpne A2A-kontrollpanelet",
+ "enableProvider": "Aktiver leverandør",
+ "modeTest": "Testmodus",
+ "failedDeleteChain": "Kunne ikke slette kjeden",
+ "providerDesc": "Leverandørbeskrivelse",
+ "templateLoadHint": "Tips for lasting av mal",
+ "lastFailure": "Siste feil",
+ "moveDown": "Flytt ned",
+ "providerLabel": "Leverandøretikett",
+ "clearCacheFailed": "Tømming av hurtigbuffer mislyktes",
+ "imagesGenerations": "Bildegenereringer",
+ "repairEnvWorking": "Reparerer miljøet",
+ "millisecondsShort": "ms",
+ "globalLabel": "Global etikett",
+ "failuresPlural": "Feil",
+ "completionsLegacyDesc": "Beskrivelse av eldre fullføringer",
+ "searchProviders": "Søk etter leverandører",
+ "chatPathHint": "Tips for chatbane",
+ "defaultStrategyDesc": "Beskrivelse av standardstrategi",
+ "latencyP95": "Ventetid P95",
+ "textToSpeech": "Tekst til tale",
+ "searchType": "Søketype",
+ "messages": "Meldinger",
+ "aggregatorsGateways": "Aggregator-gatewayer",
+ "comboStrategyAria": "ARIA for kombinasjonsstrategi",
+ "input": "Inndata",
+ "testingConnection": "Tester tilkobling",
+ "excludeDomains": "Ekskluder domener",
+ "webCookieProviders": "Leverandører av nettinformasjonskapsler",
+ "allTestsPassed": "Alle tester bestått",
+ "openaiCompatibleName": "OpenAI-kompatibelt navn",
+ "warningCostOptimizedPartialPricing": "Advarsel om kostnadsoptimalisert delvis prissetting",
+ "comboDefaultsGuideTitle": "Tittel på veiledning for standardinnstillinger for kombinasjoner",
+ "hoursAgo": "Timer siden",
+ "notAvailable": "Ikke tilgjengelig",
+ "skipAndContinue": "Hopp over og fortsett",
+ "moderations": "Modereringer",
+ "proxyConfig": "Proxy-konfigurasjon",
+ "upstreamProxyProviders": "Leverandører av oppstrømsproxy",
+ "exportAll": "Eksporter alle",
+ "queuedCount": "Antall i kø",
+ "resetAll": "Tilbakestill alle",
+ "noTranslations": "Ingen oversettelser",
+ "avgLatency": "Gjennomsnittlig ventetid",
+ "throttleStatus": "Begrensningsstatus",
+ "backupRetentionDesc": "Beskrivelse av oppbevaring av sikkerhetskopier",
+ "noCBData": "Ingen CB-data",
+ "chainDeleted": "Kjeden er slettet",
+ "timeLeft": "Tid igjen",
+ "expirationBannerExpired": "Utløpsbanner utløpt",
+ "language": "Språk",
+ "invalidFileType": "Ugyldig filtype",
+ "monitoredProviders": "Overvåkede leverandører",
+ "errors": "Feil",
"heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "chatCompletions": "Chat-fullføringer",
+ "exampleTemplatesHint": "Tips for eksempelmaler",
+ "retryDelayLabel": "Etikett for forsinkelse før nytt forsøk",
+ "audioTranscription": "Lydtranskripsjon",
+ "fallbackChainsDesc": "Beskrivelse av reservekjeder",
+ "exampleTemplates": "Eksempelmaler",
+ "connectionsCount": "Antall tilkoblinger",
+ "modelsPathLabel": "Etikett for modellbane",
+ "activeProvidersHint": "Tips om aktive leverandører",
+ "activeLockouts": "Aktive sperringer",
+ "invalid": "Ugyldig",
+ "skipPassword": "Hopp over passord",
+ "moveUp": "Flytt opp",
+ "timeRange": "Tidsintervall",
+ "stickyLimitDesc": "Beskrivelse av fast grense",
+ "cloudBenefitEdge": "Fordel med skybasert edge",
+ "custom": "Egendefinert",
+ "verifying": "Verifiserer",
+ "baseUrlLabel": "Etikett for basis-URL",
+ "setPassword": "Angi passord",
+ "safeSearchStrict": "Strengt sikkert søk",
+ "noChangesSinceBackup": "Ingen endringer siden sikkerhetskopieringen",
+ "modelsPathHint": "Tips om modellbane",
+ "audioTranscriptions": "Lydtranskripsjoner",
+ "testCombo": "Test kombinasjon",
+ "mcpQuickStartTitle": "Tittel for hurtigstart med MCP",
+ "comboUpdated": "Kombinasjonen er oppdatert",
+ "weighted": "Vektet",
+ "providers": "Leverandører",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
+ "noFallbackChainsDesc": "Beskrivelse av ingen reservekjeder",
+ "yesImport": "Ja, importer",
+ "lockoutsAutoRefreshHint": "Tips om automatisk oppdatering av sperringer",
+ "tabApis": "API-er-fane",
+ "sectionDescription": "Seksjonsbeskrivelse",
"filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "purgeLogsFailed": "Kunne ikke tømme logger",
+ "latency": "Forsinkelse",
+ "testAllOAuth": "Test all O Auth",
+ "mcpQuickStartStep3": "Trinn 3 i hurtigstart med MCP",
+ "repairEnvFailed": "Kunne ikke reparere miljøet",
+ "zedImportHint": "Tips om Zed-import",
+ "modelsAcrossEndpoints": "Modeller på tvers av endepunkter",
+ "autoDisableBannedAccounts": "Deaktiver utestengte kontoer automatisk",
+ "securityDesc": "Sikkerhetsbeskrivelse",
+ "listModels": "Vis modeller",
+ "backupRestore": "Sikkerhetskopiering og gjenoppretting",
+ "target": "Mål",
+ "zedImportSuccess": "Zed-importen var vellykket",
+ "lastHeaderUpdate": "Siste oppdatering av topptekst",
+ "categoryCore": "Kjernekategori",
+ "noFallbackChains": "Ingen reservekjeder",
+ "noSearchProviders": "Ingen søkeleverandører",
+ "autoBalance": "Automatisk balansering",
+ "noModelsYet": "Ingen modeller ennå",
+ "signatureFamily": "Signaturfamilie",
+ "externalApiCalls": "Eksterne API-kall",
+ "providerOverridesDesc": "Beskrivelse av leverandøroverstyringer",
+ "signatureTool": "Signaturverktøy",
+ "connectionFailed": "Tilkoblingen mislyktes",
+ "activeLimitersPlural": "Aktive begrensere i flertall",
+ "doneDesc": "Beskrivelse av fullført",
+ "down": "Nede",
+ "noDataYet": "Ingen data ennå",
+ "activeProviders": "Aktive leverandører",
+ "nameInvalid": "Ugyldig navn",
+ "skip": "Hopp over",
+ "createChain": "Opprett kjede",
+ "audioSpeech": "Lyd og tale",
+ "cacheCleared": "Hurtigbufferen er tømt",
+ "searchTypeNews": "Søketype: nyheter",
+ "durationMillisecondsShort": "Varighet i millisekunder, kortformat",
+ "addOpenAICompatible": "Legg til Open Ai-kompatibel",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "I kø",
+ "domainPlaceholder": "Plassholder for domene",
+ "durationMinutesShort": "Varighet i minutter, kortformat",
+ "verifyingConnection": "Bekrefter tilkoblingen",
+ "imageProviders": "Bildeleverandører",
+ "protocolToolsLabel": "Etikett for protokollverktøy",
+ "queryPlaceholder": "Plassholder for spørring",
+ "videoGeneration": "Videogenerering",
+ "timeRangeWeek": "Tidsrom: uke",
+ "limitExhausted": "Grensen er nådd",
+ "failedDisable": "Kunne ikke deaktivere",
+ "inMemoryNote": "Merknad om lagring i minnet",
+ "compatibleHint": "Kompatibilitetstips",
+ "errorShort": "Kort feilbeskrivelse",
+ "advancedHint": "Avansert tips",
+ "restoreFailed": "Gjenoppretting mislyktes",
+ "searchProvidersHeading": "Overskrift for søk etter leverandører",
+ "comboName": "Kombinasjonsnavn",
+ "autoDisableDescription": "Beskrivelse av automatisk deaktivering",
+ "embeddingsDesc": "Beskrivelse av embeddings",
+ "operational": "Operativ",
+ "testAllApiKey": "Test alle API-nøkler",
+ "backupCreated": "Sikkerhetskopi opprettet",
+ "errorDuringImport": "Feil under import",
+ "comboDefaultsGuideHint2": "Tips 2 i veiledningen for standardinnstillinger for kombinasjoner",
+ "connecting": "Kobler til",
+ "fillModelAndProviders": "Fyll ut modell og leverandører",
+ "syncing": "Synkroniserer",
+ "resetConfirm": "Bekreft tilbakestilling",
+ "trackMetrics": "Spor måledata",
+ "successful": "Vellykket",
+ "recovering": "Gjenoppretter",
+ "autoDisableThreshold": "Terskel for automatisk deaktivering",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Synkroniserer data",
+ "cloudBenefitPorts": "Fordeler med skyporter",
+ "compatibleProviders": "Kompatible leverandører",
"freeTierProviders": "Gratis Tier-leverandører",
"freeTierLabel": "Gratis lag tilgjengelig",
"freeTierProvidersDesc": "Leverandører med gratis nivåer - noen krever en API-nøkkelregistrering, andre trenger ingen legitimasjon i det hele tatt.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
+ "clearCache": "Tøm hurtigbuffer",
+ "reqs": "Krav",
+ "addAnthropicCompatible": "Legg til Anthropic-kompatibel leverandør",
+ "apiKeyProviders": "API-nøkkelleverandører",
+ "tabsAria": "ARIA for faner",
+ "resetting": "Tilbakestiller",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Årsak til sikkerhetskopiering før gjenoppretting",
+ "disableCloud": "Deaktiver skyen",
+ "newProviderNameAria": "ARIA for navn på ny leverandør",
+ "passwordsMismatch": "Passordene samsvarer ikke",
+ "a2aQuickStartStep3": "Trinn 3 i hurtigstarten for A2A",
+ "liveMonitorDescriptionSuffix": "Suffiks for beskrivelse av sanntidsovervåking",
+ "failedAddProvider": "Kunne ikke legge til leverandør",
+ "addAtLeastOneProvider": "Legg til minst én leverandør",
+ "reasonSeparator": "Årsaksskille",
+ "zedImporting": "Importerer Zed",
+ "confirmPasswordPlaceholder": "Bekreft passord",
+ "whatYouGet": "Dette får du",
+ "signatureSession": "Signaturøkt",
+ "errorCountNoCode": "Antall feil uten kode",
"testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
- "gamificationAdmin": "Gamification Admin",
+ "providersCommaSeparated": "Leverandører, kommaseparert",
+ "exportDatabase": "Eksporter database",
+ "hitRate": "Treffrate",
+ "completionsLegacy": "Fullføringer (eldre versjon)",
+ "removeModel": "Fjern modell",
+ "timeRangeDay": "Tidsperiode: dag",
+ "cloudRequestFailed": "Skyforespørsel mislyktes",
+ "updatedAt": "Oppdatert",
+ "monitoredProvidersHint": "Tips for overvåkede leverandører",
+ "connectionSuccessful": "Tilkoblingen var vellykket",
+ "latencyP50": "Latens P50",
+ "logsDeleted": "Logger slettet",
+ "chatTester": "Chat-tester",
+ "safeSearchOff": "Sikkert søk av",
+ "nameHint": "Navnetips",
+ "debugToggle": "Feilsøkingsbryter",
+ "embedding": "Innebygging",
+ "issuesLabel": "Problemmerking",
+ "optionAny": "Alternativ: alle",
+ "maxNestingDepth": "Maksimal nestingsdybde",
+ "rerank": "Rangering på nytt",
+ "checking": "Kontrollerer",
+ "getStarted": "Kom i gang",
+ "restoreSuccess": "Gjenoppretting fullført",
+ "issuesDetected": "Problemer oppdaget",
+ "signatureCache": "Signaturhurtigbuffer",
+ "modelLockouts": "Modellsperringer",
+ "usingCloudProxy": "Bruker skyproxy",
+ "loadingHealth": "Laster inn helsestatus",
+ "providerOverrides": "Leverandøroverstyringer",
+ "audioTranscriptionDesc": "Beskrivelse av lydtranskripsjon",
+ "learnedFromHeaders": "Lært fra headere",
+ "totalRequests": "Totalt antall forespørsler",
+ "cloudUnstableNote": "Merknad om ustabil sky",
+ "gamificationAdmin": "Spillifisering – administrasjon",
"monitorAnomaliesAndHealth": "Overvåk avvik og systemhelse",
"flaggedAnomalies": "Merkede anomalier",
"noAnomaliesDetected": "Ingen avvik oppdaget",
"apiKey": "API-nøkkel",
"xpLastHour": "XP (1t)",
"zScore": "Z-score",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Mistenkelig",
"tokensCommunityServers": "Fellesskapsservere",
"tokensServerNamePlaceholder": "Servernavn",
"tokensApiKeyPlaceholder": "API-nøkkel",
@@ -737,26 +737,26 @@
"tokensDate": "Dato",
"tokensSent": "Sendt",
"tokensReceived": "Mottatt",
- "tokensCreatingInvite": "Creating...",
- "tokensCreateInvite": "Create Invite",
- "tokensInviteCreated": "Invite code created",
- "tokensRedeeming": "Redeeming...",
- "tokensRedeem": "Redeem",
+ "tokensCreatingInvite": "Oppretter...",
+ "tokensCreateInvite": "Opprett invitasjon",
+ "tokensInviteCreated": "Invitasjonskode opprettet",
+ "tokensRedeeming": "Løser inn …",
+ "tokensRedeem": "Løs inn",
"tokensInviteUses": "{used}/{max} bruk",
"tokensRevoked": "TILBAKEKALT",
- "tokensRevoke": "Revoke",
- "tokensConnecting": "Connecting...",
- "tokensConnectServer": "Connect Server",
- "tokensNoServersConnected": "No servers connected. Connect to a community server to share leaderboards.",
+ "tokensRevoke": "Tilbakekall",
+ "tokensConnecting": "Kobler til …",
+ "tokensConnectServer": "Koble til server",
+ "tokensNoServersConnected": "Ingen servere er tilkoblet. Koble til en fellesskapsserver for å dele resultatlister.",
"tokensServerStatus": {
- "connected": "Connected",
- "disconnected": "Disconnected",
- "pending": "Pending",
- "syncing": "Syncing",
- "error": "Error"
+ "connected": "Tilkoblet",
+ "disconnected": "Frakoblet",
+ "pending": "Venter",
+ "syncing": "Synkroniserer",
+ "error": "Feil"
},
- "tokensLastSync": "Last sync: {date}",
- "tokensDisconnect": "Disconnect",
+ "tokensLastSync": "Siste synkronisering: {date}",
+ "tokensDisconnect": "Koble fra",
"tierCoverageTitle": "Nivådekning",
"tierCoverageSubtitle": "Leverandører konfigurert per reservenivå",
"batchDetailCopyId": "Kopier ID",
@@ -781,73 +781,73 @@
"batchFileDetailCopyId": "Kopier ID",
"batchFileDetailClose": "Lukk",
"batchFileDetailFailedToLoad": "Kunne ikke laste inn filinnholdet",
- "batchFileDetailLoadError": "Error loading file contents",
+ "batchFileDetailLoadError": "Feil ved lasting av filinnhold",
"batchFilesListSearchPlaceholder": "Søk etter ID eller filnavn...",
"batchFilesListFilesTable": "Filer",
"batchFilesCount": "{count, plural, one {# fil} other {# filer}}",
- "batchFilesAllPurposes": "All purposes",
- "batchFilesFilename": "Filename",
- "batchFilesPurpose": "Purpose",
- "batchFilesExpires": "Expires",
- "batchFilesNoneFound": "No files found",
- "batchFilesNeverExpires": "Never",
- "batchFileInUseByActiveBatch": "File in use by an active batch",
+ "batchFilesAllPurposes": "Alle formål",
+ "batchFilesFilename": "Filnavn",
+ "batchFilesPurpose": "Formål",
+ "batchFilesExpires": "Utløper",
+ "batchFilesNoneFound": "Fant ingen filer",
+ "batchFilesNeverExpires": "Aldri",
+ "batchFileInUseByActiveBatch": "Filen brukes av en aktiv batch",
"batchFilePurpose": {
- "batch": "Batch input",
- "batch-output": "Batch output",
- "fine-tune": "Fine-tuning",
- "assistants": "Assistants"
+ "batch": "Batchinndata",
+ "batch-output": "Batchutdata",
+ "fine-tune": "Finjustering",
+ "assistants": "Assistenter"
},
"batchPageLoadingMore": "Laster inn mer …",
- "recommended": "Recommended",
- "understand": "I understand",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "recommended": "Anbefalt",
+ "understand": "Jeg forstår",
+ "batchConceptTitle": "Batchbehandling",
+ "batchConceptSubtitle": "Behandle tusenvis av forespørsler asynkront til ~50 % av kostnaden (24-timersvindu). Ideelt for evalueringer, klassifisering og embeddings.",
+ "batchConceptHowItWorks": "Slik fungerer det",
+ "batchConceptBenefit50pct": "50 % rabatt på inndata- og utdata-tokens",
+ "batchConceptAsync24h": "Asynkront med et fullføringsvindu på 24 timer",
+ "batchConceptUseCases": "Best egnet for masseklassifisering, evalueringer og embeddings",
+ "batchHeaderSubtitle": "Kjør mange forespørsler som én jobb",
+ "batchStep1": "1 · Last opp JSONL",
+ "batchStep1Desc": "Legg til forespørsler",
+ "batchStep2": "2 · Opprett batch",
+ "batchStep2Desc": "Kjør jobb",
+ "batchStep3": "3 · Hent resultater",
+ "batchStep3Desc": "Last ned utdata",
+ "filesConceptTitle": "Batchfiler",
+ "filesConceptSubtitle": "JSONL-filer som brukes av batcher: inndataforespørsler, resultater og feil.",
+ "filesConceptInput": "Inndata — JSONL-filen din med én forespørsel per linje",
+ "filesConceptOutput": "Utdata — resultater fra fullførte forespørsler",
+ "filesConceptError": "Feil — forespørsler som mislyktes",
+ "filesConceptRetention": "Oppbevaring: 30 dager som standard (29 dager hos Anthropic)",
+ "wizardTitle": "Ny batch",
+ "wizardClose": "Lukk",
+ "wizardNext": "Neste",
+ "wizardBack": "Tilbake",
+ "wizardCancel": "Avbryt",
+ "wizardCreate": "Opprett batch",
+ "wizardCreating": "Oppretter…",
+ "wizardStep1Destination": "Mål",
+ "wizardStep2Input": "Inndata",
+ "wizardStep3Validate": "Valider",
+ "wizardStep4Cost": "Kostnad og opprettelse",
+ "wizardProviderLabel": "Leverandør",
+ "wizardEndpointLabel": "Endepunkt",
+ "wizardModelLabel": "Modell",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
- "wizardCsvNoColumns": "No columns detected in CSV header.",
- "wizardCsvIgnoreColumn": "— ignore —",
+ "wizardInputKindCsv": "CSV (vi konverterer)",
+ "wizardDropOrPick": "Slipp en fil her, eller klikk for å velge",
+ "wizardCsvMappingTitle": "Tilordne CSV-kolonner → forespørselsfelt",
+ "wizardCsvMappingAddField": "Legg til felt",
+ "wizardCsvNoColumns": "Ingen kolonner funnet i CSV-overskriften.",
+ "wizardCsvIgnoreColumn": "— ignorer —",
"wizardCsvCustomIdMapped": "custom_id tilordnet",
- "wizardCsvContentMapped": "Content field mapped (messages, input, or prompt)",
- "wizardCsvApplyMapping": "Apply mapping",
- "wizardCsvRowsParsed": "{count} rows parsed",
- "wizardCsvRowsSkipped": "{count} rows skipped",
+ "wizardCsvContentMapped": "Innholdsfelt tilordnet (messages, input eller prompt)",
+ "wizardCsvApplyMapping": "Bruk tilordning",
+ "wizardCsvRowsParsed": "{count} rader analysert",
+ "wizardCsvRowsSkipped": "{count} rader hoppet over",
"wizardCsvRowError": "Rad {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Alle linjer er gyldige",
"wizardValidating": "Validerer…",
"wizardValidationParseFailed": "Validering mislyktes — kunne ikke tolke innhold.",
"wizardValidationSummary": "{lines} linjer · {ids} unike custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Dupliserte custom_ids oppdaget:",
"wizardValidationFirstErrors": "Feil (første {count}):",
"wizardValidationLine": "Linje {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Valideringsfeil",
+ "wizardValidationPreview": "Forhåndsvisning (de første 5 forespørslene)",
+ "wizardValidationSamplingNote": "Filen er stor — validert ved stikkprøver (de første 1000 + de siste 100 linjene). Full validering kjøres på serversiden.",
+ "wizardCostSync": "Synkron kostnad",
+ "wizardCostBatch": "Batchkostnad (-50 %)",
+ "wizardCostSavings": "Besparelse",
+ "wizardCostEstimatedNotice": "Estimert kostnad – faktisk fakturering kan variere.",
+ "wizardErrorUpload": "Kunne ikke laste opp filen. Prøv igjen.",
+ "wizardErrorCreate": "Kunne ikke opprette batchen. Prøv igjen.",
+ "wizardEmptyProviders": "Koble til en leverandør med batchstøtte (OpenAI, Anthropic eller Gemini) for å opprette en batch.",
+ "uploadModalTitle": "Last opp batchfil",
+ "uploadModalDropOrPick": "Slipp en .jsonl-fil her, eller klikk for å velge",
+ "uploadModalUpload": "Last opp",
+ "uploadModalCancel": "Avbryt",
+ "uploadModalError": "Opplastingen mislyktes. Prøv igjen.",
+ "uploadModalSuccess": "Lastet opp",
+ "uploadModalSizeLimit": "Maks. 512 MB",
+ "batchListNewButton": "Ny batch",
+ "batchListAutoRefresh": "Automatisk oppdatering hvert 30. sekund",
+ "batchListCostColumn": "Kostnad",
+ "batchActionCancel": "Avbryt",
+ "batchActionDownloadOutput": "Last ned utdata",
+ "batchActionDownloadErrors": "Last ned feil",
+ "batchActionRetry": "Prøv mislykkede på nytt",
+ "batchActionRetryConfirm": "Prøve {n} mislykkede forespørsel/forespørsler på nytt? Den endelige kostnaden avhenger av det faktiske antallet tokens som brukes.",
+ "expirationBadgeCritical": "Kritisk",
+ "expirationBadgeWarning": "Snart",
+ "expirationBadgeNormal": "Venter",
+ "expirationBadgeExpired": "Utløpt",
+ "filesListUploadButton": "Last opp",
+ "filesListUsedByColumn": "Brukes av",
+ "filesListUsedByNone": "Ingen",
+ "filesListUsedByRoleInput": "inndata",
+ "filesListUsedByRoleOutput": "utdata",
+ "filesListUsedByRoleError": "feil",
+ "filesListSizeColumn": "Størrelse",
+ "batchListProgressPartial": "(delvis)",
+ "batchListProviderColumn": "Leverandør",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
+ "batchListProviderOther": "Annet",
+ "batchListTitle": "Batcher",
+ "batchListCount": "{count} batcher",
+ "batchListRemovingCompleted": "Fjerner …",
+ "batchListRemoveCompleted": "Fjern fullførte",
"batchListTableStatus": "Status",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "Endepunkt",
+ "batchListTableModel": "Modell",
+ "batchListTableProgress": "Fremdrift",
+ "batchListTableCreated": "Opprettet",
+ "batchListTableExpires": "Utløper",
+ "batchListLoading": "Laster inn…",
+ "batchListEmpty": "Ingen batcher funnet",
+ "batchListValidating": "Validerer…",
+ "batchStatusAll": "Alle statuser",
+ "batchStatusInProgress": "Pågår",
+ "batchStatusValidating": "Validerer",
+ "batchStatusFinalizing": "Sluttfører",
+ "batchStatusCompleted": "Fullført",
+ "batchStatusFailed": "Mislyktes",
+ "batchStatusCancelled": "Avbrutt",
+ "batchStatusCancelling": "Avbryter",
+ "batchStatusExpired": "Utløpt",
+ "batchStatusCompletedWithFailures": "fullført med feil",
+ "batchStatusInProgressWithFailures": "pågår (med feil)",
+ "batchStatusFinalizingWithFailures": "sluttfører (med feil)",
+ "batchStatusCancelledWithFailures": "avbrutt med feil",
+ "batchStatusExpiredWithFailures": "utløpt (delvis)",
+ "wizardCostEstimating": "Estimerer kostnad…",
+ "wizardCostRequests": "Forespørsler",
+ "wizardCostInputTok": "inndata-tok.",
+ "wizardCostOutputTok": "utdata-tok.",
+ "wizardCostWindow": "Vindu",
+ "wizardDestinationSelectProvider": "Velg en leverandør…",
+ "wizardDestinationSelectModel": "Velg en modell…",
+ "wizardDestinationConnectProvider": "Koble til en leverandør",
+ "batchListBatchCreated": "Batch {id} opprettet — oppdaterer listen…",
+ "batchListBatchCreatedDismiss": "Lukk",
+ "batchListRefreshing": "Oppdaterer…",
+ "batchListRefresh": "Oppdater",
+ "uploadFileModalRemove": "Fjern",
+ "uploadFileModalUploading": "Laster opp…",
+ "wizardInputReading": "Leser fil…",
+ "wizardInputReady": "Klar",
+ "wizardInputLargeFileLabel": "Stor fil — utfører stikkprøvevalidering",
+ "wizardInputCsvJsonlReady": "JSONL generert — klar til validering.",
+ "wizardInputLargeFileWarning": "Stor fil oppdaget — validering utføres ved stikkprøver (første 5 MB + siste 100 KB). Full validering utføres på serversiden.",
+ "wizardCostWindow24h": "24 timers fullføringsvindu",
+ "wizardValidationFieldsOk": "obligatoriske felt er gyldige",
+ "filesListDelete": "Slett",
+ "filesListDownload": "Last ned",
+ "batchDetailActionCancel": "Avbryt batch",
+ "batchDetailActionRetry": "Prøv mislykkede forespørsler på nytt",
+ "batchDetailCancelling": "Avbryter…",
+ "batchDetailRetrying": "Forbereder nytt forsøk…",
+ "batchDetailCancelConfirm": "Vil du avbryte denne batchen? Pågående forespørsler blir stoppet.",
+ "batchActionCancelError": "Kunne ikke avbryte batchen. Prøv igjen.",
+ "batchActionRetryError": "Kunne ikke prøve mislykkede forespørsler på nytt. Prøv igjen.",
+ "batchConceptRetentionNote": "Resultat- og feilfiler oppbevares i 30 dager (Anthropic: 29 dager)",
"batchFilesSizeColumn": "Størrelse",
"toggleNoAuthProvider": "Bytt til ingen-autentisering leverandør",
"loadingModels": "Laster inn modeller…",
@@ -988,17 +988,21 @@
"disabled": "Deaktivert",
"featureFlagOmnirouteEmergencyFallbackDescription": "Rut forespørsler med oppbrukt budsjett til gratis reserveleverandør/-modell for nødstilfeller.",
"featureFlagArenaEloSyncEnabledDescription": "Aktiver periodisk synkronisering av Arena AI-ledertavlens ELO for rangering av modellintelligens.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Generer og legg inn samtalesammendrag når kombinasjonsruting bytter modell. Deaktiver dette for å behandle modellbytter uavhengig og forhindre bakgrunnsforespørsler for overlevering for alle eksisterende og fremtidige kombinasjoner.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Reklamer claude/<provider>/<model> speil-id-er på /v1/models slik at Claude Code gateway-modelloppdagelse viser ikke-Claude-modeller. Advarsel: dobler katalogoppføringer for alle klienter når det er aktivert globalt.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Hovedbryter for gateway-aliasene no-think/<provider>/<model>. På (standard): /v1/models viser en variant uten tenking for alle kvalifiserte Claude-modeller som støtter tenking, og en no-think/-ID som sendes i en forespørsel, blir løst tilbake til den faktiske modellen med resonnering deaktivert. Av: Ingen varianter vises, og en no-think/-ID behandles som enhver annen ukjent modell-ID. Påmelding eller avmelding per modell via ModelSpec.noThinkingAlias gjelder fortsatt mens dette er slått på.",
"featureFlagChatVirtualLanesEnabledDescription": "Aktiver adaptive virtuelle tilgangsfelt per tenant for leverandørdistribusjon (#9654): et utbrudd fra én tenant gir ikke lenger en annen 503. Miljøvariabelen OMNIROUTE_CHAT_VIRTUAL_LANES overstyrer denne innstillingen i dashbordet; endringer trer i kraft ved omstart av serveren.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Leverandørsider i kontrollpanelet: Vis Gratis-merket bare basert på signaler som leverandøren støtter — ignorerer heuristikken for visningsnavn, ikke-boolske gratisfelt og :free-suffikser for registrerte leverandører uten et dokumentert gratisnivå. Når dette er slått av, brukes den tidligere merkeregelen.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxygrupper og opencodes rotasjon per konto slutter midlertidig å bruke en proxy som nettopp sviktet (avvist TCP-sonde eller en 429 mottatt gjennom den), i en prosesspesifikk periode som dobles for hver gjentakelse, opptil en øvre grense. Ingen proxystatus lagres. Hvis alle kandidater settes til side, forblir valget uendret. Av som standard: Valgrekkefølgen er nøyaktig den vanlige rotasjonen.",
+ "featureFlagProxyPoolEgressObservationDescription": "Vis under en proxygruppe i kontrollpanelet hvor mange observerte utgående IP-adresser som betjente medlemmene i løpet av de siste 24 timene, hvor mange tilkoblinger som brukte dem, og det høyeste antallet som ble observert bak én IP-adresse. Skrivebeskyttet, beregnet fra proxyloggen og aldri brukt til ruting. Av som standard: Redigeringen av proxygruppen er uendret, og observasjonsruten returnerer null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "La en sonde som målet avviste under helsesjekken av proxyer (401/403/429: proxyen videresendte forespørselen, men destinasjonen avviste denne utgående IP-adressen), nullstille proxyens rekke av påfølgende feil, på samme måte som en sonde som ble betjent. Av som standard: En avvisning forblir nøytral og beholder rekken. En 5xx forblir ikke-konkluderende i begge tilfeller, og en avvisning fjerner, deaktiverer eller reaktiverer aldri en proxy.",
"sidebar": {
"home": "Hjem",
"dashboard": "Dashbord",
"providers": "Leverandører",
- "combos": "Combos",
+ "combos": "Kombinasjoner",
"usage": "Bruk",
- "analytics": "Analytics",
+ "analytics": "Analyse",
"costs": "Kostnader",
"health": "Helse",
"proxy": "Proxy",
@@ -1008,11 +1012,11 @@
"settings": "Innstillinger",
"translator": "Oversetter",
"playground": "Lekeplass",
- "searchTools": "Search Tools",
+ "searchTools": "Søkeverktøy",
"agents": "Agenter",
"cloudAgents": "Skyagenter",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Minne",
+ "skills": "Ferdigheter",
"omniSkills": "OmniSkills",
"agentSkills": "Agentferdigheter",
"chaosConfig": "Kaosmodus",
@@ -1025,7 +1029,7 @@
"embeddedServices": "Innebygde tjenester",
"embeddedServicesSubtitle": "Administrer lokale proxytjenester",
"logs": "Logger",
- "webhooks": "Webhooks",
+ "webhooks": "Webhooker",
"webhooksSubtitle": "Bli varslet om hendelser",
"logExport": "Loggeksport",
"logExportSubtitle": "Send kallelogger ut",
@@ -1051,64 +1055,64 @@
"serverDisconnectedMsg": "Proxy-serveren er stoppet eller starter på nytt.",
"expandSidebar": "Utvid sidefeltet",
"collapseSidebar": "Skjul sidefeltet",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
+ "themes": "Temaer",
+ "presetColors": "Populære farger",
+ "createTheme": "Opprett tema",
+ "chooseColor": "Velg én farge",
+ "themeCoral": "Korall",
+ "themeBlue": "Blå",
+ "themeRed": "Rød",
+ "themeGreen": "Grønn",
+ "themeViolet": "Fiolett",
+ "themeOrange": "Oransje",
"themeCyan": "Cyan",
"cliToolsShort": "Verktøy",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "batch": "Batchjobber",
+ "themeSystem": "Temasystem",
+ "whitelabelingDesc": "Beskrivelse av hvitmerking",
+ "switchThemes": "Bytt tema",
+ "themeAccentDesc": "Beskrivelse av temaets aksentfarge",
+ "uploadFavicon": "Last opp favicon",
+ "themeDark": "Mørkt tema",
+ "customLogoDesc": "Beskrivelse av egendefinert logo",
+ "sidebarVisibilityToggle": "Veksle synlighet for sidefelt",
+ "themeAccent": "Temaets aksentfarge",
+ "resetFavicon": "Tilbakestill favicon",
+ "whitelabeling": "Egen profilering",
+ "darkMode": "Mørk modus",
+ "uploadLogo": "Last opp logo",
+ "themeLight": "Lyst tema",
+ "appName": "Appnavn",
+ "appNameDesc": "Beskrivelse av appnavn",
+ "resetLogo": "Tilbakestill logo",
+ "customFavicon": "Egendefinert favicon",
+ "hideHealthLogs": "Skjul helselogger",
+ "customLogo": "Egendefinert logo",
+ "appearance": "Utseende",
+ "themeSelectionAria": "ARIA-etikett for temavalg",
+ "themeCreate": "Opprett tema",
+ "customFaviconDesc": "Beskrivelse av egendefinert favicon",
+ "logoPreview": "Forhåndsvisning av logo",
+ "themeCustom": "Egendefinert tema",
+ "hideHealthLogsDesc": "Beskrivelse av skjuling av helselogger",
+ "faviconPreview": "Forhåndsvisning av favicon",
+ "changelog": "Endringslogg",
+ "contextSection": "Kontekst og hurtigbuffer",
+ "contextCaveman": "Huleboer",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Motorkombinasjoner",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Komprimeringsinnstillinger",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Kombinasjonsstudio",
"combosLiveSubtitle": "Direkte rutingkaskade",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Unntak",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Direkte motorkaskade",
"compressionExclusionsSubtitle": "Per-modell/endpoint omgåelse",
"chaosConfigSubtitle": "Parallellkjøring av flere modeller",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Ruting",
+ "protocolsSection": "Protokoller",
+ "agentsAiSection": "Agenter og KI",
+ "cacheContextSection": "Hurtigbuffer og kontekst",
+ "analyticsSection": "Analyse",
+ "costsSection": "Kostnader",
+ "monitoringSection": "Overvåking",
+ "auditSecuritySection": "Revisjon og sikkerhet",
+ "devtoolsSection": "Utviklerverktøy",
+ "configurationSection": "Konfigurasjon",
+ "aiFeaturesSection": "KI-funksjoner",
"mcp": "MCP",
"a2a": "A2A",
- "plugins": "Plugins",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "plugins": "Programtillegg",
+ "apiEndpoints": "API-endepunkter",
+ "batchFiles": "Filer",
+ "analyticsEvals": "Evalueringer",
+ "analyticsSearch": "Søk",
+ "analyticsUtilization": "Utnyttelse",
+ "analyticsComboHealth": "Kombinasjonsstatus",
+ "analyticsCompression": "Komprimering",
+ "costsBudget": "Budsjett",
"costsFreeTiers": "Budsjett for gratisnivå",
"costsFreeTiersSubtitle": "Månedlige gratiskvoter for tokener",
"freeProviderRankings": "Rangering av gratisleverandører",
"freeProviderRankingsSubtitle": "Beste gratisleverandører rangert etter modellens ELO-poengsum",
"radar": "Radar Katalog",
"radarSubtitle": "Fellesskapsberiket gratis modellkatalog",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Kvotedeling",
+ "costsPricing": "Priser",
+ "logsProxy": "Proxy-logger",
+ "logsConsole": "Konsoll",
+ "logsActivity": "Aktivitet",
+ "auditMcp": "MCP-revisjon",
"auditA2a": "A2A revisjon",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Utseende",
+ "settingsAi": "KI-innstillinger",
+ "settingsSecurity": "Sikkerhet",
"settingsAccessTokens": "Tilgangstokener",
"settingsFeatureFlags": "Funksjonsflagg",
- "settingsCache": "Cache",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsCache": "Hurtigbuffer",
+ "settingsAuthz": "Autorisasjon",
+ "settingsRouting": "Ruting",
+ "settingsResilience": "Robusthet",
"modelLockout": "Modellsperre",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Avansert",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Leverandørkvote",
+ "providerQuota": "Leverandørkvote",
+ "runtime": "Kjøremiljø",
+ "consoleLogs": "Konsollogger",
+ "logsTimeline": "Tidslinje",
"logsTimelineSubtitle": "Visuell forespørselstidslinje",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Samtaler",
+ "conversationsSubtitle": "Agentbaserte samtaler med flere runder",
+ "globalRouting": "Global ruting",
+ "mitmProxy": "MITM-proxy",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Agentbaserte funksjoner",
+ "otherFeaturesSection": "Andre funksjoner",
+ "compressionContextGroup": "Kontekstkomprimering",
+ "gamificationGroup": "Spillifisering",
+ "toolsGroup": "Verktøy",
+ "integrationsGroup": "Integrasjoner",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "costsParametersGroup": "Kostnadsparametere",
+ "auditGroup": "Revisjon",
+ "batchGroup": "Gruppebehandling",
+ "homeSubtitle": "Oversikt over kontrollpanelet",
+ "providersSubtitle": "Administrer AI-leverandører",
+ "quotaTrackerSubtitle": "Spor bruksgrenser",
+ "providerQuotaSubtitle": "Spor leverandørenes bruksgrenser",
+ "runtimeSubtitle": "Robusthet og økter i sanntid",
+ "contextCombosSubtitle": "Kombiner komprimeringsmotorer",
+ "cliToolsSubtitle": "Konfigurer CLI-kjøremiljøer",
+ "agentsSubtitle": "Administrer lokale agenter",
+ "cloudAgentsSubtitle": "Administrer skybaserte agenter",
+ "apiEndpointsSubtitle": "Tilgjengeliggjør egendefinerte endepunkter",
+ "proxySubtitle": "HTTP-proxyinnstillinger",
+ "mitmProxySubtitle": "MITM-avskjæring",
+ "oneProxySubtitle": "Offentlig proxy-gateway",
+ "leaderboard": "Resultatliste",
+ "profile": "Profil",
+ "tokens": "Tokener",
+ "gamificationAdmin": "Administrasjon av spillifisering",
+ "leaderboardSubtitle": "Rangeringer og prestasjoner",
+ "profileSubtitle": "Konto og innstillinger",
+ "tokensSubtitle": "Tokenbruk og budsjetter",
+ "gamificationAdminSubtitle": "Overvåking av avvik og beskyttelse mot juks",
+ "usageSubtitle": "Trafikk- og bruksstatistikk",
+ "analyticsComboHealthSubtitle": "Pålitelighet for kombinasjonsmål",
+ "analyticsUtilizationSubtitle": "Leverandørutnyttelse",
+ "costsSubtitle": "Kostnadsfordeling",
+ "cacheSubtitle": "Treffrater for hurtigbuffer",
+ "analyticsCompressionSubtitle": "Statistikk over tokenbesparelser",
+ "analyticsSearchSubtitle": "Analyse av søkeverktøy",
+ "analyticsEvalsSubtitle": "Resultater fra evalueringspakke",
"providerStats": "Leverandørstatistikk",
"providerStatsSubtitle": "Latens- og ytelsesmetrikker",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Applikasjonslogger",
+ "logsProxySubtitle": "Logger for proxytrafikk",
+ "consoleLogsSubtitle": "Konsollutdata",
+ "logsActivitySubtitle": "Brukeraktivitetslogg",
+ "healthSubtitle": "Systemhelsesjekk",
+ "costsPricingSubtitle": "Prisregler per modell",
+ "costsBudgetSubtitle": "Budsjettgrenser",
+ "costsQuotaShareSubtitle": "Del leverandørkvoter mellom nøkler",
+ "auditLogSubtitle": "Autorisasjonsrevisjon",
+ "auditMcpSubtitle": "Revisjon av MCP-server",
+ "auditA2aSubtitle": "Revisjon av A2A-protokoll",
+ "translatorSubtitle": "Formatkonvertering",
+ "playgroundSubtitle": "Test ledetekster direkte",
+ "searchToolsSubtitle": "Register over søkeverktøy",
+ "memorySubtitle": "Permanent agentminne",
+ "omniSkillsSubtitle": "Register over sandkasseferdigheter",
+ "agentSkillsSubtitle": "Register over A2A-ferdigheter",
+ "mcpSubtitle": "Kontroller for MCP-server",
+ "a2aSubtitle": "A2A-protokollserver",
"pluginsSubtitle": "Markedsplass og installasjoner for plugins",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Mellomlagrede mediefiler",
+ "batchFilesSubtitle": "Filer for satsvis inn- og utdata",
+ "settingsSubtitle": "Alle innstillinger",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Tema og oppsett",
+ "settingsAiSubtitle": "Standardinnstillinger for AI-atferd",
+ "globalRoutingSubtitle": "Globale rutingsregler",
+ "settingsResilienceSubtitle": "Nye forsøk og strømbrytere",
+ "settingsAdvancedSubtitle": "Alternativer for avanserte brukere",
+ "settingsSecuritySubtitle": "Autentisering og kryptering",
"settingsAccessTokensSubtitle": "Avgrensede CLI-tokener for fjernmodus",
"settingsFeatureFlagsSubtitle": "Bytt systemfunksjoner",
"settingsCacheSubtitle": "Modellkatalog og responsbufring",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Sidefelt",
+ "settingsSidebarSubtitle": "Tilpass oppsettet for sidefeltet",
"settingsAuthzSubtitle": "Rutebeholdning og omgåelsespolicy",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Dokumentasjon",
+ "issuesSubtitle": "Rapporter en feil",
+ "changelogSubtitle": "Versjonsmerknader",
"costsQuotaPlans": "Abonnementer og kvoter",
"costsQuotaPlansSubtitle": "Konfigurer abonnementer etter leverandør",
"activity": "Aktivitet",
@@ -1271,11 +1275,11 @@
"systemGroup": "System",
"costsOverview": "Oversikt",
"costsOverviewSubtitle": "Konsolidert kostnadsanalyse",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Agentbro",
"agentBridgeSubtitle": "Avskjær IDE-agenttrafikk",
"trafficInspector": "Trafikkinspektør",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Inspiser forespørsels- og svartrafikk fra appene dine",
+ "trafficInspectorPurpose": "Se nøyaktig hva applikasjonen din sender til og mottar fra AI-leverandører. Fungerer med alle OpenAI-kompatible klienter.",
"cliCode": "CLI-kode",
"cliCodeSubtitle": "Kodeverktøy som peker til OmniRoute",
"cliAgents": "CLI-agenter",
@@ -1300,7 +1304,7 @@
"orchestrationSubtitle": "Direktevisning av alt som kjører",
"resilienceConnections": "Tilkoblingsresiliens",
"resilienceConnectionsSubtitle": "Cooldown, bryter, lockout-status",
- "settingsModalityBridge": "Modality Bridge",
+ "settingsModalityBridge": "Modalitetsbro",
"settingsModalityBridgeSubtitle": "Bilde/lyd → tekst fallback for tekstbare modeller",
"commandPalette": {
"title": "Kommando palett",
@@ -1314,7 +1318,7 @@
"noResults": "Ingen resultater"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Webhooker",
"description": "Konfigurer HTTP-tilbakekalling for systemhendelser.",
"configuredWebhooks": "Konfigurerte Webhooks",
"configuredWebhooksDesc": "Administrer leveringsendepunkter, abonnerte hendelser, status og testsendinger.",
@@ -1323,7 +1327,7 @@
"name": "Navn",
"namePlaceholder": "Produksjonsovervåking",
"unnamedWebhook": "Unavngitt webhook",
- "url": "Endpoint URL",
+ "url": "Endepunkt-URL",
"events": "Hendelser",
"allEvents": "Alle arrangementer",
"secret": "Hemmelig",
@@ -1341,7 +1345,7 @@
"refresh": "Oppdater",
"loading": "Laster inn webhooks...",
"never": "Aldri",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {ingen feil} one {# feil} other {# feil}}",
"testWebhook": "Send test",
"testSuccess": "Test webhook sendt.",
"testFailed": "Test webhook mislyktes.",
@@ -1457,7 +1461,7 @@
"eventTypePlaceholder": "Filtrer etter handling eller hendelsestype",
"severity": "Alvorlighetsgrad",
"allSeverities": "Alle alvorlighetsgrader",
- "info": "Info",
+ "info": "Informasjon",
"warning": "Advarsel",
"critical": "Kritisk",
"sourceIp": "Kilde IP",
@@ -1559,13 +1563,13 @@
"mcpMetricTopTool": "Topp verktøy"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "Temaer",
+ "description": "Velg et forhåndsinnstilt tema, eller lag ditt eget med én enkelt farge",
+ "presetColors": "Populære farger",
+ "customTheme": "Egendefinert tema",
+ "customThemeDesc": "Klikk på «Opprett tema» og velg én farge",
+ "createTheme": "Opprett tema",
+ "activePreset": "Aktivt tema"
},
"header": {
"logout": "Logg ut",
@@ -1577,73 +1581,73 @@
"language": "Språk",
"providers": "Leverandører",
"providerDescription": "Administrer AI-leverandørtilkoblingene dine",
- "combos": "Combos",
+ "combos": "Kombinasjoner",
"comboDescription": "Modellkombinasjoner med fallback",
"usage": "Bruk og analyse",
"usageDescription": "Overvåk API-bruken din, tokenforbruk og forespørselslogger",
- "analytics": "Analytics",
+ "analytics": "Analyse",
"analyticsDescription": "Diagrammer, trender og evalueringsinnsikt",
"cliTools": "CLI-verktøy",
"cliToolsDescription": "Konfigurer CLI-verktøy",
"home": "Hjem",
"homeDescription": "Velkommen til OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Endepunkter",
+ "endpointDescription": "Administrer proxy-endepunkter, MCP-, A2A- og API-endepunkter",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Administrasjon av Model Context Protocol-servere og -verktøy",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Agent-to-Agent-protokolloppgaver og observerbarhet",
"settings": "Innstillinger",
"settingsDescription": "Administrer dine preferanser",
"openaiCompatible": "OpenAI-kompatibel",
"anthropicCompatible": "Antropisk kompatibel",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "media": "Medier",
+ "mediaDescription": "Generer bilder, videoer og musikk",
+ "themes": "Temaer",
+ "themesDescription": "Velg et fargetema for hele dashbordpanelet",
+ "costsDescription": "Spor kostnader, analyser trender og administrer AI-budsjettet ditt på tvers av alle leverandører",
+ "cacheDescription": "Overvåk effektiviteten til leverandørenes hurtigbuffer for prompter og lokal semantisk gjenbruk av svar.",
+ "limitsDescription": "Konfigurer hastighetsgrenser og kvoter per API-nøkkel og leverandør",
+ "runtimeDescription": "Observerbarhet av kjøretid i sanntid — effektbrytere, nedkjølingsperioder, modellsperrer, økter og kvotevarsler",
+ "apiManagerDescription": "Administrer API-nøkler og tilgangskontroll for OmniRoute-instansen din",
+ "batchDescription": "Behandle store mengder forespørsler asynkront med grupperte API-kall",
+ "contextCavemanDescription": "Regelbasert meldingskomprimering, språkpakker, analyse og kontroll av utdatamodus.",
+ "contextRtkDescription": "Kommandobevisst komprimering av verktøyutdata, terminallogger og byggeresultater.",
+ "contextCombosDescription": "Definer hvordan motorer kombineres for ulike rutingsscenarioer.",
+ "changelogDescription": "Hold deg oppdatert på de nyeste plattformfunksjonene og kunngjøringene.",
+ "agentsDescription": "Administrer og konfigurer AI-agentverktøy: Codex, Devin, Jules og egendefinerte agenter",
+ "cloudAgentsDescription": "Orkestrer skybaserte AI-agenter med oppgavesporing i sanntid og plangodkjenning",
+ "memoryDescription": "Vedvarende samtaleminne med semantisk søk og FTS5-fulltekstindeksering",
+ "skillsDescription": "Installer og administrer sandkasseferdigheter for automatisert kjøring av ledetekster og verktøy",
+ "agentSkillsDescription": "Agentklart ferdighetsbibliotek med ettklikkskopiering av URL for integrasjon med AI-klienter",
+ "translatorDescription": "Oversett og test ledetekster på tvers av API-formater: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Test ledetekster interaktivt med leverandørsvar i sanntid og formatinspeksjon",
+ "searchToolsDescription": "Søkeanalyse, leverandørfordeling, treffrater for hurtigbuffer og kostnadssporing",
+ "logsDescription": "Forespørselslogger i sanntid, feilsporing og inspektør for strømmehendelser",
+ "auditDescription": "Samsvarsrevisjonsspor for bruk av API-nøkler, MCP-verktøykall og policyhendelser",
+ "webhooksDescription": "Konfigurer webhook-endepunkter for å motta hendelsesvarsler i sanntid",
+ "healthDescription": "Oversikt over systemtilstand: leverandører, effektbrytere, hastighetsgrenser og database",
+ "proxyDescription": "Konfigurer innstillinger for oppstrøms proxy for utgående leverandørtilkoblinger",
+ "apiEndpointsDescription": "Administrer egendefinerte API-endepunktkonfigurasjoner og overstyringer av ruting",
+ "batchFilesDescription": "Bla gjennom og administrer utdatafiler og resultater fra batchjobber",
+ "analyticsEvalsDescription": "Resultater fra modellevaluering og ytelsesreferanser",
+ "analyticsSearchDescription": "Analyse av søkespørringer, treffrater for hurtigbuffer og kostnadssporing",
+ "analyticsUtilizationDescription": "Målinger av leverandørutnyttelse og kapasitetsplanlegging",
+ "analyticsComboHealthDescription": "Tilstand og ytelse i sanntid for konfigurasjoner av kombinasjonsruting",
+ "analyticsCompressionDescription": "Analyse av kontekstkomprimering og tokenbesparelser",
+ "costsBudgetDescription": "Budsjettgrenser og forbruksvarsler per API-nøkkel og leverandør",
+ "costsPricingDescription": "Egendefinert priskonfigurasjon for beregning av tokenkostnader",
+ "logsProxyDescription": "Forespørselslogger for oppstrøms proxy og trafikkinspeksjon",
+ "logsConsoleDescription": "Utdata fra applikasjonskonsollen og feilsøkingslogger",
+ "logsActivityDescription": "Revisjonsspor for brukerhandlinger og systemhendelser",
+ "auditMcpDescription": "Revisjonsspor og samsvarsregistre for kall til MCP-verktøy",
"auditA2a": "A2A revisjon",
"auditA2aDescription": "Revisjonsspor for A2A-oppgaveutførelse, tilstandsoverganger og registreringer av ferdighetsanrop",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Tema, profilering og visuell tilpasning",
+ "settingsAiDescription": "AI-atferd, tenkebudsjetter, syns- og minneinnstillinger",
"settingsCacheDescription": "TTL for modellkatalog cacheoppføringer",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Innstillinger for autentisering, autorisasjon og tilgangskontroll",
"featureFlags": "Funksjonsflagg",
"featureFlagsDescription": "Kontrollsystemfunksjoner og eksperimentelle funksjoner",
"featureFlagsActive": "{count} aktiv",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Ingen flagg samsvarer med søket ditt",
"featureFlagsSaved": "Flagget er oppdatert",
"featureFlagsError": "Kunne ikke oppdatere flagget",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Rutingsregler, modellaliaser, standardinnstillinger for kombinasjoner og degraderingsinnstillinger",
+ "settingsResilienceDescription": "Konfigurasjon av kretsbryter, nye forsøk og reserveløsning",
+ "settingsAdvancedDescription": "Avanserte nyttelastregler, forespørselsgrenser og API-innstillinger for proxy",
+ "mitmProxyDescription": "Konfigurer MITM-proxyinnstillinger for inspeksjon og feilsøking av trafikk",
+ "oneProxyDescription": "Konfigurer 1Proxy-innstillinger for avansert proxykjeding",
"omniSkillsDescription": "Installer og administrer sandkasseferdigheter for automatisert prompt- og verktøykjøring"
},
"cloudSyncStatus": {
@@ -1721,7 +1725,7 @@
"costs": "Kostnader",
"health": "Helse",
"runtime": "Kjøretid",
- "webhooks": "Webhooks",
+ "webhooks": "Webhooker",
"home": "Hjem",
"activity": "Aktivitet",
"agentSkills": "AgentSkills",
@@ -1758,7 +1762,7 @@
"discovery": "Oppdagelse",
"freeProviderRankings": "Rangering av gratisleverandører",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Oppsett",
"freeTiers": "Gratisnivåer",
"gamification": "Spillifisering",
"leaderboard": "Ledertavle",
@@ -1772,7 +1776,7 @@
"searchTools": "Søkeverktøy",
"security": "Sikkerhet",
"sidebar": "Sidefelt",
- "tokens": "Tokens",
+ "tokens": "Tokener",
"tools": "Verktøy",
"agentBridge": "Agentbro",
"trafficInspector": "Trafikkinspektør",
@@ -1808,7 +1812,7 @@
"reportIssue": "Rapporter problem",
"activeError": "{active} aktiv · {errors} feil",
"topologyLegendActive": "Aktiv",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Nylige",
"topologyLegendError": "Feil",
"oauthLabel": "OAuth",
"apiKeyLabel": "API-nøkkel",
@@ -1822,11 +1826,11 @@
"updateStarted": "Oppdatering startet...",
"reloadingPageAutomatically": "Laster siden automatisk på nytt...",
"providerTopology": "Leverandørtopologi",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Nylige forespørsler",
+ "recentRequestsEmpty": "Ingen forespørsler ennå.",
+ "recentRequestsModel": "Modell",
+ "recentRequestsTokens": "Inn / ut",
+ "recentRequestsWhen": "Når",
"downloadDmg": "Last ned DMG (macOS)",
"downloadDmgDescription": "En ny versjon av OmniRoute skrivebordsappen er tilgjengelig. Vennligst last ned og installer macOS DMG-installasjonsprogrammet for å oppdatere (nåværende: v{version}).",
"downloadExe": "Last ned EXE (Windows)",
@@ -1884,18 +1888,18 @@
"releaseNotes": "Utgivelsesnotater",
"readMore": "Les Mer",
"noAuthLabel": "Ingen autentisering",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Gjør deg klar til å rute",
+ "readinessTitle": "Send din første forespørsel",
+ "readinessSubtitle": "Fire enkle trinn. OmniRoute kontrollerer at alt er klart underveis.",
+ "readinessStep1": "Koble til en leverandør",
+ "readinessStep2": "Konfigurer endepunktsautentisering",
+ "readinessStep3": "Kopier endepunktet ditt",
+ "readinessStep4": "Send en testforespørsel",
+ "readinessContinue": "Fortsett oppsettet",
+ "readinessDismiss": "Avvis inntil videre"
},
"analytics": {
- "title": "Analytics",
+ "title": "Analyse",
"usageAnalyticsTitle": "Bruksanalyse",
"diversityScoreTitle": "Leverandørmangfold",
"diversityScoreDesc": "Øyeblikksbilde av leverandørkonsentrasjon for det nylige trafikkvinduet.",
@@ -1924,13 +1928,13 @@
"chartNoData": "Ingen data",
"chartWeekly": "Ukentlig",
"activitySummary": "{active} aktive dager · {tokens} tokens · {days} dager",
- "activityCellTitle": "{date}: {tokens} tokens",
+ "activityCellTitle": "{date}: {tokens} tokener",
"activityLess": "Mindre",
"activityMore": "Mer",
"chartApiKeyBreakdown": "API-nøkkelfordeling",
"chartApiKey": "API-nøkkel",
"mostActiveDay": "Mest aktive dag",
- "datedTokenCount": "{date} · {tokens} tokens",
+ "datedTokenCount": "{date} · {tokens} tokener",
"noDataLast7Days": "Ingen data de siste 7 dagene",
"requestTokenSummary": "{requests} forespørsler · {tokens} tokens",
"chartByAccount": "Per konto",
@@ -1959,11 +1963,11 @@
"rangeCancel": "Avbryt",
"rangeApply": "Bruk",
"rangeErrorInvalid": "Start må være før slutt",
- "period1D": "1D",
- "period7D": "7D",
- "period30D": "30D",
- "period90D": "90D",
- "periodYTD": "YTD",
+ "period1D": "1 d",
+ "period7D": "7 d",
+ "period30D": "30 d",
+ "period90D": "90 d",
+ "periodYTD": "Hittil i år",
"periodAll": "Alle",
"totalTokens": "Totale tokens",
"inputTokens": "Inndata-tokens",
@@ -1989,7 +1993,7 @@
"overviewDescription": "Overvåk API-bruksmønstre, tokenforbruk, kostnader og aktivitetstrender på tvers av alle leverandører og modeller.",
"evalsDescription": "Kjør evalueringspakker for å teste og validere LLM-endepunktene dine. Sammenlign modellkvalitet, registrer regresjoner og benchmark latens.",
"overview": "Oversikt",
- "evals": "Evals",
+ "evals": "Evalueringer",
"search": "Søk",
"utilization": "Utnyttelse",
"routeTrace": "Rutesporing",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Feil",
"comboHealth": "Kombohelse",
"comboHealthDescription": "Kombonivåkvote, bruksfordeling og ytelsesmålinger",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Komprimeringsanalyse",
+ "compressionAnalyticsDescription": "Komprimeringsanalyse – tokenbesparelser, modusfordeling og leverandørstatistikk.",
"autoRoutingTotalAutoRequests": "Totalt antall automatiske forespørsler",
"autoRoutingAvgSelectionScore": "Gjennomsnittlig utvalgspoeng",
"autoRoutingExplorationRate": "Utforskningshastighet",
@@ -2014,7 +2018,7 @@
"comboHealthSuccessRate": "Suksessrate",
"comboHealthQuotaHealth": "Kvote helse",
"comboHealthRequests": "Forespørsler",
- "comboHealthTokens": "Tokens",
+ "comboHealthTokens": "Tokener",
"comboHealthAvgLatency": "Gjennomsnittlig ventetid",
"comboHealthTotalRequests": "Totalt antall forespørsler",
"comboHealthExecutionTargets": "Gjennomføringsmål",
@@ -2100,7 +2104,7 @@
"comboHealthStepCreate": "Opprett kombinasjoner i Kombinasjoner med flere leverandører",
"comboHealthStepSend": "Send forespørsler til kombinasjonsendepunkter for å generere trafikkdata",
"comboHealthStepAutomatic": "Helseberegninger vil vises automatisk etter hvert som forespørsler rutes",
- "comboHealthTracking": "Tracking {count} combos for {range}",
+ "comboHealthTracking": "Sporer {count} kombinasjoner for {range}",
"compressionAnalyticsTotalRequests": "Totalt antall forespørsler",
"compressionAnalyticsTokensSaved": "Tokens lagret",
"compressionAnalyticsAvgSavings": "Gj.sn. besparelser",
@@ -2110,28 +2114,28 @@
"compressionAnalyticsPromptTokens": "Spør tokens",
"compressionAnalyticsCompletionTokens": "Fullføringssymboler",
"compressionAnalyticsTotalTokens": "Totalt tokens",
- "compressionAnalyticsCacheTokens": "Cache tokens",
+ "compressionAnalyticsCacheTokens": "Bufrede tokener",
"compressionAnalyticsNoDataYet": "Ingen komprimeringsdata ennå",
- "compressionAnalyticsLoading": "Loading compression analytics…",
- "compressionAnalyticsNoDataDescription": "Compression requests will appear here after the first request through /v1/chat/completions with compression enabled.",
- "rangeLast24h": "Last 24h",
- "rangeLast7d": "Last 7d",
- "rangeLast30d": "Last 30d",
- "rangeAllTime": "All time",
- "compressionAnalyticsModeStats": "{count} requests · {tokens} tokens saved",
- "compressionAnalyticsSkipped": " · {count} skipped (no-op)",
- "compressionAnalyticsRealTokens": "{count} real tokens",
- "compressionAnalyticsValidationRestores": "validation restores",
- "compressionAnalyticsRealUsageReceipts": "Real Usage Receipts",
- "compressionAnalyticsSources": "Sources",
- "compressionAnalyticsModeBreakdown": "Mode Breakdown",
- "compressionAnalyticsProviderBreakdown": "Provider Breakdown",
- "compressionAnalyticsLast24HoursActivity": "Last 24 Hours (Activity)",
- "compressionAnalyticsChartPoint": "{hour}: {count} requests, {tokens} tokens saved",
- "compressionAnalyticsMaxRequests": "Max requests/hour: {count}",
- "compressionAnalyticsMaxTokens": "Max tokens/hour: {count}",
- "compressionAnalyticsStartTracking": "Use POST /v1/chat/completions with compression configuration to start tracking compression analytics.",
- "compressionAnalyticsInfo": "Compression analytics: Token savings tracked per mode (off, lite, standard, aggressive, ultra, RTK, stacked), engine, compression combo, and provider. Hover over charts for details. Use the time selector to view different time periods.",
+ "compressionAnalyticsLoading": "Laster inn komprimeringsanalyse …",
+ "compressionAnalyticsNoDataDescription": "Komprimeringsforespørsler vises her etter den første forespørselen via /v1/chat/completions med komprimering aktivert.",
+ "rangeLast24h": "Siste 24 t",
+ "rangeLast7d": "Siste 7 d",
+ "rangeLast30d": "Siste 30 d",
+ "rangeAllTime": "Hele perioden",
+ "compressionAnalyticsModeStats": "{count} forespørsler · {tokens} tokener spart",
+ "compressionAnalyticsSkipped": "· {count} hoppet over (ingen effekt)",
+ "compressionAnalyticsRealTokens": "{count} faktiske tokener",
+ "compressionAnalyticsValidationRestores": "valideringsgjenopprettinger",
+ "compressionAnalyticsRealUsageReceipts": "Kvitteringer for faktisk bruk",
+ "compressionAnalyticsSources": "Kilder",
+ "compressionAnalyticsModeBreakdown": "Modusfordeling",
+ "compressionAnalyticsProviderBreakdown": "Leverandørfordeling",
+ "compressionAnalyticsLast24HoursActivity": "Siste 24 timer (aktivitet)",
+ "compressionAnalyticsChartPoint": "{hour}: {count} forespørsler, {tokens} tokener spart",
+ "compressionAnalyticsMaxRequests": "Maks. forespørsler/time: {count}",
+ "compressionAnalyticsMaxTokens": "Maks. tokener/time: {count}",
+ "compressionAnalyticsStartTracking": "Bruk POST /v1/chat/completions med komprimeringskonfigurasjon for å begynne å spore komprimeringsanalyse.",
+ "compressionAnalyticsInfo": "Komprimeringsanalyse: Tokenbesparelser spores per modus (off, lite, standard, aggressive, ultra, RTK, stacked), motor, komprimeringskombinasjon og leverandør. Hold pekeren over diagrammene for detaljer. Bruk tidsvelgeren for å vise ulike tidsperioder.",
"searchAnalyticsTotalSearches": "Totalt antall søk",
"searchAnalyticsCacheHitRate": "Hurtigbuffertrefffrekvens",
"searchAnalyticsTotalCost": "Total kostnad",
@@ -2144,26 +2148,26 @@
"providerUtilizationLatestSnapshot": "Siste øyeblikksbilde av kvoten",
"providerUtilizationRemainingCapacity": "Gjenværende kapasitet",
"utilizationRange": {
- "1h": "Last hour",
- "24h": "Last 24 hours",
- "7d": "Last 7 days",
- "30d": "Last 30 days"
+ "1h": "Siste time",
+ "24h": "Siste 24 timer",
+ "7d": "Siste 7 dager",
+ "30d": "Siste 30 dager"
},
- "providerUtilizationGlobalView": "Global View",
- "providerUtilizationAccountSplit": "Account Split",
- "providerUtilizationLoading": "Loading utilization data…",
- "retrying": "Retrying…",
- "retry": "Retry",
- "providerUtilizationNoDataDescription": "Provider quota snapshots will appear here after utilization data is collected.",
- "providerUtilizationStepConnect": "Connect providers through OAuth or API keys in Providers",
- "providerUtilizationStepEnable": "Enable quota tracking by using the provider in a combo or direct request",
- "providerUtilizationStepAutomatic": "Data will appear automatically as quota snapshots are collected",
- "statusExhausted": "Exhausted",
- "statusLow": "Low",
- "statusHealthy": "Healthy",
- "remainingQuota": "Remaining quota",
- "routeTraceTitle": "Route Trace View",
- "routeTraceDescription": "Inspect the persisted request trace: selected target, routing factors, fallback evidence, current scoring replay, latency, tokens and target health.",
+ "providerUtilizationGlobalView": "Global visning",
+ "providerUtilizationAccountSplit": "Kontofordeling",
+ "providerUtilizationLoading": "Laster inn utnyttelsesdata …",
+ "retrying": "Prøver på nytt …",
+ "retry": "Prøv på nytt",
+ "providerUtilizationNoDataDescription": "Øyeblikksbilder av leverandørkvoter vises her etter at utnyttelsesdata er samlet inn.",
+ "providerUtilizationStepConnect": "Koble til leverandører via OAuth eller API-nøkler i Leverandører",
+ "providerUtilizationStepEnable": "Aktiver kvotesporing ved å bruke leverandøren i en kombinasjon eller direkte forespørsel",
+ "providerUtilizationStepAutomatic": "Data vises automatisk etter hvert som kvoteøyeblikksbilder samles inn",
+ "statusExhausted": "Oppbrukt",
+ "statusLow": "Lav",
+ "statusHealthy": "God",
+ "remainingQuota": "Gjenværende kvote",
+ "routeTraceTitle": "Visning av rutesporing",
+ "routeTraceDescription": "Inspiser det lagrede forespørselssporet: valgt mål, rutingsfaktorer, dokumentasjon på reserveløsning, gjeldende poengberegning, ventetid, tokens og målstatus.",
"routeTraceRequestLog": "Forespørselslogg",
"routeWeight": "Vekt {weight}%",
"routeNoRelatedEvidence": "Ingen relaterte målbevis er lagret ennå.",
@@ -2205,7 +2209,7 @@
"connection": "Tilkobling",
"combo": "Kombi",
"routeStep": "Trinn",
- "tokens": "Tokens",
+ "tokens": "Tokener",
"notAvailable": "i/t",
"routeTokenCounts": "{input} inn · {output} ut",
"routeEvidence": "Bevis",
@@ -2252,11 +2256,11 @@
"selectedModels": "Utvalgte modeller",
"readOnly": "Kun lesetilgang",
"fullAccess": "Full tilgang",
- "keyManagement": "API Key Management",
+ "keyManagement": "Administrasjon av API-nøkler",
"keyManagementDesc": "Opprett og administrer API-nøkler for autentisering av forespørsler til endepunktet ditt",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Appen din sender forespørsler til OmniRoute via en API-nøkkel",
+ "requestFlowYourApp": "Appen din",
+ "requestFlowApiKey": "API-nøkkel",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Totalnøkler",
"restricted": "Begrenset",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Kopier og lagre denne nøkkelen nå – den vises ikke igjen.",
"done": "Ferdig",
"savePermissions": "Lagre tillatelser",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Tillatte endepunkter",
+ "allEndpointsAllowed": "Denne nøkkelen har tilgang til alle API-endepunkter.",
+ "endpointsRestricted": "Begrenset til {count} endepunkt{count, plural, one {} other {er}}.",
+ "autoResolve": "Automatisk løsning",
+ "autoResolveDesc": "Knytt automatisk tvetydige modellnavn til den opprinnelige leverandøren for denne API-nøkkelen.",
"streamDefaultMode": "Standardkompatibilitet for strøm",
"streamDefaultModeDesc": "Kontrollerer utelatte `stream`-flagg for denne nøkkelen. JSON-modus returnerer ikke-strømmende svar med mindre klienten eksplisitt ber om SSE.",
"streamDefaultLegacy": "Foreldet",
"streamDefaultJson": "JSON-kompatibel",
"streamDefaultBadge": "Standard for JSON-strøm",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Aktiv nøkkel",
+ "keyActiveDesc": "Aktiver eller deaktiver denne API-nøkkelen. Deaktiverte nøkler avvises umiddelbart med 403.",
+ "accessSchedule": "Tilgangsplan",
+ "accessScheduleDesc": "Begrens tilgangen til bestemte klokkeslett og ukedager.",
+ "scheduleFrom": "Fra",
+ "scheduleUntil": "Til",
+ "scheduleDays": "Dager",
+ "scheduleTimezone": "Tidssone",
+ "scheduleTimezoneHint": "Bruk IANA-tidssonenavn, f.eks. America/New_York, Europe/Berlin",
+ "scheduleActive": "Tidsplan",
+ "disabled": "Deaktivert",
+ "daySun": "Søn",
+ "dayMon": "Man",
+ "dayTue": "Tir",
+ "dayWed": "Ons",
+ "dayThu": "Tor",
+ "dayFri": "Fre",
+ "daySat": "Lør",
"allowAll": "Tillat alle",
"restrict": "Begrens",
"allowAllInfo": "Denne nøkkelen har tilgang til alle tilgjengelige modeller.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Kunne ikke oppdatere tillatelser. Vennligst prøv igjen.",
"unknownProvider": "ukjent",
"copyMaskedKey": "Kopier maskert nøkkel",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Hele nøkkelen er bare tilgjengelig når den opprettes – kopier den første gang du oppretter nøkkelen",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# enhet} other {# enheter}}",
"devicesTooltip": "{count, plural, one {# unik IP/User-Agent-enhet sett med denne nøkkelen (siste 30 min)} other {# unike IP/User-Agent-enheter sett med denne nøkkelen (siste 30 min)}}",
@@ -2378,12 +2382,12 @@
"allowedCombos": "Tillatte kombinasjoner",
"allCombosAllowed": "Denne nøkkelen kan bruke alle kombinasjoner.",
"restrictedComboCount": "Begrenset til {count, plural, one {# kombinasjon} other {# kombinasjoner}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# lagret oppføring finnes} other {# lagrede oppføringer finnes}} ikke i denne kombinasjonslisten (for eksempel rutingsregler) og beholdes som lagret.",
+ "preservedComboRuleHint": "Beholdt som lagret. Denne oppføringen er ikke en kombinasjon i listen ovenfor, så den kan bare endres via API-et.",
"apiManagerCustomRateLimits": "Egendefinerte satsgrenser",
"apiManagerCustomRateLimitsDesc": "Overstyr globale standardgrenser. La stå tomt for å bruke standardinnstillinger.",
"apiManagerRateLimitRequestsPlaceholder": "Forespørsler",
- "apiManagerRateLimitReqPer": "req /",
+ "apiManagerRateLimitReqPer": "foresp. /",
"apiManagerRateLimitSecondsPlaceholder": "Sekunder",
"apiManagerRemoveLimitTitle": "Fjern grensen",
"apiManagerTimezonePlaceholder": "Amerika/Sao_Paulo",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Lar denne nøkkelen ignorere oppstrøms leverandør-/kontogrensepolicy under ruting. API-nøkkel USD-kvoter gjelder fortsatt.",
"quotaPill": "KVOTE",
"quotaModeOnly": "kun qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Eksklusiv leie",
+ "exclusiveLeaseNoticeTitle": "Eksklusiv leie",
+ "exclusiveLeaseNoticeDesc": "Denne API-nøkkelen har tillatelse til eksklusiv leie for ruting av dedikerte tilkoblinger.",
+ "allConnections": "Alle tilkoblinger",
+ "onlySelectedConnections": "Bare valgte tilkoblinger",
+ "selectAtLeastOneConnection": "Velg minst én tilkobling, eller velg Alle tilkoblinger.",
+ "allConnectionsDesc": "Denne nøkkelen kan bruke alle aktive tilkoblinger.",
+ "restrictedToConnections": "Begrenset til {count, plural, one {# tilkobling} other {# tilkoblinger}}."
},
"auditLog": {
"title": "Revisjonslogg",
@@ -2453,16 +2457,16 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Generer",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Genererer...",
+ "loadingModels": "Laster inn tilgjengelige modeller...",
+ "noModels": "Ingen modeller er tilgjengelige. Konfigurer først leverandører med mediefunksjoner.",
+ "error": "Generering mislyktes",
+ "result": "Resultat",
+ "imageDescription": "Generer bilder fra tekstbeskrivelser med OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI og flere.",
+ "videoDescription": "Lag videoer med AnimateDiff, Stable Video Diffusion via ComfyUI eller SD WebUI.",
+ "musicDescription": "Komponer musikk med Stable Audio Open eller MusicGen via ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Innebygging",
"image": "Bilde",
"imageToText": "Bilde til tekst",
"tts": "Tekst til tale",
@@ -2527,7 +2531,7 @@
"generateModality": "Generer {modality}",
"apiKeyRequired": "API-nøkkel kreves",
"configureApiKeys": "Konfigurer API-nøkler i Leverandører",
- "downloadFormat": "Download {format}",
+ "downloadFormat": "Last ned {format}",
"noTextReturned": "Ingen tekst returnert",
"wordTimestamps": "Tidsstempler på ordnivå ({count} ord)",
"providerCount": "{count} leverandører",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "OpenRouter tale-til-tekst modeller bruker din konfigurerte OpenRouter-tilkobling. Ingen separate legitimasjon er nødvendig."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Søkeforespørsel",
+ "searchResults": "Søkeresultater",
+ "cachedResult": "Bufret",
+ "searchCost": "Kostnad",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Avansert søketesting med sammenligning av leverandører",
+ "compareProviders": "Sammenlign leverandører",
+ "rerankResults": "Omranger resultater",
+ "searchHistory": "Søkehistorikk",
+ "urlOverlap": "URL-overlapping",
+ "noSearchProviders": "Ingen søkeleverandører er konfigurert. Legg til leverandører i Innstillinger.",
+ "noRerankModels": "Ingen modell for omrangering er tilgjengelig",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Leverandør",
+ "searchType": "Søketype",
+ "maxResults": "Maksimalt antall resultater",
+ "filters": "Filtre",
+ "country": "Land",
+ "language": "Språk",
+ "timeRange": "Tidsperiode",
+ "includeDomains": "Inkluder domener",
+ "excludeDomains": "Ekskluder domener",
+ "safeSearch": "Sikkert søk",
+ "safeSearchOff": "Av",
+ "safeSearchModerate": "Moderat",
+ "safeSearchStrict": "Strengt",
+ "queryPlaceholder": "Skriv inn søk...",
+ "providerAuto": "auto (billigst)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "nyheter",
+ "optionAny": "alle",
+ "timeRangeDay": "Siste døgn",
+ "timeRangeWeek": "Siste uke",
+ "timeRangeMonth": "Siste måned",
+ "timeRangeYear": "Siste år",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Forespørselen fikk tidsavbrudd ({seconds}s)",
+ "networkError": "Nettverksfeil",
+ "formatted": "Formatert",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "ikke i hurtigbuffer",
+ "cacheHit": "funnet i hurtigbuffer",
+ "latency": "Forsinkelse",
+ "cost": "Kostnad",
+ "results": "Resultater",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Rerangeringsmodell",
+ "positionDelta": "Endring i plassering",
+ "emptyState": "Send et søk for å se resultater",
"copy": "Kopier",
"resetToDefault": "Tilbakestill til standard",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Søk",
+ "tabScrape": "Hent innhold",
+ "tabCompare": "Sammenlign",
+ "modalitiesGuide": "Veiledning for modaliteter",
+ "searchConceptTitle": "Søk",
+ "searchConceptDesc": "Søk = henter en liste over nettresultater (tittel, URL, utdrag, relevanspoeng)",
+ "scrapeConceptTitle": "Hent innhold",
+ "scrapeConceptDesc": "Hent innhold = trekker ut alt innholdet fra en URL (markdown, tekst eller HTML)",
+ "compareConceptTitle": "Sammenlign",
+ "compareConceptDesc": "Sammenlign = kjører det samme søket hos N leverandører side om side for å sammenligne forsinkelse, kostnad og overlapp mellom resultater",
+ "rerankConceptTitle": "Omrangering",
+ "rerankConceptDesc": "Omrangering = endrer rekkefølgen på resultatene via en LLM for å forbedre relevansen basert på søket",
+ "autoConceptTitle": "Auto (billigst)",
+ "autoConceptDesc": "Auto (billigst) = velger automatisk den billigste tilgjengelige leverandøren med konfigurerte tilgangsopplysninger",
+ "providerCatalogTitle": "Leverandørkatalog",
+ "kindSearch": "Søk",
+ "kindFetch": "Hent/skrap",
+ "statusConfigured": "Konfigurert",
+ "statusMissing": "Ingen tilgangsopplysninger",
+ "statusRateLimited": "Hastighetsbegrenset",
+ "configureProvider": "Konfigurer under Leverandører",
+ "loadingProviders": "Laster inn leverandører…",
+ "failedToLoadProviders": "Kunne ikke laste inn leverandører",
+ "costPerQuery": "Kostnad/spørring",
+ "freeQuota": "Gratis kvote/md.",
+ "scrapeUrl": "URL som skal skrapes",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL er påkrevd",
"scrapeUrlInvalid": "Ugyldig URL — den må starte med http:// eller https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
+ "scrapeExtract": "Trekk ut",
+ "scrapeExtracting": "Trekker ut…",
+ "scrapeFullPage": "Hele siden",
"scrapeFormat": "Format",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
+ "formatText": "Tekst",
+ "scrapePreview": "Forhåndsvisning",
+ "scrapeRaw": "Rådata",
+ "scrapeContentTruncated": "(avkortet, vis rådata)",
"scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "scrapeProvider": "Leverandør",
+ "scrapeSize": "Størrelse",
"scrapeEmptyState": "Oppgi en URL for å hente ut innholdet",
"scrapeProvidersAvailable": "Tilgjengelige leverandører: Firecrawl, Jina Reader, Tavily.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
+ "compareRun": "Sammenlign",
+ "compareRunning": "Sammenligner…",
+ "autoProvider": "Auto (billigst)",
+ "configuredStatus": "Konfigurert",
+ "rateLimitedStatus": "Hastighetsbegrenset",
+ "noCredential": "Ingen tilgangsopplysninger",
"searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "rerankModelLabel": "Omrangeringsmodell",
+ "noneOption": "Ingen",
+ "size": "Størrelse",
"configurationPane": "Konfigurasjonspanel",
"configuration": "Konfigurasjon",
"status": "Status",
@@ -2660,7 +2664,7 @@
"httpError": "Feil {status}",
"failed": "Mislyktes",
"requestFailed": "Forespørsel mislyktes",
- "embedding": "Embedding",
+ "embedding": "Innebygging",
"embeddingSample": "Hei, verden!",
"image": "Bilde",
"imageSample": "Et rolig landskap med fjell ved solnedgang",
@@ -2704,7 +2708,7 @@
"classifierCompatLoadFailed": "Kunne ikke laste inn innstilling",
"classifierCompatMode": {
"off": "Av",
- "auto": "Auto",
+ "auto": "Automatisk",
"always": "Alltid"
},
"ccDiscoveryInfoButton": "Hvordan aktivere oppdagelse i Claude Code",
@@ -2743,7 +2747,7 @@
"modelAliases": "Modellaliaser",
"addModel": "Legg til modell",
"routeModelPlaceholder": "Rut {model} til...",
- "baseUrl": "Base URL",
+ "baseUrl": "Basis-URL",
"apiKey": "API-nøkkel",
"configured": "Konfigurert",
"notConfigured": "Ikke konfigurert",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Legg til",
"antigravityStep2Suffix": "til vertsfilen din som 127.0.0.1.",
"antigravityStep3": "3. Åpne Antigravity og forespørsler vil bli fullført.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} sender forespørsler til leverandørens endepunkt. MITM fanger dem opp og omdirigerer dem til OmniRoute.",
+ "mitmStep1": "1. Start MITM for å rute forespørsler gjennom OmniRoute.",
+ "mitmStep2Prefix": "2. Legg til",
+ "mitmStep2Suffix": "i hosts-filen din som 127.0.0.1.",
+ "mitmStep3": "3. Åpne {toolName}, så sendes forespørslene via proxy.",
"sudoPasswordRequiredTitle": "Sudo-passord kreves",
"sudoPasswordHint": "Administratorpassord kreves for å endre vertsfil og systemproxyinnstillinger.",
"enterSudoPassword": "Skriv inn sudo-passord",
@@ -2865,7 +2869,7 @@
"provider": "Leverandør",
"model": "Modell",
"providers": "Leverandører",
- "auth": "Auth",
+ "auth": "Autentisering",
"noApiKeysAvailable": "Ingen API-nøkler tilgjengelig",
"usingDefaultOmniroute": "Bruker standard: sk_omniroute",
"updateConfig": "Oppdater konfig",
@@ -2886,7 +2890,7 @@
"codexAuthNoteMiddle": "med",
"codexAuthNoteSuffix": "Klikk \"Bruk\" for å konfigurere automatisk.",
"claudeManualConfiguration": "Claude CLI - Manuell konfigurasjon",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
+ "codexManualConfiguration": "Codex CLI – manuell konfigurasjon",
"droidManualConfiguration": "Factory Droid - Manuell konfigurasjon",
"openClawManualConfiguration": "Åpne Claw - Manuell konfigurasjon",
"clineManualConfiguration": "Cline manuell konfigurasjon",
@@ -2904,7 +2908,7 @@
"continue": "Bruk når du kjører Continue i IDEer og du trenger bærbar JSON-basert leverandørkonfigurasjon.",
"opencode": "Bruk når du foretrekker terminal-native agentkjøringer og skriptautomatisering via OpenCode.",
"kiro": "Brukes når du integrerer Kiro og kontrollerer modellruting sentralt fra OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Bruk dette når du ønsker et KI-fokusert IDE med Codeium/Windsurf-modeller rutet gjennom OmniRoute.",
"antigravity": "Brukes når Antigravity/Kiro-trafikk må avskjæres gjennom MITM og rutes til OmniRoute.",
"copilot": "Bruk når du vil ha Copilot chat-stil UX mens du håndhever OmniRoute-nøkler og rutingsregler.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2917,18 +2921,18 @@
"claude": "Antropisk Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "xAI Grok Build TUI-kodingsagent med støtte for tilpasset leverandør",
- "droid": "Factory Droid AI Assistant",
+ "droid": "Factory Droid KI-assistent",
"openclaw": "Åpne Claw AI Assistant",
"cline": "Cline AI-kodingsassistent CLI",
"kilo": "Kilokode AI Assistant CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
"continue": "Fortsett AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "OpenCode KI-kodingsagent (terminal)",
+ "kiro": "Amazon Kiro – KI-drevet IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "Sourcegraph Amp CLI-kodingsassistent",
"hermes": "Hermes AI terminalassistent",
"hermes-agent": "Hermes Agent (av Nousresearch) - Avansert terminal-AI med støtte for flere modeller (delegasjon, visjon, komprimering, osv.)",
"custom": "Generisk OpenAI-kompatibel CLI- eller SDK-konfigurasjonsgenerator",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter autonom kodingsagent-CLI",
"omp": "Oh My Pi terminal-kodingsagent",
"letta": "Letta CLI-agent med vedvarende minne og verktøybruk",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent – selvlærende RLM-kodingsverktøy med støtte for OpenAI-kompatible leverandører",
"warp": "Warp AI-terminal med støtte for tilpasset leverandør",
"agent-deck": "Agent Deck multi-agent-orkestrator",
"5dive": "5dive — selvhostet flåte av kodeagenter; én auth-profil peker dem alle mot OmniRoute"
@@ -2967,7 +2971,7 @@
"desc": "Aktiver alternativet \"OpenAI API-nøkkel\"."
},
"3": {
- "title": "Base URL"
+ "title": "Basis-URL"
},
"4": {
"title": "API-nøkkel"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Installer OpenCode",
+ "desc": "Installer via npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API-nøkkel"
},
"3": {
- "title": "Set Base URL",
+ "title": "Angi basis-URL",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Velg modell"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Bruk resonneringsvariant",
+ "desc": "For resonneringsmodeller, kjør med --variant high/low/max (se eksempelkommandoen nedenfor)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Åpne Kiro-innstillinger",
+ "desc": "Gå til Innstillinger → KI-leverandør"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Basis-URL",
+ "desc": "Lim inn URL-en til OmniRoute-endepunktet ditt"
},
"3": {
- "title": "API Key"
+ "title": "API-nøkkel"
},
"4": {
- "title": "Select Model"
+ "title": "Velg modell"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Åpne KI-innstillinger",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Legg til egendefinert leverandør",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Basis-URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API-nøkkel",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Velg modell",
+ "desc": "Velg en modell fra rullegardinmenyen"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Egendefinert CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Verktøykategorier",
"visibleToolsCount": "{count} verktøy tilgjengelig",
"customCliBuilderTitle": "OpenAI-kompatibel CLI-bygger",
"customCliBuilderDescription": "Generer env vars og JSON-kodebiter for en hvilken som helst CLI eller SDK som godtar en OpenAI-kompatibel basis-URL, API-nøkkel og modell-ID.",
@@ -3108,13 +3112,13 @@
"hermesRoleDefaultDesc": "Primær samtalemodell",
"hermesRoleDelegation": "Delegering (underagenter)",
"hermesRoleDelegationDesc": "Orkestrator- og underagentmodell",
- "hermesRoleVision": "Vision",
+ "hermesRoleVision": "Visjon",
"hermesRoleVisionDesc": "Forståelse av bilder og skjermbilder",
"hermesRoleCompression": "Komprimering",
"hermesRoleCompressionDesc": "Prompt-komprimering og oppsummering",
"hermesRoleWebExtract": "Web-uttrekk",
"hermesRoleWebExtractDesc": "Uttrekk av nettsideinnhold",
- "hermesRoleSkillsHub": "Skills Hub",
+ "hermesRoleSkillsHub": "Ferdighetssenter",
"hermesRoleSkillsHubDesc": "Resonnering for ferdigheter og verktøybruk",
"hermesRoleApproval": "Godkjenning",
"hermesRoleApprovalDesc": "Sikkerhets- og godkjenningsbeslutninger",
@@ -3128,7 +3132,7 @@
"hermesRoleTtsAudioTagsDesc": "Generering av TTS-lydtagger",
"hermesRoleTriageSpecifier": "Triage Spesifiserer",
"hermesRoleTriageSpecifierDesc": "Spesifikasjon for triage av problemer og PR-er",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Kanban-dekomponering",
"hermesRoleKanbanDecomposerDesc": "Kanban oppgaveoppdeling",
"hermesRoleProfileDescriber": "Profilbeskriver",
"hermesRoleProfileDescriberDesc": "Brukerprofilbeskrivelse",
@@ -3155,7 +3159,7 @@
"hermesRolesWillUpdate": "{count, plural, one {# rolle vil bli oppdatert} other {# roller vil bli oppdatert}}",
"hermesPreviewPath": "Forhåndsvisning — vil skrive til ~/.hermes/config.yaml",
"hermesSaveDescription": "Lagrer den valgte modellen for hver rolle i",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "Konfigurasjonsgenerator for GitHub Copilot",
"copilotGeneratorDescriptionPrefix": "Genererer ",
"copilotGeneratorDescriptionSuffix": "blokken for VS Code GitHub Copilot ved hjelp av Azure-leverandørmønsteret. Velg modellene du vil ha, og kopier deretter JSON-koden inn i konfigurasjonsfilen din.",
"copilotCompatibilityWarning": "Denne konfigurasjonen bruker Azure-leverandøromgåelsen for egendefinerte modellister. Testet med omniglyph-modus. Dette er en forhåndsvisning og forblir deaktivert som standard til end-til-end-validering er fullført.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Komprimeringsprofil",
+ "profileDescription": "Profilen er et tak, ikke et gulv: En strengere profil kan ikke åpnes igjen av en overstyring per trinn. Målt på denne kodebasen: Med kodesikker eller balansert komprimeres ingenting i en økt som ennå ikke har opparbeidet historikk, fordi begge hever terskelen for minimum antall tegn og beholder systemprompten, verktøyskjemaene og verktøyresultatene i opprinnelig format.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressiv (standard)",
+ "description": "Retningslinjene som ble målt i de publiserte kvitteringene. Avbilder systemprompten, verktøydokumentasjonen og tett historikk."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Balansert",
+ "description": "Beholder aktiv tilstand i opprinnelig format og beskytter de siste 8 turene; komprimerer bare eldre, lukket historikk."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Kodesikker",
+ "description": "Beholder autoritet, verktøyskjemaer og aktive verktøyresultater i opprinnelig format, og beskytter de siste 12 turene. Komprimerer ingenting før økten har opparbeidet historikk."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Uendret gjennomføring",
+ "description": "Ruter uten transformasjon. Motoren hoppes over, og forespørselen videresendes uendret."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Velg komprimeringsprofilen for OmniGlyph",
"saved": "Lagret.",
"saveFailed": "Kunne ikke lagre.",
"enableAria": "Aktiver OmniGlyph-motoren",
@@ -8869,7 +8880,7 @@
"providerExposureHint": "Når aktivert, vises oppdagede modeller i leverandørvelgere i hele OmniRoute.",
"providerExposureUpdateFailed": "Kunne ikke oppdatere (HTTP {status})",
"providerExposureNetworkFailed": "Nettverksfeil — kunne ikke oppdatere innstillingen for leverandøreksponering",
- "webUi": "9Router Web UI",
+ "webUi": "9Router-nettgrensesnitt",
"openNewTab": "Åpne i ny fane",
"filterLogs": "Filtrer logger…",
"resume": "Gjenoppta",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Regelbasert meldingskomprimering, språkpakker, analyse og kontroller for utdatamodus.",
"advancedConfig": "Avansert konfigurasjon",
"advancedConfigDesc": "Finjuster kompresjonsadferd",
"aggressiveSettings": "Aggressive innstillinger",
"aggressiveSettingsDesc": "Maksimal komprimering med potensielle kvalitetsavveininger",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Forespørsler",
+ "tokensSaved": "Sparte tokener",
+ "savingsPercent": "Besparelse i %",
+ "avgLatency": "Gj.sn. ventetid",
+ "languagePacks": "Språkpakker",
+ "languagePacksDesc": "Aktiver komprimeringsregler for bestemte språk.",
"labelAutoTrigger": "Autokomprimer når konteksten overskrider",
"labelCompressionRate": "Kompresjonsstyrke",
"labelMaxTokens": "Mål tokens per melding",
"labelMinLength": "Minimum meldingslengde",
"labelMinSavings": "Minimum tokens å lagre",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Aktivert",
+ "autoDetect": "Oppdag språk automatisk",
+ "rulesCount": "{count} regler",
"inputCompressionTitle": "Inndatakomprimering",
"inputCompressionDesc": "Omskriv samtalehistorikk med kortere ordlyd. Reduserer inndata-tokens med ~50 %.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Komprimeringsanalyse",
+ "noAnalytics": "Ingen komprimeringsanalyse ennå.",
"masterDisabledWarning": "Hovedbryteren for Token Saver er AV — disse innstillingene vil ikke påvirke forespørsler før du slår den på fra Komprimeringsinnstillinger eller endrer den her.",
"outputMode": "Utgangsmodus",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Utdatamodus",
"quickSettings": "Hurtiginnstillinger",
"quickSettingsDesc": "Grunnleggende komprimeringsinnstillinger for å komme i gang",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Automatisk klarhetsomgåelse",
+ "bypassConditions": "Vilkår for omgåelse",
"bypassConditionsList": "sikkerhet, irreversibel, avklaring, ordresensitiv",
"simpleMode": "Enkelt",
"advancedMode": "Avansert",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra-innstillinger",
"ultraSettingsDesc": "SLM-drevet semantisk komprimering",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Svar kortfattet. Bevar tekniske termer, kode, feil, URL-er og identifikatorer.",
+ "full": "Svar knapt og kompakt. Bevar alt teknisk innhold.",
+ "ultra": "Svar svært knapt med vanlige tekniske forkortelser. Bevar eksakte symboler."
}
},
"translator": {
@@ -8954,7 +8965,7 @@
"realtime": "Oversettelsesaktivitet i sanntid",
"chatTester": "Chat Tester",
"testBench": "Testbenk",
- "liveMonitor": "Live Monitor",
+ "liveMonitor": "Direkteovervåking",
"modeDescriptionPlayground": "Lim inn en hvilken som helst API-forespørselstekst og se hvordan OmniRoute oversetter den mellom leverandørformater (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
"modeDescriptionChatTester": "Send ekte chatteforespørsler gjennom OmniRoute og inspiser hele rundturen: inndata, oversatt forespørsel, leverandørsvar og oversatt utdata.",
"modeDescriptionTestBench": "Kjør forhåndsdefinerte scenarier og sammenlign kompatibilitet på tvers av leverandører og modeller.",
@@ -8989,7 +9000,7 @@
"translationPathHubSpoke": "{source} → OpenAI (mellomliggende) → {target}",
"translationPathDirect": "{source} → {target} (direkte oversetter)",
"translationPathPassthrough": "Samme format - ingen oversettelse nødvendig",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "OpenAI-mellomledd",
"autoFeaturesTitle": "Hva OmniRoute gjør automatisk",
"autoFeaturesCount": "8 funksjoner",
"featureReasoningCache": "Begrunnelse Cache",
@@ -9000,7 +9011,7 @@
"featureRoleNormalizationDesc": "Kartutvikler→system for ikke-OpenAI-mål. Kartsystem→bruker for modeller som ikke støtter systemrollen.",
"featureToolCallIds": "Verktøy Call ID Normalization",
"featureToolCallIdsDesc": "Genererer unike tool_call ID-er når de mangler. Normaliserer til 9-tegnsformat for leverandører som Mistral.",
- "featureMissingToolResponse": "Tool Response Injection",
+ "featureMissingToolResponse": "Injisering av verktøysvar",
"featureMissingToolResponseDesc": "Injiserer tomme tool_result-meldinger når klienter sender tool_calls uten tilsvarende svar.",
"featureThinkingBudget": "Tenker budsjett",
"featureThinkingBudgetDesc": "Administrerer automatisk tenkekonfigurasjon. Fjerner tenkeparametere når den siste meldingen ikke er fra brukeren.",
@@ -9035,14 +9046,14 @@
"scenarioMultiTurn": "Multisving",
"scenarioThinking": "Tenker",
"scenarioSystemPrompt": "Systemmelding",
- "scenarioStreaming": "Streaming",
+ "scenarioStreaming": "Strømming",
"templateNames": {
"simple-chat": "Enkel chat",
"tool-calling": "Verktøyanrop",
"multi-turn": "Multisving",
"thinking": "Tenker",
"system-prompt": "Systemmelding",
- "streaming": "Streaming",
+ "streaming": "Strømming",
"vision": "Visjon",
"schema-coercion": "Skjematvang"
},
@@ -9097,7 +9108,7 @@
"anthropicCompatibleLabel": "Antropisk kompatibel",
"noTemplateForFormat": "Ingen mal for dette formatet",
"translationFailed": "Oversettelse mislyktes: {error}",
- "pipelineDebugger": "Pipeline Debugger",
+ "pipelineDebugger": "Feilsøking av databehandlingskjede",
"translationPipeline": "Oversettelsesrørledning",
"loading": "Laster inn…",
"compressionOriginal": "Original",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "Forespørselsteksten slik klienten din ville sende den",
"formatDetected": "Format oppdaget",
"formatDetectedDescription": "OmniRoute oppdager automatisk API-formatet fra forespørselsstrukturen",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "OpenAI-mellomledd",
"openaiIntermediateDescription": "Alle formater normaliseres først til OpenAI-format (den universelle broen)",
"providerFormat": "Leverandørformat",
"providerFormatDescription": "OpenAI-formatet er oversatt til leverandørens opprinnelige format",
@@ -9145,7 +9156,7 @@
"eventSourceMainPipeline": "• Hovedforespørselspipeline (CLI/IDE/API-trafikk)",
"liveMonitorDescriptionPrefix": "Viser oversettelseshendelser når API-anrop flyter gjennom OmniRoute. Hendelser kommer fra bufferen i minnet (tilbakestilles ved omstart). Bruk",
"liveMonitorDescriptionSuffix": ", eller eksterne API-kall for å generere hendelser.",
- "streamTransformer": "Stream Transformer",
+ "streamTransformer": "Strømtransformator",
"modeDescriptionStreamTransformer": "Kjør chatfullføringer SSE-strømmer gjennom Responses-transformatoren.",
"streamTransformerTitle": "Svar Stream Transformer",
"streamTransformerDescription": "Lim inn en SSE-strøm for chatfullføringer, kjør den gjennom OmniRoutes Responses-transformator, og inspiser de utsendte responsen.*-hendelsene før du kobler en klient.",
@@ -9153,7 +9164,7 @@
"loadToolSample": "Last verktøy-anrop prøve",
"transformToResponses": "Transformer til svar",
"rawChatSseInput": "Rå chat fullføringer SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Transformert Responses API SSE",
"noResultsYet": "Ingen resultater ennå",
"transformedEvents": "Forvandlede hendelser",
"uniqueEventTypes": "Unike hendelsestyper",
@@ -9166,7 +9177,7 @@
"comboRouted": "Combo rutet",
"uniqueEndpoints": "Unike endepunkter",
"routeDetails": "Rutedetaljer",
- "comboBadge": "Combo",
+ "comboBadge": "Kombinasjon",
"routeEndpointLabel": "Endepunkt",
"routeConnectionLabel": "Tilkobling",
"scenarioVision": "Visjon (bildeforståelse)",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Appen din snakker ett APIs \"språk\". Oversetteren konverterer det til å bruke en annen leverandør.",
"conceptDiagramAppLabel": "Appen din",
"conceptDiagramSourceLabel": "Kildeformat",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (knutepunkt)",
"conceptDiagramTargetLabel": "Målleverandør",
"conceptDiagramExampleApp": "f.eks. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Lim inn en JSON-forespørsel; formatet oppdages automatisk.",
"advancedPipelineTitle": "OpenAI mellomliggende pipeline",
"advancedPipelineSubtitle": "Visualiser hvert oversettelsestrinn (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Strømtransformator (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Konverterer Chat Completions SSE til Responses API.",
"advancedTestBenchTitle": "Testbenk (8 scenarioer)",
"advancedTestBenchSubtitle": "Kjører alle scenarioer og rapporterer bestått/feilet + kompatibilitets-%.",
@@ -9246,7 +9257,7 @@
"compressionPreviewButton": "Forhåndsvis komprimering",
"compressionPreviewing": "Forhåndsviser…",
"compressionPreviewFailed": "Forhåndsvisning av komprimering mislyktes",
- "tokens": "tokens",
+ "tokens": "tokener",
"pauseAutoRefresh": "Pause automatisk oppdatering",
"resumeAutoRefresh": "Gjenoppta automatisk oppdatering",
"live": "Direkte",
@@ -9273,17 +9284,17 @@
"kiloPassRemaining": "Gjenværende",
"kiloPassRenews": "Fornyes om {count} dager",
"kiloPassUsageLabel": "Denne månedens forbruk",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Ekstra brukskreditter",
+ "kimiExtraUsage": "Ekstra bruk",
+ "kimiExtraUsageEnabled": "Aktivert",
+ "kimiExtraUsageDisabled": "Deaktivert",
+ "kimiExtraUsageFrozen": "Frosset",
+ "kimiExtraUsageUnavailable": "Utilgjengelig",
+ "kimiMonthlyUsed": "Brukt denne måneden",
+ "kimiMonthlyLimit": "Månedsgrense",
+ "kimiMonthlyLimitUnlimited": "Ubegrenset",
+ "kimiAdditionalCredits": "Tilleggskreditter",
+ "loggerTab": "Loggfører",
"proxyTab": "Fullmakt",
"budgetManagement": "Budsjettstyring",
"budgetSaved": "Budsjettgrenser lagret",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Strømbrytere",
"lockedIPs": "Låste IP-er",
"lockoutsAutoRefreshHint": "Per-modell hastighetsgrense låser • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# låst} other {# låst}}",
"timeLeft": "{time} igjen",
"howItWorks": "Hvordan det fungerer",
"howItWorksSubtitle": "Finn ut hvordan evalueringer validerer LLM-svarene dine",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Svar sammenlignes mot forventede kriterier. Se bestått/ikke bestått for hver sak med ventetid og detaljert tilbakemelding.",
"evalsStrategyContainsLabel": "Inneholder",
"evalsStrategyExactLabel": "Nøyaktig treff",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Regulært uttrykk",
"evalsStrategyCustomLabel": "Egendefinert logikk",
"evalsStrategyContainsDescription": "Sjekker om LLM-utdataene inneholder den forventede delstrengen.",
"evalsStrategyExactDescription": "Sjekker om LLM-utdataene samsvarer nøyaktig med den forventede verdien.",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Modeller under test",
"searchSuitesPlaceholder": "Søk etter suiter...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# tilfelle} other {# tilfeller}}",
"runEval": "Kjør Eval",
"runAllSuites": "Kjør alle",
"runAllRunning": "Kjører alle...",
"runAllProgress": "Kjører {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# testsamling mislyktes} other {# testsamlinger mislyktes}}",
"runAllCompleted": "Kjørte {suites} suiter — {passed} bestått, {failed} mislyktes",
"runAllCompletedWithFailures": "Kjørte {completed} suiter; {failedSuites} kunne ikke fullføres",
"runningProgress": "Kjører {current}/{total}...",
@@ -9393,13 +9404,13 @@
"notifyAllCasesPassed": "Alle {total} saker bestått ✅",
"notifySomeCasesFailed": "{passed}/{total} bestått, {failed} mislyktes",
"notifyEvalRunFailed": "Evalkjøring mislyktes",
- "notifyEvalTitle": "Eval: {name}",
+ "notifyEvalTitle": "Evaluering: {name}",
"modelEvals": "Modellvurderinger",
"evalsHeroDescription": "Test og valider LLM-endepunktene dine ved å kjøre forhåndsdefinerte evalueringspakker. Hver suite inneholder testtilfeller som sender reelle spørsmål gjennom OmniRoute og sammenligner svar med forventede kriterier – som hjelper deg med å oppdage regresjoner, sammenligne modeller og sikre svarkvalitet på tvers av leverandører.",
"qualityValidation": "Kvalitetsvalidering",
"modelComparison": "Modellsammenligning",
"regressionDetection": "Regresjonsdeteksjon",
- "latencyBenchmarks": "Latency Benchmarks",
+ "latencyBenchmarks": "Ytelsestester for latenstid",
"modelLockouts": "Modellsperringer",
"noLockouts": "Ingen modeller er for øyeblikket låst",
"activeSessions": "Aktive økter",
@@ -9419,7 +9430,7 @@
"providerLimits": "Leverandørgrenser",
"noProviders": "Ingen leverandører tilkoblet",
"connectProvidersForQuota": "Koble til leverandører med OAuth for å spore API-kvotegrenser og bruk.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# konto} other {# kontoer}}",
"filteredFromCount": "(filtrert fra {count})",
"autoRefresh": "Automatisk oppdatering",
"refreshAll": "Oppdater alle",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Kunne ikke oppdatere kvotesynlighet",
"account": "Konto",
"modelQuotas": "Modellkvoter",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Sist oppdatert",
"actions": "Handlinger",
"refreshQuota": "Oppdater kvote",
"today": "I dag",
@@ -9448,15 +9459,15 @@
"cardExpand": "Utvid",
"cardCollapse": "Slå sammen",
"moreQuotas": "+{count} flere",
- "ungrouped": "Ungrouped",
+ "ungrouped": "Ugruppert",
"viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "viewByEnvironment": "Etter miljø",
"noQuotaDataAvailable": "Ingen kvotedata tilgjengelig",
"noAccountsForTierFilter": "Fant ingen kontoer for nivåfilter",
"tierAll": "Alle",
- "tierEnterprise": "Enterprise",
+ "tierEnterprise": "Bedrift",
"tierTeam": "Team",
- "tierBusiness": "Business",
+ "tierBusiness": "Bedrift",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Pluss",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Løs inn kreditt",
"resetCreditRedeemed": "Tilbakestill innløste",
"resetCreditRedeemFailed": "Kunne ikke innløse tilbakestillingskreditt",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Kunne ikke lagre testsamlingen",
"clone": "Klone",
"exportSuite": "Eksporter",
"importSuite": "Importer",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Ugyldig eval suite JSON",
"suiteBuilderCloneSuffix": "kopi",
"suiteBuilderImportedSuite": "Importert Suite",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Resultatkort",
+ "evalApiKey": "API-nøkkel",
+ "scorecardPassRate": "Beståttandel",
+ "targetTypeModel": "Modell",
+ "actualOutputLabel": "Faktisk utdata",
+ "evalTargetHint": "Velg en modell eller kombinasjon som skal evalueres.",
+ "suiteBuilderDeleted": "Suiten ble slettet",
+ "suiteBuilderCaseCardHint": "Definer inndataprompten og kriteriene for forventet resultat.",
+ "nextResetUtc": "Neste tilbakestilling (UTC)",
+ "scorecardHint": "Samlede beståttandeler på tvers av alle evalueringssuiter.",
+ "suiteLatestRunsHint": "De nyeste evalueringskjøringene for denne suiten.",
+ "saving": "Lagrer",
+ "suiteBuilderCaseModelLabel": "Modell (valgfritt)",
+ "evalControlsTitle": "Evalueringskontroller",
+ "suiteBuilderEditTitle": "Rediger evalueringssuite",
+ "suiteBuilderCaseStrategyLabel": "Valideringsstrategi",
+ "notifySelectDifferentCompareTarget": "Velg et annet mål for sammenligning",
+ "recentRunsHint": "Viser de nyeste evalueringskjøringene. Klikk på en kjøring for å se detaljerte resultater.",
+ "evalCompareHint": "Sammenlign eventuelt resultatene med et annet mål.",
+ "suiteBuilderCaseInvalid": "Dette tilfellet har valideringsfeil. Rett dem før du lagrer.",
+ "historyEmpty": "Ingen evalueringshistorikk ennå",
+ "suiteBuilderUpdated": "Suiten ble oppdatert",
+ "resetInterval": "Tilbakestillingsintervall",
+ "suiteBuilderCreateTitle": "Opprett evalueringssuite",
+ "activePeriodSpend": "Forbruk i aktiv periode",
+ "evalApiKeyHint": "Velg hvilken API-nøkkel som skal brukes til evalueringsforespørsler.",
+ "evalCompareOptional": "Sammenlign (valgfritt)",
+ "suiteBuilderDeleteFailed": "Kunne ikke slette suiten",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Valgfrie systeminstruksjoner ...",
+ "scorecardCases": "Tilfeller",
+ "runCompletedWithScore": "Evalueringen er fullført — {score}% beståttandel",
+ "suiteBuilderCustomBadge": "Egendefinert",
+ "targetSuiteDefaults": "Standardinnstillinger for suiten",
+ "suiteBuilderDeleteConfirm": "Er du sikker på at du vil slette denne suiten? Denne handlingen kan ikke angres.",
+ "suiteBuilderNameLabel": "Navn på suite",
+ "scorecardSuites": "Suiter",
+ "evalCompareTarget": "Sammenligningsmål",
+ "suiteBuilderCaseModelPlaceholder": "f.eks. gpt-4o-mini",
+ "evalControlsHint": "Konfigurer evalueringsmålet og API-nøkkelen, og kjør deretter suiter for å validere modellkvaliteten.",
+ "recentRunsTitle": "Nylige kjøringer",
+ "suiteBuilderCaseSystemPromptLabel": "Systemprompt",
+ "suiteBuilderCaseExpectedPlaceholder": "f.eks. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "f.eks. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Lim inn nøyaktig forventet svar",
"suiteBuilderCaseExpectedPlaceholderRegex": "f.eks. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Bruk et regulært JavaScript uten å pakke skråstreker.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "f.eks. suite for kodekvalitet",
+ "suiteBuilderAddCase": "Legg til tilfelle",
+ "cancel": "Avbryt",
+ "evalTarget": "Mål",
+ "suiteBuilderCaseNameLabel": "Navn på testtilfelle",
+ "weeklyLimitUsd": "Ukentlig grense (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "f.eks. Skriv en Fibonacci-funksjon i Python",
+ "suiteBuilderNameRequired": "Navn på testsamling er påkrevd",
+ "suiteBuilderCaseUserPromptLabel": "Brukerforespørsel",
+ "daily": "Daglig",
+ "resultErrorLabel": "Feil",
+ "suiteBuilderBuiltInBadge": "Innebygd",
+ "suiteBuilderCaseCardTitle": "Testtilfelle",
"suiteBuilderDuplicateCase": "Duplikat",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "f.eks. 50.00",
+ "suiteBuilderCaseTagsHint": "Komma-separerte tagger for organisering av testtilfeller.",
+ "notifyEvalRunFailedWithReason": "Evalueringen mislyktes: {reason}",
+ "weekly": "Ukentlig",
+ "runEvalRunning": "Kjører evaluering...",
+ "delete": "Slett",
+ "resetTimeUtc": "Tilbakestillingstidspunkt (UTC)",
+ "evalApiKeyAuto": "Automatisk (bruk standard)",
+ "suiteBuilderDescriptionPlaceholder": "Valgfri beskrivelse av hva denne testsamlingen tester...",
+ "targetComparisonTitle": "Målsammenligning",
+ "save": "Lagre",
+ "suiteBuilderCreated": "Testsamlingen ble opprettet",
+ "suiteLatestRuns": "Siste kjøringer",
+ "suiteBuilderCaseExpectedLabel": "Forventet verdi",
+ "historyLatency": "Ventetid",
+ "suiteBuilderCaseTagsPlaceholder": "f.eks. koding, python",
+ "targetTypeCombo": "Kombinasjon",
+ "scorecardPassed": "Bestått",
+ "suiteBuilderCaseTagsLabel": "Tagger",
+ "suiteBuilderNewSuite": "Ny testsamling",
+ "notifyEvalLoadFailed": "Kunne ikke laste evalueringsdata",
+ "notConfigured": "Ikke konfigurert",
+ "suiteBuilderCaseNamePlaceholder": "f.eks. Python-test av Fibonacci",
+ "intervalLabel": "Intervall",
+ "suiteBuilderCreateAction": "Opprett testsamling",
+ "suiteBuilderCasesHint": "Hvert tilfelle sender en forespørsel og validerer svaret.",
+ "suiteBuilderUpdatedAt": "Oppdatert",
+ "errorBadge": "Feil",
+ "suiteBuilderCasesTitle": "Testtilfeller",
+ "edit": "Rediger",
+ "monthly": "Månedlig",
+ "suiteBuilderCasesRequired": "Minst ett testtilfelle er påkrevd",
+ "weeklyLimitSummary": "Sammendrag av ukentlig budsjettgrense",
+ "suiteBuilderDescriptionLabel": "Beskrivelse",
+ "targetComparisonHint": "Sammenligning side om side av evalueringsresultater mellom mål.",
+ "compareCompletedWithScore": "Sammenligning fullført — {score} % bestått",
+ "staleQuotaTooltip": "Siste oppdatering mislyktes — viser bufrede data",
"quotaThresholdLabel": "Min igjen",
"quotaCutoffsColumnHelp": "Stopp forespørsler når gjenværende kvote faller til denne prosentandelen eller lavere.",
"quotaCutoffsButtonDefault": "Standard",
@@ -9626,7 +9637,7 @@
"quotaThresholdInvalid": "Skriv inn et helt tall fra 0 til 100.",
"budgetKpiToday": "I dag",
"budgetKpiThisMonth": "Denne måneden",
- "budgetKpiProjEom": "Proj EOM",
+ "budgetKpiProjEom": "Prognose ved månedsslutt",
"budgetKpiBlocked": "Blokkert",
"budgetKpiAtRisk": "I faresonen",
"budgetKpiActiveKeys": "Aktive nøkler",
@@ -9648,7 +9659,7 @@
"budgetTemplateNames": {
"tpl-prod": "Produksjon",
"tpl-dev": "Utvikling",
- "tpl-ci": "CI"
+ "tpl-ci": "KI"
},
"budgetStatus": {
"all": "Alle",
@@ -9741,7 +9752,7 @@
"proxy": "Fullmakt",
"level": "Nivå",
"directNative": "Direkte (innfødt)",
- "combo": "Combo",
+ "combo": "Kombinasjon",
"inputTokens": "jeg:",
"outputTokens": "O:"
},
@@ -9752,7 +9763,7 @@
"usageByModel": "Bruk etter modell",
"usageByAccount": "Bruk etter konto",
"failedToLoad": "Kunne ikke laste inn bruksstatistikk.",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Tokenstatus",
"totalOAuth": "Totalt OAuth",
"healthy": "Sunn",
"warning": "Advarsel",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Systemmetrikker",
"memory": "Minne",
- "memoryShort": "mem",
+ "memoryShort": "minne",
"uptime": "Oppetid",
"ariaLabel": "Systemovervåking",
"title": "Systemovervåkning",
@@ -9812,8 +9823,8 @@
"signIn": "Logg på",
"enterPassword": "Skriv inn passordet ditt for å fortsette",
"password": "Passord",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
+ "unifiedProxy": "Samlet AI API-proxy",
+ "unifiedAiApiProxy": "Samlet AI API-proxy",
"unifiedAiApiProxyDesc": "Rut forespørsler til flere AI-leverandører gjennom ett enkelt endepunkt. Lastbalansering, failover og brukssporing innebygd.",
"passwordNotEnabled": "Passordbeskyttelse er ikke aktivert",
"loading": "Laster inn...",
@@ -9859,7 +9870,7 @@
"backToLogin": "Tilbake til pålogging",
"forgotPassword": "Glemt passord?",
"continueWithOidc": "Fortsett med OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Standardpassord: CHANGEME (med mindre INITIAL_PASSWORD er angitt)",
"Authorization": "Autorisasjon",
"Content-Disposition": "Innhold-Disposisjon",
"waitingForAuthorization": "Venter på autorisasjon...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Venter på antigravity-autorisasjon...",
"waitingForQoderAuthorization": "Venter på Qoder-autorisasjon...",
"exchangingCodeForTokens": "Utveksler kode for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Inkompatibel Node.js-versjon",
+ "nodeIncompatibleDesc": "Du kjører Node.js {version}, som ikke er i samsvar med OmniRoutes retningslinjer for sikre kjøretidsmiljøer. Bruk en oppdatert Node.js 20.x- eller 22.x LTS-versjon.",
+ "nodeIncompatibleFixLabel": "Løsning: Installer en oppdatert Node.js 22 LTS-versjon",
+ "nodeIncompatibleHint": "OmniRoute krever Node.js 22.22.2+ (22.x LTS) eller 24.0.0+ (24.x LTS). Node 24 LTS anbefales.",
"resetViaAppDataTitle": "Tilbakestill via App-data",
"resetViaAppDataDescription": "Slett innstillingsfilen fra appdata-katalogen for å tilbakestille passordet ditt:",
"quitDesktopApp": "Avslutt OmniRoute skrivebordsapp helt",
@@ -9949,7 +9960,7 @@
"featureUsageTrackingDesc": "Detaljert analyse og kostnadsovervåking på tvers av alle modeller.",
"featureOAuthApiKeysTitle": "OAuth- og API-nøkler",
"featureOAuthApiKeysDesc": "Administrer legitimasjon på en sikker måte i ett hvelv.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Skysynkronisering",
"featureCloudSyncDesc": "Synkroniser konfigurasjonene dine på tvers av enheter umiddelbart.",
"featureCliSupportTitle": "CLI-støtte",
"featureCliSupportDesc": "Fungerer med Claude Code, Codex, Cline, Cursor og mer.",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "Leverandører",
"commonUseCases": "Vanlige brukstilfeller",
"clientCompatibility": "Klientkompatibilitet",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Protokoller",
"apiReference": "API-referanse",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Referanse for administrasjons-API",
+ "managementApiDescription": "Automatiseringsendepunkter for proxyregister, omfangstildelinger og migrering av eldre proxyer.",
"method": "Metode",
"path": "Sti",
"notes": "Notater",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Bruk for eksempel leverandørprefiks",
"deploySetupTitle": "Oppsettveiledning",
"deploySetupText": "Trinn-for-trinn-installasjon, miljøkonfigurasjon og førstegangsgjennomgang for OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron-skrivebordsapp",
"deployElectronText": "Kjør OmniRoute som et innebygd skrivebordsprogram på Windows, macOS og Linux.",
"deployDockerTitle": "Docker",
"deployDockerText": "Containerisert distribusjon med Docker Compose; klar for produksjonsstabler og Kubernetes.",
@@ -10071,14 +10082,14 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Installer OmniRoute som en progressiv nettapp på Android-, iOS- og stasjonære nettlesere.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Kjør OmniRoute uten grafisk grensesnitt på Android via Termux. Åpne kontrollpanelet i mobilnettleseren.",
"featureRoutingTitle": "Ruting for flere leverandører",
"featureRoutingText": "Rut forespørsler til 30+ AI-leverandører gjennom ett enkelt OpenAI-kompatibelt endepunkt. Støtter chat, svar, lyd og bilde-APIer.",
"featureCombosTitle": "Kombinasjoner og balansering",
"featureCombosText": "Lag modellkombinasjoner med reservekjeder og balanseringsstrategier: round-robin, prioritet, tilfeldig, minst brukt og kostnadsoptimalisert.",
"featureUsageTitle": "Bruk og kostnadssporing",
"featureUsageText": "Sanntids-tokentelling, kostnadsberegning per leverandør/modell og detaljert bruksoppdeling etter API-nøkkel og konto.",
- "featureAnalyticsTitle": "Analytics Dashboard",
+ "featureAnalyticsTitle": "Analysepanel",
"featureAnalyticsText": "Visuell analyse med diagrammer for forespørsler, tokens, feil, ventetid, kostnader og modellpopularitet over tid.",
"featureHealthTitle": "Helseovervåking",
"featureHealthText": "Live helsesjekker, leverandørstatus, strømbrytertilstander og automatisk hastighetsgrensedeteksjon med eksponentiell tilbakekobling.",
@@ -10086,7 +10097,7 @@
"featureCliText": "Administrer IDE-konfigurasjoner, eksporter/importer sikkerhetskopier, oppdag kodex-profiler og konfigurer innstillinger fra dashbordet.",
"featureSecurityTitle": "Sikkerhet og retningslinjer",
"featureSecurityText": "API-nøkkelautentisering, IP-filtrering, prompt-injeksjonsvakt, domenepolicyer, øktadministrasjon og revisjonslogging.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Skysynkronisering",
"featureCloudSyncText": "Synkroniser konfigurasjonen din med Cloudflare Workers for ekstern tilgang med kryptert legitimasjon og automatisk failover.",
"providersAcrossConnectionTypes": "{count}-leverandører på tvers av tre tilkoblingstyper.",
"manageProviders": "Administrer leverandører",
@@ -10101,7 +10112,7 @@
"useCaseUsageVisibilityTitle": "Bruk, kostnader og feilsøkingssynlighet",
"useCaseUsageVisibilityText": "Spor tokens og kostnader etter leverandør, konto og API-nøkkel i fanene Bruk og Analytics.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
+ "baseUrlLabel": "Basis-URL",
"chatEndpointLabel": "Chat-endepunkt",
"modelRecommendationLabel": "Modellanbefaling: eksplisitt prefiks",
"clientCodexTitle": "Codex / GitHub Copilot-modeller",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Bruk OmniRoute som en stabil basis-URL mens du roterer kontoer eller leverandørkombinasjoner under.",
"clientKimiBullet2": "Foretrekk prefiksmodeller i kodingsflyter, slik at reserve- og revisjonsspor forblir eksplisitte.",
"clientKimiBullet3": "Bruk `/v1/responses` når du vil ha native Responses-stil ruting for verktøybrukende klienter.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protokoller: MCP og A2A",
+ "protocolsDescription": "OmniRoute tilbyr to operative protokoller i tillegg til OpenAI-kompatible API-er: MCP for verktøykjøring og A2A for arbeidsflyter mellom agenter.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Bruk MCP over stdio for å la klienter oppdage og kalle OmniRoute-verktøy med innsyn i revisjonsloggen.",
+ "protocolMcpStep1": "Start MCP-transport med `omniroute --mcp`.",
+ "protocolMcpStep2": "Konfigurer MCP-klienten til å bruke stdio-transport.",
+ "protocolMcpStep3": "Kall `omniroute_get_health` og `omniroute_list_combos` for å bekrefte tilkoblingen.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Bruk A2A JSON-RPC til å sende inn oppgaver synkront eller via SSE-strømming.",
+ "protocolA2aStep1": "Les `/.well-known/agent.json` for å finne agenter.",
+ "protocolA2aStep2": "Send `message/send`- eller `message/stream`-forespørsler til `POST /a2a`.",
+ "protocolA2aStep3": "Administrer oppgavens livssyklus med `tasks/get` og `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Feilsøking av protokoller",
+ "protocolTroubleshooting1": "Hvis MCP-statusen er frakoblet, må du kontrollere at stdio-prosessen kjører, og at heartbeat-filen oppdateres.",
+ "protocolTroubleshooting2": "Hvis A2A-oppgaver blir værende i `working`, kan du kontrollere `/api/a2a/tasks/:id` og strømme hendelser for å finne sluttilstanden.",
+ "protocolTroubleshooting3": "Bruk `/dashboard/mcp` og `/dashboard/a2a` for operativ styring og innsyn i revisjonsloggen.",
"endpointChatNote": "OpenAI-kompatibelt chat-endepunkt (standard).",
"endpointResponsesNote": "Responses API-endepunkt (Codex, o-serien).",
"endpointModelsNote": "Modellkatalog for alle tilkoblede leverandører.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Omskrivehjelper for klienter uten /v1.",
"endpointRewriteResponsesNote": "Omskriv hjelper for svar uten /v1.",
"endpointRewriteModelsNote": "Omskrivehjelper for modelloppdagelse uten /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Vis lagrede elementer i proxyregisteret (støtter paginering).",
+ "mgmtProxiesCreateNote": "Opprett et gjenbrukbart proxyelement i registeret.",
+ "mgmtProxiesHealthNote": "Hent 24-timers og løpende helsemålinger per lagrede proxy fra proxylogger.",
+ "mgmtProxiesBulkAssignNote": "Tilordne eller fjern én proxy for flere omfangs-ID-er i én forespørsel.",
+ "mgmtAssignmentsListNote": "Vis proxytilordninger etter omfang, scope_id eller proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Tilordne eller fjern proxy for globalt omfang, leverandør, konto eller kombinasjon.",
+ "mgmtLegacyMigrationNote": "Importer eldre proxyConfig-kart til registertilordninger.",
"modelPrefixesDescriptionStart": "Bruk leverandørprefikset før modellnavnet for å rute til en bestemt leverandør. Eksempel:",
"modelPrefixesDescriptionEnd": "ruter til GitHub Copilot.",
"provider": "Leverandør",
@@ -10309,7 +10320,7 @@
"privacyGooglePolicy": "Googles personvernregler",
"privacySection5Title": "5. Cloud Sync (valgfritt)",
"privacySection5Text": "Hvis du aktiverer den valgfrie skysynkroniseringsfunksjonen, kan leverandørkonfigurasjoner og API-nøkler overføres til et konfigurert skyendepunkt. Denne funksjonen er deaktivert som standard og krever eksplisitt opt-in.",
- "privacySection6Title": "6. Logging",
+ "privacySection6Title": "6. Loggføring",
"privacyLoggingIntro": "Forespørselslogger kan konfigureres gjennom dashbordinnstillingene. Du kan:",
"privacySection7Title": "7. Dine rettigheter",
"privacySection7TextStart": "Siden all data er lagret lokalt, har du full kontroll. Du kan slette dataene dine når som helst ved å fjerne",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute er åpen kildekode-programvare. Du står fritt til å inspisere, modifisere og distribuere den under lisensvilkårene."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-agenter",
+ "description": "Finn installerte CLI-agenter på systemet ditt. Legg til egendefinerte agenter for automatisk gjenkjenning.",
+ "refresh": "Oppdater",
+ "installed": "Installert",
+ "notFound": "Ikke funnet",
+ "builtIn": "Innebygd",
+ "custom": "Egendefinert",
+ "remove": "Fjern",
+ "addCustomAgent": "Legg til egendefinert agent",
+ "addCustomAgentDesc": "Registrer et hvilket som helst CLI-verktøy for gjenkjenning. Det skannes automatisk ved oppdatering.",
+ "agentName": "Agentnavn",
+ "binaryName": "Binærfilnavn",
+ "versionCommand": "Versjonskommando",
+ "spawnArgs": "Oppstartsargumenter",
+ "addAgent": "Legg til agent",
+ "scanning": "Søker etter CLI-agenter på systemet...",
+ "opencodeIntegration": "OpenCode-integrasjon",
+ "opencodeDetected": "opencode {version} oppdaget",
+ "opencodeDesc": "Generer en bruksklar {configFile} med OmniRoute-base-URL-en din og alle tilgjengelige modeller – legg den i prosjektets rotmappe og kjør {command}.",
+ "downloadConfig": "Last ned {file}",
+ "downloaded": "Lastet ned!",
+ "setupGuideTitle": "Oppsettsveiledning",
+ "openCliTools": "Åpne CLI-verktøy",
+ "setupGuideDetectCliTitle": "Finn installerte CLI-er",
+ "setupGuideDetectCliDesc": "Klikk på Oppdater etter at du har installert eller oppdatert en CLI, slik at OmniRoute kan søke etter binærfiler og versjoner på nytt.",
+ "setupGuideCustomAgentTitle": "Registrer egendefinert binærfil",
+ "setupGuideCustomAgentDesc": "Bruk Legg til egendefinert agent når CLI-en din ikke finnes i den innebygde listen. Oppgi navnet på binærfilen og versjonskommandoen.",
+ "setupGuideCommandMissingTitle": "Løs «kommandoen ble ikke funnet»",
+ "setupGuideCommandMissingDesc": "Kontroller at CLI-kommandoen finnes i PATH, åpne en ny terminaløkt og kjør Oppdater på nytt.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10469,7 +10480,7 @@
"statusFailed": "Mislyktes",
"statusCancelled": "Kansellert",
"repositoryName": "Depotnavn",
- "repositoryUrl": "Repository URL",
+ "repositoryUrl": "URL til kodelager",
"branch": "gren",
"agentDescriptions": {
"jules": "Googles autonome kodeagent",
@@ -10478,7 +10489,7 @@
"cursorCloud": "Cursors bakgrunns- / skyagenter (offisiell API-nøkkel)"
},
"activityTypes": {
- "plan": "Plan",
+ "plan": "Abonnement",
"command": "Kommando",
"code_change": "Kodeendring",
"message": "Melding",
@@ -10488,7 +10499,7 @@
},
"templateNames": {
"simple-chat": "Enkel chat",
- "streaming": "Streaming",
+ "streaming": "Strømming",
"system-prompt": "Systemmelding",
"thinking": "Tenker",
"tool-calling": "Verktøyanrop",
@@ -10534,108 +10545,108 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Hurtigbufferadministrasjon",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Oppdater",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Minneoppføringer",
+ "memoryEntriesSub": "LRU i minnet",
+ "dbEntries": "Databaseoppføringer",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Hurtigbuffertreff",
+ "cacheHitsSub": "av totalt {total}",
+ "tokensSaved": "Sparte token",
+ "tokensSavedSub": "Estimert fra treff",
+ "hitRate": "Treffprosent",
+ "performance": "Hurtigbufferytelse",
+ "autoRefresh": "Oppdateres automatisk hvert {seconds}. sekund",
+ "hits": "Treff",
+ "misses": "Bom",
+ "total": "Totalt",
+ "behavior": "Hurtigbufferatferd",
+ "behaviorDeterministic": "Bare forespørsler uten strømming og med temperature=0 bufres.",
+ "behaviorBypass": "Omgå med toppteksten {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Standard TTL: 30 minutter. Konfigurer via {envVar}.",
+ "idempotency": "Idempotenslag",
+ "activeDedupKeys": "Aktive dedupliseringsnøkler",
+ "dedupWindow": "Dedupliseringsvindu",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Kunne ikke tømme hurtigbufferen.",
+ "unavailable": "Hurtigbufferen er utilgjengelig",
+ "unavailableDesc": "Kunne ikke hente statistikk for hurtigbufferen. Kontroller at serveren kjører.",
"loadingCacheAria": "Laster hurtigbuffer",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Ledetekstbuffer (hos leverandøren)",
+ "semanticCache": "Semantisk hurtigbuffer",
+ "promptCacheSectionDesc": "Viser aktivitet for ledetekstbufring hos leverandøren fra brukshistorikken, slik at du kan se hvor hurtigbufferstyring er aktiv, og hvor mye inndata som gjenbrukes.",
+ "promptTrendDesc": "Timevis forespørselsvolum, hurtigbufferdekning og lesevolum fra hurtigbufferen de siste 24 timene.",
+ "cachedRequests": "Bufrede forespørsler",
+ "cachedRequests24h": "Bufrede forespørsler (24 t)",
+ "cacheHitRate": "Treffrate for hurtigbuffer",
+ "cacheRate": "Hurtigbufferrate",
+ "cacheRateDesc": "av totalt antall forespørsler",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Måledata for ledetekstbuffer",
+ "withCacheControl": "Med hurtigbufferstyring",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Gjenbruksgrad for hurtigbuffer",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Anslått kostnadsbesparelse",
+ "lastUpdated": "Sist oppdatert",
+ "hoursTracked": "timer sporet",
+ "busiestHour": "Travleste time",
+ "peakCacheRate": "Høyeste hurtigbufferrate",
+ "trendHour": "Time",
+ "activityVolume": "Aktivitet",
+ "requestsShort": "foresp.",
+ "inputShort": "Inn",
+ "cachedShort": "Bufret",
+ "writeShort": "Skriving",
+ "resetting": "Tilbakestiller...",
+ "resetMetrics": "Tilbakestill måledata",
+ "byProvider": "Fordeling etter leverandør",
+ "providerCacheRateDesc": "Hver leverandør viser totalt antall inndatatokener, tokener lest fra hurtigbufferen og tokener skrevet til hurtigbufferen, slik at du kan kontrollere gjenbruksgraden mot råtotalene.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Forespørsler",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Hurtigbuffertrend (24 t)",
+ "peakCached": "Mest bufret",
+ "cached": "Bufret",
+ "overview": "Oversikt",
"tableProvider": "Leverandør",
"tableModel": "Modell",
"performanceTitle": "Ytelse",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoutes egen deterministiske responsbuffer. Når den er aktivert, kan gjentatte ikke-strømmende forespørsler med temperature=0 behandles lokalt uten å kontakte den eksterne leverandøren.",
+ "semanticCacheDisabledDesc": "Semantisk hurtigbuffer er deaktivert. OmniRoute hopper over lokal gjenbruk av svar til du aktiverer den igjen i Innstillinger.",
+ "semanticEntriesDesc": "Lagrede oppføringer i den semantiske hurtigbufferen som for øyeblikket er lagret i SQLite. Aktivitet i ledetekstbufferen hos leverandøren vises ikke her.",
+ "searchEntries": "Søk i oppføringer...",
+ "search": "Søk",
+ "loading": "Laster inn...",
+ "entriesLoadError": "Kunne ikke laste inn oppføringer i semantisk hurtigbuffer.",
+ "noEntries": "Ingen hurtigbufferoppføringer funnet",
+ "noPromptCacheData": "Ingen aktivitet i leverandørens ledetekstbuffer er registrert ennå.",
+ "noTrendData": "Ingen aktivitet i ledetekstbufferen er registrert de siste 24 timene.",
+ "signature": "Signatur",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Opprettet",
+ "expires": "Utløper",
+ "actions": "Handlinger",
+ "deduplicatedRequests": "Dedupliserte forespørsler",
+ "savedCalls": "Sparte API-kall",
+ "totalProcessed": "Totalt antall behandlede forespørsler",
+ "disabled": "Deaktivert",
+ "totalRequests": "Totalt antall forespørsler",
"reasoningCache": "Resonnement Replay",
"reasoningCacheDesc": "Bevarer modelltenkning for multi-sving verktøyoppkallingsflyter",
"reasoningEntries": "Aktive oppføringer",
"reasoningReplayRate": "Replay rate",
"reasoningReplays": "Totale repriser",
"reasoningCharsCached": "Karakterer bufret",
- "reasoningMisses": "Cache Misses",
+ "reasoningMisses": "Hurtigbuffermisser",
"reasoningByProvider": "Av leverandør",
"reasoningByModel": "Etter modell",
"reasoningRecentEntries": "Nylige oppføringer",
@@ -10665,23 +10676,23 @@
"minutesAgo": "{minutes}m siden",
"hoursAgo": "{hours}t siden",
"daysAgo": "{days}d siden",
- "entries": "Entries"
+ "entries": "Oppføringer"
},
"proxyConfigModal": {
"levelGlobal": "Globalt",
"levelProvider": "Leverandør",
- "levelCombo": "Combo",
+ "levelCombo": "Kombinasjon",
"levelKey": "Nøkkel",
"levelDirect": "Direkte (ingen proxy)",
"titleGlobal": "Global proxy-konfigurasjon",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "{level}-proxy — {label}",
"loading": "Laster proxy-konfigurasjon ...",
"inheritingFrom": "Arver fra",
"source": "Kilde",
"savedProxy": "Lagret proxy",
"custom": "Egendefinert",
"selectSavedProxyPlaceholder": "Velg lagret proxy...",
- "proxyType": "Proxy Type",
+ "proxyType": "Proxytype",
"host": "Vert",
"hostPlaceholder": "1.2.3.4 eller proxy.example.com",
"port": "Port",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Koble til markør-IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Logg inn med Cursor",
+ "tabImport": "Importer token",
+ "loginDescription": "Åpner Cursors nettleserinnlogging. Fungerer i Docker — godkjenn i nettleseren på vertsmaskinen, og gå deretter tilbake hit.",
+ "loginWithCursor": "Logg inn med Cursor",
+ "startingLogin": "Starter…",
+ "waitingApproval": "Venter på godkjenning av Cursor-innlogging…",
+ "openUrlHint": "Hvis nettleseren ikke åpnet seg:",
+ "openLoginLink": "Åpne innloggingssiden",
+ "cancelLogin": "Avbryt innlogging",
"autoDetecting": "Automatisk oppdager tokens...",
"readingFromCursor": "Leser fra Cursor IDE eller cursor-agent",
"tokensAutoDetected": "Tokens ble automatisk oppdaget fra Cursor IDE!",
"cursorNotDetected": "Markør-IDE ble ikke oppdaget. Vennligst lim inn tokenet ditt manuelt.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Kjører du i Docker? Bruk helst Logg inn med Cursor. Automatisk import fra IDE og cursor-agent er vanligvis ikke tilgjengelig inne i containeren. Se docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Tilgangstoken",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Oppdateringstoken",
+ "refreshTokenPlaceholder": "Valgfritt — aktiverer automatisk oppdatering av token",
"required": "*",
"accessTokenPlaceholder": "Tilgangstoken fylles ut automatisk...",
"machineId": "Maskin-ID",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Automatisk gjenkjenning av tokens mislyktes",
"errorEnterToken": "Vennligst skriv inn tilgangstoken",
"errorImportFailed": "Import mislyktes",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Kunne ikke starte Cursor-innlogging",
+ "errorLoginPoll": "Cursor-innlogging mislyktes",
+ "errorLoginTimeout": "Tidsavbrudd for Cursor-innlogging — prøv igjen"
},
"pricingModal": {
"title": "Priskonfigurasjon",
@@ -10839,9 +10850,9 @@
"selectProxy": "Velg {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importer eldre",
+ "bulkAssign": "Massetildel",
+ "addProxy": "Legg til proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10851,14 +10862,14 @@
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
"test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "edit": "Rediger",
+ "delete": "Slett",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Type",
"labelFamily": "IP-familie",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automatisk (dual-stack)",
"familyIpv4": "Kun IPv4",
"familyIpv6": "Kun IPv6",
"familyHint": "Utgående adressefamilie. Auto beholder dual-stack; IPv4/IPv6 låser denne proxyen til den familien (forhindrer en v4-lekkasje under en proxy som kun bruker IPv6).",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Mislyktes",
"successRate": "{rate} % suksess",
"avgLatency": "{latency} ms i gjennomsnitt",
"assignmentsCount": "{count} oppgaver",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Reparer",
"relayAuthMissing": "autentisering mangler",
@@ -10920,7 +10931,7 @@
"bulkImport": "Bulk import",
"bulkImportTitle": "Bulk import proxyer",
"bulkImportDescription": "Lim inn proxy-profiler ved å bruke rørdelt format. Én proxy per linje. Eksisterende proxyer (samme vert + port) vil bli oppdatert.",
- "bulkImportParse": "Parse",
+ "bulkImportParse": "Tolk",
"bulkImportImport": "Importer {count} proxyer",
"bulkImportImporting": "Importerer...",
"bulkImportParsed": "{count} proxyer analysert",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Rotasjonsstrategi",
"poolStrategyHint": "round-robin veksler mellom medlemmer i rekkefølge; random velger jevnt; sticky beholder ett medlem i et tidsvindu; latency-optimized velger den raskeste basert på logger.",
"poolStrategyFailed": "Kunne ikke oppdatere rotasjonsstrategien",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Rundgang",
"strategyRandom": "Tilfeldig",
- "strategySticky": "Sticky",
+ "strategySticky": "Fast",
"strategyLatency": "Latensoptimalisert",
"poolMembersLabel": "Pool-medlemmer ({count})",
"poolNoMembers": "Ingen proxyer i denne poolen ennå.",
+ "poolEgressObservation": "{exits, plural, one {# utgang} other {# utganger}} brukt av {connections, plural, one {# tilkobling} other {# tilkoblinger}} · opptil {max} på én utgang · siste {hours} t",
+ "poolEgressObservationEmpty": "Ingen trafikk registrert de siste {hours} t",
+ "poolEgressObservationHint": "Beregnet fra proxyloggen i løpet av perioden: unike utgående IP-adresser observert for medlemmene i denne gruppen, og OmniRoute-tilkoblingene som brukte dem. «På én utgang» betyr i løpet av perioden, ikke samtidig. 429-sperren per IP setter bare tilkoblinger fra samme leverandørfamilie på pause.",
"poolRemove": "Fjern",
"poolRemoveFailed": "Kunne ikke fjerne proxyen fra poolen",
"poolAddLabel": "Legg til en proxy",
@@ -10968,43 +10982,43 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Endepunkt",
+ "provider": "Leverandør",
+ "model": "Modell",
"accountKey": "Account Key",
"autoAccounts": "Auto ({count} kontoer)",
"noAccounts": "No Accounts",
"send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "cancel": "Avbryt",
+ "audioFile": "Lydfil",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Fjern alle",
+ "request": "Forespørsel",
+ "response": "Svar",
+ "transcription": "Transkripsjon",
+ "copy": "Kopier",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Genererte {count} bilder",
"generatedImage": "Generert bilde {index}",
- "save": "Save",
+ "save": "Lagre",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Svar",
"completions": "Fullføringer",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Innebygginger",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Modereringer",
- "rerank": "Rerank",
+ "rerank": "Omranger",
"search": "Search",
"webFetch": "Netthenting"
},
@@ -11012,50 +11026,50 @@
"clearChat": "Tøm chat",
"typeMessagePlaceholder": "Skriv inn en melding... (Shift+Enter for ny linje)",
"tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabCompare": "Sammenlign",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Bygg",
+ "configPane": "Konfigurasjon",
+ "systemPrompt": "Systeminstruksjon",
+ "systemPromptPlaceholder": "Du er en hjelpsom assistent.",
+ "modelPlaceholder": "f.eks. openai/gpt-4o",
+ "endpointLabel": "Endepunkt",
+ "parametersLabel": "Parametere",
+ "collapseConfig": "Skjul konfigurasjonspanelet",
+ "expandConfig": "Vis konfigurasjonspanelet",
+ "temperature": "Temperatur",
+ "maxTokens": "Maks antall tokener",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Tilstedeværelsesstraff",
+ "frequencyPenalty": "Frekvensstraff",
"reasoningLabel": "Resonnering",
"thinking": "Tenking",
"effort": "Innsats",
"effortDefault": "Standard",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Tilfeldig (la stå tomt)",
+ "presetsLabel": "Forhåndsinnstillinger",
+ "loadPreset": "Last inn forhåndsinnstilling",
+ "savePreset": "Lagre forhåndsinnstilling",
+ "noPresets": "Ingen forhåndsinnstillinger",
+ "presetNamePlaceholder": "Navn på forhåndsinnstilling",
+ "savingPreset": "Lagrer…",
+ "nameRequired": "Navn er påkrevd",
+ "failedToSavePreset": "Kunne ikke lagre forhåndsinnstillingen",
+ "improvePrompt": "Forbedre instruksjonen",
+ "improvingPrompt": "Forbedrer…",
+ "improvePromptTitle": "Forbedre instruksjonen din med KI",
+ "setModelFirst": "Velg en modell først",
"setModelInConfigFirst": "Angi en modell i Config-panelet først.",
"improvePromptFailed": "Forbedring av ledetekst mislyktes.",
"improvePromptAria": "Forbedre ledetekst med AI",
"confirmImprovePrompt": "Bekreft forbedring av ledetekst",
"improvePromptDescription": "Dette vil sende din gjeldende system-prompt til https://ghe.yourcompany.com)।",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub ଏଣ୍ଟରପ୍ରାଇଜ୍ URL",
"gheUrlRequired": "GitHub Enterprise URL ଆବଶ୍ୟକ",
"gitlabDuoSetupTitle": "GitLab Duo OAuth ସେଟଅପ୍",
"gitlabDuoSetupMessage": "GitLab Duo OAuth ବିନ୍ୟାସ କରାଯାଇନାହିଁ। {applicationsUrl}ରେ ରିଡାଇରେକ୍ଟ URI {redirectUri} ଏବଂ ସ୍କୋପ୍ \"{scopes}\" ସହିତ ଏକ OAuth ଆପ୍ଲିକେସନ୍ ପଞ୍ଜୀକରଣ କରନ୍ତୁ, ତା’ପରେ {clientIdEnv} (ଏବଂ ଇଚ୍ଛାନୁସାରେ {clientSecretEnv}) ସେଟ୍ କରି ପୁନଃଚାଳନ କରନ୍ତୁ।",
@@ -10964,6 +10968,9 @@
"strategyLatency": "ଲେଟେନ୍ସି-ଅପ୍ଟିମାଇଜ୍ଡ",
"poolMembersLabel": "ପୁଲ୍ ସଦସ୍ୟ ({count})",
"poolNoMembers": "ଏହି ପୁଲ୍ରେ ଏପର୍ଯ୍ୟନ୍ତ କୌଣସି ପ୍ରକ୍ସି ନାହିଁ।",
+ "poolEgressObservation": "{connections, plural, one {#ଟି ସଂଯୋଗ} other {#ଟି ସଂଯୋଗ}} ଦ୍ୱାରା {exits, plural, one {#ଟି ନିର୍ଗମ} other {#ଟି ନିର୍ଗମ}} ବ୍ୟବହୃତ · ଗୋଟିଏ ନିର୍ଗମରେ ସର୍ବାଧିକ {max} · ଗତ {hours} ଘଣ୍ଟା",
+ "poolEgressObservationEmpty": "ଗତ {hours} ଘଣ୍ଟାରେ କୌଣସି ଟ୍ରାଫିକ୍ ଦେଖାଯାଇନାହିଁ",
+ "poolEgressObservationHint": "ଏହି ସମୟସୀମାର ପ୍ରକ୍ସି ଲଗ୍ରୁ ଗଣନା କରାଯାଇଛି: ଏହି ପୁଲ୍ର ସଦସ୍ୟମାନଙ୍କ ପାଇଁ ଦେଖାଯାଇଥିବା ପୃଥକ ନିର୍ଗମ IPଗୁଡ଼ିକ ଏବଂ ସେଗୁଡ଼ିକୁ ବ୍ୟବହାର କରିଥିବା OmniRoute ସଂଯୋଗଗୁଡ଼ିକ। \"ଗୋଟିଏ ନିର୍ଗମରେ\"ର ଅର୍ଥ ଏହି ସମୟସୀମା ମଧ୍ୟରେ, ଏକା ସମୟରେ ନୁହେଁ। ପ୍ରତି-IP 429 ଲକ୍ଆଉଟ୍ କେବଳ ସମାନ ପ୍ରଦାନକାରୀ ପରିବାରର ସଂଯୋଗଗୁଡ଼ିକୁ ବିରତ କରେ।",
"poolRemove": "ହଟାନ୍ତୁ",
"poolRemoveFailed": "ପୁଲ୍ରୁ ପ୍ରକ୍ସିକୁ ହଟାଇବାରେ ବିଫଳ",
"poolAddLabel": "ଏକ ପ୍ରକ୍ସି ଯୋଡ଼ନ୍ତୁ",
@@ -11121,7 +11128,7 @@
"jsonMode": "JSON ମୋଡ୍",
"jsonModeDescription": "response_format: json_schemaକୁ ବାଧ୍ୟତାମୂଳକ କରେ",
"schemaName": "ସ୍କିମା ନାମ",
- "jsonSchema": "JSON schema",
+ "jsonSchema": "JSON ସ୍କିମା",
"jsonSchemaEditor": "JSON schema ସମ୍ପାଦକ",
"schemaValidated": "ସ୍କିମା ଯାଞ୍ଚ ହୋଇଛି",
"validateSchema": "ସ୍କିମା ଯାଞ୍ଚ କରନ୍ତୁ",
@@ -11672,7 +11679,7 @@
"endpointsCollapse": "ସଙ୍କୁଚିତ କରନ୍ତୁ",
"endpointsExpand": "ବିସ୍ତାର କରନ୍ତୁ",
"endpointsAnthropicNote": "Anthropic-ନେଟିଭ୍",
- "endpointsResponsesNote": "OpenAI Responses — codex/github",
+ "endpointsResponsesNote": "OpenAI ପ୍ରତିକ୍ରିୟାଗୁଡ଼ିକ — codex/github",
"endpointsWsNote": "WebSocket — କେବଳ codex",
"betaText": "କୋଟା ସେୟାର୍ କାର୍ଯ୍ୟକ୍ଷମ ଅଛି, କିନ୍ତୁ ତ୍ରୁଟି ଥିବାର ଆଶଙ୍କା ରହିଛି। କୌଣସି ତ୍ରୁଟି ମିଳିଲା କି? ଦୟାକରି ଏହାକୁ ରିପୋର୍ଟ କରନ୍ତୁ।",
"betaReportLink": "ଏକ ସମସ୍ୟା ରିପୋର୍ଟ କରନ୍ତୁ",
@@ -12233,8 +12240,8 @@
"category": "ପ୍ରକାର",
"detectionStatus": "ଚିହ୍ନଟ",
"configStatus": "ବିନ୍ୟାସ",
- "baseUrlLabel": "Base URL",
- "apiKeyLabel": "API Key",
+ "baseUrlLabel": "ମୂଳ URL",
+ "apiKeyLabel": "API କୀ",
"modelMappingLabel": "ମଡେଲ୍ ମ୍ୟାପିଂ",
"noActiveProviders": "କୌଣସି ସକ୍ରିୟ ପ୍ରଦାନକାରୀ ନାହାନ୍ତି।",
"noActiveProvidersDesc": "CLI ବିନ୍ୟାସ କରିବା ପୂର୍ବରୁ ଅତି କମରେ 1 ଜଣ ପ୍ରଦାନକାରୀଙ୍କୁ ସଂଯୋଗ କରିବା ପାଇଁ Providersକୁ ଯାଆନ୍ତୁ।",
@@ -12246,7 +12253,7 @@
"pageSubtitle": "OmniRouteକୁ ସୂଚାଉଥିବା କୋଡ୍ ଟୁଲ୍ଗୁଡ଼ିକ",
"searchPlaceholder": "CLI ଖୋଜନ୍ତୁ…",
"filterDetectionLabel": "ଚିହ୍ନଟ",
- "filterBaseUrlLabel": "Base URL",
+ "filterBaseUrlLabel": "ମୂଳ URL",
"detectionAll": "ସମସ୍ତ",
"detectionInstalled": "ଇନ୍ଷ୍ଟଲ୍ ହୋଇଛି",
"detectionNotFound": "ମିଳିଲା ନାହିଁ",
@@ -12516,7 +12523,7 @@
"storage": {
"label": "ଷ୍ଟୋରେଜ୍",
"agent": "ଡାଇନାମିକ୍ କ୍ୟାଟାଲଗ୍ (/api/agent-skills) → GitHubରେ SKILL.md",
- "omni": "SQLite (SkillsMP / skills.sh / local)"
+ "omni": "SQLite (SkillsMP / skills.sh / ସ୍ଥାନୀୟ)"
},
"tagline": {
"label": "ଟ୍ୟାଗ୍ଲାଇନ୍",
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "ବାଇଟ୍ଗୁଡ଼ିକ କ୍ଲାଏଣ୍ଟ ପାଖରେ ପହଞ୍ଚିସାରିବା ପରେ ମଧ୍ୟ ଷ୍ଟ୍ରିମ୍ ପୁନରୁଦ୍ଧାରକୁ ପୁନର୍ବାର ପ୍ରତିକ୍ରିୟା ଅନୁରୋଧ କରି ତାହାକୁ ଯୋଡ଼ିବା ପାଇଁ ଅନୁମତି ଦିଅନ୍ତୁ।"
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "ମଧ୍ୟ-ଷ୍ଟ୍ରିମ୍ ଅବ୍ୟାହତିକୁ ଟୁଲ୍-କଲ୍ ପାଇଁ ସୁରକ୍ଷିତ କରନ୍ତୁ: ଏକ ଟୁଲ୍ କଲ୍ ପଠାଯିବା ପରେ (ଏବେ ମଧ୍ୟ ଚାଲିଥାଉ କିମ୍ବା ପୂର୍ବରୁ ସମାପ୍ତ ହୋଇଥାଉ) କଟିଯାଇଥିବା ଷ୍ଟ୍ରିମ୍କୁ କେବେବି ପୁନଃଆରମ୍ଭ କରନ୍ତୁ ନାହିଁ, ଏବଂ ସମ୍ପୂର୍ଣ୍ଣ ପୁନଃପ୍ରୟାସ ବଜେଟ୍ ବ୍ୟବହାର କରିବା ପରିବର୍ତ୍ତେ ଗୋଟିଏ ଖାଲି ଅବ୍ୟାହତି ପରେ ବନ୍ଦ କରନ୍ତୁ।"
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "ଷ୍ଟ୍ରିମ୍ କୌଣସି ଉପଯୋଗୀ ଫ୍ରେମ୍ ପଠାଇବା ପୂର୍ବରୁ ବନ୍ଦ ହେଲେ ଏବଂ ସେହି ସଂଯୋଗରେ ସୀମିତ ପୁନଃପ୍ରଚେଷ୍ଟା ଶେଷ ହୋଇଗଲେ ଥରେ ଏକ ସହୋଦର ସଂଯୋଗକୁ ଫେଲଓଭର କରନ୍ତୁ। ବ୍ୟବହାରଯୋଗ୍ୟ ସହୋଦର ସଂଯୋଗ ନଥିଲେ ମୂଳ early-EOF ତ୍ରୁଟି ଫେରାଇ ଦିଆଯାଏ। ବନ୍ଦ: ପୁନଃପ୍ରଚେଷ୍ଟା ପରେ early-EOF ଅନ୍ତିମ ରହେ।"
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "/v1/models ପ୍ରତିକ୍ରିୟାଗୁଡ଼ିକରେ ପ୍ରଦର୍ଶନ-ଅନୁକୂଳ ନାମ ଫିଲ୍ଡଗୁଡ଼ିକୁ ସାମିଲ କରନ୍ତୁ। କେବଳ ମଡେଲ୍ ID ଗ୍ରହଣ କରୁଥିବା କ୍ଲାଏଣ୍ଟମାନଙ୍କ ପାଇଁ ଏହାକୁ ଅକ୍ଷମ କରନ୍ତୁ।"
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "ସର୍ଭର-ମାଲିକାନାଧୀନ ଟୁଲ୍ ଲୁପ୍",
"description": "ମଡେଲ୍ ଏକ କ୍ଲାଏଣ୍ଟ-ବ୍ୟବହାରଯୋଗ୍ୟ ପ୍ରତିକ୍ରିୟା ଫେରାଇବା ପର୍ଯ୍ୟନ୍ତ ନନ୍-ଷ୍ଟ୍ରିମିଂ ସର୍ଭର-ମାଲିକାନାଧୀନ ଟୁଲ୍ କଲ୍ଗୁଡ଼ିକୁ ଜାରି ରଖନ୍ତୁ।"
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After ଉତ୍ସ",
+ "description": "ସମୁଚ୍ଚିତ 429/503 ଅନୁପଲବ୍ଧ ପ୍ରତିକ୍ରିୟାଗୁଡ଼ିକରେ, କୌଣସି ନିର୍ଦ୍ଦିଷ୍ଟ ଭବିଷ୍ୟତ ପୁନଃପ୍ରୟାସ ସମୟ ଜଣା ନଥିଲେ କୃତ୍ରିମ 1s ପଠାଇବା ପରିବର୍ତ୍ତେ Retry-After ବାଦ ଦିଅନ୍ତୁ, error.retry_after_provenance ଯୋଡ଼ନ୍ତୁ, ଏବଂ କମ୍ବୋ ଡ୍ରେନ୍ ପଥଗୁଡ଼ିକରେ ଗଦ୍ୟରୂପୀ ପୁନଃପ୍ରୟାସ ସୂଚନା ପଢ଼ନ୍ତୁ।"
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "ସୁରକ୍ଷିତ-ପ୍ରାଥମିକତା ଇନ୍ଫ୍ରା ବନ୍ଦଗୁଡ଼ିକୁ 502 ଭାବେ",
+ "description": "ଯେତେବେଳେ ଏକ କେବଳ-କୋଟା-ଫଲ୍ବ୍ୟାକ୍ ପ୍ରାଥମିକତା ଲକ୍ଷ୍ୟ ଏପରି ଏକ କାରଣରୁ କମ୍ବୋକୁ ବନ୍ଦ କରେ ଯାହା ପ୍ରମାଣଯୋଗ୍ୟ ଭାବେ କୋଟା ନୁହେଁ—ଏକ ଖୋଲା ପ୍ରଦାନକାରୀ ସର୍କିଟ୍ ବ୍ରେକର୍ କିମ୍ବା ଏକ ପୂର୍ବାନୁମାନିତ ବିଳମ୍ବତା ସ୍କିପ୍—ସେତେବେଳେ 503 ପରିବର୍ତ୍ତେ 502 ଉତ୍ତର ଦିଅନ୍ତୁ।"
}
}
},
@@ -13337,7 +13358,7 @@
}
},
"chaosConfig": {
- "pageTitle": "Chaos Mode",
+ "pageTitle": "ବିଶୃଙ୍ଖଳା ମୋଡ୍",
"pageSubtitle": "ସମାନ କାର୍ଯ୍ୟରେ ଏକାଧିକ AI ମଡେଲ୍କୁ ସମାନ୍ତରାଳ ଭାବେ କିମ୍ବା ସହଯୋଗମୂଳକ ଭାବେ ଚଲାନ୍ତୁ",
"enableChaos": "Chaos Mode ସକ୍ଷମ କରନ୍ତୁ",
"enableChaosDesc": "Chaos Mode ସକ୍ଷମ ଥିବା API କୀଗୁଡ଼ିକୁ ଏହି ବୈଶିଷ୍ଟ୍ୟ ବ୍ୟବହାର କରିବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ",
@@ -13588,7 +13609,7 @@
"remaining": "ଅବଶିଷ୍ଟ",
"noLockouts": "କୌଣସି ସକ୍ରିୟ ଲକ୍ଆଉଟ୍ ନାହିଁ",
"provider": "ପ୍ରଦାନକାରୀ",
- "id": "ID",
+ "id": "ଆଇଡି",
"authType": "ପ୍ରମାଣୀକରଣ ପ୍ରକାର",
"priority": "ପ୍ରାଥମିକତା",
"isActive": "ସକ୍ରିୟ",
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "ଲକ୍ଷ୍ୟ ମଡେଲ୍ରେ ଆବଶ୍ୟକ କ୍ଷମତାଗୁଡ଼ିକ (ଭିଜନ୍, ଟୁଲ୍, ଷ୍ଟ୍ରକ୍ଚର୍ଡ ଆଉଟପୁଟ୍, କଣ୍ଟେକ୍ସ୍ଟ ୱିଣ୍ଡୋ) ନଥିଲେ ଡିସ୍ପାଚ୍ ପୂର୍ବରୁ ଅନୁରୋଧଗୁଡ଼ିକୁ ପ୍ରତ୍ୟାଖ୍ୟାନ କରନ୍ତୁ। ଏହା କମ୍ବୋ-ଲେୟର୍ ସୁସଙ୍ଗତତା ଫିଲ୍ଟର୍କୁ ବାଇପାସ୍ କରୁଥିବା ସିଧାସଳଖ ଏକକ-ପ୍ରଦାନକାରୀ ଅନୁରୋଧଗୁଡ଼ିକୁ ସୁରକ୍ଷିତ କରେ।",
"featureFlagDisableContextWindowChecksDescription": "ସିଧାସଳଖ ଏକକ-ମଡେଲ୍ ଅନୁରୋଧଗୁଡ଼ିକ ପାଇଁ OmniRouteର ସ୍ଥାନୀୟ କଣ୍ଟେକ୍ସ୍ଟ-ୱିଣ୍ଡୋ ଏବଂ ସର୍ବାଧିକ-ଇନପୁଟ୍-ଟୋକନ୍ ଯାଞ୍ଚକୁ ଏଡ଼ାନ୍ତୁ। ଅପ୍ଷ୍ଟ୍ରିମ୍ ପ୍ରଦାନକାରୀମାନେ ତଥାପି ସେମାନଙ୍କର ପ୍ରକୃତ ସୀମାଗୁଡ଼ିକୁ ଲାଗୁ କରିବେ। ପ୍ରମ୍ପ୍ଟ କମ୍ପ୍ରେସନ୍ ଏବଂ ଆଉଟପୁଟ୍-ଟୋକନ୍ ସୀମା ସକ୍ରିୟ ରହିବ।",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "ସନ୍ଧାନ ପରିସଂଖ୍ୟାନ ଏବଂ ସାମ୍ପ୍ରତିକ ସନ୍ଧାନଗୁଡ଼ିକରେ କେବଳ ସେହି ପ୍ରଦାନକାରୀମାନଙ୍କୁ ଗଣନା କରାଯାଏ ଯେଉଁମାନଙ୍କର ସଂଯୋଗ ଏବେ ବି ସକ୍ରିୟ ଅଛି (duckduckgo-free ପରି କୀ-ବିହୀନ ପ୍ରଦାନକାରୀମାନଙ୍କୁ ସବୁବେଳେ ଗଣନା କରାଯାଏ)। ବନ୍ଦ କଲେ ପ୍ରଦାନକାରୀ ଆଇଡି ସହିତ ରଖାଯାଇଥିବା ପ୍ରତ୍ୟେକ ସନ୍ଧାନ ଧାଡ଼ି ଅପରିବର୍ତ୍ତିତ ରହେ।",
"publicSystem": {
"notFound": {
"title": "ପୃଷ୍ଠା ମିଳିଲା ନାହିଁ",
@@ -13773,7 +13795,7 @@
"kiroAuthModal": {
"title": "{providerLabel} ସହିତ ସଂଯୋଗ କରନ୍ତୁ",
"chooseMethod": "ଆପଣଙ୍କ ପ୍ରମାଣୀକରଣ ପଦ୍ଧତି ବାଛନ୍ତୁ:",
- "builderId": "AWS Builder ID",
+ "builderId": "AWS ବିଲ୍ଡର ID",
"builderDescription": "ଅଧିକାଂଶ ବ୍ୟବହାରକାରୀଙ୍କ ପାଇଁ ସୁପାରିଶ କରାଯାଏ। {providerLabel} ସହିତ ଲିଙ୍କ୍ ହୋଇଥିବା AWS ଆକାଉଣ୍ଟ୍ରେ ସାଇନ୍ ଇନ୍ କରନ୍ତୁ।",
"organization": "ଆପଣଙ୍କ ସଂସ୍ଥା (AWS IAM Identity Center)",
"organizationDescription": "ଆପଣଙ୍କ କମ୍ପାନୀର SSO ଆରମ୍ଭ URL ବ୍ୟବହାର କରନ୍ତୁ (ଉଦାହରଣ: {url})।",
@@ -13956,7 +13978,7 @@
"runners": "ରନର୍ଗୁଡ଼ିକ",
"tasks": "କାର୍ଯ୍ୟଗୁଡ଼ିକ",
"colName": "ନାମ",
- "colClis": "CLIs",
+ "colClis": "CLIଗୁଡ଼ିକ",
"colStatus": "ସ୍ଥିତି",
"colTask": "କାର୍ଯ୍ୟ",
"colMode": "ମୋଡ୍",
@@ -14029,9 +14051,9 @@
"filterSources": "ଉତ୍ସଗୁଡ଼ିକ",
"filterProviders": "ପ୍ରଦାନକାରୀମାନେ",
"clearFilters": "ଫିଲ୍ଟରଗୁଡ଼ିକ ସଫା କରନ୍ତୁ",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "କ୍ଲାଉଡ୍ ଏଜେଣ୍ଟ",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "କଣ୍ଡକ୍ଟର",
"sourceStale": "{since} ଠାରୁ ଅଚଳ",
"sourceOffline": "ଅଫ୍ଲାଇନ୍",
"sourceCollapse": "ସଂକୁଚିତ କରନ୍ତୁ",
diff --git a/src/i18n/messages/pa.json b/src/i18n/messages/pa.json
index 51145d3716..44798575c5 100644
--- a/src/i18n/messages/pa.json
+++ b/src/i18n/messages/pa.json
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "/v1/models ਉੱਤੇ claude/<provider>/<model> ਮਿਰਰ IDs ਦਾ ਪ੍ਰਚਾਰ ਕਰੋ, ਤਾਂ ਜੋ Claude Code ਗੇਟਵੇ ਮਾਡਲ ਖੋਜ ਵਿੱਚ ਗੈਰ-Claude ਮਾਡਲ ਸੂਚੀਬੱਧ ਹੋਣ। ਚੇਤਾਵਨੀ: ਗਲੋਬਲ ਤੌਰ 'ਤੇ ਸਮਰੱਥ ਕਰਨ 'ਤੇ ਇਹ ਸਾਰੇ ਕਲਾਇੰਟਾਂ ਲਈ ਕੈਟਾਲਾਗ ਐਂਟਰੀਆਂ ਨੂੰ ਦੁੱਗਣਾ ਕਰ ਦਿੰਦਾ ਹੈ।",
"featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> ਗੇਟਵੇ ਉਪਨਾਮਾਂ ਲਈ ਮੁੱਖ ਸਵਿੱਚ। ਚਾਲੂ (ਡਿਫਾਲਟ): /v1/models ਹਰ ਯੋਗ, ਸੋਚਣ-ਸਮਰੱਥ Claude ਮਾਡਲ ਲਈ ਇੱਕ ਬਿਨਾਂ-ਸੋਚ ਵਾਲਾ ਰੂਪ ਦਰਸਾਉਂਦਾ ਹੈ, ਅਤੇ ਬੇਨਤੀ ਵਿੱਚ ਭੇਜਿਆ ਗਿਆ no-think/ ID ਤਰਕ ਨੂੰ ਦਬਾ ਕੇ ਮੁੜ ਅਸਲ ਮਾਡਲ ਵਿੱਚ ਹੱਲ ਹੁੰਦਾ ਹੈ। ਬੰਦ: ਕੋਈ ਰੂਪ ਦਰਸਾਏ ਨਹੀਂ ਜਾਂਦੇ ਅਤੇ no-think/ ID ਨੂੰ ਕਿਸੇ ਹੋਰ ਅਣਜਾਣ ਮਾਡਲ ID ਵਾਂਗ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ। ਜਦੋਂ ਇਹ ਚਾਲੂ ਹੋਵੇ, ਤਾਂ ਪ੍ਰਤੀ-ਮਾਡਲ ModelSpec.noThinkingAlias ਔਪਟ-ਇਨ/ਔਪਟ-ਆਉਟ ਫਿਰ ਵੀ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।",
"featureFlagChatVirtualLanesEnabledDescription": "ਪ੍ਰਦਾਤਾ ਡਿਸਪੈਚ (#9654) ਲਈ ਪ੍ਰਤੀ-ਟੈਨੈਂਟ ਅਨੁਕੂਲ ਵਰਚੁਅਲ ਐਡਮਿਸ਼ਨ ਲੇਨ ਸਮਰੱਥ ਕਰੋ: ਹੁਣ ਇੱਕ ਟੈਨੈਂਟ ਦਾ ਅਚਾਨਕ ਵਧਿਆ ਲੋਡ ਦੂਜੇ ਲਈ 503 ਪੈਦਾ ਨਹੀਂ ਕਰੇਗਾ। OMNIROUTE_CHAT_VIRTUAL_LANES env var ਨੂੰ ਇਸ ਡੈਸ਼ਬੋਰਡ ਓਵਰਰਾਈਡ ਉੱਤੇ ਤਰਜੀਹ ਮਿਲਦੀ ਹੈ; ਤਬਦੀਲੀਆਂ ਸਰਵਰ ਮੁੜ ਚਾਲੂ ਹੋਣ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀਆਂ ਹਨ।",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "ਡੈਸ਼ਬੋਰਡ ਪ੍ਰਦਾਤਾ ਪੰਨੇ: ਮੁਫ਼ਤ ਬੈਜ ਸਿਰਫ਼ ਉਹਨਾਂ ਸੰਕੇਤਾਂ ਉੱਤੇ ਦਿਖਾਓ ਜਿਨ੍ਹਾਂ ਨੂੰ ਪ੍ਰਦਾਤਾ ਮੰਨਦਾ ਹੈ — ਇਹ ਡਿਸਪਲੇ-ਨਾਮ ਅਨੁਮਾਨ, ਗੈਰ-ਬੂਲੀਅਨ free ਫ਼ੀਲਡਾਂ ਅਤੇ ਬਿਨਾਂ ਦਸਤਾਵੇਜ਼ਬੱਧ ਮੁਫ਼ਤ ਟੀਅਰ ਵਾਲੇ ਰਜਿਸਟਰਡ ਪ੍ਰਦਾਤਾਵਾਂ ਉੱਤੇ :free ਪਿਛੇਤਰਾਂ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ। ਬੰਦ ਹੋਣ ਉੱਤੇ ਪੁਰਾਣਾ ਬੈਜ ਨਿਯਮ ਬਰਕਰਾਰ ਰਹਿੰਦਾ ਹੈ।",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy ਪੂਲ ਅਤੇ opencode ਦੀ ਪ੍ਰਤੀ-ਖਾਤਾ ਰੋਟੇਸ਼ਨ ਉਸ Proxy ਨੂੰ ਮੁੜ ਵਰਤਣਾ ਬੰਦ ਕਰ ਦਿੰਦੇ ਹਨ ਜੋ ਹੁਣੇ ਅਸਫਲ ਹੋਇਆ ਹੈ (TCP ਪ੍ਰੋਬ ਅਸਵੀਕਾਰ ਹੋਈ, ਜਾਂ ਇਸ ਰਾਹੀਂ 429 ਮਿਲਿਆ), ਇੱਕ ਪ੍ਰਤੀ-ਪ੍ਰਕਿਰਿਆ ਮਿਆਦ ਲਈ ਜੋ ਹਰ ਦੁਹਰਾਅ ਨਾਲ ਦੁੱਗਣੀ ਹੁੰਦੀ ਹੈ, ਇੱਕ ਅਧਿਕਤਮ ਹੱਦ ਤੱਕ। ਕੋਈ Proxy ਸਥਿਤੀ ਲਿਖੀ ਨਹੀਂ ਜਾਂਦੀ; ਹਰ ਉਮੀਦਵਾਰ ਨੂੰ ਪਾਸੇ ਰੱਖਣ ’ਤੇ ਚੋਣ ਬਦਲਦੀ ਨਹੀਂ ਹੈ। ਮੂਲ ਰੂਪ ਵਿੱਚ ਬੰਦ: ਚੋਣ ਕ੍ਰਮ ਬਿਲਕੁਲ ਸਧਾਰਨ ਰੋਟੇਸ਼ਨ ਵਰਗਾ ਹੈ।",
+ "featureFlagProxyPoolEgressObservationDescription": "ਡੈਸ਼ਬੋਰਡ ਵਿੱਚ ਕਿਸੇ Proxy ਪੂਲ ਹੇਠ ਦਿਖਾਓ ਕਿ ਪਿਛਲੇ 24 ਘੰਟਿਆਂ ਦੌਰਾਨ ਕਿੰਨੇ ਦੇਖੇ ਗਏ egress IPs ਨੇ ਇਸ ਦੇ ਮੈਂਬਰਾਂ ਨੂੰ ਸੇਵਾ ਦਿੱਤੀ, ਕਿੰਨੇ ਕਨੈਕਸ਼ਨਾਂ ਨੇ ਉਨ੍ਹਾਂ ਨੂੰ ਵਰਤਿਆ ਅਤੇ ਇੱਕ IP ਦੇ ਪਿੱਛੇ ਸਭ ਤੋਂ ਵੱਧ ਕਿੰਨੇ ਦੇਖੇ ਗਏ। ਕੇਵਲ ਪੜ੍ਹਨਯੋਗ, Proxy ਲੌਗ ਤੋਂ ਗਣਨਾ ਕੀਤੀ ਗਈ, ਰੂਟਿੰਗ ਲਈ ਕਦੇ ਨਹੀਂ ਵਰਤੀ ਜਾਂਦੀ। ਮੂਲ ਰੂਪ ਵਿੱਚ ਬੰਦ: ਪੂਲ ਸੰਪਾਦਕ ਬਦਲਦਾ ਨਹੀਂ ਹੈ ਅਤੇ ਨਿਰੀਖਣ ਰੂਟ null ਜਵਾਬ ਦਿੰਦਾ ਹੈ।",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Proxy ਸਿਹਤ ਜਾਂਚ ਵਿੱਚ, ਟਾਰਗੇਟ ਵੱਲੋਂ ਅਸਵੀਕਾਰ ਕੀਤੀ ਪ੍ਰੋਬ (401/403/429: Proxy ਨੇ ਅੱਗੇ ਭੇਜਿਆ, ਮੰਜ਼ਿਲ ਨੇ ਇਸ egress IP ਨੂੰ ਅਸਵੀਕਾਰ ਕੀਤਾ) ਨੂੰ, ਸਫਲਤਾਪੂਰਵਕ ਸੇਵਾ ਕੀਤੀ ਪ੍ਰੋਬ ਵਾਂਗ, Proxy ਦੀ ਲਗਾਤਾਰ ਅਸਫਲਤਾ ਲੜੀ ਰੀਸੈੱਟ ਕਰਨ ਦਿਓ। ਮੂਲ ਰੂਪ ਵਿੱਚ ਬੰਦ: ਅਸਵੀਕਾਰਤਾ ਨਿਰਪੱਖ ਰਹਿੰਦੀ ਹੈ ਅਤੇ ਲੜੀ ਨੂੰ ਕਾਇਮ ਰੱਖਦੀ ਹੈ। 5xx ਦੋਵਾਂ ਹਾਲਤਾਂ ਵਿੱਚ ਅਨਿਰਣਾਇਕ ਰਹਿੰਦਾ ਹੈ, ਅਤੇ ਅਸਵੀਕਾਰਤਾ ਕਦੇ ਵੀ ਕਿਸੇ Proxy ਨੂੰ ਹਟਾਉਂਦੀ, ਅਯੋਗ ਜਾਂ ਮੁੜ ਸਰਗਰਮ ਨਹੀਂ ਕਰਦੀ।",
"sidebar": {
"home": "ਮੁੱਖ ਪੰਨਾ",
"dashboard": "ਡੈਸ਼ਬੋਰਡ",
@@ -1425,19 +1429,19 @@
"secretKeyHint": "ਪ੍ਰਮਾਣੀਕਰਨ ਲਈ ਪੇਲੋਡ ਹੈਡਰ 'ਤੇ ਦਸਤਖਤ ਕਰਨ ਵਾਸਤੇ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।"
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "Discord ਵੈੱਬਹੁੱਕ URL",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "ਤੁਹਾਡੇ Discord ਚੈਨਲ ਦੀ ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਸੈਟਿੰਗਾਂ ਤੋਂ ਕਾਪੀ ਕੀਤਾ ਵੈੱਬਹੁੱਕ URL।",
"tutorial": "Discord ਵੈੱਬਹੁੱਕ ਕਿਵੇਂ ਬਣਾਉਣਾ ਹੈ:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "Slack ਵੈੱਬਹੁੱਕ URL",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "ਤੁਹਾਡੀ Slack Incoming Webhooks ਇੰਟੀਗ੍ਰੇਸ਼ਨ ਤੋਂ ਕਾਪੀ ਕੀਤਾ ਵੈੱਬਹੁੱਕ URL।",
"tutorial": "Slack ਵੈੱਬਹੁੱਕ ਕਿਵੇਂ ਬਣਾਉਣਾ ਹੈ:"
},
"telegram": {
- "botToken": "Telegram Bot Token",
+ "botToken": "Telegram ਬੌਟ ਟੋਕਨ",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "ਤੁਹਾਡਾ ਬੋਟ ਬਣਾਉਂਦੇ ਸਮੇਂ @BotFather ਤੋਂ ਪ੍ਰਾਪਤ ਹੋਇਆ HTTP API ਟੋਕਨ।",
"chatId": "Telegram ਚੈਟ ID / ਚੈਨਲ",
@@ -1490,7 +1494,7 @@
"tool": "ਟੂਲ",
"toolPlaceholder": "ਟੂਲ ਦੇ ਨਾਮ ਮੁਤਾਬਕ ਫਿਲਟਰ ਕਰੋ",
"duration": "ਅਵਧੀ",
- "apiKey": "API Key",
+ "apiKey": "API ਕੁੰਜੀ",
"output": "ਆਉਟਪੁੱਟ",
"allResults": "ਸਾਰੇ ਨਤੀਜੇ",
"success": "ਸਫਲ",
@@ -2713,7 +2717,7 @@
"ccOnboardingTitle": "ਗੇਟਵੇ ਮਾਡਲ ਖੋਜ ਲਈ settings.json",
"ccOnboardingCopy": "ਕਾਪੀ ਕਰੋ",
"ccOnboardingCopied": "ਕਾਪੀ ਹੋ ਗਿਆ",
- "ccOnboardingKeyPlaceholder": "'POST /v1/search upang simulan ang pag-route ng mga web search.",
"searchAnalyticsFreeTier": "Magagamit ang libreng tier: Serper (2,500/buwan), Brave (2,000/buwan), Exa (1,000/buwan), Tavily (1,000/buwan) — kabuuang 6,500+ libreng paghahanap/buwan na may awtomatikong failover.",
"autoRoutingNoDataAvailable": "Walang available na auto-routing analytics. Gumawa ng mga kahilingan gamit ang auto/ prefix upang makita ang mga sukatan.",
- "defaultVariantLabel": "Default",
+ "defaultVariantLabel": "Paunang-takda",
"freeTierAvailable": "Available ang libreng tier"
},
"apiManager": {
@@ -2240,7 +2244,7 @@
"revokeConfirm": "Sigurado ka bang gusto mong bawiin ang API key na ito?",
"noKeys": "Wala pang API key",
"noKeysDesc": "Gawin ang iyong unang API key upang patotohanan ang mga kahilingan sa iyong endpoint",
- "keyLabel": "Key Label",
+ "keyLabel": "Label ng Key",
"permissions": "Mga Pahintulot",
"expiresAt": "Mag-e-expire",
"never": "Hindi kailanman",
@@ -2250,13 +2254,13 @@
"copyKey": "Kopyahin ang API Key",
"allModels": "Lahat ng mga modelo",
"selectedModels": "Mga Napiling Modelo",
- "readOnly": "Read Only",
+ "readOnly": "Basahin Lamang",
"fullAccess": "Buong Access",
"keyManagement": "Pamamahala ng Key ng API",
"keyManagementDesc": "Gumawa at mamahala ng mga API key para sa pag-authenticate ng mga kahilingan sa iyong endpoint",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Nagpapadala ang iyong app ng mga kahilingan sa OmniRoute gamit ang isang API key",
+ "requestFlowYourApp": "Ang iyong app",
+ "requestFlowApiKey": "Susi ng API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Kabuuang Mga Susi",
"restricted": "Pinaghihigpitan",
@@ -2271,7 +2275,7 @@
"usage": "Paggamit",
"created": "Nilikha",
"actions": "Mga aksyon",
- "reqs": "reqs",
+ "reqs": "mga kahilingan",
"neverUsed": "Hindi kailanman ginamit",
"deleteConfirm": "Tanggalin ang API key na ito?",
"usageTips": "Mga Tip sa Paggamit",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Kopyahin at iimbak ang key na ito ngayon — hindi na ito muling ipapakita.",
"done": "Tapos na",
"savePermissions": "I-save ang Mga Pahintulot",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Mga Pinapayagang Endpoint",
+ "allEndpointsAllowed": "Maa-access ng key na ito ang lahat ng API endpoint.",
+ "endpointsRestricted": "Limitado sa {count} endpoint{count, plural, one {} other {s}}.",
+ "autoResolve": "Awtomatikong Lutasin",
+ "autoResolveDesc": "Awtomatikong lutasin ang mga hindi tiyak na pangalan ng modelo sa native provider para sa API key na ito.",
"streamDefaultMode": "Compatibility ng Default na Stream",
"streamDefaultModeDesc": "Kinokontrol ang mga hindi isinamang `stream` flag para sa key na ito. Nagbabalik ang JSON mode ng mga non-streaming na tugon maliban kung tahasang humiling ang client ng SSE.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Lumang bersyon",
"streamDefaultJson": "Tugma sa JSON",
"streamDefaultBadge": "Default na JSON stream",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Aktibong Key",
+ "keyActiveDesc": "I-enable o i-disable ang API key na ito. Ang mga naka-disable na key ay agad na tinatanggihan gamit ang 403.",
+ "accessSchedule": "Iskedyul ng Access",
+ "accessScheduleDesc": "Limitahan ang access sa mga partikular na oras at araw ng linggo.",
+ "scheduleFrom": "Mula",
+ "scheduleUntil": "Hanggang",
+ "scheduleDays": "Mga Araw",
+ "scheduleTimezone": "Sona ng oras",
+ "scheduleTimezoneHint": "Gumamit ng mga pangalan ng IANA timezone, hal. America/New_York, Europe/Berlin",
+ "scheduleActive": "Iskedyul",
+ "disabled": "Naka-disable",
+ "daySun": "Lin",
+ "dayMon": "Lun",
+ "dayTue": "Mar",
+ "dayWed": "Miy",
+ "dayThu": "Huw",
+ "dayFri": "Biy",
+ "daySat": "Sab",
"allowAll": "Payagan ang Lahat",
"restrict": "Paghigpitan",
"allowAllInfo": "Maa-access ng key na ito ang lahat ng available na modelo.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Nabigong i-update ang mga pahintulot. Pakisubukang muli.",
"unknownProvider": "hindi kilala",
"copyMaskedKey": "Kopyahin ang nakamaskara na susi",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Makukuha lamang ang buong key sa oras ng paggawa — kopyahin ito sa unang paggawa mo ng key",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# device} other {# na device}}",
"devicesTooltip": "{count, plural, one {# natatanging IP/User-Agent device na nakita gamit ang key na ito (huling 30 min)} other {# na natatanging IP/User-Agent device na nakita gamit ang key na ito (huling 30 min)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Mga Pinapayagang Combo",
"allCombosAllowed": "Maaaring gumamit ng anumang combo ang key na ito.",
"restrictedComboCount": "Limitado sa {count, plural, one {# combo} other {# na combo}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "Ang {count, plural, one {# nakaimbak na entry ay} other {# nakaimbak na entry ay}} wala sa listahan ng combo na ito (halimbawa, mga panuntunan sa routing) at pananatilihin ayon sa pagkaka-save.",
+ "preservedComboRuleHint": "Pinanatili ayon sa pagkakaimbak. Ang entry na ito ay hindi isang combo sa listahan sa itaas, kaya maaari lamang itong baguhin sa pamamagitan ng API.",
"apiManagerCustomRateLimits": "Mga Limitasyon ng Custom na Rate",
"apiManagerCustomRateLimitsDesc": "I-override ang mga pandaigdigang default na limitasyon. Iwanang walang laman upang gamitin ang mga default.",
"apiManagerRateLimitRequestsPlaceholder": "Mga kahilingan",
@@ -2388,7 +2392,7 @@
"apiManagerRemoveLimitTitle": "Alisin ang limitasyon",
"apiManagerTimezonePlaceholder": "America/Sao_Paulo",
"noLogPayloadPrivacy": "Walang-Log Payload Privacy",
- "bannedStatus": "Banned Status",
+ "bannedStatus": "Katayuan ng Pagka-ban",
"managementApiAccess": "Access sa Management API",
"expirationDate": "Petsa ng Pag-expire",
"managementAccess": "Access sa Pamamahala",
@@ -2402,7 +2406,7 @@
"filterStatusDisabled": "Hindi pinagana",
"filterStatusBanned": "Ipinagbawal",
"filterStatusExpired": "Nag-expire",
- "filterTypeStandard": "Standard",
+ "filterTypeStandard": "Karaniwan",
"filterTypeManage": "Pamahalaan",
"filterTypeRestricted": "Pinaghihigpitan",
"shownOf": "{shown} sa {total} ang ipinapakita",
@@ -2414,25 +2418,25 @@
"quotaKeysSection": "Mga quota key",
"bypassProviderQuota": "I-bypass ang mga cutoff ng quota ng provider",
"bypassProviderQuotaDescription": "Pinapayagan ang key na ito na balewalain ang patakaran sa cutoff ng upstream provider/account habang nagruruta. Nalalapat pa rin ang mga quota sa USD ng API key.",
- "quotaPill": "QUOTA",
+ "quotaPill": "KOTA",
"quotaModeOnly": "qtSd-only",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Eksklusibong Lease",
+ "exclusiveLeaseNoticeTitle": "Eksklusibong Lease",
+ "exclusiveLeaseNoticeDesc": "Ang API key na ito ay may mga pahintulot sa eksklusibong lease para sa routing ng nakalaang koneksyon.",
+ "allConnections": "Lahat ng koneksyon",
+ "onlySelectedConnections": "Mga napiling koneksyon lamang",
+ "selectAtLeastOneConnection": "Pumili ng kahit isang koneksyon o piliin ang Lahat ng koneksyon.",
+ "allConnectionsDesc": "Maaaring gumamit ang key na ito ng anumang aktibong koneksyon.",
+ "restrictedToConnections": "Limitado sa {count, plural, one {# koneksyon} other {# koneksyon}}."
},
"auditLog": {
"title": "Log ng Audit",
"searchPlaceholder": "Mga aksyon sa paghahanap...",
"action": "Aksyon",
"actor": "artista",
- "target": "Target",
- "ipAddress": "IP Address",
- "timestamp": "Timestamp",
+ "target": "Puntirya",
+ "ipAddress": "Address ng IP",
+ "timestamp": "Tatak ng oras",
"noEntries": "Walang nakitang audit entry",
"filterByAction": "I-filter ayon sa pagkilos...",
"filterByActor": "Salain ayon sa aktor...",
@@ -2448,28 +2452,28 @@
"previous": "Nakaraang"
},
"media": {
- "title": "Media Playground",
+ "title": "Playground ng Media",
"subtitle": "Bumuo ng mga larawan, video, at musika",
"model": "Model",
"prompt": "Prompt",
"generate": "Bumuo",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Bumubuo...",
+ "loadingModels": "Nilo-load ang mga available na modelo...",
+ "noModels": "Walang available na modelo. I-configure muna ang mga provider na may kakayahan sa media.",
+ "error": "Nabigo ang Pagbuo",
+ "result": "Resulta",
+ "imageDescription": "Bumuo ng mga larawan mula sa mga text prompt gamit ang OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, at iba pa.",
+ "videoDescription": "Gumawa ng mga video gamit ang AnimateDiff, Stable Video Diffusion sa pamamagitan ng ComfyUI o SD WebUI.",
+ "musicDescription": "Lumikha ng musika gamit ang Stable Audio Open o MusicGen sa pamamagitan ng ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Pag-embed",
"image": "Larawan",
"imageToText": "Larawan sa Teksto",
"tts": "Teksto sa Pagsasalita",
"stt": "Pagsasalita sa Teksto",
"webSearch": "Paghahanap sa Web",
- "webFetch": "Web Fetch",
- "video": "Video",
+ "webFetch": "Pagkuha mula sa Web",
+ "video": "Bidyo",
"music": "Musika",
"ocr": "OCR"
},
@@ -2506,16 +2510,16 @@
"failedToReadFile": "Bigo sa pagbasa ng file",
"generationFailed": "Bigo ang pag-generate",
"requestFailed": "Bigo ang kahilingan ({status})",
- "provider": "Provider",
+ "provider": "Tagapagbigay",
"credentialsRequired": "Nangangailangan ng --permission-mode auto ng Claude Code gamit ang isang synthetic allow response upang hindi mag-fail closed ang mga fallback route. Naka-off bilang default.",
- "classifierCompatCycle": "Cycle: off → auto → always",
+ "classifierCompatCycle": "Siklo: naka-off → awtomatiko → palagi",
"classifierCompatLoadFailed": "Nabigong i-load ang setting",
"classifierCompatMode": {
"off": "Naka-off",
- "auto": "Auto",
+ "auto": "Awtomatiko",
"always": "Palagi"
},
"ccDiscoveryInfoButton": "Paano i-enable ang discovery sa Claude Code",
@@ -2713,7 +2717,7 @@
"ccOnboardingTitle": "settings.json para sa pagtuklas ng modelo ng gateway",
"ccOnboardingCopy": "Kopyahin",
"ccOnboardingCopied": "Nakopya",
- "ccOnboardingKeyPlaceholder": "'omniglyph mode. Ito ay isang preview at nananatiling naka-off by default hanggang sa makumpleto ang end-to-end na pagpapatunay.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profile ng compression",
+ "profileDescription": "Ang profile ay pinakamataas na limitasyon, hindi pinakamababa: ang mas mahigpit na profile ay hindi maaaring luwagan ng override sa bawat hakbang. Batay sa pagsukat sa codebase na ito: gamit ang coding-safe o balanced, walang kino-compress sa isang session na wala pang naiipong history, dahil parehong itinataas ng mga ito ang minimum na bilang ng character at pinananatiling native ang system prompt, mga schema ng tool, at mga resulta ng tool.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresibo (default)",
+ "description": "Ang patakarang sinukat ng mga na-publish na resibo. Kino-compress bilang image ang system prompt, dokumentasyon ng tool, at siksik na history."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Balanse",
+ "description": "Pinananatiling native ang live na estado at pinoprotektahan ang huling 8 palitan; tanging ang mas lumang nakasarang kasaysayan ang pinaiikli."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Ligtas para sa coding",
+ "description": "Pinananatiling native ang awtoridad, mga schema ng tool, at live na output ng tool, habang pinoprotektahan ang huling 12 palitan. Walang kino-compress hanggang sa makaipon ng kasaysayan ang session."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Direktang pagpasa",
+ "description": "Nagruruta nang walang pagbabago. Nilalaktawan ang engine at ipinapasa ang request nang hindi binabago."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Piliin ang profile ng compression ng OmniGlyph",
"saved": "Nai-save.",
"saveFailed": "Hindi mai-save.",
"enableAria": "I-enable ang OmniGlyph engine",
@@ -8845,7 +8856,7 @@
"cancel": "Kanselahin",
"install9Router": "I-install ang 9Router",
"install9RouterDescription": "Nagda-download at nag-i-install ng 9Router sa pamamagitan ng npm. Nangangailangan ng humigit-kumulang 500 MB na espasyo sa disk.",
- "version": "Version",
+ "version": "Bersyon",
"versionHint": "Ilagay ang “latest” o isang partikular na bersyon (halimbawa, 1.2.3).",
"servicePort": "Port",
"servicePortHint": "Dapat gumamit ng magkaibang port ang OmniRoute at 9Router. Ang default na port ng 9Router ay 20130.",
@@ -8878,7 +8889,7 @@
"download": "I-download",
"noLogs": "Wala pang log output.",
"logStreamFailed": "Hindi ma-stream ang mga log ng {name}. Suriin ang lokal na access at status ng serbisyo.",
- "fallbackRouting": "Fallback Routing",
+ "fallbackRouting": "Fallback na Pagruruta",
"fallbackRoutingDescription": "Subukang muli ang mga nabigong request sa provider sa pamamagitan ng CLIProxyAPI",
"enableFallback": "I-enable ang fallback",
"cliproxyUrl": "URL ng CLIProxyAPI",
@@ -8886,7 +8897,7 @@
"invalidUrl": "Di-wastong URL — dapat magsimula sa http:// o https://",
"saved": "Nai-save",
"saveFailed": "Hindi ma-save ang setting",
- "modelMapping": "Model Mapping",
+ "modelMapping": "Pagmamapa ng Modelo",
"modelMappingDescription": "I-map ang mga OmniRoute model ID sa mga CLIProxyAPI model ID (halimbawa, https://ghe.yourcompany.com).",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Ikonekta ang Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Mag-login gamit ang Cursor",
+ "tabImport": "Mag-import ng token",
+ "loginDescription": "Binubuksan ang browser login ng Cursor. Gumagana sa Docker — aprubahan ito sa browser ng iyong host, pagkatapos ay bumalik dito.",
+ "loginWithCursor": "Mag-login gamit ang Cursor",
+ "startingLogin": "Nagsisimula…",
+ "waitingApproval": "Naghihintay ng pag-apruba sa pag-login sa Cursor…",
+ "openUrlHint": "Kung hindi bumukas ang browser:",
+ "openLoginLink": "Buksan ang pahina ng pag-login",
+ "cancelLogin": "Kanselahin ang pag-login",
"autoDetecting": "Awtomatikong pagtukoy ng mga token...",
"readingFromCursor": "Pagbabasa mula sa Cursor IDE o cursor-agent",
"tokensAutoDetected": "Ang mga token ay matagumpay na na-auto-detect mula sa Cursor IDE!",
"cursorNotDetected": "Hindi nakita ang cursor IDE. Mangyaring manu-manong i-paste ang iyong token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Gumagana sa Docker? Mas mainam ang Mag-login gamit ang Cursor. Karaniwang hindi available sa loob ng container ang awtomatikong pag-import mula sa IDE at cursor-agent. Tingnan ang docs/providers/CURSOR-DOCKER.md.",
+ "accessToken": "Token sa Pag-access",
+ "refreshToken": "Token sa Pag-refresh",
+ "refreshTokenPlaceholder": "Opsyonal — nagbibigay-daan sa awtomatikong pag-refresh ng token",
"required": "*",
"accessTokenPlaceholder": "Awtomatikong magpo-populate ang token ng access...",
"machineId": "ID ng makina",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Nabigo ang auto-detect na mga token",
"errorEnterToken": "Mangyaring magpasok ng token ng pag-access",
"errorImportFailed": "Nabigo ang pag-import",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Hindi masimulan ang pag-login sa Cursor",
+ "errorLoginPoll": "Nabigo ang pag-login sa Cursor",
+ "errorLoginTimeout": "Nag-timeout ang pag-login sa Cursor — subukan muli"
},
"pricingModal": {
"title": "Configuration ng Pagpepresyo",
@@ -10839,9 +10850,9 @@
"selectProxy": "Piliin ang {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Mag-import ng Legacy",
+ "bulkAssign": "Maramihang Italaga",
+ "addProxy": "Magdagdag ng Proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,21 +10861,21 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Subukan",
+ "edit": "I-edit",
+ "delete": "Tanggalin",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Uri",
"labelFamily": "Pamilya ng IP",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Awtomatiko (dual-stack)",
"familyIpv4": "IPv4 lamang",
"familyIpv6": "IPv6 lamang",
"familyHint": "Pamilya ng egress address. Pinapanatili ng Auto ang dual-stack; ini-pin ng IPv4/IPv6 ang proxy na ito sa pamilyang iyon (pinipigilan ang v4 leak sa ilalim ng IPv6-only na proxy).",
"labelHost": "Host",
"labelPort": "Port",
- "labelUsername": "Username",
+ "labelUsername": "Pangalan ng user",
"labelPassword": "Password",
"labelRegion": "Rehiyon",
"labelStatus": "Katayuan",
@@ -10875,7 +10886,7 @@
"statusInactive": "Hindi aktibo",
"cancel": "Kanselahin",
"save": "I-save",
- "bulkModalTitle": "Bulk Proxy Assignment",
+ "bulkModalTitle": "Maramihang Pagtatalaga ng Proxy",
"bulkLabelScope": "Saklaw",
"bulkLabelProxy": "Proxy",
"bulkClearAssignment": "(I-clear ang assignment)",
@@ -10884,10 +10895,10 @@
"bulkApply": "Mag-apply",
"labelScope": "Saklaw",
"labelProxy": "Proxy",
- "scopeGlobal": "global",
- "scopeProvider": "provider",
+ "scopeGlobal": "pangkalahatan",
+ "scopeProvider": "tagapagbigay",
"scopeAccount": "account",
- "scopeCombo": "combo",
+ "scopeCombo": "kumbinasyon",
"bulkImportErrorMissingName": "Nawawala ang NAME",
"bulkImportErrorMissingHost": "Nawawala ang HOST",
"bulkImportErrorInvalidPort": "Di-wastong PORT (dapat ay 1-65535)",
@@ -10902,9 +10913,9 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Nabigo",
"successRate": "{rate}% tagumpay",
- "avgLatency": "{latency}ms average",
+ "avgLatency": "{latency}ms na average",
"assignmentsCount": "{count} mga takdang-aralin",
"noData": "No Data",
"testSuccess": "✓ {ip}",
@@ -10932,7 +10943,7 @@
"bulkImportMaxExceeded": "Maximum na 100 proxy bawat pag-import",
"bulkImportPreview": "Silipin",
"clearAssignment": "(malinaw na takdang-aralin)",
- "bulkProxyAssignment": "Bulk Proxy Assignment",
+ "bulkProxyAssignment": "Maramihang Pagtatalaga ng Proxy",
"testAll": "Subukan Lahat",
"errorTestFailed": "Nabigong subukan ang mga proxy",
"batchSelectedCount": "{count} ang napili",
@@ -10943,20 +10954,23 @@
"managePool": "Pamahalaan ang Pool",
"poolTitle": "Proxy Pool at Rotation",
"poolDescription": "Mag-attach ng maraming proxy sa isang scope at i-rotate ang mga egress IP sa mga ito. Ang isang scope na may iisang proxy ay gumagana nang eksakto tulad ng isang karaniwang assignment.",
- "poolScopeIdLabel": "Scope ID",
- "poolScopeIdPlaceholder": "provider id / connection id / combo id",
+ "poolScopeIdLabel": "ID ng Saklaw",
+ "poolScopeIdPlaceholder": "ID ng tagapagbigay / ID ng koneksyon / ID ng kumbinasyon",
"poolScopeIdRequired": "Kinakailangan ang isang scope ID para sa provider, account, o combo scope.",
"poolLoad": "I-load ang Pool",
"poolLoadFailed": "Hindi na-load ang proxy pool",
"poolStrategyLabel": "Estratehiya sa rotation",
"poolStrategyHint": "ang round-robin ay nagpapaikot ng mga miyembro nang sunod-sunod; ang random ay pumipili nang pantay; ang sticky ay nagpapanatili ng isang miyembro para sa isang window; ang latency-optimized ay pumipili ng pinakamabilis batay sa mga log.",
"poolStrategyFailed": "Hindi na-update ang rotation strategy",
- "strategyRoundRobin": "Round-robin",
- "strategyRandom": "Random",
- "strategySticky": "Sticky",
- "strategyLatency": "Latency-optimized",
+ "strategyRoundRobin": "Salit-salitan",
+ "strategyRandom": "Sapalaran",
+ "strategySticky": "Nakapirmi",
+ "strategyLatency": "In-optimize para sa latency",
"poolMembersLabel": "Mga miyembro ng pool ({count})",
"poolNoMembers": "Wala pang mga proxy sa pool na ito.",
+ "poolEgressObservation": "{exits, plural, one {# exit} other {# exit}} na ginagamit ng {connections, plural, one {# koneksyon} other {# koneksyon}} · hanggang {max} sa isang exit · nakaraang {hours} oras",
+ "poolEgressObservationEmpty": "Walang naobserbahang trapiko sa nakaraang {hours} oras",
+ "poolEgressObservationHint": "Binilang mula sa proxy log sa loob ng saklaw ng oras: mga natatanging egress IP na naobserbahan para sa mga miyembro ng pool na ito, at ang mga koneksyon sa OmniRoute na gumamit sa mga ito. Ang \"Sa isang exit\" ay nangangahulugang sa buong saklaw ng oras, hindi sa parehong sandali. Pansamantalang ihihinto lamang ng per-IP 429 lockout ang mga koneksyon mula sa parehong pamilya ng provider.",
"poolRemove": "Alisin",
"poolRemoveFailed": "Hindi naalis ang proxy mula sa pool",
"poolAddLabel": "Magdagdag ng proxy",
@@ -10969,93 +10983,93 @@
"title": "Title",
"description": "Description",
"endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "provider": "Tagapagbigay",
+ "model": "Modelo",
"accountKey": "Account Key",
"autoAccounts": "Auto ({count} na mga account)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Ipadala",
+ "cancel": "Kanselahin",
+ "audioFile": "File na Audio",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "I-clear Lahat",
+ "request": "Kahilingan",
+ "response": "Tugon",
+ "transcription": "Transkripsyon",
+ "copy": "Kopyahin",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Nakabuo ng {count} na mga larawan",
"generatedImage": "Binuo na larawan {index}",
- "save": "Save",
+ "save": "I-save",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Mga Tugon",
"completions": "Mga Completion",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Mga Embedding",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Mga Moderation",
- "rerank": "Rerank",
+ "rerank": "Muling Pag-ranggo",
"search": "Search",
- "webFetch": "Web fetch"
+ "webFetch": "Pagkuha mula sa web"
},
"conversationalChat": "Pang-usap na Chat",
"clearChat": "I-clear ang chat",
"typeMessagePlaceholder": "Mag-type ng mensahe... (Shift+Enter para sa bagong linya)",
"tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabCompare": "Ihambing",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
+ "tabBuild": "Bumuo",
+ "configPane": "Configuration",
+ "systemPrompt": "Prompt ng system",
+ "systemPromptPlaceholder": "Isa kang matulunging assistant.",
+ "modelPlaceholder": "hal. openai/gpt-4o",
"endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "parametersLabel": "Mga parameter",
+ "collapseConfig": "I-collapse ang pane ng configuration",
+ "expandConfig": "I-expand ang pane ng configuration",
+ "temperature": "Temperatura",
+ "maxTokens": "Pinakamaraming token",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Penalty sa presensya",
+ "frequencyPenalty": "Penalty sa dalas",
"reasoningLabel": "Pangangatwiran",
"thinking": "Pag-iisip",
- "effort": "Effort",
- "effortDefault": "Default",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "effort": "Antas ng pagsisikap",
+ "effortDefault": "Paunang-takda",
+ "seedPlaceholder": "Random (iwanang walang laman)",
+ "presetsLabel": "Mga preset",
+ "loadPreset": "Mag-load ng preset",
+ "savePreset": "I-save ang preset",
+ "noPresets": "Walang mga preset",
+ "presetNamePlaceholder": "Pangalan ng preset",
+ "savingPreset": "Sine-save…",
+ "nameRequired": "Kinakailangan ang pangalan",
+ "failedToSavePreset": "Hindi na-save ang preset",
+ "improvePrompt": "Pagandahin ang prompt",
+ "improvingPrompt": "Pinapaganda…",
+ "improvePromptTitle": "Pagandahin ang iyong prompt gamit ang AI",
+ "setModelFirst": "Magtakda muna ng modelo",
"setModelInConfigFirst": "Magtakda muna ng modelo sa Config pane.",
"improvePromptFailed": "Bigo ang pagpapahusay sa prompt.",
"improvePromptAria": "Pahusayin ang prompt gamit ang AI",
"confirmImprovePrompt": "Kumpirmahin ang pagpapahusay sa prompt",
"improvePromptDescription": "Ipapadala nito ang iyong kasalukuyang system prompt sa solo.trae.ai, buksan ang DevTools → Network, magpadala ng anumang mensahe sa chat, at kopyahin ang JWT mula sa Authorization: Cloud-IDE-JWT {tokenPlaceholder} na request header. Ang buhay ng JWT ay ~14 na araw. Ang mga opsyonal na identity fields ay nagmumula sa common_params sa parehong request body.",
- "accessTokenLabel": "Access Token (Cloud-IDE-JWT)",
+ "accessTokenLabel": "Token sa Pag-access (Cloud-IDE-JWT)",
"webId": "Web ID",
"optional": "opsyonal",
"bizUserId": "ID ng Biz User",
@@ -13860,7 +13893,7 @@
"close": "Isara",
"model": "Modelo",
"key": "Susi",
- "defaultKey": "default",
+ "defaultKey": "paunang-takda",
"clearConversation": "I-clear ang pag-uusap",
"clear": "I-clear",
"tabs": {
@@ -13894,15 +13927,15 @@
"close": "Isara ang proxy detail modal",
"time": "Oras",
"latency": "Pagkaantala",
- "clientIp": "Client IP",
+ "clientIp": "IP ng Kliyente",
"proxy": "Proxy",
"direct": "Direkta",
"type": "I-type",
"level": "Antas",
"provider": "Tagapagbigay",
- "tlsFingerprint": "TLS Fingerprint",
+ "tlsFingerprint": "Fingerprint ng TLS",
"directNative": "Direkta",
- "targetUrl": "Target URL",
+ "targetUrl": "Target na URL",
"error": "Error",
"configuration": "Konfigurasyon ng Proxy"
},
@@ -13934,25 +13967,25 @@
"metadata": {
"compressionTitle": "Pagsisikip",
"compressionDescription": "I-configure ang mga setting ng compression ng konteksto upang mabawasan ang paggamit ng token at mga gastos.",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — Mga Relay Proxy",
"relayDescription": "Serverless relay proxy endpoints para sa iyong AI infrastructure",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Inspektor ng Trapiko — OmniRoute",
"trafficInspectorDescription": "I-monitor ang mga tawag sa LLM + i-debug ang HTTPS na trapiko ng anumang aplikasyon"
},
"conductor": {
- "title": "Conductor — CLI-agent fleet",
+ "title": "Conductor — fleet ng CLI-agent",
"subtitle": "OmniConductor hub: mga runner, pila ng gawain at mga konseho, live",
"runners": "Mga Tumakbo",
"tasks": "Mga Gawain",
"colName": "Pangalan",
- "colClis": "CLIs",
+ "colClis": "Mga CLI",
"colStatus": "Katayuan",
"colTask": "Gawain",
- "colMode": "Mode",
- "colRunner": "Runner",
+ "colMode": "Paraan",
+ "colRunner": "Tagapagpatakbo",
"colSummary": "Buod",
- "online": "online",
- "offline": "offline",
+ "online": "nakakonekta",
+ "offline": "hindi nakakonekta",
"draining": "nawawalan ng laman",
"hubOffline": "Naka-offline ang conductor hub o hindi naka-configure (CONDUCTOR_HUB_URL) — walang ipinapakita kundi luma na data.",
"noRunners": "Walang nakarehistrong runner",
@@ -13968,7 +14001,7 @@
"cancelConfirmMessage": "Ang hub ay ititigil ang pagpapatupad sa runner. Ito ay hindi maibabalik.",
"cancelFailed": "Tinanggihan ng hub ang pagkansela",
"close": "Isara",
- "error": "Error",
+ "error": "Pagkakamali",
"faroTitle": "Faro — tagapagsalita ng fleet",
"faroSubtitle": "Chat at boses, nakabatay sa mga totoong kaganapan ng fleet. Ang mga nakasisirang utos ay palaging humihingi ng kumpirmasyon.",
"faroEmpty": "Tanungin ang tungkol sa fleet — hal. \"kamusta ang fleet?\"",
@@ -13993,7 +14026,7 @@
"title": "Orkestrasyon",
"description": "Lahat ng pinapatakbo ng OmniRoute ngayon — mga ahente, fleet, at routing",
"tabAgents": "Mga Ahente",
- "tabRouting": "Routing",
+ "tabRouting": "Pagruruta",
"tabOverview": "Pangkalahatang-ideya",
"tabHistory": "Kasaysayan",
"historyEmpty": "Walang natapos na run sa saklaw na ito",
@@ -14018,11 +14051,11 @@
"filterSources": "Mga Pinagmulan",
"filterProviders": "Mga Provider",
"clearFilters": "I-clear ang mga filter",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Ahente sa Cloud",
"sourceA2A": "A2A",
"sourceConductor": "Konduktor",
"sourceStale": "Luma na simula {since}",
- "sourceOffline": "Offline",
+ "sourceOffline": "Walang koneksyon",
"sourceCollapse": "I-collapse",
"sourceExpand": "I-expand",
"stateQueued": "Nakapila",
@@ -14038,7 +14071,7 @@
"emptyA2ACta": "Buksan ang A2A",
"emptyConductorCta": "Buksan ang Konduktor",
"drawerObjective": "Layunin",
- "drawerTimeline": "Timeline",
+ "drawerTimeline": "Kronolohiya",
"drawerMetrics": "Mga Sukatan",
"drawerResult": "Resulta",
"drawerMemory": "Ginamit na memory",
@@ -14048,17 +14081,17 @@
"actionApprove": "Aprubahan ang plano",
"actionCancel": "Kanselahin",
"actionSeeInGraph": "Tingnan sa graph",
+ "actionRepeat": "Ulitin",
"actionDone": "Naisagawa ang aksyon",
"actionFailed": "Nabigo ang aksyon: {error}",
"detailFailed": "Nabigong i-load ang mga detalye: {error}",
"mirroredInA2A": "Naka-mirror sa A2A",
- "actionRepeat": "Ulitin",
"repeatConfirm": "I-click ulit para kumpirmahin",
"repeatDone": "Ginawa ang bagong run",
"repeatUnavailable": "Hindi available ang orihinal na input"
},
"cliproxyProviderExposure": {
- "title": "Provider Exposure",
+ "title": "Pagkakalantad ng Provider",
"description": "I-expose ang mga modelo ng CLIProxyAPI bilang isang routing target sa ilalim ng --permission-mode auto narzędzia Claude Code za pomocą syntetycznej odpowiedzi zezwalającej, aby trasy zapasowe nie blokowały dostępu. Domyślnie wyłączone.",
"classifierCompatCycle": "Cykl: wyłączone → auto → zawsze",
"classifierCompatLoadFailed": "Nie udało się załadować ustawienia",
"classifierCompatMode": {
"off": "Wyłączone",
- "auto": "Auto",
+ "auto": "Automatycznie",
"always": "Zawsze"
},
"ccDiscoveryInfoButton": "Jak włączyć odkrywanie w Claude Code",
@@ -2862,10 +2866,10 @@
"failed": "Nie powiodło się",
"resetDone": "Zresetowano!",
"omnirouteConfiguredOpenAiCompatible": "OmniRoute jest skonfigurowany jako provider zgodny z OpenAI",
- "provider": "Provider",
+ "provider": "Dostawca",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
+ "providers": "Dostawcy",
+ "auth": "Uwierzytelnianie",
"noApiKeysAvailable": "Brak dostępnych kluczy API",
"usingDefaultOmniroute": "Używanie domyślnego: sk_omniroute",
"updateConfig": "Aktualizuj konfigurację",
@@ -2919,8 +2923,8 @@
"grok-build": "Agent programistyczny TUI xAI Grok Build z obsługą niestandardowych dostawców",
"droid": "Asystent AI Factory Droid",
"openclaw": "Asystent AI Open Claw",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "cline": "Asystent programowania AI Cline CLI",
+ "kilo": "Asystent AI Kilo Code CLI",
"qwen": "Qwen Code CLI",
"cursor": "Edytor kodu Cursor AI",
"continue": "Asystent AI Continue",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI autonomicznego agenta kodującego Open Interpreter",
"omp": "Agent kodujący w terminalu Oh My Pi",
"letta": "Agent CLI Letta z trwałą pamięcią i obsługą narzędzi",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — samodoskonalące się środowisko programistyczne RLM z obsługą dostawców zgodnych z OpenAI",
"warp": "Terminal Warp AI ze wsparciem dla niestandardowych dostawców",
"agent-deck": "Orkiestrator wieloagentowy Agent Deck",
"5dive": "5dive — samodzielnie hostowana flota agentów kodujących; jeden profil auth kieruje je wszystkie do OmniRoute"
@@ -2967,10 +2971,10 @@
"desc": "Włącz opcję \"OpenAI API key\""
},
"3": {
- "title": "Base URL"
+ "title": "Bazowy adres URL"
},
"4": {
- "title": "API Key"
+ "title": "Klucz API"
},
"5": {
"title": "Dodaj Custom Model",
@@ -2988,7 +2992,7 @@
"desc": "Otwórz plik konfiguracyjny Continue"
},
"2": {
- "title": "API Key"
+ "title": "Klucz API"
},
"3": {
"title": "Wybierz model"
@@ -3009,7 +3013,7 @@
"desc": "Zainstaluj przez npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Klucz API"
},
"3": {
"title": "Ustaw Base URL",
@@ -3035,11 +3039,11 @@
"desc": "Przejdź do Settings → AI Provider"
},
"2": {
- "title": "Base URL",
+ "title": "Bazowy adres URL",
"desc": "Wklej URL swojego endpoint OmniRoute"
},
"3": {
- "title": "API Key"
+ "title": "Klucz API"
},
"4": {
"title": "Wybierz model"
@@ -3060,11 +3064,11 @@
"desc": "Wybierz \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Bazowy adres URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "Klucz API",
"desc": "Wybierz swój API key OmniRoute"
},
"5": {
@@ -3155,11 +3159,11 @@
"hermesRolesWillUpdate": "{count, plural, one {# rola zostanie zaktualizowana} few {# role zostaną zaktualizowane} many {# ról zostanie zaktualizowanych} other {# roli zostanie zaktualizowanych}}",
"hermesPreviewPath": "Podgląd — zapisze do ~/.hermes/config.yaml",
"hermesSaveDescription": "Zapisuje wybrany model dla każdej roli w",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "Generator konfiguracji GitHub Copilot",
"copilotGeneratorDescriptionPrefix": "Generuje",
"copilotGeneratorDescriptionSuffix": "blok dla VS Code GitHub Copilot przy użyciu wzorca dostawcy Azure. Wybierz modele, które chcesz, a następnie skopiuj kod JSON do pliku konfiguracyjnego.",
"copilotCompatibilityWarning": "Ta konfiguracja używa obejścia dostawcy Azure dla niestandardowych list modeli. Przetestowano z thinking).",
"paramFiltersBlockedLabel": "Zablokowane parametry",
"paramFiltersBlockedHint": "Te parametry są usuwane z wychodzących żądań (lista blokowanych).",
@@ -5530,18 +5537,18 @@
"interceptFetchHint": "Przepisywanie natywnych wywołań narzędzi web_fetch do /v1/web/fetch w OmniRoute.",
"interceptionLoadError": "Nie udało się załadować ustawień przechwytywania: {error}",
"interceptionSaveError": "Nie udało się zapisać ustawień przechwytywania: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
+ "ccAliasSectionTitle": "Udostępnij w Claude Code (claude/…)",
+ "ccAliasSectionHint": "Udostępniaj modele tego dostawcy pod lustrzanymi identyfikatorami claude/<provider>/<model>, aby mechanizm wykrywania modeli bramy Claude Code mógł je wyświetlać. Domyślnie wyłączone — włączenie tej opcji podwaja liczbę wpisów w katalogu dla wszystkich klientów.",
+ "ccAliasProviderLevelLabel": "Domyślne ustawienie dostawcy",
+ "ccAliasModelOverridesLabel": "Nadpisania dla poszczególnych modeli",
+ "ccAliasModelOverrideAriaLabel": "Nadpisanie dla {modelId}",
+ "ccAliasStateInherit": "Dziedzicz",
+ "ccAliasStateOn": "Wł.",
+ "ccAliasStateOff": "Wył.",
+ "ccAliasAddModelPlaceholder": "Identyfikator modelu (np. gpt-4o)",
+ "ccAliasAddModelButton": "Dodaj nadpisanie",
+ "ccAliasLoadError": "Nie udało się wczytać ustawień aliasów wykrywania: {error}",
+ "ccAliasSaveError": "Nie udało się zapisać ustawienia aliasu wykrywania: {error}",
"compatUpstreamHeadersLabel": "Dodatkowe nagłówki upstream",
"compatUpstreamHeadersHint": "Ustawienie o wysokich uprawnieniach — ten sam poziom zaufania, co edycja danych uwierzytelniających API dla provider; powinno być używane wyłącznie przez zaufanych administratorów. Scalane po dodaniu autoryzacji przez OmniRoute na podstawie klucza API dla provider. Jeśli niestandardowy nagłówek ma taką samą nazwę jak istniejący (np. Authorization), wprowadzona wartość w pełni zastępuje automatycznie wygenerowany nagłówek (w tym Bearer token) — upstream zobaczy tylko wpisaną wartość, a nie klucz z ustawień. Błędna konfiguracja może spowodować błąd 401 lub uszkodzenie autoryzacji upstream. Jeden wiersz na nagłówek (np. dodatkowe Authentication dla niektórych bramek). Najedź myszą lub kliknij pole, aby wyświetlić podgląd. Zapisuje się po utracie fokusu (blur), kliknięciu poza obszarem lub zamknięciu tego panelu.",
"compatUpstreamHeaderName": "Nazwa nagłówka",
@@ -5586,7 +5593,7 @@
"editConnection": "Edytuj połączenie",
"accountName": "Nazwa konta",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "Kontrola kondycji (min)",
"healthCheckHint": "Interwał proaktywnego odświeżania token. 0 = wyłączone.",
"deselectAllModels": "Odznacz wszystkie",
"modelsActiveCount": "{active}/{total} aktywnych",
@@ -5602,7 +5609,7 @@
"testModelIdLabel": "ID model (opcjonalnie)",
"testModelIdPlaceholder": "np. my-model-id",
"testModelIdHint": "Jeśli provider nie posiada endpoint /models, wprowadź ID model, aby dokonać weryfikacji przez /chat/completions.",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
+ "compatibleProdPlaceholder": "Zgodny z {type} (Prod)",
"tokenRefreshed": "Pomyślnie odświeżono token",
"tokenRefreshFailed": "Odświeżenie token nie powiodło się",
"cursorSessionUnchanged": "Sesja już jest aktualna",
@@ -5686,8 +5693,8 @@
"codexAuthApplyFailed": "Nie udało się zastosować pliku Codex auth.json lokalnie",
"codexAuthExported": "Plik Codex auth.json został wyeksportowany",
"codexAuthExportFailed": "Nie udało się wyeksportować pliku Codex auth.json",
- "codexCliGuideButton": "Codex CLI Guide",
- "codexCliGuideTitle": "Codex CLI Guide",
+ "codexCliGuideButton": "Przewodnik po Codex CLI",
+ "codexCliGuideTitle": "Przewodnik po Codex CLI",
"codexCliGuideLoading": "Ładowanie przewodnika...",
"codexCliGuideLoadFailed": "Nie udało się załadować przewodnika.",
"codexExternalLinkButton": "Zewnętrzny link Codex",
@@ -5750,7 +5757,7 @@
"accountConcurrencyCapHint": "Maksymalna liczba współbieżnych żądań, jaką może obsłużyć to połączenie/konto. Konta subskrypcyjne zazwyczaj pozwalają tylko na kilka (1–3) — przekroczenie limitu powoduje błędy 429 i cooldowny. Pozostaw puste dla wartości domyślnej.",
"accountConcurrencyCapLabel": "Limit współbieżności konta",
"accountIdHint": "Wymagane przez niektórych providers (np. Cloudflare Workers AI) wraz z tokenem API.",
- "accountIdLabel": "Account ID",
+ "accountIdLabel": "Identyfikator konta",
"accountIdPlaceholder": "ID konta provider",
"addAnotherApiKey": "Dodaj kolejny klucz API lub wklej wiele kluczy",
"addCcCompatible": "Dodaj CC Compatible",
@@ -5764,9 +5771,9 @@
"apiRegionInternational": "Międzynarodowy region API",
"apiRegionLabel": "Region API",
"apikey": "Klucz API",
- "audio": "Audio",
+ "audio": "Dźwięk",
"audioProvidersHeading": "Nagłówek Audio Providers",
- "cloudAgentProviders": "Cloud Agent Providers",
+ "cloudAgentProviders": "Dostawcy agentów chmurowych",
"audioShortLabel": "Audio",
"azureOpenAiBaseUrlHint": "Wskazówka dotycząca bazowego URL Azure OpenAI",
"bailianBaseUrlHint": "Wskazówka dotycząca bazowego URL Bailian",
@@ -5794,10 +5801,10 @@
"ccCompatibleSummarizeThinkingDescription": "Dodaje `display: \"summarized\"` do żądań myślenia CC Compatible, aby obsługiwane models Claude przesyłały strumieniowo widoczne delty myślenia.",
"ccCompatibleSummarizeThinkingLabel": "Włącz wyświetlanie podsumowanego myślenia",
"ccCompatibleDetailsTitle": "Szczegóły CC-compatible relay",
- "ccCompatibleLabel": "CC Compatible",
+ "ccCompatibleLabel": "Zgodny z CC",
"ccCompatibleModelsDescription": "CC-compatible relays nie udostępniają listy models. Dodaj model IDs Claude, które akceptuje ten relay.",
"ccCompatibleNameHint": "Nazwa wyświetlana dla tego przekaźnika tylko dla Claude Code.",
- "ccCompatibleNamePlaceholder": "CC Relay Production",
+ "ccCompatibleNamePlaceholder": "Przekaźnik CC — środowisko produkcyjne",
"ccCompatiblePrefixHint": "Używane w aliasach models, takich jak prefix/model-id.",
"ccCompatiblePrefixPlaceholder": "cc",
"ccCompatibleValidationHint": "Używaj tego provider tylko dla relays, które obsługują wyłącznie klientów Claude Code. OmniRoute przepisuje każde przychodzące żądanie na format zgodny z Claude Code, aby te relays mogły je zaakceptować. Jeśli chcesz używać tylko Claude Code CLI lub nie masz pewności, co oznacza ten typ przekaźnika, użyj zamiast tego zwykłego provider kompatybilnego z Anthropic.",
@@ -5858,26 +5865,26 @@
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "CLI",
"codexFastTierActiveChip": "Klasa usług (tier) Codex Fast jest aktywna",
- "tierFast": "Fast",
- "antigravityProjectIdLabel": "Google Cloud Project ID",
+ "tierFast": "Szybkie",
+ "antigravityProjectIdLabel": "Identyfikator projektu Google Cloud",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
"grokWebCookiePlaceholder": "Wpisz ciasteczko sieciowe Grok",
"herokuBaseUrlHint": "Wskazówka dotycząca bazowego URL Heroku",
"hideEmail": "Ukryj adres e-mail",
- "imageProviders": "Image Providers",
+ "imageProviders": "Dostawcy obrazów",
"videoProviders": "Generowanie wideo",
"embeddingRerankProviders": "Embeddings i Rerank",
"imagesShortLabel": "Obrazy",
"llmProviders": "LLM Providers",
"localProviderApiKeyOptionalHint": "Wskazówka: klucz API dla lokalnego provider jest opcjonalny",
"localProviderBaseUrlHint": "Wskazówka dotycząca bazowego URL lokalnego provider",
- "localProviders": "Local Providers",
+ "localProviders": "Dostawcy lokalni",
"maxConcurrentWholeNumberError": "Błąd: maksymalna współbieżność musi być liczbą całkowitą",
"m365TierLabel": "Klasa usług (tier) Copilot",
"m365TierHint": "Wybierz obszar (surface) Microsoft 365 Copilot, którego ma używać to połączenie. Individual to domyślny konsumencki BizChat; Education oraz Enterprise (work) wybierają obszary swoich dzierżaw (tenants).",
"m365TierIndividualOption": "Individual (domyślny)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "Edukacja",
+ "m365TierEnterpriseOption": "Firma / praca",
"tierOverrideLabel": "Nadpisanie poziomu",
"tierOverrideAuto": "Automatycznie (decyduje routing)",
"tierOverrideFree": "Bezpłatny",
@@ -5890,7 +5897,7 @@
"openCliTools": "Otwórz narzędzia CLI",
"openSettings": "Otwórz ustawienia",
"openaiResponsesStoreDescription": "Zezwalaj kompatybilnym żądaniom Responses API na zachowanie zapisanego stanu odpowiedzi.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
+ "openaiResponsesStoreLabel": "Magazyn OpenAI Responses",
"perplexitySearchSharedKeyInfo": "Informacje o udostępnionym kluczu wyszukiwania Perplexity Search",
"perplexityWebCookieHint": "Wskazówka dotycząca ciasteczka sieciowego Perplexity",
"perplexityWebCookiePlaceholder": "Wpisz ciasteczko sieciowe Perplexity",
@@ -5900,8 +5907,8 @@
"rateLimitOverridesSection": "Nadpisania limitów szybkości (rate limit)",
"rateLimitOverridesMaxConcurrentHint": "Nadpisanie maksymalnej współbieżności żądań dla tego połączenia. Nadpisuje limit na poziomie konta.",
"rateLimitOverridesMaxConcurrentLabel": "Maks. współbieżność (rate limit)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Maksymalny czas (ms), przez jaki żądanie może oczekiwać na miejsce w limicie szybkości przed niepowodzeniem. Zastępuje globalne ustawienie odporności tylko dla tego połączenia.",
+ "rateLimitOverridesMaxWaitMsLabel": "Maks. czas oczekiwania w kolejce (ms)",
"rateLimitOverridesMinTimeHint": "Minimalny czas (ms) między żądaniami. Nadpisuje domyślne opóźnienie rate limiter.",
"rateLimitOverridesMinTimeLabel": "Min. odstęp (ms)",
"rateLimitOverridesRpdHint": "Maksymalna liczba żądań dziennie dla tego połączenia. Nadpisuje wartość domyślną dostawcy.",
@@ -5933,10 +5940,10 @@
"sessionCookieLabel": "Etykieta cookie sesji",
"showEmail": "Pokaż e-mail",
"snowflakeBaseUrlHint": "Wskazówka bazowego URL Snowflake",
- "supportedEndpointAudio": "Audio",
- "supportedEndpointChat": "Chat",
- "supportedEndpointEmbeddings": "Embeddings",
- "supportedEndpointImages": "Images",
+ "supportedEndpointAudio": "Dźwięk",
+ "supportedEndpointChat": "Czat",
+ "supportedEndpointEmbeddings": "Osadzenia",
+ "supportedEndpointImages": "Obrazy",
"supportedEndpointsLabel": "Obsługiwane endpoints",
"tagGroupHint": "Wskazówka grupy tagów",
"tagGroupLabel": "Etykieta grupy tagów",
@@ -5952,12 +5959,12 @@
"tokenShort": "Token",
"totalKeysRotating": "{count, plural, one {1 rotujący klucz} other {# rotujących kluczy}}",
"unhideModel": "Pokaż model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "upstreamProxyProviders": "Dostawcy nadrzędnych serwerów proxy",
"validationModelIdHint": "Model używany do weryfikacji klucza API. Pozostaw puste, aby użyć pierwszego dostępnego model dla provider.",
"validationModelIdLabel": "Model weryfikacyjny",
"validationModelIdPlaceholder": "np. meta-llama/llama-3.1-8b-instruct",
"vertexServiceAccountPlaceholder": "Wklej Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) lub OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
+ "webCookieProviders": "Dostawcy korzystający z ciasteczek WWW",
"weeklyShort": "Tygodniowo",
"xiaomiMimoBaseUrlHint": "Wskazówka bazowego URL Xiaomi Mimo",
"globalCodexServiceMode": "Globalny tryb usługi Codex",
@@ -5974,7 +5981,7 @@
"zedImportHint": "Wskazówka importu Zed",
"zedImportNetworkError": "Błąd sieci przy imporcie Zed",
"zedImportNone": "Brak importu Zed",
- "zedImportSuccess": "Imported {credentials} credential(s) from Zed for {providers} provider(s)",
+ "zedImportSuccess": "Zaimportowano dane uwierzytelniające ({credentials}) z Zed dla dostawców ({providers})",
"zedImporting": "Importowanie Zed",
"zedNoCredentials": "Nie znaleziono danych uwierzytelniających Zed w pęku kluczy",
"zedUnsupportedCredentials": "Znaleziono {count} danych uwierzytelniających w pęku kluczy, ale żadne nie pasowały do obsługiwanych dostawców",
@@ -6002,18 +6009,18 @@
"grokConnectionName": "Nazwa połączenia (opcjonalnie)",
"grokSaving": "Zapisywanie…",
"grokSaveConnection": "Zapisz połączenie",
- "freeTierProviders": "Free Tier Providers",
+ "freeTierProviders": "Dostawcy z darmowym planem",
"freeTierLabel": "Dostępny darmowy poziom",
"freeTierProvidersDesc": "Providers z darmowymi poziomami — niektóre wymagają rejestracji klucza API, inne nie wymagają żadnych danych uwierzytelniających.",
"providerSummaryAll": "Suma",
- "ideProviders": "IDE Providers",
+ "ideProviders": "Dostawcy IDE",
"ideProvidersDesc": "Edytory z wbudowaną subskrypcją AI. Użyj strony provider, aby zaimportować dane uwierzytelniające bezpośrednio z pęku kluczy IDE.",
"noIdeProviders": "Żadne IDE providers nie pasują do aktualnych filtrów.",
"providerDetailFastTierTooltip": "Domyślnie zastosuj poziom Codex Fast dla wszystkich połączeń Codex",
"providerDetailFastDefaultLabel": "Domyślny Fast",
"providerDetailBrowserManualConnect": "Połączenie przez przeglądarkę/ręczne",
- "providerDetailAuthUrl": "Auth URL",
- "providerDetailCallbackUrl": "Callback URL",
+ "providerDetailAuthUrl": "Adres URL uwierzytelniania",
+ "providerDetailCallbackUrl": "Adres URL wywołania zwrotnego",
"providerDetailValidClaudeCredentialsFile": "Prawidłowy plik danych uwierzytelniających Claude",
"providerDetailPathAutoDetectedAllOs": "Ścieżka jest wykrywana automatycznie dla każdego systemu operacyjnego (Linux/Mac/Windows).",
"providerDetailMyClaudeAccountPlaceholder": "Moje konto Claude",
@@ -6028,9 +6035,9 @@
"claudeImportEntryName": "wpis {number}",
"claudeImportParseError": "błąd parsowania",
"claudeImportNoValidEntries": "Brak prawidłowych wpisów do zaimportowania",
- "webFetch": "Web Fetch",
+ "webFetch": "Pobieranie z sieci",
"webFetchTooltip": "Providers wyodrębniające zawartość z sieciowych URL (HTML → Markdown, pobieranie zawartości, zrzut ekranu)",
- "webFetchProvidersHeading": "Web Fetch Providers",
+ "webFetchProvidersHeading": "Dostawcy pobierania z sieci",
"compatibleProvidersDesc": "Kompatybilne z OpenAI oraz Anthropic endpoints hostowane lub konfigurowane lokalnie. Skieruj dowolny SDK OpenAI na własny URL i kieruj tutaj zapytania.",
"oauthProvidersDesc": "Providers uwierzytelniani przez OAuth — zaloguj się raz, a OmniRoute automatycznie zajmie się rotacją token.",
"webCookieProvidersDesc": "Te providers używają sesji przeglądarki, plików cookie lub web tokens zamiast kluczy API. Otwórz provider, aby dodać wymagane dane uwierzytelniające sesji.",
@@ -6051,7 +6058,7 @@
"onboardingWizardShort": "Kreator onboarding",
"onboardingWizardDescription": "Połącz klucz API, własne kompatybilne oraz OAuth providers z walidacją, trwałością i natychmiastowym testem połączenia.",
"onboardingStepType": "Typ",
- "onboardingStepProvider": "Provider",
+ "onboardingStepProvider": "Dostawca",
"onboardingStepCredentials": "Dane uwierzytelniające",
"onboardingStepResult": "Wynik",
"onboardingTypeApiKeyTitle": "Provider klucza API",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "Zrabatowane proxy API dla ponad 40 modeli, w tym GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5. Pobierz swój klucz API na stronie https://freeaiapikey.com/dashboard. Bazowy adres URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "Odbierz $300 darmowych środków API na stronie https://freemodel.dev — dane płatnicze nie są wymagane. Punkt końcowy zgodny z OpenAI. Dostępne modele GPT-5.4 i GPT-5.5.",
"friendliai": "Bezpłatny pakiet do wnioskowania bezserwerowego — karta kredytowa nie jest wymagana",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Darmowy plan za pośrednictwem Google AI Studio; limity dla poszczególnych modeli nie są już publikowane (sprawdź stronę limitów w AI Studio) — karta kredytowa nie jest wymagana.",
"gigachat": "Połącz z GigaChat (Sber) za pomocą klucza API.",
"gitlab": "Osobisty token dostępu GitLab dla publicznego API Code Suggestions. Skonfiguruj bazowy adres URL dla instancji self-hosted, jeśli nie korzystasz z gitlab.com.",
"gitlawb-gmi": "Pobierz swój klucz API z panelu Gitlawb Opengateway.",
@@ -6180,7 +6187,7 @@
"glm-cn": "Połącz z GLM Coding (China) za pomocą klucza API.",
"glmt": "Wstępnie zdefiniowany profil GLM z większym budżetem tokenów, włączonym myśleniem i dłuższym limitem czasu.",
"getgoapi": "Połącz z GoAPI za pomocą klucza API.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Darmowy plan: limity dla poszczególnych modeli (200K tokenów dziennie na model czatu; limity RPM/RPD znajdziesz na console.groq.com/docs/rate-limits) — bez zapisanej metody płatności.",
"haiper": "Pobierz klucz API na haiper.ai/haiper-api",
"heroku": "Połącz z Heroku AI za pomocą klucza API.",
"hcnsec": "Pobierz klucz API na api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "Utwórz klucz API na https://app.requesty.ai, a następnie wklej go tutaj jako token Bearer. Punkt końcowy zgodny z OpenAI pod adresem https://router.requesty.ai/v1, z aktywnym katalogiem /v1/models.",
"runwayml": "Generowanie wideo w Runway opiera się na zadaniach. OmniRoute przesyła zadania text-to-video lub image-to-video, odpytuje /v1/tasks/[id] i normalizuje gotowe wyniki wideo z powrotem do odpowiedzi w stylu OpenAI /v1/videos/generations.",
"sambanova": "$5 darmowych kredytów przy rejestracji (ważność 30 dni), karta kredytowa nie jest wymagana",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Utwórz klucz API na https://seekai.cc, a następnie wklej go tutaj jako token Bearer. Bazowy adres URL zgodny z OpenAI: https://seekai.cc/v1.",
"sap": "Wykrywanie modeli używa /v2/lm/scenarios/foundation-models/models na AI_API_URL. Żądania czatu używają deploymentUrl/chat/completions i wymagają AI-Resource-Group.",
"sarvam": "Sarvam AI jest zgodny z OpenAI na /v1. OmniRoute bada /v1/models i kieruje ruch czatu do /v1/chat/completions. Modele są dostosowane do języków indyjskich.",
"scaleway": "1M darmowych tokenów dla nowych kont — zgodność z UE/RODO (Paryż), Qwen3 235B i Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "Połącz Claude Code za pomocą istniejącego przepływu OAuth.",
"cline": "Połącz Cline za pomocą istniejącego przepływu OAuth.",
"cursor": "Połącz Cursor IDE za pomocą istniejącego przepływu OAuth.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Połącz Cursor za pomocą klucza API użytkownika (crsr_...) z cursor.com/dashboard/api; sesja IDE nie jest wymagana.",
"github": "Połącz GitHub Copilot za pomocą istniejącego przepływu OAuth.",
"gitlab-duo": "Aplikacja OAuth z zakresami ai_features + read_user. Skonfiguruj GITLAB_DUO_OAUTH_CLIENT_ID i opcjonalnie GITLAB_DUO_OAUTH_CLIENT_SECRET w tej instancji OmniRoute.",
"kilocode": "Połącz Kilo Code za pomocą istniejącego przepływu OAuth.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "Skopiuj wymagane dane uwierzytelniające z własnej domeny provider. W przypadku cookies skopiuj tylko wartość nagłówka Cookie i pomiń Cookie:.",
"webSessionGuideStep3Manual": "Ręczna ścieżka: otwórz narzędzia dewelopera przeglądarki (F12 → Sieć), odśwież stronę, otwórz uwierzytelnione żądanie i skopiuj wartość nagłówka Cookie z nagłówków żądania — pomiń prefiks Cookie:.",
"webSessionGuideStep4": "Wklej tutaj i sprawdź połączenie. Jeśli przestanie działać, zaloguj się ponownie i zastąp nową wartością.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "Importuj plik .har",
+ "harImportButtonBusy": "Importowanie…",
+ "harImportButtonHint": "Wyeksportuj z karty Network w DevTools po wysłaniu co najmniej jednej wiadomości na czacie.",
+ "harImportStatusValid": "Zaimportowano — ważne przez około {minutes} min.",
+ "harImportStatusExpiringSoon": "Zaimportowano — ważne jeszcze tylko przez około {minutes} min.",
+ "harImportStatusExpired": "Zaimportowano, ale ten token wygasł już {minutes} min temu — wyeksportuj nowy plik HAR.",
+ "harImportStatusUnknownExpiry": "Zaimportowano. Nie udało się odczytać terminu ważności.",
+ "harImportErrorNotJson": "Ten plik nie jest prawidłowym plikiem JSON — czy na pewno jest to eksport .har?",
+ "harImportErrorNoEntries": "Ten plik HAR nie zawiera żadnych zarejestrowanych wpisów sieciowych.",
+ "harImportErrorNoChathubUrl": "W tym pliku HAR nie znaleziono połączenia czatu Copilot. Wyślij co najmniej jedną wiadomość na czacie w m365.cloud.microsoft przed wyeksportowaniem.",
+ "harImportErrorUnparsableUrl": "Znaleziono połączenie czatu, ale nie udało się odczytać jego adresu URL.",
+ "harImportErrorMissingFields": "Znaleziono połączenie czatu, ale brakowało w nim tokenu.",
+ "harImportErrorReadFailed": "Nie udało się odczytać tego pliku.",
+ "harImportErrorUnknown": "Nie udało się wyodrębnić danych uwierzytelniających z tego pliku HAR.",
"webSessionSecurityHint": "Należy traktować to jak hasło: może zapewniać dostęp do zalogowanego konta webowego, dopóki nie wygaśnie lub nie zostanie unieważnione.",
"webNoAuthGuideTitle": "Dane uwierzytelniające niewymagane",
"webNoAuthGuideBody": "{provider} nie wymaga klucza API ani cookie. Zapisz połączenie, aby korzystać z jego darmowego web endpoint.",
@@ -6400,7 +6407,7 @@
"batchDeleteNetworkError": "Błąd sieciowy podczas masowego usuwania",
"batchUpdateFailed": "Aktualizacja wsadowa nie powiodła się",
"batchUpdateNetworkError": "Błąd sieciowy podczas aktualizacji wsadowej",
- "categoryAudio": "Audio",
+ "categoryAudio": "Dźwięk",
"categoryCloudAgent": "Agent Chmurowy",
"categoryIde": "IDE",
"categoryLocal": "Lokalny",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Kod polecenia auth wygasł",
"commandCodeConnected": "Kod polecenia połączony",
"commandCodeConnectionAdded": "Dodano połączenie kodu polecenia",
+ "clearConnectionCooldown": "Wyczyść okres oczekiwania",
+ "clearConnectionCooldownInProgress": "Czyszczenie…",
+ "clearConnectionCooldownTitle": "Wyczyść okres oczekiwania teraz — użyj, gdy limit został już odświeżony u dostawcy nadrzędnego",
"commandCodeLinkExpired": "Link do kodu polecenia wygasł",
"commandCodeOpeningStudio": "Otwieranie Command Code Studio…",
"commandCodePopupBlocked": "Popup zablokowany. Proszę zezwolić na wyskakujące okna i spróbować ponownie połączyć kod polecenia.",
"commandCodeStartFailed": "Nie udało się uruchomić polecenia Code auth",
"connectionDeleted": "Połączenie usunięte",
"connectionFallback": "połączenie",
+ "connectionCooldownCleared": "Okres oczekiwania wyczyszczony — połączenie ponownie włączono do routingu",
"coolingConnectionsDescription": "Te połączenia stygną po ostatnim żądaniu. OmniRoute pominie je, aż timer wygaśnie — ręczna dezaktywacja nie jest potrzebna.",
"coolingConnectionsTitle": "Obecnie chłodzenie ({count})",
+ "failedClearConnectionCooldown": "Nie udało się wyczyścić okresu oczekiwania",
"failedDeleteAlias": "Nie udało się usunąć aliasu",
"failedDeleteConnection": "Nie udało się usunąć połączenia",
"failedDistributeProxies": "Nie udało się rozdystrybuować proxy.",
@@ -6442,7 +6454,7 @@
"failedUpdateCliproxyRouting": "Nie udało się zaktualizować routingu CLIProxyAPI",
"failedUpdateCodexLimitPolicy": "Nie udało się zaktualizować polityki limitu Codex",
"failedUpdateCodexServiceMode": "Nie udało się zaktualizować trybu usługi Codex",
- "filterByMedia": "Media",
+ "filterByMedia": "Multimedia",
"freeBadge": "Darmowy",
"kimiCodeApiKeyLabel": "Klucz API Kimi Code",
"modelTestFailed": "Test modelu nie powiódł się",
@@ -6466,20 +6478,15 @@
"savedModelEndpointSettings": "Ustawienia punktu końcowego zapisanego modelu",
"searchByModelAria": "Szukaj według modelu",
"selectSupportedEndpoint": "Wybierz przynajmniej jeden obsługiwany punkt końcowy",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "Ustawienia",
"general": "Ogólne",
"security": "Bezpieczeństwo",
"appearance": "Wygląd",
- "routing": "Routing",
- "cache": "Cache",
+ "routing": "Trasowanie",
+ "cache": "Pamięć podręczna",
"resilience": "Niezawodność",
"description": "Opis",
"enable": "Włącz",
@@ -6547,13 +6554,13 @@
"routingOpStatusSeparator": "·",
"resilienceSettingsIntro": "Automatyczne ponawianie prób, czas schładzania (cooldown) i fallback, gdy providers ulegną awarii.",
"aiSettingsIntro": "Ustawienia specyficzne dla AI dotyczące thinking budget, zachowania models i kompresji.",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "Prompt systemowy",
+ "thinkingBudget": "Budżet rozumowania",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "Proxy HTTP",
"1proxy": "1proxy",
"proxySubTabsAria": "Sekcje proxy",
- "requestBodyLimitTitle": "Request Body Limit",
+ "requestBodyLimitTitle": "Limit treści żądania",
"requestBodyLimitDescription": "Maksymalny rozmiar payload API akceptowany przed sparsowaniem request body. Dedykowane upload routes zachowują co najmniej swój wbudowany limit 100 MB.",
"requestBodyLimitInputLabel": "Limit Request Body w MB",
"requestBodyLimitEmptyError": "Wprowadź limit w MB",
@@ -6578,18 +6585,18 @@
"modelCatalogCacheTtlSaving": "Zapisywanie...",
"modelCatalogCacheTtlSave": "Zapisz",
"modelCatalogCacheTtlCurrent": "Aktualny: {value} ms",
- "mitmProxy": "MITM Proxy",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
+ "mitmProxy": "Proxy MITM",
+ "pricing": "Cennik",
+ "storage": "Pamięć masowa",
+ "policies": "Zasady",
+ "ipFilter": "Filtr IP",
"comboDefaults": "Ustawienia domyślne combo",
"fallbackChains": "Łańcuchy fallback",
"changePassword": "Zmień hasło",
"enablePassword": "Włącz hasło",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
+ "darkMode": "Tryb ciemny",
+ "lightMode": "Tryb jasny",
+ "memoryTitle": "Pamięć",
"memoryDesc": "Trwała pamięć konwersacyjna między sesjami",
"memoryEnabled": "Włącz Memory",
"memoryEnabledDesc": "Po włączeniu OmniRoute wstrzyknie odpowiedni przeszły kontekst.",
@@ -6602,7 +6609,7 @@
"semanticDesc": "Wyszukiwanie wektorowe",
"hybrid": "Hybrydowe",
"hybridDesc": "Ostatnie + Semantyczne",
- "skillsTitle": "Skills",
+ "skillsTitle": "Umiejętności",
"skillsDesc": "Narzędzia dla models",
"skillsEnabled": "Włącz Skills",
"skillsEnabledDesc": "Umożliwia agentom wywoływanie funkcji.",
@@ -6621,7 +6628,7 @@
"justNow": "Przed chwilą",
"modelsDevStats": "Statystyki synchronizacji",
"modelsDevStatsDesc": "Aktualne pokrycie danych models.dev",
- "providers": "Providers",
+ "providers": "Dostawcy",
"modelsWithPricing": "Models z cennikiem",
"capabilities": "Możliwości (capabilities)",
"lastSyncCount": "Liczba przy ostatniej synchronizacji",
@@ -6629,7 +6636,7 @@
"modelsDevInfo": "Jak to działa",
"modelsDevInfoDesc": "models.dev to otwartoźródłowa baza danych specyfikacji AI models utrzymywana przez zespół SST/OpenCode. Zapewnia informacje o cennikach, możliwościach, limitach kontekstu i modalnościach dla ponad 4000 models u ponad 100 providers.",
"modelsDevInfoResolution": "Kolejność rozstrzygania cenników (od najwyższego priorytetu):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsDevInfoOrder": "Nadpisanie użytkownika → models.dev → LiteLLM → domyślna wartość zakodowana na stałe",
"systemTheme": "Motyw systemowy",
"debugToggle": "Włącz tryb debugowania",
"logToolSourcesToggle": "Rejestruj źródła narzędzi (Log Tool Sources)",
@@ -6659,7 +6666,7 @@
"seconds": "sekundy",
"sidebarVisibilityToggle": "Pokaż elementy paska bocznego",
"enableCache": "Włącz cache",
- "cacheTTL": "Cache TTL",
+ "cacheTTL": "TTL pamięci podręcznej",
"maxCacheSize": "Maksymalny rozmiar cache",
"clearCache": "Wyczyść cache",
"cacheCleared": "Pomyślnie wyczyszczono cache",
@@ -6679,28 +6686,28 @@
"loading": "Ładowanie…",
"saving": "Zapisywanie...",
"save": "Zapisz",
- "circuitBreaker": "Circuit Breaker",
+ "circuitBreaker": "Wyłącznik obwodu",
"retryPolicy": "Polityka ponownych prób",
"maxRetries": "Maksymalna liczba ponownych prób",
"retryDelay": "Opóźnienie ponownych prób",
- "timeoutMs": "Timeout (ms)",
+ "timeoutMs": "Limit czasu (ms)",
"enableSystemPrompt": "Włącz prompt systemowy",
"systemPromptText": "Tekst promptu systemowego",
"autoDisableBannedAccounts": "Automatyczne wyłączanie zablokowanych kont",
"autoDisableDescription": "Trwałe oznaczanie połączeń provider jako dezaktywowane, jeśli zwrócą one określone końcowe sygnały blokady (np. HTTP 403 'verify your account'). Spowoduje to usunięcie ich z rotacji combo.",
"autoDisableThreshold": "Próg blokady",
"autoDisableThresholdDesc": "Liczba kolejnych sygnałów blokady wymagana do trwałej dezaktywacji.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedScope": "Zastosuj automatyczną dezaktywację do",
+ "autoDisableBannedScopeDesc": "Stanowiska logowania (płatne subskrypcje i bezpłatne konta) mogą zostać zablokowane przez dostawcę nadrzędnego, jeśli OmniRoute będzie ponawiać próby po nałożeniu blokady. Płatne klucze API typu prepaid nie są narażone na to ryzyko — pozostaw je w puli, aby strategia fill-first mogła użyć następnego klucza.",
+ "autoDisableBannedScopeAll": "Wszystkie połączenia",
+ "autoDisableBannedScopeAllDesc": "Dezaktywuj każde połączenie, które zwraca sygnał trwałej blokady, w tym klucze API typu prepaid.",
+ "autoDisableBannedScopeSubscription": "Tylko konta logowania / subskrypcyjne",
+ "autoDisableBannedScopeSubscriptionDesc": "Dezaktywuj stanowiska OAuth, oparte na plikach cookie, sesjach i logowaniu przez WWW (płatne lub bezpłatne). Klucze API typu prepaid pozostają aktywne, aby routing mógł przełączyć się awaryjnie.",
"customBannedSignals": "Zablokowane słowa kluczowe",
"customBannedSignalsDesc": "Dodatkowe słowa kluczowe wyzwalające wykrywanie trwałej blokady konta. Wbudowane słowa kluczowe mają zawsze zastosowanie.",
"customBannedSignalsPlaceholder": "np. api key revoked",
"noCustomBannedSignals": "Brak niestandardowych słów kluczowych. Aktywne są tylko wbudowane słowa kluczowe.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Struktura odporności",
"resilienceStructureDesc": "Ta strona służy wyłącznie do konfiguracji zachowania. Bieżący stan circuit breaker jest wyświetlany na stronie Health. Konfiguracja retry specyficzna dla combo oraz sterowanie slotami round-robin pozostają w ustawieniach combo.",
"enableThinking": "Włącz thinking",
"maxThinkingTokens": "Maksymalna liczba thinking tokens",
@@ -6746,23 +6753,23 @@
"showCloudflareTunnelDesc": "Pokaż kontrolki Cloudflare Quick Tunnel na stronie Endpoint.",
"showTailscaleFunnel": "Tailscale Funnel",
"showTailscaleFunnelDesc": "Pokaż kontrolki Tailscale Funnel na stronie Endpoint.",
- "showNgrokTunnel": "ngrok Tunnel",
+ "showNgrokTunnel": "Tunel ngrok",
"showNgrokTunnelDesc": "Pokaż kontrolki ngrok Tunnel na stronie Endpoint.",
"sidebarVisibility": "Ukryj elementy paska bocznego",
"sidebarVisibilityDesc": "Ukrywanie dowolnej pozycji nawigacji paska bocznego w celu zmniejszenia natłoku informacji wizualnych, bez wyłączania jakichkolwiek funkcji.",
"sidebarVisibilityHint": "Dowolna sekcja paska bocznego jest ukrywana automatycznie, gdy wszystkie jej pozycje zostaną ukryte.",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "Wszystko",
+ "presetAllDesc": "Pokaż wszystko",
+ "presetEssentials": "Podstawowe",
+ "presetEssentialsDesc": "Ścieżka dla początkujących — zaawansowane narzędzia nadal można wyszukiwać",
+ "presetMinimal": "Minimalny",
+ "presetMinimalDesc": "Tylko strony podstawowe",
+ "presetDeveloper": "Deweloperskie",
+ "presetDeveloperDesc": "Narzędzia deweloperskie i proxy",
+ "presetAdmin": "Administracyjne",
+ "presetAdminDesc": "Monitorowanie i audyt",
+ "settingsSidebarTitle": "Dostosowywanie paska bocznego",
+ "settingsSidebarDesc": "Wybierz elementy wyświetlane na pasku bocznym. W trybie Podstawowe zaawansowane narzędzia nadal można wyszukiwać.",
"hideHealthLogs": "Ukryj logi Health Check",
"hideHealthLogsDesc": "Gdy włączone, ukrywaj komunikaty [HealthCheck] w konsoli serwera.",
"themeAccent": "Kolor motywu",
@@ -6801,7 +6808,7 @@
"size": "Rozmiar",
"hits": "Trafienia",
"evictions": "Usunięcia",
- "loadingCacheStats": "Loading cache stats…",
+ "loadingCacheStats": "Wczytywanie statystyk pamięci podręcznej…",
"globalProxy": "Globalne proxy",
"globalProxyDesc": "Konfiguracja globalnego proxy wychodzącego dla wszystkich wywołań API. Poszczególni providers, combos i klucze mogą to nadpisać.",
"noGlobalProxy": "Brak skonfigurowanego globalnego proxy",
@@ -6901,12 +6908,12 @@
"healthcheckTotal": "Razem",
"healthcheckWorking": "Działające",
"healthcheckFailedLabel": "Nieudane",
- "healthcheckStatus": "Status",
+ "healthcheckStatus": "Stan",
"healthcheckProxyUrl": "URL proxy",
"healthcheckLatency": "Opóźnienie",
"proxyDocumentationScopeTitle": "Rozstrzyganie zakresu proxy",
"proxyDocumentationScopeDescBefore": "OmniRoute ustala proxy wychodzące w kolejności priorytetów:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "kombinacja → konto → dostawca → globalne",
"proxyDocumentationScopeDescAfter": ". Wygrywa najbardziej szczegółowy zakres.",
"proxyDocumentationAddTitle": "Dodawanie niestandardowego proxy",
"proxyDocumentationAddDescBefore": "Przejdź do zakładki",
@@ -6976,11 +6983,11 @@
"thinkingBudgetTitle": "Budżet na thinking",
"thinkingBudgetDesc": "Kontrolowanie zużycia tokens reasoning AI we wszystkich żądaniach.",
"thinkingBudgetIndependenceHint": "Funkcje kompresji, routingu i limitu tokenów działają w każdym trybie. Auto nie oznacza „automatycznego pokazywania myślenia” — usuwa pola rozumowania klienta.",
- "passthrough": "Passthrough",
+ "passthrough": "Przekazywanie bez zmian",
"passthroughDesc": "Brak zmian — klient kontroluje budżet na thinking.",
"thinkingModePassthrough": "Przepuszczenie",
"thinkingModePassthroughDesc": "Zachowaj uzasadnienie klienta bez zmian (wysiłek, podsumowanie, bloki myślenia). Wymagane dla widocznego myślenia Codex/Desktop. Domyślnie.",
- "thinkingModeAuto": "Auto (strip)",
+ "thinkingModeAuto": "Automatycznie (usuń)",
"thinkingModeAutoDesc": "Usuń wszystkie pola myślenia/rozumowania klienta (rozumowanie, wysiłek rozumowania, myślenie Claude'a, konfiguracja myślenia Gemini) i pozwól dostawcy wymyślić domyślne wartości. Można ukryć panele myślenia i przerwać żądania podsumowania klienta.",
"thinkingModeCustom": "Niestandardowy",
"thinkingModeCustomDesc": "Nadpisz każde żądanie stałym budżetem tokenów myślowych, który ustawisz poniżej.",
@@ -6997,7 +7004,7 @@
"effortMedium": "Średni (10K tokens)",
"effortHigh": "Wysoki (128K tokens)",
"tokenBudget": "Budżet tokens",
- "tokens": "tokens",
+ "tokens": "tokeny",
"baseEffortLevel": "Bazowy poziom wysiłku",
"adaptiveHint": "Tryb adaptacyjny skaluje się od tego poziomu bazowego na podstawie liczby komunikatów, użycia narzędzi oraz długości promptu.",
"requireLogin": "Wymagaj logowania",
@@ -7049,33 +7056,33 @@
"routingAdvancedGuideTitle": "Zaawansowane wskazówki dotyczące routingu",
"routingAdvancedGuideHint1": "Ta strategia jest synchronizowana zarówno z nowymi domyślnymi ustawieniami combo, jak i globalnym fallback routingiem kont.",
"routingAdvancedGuideHint2": "Użyj Fill First dla przewidywalnego priorytetu kont, Round Robin oraz Sticky Limit dla pakietów kont, a także P2C dla odporności na opóźnienia.",
- "fillFirst": "Fill First",
+ "fillFirst": "Wypełniaj pierwsze",
"fillFirstDesc": "Używaj kont w kolejności priorytetu",
"roundRobin": "Round Robin",
"roundRobinDesc": "Cykliczne przechodzenie przez wszystkie konta",
"p2c": "P2C",
"p2cDesc": "Wybierz 2 losowe, użyj sprawniejszego",
- "random": "Random",
+ "random": "Losowo",
"randomDesc": "Losowe konto dla każdego żądania",
- "leastUsed": "Least Used",
+ "leastUsed": "Najrzadziej używane",
"leastUsedDesc": "Wybierz najdawniej używane konto",
- "costOpt": "Cost Opt",
+ "costOpt": "Optymalizacja kosztów",
"costOptDesc": "Preferuj najtańsze dostępne konto",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "Round Robin z uwzględnieniem resetu",
"resetAwareDesc": "Preferuj konta ze zdrową pozostałą quota i bliskim czasem resetu",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Ważone limitem",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
+ "strictRandom": "Ściśle losowo",
"strictRandomDesc": "Tasowanie talii — używa każdego konta raz przed ponownym przetasowaniem",
- "stickyLimit": "Sticky Limit",
+ "stickyLimit": "Limit przypisania",
"stickyLimitDesc": "Liczba wywołań na konto przed przełączeniem, gdy globalny fallback kont używa Round Robin",
"routingStrategyTitle": "Strategia routingu",
"routingStrategySubtitle": "Zgodność z 9router: round-robin kont, sticky limits i rotacja combo",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Cyklicznie",
"accountRoundRobinDesc": "Cykliczne przechodzenie przez konta w celu dystrybucji obciążenia",
- "comboRoundRobin": "Combo Round Robin",
+ "comboRoundRobin": "Round Robin kombinacji",
"comboRoundRobinDesc": "Cykliczne przechodzenie przez cele combo zamiast ciągłego rozpoczynania od pierwszego",
- "comboStickyLimit": "Combo Sticky Limit",
+ "comboStickyLimit": "Limit przypisania kombinacji",
"comboStickyLimitDesc": "Liczba wywołań na cel combo przed przełączeniem",
"routingStrategyAccountSummary": "Dystrybucja żądań na konta z limitem {limit} wywołań na konto.",
"routingStrategyFillFirstSummary": "Używanie kont w kolejności priorytetu (Fill First).",
@@ -7085,14 +7092,14 @@
"providerAccountRoutingDesc": "Nadpisz globalną strategię kont dla tego provider (zgodność z 9router).",
"providerRoutingStrategy": "Strategia kont",
"providerRoutingInheritGlobal": "Dziedzicz globalne ustawienie domyślne",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Próg wstępnej kontroli limitu",
+ "quotaPreflightSubtitle": "Pomijaj konta, które wyczerpały limit, przed wysłaniem żądania do serwera nadrzędnego",
+ "quotaPreflightEnable": "Włącz wstępną kontrolę limitu",
+ "quotaPreflightEnableDesc": "Przed każdym żądaniem sprawdź pozostały limit konta (w okresach 5-godzinnym, tygodniowym i miesięcznym). Konta, których limit jest równy progowi lub niższy, są pomijane bez wywołania serwera nadrzędnego. Progi dla poszczególnych okresów ustawione na stronie Limit dostawcy zawsze mają pierwszeństwo przed wartością domyślną ustawioną tutaj.",
+ "quotaPreflightCutoff": "Próg globalny (min. pozostałego %)",
+ "quotaPreflightCutoffDesc": "Przestań używać konta, gdy jego pozostały limit spadnie do tego poziomu procentowego lub poniżej — dla każdego okresu bez własnego progu. Odpowiada paskom pozostałego procentu na stronie Limit dostawcy.",
+ "quotaPreflightWindowsHint": "Ta wartość domyślna nie wpływa na okresy z własnym progiem dla okresu lub dostawcy (ustawionym w oknie Próg na stronie Limit dostawcy).",
+ "quotaPreflightLoadFailed": "Nie można wczytać ustawień wstępnej kontroli limitu.",
"modelAliases": "Aliasy model",
"modelAliasesTitle": "Aliasy model",
"modelAliasesDesc": "Remapuj nazwy model za pomocą dokładnych dopasowań lub wzorców wildcard.",
@@ -7107,7 +7114,7 @@
"enableDegradationHint": "Po włączeniu, zadania w tle, takie jak generowanie tytułów i podsumowań, są automatycznie kierowane do tańszych models",
"tasksDetected": "Wykryte zadania",
"degradationMap": "Mapa degradacji model",
- "premiumModel": "Premium model",
+ "premiumModel": "Model premium",
"cheapModel": "Tani model",
"detectionPatterns": "Wzorce wykrywania",
"newPattern": "np. \"generate a title\"",
@@ -7182,28 +7189,28 @@
"defaultStrategy": "Domyślna strategia",
"defaultStrategyDesc": "Stosowana do nowych combos bez jawnej strategii i synchronizowana z globalnym fallback routingiem kont",
"comboStrategyAria": "Strategia combo",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
+ "priority": "Priorytetowy",
+ "weighted": "Ważony",
+ "contextRelay": "Przekazywanie kontekstu",
"contextRelayDesc": "Routing w stylu Priority z automatycznym przekazywaniem kontekstu (handoffs), gdy następuje rotacja kont",
"maxRetriesLabel": "Maksymalna liczba retries",
"retryDelayLabel": "Opóźnienie retry (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
+ "timeoutLabel": "Limit czasu (ms)",
+ "healthCheck": "Kontrola stanu",
"healthCheckDesc": "Wstępne sprawdzanie dostępności provider",
"trackMetrics": "Śledzenie metryk",
"trackMetricsDesc": "Rejestruj metryki żądań dla każdego combo",
"providerOverrides": "Nadpisania dla Provider",
"providerOverridesDesc": "Nadpisz timeout i retries dla każdego provider. Ustawienia dla Provider nadpisują globalne wartości domyślne.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
+ "providerMaxRetriesAria": "Maksymalna liczba ponowień dla {provider}",
+ "providerTimeoutAria": "Limit czasu dla {provider} w ms",
"removeProviderOverrideAria": "Usuń nadpisanie dla {provider}",
"selectProviderPlaceholder": "Wybierz provider...",
"searchProviderPlaceholder": "Przeszukaj providers...",
"searchProviderAria": "Przeszukaj providers",
"newProviderNamePlaceholder": "np. google, openai...",
"newProviderNameAria": "Nowa nazwa provider",
- "retries": "retries",
+ "retries": "ponowienia",
"ms": "ms",
"saveComboDefaults": "Zapisz domyślne ustawienia Combo",
"maxNestingDepth": "Maksymalna głębokość zagnieżdżenia",
@@ -7216,25 +7223,25 @@
"contextRelayProviderNote": "Context Relay obecnie generuje handoffs dla kont Codex i używa tych wartości jako globalnych ustawień domyślnych dla nowych lub nieskonfigurowanych combos.",
"providerProfiles": "Profile Provider",
"providerProfilesDesc": "Oddzielne ustawienia odporności dla providers typu OAuth (opartych na sesji) oraz API Key (mierzonych). Providers typu OAuth mają bardziej rygorystyczne progi z powodu niższych rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
+ "oauthProviders": "Dostawcy OAuth",
+ "apiKeyProviders": "Dostawcy kluczy API",
+ "transientCooldown": "Czas oczekiwania po błędzie przejściowym",
+ "rateLimitCooldown": "Czas oczekiwania po przekroczeniu limitu żądań",
"maxBackoffLevel": "Maksymalny poziom Backoff",
"cbThreshold": "Próg CB",
"cbResetTime": "Czas resetu CB",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
+ "rateLimiting": "Ograniczanie liczby żądań",
+ "rateLimitingDesc": "Dostawcy kluczy API są automatycznie objęci bezpiecznymi domyślnymi limitami liczby żądań. Limity są ustalane na podstawie nagłówków odpowiedzi i dostosowywane z czasem.",
"defaultSafetyNet": "Domyślny Safety Net",
"rpm": "RPM",
- "minGap": "Min Gap",
+ "minGap": "Minimalny odstęp",
"maxConcurrent": "Maksymalna współbieżność",
"activeLimiters": "Aktywne Limiters",
"noActiveLimiters": "Brak aktywnych rate limiters.",
- "reservoir": "Reservoir",
+ "reservoir": "Pula",
"running": "Uruchomione",
"queued": "W kolejce",
- "circuitBreakers": "Circuit Breakers",
+ "circuitBreakers": "Bezpieczniki",
"breakerStateClosed": "Zamknięty",
"breakerStateOpen": "Otwarty",
"breakerStateHalfOpen": "Półotwarty",
@@ -7325,7 +7332,7 @@
"configured": "skonfigurowano",
"none": "Brak",
"modelOverrideValuePlaceholder": "Wartość liczbowa",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Wartości w języku angielskim oddzielone przecinkami, np. low, medium, high",
"addKeyValue": "Dodaj wartość klucza",
"noModelOverrides": "Brak skonfigurowanych nadpisań dla tego model.",
"modelOverrideLoadFailed": "Nie udało się załadować nadpisań model",
@@ -7339,12 +7346,12 @@
"showAll": "Pokaż wszystko",
"noProvidersMatch": "Brak providers pasujących do wyszukiwania.",
"howPricingWorks": "Jak działa wycena",
- "cacheWrite": "Cache Write",
+ "cacheWrite": "Zapis w pamięci podręcznej",
"unsaved": "niezapisane",
"resetDefaults": "Przywróć domyślne",
"saveProvider": "Zapisz Provider",
"model": "model",
- "models": "models",
+ "models": "modele",
"moreProviders": "{count} kolejnych providers",
"withPricing": "ze skonfigurowaną wyceną",
"policiesCircuitBreakers": "Zasady i circuit breakery",
@@ -7376,7 +7383,7 @@
"themeCoral": "Koralowy",
"adaptiveVolumeRouting": "Adaptacyjny routing wolumenowy",
"adaptiveVolumeRoutingDesc": "Skaluj połączenia dynamicznie w oparciu o wolumen ładunku (payload) i ciśnienie przepustowości.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
+ "lkgpToggleTitle": "Ostatni znany działający dostawca (LKGP)",
"lkgpToggleDesc": "Po włączeniu router zapamiętuje, który provider ostatnio pomyślnie obsłużył odpowiedź i próbuje go w pierwszej kolejności przy kolejnych żądaniach.",
"echoRequestedModelTitle": "Echo nazwy żądanego model w odpowiedziach",
"echoRequestedModelDesc": "Po włączeniu pole `model` w odpowiedzi odzwierciedla nazwę aliasu lub combo, o którą prosił klient, zamiast nazwy model upstream. Rozwiązuje to problem z rygorystycznymi klientami (np. Claude Desktop), którzy odrzucają odpowiedź, której model nie pasuje do żądania.",
@@ -7409,10 +7416,10 @@
"resetUsageFailed": "Nie udało się zresetować danych użycia",
"reset": "Resetuj",
"resetting": "Resetowanie...",
- "contextOpt": "Context Optimized",
+ "contextOpt": "Zoptymalizowane pod kątem kontekstu",
"contextOptDesc": "Wykonuje routing na podstawie wymagań okna kontekstu i długości konwersacji",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
+ "cacheOpt": "Zoptymalizowane pod kątem pamięci podręcznej",
+ "cacheOptDesc": "Utrzymuje ten sam prefiks monitu wielokrotnego użytku na tym samym koncie dostawcy",
"priorityDesc": "Sekwencyjny fallback — próbuje najpierw provider 1, potem provider 2 i tak dalej",
"weightedDesc": "Dystrybuuje ruch według wag procentowych między providers",
"modelRoutingTitle": "Reguły Model Routing",
@@ -7440,7 +7447,7 @@
"pricingSourceUser": "Nadpisanie użytkownika",
"pageDescription": "Zarządzaj ustawieniami aplikacji, aliasami model, wyceną i regułami routingu",
"pricingSyncStatus": "Status synchronizacji",
- "whitelist": "Whitelist",
+ "whitelist": "Biała lista",
"syncDisabled": "Synchronizacja wyłączona",
"pricingLoadFailed": "Nie udało się załadować danych wyceny",
"pricingSyncDescription": "Automatycznie synchronizuj wycenę model z zewnętrznych źródeł, aby zachować dokładność obliczeń kosztów",
@@ -7450,7 +7457,7 @@
"pricingSyncSuccess": "Pomyślnie zsynchronizowano wycenę",
"enableSyncError": "Nie udało się przełączyć synchronizacji wyceny",
"syncEnabled": "Synchronizacja włączona",
- "blacklist": "Blacklist",
+ "blacklist": "Czarna lista",
"pricingSourceModelsDev": "Models.dev",
"syncedModels": "Zsynchronizowane models",
"budget": "Budżet",
@@ -7471,7 +7478,7 @@
"compressionGuidanceHide": "Ukryj szczegóły",
"compressionGuidanceSafeDefault": "Bezpieczna domyślna",
"compressionGuidanceCacheImpact": "Wpływ na cache",
- "tokenSaverTitle": "Token Saver",
+ "tokenSaverTitle": "Oszczędzanie tokenów",
"tokenSaverSubtitle": "Zużywaj mniej tokens przy każdym zapytaniu.",
"tokenSaverToolOutput": "Wyjście narzędzi",
"tokenSaverToolOutputDesc": "Czyszczenie danych wyjściowych git, grep, ls, tree i log, zanim trafią do provider.",
@@ -7484,9 +7491,9 @@
"compressionMode": "Tryb kompresji",
"compressionModeOff": "Wyłączone",
"compressionModeOffDesc": "Brak zastosowanej kompresji",
- "compressionModeLite": "Lite",
+ "compressionModeLite": "Lekki",
"compressionModeLiteDesc": "Redukcja spacji i pustych linii",
- "compressionModeStandard": "Standard (Caveman)",
+ "compressionModeStandard": "Standardowy (jaskiniowy)",
"compressionModeStandardDesc": "Kompresja oparta na regułach z ponad 30 wzorcami, zachowuje bloki kodu i URL",
"compressionModeAggressive": "Agresywny",
"compressionModeAggressiveDesc": "Podsumowanie + kompresja wyników narzędzi + progresywne starzenie dla maksymalnych oszczędności",
@@ -7532,8 +7539,8 @@
"compressionCavemanConfigDesc": "Dostrajanie silnika kompresji opartego na regułach",
"compressionCavemanPanelHint": "Włączenie/wyłączenie oraz poziom ustawia się w panelu:",
"compressionRoles": "Kompresuj role wiadomości",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
+ "compressionRoleUser": "Użytkownik",
+ "compressionRoleAssistant": "Asystent",
"compressionRoleSystem": "System",
"compressionMinLength": "Minimalna długość wiadomości",
"compressionSkipRules": "Pomiń reguły kompresji",
@@ -7545,9 +7552,9 @@
"minutes": "minut",
"compressionModeRtk": "RTK",
"compressionModeRtkDesc": "Filtrowanie danych wyjściowych narzędzi z uwzględnieniem poleceń",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
+ "compressionModeCodexResponses": "Dane wyjściowe narzędzia Responses",
+ "compressionModeCodexResponsesDesc": "Zachowawcza kompresja odpowiednich danych wyjściowych powłoki, poprawek, wyszukiwania, kompilacji i JSON",
+ "compressionModeStacked": "Ułożone warstwowo",
"compressionModeStackedDesc": "Filtrowanie danych wyjściowych narzędzi RTK, a następnie kompresja wiadomości Caveman",
"qdrantTitle": "Qdrant (Pamięć wektorowa)",
"qdrantDesc": "Opcjonalnie. Indeksuje pamięć semantyczną w zewnętrznej wektorowej bazie danych w celu szybszego wyszukiwania.",
@@ -7601,8 +7608,8 @@
"resilienceRequestsPerMinute": "Żądania na minutę",
"resilienceMinTimeBetweenRequests": "Minimalny czas między żądaniami",
"resilienceConcurrentRequests": "Współbieżne żądania",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceConnectionScopeConcurrentRequests": "Równoczesne żądania na połączenie/zakres limitu",
+ "resilienceGlobalConcurrentRequests": "Globalna liczba równoczesnych żądań do usług nadrzędnych (0 = wyłączone)",
"resilienceMaxQueueWaitTime": "Maksymalny czas oczekiwania w kolejce",
"resilienceBaseCooldown": "Bazowy cooldown",
"resilienceUseUpstreamRetryHints": "Używaj wskazówek ponawiania z upstream",
@@ -7618,10 +7625,10 @@
"routingReplaceAllOccurrences": "Zastąp wszystkie wystąpienia",
"routingPatternRegex": "Wzorzec (regex)",
"routingFlags": "Flagi",
- "routingNeedles": "Needles",
+ "routingNeedles": "Igły",
"routingBlockText": "Zablokuj tekst",
"routingIdempotencyKey": "Klucz idempotencji",
- "routingEntrypoint": "Entrypoint",
+ "routingEntrypoint": "Punkt wejścia",
"routingVersionFormat": "Format wersji",
"routingCchAlgorithm": "Algorytm CCH",
"routingWordsToObfuscate": "Słowa do zaciemnienia (ZWJ wstawiane po pierwszym znaku)",
@@ -7682,7 +7689,7 @@
"routingZeroConfigTitle": "Auto-routing zero-config",
"routingZeroConfigDesc": "Włącz automatyczny wybór provider za pomocą prefiksu auto/. Po włączeniu żądania do auto, auto/coding, auto/fast itp. będą dynamicznie kierowane do wszystkich połączonych providers.",
"routingDefaultAutoVariant": "Domyślny wariant auto",
- "visionBridge": "Vision Bridge",
+ "visionBridge": "Most wizyjny",
"visionBridgeDesc": "Uruchom automatyczny fallback vision-to-text przed przekierowaniem żądań obrazów do wyłącznie tekstowych models.",
"visionBridgeEnabledLabel": "Włączone",
"visionBridgeEnabledDesc": "Przełącz mostek przed połączeniem, który zastępuje części obrazu wyodrębnionym tekstem.",
@@ -7691,7 +7698,7 @@
"visionBridgeModel": "Bridge model",
"visionBridgeModelPlaceholder": "openai/gpt-4o-mini",
"visionBridgeModelHint": "Można tu użyć dowolnego ID model OmniRoute obsługującego vision.",
- "visionBridgePrompt": "Bridge Prompt",
+ "visionBridgePrompt": "Prompt mostu",
"visionBridgePromptPlaceholder": "Opisz krótko ten obraz.",
"visionBridgePromptHint": "Wysyłane do vision model przed ponownym wstrzyknięciem wyodrębnionego opisu do oryginalnego żądania.",
"visionBridgeTimeoutMs": "Limit czasu (ms)",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "Pomyślnie zaimportowano starszy format JSON!",
"jsonImportFailed": "Nie udało się zaimportować JSON",
"jsonImportError": "Błąd podczas importu JSON",
+ "jsonImportAuthRequired": "Do zaimportowania starszej konfiguracji JSON wymagane jest uwierzytelnienie. Zaloguj się lub najpierw dokończ konfigurację.",
+ "databaseSettingsAuthRequiredTitle": "Wymagane uwierzytelnienie",
+ "databaseSettingsAuthRequiredBody": "Ustawienia bazy danych i import JSON są dostępne wyłącznie dla uwierzytelnionego administratora. Zaloguj się lub dokończ konfigurację, aby je wyświetlić i edytować.",
+ "databaseSettingsAuthRequiredCta": "Zaloguj się",
"storagePurgeData": "Wyczyść dane",
"storagePurgeDataDesc": "Natychmiast usuń wszystkie rekordy bez stosowania kontroli retencji. Używaj ostrożnie.",
"storageRetentionCleanup": "Ustawienia retencji",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "tryb: {mode}",
"compressionAdaptiveOff": "Adaptacyjny budżet kontekstu: wył. (starszy automatyczny wyzwalacz)",
"compressionAdaptiveTarget": "Adaptacyjny ({mode}, polityka: {policy}) — cel ≈ {target, number} tokenów (dla okna o rozmiarze {contextLimit, number} tokenów)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Adaptacyjny budżet kontekstu",
+ "compressionAdaptiveModeOff": "Wyłączone (starsze automatyczne wyzwalanie)",
+ "compressionAdaptiveModeFloor": "Dolny próg (zawsze gwarantuj dopasowanie)",
+ "compressionAdaptiveModeReplace": "Zastąp automatyczne wyzwalanie",
+ "compressionAdaptivePolicy": "Polityka budżetu",
+ "compressionAdaptivePolicyReserve": "Rezerwa na dane wyjściowe",
+ "compressionAdaptivePolicyPercentage": "Procent okna",
+ "compressionAdaptivePolicyAbsolute": "Bezwzględny budżet tokenów",
"compressionOutputStylesDescription": "Wstrzykuj instrukcje kształtujące odpowiedź bez przepisywania danych wyjściowych dostawcy. Łącz dowolnie.",
"mcpAccessibilityDescription": "Ogranicza zakres danych wyjściowych narzędzi MCP (osobny magazyn).",
"compressionStylesTileSummary": "{tokens, number} tokenów zaoszczędzonych · {runs, plural, one {# przebieg ostylowany} few {# przebiegi ostylowane} many {# przebiegów ostylowanych} other {# przebiegów ostylowanych}}",
@@ -7862,8 +7873,8 @@
"description": "Filtrowanie danych wyjściowych poleceń."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Dane wyjściowe narzędzia Responses",
+ "description": "Konserwatywna kompresja obsługiwanych danych wyjściowych narzędzia Responses."
},
"headroom": {
"label": "Margines",
@@ -7904,12 +7915,12 @@
"description": "Drabina YAGNI: najmniejsza działająca zmiana, brak nieproszonych abstrakcji."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Kucyk (leniwy starszy programista)",
+ "description": "Dyscyplina leniwego starszego programisty: wspinaj się po drabinie YAGNI, usuwaj przyczynę źródłową, wprowadzaj najmniejszą działającą zmianę."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Mam ADHD (najpierw działanie)",
+ "description": "Odpowiedź nastawiona na działanie: zacznij od następnej czynności, ponumeruj kroki, wskaż jeden konkretny następny krok, bez wstępu."
},
"terse-cjk": {
"label": "Zwięzłe CJK (文言)",
@@ -7924,23 +7935,31 @@
"memorySkillsFailedToSave": "Nie udało się zapisać",
"memorySkillsApiKey": "Klucz API",
"memorySkillsActiveSkillsProvider": "Aktywny Skills Provider",
- "cliproxyapiFallback": "CLIProxyAPI Fallback",
+ "cliproxyapiFallback": "Tryb rezerwowy CLIProxyAPI",
"cliproxyapiEnableFallback": "Włącz CLIProxyAPI Fallback",
- "cliproxyapiUrl": "CLIProxyAPI URL",
- "cliproxyapiStatus": "CLIProxyAPI Status",
+ "cliproxyapiUrl": "Adres URL CLIProxyAPI",
+ "headroomProxyTitle": "Serwer proxy Headroom",
+ "headroomProxyDesc": "Adres URL opcjonalnego serwera proxy Headroom oszczędzającego tokeny. Pusta wartość używa HEADROOM_URL lub http://localhost:8787.",
+ "headroomProxyUrl": "Adres URL Headroom",
+ "headroomProxyUrlHint": "Adresy URL interfejsu loopback można uruchamiać z tej strony. Zewnętrzne adresy URL są tylko sprawdzane.",
+ "headroomProxySave": "Zapisz",
+ "headroomProxyStart": "Uruchom",
+ "headroomProxyStop": "Zatrzymaj",
+ "headroomProxyExternalHint": "Ten adres URL nie jest adresem pętli zwrotnej, więc OmniRoute nie uruchomi lokalnego interfejsu CLI.",
+ "cliproxyapiStatus": "Stan CLIProxyAPI",
"cliproxyapiNotDetected": "Nie wykryto",
"cliproxyapiImportAuthTitle": "Importuj konta z CLIProxyAPI",
"cliproxyapiImportAuthDesc": "Importuj konta OAuth, które CLIProxyAPI zapisał już w ~/.cli-proxy-api/ jako połączenia OmniRoute, aby nie trzeba było ponownie logować się na każde konto. Obsługiwane typy kont (Gemini, Codex, Claude, Antigravity, Qwen, Kimi) zostaną zaimportowane; inne zostaną pominięte.",
"cliproxyapiImportAuthButton": "Importuj konta",
"payloadRulesTitle": "Reguły Payload",
"payloadRulesDesc": "Skonfiguruj mutacje payload żądania według model i protokołu. Zmiany są zapisywane w ustawieniach i natychmiast po zapisie przeładowywane na gorąco (hot reload) do runtime.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "domyślne",
"payloadRuleDefaultDesc": "Stosuje parametry tylko wtedy, gdy w wychodzącym payload brakuje ścieżki docelowej.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "nadpisanie",
"payloadRuleOverrideDesc": "Wymusza wartości w payload, zastępując wszystko, co już znajduje się pod tą ścieżką.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "filtr",
"payloadRuleFilterDesc": "Usuwa zablokowane parametry z payload przed wysłaniem żądania upstream.",
- "payloadRuleDefaultRawTitle": "defaultRaw",
+ "payloadRuleDefaultRawTitle": "domyślneRaw",
"payloadRuleDefaultRawDesc": "Podobnie jak default, ale wartości tekstowe są najpierw parsowane jako JSON, jeśli to możliwe. Starszy alias wejściowy default-raw jest również akceptowany przy zapisie.",
"payloadEditorTitle": "Edytor",
"payloadEditorDesc": "Użyj kształtu schematu runtime: default, override, filter, defaultRaw. API akceptuje również starszy klucz wejściowy default-raw.",
@@ -7976,28 +7995,28 @@
"responsesStateTitle": "Stan Responses",
"responsesStateDesc": "Kontroluj, jak OmniRoute przekazuje previous_response_id.",
"responsesStateModeLabel": "Obsługa previous_response_id",
- "responsesStateModeAuto": "Auto",
+ "responsesStateModeAuto": "Automatycznie",
"responsesStateModeStrip": "Usuń",
"responsesStateModePreserve": "Zachowaj",
"responsesStateHint": "Auto usuwa previous_response_id, chyba że połączenie jawnie włącza przechowywanie OpenAI Responses. Strip jest najbezpieczniejszy dla bezstanowych klientów, takich jak VS Code Custom Endpoint; kontekst zależy wtedy od klienta wysyłającego pełną historię.",
"responsesStateSaveError": "Nie udało się zaktualizować ustawienia stanu Responses",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Szybka warstwa Codex",
"codexFastTierDesc": "Globalnie wstrzykuje service_tier=priority dla żądań OpenAI Codex.",
"codexFastTierHint": "Po włączeniu OmniRoute dodaje service_tier=priority do wychodzących żądań Codex dla połączeń, które nie określają jeszcze tier. Priority tier wymaga klucza API OpenAI Enterprise lub ścieżki Codex ChatGPT-auth; inne typy kluczy otrzymają błąd związany z tier od OpenAI. Ustawienia dla poszczególnych połączeń na stronie provider Codex mają pierwszeństwo.",
"codexFastTierSaveError": "Nie udało się zaktualizować ustawienia Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
+ "codexAutoPingTitle": "Automatyczne odpytywanie limitu Codex",
"codexAutoPingDesc": "Opcjonalnie (opt-in) na połączenie: wysyła małe żądanie tuż po zresetowaniu okna sesji Codex, dzięki czemu nie jest ono zimne, gdy jest potrzebne.",
"codexAutoPingWarning": "Zużywa niewielką część rzeczywistej Codex quota przy każdym pingowaniu. Domyślnie wyłączone — włączaj tylko dla połączeń, na których aktywnie polegasz.",
"codexAutoPingSaveError": "Nie udało się zaktualizować ustawienia Codex Auto-Ping",
"codexAutoPingToggleAria": "Przełącz auto-ping Codex quota dla {connection}",
- "codexFastTierTierLabel": "Service tier",
- "codexFastTierTierPriority": "Priority",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierLabel": "Warstwa usługi",
+ "codexFastTierTierPriority": "Priorytetowa",
+ "codexFastTierTierFlex": "Elastyczna",
"codexFastTierTierDefault": "Domyślny",
"codexFastTierModelsLabel": "Models Fast-tier",
"codexFastTierModelsHint": "Tylko zaznaczone models otrzymują service_tier, gdy Fast Tier jest włączony.",
"codexFastTierModelCheckbox": "Włącz Fast Tier dla {model}",
- "claudeFastModeTitle": "Claude Fast Mode",
+ "claudeFastModeTitle": "Tryb szybki Claude",
"claudeFastModeDesc": "Włącz wybrane żądania Claude do Anthropic Fast Mode (speed:\"fast\").",
"claudeFastModeHint": "Anthropic nie obsługuje oficjalnie Fast Mode dla klientów typu SDK. Po włączeniu OmniRoute przekazuje nagłówek X-CPA-Force-Fast-Mode, dzięki czemu sparowana wersja CLIProxyAPI może sfałszować entrypoint poprzez opt-in. Tylko wymienione models Opus są ograniczane przez kontrolę Anthropic po stronie klienta. Poziom subskrypcji, plan Max oraz saldo kredytów Fast Mode są nadal sprawdzane po stronie serwera — Anthropic może zwrócić out_of_credits, nawet gdy przełącznik jest włączony.",
"claudeFastModeModelsLabel": "Zastosowano do models ({count})",
@@ -8018,7 +8037,7 @@
"LOCAL_ONLY": "Tylko lokalnie",
"ALWAYS_PROTECTED": "Zawsze chronione",
"MANAGEMENT": "Zarządzanie",
- "CLIENT_API": "Client API",
+ "CLIENT_API": "API klienta",
"PUBLIC": "Publiczne"
},
"bypass": {
@@ -8141,8 +8160,8 @@
"vercelRelayButton": "Wdróż Vercel Relay",
"vercelRelayModalTitle": "Wdróż Vercel Relay",
"vercelRelayWarning": "Ostrzeżenie: Wymagany jest token wdrożeniowy Vercel. Token ten zostanie użyty wyłącznie do utworzenia bezserwerowego przekaźnika (relay) i nigdy nie będzie przechowywany przez OmniRoute.",
- "vercelRelayTokenLabel": "Vercel Access Token",
- "vercelRelayProjectNameLabel": "Vercel Project Name",
+ "vercelRelayTokenLabel": "Token dostępu Vercel",
+ "vercelRelayProjectNameLabel": "Nazwa projektu Vercel",
"vercelRelayFreeTierNote": "Przekaźniki (relays) to lekkie endpoints proxy wdrażane w darmowej usłudze Vercel w celu obejścia lokalnych ograniczeń sieciowych/regionalnych.",
"vercelRelayDeploying": "Wdrażanie...",
"vercelRelayDeploy": "Wdróż",
@@ -8150,7 +8169,7 @@
"denoRelayButton": "Wdróż Deno Relay",
"denoRelayModalTitle": "Wdróż Deno Relay",
"denoRelayWarning": "Ostrzeżenie: Wymagany jest token organizacji Deno Deploy. Token ten zostanie użyty wyłącznie do utworzenia aplikacji przekaźnikowej i nigdy nie będzie przechowywany przez OmniRoute.",
- "denoRelayTokenLabel": "Deno Deploy Organization Token",
+ "denoRelayTokenLabel": "Token organizacji Deno Deploy",
"denoRelayOrgDomainLabel": "Domena organizacji",
"denoRelayProjectNameLabel": "Nazwa aplikacji Deno",
"denoRelayFreeTierNote": "Deno Deploy v2 działa w globalnej sieci edge. Darmowa usługa: 1 mln żądań i 100 GiB transferu wychodzącego miesięcznie, brak limitów procesora na żądanie, do 20 aktywnych aplikacji i 50 własnych domen.",
@@ -8161,9 +8180,9 @@
"cloudflareRelayModalTitle": "Wdróż Cloudflare Worker Relay",
"cloudflareRelayWarning": "Wdraża usługę Cloudflare Worker, która przesyła żądania models przez sieć edge Cloudflare — maskując IP hosta za dynamicznymi adresami Cloudflare. Worker wymusza jednorazowy sekret autoryzacyjny, aby publiczny URL workers.dev nie mógł być ponownie użyty jako otwarty relay.",
"cloudflareRelayTokenHowto": "Utwórz token API w sekcji My Profile -> API Tokens -> Create Token -> Custom Token -> Account / Workers Scripts / Edit.",
- "cloudflareRelayAccountIdLabel": "Cloudflare Account ID",
+ "cloudflareRelayAccountIdLabel": "Identyfikator konta Cloudflare",
"cloudflareRelayAccountIdHint": "Znajduje się po prawej stronie strony głównej dashboard Cloudflare.",
- "cloudflareRelayApiTokenLabel": "Cloudflare API Token",
+ "cloudflareRelayApiTokenLabel": "Token API Cloudflare",
"cloudflareRelayApiTokenHint": "Wymaga uprawnień 'Workers Scripts: Edit'. Token jest używany tylko podczas wdrażania i nigdy nie jest przechowywany.",
"cloudflareRelayProjectNameLabel": "Nazwa Workera",
"cloudflareRelayFreeTierNote": "Darmowa usługa: 100 000 żądań dziennie na konto Cloudflare.",
@@ -8171,7 +8190,7 @@
"cloudflareRelayDeploy": "Wdróż",
"cloudflareRelayCredsRequired": "Account ID oraz API Token są wymagane",
"cloudflareRelayDeployFailed": "Wdrażanie nie powiodło się",
- "modelLockout": "Model Lockout",
+ "modelLockout": "Blokada modelu",
"modelLockoutPageDescription": "Skonfiguruj, które kody błędów HTTP wyzwalają blokadę per-model i kontroluj zachowanie cooldown.",
"modelLockoutLoadFailed": "Nie udało się wczytać ustawień blokady modeli",
"modelLockoutSaveFailed": "Nie udało się zapisać ustawień blokady modeli",
@@ -8198,21 +8217,21 @@
"modelLockoutMaxBackoffStepsDescription": "Maksymalna liczba kroków backoff, zanim cooldown przestanie rosnąć. W większości konfiguracji limit Max Cooldown jest osiągany jako pierwszy, co stanowi próg bezpieczeństwa w przypadku podniesienia Max Cooldown.",
"disableSessionStickiness": "Wyłącz lepkość sesji",
"disableSessionStickinessDesc": "combos typu round-robin i random zmieniają połączenie przy każdym żądaniu, zamiast przypinać całą konwersację do jednego połączenia na podstawie hasha pierwszej wiadomości. Pozostaw wyłączone, aby zachować trafienia prompt-cache dla wieloturowych czatów. Nadpisania per-combo mają pierwszeństwo.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Routing według lokalności pamięci podręcznej promptów",
+ "promptCacheAffinityDesc": "Preferuj to samo konto dostawcy dla pasujących kluczy pamięci podręcznej promptów, zachowując przełączanie awaryjne na podstawie kondycji i limitów.",
+ "reasoningTokenBuffer": "Bufor tokenów rozumowania",
+ "reasoningTokenBufferDesc": "Zezwalaj routingowi łączonemu na zwiększenie zapasu max_tokens tylko dla znanych modeli rozumujących, gdy cały bufor mieści się w znanym limicie wyjściowym.",
+ "zeroLatencyOptimizations": "Optymalizacje bez opóźnień",
+ "zeroLatencyOptimizationsDesc": "Włącz hedging, predykcyjne pomijanie na podstawie TTFT i proaktywną kompresję żądań zapasowych. Pozostaw wyłączone, aby zapobiec równoległemu ściganiu celów przez te funkcje redukcji opóźnień lub kompresowaniu żądań zapasowych.",
"credentialRedaction": "Ukrywanie danych uwierzytelniających",
"credentialRedactionDesc": "Ukrywaj klucze API, tokeny i sekrety w kontekście wysyłanym do dostawców oraz w odpowiedziach.",
"enableCredentialRedaction": "Włącz ukrywanie danych uwierzytelniających",
"enableCredentialRedactionDesc": "Usuwa klucze API, tokeny, klucze prywatne i tokeny JWT z wiadomości, wywołań narzędzi oraz odpowiedzi.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Automatyczna synchronizacja wyłączona",
+ "pricingAutoSyncEnabled": "Automatyczna synchronizacja włączona",
"modalityBridgeIntro": "Przekształć treści multimodalne w tekst, zanim trafią do modeli obsługujących wyłącznie tekst. Mosty obrazu, dźwięku i wideo są dostępne i konfigurowalne.",
"modalityBridgeVisionTab": "Wizja",
- "modalityBridgeAudioTab": "Audio",
+ "modalityBridgeAudioTab": "Dźwięk",
"modalityBridgeVideoTab": "Wideo",
"modalityBridgeSubTabsAria": "Sekcje Mostka Modalności",
"modalityBridgeVisionTitle": "Mostek Wizji",
@@ -8360,15 +8379,7 @@
"cliproxyapiHealth": "Zdrowie",
"cliproxyapiPort": "Port",
"qdrantHost": "Host",
- "qdrantCollection": "Kolekcja",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Kolekcja"
},
"contextRtk": {
"title": "Silnik RTK",
@@ -8491,7 +8502,7 @@
},
"engines": {
"headroom": {
- "name": "Headroom SmartCrusher",
+ "name": "SmartCrusher zapasu",
"description": "Bezstratna kompresja tabelaryczna jednorodnych tablic JSON z jawnymi znacznikami liczby wierszy."
},
"session-dedup": {
@@ -8619,7 +8630,7 @@
"editCombo": "Edytuj",
"deleteCombo": "Usuń",
"deleteConfirm": "Usunąć to combo kompresji?",
- "pipeline": "Pipeline",
+ "pipeline": "Potok",
"addStep": "Dodaj krok",
"removeStep": "Usuń",
"name": "Nazwa",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "Obecnie dostępne tylko dla modelu Claude (Anthropic). Jest to tryb delegowany: dostawca usuwa stare bloki użycia narzędzi po stronie serwera — nie przepisujemy wiadomości. Nie ma to wpływu na innych dostawców.",
"namedCombos": "Nazwane kombinacje",
"namedCombosDescription": "Zapisuj różne potoki i przypisuj je do określonych kombinacji routingu.",
+ "activeProfileMasterSwitchOffWarning": "Poniższy aktywny profil nie zostanie uruchomiony, dopóki główny przełącznik „Kompresja promptów” nie zostanie włączony.",
+ "activeProfileMasterSwitchOffCta": "Włącz go w Ustawieniach",
"comboNamePlaceholder": "Nazwa kombinacji",
"descriptionPlaceholder": "Opis",
"nameRequired": "Wprowadź nazwę kombinacji przed zapisaniem.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "Pakiety językowe: {packs}",
"dragToReorder": "Przeciągnij, aby zmienić kolejność kroku",
"engine": "Silnik",
- "intensity": "Intensywność",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Intensywność"
},
"compressionStudio": {
"noRun": "Brak dostępnego przebiegu kompresji.",
@@ -8701,7 +8712,7 @@
"run": "Uruchom",
"laneRejected": "odrzucono: {reason}",
"error": "błąd",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Nie udało się wyświetlić podglądu połączonego potoku: {reason}",
"combinedFlow": "Połączony przepływ",
"eachLayer": "Każda warstwa osobno",
"diff": "Różnica",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Włącz silnik",
"enableDescription": "Uruchamia się jako ostatni w stosie (po tym, jak RTK/Caveman oczyści tekst, a OmniGlyph skonwertuje resztę na obrazy), a także działa samodzielnie w trybie omniglyph. To jest wersja zapoznawcza i pozostaje domyślnie wyłączona do czasu zakończenia pełnej walidacji.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profil kompresji",
+ "profileDescription": "Profil wyznacza górną, a nie dolną granicę: bardziej restrykcyjnego profilu nie można złagodzić nadpisaniem dla pojedynczego kroku. Pomiar w tej bazie kodu: w profilu bezpiecznym dla kodowania lub zrównoważonym sesja, która nie zgromadziła jeszcze historii, nie kompresuje niczego, ponieważ oba profile podnoszą próg minimalnej liczby znaków i pozostawiają prompt systemowy, schematy narzędzi oraz wyniki narzędzi w formie natywnej.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresywny (domyślny)",
+ "description": "Zasada użyta w opublikowanych pomiarach. Przekształca w obrazy prompt systemowy, dokumentację narzędzi i obszerną historię."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Zrównoważony",
+ "description": "Pozostawia bieżący stan w formie natywnej i chroni ostatnie 8 tur; zwija tylko starszą, zamkniętą historię."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Bezpieczny dla kodowania",
+ "description": "Pozostawia instrukcje nadrzędne, schematy narzędzi i bieżące dane wyjściowe narzędzi w formie natywnej, chroniąc ostatnie 12 tur. Nie kompresuje niczego, dopóki sesja nie zgromadzi historii."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Przekazywanie bez zmian",
+ "description": "Przekierowuje bez przekształcania. Silnik jest pomijany, a żądanie przekazywane bez zmian."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Wybierz profil kompresji OmniGlyph",
"saved": "Zapisano.",
"saveFailed": "Nie można zapisać.",
"enableAria": "Włącz silnik OmniGlyph",
@@ -8818,9 +8829,9 @@
"externalDescription": "OmniRoute znalazł 9Router pod adresem {host}:{port}. Jego cykl życia, logi, aktualizacje i klucz usługi pozostają zarządzane przez zewnętrzną instalację.",
"start": "Uruchom",
"starting": "Uruchamianie…",
- "stop": "Stop",
+ "stop": "Zatrzymaj",
"stopping": "Zatrzymywanie…",
- "restart": "Restart",
+ "restart": "Uruchom ponownie",
"restarting": "Ponowne uruchamianie…",
"update": "Aktualizuj",
"updating": "Aktualizowanie…",
@@ -8929,7 +8940,7 @@
"quickSettingsDesc": "Podstawowe ustawienia kompresji na start",
"autoClarity": "Obejście Auto-Clarity",
"bypassConditions": "Warunki pominięcia",
- "bypassConditionsList": "security, irreversible, clarification, order-sensitive",
+ "bypassConditionsList": "bezpieczeństwo, nieodwracalność, doprecyzowanie, wrażliwość na kolejność",
"simpleMode": "Prosty",
"advancedMode": "Zaawansowany",
"tooltipAutoTrigger": "Automatycznie kompresuj, gdy wielkość kontekstu przekroczy ten rozmiar.",
@@ -8946,15 +8957,15 @@
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
+ "title": "Tłumacz",
+ "metaTitle": "Środowisko testowe Translatora | OmniRoute",
"metaDescription": "Debuguj, testuj i wizualizuj tłumaczenia formatów API między providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
+ "playgroundTitle": "Środowisko testowe Translatora",
+ "playground": "Środowisko testowe",
"realtime": "Aktywność tłumaczeń w czasie rzeczywistym",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
+ "testBench": "Stanowisko testowe",
+ "liveMonitor": "Monitor na żywo",
"modeDescriptionPlayground": "Wklej dowolną treść żądania API i zobacz, jak OmniRoute tłumaczy ją między formatami providers (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
"modeDescriptionChatTester": "Wysyłaj rzeczywiste żądania czatu przez OmniRoute i sprawdzaj pełną ścieżkę: wejście, przetłumaczone żądanie, odpowiedź provider i przetłumaczone wyjście.",
"modeDescriptionTestBench": "Uruchamiaj zdefiniowane scenariusze i porównuj kompatybilność między providers i models.",
@@ -8989,12 +9000,12 @@
"translationPathHubSpoke": "{source} → OpenAI (pośredni) → {target}",
"translationPathDirect": "{source} → {target} (bezpośredni translator)",
"translationPathPassthrough": "Ten sam format — tłumaczenie nie jest wymagane",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "Pośrednik OpenAI",
"autoFeaturesTitle": "Co OmniRoute robi automatycznie",
"autoFeaturesCount": "8 funkcji",
- "featureReasoningCache": "Reasoning Cache",
+ "featureReasoningCache": "Pamięć podręczna rozumowania",
"featureReasoningCacheDesc": "Ponownie wstrzykuje zbuforowany reasoning_content dla models w trybie thinking (DeepSeek V4, Kimi K2, Qwen), gdy klienci pomijają go w historii konwersacji.",
- "featureSchemaCoercion": "Schema Coercion",
+ "featureSchemaCoercion": "Wymuszanie schematu",
"featureSchemaCoercionDesc": "Naprawia uszkodzone schematy narzędzi: dodaje brakujące additionalProperties, oczyszcza długie opisy, normalizuje zagnieżdżone obiekty.",
"featureRoleNormalization": "Normalizacja ról",
"featureRoleNormalizationDesc": "Mapuje developer→system dla celów innych niż OpenAI. Mapuje system→user dla models, które nie obsługują roli system.",
@@ -9002,7 +9013,7 @@
"featureToolCallIdsDesc": "Generates unikalne IDs tool_call, gdy ich brakuje. Normalizuje do formatu 9-znakowego dla providers takich jak Mistral.",
"featureMissingToolResponse": "Wstrzykiwanie odpowiedzi narzędzi",
"featureMissingToolResponseDesc": "Wstrzykuje puste komunikaty tool_result, gdy klienci wysyłają tool_calls bez odpowiadających im odpowiedzi.",
- "featureThinkingBudget": "Thinking Budget",
+ "featureThinkingBudget": "Budżet rozumowania",
"featureThinkingBudgetDesc": "Automatycznie zarządza konfiguracją thinking. Usuwa parametry thinking, gdy ostatnia wiadomość nie pochodzi od użytkownika.",
"featureDirectPaths": "Bezpośrednie ścieżki tłumaczenia",
"featureDirectPathsDesc": "Niektóre pary formatów (Claude→Gemini) mają bezpośrednie translatory, które omijają hub OpenAI, generując dokładniejszy output.",
@@ -9018,7 +9029,7 @@
"exampleTemplates": "Przykładowe szablony",
"exampleTemplatesHint": "— Kliknij, aby załadować",
"templateLoadHint": "Szablon ładuje żądanie w formacie {format}. Zmień format źródłowy, aby załadować w innym formacie.",
- "compatibilityTester": "Compatibility Tester",
+ "compatibilityTester": "Tester zgodności",
"compatibilityReport": "Raport kompatybilności",
"testBenchDescription": "Uruchamiaj zdefiniowane scenariusze (Simple Chat, Tool Calling itp.), aby zweryfikować tłumaczenie i kompatybilność z provider. Wybierz format źródłowy i docelowy provider, a następnie uruchom wszystkie testy, aby zobaczyć procent kompatybilności. Użyj tego, aby dowiedzieć się, które funkcje działają u różnych providers.",
"targetProvider": "Docelowy Provider",
@@ -9030,21 +9041,21 @@
"failed": "nieudany",
"passedIconLabel": "✅ Zaliczony",
"chunks": "fragmenty",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "scenarioSimpleChat": "Prosty czat",
+ "scenarioToolCalling": "Wywoływanie narzędzi",
+ "scenarioMultiTurn": "Wieloturowość",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "Monit systemowy",
+ "scenarioStreaming": "Strumieniowanie",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "Prosty czat",
+ "tool-calling": "Wywoływanie narzędzi",
+ "multi-turn": "Wieloturowość",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
- "vision": "Vision",
- "schema-coercion": "Schema Coercion"
+ "system-prompt": "Monit systemowy",
+ "streaming": "Strumieniowanie",
+ "vision": "Analiza obrazów",
+ "schema-coercion": "Wymuszanie schematu"
},
"templateDescriptions": {
"simple-chat": "Podstawowa wiadomość tekstowa",
@@ -9097,8 +9108,8 @@
"anthropicCompatibleLabel": "Kompatybilny z Anthropic",
"noTemplateForFormat": "Brak szablonu dla tego formatu",
"translationFailed": "Tłumaczenie nie powiodło się: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "pipelineDebugger": "Debuger potoku",
+ "translationPipeline": "Potok tłumaczenia",
"loading": "Ładowanie…",
"compressionOriginal": "Oryginał",
"compressionCompressed": "Skompresowane",
@@ -9113,7 +9124,7 @@
"chatTesterFlow": "Żądanie klienta → Wykrywanie formatu → OpenAI Intermediate → Format Provider → Odpowiedź",
"clickStepToInspect": "Kliknij dowolny krok, aby sprawdzić dane na tym etapie.",
"clientFormat": "Format klienta",
- "provider": "Provider",
+ "provider": "Dostawca",
"modelPlaceholder": "Wybierz lub wpisz nazwę model...",
"sendMessageToSeePipeline": "Wyślij wiadomość, aby zobaczyć Translation Pipeline",
"chatMessageHintPrefix": "Wiadomość zostanie sformatowana jako żądanie",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "Treść żądania w postaci, w jakiej wysłałby ją klient",
"formatDetected": "Wykryty format",
"formatDetectedDescription": "OmniRoute automatycznie wykrywa format API na podstawie struktury żądania",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "Pośrednik OpenAI",
"openaiIntermediateDescription": "Wszystkie formaty są najpierw normalizowane do formatu OpenAI (uniwersalny most)",
"providerFormat": "Format Provider",
"providerFormatDescription": "Format OpenAI jest tłumaczony na natywny format provider",
@@ -9145,9 +9156,9 @@
"eventSourceMainPipeline": "• Główny pipeline żądań (ruch CLI/IDE/API)",
"liveMonitorDescriptionPrefix": "Pokazuje zdarzenia tłumaczenia, gdy wywołania API przepływają przez OmniRoute. Zdarzenia pochodzą z bufora w pamięci (resetuje się przy restarcie). Użyj",
"liveMonitorDescriptionSuffix": ", lub zewnętrznych wywołań API, aby wygenerować zdarzenia.",
- "streamTransformer": "Stream Transformer",
+ "streamTransformer": "Transformator strumienia",
"modeDescriptionStreamTransformer": "Uruchamiaj strumienie SSE chat completions przez Responses transformer.",
- "streamTransformerTitle": "Responses Stream Transformer",
+ "streamTransformerTitle": "Transformator strumienia Responses",
"streamTransformerDescription": "Wklej strumień SSE chat completions, przepuść go przez Responses transformer OmniRoute i sprawdź wyemitowane zdarzenia response.* przed podłączeniem klienta.",
"loadTextSample": "Załaduj próbkę tekstu",
"loadToolSample": "Załaduj próbkę tool-call",
@@ -9166,18 +9177,18 @@
"comboRouted": "Przekierowano przez combo",
"uniqueEndpoints": "Unikalne endpoints",
"routeDetails": "Szczegóły trasy",
- "comboBadge": "Combo",
- "routeEndpointLabel": "Endpoint",
+ "comboBadge": "Kombinacja",
+ "routeEndpointLabel": "Punkt końcowy",
"routeConnectionLabel": "Połączenie",
"scenarioVision": "Vision (rozumienie obrazu)",
"scenarioSchemaCoercion": "Koercja schematu (strukturyzowane dane wyjściowe)",
"techniques": "Techniki:",
- "friendlyTitle": "Translator",
+ "friendlyTitle": "Tłumacz",
"friendlySubtitle": "Używanie istniejącej aplikacji z dowolnym provider — bez konieczności przepisywania kodu.",
"conceptHeadline": "Aplikacja komunikuje się w „języku” jednego API. Translator konwertuje zapytania, aby korzystać z innego provider.",
"conceptDiagramAppLabel": "Aplikacja",
"conceptDiagramSourceLabel": "Format źródłowy",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (centrum)",
"conceptDiagramTargetLabel": "Docelowy provider",
"conceptDiagramExampleApp": "np. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Wklej zapytanie JSON; format zostanie wykryty automatycznie.",
"advancedPipelineTitle": "Pośredni pipeline OpenAI",
"advancedPipelineSubtitle": "Wizualizacja każdego kroku tłumaczenia (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Transformator strumienia (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Konwertuje Chat Completions SSE na Responses API.",
"advancedTestBenchTitle": "Test Bench (8 scenariuszy)",
"advancedTestBenchSubtitle": "Uruchamia wszystkie scenariusze i raportuje stan zaliczony/niezaliczony oraz % zgodności.",
@@ -9273,17 +9284,17 @@
"kiloPassRemaining": "Pozostało",
"kiloPassRenews": "Odnawia się za {count} dni",
"kiloPassUsageLabel": "Zużycie w tym miesiącu",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Dodatkowe środki na użycie",
+ "kimiExtraUsage": "Dodatkowe użycie",
+ "kimiExtraUsageEnabled": "Włączone",
+ "kimiExtraUsageDisabled": "Wyłączone",
+ "kimiExtraUsageFrozen": "Zamrożone",
+ "kimiExtraUsageUnavailable": "Niedostępne",
+ "kimiMonthlyUsed": "Wykorzystano w tym miesiącu",
+ "kimiMonthlyLimit": "Limit miesięczny",
+ "kimiMonthlyLimitUnlimited": "Bez limitu",
+ "kimiAdditionalCredits": "Dodatkowe kredyty",
+ "loggerTab": "Rejestrator",
"proxyTab": "Proxy",
"budgetManagement": "Zarządzanie budżetem",
"budgetSaved": "Zapisano limity budżetu",
@@ -9291,7 +9302,7 @@
"loadingBudgetData": "Ładowanie danych budżetu...",
"noApiKeysTitle": "Brak API Keys",
"noApiKeysDescription": "Najpierw dodaj API keys, aby skonfigurować limity budżetu.",
- "apiKey": "API Key",
+ "apiKey": "Klucz API",
"todaysSpend": "Dzisiejsze wydatki",
"thisMonth": "W tym miesiącu",
"setLimits": "Ustaw limity",
@@ -9310,14 +9321,14 @@
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
+ "promptCache": "Pamięć podręczna promptów",
"systemHealth": "Stan systemu",
"entries": "Wpisy",
"activeCount": "{count} aktywnych",
"openCircuitBreakersDetected": "Wykryto otwarte circuit breakers",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
+ "hitRate": "Współczynnik trafień",
+ "hitsMisses": "Trafienia / chybienia",
+ "circuitBreakers": "Wyłączniki obwodu",
"lockedIPs": "Zablokowane adresy IP",
"lockoutsAutoRefreshHint": "Blokady rate limit per-model • Auto-refresh 10s",
"lockedCount": "{count, plural, one {# zablokowany} other {# zablokowanych}}",
@@ -9330,9 +9341,9 @@
"runStepDescription": "Uruchamianie przypadków testowych dla endpoints LLM za pośrednictwem OmniRoute. Każdy przypadek jest wysyłany jako rzeczywiste żądanie API.",
"evaluate": "Ocena",
"evaluateStepDescription": "Odpowiedzi są porównywane z oczekiwanymi kryteriami. Zobacz status pass/fail dla każdego przypadku wraz z metrykami opóźnienia i szczegółowymi informacjami zwrotnymi.",
- "evalsStrategyContainsLabel": "Contains",
- "evalsStrategyExactLabel": "Exact Match",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyContainsLabel": "Zawiera",
+ "evalsStrategyExactLabel": "Dokładne dopasowanie",
+ "evalsStrategyRegexLabel": "Wyrażenie regularne",
"evalsStrategyCustomLabel": "Niestandardowa logika",
"evalsStrategyContainsDescription": "Sprawdza, czy wynik LLM zawiera oczekiwany podciąg.",
"evalsStrategyExactDescription": "Sprawdza, czy wynik LLM dokładnie pasuje do oczekiwanej wartości.",
@@ -9340,7 +9351,7 @@
"evalsStrategyCustomDescription": "Niestandardowa logika ewaluacji (konfigurowana przez JSON).",
"historyColumnSuiteName": "Nazwa zestawu",
"historyColumnTarget": "Cel",
- "historyColumnPassRate": "Pass Rate",
+ "historyColumnPassRate": "Współczynnik powodzenia",
"historyColumnAvgLatencyMs": "Śr. opóźnienie",
"historyColumnCreatedAt": "Uruchomiono",
"evalSuites": "Zestawy ewaluacyjne",
@@ -9357,7 +9368,7 @@
"columnExpected": "Oczekiwane",
"statsSuites": "Zestawy",
"statsTestCases": "Przypadki testowe",
- "statsModels": "Models",
+ "statsModels": "Modele",
"statsCoverage": "Pokrycie",
"statsStrategiesCount": "{count} strategii",
"evaluationStrategies": "Strategie ewaluacji",
@@ -9373,7 +9384,7 @@
"runAllCompleted": "Uruchomiono {suites} zestawów — {passed} zakończonych sukcesem, {failed} nieudanych",
"runAllCompletedWithFailures": "Uruchomiono {completed} zestawów; {failedSuites} nie udało się ukończyć",
"runningProgress": "Uruchamianie {current}/{total}...",
- "passRate": "pass rate",
+ "passRate": "współczynnik powodzenia",
"summaryBreakdown": "{passed} sukces · {failed} porażka · {total} łącznie",
"passedIconLabel": "✅ Sukces",
"failedIconLabel": "❌ Błąd",
@@ -9381,9 +9392,9 @@
"resultFailed": "Błąd",
"expandResult": "Rozwiń szczegóły wyniku",
"collapseResult": "Zwiń szczegóły wyniku",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "Zawiera: „{term}”",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "Oczekiwano: „{expected}”",
"expectedOutputLabel": "Oczekiwany wynik",
"noResultsYet": "Brak wyników",
"testCasesCount": "Przypadki testowe ({count})",
@@ -9400,7 +9411,7 @@
"modelComparison": "Porównanie models",
"regressionDetection": "Wykrywanie regresji",
"latencyBenchmarks": "Benchmarki opóźnienia",
- "modelLockouts": "Model Lockouts",
+ "modelLockouts": "Blokady modeli",
"noLockouts": "Brak aktualnie zablokowanych models",
"activeSessions": "Aktywne sesje",
"noSessions": "Brak aktywnych sesji",
@@ -9416,7 +9427,7 @@
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
+ "providerLimits": "Limity dostawców",
"noProviders": "Brak połączonych providers",
"connectProvidersForQuota": "Połącz się z providers za pomocą OAuth, aby śledzić limity quota i zużycie API.",
"accountsCount": "{count, plural, one {# konto} other {# kont}}",
@@ -9431,7 +9442,7 @@
"hiddenQuotaRowsLabel": "Ukryte:",
"quotaVisibilityUpdateFailed": "Nie udało się zaktualizować widoczności limitu",
"account": "Konto",
- "modelQuotas": "Model Quotas",
+ "modelQuotas": "Limity modeli",
"lastUsed": "Ostatnio odświeżono",
"actions": "Akcje",
"refreshQuota": "Odśwież quota",
@@ -9454,13 +9465,13 @@
"noQuotaDataAvailable": "Brak dostępnych danych quota",
"noAccountsForTierFilter": "Nie znaleziono kont dla filtra tieru",
"tierAll": "Wszystkie",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "tierEnterprise": "Dla firm",
+ "tierTeam": "Zespół",
+ "tierBusiness": "Biznes",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "Bezpłatny",
"tierLite": "Lite",
"tierUnknown": "Nieznany",
"statTotal": "Suma",
@@ -9468,11 +9479,11 @@
"statAlert": "Alert",
"statHealthy": "Zdrowy",
"filterPurchaseTypeLabel": "Typ",
- "filterTierLabel": "Tier",
+ "filterTierLabel": "Plan",
"purchaseAll": "Wszystkie",
"purchaseOauthSub": "Subskrypcja",
- "purchaseOauthFree": "OAuth Free",
- "purchaseApiKey": "API Key",
+ "purchaseOauthFree": "Bezpłatny OAuth",
+ "purchaseApiKey": "Klucz API",
"creditsLabel": "Kredyty",
"creditBalanceHint": "Pozostałe saldo",
"unlimitedLabel": "Bez limitu",
@@ -9485,7 +9496,7 @@
"redeemResetCredit": "Zrealizuj reset",
"manageResetCredits": "Wyświetl kredyty",
"viewResetCredits": "Wyświetl kredyty resetujące",
- "resetCreditsModalTitle": "Codex reset credits",
+ "resetCreditsModalTitle": "Kredyty resetowania Codex",
"resetCreditsModalExplainer": "Kredyty są uporządkowane według daty wygaśnięcia. Automatyczna realizacja zawsze używa kredytu, który wygasa jako pierwszy.",
"resetCreditsLoadFailed": "Nie udało się załadować kredytów resetujących",
"resetCreditsDetailsUnavailable": "Szczegóły kredytów są obecnie niedostępne. Odśwież i spróbuj ponownie.",
@@ -9511,9 +9522,9 @@
"suiteImportInvalid": "Nieprawidłowy JSON zestawu ewaluacji",
"suiteBuilderCloneSuffix": "kopia",
"suiteBuilderImportedSuite": "Zaimportowany zestaw",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Karta wyników",
+ "evalApiKey": "Klucz API",
+ "scorecardPassRate": "Współczynnik powodzenia",
"targetTypeModel": "Model",
"actualOutputLabel": "Rzeczywisty wynik",
"evalTargetHint": "Wybierz model lub combo do ewaluacji.",
@@ -9551,7 +9562,7 @@
"suiteBuilderCaseModelPlaceholder": "np. gpt-4o-mini",
"evalControlsHint": "Skonfiguruj cel ewaluacji i klucz API, a następnie uruchom pakiety, aby zweryfikować jakość, jaką oferuje model.",
"recentRunsTitle": "Ostatnie uruchomienia",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
+ "suiteBuilderCaseSystemPromptLabel": "Prompt systemowy",
"suiteBuilderCaseExpectedPlaceholder": "np. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "np. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Wklej dokładną oczekiwaną odpowiedź",
@@ -9565,7 +9576,7 @@
"weeklyLimitUsd": "Limit tygodniowy (USD)",
"suiteBuilderCaseUserPromptPlaceholder": "np. Write a fibonacci function in Python",
"suiteBuilderNameRequired": "Nazwa pakietu jest wymagana",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
+ "suiteBuilderCaseUserPromptLabel": "Prompt użytkownika",
"daily": "Dzienny",
"resultErrorLabel": "Błąd",
"suiteBuilderBuiltInBadge": "Wbudowany",
@@ -9587,7 +9598,7 @@
"suiteBuilderCaseExpectedLabel": "Oczekiwana wartość",
"historyLatency": "Opóźnienie",
"suiteBuilderCaseTagsPlaceholder": "np. coding, python",
- "targetTypeCombo": "Combo",
+ "targetTypeCombo": "Kombinacja",
"scorecardPassed": "Zaliczony",
"suiteBuilderCaseTagsLabel": "Tagi",
"suiteBuilderNewSuite": "Nowy pakiet",
@@ -9647,7 +9658,7 @@
"budgetTemplateApplyFailed": "Nie udało się zastosować szablonu",
"budgetTemplateNames": {
"tpl-prod": "Produkcja",
- "tpl-dev": "Development",
+ "tpl-dev": "Środowisko programistyczne",
"tpl-ci": "CI"
},
"budgetStatus": {
@@ -9661,7 +9672,7 @@
"budgetColumnKey": "Klucz",
"budgetColumnToday": "Dzisiaj",
"budgetColumnMonth": "Miesiąc",
- "budgetColumnStatus": "Status",
+ "budgetColumnStatus": "Stan",
"budgetSearchKeysPlaceholder": "Szukaj kluczy...",
"budgetSortPctUsed": "Sortowanie: % zużycia ↓",
"budgetSortTodayDollar": "Sortowanie: Dzisiaj $ ↓",
@@ -9696,7 +9707,7 @@
"noSpendLast30Days": "Brak wydatków w ciągu ostatnich 30 dni",
"updatedShort": "Zaktualizowano",
"lastRefreshed": "Ostatnio odświeżono",
- "providerQuota": "Provider Quota",
+ "providerQuota": "Limit dostawcy",
"providerQuotaHomeHint": "Status na żywo na połączonych kontach"
},
"modals": {
@@ -9739,9 +9750,9 @@
"noPayloadData": "Brak dostępnych danych payload dla tego wpisu.",
"proxyEvent": "Zdarzenie proxy",
"proxy": "Proxy",
- "level": "Level",
+ "level": "Poziom",
"directNative": "Bezpośrednie (natywne)",
- "combo": "Combo",
+ "combo": "Kombinacja",
"inputTokens": "I:",
"outputTokens": "O:"
},
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Metryki systemowe",
"memory": "Pamięć",
- "memoryShort": "mem",
+ "memoryShort": "pamięć",
"uptime": "Czas działania",
"ariaLabel": "Monitorowanie systemu",
"title": "Monitor Systemu",
@@ -9831,7 +9842,7 @@
"copyUrlManual": "Skopiuj URL z paska adresu i wklej go w aplikacji.",
"accessDeniedDescription": "Brak uprawnień do dostępu do tego zasobu. Sprawdź klucz API lub skontaktuj się z administratorem.",
"goToDashboard": "Przejdź do dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
+ "featureMultiProviderTitle": "Wielu dostawców",
"featureMultiProviderDesc": "OpenAI, Anthropic, Google i inne",
"featureLoadBalancingTitle": "Równoważenie obciążenia",
"featureLoadBalancingDesc": "Inteligentne dystrybuowanie zapytań",
@@ -9852,7 +9863,7 @@
"methodManualDescription": "Usuń hasło z bazy danych i ustaw nowe przy uruchomieniu:",
"setPasswordInYour": "Ustaw nowe hasło w swoim",
"fileLabelSuffix": "pliku:",
- "newPasswordPlaceholder": "your_new_password",
+ "newPasswordPlaceholder": "twoje_nowe_hasło",
"deleteSettingsFile": "Usuń",
"orRemovePasswordHashField": "lub usuń pole passwordHash",
"restartServerWithNewPassword": "Uruchom ponownie serwer - użyje on nowego hasła",
@@ -9929,7 +9940,7 @@
"navigateHome": "Przejdź do strony głównej",
"toggleMenu": "Przełącz menu",
"featuresLink": "Funkcje",
- "docsLink": "Docs",
+ "docsLink": "Dokumentacja",
"github": "GitHub",
"versionLive": "Wersja v1.0 jest już dostępna",
"oneEndpoint": "Jeden endpoint dla",
@@ -9953,15 +9964,15 @@
"featureCloudSyncDesc": "Natychmiastowa synchronizacja konfiguracji między urządzeniami.",
"featureCliSupportTitle": "Wsparcie dla CLI",
"featureCliSupportDesc": "Działa z Claude Code, Codex, Cline, Cursor i innymi.",
- "featureDashboardTitle": "Dashboard",
+ "featureDashboardTitle": "Panel",
"featureDashboardDesc": "Wizualny dashboard do analizy ruchu w czasie rzeczywistym.",
"howItWorks": "Jak działa OmniRoute",
"howItWorksDescription": "Dane przepływają płynnie z aplikacji przez naszą inteligentną warstwę routingu do najlepszego provider do danego zadania.",
"howItWorksStep1Title": "1. CLI i SDK",
"howItWorksStep1Description": "Zapytania rozpoczynają się od ulubionych narzędzi lub naszego jednolitego SDK. Wystarczy zmienić bazowy URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
+ "howItWorksStep2Title": "2. Centrum OmniRoute",
"howItWorksStep2Description": "Nasz silnik analizuje prompt, sprawdza stan zdrowia provider i kieruje ruch dla najniższych opóźnień lub kosztów.",
- "howItWorksStep3Title": "3. AI Providers",
+ "howItWorksStep3Title": "3. Dostawcy AI",
"howItWorksStep3Description": "Zapytanie jest natychmiast realizowane przez OpenAI, Anthropic, Gemini lub inne podmioty.",
"getStartedIn30Seconds": "Rozpocznij w 30 sekund",
"getStartedDescription": "Zainstaluj OmniRoute, skonfiguruj swoje providers przez dashboard sieciowy i zacznij kierować zapytania AI.",
@@ -9976,15 +9987,15 @@
"copied": "✓ Skopiowano",
"startingOmniRoute": "Uruchamianie OmniRoute...",
"serverRunningOnLabel": "Serwer działa na",
- "dashboardLabel": "Dashboard",
+ "dashboardLabel": "Panel",
"readyToRoute": "Gotowy do routingu! ✓",
"configureProvidersNote": "📝 Skonfiguruj providers w dashboard lub użyj zmiennych środowiskowych",
"dataLocation": "Lokalizacja danych:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
"product": "Produkt",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
+ "dashboardLink": "Panel",
+ "changelog": "Dziennik zmian",
"resources": "Zasoby",
"documentation": "Dokumentacja",
"npm": "NPM",
@@ -10024,7 +10035,7 @@
"deploymentGuides": "Instrukcje wdrożenia",
"features": "Funkcje",
"supportedProviders": "Obsługiwane providers",
- "supportedProvidersToc": "Providers",
+ "supportedProvidersToc": "Dostawcy",
"commonUseCases": "Typowe przypadki użycia",
"clientCompatibility": "Kompatybilność klientów",
"protocolsToc": "Protokoły",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Użyj prefiksu provider, na przykład",
"deploySetupTitle": "Instrukcja konfiguracji",
"deploySetupText": "Instalacja krok po kroku, konfiguracja środowiska i pierwsze uruchomienie OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron na komputery",
"deployElectronText": "Uruchom OmniRoute jako natywną aplikację desktopową na systemach Windows, macOS i Linux.",
"deployDockerTitle": "Docker",
"deployDockerText": "Wdrożenie kontenerowe za pomocą Docker Compose; gotowe dla stosów produkcyjnych i Kubernetes.",
@@ -10086,14 +10097,14 @@
"featureCliText": "Zarządzanie konfiguracjami IDE, eksport/import kopii zapasowych, wykrywanie profili codex i konfiguracja ustawień z poziomu dashboard.",
"featureSecurityTitle": "Bezpieczeństwo i polityki",
"featureSecurityText": "Uwierzytelnianie API key, filtrowanie IP, prompt injection guard, polityki domenowe, zarządzanie sesjami i logowanie audytowe.",
- "featureCloudSyncTitle": "Cloud Sync",
+ "featureCloudSyncTitle": "Synchronizacja w chmurze",
"featureCloudSyncText": "Synchronizacja konfiguracji z Cloudflare Workers w celu zdalnego dostępu z zaszyfrowanymi danymi uwierzytelniającymi i automatycznym przełączaniem awaryjnym (failover).",
"providersAcrossConnectionTypes": "{count} providers w trzech typach połączeń.",
"manageProviders": "Zarządzanie Providers",
- "providersCount": "{count} providers",
+ "providersCount": "{count} dostawców",
"providerTypeFree": "Poziom darmowy (Free Tier)",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
+ "providerTypeApiKey": "Klucz API",
"useCaseSingleEndpointTitle": "Pojedynczy endpoint dla wielu providers",
"useCaseSingleEndpointText": "Skieruj klientów na jeden bazowy URL i przekierowuj według prefiksu model (na przykład: gh/, cc/, kr/, openai/).",
"useCaseFallbackTitle": "Fallback i przełączanie model z combos",
@@ -10101,8 +10112,8 @@
"useCaseUsageVisibilityTitle": "Widoczność użycia, kosztów i debugowania",
"useCaseUsageVisibilityText": "Śledzenie tokens i kosztów według provider, konta oraz API key w zakładkach Usage i Analytics.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
+ "baseUrlLabel": "Bazowy adres URL",
+ "chatEndpointLabel": "Punkt końcowy czatu",
"modelRecommendationLabel": "Rekomendacja model: jawny prefiks",
"clientCodexTitle": "Models Codex / GitHub Copilot",
"clientCodexBullet1": "Używanie ID model z",
@@ -10163,7 +10174,7 @@
"mgmtLegacyMigrationNote": "Import starych map proxyConfig do przypisań rejestru.",
"modelPrefixesDescriptionStart": "Użycie prefiksu provider przed nazwą model w celu skierowania ruchu do określonego provider. Przykład:",
"modelPrefixesDescriptionEnd": "kieruje do GitHub Copilot.",
- "provider": "Provider",
+ "provider": "Dostawca",
"type": "Typ",
"troubleshootingModelRouting": "Jeśli klient zgłasza błąd z routingiem model, należy użyć jawnego provider/model (na przykład: gh/gpt-5.1-codex).",
"troubleshootingAmbiguousModels": "W przypadku błędów o niejednoznacznych models należy wybrać prefiks provider zamiast samego model ID.",
@@ -10211,7 +10222,7 @@
"mcpToolsMemoryDesc": "Wyszukiwanie, dodawanie i czyszczenie trwałych wpisów pamięci konwersacyjnej.",
"mcpToolsSkillsTitle": "Umiejętności",
"mcpToolsSkillsDesc": "Lista, włączanie, uruchamianie i monitorowanie niestandardowych uruchomień umiejętności.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "Automatyczna kombinacja",
"featureAutoComboText": "Automatyczne tworzenie zoptymalizowanych combos na podstawie podłączonych providers, wzorców użycia i możliwości model.",
"featureSearchTitle": "Wyszukiwanie w sieci",
"featureSearchText": "Zintegrowane wyszukiwanie w sieci z 5 providers (Serper, Brave, Exa, Tavily, Perplexity), w tym analityka i śledzenie kosztów.",
@@ -10328,7 +10339,7 @@
"termsDataLocationText": "Logi użycia, klucze API i konfiguracja są przechowywane w",
"termsSection5Title": "5. Wyłączenie odpowiedzialności",
"termsSection5Text": "Oprogramowanie OmniRoute jest dostarczane w stanie „takim, jakim jest” („as is”), bez jakichkolwiek gwarancji. Nie ponosimy odpowiedzialności za jakiekolwiek koszty poniesione w wyniku korzystania z API, przerw w świadczeniu usług ani utraty danych. Należy zawsze dbać o kopie zapasowe konfiguracji.",
- "termsSection6Title": "6. Open Source",
+ "termsSection6Title": "6. Otwarte oprogramowanie",
"termsSection6Text": "OmniRoute to oprogramowanie open-source. Użytkownik może je swobodnie badać, modyfikować i rozpowszechniać na warunkach określonych w jego licencji."
},
"agents": {
@@ -10345,7 +10356,7 @@
"agentName": "Nazwa agenta",
"binaryName": "Nazwa pliku binarnego",
"versionCommand": "Polecenie wersji",
- "spawnArgs": "Spawn Args",
+ "spawnArgs": "Argumenty uruchomienia",
"addAgent": "Dodaj agenta",
"scanning": "Skanowanie systemu w poszukiwaniu CLI agents...",
"opencodeIntegration": "Integracja OpenCode",
@@ -10392,8 +10403,8 @@
"flowDiagramCli": "Agent CLI",
"flowDiagramCliDesc": "Przetwarza z użyciem własnego uwierzytelniania i model",
"fingerprintSettingsHint": "Dopasowywanie odcisków palców CLI (CLI Fingerprint) w celu maskowania żądań jako określone narzędzia CLI można skonfigurować w",
- "settingsRoutingLink": "Settings/Routing",
- "openSettings": "Settings",
+ "settingsRoutingLink": "Ustawienia/Routing",
+ "openSettings": "Ustawienia",
"copyRawUrlTitle": "Kopiuj czysty URL do schowka",
"copied": "Skopiowano!",
"copyUrl": "Kopiuj URL",
@@ -10402,8 +10413,8 @@
"viewOnGithub": "Zobacz na GitHub",
"howToUse": "Sposób użycia",
"browseAllSkillsOnGithub": "Przeglądaj wszystkie skills na GitHub",
- "apiSkills": "API Skills",
- "cliSkills": "CLI Skills",
+ "apiSkills": "Umiejętności API",
+ "cliSkills": "Umiejętności CLI",
"apiSkillsSubtitle": "{count} skills — steruj OmniRoute przez REST / HTTP",
"cliSkillsSubtitle": "{count} skills — steruj OmniRoute przez plik binarny terminala omniroute",
"howToUseStep1": "Kliknij /api/v1/images/understanding for implementado.",
"disabled": "Desativado",
- "videoGeneration": "Video Generation",
+ "videoGeneration": "Geração de vídeos",
"musicGeneration": "Geração Musical",
"textToSpeech": "Texto para Fala",
"transcription": "Transcrição",
@@ -2539,77 +2542,77 @@
"openrouterSttDescription": "Os modelos de reconhecimento de fala do OpenRouter usam sua conexão OpenRouter configurada. Nenhuma credencial separada é necessária."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Consulta de pesquisa",
+ "searchResults": "Resultados da pesquisa",
+ "cachedResult": "Em cache",
+ "searchCost": "Custo",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Teste de pesquisa avançada com comparação de provedores",
+ "compareProviders": "Comparar provedores",
+ "rerankResults": "Reclassificar resultados",
+ "searchHistory": "Histórico de pesquisa",
+ "urlOverlap": "Sobreposição de URLs",
+ "noSearchProviders": "Nenhum provedor de pesquisa configurado. Adicione provedores em Configurações.",
+ "noRerankModels": "Nenhum modelo de reclassificação disponível",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Provedor",
+ "searchType": "Tipo de pesquisa",
+ "maxResults": "Máximo de resultados",
+ "filters": "Filtros",
+ "country": "País",
+ "language": "Idioma",
+ "timeRange": "Intervalo de tempo",
+ "includeDomains": "Incluir domínios",
+ "excludeDomains": "Excluir domínios",
+ "safeSearch": "Pesquisa segura",
+ "safeSearchOff": "Desativada",
+ "safeSearchModerate": "Moderada",
+ "safeSearchStrict": "Rigorosa",
+ "queryPlaceholder": "Digite a consulta de pesquisa...",
+ "providerAuto": "automático (mais barato)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "notícias",
+ "optionAny": "qualquer",
+ "timeRangeDay": "Último dia",
+ "timeRangeWeek": "Última semana",
+ "timeRangeMonth": "Último mês",
+ "timeRangeYear": "Último ano",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "A solicitação expirou ({seconds}s)",
+ "networkError": "Erro de rede",
+ "formatted": "Formatado",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "cache não encontrado",
+ "cacheHit": "cache encontrado",
+ "latency": "Latência",
+ "cost": "Custo",
+ "results": "Resultados",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Modelo de reclassificação",
+ "positionDelta": "Mudança de posição",
+ "emptyState": "Envie uma consulta de pesquisa para ver os resultados",
"copy": "Copiar",
"resetToDefault": "Redefinir para o padrão",
"tabSearch": "Buscar",
- "tabScrape": "Scrape",
+ "tabScrape": "Extrair",
"tabCompare": "Comparar",
"modalitiesGuide": "Guia de modalidades",
"searchConceptTitle": "Busca",
"searchConceptDesc": "Busca = retorna uma lista de resultados web (título, URL, snippet, score de relevância)",
- "scrapeConceptTitle": "Scrape",
+ "scrapeConceptTitle": "Extrair",
"scrapeConceptDesc": "Scrape = extrai o conteúdo completo de uma URL (markdown, texto ou HTML)",
"compareConceptTitle": "Comparar",
"compareConceptDesc": "Comparar = executa a mesma query em N providers lado a lado para comparar latência, custo e overlap de resultados",
- "rerankConceptTitle": "Rerank",
+ "rerankConceptTitle": "Reclassificar",
"rerankConceptDesc": "Rerank = reordena resultados via LLM para melhorar relevância baseada na query",
"autoConceptTitle": "Auto (mais barato)",
"autoConceptDesc": "Auto (mais barato) = escolhe automaticamente o provider mais barato disponível com credenciais configuradas",
"providerCatalogTitle": "Catálogo de Provedores",
"kindSearch": "Busca",
- "kindFetch": "Fetch/Scrape",
+ "kindFetch": "Buscar/Extrair",
"statusConfigured": "Configurado",
"statusMissing": "Sem credencial",
- "statusRateLimited": "Rate limited",
+ "statusRateLimited": "Limite de requisições atingido",
"configureProvider": "Configurar em Provedores",
"loadingProviders": "Carregando provedores…",
"failedToLoadProviders": "Falha ao carregar provedores",
@@ -2627,7 +2630,7 @@
"formatHtml": "HTML",
"formatText": "Texto",
"scrapePreview": "Visualização",
- "scrapeRaw": "Raw",
+ "scrapeRaw": "Bruto",
"scrapeContentTruncated": "(truncado, ver raw)",
"scrapeMetadata": "Metadados",
"scrapeProvider": "Provedor",
@@ -2638,14 +2641,14 @@
"compareRunning": "Comparando…",
"autoProvider": "Auto (mais barato)",
"configuredStatus": "Configurado",
- "rateLimitedStatus": "Rate limited",
+ "rateLimitedStatus": "Limite de requisições atingido",
"noCredential": "Sem credencial",
"searchTypeLabel": "Tipo",
"rerankModelLabel": "Modelo de rerank",
"noneOption": "Nenhum",
"size": "Tamanho",
"configurationPane": "Painel de configuração",
- "configuration": "Configuration",
+ "configuration": "Configuração",
"status": "Status",
"compareProviderHint": "Selecione até 4 provedores na aba Comparar para compará-los lado a lado.",
"history": "Histórico",
@@ -2659,11 +2662,11 @@
"rawContent": "Conteúdo bruto — {size}",
"closeRawModal": "Fechar modal de conteúdo bruto",
"httpError": "Erro {status}",
- "failed": "Failed",
+ "failed": "Falhou",
"requestFailed": "Falha na requisição",
- "embedding": "Embedding",
+ "embedding": "Incorporação",
"embeddingSample": "Olá, mundo!",
- "image": "Image",
+ "image": "Imagem",
"imageSample": "Uma paisagem serena com montanhas ao pôr do sol",
"music": "Música",
"musicSample": "Piano de jazz animado com percussão leve",
@@ -2678,7 +2681,7 @@
"ttsSample": "Olá, este é um teste de texto para fala.",
"video": "Vídeo",
"videoSample": "Um timelapse de nuvens sobre uma cadeia de montanhas",
- "webFetch": "Web Fetch",
+ "webFetch": "Busca na Web",
"webSearchSample": "O que é o gateway de IA OmniRoute?",
"noActiveProviderDescription": "Nenhum provedor de pesquisa ativo. Configure um em Provedores.",
"configureProviders": "Configurar provedores",
@@ -2704,8 +2707,8 @@
"classifierCompatCycle": "Ciclo: desligado → automático → sempre",
"classifierCompatLoadFailed": "Falha ao carregar configuração",
"classifierCompatMode": {
- "off": "Off",
- "auto": "Auto",
+ "off": "Desativado",
+ "auto": "Automático",
"always": "Sempre"
},
"ccDiscoveryInfoButton": "Como habilitar a descoberta no Claude Code",
@@ -2740,7 +2743,7 @@
"effortExtraHigh": "Extra alto",
"effortMax": "Máximo",
"effortUltra": "Ultra",
- "wireApi": "Wire API",
+ "wireApi": "API Wire",
"modelAliases": "Aliases de modelo",
"addModel": "Adicionar modelo",
"routeModelPlaceholder": "Rotear {model} para...",
@@ -2779,7 +2782,7 @@
"cliRuntimeNotDetected": "Runtime de CLI não detectado",
"binary": "Binário",
"configPath": "Caminho de config",
- "configPathShort": "Config",
+ "configPathShort": "Configuração",
"failedCheckRuntimeStatus": "Falha ao verificar status de runtime.",
"copy": "Copiar",
"copied": "Copiado",
@@ -2807,7 +2810,7 @@
"low": "Baixo",
"medium": "Médio",
"high": "Alto",
- "xhigh": "XHigh"
+ "xhigh": "Muito alta"
},
"howItWorks": "Como funciona:",
"antigravityHowWorksDesc": "O Antigravity envia requisições para o endpoint do Google. O MITM intercepta e redireciona para o OmniRoute.",
@@ -2815,11 +2818,11 @@
"antigravityStep2Prefix": "2. Adicione",
"antigravityStep2Suffix": "ao arquivo hosts como 127.0.0.1.",
"antigravityStep3": "3. Abra o Antigravity e as requisições serão proxyadas.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "O {toolName} envia solicitações ao endpoint do provedor. O MITM as intercepta e redireciona para o OmniRoute.",
+ "mitmStep1": "1. Inicie o MITM para rotear as solicitações pelo OmniRoute.",
+ "mitmStep2Prefix": "2. Adicione",
+ "mitmStep2Suffix": "ao seu arquivo hosts como 127.0.0.1.",
+ "mitmStep3": "3. Abra o {toolName} e as solicitações serão encaminhadas por proxy.",
"sudoPasswordRequiredTitle": "Senha sudo necessária",
"sudoPasswordHint": "A senha de administrador é necessária para modificar hosts e configurações de proxy do sistema.",
"enterSudoPassword": "Digite a senha sudo",
@@ -2853,7 +2856,7 @@
"apply": "Aplicar",
"reset": "Resetar",
"manualConfig": "Configuração manual",
- "backups": "Backups",
+ "backups": "Cópias de segurança",
"configBackups": "Backups de configuração",
"noBackupsYet": "Ainda não há backups. Backups são criados automaticamente antes de cada Aplicar ou Resetar.",
"restore": "Restaurar",
@@ -2905,7 +2908,7 @@
"continue": "Use ao executar Continue em IDEs e você precisar de uma configuração de provedor portátil baseada em JSON.",
"opencode": "Use quando preferir execuções de agentes nativos de terminal e automação com script via OpenCode.",
"kiro": "Use ao integrar o Kiro e controlar o roteamento do modelo centralmente no OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Use quando quiser um IDE com foco em IA e modelos Codeium/Windsurf roteados pelo OmniRoute.",
"antigravity": "Use quando o tráfego Antigravity/Kiro deve ser interceptado através do MITM e roteado para OmniRoute.",
"copilot": "Use quando desejar UX no estilo de bate-papo do Copilot enquanto impõe chaves OmniRoute e regras de roteamento.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2925,7 +2928,7 @@
"qwen": "CLI Alibaba Qwen Code",
"cursor": "Editor de código com IA Cursor",
"continue": "Assistente de IA Continue",
- "opencode": "OpenCode AI coding agent (Terminal)",
+ "opencode": "Agente de programação OpenCode AI (Terminal)",
"kiro": "Amazon Kiro — IDE com IA",
"windsurf": "Windsurf — Editor de Código com IA",
"copilot": "GitHub Copilot — Assistente de IA",
@@ -3006,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Instalar o OpenCode",
+ "desc": "Instale via npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Chave da API"
},
"3": {
- "title": "Set Base URL",
+ "title": "Definir URL base",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Selecionar modelo"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Usar variante de raciocínio",
+ "desc": "Para modelos de raciocínio, execute com --variant high/low/max (comando de exemplo abaixo)."
}
},
"notes": {
@@ -3032,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Abrir as configurações do Kiro",
+ "desc": "Acesse Configurações → Provedor de IA"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "URL base",
+ "desc": "Cole a URL do endpoint do OmniRoute"
},
"3": {
- "title": "API Key"
+ "title": "Chave da API"
},
"4": {
- "title": "Select Model"
+ "title": "Selecionar modelo"
}
},
"notes": {
@@ -3053,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Abrir configurações de IA",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Adicionar provedor personalizado",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "URL base",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "Chave da API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Selecionar modelo",
+ "desc": "Escolha um modelo na lista suspensa"
}
}
}
@@ -3080,7 +3083,7 @@
"allToolsTab": "Todas as ferramentas",
"guidedClientsTab": "Clientes guiados",
"mitmClientsTab": "Clientes MITM",
- "customCliTab": "Custom CLI",
+ "customCliTab": "CLI personalizada",
"toolCategories": "Categorias de Ferramentas",
"visibleToolsCount": "{count} ferramentas visíveis",
"customCliBuilderTitle": "Construtor CLI compatível com OpenAI",
@@ -3101,7 +3104,7 @@
"customCliEndpointHint": "Aponte qualquer cliente compatível com OpenAI para a URL base OmniRoute /v1. O endpoint bruto de conclusões do chat é {endpoint}. Use o bloco JSON quando a ferramenta desejar um objeto provedor ou o script env quando ler variáveis OPENAI_*.",
"customCliEnvBlockTitle": "Fragmento de ambiente/shell",
"customCliJsonBlockTitle": "Bloco JSON do provedor",
- "networkError": "Network error",
+ "networkError": "Erro de rede",
"other": "Outro",
"preview": "Visualização",
"refreshAll": "Atualizar tudo",
@@ -3111,7 +3114,7 @@
"hermesRoleDelegationDesc": "Modelo orquestrador e de subagentes",
"hermesRoleVision": "Visão",
"hermesRoleVisionDesc": "Compreensão de imagens e capturas de tela",
- "hermesRoleCompression": "Compression",
+ "hermesRoleCompression": "Compactação",
"hermesRoleCompressionDesc": "Compressão e resumo de prompt",
"hermesRoleWebExtract": "Extração Web",
"hermesRoleWebExtractDesc": "Extração de conteúdo de páginas web",
@@ -3137,7 +3140,7 @@
"hermesRoleGoalJudgeDesc": "Julgamento da conclusão de objetivos",
"hermesRoleCurator": "Curador",
"hermesRoleCuratorDesc": "Curadoria de habilidades e memória",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Monitorar",
"hermesRoleMonitorDesc": "Monitoramento em segundo plano",
"hermesRoleBackgroundReview": "Revisão em Segundo Plano",
"hermesRoleBackgroundReviewDesc": "Revisão de código em segundo plano",
@@ -3200,7 +3203,7 @@
"cliproxyapiVersion": "Versão"
},
"combos": {
- "title": "Combos",
+ "title": "Combinações",
"description": "Crie combos de modelos com roteamento ponderado e suporte a fallback",
"autoCatalogTitle": "Catálogo de roteamento automático",
"autoCatalogTemplateCount": "{count} modelos",
@@ -3216,10 +3219,10 @@
"addModelToCombo": "Adicionar Modelo ao Combo",
"routingStrategy": "Estratégia de Roteamento",
"maxRetries": "Máximo de Tentativas",
- "timeout": "Timeout (ms)",
+ "timeout": "Tempo limite (ms)",
"healthcheck": "Verificação de Saúde",
"priority": "Prioridade",
- "fallback": "Fallback",
+ "fallback": "Alternativa",
"roundRobin": "Round Robin",
"random": "Aleatório",
"leastLatency": "Menor Latência",
@@ -3242,7 +3245,7 @@
"testResults": "Resultados do Teste — {name}",
"resolvedBy": "Resolvido por:",
"more": "+{count} mais",
- "reqs": "reqs",
+ "reqs": "solicitações",
"success": "sucesso",
"proxyConfigured": "Proxy configurado",
"copyComboName": "Copiar nome do combo",
@@ -3257,12 +3260,12 @@
"priorityDesc": "Fallback sequencial: tenta modelo 1 primeiro, depois 2, etc.",
"weightedDesc": "Distribui tráfego por porcentagem de peso com fallback",
"roundRobinDesc": "Distribuição circular: cada requisição vai para o próximo modelo na rotação",
- "contextRelay": "Context Relay",
+ "contextRelay": "Retransmissão de contexto",
"contextRelayDesc": "Preserva a continuidade da sessão com resumos de handoff quando as contas giram",
"randomDesc": "Seleção aleatória uniforme, depois fallback para modelos restantes",
"leastUsedDesc": "Escolhe o modelo com menos requisições, equilibrando carga ao longo do tempo",
"costOptimizedDesc": "Roteia para o modelo mais barato primeiro baseado em preços",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "cacheOptimizedDesc": "Encaminha consistentemente cada prefixo de prompt reutilizável para a mesma conta do provedor",
"resetAware": "RR com reconhecimento de redefinição",
"resetAwareDesc": "Equilibra a cota restante com redefinições de 5h e semanais e, em seguida, faz um round-robin de pontuações semelhantes",
"quotaWeighted": "Ponderado por cota",
@@ -3313,7 +3316,7 @@
"liveTargetCount": "{count, plural, one {# alvo} other {# alvos}}",
"liveSingle": "Solteiro",
"liveFleet": "Frota",
- "playgroundStatusAvailable": "Available",
+ "playgroundStatusAvailable": "Disponível",
"playgroundStatusNoQuota": "Sem Cota",
"playgroundStatusDegraded": "Degradado",
"playgroundStatusError": "Erro",
@@ -3321,7 +3324,7 @@
"playgroundNetworkError": "Erro de rede durante a simulação",
"playgroundTitle": "Playground de Combo",
"playgroundDescription": "Simule como as solicitações serão roteadas pelos seus combos",
- "playgroundConfiguration": "Configuration",
+ "playgroundConfiguration": "Configuração",
"playgroundNoCombosConfigured": "Nenhum combo configurado",
"active": "ativo",
"inactive": "inativo",
@@ -3329,10 +3332,10 @@
"playgroundSimulating": "Simulando...",
"playgroundSimulateRoute": "Simular Rota",
"playgroundRoutingPath": "Caminho de Roteamento",
- "playgroundStrategy": "Strategy",
+ "playgroundStrategy": "Estratégia",
"playgroundEstimatedCost": "Custo Est.",
"playgroundEstimatedLatency": "Latência Estimada",
- "playgroundFallback": "fallback",
+ "playgroundFallback": "alternativa",
"playgroundWeight": "peso {value}",
"playgroundWarningCount": "Avisos ({count})",
"playgroundErrorCount": "Erros ({count})",
@@ -3388,14 +3391,14 @@
"example": "Múltiplas contas do mesmo modelo para distribuir uso de forma equilibrada."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Use quando quiser uma seleção de baixa latência usando o algoritmo Power-of-Two-Choices.",
+ "avoid": "Evite para combos pequenos com 2 modelos ou menos — não há vantagem em relação ao round-robin.",
+ "example": "Exemplo: inferência de alto volume em 4 ou mais endpoints de modelos equivalentes."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Use quando sessões longas precisarem sobreviver à alternância de contas sem perder o contexto de trabalho.",
+ "avoid": "Evite quando a troca de contas for rara ou quando não quiser solicitações adicionais de sumarização.",
+ "example": "Exemplo: sessões do Codex que alternam entre várias contas próximas de esgotar a cota."
},
"fill-first": {
"when": "Use quando quiser esgotar totalmente a cota de um provedor antes de passar para o próximo.",
@@ -3456,12 +3459,12 @@
"warningRoundRobinSingleModel": "Round-robin é mais útil com pelo menos 2 modelos.",
"warningCostOptimizedPartialPricing": "Apenas {priced} de {total} modelos têm preço. O roteamento pode ficar parcialmente orientado a custo.",
"warningCostOptimizedNoPricing": "Não há dados de preço para este combo. Custo-otimizado pode rotear de forma inesperada.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "filterAll": "Todos",
+ "filterIntelligent": "Inteligente",
+ "filterDeterministic": "Determinístico",
+ "filterEmptyTitle": "Nenhum combo corresponde a este filtro de estratégia.",
+ "filterEmptyIntelligentDescription": "Crie um combo automático ou LKGP para preencher o painel de roteamento inteligente.",
+ "filterEmptyDeterministicDescription": "No momento, existem apenas combos automáticos e LKGP. Volte para Todos ou crie um combo determinístico.",
"readinessTitle": "Pronto para salvar?",
"readinessDescription": "Revise a lista de verificação antes de criar ou atualizar este combo.",
"readinessCheckName": "O nome do combo é válido",
@@ -3475,12 +3478,12 @@
"saveBlockModels": "Adicione pelo menos um modelo.",
"saveBlockWeighted": "Ajuste os pesos para 100% (atual: {total}%).",
"saveBlockPricing": "Adicione preço para pelo menos um modelo ou escolha outra estratégia.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "Configuração recomendada",
+ "applyRecommendations": "Aplicar recomendações",
+ "recommendationsUpdated": "Recomendações atualizadas para {strategy}.",
+ "recommendationsApplied": "Recomendações aplicadas a este combo.",
+ "intelligentPanelTitle": "Painel de roteamento inteligente",
+ "intelligentPanelDesc": "Pontuação em tempo real e status de integridade deste combo de roteamento automático.",
"configOnlyStatus": "Visualização de Configuração",
"configOnlyHint": "Este painel mostra apenas as entradas de roteamento. O estado em tempo real do disjuntor está disponível na página de Saúde.",
"routingInputs": "Entradas de Roteamento",
@@ -3502,47 +3505,47 @@
"manualModelUnknownProvider": "Prefixo de provedor desconhecido.",
"builderDynamicAccountShort": "Conta dinâmica",
"builderNeedValidName": "Defina um nome de combo válido antes de continuar.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Visão geral do status",
+ "normalOperation": "Operação normal",
+ "allProvidersHealthy": "Os provedores estão relatando condições de roteamento normais.",
+ "incidentMode": "Modo de incidente",
+ "highCircuitBreakerRate": "Foi detectada uma alta taxa de acionamento do disjuntor.",
+ "activeModePack": "Pacote de modo ativo",
+ "modePackUpdated": "Pacote de modo atualizado para {pack}.",
+ "modePackHint": "Alterne entre predefinições para ajustar o mecanismo de roteamento sem recriar o combo.",
+ "providerScores": "Pontuações dos provedores",
+ "allProvidersEvaluated": "Nenhum conjunto de candidatos configurado. Todos os provedores ativos são avaliados em tempo de execução.",
+ "excludedProviders": "Provedores excluídos",
+ "excludedProvidersHint": "Provedores com um disjuntor de circuito ABERTO são temporariamente excluídos do roteamento.",
+ "noExcludedProviders": "Nenhum provedor está excluído no momento.",
+ "cooldownMinutes": "Tempo de espera: {minutes} min",
+ "builderIntelligentTitle": "Configuração de roteamento inteligente",
+ "builderIntelligentDesc": "Configure o mecanismo de pontuação multifatorial para esta combinação de roteamento automático.",
+ "candidatePoolLabel": "Conjunto de candidatos",
+ "candidatePoolHint": "Selecione quais provedores este mecanismo deve avaliar. Deixe vazio para usar todos os provedores ativos.",
+ "candidatePoolEmpty": "Ainda não há provedores ativos disponíveis.",
+ "candidatePoolAllProviders": "Todos os provedores",
+ "modePackLabel": "Pacote de modos",
+ "routerStrategyLabel": "Estratégia do roteador",
+ "strategyRules": "Regras (pontuação de 6 fatores)",
+ "explorationRateLabel": "Taxa de exploração",
+ "explorationRateHint": "{percent}% das solicitações podem explorar provedores não ideais.",
+ "budgetCapLabel": "Limite de orçamento (USD/solicitação)",
+ "budgetCapPlaceholder": "Sem limite",
+ "advancedWeightsTitle": "Avançado: pesos de pontuação",
"nestedComboFlatten": "Achatar combos aninhados",
"nestedComboExecute": "Executar combos aninhados como alvos",
"effectiveRoutingShare": "Participação efetiva no roteamento (peso ÷ total)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Cota",
+ "weightHealth": "Integridade",
+ "weightCostInv": "Custo",
+ "weightLatencyInv": "Latência",
+ "weightTaskFit": "Adequação à tarefa",
+ "weightStability": "Estabilidade",
+ "weightTierPriority": "Categoria",
+ "weightCacheAffinity": "Afinidade de acerto no cache",
"weightSessionAvailability": "Disponibilidade da Sessão",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Configuração de roteamento inteligente",
"strategyRecommendations": {
"priority": {
"title": "Fail-safe básico",
@@ -3643,86 +3646,86 @@
"title": "Poder de Duas Escolhas"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "Stack gratuito ($0)",
+ "templateFreeStackDesc": "Distribuição round-robin entre todos os provedores gratuitos: Kiro (Claude), Qoder (5 modelos), Qwen (4 modelos). Custo zero, nunca para de programar.",
"auto": "Auto Combo",
"autoDesc": "Pool de roteamento inteligente (Otimizado)",
"lkgp": "Modo LKGP",
"lkgpDesc": "Último Provedor Bom Conhecido (Resiliência previsível)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "Primeiros passos com combinações",
+ "wizardGuideDesc": "Crie combinações de modelos para rotear o tráfego de IA de forma inteligente",
+ "wizardGuideHint": "ou clique em + Criar combinação acima",
+ "createFirstCombo": "Crie sua primeira combinação",
+ "wizardStep1Title": "Dê um nome à sua combinação",
+ "wizardStep1Desc": "Dê à sua combinação um nome exclusivo para identificá-la nas regras de roteamento",
+ "wizardStep2Title": "Adicionar modelos",
+ "wizardStep2Desc": "Selecione modelos de IA e organize a ordem de prioridade de fallback",
+ "wizardStep3Title": "Escolha a estratégia",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "Revisar e salvar",
+ "wizardStep4Desc": "Revise sua configuração e ative a combinação",
+ "usageGuideInvokeTitle": "Como chamar este combo",
+ "usageGuideInvokeDesc": "Envie o nome exato do combo como o modelo, por exemplo, model: \"my-combo\" (ou combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto e auto/* são um roteador separado com configuração zero que não usa seus combos (a menos que um combo tenha literalmente o nome auto).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto é um produto pago real da OpenRouter (Auto Best Available), não um alias do OmniRoute — exclua-o em Configurações → Roteamento → Ocultar modelos pagos.",
+ "emailVisibilityStateOn": "Ativado",
+ "emailVisibilityStateOff": "Desativado",
+ "reorderHandle": "Arraste para reordenar",
+ "failedReorder": "Falha ao reordenar os modelos",
+ "builderFlowTitle": "Fluxo do Criador de Combos",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Informações básicas",
+ "description": "Nome e modelo inicial"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Etapas",
+ "description": "Seleção de provedor, modelo e conta"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Estratégia",
+ "description": "Comportamento de roteamento e configurações avançadas"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Roteamento Inteligente",
+ "description": "Conjunto de candidatos, predefinições e pontuação do roteamento automático"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Revisão",
+ "description": "Validação final antes de salvar"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderStageVisited": "Etapa concluída",
+ "builderStageCurrent": "Etapa atual",
+ "builderStagePending": "Pendente",
+ "builderStageLocked": "Bloqueado — conclua primeiro a etapa anterior",
+ "builderTitle": "Criar um Combo",
+ "builderBrowseCatalog": "Explorar catálogo",
+ "builderProvider": "Provedor",
+ "builderLoadingProviders": "Carregando provedores...",
+ "builderSelectProvider": "Selecionar provedor",
+ "builderModel": "Modelo",
+ "builderSelectModel": "Selecionar modelo",
+ "builderProviderFirst": "Selecione primeiro o provedor",
+ "builderAccount": "Conta",
+ "builderPreview": "Pré-visualização",
+ "builderAddStep": "Adicionar etapa",
"builderDuplicateExact": "Esta etapa exata de provedor/modelo/conta já está no combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "Referência do Combo",
+ "builderAddComboRef": "Adicionar referência de combo",
+ "builderComboRefStep": "Adicionar referência de combo",
+ "builderPinnedAccount": "Conta Fixada",
+ "builderLegacyEntry": "Entrada legada",
+ "reviewName": "Nome",
+ "reviewStrategy": "Estratégia",
+ "reviewSteps": "Etapas",
+ "reviewAccounts": "Contas",
+ "reviewProviders": "Provedores",
+ "reviewComboRefs": "Referências de combos",
+ "reviewAdvanced": "Configurações avançadas",
+ "reviewAgentFlags": "Sinalizadores do agente",
+ "reviewSequence": "Sequência de modelos",
+ "reviewNoSteps": "Nenhuma etapa configurada",
"builderStagesDescription": "Conclua cada etapa para definir combos, construir etapas, selecionar estratégia de roteamento e revisar resultados.",
"builderStepsDescription": "Crie cada etapa do combo em ordem: provedor, modelo e conta. Isso permite reutilizar o mesmo provedor e modelo em contas diferentes.",
"selectProvider": "Selecione o provedor",
@@ -3777,7 +3780,7 @@
"errorDescription": "Não conseguimos carregar os dados do combo no momento. Verifique sua conexão e tente novamente.",
"errorId": "ID de Erro: {id}",
"errorRetry": "Tente Novamente",
- "comboLabel": "Combo",
+ "comboLabel": "Combinação",
"duplicateAutoComboConfirm": "Criar uma combinação estática de \"{name}\"?",
"duplicateAutoComboSnapshotMsg": "Isso irá capturar os provedores/modelos atualmente conectados que correspondem a este modelo em uma combinação editável.",
"duplicateAutoComboFailedPrefix": "Falha ao duplicar a combinação automática:",
@@ -3797,13 +3800,13 @@
"range7d": "7D",
"range30d": "30D",
"range90d": "90D",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 dias",
+ "range365d": "365 dias",
"rangeAll": "Tudo",
"spend30d": "Gasto 30D",
"activeModels": "Modelos Ativos",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
+ "flatRateEstimateNotice": "Inclui estimativas de preço por token para assinaturas de valor fixo, não o custo cobrado.",
+ "flatRateEstimateForecast": "A projeção inclui estimativas de valor fixo.",
"selectedWindow": "Janela Selecionada",
"activeProviders": "Provedores Ativos",
"overviewTitle": "Visão Geral de Custos",
@@ -3860,7 +3863,7 @@
"groupAccount": "Conta",
"groupServiceTier": "Nível de serviço",
"serviceTierFast": "Rápido",
- "serviceTierFlex": "Flex",
+ "serviceTierFlex": "Flexível",
"serviceTierStandard": "Padrão",
"serviceTierBreakdownTitle": "Nível de Serviço",
"serviceTierBreakdownSubtitle": "Divisão Rápido / Flex / Padrão",
@@ -3909,22 +3912,22 @@
"audioTranscriptionDesc": "Transcrever arquivos de áudio para texto (Whisper)",
"textToSpeech": "Texto para Fala",
"textToSpeechDesc": "Converter texto em fala natural",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Geração de música",
+ "musicDesc": "Gere músicas e faixas de áudio via ComfyUI (Stable Audio, MusicGen)",
"moderations": "Moderações",
"moderationsDesc": "Moderação de conteúdo e classificação de segurança",
"responsesDesc": "API Responses do OpenAI para Codex e fluxos de trabalho agênticos avançados",
"listModelsDesc": "Listar todos os modelos disponíveis em todos os provedores conectados",
"settingsApiDesc": "Ler e modificar a configuração do OmniRoute via API",
- "settingsApi": "Settings API",
+ "settingsApi": "API de configurações",
"categoryCore": "APIs Principais",
"categoryMedia": "Mídia e Multi-Modal",
- "categorySearch": "Search & Discovery",
+ "categorySearch": "Pesquisa e descoberta",
"categoryUtility": "Utilidades e Gerenciamento",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "Pesquisa na web",
+ "webSearchDesc": "Pesquisa unificada na web em vários provedores, com failover automático e cache",
+ "searchProvider": "Provedor de pesquisa",
+ "searchProviderDesc": "Este provedor é usado para pesquisas na web via POST /v1/search. Nenhuma configuração de modelo é necessária — os provedores de pesquisa ficam prontos para uso assim que uma chave de API é conectada.",
"enableCloudTitle": "Ativar Proxy na Nuvem",
"whatYouGet": "O que você terá",
"cloudBenefitAccess": "Acesse sua API de qualquer lugar do mundo",
@@ -3960,28 +3963,28 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Ativar túnel",
+ "cloudflaredInstallAndEnable": "Instalar e ativar",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Em execução",
+ "cloudflaredStarting": "Iniciando",
+ "cloudflaredStoppedState": "Parado",
+ "cloudflaredNotInstalled": "Não instalado",
+ "cloudflaredUnsupported": "Não compatível",
+ "cloudflaredError": "Erro",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Último erro: {error}",
"providerModelsTitle": "{provider} — Modelos",
"noModelsForProvider": "Nenhum modelo disponível para este provedor.",
"chat": "Chat",
"embedding": "Embedding",
"image": "Imagem",
- "custom": "custom",
+ "custom": "personalizado",
"modelsCount": "{count, plural, one {# modelo} other {# modelos}}",
"sectionTitle": "Superfície de Integração",
"sectionDescription": "APIs compatíveis com OpenAI e endpoints operacionais de protocolos",
@@ -4009,8 +4012,8 @@
"a2aQuickStartStep1": "Descubra o agent card em `/.well-known/agent.json`.",
"a2aQuickStartStep2": "Envie requisições JSON-RPC para `POST /a2a` usando `message/send` ou `message/stream`.",
"a2aQuickStartStep3": "Acompanhe e controle tarefas com `tasks/get` e `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "completionsLegacy": "Completions (legado)",
+ "completionsLegacyDesc": "Completions de texto legadas da OpenAI — aceita tanto uma string de prompt quanto o formato de array de mensagens",
"messagesApi": "Mensagens",
"messagesApiDesc": "Formato API de mensagens antrópicas nativas para provedores compatíveis com Claude",
"imageEdits": "Edições de imagem",
@@ -4021,7 +4024,7 @@
"filesApiDesc": "Carregar e gerenciar arquivos para processamento em lote",
"videoGeneration": "Geração de Vídeo",
"videoDesc": "Gerar vídeos via ComfyUI, Stable Diffusion WebUI e provedores compatíveis",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
+ "tailscaleRequestFailed": "Falha ao carregar o status do Tailscale",
"tailscaleEnableFailed": "Falha ao habilitar o Tailscale Funnel",
"tailscaleWaitingForLogin": "Conclua o login do Tailscale na aba aberta do navegador. O OmniRoute tentará novamente de forma automática.",
"tailscaleLoginTimedOut": "Tempo limite expirado aguardando o login do Tailscale",
@@ -4048,11 +4051,11 @@
"tailscaleNeedsLoginHint": "Autentique esta máquina com o Tailscale, depois habilite o Funnel.",
"tailscaleBinaryPath": "Binário: {path}",
"tailscaleLastError": "Último erro: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleInstallTitle": "Instalar Tailscale",
+ "tailscaleInstallIntro": "Instala o Tailscale nesta máquina e prepara o OmniRoute para habilitar o Funnel.",
+ "tailscaleInstallPasswordHint": "No macOS e no Linux, o sudo pode ser necessário para instalar o pacote e iniciar o daemon.",
+ "tailscaleSudoPlaceholder": "Senha sudo opcional",
+ "tailscaleInstalling": "Instalando",
"tailscaleSudoLabel": "Senha Sudo (obrigatória em macOS/Linux)",
"ngrokTitle": "Túnel ngrok",
"ngrokRunning": "Rodando",
@@ -4083,7 +4086,7 @@
"activeLocal": "Local",
"activeCloud": "Nuvem",
"copyUrlTitle": "Copiar {url}",
- "statusRunning": "Running",
+ "statusRunning": "Em execução",
"tunnels": "Túneis",
"activeTunnelCount": "{active} / {total} ativos",
"badgeLocal": "LOCAL",
@@ -4124,12 +4127,12 @@
"vscodeAliasDescriptionError": "Mostrando URLs com placeholder porque as chaves de CLI não puderam ser carregadas nesta sessão.",
"vscodeAliasDescriptionLoading": "Carregando chaves de CLI. As URLs com placeholder serão mostradas até que uma chave esteja disponível.",
"vscodeAliasDescriptionPlaceholder": "Mostrando URLs com placeholder. Crie ou ative uma chave de API em CLI Tools para substituir TOKEN.",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "Ferramentas de CLI",
"vscodeAliasBaseLabel": "Base do VS Code",
"vscodeAliasModelsLabel": "Modelos do VS Code",
"vscodeAliasChatLabel": "Chat do VS Code",
"localServer": "Servidor local",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "OmniRoute na nuvem",
"copyUrl": "Copiar URL",
"badgeLoopbackTooltip": "Este endpoint é acessível apenas localmente (loopback)",
"badgeAlwaysProtectedTooltip": "Este endpoint é sempre protegido e requer autorização",
@@ -4141,9 +4144,9 @@
"tierPublic": "Público",
"hideInternal": "Ocultar Internos",
"showInternal": "Mostrar Internos",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Prompt de sistema personalizado",
+ "customSystemPromptDescription": "Injete um prompt de sistema personalizado em cada solicitação ao modelo",
+ "customSystemPromptPlaceholder": "Ex.: Sempre responda como um pirata...",
"obsidianEnterToken": "Insira um token de API do Obsidian",
"obsidianConnectFailed": "Falha ao conectar",
"obsidianConnectionFailed": "Falha na conexão",
@@ -4192,7 +4195,7 @@
"notionTokenConfigured": "Token configurado. As ferramentas do Notion estão disponíveis via MCP."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
+ "tabProxy": "Proxy de endpoint",
"tabApiEndpoints": "Endpoints de API",
"apiEndpointsTitle": "Endpoints de API",
"apiEndpointsDescription": "Endpoints de API backend que podem ser consumidos por outras aplicações e serviços.",
@@ -4265,7 +4268,7 @@
"resetAllBreakers": "Resetar todos os breakers",
"toolsAndScopes": "Ferramentas e scopes",
"tableTool": "Ferramenta",
- "tableScopes": "Scopes",
+ "tableScopes": "Escopos",
"tablePhase": "Fase",
"tableAudit": "Auditoria",
"auditLog": "Log de auditoria",
@@ -4277,17 +4280,17 @@
"apiKeyIdPlaceholder": "apiKeyId",
"loadingAuditEntries": "Carregando registros de auditoria...",
"noAuditEntriesForFilters": "Nenhum registro de auditoria para os filtros atuais.",
- "tableTimestamp": "Timestamp",
+ "tableTimestamp": "Data e hora",
"tableDuration": "Duração",
"tableResult": "Resultado",
"tableApiKey": "Chave API",
"failed": "falhou",
"previous": "Anterior",
"next": "Próxima",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "apiKeyId": "ID da chave de API",
+ "offset": "Deslocamento",
+ "limit": "Limite",
+ "tool": "Ferramenta"
},
"a2aDashboard": {
"loading": "Carregando painel A2A...",
@@ -4330,7 +4333,7 @@
"loadingTasks": "Carregando tarefas...",
"noTasksForFilters": "Nenhuma tarefa encontrada para os filtros atuais.",
"tableTask": "Tarefa",
- "tableSkill": "Skill",
+ "tableSkill": "Habilidade",
"tableState": "Estado",
"tableUpdated": "Atualizada",
"tableActions": "Ações",
@@ -4343,10 +4346,10 @@
"metadata": "Metadados",
"events": "Eventos",
"artifacts": "Artefatos",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "tablePhase": "Fase da tabela",
+ "offset": "Deslocamento",
+ "limit": "Limite",
+ "skill": "Habilidade",
"rpcEndpoint": "POSTAR /a2a",
"rpcMethodSend": "mensagem/enviar",
"rpcMethodStream": "mensagem/fluxo",
@@ -4382,7 +4385,7 @@
"content": "Conteúdo",
"contentPlaceholder": "Valor ou conteúdo JSON para lembrar",
"created": "Criado",
- "delete": "Delete",
+ "delete": "Excluir",
"deleteConfirmDesc": "Esta ação não pode ser desfeita. A memória será removida permanentemente.",
"deleteConfirmTitle": "Excluir memória?",
"description": "Visualize e gerencie entradas de memória armazenadas",
@@ -4398,7 +4401,7 @@
"autoDesc": "Usa o melhor disponível: provider remoto > static > transformers",
"remoteLabel": "Provider remoto",
"remoteDesc": "Usa embedding via API de um provider configurado (requer chave)",
- "staticLabel": "Static local (potion)",
+ "staticLabel": "Local estático (potion)",
"staticDesc": "Embedding local sem WASM, sem dependências externas",
"transformersLabel": "Transformers.js (MiniLM)",
"transformersDesc": "Embedding local via @huggingface/transformers (~400MB RAM)",
@@ -4428,12 +4431,12 @@
"reindexNow": "Reindexar agora",
"reindexStarted": "Reindexação iniciada ({pending} pendentes)",
"reindexFailed": "Falha ao iniciar reindexação",
- "keywordLabel": "Keyword (FTS5)",
+ "keywordLabel": "Palavra-chave (FTS5)",
"keywordReason": "Busca por palavras-chave sempre disponível",
"embeddingLabel": "Embedding",
- "vectorStoreLabel": "Vector Store",
+ "vectorStoreLabel": "Armazenamento vetorial",
"qdrantLabel": "Qdrant",
- "rerankLabel": "Rerank",
+ "rerankLabel": "Reclassificação",
"qdrantDisabled": "Desabilitado",
"qdrantOk": "Saudável ({latencyMs}ms)",
"qdrantError": "Erro de conexão",
@@ -4457,9 +4460,9 @@
"noMemories": "Nenhuma memória encontrada",
"pageInfo": "Página {page} de {totalPages} ({total} total)",
"pipelineError": "Erro de pipeline",
- "pipelineOk": "Pipeline OK ({latencyMs}ms)",
+ "pipelineOk": "Pipeline OK ({latencyMs} ms)",
"playground": {
- "infoTitle": "Memory Playground",
+ "infoTitle": "Área de testes de memória",
"infoDesc": "Simule o que seria recuperado para uma determinada query. Nenhuma memória é modificada — apenas visualização.",
"queryLabel": "Query de teste",
"queryPlaceholder": "Digite uma pergunta ou frase de teste...",
@@ -4467,24 +4470,24 @@
"strategyExact": "Exato (FTS5)",
"strategySemantic": "Semântico (vetor)",
"strategyHybrid": "Híbrido (RRF)",
- "budgetLabel": "Budget (tokens)",
+ "budgetLabel": "Orçamento (tokens)",
"simulate": "Simular",
"resultsTitle": "{count} resultado(s)",
"resolutionTitle": "Resolução de busca",
- "resolutionEmbedding": "Embedding",
- "resolutionStore": "Vector store",
+ "resolutionEmbedding": "Incorporação",
+ "resolutionStore": "Banco de vetores",
"resolutionStrategy": "Estratégia usada",
"rerankApplied": "Rerank aplicado",
- "fallback": "Fallback",
+ "fallback": "Alternativa",
"noResults": "Nenhuma memória encontrada para esta query.",
"tokensUsed": "tokens usados",
"none": "nenhum",
"errorFetch": "Falha ao buscar preview"
},
"previous": "Anterior",
- "procedural": "Procedural",
+ "procedural": "Procedimental",
"qdrant": {
- "title": "Qdrant (Vector Store Tier 2)",
+ "title": "Qdrant (Banco de Vetores Nível 2)",
"description": "Integração opcional com Qdrant para busca semântica escalável",
"enableLabel": "Habilitar Qdrant",
"enableDesc": "Quando habilitado, Qdrant é usado como vector store principal",
@@ -4541,8 +4544,8 @@
},
"tabs": {
"memories": "Memórias",
- "playground": "Playground",
- "engine": "Engine"
+ "playground": "Área de testes",
+ "engine": "Mecanismo"
},
"title": "Gerenciamento de Memória",
"tokensUsed": "Tokens Usados",
@@ -4560,13 +4563,13 @@
"memoryEnabled": "Memória ativada"
},
"skills": {
- "title": "Skills",
+ "title": "Habilidades",
"description": "Gerencie e monitore skills de IA",
- "skillsTab": "Skills",
+ "skillsTab": "Habilidades",
"executionsTab": "Execuções",
"selectSkillToInspect": "Selecione uma skill à esquerda para inspecionar.",
- "schemaTab": "Schema",
- "handlerTab": "Handler",
+ "schemaTab": "Esquema",
+ "handlerTab": "Manipulador",
"inputSchema": "Schema de Entrada",
"outputSchema": "Schema de Saída",
"handlerCode": "Código do Handler",
@@ -4574,7 +4577,7 @@
"runTestPlaceholder": "Executar teste (placeholder)",
"setModeAria": "Definir modo {mode}",
"uninstallSkill": "Desinstalar skill",
- "sandboxTab": "Sandbox",
+ "sandboxTab": "Ambiente isolado",
"loading": "Carregando skills...",
"noSkills": "Nenhuma skill encontrada",
"noExecutions": "Nenhuma execução encontrada",
@@ -4583,7 +4586,7 @@
"delete": "Excluir",
"version": "Versão",
"tableDescription": "Descrição",
- "skill": "Skill",
+ "skill": "Habilidade",
"status": "Status",
"duration": "Duração",
"time": "Tempo",
@@ -4592,11 +4595,11 @@
"cpuLimitDesc": "Tempo máximo de execução por skill",
"memoryLimit": "Limite de Memória",
"memoryLimitDesc": "Alocação máxima de memória",
- "timeout": "Timeout",
+ "timeout": "Tempo limite",
"timeoutDesc": "Tempo máximo de espera por resposta",
"networkAccess": "Acesso à Rede",
"networkAccessDesc": "Permitir requisições de rede de saída",
- "mode": "Mode",
+ "mode": "Modo",
"q": "Q",
"filterSkillsPlaceholder": "Filtre habilidades por nome, descrição ou tag",
"allModes": "Todos os modos",
@@ -4604,12 +4607,12 @@
"enabledSkills": "Ativadas",
"totalExecutions": "Execuções",
"successRate": "Taxa de Sucesso",
- "marketplaceTab": "Marketplace",
+ "marketplaceTab": "Loja",
"applyFilters": "Aplicar filtros",
"popularDefaultsLabel": "Populares por padrão para o provedor selecionado:",
"onMode": "LIGADO",
"offMode": "DESLIGADO",
- "autoMode": "AUTO",
+ "autoMode": "AUTOMÁTICO",
"installSkillButton": "Instalar Habilidade",
"installSkillModalTitle": "Instalar Habilidade",
"installJsonPlaceholder": "Cole o JSON do manifesto da habilidade aqui...",
@@ -4695,9 +4698,9 @@
"providers": "Provedores",
"configuredProvidersLabel": "Configurado no painel",
"configuredProvidersHint": "Provedores com credenciais salvas em /dashboard/providers, independentemente do estado do tempo de execução.",
- "activeProviders": "{count} active",
+ "activeProviders": "{count} ativos",
"activeProvidersHint": "Provedores configurados atualmente habilitados para solicitações de roteamento.",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "{count} monitorados",
"monitoredProvidersHint": "Provedores atualmente monitorados por monitores de integridade dos disjuntores.",
"healthyCount": "{count} saudáveis",
"nodeVersion": "Node {version}",
@@ -4728,7 +4731,7 @@
"status": "Status",
"attentionNeeded": "Atenção necessária",
"repairs": "Reparos",
- "repairing": "Repairing...",
+ "repairing": "Reparando...",
"runAutoRepair": "Executar Auto-Reparo",
"repairBackupCreated": "Um backup de reparo foi criado antes da alteração.",
"sessionActivity": "Atividade da Sessão",
@@ -4738,7 +4741,7 @@
"ageSeconds": "{count}s de idade",
"quotaMonitors": "Monitores de Quota",
"alerting": "Alertando",
- "errors": "Errors",
+ "errors": "Erros",
"degradationFull": "Completa",
"degradationReduced": "Reduzido",
"degradationMinimal": "Minima",
@@ -4770,11 +4773,11 @@
"inactive": "Inativo",
"noConnectionId": "sem id de conexão",
"accountModelSummary": "{connectionId} · {count} modelos",
- "cooldown": "cooldown",
+ "cooldown": "tempo de espera",
"durationRemaining": "{duration} restante",
"noSyncedModelsOrTraffic": "Nenhum modelo sincronizado ou tráfego recente ainda.",
"providerRowSummary": "{active}/{total} contas ativas · {requests} req · {successRate} sucesso · {latency} média",
- "cooldownCount": "{count} cooldown",
+ "cooldownCount": "{count} em espera",
"lockoutCount": "{count} bloqueios",
"issueCount": "{count} problemas",
"score": "Pontuação",
@@ -4856,7 +4859,7 @@
"dailyLimit": "Limite Diário"
},
"logs": {
- "title": "Logs",
+ "title": "Registros",
"requestLogs": "Logs de Requisições",
"proxyLogs": "Logs do Proxy",
"auditLog": "Log de Auditoria",
@@ -4891,13 +4894,13 @@
"requestId": "Request ID",
"providerWarningDesc": "Esta requisição terminou com um aviso do provedor ou alerta do sanitizador em vez de uma falha dura.",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
+ "offset": "Deslocamento",
+ "limit": "Limite",
"status": "Status",
"resourceType": "Tipo de Recurso",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
+ "totalEntries": "Total de entradas",
+ "tab": "Aba",
+ "auditModalSubtitle": "Detalhes e metadados do evento",
"close": "Fechar",
"runningRequests": "Requisições em Execução",
"runningRequestsDesc": "Requisições ainda em voo entre provedores e contas, com previews sanitizados dos payloads.",
@@ -4917,16 +4920,16 @@
"activeStageSendingToProvider": "Enviando para o upstream",
"activeStageProviderResponseStarted": "Resposta do upstream iniciada",
"count": "Qtd.",
- "payloads": "Payloads",
+ "payloads": "Cargas úteis",
"viewPayloads": "Ver Payloads",
"activeCount": "{count} ativas",
"clientPayload": "Requisição do Cliente",
"upstreamPayload": "Requisição Upstream",
"upstreamNotSentYet": "Requisição upstream ainda não foi enviada",
"runningRequestDetailMeta": "Conta: {account} • Tempo: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "export": "Exportar",
+ "exporting": "Exportando...",
+ "exportFailed": "Falha ao exportar",
"cleanHistoryButton": "Limpar histórico",
"cleanHistoryTitle": "Limpar histórico de logs?",
"cleanHistoryMessage": "Isso limpa permanentemente todas as linhas de log de requisições, linhas de detalhes legados e arquivos de artefatos locais em DATA_DIR/call_logs. A página ao vivo será atualizada após a limpeza.",
@@ -4935,13 +4938,13 @@
"cleanHistorySuccess": "Limpa {deleted} entradas de log, {deletedArtifacts} artefatos e {deletedDetailedLogs} linhas de detalhes legadas.",
"cleanHistoryEmpty": "Nenhum histórico de log de requisições foi encontrado.",
"cleanHistoryFailed": "Falha ao limpar o histórico de logs.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "Intervalo de tempo",
+ "lastNHours": "Últimas {hours}",
+ "defaultRange": "padrão",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "Falha ao buscar logs",
+ "copyFailed": "Falha ao copiar a entrada do log",
+ "copyLogEntry": "Copiar entrada do log",
"filterByLevel": "Filtrar por nível de log",
"searchPlaceholder": "Pesquisar logs…",
"searchAria": "Pesquisar entradas de log",
@@ -4956,8 +4959,8 @@
"applicationConsole": "Console da Aplicação",
"emptyFileLoggingHint": "Garanta que APP_LOG_TO_FILE=true esteja definido no seu arquivo .env"
},
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionLogTitle": "Log de compactação",
+ "compressionLogEmpty": "Ainda não há solicitações compactadas. As estatísticas de compactação aparecerão aqui quando as solicitações forem processadas com a compactação ativada.",
"tokens": "tokens"
},
"onboarding": {
@@ -5115,7 +5118,7 @@
"testSuccess": "Conexão bem-sucedida",
"testFailed": "Falha na conexão",
"available": "Disponível",
- "cooldown": "Cooldown",
+ "cooldown": "Tempo de espera",
"unavailable": "Indisponível",
"unknown": "Desconhecido",
"oauthLabel": "OAuth",
@@ -5165,20 +5168,20 @@
"modelsHiddenCount": "{count} oculto",
"warningCount": "{count} Aviso",
"noConnections": "Sem conexões",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "Expirado",
+ "expiringSoonBadge": "Expirando em breve",
"freeTier": "Plano gratuito",
"freeTierAvailable": "Nível gratuito disponível",
"hasFreeTooltip": "Tier gratuito disponível",
"noAuthLabel": "Sem Auth",
"noAuthProviders": "Provedores Sem Auth",
- "upstreamProxyLabel": "Upstream Proxy",
+ "upstreamProxyLabel": "Proxy upstream",
"freeAggregated": "Todos os providers com tier gratuito (também aparecem na categoria nativa)",
"deprecated": "Obsoleto",
"deprecatedProvider": "Este provedor foi descontinuado",
"riskNotice": {
"title": "Antes de continuar",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Ressalvas de uso",
"tooltip": "Provider com restrições de uso — clique para detalhes",
"oauth": "Este provider usa sua sessão/OAuth oficial do produto, que não autoriza uso em proxy/router. Não recomendamos uso intensivo em agentes autônomos (estilo OpenCloud, multi-passos longos, batches grandes) — o upstream pode reagir restringindo ou banindo a conta. Use por sua conta e risco.",
"webCookie": "Este provider autentica através dos cookies da sua sessão web. O serviço upstream pode invalidar a sessão a qualquer momento, exigindo re-login. Não recomendado para operações longas e não-supervisionadas. Use por sua conta e risco.",
@@ -5188,9 +5191,9 @@
"cancel": "Cancelar"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} conexão(ões) sinalizada(s) — até {maxFailures} falhas recentes{lastFailureSuffix}. Clique para visualizar a integridade das conexões.",
+ "lastFailureSuffix": "(última falha {time})",
+ "ariaLabel": "Ver detalhes da integridade das conexões, {count} aviso(s)"
},
"disabled": "Desativado",
"enableProvider": "Ativar provedor",
@@ -5225,7 +5228,7 @@
"failedCreate": "Falha ao criar provedor",
"errorOccurred": "Ocorreu um erro. Tente novamente.",
"modelStatus": "Status dos Modelos",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "Somente configuradas",
"allModelsOperational": "Todos os modelos operacionais",
"modelsWithIssues": "{count} modelo(s) com problemas",
"allModelsNormal": "Todos os modelos estão respondendo normalmente.",
@@ -5236,7 +5239,7 @@
"clearing": "Limpando...",
"until": "Até {time}",
"providerTestFailed": "Teste de provedor falhou",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "O teste do provedor atingiu o tempo limite — há conexões demais para testar de uma só vez",
"modeTest": "Teste {mode}",
"passedCount": "{count} passaram",
"failedCount": "{count} falharam",
@@ -5257,10 +5260,10 @@
"iconUrlLabel": "URL do ícone",
"iconUrlHint": "Opcional. URL da imagem exibida como ícone deste provedor.",
"iconUrlInvalid": "URL do ícone inválido. Use um URL http(s):// ou data:image/*;base64.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Fuso horário de redefinição da cota diária",
+ "dailyQuotaResetTimezoneHint": "Fuso horário IANA opcional usado quando o upstream omite X-RateLimit-Reset. Deixe em branco para manter um curto tempo de espera.",
+ "dailyQuotaResetHourLabel": "Hora de redefinição da cota diária",
+ "dailyQuotaResetHourHint": "Hora local de 0 a 23 no fuso horário acima. Em branco significa que não há relógio no nível do nó.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5274,9 +5277,9 @@
"providerNotFound": "Provedor não encontrado",
"deleteConnectionConfirm": "Excluir esta conexão?",
"deleteConnectionConfirmNamed": "Tem certeza de que deseja excluir {name}? Essa ação não pode ser desfeita.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Excluir selecionadas ({count})",
+ "batchDeleteConfirm": "Excluir {count} conexão(ões)? Esta ação não pode ser desfeita.",
+ "batchDeleteSuccess": "{count} conexão(ões) excluída(s)",
"batchActivateSelected": "Ativar",
"batchDeactivateSelected": "Desativar",
"batchRetestSelected": "Retestar",
@@ -5292,7 +5295,7 @@
"filterError": "Erro",
"filterBanned": "Banido",
"filterCreditsExhausted": "Créditos esgotados",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Pesquisar contas…",
"noFilteredConnections": "Nenhuma conexão corresponde ao filtro atual.",
"failedSetAlias": "Falha ao definir alias",
"setAliasSuccess": "Alias {alias} definido",
@@ -5305,14 +5308,14 @@
"openaiCompatibleDetails": "Detalhes Compatível OpenAI",
"messagesApi": "API de Mensagens",
"responsesApi": "API de Respostas",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Incorporações",
+ "audioTranscriptions": "Transcrições de áudio",
+ "audioSpeech": "Síntese de fala",
+ "imagesGenerations": "Geração de imagens",
"chatCompletions": "Chat Completions",
"importingModels": "Importando...",
"importFromModels": "Importar de /models",
- "modelsImported": "{count} models imported",
+ "modelsImported": "{count} modelos importados",
"allModelsAlreadyImported": "Todos os modelos já foram importados",
"noNewModelsToImport": "Nenhum modelo novo para importar — todos os modelos já estão no registro ou na lista de modelos personalizados",
"skippingExistingModels": "Ignorando {count} modelos existentes",
@@ -5350,7 +5353,7 @@
"importFailed": "Falha na importação",
"noNewModelsAdded": "Nenhum novo modelo foi adicionado.",
"adding": "Adicionando...",
- "close": "Close",
+ "close": "Fechar",
"importingModelsTitle": "Importando Modelos",
"copyModel": "Copiar modelo",
"filterModels": "Filtrar modelos...",
@@ -5386,8 +5389,8 @@
"bulkAddFormatHint": "Uma chave por linha. Formato: name|apiKey ou apenas apiKey (nomeado automaticamente pelo índice).",
"bulkValidateKeys": "Valide cada chave antes de salvar (mais lento)",
"bulkAddAllKeys": "Adicionar todas as chaves",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {# chave adicionada} other {# chaves adicionadas}}",
+ "bulkFailedCount": "{count, plural, one {# falhou} other {# falharam}}",
"optional": "Opcional",
"anthropicCompatibleName": "Compatível Anthropic",
"openaiCompatibleName": "Compatível OpenAI",
@@ -5419,17 +5422,17 @@
"configured": "configurado",
"providerProxyConfigureHint": "Configurar proxy para todas as conexões deste provedor",
"providerProxy": "Proxy do Provedor",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": "Reparar env",
+ "repairEnvWorking": "Reparando...",
+ "repairEnvHint": "Restaure os padrões ausentes do OAuth no .env sem sobrescrever os valores existentes.",
+ "repairEnvSuccess": "Padrões do OAuth restaurados",
+ "repairEnvFailed": "Falha ao reparar o .env",
"noConnectionsYet": "Ainda não há conexões",
"addFirstConnectionHint": "Adicione sua primeira conexão para começar",
"addConnection": "Adicionar Conexão",
"availableModels": "Modelos Disponíveis",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "Modelos integrados",
+ "builtInModelsHint": "Modelos do registro para este provedor. Use o lápis para definir as opções de compatibilidade.",
"pageAutoRefresh": "A página será atualizada automaticamente...",
"statusDisabled": "desativado",
"statusConnected": "conectado",
@@ -5447,7 +5450,7 @@
"errorTypeMissingCredential": "Credencial ausente",
"errorTypeRefreshFailed": "Falha ao renovar",
"errorTypeTokenExpired": "Token expirado",
- "errorTypeRateLimited": "Rate limited",
+ "errorTypeRateLimited": "Limite de taxa atingido",
"errorTypeUpstreamUnavailable": "Upstream indisponível",
"errorTypeNetworkError": "Erro de rede",
"errorTypeTestUnsupported": "Teste não suportado",
@@ -5475,24 +5478,24 @@
"reauthenticateConnection": "Reautenticar esta conexão",
"proxyConfig": "Configuração de proxy",
"aliasExistsAlert": "O alias \"{alias}\" já existe. Use um modelo diferente ou edite o alias existente.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "nome do alias",
+ "clickToSetAlias": "Clique para definir o alias",
+ "clickToEditAlias": "Alias: {alias} (clique para editar)",
"openRouterAnyModelHint": "OpenRouter suporta qualquer modelo. Adicione modelos e crie aliases para acesso rápido.",
"modelIdFromOpenRouter": "ID do Modelo (do OpenRouter)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
"customModels": "Modelos Personalizados",
"customModelsHint": "Adicione IDs de modelo que não estão na lista padrão. Eles ficarão disponíveis para roteamento.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "Normalizar IDs de chamadas de ferramentas para 9 caracteres (por exemplo, Mistral)",
+ "preserveDeveloperRoleLabel": "Manter a função developer do OpenAI Responses (não mapear para system)",
+ "compatAdjustmentsTitle": "Compatibilidade",
+ "compatButtonLabel": "Compatibilidade",
+ "compatToolIdShort": "ID da ferramenta com 9 caracteres",
+ "compatDeveloperShort": "Função developer",
+ "compatDoNotPreserveDeveloper": "Não preservar a função developer",
+ "compatBadgeNoPreserve": "Não preservar",
+ "compatProtocolLabel": "Protocolo de solicitação do cliente",
+ "compatProtocolHint": "Estas opções são aplicadas quando o OmniRoute detecta este formato de solicitação (OpenAI Chat, Responses API ou Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5534,25 +5537,25 @@
"interceptFetchHint": "Reescreve chamadas nativas de web_fetch para /v1/web/fetch da OmniRoute.",
"interceptionLoadError": "Falha ao carregar configuração de interceptação: {error}",
"interceptionSaveError": "Falha ao salvar configuração de interceptação: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "ccAliasSectionTitle": "Expor no Claude Code (claude/…)",
+ "ccAliasSectionHint": "Anuncie os modelos deste provedor sob IDs espelhados claude/<provider>/<model> para que a descoberta de modelos do gateway do Claude Code possa listá-los. Desativado por padrão — habilitar esta opção duplica as entradas do catálogo para todos os clientes.",
+ "ccAliasProviderLevelLabel": "Padrão do provedor",
+ "ccAliasModelOverridesLabel": "Substituições por modelo",
+ "ccAliasModelOverrideAriaLabel": "Substituição para {modelId}",
+ "ccAliasStateInherit": "Herdar",
+ "ccAliasStateOn": "Ativado",
+ "ccAliasStateOff": "Desativado",
+ "ccAliasAddModelPlaceholder": "ID do modelo (por exemplo, gpt-4o)",
+ "ccAliasAddModelButton": "Adicionar substituição",
+ "ccAliasLoadError": "Falha ao carregar as configurações de alias de descoberta: {error}",
+ "ccAliasSaveError": "Falha ao salvar a configuração de alias de descoberta: {error}",
+ "compatUpstreamHeadersLabel": "Cabeçalhos upstream adicionais",
+ "compatUpstreamHeadersHint": "Configuração de alto privilégio — tem o mesmo nível de confiança que a edição das credenciais de API do provedor; somente administradores confiáveis devem usá-la. Mesclada após o OmniRoute adicionar a autenticação usando a chave de API do provedor. Se um cabeçalho personalizado usar o mesmo nome de um existente (por exemplo, Authorization), seu valor substituirá completamente o cabeçalho gerado automaticamente (incluindo o token Bearer) — o upstream verá apenas o que você digitou, não a chave das configurações. Uma configuração incorreta pode causar o erro 401 ou interromper a autenticação upstream. Uma linha por cabeçalho (por exemplo, Authentication adicional para alguns gateways). Passe o cursor sobre o valor ou dê foco a ele para visualizar. Salva ao perder o foco, clicar fora ou fechar este painel.",
+ "compatUpstreamHeaderName": "Nome do cabeçalho",
+ "compatUpstreamHeaderValue": "Valor",
+ "compatUpstreamAddRow": "Adicionar cabeçalho",
+ "compatUpstreamRemoveRow": "Remover linha",
+ "compatBadgeUpstreamHeaders": "Cabeçalhos",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
"importFreeModelsOnlyLabel": "Importar apenas modelos gratuitos",
@@ -5590,7 +5593,7 @@
"editConnection": "Editar Conexão",
"accountName": "Nome da conta",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "Verificação de integridade (min)",
"healthCheckHint": "Intervalo proativo de renovação de token. 0 = desativado.",
"deselectAllModels": "Desmarcar todos",
"modelsActiveCount": "{active}/{total} ativos",
@@ -5601,14 +5604,14 @@
"failed": "Falhou",
"leaveBlankKeepCurrentApiKey": "Deixe em branco para manter a chave de API atual.",
"editCompatibleTitle": "Editar Compatível {type}",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "URL raiz da sua API compatível com {type}. Use as Configurações avançadas para definir caminhos de endpoint personalizados.",
"apiKeyForCheck": "Chave de API (para verificação)",
"testModelIdLabel": "ID do Modelo (opcional)",
"testModelIdPlaceholder": "ex.: meu-id-do-modelo",
"testModelIdHint": "Se o provedor não tiver um endpoint /models, insira um ID de modelo para validar via /chat/completions em vez disso.",
"compatibleProdPlaceholder": "{type} Compatível (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "Token atualizado com sucesso",
+ "tokenRefreshFailed": "Falha ao atualizar o token",
"cursorSessionUnchanged": "Sessão já está atualizada",
"applyCodexAuthLocal": "Aplicar auth",
"exportCodexAuthFile": "Exportar auth",
@@ -5736,25 +5739,25 @@
"codexImportBulkFailed": "{count} falhou",
"codexImportBulkZipExtracting": "Extraindo ZIP…",
"codexImportBulkZipError": "Falha ao extrair ZIP",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Configurações avançadas",
+ "chatPathLabel": "Caminho do endpoint de chat",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Caminho de chat personalizado para provedores com APIs não padronizadas (por exemplo, /v4/chat/completions)",
+ "modelsPathLabel": "Caminho do endpoint de modelos",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Caminho de modelos personalizado para validação (por exemplo, /v4/models)",
"clientIdentityLabel": "Identidade do cliente",
"clientIdentityHint": "Opcional. Adiciona cabeçalhos de fingerprint do cliente (ex.: User-Agent) correspondentes a um CLI conhecido, para gateways compatíveis que esperam um.",
"statusDeactivated": "Desativado (Manual)",
"statusBanned": "Banido / Sandbox Violation",
"statusCreditsExhausted": "Saldo Insuficiente",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "showEmails": "Mostrar todos os e-mails",
+ "hideEmails": "Ocultar todos os e-mails",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Encontre isso na URL do dashboard da Cloudflare ou nas configurações.",
- "accountIdLabel": "Account ID",
+ "accountIdLabel": "ID da conta",
"accountIdPlaceholder": "Cloudflare Account ID",
"addAnotherApiKey": "Adicionar outra chave de API...",
"addCcCompatible": "Adicionar CC Compatível",
@@ -5767,14 +5770,14 @@
"apiRegionHint": "Selecione a região do endpoint para acesso à API e rastreamento de cota.",
"apiRegionInternational": "Internacional (api.z.ai)",
"apiRegionLabel": "Região da API",
- "apikey": "Apikey",
- "audio": "Audio",
+ "apikey": "Chave de API",
+ "audio": "Áudio",
"audioProvidersHeading": "Provedores de Áudio",
"cloudAgentProviders": "Provedores de agentes em nuvem",
"audioShortLabel": "Áudio",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
+ "azureOpenAiBaseUrlHint": "Dica da URL base do Azure Open AI",
"bailianBaseUrlHint": "Opcional: URL base customizada para o provedor bailian-coding-plan.",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "claudeWebCookieHint": "Abra claude.ai → DevTools → Application → Cookies → claude.ai e copie o valor de 'sessionKey'. Também são necessários cf_clearance, __cf_bm e _cfuvid para o Cloudflare.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
"blackboxWebCookieHint": "Cole o cookie __Secure-authjs.session-token de app.blackbox.ai. Um cabeçalho de cookie completo também funciona.",
"blackboxWebCookiePlaceholder": "Cole o valor de __Secure-authjs.session-token",
@@ -5793,10 +5796,10 @@
"ccCompatibleChatPathHint": "O padrão é o caminho estrito de messages compatível com Claude Code.",
"ccCompatibleContext1mDescription": "Quando habilitado, esta conexão adiciona `anthropic-beta: context-1m-2025-08-07`.",
"ccCompatibleContext1mLabel": "Contexto 1M CC Compatível",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Adiciona o cabeçalho beta redact-thinking para upstreams compatíveis com CC que exigem fluxos de raciocínio ocultos do Claude.",
+ "ccCompatibleRedactThinkingLabel": "Ativar a versão beta de redact-thinking",
+ "ccCompatibleSummarizeThinkingDescription": "Adiciona `display: \"summarized\"` às solicitações de raciocínio compatíveis com CC para que os modelos Claude compatíveis transmitam deltas de raciocínio visíveis.",
+ "ccCompatibleSummarizeThinkingLabel": "Ativar exibição resumida do raciocínio",
"ccCompatibleDetailsTitle": "Detalhes CC Compatível",
"ccCompatibleLabel": "CC Compatível",
"ccCompatibleModelsDescription": "Os modelos disponíveis de CC Compatível espelham a lista do provedor OAuth Claude Code.",
@@ -5813,8 +5816,8 @@
"codexWeeklyToggleTitle": "Alternar política de limite semanal do Codex",
"compatUpstreamHeaderNamePlaceholder": "Authentication",
"compatUpstreamHeaderValuePlaceholder": "•••",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
+ "compatible": "Compatível",
+ "configuredCount": "Quantidade configurada",
"consoleApiKeyOracleHint": "Obrigatório para consulta de cota. Não compartilhe.",
"consoleApiKeyOracleLabel": "Chave de API do Console (Oracle)",
"consoleApiKeyOraclePlaceholder": "Chave de API do Console Alibaba",
@@ -5839,22 +5842,22 @@
"excludedModelsHint": "Padrões wildcard separados por vírgula. Esta conexão será ignorada para modelos correspondentes.",
"excludedModelsLabel": "Modelos Excluídos",
"excludedModelsPlaceholder": "gpt-5*, claude-opus-*, gemini-*-pro*",
- "expirationBannerExpired": "Expiration Banner Expired",
+ "expirationBannerExpired": "Banner de expiração: expirado",
"expirationBannerExpiredDesc": "Ação imediata necessária. Conexões expiradas falharão permanentemente.",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
+ "expirationBannerExpiringSoon": "Banner de expiração: expira em breve",
"expirationBannerExpiringSoonDesc": "Revise e renove as conexões prestes a expirar para evitar interrupções.",
"extraApiKeyMasked": "Chave {index}: {prefix}••••{suffix}",
"extraApiKeysHint": "Rotação round-robin — opcional",
"extraApiKeysLabel": "Chaves de API Extras",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
+ "apiKeyHealthLabel": "Integridade das chaves de API",
+ "apiKeyStatusActive": "Ativa",
+ "apiKeyStatusWarning": "Aviso ({count} falhas)",
+ "apiKeyStatusInvalid": "Inválida",
+ "primaryKey": "Chave primária",
+ "apiKeyInvalidAlert": "{count} chave(s) de API marcada(s) como inválida(s) devido a falhas de autenticação nas conexões: {connections}. Elas serão ignoradas na rotação. Clique para revisar.",
+ "apiKeyInvalidAlertTitle": "Alerta de integridade das chaves de API",
+ "apiKeyWarningAlert": "{count} chave(s) de API em estado de aviso devido à alta taxa de falhas nas conexões: {connections}. Revise para evitar problemas de rotação.",
+ "apiKeyWarningAlertTitle": "Aviso de chave de API",
"googlePseInfo": "O Google Programmable Search exige dois valores: sua chave de API e o Search Engine ID (cx) do painel do Programmable Search Engine.",
"antigravityProjectIdHint": "Substituição opcional para solicitações de código de nuvem antigravidade. Deixe em branco para usar o projeto descoberto durante o Google OAuth.",
"antigravityClientProfileLabel": "Perfil do cliente",
@@ -5873,8 +5876,8 @@
"embeddingRerankProviders": "Incorporações e reclassificação",
"imagesShortLabel": "Imagens",
"llmProviders": "Provedores LLM",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
+ "localProviderApiKeyOptionalHint": "Dica de chave de API opcional do provedor local",
+ "localProviderBaseUrlHint": "Dica de URL base do provedor local",
"localProviders": "Local / Self-Hosted",
"maxConcurrentWholeNumberError": "Max concurrent deve ser um número inteiro maior ou igual a 0.",
"m365TierLabel": "Nível do Copilot",
@@ -5890,7 +5893,7 @@
"tierOverrideHelpText": "Fixe este provedor em um tier de roteamento em vez de deixar o OmniRoute inferir a partir do preço do modelo.",
"museSparkWebCookieHint": "Cole o cookie abra_sess do meta.ai. Um cabeçalho de cookie completo também funciona.",
"museSparkWebCookiePlaceholder": "Cole o valor de abra_sess",
- "oauth": "Oauth",
+ "oauth": "OAuth",
"openCliTools": "Abrir CLI Tools",
"openSettings": "Abrir Configurações",
"openaiResponsesStoreDescription": "Preserva `store`, `previous_response_id` e adiciona um `session_id` estável como fallback para sessões longas do Codex. Habilite apenas quando a conta upstream aceitar Responses armazenadas.",
@@ -5898,14 +5901,14 @@
"perplexitySearchSharedKeyInfo": "Usa a mesma chave de API do Perplexity (provedor de chat). Se você já configurou o Perplexity, não é necessário setup adicional.",
"perplexityWebCookieHint": "Cole o cookie __Secure-next-auth.session-token do perplexity.ai.",
"perplexityWebCookiePlaceholder": "Cole o valor de __Secure-next-auth.session-token",
- "personalAccessTokenLabel": "Personal Access Token",
+ "personalAccessTokenLabel": "Token de acesso pessoal",
"qoderPatHint": "Fluxo suportado: PAT via qodercli. OAuth pelo navegador continua experimental.",
"qoderPatPlaceholder": "Cole seu Personal Access Token do Qoder",
"rateLimitOverridesSection": "Substituições de Limite de Taxa",
"rateLimitOverridesMaxConcurrentHint": "Sobrescrição do máximo de requisições concorrentes para esta conexão. Sobrescreve o limite de nível de conta.",
"rateLimitOverridesMaxConcurrentLabel": "Máximo Concorrente (Limite de Taxa)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Tempo máximo (ms) que uma solicitação pode aguardar por uma vaga no limite de taxa antes de falhar. Substitui a configuração global de Resiliência somente para esta conexão.",
+ "rateLimitOverridesMaxWaitMsLabel": "Espera máxima na fila (ms)",
"rateLimitOverridesMinTimeHint": "Tempo mínimo (ms) entre solicitações. Substitui o atraso padrão do limitador de taxa.",
"rateLimitOverridesMinTimeLabel": "Min Intervalo (ms)",
"rateLimitOverridesRpdHint": "Máximo de requisições por dia para esta conexão. Substitui o padrão do provedor.",
@@ -5915,7 +5918,7 @@
"rateLimitOverridesTpdHint": "Máximo de tokens por dia para esta conexão. Substitui o padrão do provedor.",
"rateLimitOverridesTpdLabel": "TPD (Tokens/dia)",
"rateLimitOverridesTpmHint": "Máximo de tokens por minuto para esta conexão. Substitui o padrão do provedor.",
- "rateLimitOverridesTpmLabel": "TPM (Tokens/min)",
+ "rateLimitOverridesTpmLabel": "TPM (tokens/min)",
"refreshOauthTokenTitle": "Atualizar token OAuth manualmente",
"regionHint": "ex.: us-central1 ou europe-west4. Modelos partner usam a região global automaticamente.",
"regionLabel": "Região",
@@ -5923,7 +5926,7 @@
"routingTagsHint": "Tags separadas por vírgula, comparadas com request metadata.tags para roteamento por tags.",
"routingTagsLabel": "Tags de Roteamento",
"routingTagsPlaceholder": "fast, cheap, eu-region",
- "search": "Search",
+ "search": "Pesquisa",
"searchEngineIdHint": "Obrigatório. Encontre isso na visão geral do seu Programmable Search Engine.",
"searchEngineIdLabel": "Search Engine ID (cx)",
"searchEngineIdRequired": "O Search Engine ID (cx) do Programmable Search Engine é obrigatório.",
@@ -5939,23 +5942,23 @@
"snowflakeBaseUrlHint": "Obrigatório: cole a URL base da conta Snowflake. O app adicionará /api/v2/cortex/inference:complete.",
"supportedEndpointAudio": "Áudio",
"supportedEndpointChat": "Chat",
- "supportedEndpointEmbeddings": "Embeddings",
+ "supportedEndpointEmbeddings": "Incorporações",
"supportedEndpointImages": "Imagens",
"supportedEndpointsLabel": "Endpoints Suportados",
"tagGroupHint": "Usado para agrupar contas na visão do provedor.",
"tagGroupLabel": "Tag / Grupo",
"tagGroupPlaceholder": "ex.: personal, work, team-a",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "testModel": "Testar modelo",
+ "testingModel": "Testando modelo",
"modelTestQuotaTooltip": "Quota esgotada — reseta amanhã ou precisa de recarga",
"toggleOffShort": "OFF",
"toggleOnShort": "ON",
"tokenExpiredBadge": "Expirado",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
+ "tokenExpiredTitle": "Título de token expirado",
+ "tokenExpiresSoonTitle": "Título de token prestes a expirar",
"tokenShort": "Token",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
+ "totalKeysRotating": "{count, plural, one {1 chave em rotação} other {# chaves em rotação}}",
+ "unhideModel": "Reexibir modelo",
"upstreamProxyProviders": "Proxy Upstream",
"validationModelIdHint": "Usado como fallback se a listagem de modelos não estiver disponível.",
"validationModelIdLabel": "ID do Modelo (opcional)",
@@ -6032,7 +6035,7 @@
"claudeImportEntryName": "entrada {number}",
"claudeImportParseError": "erro de análise",
"claudeImportNoValidEntries": "Nenhuma entrada válida para importar",
- "webFetch": "Web Fetch",
+ "webFetch": "Busca na Web",
"webFetchTooltip": "Provedores que extraem conteúdo de URLs (HTML → Markdown, scraping, screenshot)",
"webFetchProvidersHeading": "Provedores Web Fetch",
"compatibleProvidersDesc": "Endpoints compatíveis com OpenAI ou Anthropic que você mesmo hospeda ou configura. Aponte qualquer SDK OpenAI para sua URL e roteie as requisições aqui.",
@@ -6309,7 +6312,7 @@
"claude": "Conecte o Claude Code com o fluxo OAuth existente.",
"cline": "Conecte o Cline com o fluxo OAuth existente.",
"cursor": "Conecte o Cursor IDE com o fluxo OAuth existente.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Conecte o Cursor com uma chave de API de usuário (crsr_...) de cursor.com/dashboard/api; nenhuma sessão do IDE é necessária.",
"github": "Conecte o GitHub Copilot com o fluxo OAuth existente.",
"gitlab-duo": "Aplicação OAuth com os escopos ai_features + read_user. Configure GITLAB_DUO_OAUTH_CLIENT_ID e, opcionalmente, GITLAB_DUO_OAUTH_CLIENT_SECRET nesta instância do OmniRoute.",
"kilocode": "Conecte o Kilo Code com o fluxo OAuth existente.",
@@ -6429,14 +6432,19 @@
"commandCodeAuthExpired": "Código de comando de autenticação expirado",
"commandCodeConnected": "Código do comando conectado",
"commandCodeConnectionAdded": "Conexão de Código de Comando adicionada",
+ "clearConnectionCooldown": "Limpar cooldown",
+ "clearConnectionCooldownInProgress": "Limpando…",
+ "clearConnectionCooldownTitle": "Limpar o cooldown agora — use quando a cota já foi renovada no upstream",
"commandCodeLinkExpired": "O link do código do comando expirou",
"commandCodeOpeningStudio": "Abrindo o Command Code Studio…",
"commandCodePopupBlocked": "Popup bloqueado. Por favor, permita popups e tente o Command Code Connect novamente.",
"commandCodeStartFailed": "Falha ao iniciar o comando Code auth",
"connectionDeleted": "Conexão excluída",
"connectionFallback": "conexão",
+ "connectionCooldownCleared": "Cooldown limpo — a conexão voltou ao roteamento",
"coolingConnectionsDescription": "Essas conexões estão esfriando após a última solicitação. O OmniRoute as ignorará até o temporizador expirar — não é necessário desativar manualmente.",
"coolingConnectionsTitle": "Resfriando atualmente ({count})",
+ "failedClearConnectionCooldown": "Falha ao limpar cooldown",
"failedDeleteAlias": "Falha ao excluir o alias",
"failedDeleteConnection": "Falha ao excluir a conexão",
"failedDistributeProxies": "Falha ao distribuir proxies.",
@@ -6470,12 +6478,7 @@
"savedModelEndpointSettings": "Configurações do endpoint do modelo salvo",
"searchByModelAria": "Pesquisar por modelo",
"selectSupportedEndpoint": "Selecione pelo menos um endpoint suportado",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Limpar cooldown",
- "clearConnectionCooldownInProgress": "Limpando…",
- "clearConnectionCooldownTitle": "Limpar o cooldown agora — use quando a cota já foi renovada no upstream",
- "connectionCooldownCleared": "Cooldown limpo — a conexão voltou ao roteamento",
- "failedClearConnectionCooldown": "Falha ao limpar cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "Configurações",
@@ -6554,22 +6557,22 @@
"systemPrompt": "Prompt do Sistema",
"thinkingBudget": "Orçamento de Raciocínio",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "Proxy HTTP",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "Seções de proxy",
+ "requestBodyLimitTitle": "Limite do corpo da solicitação",
+ "requestBodyLimitDescription": "Tamanho máximo da carga útil da API aceito antes que o corpo da solicitação seja analisado. As rotas dedicadas de upload mantêm pelo menos o limite integrado de 100 MB.",
+ "requestBodyLimitInputLabel": "Limite do corpo da solicitação em MB",
+ "requestBodyLimitEmptyError": "Insira um limite em MB",
+ "requestBodyLimitWholeNumberError": "Use um número inteiro",
+ "requestBodyLimitMinimumError": "O mínimo é {min} MB",
+ "requestBodyLimitMaximumError": "O máximo é {max} MB",
+ "requestBodyLimitLoadFailed": "Falha ao carregar as configurações de limite de requisição",
+ "requestBodyLimitSaveSuccess": "Limite do corpo da requisição salvo",
+ "requestBodyLimitSaveFailed": "Falha ao salvar o limite do corpo da requisição",
+ "requestBodyLimitSaving": "Salvando...",
+ "requestBodyLimitSave": "Salvar",
+ "requestBodyLimitCurrent": "Atual: {value}",
"cacheConfigLoadFailed": "Falha ao carregar as configurações de cache",
"cacheConfigSaveSuccess": "Configurações de cache salvas",
"cacheConfigSaveFailed": "Falha ao salvar as configurações de cache",
@@ -6613,29 +6616,29 @@
"skillsComingSoon": "Marketplace em breve.",
"memorySkillsTitle": "Memória e Skills",
"memorySkillsDesc": "Contexto persistente e capacidades A2A",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "modelsDevTitle": "Banco de dados de modelos",
+ "modelsDevDesc": "Sincronize automaticamente preços, recursos e especificações do models.dev",
+ "modelsDevEnabled": "Ativar sincronização com o models.dev",
+ "modelsDevEnabledDesc": "Obtenha preços, recursos e especificações de modelos do banco de dados de código aberto models.dev",
+ "modelsDevInterval": "Intervalo de sincronização",
+ "syncNow": "Sincronizar agora",
+ "syncing": "Sincronizando...",
+ "lastSync": "Última sincronização",
+ "never": "Nunca",
"justNow": "agora mesmo",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Estatísticas de sincronização",
+ "modelsDevStatsDesc": "Cobertura atual dos dados do models.dev",
"providers": "Provedores",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Modelos com preços",
+ "capabilities": "Recursos",
+ "lastSyncCount": "Contagem da última sincronização",
+ "lastSyncFull": "Última sincronização completa",
+ "modelsDevInfo": "Como funciona",
+ "modelsDevInfoDesc": "models.dev é um banco de dados de código aberto com especificações de modelos de IA, mantido pela equipe do SST/OpenCode. Ele fornece preços, recursos, limites de contexto e modalidades para mais de 4.000 modelos de mais de 100 provedores.",
+ "modelsDevInfoResolution": "Ordem de resolução de preços (da maior para a menor prioridade):",
+ "modelsDevInfoOrder": "Substituição do usuário → models.dev → LiteLLM → Padrão codificado",
"systemTheme": "Tema do Sistema",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Ativar modo de depuração",
"logToolSourcesToggle": "Registrar fontes de ferramentas",
"logToolSourcesDescription": "Emite uma linha de log de diagnóstico por requisição resumindo a contagem de ferramentas e a origem MCP/hospedada/cliente.",
"homePinProviderQuotaToHome": "Fixar informações na página inicial",
@@ -6661,45 +6664,45 @@
"providerQuotaAutoRefreshInterval": "Intervalo de atualização",
"providerQuotaAutoRefreshIntervalDesc": "Com que frequência a visualização de cota deve atualizar, em segundos.",
"seconds": "segundos",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Mostrar itens da barra lateral",
"enableCache": "Ativar Cache",
"cacheTTL": "TTL do Cache",
"maxCacheSize": "Tamanho Máximo do Cache",
"clearCache": "Limpar Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "Cache limpo com sucesso",
+ "clearCacheFailed": "Falha ao limpar o cache",
"cacheHits": "Acertos de Cache",
"cacheMisses": "Erros de Cache",
"hitRate": "Taxa de Acerto",
"cacheEntries": "Entradas no Cache",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
+ "cacheSettings": "Configurações de cache",
+ "semanticCache": "Cache semântico",
+ "maxEntries": "Máximo de entradas",
+ "ttlMinutes": "TTL (minutos)",
"promptCache": "Cache de Prompt",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "strategy": "Estratégia",
+ "preserveClientCache": "Preservar cache do cliente",
+ "enabled": "Ativado",
"loading": "Loading...",
"saving": "Salvando...",
- "save": "Save",
+ "save": "Salvar",
"circuitBreaker": "Disjuntor",
"retryPolicy": "Política de Retentativa",
"maxRetries": "Máximo de Tentativas",
"retryDelay": "Intervalo de Retentativa",
- "timeoutMs": "Timeout (ms)",
+ "timeoutMs": "Tempo limite (ms)",
"enableSystemPrompt": "Ativar Prompt do Sistema",
"systemPromptText": "Texto do Prompt do Sistema",
"autoDisableBannedAccounts": "Auto-desativar contas banidas",
"autoDisableDescription": "Marca permanentemente conexões de provedor como desativadas quando retornam sinais terminais de banimento (ex.: HTTP 403 'verify your account'). Isso remove a conexão da rotação de combos.",
"autoDisableThreshold": "Limite de banimento",
"autoDisableThresholdDesc": "Quantidade de sinais consecutivos de banimento antes da desativação permanente.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedScope": "Aplicar desativação automática a",
+ "autoDisableBannedScopeDesc": "As vagas de login (assinaturas pagas e contas gratuitas) podem ser bloqueadas pelo provedor upstream se o OmniRoute continuar tentando novamente após um banimento. Chaves de API pré-pagas não apresentam esse risco — mantenha-as no pool para que o preenchimento prioritário possa usar a próxima chave.",
+ "autoDisableBannedScopeAll": "Todas as conexões",
+ "autoDisableBannedScopeAllDesc": "Desative todas as conexões que retornarem um sinal de banimento permanente, incluindo chaves de API pré-pagas.",
+ "autoDisableBannedScopeSubscription": "Somente contas de login/assinatura",
+ "autoDisableBannedScopeSubscriptionDesc": "Desative vagas OAuth, de cookie, de sessão e de login pela web (pagas ou gratuitas). As chaves de API pré-pagas permanecem ativas para permitir o failover do roteamento.",
"customBannedSignals": "Palavras-Chave Proibidas",
"customBannedSignalsDesc": "Palavras-chave adicionais que acionam a detecção de banimento permanente da conta. Palavras-chave integradas sempre se aplicam.",
"customBannedSignalsPlaceholder": "chave da API revogada",
@@ -6752,7 +6755,7 @@
"showTailscaleFunnelDesc": "Mostre os controles do Tailscale Funnel na página Endpoint.",
"showNgrokTunnel": "Túnel Ngrok",
"showNgrokTunnelDesc": "Mostre os controles do ngrok Tunnel na página Endpoint.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Ocultar itens da barra lateral",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
"presetAll": "Tudo",
@@ -6763,7 +6766,7 @@
"presetMinimalDesc": "Apenas páginas principais",
"presetDeveloper": "Desenvolvedor",
"presetDeveloperDesc": "Ferramentas de dev & proxy",
- "presetAdmin": "Admin",
+ "presetAdmin": "Administração",
"presetAdminDesc": "Monitoramento & auditoria",
"settingsSidebarTitle": "Personalização da Barra Lateral",
"settingsSidebarDesc": "Escolha quais itens da barra lateral exibir. Essenciais mantém as ferramentas avançadas pesquisáveis.",
@@ -6780,19 +6783,19 @@
"themeOrange": "Laranja",
"themeCyan": "Ciano",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Personalize o nome e o logotipo do aplicativo",
+ "appName": "Nome do aplicativo",
+ "appNameDesc": "Nome de exibição mostrado na barra lateral e na aba do navegador",
+ "customLogo": "URL do logotipo personalizado",
+ "customLogoDesc": "URL da imagem do seu logotipo personalizado",
+ "uploadLogo": "Fazer upload do logotipo",
+ "resetLogo": "Restaurar padrão",
+ "logoPreview": "Pré-visualização",
+ "customFavicon": "Favicon do navegador",
+ "customFaviconDesc": "URL do seu favicon personalizado (exibido na aba do navegador)",
+ "uploadFavicon": "Fazer upload do favicon",
+ "resetFavicon": "Redefinir favicon",
+ "faviconPreview": "Pré-visualização do favicon",
"logoFileTooLarge": "O arquivo de logo deve ter menos de 500KB",
"faviconFileTooLarge": "O arquivo de favicon deve ter menos de 50KB",
"invalidLogoFileType": "Tipo de arquivo inválido. Envie PNG, JPG, SVG, GIF ou WebP.",
@@ -6962,7 +6965,7 @@
"proxyFreePoolSortQuality": "Qualidade",
"proxyFreePoolSortLatency": "Latência",
"proxyFreePoolSortRecent": "Mais recentes",
- "proxyFreePoolListTotal": "Listed",
+ "proxyFreePoolListTotal": "Listados",
"proxyFreePoolLoadMore": "Carregar mais",
"close": "Fechar",
"cancel": "Cancelar",
@@ -7089,17 +7092,17 @@
"providerAccountRoutingDesc": "Substitui a estratégia global de contas para este provedor (paridade com 9router).",
"providerRoutingStrategy": "Estratégia de conta",
"providerRoutingInheritGlobal": "Herdar padrão global",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Limite de verificação prévia de cota",
+ "quotaPreflightSubtitle": "Ignore contas sem cota antes de enviar a solicitação ao upstream",
+ "quotaPreflightEnable": "Ativar verificação prévia de cota",
+ "quotaPreflightEnableDesc": "Antes de cada solicitação, verifique a cota restante da conta (janelas de 5 h/semanais/mensais). Contas no limite ou abaixo dele são ignoradas sem uma chamada ao upstream. Os limites por janela definidos na página Cota do provedor sempre prevalecem sobre o padrão definido aqui.",
+ "quotaPreflightCutoff": "Limite global (mín. restante em %)",
+ "quotaPreflightCutoffDesc": "Pare de usar uma conta quando a cota restante cair para esta porcentagem ou abaixo dela, em todas as janelas sem um limite próprio. Corresponde às barras de porcentagem restante na página Cota do provedor.",
+ "quotaPreflightWindowsHint": "As janelas com limite próprio por janela ou por provedor (definido na janela modal Limite da página Cota do provedor) não são afetadas por este padrão.",
+ "quotaPreflightLoadFailed": "Não foi possível carregar as configurações de verificação prévia de cota.",
"modelAliases": "Aliases de Modelo",
"modelAliasesTitle": "Aliases de Modelo",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "Remapeie nomes de modelos usando correspondências exatas ou padrões com caracteres curinga.",
"addCustomAlias": "Adicionar Alias Personalizado",
"deprecatedModelId": "ID do modelo depreciado",
"newModelId": "Novo ID do modelo",
@@ -7188,11 +7191,11 @@
"comboStrategyAria": "Estratégia de combo",
"priority": "Prioridade",
"weighted": "Ponderado",
- "contextRelay": "Context Relay",
+ "contextRelay": "Retransmissão de contexto",
"contextRelayDesc": "Roteamento estilo prioridade com handoffs automáticos de contexto quando a conta gira",
"maxRetriesLabel": "Máx. Tentativas",
"retryDelayLabel": "Atraso entre Tentativas (ms)",
- "timeoutLabel": "Timeout (ms)",
+ "timeoutLabel": "Tempo limite (ms)",
"healthCheck": "Verificação de Saúde",
"healthCheckDesc": "Verificar disponibilidade do provedor antes",
"trackMetrics": "Rastrear Métricas",
@@ -7329,7 +7332,7 @@
"configured": "configurado",
"none": "Nenhum",
"modelOverrideValuePlaceholder": "Valor numérico",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Separado por vírgulas em inglês, por exemplo: low, medium, high",
"addKeyValue": "Adicionar valor da chave",
"noModelOverrides": "Nenhuma substituição configurada para este modelo.",
"modelOverrideLoadFailed": "Falha ao carregar substituições de modelo",
@@ -7380,21 +7383,21 @@
"themeCoral": "Coral",
"adaptiveVolumeRouting": "Roteamento de Volume Adaptativo",
"adaptiveVolumeRoutingDesc": "Escala conexões dinamicamente com base no volume e pressão na taxa de transferência.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "lkgpToggleTitle": "Último provedor funcional conhecido (LKGP)",
+ "lkgpToggleDesc": "Quando ativado, o roteador se lembra de qual provedor forneceu a última resposta bem-sucedida e tenta usá-lo primeiro nas solicitações seguintes.",
"echoRequestedModelTitle": "Eco nome do modelo solicitado nas respostas",
"echoRequestedModelDesc": "Quando ativado, o campo `model` da resposta ecoa o alias ou nome da combinação que o cliente solicitou em vez do nome do modelo upstream. Corrige clientes rigorosos (por exemplo, Claude Desktop) que rejeitam uma resposta cujo modelo não corresponde à solicitação.",
"webSearchRouteTitle": "Roteamento de pesquisa na web",
"webSearchRouteDesc": "Quando uma solicitação inclui uma ferramenta nativa web_search, roteie toda a solicitação para este modelo em vez do padrão — útil para provedores que não implementam a ferramenta de servidor web_search da Anthropic. Deixe em branco para desativar.",
"webSearchRoutePlaceholder": "e.g. openrouter,anthropic/claude-3.5-sonnet",
"paidModelPatternWarning": "Este padrão corresponde apenas a modelos pagos — habilite modelos pagos ou ajuste o padrão.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
+ "clearLkgpCache": "Limpar cache do LKGP",
+ "lkgpCacheCleared": "Cache do LKGP limpo com sucesso",
+ "lkgpCacheClearFailed": "Falha ao limpar o cache do LKGP",
"days": "Dias",
"lkgp": "Modo LKGP",
"lkgpDesc": "Último Provedor Bom Conhecido (Resiliência previsível)",
- "maintenance": "Maintenance",
+ "maintenance": "Manutenção",
"purgeExpiredLogs": "Purgar Logs Expirados",
"purgeLogsFailed": "Falha ao purgar logs",
"logsDeleted": "{count, plural, =0 {Nenhum log expirado removido} one {# log expirado removido} other {# logs expirados removidos}}",
@@ -7413,30 +7416,30 @@
"resetUsageFailed": "Falha ao redefinir dados de uso",
"reset": "Redefinir",
"resetting": "Redefinindo...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
+ "contextOpt": "Otimizado para contexto",
+ "contextOptDesc": "Faz o roteamento com base nos requisitos da janela de contexto e no tamanho da conversa",
+ "cacheOpt": "Otimizado para cache",
+ "cacheOptDesc": "Mantém o mesmo prefixo de prompt reutilizável na mesma conta do provedor",
+ "priorityDesc": "Fallback sequencial — tenta primeiro o provedor 1, depois o provedor 2 e assim por diante",
+ "weightedDesc": "Distribui o tráfego entre os provedores de acordo com pesos percentuais",
+ "modelRoutingTitle": "Regras de roteamento de modelos",
+ "modelRoutingDesc": "Roteia automaticamente os modelos para combos específicos usando padrões glob",
+ "addRule": "Adicionar regra",
+ "routeToCombo": "Rotear para o combo",
+ "selectCombo": "Selecione um combo...",
+ "priorityHint": "Quanto maior, mais cedo será verificado. Use 10+ para padrões específicos.",
+ "patternHint": "Use * para qualquer sequência de caracteres e ? para um único caractere. Não diferencia maiúsculas de minúsculas.",
+ "noRoutingRules": "Nenhuma regra de roteamento configurada. Por padrão, as solicitações usam o combo global.",
+ "routingRuleHint": "Adicione uma regra como claude-opus* -> frontier-combo para rotear solicitações automaticamente.",
+ "deleteRoutingRule": "Excluir esta regra de roteamento de modelos?",
+ "exactMatchMode": "Correspondência exata",
+ "wildcardPatternMode": "Padrão curinga",
+ "exactMatchModeDesc": "Use aliases exatos para IDs de modelos descontinuados ou renomeados.",
+ "wildcardPatternModeDesc": "Use aliases curinga com * e ? quando uma família de modelos precisar ser mapeada para um único destino.",
+ "noExactAliasesConfigured": "Nenhum alias de correspondência exata configurado.",
+ "wildcardRulesTitle": "Regras curinga",
+ "noWildcardAliasesConfigured": "Nenhum alias curinga configurado.",
+ "overview": "Visão geral",
"unknownError": "Erro desconhecido",
"pricingSourceLiteLLM": "LiteLLM",
"clearSyncedPricingConfirm": "Limpar todos os dados de preços sincronizados via LiteLLM?",
@@ -7444,32 +7447,32 @@
"pricingSourceUser": "Override",
"pageDescription": "Page Description",
"pricingSyncStatus": "Status da Sincronização",
- "whitelist": "Whitelist",
+ "whitelist": "Lista de permissões",
"syncDisabled": "Somente sync manual",
"pricingLoadFailed": "Falha ao carregar dados de preços",
"pricingSyncDescription": "Dispare o sync do LiteLLM, inspecione o status e diferencie preços sincronizados de overrides manuais.",
"clearSyncedPricingSuccess": "Dados sincronizados de preços removidos",
"clearSyncedPricingFailedWithReason": "Falha ao limpar dados sincronizados de preços: {reason}",
"pricingSourceDefault": "Padrão",
- "pricingSyncSuccess": "Pricing synced successfully",
+ "pricingSyncSuccess": "Preços sincronizados com sucesso",
"enableSyncError": "Enable Sync Error",
"syncEnabled": "Sincronização periódica ativada",
- "blacklist": "Blacklist",
+ "blacklist": "Lista de bloqueios",
"pricingSourceModelsDev": "models.dev",
"syncedModels": "Modelos Sincronizados",
- "budget": "Budget",
+ "budget": "Orçamento",
"pricingSyncTitle": "Sincronização de Preços",
"pricingResetFailedWithReason": "Falha ao resetar preços: {reason}",
- "tab": "Tab",
+ "tab": "Aba",
"pricingSavedProvider": "Preços salvos para {provider}",
"pricingSyncFailed": "Falha na sincronização de preços",
"pricingSaveFailedWithReason": "Falha ao salvar preços: {reason}",
"pricingResetProvider": "Preços resetados para {provider}",
- "nextSync": "Next Sync",
+ "nextSync": "Próxima sincronização",
"pricingSyncFailedWithReason": "Falha na sincronização de preços: {reason}",
"clearSyncedPricing": "Limpar Sync",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "compressionTitle": "Compressão de prompt",
+ "compressionDesc": "Reduza o uso de tokens compactando os prompts antes de enviá-los aos provedores",
"compressionGuidanceFullGuideLink": "Guia completo de compressão",
"compressionGuidanceShow": "Detalhes",
"compressionGuidanceHide": "Ocultar detalhes",
@@ -7485,41 +7488,41 @@
"tokenSaverInputCompressionDesc": "Reescreva o histórico de chat elegível enquanto preserva código, URLs e intenção.",
"tokenSaverFineTunePrefix": "Ajuste fino de cada motor em",
"tokenSaverFineTuneSuffix": "ou combine engines por solicitação ativada",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Modo de compactação",
+ "compressionModeOff": "Desativado",
+ "compressionModeOffDesc": "Nenhuma compactação aplicada",
+ "compressionModeLite": "Leve",
+ "compressionModeLiteDesc": "Redução de espaços em branco e linhas vazias",
+ "compressionModeStandard": "Padrão (Caveman)",
+ "compressionModeStandardDesc": "Compactação baseada em regras com mais de 30 padrões, preservando blocos de código e URLs",
+ "compressionModeAggressive": "Agressivo",
+ "compressionModeAggressiveDesc": "Resumo + compactação de resultados de ferramentas + envelhecimento progressivo para máxima economia",
"compressionModeUltra": "Ultra",
- "compressionModeUltraDesc": "Heuristic token pruning with optional local SLM fallback",
- "compressionAggressiveConfig": "Aggressive Engine Configuration",
- "compressionAggressiveConfigDesc": "Fine-tune summarization, tool compression, and aging thresholds",
- "compressionUltraConfig": "Ultra Engine Configuration",
- "compressionUltraConfigDesc": "Fine-tune heuristic pruning, SLM fallback, and per-message thresholds",
- "compressionUltraRate": "Keep Rate",
- "compressionUltraMinScore": "Minimum Score Threshold",
- "compressionUltraSlmFallback": "Fallback to Aggressive",
- "compressionUltraModelPath": "SLM Model Path",
+ "compressionModeUltraDesc": "Remoção heurística de tokens com fallback opcional para SLM local",
+ "compressionAggressiveConfig": "Configuração do mecanismo agressivo",
+ "compressionAggressiveConfigDesc": "Ajuste detalhado do resumo, da compactação de ferramentas e dos limites de envelhecimento",
+ "compressionUltraConfig": "Configuração do mecanismo Ultra",
+ "compressionUltraConfigDesc": "Ajuste detalhado da remoção heurística, do fallback para SLM e dos limites por mensagem",
+ "compressionUltraRate": "Taxa de retenção",
+ "compressionUltraMinScore": "Limite mínimo de pontuação",
+ "compressionUltraSlmFallback": "Usar o modo Agressivo como fallback",
+ "compressionUltraModelPath": "Caminho do modelo SLM",
"compressionUltraEngine": "Ultra nível",
"compressionUltraEngineHeuristic": "Heurística (Tier-A, padrão)",
- "compressionUltraEngineSlm": "SLM (LLMLingua-2, opt-in)",
+ "compressionUltraEngineSlm": "SLM (LLMLingua-2, ativação opcional)",
"compressionUltraSlmHint": "O SLM baixa um pequeno modelo ONNX na primeira utilização (cold-start) e recorre de forma transparente à heurística em caso de timeout ou se estiver indisponível.",
"compressionUltraSlmPrewarm": "Pré-aquecer o modelo SLM ao habilitar",
- "compressionSummarizerEnabled": "Enable Summarizer",
- "compressionMaxTokensPerMessage": "Max Tokens Per Message",
- "compressionMinSavings": "Min Savings Threshold",
- "compressionAgingThresholds": "Aging Thresholds",
- "compressionAgingThresholdsDesc": "Number of recent messages kept at each aging tier (higher = more preserved)",
- "compressionToolStrategies": "Tool Result Strategies",
- "compressionToolStrategiesDesc": "Toggle compression strategies for different tool result types",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionSummarizerEnabled": "Ativar gerador de resumos",
+ "compressionMaxTokensPerMessage": "Máximo de tokens por mensagem",
+ "compressionMinSavings": "Limite mínimo de economia",
+ "compressionAgingThresholds": "Limites de envelhecimento",
+ "compressionAgingThresholdsDesc": "Número de mensagens recentes mantidas em cada nível de envelhecimento (maior = mais mensagens preservadas)",
+ "compressionToolStrategies": "Estratégias para resultados de ferramentas",
+ "compressionToolStrategiesDesc": "Ative ou desative estratégias de compactação para diferentes tipos de resultados de ferramentas",
+ "compressionGeneral": "Configurações gerais",
+ "compressionAutoTrigger": "Limite de acionamento automático",
+ "compressionCacheTTL": "TTL do cache",
+ "compressionPreserveSystem": "Preservar prompt do sistema",
"compressionPreserveSystemAlways": "Sempre",
"compressionPreserveSystemWhenNoCache": "Quando não há cache",
"compressionPreserveSystemNever": "Nunca",
@@ -7532,27 +7535,27 @@
"compressionExclusionsSaved": "Salvo",
"compressionExclusionsCount": "{count, plural, one {# exclusão configurada} other {# exclusões configuradas}}",
"compressionExclusionsEmpty": "Nenhuma exclusão configurada — todo modelo/endpoint é elegível para compressão (comportamento padrão).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Configuração do mecanismo Caveman",
+ "compressionCavemanConfigDesc": "Ajuste detalhado do mecanismo de compactação baseado em regras",
"compressionCavemanPanelHint": "Ativado/desativado e o nível são definidos no painel:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Compactar funções das mensagens",
+ "compressionRoleUser": "Usuário",
+ "compressionRoleAssistant": "Assistente",
+ "compressionRoleSystem": "Sistema",
+ "compressionMinLength": "Tamanho mínimo da mensagem",
+ "compressionSkipRules": "Ignorar regras de compactação",
+ "compressionSkipRulesDesc": "Clique nas regras para ignorá-las durante a compressão",
+ "compressionPreservePatterns": "Preservar padrões",
+ "compressionPreservePatternsDesc": "Padrões de regex que nunca são comprimidos (um por linha)",
+ "compressionLogTitle": "Log de compressão",
+ "compressionLogEmpty": "Ainda não há solicitações comprimidas. As estatísticas de compressão aparecerão aqui quando as solicitações forem processadas com a compressão ativada.",
"minutes": "minutos",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
+ "compressionModeRtkDesc": "Filtragem de saída de ferramentas sensível a comandos",
"compressionModeCodexResponses": "Saída de ferramenta do Responses",
"compressionModeCodexResponsesDesc": "Compressão conservadora para saídas elegíveis de shell, patch, busca, build e JSON",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
+ "compressionModeStacked": "Empilhado",
+ "compressionModeStackedDesc": "Filtragem de saída de ferramentas do RTK seguida pela compressão de mensagens do Caveman",
"qdrantTitle": "Qdrant (Memoria vetorial)",
"qdrantDesc": "Opcional. Indexa memorias semanticas em um banco vetorial externo para busca mais rapida.",
"qdrantStatusActive": "Ativo",
@@ -7600,19 +7603,19 @@
"resilienceScope": "Escopo:",
"resilienceTrigger": "Gatilho:",
"resilienceEffect": "Efeito:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
+ "resilienceRequestQueueTitle": "Fila e limite de solicitações",
+ "resilienceAutoEnableApiKeyProviders": "Ativar automaticamente para provedores com chave de API",
+ "resilienceRequestsPerMinute": "Solicitações por minuto",
+ "resilienceMinTimeBetweenRequests": "Tempo mínimo entre solicitações",
+ "resilienceConcurrentRequests": "Solicitações simultâneas",
"resilienceConnectionScopeConcurrentRequests": "Solicitações simultâneas por conexão/escopo de cota",
"resilienceGlobalConcurrentRequests": "Solicitações upstream simultâneas globais (0 = desativado)",
"resilienceMaxQueueWaitTime": "Tempo máximo de espera na fila",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Tempo de espera base",
+ "resilienceUseUpstreamRetryHints": "Usar indicações de nova tentativa do upstream",
+ "resilienceDefaultPerProvider": "Padrão (por provedor)",
+ "resilienceAlwaysOn": "Sempre ativado",
+ "resilienceAlwaysOff": "Sempre desativado",
"routingRemoveEntry": "Remover entrada",
"routingNeedlesSubstrings": "Agulhas (substrings para combinar)",
"routingCaseSensitive": "Diferencia maiúsculas de minúsculas",
@@ -7669,7 +7672,7 @@
"routingAntigravitySignatureDesc": "Controla se o OmniRoute reutiliza apenas assinaturas de pensamento do Gemini armazenadas ou aceita assinaturas fornecidas pelo cliente validadas em fluxos de tool-call compatíveis com Antigravity.",
"routingAntigravitySignatureEnabledLabel": "Ativado",
"routingAntigravitySignatureEnabledDesc": "Comportamento atual. Ignora assinaturas fornecidas pelo cliente e continua usando o fluxo armazenado do OmniRoute.",
- "routingAntigravitySignatureBypassLabel": "Bypass",
+ "routingAntigravitySignatureBypassLabel": "Ignorar",
"routingAntigravitySignatureBypassDesc": "Aceita assinaturas fornecidas pelo cliente após validação leve e recorre à assinatura armazenada quando inválida.",
"routingAntigravitySignatureBypassStrictLabel": "Bypass Estrito",
"routingAntigravitySignatureBypassStrictDesc": "Exige validação completa de protobuf antes de aceitar uma assinatura fornecida pelo cliente.",
@@ -7700,20 +7703,20 @@
"visionBridgePromptHint": "Enviado ao modelo de visão antes que a descrição extraída seja injetada de volta na solicitação original.",
"visionBridgeTimeoutMs": "Tempo limite (ms)",
"visionBridgeMaxImagesPerRequest": "Máximo de imagens por solicitação",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Máximo de etapas de recuo",
+ "resilienceProviderBreakerTitle": "Disjuntor por provedor",
+ "resilienceFailureThreshold": "Limite de falhas",
+ "resilienceDegradationThreshold": "Limite de degradação",
"resilienceResetTimeout": "Redefinir tempo limite",
"resilienceFailureThresholdLabel": "Limite de falha",
"resilienceResetTimeoutLabel": "Redefinir tempo limite",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Tempo de espera da conexão",
"resilienceUseUpstreamRetryHintsLabel": "Use dicas de nova tentativa upstream",
"resilienceUseUpstream429BreakerLabel": "Use dicas upstream 429 (disjuntor)",
"resilienceMaxBackoffStepsLabel": "Etapas máximas de espera",
"resilienceYes": "Sim",
"resilienceNo": "Não",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Padrão",
"storageDatabaseBackupRetention": "Retenção de backup de banco de dados",
"storageDatabaseBackups": "Backups de banco de dados",
"storageBackupRetentionDescription": "Os backups automáticos do SQLite são armazenados em",
@@ -7754,7 +7757,7 @@
"storageRetentionCleanup": "Configurações de Retenção",
"storageRetentionCleanupDesc": "Configure a retenção de registros operacionais e a limpeza de backup do banco de dados.",
"retentionCallDays": "Chamar {count}d",
- "retentionAppDays": "App {count}d",
+ "retentionAppDays": "Aplicativo {count}d",
"retentionRows": "{count} linhas",
"retentionQuotaSnapshots": "Instantâneos de cota (dias)",
"retentionCompressionAnalytics": "Análise de Compressão (dias)",
@@ -7832,14 +7835,14 @@
"compressionDerivedMode": "modo: {mode}",
"compressionAdaptiveOff": "Orçamento de contexto adaptativo: desligado (auto-gatilho legado)",
"compressionAdaptiveTarget": "Adaptativo ({mode}, política: {policy}) — alvo ≈ {target, number} tokens (para uma janela de {contextLimit, number} tokens)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Orçamento de contexto adaptativo",
+ "compressionAdaptiveModeOff": "Desativado (acionamento automático legado)",
+ "compressionAdaptiveModeFloor": "Mínimo (sempre garantir o ajuste)",
+ "compressionAdaptiveModeReplace": "Substituir acionamento automático",
+ "compressionAdaptivePolicy": "Política de orçamento",
+ "compressionAdaptivePolicyReserve": "Reservar saída",
+ "compressionAdaptivePolicyPercentage": "Porcentagem da janela",
+ "compressionAdaptivePolicyAbsolute": "Orçamento absoluto de tokens",
"compressionOutputStylesDescription": "Injeta instruções de modelagem de resposta sem reescrever a saída do provedor. Combine livremente.",
"mcpAccessibilityDescription": "Delimita o escopo das saídas de ferramentas MCP (armazenamento separado).",
"compressionStylesTileSummary": "{tokens, number} tokens economizados · {runs, plural, one {# execução estilizada} other {# execuções estilizadas}}",
@@ -7847,14 +7850,14 @@
"compressionLevel": {
"minimal": "Minima",
"standard": "Padrão",
- "aggressive": "Aggressive",
- "lite": "Lite",
+ "aggressive": "Agressivo",
+ "lite": "Leve",
"full": "Completa",
"ultra": "Ultra"
},
"compressionEngine": {
"session-dedup": {
- "label": "Session Dedup",
+ "label": "Desduplicação de sessão",
"description": "Deduplicação de blocos entre turnos."
},
"ccr": {
@@ -7862,7 +7865,7 @@
"description": "Marcadores de recuperação endereçados por conteúdo."
},
"lite": {
- "label": "Lite",
+ "label": "Leve",
"description": "Limpeza de espaços em branco e formatação."
},
"rtk": {
@@ -7870,11 +7873,11 @@
"description": "Filtragem de saída de comando."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Saída da ferramenta Responses",
+ "description": "Compressão conservadora para saídas compatíveis da ferramenta Responses."
},
"headroom": {
- "label": "Headroom",
+ "label": "Margem disponível",
"description": "Compactação tabular de JSON."
},
"relevance": {
@@ -7882,11 +7885,11 @@
"description": "Pontuação extrativa de frases em relação à última consulta do usuário."
},
"caveman": {
- "label": "Caveman",
+ "label": "Homem das cavernas",
"description": "Compressão de prosa baseada em regras."
},
"aggressive": {
- "label": "Aggressive",
+ "label": "Agressivo",
"description": "Resume e envelhece turnos antigos."
},
"llmlingua": {
@@ -7912,12 +7915,12 @@
"description": "Escada YAGNI: menor mudança funcional, sem abstrações não solicitadas."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Rabo de cavalo (dev sênior preguiçoso)",
+ "description": "Disciplina de dev sênior preguiçoso: suba a escada do YAGNI, corrija a causa raiz e faça o menor diff funcional."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Tenho TDAH (ação primeiro)",
+ "description": "Saída orientada à ação: comece pela próxima ação, numere as etapas, indique uma única próxima etapa concreta e não use preâmbulo."
},
"terse-cjk": {
"label": "CJK conciso (文言)",
@@ -7935,6 +7938,14 @@
"cliproxyapiFallback": "substituto CLIProxyAPI",
"cliproxyapiEnableFallback": "Habilitar substituto CLIProxyAPI",
"cliproxyapiUrl": "URL CLIProxyAPI",
+ "headroomProxyTitle": "Proxy Headroom",
+ "headroomProxyDesc": "URL do proxy opcional Headroom para economizar tokens. Se estiver vazio, usa HEADROOM_URL ou http://localhost:8787.",
+ "headroomProxyUrl": "URL do Headroom",
+ "headroomProxyUrlHint": "URLs de loopback podem ser iniciadas nesta página. URLs externas são apenas sondadas.",
+ "headroomProxySave": "Salvar",
+ "headroomProxyStart": "Iniciar",
+ "headroomProxyStop": "Parar",
+ "headroomProxyExternalHint": "Esta URL não é de loopback, portanto o OmniRoute não iniciará a CLI local.",
"cliproxyapiStatus": "Status CLIProxyAPI",
"cliproxyapiNotDetected": "Não detectado",
"cliproxyapiImportAuthTitle": "Importar contas do CLIProxyAPI",
@@ -7993,11 +8004,11 @@
"codexFastTierDesc": "Injete globalmente service_tier=priority para solicitações do OpenAI Codex.",
"codexFastTierHint": "Quando habilitado, o OmniRoute adiciona service_tier=priority às solicitações de saída do Codex para conexões que ainda não especificam uma camada. O nível de prioridade requer uma chave de API OpenAI Enterprise ou o caminho ChatGPT-auth Codex; outros tipos de chave receberão um erro relacionado ao nível do OpenAI. As configurações por conexão na página do provedor Codex têm precedência.",
"codexFastTierSaveError": "Falha ao atualizar a configuração do Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Ping automático da cota do Codex",
+ "codexAutoPingDesc": "Ativação por conexão: envia uma pequena solicitação logo após a redefinição da janela de sessão do Codex, para que ela não esteja fria quando você precisar usá-la.",
+ "codexAutoPingWarning": "Consome uma pequena quantidade da cota real do Codex a cada ping. Desativado por padrão — ative apenas para conexões das quais você depende ativamente.",
+ "codexAutoPingSaveError": "Falha ao atualizar a configuração de ping automático do Codex",
+ "codexAutoPingToggleAria": "Alternar o ping automático da cota do Codex para {connection}",
"codexFastTierTierLabel": "Camada de serviço",
"codexFastTierTierPriority": "Prioridade",
"codexFastTierTierFlex": "Flex",
@@ -8206,12 +8217,12 @@
"modelLockoutMaxBackoffStepsDescription": "Número máximo de etapas de retrocesso antes que o tempo de espera pare de crescer. O limite máximo de tempo de espera é alcançado primeiro na maioria das configurações, tornando isso um teto de segurança para quando o tempo de espera máximo é aumentado.",
"disableSessionStickiness": "Desabilitar fixação de sessão",
"disableSessionStickinessDesc": "Combos round-robin e aleatórios alternam para uma conexão diferente a cada requisição, em vez de fixar toda a conversa em uma conexão pelo hash da primeira mensagem. Deixe desativado para preservar acertos de cache de prompt em conversas com múltiplos turnos. Sobrescritas por combo têm prioridade.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Roteamento por localidade do cache de prompts",
+ "promptCacheAffinityDesc": "Prefira a mesma conta de provedor para chaves de cache de prompts correspondentes, preservando o failover por integridade e cota.",
+ "reasoningTokenBuffer": "Buffer de tokens de raciocínio",
+ "reasoningTokenBufferDesc": "Permita que o roteamento combinado adicione uma margem a max_tokens somente para modelos de raciocínio conhecidos quando o buffer completo couber em um limite de saída conhecido.",
+ "zeroLatencyOptimizations": "Otimizações de latência zero",
+ "zeroLatencyOptimizationsDesc": "Ative hedging, pulos preditivos de TTFT e compressão proativa de fallback. Deixe desativado para impedir que esses recursos de latência disputem com os destinos ou comprimam solicitações de fallback.",
"credentialRedaction": "Redação de Credenciais",
"credentialRedactionDesc": "Redija chaves de API, tokens e segredos do contexto enviado para provedores e das respostas.",
"enableCredentialRedaction": "Ativar a ocultação de credenciais",
@@ -8368,15 +8379,7 @@
"cliproxyapiHealth": "Saúde",
"cliproxyapiPort": "Porta",
"qdrantHost": "Host",
- "qdrantCollection": "Coleção",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Coleção"
},
"contextRtk": {
"title": "Motor RTK",
@@ -8420,7 +8423,7 @@
"masterSwitchOffAlert": "O interruptor mestre do Token Saver está DESLIGADO — estas configurações não afetarão as solicitações até que você o ligue na página de Endpoint.",
"tokensFiltered": "Tokens filtrados",
"filtersActive": "Filtros ativos",
- "requests": "Requests",
+ "requests": "Solicitações",
"avgSavings": "Economia media",
"simpleMode": "Simples",
"advancedMode": "Avançado",
@@ -8437,7 +8440,7 @@
"discoverSamples": "{count} amostra(s) escaneada(s)",
"discoverHits": "{hits}× em amostras",
"learnHeading": "Aprenda um filtro para um comando",
- "learnCommandPlaceholder": "e.g. npm install",
+ "learnCommandPlaceholder": "ex.: npm install",
"learnButton": "Sugerir filtro",
"learnEmpty": "Nenhuma sugestão ainda. Digite um comando que você executou e escaneie.",
"learnSamplesUsed": "Aprendido com {count} amostra(s) correspondente(s)",
@@ -8469,9 +8472,9 @@
"saveFailed": "Falha ao salvar configuração.",
"previewFailed": "Falha na pré-visualização.",
"panelPointerPrefix": "Ative ou desative esta camada e defina seu nível em",
- "compressionSettings": "Compression Settings",
+ "compressionSettings": "Configurações de compressão",
"panelPointerSuffix": ". Esta página edita apenas sua configuração detalhada.",
- "configuration": "Configuration",
+ "configuration": "Configuração",
"noAdditionalConfiguration": "Nenhuma configuração adicional.",
"save": "Salvar",
"saving": "Salvando…",
@@ -8485,7 +8488,7 @@
"savings": "Economia",
"original": "Original",
"compressed": "Comprimido",
- "diff": "Diff",
+ "diff": "Diferença",
"last7Days": "Últimos 7 dias",
"noDataYet": "Sem dados ainda",
"runs": "Execuções",
@@ -8503,7 +8506,7 @@
"description": "Compactação tabular sem perdas de arrays JSON homogêneos com marcadores explícitos de contagem de linhas."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "Desduplicação de sessão",
"description": "Deduplicação de blocos entre turnos com marcadores de conteúdo recuperáveis."
},
"ccr": {
@@ -8519,7 +8522,7 @@
"description": "Redução rápida de espaços em branco, resultados de ferramentas e URLs de imagem."
},
"aggressive": {
- "name": "Aggressive",
+ "name": "Agressivo",
"description": "Resumo, compressão de resultados de ferramentas e envelhecimento progressivo."
},
"ultra": {
@@ -8632,11 +8635,11 @@
"removeStep": "Remover",
"name": "Nome",
"descriptionField": "Descricao",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
+ "languagePacks": "Pacotes de idiomas",
+ "outputMode": "Modo de saída",
"assignToRouting": "Atribuir a Combos de Roteamento",
"noAssignments": "Nenhum combo de roteamento disponivel",
- "default": "Default",
+ "default": "Padrão",
"setAsDefault": "Definir como default",
"save": "Salvar",
"cancel": "Cancelar",
@@ -8657,7 +8660,7 @@
"defaultFromPanel": "Padrão (do painel)",
"runs": "Executa:",
"defaultConfiguredPrefix": "Padrão — configurado em",
- "compressionSettings": "Compression Settings",
+ "compressionSettings": "Configurações de compressão",
"providerDelegated": "Compressão delegada ao provedor",
"contextEditingClaude": "Edição de Contexto (Claude)",
"contextEditingDescription": "Permite que o provedor limpe blocos antigos de uso de ferramentas no lado do servidor, sem reescrever a mensagem.",
@@ -8665,8 +8668,10 @@
"contextEditingNote": "Atualmente disponível apenas para Claude (Anthropic). É um modo delegado: o provedor limpa blocos antigos de uso de ferramentas no lado do servidor — não reescrevemos a mensagem. Não afeta outros provedores.",
"namedCombos": "Combos nomeados",
"namedCombosDescription": "Salve pipelines diferentes e atribua-os a combos de roteamento específicos.",
+ "activeProfileMasterSwitchOffWarning": "O perfil ativo abaixo não será executado até que a chave mestra \"Compressão de prompts\" seja ativada.",
+ "activeProfileMasterSwitchOffCta": "Ativar nas Configurações",
"comboNamePlaceholder": "Nome do combo",
- "descriptionPlaceholder": "Description",
+ "descriptionPlaceholder": "Descrição",
"nameRequired": "Digite um nome de combo antes de salvar.",
"pipelineRequired": "Adicione pelo menos uma etapa de pipeline antes de salvar.",
"saveComboFailed": "Falha ao salvar combo (HTTP {status}).",
@@ -8677,25 +8682,23 @@
"active": "Ativo",
"languagePacksList": "Pacotes de idioma: {packs}",
"dragToReorder": "Arraste para reordenar a etapa",
- "engine": "Engine",
- "intensity": "Intensidade",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "engine": "Mecanismo",
+ "intensity": "Intensidade"
},
"compressionStudio": {
"noRun": "Nenhuma execução de compressão disponível.",
"liveDataHint": "Os dados em tempo real chegam pelo canal de compressão via WebSocket.",
"cockpitView": "Visão de cockpit",
"canvas": "Canvas",
- "waterfall": "Waterfall",
+ "waterfall": "Cascata",
"replayDone": "Replay concluído",
"pauseReplay": "Pausar replay",
"playReplay": "Reproduzir replay",
"pause": "Pausar",
- "replay": "Replay",
+ "replay": "Repetição",
"resetReplay": "Redefinir replay",
"stepProgress": "etapa {current}/{total}",
- "inlineView": "Inline",
+ "inlineView": "Em linha",
"splitComingSoon": "Visão dividida (em breve)",
"inputPlaceholder": "Cole um prompt, saída de ferramenta ou contexto…",
"activeCombined": "Ativo no fluxo combinado",
@@ -8709,7 +8712,7 @@
"run": "Executar",
"laneRejected": "rejeitado: {reason}",
"error": "erro",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Falha na pré-visualização do pipeline combinado: {reason}",
"combinedFlow": "Fluxo combinado",
"eachLayer": "Cada camada separadamente",
"diff": "Diferença",
@@ -8729,16 +8732,16 @@
"spent": "gasto ${spent} / ${cap}",
"capReached": "teto atingido",
"loadAb": "Carregar A/B",
- "engine": "Engine",
+ "engine": "Mecanismo",
"savings": "Economia",
"retention": "Retenção",
"outputTokensShort": "Tokens de saída",
"fidelity": "Fidelidade",
"playTab": "Reproduzir",
"compareTab": "Comparar",
- "encoderComparison": "Encoder A/B — {count} array(s)",
+ "encoderComparison": "Codificador A/B — {count} matriz(es)",
"encoderWinner": "vencedor: {winner}",
- "encoder": "encoder",
+ "encoder": "codificador",
"bytes": "bytes",
"tokensCl100k": "tokens (cl100k)"
},
@@ -8813,9 +8816,9 @@
"embeddedServices": {
"title": "Serviços Embarcados",
"description": "Engines locais gerenciadas sob demanda — CLIProxyAPI, 9Router, Mux e Bifrost. Acessíveis apenas via loopback.",
- "stateRunning": "Running",
- "stateStopped": "Stopped",
- "stateStarting": "Starting",
+ "stateRunning": "Em execução",
+ "stateStopped": "Parado",
+ "stateStarting": "Iniciando",
"stateStopping": "Parando",
"stateError": "Erro",
"stateNotInstalled": "Não instalado",
@@ -8844,7 +8847,7 @@
"keyRevealEmpty": "Falha na revelação: chave não retornada",
"reveal": "Revelar",
"revealing": "Revelando…",
- "hide": "Hide",
+ "hide": "Ocultar",
"rotateKey": "Rotacionar chave",
"rotating": "Rotacionando…",
"keyAutoHide": "A chave será ocultada automaticamente em 30 segundos.",
@@ -8853,7 +8856,7 @@
"cancel": "Cancelar",
"install9Router": "Instalar 9Router",
"install9RouterDescription": "Baixa e instala o 9Router via npm. Requer aproximadamente 500 MB de espaço em disco.",
- "version": "Version",
+ "version": "Versão",
"versionHint": "Digite “latest” ou uma versão específica (por exemplo, 1.2.3).",
"servicePort": "Porta",
"servicePortHint": "O OmniRoute e o 9Router precisam usar portas diferentes. A porta padrão do 9Router é 20130.",
@@ -8911,11 +8914,11 @@
"advancedConfigDesc": "Ajustar o comportamento da compactação",
"aggressiveSettings": "Configurações agressivas",
"aggressiveSettingsDesc": "Compressão máxima com potenciais compensações de qualidade",
- "requests": "Requests",
+ "requests": "Solicitações",
"tokensSaved": "Tokens salvos",
"savingsPercent": "Economia %",
"avgLatency": "Latencia media",
- "languagePacks": "Language Packs",
+ "languagePacks": "Pacotes de idiomas",
"languagePacksDesc": "Ative regras de compressao para idiomas especificos.",
"labelAutoTrigger": "Compactar automaticamente quando o contexto exceder",
"labelCompressionRate": "Força de compressão",
@@ -8932,7 +8935,7 @@
"masterDisabledWarning": "O interruptor mestre do Token Saver está DESLIGADO — essas configurações não afetarão as solicitações até que você o ative em Configurações de Compressão ou o altere aqui.",
"outputMode": "Modo de saída",
"outputModeDesc": "Instrui o LLM a responder em formato curto e compacto.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Modo de saída",
"quickSettings": "Configurações rápidas",
"quickSettingsDesc": "Configurações básicas de compactação para começar",
"autoClarity": "Bypass Auto-Clarity",
@@ -8991,7 +8994,7 @@
"ideCliIntegrations": "Integrações IDE/CLI",
"inMemoryNote": "Nota: os eventos são armazenados em memória e reiniciados quando o servidor reinicia.",
"ok": "OK",
- "errorShort": "ERR",
+ "errorShort": "ERRO",
"formatConverter": "Conversor de Formato",
"formatConverterDescription": "Cole ou digite um corpo de requisição JSON. O tradutor detectará automaticamente o formato de origem e converterá para o formato de destino. Use isso para depurar como o OmniRoute traduz requisições entre formatos (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (intermediário) → {target}",
@@ -9037,20 +9040,20 @@
"passed": "aprovados",
"failed": "falharam",
"passedIconLabel": "✅ Aprovado",
- "chunks": "chunks",
+ "chunks": "blocos",
"scenarioSimpleChat": "Chat Simples",
"scenarioToolCalling": "Chamada de Ferramenta",
"scenarioMultiTurn": "Multiturno",
"scenarioThinking": "Raciocínio",
"scenarioSystemPrompt": "Prompt de Sistema",
- "scenarioStreaming": "Streaming",
+ "scenarioStreaming": "Transmissão",
"templateNames": {
"simple-chat": "Chat Simples",
"tool-calling": "Chamada de Ferramenta",
"multi-turn": "Multiturno",
"thinking": "Raciocínio",
"system-prompt": "Prompt de Sistema",
- "streaming": "Streaming",
+ "streaming": "Transmissão",
"vision": "Visão",
"schema-coercion": "Coerção de esquema"
},
@@ -9180,7 +9183,7 @@
"scenarioVision": "Visão (compreensão da imagem)",
"scenarioSchemaCoercion": "Coerção de esquema (saída estruturada)",
"techniques": "Técnicas:",
- "friendlyTitle": "Translator",
+ "friendlyTitle": "Tradutor",
"friendlySubtitle": "Use sua app existente com qualquer provider — sem reescrever código.",
"conceptHeadline": "Sua app fala o \"idioma\" de uma API. O Translator converte para usar outro provider.",
"conceptDiagramAppLabel": "Sua app",
@@ -9192,8 +9195,8 @@
"conceptDiagramExampleTarget": "Gemini",
"conceptHowItWorksToggle": "Como funciona",
"conceptHowItWorksBody": "Sua app envia um pedido no formato dela. O Translator detecta o formato, converte via OpenAI como hub intermediário (ou direto, quando há tradutor direto disponível), envia ao provider escolhido e devolve a resposta convertida de volta no formato da sua app.",
- "tabTranslate": "Translate",
- "tabMonitor": "Monitor",
+ "tabTranslate": "Traduzir",
+ "tabMonitor": "Monitorar",
"tabTranslateAriaLabel": "Ir para a aba Translate",
"tabMonitorAriaLabel": "Ir para a aba Monitor",
"simpleAppUsesLabel": "Minha app usa",
@@ -9206,7 +9209,7 @@
"simpleModeLabel": "Modo",
"simpleModePreview": "Só ver tradução",
"simpleModeSend": "Enviar e ver resposta",
- "simpleAdvancedToggle": "Advanced",
+ "simpleAdvancedToggle": "Avançado",
"simpleInputPanelTitle": "Entrada",
"simpleInputPanelHint": "Mensagem em texto livre ou exemplo pronto",
"simpleResultPanelTitle": "Tradução + Resposta",
@@ -9217,17 +9220,17 @@
"narratedError": "Falhou: {reason}",
"narratedSeeTranslatedJson": "ver JSON traduzido",
"narratedSeePipeline": "ver pipeline",
- "advancedSectionTitle": "Advanced",
+ "advancedSectionTitle": "Avançado",
"advancedSectionSubtitle": "Raw JSON, pipeline e ferramentas técnicas. Tudo aqui é igual às tabs antigas — apenas reorganizado.",
"advancedRawJsonTitle": "Raw JSON (auto-detecção + Monaco)",
"advancedRawJsonSubtitle": "Cole um request JSON; o formato é detectado automaticamente.",
"advancedPipelineTitle": "Pipeline OpenAI intermediário",
"advancedPipelineSubtitle": "Visualize cada passo da tradução (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Transformador de fluxo (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Converte SSE Chat Completions em Responses API.",
"advancedTestBenchTitle": "Test Bench (8 cenários)",
"advancedTestBenchSubtitle": "Roda todos os cenários e reporta pass/fail + compatibilidade %.",
- "advancedCompressionTitle": "Compression Preview",
+ "advancedCompressionTitle": "Prévia da compressão",
"advancedCompressionSubtitle": "Estime economia de tokens em diferentes modos.",
"monitorOriginHint": "Eventos gerados pelo Translate ou pelo pipeline principal aparecem aqui em tempo real.",
"monitorEmptyCta": "Volte para a aba Translate e envie um request — ele aparecerá aqui.",
@@ -9291,7 +9294,7 @@
"kimiMonthlyLimit": "Limite mensal",
"kimiMonthlyLimitUnlimited": "Ilimitado",
"kimiAdditionalCredits": "Créditos adicionais",
- "loggerTab": "Logger",
+ "loggerTab": "Registrador",
"proxyTab": "Proxy",
"budgetManagement": "Gerenciamento de Orçamento",
"budgetSaved": "Limites de orçamento salvos",
@@ -9321,7 +9324,7 @@
"promptCache": "Cache de Prompt",
"systemHealth": "Saúde do Sistema",
"entries": "Entradas",
- "activeCount": "{count} active",
+ "activeCount": "{count} ativos",
"openCircuitBreakersDetected": "Disjuntores abertos detectados",
"hitRate": "Taxa de Acerto",
"hitsMisses": "Acertos / Erros",
@@ -9340,7 +9343,7 @@
"evaluateStepDescription": "As respostas são comparadas com os critérios esperados. Veja aprovado/reprovado por caso com métricas de latência e feedback detalhado.",
"evalsStrategyContainsLabel": "Contém",
"evalsStrategyExactLabel": "Correspondência Exata",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Expressão regular",
"evalsStrategyCustomLabel": "Lógica Personalizada",
"evalsStrategyContainsDescription": "Verifica se a saída do LLM contém a substring esperada.",
"evalsStrategyExactDescription": "Verifica se a saída do LLM corresponde exatamente ao valor esperado.",
@@ -9377,7 +9380,7 @@
"runAllSuites": "Executar tudo",
"runAllRunning": "Correndo tudo...",
"runAllProgress": "Executando {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# suíte falhou} other {# suítes falharam}}",
"runAllCompleted": "Executou {suites} suítes — {passed} aprovado, {failed} falhou",
"runAllCompletedWithFailures": "Executei suítes {completed}; {failedSuites} não foi concluído",
"runningProgress": "Executando {current}/{total}...",
@@ -9440,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Falha ao atualizar a visibilidade da cota",
"account": "Conta",
"modelQuotas": "Cotas de Modelo",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Última atualização",
"actions": "Ações",
"refreshQuota": "Atualizar cota",
"today": "Hoje",
@@ -9462,13 +9465,13 @@
"noQuotaDataAvailable": "Nenhum dado de cota disponível",
"noAccountsForTierFilter": "Nenhuma conta encontrada para o filtro de plano",
"tierAll": "Todos",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "tierEnterprise": "Empresarial",
+ "tierTeam": "Equipe",
+ "tierBusiness": "Negócios",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "Gratuito",
"tierLite": "Lite",
"tierUnknown": "Desconhecido",
"statTotal": "Total",
@@ -9519,26 +9522,26 @@
"suiteImportInvalid": "Conjunto de avaliação JSON inválido",
"suiteBuilderCloneSuffix": "copiar",
"suiteBuilderImportedSuite": "Suíte Importada",
- "scorecardTitle": "Scorecard",
+ "scorecardTitle": "Painel de resultados",
"evalApiKey": "Chave de API do Proxy",
"scorecardPassRate": "Taxa Geral de Aprovação",
"targetTypeModel": "Modelo",
- "actualOutputLabel": "Actual Output",
+ "actualOutputLabel": "Saída real",
"evalTargetHint": "Os padrões da suíte preservam o modelo configurado em cada caso de teste.",
"suiteBuilderDeleted": "Suíte customizada removida",
"suiteBuilderCaseCardHint": "Defina um prompt e uma asserção para esta checagem de regressão.",
- "nextResetUtc": "Next reset (UTC)",
+ "nextResetUtc": "Próxima redefinição (UTC)",
"scorecardHint": "Últimas taxas de aprovação armazenadas para execuções e alvos recentes.",
"suiteLatestRunsHint": "As execuções armazenadas continuam disponíveis após atualizar a página.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
+ "saving": "Salvando",
+ "suiteBuilderCaseModelLabel": "Modelo (opcional)",
"evalControlsTitle": "Alvos de Execução",
"suiteBuilderEditTitle": "Editar Suíte Customizada de Eval",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
+ "suiteBuilderCaseStrategyLabel": "Estratégia de validação",
"notifySelectDifferentCompareTarget": "Escolha um alvo de comparação diferente",
"recentRunsHint": "O histórico sobrevive ao refresh e agora registra comparações combo-aware.",
"evalCompareHint": "Comparação lado a lado opcional usando a mesma suíte.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
+ "suiteBuilderCaseInvalid": "Este caso contém erros de validação. Corrija-os antes de salvar.",
"historyEmpty": "Ainda não há execuções persistidas",
"suiteBuilderUpdated": "Suíte customizada atualizada",
"resetInterval": "Intervalo de reset",
@@ -9548,17 +9551,17 @@
"evalCompareOptional": "Sem alvo de comparação",
"suiteBuilderDeleteFailed": "Falha ao excluir a suíte customizada",
"suiteBuilderCaseSystemPromptPlaceholder": "Instrução de sistema opcional para este caso.",
- "scorecardCases": "Cases",
+ "scorecardCases": "Casos",
"runCompletedWithScore": "Execução concluída com {score}% de aprovação",
- "suiteBuilderCustomBadge": "Custom",
+ "suiteBuilderCustomBadge": "Personalizado",
"targetSuiteDefaults": "Padrões da suíte",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
+ "suiteBuilderDeleteConfirm": "Tem certeza de que deseja excluir esta suíte? Esta ação não pode ser desfeita.",
"suiteBuilderNameLabel": "Nome da Suíte",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
+ "scorecardSuites": "Suítes",
+ "evalCompareTarget": "Comparar destino",
"suiteBuilderCaseModelPlaceholder": "gpt-4o-mini",
"evalControlsHint": "Escolha um modelo ou combo, compare opcionalmente dois alvos e persista o histórico no SQLite.",
- "recentRunsTitle": "Recent Runs",
+ "recentRunsTitle": "Execuções recentes",
"suiteBuilderCaseSystemPromptLabel": "Prompt de Sistema",
"suiteBuilderCaseExpectedPlaceholder": "Texto ou regex que deve aparecer na resposta do modelo.",
"suiteBuilderCaseExpectedPlaceholderContains": "por exemplo def fibonacci",
@@ -9566,9 +9569,9 @@
"suiteBuilderCaseExpectedPlaceholderRegex": "por exemplo ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Use uma expressão regular JavaScript sem quebrar barras.",
"suiteBuilderNamePlaceholder": "Suíte de regressão de suporte ao cliente",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
+ "suiteBuilderAddCase": "Adicionar caso",
+ "cancel": "Cancelar",
+ "evalTarget": "Destino",
"suiteBuilderCaseNameLabel": "Nome do Caso",
"weeklyLimitUsd": "Limite semanal (USD)",
"suiteBuilderCaseUserPromptPlaceholder": "Escreva a entrada exata do usuário para repetir durante o eval.",
@@ -9577,45 +9580,45 @@
"daily": "Diário",
"resultErrorLabel": "Erro",
"suiteBuilderBuiltInBadge": "Padrão",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderCaseCardTitle": "Caso de teste",
"suiteBuilderDuplicateCase": "Duplicar",
"weeklyLimitPlaceholder": "ex.: 25.00",
"suiteBuilderCaseTagsHint": "Tags separadas por vírgula e armazenadas com o caso.",
"notifyEvalRunFailedWithReason": "Falha na execução da avaliação: {reason}",
"weekly": "Semanal",
"runEvalRunning": "Executando...",
- "delete": "Delete",
+ "delete": "Excluir",
"resetTimeUtc": "Horário do reset (UTC)",
"evalApiKeyAuto": "Usar sessão do dashboard / sem chave",
"suiteBuilderDescriptionPlaceholder": "Explique o que esta suíte valida e por que ela importa.",
"targetComparisonTitle": "Comparação de Alvos",
- "save": "Save",
+ "save": "Salvar",
"suiteBuilderCreated": "Suíte customizada criada",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
+ "suiteLatestRuns": "Últimas execuções",
+ "suiteBuilderCaseExpectedLabel": "Valor esperado",
+ "historyLatency": "Latência",
"suiteBuilderCaseTagsPlaceholder": "support, regression, billing",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
+ "targetTypeCombo": "Combinado",
+ "scorecardPassed": "Aprovado",
+ "suiteBuilderCaseTagsLabel": "Etiquetas",
+ "suiteBuilderNewSuite": "Nova suíte",
"notifyEvalLoadFailed": "Falha ao carregar os dados do dashboard de evals",
"notConfigured": "Não configurado",
"suiteBuilderCaseNamePlaceholder": "Resposta sobre política de reembolso",
"intervalLabel": "Intervalo",
- "suiteBuilderCreateAction": "Create Suite",
+ "suiteBuilderCreateAction": "Criar suíte",
"suiteBuilderCasesHint": "Cada caso envia um prompt real pelo OmniRoute e valida a resposta com contains, exact ou regex.",
- "suiteBuilderUpdatedAt": "Updated",
+ "suiteBuilderUpdatedAt": "Atualizado",
"errorBadge": "Erro",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
+ "suiteBuilderCasesTitle": "Casos de teste",
+ "edit": "Editar",
"monthly": "Mensal",
"suiteBuilderCasesRequired": "Adicione pelo menos um caso antes de salvar",
- "weeklyLimitSummary": "Weekly budget limit summary",
+ "weeklyLimitSummary": "Resumo do limite do orçamento semanal",
"suiteBuilderDescriptionLabel": "Descrição",
"targetComparisonHint": "A mesma suíte foi executada contra múltiplos alvos.",
"compareCompletedWithScore": "Comparação concluída. A execução principal terminou com {score}% de aprovação",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "staleQuotaTooltip": "Falha na última atualização — exibindo dados em cache",
"quotaThresholdLabel": "Minutos restantes",
"quotaCutoffsColumnHelp": "Interrompa as solicitações quando a cota restante cair para esse percentual ou menos.",
"quotaCutoffsButtonDefault": "Padrão",
@@ -9638,7 +9641,7 @@
"budgetKpiBlocked": "Bloqueado",
"budgetKpiAtRisk": "Em risco",
"budgetKpiActiveKeys": "Chaves ativas",
- "budgetPageTitle": "Budget",
+ "budgetPageTitle": "Orçamento",
"budgetPageDescription": "Defina limites de gastos diários, semanais e mensais para cada chave de API.",
"budgetTemplateStorageHint": "{count, plural, one {# modelo} other {# modelos}} · edite via localStorage:",
"budgetAboveLimitShort": "acima do limite ⚠",
@@ -9664,7 +9667,7 @@
"alerting": "Alertando",
"warning": "Aviso",
"safe": "Seguro",
- "no-limit": "No limit"
+ "no-limit": "Sem limite"
},
"budgetColumnKey": "Chave",
"budgetColumnToday": "Hoje",
@@ -9749,7 +9752,7 @@
"proxy": "Proxy",
"level": "Nível",
"directNative": "Direto (nativo)",
- "combo": "Combo",
+ "combo": "Combinado",
"inputTokens": "E:",
"outputTokens": "S:"
},
@@ -9761,7 +9764,7 @@
"usageByAccount": "Uso por Conta",
"failedToLoad": "Falha ao carregar estatísticas de uso.",
"tokenHealth": "Saúde dos Tokens",
- "totalOAuth": "Total OAuth",
+ "totalOAuth": "Total de OAuth",
"healthy": "Saudável",
"warning": "Aviso",
"errored": "Com Erro",
@@ -9867,7 +9870,7 @@
"backToLogin": "Voltar para o Login",
"forgotPassword": "Esqueceu a senha?",
"continueWithOidc": "Continuar com OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Senha padrão: CHANGEME (a menos que INITIAL_PASSWORD tenha sido definida)",
"Authorization": "Autorização",
"Content-Disposition": "Disposição de conteúdo",
"waitingForAuthorization": "Aguardando autorização...",
@@ -9876,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Aguardando autorização antigravidade...",
"waitingForQoderAuthorization": "Aguardando autorização do Qoder...",
"exchangingCodeForTokens": "Trocando código por tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Versão incompatível do Node.js",
+ "nodeIncompatibleDesc": "Você está executando o Node.js {version}, que não atende à política de runtimes seguros compatíveis com o OmniRoute. Use uma versão corrigida do Node.js 20.x ou 22.x LTS.",
+ "nodeIncompatibleFixLabel": "Correção: instale uma versão corrigida do Node.js 22 LTS",
+ "nodeIncompatibleHint": "O OmniRoute requer Node.js 22.22.2+ (22.x LTS) ou 24.0.0+ (24.x LTS). O Node 24 LTS é recomendado.",
"resetViaAppDataTitle": "Redefinir via Dados do App",
"resetViaAppDataDescription": "Exclua o arquivo de configurações do diretório de dados do aplicativo para redefinir sua senha:",
"quitDesktopApp": "Saia do aplicativo desktop OmniRoute completamente",
@@ -9937,7 +9940,7 @@
"navigateHome": "Navegar para a página inicial",
"toggleMenu": "Alternar menu",
"featuresLink": "Recursos",
- "docsLink": "Docs",
+ "docsLink": "Documentação",
"github": "GitHub",
"versionLive": "v1.0 já está no ar",
"oneEndpoint": "Um Endpoint para",
@@ -9992,11 +9995,11 @@
"dataLocationWindows": "Windows:",
"product": "Produto",
"dashboardLink": "Painel",
- "changelog": "Changelog",
+ "changelog": "Histórico de alterações",
"resources": "Recursos",
"documentation": "Documentação",
"npm": "NPM",
- "legal": "Legal",
+ "legal": "Informações jurídicas",
"mitLicense": "Licença MIT",
"footerTagline": "O endpoint unificado para geração de IA. Conecte, roteie e gerencie seus provedores de IA com facilidade.",
"copyright": "© {year} OmniRoute. Todos os direitos reservados.",
@@ -10037,8 +10040,8 @@
"clientCompatibility": "Compatibilidade de Clientes",
"protocolsToc": "Protocolos",
"apiReference": "Referência da API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Referência da API de gerenciamento",
+ "managementApiDescription": "Endpoints de automação para o registro de proxies, atribuições de escopo e migração de proxies legados.",
"method": "Método",
"path": "Caminho",
"notes": "Notas",
@@ -10048,7 +10051,7 @@
"supportsChat": "Suporta endpoints de chat e responses.",
"oauthAutoRefresh": "Conexão OAuth com atualização automática de token.",
"fullStreaming": "Suporte completo a streaming para todos os modelos.",
- "docsLabel": "Docs",
+ "docsLabel": "Documentação",
"docsHeroDescription": "Gateway de IA para LLMs multi-provedor. Um endpoint para OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor e mais de 20 provedores.",
"openDashboard": "Abrir Painel",
"endpointPage": "Página de Endpoint",
@@ -10079,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Instale o OmniRoute como um aplicativo da Web progressivo em navegadores Android, iOS e desktop.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Execute o OmniRoute sem interface gráfica no Android por meio do Termux. Acesse o painel pelo navegador do seu dispositivo móvel.",
"featureRoutingTitle": "Roteamento Multi-Provedor",
"featureRoutingText": "Roteie requisições para mais de 30 provedores de IA por um único endpoint compatível com OpenAI. Suporta APIs de chat, responses, áudio e imagem.",
"featureCombosTitle": "Combos e Balanceamento",
@@ -10121,7 +10124,7 @@
"clientCursorBullet1Suffix": "para modelos do Cursor.",
"clientCursorBullet2": "Conexão OAuth - faça login na página de Provedores.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
+ "clientClaudeBullet1Prefix": "Uso",
"clientClaudeBullet1Middle": "(Claude) ou",
"clientClaudeBullet1Suffix": "(Antigravity) como prefixo.",
"clientWindsurfTitle": "Windsurf",
@@ -10162,13 +10165,13 @@
"endpointRewriteChatNote": "Auxiliar de reescrita para clientes sem /v1.",
"endpointRewriteResponsesNote": "Auxiliar de reescrita para Responses sem /v1.",
"endpointRewriteModelsNote": "Auxiliar de reescrita para descoberta de modelos sem /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Liste os itens salvos no registro de proxies (com suporte a paginação).",
+ "mgmtProxiesCreateNote": "Crie um item de proxy reutilizável no registro.",
+ "mgmtProxiesHealthNote": "Obtenha métricas de integridade das últimas 24 horas/em janela móvel para cada proxy salvo a partir dos logs de proxy.",
+ "mgmtProxiesBulkAssignNote": "Atribua ou remova um proxy de vários IDs de escopo em uma única solicitação.",
+ "mgmtAssignmentsListNote": "Liste as atribuições de proxy por scope, scope_id ou proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Atribua ou remova o proxy para o escopo global/provider/account/combo.",
+ "mgmtLegacyMigrationNote": "Importe mapas proxyConfig legados para atribuições do registro.",
"modelPrefixesDescriptionStart": "Use o prefixo do provedor antes do nome do modelo para rotear para um provedor específico. Exemplo:",
"modelPrefixesDescriptionEnd": "roteia para o GitHub Copilot.",
"provider": "Provedor",
@@ -10217,7 +10220,7 @@
"mcpToolsOneProxyDesc": "Gerencie proxies de saída, alterne IPs residenciais e inspecione a integridade do proxy.",
"mcpToolsMemoryTitle": "Memória",
"mcpToolsMemoryDesc": "Busque, adicione e limpe entradas persistidas de memória do OmniRoute na mesma superfície de protocolo.",
- "mcpToolsSkillsTitle": "Skills",
+ "mcpToolsSkillsTitle": "Habilidades",
"mcpToolsSkillsDesc": "Liste skills habilitadas, ative, execute e inspecione histórico de execuções a partir do MCP.",
"featureAutoComboTitle": "Roteamento AutoCombo",
"featureAutoComboText": "Use roteamento por intenção, fallback emergencial, seleção por contexto e perfis de resiliência sem mudar o payload do cliente.",
@@ -10355,20 +10358,20 @@
"versionCommand": "Comando de Versão",
"spawnArgs": "Argumentos",
"addAgent": "Adicionar Agente",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "scanning": "Verificando o sistema em busca de agentes de CLI...",
+ "opencodeIntegration": "Integração com o OpenCode",
+ "opencodeDetected": "opencode {version} detectado",
+ "opencodeDesc": "Gere um {configFile} pronto para uso com a URL base do OmniRoute e todos os modelos disponíveis — coloque-o na raiz do seu projeto e execute {command}.",
+ "downloadConfig": "Baixar {file}",
+ "downloaded": "Baixado!",
+ "setupGuideTitle": "Guia de configuração",
+ "openCliTools": "Abrir ferramentas de CLI",
+ "setupGuideDetectCliTitle": "Detectar CLIs instaladas",
+ "setupGuideDetectCliDesc": "Clique em Atualizar após instalar ou atualizar uma CLI para que o OmniRoute possa verificar novamente os binários e as versões.",
+ "setupGuideCustomAgentTitle": "Registrar binário personalizado",
+ "setupGuideCustomAgentDesc": "Use Adicionar agente personalizado quando sua CLI não estiver na lista integrada. Informe o nome do binário e o comando de versão.",
+ "setupGuideCommandMissingTitle": "Corrigir \"comando não encontrado\"",
+ "setupGuideCommandMissingDesc": "Verifique se o comando da CLI existe no PATH, abra uma nova sessão do terminal e execute Atualizar novamente.",
"cliToolsRedirectTitle": "Procurando configuração de cliente?",
"cliToolsRedirectDesc": "Use CLI Tools quando quiser que seu editor ou cliente de terminal chame o OmniRoute por HTTP em vez de ser iniciado localmente.",
"spawnArgsPlaceholder": "ex.: --quiet, --json",
@@ -10542,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Gerenciamento de cache",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Atualizar",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Entradas na memória",
+ "memoryEntriesSub": "LRU em memória",
+ "dbEntries": "Entradas no banco de dados",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
+ "cacheHits": "Acertos do cache",
+ "cacheHitsSub": "de {total} no total",
+ "tokensSaved": "Tokens economizados",
+ "tokensSavedSub": "Estimativa com base nos acertos",
+ "hitRate": "Taxa de acertos",
+ "performance": "Desempenho do cache",
+ "autoRefresh": "Atualização automática a cada {seconds}s",
+ "hits": "Acertos",
+ "misses": "Erros",
"total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "behavior": "Comportamento do cache",
+ "behaviorDeterministic": "Somente solicitações sem streaming com temperature=0 são armazenadas em cache.",
+ "behaviorBypass": "Ignore o cache com o cabeçalho {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL padrão: 30 minutos. Configure por meio de {envVar}.",
+ "idempotency": "Camada de idempotência",
+ "activeDedupKeys": "Chaves de desduplicação ativas",
+ "dedupWindow": "Janela de desduplicação",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Falha ao limpar o cache.",
+ "unavailable": "Cache indisponível",
+ "unavailableDesc": "Não foi possível obter as estatísticas do cache. Verifique se o servidor está em execução.",
"loadingCacheAria": "Carregando cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Cache de prompts (no provedor)",
+ "semanticCache": "Cache semântico",
+ "promptCacheSectionDesc": "Exibe a atividade de cache de prompts no provedor com base no histórico de uso, permitindo que você veja onde o controle de cache está ativo e quanto conteúdo de entrada está sendo reutilizado.",
+ "promptTrendDesc": "Volume de solicitações por hora, cobertura do cache e volume de leituras do cache nas últimas 24 horas.",
+ "cachedRequests": "Solicitações em cache",
+ "cachedRequests24h": "Solicitações em cache (24 h)",
+ "cacheHitRate": "Taxa de acertos do cache",
+ "cacheRate": "Taxa de cache",
+ "cacheRateDesc": "do total de solicitações",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Métricas do cache de prompts",
+ "withCacheControl": "Com controle de cache",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Taxa de reutilização do cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Economia de custos estimada",
+ "lastUpdated": "Última atualização",
+ "hoursTracked": "horas monitoradas",
+ "busiestHour": "Horário de maior movimento",
+ "peakCacheRate": "Taxa máxima de cache",
+ "trendHour": "Hora",
+ "activityVolume": "Atividade",
+ "requestsShort": "solicitações",
+ "inputShort": "Entrada",
+ "cachedShort": "Em cache",
+ "writeShort": "Gravação",
+ "resetting": "Redefinindo...",
+ "resetMetrics": "Redefinir métricas",
+ "byProvider": "Detalhamento por provedor",
+ "providerCacheRateDesc": "Cada provedor exibe o total de tokens de entrada, tokens lidos do cache e tokens gravados no cache para que você possa verificar a taxa de reutilização em relação aos totais brutos.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Solicitações",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Tendência do cache (24 h)",
+ "peakCached": "Pico em cache",
+ "cached": "Em cache",
+ "overview": "Visão geral",
"tableProvider": "Provedor",
"tableModel": "Modelo",
"performanceTitle": "Desempenho",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "O cache de respostas determinístico do próprio OmniRoute. Quando ativado, solicitações repetidas, sem streaming e com temperature=0 podem ser atendidas localmente sem acessar o provedor upstream.",
+ "semanticCacheDisabledDesc": "O cache semântico está desativado. O OmniRoute ignorará a reutilização local de respostas até que você o reative nas Configurações.",
+ "semanticEntriesDesc": "Registros persistentes do cache semântico atualmente armazenados no SQLite. A atividade do cache de prompts no lado do provedor não é exibida aqui.",
+ "searchEntries": "Pesquisar entradas...",
+ "search": "Pesquisar",
+ "loading": "Carregando...",
+ "entriesLoadError": "Falha ao carregar as entradas do cache semântico.",
+ "noEntries": "Nenhuma entrada de cache encontrada",
+ "noPromptCacheData": "Ainda não foi registrada nenhuma atividade de cache de prompts no lado do provedor.",
+ "noTrendData": "Nenhuma atividade de cache de prompts foi registrada nas últimas 24 horas.",
+ "signature": "Assinatura",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
+ "created": "Criado em",
+ "expires": "Expira em",
+ "actions": "Ações",
"deduplicatedRequests": "Requisições Desduplicadas",
"savedCalls": "Chamadas API Poupadas",
"totalProcessed": "Total Processado",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "disabled": "Desativado",
+ "totalRequests": "Total de solicitações",
"reasoningCache": "Repetição do raciocínio",
"reasoningCacheDesc": "Preserva o pensamento do modelo para fluxos de chamada de ferramentas multivoltas",
"reasoningEntries": "Entradas ativas",
@@ -10673,7 +10676,7 @@
"minutesAgo": "{minutes}m atrás",
"hoursAgo": "{hours}h atrás",
"daysAgo": "{days}d atrás",
- "entries": "Entries"
+ "entries": "Entradas"
},
"proxyConfigModal": {
"levelGlobal": "Globais",
@@ -10682,7 +10685,7 @@
"levelKey": "Chave",
"levelDirect": "Direto (sem proxy)",
"titleGlobal": "Configuração de proxy global",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "Proxy {level} — {label}",
"loading": "Carregando configuração de proxy...",
"inheritingFrom": "Herdando de",
"source": "Fonte",
@@ -10773,7 +10776,7 @@
"devinDesktopPasteDescription": "Cole uma chave de API Devin existente de uma sessão Devin autenticada. A disponibilidade de exportação da chave e os passos variam conforme a versão e a conta do Devin.",
"devinPasteDescription": "Forneça sua WINDSURF_API_KEY (obtida através do `devin auth login`, ou via o comando \"Windsurf: Provide Auth Token\" do Windsurf IDE).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json do Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Chave da API / Token",
"saving": "Salvando…",
@@ -10789,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Conecte o Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Entrar com o Cursor",
+ "tabImport": "Importar token",
+ "loginDescription": "Abre o login do Cursor no navegador. Funciona no Docker — aprove no navegador do host e depois volte aqui.",
+ "loginWithCursor": "Entrar com o Cursor",
+ "startingLogin": "Iniciando…",
+ "waitingApproval": "Aguardando a aprovação do login do Cursor…",
+ "openUrlHint": "Se o navegador não abriu:",
+ "openLoginLink": "Abrir página de login",
+ "cancelLogin": "Cancelar login",
"autoDetecting": "Detecção automática de tokens...",
"readingFromCursor": "Lendo do Cursor IDE ou cursor-agent",
"tokensAutoDetected": "Tokens detectados automaticamente com sucesso no Cursor IDE!",
"cursorNotDetected": "Cursor IDE não detectado. Cole manualmente seu token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Está usando o Docker? Prefira Entrar com o Cursor. A importação automática do IDE e o cursor-agent geralmente não estão disponíveis dentro do contêiner. Consulte docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Token de acesso",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Token de atualização",
+ "refreshTokenPlaceholder": "Opcional — permite a atualização automática do token",
"required": "*",
"accessTokenPlaceholder": "O token de acesso será preenchido automaticamente...",
"machineId": "ID da máquina",
@@ -10818,9 +10821,9 @@
"errorAutoDetectFailed": "Falha na detecção automática de tokens",
"errorEnterToken": "Por favor insira o token de acesso",
"errorImportFailed": "Falha na importação",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Falha ao iniciar o login do Cursor",
+ "errorLoginPoll": "Falha no login do Cursor",
+ "errorLoginTimeout": "O tempo limite do login do Cursor foi atingido — tente novamente"
},
"pricingModal": {
"title": "Configuração de preços",
@@ -10847,9 +10850,9 @@
"selectProxy": "Selecionar {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importar versão legada",
+ "bulkAssign": "Atribuir em massa",
+ "addProxy": "Adicionar proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10858,15 +10861,15 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Testar",
+ "edit": "Editar",
+ "delete": "Excluir",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Tipo",
"labelFamily": "Família IP",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automático (pilha dupla)",
"familyIpv4": "Apenas IPv4",
"familyIpv6": "Apenas IPv6",
"familyHint": "Família de endereços de saída. Auto mantém dual-stack; IPv4/IPv6 fixa este proxy naquela família (impede um vazamento v4 sob um proxy apenas IPv6).",
@@ -10895,7 +10898,7 @@
"scopeGlobal": "global",
"scopeProvider": "provedor",
"scopeAccount": "conta",
- "scopeCombo": "combo",
+ "scopeCombo": "combinação",
"bulkImportErrorMissingName": "NOME ausente",
"bulkImportErrorMissingHost": "HOST ausente",
"bulkImportErrorInvalidPort": "PORTA inválida (deve ser 1-65535)",
@@ -10910,7 +10913,7 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Falhou",
"successRate": "{rate}% de sucesso",
"avgLatency": "Média de {latency}ms",
"assignmentsCount": "{count} atribuições",
@@ -10959,12 +10962,15 @@
"poolStrategyLabel": "Estratégia de rotação",
"poolStrategyHint": "round-robin percorre os membros em ordem; aleatório escolhe uniformemente; fixo mantém um membro por uma janela antes de avançar.",
"poolStrategyFailed": "Falha ao atualizar a estratégia de rotação",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Alternância circular",
"strategyRandom": "Aleatório",
"strategySticky": "Fixo",
"strategyLatency": "Otimizado por latência",
"poolMembersLabel": "Membros do pool ({count})",
"poolNoMembers": "Ainda não há proxies neste pool.",
+ "poolEgressObservation": "{exits, plural, one {# saída} other {# saídas}} usada(s) por {connections, plural, one {# conexão} other {# conexões}} · até {max} em uma saída · últimas {hours} h",
+ "poolEgressObservationEmpty": "Nenhum tráfego observado nas últimas {hours} h",
+ "poolEgressObservationHint": "Contado a partir do log de proxy na janela: IPs de saída distintos observados para os membros deste pool e as conexões do OmniRoute que os usaram. \"Em uma saída\" significa ao longo da janela, não ao mesmo tempo. O bloqueio de 429 por IP só pausa conexões da mesma família de provedor.",
"poolRemove": "Remover",
"poolRemoveFailed": "Falha ao remover o proxy do pool",
"poolAddLabel": "Adicionar um proxy",
@@ -10977,8 +10983,8 @@
"title": "Title",
"description": "Description",
"endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "provider": "Provedor",
+ "model": "Modelo",
"accountKey": "Account Key",
"autoAccounts": "Automático ({count} contas)",
"noAccounts": "Sem contas",
@@ -11003,16 +11009,16 @@
"save": "Salvar",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
- "completions": "Completions",
+ "responses": "Respostas",
+ "completions": "Conclusões",
"images": "Images",
"embeddings": "Embeddings",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
- "moderations": "Moderations",
- "rerank": "Rerank",
+ "moderations": "Moderações",
+ "rerank": "Reclassificação",
"search": "Search",
"webFetch": "Busca na Web"
},
@@ -11023,8 +11029,8 @@
"tabCompare": "Comparar",
"tabApi": "API",
"tabBuild": "Construir",
- "configPane": "Config",
- "systemPrompt": "System prompt",
+ "configPane": "Configuração",
+ "systemPrompt": "Prompt do sistema",
"systemPromptPlaceholder": "Você é um assistente útil.",
"modelPlaceholder": "ex.: openai/gpt-4o",
"endpointLabel": "Endpoint",
@@ -11041,7 +11047,7 @@
"effort": "Esforço",
"effortDefault": "Padrão",
"seedPlaceholder": "Aleatório (deixar vazio)",
- "presetsLabel": "Presets",
+ "presetsLabel": "Predefinições",
"loadPreset": "Carregar preset",
"savePreset": "Salvar preset",
"noPresets": "Nenhum preset",
@@ -11126,13 +11132,13 @@
"jsonSchemaEditor": "Editor de schema JSON",
"schemaValidated": "Schema validado",
"validateSchema": "Validar schema",
- "seed": "Seed",
+ "seed": "Semente",
"stopSequences": "Sequências de parada",
"stopSequencesPlaceholder": "ex.: \"\\n\\n\" ou \"END\"",
- "autoProvider": "Auto",
+ "autoProvider": "Automático",
"httpError": "Erro {status}",
"requestCancelled": "Solicitação cancelada",
- "networkError": "Network error",
+ "networkError": "Erro de rede",
"regenerateLastResponse": "Regenerar última resposta",
"regenerate": "Regenerar",
"startConversation": "Inicie uma conversa — digite uma mensagem abaixo",
@@ -11196,7 +11202,7 @@
"loading": "Carregando...",
"retry": "Tentar novamente",
"response": "Resposta",
- "tunnel": "Tunnel",
+ "tunnel": "Túnel",
"send": "Enviar",
"selectKey": "Selecionar chave",
"testLabel": "Testar",
@@ -11224,14 +11230,14 @@
"embeddingSample": "O OmniRoute roteia solicitações de IA entre múltiplos provedores.",
"embedding": "Embedding",
"imageSample": "Uma cidade futurista ao pôr do sol, iluminação cinematográfica",
- "image": "Image",
+ "image": "Imagem",
"ttsSample": "Olá do OmniRoute. Este é um teste de texto para fala.",
"textToSpeech": "Texto para Fala",
"videoSample": "Um avião de papel voando sobre uma cidade futurista",
"video": "Vídeo",
- "webFetch": "Web Fetch",
+ "webFetch": "Busca na Web",
"webSearchSample": "O que é o OmniRoute?",
- "webSearch": "Web Search",
+ "webSearch": "Pesquisa na Web",
"documentUrl": "URL do Documento",
"browserAudioUnsupported": "Seu navegador não suporta áudio.",
"browserVideoUnsupported": "Seu navegador não suporta vídeo.",
@@ -11245,79 +11251,79 @@
"emptyConversation": "Envie uma mensagem para iniciar a conversa",
"sendHint": "Shift+Enter para nova linha · Enter para enviar",
"you": "Você",
- "assistant": "Assistant",
+ "assistant": "Assistente",
"errorLabel": "Erro",
"requestFailed": "Falha na requisição",
"stop": "Pare"
},
"requestLogger": {
- "recording": "Recording",
- "paused": "Paused",
- "pipelineLogsOn": "Pipeline logs on",
- "pipelineLogsOff": "Pipeline logs off",
- "updatingPipelineLogs": "Updating pipeline logs...",
- "updatePipelineFailed": "Failed to update pipeline logging",
- "capturePipeline": "Capture pipeline payloads for new requests",
- "searchPlaceholder": "Search models, providers, accounts, API keys, combos...",
- "allProviders": "All providers",
- "allModels": "All models",
- "allAccounts": "All accounts",
- "allApiKeys": "All API keys",
+ "recording": "Gravando",
+ "paused": "Pausado",
+ "pipelineLogsOn": "Logs do pipeline ativados",
+ "pipelineLogsOff": "Logs do pipeline desativados",
+ "updatingPipelineLogs": "Atualizando os logs do pipeline...",
+ "updatePipelineFailed": "Falha ao atualizar os logs do pipeline",
+ "capturePipeline": "Capturar payloads do pipeline para novas solicitações",
+ "searchPlaceholder": "Pesquisar modelos, provedores, contas, chaves de API, combinações...",
+ "allProviders": "Todos os provedores",
+ "allModels": "Todos os modelos",
+ "allAccounts": "Todas as contas",
+ "allApiKeys": "Todas as chaves de API",
"total": "Total",
- "ok": "Success",
- "err": "Error",
- "combo": "Combo",
- "keys": "Keys",
- "shown": "Shown",
- "sortNewest": "Newest",
- "sortOldest": "Oldest",
+ "ok": "Sucesso",
+ "err": "Erro",
+ "combo": "Combinação",
+ "keys": "Chaves",
+ "shown": "Exibidos",
+ "sortNewest": "Mais recentes",
+ "sortOldest": "Mais antigos",
"sortTokensDesc": "Tokens ↓",
"sortTokensAsc": "Tokens ↑",
- "sortDurationDesc": "Duration ↓",
- "sortDurationAsc": "Duration ↑",
+ "sortDurationDesc": "Duração ↓",
+ "sortDurationAsc": "Duração ↑",
"sortStatusDesc": "Status ↓",
"sortStatusAsc": "Status ↑",
- "sortModelAsc": "Model A-Z",
- "sortModelDesc": "Model Z-A",
- "sortLogs": "Sort logs",
- "refresh": "Refresh",
- "columnsLabel": "Columns",
+ "sortModelAsc": "Modelo A-Z",
+ "sortModelDesc": "Modelo Z-A",
+ "sortLogs": "Ordenar logs",
+ "refresh": "Atualizar",
+ "columnsLabel": "Colunas",
"cacheSem": "SEM",
- "cacheUp": "UP",
- "semantic": "Semantic",
- "upstream": "Upstream",
- "semanticCacheHit": "Semantic cache hit (served by OmniRoute)",
- "upstreamResponse": "Upstream provider response",
- "noApiKey": "No API key",
- "requestedRoutedTitle": "Requested {requested}, routed as {routed}",
+ "cacheUp": "ATIVO",
+ "semantic": "Semântico",
+ "upstream": "Provedor upstream",
+ "semanticCacheHit": "Acerto no cache semântico (fornecido pelo OmniRoute)",
+ "upstreamResponse": "Resposta do provedor upstream",
+ "noApiKey": "Sem chave de API",
+ "requestedRoutedTitle": "Solicitado: {requested}; roteado como: {routed}",
"statusFilters": {
- "all": "All",
+ "all": "Todos",
"error": "Errors",
- "success": "Success",
- "combo": "Combo"
+ "success": "Sucesso",
+ "combo": "Combinação"
},
"columns": {
"status": "Status",
- "cacheSource": "Cache Source",
- "model": "Model",
- "requested": "Requested",
- "provider": "Provider",
- "protocol": "Request Protocol",
- "account": "Account",
- "apiKey": "API Key",
- "combo": "Combo",
+ "cacheSource": "Origem do cache",
+ "model": "Modelo",
+ "requested": "Solicitado",
+ "provider": "Provedor",
+ "protocol": "Protocolo da solicitação",
+ "account": "Conta",
+ "apiKey": "Chave de API",
+ "combo": "Combinação",
"tokens": "Tokens",
"compressed": "Compressão",
"tps": "TPS",
- "duration": "Duration",
- "time": "Time",
- "conversation": "Conversation",
+ "duration": "Duração",
+ "time": "Horário",
+ "conversation": "Conversa",
"ttft": "TTFT"
},
- "loadingLogs": "Loading logs...",
- "noLogs": "No logs yet. Make some API calls to see them here.",
- "noMatchingLogs": "No logs matching current filters.",
- "callLogsInfo": "Call logs are also saved as JSON files to {dataDir} and rotated based on {retentionDays} and {maxEntries}.",
+ "loadingLogs": "Carregando logs...",
+ "noLogs": "Ainda não há logs. Faça algumas chamadas de API para vê-las aqui.",
+ "noMatchingLogs": "Nenhum log corresponde aos filtros atuais.",
+ "callLogsInfo": "Os logs de chamadas também são salvos como arquivos JSON em {dataDir} e rotacionados com base em {retentionDays} e {maxEntries}.",
"loadMore": "Carregar Mais",
"loadingMore": "Carregando mais...",
"correlationId": "ID de Correlação",
@@ -11368,7 +11374,7 @@
},
"payloadMissing": "O artefato de carga detalhada não está mais disponível para esta entrada de log.",
"payloadCorrupt": "O artefato de carga detalhada não pôde ser analisado.",
- "notAvailable": "N/A",
+ "notAvailable": "N/D",
"semanticCache": "Semântico (OmniRoute)",
"upstreamCache": "Upstream (Fornecedor)",
"ariaLabel": "Detalhe do log de solicitação",
@@ -11387,7 +11393,7 @@
"input": "Entrada",
"totalIn": "Total Entrada: {value}",
"cacheRead": "Leitura de Cache: {value}",
- "cacheWrite": "Cache Write: {value}",
+ "cacheWrite": "Gravação no cache: {value}",
"compressed": "Compactado: {from} → {to} ({percent}% economizado)",
"output": "Saída",
"totalOut": "Total Saída: {value}",
@@ -11400,7 +11406,7 @@
"rotated": "Rotacionado: {initial} -> {final}",
"apiKey": "Chave da API",
"noApiKey": "Sem chave de API",
- "combo": "Combo",
+ "combo": "Combinação",
"error": "Erro",
"unblockAll": "Desbloquear tudo",
"cleared": "Limpo",
@@ -11418,59 +11424,59 @@
"correlationId": "ID de Correlação",
"correlationIdValue": "ID de Correlação: {id}",
"detailedPayloadInfo": "Ative o registro detalhado primeiro se você quiser a visualização de carga útil de cliente/provedor em quatro etapas para novas solicitações.",
- "copyAll": "Copy all",
- "copiedAll": "Copied all"
+ "copyAll": "Copiar tudo",
+ "copiedAll": "Tudo copiado"
}
},
"proxyLogger": {
- "filterAll": "All",
- "filterErrors": "Errors",
- "filterSuccess": "Success",
- "filterTimeout": "Timeout",
+ "filterAll": "Todos",
+ "filterErrors": "Erros",
+ "filterSuccess": "Sucesso",
+ "filterTimeout": "Tempo limite",
"colStatus": "Status",
"colProxy": "Proxy",
"colTls": "TLS",
- "colType": "Type",
- "colLevel": "Level",
- "colProvider": "Provider",
- "colTarget": "Target",
- "colLatency": "Latency",
+ "colType": "Tipo",
+ "colLevel": "Nível",
+ "colProvider": "Provedor",
+ "colTarget": "Destino",
+ "colLatency": "Latência",
"colClientIp": "IP do Cliente",
- "colTime": "Time",
- "recording": "Recording",
- "paused": "Paused",
- "searchPlaceholder": "Search host, provider, target, IP...",
- "allTypes": "All Types",
- "allLevels": "All Levels",
- "allProviders": "All Providers",
+ "colTime": "Horário",
+ "recording": "Gravando",
+ "paused": "Pausado",
+ "searchPlaceholder": "Pesquisar host, provedor, destino, IP...",
+ "allTypes": "Todos os tipos",
+ "allLevels": "Todos os níveis",
+ "allProviders": "Todos os provedores",
"total": "total",
"ok": "OK",
- "err": "ERR",
+ "err": "ERRO",
"timeoutShort": "TMO",
- "direct": "direct",
- "newest": "Newest",
- "oldest": "Oldest",
- "latencyDesc": "Latency ↓",
- "latencyAsc": "Latency ↑",
- "refresh": "Refresh",
- "columns": "Columns",
- "loadingProxyLogs": "Loading proxy logs...",
- "noProxyLogs": "No proxy logs yet. Configure proxies and make API calls to see them here.",
- "noMatchingLogs": "No logs match the current filters.",
- "tlsFingerprint": "Chrome 124 TLS Fingerprint",
- "colPublicIp": "Public IP"
+ "direct": "direto",
+ "newest": "Mais recentes",
+ "oldest": "Mais antigos",
+ "latencyDesc": "Latência ↓",
+ "latencyAsc": "Latência ↑",
+ "refresh": "Atualizar",
+ "columns": "Colunas",
+ "loadingProxyLogs": "Carregando logs de proxy...",
+ "noProxyLogs": "Ainda não há logs de proxy. Configure proxies e faça chamadas de API para vê-los aqui.",
+ "noMatchingLogs": "Nenhum log corresponde aos filtros atuais.",
+ "tlsFingerprint": "Impressão digital TLS do Chrome 124",
+ "colPublicIp": "IP público"
},
"endpointOptions": {
- "speech": "Speech",
- "search": "Search",
- "images": "Images",
+ "speech": "Fala",
+ "search": "Pesquisa",
+ "images": "Imagens",
"chat": "Chat",
- "music": "Music",
- "responses": "Responses",
- "rerank": "Rerank",
- "video": "Video",
+ "music": "Música",
+ "responses": "Respostas",
+ "rerank": "Reclassificação",
+ "video": "Vídeo",
"embeddings": "Embeddings",
- "transcription": "Transcription"
+ "transcription": "Transcrição"
},
"toolDescriptions": {
"cline": "Cline",
@@ -11481,16 +11487,16 @@
"kilo": "Kilo"
},
"runtime": {
- "title": "Runtime",
+ "title": "Tempo de execução",
"description": "Observabilidade em tempo real — 3 camadas de resiliência + sessões + alertas de quota",
"pause": "Pausar",
"resume": "Retomar",
"refreshNow": "Atualizar agora",
"kpiSessions": "Sessões",
- "kpiCircuits": "Circuits",
- "kpiCooldowns": "Cooldowns",
- "kpiLockouts": "Lockouts",
- "hintStickyBound": "{count} sticky-bound",
+ "kpiCircuits": "Circuitos",
+ "kpiCooldowns": "Períodos de espera",
+ "kpiLockouts": "Bloqueios",
+ "hintStickyBound": "{count} com vínculo persistente",
"hintRecovering": "{count} recuperando",
"hintAllHealthy": "tudo saudável",
"hintOpen": "aberto",
@@ -11500,7 +11506,7 @@
"resilienceSubtitle": "Espelha o modelo de resiliência documentado",
"providersHealthy": "{percent}% dos providers saudáveis",
"layer": "Camada {n}",
- "layer1Title": "Provider Circuit Breakers",
+ "layer1Title": "Disjuntores dos provedores",
"layer1Desc": "Bloqueia tráfego para providers falhando no upstream",
"layer2Title": "Cooldown de Conexões",
"layer2Desc": "Pula uma conta/key ruim; outras conexões continuam atendendo",
@@ -11517,11 +11523,11 @@
"feedTitle": "Feed ao Vivo",
"feedSubtitle": "Últimos {count} eventos",
"feedFilterAll": "Todos",
- "feedFilterCircuits": "Circuits",
- "feedFilterCooldowns": "Cooldowns",
- "feedFilterLockouts": "Lockouts",
+ "feedFilterCircuits": "Circuitos",
+ "feedFilterCooldowns": "Períodos de espera",
+ "feedFilterLockouts": "Bloqueios",
"feedFilterSessions": "Sessões",
- "feedFilterQuotas": "Quotas",
+ "feedFilterQuotas": "Cotas",
"feedClear": "Limpar",
"feedEmptyWaiting": "Aguardando eventos... (poll a cada 5s)",
"feedEmptyFiltered": "Nenhum evento corresponde ao filtro",
@@ -11533,9 +11539,9 @@
"tblSession": "Sessão",
"tblAge": "Idade",
"tblIdle": "Ocioso",
- "tblReqs": "Reqs",
+ "tblReqs": "Reqs.",
"tblBoundTo": "Vinculada a",
- "topApiKeys": "Top API keys",
+ "topApiKeys": "Principais chaves de API",
"quotaMonitorsTitle": "Monitores de Quota",
"quotaMonitorsSubtitle": "Estado live de quota por janela de conta",
"openQuota": "Abrir Quota",
@@ -11566,15 +11572,15 @@
"allocationsCount": "Alocações ({count})",
"allocatedFree": "{allocated}% alocado · {free}% livre",
"noAllocations": "Nenhuma key alocada ainda",
- "capLabel": "cap {value}",
+ "capLabel": "limite {value}",
"notTrackedYet": "(ainda não rastreado)",
"policy": "Política",
"apiKeyColumn": "Chave de API",
"weightColumn": "Peso",
"fairShareShort": "justo",
- "policyHard": "hard",
- "policySoft": "soft",
- "policyBurst": "burst",
+ "policyHard": "rígido",
+ "policySoft": "flexível",
+ "policyBurst": "pico",
"policyHardHint": "Bloqueia quando key esgota alocação",
"policySoftHint": "Permite overflow, apenas alerta",
"policyBurstHint": "Permite burst para o pool livre",
@@ -11586,7 +11592,7 @@
"quotaWindow": "Janela de cota",
"selectWindow": "Selecione uma janela…",
"alreadyUsedSuffix": "(já utilizada)",
- "windowReset": "Reset",
+ "windowReset": "Redefinir",
"duplicatePoolError": "Já existe um pool para esta conexão + janela",
"cancel": "Cancelar",
"createPool": "Criar pool",
@@ -11687,38 +11693,38 @@
},
"plugins": {
"title": "Plugins",
- "description": "Install and manage plugins for extending OmniRoute functionality",
- "loading": "Loading plugins...",
- "scanning": "Scanning...",
- "scanForPlugins": "Scan for Plugins",
- "noPlugins": "No plugins installed",
- "noPluginsDescription": "Place plugin directories in ~/.omniroute/plugins/ and click Scan.",
- "activate": "Activate",
- "deactivate": "Deactivate",
- "uninstall": "Uninstall",
- "uninstallConfirm": "Uninstall plugin \"{name}\"?",
- "pluginScanComplete": "Plugin scan complete",
- "pluginScanFailed": "Plugin scan failed",
- "activated": "{name} activated",
- "deactivated": "{name} deactivated",
- "activateFailed": "Failed to activate {name}",
- "deactivateFailed": "Failed to deactivate {name}",
- "uninstalled": "{name} uninstalled",
- "uninstallFailed": "Failed to uninstall {name}",
- "configure": "Configure: {name}",
- "configurePlugin": "Configure",
- "noConfigSettings": "This plugin has no configurable settings.",
- "saving": "Saving...",
- "saveConfiguration": "Save Configuration",
- "configurationSaved": "Configuration saved",
- "saveConfigurationFailed": "Failed to save configuration",
- "pluginNotFound": "Plugin not found",
- "version": "Version",
- "author": "Author",
- "description_label": "Description",
+ "description": "Instale e gerencie plugins para ampliar as funcionalidades do OmniRoute",
+ "loading": "Carregando plugins...",
+ "scanning": "Verificando...",
+ "scanForPlugins": "Buscar plugins",
+ "noPlugins": "Nenhum plugin instalado",
+ "noPluginsDescription": "Coloque os diretórios dos plugins em ~/.omniroute/plugins/ e clique em Buscar.",
+ "activate": "Ativar",
+ "deactivate": "Desativar",
+ "uninstall": "Desinstalar",
+ "uninstallConfirm": "Desinstalar o plugin \"{name}\"?",
+ "pluginScanComplete": "Busca por plugins concluída",
+ "pluginScanFailed": "Falha na busca por plugins",
+ "activated": "{name} ativado",
+ "deactivated": "{name} desativado",
+ "activateFailed": "Falha ao ativar {name}",
+ "deactivateFailed": "Falha ao desativar {name}",
+ "uninstalled": "{name} desinstalado",
+ "uninstallFailed": "Falha ao desinstalar {name}",
+ "configure": "Configurar: {name}",
+ "configurePlugin": "Configurar",
+ "noConfigSettings": "Este plugin não possui configurações ajustáveis.",
+ "saving": "Salvando...",
+ "saveConfiguration": "Salvar configuração",
+ "configurationSaved": "Configuração salva",
+ "saveConfigurationFailed": "Falha ao salvar a configuração",
+ "pluginNotFound": "Plugin não encontrado",
+ "version": "Versão",
+ "author": "Autor",
+ "description_label": "Descrição",
"status": "Status",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "enabled": "Ativado",
+ "disabled": "Desativado",
"installedTab": "Instalado",
"marketplaceTab": "Mercado",
"marketplaceUrlLabel": "URL do Marketplace Personalizado",
@@ -11745,7 +11751,7 @@
"limitLabel": "Limite",
"unitOptions": {
"percent": "%",
- "requests": "requests",
+ "requests": "requisições",
"tokens": "tokens",
"usd": "USD ($)"
},
@@ -11771,12 +11777,12 @@
"todayHeader": "Hoje",
"yesterdayHeader": "Ontem",
"filterAll": "Todos",
- "filterProviders": "Providers",
- "filterCombos": "Combos",
- "filterApiKeys": "API Keys",
- "filterSettings": "Settings",
- "filterQuota": "Quota",
- "filterAuth": "Auth",
+ "filterProviders": "Provedores",
+ "filterCombos": "Combinações",
+ "filterApiKeys": "Chaves de API",
+ "filterSettings": "Configurações",
+ "filterQuota": "Cota",
+ "filterAuth": "Autenticação",
"filterSystem": "Sistema",
"filterAria": "Filtrar por tipo de evento",
"refresh": "Atualizar",
@@ -11976,13 +11982,13 @@
"unknownError": "Erro desconhecido",
"loading": "Carregando estatísticas do provedor...",
"loadFailed": "Falha ao carregar estatísticas do provedor: {error}",
- "retry": "Retry",
+ "retry": "Tentar novamente",
"updated": "Atualizado {time}",
"refresh": "Atualizar",
- "totalRequests": "Total Requests",
- "avgLatency": "Avg Latency",
+ "totalRequests": "Total de requisições",
+ "avgLatency": "Latência média",
"successRate": "Taxa de Sucesso",
- "activeProviders": "Active Providers",
+ "activeProviders": "Provedores ativos",
"providerBreakdown": "Detalhamento por Provedor",
"providerCount": "{count} provedores",
"provider": "Provedor",
@@ -12015,7 +12021,7 @@
"newToken": "Novo Token de Relay",
"createTitle": "Criar Token de Relay",
"nameRequired": "Nome *",
- "tokenDescription": "Description",
+ "tokenDescription": "Descrição",
"descriptionPlaceholder": "Para minhas funções serverless",
"maxPerMinute": "Máx. de Solicitações/Minuto",
"maxPerDay": "Máx. de Solicitações/Dia",
@@ -12058,10 +12064,10 @@
"resumeBtn": "Retomar",
"clearBtn": "Limpar",
"exportHar": "Exportar .har",
- "recordSession": "REC",
+ "recordSession": "GRAV",
"stopSession": "Parar",
"liveBadge": "ao vivo",
- "offlineBadge": "offline",
+ "offlineBadge": "off-line",
"noRequests": "Nenhuma requisição capturada ainda.",
"noRequestsDesc": "Certifique-se que o AgentBridge está ativo ou ative outro modo de captura.",
"selectRequest": "Selecione uma requisição para inspecioná-la.",
@@ -12092,7 +12098,7 @@
"llmApiKind": "Tipo de API",
"llmModel": "Modelo",
"llmMessages": "Mensagens",
- "llmStream": "Stream",
+ "llmStream": "Streaming",
"llmMappedTo": "Mapeado para",
"llmCostEstimate": "Estimativa de custo",
"systemProxyExitWarning": "Proxy do sistema ainda está ativo — sair mesmo assim?",
@@ -12122,7 +12128,7 @@
"timingUpstreamResponse": "Resposta upstream",
"timingNoData": "Nenhum dado de tempo disponível.",
"timingTotalLatency": "Latência total",
- "timingTimestamp": "Timestamp",
+ "timingTimestamp": "Data e hora",
"timingMethod": "Método",
"timingStatus": "Status",
"timingRequestSize": "Tamanho da requisição",
@@ -12132,7 +12138,7 @@
"invalidHostname": "Nome de host inválido",
"invalidHost": "Host inválido",
"addHostFailed": "Falha ao adicionar host",
- "networkError": "Network error",
+ "networkError": "Erro de rede",
"close": "Fechar",
"removeHost": "Remover {host}",
"requestDetails": "Detalhes da solicitação",
@@ -12141,27 +12147,27 @@
"clear": "limpar",
"trafficProfile": "Perfil de tráfego",
"roleSystem": "Sistema",
- "roleUser": "User",
- "roleAssistant": "Assistant",
+ "roleUser": "Usuário",
+ "roleAssistant": "Assistente",
"roleTool": "Ferramenta",
"expand": "Expandir",
"collapse": "Recolher",
"systemPromptHidden": "Prompt de sistema oculto — clique para expandir",
"sessionName": "Sessão {id}",
"sessions": "Sessões",
- "requestCountShort": "{count} reqs",
+ "requestCountShort": "{count} solicitações",
"deleteSession": "Excluir sessão",
"saving": "Salvando…",
"sensitiveHeaders": "Cabeçalhos sensíveis",
"show": "Mostrar",
- "hide": "Hide",
+ "hide": "Ocultar",
"name": "Nome",
- "value": "Value",
+ "value": "Valor",
"noSseEvents": "Nenhum evento SSE",
"noRequestBody": "Sem corpo de solicitação.",
"noResponseBody": "Sem corpo de resposta.",
- "formatted": "Formatted",
- "raw": "Raw"
+ "formatted": "Formatado",
+ "raw": "Bruto"
},
"cliCommon": {
"concept": {
@@ -12172,13 +12178,13 @@
"seeOther": "Ver →"
},
"agent": {
- "title": "CLI Agents",
+ "title": "Agentes de CLI",
"phrase": "Agentes autônomos (CLI) de propósito amplo que você aponta para o OmniRoute",
"flow": "Você → CLI Agent → OmniRoute → Provider",
"seeOther": "Ver →"
},
"acp": {
- "title": "ACP Agents",
+ "title": "Agentes ACP",
"phrase": "CLIs que o OmniRoute spawna como backend de execução (fluxo reverso)",
"warning": "A maioria dos usuários pode ignorar isto — use apenas quando uma integração exigir.",
"flow": "Cliente → OmniRoute → spawn CLI (stdio/ACP) → resposta",
@@ -12204,7 +12210,7 @@
"acp": {
"title": "CLI usada como backend pelo Omni",
"desc": "Execução reversa",
- "flow": "Omni → spawn CLI → resp",
+ "flow": "Omni → iniciar CLI → resp",
"examples": "ex: claude, codex (ACP)"
}
},
@@ -12216,8 +12222,8 @@
"configure": "Configurar →",
"howToInstall": "Como instalar →",
"versionNotFound": "não encontrado",
- "manualConfig": "Manual config",
- "installGuide": "Install guide",
+ "manualConfig": "Configuração manual",
+ "installGuide": "Guia de instalação",
"endpointLabel": "Endpoint",
"baseUrlFull": "URL Base Completa",
"baseUrlPartial": "Base URL parcial",
@@ -12234,8 +12240,8 @@
"category": "Tipo",
"detectionStatus": "Detecção",
"configStatus": "Configuração",
- "baseUrlLabel": "Base URL",
- "apiKeyLabel": "API Key",
+ "baseUrlLabel": "URL base",
+ "apiKeyLabel": "Chave de API",
"modelMappingLabel": "Mapeamento de modelos",
"noActiveProviders": "Nenhum provider ativo.",
"noActiveProvidersDesc": "Vá em Providers para conectar pelo menos 1 provider antes de configurar a CLI.",
@@ -12243,11 +12249,11 @@
}
},
"cliCode": {
- "pageTitle": "CLI Code's",
+ "pageTitle": "Códigos da CLI",
"pageSubtitle": "Ferramentas de código que apontam para o OmniRoute",
"searchPlaceholder": "Buscar CLI…",
"filterDetectionLabel": "Detecção",
- "filterBaseUrlLabel": "Base URL",
+ "filterBaseUrlLabel": "URL base",
"detectionAll": "Todas",
"detectionInstalled": "Instaladas",
"detectionNotFound": "Não detectadas",
@@ -12256,7 +12262,7 @@
"baseUrlPartial": "Parcial"
},
"cliAgents": {
- "pageTitle": "CLI Agents",
+ "pageTitle": "Agentes de CLI",
"pageSubtitle": "Agentes autônomos (CLI) de propósito amplo",
"refreshDetection": "Atualizar detecção",
"searchPlaceholder": "Buscar agente…",
@@ -12268,7 +12274,7 @@
"emptyState": "Nenhum agente CLI encontrado com os filtros atuais."
},
"acpAgents": {
- "pageTitle": "ACP Agents",
+ "pageTitle": "Agentes ACP",
"pageSubtitle": "CLIs que o OmniRoute spawna como backend de execução",
"scanning": "Detectando agentes…",
"refresh": "Atualizar",
@@ -12283,7 +12289,7 @@
"settingsRoutingLink": "Configurações → Roteamento",
"installed": "Instalado",
"notFound": "Não encontrado",
- "builtIn": "Built-in",
+ "builtIn": "Integrado",
"custom": "Customizado",
"agentUseCaseHint": "Disponível para spawn via ACP.",
"remove": "Remover",
@@ -12307,7 +12313,7 @@
"description": "Gerencie a autenticação por chave de API e tokens de sessão. Comece aqui para autenticar solicitações via token Bearer, obter cookies de sessão e configurar requisitos de login para a API do OmniRoute."
},
"omni-providers": {
- "name": "Providers",
+ "name": "Provedores",
"description": "Gerencie conexões de provedor, chaves de API, fluxos OAuth e testes de conexão via API REST. Liste, adicione, atualize, remova e teste integrações de provedores de IA (OpenAI, Anthropic, Gemini e mais de 160)."
},
"omni-models": {
@@ -12343,7 +12349,7 @@
"description": "Gerencie o cache de respostas de LLM. Veja estatísticas do cache, limpe entradas, configure políticas de TTL e controle os limites de cache por similaridade semântica."
},
"omni-compression": {
- "name": "Compression",
+ "name": "Compressão",
"description": "Configure os modos de compressão RTK (saída de comando), Caveman (prosa) e empilhados. Gerencie pacotes de idioma, regras personalizadas e teste a compressão de prompt, reduzindo tokens em 60–90%."
},
"omni-context-rtk": {
@@ -12372,7 +12378,7 @@
},
"omni-webhooks": {
"name": "Webhooks",
- "description": "__MISSING__:Register, list, test, and remove webhook endpoints. Configure event subscriptions (request.completed, request.failed, quota.exceeded, etc.) and manage delivery retries."
+ "description": "Registre, liste, teste e remova endpoints de webhook. Configure assinaturas de eventos (request.completed, request.failed, quota.exceeded etc.) e gerencie novas tentativas de entrega."
},
"omni-mcp": {
"name": "MCP",
@@ -12391,23 +12397,23 @@
"description": "Os endpoints de inferência principais compatíveis com OpenAI: chat completions, embeddings, imagens, áudio (TTS/STT), moderações, rerank e a Responses API. A principal superfície de integração para agentes de IA."
},
"cli-serve": {
- "name": "CLI: Serve",
+ "name": "CLI: Servir",
"description": "Inicie, pare e reinicie o servidor OmniRoute a partir da CLI. Gerencie o modo daemon, configuração de porta, recuperação automática, integração com a bandeja do sistema e o atalho para abrir o dashboard."
},
"cli-health": {
- "name": "CLI: Health",
+ "name": "CLI: Integridade",
"description": "Verifique a saúde do servidor, o status dos componentes e métricas em tempo real a partir da CLI. Execute `health`, `health components` e `health watch` para um dashboard em tempo real dos circuit breakers e do status dos provedores."
},
"cli-providers": {
- "name": "CLI: Providers",
+ "name": "CLI: Provedores",
"description": "Gerencie conexões de provedor a partir da CLI: liste provedores disponíveis/configurados, adicione, teste, test-all, valide, rotacione chaves de API e veja métricas por provedor."
},
"cli-keys": {
- "name": "CLI: API Keys",
+ "name": "CLI: Chaves de API",
"description": "Crie, liste, rotacione e revogue chaves de API do OmniRoute a partir da CLI. Gerencie fluxos OAuth para autenticação de provedor e inspecione escopos e expiração de chave."
},
"cli-models": {
- "name": "CLI: Models",
+ "name": "CLI: Modelos",
"description": "Consulte os modelos de IA disponíveis, liste aliases de modelo e navegue pelo catálogo completo a partir da CLI. Filtre por provedor, pesquise por capacidade e resolva variantes de nome de modelo."
},
"cli-chat": {
@@ -12423,7 +12429,7 @@
"description": "Inspecione e gerencie estados do circuit breaker, cooldowns de conexão, limites de cota e níveis de backoff a partir da CLI. Redefina provedores travados e configure limites de resiliência."
},
"cli-compression": {
- "name": "CLI: Compression",
+ "name": "CLI: Compressão",
"description": "Configure e teste a compressão de prompt a partir da CLI. Gerencie filtros RTK, regras Caveman, modos de compressão empilhados e pré-visualize a saída da compressão com prompts reais."
},
"cli-contexts": {
@@ -12459,7 +12465,7 @@
"description": "Envie e monitore jobs de inferência em lote a partir da CLI. Envie e gerencie arquivos para processamento em lote, obtenha resultados e integre pipelines de lote com fluxos de CI/CD."
},
"cli-eval": {
- "name": "CLI: Evals",
+ "name": "CLI: Avaliações",
"description": "Crie e execute suítes de avaliação, acompanhe o progresso de benchmarks em tempo real, veja scorecards, compare o desempenho de modelos e integre execuções de eval com fluxos de CI a partir da CLI."
},
"cli-plugins-skills": {
@@ -12475,7 +12481,7 @@
"description": "Detecte ferramentas de codificação CLI instaladas (Claude Code, Codex, Cursor, Copilot, Cline e outras), pesquise no GitHub agent skills correspondentes e instale-as nas ferramentas detectadas via as APIs integradas do OmniRoute."
},
"config-codex-cli": {
- "name": "Config: Codex CLI",
+ "name": "Configuração: Codex CLI",
"description": "Fluxo de trabalho passo a passo para configurar a Codex CLI da OpenAI em qualquer máquina (Linux, macOS, Windows) para usar o OmniRoute como backend compatível com OpenAI. Detecta o SO e o shell, grava config.toml e 7 perfis nomeados, define variáveis de ambiente e verifica a configuração."
},
"omni-github-skills": {
@@ -12483,7 +12489,7 @@
"description": "Pesquise, pontue, escaneie e importe agent skills de repositórios do GitHub que contenham arquivos SKILL.md, CLAUDE.md, .cursorrules e similares. Descubra skills da comunidade em mais de 160 categorias de provedor, avalie a relevância com pontuação heurística, verifique malware ou segredos codificados, e instale nos diretórios de agente do Hermes, Claude Code, Gemini CLI ou OpenCode."
}
},
- "pageTitle": "Agent Skills",
+ "pageTitle": "Habilidades do agente",
"pageSubtitle": "Ensine seu agente a operar o OmniRoute — 22 áreas de API + 20 famílias de CLI",
"conceptCard": {
"agent": {
@@ -12497,8 +12503,8 @@
"crossLinkLabel": "Entenda a diferença →"
},
"comparison": {
- "colAgent": "Agent Skills",
- "colOmni": "Omni Skills",
+ "colAgent": "Habilidades do agente",
+ "colOmni": "Habilidades do Omni",
"whatIs": {
"label": "O que é",
"agent": "Documentação (SKILL.md) que ensina um agente externo a operar o OmniRoute",
@@ -12515,7 +12521,7 @@
"omni": "O próprio Omni (intercepta tool_calls, sandbox Docker)"
},
"storage": {
- "label": "Storage",
+ "label": "Armazenamento",
"agent": "Catálogo dinâmico (/api/agent-skills) → SKILL.md no GitHub",
"omni": "SQLite (SkillsMP / skills.sh / local)"
},
@@ -12533,7 +12539,7 @@
},
"categoryApi": "API",
"categoryCli": "CLI",
- "categoryConfig": "Config",
+ "categoryConfig": "Configuração",
"filterAll": "Todas",
"coverageLabel": "Cobertura",
"mcpUrl": "URL MCP",
@@ -12593,11 +12599,11 @@
"sortByReliability": "Mais confiável primeiro",
"sortByReliabilityHelp": "Ordena os provedores pela proporção de chamadas bem-sucedidas na janela selecionada. Provedores com poucas chamadas para afirmar uma taxa mantêm a ordem por pontuação, abaixo dos que foram medidos.",
"typeLegend": "Sem Cadastro = zero configuração · Login OAuth = faça login com sua própria conta · Chave API = traga sua própria chave ou o nível gratuito daquele provedor",
- "colReliability": "__MISSING__:Reliability",
- "colReliabilityHelp": "__MISSING__:Share of calls this provider actually answered over the last 24 hours. A dash means it served too little traffic to state a rate.",
- "reliabilitySample": "__MISSING__:{successes} of {requests} calls succeeded in the last {hours}h",
- "reliabilityTooFew": "__MISSING__:Only {requests} calls in the last {hours}h — too few to state a rate",
- "reliabilityNoTraffic": "__MISSING__:No calls recorded in the last 24h"
+ "colReliability": "Confiabilidade",
+ "colReliabilityHelp": "Proporção de chamadas que este provedor realmente respondeu nas últimas 24 horas. Um traço significa que ele atendeu a um volume de tráfego insuficiente para determinar uma taxa.",
+ "reliabilitySample": "{successes} de {requests} chamadas foram bem-sucedidas nas últimas {hours}h",
+ "reliabilityTooFew": "Apenas {requests} chamadas nas últimas {hours}h — muito poucas para determinar uma taxa",
+ "reliabilityNoTraffic": "Nenhuma chamada registrada nas últimas 24h"
},
"discovery": {
"title": "Descoberta de provedores",
@@ -12638,7 +12644,7 @@
"removeAccount": "Remover conta",
"proxyForAccount": "Proxy para a Conta {number}",
"saved": "Salvo",
- "custom": "Custom",
+ "custom": "Personalizado",
"noSavedProxies": "Nenhum proxy salvo — adicione um em Configurações → Proxy",
"directConnection": "Direto (sem proxy)",
"host": "Anfitrião",
@@ -12844,10 +12850,10 @@
"searchPlaceholder": "Pesquisar sinalizadores...",
"categories": {
"all": "Todos",
- "security": "Security",
+ "security": "Segurança",
"network": "Rede",
"policies": "Políticas",
- "runtime": "Runtime",
+ "runtime": "Tempo de execução",
"cli": "CLI",
"health": "Saúde",
"requiresRestart": "Requer Reinicialização"
@@ -12856,7 +12862,7 @@
"caution": "Cuidado",
"danger": "Perigo",
"requiresRestart": "Requer reinicialização",
- "source": "Source",
+ "source": "Origem",
"ccDiscoveryAliasesEnvWarning": "Ativo via variável de ambiente (EXPOSE_CC_DISCOVERY_ALIASES) — isso substitui qualquer alternância de painel abaixo.",
"resetFlag": "Redefinir {label} para o padrão",
"reset": "Resetar",
@@ -12874,19 +12880,19 @@
"restarting": "Reiniciando…",
"confirmRestart": "Confirmar Reinicialização",
"restartViewDescription": "Essas flags só entram em vigor após a reinicialização do servidor. Alterne-as como qualquer outra flag — a alteração é persistida imediatamente, mas o novo valor só é lido na inicialização do processo. Use o banner Reiniciar Servidor acima para aplicar.",
- "retry": "Retry",
+ "retry": "Nova tentativa",
"noSearchResults": "Nenhuma sinalização corresponde à sua pesquisa",
"resetAllOverrides": "Redefinir todas as substituições",
"confirmResetOverrides": "Redefinir todas as {count} substituição(ões) do banco de dados?",
"resetting": "Resetando...",
"confirmReset": "Confirmar Redefinição",
"enumValues": {
- "off": "Off",
+ "off": "Desativado",
"warn": "Avisar",
"block": "Bloquear",
"redact": "Redigir",
"disabled": "Desativado",
- "dual": "Dual",
+ "dual": "Duplo",
"alias": "Alias",
"canonical": "Canônico"
},
@@ -12985,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Permite que a recuperação de stream solicite a resposta novamente e a costure depois que bytes já chegaram ao cliente."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Torne segura a continuação no meio do fluxo após chamadas de ferramenta: nunca retome um fluxo interrompido depois que uma chamada de ferramenta tiver sido enviada (ainda em andamento ou já concluída) e pare após uma continuação vazia, em vez de usar todo o limite de novas tentativas."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Faz failover uma única vez para uma conexão irmã quando um stream fecha antes de emitir qualquer frame útil e a nova tentativa limitada na mesma conexão já foi usada. Sem conexão irmã utilizável, o erro early-EOF original é retornado. Desligado: o early-EOF continua terminal após a nova tentativa."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Inclui campos de nome amigável para exibição nas respostas de /v1/models. Desative isso para clientes que aceitam apenas IDs de modelo."
},
@@ -13021,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Server-Owned Tool Loop",
"description": "Continue chamadas de ferramentas do servidor (server-owned) em não-streaming até que o modelo retorne uma resposta utilizável pelo cliente."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Origem do Retry-After",
+ "description": "Em respostas agregadas 429/503 de indisponibilidade, omita Retry-After quando não houver um horário futuro concreto conhecido para uma nova tentativa, em vez de enviar um valor sintético de 1s; adicione error.retry_after_provenance e leia as indicações textuais de nova tentativa nos fluxos de esgotamento do combo."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Interrupções de infraestrutura com prioridade protegida como 502",
+ "description": "Responda com 502 em vez de 503 quando um destino prioritário com fallback apenas por cota interromper o combo por uma causa comprovadamente não relacionada à cota: um disjuntor de provedor aberto ou uma omissão preditiva por latência."
}
}
},
@@ -13042,7 +13062,7 @@
"backToCombos": "Voltar para Combos",
"loadFailed": "Falha ao carregar a central de controle de combo",
"state": {
- "healthy": "Healthy",
+ "healthy": "Saudável",
"warning": "Precisa de atenção",
"critical": "Crítico",
"idle": "Ocioso"
@@ -13054,7 +13074,7 @@
"editInCombos": "Editar em Combos",
"requests": "Requisições",
"success": "Sucesso",
- "latency": "Latency",
+ "latency": "Latência",
"quota": "Cota",
"rangeWindow": "janela de {range}",
"runtimeHealthBlend": "combinação runtime/saúde",
@@ -13063,9 +13083,9 @@
"providerAccountTelemetry": "telemetria de provedor/conta",
"overview": "Visão geral",
"overviewDescription": "Estratégia, status de runtime e links de controle para este combo.",
- "strategy": "Strategy",
+ "strategy": "Estratégia",
"targets": "Alvos",
- "providers": "Providers",
+ "providers": "Provedores",
"targetCounts": "{configured} configurados · {resolved} resolvidos",
"healthReasons": "Motivos de saúde",
"healthReason": {
@@ -13096,10 +13116,10 @@
"recentDecisionsDescription": "Logs de chamadas recentes filtrados pelo nome deste combo. Abra Analytics para explicabilidade completa.",
"noRecentLogs": "Nenhum log de chamada recente encontrado para este combo.",
"quickLinks": "Atalhos",
- "comboHealth": "Combo Health",
+ "comboHealth": "Integridade do combo",
"callLogs": "Logs de Chamadas",
"costs": "Custos",
- "playground": "Playground",
+ "playground": "Ambiente de testes",
"nestedCombo": "Combo aninhado",
"modelTarget": "Alvo de modelo",
"weight": "peso de {value}%",
@@ -13141,7 +13161,7 @@
"loadingUsdCosts": "Carregando custos em USD",
"used": "Usado",
"quotaUsed": "Cota usada",
- "estimatedFullQuota": "Est. 100%",
+ "estimatedFullQuota": "Estim. 100%",
"rows": "Linhas",
"window": "Janela",
"unknown": "desconhecido",
@@ -13251,13 +13271,13 @@
},
"changelogPage": {
"newsTab": "Novidades",
- "changelogTab": "Changelog",
+ "changelogTab": "Registro de alterações",
"loading": "Carregando changelog...",
"announcementsLoadFailed": "Não foi possível carregar os anúncios. Tente novamente mais tarde.",
"noAnnouncements": "Nenhum anúncio novo no momento.",
"learnMore": "Saiba mais",
"changelogLoadFailed": "Não foi possível carregar o changelog. Tente novamente mais tarde.",
- "retry": "Retry",
+ "retry": "Nova tentativa",
"viewFullHistory": "Ver histórico completo no GitHub"
},
"reasoningRouting": {
@@ -13280,7 +13300,7 @@
"allModels": "todos os modelos",
"keepModel": "Manter modelo",
"otherModel": "Outro modelo",
- "combo": "Combo",
+ "combo": "Combinação",
"priorityShort": "prioridade {value}",
"toggleAria": "Ativar {name}",
"edit": "Editar",
@@ -13298,7 +13318,7 @@
"missing": "Não especificado",
"signalOnly": "Sinal de raciocínio não discreto",
"requestTags": "Tags da solicitação",
- "requestTagsExample": "coding, internal",
+ "requestTagsExample": "programação, interno",
"tagMode": "Correspondência de tags",
"effortMode": "Modo de esforço",
"targetEffort": "Esforço de destino",
@@ -13322,7 +13342,7 @@
"scope": {
"global": "Global",
"apiKey": "Chave de API",
- "combo": "Combo",
+ "combo": "Combinação",
"model": "Modelo",
"connection": "Conexão"
},
@@ -13447,9 +13467,9 @@
"colLimits": "Limites",
"trainsOnPrompts": "Treina com prompts",
"trainsOnPromptsHelp": "Este provedor declara que pode usar seus prompts para treinar modelos",
- "limitsUnknownHelp": "__MISSING__:Limits reported by Radar feed only; no published limits for this entry",
- "contextUnknownHelp": "__MISSING__:Context window unknown for this entry",
- "capabilityUnknownHelp": "__MISSING__:Capability not reported by the feed",
+ "limitsUnknownHelp": "Limites informados apenas pelo feed do Radar; não há limites publicados para esta entrada",
+ "contextUnknownHelp": "Janela de contexto desconhecida para esta entrada",
+ "capabilityUnknownHelp": "Recurso não informado pelo feed",
"colContext": "Contexto",
"colCapabilities": "Capacidades",
"colTos": "Risco ToS",
@@ -13459,16 +13479,16 @@
"capTools": "Ferramentas",
"capVision": "Visão",
"capThinking": "Raciocínio",
- "catalogTab": "Catalog",
- "freeCreditsTab": "Free credits",
- "freeCreditsSubtitle": "Referral links from Radar-tracked providers — using them costs you nothing extra and helps support OmniRoute.",
- "fixedLinksEmpty": "No referral links available yet. Sync Radar to check for updates.",
- "requiredActionLabel": "What to do:",
- "claimButton": "Claim credits",
- "campaignsTitle": "Limited-time campaigns",
- "campaignsEmpty": "No active campaigns right now — check back later.",
- "campaignsUpsellCommunity": "Limited-time campaigns are a supporter extra. Everything on this page's fixed links stays free for everyone.",
- "campaignsValidUntil": "Valid until {date}",
+ "catalogTab": "Catálogo",
+ "freeCreditsTab": "Créditos grátis",
+ "freeCreditsSubtitle": "Links de indicação de provedores monitorados pelo Radar — usá-los não gera nenhum custo adicional para você e ajuda a apoiar o OmniRoute.",
+ "fixedLinksEmpty": "Ainda não há links de indicação disponíveis. Sincronize o Radar para verificar se há atualizações.",
+ "requiredActionLabel": "O que fazer:",
+ "claimButton": "Resgatar créditos",
+ "campaignsTitle": "Campanhas por tempo limitado",
+ "campaignsEmpty": "Não há campanhas ativas no momento — volte mais tarde.",
+ "campaignsUpsellCommunity": "As campanhas por tempo limitado são um benefício extra para apoiadores. Todos os links fixos desta página continuam gratuitos para todos.",
+ "campaignsValidUntil": "Válido até {date}",
"colActions": "Ações",
"localBadge": "local",
"editModel": "Editar",
@@ -13483,7 +13503,7 @@
"localStateSaveFailed": "Falha ao salvar as configurações locais do Radar",
"guidedCombos": "Combos guiados",
"offers": "Ofertas",
- "intel": "Intel"
+ "intel": "Informações"
},
"radarCombosPage": {
"title": "Combos guiados pelo Radar",
@@ -13541,12 +13561,12 @@
"provider": "Provedor",
"connectionId": "Conexão",
"authType": "Autenticação",
- "backoffLevel": "Backoff",
- "cooldown": "Cooldown",
+ "backoffLevel": "Espera progressiva",
+ "cooldown": "Tempo de espera",
"lastError": "Último Erro",
"lockouts": "Bloqueios",
"healthy": "Saudável",
- "coolingDown": "Cooldown",
+ "coolingDown": "Tempo de espera",
"circuitOpen": "Circuito Aberto",
"recovering": "Recuperando",
"degraded": "Degradado",
@@ -13580,7 +13600,7 @@
"detail": {
"title": "Detalhe da Conexão",
"metadata": "Metadados",
- "cooldown": "Cooldown",
+ "cooldown": "Tempo de espera",
"lastError": "Último Erro",
"breaker": "Disjuntor",
"lockouts": "Bloqueios de Modelo",
@@ -13634,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Rejeitar requisições antes do despacho quando o modelo alvo nao possui as capacidades necessarias (visao, ferramentas, saída estruturada, janela de contexto). Protege requisições diretas que ignoram o filtro de compatibilidade do combo.",
"featureFlagDisableContextWindowChecksDescription": "Ignora a verificação local do OmniRoute para janela de contexto e limite máximo de tokens de entrada em solicitações diretas a um único modelo. Os provedores upstream continuam aplicando seus limites reais. A compactação de prompts e os limites de tokens de saída permanecem ativos.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "As estatísticas de pesquisa e as pesquisas recentes contabilizam apenas os provedores que ainda têm uma conexão ativa (provedores sem chave, como duckduckgo-free, são sempre contabilizados). A opção Desativado mantém todas as linhas de pesquisa retidas com um ID de provedor.",
"publicSystem": {
"notFound": {
"title": "Página não encontrada",
@@ -13689,12 +13710,12 @@
"maintenanceInfo": "Informações de Manutenção",
"service": "Serviço",
"unknown": "desconhecido",
- "notAvailable": "n/a",
+ "notAvailable": "n/d",
"providersTracked": "Provedores Rastreados",
"circuitBreakerState": "Estado do Disjuntor do Provedor",
"lastUpdate": "Última atualização: {timestamp}",
- "uptimeMinutes": "{minutes}m",
- "uptimeHoursMinutes": "{hours}h {minutes}m"
+ "uptimeMinutes": "{minutes}min",
+ "uptimeHoursMinutes": "{hours}h {minutes}min"
},
"statusPages": {
"400": {
@@ -13925,7 +13946,7 @@
"followDescription": "O eixo rola para a esquerda, a linha NOW permanece em 75%",
"now": "Agora",
"nowDescription": "Ir para o tempo atual, a linha NOW redefine para o centro",
- "pan": "Pan",
+ "pan": "Deslocar",
"panDescription": "Arraste para explorar, o fundo está congelado"
},
"reset": "Redefinir",
@@ -13948,32 +13969,32 @@
"compressionDescription": "Configure as configurações de compressão de contexto para reduzir o uso de tokens e custos.",
"relayTitle": "OmniRoute — Proxies de Relay",
"relayDescription": "Endpoints de proxy relay sem servidor para sua infraestrutura de IA",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Inspetor de tráfego — OmniRoute",
"trafficInspectorDescription": "Monitore chamadas LLM + depure o tráfego HTTPS de qualquer aplicativo"
},
"conductor": {
"title": "Conductor — frota de agentes CLI",
"subtitle": "Hub OmniConductor: runners, fila de tasks e councils, ao vivo",
- "runners": "Runners",
- "tasks": "Tasks",
+ "runners": "Executores",
+ "tasks": "Tarefas",
"colName": "Nome",
"colClis": "CLIs",
"colStatus": "Status",
- "colTask": "Task",
+ "colTask": "Tarefa",
"colMode": "Modo",
- "colRunner": "Runner",
+ "colRunner": "Executor",
"colSummary": "Resumo",
- "online": "online",
- "offline": "offline",
+ "online": "conectado",
+ "offline": "desconectado",
"draining": "drenando",
"hubOffline": "Hub do Conductor fora do ar ou não configurado (CONDUCTOR_HUB_URL) — melhor nada do que dado velho.",
"noRunners": "Nenhum runner registrado",
"noTasks": "Nenhuma task ainda",
"detailTitle": "Detalhe da task",
"prompt": "Prompt",
- "branch": "Branch",
+ "branch": "Ramificação",
"fetchHint": "Busque o resultado com: git fetch origin {branch}",
- "council": "Council",
+ "council": "Conselho",
"candidates": "Candidatos",
"cancel": "Cancelar task",
"cancelConfirmTitle": "Cancelar esta task?",
@@ -14030,11 +14051,11 @@
"filterSources": "Origens",
"filterProviders": "Provedores",
"clearFilters": "Limpar filtros",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Agente de nuvem",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "Orquestrador",
"sourceStale": "Sem atualização desde {since}",
- "sourceOffline": "Offline",
+ "sourceOffline": "Desconectado",
"sourceCollapse": "Recolher",
"sourceExpand": "Expandir",
"stateQueued": "Na fila",
@@ -14060,11 +14081,11 @@
"actionApprove": "Aprovar plano",
"actionCancel": "Cancelar",
"actionSeeInGraph": "Ver no grafo",
+ "actionRepeat": "Repetir",
"actionDone": "Ação aplicada",
"actionFailed": "Ação falhou: {error}",
"detailFailed": "Falha ao carregar detalhes: {error}",
"mirroredInA2A": "Espelhado no A2A",
- "actionRepeat": "Repetir",
"repeatConfirm": "Clique novamente para confirmar",
"repeatDone": "Nova execução criada",
"repeatUnavailable": "Entrada original não disponível"
@@ -14143,5 +14164,6 @@
"cta": "Obter uma chave de API",
"partnerLinkNote": "Link de parceiro",
"dismissAriaLabel": "Dispensar"
- }
+ },
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Desative a geração de variantes de nível de pensamento (por exemplo, -low, -medium, -high) no catálogo /v1/models."
}
diff --git a/src/i18n/messages/pt.json b/src/i18n/messages/pt.json
index 48992b62ab..136e992086 100644
--- a/src/i18n/messages/pt.json
+++ b/src/i18n/messages/pt.json
@@ -162,9 +162,9 @@
"effortMax": "Máx",
"effortUltra": "Ultra",
"reasoningEffort": "Esforço de raciocínio",
- "wireApi": "Wire API",
+ "wireApi": "API Wire",
"modelAliases": "Aliases do modelo",
- "combos": "Combos",
+ "combos": "Combinações",
"noModelsFound": "Nenhum modelo encontrado",
"clear": "Limpar",
"done": "Concluído",
@@ -209,7 +209,7 @@
"enableCloud": "Ativar Cloud",
"expirationBannerExpiringSoon": "Banner de Expiração em Breve",
"retry": "Tentar novamente",
- "embeddings": "Embeddings",
+ "embeddings": "Incorporações",
"errorCount": "Contagem de Erros",
"backupReasonManual": "Motivo do Backup Manual",
"safeSearchModerate": "Pesquisa Segura Moderada",
@@ -348,7 +348,7 @@
"testDesc": "Descrição do Teste",
"chatDesc": "Descrição do Chat",
"importSuccess": "Importação Bem-sucedida",
- "chat": "Chat",
+ "chat": "Conversa",
"a2aQuickStartStep1": "Passo 1 do Início Rápido A2A",
"importFailed": "Falha na Importação",
"inputPlaceholder": "Espaço reservado de Entrada",
@@ -679,7 +679,7 @@
"safeSearchOff": "Pesquisa Segura Desligada",
"nameHint": "Dica de Nome",
"debugToggle": "Alternar Depuração",
- "embedding": "Embedding",
+ "embedding": "Incorporação",
"issuesLabel": "Problemas",
"optionAny": "Qualquer",
"maxNestingDepth": "Profundidade Máxima de Aninhamento",
@@ -704,7 +704,7 @@
"apiKey": "Chave de API",
"xpLastHour": "EXP (1h)",
"zScore": "Pontuação Z",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Suspeito",
"tokensCommunityServers": "Servidores da Comunidade",
"tokensServerNamePlaceholder": "Nome do servidor",
"tokensApiKeyPlaceholder": "Chave de API",
@@ -807,13 +807,13 @@
"batchConceptBenefit50pct": "50% de desconto em tokens de entrada + saída",
"batchConceptAsync24h": "Assíncrono com janela de conclusão de 24h",
"batchConceptUseCases": "Melhor para classificação em massa, avaliações e embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
+ "batchHeaderSubtitle": "Executar vários pedidos como uma única tarefa",
+ "batchStep1": "1 · Carregar JSONL",
+ "batchStep1Desc": "Adicionar pedidos",
+ "batchStep2": "2 · Criar lote",
+ "batchStep2Desc": "Executar tarefa",
+ "batchStep3": "3 · Obter resultados",
+ "batchStep3Desc": "Transferir resultado",
"filesConceptTitle": "Ficheiros de lote",
"filesConceptSubtitle": "Ficheiros JSONL usados pelos lotes: pedidos de entrada, resultados e erros.",
"filesConceptInput": "Entrada — o teu JSONL com um pedido por linha",
@@ -832,7 +832,7 @@
"wizardStep3Validate": "Validar",
"wizardStep4Cost": "Custo e criação",
"wizardProviderLabel": "Fornecedor",
- "wizardEndpointLabel": "Endpoint",
+ "wizardEndpointLabel": "Ponto final",
"wizardModelLabel": "Modelo",
"wizardInputKindJsonl": "JSONL",
"wizardInputKindCsv": "CSV (nós convertemos)",
@@ -901,7 +901,7 @@
"batchListRemoveCompleted": "Remover concluídos",
"batchListTableStatus": "Estado",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "Ponto final",
"batchListTableModel": "Modelo",
"batchListTableProgress": "Progresso",
"batchListTableCreated": "Criado",
@@ -987,17 +987,20 @@
},
"disabled": "Desativado",
"featureFlagOmnirouteEmergencyFallbackDescription": "Encaminhar pedidos com orçamento esgotado para o fornecedor/modelo de contingência gratuito de emergência.",
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Desative a geração de variantes de nível de pensamento (por exemplo, -low, -medium, -high) no catálogo /v1/models.",
"featureFlagArenaEloSyncEnabledDescription": "Ativar a sincronização periódica do ELO da tabela de classificação da Arena AI para classificações de inteligência do modelo.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Gere e injete resumos das conversas quando o encaminhamento de combinações alternar entre modelos. Desative esta opção para tratar as mudanças de modelo de forma independente e impedir pedidos de transferência em segundo plano para todas as combinações existentes e futuras.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Anuncie os ids de espelho claude/<provider>/<model> em /v1/models para que a descoberta de modelos do gateway Claude Code liste modelos não Claude. Aviso: duplica entradas de catálogo para todos os clientes quando ativado globalmente.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Interruptor principal para os aliases de gateway no-think/<provider>/<model>. Ativado (predefinição): /v1/models anuncia uma variante sem raciocínio para cada modelo Claude elegível com capacidade de raciocínio, e um ID no-think/ enviado num pedido é resolvido para o modelo real com o raciocínio suprimido. Desativado: não são anunciadas variantes e um ID no-think/ é tratado como qualquer outro ID de modelo desconhecido. A opção de ativação/desativação ModelSpec.noThinkingAlias por modelo continua a aplicar-se enquanto esta opção estiver ativada.",
"featureFlagChatVirtualLanesEnabledDescription": "Ative filas de admissão virtuais adaptativas por tenant para o encaminhamento de fornecedores (#9654): um pico de tráfego de um tenant já não gera 503 noutro. A variável de ambiente OMNIROUTE_CHAT_VIRTUAL_LANES sobrepõe-se a esta definição do painel; as alterações entram em vigor ao reiniciar o servidor.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Páginas de fornecedores no dashboard: mostrar o distintivo Gratuito apenas com base nos sinais que o fornecedor reconhece — ignora a heurística do nome de apresentação, os campos free não booleanos e os sufixos :free em fornecedores registados sem um nível gratuito documentado. Desativado mantém a regra histórica do distintivo.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Os conjuntos de proxies e a rotação por conta do opencode deixam de voltar a disponibilizar um proxy que acabou de falhar (sondagem TCP recusada ou resposta 429 recebida através do mesmo) durante um período por processo que duplica a cada repetição, até um limite máximo. Não é registado qualquer estado do proxy; se todos os candidatos forem postos de parte, a escolha permanece inalterada. Desativado por predefinição: a ordem de seleção corresponde exatamente à rotação simples.",
+ "featureFlagProxyPoolEgressObservationDescription": "Mostrar, sob um conjunto de proxies no painel, quantos IPs de saída observados serviram os respetivos membros nas últimas 24 h, quantas ligações os utilizaram e o maior número observado por trás de um único IP. Apenas de leitura, calculado a partir do registo do proxy e nunca utilizado para encaminhamento. Desativado por predefinição: o editor do conjunto permanece inalterado e a rota de observação devolve null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Na verificação de integridade dos proxies, permitir que uma sondagem recusada pelo destino (401/403/429: o proxy reencaminhou o pedido, mas o destino recusou este IP de saída) reinicie a sequência de falhas consecutivas do proxy, tal como uma sondagem servida. Desativado por predefinição: uma recusa permanece neutra e mantém a sequência. Uma resposta 5xx permanece inconclusiva em qualquer dos casos, e uma recusa nunca remove, desativa nem reativa um proxy.",
"sidebar": {
"home": "Página inicial",
"dashboard": "Painel",
"providers": "Provedores",
- "combos": "Combos",
+ "combos": "Combinações",
"usage": "Uso",
"analytics": "Análise",
"costs": "Custos",
@@ -1008,7 +1011,7 @@
"media": "Mídia",
"settings": "Configurações",
"translator": "Tradutor",
- "playground": "Playground",
+ "playground": "Ambiente de testes",
"searchTools": "Ferramentas de Pesquisa",
"agents": "Agentes",
"cloudAgents": "Agentes de nuvem",
@@ -1019,7 +1022,7 @@
"chaosConfig": "Modo Caos",
"docs": "Documentos",
"issues": "Problemas",
- "endpoints": "Endpoints",
+ "endpoints": "Pontos finais",
"endpointsSubtitle": "Seus URLs de conexão de IA",
"apiManager": "Gerenciador de APIs",
"apiManagerSubtitle": "Gerenciar chaves de API e acesso",
@@ -1109,7 +1112,7 @@
"contextSessionDedup": "Deduplicação de Sessão",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Estúdio de combinações",
"combosLiveSubtitle": "Cascata de encaminhamento em tempo real",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Exclusões",
@@ -1175,12 +1178,12 @@
"omniProxySection": "OmniProxy",
"quotaTracker": "Quota de Fornecedor",
"providerQuota": "Quota de Fornecedor",
- "runtime": "Runtime",
+ "runtime": "Ambiente de execução",
"consoleLogs": "Registos da Consola",
"logsTimeline": "Linha do Tempo",
"logsTimelineSubtitle": "Linha do tempo de pedidos visuais",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
+ "conversations": "Conversas",
+ "conversationsSubtitle": "Conversas agênticas com múltiplos turnos",
"globalRouting": "Encaminhamento Global",
"mitmProxy": "Proxy MITM",
"oneProxy": "1Proxy",
@@ -1210,11 +1213,11 @@
"leaderboard": "Tabela de Classificação",
"profile": "Perfil",
"tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
+ "gamificationAdmin": "Administração da Gamificação",
"leaderboardSubtitle": "Classificações e conquistas",
"profileSubtitle": "Conta e preferências",
"tokensSubtitle": "Uso de tokens e orçamentos",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
+ "gamificationAdminSubtitle": "Monitorização de anomalias e prevenção de fraude",
"usageSubtitle": "Estatísticas de tráfego e uso",
"analyticsComboHealthSubtitle": "Confiabilidade dos targets do combo",
"analyticsUtilizationSubtitle": "Utilização de provedores",
@@ -1272,11 +1275,11 @@
"systemGroup": "Sistema",
"costsOverview": "Visão geral",
"costsOverviewSubtitle": "Análise de custos consolidada",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Ponte de Agentes",
"agentBridgeSubtitle": "Intercetar tráfego do agente do IDE",
"trafficInspector": "Inspetor de Tráfego",
"trafficInspectorSubtitle": "Inspecione o tráfego de pedidos e respostas das suas aplicações",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorPurpose": "Veja exatamente o que a sua aplicação envia e recebe dos fornecedores de IA. Funciona com qualquer cliente compatível com OpenAI.",
"cliCode": "Código da CLI",
"cliCodeSubtitle": "Ferramentas de código a apontar para o OmniRoute",
"cliAgents": "Agentes de CLI",
@@ -1517,42 +1520,42 @@
"actor": "Ator",
"actorPlaceholder": "Filtrar por ator",
"eventTypes": {
- "apiKey.activate": "API Key Activated",
- "apiKey.ban": "API Key Banned",
- "apiKey.deactivate": "API Key Deactivated",
- "apiKey.regenerate": "API Key Regenerated",
- "apiKey.scopes.grant": "API Key Scopes Granted",
- "apiKey.scopes.revoke": "API Key Scopes Revoked",
- "apiKey.scopes.update": "API Key Scopes Updated",
- "apiKey.unban": "API Key Unbanned",
- "auth.login.error": "Login Error",
- "auth.login.failed": "Login Failed",
- "auth.login.locked": "Login Locked",
- "auth.login.misconfigured": "Login Misconfigured",
- "auth.login.setup_required": "Login Setup Required",
- "auth.login.success": "Login Success",
- "auth.logout.success": "Logout Success",
- "compliance.cleanup": "Compliance Cleanup",
- "provider.credentials.applied": "Provider Credentials Applied",
- "provider.credentials.batch_revoked": "Provider Credentials Batch Revoked",
- "provider.credentials.bulk_created": "Provider Credentials Bulk Created",
- "provider.credentials.bulk_imported": "Provider Credentials Bulk Imported",
- "provider.credentials.created": "Provider Credentials Created",
- "provider.credentials.imported": "Provider Credentials Imported",
- "provider.credentials.revoked": "Provider Credentials Revoked",
- "provider.credentials.updated": "Provider Credentials Updated",
- "provider.validation.ssrf_blocked": "Provider SSRF Blocked",
- "quota.plan.updated": "Quota Plan Updated",
- "quota.pool.created": "Quota Pool Created",
- "quota.pool.deleted": "Quota Pool Deleted",
- "quota.pool.updated": "Quota Pool Updated",
- "quota.store.driver_changed": "Quota Store Driver Changed",
- "server.start": "Server Start",
- "service.reveal_api_key": "Service API Key Revealed",
- "settings.update": "Settings Updated",
- "settings.update_failed": "Settings Update Failed",
- "sync.token.created": "Sync Token Created",
- "sync.token.revoked": "Sync Token Revoked"
+ "apiKey.activate": "Chave de API ativada",
+ "apiKey.ban": "Chave de API banida",
+ "apiKey.deactivate": "Chave de API desativada",
+ "apiKey.regenerate": "Chave de API regenerada",
+ "apiKey.scopes.grant": "Âmbitos concedidos à chave de API",
+ "apiKey.scopes.revoke": "Âmbitos revogados da chave de API",
+ "apiKey.scopes.update": "Âmbitos da chave de API atualizados",
+ "apiKey.unban": "Chave de API desbanida",
+ "auth.login.error": "Erro de início de sessão",
+ "auth.login.failed": "Falha no início de sessão",
+ "auth.login.locked": "Início de sessão bloqueado",
+ "auth.login.misconfigured": "Início de sessão configurado incorretamente",
+ "auth.login.setup_required": "É necessário configurar o início de sessão",
+ "auth.login.success": "Início de sessão efetuado com sucesso",
+ "auth.logout.success": "Sessão terminada com sucesso",
+ "compliance.cleanup": "Limpeza de conformidade",
+ "provider.credentials.applied": "Credenciais do fornecedor aplicadas",
+ "provider.credentials.batch_revoked": "Lote de credenciais do fornecedor revogado",
+ "provider.credentials.bulk_created": "Credenciais do fornecedor criadas em massa",
+ "provider.credentials.bulk_imported": "Credenciais do fornecedor importadas em massa",
+ "provider.credentials.created": "Credenciais do fornecedor criadas",
+ "provider.credentials.imported": "Credenciais do fornecedor importadas",
+ "provider.credentials.revoked": "Credenciais do fornecedor revogadas",
+ "provider.credentials.updated": "Credenciais do fornecedor atualizadas",
+ "provider.validation.ssrf_blocked": "SSRF do fornecedor bloqueado",
+ "quota.plan.updated": "Plano de quota atualizado",
+ "quota.pool.created": "Conjunto de quotas criado",
+ "quota.pool.deleted": "Conjunto de quotas eliminado",
+ "quota.pool.updated": "Conjunto de quotas atualizado",
+ "quota.store.driver_changed": "Controlador do armazenamento de quotas alterado",
+ "server.start": "Início do servidor",
+ "service.reveal_api_key": "Chave da API do serviço revelada",
+ "settings.update": "Definições atualizadas",
+ "settings.update_failed": "Falha ao atualizar as definições",
+ "sync.token.created": "Token de sincronização criado",
+ "sync.token.revoked": "Token de sincronização revogado"
},
"mcpMetricCalls24h": "Chamadas (24h)",
"mcpMetricSuccessRate": "Taxa de sucesso",
@@ -1578,7 +1581,7 @@
"language": "Idioma",
"providers": "Provedores",
"providerDescription": "Gerencie suas conexões de provedor de IA",
- "combos": "Combos",
+ "combos": "Combinações",
"comboDescription": "Combinações de modelos com substituto",
"usage": "Uso e análise",
"usageDescription": "Monitore o uso da API, o consumo de tokens e os registros de solicitação",
@@ -1690,7 +1693,7 @@
"ariaLabel": "Caminho de navegação",
"dashboard": "Painel",
"providers": "Fornecedores",
- "combos": "Combos",
+ "combos": "Combinações",
"settings": "Definições",
"general": "Geral",
"appearance": "Aparência",
@@ -1703,9 +1706,9 @@
"logs": "Registos",
"auditLog": "Registo de Auditoria",
"console": "Consola",
- "logger": "Logger",
+ "logger": "Registador",
"translator": "Tradutor",
- "playground": "Playground",
+ "playground": "Ambiente de testes",
"add": "Adicionar",
"edit": "Editar",
"apiKeys": "Chaves de API",
@@ -1721,7 +1724,7 @@
"analytics": "Analíticos",
"costs": "Custos",
"health": "Saúde",
- "runtime": "Runtime",
+ "runtime": "Ambiente de execução",
"webhooks": "Webhooks",
"home": "Início",
"activity": "Atividade",
@@ -1746,7 +1749,7 @@
"aggressive": "Agressivo",
"caveman": "Caveman",
"ccr": "CCR",
- "headroom": "Headroom",
+ "headroom": "Margem",
"lite": "Lite",
"llmlingua": "LLMLingua",
"omniglyph": "OmniGlyph",
@@ -1759,7 +1762,7 @@
"discovery": "Descoberta",
"freeProviderRankings": "Rankings de Fornecedores Gratuitos",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Configuração",
"freeTiers": "Escalões Gratuitos",
"gamification": "Gamificação",
"leaderboard": "Tabela de classificação",
@@ -1885,15 +1888,15 @@
"releaseNotes": "Notas de Lançamento",
"readMore": "Leia Mais",
"noAuthLabel": "Sem Autenticação",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Prepare-se para encaminhar",
+ "readinessTitle": "Envie o seu primeiro pedido",
+ "readinessSubtitle": "Quatro passos simples. O OmniRoute verifica o estado de preparação à medida que avança.",
+ "readinessStep1": "Ligue um fornecedor",
+ "readinessStep2": "Configure a autenticação do endpoint",
+ "readinessStep3": "Copie o seu endpoint",
+ "readinessStep4": "Envie um pedido de teste",
+ "readinessContinue": "Continuar a configuração",
+ "readinessDismiss": "Dispensar por agora"
},
"analytics": {
"title": "Análise",
@@ -2185,7 +2188,7 @@
"routeRuntimeScoreNow": "Pontuação de runtime agora",
"routeWouldSelectNow": "Selecionaria agora",
"routeNoRecomputeCandidates": "Nenhuma classificação de candidatos combo pode ser recalculada para este pedido.",
- "runtime": "Runtime",
+ "runtime": "Tempo de execução",
"routeTopNow": "Principal agora",
"routeFetchLogsFailed": "Falha ao obter os registos de pedidos",
"routeExplainFailed": "Falha ao explicar a rota",
@@ -2204,7 +2207,7 @@
"model": "Modelo",
"account": "Conta",
"connection": "Ligação",
- "combo": "Combo",
+ "combo": "Combinação",
"routeStep": "Passo",
"tokens": "Tokens",
"notAvailable": "n/d",
@@ -2255,9 +2258,9 @@
"fullAccess": "Acesso total",
"keyManagement": "Gerenciamento de chaves de API",
"keyManagementDesc": "Crie e gerencie chaves de API para autenticar solicitações em seu endpoint",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "A sua aplicação envia pedidos para o OmniRoute através de uma chave de API",
+ "requestFlowYourApp": "A sua aplicação",
+ "requestFlowApiKey": "Chave de API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Total de chaves",
"restricted": "Restrito",
@@ -2379,8 +2382,8 @@
"allowedCombos": "Combinações permitidas",
"allCombosAllowed": "Esta chave pode utilizar qualquer combinação.",
"restrictedComboCount": "Restrito a {count, plural, one {# combinação} other {# combinações}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# entrada guardada não está} other {# entradas guardadas não estão}} nesta lista de combinações (por exemplo, regras de encaminhamento) e serão mantidas tal como foram guardadas.",
+ "preservedComboRuleHint": "Mantida tal como foi guardada. Esta entrada não é uma combinação da lista acima, pelo que só pode ser alterada através da API.",
"apiManagerCustomRateLimits": "Limites de taxas personalizadas",
"apiManagerCustomRateLimitsDesc": "Substitua os limites padrão globais. Deixe em branco para usar os padrões.",
"apiManagerRateLimitRequestsPlaceholder": "Solicitações",
@@ -2417,14 +2420,14 @@
"bypassProviderQuotaDescription": "Permite que esta chave ignore a política de limite do fornecedor/conta a montante durante o encaminhamento. As quotas em USD da chave de API continuam a aplicar-se.",
"quotaPill": "QUOTA",
"quotaModeOnly": "Apenas quota",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Locação exclusiva",
+ "exclusiveLeaseNoticeTitle": "Locação exclusiva",
+ "exclusiveLeaseNoticeDesc": "Esta chave de API tem permissões de locação exclusiva para o encaminhamento através de ligações dedicadas.",
+ "allConnections": "Todas as ligações",
+ "onlySelectedConnections": "Apenas as ligações selecionadas",
+ "selectAtLeastOneConnection": "Selecione pelo menos uma ligação ou escolha Todas as ligações.",
+ "allConnectionsDesc": "Esta chave pode utilizar qualquer ligação ativa.",
+ "restrictedToConnections": "Limitado a {count, plural, one {# ligação} other {# ligações}}."
},
"auditLog": {
"title": "Registro de auditoria",
@@ -2463,13 +2466,13 @@
"videoDescription": "Cria vídeos com AnimateDiff, Stable Video Diffusion via ComfyUI ou SD WebUI.",
"musicDescription": "Compõe música usando Stable Audio Open ou MusicGen via ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Incorporação",
"image": "Imagem",
"imageToText": "Imagem para Texto",
"tts": "Texto para Voz",
"stt": "Voz para Texto",
"webSearch": "Pesquisa Web",
- "webFetch": "Web Fetch",
+ "webFetch": "Obtenção Web",
"video": "Vídeo",
"music": "Música",
"ocr": "OCR"
@@ -2591,12 +2594,12 @@
"copy": "Copiar",
"resetToDefault": "Redefinir para o padrão",
"tabSearch": "Pesquisa",
- "tabScrape": "Scrape",
+ "tabScrape": "Extração",
"tabCompare": "Comparar",
"modalitiesGuide": "Guia de modalidades",
"searchConceptTitle": "Pesquisa",
"searchConceptDesc": "Pesquisa = obtém uma lista de resultados web (título, URL, excerto, pontuação de relevância)",
- "scrapeConceptTitle": "Scrape",
+ "scrapeConceptTitle": "Extração",
"scrapeConceptDesc": "Scrape = extrai o conteúdo completo de um URL (markdown, texto ou HTML)",
"compareConceptTitle": "Comparar",
"compareConceptDesc": "Comparar = executa a mesma consulta em N fornecedores lado a lado para comparar latência, custo e sobreposição de resultados",
@@ -2606,7 +2609,7 @@
"autoConceptDesc": "Auto (mais barato) = escolhe automaticamente o fornecedor mais barato disponível com credenciais configuradas",
"providerCatalogTitle": "Catálogo de Fornecedores",
"kindSearch": "Pesquisa",
- "kindFetch": "Fetch/Scrape",
+ "kindFetch": "Obtenção/Extração",
"statusConfigured": "Configurado",
"statusMissing": "Sem credencial",
"statusRateLimited": "Limitado pela taxa",
@@ -2627,7 +2630,7 @@
"formatHtml": "HTML",
"formatText": "Texto",
"scrapePreview": "Pré-visualização",
- "scrapeRaw": "Raw",
+ "scrapeRaw": "Em bruto",
"scrapeContentTruncated": "(truncado, ver raw)",
"scrapeMetadata": "Metadados",
"scrapeProvider": "Fornecedor",
@@ -2652,7 +2655,7 @@
"historyHint": "O histórico está disponível no separador Pesquisa.",
"noActiveProvider": "Nenhum provedor de pesquisa ativo",
"configureMoreProviders": "Configurar mais provedores",
- "links": "Links",
+ "links": "Ligações",
"contentTruncated": "Conteúdo truncado para 256 KB (tamanho original: {size})",
"viewFullRaw": "Ver conteúdo bruto completo",
"rawScrapedContent": "Conteúdo extraído bruto",
@@ -2678,7 +2681,7 @@
"ttsSample": "Olá, este é um teste de conversão de texto em voz.",
"video": "Vídeo",
"videoSample": "Um time-lapse de nuvens sobre uma cordilheira",
- "webFetch": "Web Fetch",
+ "webFetch": "Obtenção Web",
"webSearchSample": "O que é o OmniRoute AI gateway?",
"noActiveProviderDescription": "Nenhum fornecedor de pesquisa ativo. Configure um em Fornecedores.",
"configureProviders": "Configurar fornecedores",
@@ -2740,7 +2743,7 @@
"effortExtraHigh": "Extra alto",
"effortMax": "Máximo",
"effortUltra": "Ultra",
- "wireApi": "Wire API",
+ "wireApi": "API Wire",
"modelAliases": "Aliases de modelo",
"addModel": "Adicionar modelo",
"routeModelPlaceholder": "Encaminhar {model} para...",
@@ -2947,7 +2950,7 @@
"interpreter": "CLI do agente de programação autónomo Open Interpreter",
"omp": "Agente de programação de terminal Oh My Pi",
"letta": "Agente CLI Letta com memória persistente e utilização de ferramentas",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — ambiente de programação RLM com autoaperfeiçoamento e suporte para fornecedores compatíveis com OpenAI",
"warp": "Terminal Warp AI com suporte para fornecedor personalizado",
"agent-deck": "Orquestrador multi-agente Agent Deck",
"5dive": "5dive — frota auto-alojada de agentes de codificação; um perfil de autenticação aponta todos para o OmniRoute"
@@ -3137,7 +3140,7 @@
"hermesRoleGoalJudgeDesc": "Avaliação da conclusão de objetivos",
"hermesRoleCurator": "Curador",
"hermesRoleCuratorDesc": "Curadoria de Habilidades e Memória",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Monitorização",
"hermesRoleMonitorDesc": "Monitorização em segundo plano",
"hermesRoleBackgroundReview": "Revisão de Fundo",
"hermesRoleBackgroundReviewDesc": "Revisão de código em segundo plano",
@@ -3149,7 +3152,7 @@
"hermesConfiguredRoles": "{configured}/{total} funções",
"hermesQuickApply": "Aplicar rapidamente o mesmo modelo a todas as funções:",
"hermesApplyModelToAll": "Aplicar {model} a todas as funções",
- "hermesViaOmniRoute": "{provider} (via OmniRoute)",
+ "hermesViaOmniRoute": "{provider} (através do OmniRoute)",
"hermesNotOmniRoute": "{provider} (não OmniRoute)",
"hermesRemovePendingRole": "Remover esta função das alterações pendentes",
"hermesApply": "Aplicar ao Hermes Agent",
@@ -3200,7 +3203,7 @@
"cliproxyapiVersion": "Versão"
},
"combos": {
- "title": "Combos",
+ "title": "Combinações",
"description": "Crie combinações de modelos com roteamento ponderado e suporte substituto",
"autoCatalogTitle": "Catálogo de roteamento automático",
"autoCatalogTemplateCount": "{count} modelos",
@@ -3265,7 +3268,7 @@
"cacheOptimizedDesc": "Encaminha cada prefixo de prompt reutilizável consistentemente para a mesma conta de fornecedor",
"resetAware": "RR com reconhecimento de redefinição",
"resetAwareDesc": "Equilibra a cota restante com redefinições de 5h e semanais e, em seguida, faz um round-robin de pontuações semelhantes",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Ponderado por quota",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
"strictRandom": "Aleatório Estrito",
"strictRandomDesc": "Baralho embaralhado — usa cada modelo uma vez antes de reembaralhar",
@@ -3332,7 +3335,7 @@
"playgroundStrategy": "Estratégia",
"playgroundEstimatedCost": "Custo est.",
"playgroundEstimatedLatency": "Latência est.",
- "playgroundFallback": "fallback",
+ "playgroundFallback": "alternativa",
"playgroundWeight": "peso {value}",
"playgroundWarningCount": "Avisos ({count})",
"playgroundErrorCount": "Erros ({count})",
@@ -3533,7 +3536,7 @@
"nestedComboFlatten": "Aplanar combinações aninhadas",
"nestedComboExecute": "Executar combinações aninhadas como destinos",
"effectiveRoutingShare": "Quota de encaminhamento efetiva (peso ÷ total)",
- "weightQuota": "Quota",
+ "weightQuota": "Cota",
"weightHealth": "Saúde",
"weightCostInv": "Custo",
"weightLatencyInv": "Latência",
@@ -3661,10 +3664,10 @@
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Rever e Guardar",
"wizardStep4Desc": "Rever a configuração e ativar o combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
+ "usageGuideInvokeTitle": "Como chamar esta combinação",
+ "usageGuideInvokeDesc": "Envie o nome exato da combinação como modelo, por exemplo, model: \"my-combo\" (ou combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto e auto/* são um router separado, sem configuração, que não utiliza as suas combinações (a menos que uma combinação tenha literalmente o nome auto).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto é um produto pago real da OpenRouter (Auto Best Available), não um alias do OmniRoute — exclua-o em Definições → Encaminhamento → Ocultar modelos pagos.",
"emailVisibilityStateOn": "Ligado",
"emailVisibilityStateOff": "Desligado",
"reorderHandle": "Arrasta para reordenar",
@@ -3777,7 +3780,7 @@
"errorDescription": "Não conseguimos carregar os dados do combo neste momento. Verifique a sua ligação e tente novamente.",
"errorId": "ID de Erro: {id}",
"errorRetry": "Tente Novamente",
- "comboLabel": "Combo",
+ "comboLabel": "Combinação",
"duplicateAutoComboConfirm": "Criar uma combinação estática de \"{name}\"?",
"duplicateAutoComboSnapshotMsg": "Isto irá capturar os provedores/modelos atualmente conectados que correspondem a este modelo em uma combinação editável.",
"duplicateAutoComboFailedPrefix": "Falha ao duplicar a combinação automática:",
@@ -3802,8 +3805,8 @@
"rangeAll": "Todos os tempos",
"spend30d": "Spend30D",
"activeModels": "Modelos Ativos",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
+ "flatRateEstimateNotice": "Inclui estimativas do preço dos tokens para subscrições de tarifa fixa, não o custo faturado.",
+ "flatRateEstimateForecast": "A projeção inclui estimativas de tarifa fixa.",
"selectedWindow": "Janela Selecionada",
"activeProviders": "Fornecedores Ativos",
"overviewTitle": "Overview Title",
@@ -3879,9 +3882,9 @@
},
"endpoint": {
"title": "Ponto final da API",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "Utilize o endpoint compatível com OpenAI com a maioria dos SDK e das ferramentas.",
+ "testEndpoint": "Testar endpoint →",
+ "advancedProtocols": "Protocolos avançados",
"available": "Terminais disponíveis",
"cloudProxy": "Proxy de nuvem",
"disableConfirm": "Tem certeza de que deseja desativar o proxy na nuvem?",
@@ -4365,7 +4368,7 @@
"a2aStep3": "Acompanhe e cancele tarefas com {code1} e {code2}."
},
"memory": {
- "a": "A",
+ "a": "R",
"actions": "Ações",
"addMemory": "Adicionar Memória",
"allTypes": "Todos os Tipos",
@@ -4430,7 +4433,7 @@
"reindexFailed": "Falha ao iniciar a reindexação",
"keywordLabel": "Palavra-chave (FTS5)",
"keywordReason": "Pesquisa por palavra-chave sempre disponível",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Representação vetorial",
"vectorStoreLabel": "Armazenamento Vetorial",
"qdrantLabel": "Qdrant",
"rerankLabel": "Reordenar",
@@ -4457,7 +4460,7 @@
"noMemories": "Nenhuma memória encontrada",
"pageInfo": "Página {page} de {totalPages} ({total} total)",
"pipelineError": "Erro de pipeline",
- "pipelineOk": "Pipeline OK ({latencyMs}ms)",
+ "pipelineOk": "Pipeline operacional ({latencyMs}ms)",
"playground": {
"infoTitle": "Playground de Memória",
"infoDesc": "Simule o que seria obtido para uma determinada consulta. Nenhuma memória é modificada — pré-visualização apenas de leitura.",
@@ -4471,11 +4474,11 @@
"simulate": "Simular",
"resultsTitle": "{count} resultado(s)",
"resolutionTitle": "Resolução da pesquisa",
- "resolutionEmbedding": "Embedding",
+ "resolutionEmbedding": "Representação vetorial",
"resolutionStore": "Armazenamento vetorial",
"resolutionStrategy": "Estratégia utilizada",
"rerankApplied": "Reordenação aplicada",
- "fallback": "Fallback",
+ "fallback": "Alternativa",
"noResults": "Nenhuma memória encontrada para esta consulta.",
"tokensUsed": "tokens utilizados",
"none": "nenhum",
@@ -4541,7 +4544,7 @@
},
"tabs": {
"memories": "Memórias",
- "playground": "Playground",
+ "playground": "Área de testes",
"engine": "Motor"
},
"title": "Gerenciamento de Memória",
@@ -4566,7 +4569,7 @@
"executionsTab": "Execuções",
"selectSkillToInspect": "Selecione uma competência à esquerda para inspecionar.",
"schemaTab": "Esquema",
- "handlerTab": "Handler",
+ "handlerTab": "Processador",
"inputSchema": "Esquema de entrada",
"outputSchema": "Esquema de saída",
"handlerCode": "Código do Handler",
@@ -4574,7 +4577,7 @@
"runTestPlaceholder": "Executar teste (marcador de posição)",
"setModeAria": "Definir modo {mode}",
"uninstallSkill": "Desinstalar competência",
- "sandboxTab": "Sandbox",
+ "sandboxTab": "Ambiente isolado",
"loading": "Carregando skills...",
"noSkills": "Nenhuma skill encontrada",
"noExecutions": "Nenhuma execução encontrada",
@@ -4597,7 +4600,7 @@
"networkAccess": "Acesso à Rede",
"networkAccessDesc": "Permitir requisições de rede de saída",
"mode": "Modo",
- "q": "Q",
+ "q": "P",
"filterSkillsPlaceholder": "Filtre habilidades por nome, descrição ou tag",
"allModes": "Todos os modos",
"totalSkills": "Total de competências",
@@ -4609,7 +4612,7 @@
"popularDefaultsLabel": "Popular por predefinição para o fornecedor selecionado:",
"onMode": "LIGADO",
"offMode": "DESLIGADO",
- "autoMode": "AUTO",
+ "autoMode": "AUTOMÁTICO",
"installSkillButton": "Instalar competência",
"installSkillModalTitle": "Instalar competência",
"installJsonPlaceholder": "Cole o JSON do manifesto da competência aqui...",
@@ -4662,13 +4665,13 @@
"retry": "Tentar novamente",
"allOperational": "Todos os sistemas operacionais",
"issuesDetected": "Problemas de sistema detectados",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "O OmniRoute está pronto",
+ "healthVerdictActionRequired": "É necessária uma ação para restaurar o funcionamento completo",
+ "healthVerdictCoolingDown": "A aguardar estabilização após alterações recentes",
+ "healthSubtitle": "Verificação do estado do sistema",
+ "advancedDiagnosticsTitle": "Diagnóstico avançado",
+ "hide": "Ocultar",
+ "show": "Mostrar",
"updatedAt": "{time} atualizado",
"latency": "Latência",
"latencyP50": "p50",
@@ -4890,7 +4893,7 @@
"eventPayload": "Payload do Evento",
"requestId": "ID do Pedido",
"providerWarningDesc": "Provider Warning Desc",
- "a": "A",
+ "a": "R",
"offset": "Desvio",
"limit": "Limite",
"status": "Estado",
@@ -4917,7 +4920,7 @@
"activeStageSendingToProvider": "A enviar para o upstream",
"activeStageProviderResponseStarted": "Resposta do upstream iniciada",
"count": "Contagem",
- "payloads": "Payloads",
+ "payloads": "Cargas úteis",
"viewPayloads": "Ver",
"activeCount": "{count} ativos",
"clientPayload": "Payload do Pedido do Cliente",
@@ -5073,6 +5076,9 @@
"importFromFileImporting": "A importar…",
"importFromFileImport": "Importar {count} fornecedores",
"importFromFileResult": "Importados {success} fornecedores ({failed} falharam)",
+ "importFromFileDownloadTemplate": "Transferir modelo CSV",
+ "importFromFileMoreErrors": "+{count} mais",
+ "importFromFileSchemaHint": "As colunas CSV são posicionais: fornecedor, nome, apiKey, baseUrl (opcional), prioridade (opcional). A coluna do fornecedor tem de conter o ID de um fornecedor gerido existente ou o ID de um nó compatível com OpenAI/Anthropic já registado — esta importação não cria novos nós de endpoint.",
"adaptaTutorial": {
"title": "Como ligar o Adapta Web",
"introPrefix": "O Adapta autentica-se através do Clerk. O token",
@@ -5175,7 +5181,7 @@
"deprecatedProvider": "Este provedor foi descontinuado",
"riskNotice": {
"title": "Antes de continuar",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Ressalvas de utilização",
"tooltip": "Provedor com advertências de utilização — clique para detalhes",
"oauth": "Este provedor utiliza a sua sessão oficial do produto/OAuth, que não está autorizada para utilização de proxy/router. Não recomendamos a utilização intensiva de agentes autónomos (estilo OpenCloud, fluxos longos de vários passos, grandes lotes) — o upstream pode reagir restringindo ou banindo a conta. Utilize por sua conta e risco.",
"webCookie": "Este provedor autentica-se através dos cookies da sua sessão web. O serviço upstream pode invalidar a sessão a qualquer momento, exigindo que inicie sessão novamente. Não recomendado para operações longas sem supervisão. Utilize por sua conta e risco.",
@@ -5185,9 +5191,9 @@
"cancel": "Cancelar"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} ligação(ões) assinalada(s) — até {maxFailures} falhas recentes{lastFailureSuffix}. Clique para ver o estado das ligações.",
+ "lastFailureSuffix": "(última falha: {time})",
+ "ariaLabel": "Ver detalhes do estado da ligação, {count} aviso(s)"
},
"disabled": "Desativado",
"enableProvider": "Habilitar provedor",
@@ -5254,10 +5260,10 @@
"iconUrlLabel": "URL do ícone",
"iconUrlHint": "Opcional. URL da imagem mostrada como ícone deste provedor.",
"iconUrlInvalid": "URL do ícone inválido. Utilize uma URL http(s):// ou data:image/*;base64.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Fuso horário de reposição da quota diária",
+ "dailyQuotaResetTimezoneHint": "Fuso horário IANA opcional utilizado quando o serviço a montante omite X-RateLimit-Reset. Deixe vazio para manter um curto período de espera.",
+ "dailyQuotaResetHourLabel": "Hora de reposição da quota diária",
+ "dailyQuotaResetHourHint": "Hora local de 0 a 23 no fuso horário acima. Vazio significa que não existe relógio ao nível do nó.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5361,7 +5367,7 @@
"removeModel": "Remover modelo",
"rateLimitProtected": "Protegido",
"rateLimitUnprotected": "Desprotegido",
- "providerQuotaShort": "Quota",
+ "providerQuotaShort": "Cota",
"hideConnectionFromProviderQuota": "Ocultar esta conta da Quota do Provedor",
"showConnectionInProviderQuota": "Mostrar esta conta na Quota do Provedor",
"quotaVisibilityUpdateFailed": "Falha ao atualizar a visibilidade da Quota do Provedor",
@@ -5484,7 +5490,7 @@
"preserveDeveloperRoleLabel": "Manter role de developer da OpenAI Responses (não mapear para system)",
"compatAdjustmentsTitle": "Compatibilidade",
"compatButtonLabel": "Compatibilidade",
- "compatToolIdShort": "Tool ID 9",
+ "compatToolIdShort": "ID da ferramenta 9",
"compatDeveloperShort": "Role de developer",
"compatDoNotPreserveDeveloper": "Não preservar role de developer",
"compatBadgeNoPreserve": "Sem preservar",
@@ -5531,18 +5537,18 @@
"interceptFetchHint": "Reescrever chamadas de ferramentas nativas web_fetch para o /v1/web/fetch do OmniRoute.",
"interceptionLoadError": "Falha ao carregar as definições de interceção: {error}",
"interceptionSaveError": "Falha ao guardar as definições de interceção: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
+ "ccAliasSectionTitle": "Disponibilizar no Claude Code (claude/…)",
+ "ccAliasSectionHint": "Anunciar os modelos deste fornecedor com IDs espelho claude/<provider>/<model>, para que a deteção de modelos do gateway do Claude Code os possa listar. Desativado por predefinição — a ativação duplica as entradas do catálogo para todos os clientes.",
+ "ccAliasProviderLevelLabel": "Predefinição do fornecedor",
+ "ccAliasModelOverridesLabel": "Substituições por modelo",
+ "ccAliasModelOverrideAriaLabel": "Substituição para {modelId}",
+ "ccAliasStateInherit": "Herdar",
+ "ccAliasStateOn": "Ativado",
+ "ccAliasStateOff": "Desativado",
+ "ccAliasAddModelPlaceholder": "ID do modelo (por exemplo, gpt-4o)",
+ "ccAliasAddModelButton": "Adicionar substituição",
+ "ccAliasLoadError": "Não foi possível carregar as definições dos aliases de deteção: {error}",
+ "ccAliasSaveError": "Não foi possível guardar a definição do alias de deteção: {error}",
"compatUpstreamHeadersLabel": "Cabeçalhos upstream extra",
"compatUpstreamHeadersHint": "Definição de alto privilégio — mesmo nível de confiança que editar credenciais de API do fornecedor; só admins de confiança devem usar.",
"compatUpstreamHeaderName": "Nome do cabeçalho",
@@ -5901,8 +5907,8 @@
"rateLimitOverridesSection": "Substituições de limite de taxa",
"rateLimitOverridesMaxConcurrentHint": "Substituição de pedidos simultâneos máximos para esta ligação. Substitui o limite ao nível da conta.",
"rateLimitOverridesMaxConcurrentLabel": "Máximo de simultâneos (limite de taxa)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Tempo máximo (ms) que um pedido pode aguardar por uma vaga no limite de taxa antes de falhar. Substitui a definição global de Resiliência apenas para esta ligação.",
+ "rateLimitOverridesMaxWaitMsLabel": "Espera máxima na fila (ms)",
"rateLimitOverridesMinTimeHint": "Tempo mínimo (ms) entre pedidos. Substitui o atraso predefinido do limitador de taxa.",
"rateLimitOverridesMinTimeLabel": "Intervalo mín. (ms)",
"rateLimitOverridesRpdHint": "Máximo de pedidos por dia para esta ligação. Substitui a predefinição do fornecedor.",
@@ -5912,7 +5918,7 @@
"rateLimitOverridesTpdHint": "Tokens máximos por dia para esta ligação. Substitui a predefinição do fornecedor.",
"rateLimitOverridesTpdLabel": "TPD (Tokens/dia)",
"rateLimitOverridesTpmHint": "Tokens máximos por minuto para esta ligação. Substitui a predefinição do fornecedor.",
- "rateLimitOverridesTpmLabel": "TPM (Tokens/min)",
+ "rateLimitOverridesTpmLabel": "TPM (tokens/min)",
"refreshOauthTokenTitle": "Atualizar Token OAuth",
"regionHint": "Dica de Região",
"regionLabel": "Região",
@@ -6172,7 +6178,7 @@
"freeaiapikey": "Proxy de API com desconto para mais de 40 modelos, incluindo GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5. Obtenha a sua chave de API em https://freeaiapikey.com/dashboard. URL base: https://freeaiapikey.com/v1.",
"freemodel-dev": "Obtenha $300 em créditos de API gratuitos em https://freemodel.dev — sem necessidade de dados de pagamento. Endpoint compatível com OpenAI. Modelos GPT-5.4 e GPT-5.5 disponíveis.",
"friendliai": "Nível gratuito para inferência serverless — sem necessidade de cartão de crédito",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Nível gratuito através do Google AI Studio; as quotas por modelo já não são publicadas (consulte a página de quotas no AI Studio) — sem cartão de crédito.",
"gigachat": "Ligue o GigaChat (Sber) com uma chave de API.",
"gitlab": "Token de acesso pessoal do GitLab para a API pública Code Suggestions. Configure um URL base autoalojado quando não estiver a utilizar o gitlab.com.",
"gitlawb-gmi": "Obtenha a sua chave de API no painel do Gitlawb Opengateway.",
@@ -6181,7 +6187,7 @@
"glm-cn": "Ligue o GLM Coding (China) com uma chave de API.",
"glmt": "Perfil predefinido do GLM com maior orçamento de tokens, raciocínio ativado e tempo limite mais longo.",
"getgoapi": "Ligue a GoAPI com uma chave de API.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Plano gratuito: limites por modelo (200 mil tokens/dia por modelo de chat; consulte console.groq.com/docs/rate-limits para RPM/RPD) — sem método de pagamento registado.",
"haiper": "Obtenha a chave de API em haiper.ai/haiper-api",
"heroku": "Ligue o Heroku AI com uma chave de API.",
"hcnsec": "Obtenha a chave de API em api.hcnsec.cn",
@@ -6249,7 +6255,7 @@
"requesty": "Crie uma chave de API em https://app.requesty.ai e, em seguida, cole-a aqui como um token Bearer. Endpoint compatível com a OpenAI em https://router.requesty.ai/v1, com um catálogo /v1/models em tempo real.",
"runwayml": "A geração de vídeo da Runway é baseada em tarefas. O OmniRoute submete tarefas de texto para vídeo ou imagem para vídeo, consulta /v1/tasks/[id] e normaliza as saídas de vídeo concluídas de volta para a resposta /v1/videos/generations semelhante à da OpenAI.",
"sambanova": "$5 em créditos gratuitos no registo (validade de 30 dias), sem necessidade de cartão de crédito",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Crie uma chave de API em https://seekai.cc e cole-a aqui como token Bearer. URL base compatível com OpenAI: https://seekai.cc/v1.",
"sap": "A descoberta de modelos utiliza /v2/lm/scenarios/foundation-models/models em AI_API_URL. Os pedidos de chat utilizam deploymentUrl/chat/completions e requerem AI-Resource-Group.",
"sarvam": "Sarvam AI é compatível com OpenAI em /v1. OmniRoute investiga /v1/models e direciona o tráfego de chat para /v1/chat/completions. Os modelos são ajustados para línguas índicas.",
"scaleway": "1M de tokens gratuitos para novas contas — em conformidade com a UE/RGPD (Paris), Qwen3 235B e Llama 70B",
@@ -6306,7 +6312,7 @@
"claude": "Ligar o Claude Code com o fluxo OAuth existente.",
"cline": "Ligar o Cline com o fluxo OAuth existente.",
"cursor": "Ligar o Cursor IDE com o fluxo OAuth existente.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Ligue o Cursor com uma chave de API de utilizador (crsr_...) de cursor.com/dashboard/api; não é necessária uma sessão do IDE.",
"github": "Ligar o GitHub Copilot com o fluxo OAuth existente.",
"gitlab-duo": "Aplicação OAuth com os âmbitos ai_features + read_user. Configure GITLAB_DUO_OAUTH_CLIENT_ID e, opcionalmente, GITLAB_DUO_OAUTH_CLIENT_SECRET nesta instância do OmniRoute.",
"kilocode": "Ligar o Kilo Code com o fluxo OAuth existente.",
@@ -6339,20 +6345,20 @@
"webSessionGuideStep3": "Copie a credencial necessária do próprio domínio do provedor. Para cookies, copie apenas o valor do cabeçalho Cookie e omita Cookie:.",
"webSessionGuideStep3Manual": "Caminho manual: abra as ferramentas de desenvolvedor do navegador (F12 → Rede), atualize a página, abra uma solicitação autenticada e copie o valor do cabeçalho Cookie dos Cabeçalhos da Solicitação — omita o prefixo Cookie:.",
"webSessionGuideStep4": "Cole aqui e verifique a conexão. Se parar de funcionar, faça login novamente e substitua-o por um novo valor.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "Importar ficheiro .har",
+ "harImportButtonBusy": "A importar…",
+ "harImportButtonHint": "Exporte a partir do separador Network do DevTools depois de enviar pelo menos uma mensagem de chat.",
+ "harImportStatusValid": "Importado — válido durante ~{minutes} min.",
+ "harImportStatusExpiringSoon": "Importado — válido apenas por mais ~{minutes} min.",
+ "harImportStatusExpired": "Importado, mas este token já expirou (há {minutes} min) — exporte um HAR novo.",
+ "harImportStatusUnknownExpiry": "Importado. Não foi possível ler a respetiva data de expiração.",
+ "harImportErrorNotJson": "Esse ficheiro não contém JSON válido — será mesmo uma exportação .har?",
+ "harImportErrorNoEntries": "Este HAR não contém entradas de rede registadas.",
+ "harImportErrorNoChathubUrl": "Não foi encontrada nenhuma ligação de chat do Copilot neste HAR. Envie pelo menos uma mensagem de chat em m365.cloud.microsoft antes de exportar.",
+ "harImportErrorUnparsableUrl": "A ligação de chat foi encontrada, mas não foi possível ler o respetivo URL.",
+ "harImportErrorMissingFields": "A ligação de chat foi encontrada, mas faltava-lhe o token.",
+ "harImportErrorReadFailed": "Não foi possível ler esse ficheiro.",
+ "harImportErrorUnknown": "Não foi possível extrair uma credencial desse ficheiro HAR.",
"webSessionSecurityHint": "Trate isso como uma senha: ela poderá acessar sua conta da web conectada até que ela expire ou seja revogada.",
"webNoAuthGuideTitle": "Nenhuma credencial necessária",
"webNoAuthGuideBody": "{provider} não precisa de chave de API ou cookie. Salve a conexão para usar seu endpoint web gratuito.",
@@ -6426,14 +6432,19 @@
"commandCodeAuthExpired": "Código de comando de autenticação expirado",
"commandCodeConnected": "Código de Comando conectado",
"commandCodeConnectionAdded": "Código de comando de ligação adicionado",
+ "clearConnectionCooldown": "Limpar período de espera",
+ "clearConnectionCooldownInProgress": "A limpar…",
+ "clearConnectionCooldownTitle": "Limpar agora o período de espera — utilize quando a quota já tiver sido reposta no serviço de origem",
"commandCodeLinkExpired": "O link do código do comando expirou",
"commandCodeOpeningStudio": "A Abrir o Command Code Studio…",
"commandCodePopupBlocked": "Popup bloqueado. Por favor, permita popups e tente o Command Code Connect novamente.",
"commandCodeStartFailed": "Falha ao iniciar o comando Code auth",
"connectionDeleted": "Conexão eliminada",
"connectionFallback": "conexão",
+ "connectionCooldownCleared": "Período de espera limpo — a ligação voltou ao encaminhamento",
"coolingConnectionsDescription": "Estas conexões estão a arrefecer após o último pedido. O OmniRoute irá ignorá-las até o temporizador expirar — não é necessária desativação manual.",
"coolingConnectionsTitle": "Atualmente a arrefecer ({count})",
+ "failedClearConnectionCooldown": "Não foi possível limpar o período de espera",
"failedDeleteAlias": "Falha ao eliminar o alias",
"failedDeleteConnection": "Falha ao eliminar a ligação",
"failedDistributeProxies": "Falha ao distribuir proxies.",
@@ -6467,12 +6478,7 @@
"savedModelEndpointSettings": "Definições do ponto de extremidade do modelo guardado",
"searchByModelAria": "Pesquisar por modelo",
"selectSupportedEndpoint": "Selecione pelo menos um endpoint suportado",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "Configurações",
@@ -6552,7 +6558,7 @@
"thinkingBudget": "Pensando no orçamento",
"proxy": "Procurador",
"httpProxy": "Proxy HTTP",
- "1proxy": "1proxy",
+ "1proxy": "1 proxy",
"proxySubTabsAria": "Secções de proxy",
"requestBodyLimitTitle": "Limite do Corpo do Pedido",
"requestBodyLimitDescription": "Tamanho máximo de payload de API aceite antes de o corpo do pedido ser analisado. As rotas de upload dedicadas mantêm pelo menos o seu próprio limite.",
@@ -6691,12 +6697,12 @@
"autoDisableDescription": "Marca permanentemente conexões de provedor como desativadas quando retornam sinais terminais de banimento (ex.: HTTP 403 'verify your account'). Isso remove a conexão da rotação de combos.",
"autoDisableThreshold": "Limite de banimento",
"autoDisableThresholdDesc": "Quantidade de sinais consecutivos de banimento antes da desativação permanente.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedScope": "Aplicar desativação automática a",
+ "autoDisableBannedScopeDesc": "Os postos de início de sessão (subscrições pagas e contas gratuitas) podem ser bloqueados pelo serviço de origem se o OmniRoute continuar a tentar após um bloqueio. As chaves de API pré-pagas não têm esse risco — mantenha-as no conjunto para que o preenchimento prioritário possa utilizar a chave seguinte.",
+ "autoDisableBannedScopeAll": "Todas as ligações",
+ "autoDisableBannedScopeAllDesc": "Desativar todas as ligações que devolvam um sinal de bloqueio permanente, incluindo chaves de API pré-pagas.",
+ "autoDisableBannedScopeSubscription": "Apenas contas de início de sessão / subscrição",
+ "autoDisableBannedScopeSubscriptionDesc": "Desativar postos OAuth, de cookies, de sessão e de início de sessão na Web (pagos ou gratuitos). As chaves de API pré-pagas permanecem ativas para que o encaminhamento possa mudar para uma alternativa.",
"customBannedSignals": "Palavras-chave Proibidas",
"customBannedSignalsDesc": "Palavras-chave adicionais que acionam a deteção de banimento permanente da conta. As palavras-chave integradas aplicam-se sempre.",
"customBannedSignalsPlaceholder": "ex. chave de API revogada",
@@ -6752,18 +6758,18 @@
"sidebarVisibility": "Ocultar itens da barra lateral",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "Tudo",
+ "presetAllDesc": "Mostrar tudo",
+ "presetEssentials": "Essenciais",
+ "presetEssentialsDesc": "Percurso para principiantes — as ferramentas avançadas continuam pesquisáveis",
+ "presetMinimal": "Mínimo",
+ "presetMinimalDesc": "Apenas páginas principais",
+ "presetDeveloper": "Programador",
+ "presetDeveloperDesc": "Ferramentas de desenvolvimento e proxy",
+ "presetAdmin": "Administrador",
+ "presetAdminDesc": "Monitorização e auditoria",
+ "settingsSidebarTitle": "Personalização da barra lateral",
+ "settingsSidebarDesc": "Escolha os itens a apresentar na barra lateral. A opção Essenciais mantém as ferramentas avançadas acessíveis através da pesquisa.",
"hideHealthLogs": "Ocultar registros de verificação de integridade",
"hideHealthLogsDesc": "Quando ativado, suprime mensagens [HealthCheck] no console do servidor",
"themeAccent": "Cor do tema",
@@ -6981,7 +6987,7 @@
"passthroughDesc": "Sem alterações – o cliente controla o orçamento pensado",
"thinkingModePassthrough": "Passagem direta",
"thinkingModePassthroughDesc": "Deixe o raciocínio do cliente inalterado (esforço, resumo, blocos de pensamento). Necessário para o pensamento visível do Codex/Desktop. Padrão.",
- "thinkingModeAuto": "Auto (strip)",
+ "thinkingModeAuto": "Automático (remover)",
"thinkingModeAutoDesc": "Remova todos os campos de pensamento/razão do cliente (razão, esforço_de_razão, pensamento Claude, configuração_de_pensamento Gemini) e deixe o fornecedor inventar padrões. Pode ocultar painéis de pensamento e interromper solicitações de resumo do cliente.",
"thinkingModeCustom": "Personalizado",
"thinkingModeCustomDesc": "Substitua cada pedido por um orçamento fixo de token de pensamento que você define abaixo.",
@@ -7064,7 +7070,7 @@
"costOptDesc": "Prefira a conta mais barata disponível",
"resetAware": "RR com reconhecimento de redefinição",
"resetAwareDesc": "Prefira contas com cota restante saudável e redefinições mais próximas",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Ponderado por quota",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
"strictRandom": "Aleatório Estrito",
"strictRandomDesc": "Baralhar — usa cada conta uma vez antes de baralhar novamente",
@@ -7072,7 +7078,7 @@
"stickyLimitDesc": "Chamadas por conta antes de mudar",
"routingStrategyTitle": "Estratégia de encaminhamento",
"routingStrategySubtitle": "Corresponder ao 9router: round-robin de contas, limites persistentes e rotação de combos",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Distribuição rotativa",
"accountRoundRobinDesc": "Percorrer as contas ciclicamente para distribuir a carga",
"comboRoundRobin": "Round Robin de combos",
"comboRoundRobinDesc": "Percorrer os alvos do combo ciclicamente em vez de começar sempre pelo primeiro",
@@ -7086,14 +7092,14 @@
"providerAccountRoutingDesc": "Substituir a estratégia global de conta para este provedor (paridade 9router).",
"providerRoutingStrategy": "Estratégia de conta",
"providerRoutingInheritGlobal": "Herdar predefinição global",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Limite de pré-verificação da quota",
+ "quotaPreflightSubtitle": "Ignorar contas sem quota antes de enviar o pedido ao serviço a montante",
+ "quotaPreflightEnable": "Ativar pré-verificação da quota",
+ "quotaPreflightEnableDesc": "Antes de cada pedido, verificar a quota restante da conta (períodos de 5 h / semanais / mensais). As contas cujo valor esteja no limite ou abaixo deste são ignoradas sem uma chamada ao serviço a montante. Os limites por período definidos na página Quota do fornecedor têm sempre prioridade sobre a predefinição aqui.",
+ "quotaPreflightCutoff": "Limite global (percentagem mínima restante)",
+ "quotaPreflightCutoffDesc": "Deixar de utilizar uma conta quando a respetiva quota restante atingir esta percentagem ou um valor inferior, para todos os períodos sem um limite próprio. Corresponde às barras de percentagem restante na página Quota do fornecedor.",
+ "quotaPreflightWindowsHint": "Os períodos com um limite próprio por período ou por fornecedor (definido na janela modal Limite da página Quota do fornecedor) não são afetados por esta predefinição.",
+ "quotaPreflightLoadFailed": "Não foi possível carregar as definições de pré-verificação da quota.",
"modelAliases": "Aliases de modelo",
"modelAliasesTitle": "Aliases de Modelo",
"modelAliasesDesc": "Remapeia nomes de modelos usando correspondências exatas ou padrões wildcard.",
@@ -7326,7 +7332,7 @@
"configured": "configurado",
"none": "Nenhum",
"modelOverrideValuePlaceholder": "Valor numérico",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Valores em inglês separados por vírgulas, por exemplo: low, medium, high",
"addKeyValue": "Adicionar chave-valor",
"noModelOverrides": "Nenhuma substituição configurada para este modelo.",
"modelOverrideLoadFailed": "Falha ao carregar as substituições de modelo",
@@ -7602,8 +7608,8 @@
"resilienceRequestsPerMinute": "Pedidos por minuto",
"resilienceMinTimeBetweenRequests": "Tempo mínimo entre pedidos",
"resilienceConcurrentRequests": "Pedidos concorrentes",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceConnectionScopeConcurrentRequests": "Pedidos simultâneos por âmbito de ligação/quota",
+ "resilienceGlobalConcurrentRequests": "Pedidos simultâneos globais ao serviço a montante (0 = desativado)",
"resilienceMaxQueueWaitTime": "Tempo máximo de espera na fila",
"resilienceBaseCooldown": "Arrefecimento base",
"resilienceUseUpstreamRetryHints": "Usar dicas de tentativa upstream",
@@ -7666,7 +7672,7 @@
"routingAntigravitySignatureDesc": "Controlar se o OmniRoute reutiliza apenas assinaturas de pensamento do Gemini armazenadas ou se aceita assinaturas validadas fornecidas pelo cliente em fluxos de chamada de ferramentas compatíveis com Antigravity.",
"routingAntigravitySignatureEnabledLabel": "Ativado",
"routingAntigravitySignatureEnabledDesc": "Comportamento atual. Ignorar assinaturas fornecidas pelo cliente e continuar a utilizar o fluxo OmniRoute armazenado.",
- "routingAntigravitySignatureBypassLabel": "Bypass",
+ "routingAntigravitySignatureBypassLabel": "Ignorar",
"routingAntigravitySignatureBypassDesc": "Aceitar assinaturas fornecidas pelo cliente após uma validação ligeira e recorrer à assinatura armazenada quando for inválida.",
"routingAntigravitySignatureBypassStrictLabel": "Bypass Estrito",
"routingAntigravitySignatureBypassStrictDesc": "Exigir validação protobuf completa antes de aceitar uma assinatura fornecida pelo cliente.",
@@ -7742,12 +7748,16 @@
"legacyJsonImportSuccess": "JSON legado importado com sucesso!",
"jsonImportFailed": "Falha ao importar JSON",
"jsonImportError": "Erro durante a importação de JSON",
+ "jsonImportAuthRequired": "É necessária autenticação para importar uma configuração JSON antiga. Inicie sessão ou conclua primeiro a configuração.",
+ "databaseSettingsAuthRequiredTitle": "Autenticação necessária",
+ "databaseSettingsAuthRequiredBody": "As definições da base de dados e a importação de JSON só estão disponíveis para um administrador autenticado. Inicie sessão ou conclua a configuração para as consultar e editar.",
+ "databaseSettingsAuthRequiredCta": "Iniciar sessão",
"storagePurgeData": "Limpar dados",
"storagePurgeDataDesc": "Eliminar imediatamente todos os registos sem aplicar verificações de retenção. Utilize com precaução.",
"storageRetentionCleanup": "Definições de retenção",
"storageRetentionCleanupDesc": "Configure a retenção de registos operacionais e a limpeza de cópias de segurança da base de dados.",
"retentionCallDays": "Chamada {count}d",
- "retentionAppDays": "App {count}d",
+ "retentionAppDays": "Aplicação {count}d",
"retentionRows": "{count} linhas",
"retentionQuotaSnapshots": "Instantâneos de cota (dias)",
"retentionCompressionAnalytics": "Análise de compressão (dias)",
@@ -7825,14 +7835,14 @@
"compressionDerivedMode": "modo: {mode}",
"compressionAdaptiveOff": "Orçamento de contexto adaptativo: desativado (acionamento automático legado)",
"compressionAdaptiveTarget": "Adaptativo ({mode}, política: {policy}) — alvo ≈ {target, number} tokens (para uma janela de {contextLimit, number} tokens)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Orçamento de contexto adaptável",
+ "compressionAdaptiveModeOff": "Desativado (acionamento automático antigo)",
+ "compressionAdaptiveModeFloor": "Limite mínimo (garantir sempre que cabe)",
+ "compressionAdaptiveModeReplace": "Substituir acionamento automático",
+ "compressionAdaptivePolicy": "Política de orçamento",
+ "compressionAdaptivePolicyReserve": "Reservar saída",
+ "compressionAdaptivePolicyPercentage": "Percentagem da janela",
+ "compressionAdaptivePolicyAbsolute": "Orçamento absoluto de tokens",
"compressionOutputStylesDescription": "Injete instruções de modelação de resposta sem reescrever a saída do fornecedor. Combine livremente.",
"mcpAccessibilityDescription": "Delimita as saídas das ferramentas MCP (armazenamento separado).",
"compressionStylesTileSummary": "{tokens, number} tokens poupados · {runs, plural, one {# execução estilizada} other {# execuções estilizadas}}",
@@ -7867,7 +7877,7 @@
"description": "Compressão conservadora para saídas de ferramentas Responses suportadas."
},
"headroom": {
- "label": "Headroom",
+ "label": "Margem",
"description": "Compactação de JSON tabular."
},
"relevance": {
@@ -7875,7 +7885,7 @@
"description": "Pontuação extrativa de frases em relação à última consulta do utilizador."
},
"caveman": {
- "label": "Caveman",
+ "label": "Homem das cavernas",
"description": "Compressão de prosa baseada em regras."
},
"aggressive": {
@@ -7909,8 +7919,8 @@
"description": "Disciplina de dev sénior preguiçoso: sobe a escada YAGNI, corrige a causa raiz, menor diff funcional."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Tenho TDAH (ação primeiro)",
+ "description": "Saída orientada para a ação: começa pela próxima ação, passos numerados, um próximo passo concreto, sem preâmbulo."
},
"terse-cjk": {
"label": "CJK conciso (文言)",
@@ -7928,6 +7938,14 @@
"cliproxyapiFallback": "substituto CLIProxyAPI",
"cliproxyapiEnableFallback": "Habilitar substituto CLIProxyAPI",
"cliproxyapiUrl": "URL CLIProxyAPI",
+ "headroomProxyTitle": "Proxy Headroom",
+ "headroomProxyDesc": "URL do proxy opcional de poupança de tokens Headroom. Se estiver vazio, utiliza HEADROOM_URL ou http://localhost:8787.",
+ "headroomProxyUrl": "URL do Headroom",
+ "headroomProxyUrlHint": "Os URLs de loopback podem ser iniciados a partir desta página. Os URLs externos são apenas verificados.",
+ "headroomProxySave": "Guardar",
+ "headroomProxyStart": "Iniciar",
+ "headroomProxyStop": "Parar",
+ "headroomProxyExternalHint": "Este URL não é de loopback, pelo que o OmniRoute não iniciará a CLI local.",
"cliproxyapiStatus": "Status CLIProxyAPI",
"cliproxyapiNotDetected": "Não detectado",
"cliproxyapiImportAuthTitle": "Importar contas do CLIProxyAPI",
@@ -8201,10 +8219,10 @@
"disableSessionStickinessDesc": "As combinações round-robin e aleatórias alternam para uma ligação diferente a cada pedido em vez de fixarem uma conversa inteira a uma ligação através do hash da primeira mensagem. Deixe desativado para preservar os hits da cache de prompts em conversas com múltiplos turnos. As sobreposições por combinação têm precedência.",
"promptCacheAffinity": "Encaminhamento por localidade de prompt-cache",
"promptCacheAffinityDesc": "Prefere a mesma conta de fornecedor para chaves de prompt-cache correspondentes, preservando o failover de saúde e quota.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "reasoningTokenBuffer": "Margem de tokens de raciocínio",
+ "reasoningTokenBufferDesc": "Permitir que o encaminhamento combinado adicione margem a max_tokens apenas para modelos de raciocínio conhecidos quando a margem completa couber num limite de saída conhecido.",
+ "zeroLatencyOptimizations": "Otimizações de latência zero",
+ "zeroLatencyOptimizationsDesc": "Ative a cobertura, as omissões preditivas de TTFT e a compressão proativa de recurso. Deixe desativado para impedir que estas funcionalidades de latência façam os destinos competir ou comprimam pedidos de recurso.",
"credentialRedaction": "Ocultação de Credenciais",
"credentialRedactionDesc": "Oculte chaves de API, tokens e segredos do contexto enviado para os fornecedores e das respostas.",
"enableCredentialRedaction": "Ativar ocultação de credenciais",
@@ -8361,15 +8379,7 @@
"cliproxyapiHealth": "Saúde",
"cliproxyapiPort": "Porto",
"qdrantHost": "Anfitrião",
- "qdrantCollection": "Coleção",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Coleção"
},
"contextRtk": {
"title": "Motor RTK",
@@ -8620,7 +8630,7 @@
"editCombo": "Editar",
"deleteCombo": "Eliminar",
"deleteConfirm": "Eliminar este combo de compressão?",
- "pipeline": "Pipeline",
+ "pipeline": "Fluxo",
"addStep": "Adicionar Passo",
"removeStep": "Remover",
"name": "Nome",
@@ -8658,6 +8668,8 @@
"contextEditingNote": "Atualmente disponível apenas para o Claude (Anthropic). É um modo delegado: o fornecedor limpa blocos antigos de utilização de ferramentas no lado do servidor — nós não reescrevemos a mensagem. Não afeta outros fornecedores.",
"namedCombos": "Combinações nomeadas",
"namedCombosDescription": "Guarde diferentes pipelines e atribua-os a combinações de encaminhamento específicas.",
+ "activeProfileMasterSwitchOffWarning": "O perfil ativo abaixo não será executado até que o interruptor principal «Compressão de prompts» seja ativado.",
+ "activeProfileMasterSwitchOffCta": "Ativar nas Definições",
"comboNamePlaceholder": "Nome do combo",
"descriptionPlaceholder": "Descrição",
"nameRequired": "Introduza um nome de combo antes de guardar.",
@@ -8671,9 +8683,7 @@
"languagePacksList": "Pacotes de idioma: {packs}",
"dragToReorder": "Arraste para reordenar o passo",
"engine": "Motor",
- "intensity": "Intensidade",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Intensidade"
},
"compressionStudio": {
"noRun": "Nenhuma execução de compressão disponível.",
@@ -8702,7 +8712,7 @@
"run": "Executar",
"laneRejected": "rejeitado: {reason}",
"error": "erro",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Falha na pré-visualização da pipeline combinada: {reason}",
"combinedFlow": "Fluxo combinado",
"eachLayer": "Cada camada separadamente",
"diff": "Diferença",
@@ -8777,27 +8787,27 @@
},
"enableTitle": "Ativar o motor",
"enableDescription": "Executa em último lugar na pilha (após o RTK/Caveman limpar o texto, o OmniGlyph converte o restante em imagens) e também executa de forma autónoma através do modo omniglyph. Esta é uma pré-visualização e permanece desativada por predefinição até que a validação de ponta a ponta esteja concluída.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Perfil de compressão",
+ "profileDescription": "O perfil é um limite máximo, não mínimo: um perfil mais restrito não pode ser flexibilizado por uma substituição específica de uma etapa. Medido nesta base de código: com o perfil seguro para programação ou equilibrado, uma sessão que ainda não tenha acumulado histórico não comprime nada, porque ambos aumentam o limiar mínimo de caracteres e mantêm nativos o prompt do sistema, os esquemas das ferramentas e os resultados das ferramentas.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agressivo (predefinição)",
+ "description": "A política medida pelos comprovativos publicados. Transforma em imagens o prompt do sistema, a documentação das ferramentas e o histórico denso."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Equilibrado",
+ "description": "Mantém o estado ativo nativo e protege as últimas 8 interações; apenas comprime o histórico encerrado mais antigo."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Seguro para programação",
+ "description": "Mantém nativos a autoridade, os esquemas das ferramentas e os resultados ativos das ferramentas, protegendo as últimas 12 interações. Não comprime nada até que a sessão acumule histórico."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Passagem direta",
+ "description": "Encaminha sem transformar. O motor é ignorado e o pedido é reencaminhado sem alterações."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Selecionar o perfil de compressão do OmniGlyph",
"saved": "Guardado.",
"saveFailed": "Não foi possível guardar.",
"enableAria": "Ativar o motor OmniGlyph",
@@ -9274,16 +9284,16 @@
"kiloPassRemaining": "Restante",
"kiloPassRenews": "Renova em {count} dias",
"kiloPassUsageLabel": "Utilização deste mês",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Créditos de utilização adicional",
+ "kimiExtraUsage": "Utilização adicional",
+ "kimiExtraUsageEnabled": "Ativada",
+ "kimiExtraUsageDisabled": "Desativada",
+ "kimiExtraUsageFrozen": "Congelada",
+ "kimiExtraUsageUnavailable": "Indisponível",
+ "kimiMonthlyUsed": "Utilizado este mês",
+ "kimiMonthlyLimit": "Limite mensal",
+ "kimiMonthlyLimitUnlimited": "Ilimitado",
+ "kimiAdditionalCredits": "Créditos adicionais",
"loggerTab": "Registrador",
"proxyTab": "Procurador",
"budgetManagement": "Gestão Orçamentária",
@@ -9333,7 +9343,7 @@
"evaluateStepDescription": "As respostas são comparadas com os critérios esperados. Veja aprovação/reprovação para cada caso com métricas de latência e feedback detalhado.",
"evalsStrategyContainsLabel": "Contém",
"evalsStrategyExactLabel": "Correspondência exata",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Expressão regular",
"evalsStrategyCustomLabel": "Lógica personalizada",
"evalsStrategyContainsDescription": "Verifica se a saída do LLM contém a substring esperada.",
"evalsStrategyExactDescription": "Verifica se a saída do LLM corresponde exatamente ao valor esperado.",
@@ -9462,7 +9472,7 @@
"tierPro": "Pró",
"tierPlus": "Mais",
"tierFree": "Grátis",
- "tierLite": "Lite",
+ "tierLite": "Leve",
"tierUnknown": "Desconhecido",
"statTotal": "Total",
"statCritical": "Crítico",
@@ -9512,7 +9522,7 @@
"suiteImportInvalid": "Conjunto de avaliação JSON inválido",
"suiteBuilderCloneSuffix": "copiar",
"suiteBuilderImportedSuite": "Suíte Importada",
- "scorecardTitle": "Scorecard",
+ "scorecardTitle": "Tabela de pontuação",
"evalApiKey": "Chave de API",
"scorecardPassRate": "Taxa de Aprovação",
"targetTypeModel": "Modelo",
@@ -9588,7 +9598,7 @@
"suiteBuilderCaseExpectedLabel": "Valor Esperado",
"historyLatency": "Latência",
"suiteBuilderCaseTagsPlaceholder": "ex: codificação, python",
- "targetTypeCombo": "Combo",
+ "targetTypeCombo": "Combinação",
"scorecardPassed": "Aprovados",
"suiteBuilderCaseTagsLabel": "Etiquetas",
"suiteBuilderNewSuite": "Nova Suíte",
@@ -9774,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Métricas do sistema",
"memory": "Memória",
- "memoryShort": "mem",
+ "memoryShort": "memória",
"uptime": "Tempo de Atividade",
"ariaLabel": "Monitorização do sistema",
"title": "Monitor do Sistema",
@@ -10011,7 +10021,7 @@
"apiReference": "Referência da API",
"helpCenter": "Centro de Ajuda",
"about": "Sobre",
- "blog": "Blog",
+ "blog": "Blogue",
"contact": "Contacto",
"terms": "Termos",
"privacy": "Privacidade",
@@ -10489,9 +10499,9 @@
},
"templateNames": {
"simple-chat": "Chat Simples",
- "streaming": "Streaming",
+ "streaming": "Transmissão",
"system-prompt": "Prompt de Sistema",
- "thinking": "Thinking",
+ "thinking": "Raciocínio",
"tool-calling": "Chamada de Ferramentas",
"multi-turn": "Multi-turno",
"vision": "Visão",
@@ -10766,7 +10776,7 @@
"devinDesktopPasteDescription": "Cole o seu chave API Devin existente de uma sessão Devin autenticada. A disponibilidade de exportação da chave e os passos variam conforme a versão e a conta do Devin.",
"devinPasteDescription": "Forneça a sua WINDSURF_API_KEY (obtida através de `devin auth login`, ou através do comando \"Windsurf: Provide Auth Token\" no Windsurf IDE).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json do Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Chave API / Token",
"saving": "A Guardar…",
@@ -10782,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Conecte o Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Iniciar sessão com o Cursor",
+ "tabImport": "Importar token",
+ "loginDescription": "Abre o início de sessão do Cursor no navegador. Funciona no Docker — aprove no navegador do sistema anfitrião e, em seguida, regresse aqui.",
+ "loginWithCursor": "Iniciar sessão com o Cursor",
+ "startingLogin": "A iniciar…",
+ "waitingApproval": "A aguardar a aprovação do início de sessão no Cursor…",
+ "openUrlHint": "Se o navegador não tiver aberto:",
+ "openLoginLink": "Abrir página de início de sessão",
+ "cancelLogin": "Cancelar início de sessão",
"autoDetecting": "Detecção automática de tokens...",
"readingFromCursor": "Lendo do Cursor IDE ou cursor-agent",
"tokensAutoDetected": "Tokens detectados automaticamente com sucesso no Cursor IDE!",
"cursorNotDetected": "Cursor IDE não detectado. Cole manualmente seu token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "A executar no Docker? Dê preferência a Iniciar sessão com o Cursor. A importação automática do IDE e o cursor-agent normalmente não estão disponíveis dentro do contentor. Consulte docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Token de acesso",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Token de atualização",
+ "refreshTokenPlaceholder": "Opcional — permite a atualização automática do token",
"required": "*",
"accessTokenPlaceholder": "O token de acesso será preenchido automaticamente...",
"machineId": "ID da máquina",
@@ -10811,9 +10821,9 @@
"errorAutoDetectFailed": "Falha na detecção automática de tokens",
"errorEnterToken": "Por favor insira o token de acesso",
"errorImportFailed": "Falha na importação",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Não foi possível iniciar o início de sessão no Cursor",
+ "errorLoginPoll": "O início de sessão no Cursor falhou",
+ "errorLoginTimeout": "O início de sessão no Cursor excedeu o tempo limite — tente novamente"
},
"pricingModal": {
"title": "Configuração de preços",
@@ -10859,7 +10869,7 @@
"labelName": "Label Name",
"labelType": "Tipo",
"labelFamily": "Família de IP",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automático (pilha dupla)",
"familyIpv4": "Apenas IPv4",
"familyIpv6": "Apenas IPv6",
"familyHint": "Família de endereços de saída. Auto mantém dual-stack; IPv4/IPv6 fixa este proxy a essa família (evita uma fuga de v4 num proxy apenas IPv6).",
@@ -10888,7 +10898,7 @@
"scopeGlobal": "global",
"scopeProvider": "fornecedor",
"scopeAccount": "conta",
- "scopeCombo": "combo",
+ "scopeCombo": "combinação",
"bulkImportErrorMissingName": "NOME ausente",
"bulkImportErrorMissingHost": "HOST ausente",
"bulkImportErrorInvalidPort": "PORTA inválida (deve ser 1-65535)",
@@ -10909,7 +10919,7 @@
"assignmentsCount": "{count} atribuições",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Reparar",
"relayAuthMissing": "autenticação em falta",
@@ -10952,12 +10962,15 @@
"poolStrategyLabel": "Estratégia de rotação",
"poolStrategyHint": "round-robin percorre os membros por ordem; random escolhe uniformemente; sticky mantém um membro durante uma janela; latency-optimized escolhe o mais rápido com base nos registos.",
"poolStrategyFailed": "Falha ao atualizar a estratégia de rotação",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Distribuição circular",
"strategyRandom": "Aleatório",
- "strategySticky": "Sticky",
+ "strategySticky": "Persistente",
"strategyLatency": "Otimizado para latência",
"poolMembersLabel": "Membros do pool ({count})",
"poolNoMembers": "Ainda não existem proxies neste pool.",
+ "poolEgressObservation": "{exits, plural, one {# saída usada} other {# saídas usadas}} por {connections, plural, one {# ligação} other {# ligações}} · até {max} numa saída · últimas {hours} h",
+ "poolEgressObservationEmpty": "Não foi observado tráfego nas últimas {hours} h",
+ "poolEgressObservationHint": "Contabilizado a partir do registo do proxy durante o período: IPs de saída distintos observados para os membros deste grupo e as ligações OmniRoute que os utilizaram. «Numa só saída» refere-se ao período, não ao mesmo tempo. O bloqueio 429 por IP apenas coloca em pausa as ligações da mesma família de fornecedores.",
"poolRemove": "Remover",
"poolRemoveFailed": "Falha ao remover o proxy do pool",
"poolAddLabel": "Adicionar um proxy",
@@ -10969,7 +10982,7 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
+ "endpoint": "Ponto final",
"provider": "Fornecedor",
"model": "Modelo",
"accountKey": "Account Key",
@@ -10999,7 +11012,7 @@
"responses": "Respostas",
"completions": "Conclusões",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Incorporações",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
@@ -11007,12 +11020,12 @@
"moderations": "Moderações",
"rerank": "Reordenar",
"search": "Search",
- "webFetch": "Web fetch"
+ "webFetch": "Obtenção Web"
},
"conversationalChat": "Bate-papo conversacional",
"clearChat": "Limpar bate-papo",
"typeMessagePlaceholder": "Digite uma mensagem... (Shift+Enter para nova linha)",
- "tabChat": "Chat",
+ "tabChat": "Conversação",
"tabCompare": "Comparar",
"tabApi": "API",
"tabBuild": "Construir",
@@ -11020,7 +11033,7 @@
"systemPrompt": "Prompt do sistema",
"systemPromptPlaceholder": "És um assistente útil.",
"modelPlaceholder": "ex: openai/gpt-4o",
- "endpointLabel": "Endpoint",
+ "endpointLabel": "Ponto final",
"parametersLabel": "Parâmetros",
"collapseConfig": "Recolher painel de configuração",
"expandConfig": "Expandir painel de configuração",
@@ -11119,7 +11132,7 @@
"jsonSchemaEditor": "Editor de esquema JSON",
"schemaValidated": "Esquema validado",
"validateSchema": "Validar esquema",
- "seed": "Seed",
+ "seed": "Semente",
"stopSequences": "Sequências de paragem",
"stopSequencesPlaceholder": "ex. \"\\n\\n\" ou \"END\"",
"autoProvider": "Automático",
@@ -11173,7 +11186,7 @@
}
},
"miniPlayground": {
- "endpoint": "Endpoint",
+ "endpoint": "Ponto final",
"apiKey": "Chave de API",
"model": "Modelo",
"voice": "Voz",
@@ -11201,7 +11214,7 @@
"play": "Reproduzir",
"query": "Consulta",
"numResults": "Resultados máximos",
- "prompt": "Prompt",
+ "prompt": "Pedido",
"size": "Tamanho",
"duration": "Duração",
"question": "Pergunta",
@@ -11215,14 +11228,14 @@
"noAudioUrl": "A resposta não incluiu um URL de áudio: {response}",
"music": "Música",
"embeddingSample": "O OmniRoute encaminha pedidos de IA através de múltiplos provedores.",
- "embedding": "Embedding",
+ "embedding": "Incorporação",
"imageSample": "Uma cidade futurista ao pôr do sol, iluminação cinematográfica",
"image": "Imagem",
"ttsSample": "Olá do OmniRoute. Este é um teste de conversão de texto em voz.",
"textToSpeech": "Conversão de texto em voz",
"videoSample": "Um avião de papel a voar sobre uma cidade futurista",
"video": "Vídeo",
- "webFetch": "Web Fetch",
+ "webFetch": "Obtenção Web",
"webSearchSample": "O que é o OmniRoute?",
"webSearch": "Pesquisa Web",
"documentUrl": "URL do documento",
@@ -11231,7 +11244,7 @@
"searchResultFallback": "Resultado {number}",
"noKeysFound": "Nenhuma chave de API encontrada. Adicione uma na secção Chaves.",
"exampleLabel": "Exemplo",
- "latency": "{ms}ms",
+ "latency": "{ms} ms",
"statsLine": "{ms}ms · {tokensIn} tokens de entrada / {tokensOut} de saída",
"defaultKey": "(predefinido)",
"clear": "Limpar",
@@ -11259,7 +11272,7 @@
"total": "Total",
"ok": "Sucesso",
"err": "Erro",
- "combo": "Combo",
+ "combo": "Combinação",
"keys": "Chaves",
"shown": "Mostrados",
"sortNewest": "Mais recentes",
@@ -11276,9 +11289,9 @@
"refresh": "Atualizar",
"columnsLabel": "Colunas",
"cacheSem": "SEM",
- "cacheUp": "UP",
+ "cacheUp": "ATIVO",
"semantic": "Semântico",
- "upstream": "Upstream",
+ "upstream": "A montante",
"semanticCacheHit": "Acerto de cache semântica (servido pelo OmniRoute)",
"upstreamResponse": "Resposta do fornecedor upstream",
"noApiKey": "Sem chave de API",
@@ -11287,7 +11300,7 @@
"all": "Todos",
"error": "Errors",
"success": "Sucesso",
- "combo": "Combo"
+ "combo": "Combinação"
},
"columns": {
"status": "Estado",
@@ -11298,7 +11311,7 @@
"protocol": "Protocolo do Pedido",
"account": "Conta",
"apiKey": "Chave de API",
- "combo": "Combo",
+ "combo": "Combinação",
"tokens": "Tokens",
"compressed": "Compressão",
"tps": "TPS",
@@ -11366,7 +11379,7 @@
"upstreamCache": "Upstream (Fornecedor)",
"ariaLabel": "Detalhe do registo de pedidos",
"completed": "Concluído",
- "upstreamStatus": "Upstream: {status}",
+ "upstreamStatus": "A montante: {status}",
"statusDiscrepancy": "OmniRoute retornou {status} mesmo que o provedor tenha retornado {provider}",
"previousRequest": "Pedido anterior",
"nextRequest": "Próximo pedido",
@@ -11393,7 +11406,7 @@
"rotated": "Rotacionado: {initial} -> {final}",
"apiKey": "Chave da API",
"noApiKey": "Sem chave de API",
- "combo": "Combo",
+ "combo": "Combinação",
"error": "Erro",
"unblockAll": "Desbloquear tudo",
"cleared": "Limpo",
@@ -11411,8 +11424,8 @@
"correlationId": "ID de Correlação",
"correlationIdValue": "ID de Correlação: {id}",
"detailedPayloadInfo": "Ative o registo detalhado primeiro se quiser a visualização de carga útil de cliente/fornecedor em quatro etapas para novos pedidos.",
- "copyAll": "Copy all",
- "copiedAll": "Copied all"
+ "copyAll": "Copiar tudo",
+ "copiedAll": "Tudo copiado"
}
},
"proxyLogger": {
@@ -11457,12 +11470,12 @@
"speech": "Fala",
"search": "Pesquisa",
"images": "Imagens",
- "chat": "Chat",
+ "chat": "Conversa",
"music": "Música",
"responses": "Respostas",
"rerank": "Reordenar",
"video": "Vídeo",
- "embeddings": "Embeddings",
+ "embeddings": "Incorporações",
"transcription": "Transcrição"
},
"toolDescriptions": {
@@ -11474,7 +11487,7 @@
"kilo": "Kilo"
},
"runtime": {
- "title": "Runtime",
+ "title": "Tempo de execução",
"description": "Observabilidade em tempo real — resiliência de 3 camadas + sessões + alertas de quota",
"pause": "Pausar",
"resume": "Retomar",
@@ -11554,7 +11567,7 @@
"loading": "A carregar…",
"removePool": "Remover pool",
"removeConfirm": "Remover este pool?",
- "pool": "Pool",
+ "pool": "Grupo",
"used": "usado",
"allocationsCount": "Atribuições ({count})",
"allocatedFree": "{allocated}% atribuído · {free}% livre",
@@ -11567,7 +11580,7 @@
"fairShareShort": "justo",
"policyHard": "rígida",
"policySoft": "suave",
- "policyBurst": "burst",
+ "policyBurst": "pico",
"policyHardHint": "Bloquear quando a chave esgota a atribuição",
"policySoftHint": "Permitir overflow, apenas alertar",
"policyBurstHint": "Permitir burst para o pool livre",
@@ -11765,7 +11778,7 @@
"yesterdayHeader": "Ontem",
"filterAll": "Todos",
"filterProviders": "Fornecedores",
- "filterCombos": "Combos",
+ "filterCombos": "Combinações",
"filterApiKeys": "Chaves de API",
"filterSettings": "Definições",
"filterQuota": "Quota",
@@ -12054,7 +12067,7 @@
"recordSession": "GRAVAR",
"stopSession": "Parar",
"liveBadge": "em direto",
- "offlineBadge": "offline",
+ "offlineBadge": "sem ligação",
"noRequests": "Ainda não foram capturados pedidos.",
"noRequestsDesc": "Certifique-se de que o AgentBridge está a ser executado ou ative outro modo de captura.",
"selectRequest": "Selecione um pedido para o inspecionar.",
@@ -12085,7 +12098,7 @@
"llmApiKind": "Tipo de API",
"llmModel": "Modelo",
"llmMessages": "Mensagens",
- "llmStream": "Stream",
+ "llmStream": "Transmissão",
"llmMappedTo": "Mapeado para",
"llmCostEstimate": "Estimativa de custo",
"systemProxyExitWarning": "O proxy do sistema ainda está ativo — sair da página de qualquer forma?",
@@ -12154,7 +12167,7 @@
"noRequestBody": "Sem corpo do pedido.",
"noResponseBody": "Sem corpo da resposta.",
"formatted": "Formatado",
- "raw": "Raw"
+ "raw": "Em bruto"
},
"cliCommon": {
"concept": {
@@ -12173,7 +12186,7 @@
"acp": {
"title": "Agentes ACP",
"phrase": "CLIs que o OmniRoute inicia como backend de execução (fluxo inverso)",
- "warning": "Most users can ignore this — use only when an integration requires it.",
+ "warning": "A maioria dos utilizadores pode ignorar esta opção — utilize-a apenas quando uma integração o exigir.",
"flow": "Cliente → OmniRoute → iniciar CLI (stdio/ACP) → resposta",
"seeOther": "Ver →"
}
@@ -12365,7 +12378,7 @@
},
"omni-webhooks": {
"name": "Webhooks",
- "description": "__MISSING__:Register, list, test, and remove webhook endpoints. Configure event subscriptions (request.completed, request.failed, quota.exceeded, etc.) and manage delivery retries."
+ "description": "Registe, liste, teste e remova endpoints de webhook. Configure subscrições de eventos (request.completed, request.failed, quota.exceeded, etc.) e gira as novas tentativas de entrega."
},
"omni-mcp": {
"name": "Servidor MCP",
@@ -12384,7 +12397,7 @@
"description": "Os endpoints principais de inferência compatíveis com a OpenAI: conclusões de chat, embeddings, imagens, áudio (TTS/STT), moderações, rerank e a Responses API. A principal superfície de integração para agentes de IA."
},
"cli-serve": {
- "name": "CLI: Serve",
+ "name": "CLI: Servir",
"description": "Serve o agente localmente"
},
"cli-health": {
@@ -12404,7 +12417,7 @@
"description": "Consultar modelos de IA disponíveis, listar aliases de modelos e navegar pelo catálogo completo de modelos a partir da CLI. Filtrar por fornecedor, pesquisar por capacidade e resolver variantes de nomes de modelos."
},
"cli-chat": {
- "name": "CLI: Chat",
+ "name": "CLI: Conversa",
"description": "Cliente de chat em linha de comandos"
},
"cli-routing": {
@@ -12583,14 +12596,14 @@
"typeApikey": "Chave de API",
"sortTypeFirst": "Mais fáceis primeiro",
"sortTypeFirstHelp": "Agrupar por esforço de registo (Sem Registo → Início de Sessão OAuth → Chave de API), mantendo a ordem de qualidade dentro de cada grupo",
- "sortByReliability": "__MISSING__:Most reliable first",
- "sortByReliabilityHelp": "__MISSING__:Order providers by the share of calls that succeeded in the selected window. Providers with too few calls to state a rate keep their score order, below the measured ones.",
+ "sortByReliability": "Mais fiáveis primeiro",
+ "sortByReliabilityHelp": "Ordene os fornecedores pela percentagem de chamadas bem-sucedidas na janela selecionada. Os fornecedores com poucas chamadas para determinar uma taxa mantêm a ordem da respetiva pontuação, abaixo dos que foram avaliados.",
"typeLegend": "Sem Registo = configuração zero · Início de Sessão OAuth = iniciar sessão com a sua própria conta · Chave de API = traga a sua própria chave ou o nível gratuito desse fornecedor",
- "colReliability": "__MISSING__:Reliability",
- "colReliabilityHelp": "__MISSING__:Share of calls this provider actually answered over the last 24 hours. A dash means it served too little traffic to state a rate.",
- "reliabilitySample": "__MISSING__:{successes} of {requests} calls succeeded in the last {hours}h",
- "reliabilityTooFew": "__MISSING__:Only {requests} calls in the last {hours}h — too few to state a rate",
- "reliabilityNoTraffic": "__MISSING__:No calls recorded in the last 24h"
+ "colReliability": "Fiabilidade",
+ "colReliabilityHelp": "Percentagem de chamadas a que este fornecedor respondeu efetivamente nas últimas 24 horas. Um travessão significa que processou tráfego insuficiente para determinar uma taxa.",
+ "reliabilitySample": "{successes} de {requests} chamadas foram bem-sucedidas nas últimas {hours} h",
+ "reliabilityTooFew": "Apenas {requests} chamadas nas últimas {hours} h — demasiado poucas para determinar uma taxa",
+ "reliabilityNoTraffic": "Nenhuma chamada registada nas últimas 24 h"
},
"discovery": {
"title": "Deteção de Fornecedores",
@@ -12713,9 +12726,9 @@
},
"badges": {
"radar-supporter": {
- "name": "Radar Supporter",
- "description": "Verified a live OmniRoute Radar supporter feed",
- "criteria": "Verify a signed live Radar supporter feed."
+ "name": "Apoiante do Radar",
+ "description": "Verificou um feed ativo de apoiante do OmniRoute Radar",
+ "criteria": "Verifique um feed ativo e assinado de apoiante do Radar."
},
"first-token": {
"name": "Primeiro Token",
@@ -12840,7 +12853,7 @@
"security": "Segurança",
"network": "Rede",
"policies": "Políticas",
- "runtime": "Runtime",
+ "runtime": "Ambiente de execução",
"cli": "CLI",
"health": "Saúde",
"requiresRestart": "Requer Reinício"
@@ -12880,7 +12893,7 @@
"redact": "Ocultar",
"disabled": "Desativado",
"dual": "Duplo",
- "alias": "Alias",
+ "alias": "Nome alternativo",
"canonical": "Canónico"
},
"definitions": {
@@ -12942,8 +12955,8 @@
"description": "Permitir múltiplas ligações para cada nó de compatibilidade."
},
"DISABLE_CONTEXT_WINDOW_CHECKS": {
- "label": "Disable Context Window Checks",
- "description": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active."
+ "label": "Desativar verificações da janela de contexto",
+ "description": "Ignore a verificação local do OmniRoute relativa à janela de contexto e ao número máximo de tokens de entrada para pedidos diretos a um único modelo. Os fornecedores a montante continuam a aplicar os respetivos limites reais. A compressão de prompts e os limites de tokens de saída permanecem ativos."
},
"RESPONSES_PASSTHROUGH_DROP_COMMENTARY": {
"description": "Remover itens de saída internos da fase de comentário dos fluxos de passthrough da Responses API antes de os encaminhar para os clientes. Desative este sinalizador para receber comentários upstream em bruto."
@@ -12978,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Permitir que a recuperação de stream solicite a resposta novamente e a junte após os bytes já terem chegado ao cliente."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Tornar segura a continuação a meio do fluxo com chamadas de ferramentas: nunca retomar um fluxo interrompido após o envio de uma chamada de ferramenta (ainda em curso ou já concluída) e parar após uma continuação vazia, em vez de utilizar todo o limite de novas tentativas."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Fazer failover uma única vez para uma ligação irmã quando um stream fecha antes de emitir qualquer frame útil e a nova tentativa limitada na mesma ligação já foi usada. Sem ligação irmã utilizável, é devolvido o erro early-EOF original. Desligado: o early-EOF mantém-se terminal após a nova tentativa."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Incluir campos de nome fáceis de ler nas respostas de /v1/models. Desative isto para clientes que aceitam apenas IDs de modelo."
},
@@ -13010,6 +13029,18 @@
},
"SKILLS_SANDBOX_NETWORK_ENABLED": {
"description": "Ativar o acesso à rede na sandbox de competências."
+ },
+ "SERVER_OWNED_TOOL_LOOP_ENABLED": {
+ "label": "Ciclo de ferramentas gerido pelo servidor",
+ "description": "Continue as chamadas não transmitidas de ferramentas geridas pelo servidor até o modelo devolver uma resposta utilizável pelo cliente."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Proveniência de Retry-After",
+ "description": "Em respostas agregadas 429/503 de indisponibilidade, omitir Retry-After quando não for conhecido um momento futuro concreto para uma nova tentativa, em vez de enviar um valor sintético de 1 s, adicionar error.retry_after_provenance e interpretar indicações textuais de repetição da tentativa nos percursos de esvaziamento de combinações."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Paragens de infraestrutura com prioridade protegida como 502",
+ "description": "Responder com 502 em vez de 503 quando um destino prioritário com recurso exclusivo a quota interrompe a combinação por uma causa que comprovadamente não está relacionada com a quota: um disjuntor de fornecedor aberto ou uma omissão preditiva devido à latência."
}
}
},
@@ -13088,7 +13119,7 @@
"comboHealth": "Integridade do combo",
"callLogs": "Registos de chamadas",
"costs": "Custos",
- "playground": "Playground",
+ "playground": "Área de testes",
"nestedCombo": "Combo aninhado",
"modelTarget": "Alvo do modelo",
"weight": "{value}% de peso",
@@ -13130,7 +13161,7 @@
"loadingUsdCosts": "A carregar custos em USD",
"used": "Utilizado",
"quotaUsed": "Quota utilizada",
- "estimatedFullQuota": "Est. 100%",
+ "estimatedFullQuota": "Estim. 100%",
"rows": "Linhas",
"window": "Janela",
"unknown": "desconhecido",
@@ -13151,7 +13182,7 @@
"segmentHint": "Cada segmento = um pool gratuito · deduplicado por pool, contagem honesta (sem limites de taxa inflacionados).",
"boost": "Desbloqueie mais ~{tokens}/mês com um carregamento único de $10 no OpenRouter (50 → 1000 ped/dia)",
"uncapped": "Permanentemente gratuito, sem limite publicado (com limite de taxa) — acesso real, não contabilizado no destaque:",
- "gated": "__MISSING__:~{tokens}/mo more behind a regional identity check (e.g. mainland-China real-name verification) — real quota, not counted in the headline:",
+ "gated": "Mais ~{tokens}/mês mediante uma verificação de identidade regional (por exemplo, verificação de nome verdadeiro na China continental) — quota real, não contabilizada no valor em destaque:",
"tosRestricted": "{count, plural, one {# modelo assinalado} other {# modelos assinalados}} com restrições de ToS — você decide",
"provider": "Fornecedor",
"model": "Modelo",
@@ -13204,7 +13235,7 @@
"down": "inativo"
},
"severity": {
- "info": "info",
+ "info": "informação",
"warning": "aviso",
"critical": "crítico"
},
@@ -13269,7 +13300,7 @@
"allModels": "todos os modelos",
"keepModel": "Manter modelo",
"otherModel": "Outro modelo",
- "combo": "Combo",
+ "combo": "Combinação",
"priorityShort": "prioridade {value}",
"toggleAria": "Ativar {name}",
"edit": "Editar",
@@ -13311,7 +13342,7 @@
"scope": {
"global": "Global",
"apiKey": "Chave de API",
- "combo": "Combo",
+ "combo": "Combinação",
"model": "Modelo",
"connection": "Ligação"
},
@@ -13404,8 +13435,22 @@
"tierLive": "Ao vivo (em tempo real)",
"tierCommunity": "Comunidade (atraso de 30 dias)",
"activateTitle": "Ativar Radar",
- "activateDescription": "__MISSING__:Compare Community and live access, understand what your installation exchanges, and then choose how to activate Radar.",
- "activateButton": "__MISSING__:Activate Community",
+ "activateDescription": "Compare o acesso da Comunidade e o acesso em tempo real, compreenda o que a sua instalação troca e, em seguida, escolha como ativar o Radar.",
+ "accessScaleTitle": "Compreenda o acesso ao Radar antes de o ativar",
+ "accessScaleIntro": "O Radar não realiza qualquer atividade de rede até dar o seu consentimento. Escolha o acesso da Comunidade ou ative uma chave pessoal de apoiante depois de analisar estas regras.",
+ "accessCommunityRule": "Comunidade — não requer chave: o catálogo completo com um atraso de 30 dias.",
+ "accessSingleUseRule": "Marcar com estrela + seguir — depois de o GitHub OAuth verificar ambos, a sua conta GitHub recebe uma consulta ao catálogo em tempo real; em seguida, o acesso regressa à Comunidade. Este acesso único não pode voltar a ser emitido para essa conta.",
+ "accessContributorRule": "Contribuidores — PRs integrados, commits e linhas apenas determinam a classificação semanal. Os 10 primeiros recebem 365 dias; as posições 11–100 recebem 90 dias; os contribuidores fora dos 100 primeiros não recebem qualquer concessão, independentemente do número de PRs. Sair da classificação nunca reduz o tempo já concedido.",
+ "accessSupporterRule": "Apoiantes — as compras únicas concedem 6 meses, 1 ano ou acesso vitalício, sem renovação automática. As compras, doações, períodos de contribuidor e concessões manuais acumulam-se; o acesso vitalício prevalece sempre.",
+ "accessUseTitle": "Utilização pessoal, recuperação e análise",
+ "accessInstallationRule": "Licença pessoal — utilize a chave numa instalação ativa de cada vez. O OmniRoute não cria impressões digitais do hardware. A recuperação revoga e substitui uma chave perdida sem repor a respetiva data de validade.",
+ "accessAbuseRule": "Análise de abuso — o 4.º endereço IP distinto num período de 24 horas cria apenas um sinalizador para análise manual; nunca bloqueia nem revoga automaticamente uma chave.",
+ "accessOffersRule": "As ofertas em tempo real são selecionadas manualmente e podem ser alteradas ou expirar.",
+ "privacyTitle": "O que o Radar troca",
+ "privacyDownloadsRule": "Transferências — a sua instalação recebe metadados de catálogo e de referências assinados criptograficamente; uma chave válida de acesso em tempo real também desbloqueia ofertas assinadas e o Intel.",
+ "privacySendsRule": "Envios — a sincronização do lado do servidor envia a chave de apoiante como um token Bearer, e a infraestrutura HTTPS recebe o endereço IP da ligação. A contabilização dos pedidos do feed não armazena nenhum dos valores em formato não processado: conserva hashes das chaves, utilização agregada e um HMAC truncado do endereço IP, com rotação diária, para análise de abuso.",
+ "privacyNeverRule": "Nunca recolhidos — prompts, respostas, conversas, credenciais de fornecedores, tráfego dos modelos, disponibilidade, latência e configuração local dos fornecedores nunca são enviados para o Radar.",
+ "activateButton": "Ativar a Comunidade",
"activating": "A ativar...",
"keySectionTitle": "Já tens uma chave de supporter?",
"keyInvalidFormatError": "Formato de chave inválido. Tem de começar com \"omr_\" seguido de 40 caracteres hex.",
@@ -13413,21 +13458,21 @@
"changeKeyButton": "Alterar chave",
"claimSectionTitle": "Ainda não tens uma chave de supporter?",
"contributorButton": "Sou contribuidor",
- "contributorHint": "__MISSING__:GitHub OAuth checks the current weekly ranking: Top 10 get 365 days and ranks 11–100 get 90 days. PR count alone never grants access outside the Top 100.",
+ "contributorHint": "O GitHub OAuth verifica a classificação semanal atual: os 10 primeiros recebem 365 dias e as posições 11–100 recebem 90 dias. O número de PRs, por si só, nunca concede acesso fora dos 100 primeiros.",
"supporterButton": "Apoiar o projeto",
- "supporterHint": "__MISSING__:One-time 6-month, 1-year, and lifetime options have no automatic renewal; eligible periods accumulate and lifetime prevails.",
+ "supporterHint": "As opções únicas de 6 meses, 1 ano e acesso vitalício não têm renovação automática; os períodos elegíveis acumulam-se e o acesso vitalício prevalece.",
"colProvider": "Fornecedor",
"colModel": "Modelo",
"colQuota": "Quota",
+ "colLimits": "Limites de utilização",
+ "trainsOnPrompts": "Treina com os prompts",
+ "trainsOnPromptsHelp": "Os termos deste fornecedor indicam que este pode treinar com os prompts que enviar. Os modelos sem este distintivo indicam que não o fazem ou não o documentam — a ausência de uma declaração não constitui uma garantia.",
+ "limitsUnknownHelp": "Limites comunicados apenas pelo feed do Radar; não existem limites publicados para esta entrada",
+ "contextUnknownHelp": "Janela de contexto desconhecida para esta entrada",
+ "capabilityUnknownHelp": "Capacidade não comunicada pelo feed",
"colContext": "Contexto",
"colCapabilities": "Capacidades",
"colTos": "Risco de ToS",
- "colLimits": "__MISSING__:Rate limits",
- "trainsOnPrompts": "__MISSING__:Trains on prompts",
- "trainsOnPromptsHelp": "__MISSING__:This provider's terms state it may train on the prompts you send. Models without this badge either state they do not, or do not document it — an absent statement is not a guarantee.",
- "limitsUnknownHelp": "__MISSING__:Limits reported by Radar feed only; no published limits for this entry",
- "contextUnknownHelp": "__MISSING__:Context window unknown for this entry",
- "capabilityUnknownHelp": "__MISSING__:Capability not reported by the feed",
"newBadge": "novo",
"setupGuide": "Guia de configuração",
"disabledByFeed": "Desativado pelo feed do Radar",
@@ -13456,40 +13501,26 @@
"modelDisplayName": "Nome de exibição local",
"modelEnabled": "Ativado localmente",
"localStateSaveFailed": "Falha ao guardar as definições locais do Radar",
- "guidedCombos": "Guided combos",
+ "guidedCombos": "Combinações orientadas",
"offers": "Ofertas",
- "intel": "Intel",
- "accessScaleTitle": "__MISSING__:Understand Radar access before activating",
- "accessScaleIntro": "__MISSING__:Radar stays network-inert until you opt in. Choose Community access or activate a personal supporter key after reviewing these rules.",
- "accessCommunityRule": "__MISSING__:Community — no key required: the complete catalog with a 30-day delay.",
- "accessSingleUseRule": "__MISSING__:Star + follow — after GitHub OAuth verifies both, your GitHub account receives one live catalog read; then access returns to Community. This one-time access cannot be reissued for that account.",
- "accessContributorRule": "__MISSING__:Contributors — merged PRs, commits, and lines only order the weekly ranking. Top 10 receive 365 days; ranks 11–100 receive 90 days; contributors outside the Top 100 receive no grant regardless of PR count. Leaving the ranking never shortens time already granted.",
- "accessSupporterRule": "__MISSING__:Supporters — one-time purchases grant 6 months, 1 year, or lifetime with no automatic renewal. Purchases, donations, contributor periods, and manual grants accumulate; lifetime always prevails.",
- "accessUseTitle": "__MISSING__:Personal use, recovery, and review",
- "accessInstallationRule": "__MISSING__:Personal license — use the key on one active installation at a time. OmniRoute does not fingerprint hardware. Recovery revokes and replaces a lost key without resetting its expiration.",
- "accessAbuseRule": "__MISSING__:Abuse review — the 4th distinct IP in 24 hours creates a manual review flag only; it never blocks or revokes a key automatically.",
- "accessOffersRule": "__MISSING__:Live offers are manually curated and may change or expire.",
- "privacyTitle": "__MISSING__:What Radar exchanges",
- "privacyDownloadsRule": "__MISSING__:Downloads — your installation receives cryptographically signed catalog and referral metadata; a valid live key also unlocks signed offers and Intel.",
- "privacySendsRule": "__MISSING__:Sends — server-side sync sends the supporter key as a Bearer token, and the HTTPS infrastructure receives the connection IP. Feed-request accounting stores neither value raw: it keeps key hashes, aggregate usage, and a daily rotating truncated IP HMAC for abuse review.",
- "privacyNeverRule": "__MISSING__:Never collected — prompts, responses, conversations, provider credentials, model traffic, uptime, latency, and local provider configuration are never sent to Radar."
+ "intel": "Intel"
},
"radarCombosPage": {
- "title": "Radar guided combos",
- "subtitle": "Create priority fallbacks from equivalent free models curated by Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading combo suggestions...",
- "familyLabel": "Model family",
- "modelsLabel": "Priority order",
- "strategyReason": "Priority uses the largest recurring free budget first, then falls back across active providers.",
- "generateButton": "Generate combo",
- "generating": "Generating...",
- "alreadyCreated": "Already created",
- "created": "Combo created",
- "noSuggestions": "No eligible model family currently has active connections to at least two providers.",
- "catalogRequired": "Sync the Radar catalog first to load curated model families.",
- "loadFailed": "Failed to load Radar combo suggestions.",
- "createFailed": "Failed to create the combo. Review your provider connections and try again."
+ "title": "Combinações orientadas do Radar",
+ "subtitle": "Crie alternativas prioritárias a partir de modelos gratuitos equivalentes selecionados pelo Radar.",
+ "backToRadar": "Voltar ao Radar",
+ "loading": "A carregar sugestões de combinações...",
+ "familyLabel": "Família de modelos",
+ "modelsLabel": "Ordem de prioridade",
+ "strategyReason": "A prioridade utiliza primeiro o maior orçamento gratuito recorrente e, em seguida, recorre aos fornecedores ativos.",
+ "generateButton": "Gerar combinação",
+ "generating": "A gerar...",
+ "alreadyCreated": "Já criada",
+ "created": "Combinação criada",
+ "noSuggestions": "Atualmente, nenhuma família de modelos elegível tem ligações ativas a, pelo menos, dois fornecedores.",
+ "catalogRequired": "Sincronize primeiro o catálogo do Radar para carregar famílias de modelos selecionadas.",
+ "loadFailed": "Não foi possível carregar as sugestões de combinações do Radar.",
+ "createFailed": "Não foi possível criar a combinação. Reveja as ligações aos fornecedores e tente novamente."
},
"radarSetupPage": {
"title": "Configuração do Fornecedor",
@@ -13518,19 +13549,19 @@
},
"resilienceConnections": {
"title": "Resiliência de Ligação",
- "reassuranceTitle": "Your connections recover automatically",
- "reassuranceDetail": "Usually no action is needed. OmniRoute temporarily rests a connection after failures, then safely tries it again.",
+ "reassuranceTitle": "As suas ligações recuperam automaticamente",
+ "reassuranceDetail": "Normalmente, não é necessária qualquer ação. O OmniRoute coloca temporariamente uma ligação em repouso após falhas e volta a tentar utilizá-la em segurança.",
"plainStates": {
- "healthy": "Requests can be sent",
- "coolingDown": "Trying again soon",
- "lockedOut": "Needs your attention"
+ "healthy": "Os pedidos podem ser enviados",
+ "coolingDown": "Nova tentativa em breve",
+ "lockedOut": "Requer a sua atenção"
},
"table": {
"status": "Estado",
"provider": "Fornecedor",
"connectionId": "Ligação",
"authType": "Autenticação",
- "backoffLevel": "Backoff",
+ "backoffLevel": "Espera progressiva",
"cooldown": "Arrefecimento",
"lastError": "Último Erro",
"lockouts": "Bloqueios",
@@ -13546,9 +13577,9 @@
"timeline": {
"title": "Transições do Disjuntor",
"window": "Janela",
- "window1h": "1h",
- "window6h": "6h",
- "window24h": "24h",
+ "window1h": "1 h",
+ "window6h": "6 h",
+ "window24h": "24 h",
"empty": "Sem transições na janela selecionada",
"currentState": "Estado Atual",
"state": {
@@ -13612,7 +13643,7 @@
"pollErrorStopped": "Sondagem interrompida: o servidor rejeitou o pedido (404/403).",
"pollErrorTransient": "Erro ao obter dados: a repetir automaticamente.",
"degraded": {
- "message": "Partial data: unavailable sources: {sources}",
+ "message": "Dados parciais: fontes indisponíveis: {sources}",
"source": {
"database": "Base de Dados",
"circuitBreaker": "Disjuntor",
@@ -13622,7 +13653,8 @@
}
},
"featureFlagCapabilityFilterEnabledDescription": "Rejeitar pedidos antes do envio quando o modelo de destino não tiver as capacidades necessárias (visão, ferramentas, saída estruturada, janela de contexto). Protege pedidos diretos de um único fornecedor que contornam o filtro de compatibilidade da camada combinada.",
- "featureFlagDisableContextWindowChecksDescription": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active.",
+ "featureFlagDisableContextWindowChecksDescription": "Ignorar a verificação local do OmniRoute relativa à janela de contexto e ao número máximo de tokens de entrada para pedidos diretos de um único modelo. Os fornecedores a montante continuam a aplicar os respetivos limites reais. A compressão de pedidos e os limites de tokens de saída permanecem ativos.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "As estatísticas de pesquisa e as pesquisas recentes só contabilizam fornecedores que ainda tenham uma ligação ativa (os fornecedores sem chave, como duckduckgo-free, são sempre contabilizados). A opção Desativado mantém todas as linhas de pesquisa retidas com um ID de fornecedor.",
"publicSystem": {
"notFound": {
"title": "Página não encontrada",
@@ -13682,8 +13714,8 @@
"providersTracked": "Provedores Rastreados",
"circuitBreakerState": "Estado do Disjuntor do Fornecedor",
"lastUpdate": "Última atualização: {timestamp}",
- "uptimeMinutes": "{minutes}m",
- "uptimeHoursMinutes": "{hours}h {minutes}m"
+ "uptimeMinutes": "{minutes}min",
+ "uptimeHoursMinutes": "{hours}h {minutes}min"
},
"statusPages": {
"400": {
@@ -13926,7 +13958,7 @@
"tokens": "Tokens",
"active": "Ativo",
"other": "Outro",
- "tenMinutes": "10min",
+ "tenMinutes": "10 min",
"hour": "hora",
"day": "dia",
"unknownModel": "desconhecido",
@@ -14049,11 +14081,11 @@
"actionApprove": "Aprovar plano",
"actionCancel": "Cancelar",
"actionSeeInGraph": "Ver no grafo",
+ "actionRepeat": "Repetir",
"actionDone": "Ação aplicada",
"actionFailed": "Falha na ação: {error}",
"detailFailed": "Falha ao carregar detalhes: {error}",
"mirroredInA2A": "Espelhado no A2A",
- "actionRepeat": "Repetir",
"repeatConfirm": "Clique novamente para confirmar",
"repeatDone": "Nova execução criada",
"repeatUnavailable": "Entrada original não disponível"
@@ -14088,43 +14120,43 @@
"trialDays": "{days, plural, one {# dia} other {# dias}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "Informações do Radar",
+ "subtitle": "Classificações ELO próprias do Radar e alterações factuais do catálogo.",
+ "backToRadar": "Voltar ao Radar",
+ "loading": "A carregar informações...",
+ "refresh": "Atualizar Intel",
+ "syncing": "A atualizar...",
+ "loadFailed": "Não foi possível atualizar o Intel. A última cache local verificada foi mantida.",
+ "empty": "Ainda não está disponível qualquer instantâneo verificado do Intel.",
+ "supporterBadge": "Apoiador do Radar",
+ "methodology": "Metodologia",
+ "eloMethod": "ELO, inicial {initial}, K={factor}",
+ "freshness": "Atualidade do catálogo",
+ "ageDays": "{days, plural, one {há # dia} other {há # dias}}",
+ "trend": "Tendência do catálogo",
+ "modelDelta": "{current} modelos, +{added} / -{removed}",
+ "ranking": "Classificação dos modelos",
+ "noRankings": "Ainda não estão disponíveis comparações confirmadas.",
+ "model": "Modelo",
+ "category": "Categoria",
+ "rating": "Pontuação",
+ "matches": "Confrontos",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Atual",
+ "aging": "A envelhecer",
+ "stale": "Desatualizado"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "Em crescimento",
+ "stable": "Estável",
+ "shrinking": "Em redução"
}
},
"capabilityFilter": {
- "visionMismatch": "Provider does not support vision for this image request",
- "toolsMismatch": "Provider does not support tool calling",
- "structuredOutputMismatch": "Provider does not support structured output",
- "contextWindowMismatch": "Request exceeds provider context window"
+ "visionMismatch": "O fornecedor não suporta visão para este pedido de imagem",
+ "toolsMismatch": "O fornecedor não suporta chamadas de ferramentas",
+ "structuredOutputMismatch": "O fornecedor não suporta resultados estruturados",
+ "contextWindowMismatch": "O pedido excede a janela de contexto do fornecedor"
},
"cheaperInferenceSponsorBanner": {
"title": "A Cheaper Inference é uma Amiga do Código Aberto do OmniRoute",
@@ -14132,5 +14164,6 @@
"cta": "Obter uma Chave de API",
"partnerLinkNote": "Link de parceiro",
"dismissAriaLabel": "Dispensar"
- }
+ },
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Desative a geração de variantes de nível de pensamento (por exemplo, -low, -medium, -high) no catálogo /v1/models."
}
diff --git a/src/i18n/messages/ro.json b/src/i18n/messages/ro.json
index 63bea8addc..9c103d9ba8 100644
--- a/src/i18n/messages/ro.json
+++ b/src/i18n/messages/ro.json
@@ -31,7 +31,7 @@
"active": "Activ",
"inactive": "Inactiv",
"noData": "Nu există date disponibile",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Nimic aici deocamdată",
"configure": "Configurați",
"manualConfig": "Configurare manuală",
"manage": "Gestionează",
@@ -47,7 +47,7 @@
"time": "timpul",
"details": "Detalii",
"created": "Creat",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Ultima reîmprospătare",
"loadMore": "Încărcați mai multe",
"noResults": "Nu s-au găsit rezultate",
"reloadPage": "Reîncărcați pagina",
@@ -70,8 +70,8 @@
"note": "Notă",
"free": "Gratuit",
"skipToContent": "Treci la conținut",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Serverul întâmpină probleme. Este posibil ca unele funcții să fie indisponibile.",
+ "maintenanceServerUnreachable": "Serverul nu poate fi contactat. Se reconectează...",
"accept": "Acceptați",
"accountId": "ID contului",
"alias": "Alias",
@@ -85,7 +85,7 @@
"file": "Fișier",
"host": "Gazdă",
"id": "ID",
- "import": "Import",
+ "import": "Importă",
"limit": "Limită",
"offset": "Offset",
"open": "Deschide",
@@ -98,9 +98,9 @@
"skill": "Îndemânare",
"sortBy": "Sortare după",
"sortOrder": "Ordine de sortare",
- "tab": "Tab",
+ "tab": "Filă",
"text": "Text",
- "textarea": "Textarea",
+ "textarea": "Zonă de text",
"tool": "Instrument",
"toolId": "ID instrument",
"web": "Web",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "Nu s-a resetat prețul",
"apikey": "Cheia API",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Mergi la panoul de control",
+ "checkSystemStatus": "Verifică starea sistemului",
+ "selectModel": "Selectează modelul",
"addModel": "Adaugă model",
"effortNone": "Niciunul",
"effortLow": "Scăzut",
@@ -164,15 +164,15 @@
"reasoningEffort": "Efort de raționament",
"wireApi": "Wire API",
"modelAliases": "Aliasuri model",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Combinații",
+ "noModelsFound": "Nu s-au găsit modele",
+ "clear": "Șterge",
+ "done": "Gata",
"selectAll": "Selectează tot",
"unselectAll": "Deselectează tot",
"visibleModels": "vizibile",
"selectAllConfirm": "Adaugi {count} modele la această combinație?",
- "testSelectedProviders": "Test providers",
+ "testSelectedProviders": "Testează furnizorii",
"testingSelectedProviders": "Testare {done}/{total}...",
"noProvidersSelectedToTest": "Verifică mai întâi cel puțin un furnizor de mai jos",
"noModelsToTestForProviders": "Nu există modele de testat pentru furnizorii selectați",
@@ -184,527 +184,527 @@
"selectAllProviders": "Verifică toți furnizorii",
"clearProviderSelection": "Debifați furnizorii",
"providersSelectedCount": "{count} furnizori verificați",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "A apărut o eroare",
+ "comboDeleted": "Combinație ștearsă",
+ "hide": "Ascunde",
+ "creating": "Se creează",
+ "comboCreated": "Combinație creată",
+ "swapFormats": "Interschimbă formatele",
+ "daysAgo": "Acum câteva zile",
+ "retries": "Reîncercări",
+ "errorDuringRestore": "Eroare în timpul restaurării",
+ "eventsAppearHint": "Indiciu privind afișarea evenimentelor",
+ "noLockouts": "Nicio blocare",
+ "webSearchDesc": "Descrierea căutării web",
+ "audioProvidersHeading": "Titlul furnizorilor audio",
"cloudAgentProviders": "Furnizori de agenți cloud",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Acum câteva minute",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
+ "liveAutoRefreshing": "Reîmprospătare automată în timp real",
+ "webSearch": "Căutare web",
+ "anthropicPrefixPlaceholder": "Substituent pentru prefixul Anthropic",
+ "addModelToCombo": "Adaugă modelul la combinație",
+ "failedToLoad": "Încărcarea a eșuat",
+ "categoryMedia": "Categoria media",
+ "enableCloud": "Activează cloudul",
+ "expirationBannerExpiringSoon": "Banner de expirare iminentă",
+ "retry": "Reîncercați",
+ "embeddings": "Înglobări",
+ "errorCount": "Număr de erori",
+ "backupReasonManual": "Motivul backupului: manual",
+ "safeSearchModerate": "Căutare sigură moderată",
+ "activeLimiters": "Limitatoare active",
+ "a2aCardTitle": "Titlul cardului A2A",
+ "cloudWorkerUnreachable": "Lucrătorul cloud nu poate fi contactat",
+ "testFailed": "Test eșuat",
+ "compatibleBaseUrlHint": "Indiciu pentru URL-ul de bază compatibil",
+ "usageTracking": "Urmărirea utilizării",
+ "disableCloudTitle": "Titlul dezactivării cloudului",
+ "noConnections": "Nicio conexiune",
+ "providerHealth": "Starea furnizorului",
+ "confirmDbImport": "Confirmați importul bazei de date",
+ "notAvailableSymbol": "Simbol indisponibil",
+ "backupsAvailable": "Backupuri disponibile",
+ "providerAuto": "Furnizor automat",
+ "newProviderNamePlaceholder": "Substituent pentru numele noului furnizor",
+ "a2aQuickStartStep2": "Pasul 2 pentru pornirea rapidă A2A",
+ "ok": "OK",
+ "available": "Disponibil",
+ "noBackupYet": "Niciun backup încă",
+ "more": "Mai multe",
+ "noCompatibleYet": "Niciunul compatibil încă",
+ "multiProvider": "Furnizori multipli",
+ "repairEnvHint": "Indiciu pentru repararea mediului",
+ "disablingCloud": "Se dezactivează cloudul",
+ "testBench": "Banc de testare",
"valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
+ "cloudBenefitShare": "Beneficiul partajării în cloud",
+ "mcpCardTitle": "Titlul cardului MCP",
+ "disableConfirm": "Confirmați dezactivarea",
+ "filters": "Filtre",
+ "expirationBannerExpiredDesc": "Descrierea bannerului de expirare",
+ "saveComboDefaults": "Salvați valorile implicite ale combinației",
+ "cloudConnectedVerified": "Conexiune cloud verificată",
+ "uptime": "Durată de funcționare",
+ "compatibleProdPlaceholder": "Substituent compatibil pentru producție",
+ "fallbackChainsTitle": "Titlul lanțurilor de rezervă",
+ "oauthLabel": "Etichetă OAuth",
+ "a2aCardDescription": "Descrierea cardului A2A",
+ "okShort": "OK scurt",
+ "maintenance": "Mentenanță",
+ "formatConverter": "Convertor de formate",
+ "zedImportNetworkError": "Eroare de rețea la importul din Zed",
+ "apiKeyLabel": "Eticheta cheii API",
+ "noModelsForProvider": "Niciun model pentru furnizor",
+ "mcpCardDescription": "Descrierea cardului MCP",
+ "apiTypeLabel": "Eticheta tipului de API",
+ "configuredProvidersLabel": "Eticheta furnizorilor configurați",
+ "maxRetriesLabel": "Eticheta numărului maxim de reîncercări",
+ "title": "Titlu",
+ "output": "Ieșire",
+ "prefixHint": "Indiciu pentru prefix",
+ "skipWizard": "Omite expertul",
+ "failedCount": "Numărul de eșecuri",
+ "confirmDbImportDesc": "Descrierea confirmării importului bazei de date",
+ "entries": "Intrări",
+ "until": "Până la",
+ "disableCombo": "Dezactivează combinația",
+ "liveMonitorDescriptionPrefix": "Prefixul descrierii monitorizării în timp real",
+ "runningCount": "Numărul de procese în execuție",
+ "noActiveConnectionsInGroup": "Nicio conexiune activă în grup",
+ "savedSuccessfully": "Salvat cu succes",
+ "systemStorage": "Stocare de sistem",
+ "videoDesc": "Descriere video",
+ "maxResults": "Numărul maxim de rezultate",
+ "timeRangeMonth": "Interval de timp: lună",
+ "testSummary": "Rezumatul testului",
+ "failedSetPassword": "Setarea parolei a eșuat",
"audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "restore": "Restaurează",
+ "disableWarning": "Avertisment privind dezactivarea",
+ "moderationsDesc": "Descrierea moderărilor",
+ "providerHealthStatusAria": "ARIA pentru starea de funcționare a furnizorului",
+ "modelNamePlaceholder": "Substituent pentru numele modelului",
+ "mcpQuickStartStep2": "Pasul 2 pentru pornirea rapidă MCP",
+ "quickStart": "Pornire rapidă",
+ "fullExportFailedWithError": "Exportul complet a eșuat cu o eroare",
+ "loadingBackups": "Se încarcă copiile de siguranță",
+ "anthropicBaseUrlPlaceholder": "Substituent pentru URL-ul de bază Anthropic",
+ "description": "Descriere",
+ "noProviderFound": "Nu a fost găsit niciun furnizor",
+ "auto": "Automat",
+ "protocolsDescription": "Descrierea protocoalelor",
+ "cloudSessionNote": "Notă privind sesiunea în cloud",
+ "advancedSettings": "Setări avansate",
+ "defaultStrategy": "Strategie implicită",
+ "purgeExpiredLogs": "Șterge jurnalele expirate",
+ "justNow": "Chiar acum",
+ "providerTestFailed": "Testarea furnizorului a eșuat",
+ "openaiBaseUrlPlaceholder": "Substituent pentru URL-ul de bază Openai",
+ "image": "Imagine",
+ "failedCreateChain": "Crearea lanțului a eșuat",
+ "importDatabase": "Importă baza de date",
+ "allDataLocal": "Toate datele sunt locale",
+ "sectionTitle": "Titlul secțiunii",
+ "failedToggle": "Comutarea a eșuat",
+ "editCombo": "Editează combinația",
+ "testResults": "Rezultatele testului",
+ "searchQuery": "Interogare de căutare",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "Duplică",
+ "createCombo": "Creează combinația",
+ "searchTypeWeb": "Tip de căutare: web",
+ "addChain": "Adaugă lanț",
+ "prefixLabel": "Eticheta prefixului",
+ "listModelsDesc": "Descrierea listei de modele",
+ "databaseSize": "Dimensiunea bazei de date",
+ "chainCreated": "Lanț creat",
+ "providerTestTimeout": "Testarea furnizorului a expirat",
+ "routingStrategy": "Strategie de rutare",
+ "translateAction": "Acțiune de traducere",
+ "exportFailed": "Exportul a eșuat",
+ "connectedVerificationPending": "Conectat, verificare în așteptare",
+ "a2aQuickStartTitle": "Titlul ghidului de pornire rapidă A2A",
+ "couldNotTest": "Nu s-a putut efectua testarea",
+ "testAllCompatible": "Testează toate elementele compatibile",
+ "anthropicCompatibleName": "Numele compatibil Anthropic",
+ "disabling": "Se dezactivează",
+ "failedEnable": "Activarea a eșuat",
+ "categoryUtility": "Categoria Utilitare",
+ "customUrlOptional": "URL personalizat opțional",
+ "localProviders": "Furnizori locali",
+ "comboNamePlaceholder": "Substituent pentru numele combinației",
+ "memoryRss": "Memorie RSS",
+ "disableProvider": "Dezactivează furnizorul",
+ "welcomeDesc": "Descriere de bun venit",
+ "nameLabel": "Etichetă pentru nume",
+ "allOperational": "Toate sunt operaționale",
+ "backupNow": "Creează o copie de rezervă acum",
+ "providerMaxRetriesAria": "Etichetă ARIA pentru numărul maxim de reîncercări ale furnizorului",
+ "textToSpeechDesc": "Descriere pentru conversia textului în vorbire",
+ "machineId": "ID-ul dispozitivului",
+ "globalProxy": "Proxy global",
+ "hitsMisses": "Reușite și ratări",
+ "testDesc": "Descrierea testului",
+ "chatDesc": "Descrierea conversației",
+ "importSuccess": "Import reușit",
+ "chat": "Conversație",
+ "a2aQuickStartStep1": "Pasul 1 pentru pornirea rapidă A2A",
+ "importFailed": "Importul a eșuat",
+ "inputPlaceholder": "Substituent pentru câmpul de introducere",
+ "providerModelsTitle": "Titlul modelelor furnizorului",
+ "lastBackup": "Ultima copie de rezervă",
+ "yourEndpoint": "Endpointul dvs.",
+ "autoDisableThresholdDesc": "Descrierea pragului de dezactivare automată",
+ "rerankDesc": "Descrierea reclasificării",
+ "modelsPathPlaceholder": "Substituent pentru calea modelelor",
+ "noCombosYet": "Nicio combinație încă",
+ "connectedVerificationPendingWithError": "Conectat, verificare în așteptare, cu eroare",
+ "comboDefaultsGuideHint1": "Indiciul 1 din ghidul valorilor implicite ale combinației",
+ "enableCloudTitle": "Titlul pentru activarea serviciului cloud",
+ "configuredProvidersHint": "Indiciu privind furnizorii configurați",
+ "paused": "Întrerupt temporar",
+ "llmProviders": "Furnizori LLM",
+ "enableCombo": "Activează combinația",
+ "removeProviderOverrideAria": "Etichetă ARIA pentru eliminarea suprascrierii furnizorului",
+ "nodeVersion": "Versiunea Node",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Exportul a eșuat cu o eroare",
+ "proxyConfigured": "Proxy configurat",
+ "concurrencyPerModel": "Concurență per model",
+ "protocolTasksLabel": "Etichetă pentru sarcinile protocolului",
+ "oauthProviders": "Furnizori Oauth",
+ "lockedCount": "Număr de elemente blocate",
+ "deleteChainConfirm": "Confirmarea ștergerii lanțului",
+ "recentTranslations": "Traduceri recente",
+ "zedImportButton": "Buton de import Zed",
+ "responsesDesc": "Descrierea răspunsurilor",
+ "testedCount": "Număr de elemente testate",
+ "providersCommaSeparatedPlaceholder": "Substituent pentru furnizori separați prin virgulă",
+ "signatureDefaults": "Valori implicite pentru semnătură",
+ "errorCreating": "Eroare la creare",
+ "timeRangeYear": "Interval de timp: an",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Serviciul cloud a fost dezactivat cu succes",
+ "deleteConfirm": "Confirmarea ștergerii",
+ "check": "Verificare",
+ "safeSearch": "Căutare sigură",
+ "protocolLastActivity": "Ultima activitate a protocolului",
+ "openMcpDashboard": "Deschide tabloul de bord Mcp",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Eticheta căii pentru chat",
+ "retryDelay": "Întârziere între reîncercări",
+ "errorUpdating": "Eroare la actualizare",
+ "ideCliIntegrations": "Integrări IDE și CLI",
+ "imageGeneration": "Generare de imagini",
+ "apiKeyRequired": "Cheia API este obligatorie",
+ "resetAllTitle": "Titlul resetării tuturor setărilor",
+ "connectionError": "Eroare de conexiune",
+ "modelName": "Numele modelului",
+ "apiKeyForCheck": "Cheie API pentru verificare",
+ "cloudRequestTimeout": "Timpul de așteptare al solicitării cloud a expirat",
+ "showConfiguredOnly": "Afișează doar elementele configurate",
"showFreeOnly": "Numai gratuit",
"addFirstProvider": "Adăugați primul dvs. furnizor",
"addFirstProviderDesc": "Conectați un furnizor AI pentru a începe să direcționați cererile prin OmniRoute. Puteți folosi furnizori gratuiti, chei API sau conturi OAuth.",
"learnMore": "Aflați mai multe",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Include domenii",
+ "promptCache": "Memorie cache pentru prompturi",
+ "cloudConnected": "Conectat la cloud",
+ "deleteChain": "Șterge lanțul",
+ "chatPathPlaceholder": "Substituent pentru calea chatului",
+ "databasePath": "Calea bazei de date",
+ "usingLocalServer": "Se utilizează serverul local",
+ "globalComboConfig": "Configurație globală Combo",
+ "backupFailed": "Copierea de rezervă a eșuat",
+ "tabProtocols": "Protocoale filă",
+ "continue": "Continuă",
+ "categorySearch": "Căutare categorie",
+ "rateLimitStatus": "Starea limitei de rată",
+ "repairEnvSuccess": "Mediul a fost reparat cu succes",
+ "nameRequired": "Numele este obligatoriu",
+ "country": "Țară",
+ "trackMetricsDesc": "Descrierea urmăririi metricilor",
+ "durationSecondsShort": "Durată în secunde (scurt)",
+ "formatConverterDescription": "Descrierea convertorului de formate",
+ "cloudBenefitAccess": "Acces la beneficiile cloud",
+ "maxRetries": "Număr maxim de reîncercări",
+ "queueTimeout": "Timp de expirare a cozii",
"queueDepth": "Adâncime coadă",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Adaugă furnizor",
+ "realtime": "În timp real",
+ "totalTranslations": "Total traduceri",
+ "protocolActiveStreamsLabel": "Etichetă fluxuri active ale protocolului",
+ "repairEnv": "Repară mediul",
+ "modelsCount": "Număr de modele",
+ "viewBackups": "Vezi copiile de rezervă",
+ "responsesApi": "API Responses",
+ "copyComboName": "Copiază numele Combo",
+ "failures": "Eșecuri",
+ "failedUpdate": "Actualizarea a eșuat",
+ "imageDesc": "Descriere imagine",
+ "failedCreate": "Crearea a eșuat",
+ "remainingOfLimit": "Rămas din limită",
+ "protocolsTitle": "Titlu protocoale",
+ "expirationBannerExpiringSoonDesc": "Descriere banner pentru expirare iminentă",
+ "source": "Sursă",
+ "failed": "Eșuat",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
+ "mcpQuickStartStep1": "Pasul 1 pentru pornirea rapidă Mcp",
+ "runTest": "Rulează testul",
+ "loadingFallbackChains": "Se încarcă lanțurile de rezervă",
+ "healthy": "Funcțional",
+ "version": "Versiune",
+ "saveBlockWeighted": "Salvează blocul ponderat",
+ "zedImportNone": "Import Zed: niciunul",
+ "noBackupsYet": "Nicio copie de rezervă încă",
+ "noGlobalProxy": "Fără proxy global",
+ "noModels": "Niciun model",
+ "stickyLimit": "Limită persistentă",
+ "passedCount": "Număr de reușite",
+ "zedImportFailed": "Importul Zed a eșuat",
+ "saving": "Se salvează",
+ "testAll": "Testează tot",
+ "globalProxyDesc": "Descrierea proxy-ului global",
+ "latencyP99": "Latență P99",
+ "connectingToCloud": "Se conectează la cloud",
+ "responses": "Răspunsuri",
+ "errorDeleting": "Eroare la ștergere",
+ "openaiPrefixPlaceholder": "Substituent pentru prefixul OpenAI",
+ "enterPassword": "Introduceți parola",
+ "openA2aDashboard": "Deschide panoul de control A2A",
+ "enableProvider": "Activează furnizorul",
+ "modeTest": "Mod de testare",
+ "failedDeleteChain": "Ștergerea lanțului a eșuat",
+ "providerDesc": "Descrierea furnizorului",
+ "templateLoadHint": "Indiciu pentru încărcarea șablonului",
+ "lastFailure": "Ultimul eșec",
+ "moveDown": "Mută în jos",
+ "providerLabel": "Eticheta furnizorului",
+ "clearCacheFailed": "Golirea cache-ului a eșuat",
+ "imagesGenerations": "Generări de imagini",
+ "repairEnvWorking": "Se repară mediul de lucru",
+ "millisecondsShort": "ms",
+ "globalLabel": "Etichetă globală",
+ "failuresPlural": "Eșecuri",
+ "completionsLegacyDesc": "Descrierea completărilor vechi",
+ "searchProviders": "Caută furnizori",
+ "chatPathHint": "Indiciu pentru calea conversației",
+ "defaultStrategyDesc": "Descrierea strategiei implicite",
+ "latencyP95": "Latență P95",
+ "textToSpeech": "Conversie text în vorbire",
+ "searchType": "Tip de căutare",
+ "messages": "Mesaje",
+ "aggregatorsGateways": "Agregatoare și gateway-uri",
+ "comboStrategyAria": "Aria strategiei combinate",
+ "input": "Intrare",
+ "testingConnection": "Se testează conexiunea",
+ "excludeDomains": "Exclude domenii",
+ "webCookieProviders": "Furnizori de cookie-uri web",
+ "allTestsPassed": "Toate testele au trecut",
+ "openaiCompatibleName": "Nume compatibil Openai",
+ "warningCostOptimizedPartialPricing": "Avertisment: prețuri parțiale optimizate în funcție de cost",
+ "comboDefaultsGuideTitle": "Titlul ghidului pentru valorile implicite ale combinației",
+ "hoursAgo": "Ore în urmă",
+ "notAvailable": "Indisponibil",
+ "skipAndContinue": "Omite și continuă",
+ "moderations": "Moderări",
+ "proxyConfig": "Configurație proxy",
+ "upstreamProxyProviders": "Furnizori proxy din amonte",
+ "exportAll": "Exportă tot",
+ "queuedCount": "Număr în coadă",
+ "resetAll": "Resetează tot",
+ "noTranslations": "Nicio traducere",
+ "avgLatency": "Latență medie",
+ "throttleStatus": "Starea limitării",
+ "backupRetentionDesc": "Descrierea perioadei de păstrare a copiilor de rezervă",
+ "noCBData": "Nu există date Cb",
+ "chainDeleted": "Lanț șters",
+ "timeLeft": "Timp rămas",
+ "expirationBannerExpired": "Banner de expirare: expirat",
+ "language": "Limbă",
+ "invalidFileType": "Tip de fișier nevalid",
+ "monitoredProviders": "Furnizori monitorizați",
+ "errors": "Erori",
"heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "chatCompletions": "Completări de chat",
+ "exampleTemplatesHint": "Sugestie pentru șabloane de exemplu",
+ "retryDelayLabel": "Etichetă pentru întârzierea reîncercării",
+ "audioTranscription": "Transcriere audio",
+ "fallbackChainsDesc": "Descrierea lanțurilor de rezervă",
+ "exampleTemplates": "Șabloane de exemplu",
+ "connectionsCount": "Număr de conexiuni",
+ "modelsPathLabel": "Etichetă pentru calea modelelor",
+ "activeProvidersHint": "Sugestie pentru furnizorii activi",
+ "activeLockouts": "Blocări active",
+ "invalid": "Nevalid",
+ "skipPassword": "Omite parola",
+ "moveUp": "Mută în sus",
+ "timeRange": "Interval de timp",
+ "stickyLimitDesc": "Descrierea limitei persistente",
+ "cloudBenefitEdge": "Avantajul Cloud Edge",
+ "custom": "Personalizat",
+ "verifying": "Se verifică",
+ "baseUrlLabel": "Eticheta URL-ului de bază",
+ "setPassword": "Setează parola",
+ "safeSearchStrict": "Căutare sigură strictă",
+ "noChangesSinceBackup": "Nicio modificare de la backup",
+ "modelsPathHint": "Indiciu pentru calea modelelor",
+ "audioTranscriptions": "Transcrieri audio",
+ "testCombo": "Testează combinația",
+ "mcpQuickStartTitle": "Titlul ghidului de pornire rapidă Mcp",
+ "comboUpdated": "Combinație actualizată",
+ "weighted": "Ponderat",
+ "providers": "Furnizori",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Descriere pentru lipsa lanțurilor de rezervă",
+ "yesImport": "Da, importă",
+ "lockoutsAutoRefreshHint": "Indiciu pentru reîmprospătarea automată a blocărilor",
+ "tabApis": "Fila API-uri",
+ "sectionDescription": "Descrierea secțiunii",
+ "filter": "Filtru",
+ "purgeLogsFailed": "Ștergerea jurnalelor a eșuat",
+ "latency": "Latență",
+ "testAllOAuth": "Testează toate conexiunile O Auth",
+ "mcpQuickStartStep3": "Pasul 3 al ghidului de pornire rapidă Mcp",
+ "repairEnvFailed": "Repararea mediului a eșuat",
+ "zedImportHint": "Indiciu pentru importul Zed",
+ "modelsAcrossEndpoints": "Modele pentru toate endpointurile",
+ "autoDisableBannedAccounts": "Dezactivează automat conturile interzise",
+ "securityDesc": "Descrierea securității",
+ "listModels": "Listează modelele",
+ "backupRestore": "Restaurare din backup",
+ "target": "Țintă",
+ "zedImportSuccess": "Import Zed reușit",
+ "lastHeaderUpdate": "Ultima actualizare a antetului",
+ "categoryCore": "Categorie principală",
+ "noFallbackChains": "Niciun lanț de rezervă",
+ "noSearchProviders": "Niciun furnizor de căutare",
+ "autoBalance": "Echilibrare automată",
+ "noModelsYet": "Niciun model încă",
+ "signatureFamily": "Familie de semnături",
+ "externalApiCalls": "Apeluri API externe",
+ "providerOverridesDesc": "Descrierea suprascrierilor furnizorilor",
+ "signatureTool": "Instrument de semnare",
+ "connectionFailed": "Conexiune eșuată",
+ "activeLimitersPlural": "Limitatoare active, plural",
+ "doneDesc": "Descriere pentru finalizat",
+ "down": "Indisponibil",
+ "noDataYet": "Încă nu există date",
+ "activeProviders": "Furnizori activi",
+ "nameInvalid": "Nume nevalid",
+ "skip": "Omite",
+ "createChain": "Creează lanț",
+ "audioSpeech": "Vorbire audio",
+ "cacheCleared": "Memorie cache golită",
+ "searchTypeNews": "Tip de căutare: știri",
+ "durationMillisecondsShort": "Durată în milisecunde, abreviat",
+ "addOpenAICompatible": "Adaugă un furnizor compatibil cu OpenAI",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "În așteptare",
+ "domainPlaceholder": "Substituent pentru domeniu",
+ "durationMinutesShort": "Durată în minute, abreviat",
+ "verifyingConnection": "Se verifică conexiunea",
+ "imageProviders": "Furnizori de imagini",
+ "protocolToolsLabel": "Etichetă pentru instrumentele protocolului",
+ "queryPlaceholder": "Substituent pentru interogare",
+ "videoGeneration": "Generare video",
+ "timeRangeWeek": "Interval de timp: o săptămână",
+ "limitExhausted": "Limită epuizată",
+ "failedDisable": "Dezactivare eșuată",
+ "inMemoryNote": "Notă privind stocarea în memorie",
+ "compatibleHint": "Indiciu de compatibilitate",
+ "errorShort": "Eroare, formă scurtă",
+ "advancedHint": "Indiciu avansat",
+ "restoreFailed": "Restaurare eșuată",
+ "searchProvidersHeading": "Titlul furnizorilor de căutare",
+ "comboName": "Numele combinației",
+ "autoDisableDescription": "Descrierea dezactivării automate",
+ "embeddingsDesc": "Descrierea încorporărilor",
+ "operational": "Operațional",
+ "testAllApiKey": "Testează toate cheile API",
+ "backupCreated": "Copie de rezervă creată",
+ "errorDuringImport": "Eroare în timpul importului",
+ "comboDefaultsGuideHint2": "Indiciul 2 din ghidul valorilor implicite ale combinației",
+ "connecting": "Se conectează",
+ "fillModelAndProviders": "Completați modelul și furnizorii",
+ "syncing": "Se sincronizează",
+ "resetConfirm": "Confirmați resetarea",
+ "trackMetrics": "Urmărește indicatorii",
+ "successful": "Reușit",
+ "recovering": "Se recuperează",
+ "autoDisableThreshold": "Pragul de dezactivare automată",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Se sincronizează datele",
+ "cloudBenefitPorts": "Porturile pentru beneficiile cloud",
+ "compatibleProviders": "Furnizori compatibili",
"freeTierProviders": "Furnizori de nivel gratuit",
"freeTierLabel": "Nivel gratuit disponibil",
"freeTierProvidersDesc": "Furnizorii cu niveluri gratuite — unii necesită o înregistrare cu cheie API, alții nu au nevoie de acreditări.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "Golește memoria cache",
+ "reqs": "Cerințe",
+ "addAnthropicCompatible": "Adaugă un furnizor compatibil cu Anthropic",
+ "apiKeyProviders": "Furnizori de chei API",
+ "tabsAria": "ARIA pentru file",
+ "resetting": "Se resetează",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Motivul copiei de rezervă înainte de restaurare",
+ "disableCloud": "Dezactivează cloud-ul",
+ "newProviderNameAria": "ARIA pentru numele noului furnizor",
+ "passwordsMismatch": "Parolele nu corespund",
+ "a2aQuickStartStep3": "Pasul 3 din ghidul de pornire rapidă A2A",
+ "liveMonitorDescriptionSuffix": "Sufixul descrierii monitorizării în timp real",
+ "failedAddProvider": "Adăugarea furnizorului a eșuat",
+ "addAtLeastOneProvider": "Adăugați cel puțin un furnizor",
+ "reasonSeparator": "Separator pentru motiv",
+ "zedImporting": "Se importă Zed",
+ "confirmPasswordPlaceholder": "Confirmați parola",
+ "whatYouGet": "Ce primiți",
+ "signatureSession": "Sesiune de semnare",
+ "errorCountNoCode": "Număr de erori fără cod",
+ "testing": "Testare",
+ "providersCommaSeparated": "Furnizori separați prin virgulă",
+ "exportDatabase": "Exportă baza de date",
+ "hitRate": "Rată de succes",
+ "completionsLegacy": "Completări vechi",
+ "removeModel": "Elimină modelul",
+ "timeRangeDay": "Interval de timp: o zi",
+ "cloudRequestFailed": "Solicitarea cloud a eșuat",
+ "updatedAt": "Actualizat la",
+ "monitoredProvidersHint": "Indiciu privind furnizorii monitorizați",
+ "connectionSuccessful": "Conexiune reușită",
+ "latencyP50": "Latență P50",
+ "logsDeleted": "Jurnale șterse",
+ "chatTester": "Tester de chat",
+ "safeSearchOff": "Căutare sigură dezactivată",
+ "nameHint": "Indiciu pentru nume",
+ "debugToggle": "Comutator de depanare",
+ "embedding": "Încorporare",
+ "issuesLabel": "Etichetă pentru probleme",
+ "optionAny": "Opțiunea Oricare",
+ "maxNestingDepth": "Adâncime maximă de imbricare",
+ "rerank": "Reclasificare",
+ "checking": "Se verifică",
+ "getStarted": "Începeți",
+ "restoreSuccess": "Restaurare reușită",
+ "issuesDetected": "Probleme detectate",
+ "signatureCache": "Cache pentru semnături",
+ "modelLockouts": "Blocări ale modelelor",
+ "usingCloudProxy": "Se utilizează proxy-ul cloud",
+ "loadingHealth": "Se încarcă starea de funcționare",
+ "providerOverrides": "Suprascrieri pentru furnizori",
+ "audioTranscriptionDesc": "Descrierea transcrierii audio",
+ "learnedFromHeaders": "Învățat din anteturi",
+ "totalRequests": "Total solicitări",
+ "cloudUnstableNote": "Notă privind instabilitatea cloud",
"gamificationAdmin": "Administrator de gamification",
"monitorAnomaliesAndHealth": "Monitorizați anomaliile și sănătatea sistemului",
"flaggedAnomalies": "Anomalii semnalate",
"noAnomaliesDetected": "Nu au fost detectate anomalii",
"apiKey": "Cheia API",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 h)",
"zScore": "Scorul Z",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Suspect",
"tokensCommunityServers": "Servere comunitare",
"tokensServerNamePlaceholder": "Numele serverului",
"tokensApiKeyPlaceholder": "cheie API",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Se încarcă mai multe…",
"recommended": "Recomandat",
"understand": "Am înțeles",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
+ "batchConceptTitle": "Procesare în lot",
+ "batchConceptSubtitle": "Procesați asincron mii de solicitări la ~50% din cost (fereastră de 24 h). Ideal pentru evaluări, clasificare și embeddings.",
+ "batchConceptHowItWorks": "Cum funcționează",
+ "batchConceptBenefit50pct": "Reducere de 50% la tokenurile de intrare și ieșire",
+ "batchConceptAsync24h": "Procesare asincronă, cu o fereastră de finalizare de 24 h",
+ "batchConceptUseCases": "Ideal pentru clasificări în masă, evaluări și embeddings",
+ "batchHeaderSubtitle": "Rulați mai multe solicitări ca o singură sarcină",
+ "batchStep1": "1 · Încărcați JSONL",
+ "batchStep1Desc": "Adăugați solicitări",
+ "batchStep2": "2 · Creați lotul",
+ "batchStep2Desc": "Rulați sarcina",
+ "batchStep3": "3 · Obțineți rezultatele",
+ "batchStep3Desc": "Descărcați rezultatele",
+ "filesConceptTitle": "Fișiere de lot",
+ "filesConceptSubtitle": "Fișiere JSONL utilizate de loturi: solicitări de intrare, rezultate și erori.",
+ "filesConceptInput": "Intrare — fișierul JSONL cu câte o solicitare pe linie",
+ "filesConceptOutput": "Ieșire — rezultatele solicitărilor finalizate",
+ "filesConceptError": "Erori — solicitările care au eșuat",
+ "filesConceptRetention": "Păstrare: 30 de zile în mod implicit (29 de zile pe Anthropic)",
+ "wizardTitle": "Lot nou",
+ "wizardClose": "Închideți",
+ "wizardNext": "Înainte",
+ "wizardBack": "Înapoi",
+ "wizardCancel": "Anulați",
+ "wizardCreate": "Creați lotul",
+ "wizardCreating": "Se creează…",
+ "wizardStep1Destination": "Destinație",
+ "wizardStep2Input": "Intrare",
+ "wizardStep3Validate": "Validați",
+ "wizardStep4Cost": "Cost și creare",
+ "wizardProviderLabel": "Furnizor",
+ "wizardEndpointLabel": "Punct final",
"wizardModelLabel": "Model",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (îl vom converti)",
+ "wizardDropOrPick": "Plasați un fișier aici sau faceți clic pentru a-l selecta",
+ "wizardCsvMappingTitle": "Asociați coloanele CSV → câmpurilor solicitării",
+ "wizardCsvMappingAddField": "Adăugați câmp",
"wizardCsvNoColumns": "Nu s-au detectat coloane în antetul CSV.",
"wizardCsvIgnoreColumn": "— ignoră —",
"wizardCsvCustomIdMapped": "custom_id mapat",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} rânduri analizate",
"wizardCsvRowsSkipped": "{count} rânduri omise",
"wizardCsvRowError": "Rândul {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Toate liniile sunt valide",
"wizardValidating": "Se validează…",
"wizardValidationParseFailed": "Validarea a eșuat — nu s-a putut analiza conținutul.",
"wizardValidationSummary": "{lines} linii · {ids} custom_ids unice",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "S-au detectat custom_ids duplicate:",
"wizardValidationFirstErrors": "Erori (primele {count}):",
"wizardValidationLine": "Linia {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
+ "wizardValidationErrors": "Erori de validare",
+ "wizardValidationPreview": "Previzualizare (primele 5 solicitări)",
+ "wizardValidationSamplingNote": "Fișierul este mare — validat prin eșantionare (primele 1000 + ultimele 100 de linii). Validarea completă rulează pe server.",
+ "wizardCostSync": "Cost sincron",
+ "wizardCostBatch": "Cost lot (-50%)",
+ "wizardCostSavings": "Economii",
+ "wizardCostEstimatedNotice": "Cost estimat — facturarea reală poate varia.",
+ "wizardErrorUpload": "Încărcarea fișierului a eșuat. Încearcă din nou.",
+ "wizardErrorCreate": "Crearea lotului a eșuat. Încearcă din nou.",
+ "wizardEmptyProviders": "Conectează un furnizor care acceptă procesarea în loturi (OpenAI, Anthropic sau Gemini) pentru a crea un lot.",
+ "uploadModalTitle": "Încarcă fișierul lotului",
+ "uploadModalDropOrPick": "Plasează aici un fișier .jsonl sau dă clic pentru a-l selecta",
+ "uploadModalUpload": "Încarcă",
+ "uploadModalCancel": "Anulează",
+ "uploadModalError": "Încărcarea a eșuat. Încearcă din nou.",
+ "uploadModalSuccess": "Încărcat",
+ "uploadModalSizeLimit": "Maximum 512 MB",
+ "batchListNewButton": "Lot nou",
+ "batchListAutoRefresh": "Reîmprospătare automată la 30 s",
"batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "batchActionCancel": "Anulează",
+ "batchActionDownloadOutput": "Descarcă rezultatul",
+ "batchActionDownloadErrors": "Descarcă erorile",
+ "batchActionRetry": "Reîncearcă solicitările eșuate",
+ "batchActionRetryConfirm": "Reîncerci {n} solicitare(i) eșuată(e)? Costul final depinde de numărul efectiv de tokenuri consumate.",
+ "expirationBadgeCritical": "Critic",
+ "expirationBadgeWarning": "În curând",
+ "expirationBadgeNormal": "În așteptare",
+ "expirationBadgeExpired": "Expirat",
+ "filesListUploadButton": "Încarcă",
+ "filesListUsedByColumn": "Utilizat de",
+ "filesListUsedByNone": "Niciunul",
+ "filesListUsedByRoleInput": "intrare",
+ "filesListUsedByRoleOutput": "ieșire",
+ "filesListUsedByRoleError": "eroare",
+ "filesListSizeColumn": "Dimensiune",
+ "batchListProgressPartial": "(parțial)",
+ "batchListProviderColumn": "Furnizor",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "Altele",
+ "batchListTitle": "Loturi",
+ "batchListCount": "{count} loturi",
+ "batchListRemovingCompleted": "Se elimină…",
+ "batchListRemoveCompleted": "Eliminare finalizată",
+ "batchListTableStatus": "Stare",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "Punct final",
"batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableProgress": "Progres",
+ "batchListTableCreated": "Creat",
+ "batchListTableExpires": "Expiră",
+ "batchListLoading": "Se încarcă…",
+ "batchListEmpty": "Nu s-au găsit loturi",
+ "batchListValidating": "Se validează…",
+ "batchStatusAll": "Toate stările",
+ "batchStatusInProgress": "În desfășurare",
+ "batchStatusValidating": "Se validează",
+ "batchStatusFinalizing": "Se finalizează",
+ "batchStatusCompleted": "Finalizat",
+ "batchStatusFailed": "Eșuat",
+ "batchStatusCancelled": "Anulat",
+ "batchStatusCancelling": "Se anulează",
+ "batchStatusExpired": "Expirat",
+ "batchStatusCompletedWithFailures": "finalizat cu erori",
+ "batchStatusInProgressWithFailures": "în desfășurare (cu erori)",
+ "batchStatusFinalizingWithFailures": "în curs de finalizare (cu erori)",
+ "batchStatusCancelledWithFailures": "anulat cu erori",
+ "batchStatusExpiredWithFailures": "expirat (parțial)",
+ "wizardCostEstimating": "Se estimează costul…",
+ "wizardCostRequests": "Solicitări",
+ "wizardCostInputTok": "tokenuri de intrare",
+ "wizardCostOutputTok": "tokenuri de ieșire",
+ "wizardCostWindow": "Interval",
+ "wizardDestinationSelectProvider": "Selectați un furnizor…",
+ "wizardDestinationSelectModel": "Selectați un model…",
+ "wizardDestinationConnectProvider": "Conectați un furnizor",
+ "batchListBatchCreated": "Lotul {id} a fost creat — lista se reîmprospătează…",
+ "batchListBatchCreatedDismiss": "Închideți",
+ "batchListRefreshing": "Se reîmprospătează…",
+ "batchListRefresh": "Reîmprospătați",
+ "uploadFileModalRemove": "Eliminați",
+ "uploadFileModalUploading": "Se încarcă…",
+ "wizardInputReading": "Se citește fișierul…",
+ "wizardInputReady": "Gata",
+ "wizardInputLargeFileLabel": "Fișier mare — validare prin eșantionare",
+ "wizardInputCsvJsonlReady": "Fișier JSONL generat — gata de validare.",
+ "wizardInputLargeFileWarning": "A fost detectat un fișier mare — validarea se efectuează prin eșantionare (primii 5 MB + ultimii 100 KB). Validarea completă are loc pe server.",
+ "wizardCostWindow24h": "Fereastră de finalizare de 24 h",
+ "wizardValidationFieldsOk": "câmpurile obligatorii sunt valide",
+ "filesListDelete": "Șterge",
+ "filesListDownload": "Descarcă",
+ "batchDetailActionCancel": "Anulează lotul",
+ "batchDetailActionRetry": "Reîncearcă solicitările eșuate",
+ "batchDetailCancelling": "Se anulează…",
+ "batchDetailRetrying": "Se pregătește reîncercarea…",
+ "batchDetailCancelConfirm": "Anulați acest lot? Solicitările în curs vor fi oprite.",
+ "batchActionCancelError": "Lotul nu a putut fi anulat. Încercați din nou.",
+ "batchActionRetryError": "Solicitările eșuate nu au putut fi reîncercate. Încercați din nou.",
+ "batchConceptRetentionNote": "Fișierele cu rezultate și erori sunt păstrate timp de 30 de zile (Anthropic: 29 de zile)",
"batchFilesSizeColumn": "Dimensiune",
"toggleNoAuthProvider": "Comută furnizorul fără autentificare",
"loadingModels": "Încărcare modele…",
@@ -988,35 +988,39 @@
"disabled": "Dezactivat",
"featureFlagOmnirouteEmergencyFallbackDescription": "Redirecționează cererile cu buget epuizat către furnizorul/modelul de rezervă gratuit de urgență.",
"featureFlagArenaEloSyncEnabledDescription": "Activează sincronizarea periodică ELO a clasamentului Arena AI pentru clasamentele de inteligență ale modelelor.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Generează și inserează rezumate ale conversațiilor atunci când rutarea combinată schimbă modelele. Dezactivați pentru a trata separat schimbările de model și pentru a împiedica solicitările de transfer în fundal pentru toate combinațiile existente și viitoare.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Publica id-urile mirror claude/<provider>/<model> pe /v1/models astfel încât lista de descoperire a modelului Claude Code să includă modele non-Claude. Atenție: dublează intrările din catalog pentru toți clienții când este activat global.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Comutator principal pentru aliasurile gateway no-think/<provider>/<model>. Activat (implicit): /v1/models afișează o variantă fără raționament pentru fiecare model Claude eligibil care poate raționa, iar un id no-think/ trimis într-o solicitare este asociat din nou modelului real, cu raționamentul dezactivat. Dezactivat: nu este afișată nicio variantă, iar un id no-think/ este tratat ca orice alt id de model necunoscut. Opțiunea individuală de activare/dezactivare ModelSpec.noThinkingAlias pentru fiecare model se aplică în continuare cât timp această setare este activată.",
"featureFlagChatVirtualLanesEnabledDescription": "Activați benzile de admitere virtuale adaptive per-tenant pentru expedierea către furnizori (#9654): un vârf de trafic al unui tenant nu mai returnează 503 altui tenant. Variabila de mediu OMNIROUTE_CHAT_VIRTUAL_LANES are prioritate față de această setare din panou; modificările intră în vigoare la repornirea serverului.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Paginile furnizorilor din tabloul de bord: afișează insigna Gratuit doar pentru semnalele pe care furnizorul le respectă — elimină euristica bazată pe numele afișat, câmpurile gratuite care nu sunt booleene și sufixele :free pentru furnizorii înregistrați fără un nivel gratuit documentat. Opțiunea Dezactivat păstrează regula istorică privind insigna.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Pool-urile de proxy-uri și rotația per cont din opencode nu mai reutilizează un proxy care tocmai a eșuat (sondă TCP refuzată sau un răspuns 429 primit prin acesta) pentru o perioadă per proces care se dublează la fiecare repetare, până la o limită maximă. Nu este înregistrată nicio stare a proxy-ului; când fiecare candidat este pus deoparte, alegerea rămâne neschimbată. Dezactivat în mod implicit: ordinea de selectare este exact cea a rotației simple.",
+ "featureFlagProxyPoolEgressObservationDescription": "Afișează, sub un pool de proxy-uri din panoul de control, câte IP-uri de ieșire observate au deservit membrii acestuia în ultimele 24 h, câte conexiuni le-au folosit și numărul maxim observat în spatele unui singur IP. Doar pentru citire, calculat din jurnalul proxy-ului și niciodată utilizat pentru rutare. Dezactivat în mod implicit: editorul pool-ului rămâne neschimbat, iar ruta de observare returnează null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "În verificarea periodică a stării proxy-urilor, permite unei sonde refuzate de destinație (401/403/429: proxy-ul a retransmis, iar destinația a refuzat acest IP de ieșire) să reseteze seria de eșecuri consecutive a proxy-ului, la fel ca o sondă deservită. Dezactivat în mod implicit: un refuz rămâne neutru și păstrează seria. Un răspuns 5xx rămâne neconcludent în ambele cazuri, iar un refuz nu elimină, nu dezactivează și nu reactivează niciodată un proxy.",
"sidebar": {
"home": "Acasă",
"dashboard": "Tabloul de bord",
"providers": "Furnizorii",
"combos": "Combo-uri",
"usage": "Utilizare",
- "analytics": "Analytics",
+ "analytics": "Analize",
"costs": "Costuri",
"health": "Sănătate",
"proxy": "Proxy",
"limits": "Limite și cote",
"cliTools": "Instrumente CLI",
- "media": "Media",
+ "media": "Conținut media",
"settings": "Setări",
"translator": "Traducător",
- "playground": "Playground",
- "searchTools": "Search Tools",
+ "playground": "Spațiu de testare",
+ "searchTools": "Instrumente de căutare",
"agents": "Agenți",
"cloudAgents": "Agenți cloud",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Memorie",
+ "skills": "Abilități",
"omniSkills": "OmniSkills",
"agentSkills": "Abilități de agent",
"chaosConfig": "Mod Chaos",
- "docs": "Docs",
+ "docs": "Documentație",
"issues": "Probleme",
"endpoints": "Puncte finale",
"endpointsSubtitle": "Adresele URL ale conexiunii dvs. AI",
@@ -1051,64 +1055,64 @@
"serverDisconnectedMsg": "Serverul proxy a fost oprit sau repornește.",
"expandSidebar": "Extinde bara laterală",
"collapseSidebar": "Restrângeți bara laterală",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
+ "themes": "Teme",
+ "presetColors": "Culori populare",
+ "createTheme": "Creează o temă",
+ "chooseColor": "Alegeți o culoare",
"themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
+ "themeBlue": "Albastru",
+ "themeRed": "Roșu",
+ "themeGreen": "Verde",
"themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "themeOrange": "Portocaliu",
+ "themeCyan": "Cian",
"cliToolsShort": "Instrumente",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "Sarcini în lot",
+ "themeSystem": "Sistem de teme",
+ "whitelabelingDesc": "Descriere pentru personalizarea mărcii",
+ "switchThemes": "Schimbă temele",
+ "themeAccentDesc": "Descrierea culorii de accent a temei",
+ "uploadFavicon": "Încarcă faviconul",
+ "themeDark": "Temă întunecată",
+ "customLogoDesc": "Descrierea siglei personalizate",
+ "sidebarVisibilityToggle": "Comutator pentru vizibilitatea barei laterale",
+ "themeAccent": "Culoarea de accent a temei",
+ "resetFavicon": "Resetează faviconul",
+ "whitelabeling": "Personalizarea mărcii",
+ "darkMode": "Mod întunecat",
+ "uploadLogo": "Încarcă sigla",
+ "themeLight": "Temă luminoasă",
+ "appName": "Numele aplicației",
+ "appNameDesc": "Descrierea numelui aplicației",
+ "resetLogo": "Resetează sigla",
+ "customFavicon": "Favicon personalizat",
+ "hideHealthLogs": "Ascunde jurnalele de stare",
+ "customLogo": "Siglă personalizată",
+ "appearance": "Aspect",
+ "themeSelectionAria": "Etichetă ARIA pentru selectarea temei",
+ "themeCreate": "Creează o temă",
+ "customFaviconDesc": "Descrierea faviconului personalizat",
+ "logoPreview": "Previzualizarea siglei",
+ "themeCustom": "Temă personalizată",
+ "hideHealthLogsDesc": "Descriere pentru ascunderea jurnalelor de stare",
+ "faviconPreview": "Previzualizarea faviconului",
+ "changelog": "Jurnal de modificări",
+ "contextSection": "Context și cache",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Combinații de motoare",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Setări de compresie",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Studio Combo",
"combosLiveSubtitle": "Cascadă de rutare live",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Excluderi",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Cascadă de motoare live",
"compressionExclusionsSubtitle": "Ocolire pe model/punct final",
"chaosConfigSubtitle": "Execuție paralelă multi-model",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Rutare",
+ "protocolsSection": "Protocoale",
+ "agentsAiSection": "Agenți și IA",
+ "cacheContextSection": "Cache și context",
+ "analyticsSection": "Analiză",
+ "costsSection": "Costuri",
+ "monitoringSection": "Monitorizare",
+ "auditSecuritySection": "Audit și securitate",
+ "devtoolsSection": "Instrumente pentru dezvoltatori",
+ "configurationSection": "Configurare",
+ "aiFeaturesSection": "Funcții IA",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Plugin-uri",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "Endpointuri API",
+ "batchFiles": "Fișiere",
+ "analyticsEvals": "Evaluări",
+ "analyticsSearch": "Căutare",
+ "analyticsUtilization": "Utilizare",
+ "analyticsComboHealth": "Starea Combo",
+ "analyticsCompression": "Compresie",
+ "costsBudget": "Buget",
"costsFreeTiers": "Buget pentru nivelul gratuit",
"costsFreeTiersSubtitle": "Alocări lunare de tokenuri gratuite",
"freeProviderRankings": "Clasamentele furnizorilor gratuiți",
"freeProviderRankingsSubtitle": "Cei mai buni furnizori gratuiți clasificați după scorurile ELO ale modelelor",
"radar": "Catalog Radar",
"radarSubtitle": "Catalog gratuit de modele îmbogățit de comunitate",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Partajarea cotei",
+ "costsPricing": "Tarife",
+ "logsProxy": "Jurnale proxy",
+ "logsConsole": "Consolă",
+ "logsActivity": "Activitate",
+ "auditMcp": "Audit MCP",
"auditA2a": "Audit A2A",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Aspect",
+ "settingsAi": "Setări IA",
+ "settingsSecurity": "Securitate",
"settingsAccessTokens": "Tokenuri de acces",
"settingsFeatureFlags": "Caracteristici Steaguri",
- "settingsCache": "Cache",
+ "settingsCache": "Memorie cache",
"settingsAuthz": "Autorizare",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsRouting": "Rutare",
+ "settingsResilience": "Reziliență",
"modelLockout": "Blocare model",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Avansat",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Cotă furnizor",
+ "providerQuota": "Cotă furnizor",
+ "runtime": "Mediu de execuție",
+ "consoleLogs": "Jurnale de consolă",
+ "logsTimeline": "Cronologie",
"logsTimelineSubtitle": "Cronologia cererilor vizuale",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Conversații",
+ "conversationsSubtitle": "Conversații agentice cu mai multe schimburi",
+ "globalRouting": "Rutare globală",
+ "mitmProxy": "Proxy MITM",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Funcționalități agentice",
+ "otherFeaturesSection": "Alte funcționalități",
+ "compressionContextGroup": "Comprimarea contextului",
+ "gamificationGroup": "Gamificare",
+ "toolsGroup": "Instrumente",
+ "integrationsGroup": "Integrări",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
+ "costsParametersGroup": "Parametri de cost",
"auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "batchGroup": "Procesare în lot",
+ "homeSubtitle": "Prezentare generală a tabloului de bord",
+ "providersSubtitle": "Gestionarea furnizorilor AI",
+ "quotaTrackerSubtitle": "Urmărirea limitelor de utilizare",
+ "providerQuotaSubtitle": "Urmărirea limitelor de utilizare ale furnizorilor",
+ "runtimeSubtitle": "Reziliență și sesiuni în timp real",
+ "contextCombosSubtitle": "Combinarea motoarelor de comprimare",
+ "cliToolsSubtitle": "Configurarea mediilor de execuție CLI",
+ "agentsSubtitle": "Gestionarea agenților locali",
+ "cloudAgentsSubtitle": "Gestionarea agenților din cloud",
+ "apiEndpointsSubtitle": "Expunerea endpointurilor personalizate",
+ "proxySubtitle": "Setări proxy HTTP",
+ "mitmProxySubtitle": "Interceptare MITM",
+ "oneProxySubtitle": "Gateway proxy public",
+ "leaderboard": "Clasament",
+ "profile": "Profil",
+ "tokens": "Tokenuri",
+ "gamificationAdmin": "Administrarea gamificării",
+ "leaderboardSubtitle": "Clasamente și realizări",
+ "profileSubtitle": "Cont și preferințe",
+ "tokensSubtitle": "Utilizarea tokenurilor și bugete",
+ "gamificationAdminSubtitle": "Monitorizarea anomaliilor și prevenirea trișării",
+ "usageSubtitle": "Statistici privind traficul și utilizarea",
+ "analyticsComboHealthSubtitle": "Fiabilitatea țintei combinate",
+ "analyticsUtilizationSubtitle": "Utilizarea furnizorilor",
+ "costsSubtitle": "Defalcarea cheltuielilor",
+ "cacheSubtitle": "Rate de accesare a memoriei cache",
+ "analyticsCompressionSubtitle": "Statistici privind economisirea tokenurilor",
+ "analyticsSearchSubtitle": "Analize privind instrumentele de căutare",
+ "analyticsEvalsSubtitle": "Rezultatele suitei de evaluare",
"providerStats": "Statistici furnizor",
"providerStatsSubtitle": "Metrici de latență și performanță",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Jurnalele aplicației",
+ "logsProxySubtitle": "Jurnalele traficului proxy",
+ "consoleLogsSubtitle": "Ieșirea consolei",
+ "logsActivitySubtitle": "Jurnalul activității utilizatorilor",
+ "healthSubtitle": "Verificarea stării sistemului",
+ "costsPricingSubtitle": "Reguli de tarifare pentru fiecare model",
+ "costsBudgetSubtitle": "Limite bugetare",
+ "costsQuotaShareSubtitle": "Partajarea cotelor furnizorilor între chei",
+ "auditLogSubtitle": "Auditul autorizării",
+ "auditMcpSubtitle": "Auditul serverului MCP",
+ "auditA2aSubtitle": "Auditul protocolului A2A",
+ "translatorSubtitle": "Conversia formatului",
+ "playgroundSubtitle": "Testarea prompturilor în timp real",
+ "searchToolsSubtitle": "Registrul instrumentelor de căutare",
+ "memorySubtitle": "Memorie persistentă pentru agenți",
+ "omniSkillsSubtitle": "Registrul abilităților sandbox",
+ "agentSkillsSubtitle": "Registrul abilităților A2A",
+ "mcpSubtitle": "Comenzile serverului MCP",
+ "a2aSubtitle": "Serverul protocolului A2A",
"pluginsSubtitle": "Magazin de plugin-uri și instalări",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Fișiere media memorate în cache",
+ "batchFilesSubtitle": "Fișiere de intrare/ieșire în lot",
+ "settingsSubtitle": "Toate setările",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Tema și aspectul",
+ "settingsAiSubtitle": "Setările implicite pentru comportamentul AI",
+ "globalRoutingSubtitle": "Reguli globale de rutare",
+ "settingsResilienceSubtitle": "Reîncercări și întrerupătoare",
+ "settingsAdvancedSubtitle": "Opțiuni pentru utilizatorii avansați",
+ "settingsSecuritySubtitle": "Autentificare și criptare",
"settingsAccessTokensSubtitle": "Tokenuri CLI cu scop limitat pentru modul remote",
"settingsFeatureFlagsSubtitle": "Comutați capacitățile sistemului",
"settingsCacheSubtitle": "Catalog de modele și cache pentru răspunsuri",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Bară laterală",
+ "settingsSidebarSubtitle": "Personalizarea aspectului barei laterale",
"settingsAuthzSubtitle": "Inventar de rute și politică de ocolire",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Documentație",
+ "issuesSubtitle": "Raportați o eroare",
+ "changelogSubtitle": "Note de lansare",
"costsQuotaPlans": "Planuri și cote",
"costsQuotaPlansSubtitle": "Configurare planuri după furnizor",
"activity": "Activitate",
@@ -1271,11 +1275,11 @@
"systemGroup": "Sistem",
"costsOverview": "Prezentare generală",
"costsOverviewSubtitle": "Analiză consolidată a costurilor",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Punte pentru agenți",
"agentBridgeSubtitle": "Interceptează traficul agentului IDE",
"trafficInspector": "Inspector de trafic",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Inspectează traficul de solicitări și răspunsuri din aplicațiile tale",
+ "trafficInspectorPurpose": "Vezi exact ce trimite aplicația ta către furnizorii de servicii AI și ce primește de la aceștia. Funcționează cu orice client compatibil cu OpenAI.",
"cliCode": "Cod CLI",
"cliCodeSubtitle": "Instrumente de cod care indică spre OmniRoute",
"cliAgents": "Agenți CLI",
@@ -1294,7 +1298,7 @@
"groupSeparatorLabel": "Separator",
"discovery": "Descoperire",
"discoverySubtitle": "Scanează furnizorii pentru acces gratuit",
- "conductor": "Conductor",
+ "conductor": "Dirijor",
"conductorSubtitle": "Flota agentului CLI",
"orchestration": "Orchestrare",
"orchestrationSubtitle": "Vizualizare live a tot ce rulează",
@@ -1341,7 +1345,7 @@
"refresh": "Reîmprospătați",
"loading": "Se încarcă webhook-urile...",
"never": "Niciodată",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {niciun eșec} one {# eșec} other {# eșecuri}}",
"testWebhook": "Trimiteți testul",
"testSuccess": "Webhook de testare a fost trimis cu succes.",
"testFailed": "Testarea webhook-ului a eșuat.",
@@ -1374,54 +1378,54 @@
"step3": "Verifică configurația trimițând un payload de test pentru a te asigura că endpoint-ul îl primește.",
"step4": "Securizează-ți endpoint-ul prin validarea antetului X-Webhook-Signature HMAC-SHA256 folosind secretul webhook-ului.",
"title": "Cum funcționează webhook-urile",
- "customOnly": "Only applicable for custom endpoint integrations.",
- "hmacRecipeTitle": "HMAC Verification Recipe",
- "hmacRecipe": "To verify webhook payloads in Node.js, compute the HMAC-SHA256 of the raw request body using your secret key. Compare it to the X-Webhook-Signature header using timingSafeEqual.",
- "timeoutNote": "Webhook deliveries have a timeout of 10 seconds.",
- "retryNote": "Failed deliveries are retried up to 5 times with exponential backoff.",
- "docsLink": "Read the full Webhooks developer guide",
- "hmacRecipePython": "Python HMAC verification: hmac.new(secret, body, hashlib.sha256).hexdigest()",
- "hmacRecipeBash": "Bash HMAC verification: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
+ "customOnly": "Se aplică numai integrărilor cu endpointuri personalizate.",
+ "hmacRecipeTitle": "Procedură de verificare HMAC",
+ "hmacRecipe": "Pentru a verifica payloadurile webhook în Node.js, calculează HMAC-SHA256 al corpului brut al solicitării folosind cheia ta secretă. Compară-l cu antetul X-Webhook-Signature folosind timingSafeEqual.",
+ "timeoutNote": "Livrările webhook au un timp-limită de 10 secunde.",
+ "retryNote": "Livrările nereușite sunt reîncercate de până la 5 ori, cu temporizare exponențială.",
+ "docsLink": "Citește ghidul complet pentru dezvoltatori despre webhookuri",
+ "hmacRecipePython": "Verificare HMAC în Python: hmac.new(secret, body, hashlib.sha256).hexdigest()",
+ "hmacRecipeBash": "Verificare HMAC în Bash: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
},
"deliveries": {
- "title": "Delivery Logs",
- "loadFailed": "Failed to load webhook delivery logs.",
- "empty": "No deliveries recorded yet. Trigger an event or send a test payload.",
- "status": "Status",
- "event": "Event",
- "latency": "Latency",
- "at": "Sent At"
+ "title": "Jurnale de livrare",
+ "loadFailed": "Jurnalele livrărilor webhook nu au putut fi încărcate.",
+ "empty": "Nu a fost înregistrată încă nicio livrare. Declanșează un eveniment sau trimite un payload de test.",
+ "status": "Stare",
+ "event": "Eveniment",
+ "latency": "Latență",
+ "at": "Trimis la"
},
"kinds": {
- "comingSoon": "Coming Soon",
+ "comingSoon": "În curând",
"slack": "Slack",
- "slackDesc": "Post system events directly into a Slack channel",
+ "slackDesc": "Publică evenimentele de sistem direct într-un canal Slack",
"telegram": "Telegram",
- "telegramDesc": "Send event messages using a Telegram bot",
+ "telegramDesc": "Trimite mesaje despre evenimente folosind un bot Telegram",
"discord": "Discord",
- "discordDesc": "Deliver real-time updates directly to a Discord server",
- "custom": "Custom Webhook",
- "customDesc": "Deliver system event payloads to any HTTPS endpoint",
- "email": "Email Notification",
- "emailDesc": "Receive summary updates via email",
+ "discordDesc": "Trimite actualizări în timp real direct către un server Discord",
+ "custom": "Webhook personalizat",
+ "customDesc": "Trimite payloadurile evenimentelor de sistem către orice endpoint HTTPS",
+ "email": "Notificare prin e-mail",
+ "emailDesc": "Primește actualizări de sinteză prin e-mail",
"pagerduty": "PagerDuty",
- "pagerdutyDesc": "Trigger alerts on PagerDuty for critical system issues",
+ "pagerdutyDesc": "Declanșează alerte în PagerDuty pentru probleme critice ale sistemului",
"teams": "Microsoft Teams",
- "teamsDesc": "Forward system notifications to Microsoft Teams channels"
+ "teamsDesc": "Redirecționează notificările de sistem către canalele Microsoft Teams"
},
- "testPayloadSent": "Test Payload Sent",
- "testResponse": "Test Response",
+ "testPayloadSent": "Payload de test trimis",
+ "testResponse": "Răspuns de test",
"validateUrl": {
- "checking": "Checking URL...",
- "ok": "URL is valid",
- "blockedPrivate": "URL is a blocked private address",
- "invalidUrl": "Invalid URL format"
+ "checking": "Se verifică URL-ul...",
+ "ok": "URL-ul este valid",
+ "blockedPrivate": "URL-ul este o adresă privată blocată",
+ "invalidUrl": "Format URL nevalid"
},
"custom": {
- "endpointUrl": "Endpoint URL",
+ "endpointUrl": "URL-ul endpointului",
"endpointUrlPlaceholder": "https://api.yourdomain.com/webhook",
- "secretKey": "Secret Key",
- "secretKeyPlaceholder": "Enter secret key or leave blank to auto-generate",
+ "secretKey": "Cheie secretă",
+ "secretKeyPlaceholder": "Introduceți cheia secretă sau lăsați câmpul necompletat pentru a o genera automat",
"secretKeyHint": "Utilizat pentru a semna antetul payload-ului pentru autentificare."
},
"discord": {
@@ -1457,7 +1461,7 @@
"eventTypePlaceholder": "Filtrați după acțiune sau tip de eveniment",
"severity": "Severitate",
"allSeverities": "Toate severitățile",
- "info": "Info",
+ "info": "Informații",
"warning": "Avertisment",
"critical": "Critic",
"sourceIp": "IP sursă",
@@ -1513,7 +1517,7 @@
"a2aArtifacts": "Artefacte",
"a2aNoTasks": "Nu au fost înregistrate sarcini A2A.",
"a2aLoadingTasks": "Se încarcă sarcini A2A...",
- "actor": "Actor",
+ "actor": "Autor",
"actorPlaceholder": "Filtrează după actor",
"eventTypes": {
"apiKey.activate": "Cheie API activată",
@@ -1559,13 +1563,13 @@
"mcpMetricTopTool": "Instrument de top"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "Teme",
+ "description": "Alegeți o temă predefinită sau creați una proprie folosind o singură culoare",
+ "presetColors": "Culori populare",
+ "customTheme": "Temă personalizată",
+ "customThemeDesc": "Faceți clic pe „Creați tema” și alegeți o culoare",
+ "createTheme": "Creați tema",
+ "activePreset": "Tema activă"
},
"header": {
"logout": "Deconectare",
@@ -1581,69 +1585,69 @@
"comboDescription": "Combo de modele cu rezervă",
"usage": "Utilizare și analiză",
"usageDescription": "Monitorizați-vă utilizarea API-ului, consumul de token-uri și jurnalele de solicitări",
- "analytics": "Analytics",
+ "analytics": "Analize",
"analyticsDescription": "Diagrame, tendințe și perspective de evaluare",
"cliTools": "Instrumente CLI",
"cliToolsDescription": "Configurați instrumentele CLI",
"home": "Acasă",
"homeDescription": "Bun venit la OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Endpointuri",
+ "endpointDescription": "Gestionați endpointurile proxy, MCP, A2A și API",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Gestionarea serverelor și instrumentelor Model Context Protocol",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Sarcini și observabilitate pentru protocolul Agent-to-Agent",
"settings": "Setări",
"settingsDescription": "Gestionați-vă preferințele",
"openaiCompatible": "Compatibil cu OpenAI",
"anthropicCompatible": "Compatibil antropic",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "media": "Conținut media",
+ "mediaDescription": "Generați imagini, videoclipuri și muzică",
+ "themes": "Teme",
+ "themesDescription": "Alegeți o temă cromatică pentru întregul panou de control",
+ "costsDescription": "Urmăriți cheltuielile, analizați tendințele și gestionați bugetul pentru IA la nivelul tuturor furnizorilor",
+ "cacheDescription": "Monitorizați eficiența memoriei cache pentru prompturi a furnizorilor și reutilizarea locală a răspunsurilor semantice.",
+ "limitsDescription": "Configurați limitele de rată și cotele pentru fiecare cheie API și furnizor",
+ "runtimeDescription": "Observabilitate în timp real a mediului de execuție — mecanisme de întrerupere a circuitului, perioade de așteptare, blocări ale modelelor, sesiuni și alerte privind cotele",
+ "apiManagerDescription": "Gestionați cheile API și controlul accesului pentru instanța dvs. OmniRoute",
+ "batchDescription": "Procesați asincron volume mari de solicitări prin apeluri API grupate",
+ "contextCavemanDescription": "Comprimarea mesajelor bazată pe reguli, pachete lingvistice, analize și controale pentru modul de ieșire.",
+ "contextRtkDescription": "Comprimare adaptată comenzilor pentru ieșirea instrumentelor, jurnalele terminalului și rezultatele compilării.",
+ "contextCombosDescription": "Definiți modul în care sunt combinate motoarele pentru diferite scenarii de rutare.",
+ "changelogDescription": "Fiți la curent cu cele mai recente funcționalități și anunțuri ale platformei.",
+ "agentsDescription": "Gestionați și configurați instrumentele agenților AI: Codex, Devin, Jules și agenți personalizați",
+ "cloudAgentsDescription": "Orchestrați agenți AI bazați pe cloud, cu urmărirea sarcinilor în timp real și aprobarea planurilor",
+ "memoryDescription": "Memorie conversațională persistentă, cu căutare semantică și indexare full-text FTS5",
+ "skillsDescription": "Instalați și gestionați abilitățile din sandbox pentru executarea automată a prompturilor și a instrumentelor",
+ "agentSkillsDescription": "Catalog de abilități pregătite pentru agenți, cu copierea URL-ului printr-un singur clic pentru integrarea clienților AI",
+ "translatorDescription": "Traduceți și testați prompturi între formatele API: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Testați interactiv prompturile, cu răspunsuri în timp real de la furnizori și inspectarea formatului",
+ "searchToolsDescription": "Analize privind căutările, defalcarea pe furnizori, ratele de accesare a memoriei cache și monitorizarea costurilor",
+ "logsDescription": "Jurnale de cereri în timp real, urme ale erorilor și inspector de evenimente în flux",
+ "auditDescription": "Jurnal de audit pentru conformitate privind utilizarea cheilor API, apelurile instrumentelor MCP și evenimentele de politică",
+ "webhooksDescription": "Configurați endpointuri webhook pentru a primi notificări în timp real despre evenimente",
+ "healthDescription": "Prezentare generală a stării sistemului: furnizori, întrerupătoare de circuit, limite de rată și bază de date",
+ "proxyDescription": "Configurați setările proxy-ului upstream pentru conexiunile de ieșire către furnizori",
+ "apiEndpointsDescription": "Gestionați configurațiile endpointurilor API personalizate și suprascrierile de rutare",
+ "batchFilesDescription": "Răsfoiți și gestionați fișierele de ieșire și rezultatele sarcinilor procesate în lot",
+ "analyticsEvalsDescription": "Rezultatele evaluării modelelor și teste comparative de performanță",
+ "analyticsSearchDescription": "Analize privind interogările de căutare, ratele de accesare a memoriei cache și monitorizarea costurilor",
+ "analyticsUtilizationDescription": "Indicatori privind utilizarea furnizorilor și planificarea capacității",
+ "analyticsComboHealthDescription": "Starea și performanța în timp real ale configurațiilor de rutare combinată",
+ "analyticsCompressionDescription": "Analize privind comprimarea contextului și economiile de tokenuri",
+ "costsBudgetDescription": "Limite bugetare și alerte de cheltuieli pentru fiecare cheie API și furnizor",
+ "costsPricingDescription": "Configurație de prețuri personalizată pentru calcularea costurilor tokenurilor",
+ "logsProxyDescription": "Jurnale de cereri ale proxy-ului upstream și inspectarea traficului",
+ "logsConsoleDescription": "Ieșirea consolei aplicației și jurnale de depanare",
+ "logsActivityDescription": "Jurnal de audit al acțiunilor utilizatorilor și al evenimentelor de sistem",
+ "auditMcpDescription": "Jurnal de audit al invocărilor instrumentelor MCP și înregistrări de conformitate",
"auditA2a": "Audit A2A",
"auditA2aDescription": "Pista de audit pentru execuția sarcinilor A2A, tranziții de stare și înregistrări de invocare a abilităților",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Temă, identitate vizuală și personalizare vizuală",
+ "settingsAiDescription": "Comportamente AI, bugete de gândire, vedere și setări de memorie",
"settingsCacheDescription": "TTL pentru intrările cache ale catalogului de modele",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Setări de autentificare, autorizare și control al accesului",
"featureFlags": "Caracteristici Steaguri",
"featureFlagsDescription": "Capacitățile sistemului de control și caracteristicile experimentale",
"featureFlagsActive": "{count} activ",
@@ -1657,7 +1661,7 @@
"featureFlagsCategoryRuntime": "Timp de rulare",
"featureFlagsCategoryCli": "CLI",
"featureFlagsCategoryHealth": "Sănătate",
- "featureFlagsSourceDb": "DB",
+ "featureFlagsSourceDb": "BD",
"featureFlagsSourceEnv": "ENV",
"featureFlagsSourceDefault": "DEF",
"featureFlagsReset": "Resetați",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Niciun steag nu corespunde căutării dvs",
"featureFlagsSaved": "Steagul actualizat",
"featureFlagsError": "Nu s-a putut actualiza marcajul",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Reguli de rutare, aliasuri de modele, valori implicite pentru combinații și setări de degradare",
+ "settingsResilienceDescription": "Configurația întrerupătorului de circuit, a reîncercărilor și a mecanismelor de rezervă",
+ "settingsAdvancedDescription": "Reguli avansate pentru sarcina utilă, limite pentru cereri și setări API pentru proxy",
+ "mitmProxyDescription": "Configurați setările proxy-ului MITM pentru inspectarea traficului și depanare",
+ "oneProxyDescription": "Configurați setările 1Proxy pentru înlănțuirea avansată a proxy-urilor",
"omniSkillsDescription": "Instalează și gestionează abilități sandbox pentru executarea automată a prompturilor și instrumentelor"
},
"cloudSyncStatus": {
@@ -1686,7 +1690,7 @@
"statusLabel": "Stare sincronizare setări la distanță: {status}"
},
"breadcrumbs": {
- "ariaLabel": "Breadcrumb",
+ "ariaLabel": "Fir de navigare",
"dashboard": "Tablou de bord",
"providers": "Furnizori",
"combos": "Combinații",
@@ -1702,9 +1706,9 @@
"logs": "Jurnale",
"auditLog": "Jurnal de audit",
"console": "Consolă",
- "logger": "Logger",
+ "logger": "Jurnal",
"translator": "Traducător",
- "playground": "Playground",
+ "playground": "Spațiu de testare",
"add": "Adaugă",
"edit": "Editează",
"apiKeys": "Chei API",
@@ -1712,7 +1716,7 @@
"cliCode": "Cod CLI",
"cliAgents": "Agenți CLI",
"acpAgents": "Agenți ACP",
- "endpoint": "Endpoint",
+ "endpoint": "Punct final",
"apiManager": "Manager API",
"context": "Context",
"compression": "Compresie",
@@ -1720,7 +1724,7 @@
"analytics": "Analize",
"costs": "Costuri",
"health": "Stare",
- "runtime": "Runtime",
+ "runtime": "Mediu de execuție",
"webhooks": "Webhook-uri",
"home": "Acasă",
"activity": "Activitate",
@@ -1733,20 +1737,20 @@
"audit": "Audit",
"a2a": "A2A",
"mcp": "MCP",
- "batch": "Batch",
+ "batch": "Lot",
"files": "Fișiere",
- "media": "Media",
- "cache": "Cache",
+ "media": "Fișiere media",
+ "cache": "Memorie cache",
"changelog": "Jurnal de modificări",
- "chaos": "Chaos",
+ "chaos": "Haos",
"cloudAgents": "Agenți Cloud",
- "live": "Live",
+ "live": "În direct",
"studio": "Studio",
"aggressive": "Agresiv",
- "caveman": "Caveman",
+ "caveman": "Omul peșterilor",
"ccr": "CCR",
- "headroom": "Headroom",
- "lite": "Lite",
+ "headroom": "Marjă",
+ "lite": "Ușor",
"llmlingua": "LLMLingua",
"omniglyph": "OmniGlyph",
"rtk": "RTK",
@@ -1758,7 +1762,7 @@
"discovery": "Descoperire",
"freeProviderRankings": "Clasament furnizori gratuiți",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Configurare",
"freeTiers": "Niveluri gratuite",
"gamification": "Gamificare",
"leaderboard": "Clasament",
@@ -1768,7 +1772,7 @@
"providerStats": "Statistici furnizor",
"new": "Nou",
"quota": "Cotă",
- "relay": "Relay",
+ "relay": "Releu",
"searchTools": "Instrumente de căutare",
"security": "Securitate",
"sidebar": "Bara laterală",
@@ -1808,7 +1812,7 @@
"reportIssue": "Raportați problema",
"activeError": "{active} activ · {errors} eroare",
"topologyLegendActive": "Activ",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Recente",
"topologyLegendError": "Eroare",
"oauthLabel": "OAuth",
"apiKeyLabel": "Cheia API",
@@ -1822,11 +1826,11 @@
"updateStarted": "Actualizarea a început...",
"reloadingPageAutomatically": "Se reîncarcă pagina automat...",
"providerTopology": "Topologia furnizorului",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Solicitări recente",
+ "recentRequestsEmpty": "Nicio solicitare încă.",
+ "recentRequestsModel": "Model",
+ "recentRequestsTokens": "Intrare / Ieșire",
+ "recentRequestsWhen": "Când",
"downloadDmg": "Descarcă DMG (macOS)",
"downloadDmgDescription": "O nouă versiune a aplicației desktop OmniRoute este disponibilă. Vă rugăm să descărcați și să instalați programul de instalare DMG pentru macOS pentru a actualiza (curent: v{version}).",
"downloadExe": "Descarcă EXE (Windows)",
@@ -1884,18 +1888,18 @@
"releaseNotes": "Note de Lansare",
"readMore": "Citește mai mult",
"noAuthLabel": "Fără Autentificare",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Pregătește-te să direcționezi",
+ "readinessTitle": "Trimite prima solicitare",
+ "readinessSubtitle": "Patru pași simpli. OmniRoute verifică dacă totul este pregătit pe parcurs.",
+ "readinessStep1": "Conectează un furnizor",
+ "readinessStep2": "Configurează autentificarea endpointului",
+ "readinessStep3": "Copiază endpointul",
+ "readinessStep4": "Trimite o solicitare de test",
+ "readinessContinue": "Continuă configurarea",
+ "readinessDismiss": "Închideți pentru moment"
},
"analytics": {
- "title": "Analytics",
+ "title": "Analiză",
"usageAnalyticsTitle": "Analiza utilizării",
"diversityScoreTitle": "Diversitatea furnizorilor",
"diversityScoreDesc": "Instantaneu al concentrării furnizorilor pentru fereastra recentă de trafic.",
@@ -1963,7 +1967,7 @@
"period7D": "7Z",
"period30D": "30Z",
"period90D": "90Z",
- "periodYTD": "YTD",
+ "periodYTD": "De la începutul anului",
"periodAll": "Toate",
"totalTokens": "Total tokeni",
"inputTokens": "Tokeni de intrare",
@@ -1996,13 +2000,13 @@
"sectionsAria": "Secțiuni de analiză",
"utilizationDescription": "Tendințe de utilizare a cotelor furnizorului și urmărirea limitelor de rată",
"modelStatus": "Stare model",
- "modelStatusCooldown": "Cooldown",
+ "modelStatusCooldown": "Perioadă de așteptare",
"modelStatusUnavailable": "Indisponibil",
"modelStatusError": "Eroare",
"comboHealth": "Sănătatea Combo-ului",
"comboHealthDescription": "Cotă la nivel de combo, distribuția utilizării și metricile de performanță",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Analiza compresiei",
+ "compressionAnalyticsDescription": "Analiza compresiei — economii de tokenuri, defalcare pe moduri și statistici despre furnizori.",
"autoRoutingTotalAutoRequests": "Total de solicitări automate",
"autoRoutingAvgSelectionScore": "Scorul mediu de selecție",
"autoRoutingExplorationRate": "Rata de explorare",
@@ -2088,7 +2092,7 @@
"comboHealthPerformance": "Performanță",
"comboHealthPerformanceDescription": "Fiabilitate și debit pentru traficul rutat prin combo.",
"comboHealthExecutionTargetsDescription": "Măsurători de runtime la nivel de pas și vizibilitate a cotelor pentru țintele structurate de combo.",
- "comboHealthRequestShort": "{count} req",
+ "comboHealthRequestShort": "{count} solicitări",
"comboHealthQuotaScope": "Domeniu cotă: {scope}",
"comboHealthTrendValue": "Tendință: {trend}",
"comboHealthFetchFailed": "Nu s-au putut prelua datele despre starea combo-ului",
@@ -2133,7 +2137,7 @@
"compressionAnalyticsStartTracking": "Utilizați POST /v1/chat/completions cu o configurație de compresie pentru a începe monitorizarea datelor analitice de compresie.",
"compressionAnalyticsInfo": "Date analitice de compresie: Economiile de tokenuri sunt monitorizate per mod (off, lite, standard, aggressive, ultra, RTK, stacked), motor, combinație de compresie și furnizor. Treceți cursorul peste grafice pentru detalii. Utilizați selectorul de timp pentru a vizualiza diferite perioade.",
"searchAnalyticsTotalSearches": "Total căutări",
- "searchAnalyticsCacheHitRate": "Cache Hit Rate",
+ "searchAnalyticsCacheHitRate": "Rata de succes a cache-ului",
"searchAnalyticsTotalCost": "Costul total",
"searchAnalyticsAvgResponse": "Răspuns mediu",
"searchAnalyticsNoSearchesYet": "Nicio căutare încă",
@@ -2178,13 +2182,13 @@
"routeWhyTarget": "De ce această țintă?",
"routeWhyTargetSubtitle": "Metadate exacte de runtime plus reluare doar în citire a scorului",
"routeExactRuntimeLog": "Jurnal exact de runtime",
- "routeCallLogsExact": "call_logs exact",
+ "routeCallLogsExact": "call_logs exacte",
"routeReadOnlyRecompute": "Recalculare doar în citire",
"routeRuntimeRankNow": "Rang runtime actual",
"routeRuntimeScoreNow": "Scor runtime actual",
"routeWouldSelectNow": "Ar selecta acum",
"routeNoRecomputeCandidates": "Niciun clasament al candidaților combo nu poate fi recalculat pentru această solicitare.",
- "runtime": "Runtime",
+ "runtime": "Timp de execuție",
"routeTopNow": "Top acum",
"routeFetchLogsFailed": "Nu s-au putut prelua jurnalele de solicitări",
"routeExplainFailed": "Nu s-a putut explica ruta",
@@ -2203,10 +2207,10 @@
"model": "Model",
"account": "Cont",
"connection": "Conexiune",
- "combo": "Combo",
+ "combo": "Combinație",
"routeStep": "Pas",
"tokens": "Tokenuri",
- "notAvailable": "n/a",
+ "notAvailable": "indisponibil",
"routeTokenCounts": "{input} intrare · {output} ieșire",
"routeEvidence": "Dovezi",
"routeFactors": "Factori de rutare",
@@ -2254,9 +2258,9 @@
"fullAccess": "Acces complet",
"keyManagement": "Managementul cheilor API",
"keyManagementDesc": "Creați și gestionați cheile API pentru autentificarea solicitărilor către punctul dvs. final",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Aplicația dvs. trimite solicitări către OmniRoute printr-o cheie API",
+ "requestFlowYourApp": "Aplicația dvs.",
+ "requestFlowApiKey": "Cheie API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Total chei",
"restricted": "Restricţionat",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Copiați și stocați această cheie acum - nu va fi afișată din nou.",
"done": "Gata",
"savePermissions": "Salvare permisiuni",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Endpointuri permise",
+ "allEndpointsAllowed": "Această cheie poate accesa toate endpointurile API.",
+ "endpointsRestricted": "Acces restricționat la {count} endpoint{count, plural, one {} other {s}}.",
+ "autoResolve": "Rezolvare automată",
+ "autoResolveDesc": "Rezolvă automat numele ambigue ale modelelor la furnizorul nativ pentru această cheie API.",
"streamDefaultMode": "Compatibilitate implicită stream",
"streamDefaultModeDesc": "Controlează flagurile `stream` omise pentru această cheie. Modul JSON returnează răspunsuri fără streaming, cu excepția cazului în care clientul solicită explicit SSE.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Moștenit",
"streamDefaultJson": "Compatibil JSON",
"streamDefaultBadge": "Implicit stream JSON",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Cheie activă",
+ "keyActiveDesc": "Activați sau dezactivați această cheie API. Cheile dezactivate sunt respinse imediat cu 403.",
+ "accessSchedule": "Program de acces",
+ "accessScheduleDesc": "Restricționați accesul la anumite ore și zile ale săptămânii.",
+ "scheduleFrom": "De la",
+ "scheduleUntil": "Până la",
+ "scheduleDays": "Zile",
+ "scheduleTimezone": "Fus orar",
+ "scheduleTimezoneHint": "Utilizați denumiri de fusuri orare IANA, de ex. America/New_York, Europe/Berlin",
+ "scheduleActive": "Program",
+ "disabled": "Dezactivat",
+ "daySun": "Dum",
+ "dayMon": "Lun",
+ "dayTue": "Mar",
+ "dayWed": "Mie",
+ "dayThu": "Joi",
+ "dayFri": "Vin",
+ "daySat": "Sâm",
"allowAll": "Permite Toate",
"restrict": "Restricționați",
"allowAllInfo": "Această cheie poate accesa toate modelele disponibile.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Nu s-au actualizat permisiunile. Vă rugăm să încercați din nou.",
"unknownProvider": "necunoscut",
"copyMaskedKey": "Copiați cheia mascată",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Cheia completă este disponibilă doar în momentul creării — copiați-o când creați cheia pentru prima dată",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# dispozitiv} few {# dispozitive} other {# de dispozitive}}",
"devicesTooltip": "{count, plural, one {# dispozitiv distinct IP/User-Agent văzut cu această cheie (ultimele 30 min)} few {# dispozitive distincte IP/User-Agent văzute cu această cheie (ultimele 30 min)} other {# de dispozitive distincte IP/User-Agent văzute cu această cheie (ultimele 30 min)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Combinații permise",
"allCombosAllowed": "Această cheie poate utiliza orice combinație.",
"restrictedComboCount": "Restricționat la {count, plural, one {# combinație} few {# combinații} other {# de combinații}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# intrare stocată nu se află} other {# intrări stocate nu se află}} în această listă combinată (de exemplu, reguli de rutare) și vor fi păstrate așa cum au fost salvate.",
+ "preservedComboRuleHint": "Păstrată așa cum a fost stocată. Această intrare nu este o combinație din lista de mai sus, așadar poate fi modificată doar prin API.",
"apiManagerCustomRateLimits": "Limite de tarif personalizate",
"apiManagerCustomRateLimitsDesc": "Înlocuiți limitele globale implicite. Lăsați gol pentru a utiliza valorile implicite.",
"apiManagerRateLimitRequestsPlaceholder": "Cereri",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Permite acestei chei să ignore politica de limitare a furnizorului/contului din amonte în timpul rutării. Cotele USD ale cheii API se aplică în continuare.",
"quotaPill": "COTĂ",
"quotaModeOnly": "Doar qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Închiriere exclusivă",
+ "exclusiveLeaseNoticeTitle": "Închiriere exclusivă",
+ "exclusiveLeaseNoticeDesc": "Această cheie API are permisiuni de închiriere exclusivă pentru rutarea conexiunilor dedicate.",
+ "allConnections": "Toate conexiunile",
+ "onlySelectedConnections": "Doar conexiunile selectate",
+ "selectAtLeastOneConnection": "Selectați cel puțin o conexiune sau alegeți Toate conexiunile.",
+ "allConnectionsDesc": "Această cheie poate utiliza orice conexiune activă.",
+ "restrictedToConnections": "Restricționată la {count, plural, one {# conexiune} other {# conexiuni}}."
},
"auditLog": {
"title": "Jurnal de audit",
@@ -2453,16 +2457,16 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Generează",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Se generează...",
+ "loadingModels": "Se încarcă modelele disponibile...",
+ "noModels": "Nu există modele disponibile. Configurați mai întâi furnizori cu funcționalități media.",
+ "error": "Generarea a eșuat",
+ "result": "Rezultat",
+ "imageDescription": "Generați imagini din solicitări text folosind OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI și altele.",
+ "videoDescription": "Creați videoclipuri cu AnimateDiff, Stable Video Diffusion prin ComfyUI sau SD WebUI.",
+ "musicDescription": "Compuneți muzică folosind Stable Audio Open sau MusicGen prin ComfyUI.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Încorporare",
"image": "Imagine",
"imageToText": "Imagine în text",
"tts": "Text în vorbire",
@@ -2538,114 +2542,114 @@
"openrouterSttDescription": "Modelele de recunoaștere vocală OpenRouter folosesc conexiunea OpenRouter configurată de tine. Nu este necesară o acreditivă separată."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
+ "searchQuery": "Interogare de căutare",
+ "searchResults": "Rezultatele căutării",
+ "cachedResult": "În cache",
"searchCost": "Cost",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Testare avansată a căutării cu compararea furnizorilor",
+ "compareProviders": "Compară furnizorii",
+ "rerankResults": "Reordonează rezultatele",
+ "searchHistory": "Istoricul căutărilor",
+ "urlOverlap": "Suprapunerea URL-urilor",
+ "noSearchProviders": "Nu este configurat niciun furnizor de căutare. Adăugați furnizori în Setări.",
+ "noRerankModels": "Niciun model de reordonare disponibil",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Furnizor",
+ "searchType": "Tip de căutare",
+ "maxResults": "Număr maxim de rezultate",
+ "filters": "Filtre",
+ "country": "Țară",
+ "language": "Limbă",
+ "timeRange": "Interval de timp",
+ "includeDomains": "Include domenii",
+ "excludeDomains": "Exclude domenii",
+ "safeSearch": "Căutare sigură",
+ "safeSearchOff": "Dezactivată",
+ "safeSearchModerate": "Moderată",
+ "safeSearchStrict": "Strictă",
+ "queryPlaceholder": "Introduceți interogarea de căutare...",
+ "providerAuto": "automat (cel mai ieftin)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "știri",
+ "optionAny": "oricând",
+ "timeRangeDay": "Ultima zi",
+ "timeRangeWeek": "Ultima săptămână",
+ "timeRangeMonth": "Ultima lună",
+ "timeRangeYear": "Ultimul an",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Solicitarea a expirat ({seconds}s)",
+ "networkError": "Eroare de rețea",
+ "formatted": "Formatat",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
+ "cacheMiss": "negăsit în cache",
+ "cacheHit": "găsit în cache",
+ "latency": "Latență",
"cost": "Cost",
- "results": "Results",
+ "results": "Rezultate",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Model de reordonare",
+ "positionDelta": "Modificarea poziției",
+ "emptyState": "Trimiteți o interogare de căutare pentru a vedea rezultatele",
"copy": "Copiere",
"resetToDefault": "Resetați la valoarea implicită",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Caută",
+ "tabScrape": "Extrage",
+ "tabCompare": "Compară",
+ "modalitiesGuide": "Ghidul modalităților",
+ "searchConceptTitle": "Căutare",
+ "searchConceptDesc": "Căutare = preia o listă de rezultate web (titlu, URL, fragment, scor de relevanță)",
+ "scrapeConceptTitle": "Extragere",
+ "scrapeConceptDesc": "Extragere = extrage conținutul complet al unui URL (markdown, text sau HTML)",
+ "compareConceptTitle": "Comparare",
+ "compareConceptDesc": "Comparare = rulează aceeași interogare în paralel la N furnizori pentru a compara latența, costul și suprapunerea rezultatelor",
+ "rerankConceptTitle": "Reordonare",
+ "rerankConceptDesc": "Reordonare = reordonează rezultatele prin LLM pentru a îmbunătăți relevanța pe baza interogării",
+ "autoConceptTitle": "Automat (cel mai ieftin)",
+ "autoConceptDesc": "Automat (cel mai ieftin) = selectează automat cel mai ieftin furnizor disponibil cu credențiale configurate",
+ "providerCatalogTitle": "Catalog de furnizori",
+ "kindSearch": "Căutare",
+ "kindFetch": "Preluare/Extragere",
+ "statusConfigured": "Configurat",
+ "statusMissing": "Fără credențiale",
+ "statusRateLimited": "Limită de solicitări atinsă",
+ "configureProvider": "Configurează în Furnizori",
+ "loadingProviders": "Se încarcă furnizorii…",
+ "failedToLoadProviders": "Furnizorii nu au putut fi încărcați",
+ "costPerQuery": "Cost/interogare",
+ "freeQuota": "Cotă gratuită/lună",
+ "scrapeUrl": "URL de extras",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "Adresa URL este obligatorie",
"scrapeUrlInvalid": "URL nevalid — trebuie să înceapă cu http:// sau https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
+ "scrapeExtract": "Extrage",
+ "scrapeExtracting": "Se extrage…",
+ "scrapeFullPage": "Pagina completă",
"scrapeFormat": "Format",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
"formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "scrapePreview": "Previzualizare",
+ "scrapeRaw": "Conținut brut",
+ "scrapeContentTruncated": "(trunchiat, vezi conținutul brut)",
+ "scrapeMetadata": "Metadate",
+ "scrapeProvider": "Furnizor",
+ "scrapeSize": "Dimensiune",
"scrapeEmptyState": "Introdu un URL pentru a-i extrage conținutul",
"scrapeProvidersAvailable": "Furnizori disponibili: Firecrawl, Jina Reader, Tavily.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Compară",
+ "compareRunning": "Se compară…",
+ "autoProvider": "Automat (cel mai ieftin)",
+ "configuredStatus": "Configurat",
+ "rateLimitedStatus": "Limitat de rata de solicitări",
+ "noCredential": "Fără credențiale",
+ "searchTypeLabel": "Tip",
+ "rerankModelLabel": "Model de rerangare",
+ "noneOption": "Niciunul",
+ "size": "Dimensiune",
"configurationPane": "Panou de configurare",
"configuration": "Configurare",
- "status": "Status",
+ "status": "Stare",
"compareProviderHint": "Selectează până la 4 furnizori în fila Compară pentru a-i compara în paralel.",
"history": "Istoric",
"historyHint": "Istoricul este disponibil în fila Căutare.",
@@ -2660,7 +2664,7 @@
"httpError": "Eroare {status}",
"failed": "Eșuat",
"requestFailed": "Solicitarea a eșuat",
- "embedding": "Embedding",
+ "embedding": "Încorporare",
"embeddingSample": "Salut, lume!",
"image": "Imagine",
"imageSample": "Un peisaj senin cu munți la apus",
@@ -2670,14 +2674,14 @@
"documentUrl": "URL document",
"fileTooLarge25Mb": "Fișier prea mare — max. 25 MB",
"selectAudioFirst": "Te rugăm să selectezi mai întâi un fișier audio.",
- "speechToText": "Speech to Text",
+ "speechToText": "Vorbire în text",
"chooseFile": "Alege fișierul…",
"audioFormats25Mb": "mp3, wav, m4a, ogg, flac — max. 25 MB",
- "textToSpeech": "Text to Speech",
+ "textToSpeech": "Text în vorbire",
"ttsSample": "Bună, acesta este un test text-to-speech.",
"video": "Video",
"videoSample": "Un time-lapse cu nori deasupra unui lanț muntos",
- "webFetch": "Web Fetch",
+ "webFetch": "Preluare web",
"webSearchSample": "Ce este gateway-ul OmniRoute AI?",
"noActiveProviderDescription": "Niciun furnizor de căutare activ. Configurează unul în Furnizori.",
"configureProviders": "Configurează furnizorii",
@@ -2704,7 +2708,7 @@
"classifierCompatLoadFailed": "Eroare la încărcarea setării",
"classifierCompatMode": {
"off": "Oprit",
- "auto": "Auto",
+ "auto": "Automat",
"always": "Întotdeauna"
},
"ccDiscoveryInfoButton": "Cum să activați descoperirea în Claude Code",
@@ -2737,9 +2741,9 @@
"effortMedium": "Mediu",
"effortHigh": "Ridicat",
"effortExtraHigh": "Foarte ridicat",
- "effortMax": "Max",
+ "effortMax": "Maxim",
"effortUltra": "Ultra",
- "wireApi": "Wire API",
+ "wireApi": "API direct",
"modelAliases": "Aliasuri model",
"addModel": "Adaugă model",
"routeModelPlaceholder": "Redirecționează {model} către...",
@@ -2778,7 +2782,7 @@
"cliRuntimeNotDetected": "Runtime CLI nu a fost detectat",
"binary": "Binar",
"configPath": "Calea de configurare",
- "configPathShort": "Config",
+ "configPathShort": "Configurare",
"failedCheckRuntimeStatus": "Nu s-a putut verifica starea de rulare.",
"copy": "Copiere",
"copied": "Copiat",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Adăugați",
"antigravityStep2Suffix": "în fișierul hosts ca 127.0.0.1.",
"antigravityStep3": "3. Deschideți Antigravity și cererile vor fi trimise prin proxy.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} trimite solicitări către endpointul furnizorului său. MITM le interceptează și le redirecționează către OmniRoute.",
+ "mitmStep1": "1. Porniți MITM pentru a direcționa solicitările prin OmniRoute.",
+ "mitmStep2Prefix": "2. Adăugați",
+ "mitmStep2Suffix": "în fișierul hosts ca 127.0.0.1.",
+ "mitmStep3": "3. Deschideți {toolName}, iar solicitările vor fi redirecționate prin proxy.",
"sudoPasswordRequiredTitle": "Parola Sudo este necesară",
"sudoPasswordHint": "Parola de administrator este necesară pentru a modifica setările de fișiere gazdă și proxy de sistem.",
"enterSudoPassword": "Introdu parola sudo",
@@ -2865,7 +2869,7 @@
"provider": "Furnizor",
"model": "Model",
"providers": "Furnizorii",
- "auth": "Auth",
+ "auth": "Autentificare",
"noApiKeysAvailable": "Nu există chei API disponibile",
"usingDefaultOmniroute": "Folosind implicit: sk_omniroute",
"updateConfig": "Actualizați configurația",
@@ -2904,7 +2908,7 @@
"continue": "Utilizați atunci când rulați Continue în IDE-uri și aveți nevoie de o configurație portabilă a furnizorului bazată pe JSON.",
"opencode": "Utilizați atunci când preferați rulările de agent nativ terminal și automatizarea prin script prin OpenCode.",
"kiro": "Utilizați atunci când integrați Kiro și controlați rutarea modelului central din OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Utilizați această opțiune când doriți un IDE axat pe AI, cu modelele Codeium/Windsurf direcționate prin OmniRoute.",
"antigravity": "Utilizați atunci când traficul Antigravity/Kiro trebuie interceptat prin MITM și direcționat către OmniRoute.",
"copilot": "Utilizați atunci când doriți UX în stilul de chat Copilot, în timp ce aplicați cheile și regulile de rutare OmniRoute.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2917,19 +2921,19 @@
"claude": "Codul antropic Claude CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "Agent de programare TUI xAI Grok Build cu suport pentru furnizori personalizați",
- "droid": "Factory Droid AI Assistant",
+ "droid": "Asistentul AI Factory Droid",
"openclaw": "Deschideți Asistentul Claw AI",
"cline": "CLI Cline AI Coding Assistant",
- "kilo": "Kilo Code AI Assistant CLI",
+ "kilo": "CLI-ul asistentului AI Kilo Code",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
"continue": "Continuați Asistentul AI",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "Agentul AI de programare OpenCode (Terminal)",
+ "kiro": "Amazon Kiro — IDE bazat pe AI",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "CLI-ul asistentului de programare Sourcegraph Amp",
+ "hermes": "Asistentul AI pentru terminal Hermes",
"hermes-agent": "Hermes Agent (de la Nousresearch) - AI avansat pentru terminal cu suport multi-model (delegare, viziune, compresie etc.)",
"custom": "Generator de configurații CLI sau SDK generic compatibil cu OpenAI",
"aider": "CLI de programare în pereche Aider AI cu un URL de bază compatibil cu OpenAI",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI pentru agentul de programare autonom Open Interpreter",
"omp": "Agent de programare pentru terminal Oh My Pi",
"letta": "Agent CLI Letta cu memorie persistentă și utilizare de instrumente",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — sistem RLM de programare cu auto-îmbunătățire și compatibilitate cu furnizori OpenAI",
"warp": "Terminal Warp AI cu suport pentru furnizori personalizați",
"agent-deck": "Orchestrator multi-agent Agent Deck",
"5dive": "5dive — flotă auto-găzduită de agenți de codare; un profil de autentificare îi îndreaptă pe toți către OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Instalați OpenCode",
+ "desc": "Instalați prin npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Cheie API"
},
"3": {
- "title": "Set Base URL",
+ "title": "Setați URL-ul de bază",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Selectați modelul"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Folosește varianta de raționament",
+ "desc": "Pentru modelele de raționament, rulează cu --variant high/low/max (exemplu de comandă mai jos)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Deschide setările Kiro",
+ "desc": "Accesează Setări → Furnizor AI"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "URL de bază",
+ "desc": "Lipește URL-ul endpointului OmniRoute"
},
"3": {
- "title": "API Key"
+ "title": "Cheie API"
},
"4": {
- "title": "Select Model"
+ "title": "Selectează modelul"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Deschide setările AI",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Adaugă un furnizor personalizat",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "URL de bază",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "Cheie API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Selectează modelul",
+ "desc": "Alege un model din lista derulantă"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "CLI personalizat",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Categorii de instrumente",
"visibleToolsCount": "{count} instrumente disponibile",
"customCliBuilderTitle": "Generator CLI compatibil cu OpenAI",
"customCliBuilderDescription": "Generați variabile de mediu și fragmente JSON pentru orice CLI sau SDK care acceptă o adresă URL de bază compatibilă cu OpenAI, o cheie API și un ID de model.",
@@ -3114,7 +3118,7 @@
"hermesRoleCompressionDesc": "Compresia și rezumarea prompturilor",
"hermesRoleWebExtract": "Extragere web",
"hermesRoleWebExtractDesc": "Extragerea conținutului paginilor web",
- "hermesRoleSkillsHub": "Skills Hub",
+ "hermesRoleSkillsHub": "Centru de competențe",
"hermesRoleSkillsHubDesc": "Raționament privind abilitățile și utilizarea instrumentelor",
"hermesRoleApproval": "Aprobare",
"hermesRoleApprovalDesc": "Decizii de siguranță și aprobare",
@@ -3134,9 +3138,9 @@
"hermesRoleProfileDescriberDesc": "Descrierea profilului utilizatorului",
"hermesRoleGoalJudge": "Judecător de Obiective",
"hermesRoleGoalJudgeDesc": "Evaluarea finalizării obiectivelor",
- "hermesRoleCurator": "Curator",
+ "hermesRoleCurator": "Administrator",
"hermesRoleCuratorDesc": "Curarea abilităților și a memoriei",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Monitorizare",
"hermesRoleMonitorDesc": "Monitorizare în fundal",
"hermesRoleBackgroundReview": "Revizuirea Fondului",
"hermesRoleBackgroundReviewDesc": "Revizuirea codului de fundal",
@@ -3215,7 +3219,7 @@
"addModelToCombo": "Adăugați modelul la Combo",
"routingStrategy": "Strategia de rutare",
"maxRetries": "Reîncercări maxime",
- "timeout": "Timeout (ms)",
+ "timeout": "Timp de expirare (ms)",
"healthcheck": "Controlul de sănătate",
"priority": "Prioritate",
"fallback": "Revenire",
@@ -3247,7 +3251,7 @@
"copyComboName": "Copiați numele combinației",
"enableCombo": "Activați combo",
"disableCombo": "Dezactivează combo",
- "testCombo": "Test combo",
+ "testCombo": "Testează combinația",
"duplicate": "Duplicat",
"proxyConfig": "Configurare proxy",
"nameRequired": "Numele este obligatoriu",
@@ -3256,18 +3260,18 @@
"priorityDesc": "Secvenţială alternativă: încearcă mai întâi modelul 1, apoi 2 etc.",
"weightedDesc": "Distribuie traficul în procente de greutate cu rezervă",
"roundRobinDesc": "Distribuție circulară: fiecare cerere trece la următorul model în rotație",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "Transfer de context",
+ "contextRelayDesc": "Păstrează continuitatea sesiunii prin rezumate de transfer atunci când conturile sunt schimbate",
"randomDesc": "Selectare aleatorie uniformă, apoi revenire la modelele rămase",
"leastUsedDesc": "Alege modelul cu cele mai puține solicitări, echilibrând sarcina în timp",
"costOptimizedDesc": "Rute către cel mai ieftin model mai întâi pe baza prețului",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
- "resetAware": "Reset-Aware RR",
+ "cacheOptimizedDesc": "Direcționează în mod consecvent fiecare prefix de prompt reutilizabil către același cont al furnizorului",
+ "resetAware": "RR adaptat la resetare",
"resetAwareDesc": "Echilibrează cota rămasă față de 5 ore și resetări săptămânale, apoi scoruri similare la round-robin",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Ponderat după cotă",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "Strict aleatoriu",
+ "strictRandomDesc": "Pachet amestecat — folosește fiecare model o dată înainte de a amesteca din nou",
"fusion": "Fuziune",
"fusionDesc": "Distribuie promptul în paralel către fiecare model din panel, apoi un model arbitru sintetizează un răspuns final",
"fusionJudgeModel": "Model arbitru",
@@ -3284,13 +3288,13 @@
"retryDelay": "Întârziere reîncercare (ms)",
"concurrencyPerModel": "Concurență / Model",
"queueTimeout": "Timp de așteptare la coadă (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "Prag de transfer",
+ "contextRelayHandoffThresholdHelp": "Când utilizarea cotei atinge acest prag, OmniRoute generează un rezumat structurat de transfer înainte ca resursele contului activ să fie epuizate.",
+ "contextRelayMaxMessages": "Numărul maxim de mesaje pentru rezumat",
+ "contextRelayMaxMessagesHelp": "Limitează volumul istoricului recent condensat în rezumatul de transfer.",
+ "contextRelaySummaryModel": "Model pentru rezumat",
+ "contextRelaySummaryModelHelp": "Model alternativ opțional, utilizat doar pentru generarea rezumatului de transfer. Lasă câmpul necompletat pentru a reutiliza modelul activ al combinației.",
+ "contextRelayProviderNote": "În prezent, Transferul de context generează transferuri pentru rotația conturilor Codex. Folosește-l împreună cu mai multe conturi ale aceluiași furnizor pentru cea mai bună continuitate.",
"advancedHint": "Lăsați gol pentru a utiliza setările implicite globale. Acestea înlocuiesc setările pentru fiecare furnizor.",
"failoverBeforeRetry": "Failover înainte de a reîncerca",
"maxSetRetries": "Reîncercări ale seturilor maxime",
@@ -3331,7 +3335,7 @@
"playgroundStrategy": "Strategie",
"playgroundEstimatedCost": "Cost est.",
"playgroundEstimatedLatency": "Latență est.",
- "playgroundFallback": "fallback",
+ "playgroundFallback": "rezervă",
"playgroundWeight": "pondere {value}",
"playgroundWarningCount": "Avertismente ({count})",
"playgroundErrorCount": "Erori ({count})",
@@ -3340,41 +3344,41 @@
"playgroundCreateFirst": "Creați una mai întâi",
"weighted": "ponderat",
"leastUsed": "Cel mai puțin folosit",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "costOpt": "Optimizat pentru cost",
+ "strategyGuideTitle": "Cum se utilizează această strategie",
+ "strategyGuideWhen": "Când se utilizează",
+ "strategyGuideAvoid": "Când trebuie evitată",
+ "strategyGuideExample": "Exemplu",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "Aveți un model preferat și doriți o alternativă doar în caz de eroare.",
+ "avoid": "Aveți nevoie de distribuirea solicitărilor între modele.",
+ "example": "Model principal pentru programare, cu o alternativă mai ieftină în caz de indisponibilitate."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "Aveți nevoie de o împărțire controlată a traficului între modele.",
+ "avoid": "Nu puteți menține ponderi exacte în timp.",
+ "example": "Lansare cu 80% model stabil + 20% model canary."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "Doriți o distribuție predictibilă și uniformă.",
+ "avoid": "Modelele diferă prea mult în ceea ce privește latența sau costul.",
+ "example": "Același model pe mai multe conturi pentru distribuirea capacității de procesare."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "Doriți o distribuție simplă, cu o configurare minimă.",
+ "avoid": "Aveți nevoie de garanții stricte privind traficul.",
+ "example": "Prototipare rapidă cu modele echivalente."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "Doriți o echilibrare adaptivă bazată pe cererea în timp real.",
+ "avoid": "Traficul este prea redus pentru a beneficia de echilibrarea utilizării.",
+ "example": "Sarcini mixte în care un model este adesea suprasolicitat."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "Reducerea costurilor este prioritatea dumneavoastră principală.",
+ "avoid": "Datele privind prețurile lipsesc sau sunt învechite.",
+ "example": "Sarcini de fundal sau în lot, pentru care se preferă un cost mai mic."
},
"reset-aware": {
"when": "Rutați prin mai multe conturi cu telemetrie de cotă și ferestre diferite de resetare.",
@@ -3382,19 +3386,19 @@
"example": "Preferați o resetare a contului săptămânală de 60% mâine, față de o resetare a contului de 80% mai târziu."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Utilizați când doriți o distribuție perfect uniformă — fiecare model este folosit o dată înainte de repetare.",
+ "avoid": "Evitați când modelele au niveluri diferite de calitate sau latență, iar ordinea contează.",
+ "example": "Exemplu: Mai multe conturi ale aceluiași model pentru distribuirea uniformă a utilizării."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Utilizați când doriți o selecție cu latență redusă folosind algoritmul Power-of-Two-Choices.",
+ "avoid": "Evitați pentru combinații mici, cu cel mult 2 modele — nu oferă niciun avantaj față de round-robin.",
+ "example": "Exemplu: Inferență cu debit ridicat pe 4 sau mai multe endpointuri de modele echivalente."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Utilizați când sesiunile lungi trebuie să continue după rotația conturilor, fără pierderea contextului de lucru.",
+ "avoid": "Evitați când schimbarea conturilor este rară sau când nu doriți solicitări suplimentare de rezumare.",
+ "example": "Exemplu: Sesiuni Codex care se rotesc între mai multe conturi pe măsură ce acestea se apropie de epuizarea cotei."
},
"fill-first": {
"when": "Utilizați atunci când doriți să epuizați complet cota unui furnizor înainte de a trece la următorul.",
@@ -3418,49 +3422,49 @@
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "Câte reîncercări se efectuează înainte ca o solicitare să fie declarată eșuată.",
+ "retryDelay": "Timpul inițial de așteptare între reîncercări. Valorile mai mari reduc presiunea cauzată de vârfurile de solicitări.",
+ "timeout": "Durata maximă a solicitării înainte de anulare.",
+ "healthcheck": "Exclude modelele/furnizorii nefuncționali din deciziile de rutare.",
+ "concurrencyPerModel": "Numărul maxim de solicitări simultane permise per model în modul round-robin.",
+ "queueTimeout": "Cât timp poate aștepta o solicitare în coadă înainte de expirare.",
"failoverBeforeRetry": "Când este activată, orice eroare în amonte declanșează transferarea imediată la următoarea țintă combinată, omitând toate reîncercările și adresele URL de rezervă.",
"maxSetRetries": "Numărul de ori pentru a reîncerca setul de ținte complet atunci când fiecare țintă eșuează. 0 = nicio reîncercare la nivel de set.",
"setRetryDelayMs": "Întârziere între încercările de reîncercare la nivel de set, dând timp pentru rezolvare problemelor tranzitorii.",
"disableSessionStickiness": "Rotiți la o conexiune diferită la fiecare solicitare în loc de a fixa o întreagă conversație la o singură conexiune prin hash-ul primului mesaj. Suprascrie valoarea implicită globală. Lăsați pe Inherit pentru a păstra hiturile de prompt-cache pentru chaturile cu mai multe runde."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "Șabloane rapide",
+ "templatesDescription": "Aplicați un profil inițial, apoi ajustați modelele și configurația.",
+ "templateApply": "Aplicați șablonul",
+ "templateHighAvailability": "Disponibilitate ridicată",
+ "templateHighAvailabilityDesc": "Rutare prioritară cu verificări de stare și reîncercări sigure.",
+ "templateCostSaver": "Economisire de costuri",
+ "templateCostSaverDesc": "Rutare optimizată pentru costuri, destinată sarcinilor de lucru axate pe buget.",
+ "templateBalanced": "Încărcare echilibrată",
+ "templateBalancedDesc": "Rutare către resursa cel mai puțin utilizată, pentru a distribui cererea în timp.",
+ "usageGuideHide": "Ascunde",
+ "usageGuideDontShowAgain": "Nu mai afișa",
+ "usageGuideShow": "Afișează ghidul",
+ "quickTestTitle": "Combinație pregătită pentru validare",
+ "quickTestDescription": "Rulează acum un test pentru a confirma comportamentul mecanismului de rezervă și al latenței.",
+ "testNow": "Testează acum",
+ "pricingCoverage": "Acoperirea tarifelor",
+ "pricingCoverageHint": "Optimizarea costurilor funcționează cel mai bine atunci când toate modelele din combinație au tarife disponibile.",
+ "pricingAvailable": "Tarife disponibile",
+ "pricingMissing": "Fără tarife",
+ "pricingAvailableShort": "cu tarif",
+ "pricingMissingShort": "fără tarif",
"fallbackOnlyOnQuotaExhaustion": "Avansați doar la epuizarea cotei",
"fallbackOnlyOnQuotaExhaustionShort": "fallback doar pentru cotă",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "warningRoundRobinSingleModel": "Rutarea round-robin este mai utilă cu cel puțin 2 modele.",
+ "warningCostOptimizedPartialPricing": "Doar {priced} din {total} modele au tarife disponibile. Rutarea poate ține cont doar parțial de costuri.",
+ "warningCostOptimizedNoPricing": "Nu au fost găsite date despre tarife pentru această combinație. Rutarea optimizată pentru costuri poate funcționa în mod neașteptat.",
+ "filterAll": "Toate",
+ "filterIntelligent": "Inteligentă",
+ "filterDeterministic": "Deterministă",
+ "filterEmptyTitle": "Nicio combinație nu corespunde acestui filtru de strategie.",
+ "filterEmptyIntelligentDescription": "Creează o combinație auto sau LKGP pentru a popula tabloul de bord pentru rutarea inteligentă.",
+ "filterEmptyDeterministicDescription": "Momentan există doar combinații auto și LKGP. Revino la Toate sau creează o combinație deterministă.",
"readinessTitle": "Sunteți gata să economisiți?",
"readinessDescription": "Examinați lista de verificare înainte de a crea sau a actualiza această combinație.",
"readinessCheckName": "Numele combinației este valid",
@@ -3474,12 +3478,12 @@
"saveBlockModels": "Adăugați cel puțin un model.",
"saveBlockWeighted": "Setați ponderi la 100% (actual: {total}%).",
"saveBlockPricing": "Adăugați prețuri pentru cel puțin un model sau alegeți o altă strategie.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "Configurație recomandată",
+ "applyRecommendations": "Aplică recomandările",
+ "recommendationsUpdated": "Recomandările au fost actualizate pentru {strategy}.",
+ "recommendationsApplied": "Recomandările au fost aplicate acestei combinații.",
+ "intelligentPanelTitle": "Tablou de bord pentru rutarea inteligentă",
+ "intelligentPanelDesc": "Scoruri în timp real și stare de funcționare pentru această combinație cu rutare automată.",
"configOnlyStatus": "Vizualizare configurație",
"configOnlyHint": "Acest panou afișează doar intrările de rutare. Starea live a circuit breaker-ului este disponibilă pe pagina Health.",
"routingInputs": "Intrări de rutare",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "Prefix de furnizor necunoscut.",
"builderDynamicAccountShort": "Cont dinamic",
"builderNeedValidName": "Definiți un nume valid de combinație înainte de a continua.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Prezentare generală a stării",
+ "normalOperation": "Funcționare normală",
+ "allProvidersHealthy": "Furnizorii raportează condiții optime de rutare.",
+ "incidentMode": "Mod de incident",
+ "highCircuitBreakerRate": "A fost detectată o rată ridicată de declanșare a disjunctorului.",
+ "activeModePack": "Pachet de moduri activ",
+ "modePackUpdated": "Pachetul de moduri a fost actualizat la {pack}.",
+ "modePackHint": "Comutați presetările pentru a influența motorul de rutare fără a reconstrui combinația.",
+ "providerScores": "Scorurile furnizorilor",
+ "allProvidersEvaluated": "Nu este configurat niciun grup de candidați. Toți furnizorii activi sunt evaluați în timpul rulării.",
+ "excludedProviders": "Furnizori excluși",
+ "excludedProvidersHint": "Furnizorii cu un întrerupător de circuit OPEN sunt excluși temporar din rutare.",
+ "noExcludedProviders": "În prezent, nu este exclus niciun furnizor.",
+ "cooldownMinutes": "Perioadă de așteptare: {minutes} min.",
+ "builderIntelligentTitle": "Configurarea rutării inteligente",
+ "builderIntelligentDesc": "Configurați motorul de evaluare multifactorială pentru această combinație de rutare automată.",
+ "candidatePoolLabel": "Grup de candidați",
+ "candidatePoolHint": "Selectați furnizorii pe care acest motor trebuie să îi evalueze. Lăsați necompletat pentru a utiliza toți furnizorii activi.",
+ "candidatePoolEmpty": "Nu există încă furnizori activi disponibili.",
+ "candidatePoolAllProviders": "Toți furnizorii",
+ "modePackLabel": "Pachet de moduri",
+ "routerStrategyLabel": "Strategia routerului",
+ "strategyRules": "Reguli (evaluare pe 6 factori)",
+ "explorationRateLabel": "Rata de explorare",
+ "explorationRateHint": "{percent}% dintre solicitări pot explora furnizori care nu sunt optimi.",
+ "budgetCapLabel": "Plafon bugetar (USD / solicitare)",
+ "budgetCapPlaceholder": "Fără limită",
+ "advancedWeightsTitle": "Avansat: ponderile evaluării",
"nestedComboFlatten": "Aplatizare combinații imbricate",
"nestedComboExecute": "Executare combinații imbricate ca ținte",
"effectiveRoutingShare": "Cotă de rutare efectivă (pondere ÷ total)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
+ "weightQuota": "Cotă",
+ "weightHealth": "Stare",
"weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightLatencyInv": "Latență",
+ "weightTaskFit": "Potrivire cu sarcina",
+ "weightStability": "Stabilitate",
+ "weightTierPriority": "Nivel",
+ "weightCacheAffinity": "Afinitate pentru rezultate din cache",
"weightSessionAvailability": "Disponibilitate Sesiune",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Configurarea rutării inteligente",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "Configurație de bază de siguranță",
+ "description": "Utilizați un model principal și mențineți lanțul de rezervă scurt și fiabil.",
+ "tip1": "Plasați pe primul loc modelul cel mai fiabil.",
+ "tip2": "Păstrați 1-2 modele de rezervă cu o calitate similară.",
+ "tip3": "Utilizați reîncercări sigure pentru a absorbi erorile temporare ale furnizorilor."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "Distribuție controlată a traficului",
+ "description": "Excelentă pentru lansări canary și migrarea treptată între modele.",
+ "tip1": "Începeți cu o distribuție prudentă, cum ar fi 90/10.",
+ "tip2": "Mențineți totalul la 100% și reechilibrați automat după modificări.",
+ "tip3": "Monitorizați rata de succes și latența înainte de a crește ponderea canary."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "Distribuție predictibilă a sarcinii",
+ "description": "Ideală când modelele sunt echivalente și aveți nevoie de o distribuție uniformă.",
+ "tip1": "Folosiți cel puțin 2 modele.",
+ "tip2": "Setați limite de concurență pentru a evita supraîncărcarea cauzată de vârfuri.",
+ "tip3": "Folosiți timpul de expirare al cozii pentru a eșua rapid în caz de saturație."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "Distribuție rapidă cu configurare minimă",
+ "description": "Folosiți această opțiune când aveți nevoie de o distribuție simplă, fără garanții stricte.",
+ "tip1": "Folosiți modele cu profiluri de latență similare.",
+ "tip2": "Mențineți reîncercările activate pentru a compensa ratările aleatorii.",
+ "tip3": "Preferați această opțiune pentru experimentare, nu pentru SLA-uri stricte."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "Echilibrare adaptivă",
+ "description": "Direcționează către modelele mai puțin utilizate pentru a reduce în timp punctele de supraîncărcare.",
+ "tip1": "Funcționează mai bine în condiții de trafic continuu.",
+ "tip2": "Combinați cu verificări de stare pentru o echilibrare mai sigură.",
+ "tip3": "Monitorizați utilizarea per model pentru a valida îmbunătățirile distribuției."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "Rutare axată pe buget",
+ "description": "Direcționează către modelele cu costuri mai mici atunci când sunt disponibile metadate privind prețurile.",
+ "tip1": "Asigurați acoperirea informațiilor despre prețuri pentru toate modelele selectate.",
+ "tip2": "Păstrați un model de rezervă de calitate pentru solicitările dificile.",
+ "tip3": "Folosiți această opțiune pentru sarcini de lot/fundal, unde costul este principalul KPI."
},
"reset-aware": {
"title": "Resetarea conștientă de rotație a contului",
@@ -3593,11 +3597,11 @@
"tip3": "Păstrați banda de legătură mică, astfel încât conturile echivalente să se rotească în continuare echitabil."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Distribuție prin amestecarea pachetului",
+ "description": "Fiecare model este utilizat exact o dată pe ciclu înainte de o nouă amestecare.",
+ "tip1": "Folosiți cel puțin 2 modele pentru o distribuție relevantă.",
+ "tip2": "Funcționează cel mai bine cu modele cu performanțe echivalente.",
+ "tip3": "Ideală pentru echilibrarea sarcinii între mai multe conturi API."
},
"fill-first": {
"description": "Furnizorul de evacuare cotele secvenţial înainte de a se retrage.",
@@ -3642,86 +3646,86 @@
"title": "Puterea a două alegeri"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "Pachet gratuit ($0)",
+ "templateFreeStackDesc": "Distribuție round-robin între toți furnizorii gratuiți: Kiro (Claude), Qoder (5 modele), Qwen (4 modele). Cost zero, programarea nu se oprește niciodată.",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "Modul LKGP",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "Noțiuni introductive despre combinații",
+ "wizardGuideDesc": "Creați combinații de modele pentru a direcționa inteligent traficul AI",
+ "wizardGuideHint": "sau faceți clic pe + Create Combo mai sus",
+ "createFirstCombo": "Creați prima combinație",
+ "wizardStep1Title": "Denumiți combinația",
+ "wizardStep1Desc": "Dați combinației un nume unic pentru a o identifica în regulile de rutare",
+ "wizardStep2Title": "Adăugați modele",
+ "wizardStep2Desc": "Selectați modelele AI și aranjați ordinea priorității lor de rezervă",
+ "wizardStep3Title": "Alegeți strategia",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "Revizuiți și salvați",
+ "wizardStep4Desc": "Revizuiți configurația și activați combinația",
+ "usageGuideInvokeTitle": "Cum se apelează această combinație",
+ "usageGuideInvokeDesc": "Trimite numele exact al combinației drept model, de ex. model: \"my-combo\" (sau combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto și auto/* reprezintă un router separat, fără configurare, care nu utilizează combinațiile tale (cu excepția cazului în care o combinație se numește literalmente auto).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto este un produs OpenRouter real, cu plată (Auto Best Available), nu un alias OmniRoute — exclude-l prin Setări → Rutare → Ascunde modelele cu plată.",
+ "emailVisibilityStateOn": "Activat",
+ "emailVisibilityStateOff": "Dezactivat",
+ "reorderHandle": "Trage pentru a reordona",
+ "failedReorder": "Reordonarea modelelor a eșuat",
+ "builderFlowTitle": "Fluxul de creare a combinației",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Elemente de bază",
+ "description": "Nume și șablon inițial"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Pași",
+ "description": "Selectarea furnizorului, modelului și contului"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Strategie",
+ "description": "Comportamentul rutării și setările avansate"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Rutare inteligentă",
+ "description": "Grupul de candidați pentru rutarea automată, presetările și evaluarea"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Revizuire",
+ "description": "Validarea finală înainte de salvare"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
+ "builderStageVisited": "Etapă finalizată",
+ "builderStageCurrent": "Etapa curentă",
+ "builderStagePending": "În așteptare",
+ "builderStageLocked": "Blocat — finalizează mai întâi etapa anterioară",
+ "builderTitle": "Creează o combinație",
+ "builderBrowseCatalog": "Răsfoiește catalogul",
+ "builderProvider": "Furnizor",
+ "builderLoadingProviders": "Se încarcă furnizorii...",
+ "builderSelectProvider": "Selectează furnizorul",
"builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderSelectModel": "Selectează modelul",
+ "builderProviderFirst": "Selectează mai întâi furnizorul",
+ "builderAccount": "Cont",
+ "builderPreview": "Previzualizare",
+ "builderAddStep": "Adaugă un pas",
"builderDuplicateExact": "Acest pas exact furnizor/model/cont este deja în combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "Referință la combinație",
+ "builderAddComboRef": "Adaugă o referință la combinație",
+ "builderComboRefStep": "Adaugă o referință la combinație",
+ "builderPinnedAccount": "Cont fixat",
+ "builderLegacyEntry": "Intrare veche",
+ "reviewName": "Nume",
+ "reviewStrategy": "Strategie",
+ "reviewSteps": "Pași",
+ "reviewAccounts": "Conturi",
+ "reviewProviders": "Furnizori",
+ "reviewComboRefs": "Referințe de combinații",
+ "reviewAdvanced": "Setări avansate",
+ "reviewAgentFlags": "Indicatori pentru agent",
+ "reviewSequence": "Secvență de modele",
+ "reviewNoSteps": "Niciun pas configurat",
"builderStagesDescription": "Finalizați fiecare etapă pentru a defini combinații, a crea pași, a selecta strategia de rutare și a revizui rezultatele.",
"builderStepsDescription": "Construiți fiecare pas combo în ordine: furnizor, model, apoi cont. Acest lucru permite reutilizarea aceluiași furnizor și model în conturi diferite.",
"selectProvider": "Selectați Furnizor",
@@ -3776,7 +3780,7 @@
"errorDescription": "Nu am putut încărca datele combo în acest moment. Verifică-ți conexiunea și încearcă din nou.",
"errorId": "ID eroare: {id}",
"errorRetry": "Încearcă din nou",
- "comboLabel": "Combo",
+ "comboLabel": "Combinație",
"duplicateAutoComboConfirm": "Creați o combinație statică din \"{name}\"?",
"duplicateAutoComboSnapshotMsg": "Acesta va captura furnizorii/modelurile conectate în prezent care se potrivesc cu acest șablon într-o combinație editabilă.",
"duplicateAutoComboFailedPrefix": "Duplicarea combinației automate a eșuat:",
@@ -3796,27 +3800,27 @@
"range7d": "7 zile",
"range30d": "30 de zile",
"range90d": "90 de zile",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 de zile",
+ "range365d": "365 de zile",
"rangeAll": "Tot timpul",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "Modele active",
+ "flatRateEstimateNotice": "Include estimări ale prețului per token pentru abonamentele cu tarif fix, nu costul facturat.",
+ "flatRateEstimateForecast": "Proiecția include estimări pentru tarife fixe.",
+ "selectedWindow": "Interval selectat",
+ "activeProviders": "Furnizori activi",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "Cheltuieli astăzi",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "Ponderea furnizorilor",
+ "topProviders": "Furnizori principali",
+ "costTrend": "Evoluția costurilor",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "Modele principale",
"requestsInWindow": "Requests In Window",
"tokenUsage": "Utilizarea jetoanelor",
"totalTokens": "Total de jetoane",
@@ -3851,36 +3855,36 @@
"exportCSV": "Exportați ca CSV",
"exportJSON": "Exportați ca JSON",
"legacyFreeLabel": "Legacy / Gratuit",
- "costExplorerTitle": "Cost Explorer",
- "costExplorerDescription": "Explore spend by provider, model, API key, account, or service tier.",
- "groupProvider": "Provider",
+ "costExplorerTitle": "Explorator de costuri",
+ "costExplorerDescription": "Explorați cheltuielile în funcție de furnizor, model, cheie API, cont sau nivel de serviciu.",
+ "groupProvider": "Furnizor",
"groupModel": "Model",
- "groupApiKey": "API Key",
- "groupAccount": "Account",
- "groupServiceTier": "Service Tier",
+ "groupApiKey": "Cheie API",
+ "groupAccount": "Cont",
+ "groupServiceTier": "Nivel de serviciu",
"serviceTierFast": "Rapid",
- "serviceTierFlex": "Flex",
+ "serviceTierFlex": "Flexibil",
"serviceTierStandard": "Standard",
"serviceTierBreakdownTitle": "Nivel de serviciu",
"serviceTierBreakdownSubtitle": "Partajare Rapid / Flex / Standard",
"serviceTierUsageSaved": "utilizare salvată",
"serviceTierCostSaved": "salvat",
"serviceTierCostShareSuffix": "din cost",
- "dimension": "Dimension",
- "share": "Share",
- "legacyOrFree": "Legacy / Free",
- "filterRows": "Filter rows…",
- "filterCostExplorerRows": "Filter Cost Explorer rows",
- "noMatchingCostRows": "No matching cost rows",
- "noMatchingCostRowsDescription": "Adjust the search text, grouping, or selected time window.",
- "showingCostRows": "Showing {shown} of {total} matching rows.",
- "showingTopCostRows": "Showing {shown} of {total} matching rows (top 50)."
+ "dimension": "Dimensiune",
+ "share": "Pondere",
+ "legacyOrFree": "Învechit / Gratuit",
+ "filterRows": "Filtrați rândurile…",
+ "filterCostExplorerRows": "Filtrați rândurile din Exploratorul de costuri",
+ "noMatchingCostRows": "Niciun rând de cost corespunzător",
+ "noMatchingCostRowsDescription": "Ajustați textul de căutare, gruparea sau intervalul de timp selectat.",
+ "showingCostRows": "Se afișează {shown} din {total} rânduri corespunzătoare.",
+ "showingTopCostRows": "Se afișează {shown} din {total} rânduri corespunzătoare (primele 50)."
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "title": "Endpoint API",
+ "subtitle": "Utilizează endpointul compatibil cu OpenAI pentru majoritatea SDK-urilor și instrumentelor.",
+ "testEndpoint": "Testează endpointul →",
+ "advancedProtocols": "Protocoale avansate",
"available": "Puncte finale disponibile",
"cloudProxy": "Cloud Proxy",
"disableConfirm": "Sigur doriți să dezactivați proxy-ul cloud?",
@@ -3896,7 +3900,7 @@
"disableCloud": "Dezactivați Cloud",
"enableCloud": "Activați Cloud",
"modelsAcrossEndpoints": "{models} modele în {endpoints} puncte finale",
- "loadingModels": "Loading available models...",
+ "loadingModels": "Se încarcă modelele disponibile...",
"chatDesc": "Chat în flux și non-stream cu toți furnizorii",
"embeddings": "Înglobări",
"embeddingsDesc": "Încorporare de text pentru conductele de căutare și RAG",
@@ -3906,24 +3910,24 @@
"rerankDesc": "Reglați documentele în funcție de relevanța pentru o interogare",
"audioTranscription": "Transcriere audio",
"audioTranscriptionDesc": "Transcrie fișiere audio în text (Șoaptă)",
- "textToSpeech": "Text to Speech",
+ "textToSpeech": "Sinteză vocală",
"textToSpeechDesc": "Transformați textul în vorbire cu sunet natural",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Generare de muzică",
+ "musicDesc": "Generează muzică și piste audio prin ComfyUI (Stable Audio, MusicGen)",
"moderations": "Moderații",
"moderationsDesc": "Moderarea conținutului și clasificarea siguranței",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
+ "responsesDesc": "API-ul OpenAI Responses pentru Codex și fluxuri de lucru agentice avansate",
+ "listModelsDesc": "Listează toate modelele disponibile de la toți furnizorii conectați",
+ "settingsApiDesc": "Citește și modifică configurația OmniRoute prin API",
+ "settingsApi": "API pentru setări",
"categoryCore": "API-uri de Bază",
"categoryMedia": "Media și Multi-Modal",
- "categorySearch": "Search & Discovery",
+ "categorySearch": "Căutare și descoperire",
"categoryUtility": "Utilități și Gestionare",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "Căutare pe web",
+ "webSearchDesc": "Căutare unificată pe web prin mai mulți furnizori, cu comutare automată în caz de eroare și stocare în cache",
+ "searchProvider": "Furnizor de căutare",
+ "searchProviderDesc": "Acest furnizor este utilizat pentru căutarea pe web prin POST /v1/search. Nu este necesară configurarea unui model — furnizorii de căutare sunt gata de utilizare după conectarea unei chei API.",
"enableCloudTitle": "Activați Cloud Proxy",
"whatYouGet": "Ce vei primi",
"cloudBenefitAccess": "Accesați-vă API-ul de oriunde în lume",
@@ -3959,99 +3963,99 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Activează tunelul",
+ "cloudflaredInstallAndEnable": "Instalează și activează",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Rulează",
+ "cloudflaredStarting": "Se pornește",
+ "cloudflaredStoppedState": "Oprit",
+ "cloudflaredNotInstalled": "Neinstalat",
+ "cloudflaredUnsupported": "Neacceptat",
+ "cloudflaredError": "Eroare",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Ultima eroare: {error}",
"providerModelsTitle": "{provider} — Modele",
"noModelsForProvider": "Nu există modele disponibile pentru acest furnizor.",
"chat": "Chat",
"embedding": "Încorporarea",
"image": "Imagine",
"custom": "personalizat",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
- "tabApis": "APIs",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "modelsCount": "{count, plural, one {# model} other {# modele}}",
+ "sectionTitle": "Suprafață de integrare",
+ "sectionDescription": "API-uri compatibile cu OpenAI și endpointuri pentru protocoale operaționale",
+ "tabApis": "API-uri",
+ "tabProtocols": "Protocoale",
+ "tabsAria": "Secțiuni de endpointuri",
+ "protocolsTitle": "Protocoale",
+ "protocolsDescription": "MCP și A2A sunt endpointuri de prim rang, cu observabilitate și controale dedicate.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "Model Context Protocol prin stdio",
+ "a2aCardTitle": "Server A2A",
+ "a2aCardDescription": "Endpoint JSON-RPC Agent2Agent",
+ "protocolToolsLabel": "Instrumente",
+ "protocolTasksLabel": "Sarcini",
+ "protocolActiveStreamsLabel": "Fluxuri active",
+ "protocolLastActivity": "Ultima activitate",
+ "quickStart": "Pornire rapidă",
+ "openMcpDashboard": "Deschide gestionarea MCP",
+ "openA2aDashboard": "Deschide gestionarea A2A",
+ "mcpQuickStartTitle": "Pornire rapidă MCP",
+ "mcpQuickStartStep1": "Rulează serverul MCP prin `omniroute --mcp`.",
+ "mcpQuickStartStep2": "Configurează clientul MCP să se conecteze prin transportul stdio.",
+ "mcpQuickStartStep3": "Invocă instrumente precum `omniroute_get_health` și `omniroute_list_combos`.",
+ "a2aQuickStartTitle": "Pornire rapidă A2A",
+ "a2aQuickStartStep1": "Descoperă fișa agentului la `/.well-known/agent.json`.",
+ "a2aQuickStartStep2": "Trimite cereri JSON-RPC către `POST /a2a` folosind `message/send` sau `message/stream`.",
+ "a2aQuickStartStep3": "Urmărește și controlează sarcinile folosind `tasks/get` și `tasks/cancel`.",
+ "completionsLegacy": "Completări (versiune veche)",
+ "completionsLegacyDesc": "Completări de text OpenAI din versiunea veche — acceptă atât un șir de prompt, cât și formatul matricei de mesaje",
"messagesApi": "Mesaje",
"messagesApiDesc": "Format API Native Anthropic Messages pentru furnizorii compatibili cu Claude",
"imageEdits": "Editări de imagine",
"imageEditsDesc": "Editați și modificați imaginile existente cu AI (inpainting, outpainting, variații)",
- "batchApi": "Batch API",
+ "batchApi": "API pentru procesare în lot",
"batchApiDesc": "Procesați loturi mari de solicitări în mod asincron (compatibil cu OpenAI)",
"filesApi": "Fișiere API",
"filesApiDesc": "Încărcați și gestionați fișiere pentru procesarea în lot",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Generare video",
+ "videoDesc": "Generează videoclipuri folosind modele AI precum ComfyUI și Stable Video Diffusion.",
+ "tailscaleRequestFailed": "Nu s-a putut încărca starea Tailscale",
+ "tailscaleEnableFailed": "Nu s-a putut activa Tailscale Funnel",
+ "tailscaleWaitingForLogin": "Finalizează autentificarea Tailscale în fila de browser deschisă. OmniRoute va reîncerca automat.",
+ "tailscaleLoginTimedOut": "Timpul de așteptare pentru autentificarea Tailscale a expirat",
+ "tailscaleWaitingForFunnel": "Activează Funnel pentru acest dispozitiv în fila de browser deschisă. OmniRoute va continua să verifice.",
+ "tailscaleFunnelTimedOut": "Timpul de așteptare pentru activarea Tailscale Funnel a expirat",
+ "tailscaleStarted": "Tailscale Funnel a fost activat",
+ "tailscaleDisableFailed": "Nu s-a putut dezactiva Tailscale Funnel",
+ "tailscaleStopped": "Tailscale Funnel a fost dezactivat",
+ "tailscaleInstallFailed": "Nu s-a putut instala Tailscale",
+ "tailscaleInstallProgress": "Se procesează...",
+ "tailscaleInstalled": "Tailscale a fost instalat cu succes",
+ "tailscaleRunning": "Rulează",
+ "tailscaleNeedsLogin": "Necesită autentificare",
+ "tailscaleStoppedState": "Oprit",
+ "tailscaleNotInstalled": "Neinstalat",
+ "tailscaleUnsupported": "Neacceptat",
+ "tailscaleError": "Eroare",
+ "tailscaleDisable": "Oprește Funnel",
+ "tailscaleInstallAndEnable": "Instalează și activează",
+ "tailscaleLoginAndEnable": "Autentifică-te și activează",
+ "tailscaleEnable": "Activează Funnel",
+ "tailscaleUrlNotice": "Folosește adresa ta Tailscale .ts.net. La prima utilizare pot fi necesare autentificarea și aprobarea Funnel.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "Autentifică acest dispozitiv cu Tailscale, apoi activează Funnel.",
+ "tailscaleBinaryPath": "Fișier binar: {path}",
+ "tailscaleLastError": "Ultima eroare: {error}",
+ "tailscaleInstallTitle": "Instalează Tailscale",
+ "tailscaleInstallIntro": "Instalează Tailscale pe acest dispozitiv și pregătește OmniRoute pentru activarea Funnel.",
+ "tailscaleInstallPasswordHint": "Pe macOS și Linux, sudo poate fi necesar pentru instalarea pachetului și pornirea serviciului daemon.",
+ "tailscaleSudoPlaceholder": "Parolă sudo opțională",
+ "tailscaleInstalling": "Se instalează",
"tailscaleSudoLabel": "Parola Sudo (necesară pe macOS/Linux)",
"ngrokTitle": "Tunelul ngrok",
"ngrokRunning": "Alergarea",
@@ -4123,26 +4127,26 @@
"vscodeAliasDescriptionError": "Se afișează URL-uri substitut deoarece cheile CLI nu au putut fi încărcate în această sesiune.",
"vscodeAliasDescriptionLoading": "Se încarcă cheile CLI. URL-urile substitut sunt afișate până când o cheie este disponibilă.",
"vscodeAliasDescriptionPlaceholder": "Se afișează URL-uri substitut. Creați sau activați o cheie API în CLI Tools pentru a înlocui TOKEN.",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "Instrumente CLI",
"vscodeAliasBaseLabel": "Bază VS Code",
"vscodeAliasModelsLabel": "Modele VS Code",
"vscodeAliasChatLabel": "Chat VS Code",
"localServer": "Server local",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "OmniRoute Cloud",
"copyUrl": "Copiați adresa URL",
"badgeLoopbackTooltip": "Acest endpoint este accesibil doar local (doar loopback)",
"badgeAlwaysProtectedTooltip": "Acest endpoint este întotdeauna protejat și necesită autorizare",
"badgeInternalTooltip": "Acesta este un endpoint intern de sistem",
"tierAll": "Toate",
"tierAuth": "Autentificat",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Buclă locală",
"tierAlwaysProtected": "Întotdeauna protejat",
"tierPublic": "Public",
"hideInternal": "Ascunde interne",
"showInternal": "Afișează interne",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Prompt de sistem personalizat",
+ "customSystemPromptDescription": "Inserează un prompt de sistem personalizat în fiecare solicitare către model",
+ "customSystemPromptPlaceholder": "de ex., Răspunde întotdeauna ca un pirat...",
"obsidianEnterToken": "Vă rugăm să introduceți un token API Obsidian",
"obsidianConnectFailed": "Conectarea a eșuat",
"obsidianConnectionFailed": "Conexiune eșuată",
@@ -4191,21 +4195,21 @@
"notionTokenConfigured": "Token configurat. Instrumentele Notion sunt disponibile prin MCP."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "Proxy pentru endpointuri",
+ "tabApiEndpoints": "Endpointuri API",
+ "apiEndpointsTitle": "Endpointuri API",
+ "apiEndpointsDescription": "Endpointuri API backend care pot fi utilizate de alte aplicații și servicii. Această secțiune va afișa toate API-urile REST disponibile, împreună cu documentația și funcționalitățile de testare.",
+ "comingSoon": "În curând",
+ "plannedFeatures": "Funcționalități planificate",
+ "featureRestApi": "Catalog de endpointuri API REST cu documentație interactivă",
+ "featureWebhooks": "Configurarea webhookurilor și abonarea la evenimente",
+ "featureSwagger": "Generarea automată a specificațiilor OpenAPI / Swagger",
+ "featureAuth": "Gestionarea cheilor API și a domeniilor OAuth pentru fiecare endpoint"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
+ "loading": "Se încarcă panoul de control MCP...",
+ "activate": "activează",
+ "deactivate": "dezactivează",
"confirmSwitchCombo": "Confirmați {action} combo „{combo}”?",
"switchComboFailed": "Nu s-a putut comuta starea combo.",
"switchComboSuccess": "Combo „{combo}” a fost actualizat.",
@@ -4233,127 +4237,127 @@
"mcpStep2": "Configurați clientul MCP pentru a se conecta prin transportul stdio.",
"mcpStep3": "Apelați instrumente precum {code1} și {code2}.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
+ "sessionUptime": "Durata sesiunii",
+ "lastHeartbeat": "Ultimul semnal de activitate",
+ "activity24h": "Activitate (24 h)",
+ "totalCalls": "Total apeluri",
+ "successRate": "Rată de succes",
+ "avgLatency": "Latență medie",
+ "topTools": "Instrumente principale",
+ "noToolCalls24h": "Niciun apel de instrument în ultimele 24 de ore.",
+ "runtimeDetails": "Detalii despre mediul de execuție",
"transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "scopesEnforced": "Domenii de acces impuse",
+ "yes": "da",
+ "no": "nu",
+ "lastCall": "Ultimul apel",
+ "heartbeatPath": "Calea semnalului de activitate",
+ "operationalControls": "Controale operaționale",
+ "switchCombo": "Comută combinația",
+ "inactive": "inactivă",
+ "active": "activă",
+ "activateCombo": "Activează combinația",
+ "deactivateCombo": "Dezactivează combinația",
+ "applyResilienceProfile": "Aplică profilul de reziliență",
+ "profileAggressive": "agresiv",
+ "profileBalanced": "echilibrat",
+ "profileConservative": "conservator",
+ "applyProfile": "Aplică profilul",
+ "resetCircuitBreakers": "Resetează întrerupătoarele de circuit",
+ "resetCircuitBreakersHelp": "Șterge starea curentă a întrerupătoarelor și contoarele de erori pentru furnizori.",
+ "resetAllBreakers": "Resetează toate întrerupătoarele",
+ "toolsAndScopes": "Instrumente și domenii de acces",
+ "tableTool": "Instrument",
+ "tableScopes": "Domenii de acces",
+ "tablePhase": "Fază",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "Jurnal de audit",
+ "auditSummary": "Apeluri: {total} | pagina {page} din {totalPages}",
+ "allTools": "Toate instrumentele",
+ "allResults": "Toate rezultatele",
+ "success": "Succes",
+ "failure": "Eșec",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "Se încarcă înregistrările de audit...",
+ "noAuditEntriesForFilters": "Nu s-au găsit înregistrări de audit pentru filtrele actuale.",
+ "tableTimestamp": "Marcaj temporal",
+ "tableDuration": "Durată",
+ "tableResult": "Rezultat",
+ "tableApiKey": "Cheie API",
+ "failed": "eșuat",
+ "previous": "Anterior",
+ "next": "Următor",
+ "apiKeyId": "ID cheie API",
+ "offset": "Decalaj",
+ "limit": "Limită",
+ "tool": "Instrument"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "Se încarcă tabloul de bord A2A...",
+ "confirmCancelTask": "Anulați sarcina {taskId}?",
+ "cancelTaskFailed": "Anularea sarcinii a eșuat.",
+ "cancelTaskSuccess": "Sarcina {taskId} a fost anulată.",
+ "smokeSendFailed": "Testul rapid message/send a eșuat.",
+ "smokeSendSuccessWithTask": "message/send reușit (sarcina {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "Testul rapid message/stream a eșuat.",
+ "smokeStreamSuccessWithTask": "message/stream reușit (sarcina {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream s-a încheiat fără un ID de sarcină.",
+ "health": "Stare",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "Total sarcini",
+ "activeStreams": "Fluxuri active",
+ "lastTask": "Ultima sarcină",
+ "taskStateOverview": "Prezentare generală a stării sarcinilor",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "trimisă",
+ "working": "în lucru",
+ "completed": "finalizată",
+ "failed": "eșuată",
+ "cancelled": "anulată"
},
- "agentCard": "Agent card",
+ "agentCard": "Fișa agentului",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "Versiune",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "Capabilități",
+ "agentCardNotAvailable": "Fișa agentului nu este disponibilă.",
+ "quickValidation": "Validare rapidă",
+ "quickValidationDescription": "Execută apeluri de testare rapidă prin endpointul activ `/a2a`.",
+ "runMessageSend": "Rulează message/send",
+ "runMessageStream": "Rulează message/stream",
+ "taskManagement": "Gestionarea sarcinilor",
+ "taskSummary": "{total} sarcini | pagina {page} din {totalPages}",
+ "allStates": "toate",
+ "allSkills": "toate abilitățile",
+ "loadingTasks": "Se încarcă sarcinile...",
+ "noTasksForFilters": "Nu s-au găsit sarcini pentru filtrele actuale.",
+ "tableTask": "Sarcină",
+ "tableSkill": "Abilitate",
+ "tableState": "Stare",
+ "tableUpdated": "Actualizat",
+ "tableActions": "Acțiuni",
+ "view": "Vizualizează",
+ "cancel": "Anulează",
+ "previous": "Anterior",
+ "next": "Următor",
+ "taskDetail": "Detalii sarcină",
+ "close": "Închide",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "Evenimente",
+ "artifacts": "Artefacte",
+ "tablePhase": "Faza tabelului",
+ "offset": "Decalaj",
+ "limit": "Limită",
+ "skill": "Abilitate",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "mesaj/trimitere",
"rpcMethodStream": "mesaj/flux",
"rpcMethodGet": "sarcini/obține",
"rpcMethodCancel": "sarcini/anulare",
"serviceLabel": "A2A",
- "online": "Online",
- "offline": "Offline",
+ "online": "Conectat",
+ "offline": "Deconectat",
"disableLabel": "Dezactivare {label}",
"enableLabel": "Activare {label}",
"a2aDisabledTitle": "A2A este dezactivat",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Acțiuni",
+ "addMemory": "Adaugă memorie",
+ "allTypes": "Toate tipurile",
"cancel": "Anulează",
"checkHealth": "Verificați starea de sănătate",
"checkingHealth": "Se verifică…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "Cum funcționează",
"howWorksContent": "1. Extragere automată: la sfârșitul fiecărui răspuns, faptele și episoadele sunt detectate și salvate automat.\n2. Recuperare: înainte de fiecare răspuns, cele mai relevante memorii sunt căutate prin FTS5 (exact), vectorial (semantic) sau RRF hibrid.\n3. Injectare: memoriile relevante sunt injectate în contextul asistentului pentru a îmbunătăți calitatea răspunsului.\n4. Gestionare: utilizați această pagină pentru a vizualiza, edita, exporta și compacta memoriile vechi."
},
- "content": "Content",
+ "content": "Conținut",
"contentPlaceholder": "Valoare sau conținut JSON de reținut",
- "created": "Created",
- "delete": "Delete",
+ "created": "Creat",
+ "delete": "Șterge",
"deleteConfirmDesc": "Această acțiune nu poate fi anulată. Memoria va fi eliminată definitiv.",
"deleteConfirmTitle": "Ștergeți memoria?",
- "description": "View and manage stored memory entries",
+ "description": "Vizualizează și gestionează intrările de memorie stocate",
"editMemory": "Editați memoria",
"editModal": {
"title": "Editare memorie",
@@ -4397,7 +4401,7 @@
"autoDesc": "Utilizează cea mai bună opțiune disponibilă: furnizor la distanță > static > transformers",
"remoteLabel": "Furnizor la distanță",
"remoteDesc": "Utilizează embedding prin API-ul furnizorului (necesită cheie API)",
- "staticLabel": "Static local (potion)",
+ "staticLabel": "Local static (potion)",
"staticDesc": "Embedding local fără WASM sau dependențe externe",
"transformersLabel": "Transformers.js (MiniLM)",
"transformersDesc": "Embedding local prin @huggingface/transformers (~400MB RAM)",
@@ -4429,7 +4433,7 @@
"reindexFailed": "Pornirea reindexării a eșuat",
"keywordLabel": "Cuvinte cheie (FTS5)",
"keywordReason": "Căutarea după cuvinte cheie este întotdeauna disponibilă",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Încorporare",
"vectorStoreLabel": "Stocare vectorială",
"qdrantLabel": "Qdrant",
"rerankLabel": "Reclasificare",
@@ -4440,20 +4444,20 @@
"configureCta": "Configurează",
"vectorStoreInstallHint": "Pentru a activa căutarea vectorială: npm install sqlite-vec (necesită Node.js nativ, nu WASM), apoi reporniți."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Episodică",
+ "export": "Exportă",
+ "factual": "Factuală",
"healthUnknown": "Sănătate necunoscută",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "Rată de succes",
+ "import": "Importă",
"importError": "Importul fișierului a eșuat",
"importResult": "{imported} importate, {skipped} omise",
- "key": "Key",
+ "key": "Cheie",
"keyPlaceholder": "de ex. temă.preferințe.utilizator",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Amintiri",
"next": "În continuare",
- "noMemories": "No memories found",
+ "noMemories": "Nu s-au găsit amintiri",
"pageInfo": "Pagina {page} din {totalPages} ({total} total)",
"pipelineError": "Eroare de conductă",
"pipelineOk": "Conductă OK ({latencyMs}ms)",
@@ -4463,25 +4467,25 @@
"queryLabel": "Interogare de test",
"queryPlaceholder": "Introduceți o întrebare sau o frază de test...",
"strategyLabel": "Strategie",
- "strategyExact": "Exact (FTS5)",
+ "strategyExact": "Exactă (FTS5)",
"strategySemantic": "Semantic (vectorial)",
"strategyHybrid": "Hibrid (RRF)",
"budgetLabel": "Buget (tokenuri)",
"simulate": "Simulează",
"resultsTitle": "{count} rezultat(e)",
"resolutionTitle": "Rezoluție căutare",
- "resolutionEmbedding": "Embedding",
+ "resolutionEmbedding": "Încorporare",
"resolutionStore": "Stocare vectorială",
"resolutionStrategy": "Strategie utilizată",
"rerankApplied": "Reclasificare aplicată",
- "fallback": "Fallback",
+ "fallback": "Alternativă",
"noResults": "Nu s-au găsit memorii pentru această interogare.",
"tokensUsed": "tokenuri utilizate",
"none": "niciunul",
"errorFetch": "Preluarea previzualizării a eșuat"
},
"previous": "Anterior",
- "procedural": "Procedural",
+ "procedural": "Procedurală",
"qdrant": {
"title": "Qdrant (Stocare vectorială Nivel 2)",
"description": "Integrare opțională Qdrant pentru căutare semantică scalabilă",
@@ -4530,8 +4534,8 @@
},
"save": "Salvați",
"saving": "Se salvează...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Caută în amintiri...",
+ "semantic": "Semantică",
"summarize": {
"title": "Compactează memoriile vechi",
"noCandidates": "Nicio memorie eligibilă pentru compactare (criteriu: vechime >30 de zile).",
@@ -4540,11 +4544,11 @@
},
"tabs": {
"memories": "Memorii",
- "playground": "Playground",
+ "playground": "Spațiu de testare",
"engine": "Motor"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Gestionarea amintirilor",
+ "tokensUsed": "Tokenuri utilizate",
"tooltip": {
"totalEntries": "Total memorii stocate pentru această cheie API",
"tokensUsed": "Total estimat de tokenuri ocupate de memoriile active",
@@ -4554,18 +4558,18 @@
"procedural": "Proceduri, fluxuri de lucru și instrucțiuni pe care asistentul ar trebui să le urmeze",
"semantic": "Concepte, preferințe și cunoștințe din domeniu"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "Total intrări",
+ "type": "Tip",
"memoryEnabled": "Memorie activată"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Abilități",
+ "description": "Gestionează și monitorizează abilitățile AI",
+ "skillsTab": "Abilități",
+ "executionsTab": "Execuții",
"selectSkillToInspect": "Selectați o abilitate din stânga pentru a o inspecta.",
"schemaTab": "Schemă",
- "handlerTab": "Handler",
+ "handlerTab": "Modul de procesare",
"inputSchema": "Schemă de intrare",
"outputSchema": "Schemă de ieșire",
"handlerCode": "Cod handler",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "Rulare test (substituent)",
"setModeAria": "Setare mod {mode}",
"uninstallSkill": "Dezinstalare abilitate",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "Mediu izolat",
+ "loading": "Se încarcă abilitățile...",
+ "noSkills": "Nu s-au găsit abilități",
+ "noExecutions": "Nu s-au găsit execuții",
+ "enabled": "Activat",
+ "disabled": "Dezactivat",
"delete": "Ștergere",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "Versiune",
+ "tableDescription": "Descriere",
+ "skill": "Abilitate",
+ "status": "Stare",
+ "duration": "Durată",
+ "time": "Oră",
+ "sandboxConfig": "Configurarea mediului izolat",
+ "cpuLimit": "Limită CPU",
+ "cpuLimitDesc": "Durata maximă de execuție per abilitate",
+ "memoryLimit": "Limită de memorie",
+ "memoryLimitDesc": "Alocarea maximă de memorie",
+ "timeout": "Timp de expirare",
+ "timeoutDesc": "Timpul maxim de așteptare pentru răspuns",
+ "networkAccess": "Acces la rețea",
+ "networkAccessDesc": "Permite solicitările de rețea către exterior",
+ "mode": "Mod",
"q": "Q",
"filterSkillsPlaceholder": "Filtrați abilitățile după nume, descriere sau etichetă",
"allModes": "Toate modurile",
@@ -4603,12 +4607,12 @@
"enabledSkills": "Activat",
"totalExecutions": "Execuții",
"successRate": "Rată de succes",
- "marketplaceTab": "Marketplace",
+ "marketplaceTab": "Piață",
"applyFilters": "Aplicare filtre",
"popularDefaultsLabel": "Populare în mod implicit pentru furnizorul selectat:",
"onMode": "PORNIT",
"offMode": "OPRIT",
- "autoMode": "AUTO",
+ "autoMode": "AUTOMAT",
"installSkillButton": "Instalare abilitate",
"installSkillModalTitle": "Instalare abilitate",
"installJsonPlaceholder": "Lipiți JSON-ul manifestului abilității aici...",
@@ -4653,7 +4657,7 @@
"lastCheck": "Ultima verificare",
"providerHealth": "Sanatatea furnizorului",
"systemMetrics": "Metrici de sistem",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Starea tokenurilor",
"refreshAll": "Reîmprospătați toate",
"checkNow": "Verificați acum",
"loadingHealth": "Se încarcă datele de sănătate...",
@@ -4661,13 +4665,13 @@
"retry": "Reîncercați",
"allOperational": "Toate sistemele sunt operaționale",
"issuesDetected": "Au fost detectate probleme de sistem",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute este gata",
+ "healthVerdictActionRequired": "Este necesară o acțiune pentru restabilirea funcționării complete",
+ "healthVerdictCoolingDown": "Perioadă de așteptare după modificările recente",
+ "healthSubtitle": "Verificarea stării sistemului",
+ "advancedDiagnosticsTitle": "Diagnosticare avansată",
+ "hide": "Ascunde",
+ "show": "Afișează",
"updatedAt": "Actualizat {time}",
"latency": "Latența",
"latencyP50": "p50",
@@ -4677,10 +4681,10 @@
"notAvailable": "—",
"totalRequests": "Total cereri",
"noDataYet": "Nu există date încă",
- "promptCache": "Prompt Cache",
+ "promptCache": "Cache pentru prompturi",
"entries": "Intrări",
"hitRate": "Rata de lovituri",
- "hitsMisses": "Hits / Misses",
+ "hitsMisses": "Reușite / Ratări",
"signatureCache": "Cache pentru semnături",
"signatureDefaults": "Valori implicite",
"signatureTool": "Instrument",
@@ -4696,7 +4700,7 @@
"configuredProvidersHint": "Furnizorii cu acreditări salvate în /dashboard/providers, indiferent de starea de rulare.",
"activeProviders": "{count} active",
"activeProvidersHint": "Furnizorii configurați activați în prezent pentru solicitările de rutare.",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "{count} monitorizate",
"monitoredProvidersHint": "Furnizorii sunt urmăriți în prezent de monitoarele de sănătate ale întreruptoarelor.",
"healthyCount": "{count} sănătos",
"nodeVersion": "Nodul {version}",
@@ -4717,11 +4721,11 @@
"resetting": "Se resetează...",
"resetAll": "Resetați toate",
"until": "Până la {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "Epuizate",
+ "learnedFromHeaders": "Învățat din antete",
+ "remainingOfLimit": "{remaining}/{limit} rămase",
+ "throttleStatus": "Limitare: {value}",
+ "lastHeaderUpdate": "Actualizarea antetului: {age}",
"databaseHealth": "Sănătatea bazei de date",
"databaseHealthDescription": "Diagnosticați și reparați rândurile învechite de cotă/domeniu și referințele combo deteriorate.",
"status": "Stare",
@@ -4769,7 +4773,7 @@
"inactive": "Inactiv",
"noConnectionId": "fără id conexiune",
"accountModelSummary": "{connectionId} · {count} modele",
- "cooldown": "cooldown",
+ "cooldown": "perioadă de așteptare",
"durationRemaining": "{duration} rămase",
"noSyncedModelsOrTraffic": "Nu există încă modele sincronizate sau trafic recent.",
"providerRowSummary": "{active}/{total} conturi active · {requests} req · {successRate} succes · {latency} medie",
@@ -4798,7 +4802,7 @@
"partialData": "Telemetria este parțial disponibilă: {error}"
},
"mitm": {
- "title": "MITM Proxy",
+ "title": "Proxy MITM",
"description": "Proxy transparent pentru interceptarea și rutarea cererilor clienților.",
"enable": "Activați MITM Proxy",
"enableDesc": "Porniți sau opriți procesul local de interceptare și anularea DNS.",
@@ -4884,28 +4888,28 @@
"previous": "Anterior",
"next": "În continuare",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "Vezi detaliile",
+ "eventMetadata": "Metadatele evenimentului",
+ "eventPayload": "Conținutul evenimentului",
+ "requestId": "ID-ul cererii",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
+ "offset": "Decalaj",
+ "limit": "Limită",
+ "status": "Stare",
+ "resourceType": "Tipul resursei",
+ "totalEntries": "Total intrări",
+ "tab": "Filă",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "Închide",
+ "runningRequests": "Cereri active",
+ "runningRequestsDesc": "Vizualizare în timp real a cererilor upstream care rulează în prezent",
"clearAll": "Ștergeți tot",
"confirmClearActiveRequests": "Ștergeți toate solicitările active?",
"model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "provider": "Furnizor",
+ "account": "Cont",
+ "elapsed": "Timp scurs",
"activeStage": "Etapă",
"activeStageUnknown": "Netrimis încă la upstream",
"activeStageRegistered": "Înregistrat",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "Slotul limitatorului de rată a fost obținut",
"activeStageSendingToProvider": "Se trimite la upstream",
"activeStageProviderResponseStarted": "Răspunsul de la upstream a început",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
+ "count": "Număr",
+ "payloads": "Sarcini utile",
+ "viewPayloads": "Vizualizare",
"activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "clientPayload": "Sarcina utilă a cererii clientului",
+ "upstreamPayload": "Sarcina utilă pentru furnizorul din amonte",
+ "upstreamNotSentYet": "Nu a fost trimis încă în amonte",
+ "runningRequestDetailMeta": "Cont: {account} — Timp scurs: {elapsed}",
+ "export": "Exportă",
+ "exporting": "Se exportă...",
+ "exportFailed": "Exportul a eșuat",
"cleanHistoryButton": "Curăță istoricul",
"cleanHistoryTitle": "Curățați istoricul jurnalelor?",
"cleanHistoryMessage": "Această acțiune șterge definitiv toate rândurile de jurnal de solicitări, rândurile de detalii moștenite și fișierele de artefacte locale din DATA_DIR/call_logs. Pagina live se va reîmprospăta după curățare.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "Au fost curățate {deleted} intrări de jurnal, {deletedArtifacts} artefacte și {deletedDetailedLogs} rânduri de detalii moștenite.",
"cleanHistoryEmpty": "Nu s-a găsit niciun istoric al logurilor de cereri.",
"cleanHistoryFailed": "Curățarea istoricului logurilor a eșuat.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "Interval de timp",
+ "lastNHours": "Ultimele {hours}",
+ "defaultRange": "implicit",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "Preluarea jurnalelor a eșuat",
+ "copyFailed": "Copierea înregistrării din jurnal a eșuat",
+ "copyLogEntry": "Copiază înregistrarea din jurnal",
"filterByLevel": "Filtrează după nivelul logului",
"searchPlaceholder": "Caută în loguri…",
"searchAria": "Caută în intrările din log",
@@ -4983,9 +4987,9 @@
"multiProvider": "Multi-furnizor",
"usageTracking": "Urmărirea utilizării",
"securityDesc": "Setați o parolă pentru a vă proteja tabloul de bord sau omiteți pentru moment.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ Fără o parolă, nu veți putea adăuga furnizori în timpul configurării. Îi puteți adăuga ulterior din panoul de control, după setarea unei parole.",
"providerDesc": "Conectați-vă primul furnizor de AI. Puteți adăuga mai multe mai târziu.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "Pentru a adăuga furnizori, trebuie mai întâi să setați o parolă. Reveniți la pasul de securitate și setați o parolă sau adăugați furnizorii ulterior din panoul de control.",
"apiKeyRequired": "Cheie API (obligatorie)",
"customUrlOptional": "Adresă URL personalizată (opțional)",
"testDesc": "Să verificăm că conexiunea la furnizor funcționează.",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "Se importă…",
"importFromFileImport": "Importă {count} furnizori",
"importFromFileResult": "S-au importat {success} furnizori ({failed} eșuați)",
+ "importFromFileDownloadTemplate": "Descarcă șablonul CSV",
+ "importFromFileMoreErrors": "încă +{count}",
+ "importFromFileSchemaHint": "Coloanele CSV sunt poziționale: provider, name, apiKey, baseUrl (opțional), priority (opțional). Coloana provider trebuie să conțină ID-ul unui furnizor gestionat existent sau ID-ul unui nod compatibil OpenAI/Anthropic deja înregistrat — acest import nu creează noduri endpoint noi.",
"adaptaTutorial": {
"title": "Cum se conectează Adapta Web",
"introPrefix": "Adapta se autentifică prin Clerk. Tokenul",
@@ -5111,7 +5118,7 @@
"testSuccess": "Conexiune reușită",
"testFailed": "Conexiunea a eșuat",
"available": "Disponibil",
- "cooldown": "Cooldown",
+ "cooldown": "Perioadă de așteptare",
"unavailable": "Indisponibil",
"unknown": "Necunoscut",
"oauthLabel": "OAuth",
@@ -5161,8 +5168,8 @@
"modelsHiddenCount": "{count} ascunse",
"warningCount": "{count} Avertisment",
"noConnections": "Fără conexiuni",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "Expirat",
+ "expiringSoonBadge": "Expiră în curând",
"freeTier": "Nivel gratuit",
"freeTierAvailable": "Nivel gratuit disponibil",
"hasFreeTooltip": "Nivel gratuit disponibil",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "Acest furnizor a fost retras",
"riskNotice": {
"title": "Înainte de a continua",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Avertismente privind utilizarea",
"tooltip": "Furnizor cu avertismente de utilizare — faceți clic pentru detalii",
"oauth": "Acest furnizor utilizează sesiunea oficială a produsului/OAuth, care nu este autorizată pentru utilizarea ca proxy/router. Nu recomandăm utilizarea intensivă a agenților autonomi (stil OpenCloud, fluxuri lungi cu mai mulți pași, loturi mari) — upstream-ul poate reacționa prin restricționarea sau blocarea contului. Utilizați pe propriul risc.",
"webCookie": "Acest furnizor se autentifică prin cookie-urile sesiunii web. Serviciul upstream poate invalida sesiunea în orice moment, solicitându-vă să vă autentificați din nou. Nu este recomandat pentru operațiuni lungi nesupravegheate. Utilizați pe propriul risc.",
@@ -5184,9 +5191,9 @@
"cancel": "Anulează"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} conexiune/conexiuni marcate — până la {maxFailures} eșecuri recente{lastFailureSuffix}. Faceți clic pentru a vedea starea conexiunilor.",
+ "lastFailureSuffix": "(ultimul eșec {time})",
+ "ariaLabel": "Vedeți detaliile despre starea conexiunilor, {count} avertisment(e)"
},
"disabled": "Dezactivat",
"enableProvider": "Activați furnizorul",
@@ -5221,7 +5228,7 @@
"failedCreate": "Nu s-a putut crea furnizorul",
"errorOccurred": "A apărut o eroare. Vă rugăm să încercați din nou.",
"modelStatus": "Stare model",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "Doar configurate",
"allModelsOperational": "Toate modelele sunt operaționale",
"modelsWithIssues": "{count} model(e) cu probleme",
"allModelsNormal": "Toate modelele răspund normal.",
@@ -5232,7 +5239,7 @@
"clearing": "Se șterge...",
"until": "Până la {time}",
"providerTestFailed": "Testul furnizorului a eșuat",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "Testarea furnizorului a expirat — prea multe conexiuni de testat simultan",
"modeTest": "{mode} Test",
"passedCount": "{count} a trecut",
"failedCount": "{count} a eșuat",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "URL pictogramă",
"iconUrlHint": "Opțional. URL-ul imaginii afișate ca pictogramă a acestui furnizor.",
"iconUrlInvalid": "URL-ul iconului este invalid. Folosiți un URL http(s):// sau data:image/*;base64.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Fusul orar pentru resetarea cotei zilnice",
+ "dailyQuotaResetTimezoneHint": "Fus orar IANA opțional, utilizat când serviciul din amonte omite X-RateLimit-Reset. Lăsați necompletat pentru a păstra o perioadă scurtă de așteptare.",
+ "dailyQuotaResetHourLabel": "Ora de resetare a cotei zilnice",
+ "dailyQuotaResetHourHint": "Ora locală 0-23 în fusul orar de mai sus. Dacă este necompletat, nu se utilizează niciun ceas la nivel de nod.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "Furnizorul nu a fost găsit",
"deleteConnectionConfirm": "Ștergeți această conexiune?",
"deleteConnectionConfirmNamed": "Sigur doriți să ștergeți {name}? Această acțiune nu poate fi anulată.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Șterge selecția ({count})",
+ "batchDeleteConfirm": "Ștergeți {count} conexiune/conexiuni? Această acțiune nu poate fi anulată.",
+ "batchDeleteSuccess": "S-au șters {count} conexiuni",
"batchActivateSelected": "Activează",
"batchDeactivateSelected": "Dezactivează",
"batchRetestSelected": "Retestează",
@@ -5288,7 +5295,7 @@
"filterError": "Eroare",
"filterBanned": "Blocat",
"filterCreditsExhausted": "Credite epuizate",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Caută conturi…",
"noFilteredConnections": "Nicio conexiune nu corespunde filtrului curent.",
"failedSetAlias": "Nu s-a putut seta aliasul",
"setAliasSuccess": "Aliasul {alias} a fost setat",
@@ -5301,14 +5308,14 @@
"openaiCompatibleDetails": "Detalii compatibile cu OpenAI",
"messagesApi": "Messages API",
"responsesApi": "API de răspunsuri",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Încorporări",
+ "audioTranscriptions": "Transcrieri audio",
+ "audioSpeech": "Sinteză vocală",
+ "imagesGenerations": "Generări de imagini",
"chatCompletions": "Finalizări de chat",
"importingModels": "Se importă...",
"importFromModels": "Import din /modele",
- "modelsImported": "{count} models imported",
+ "modelsImported": "{count} modele importate",
"allModelsAlreadyImported": "Toate modelele sunt deja importate",
"noNewModelsToImport": "Niciun model nou de importat — toate modelele sunt deja în registru sau în lista de modele personalizate",
"skippingExistingModels": "Se omit {count} modele existente",
@@ -5346,13 +5353,13 @@
"importFailed": "Importul nu a reușit",
"noNewModelsAdded": "Nu au fost adăugate modele noi.",
"adding": "Se adaugă...",
- "close": "Close",
+ "close": "Închide",
"importingModelsTitle": "Importul modelelor",
"copyModel": "Copiați modelul",
"filterModels": "Filtrează modelele…",
"testAllRateLimited": "Limita de rată a fost atinsă, s-a oprit prematur",
"hideFailedAuto": "Ascunde automat modelele eșuate",
- "selectAllModels": "Select all",
+ "selectAllModels": "Selectează tot",
"hideAllModels": "Ascunde tot",
"modelsActive": "active",
"showModel": "Afișează modelul",
@@ -5382,8 +5389,8 @@
"bulkAddFormatHint": "O cheie pe linie. Format: nume|apiKey sau doar apiKey (numit automat după index).",
"bulkValidateKeys": "Validați fiecare cheie înainte de a salva (mai lent)",
"bulkAddAllKeys": "Adăugați toate cheile",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {# cheie adăugată} other {# chei adăugate}}",
+ "bulkFailedCount": "{count, plural, one {# eșuată} other {# eșuate}}",
"optional": "Opțional",
"anthropicCompatibleName": "Compatibil antropic",
"openaiCompatibleName": "Compatibil cu OpenAI",
@@ -5400,7 +5407,7 @@
"unexpectedErrorOccurred": "A apărut o eroare neașteptată",
"getApiKey": "Obține cheia API",
"getApiKeyDescription": "Înregistrează-te sau înscrie-te pentru o cheie API",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# conexiune} other {# conexiuni}}",
"messagesPath": "mesaje",
"responsesPath": "răspunsuri",
"chatCompletionsPath": "chat/completari",
@@ -5415,17 +5422,17 @@
"configured": "configurat",
"providerProxyConfigureHint": "Configurați proxy pentru toate conexiunile acestui furnizor",
"providerProxy": "Proxy de furnizor",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": "Repară .env",
+ "repairEnvWorking": "Se repară...",
+ "repairEnvHint": "Restaurează valorile OAuth implicite lipsă în .env fără a suprascrie valorile existente.",
+ "repairEnvSuccess": "Valorile OAuth implicite au fost restaurate",
+ "repairEnvFailed": "Repararea fișierului .env a eșuat",
"noConnectionsYet": "Încă nu există conexiuni",
"addFirstConnectionHint": "Adăugați prima conexiune pentru a începe",
"addConnection": "Adăugați o conexiune",
"availableModels": "Modele disponibile",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "Modele încorporate",
+ "builtInModelsHint": "Modele din registru pentru acest furnizor. Folosește creionul pentru a seta opțiunile de compatibilitate.",
"pageAutoRefresh": "Pagina se va reîmprospăta automat...",
"statusDisabled": "dezactivat",
"statusConnected": "conectat",
@@ -5471,24 +5478,24 @@
"reauthenticateConnection": "Re-autentificați această conexiune",
"proxyConfig": "Configurare proxy",
"aliasExistsAlert": "Aliasul „{alias}” există deja. Vă rugăm să utilizați un alt model sau să editați alias-ul existent.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "numele aliasului",
+ "clickToSetAlias": "Fă clic pentru a seta aliasul",
+ "clickToEditAlias": "Alias: {alias} (fă clic pentru a edita)",
"openRouterAnyModelHint": "OpenRouter acceptă orice model. Adăugați modele și creați aliasuri pentru acces rapid.",
"modelIdFromOpenRouter": "ID model (de la OpenRouter)",
"openRouterModelPlaceholder": "antropic/claude-3-opus",
"customModels": "Modele personalizate",
"customModelsHint": "Adăugați ID-uri de model care nu sunt în lista implicită. Acestea vor fi disponibile pentru rutare.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "Normalizează ID-urile apelurilor de instrumente la 9 caractere (de ex., Mistral)",
+ "preserveDeveloperRoleLabel": "Păstrează rolul de dezvoltator din OpenAI Responses (nu îl mapa la sistem)",
+ "compatAdjustmentsTitle": "Compatibilitate",
+ "compatButtonLabel": "Compatibilitate",
+ "compatToolIdShort": "ID instrument 9",
+ "compatDeveloperShort": "Rol de dezvoltator",
+ "compatDoNotPreserveDeveloper": "Nu păstra rolul de dezvoltator",
+ "compatBadgeNoPreserve": "Nu păstra",
+ "compatProtocolLabel": "Protocolul solicitării clientului",
+ "compatProtocolHint": "Aceste opțiuni se aplică atunci când OmniRoute detectează acest format de solicitare (OpenAI Chat, Responses API sau Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,25 +5537,25 @@
"interceptFetchHint": "Rescrie apelurile native de instrument web_fetch către /v1/web/fetch al OmniRoute.",
"interceptionLoadError": "Nu s-au putut încărca setările de interceptare: {error}",
"interceptionSaveError": "Nu s-au putut salva setările de interceptare: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "ccAliasSectionTitle": "Expune în Claude Code (claude/…)",
+ "ccAliasSectionHint": "Publică modelele acestui furnizor sub ID-uri oglindă claude/<provider>/<model>, astfel încât descoperirea modelelor prin gateway-ul Claude Code să le poată lista. Opțiunea este dezactivată implicit — activarea ei dublează intrările din catalog pentru toți clienții.",
+ "ccAliasProviderLevelLabel": "Valoarea implicită a furnizorului",
+ "ccAliasModelOverridesLabel": "Suprascrieri per model",
+ "ccAliasModelOverrideAriaLabel": "Suprascriere pentru {modelId}",
+ "ccAliasStateInherit": "Moștenește",
+ "ccAliasStateOn": "Activat",
+ "ccAliasStateOff": "Dezactivat",
+ "ccAliasAddModelPlaceholder": "ID-ul modelului (de ex. gpt-4o)",
+ "ccAliasAddModelButton": "Adaugă o suprascriere",
+ "ccAliasLoadError": "Încărcarea setărilor pentru aliasurile de descoperire a eșuat: {error}",
+ "ccAliasSaveError": "Salvarea setării pentru aliasul de descoperire a eșuat: {error}",
+ "compatUpstreamHeadersLabel": "Antete upstream suplimentare",
+ "compatUpstreamHeadersHint": "Setare cu privilegii ridicate — are același nivel de încredere ca editarea credențialelor API ale furnizorului; trebuie utilizată numai de administratori de încredere. Se îmbină după ce OmniRoute adaugă autentificarea din cheia API a furnizorului. Dacă un antet personalizat folosește același nume ca unul existent (de ex. Authorization), valoarea dvs. înlocuiește complet antetul generat automat (inclusiv tokenul Bearer) — serviciul upstream vede numai ceea ce ați introdus, nu cheia din setări. Configurarea incorectă poate cauza eroarea 401 sau poate întrerupe autentificarea upstream. Câte un rând pentru fiecare antet (de ex. autentificare suplimentară pentru anumite gateway-uri). Plasați cursorul deasupra valorii sau focalizați-o pentru previzualizare. Se salvează la pierderea focalizării, la un clic în exterior sau la închiderea acestui panou.",
+ "compatUpstreamHeaderName": "Numele antetului",
+ "compatUpstreamHeaderValue": "Valoare",
+ "compatUpstreamAddRow": "Adaugă antet",
+ "compatUpstreamRemoveRow": "Elimină rândul",
+ "compatBadgeUpstreamHeaders": "Antete",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
"importFreeModelsOnlyLabel": "Importă doar modelele gratuite",
@@ -5576,7 +5583,7 @@
"checking": "Se verifică...",
"check": "Verificați",
"valid": "Valabil",
- "invalid": "Invalid",
+ "invalid": "Nevalid",
"creating": "Se creează...",
"validationChecksAnthropicCompatible": "Validarea verifică {provider} prin verificarea cheii API.",
"validationChecksOpenAiCompatible": "Verificări de validare {provider} prin /models pe adresa URL de bază.",
@@ -5588,26 +5595,26 @@
"email": "E-mail",
"healthCheckMinutes": "Verificare de sănătate (min)",
"healthCheckHint": "Interval proactiv de reîmprospătare a simbolului. 0 = dezactivat.",
- "deselectAllModels": "Deselect all",
+ "deselectAllModels": "Deselectează tot",
"modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "noModelsMatch": "Niciun model nu corespunde filtrului „{filter}”",
+ "groupLabel": "Mediu",
+ "groupPlaceholder": "de ex. eKaizen, Personal",
"failedTestConnection": "Nu s-a testat conexiunea",
"failed": "A eșuat",
"leaveBlankKeepCurrentApiKey": "Lăsați necompletat pentru a păstra cheia API curentă.",
"editCompatibleTitle": "Editați {type} Compatibil",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "URL-ul rădăcină al API-ului dvs. compatibil cu {type}. Utilizați Setări avansate pentru căi personalizate ale endpointurilor.",
"apiKeyForCheck": "Cheie API (pentru verificare)",
"testModelIdLabel": "ID model (opțional)",
"testModelIdPlaceholder": "de ex. my-model-id",
"testModelIdHint": "Dacă furnizorul nu are un endpoint /models, introduceți un ID de model pentru a-l valida prin /chat/completions în schimb.",
"compatibleProdPlaceholder": "{type} Compatibil (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "Tokenul a fost reîmprospătat cu succes",
+ "tokenRefreshFailed": "Reîmprospătarea tokenului a eșuat",
"cursorSessionUnchanged": "Sesiune deja curentă",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Aplică autentificarea",
+ "exportCodexAuthFile": "Exportă autentificarea",
"applyClaudeAuthLocal": "Aplicați autentificare",
"exportClaudeAuthFile": "Export aut",
"importClaudeAuth": "Autentificare import",
@@ -5622,7 +5629,7 @@
"claudeAuthApplyFailed": "Nu s-a aplicat local auth Claude",
"claudeAuthExported": "Fișierul de autentificare Claude a fost exportat",
"claudeAuthExportFailed": "Nu s-a putut exporta fișierul de autentificare Claude",
- "claudeImportModalTitle": "Import Claude Auth",
+ "claudeImportModalTitle": "Importă autentificarea Claude",
"claudeImportTabSingle": "singur",
"claudeImportTabBulk": "În vrac",
"claudeImportTabUpload": "Încărcați fișierul",
@@ -5632,7 +5639,7 @@
"claudeImportEmailLabel": "E-mailul contului",
"claudeImportNameLabel": "Numele conexiunii (opțional)",
"claudeImportOverwriteLabel": "Înlocuiți conexiunea existentă dacă contul există deja",
- "claudeImportSubmit": "Import",
+ "claudeImportSubmit": "Importă",
"claudeImportSuccess": "Conexiunea Claude a fost importată cu succes",
"claudeImportInvalidJson": "Nu s-a putut analiza fișierul ca JSON",
"claudeImportInvalidShape": "Fișierul nu este un .credentials.json valid",
@@ -5654,7 +5661,7 @@
"geminiAuthApplyFailed": "Nu s-a aplicat local aut Gemini",
"geminiAuthExported": "Fișierul de autentificare Gemini a fost exportat",
"geminiAuthExportFailed": "Nu s-a putut exporta fișierul de autentificare Gemini",
- "geminiImportModalTitle": "Import Gemini Auth",
+ "geminiImportModalTitle": "Importă autentificarea Gemini",
"geminiImportTabSingle": "singur",
"geminiImportTabBulk": "În vrac",
"geminiImportTabUpload": "Încărcați fișierul",
@@ -5664,7 +5671,7 @@
"geminiImportEmailLabel": "E-mailul contului",
"geminiImportNameLabel": "Numele conexiunii (opțional)",
"geminiImportOverwriteLabel": "Înlocuiți conexiunea existentă dacă contul există deja",
- "geminiImportSubmit": "Import",
+ "geminiImportSubmit": "Importă",
"geminiImportSuccess": "Conexiunea Gemeni a fost importată cu succes",
"geminiImportInvalidJson": "Nu s-a putut analiza fișierul ca JSON",
"geminiImportInvalidShape": "Fișierul nu este un oauth_creds.json valid",
@@ -5700,7 +5707,7 @@
"codexExternalLinkConnected": "Contul Codex a fost conectat prin intermediul linkului extern.",
"codexExternalLinkExpired": "Linkul a expirat înainte de finalizare.",
"importCodexAuth": "Autentificare import",
- "codexImportModalTitle": "Import Codex Auth",
+ "codexImportModalTitle": "Importă autentificarea Codex",
"codexImportTabSingle": "singur",
"codexImportTabBulk": "În vrac",
"codexImportTabUpload": "Încărcați fișierul",
@@ -5712,7 +5719,7 @@
"codexImportEmailHint": "Detectat automat din fișier; editați dacă este necesar.",
"codexImportNameLabel": "Numele conexiunii (opțional)",
"codexImportOverwriteLabel": "Înlocuiți conexiunea existentă dacă contul există deja",
- "codexImportSubmit": "Import",
+ "codexImportSubmit": "Importă",
"codexImportSuccess": "Conexiunea Codex a fost importată cu succes",
"codexImportInvalidJson": "Nu s-a putut analiza fișierul ca JSON",
"codexImportInvalidShape": "Fișierul nu este un Codex auth.json valid",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} a eșuat",
"codexImportBulkZipExtracting": "Se extrage ZIP...",
"codexImportBulkZipError": "Nu s-a extras ZIP",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Setări avansate",
+ "chatPathLabel": "Calea endpointului de chat",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Cale personalizată pentru chat în cazul furnizorilor cu API-uri nestandard (de ex. /v4/chat/completions)",
+ "modelsPathLabel": "Calea endpointului pentru modele",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Cale personalizată pentru modele, utilizată la validare (de ex. /v4/models)",
"clientIdentityLabel": "Identitate client",
"clientIdentityHint": "Opțional. Adaugă antete de amprentă ale clientului (de ex. User-Agent) care se potrivesc cu un CLI cunoscut pentru gateway-urile compatibile care se așteaptă la unul.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "Dezactivat (manual)",
+ "statusBanned": "Interzis / Încălcare în sandbox",
+ "statusCreditsExhausted": "Sold insuficient / Cotă epuizată",
+ "showEmails": "Afișează toate adresele de e-mail",
+ "hideEmails": "Ascunde toate adresele de e-mail",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Adaugă o altă cheie API sau lipește mai multe chei",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
- "enterpriseCloud": "Enterprise & Cloud",
- "apiFormatLabel": "Api Format Label",
+ "aggregatorsGateways": "Agregatoare și gateway-uri",
+ "enterpriseCloud": "Companii și cloud",
+ "apiFormatLabel": "Etichetă pentru formatul API",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
+ "apiRegionChina": "Regiune API: China",
+ "apiRegionHint": "Indiciu pentru regiunea API",
+ "apiRegionInternational": "Regiune API: internațională",
+ "apiRegionLabel": "Etichetă pentru regiunea API",
+ "apikey": "Cheie API",
"audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "audioProvidersHeading": "Titlu pentru furnizorii audio",
"cloudAgentProviders": "Furnizori de agenți cloud",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Etichetă scurtă pentru audio",
+ "azureOpenAiBaseUrlHint": "Indiciu pentru URL-ul de bază Azure Open Ai",
+ "bailianBaseUrlHint": "Indiciu pentru URL-ul de bază Bailian",
+ "claudeWebCookieHint": "Deschide claude.ai → DevTools → Application → Cookies → claude.ai și copiază valoarea 'sessionKey'. Sunt necesare și cf_clearance, __cf_bm, _cfuvid pentru Cloudflare.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Indiciu pentru cookie-ul Blackbox Web",
+ "blackboxWebCookiePlaceholder": "Substituent pentru cookie-ul Blackbox Web",
"t3ChatWebCookieHint": "Deschideți t3.chat → DevTools → Aplicație → Stocare locală → https://t3.chat, copiați „convex-session-id”. Apoi deschideți DevTools → Network, copiați antetul complet Cookie din orice solicitare de chat. Lipiți ambele valori în câmpurile de mai jos.",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Indiciu pentru cookie-ul Grok Web",
"blockClaudeExtraUsageDescription": "Când este activat, OmniRoute marchează această conexiune Claude ca fiind indisponibilă imediat ce API-ul de utilizare raportează utilizare suplimentară în așteptare, astfel încât fallback-ul să comute pe o altă conexiune în loc să continue cu facturarea suplimentară pe bază de plată pe măsură ce se utilizează.",
"blockClaudeExtraUsageLabel": "Blochează utilizarea suplimentară a lui Claude",
"disableCoolingDescription": "Omite perioada de răcire tranzitorie, astfel încât această conexiune să rămână eligibilă chiar și după erori recuperabile (stările terminale precum blocat/expirat se aplică în continuare).",
"disableCoolingLabel": "Dezactivează perioada de răcire pentru această conexiune",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 cheie adăugată} other {# chei adăugate}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicat omis} other {# duplicate omise}}",
+ "bulkPasteHint": "Lipește câte o cheie API pe fiecare rând. Rândurile goale sunt ignorate, iar cheile duplicate sunt omise.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Adaugă antetul beta redact-thinking pentru upstream-urile CC Compatible care necesită fluxuri de raționament Claude ascunse.",
+ "ccCompatibleRedactThinkingLabel": "Activează versiunea beta redact-thinking",
+ "ccCompatibleSummarizeThinkingDescription": "Adaugă `display: \"summarized\"` la solicitările de raționament CC Compatible, astfel încât modelele Claude compatibile să transmită în flux actualizări vizibile ale raționamentului.",
+ "ccCompatibleSummarizeThinkingLabel": "Activează afișarea rezumată a raționamentului",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "Folosește nivelul de serviciu prioritar pentru solicitările Codex, atunci când este disponibil.",
+ "codexFastServiceTierLabel": "Nivel de serviciu rapid Codex",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "Substituent pentru numele antetului upstream compatibil",
+ "compatUpstreamHeaderValuePlaceholder": "Substituent pentru valoarea antetului upstream compatibil",
+ "compatible": "Compatibil",
+ "configuredCount": "Număr de elemente configurate",
+ "consoleApiKeyOracleHint": "Indiciu pentru cheia API a consolei Oracle",
+ "consoleApiKeyOracleLabel": "Etichetă pentru cheia API a consolei Oracle",
+ "consoleApiKeyOraclePlaceholder": "Substituent pentru cheia API a consolei Oracle",
+ "newApiUserIdLabel": "ID utilizator New-API",
+ "newApiUserIdPlaceholder": "de ex., 12345",
+ "newApiUserIdHint": "Valoarea antetului AgentRouter New-Api-User, utilizată împreună cu cheia API a consolei pentru a prelua soldul cotei.",
"newApiAggregatorToggleLabel": "Gateway-ul Agregator",
"newApiAggregatorToggleHint": "Activați detectarea soldului pentru nodurile agregator New-API / One-API / Sub2API. Panoul de control va afișa insigna soldului, iar rutarea quota-preflight va sări peste conturile epuizate.",
"newApiAggregatorConsoleApiKeyHint": "Token de acces al sistem pentru endpoint-ul /api/user/self al agregatorului. Nu cheia API de rutare.",
@@ -5826,53 +5833,53 @@
"featureFlagNewApiAggregatorBalanceDescription": "Activați detectarea soldului pentru nodurile compatibile cu New-API / One-API / Sub2API agregator.",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Sugestie pentru agentul utilizator personalizat",
+ "customUserAgentLabel": "Etichetă pentru agentul utilizator personalizat",
+ "databricksBaseUrlHint": "Sugestie pentru URL-ul de bază Databricks",
+ "defaultThinkingStrengthHint": "Utilizat atunci când o solicitare nu specifică efortul de raționament.",
+ "defaultThinkingStrengthLabel": "Intensitatea implicită a gândirii",
+ "deleteAllExtraApiKeys": "Șterge tot",
+ "excludedModelsHint": "Sugestie pentru modelele excluse",
+ "excludedModelsLabel": "Etichetă pentru modelele excluse",
+ "excludedModelsPlaceholder": "Substituent pentru modelele excluse",
+ "expirationBannerExpired": "Banner de expirare: expirat",
+ "expirationBannerExpiredDesc": "Descrierea bannerului de expirare: expirat",
+ "expirationBannerExpiringSoon": "Banner de expirare: expiră în curând",
+ "expirationBannerExpiringSoonDesc": "Descrierea bannerului de expirare: expiră în curând",
+ "extraApiKeyMasked": "Cheia {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Sugestie pentru cheile API suplimentare",
+ "extraApiKeysLabel": "Etichetă pentru cheile API suplimentare",
+ "apiKeyHealthLabel": "Starea cheilor API",
+ "apiKeyStatusActive": "Activă",
+ "apiKeyStatusWarning": "Avertisment ({count} eșecuri)",
+ "apiKeyStatusInvalid": "Nevalidă",
+ "primaryKey": "Cheie principală",
+ "apiKeyInvalidAlert": "{count} cheie/chei API a/au fost marcate ca nevalide din cauza eșecurilor de autentificare în conexiunile: {connections}. Acestea vor fi omise din rotație. Faceți clic pentru a le examina.",
+ "apiKeyInvalidAlertTitle": "Alertă privind starea cheilor API",
+ "apiKeyWarningAlert": "{count} cheie/chei API se află în stare de avertizare din cauza ratei ridicate de eșec în conexiunile: {connections}. Examinați-le pentru a preveni problemele de rotație.",
+ "apiKeyWarningAlertTitle": "Avertisment privind cheia API",
+ "googlePseInfo": "Informații Google Pse",
"antigravityProjectIdHint": "Suprascriere opțională pentru solicitările Codului Antigravity Cloud. Lăsați necompletat pentru a utiliza proiectul descoperit în timpul Google OAuth.",
"antigravityClientProfileLabel": "Profil client",
"antigravityClientProfileHint": "Alegeți ce identitate de client Antigravity prezintă OmniRoute către API.",
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "Harness / CLI",
"codexFastTierActiveChip": "Nivelul Codex Fast este activ",
- "tierFast": "Fast",
+ "tierFast": "Rapid",
"antigravityProjectIdLabel": "ID-ul proiectului Google Cloud",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Substituent pentru modulul cookie web Grok",
+ "herokuBaseUrlHint": "Sugestie pentru URL-ul de bază Heroku",
+ "hideEmail": "Ascunde adresa de e-mail",
+ "imageProviders": "Furnizori de imagini",
"videoProviders": "Generare video",
- "embeddingRerankProviders": "Embeddings & Rerank",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "embeddingRerankProviders": "Încorporări și reclasificare",
+ "imagesShortLabel": "Etichetă scurtă pentru imagini",
+ "llmProviders": "Furnizori LLM",
+ "localProviderApiKeyOptionalHint": "Sugestie pentru cheia API opțională a furnizorului local",
+ "localProviderBaseUrlHint": "Sugestie pentru URL-ul de bază al furnizorului local",
+ "localProviders": "Furnizori locali",
+ "maxConcurrentWholeNumberError": "Eroare privind numărul întreg maxim de solicitări simultane",
"m365TierLabel": "Nivel Copilot",
"m365TierHint": "Alegeți ce interfață Microsoft 365 Copilot utilizează această conexiune. Individual este BizChat-ul implicit pentru consumatori; Education și Enterprise (lucru) optează pentru interfețele din tenantul lor.",
"m365TierIndividualOption": "Individual (implicit)",
@@ -5884,26 +5891,26 @@
"tierOverrideCheap": "Ieftin",
"tierOverridePremium": "Premium",
"tierOverrideHelpText": "Fixați acest furnizor la un nivel de rutare în loc să lăsați OmniRoute să îl deducă din prețul modelului.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Indiciu privind cookie-ul web Muse Spark",
+ "museSparkWebCookiePlaceholder": "Substituent pentru cookie-ul web Muse Spark",
+ "oauth": "OAuth",
+ "openCliTools": "Deschide instrumentele CLI",
+ "openSettings": "Deschide setările",
+ "openaiResponsesStoreDescription": "Permite solicitărilor compatibile cu Responses API să păstreze starea răspunsului stocat.",
+ "openaiResponsesStoreLabel": "Stocare OpenAI Responses",
+ "perplexitySearchSharedKeyInfo": "Informații despre cheia partajată Perplexity Search",
+ "perplexityWebCookieHint": "Indiciu privind cookie-ul web Perplexity",
+ "perplexityWebCookiePlaceholder": "Substituent pentru cookie-ul web Perplexity",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Suprascrieri ale limitelor de rată",
"rateLimitOverridesMaxConcurrentHint": "Suprascrierea numărului maxim de solicitări concurente pentru această conexiune. Suprascrie limita la nivel de cont.",
"rateLimitOverridesMaxConcurrentLabel": "Maxim concurente (Limită de rată)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Timpul maxim (ms) în care o solicitare poate aștepta un loc disponibil în limita de rată înainte de a eșua. Suprascrie setarea globală de reziliență numai pentru această conexiune.",
+ "rateLimitOverridesMaxWaitMsLabel": "Timp maxim de așteptare în coadă (ms)",
"rateLimitOverridesMinTimeHint": "Timpul minim (ms) între solicitări. Suprascrie întârzierea implicită a limitatorului de rată.",
- "rateLimitOverridesMinTimeLabel": "Min Interval (ms)",
+ "rateLimitOverridesMinTimeLabel": "Interval minim (ms)",
"rateLimitOverridesRpdHint": "Numărul maxim de cereri pe zi pentru această conexiune. Suprascrie valoarea implicită a furnizorului.",
"rateLimitOverridesRpdLabel": "RPD (Cereri/zi)",
"rateLimitOverridesRpmHint": "Numărul maxim de solicitări pe minut pentru această conexiune. Suprascrie valoarea implicită a furnizorului.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (Tokenuri/zi)",
"rateLimitOverridesTpmHint": "Numărul maxim de tokenuri pe minut pentru această conexiune. Suprascrie valoarea implicită a furnizorului.",
"rateLimitOverridesTpmLabel": "TPM (Tokenuri/min)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "refreshOauthTokenTitle": "Reîmprospătează tokenul OAuth",
+ "regionHint": "Indiciu privind regiunea",
+ "regionLabel": "Regiune",
+ "removeThisKey": "Elimină această cheie",
+ "routingTagsHint": "Indiciu privind etichetele de rutare",
+ "routingTagsLabel": "Etichete de rutare",
+ "routingTagsPlaceholder": "Substituent pentru etichetele de rutare",
+ "search": "Căutare",
+ "searchEngineIdHint": "Indiciu privind ID-ul motorului de căutare",
+ "searchEngineIdLabel": "ID-ul motorului de căutare",
+ "searchEngineIdRequired": "ID-ul motorului de căutare este obligatoriu",
+ "searchProvider": "Furnizor de căutare",
+ "searchProviderDesc": "Descrierea furnizorului de căutare",
"searchProviders": "Căutați furnizori...",
"searchByModel": "Căutare după model…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Furnizori de căutare",
+ "searxngBaseUrlHint": "Indiciu privind URL-ul de bază Searxng",
+ "searxngInfo": "Informații despre Searxng",
+ "sessionCookieLabel": "Cookie de sesiune",
+ "showEmail": "Afișează adresa de e-mail",
+ "snowflakeBaseUrlHint": "Indiciu privind URL-ul de bază Snowflake",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Indiciu privind grupul de etichete",
+ "tagGroupLabel": "Grup de etichete",
+ "tagGroupPlaceholder": "Substituent pentru grupul de etichete",
+ "testModel": "Testează modelul",
+ "testingModel": "Se testează modelul",
"modelTestQuotaTooltip": "Cota epuizată — se resetează mâine sau necesită o reîncărcare",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Insignă pentru token expirat",
+ "tokenExpiredTitle": "Titlu pentru token expirat",
+ "tokenExpiresSoonTitle": "Titlu pentru token care expiră în curând",
+ "tokenShort": "Token scurt",
+ "totalKeysRotating": "{count, plural, one {1 cheie în rotație} other {# chei în rotație}}",
+ "unhideModel": "Afișează modelul",
+ "upstreamProxyProviders": "Furnizori proxy upstream",
"validationModelIdHint": "Modelul utilizat pentru a verifica cheia API. Lăsați necompletat pentru a utiliza primul model disponibil al furnizorului.",
"validationModelIdLabel": "Model de validare",
"validationModelIdPlaceholder": "de ex. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Lipește JSON-ul contului de serviciu ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) sau un OAuth access_token",
+ "webCookieProviders": "Furnizori de cookie-uri web",
+ "weeklyShort": "Săpt.",
+ "xiaomiMimoBaseUrlHint": "Indiciu pentru URL-ul de bază Xiaomi Mimo",
"globalCodexServiceMode": "Mod serviciu Codex global",
"connect": "Conectare",
"manualApiKey": "Cheie API manuală",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Descoperă acreditările furnizorilor de IA (OpenAI, Anthropic, Google, Mistral, xAI) stocate de Zed IDE în keychain-ul sistemului de operare și le importă ca conexiuni. Zed IDE trebuie să fie instalat pe acest computer.",
"zedImportButton": "Importă din Zed",
"zedImportFailed": "Importul Zed a eșuat",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Indiciu pentru importul Zed",
+ "zedImportNetworkError": "Eroare de rețea la importul Zed",
+ "zedImportNone": "Niciun import Zed",
"zedImportSuccess": "Importate {credentials} credential(e) din Zed pentru {providers} furnizor(i)",
"zedImporting": "Importare…",
"zedNoCredentials": "Nu s-au găsit acreditări Zed în keychain",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "Proxy API cu reducere pentru peste 40 de modele, inclusiv GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5. Obțineți cheia API la https://freeaiapikey.com/dashboard. URL de bază: https://freeaiapikey.com/v1.",
"freemodel-dev": "Obțineți $300 credite API gratuite la https://freemodel.dev — nu sunt necesare informații de plată. Endpoint compatibil cu OpenAI. Modele GPT-5.4 și GPT-5.5 disponibile.",
"friendliai": "Nivel gratuit pentru inferență serverless — nu este necesar card de credit",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Nivel gratuit prin Google AI Studio; cotele per model nu mai sunt publicate (consultă pagina de cote din AI Studio) — fără card de credit.",
"gigachat": "Conectați GigaChat (Sber) cu o cheie API.",
"gitlab": "Token de acces personal GitLab pentru API-ul public Code Suggestions. Configurați un URL de bază self-hosted când nu utilizați gitlab.com.",
"gitlawb-gmi": "Obțineți cheia API din tabloul de bord Gitlawb Opengateway.",
@@ -6180,7 +6187,7 @@
"glm-cn": "Conectați GLM Coding (China) cu o cheie API.",
"glmt": "Profil GLM prestabilit cu un buget de tokenuri mai mare, gândire activată și timeout mai lung.",
"getgoapi": "Conectați GoAPI cu o cheie API.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Plan gratuit: limite per model (200K tokenuri/zi pentru fiecare model de chat; consultă console.groq.com/docs/rate-limits pentru RPM/RPD) — nicio metodă de plată înregistrată.",
"haiper": "Obțineți cheia API la haiper.ai/haiper-api",
"heroku": "Conectați Heroku AI cu o cheie API.",
"hcnsec": "Obțineți cheia API la api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "Creează o cheie API la https://app.requesty.ai, apoi lipește-o aici ca token Bearer. Endpoint compatibil cu OpenAI la https://router.requesty.ai/v1, cu un catalog /v1/models live.",
"runwayml": "Generarea video Runway este bazată pe sarcini. OmniRoute trimite lucrări text-to-video sau image-to-video, interoghează periodic /v1/tasks/[id] și normalizează ieșirile video finalizate înapoi în răspunsul de tip OpenAI /v1/videos/generations.",
"sambanova": "$5 credite gratuite la înregistrare (valabilitate 30 de zile), nu este necesar un card de credit",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Creează o cheie API la https://seekai.cc, apoi lipește-o aici ca token Bearer. URL de bază compatibil cu OpenAI: https://seekai.cc/v1.",
"sap": "Descoperirea modelelor folosește /v2/lm/scenarios/foundation-models/models pe AI_API_URL. Solicitările de chat folosesc deploymentUrl/chat/completions și necesită AI-Resource-Group.",
"sarvam": "Sarvam AI este compatibil cu OpenAI pe /v1. OmniRoute probează /v1/models și direcționează traficul de chat către /v1/chat/completions. Modelele sunt ajustate pentru limbile indic.",
"scaleway": "1M tokenuri gratuite pentru conturi noi — conformitate UE/GDPR (Paris), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "Conectați Claude Code cu fluxul OAuth existent.",
"cline": "Conectați Cline cu fluxul OAuth existent.",
"cursor": "Conectați Cursor IDE cu fluxul OAuth existent.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Conectează Cursor folosind o cheie API de utilizator (crsr_...) de la cursor.com/dashboard/api; nu este necesară nicio sesiune IDE.",
"github": "Conectați GitHub Copilot cu fluxul OAuth existent.",
"gitlab-duo": "Aplicație OAuth cu permisiunile ai_features + read_user. Configurați GITLAB_DUO_OAUTH_CLIENT_ID și opțional GITLAB_DUO_OAUTH_CLIENT_SECRET pe această instanță OmniRoute.",
"kilocode": "Conectați Kilo Code cu fluxul OAuth existent.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "Copiați acreditările necesare din domeniul propriu al furnizorului. Pentru cookie-uri, copiați numai valoarea antetului Cookie și omiteți Cookie:.",
"webSessionGuideStep3Manual": "Calea manuală: deschideți instrumentele de dezvoltare ale browserului (F12 → Rețea), reîncărcați pagina, deschideți o cerere autentificată și copiați valoarea antetului Cookie din Anteturile cererii — omiteți prefixul Cookie:.",
"webSessionGuideStep4": "Lipiți-l aici și verificați conexiunea. Dacă nu mai funcționează, conectați-vă din nou și înlocuiți-l cu o valoare nouă.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "Importă fișierul .har",
+ "harImportButtonBusy": "Se importă…",
+ "harImportButtonHint": "Exportă din fila Network a DevTools după ce trimiți cel puțin un mesaj de chat.",
+ "harImportStatusValid": "Importat — valabil timp de ~{minutes} min.",
+ "harImportStatusExpiringSoon": "Importat — mai este valabil doar ~{minutes} min.",
+ "harImportStatusExpired": "Importat, dar acest token a expirat deja (acum {minutes} min.) — exportă un HAR nou.",
+ "harImportStatusUnknownExpiry": "Importat. Data expirării nu a putut fi citită.",
+ "harImportErrorNotJson": "Fișierul respectiv nu este un JSON valid — este într-adevăr un export .har?",
+ "harImportErrorNoEntries": "Acest HAR nu conține intrări de rețea înregistrate.",
+ "harImportErrorNoChathubUrl": "Nu a fost găsită nicio conexiune de chat Copilot în acest HAR. Trimite cel puțin un mesaj de chat în m365.cloud.microsoft înainte de exportare.",
+ "harImportErrorUnparsableUrl": "Conexiunea de chat a fost găsită, dar URL-ul acesteia nu a putut fi citit.",
+ "harImportErrorMissingFields": "Conexiunea de chat a fost găsită, dar tokenul lipsea din aceasta.",
+ "harImportErrorReadFailed": "Fișierul respectiv nu a putut fi citit.",
+ "harImportErrorUnknown": "Nu s-au putut extrage date de autentificare din fișierul HAR respectiv.",
"webSessionSecurityHint": "Tratați acest lucru ca pe o parolă: poate accesa contul dvs. web conectat până când expiră sau este revocat.",
"webNoAuthGuideTitle": "Nu sunt necesare acreditări",
"webNoAuthGuideBody": "{provider} nu are nevoie de o cheie API sau cookie. Salvați conexiunea pentru a utiliza punctul final web gratuit.",
@@ -6417,7 +6424,7 @@
"codexServiceModeUpdated": "Modul de serviciu Codex actualizat",
"codexServiceTierActive": "Tierul de serviciu Codex {tier} este activ",
"codexTierFastLabel": "Rapid",
- "codexTierFlexLabel": "Flex",
+ "codexTierFlexLabel": "Flexibil",
"commandCodeApplyFailed": "Aplicarea codului de comandă auth a eșuat",
"commandCodeApplyingApproval": "Browser aprobat, se aplică…",
"commandCodeApplyingKey": "Aplicarea cheii aprobate de browser…",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Codul de comandă auth a expirat",
"commandCodeConnected": "Codul comenzii conectat",
"commandCodeConnectionAdded": "Conexiune Cod Comandă adăugată",
+ "clearConnectionCooldown": "Șterge perioada de așteptare",
+ "clearConnectionCooldownInProgress": "Se șterge…",
+ "clearConnectionCooldownTitle": "Șterge acum perioada de așteptare — folosește această opțiune când cota a fost deja reînnoită în amonte",
"commandCodeLinkExpired": "Linkul codului de comandă a expirat",
"commandCodeOpeningStudio": "Deschidere Command Code Studio…",
"commandCodePopupBlocked": "Popup blocat. Vă rugăm să permiteți ferontele și să încercați din nou Command Code Connect.",
"commandCodeStartFailed": "Nu s-a reușit să se pornească Command Code auth",
"connectionDeleted": "Conexiune ștearsă",
"connectionFallback": "conexiune",
+ "connectionCooldownCleared": "Perioada de așteptare a fost ștearsă — conexiunea a reintrat în rutare",
"coolingConnectionsDescription": "Aceste conexiuni se răcesc după ultima solicitare. OmniRoute le va sări până expiră temporizatorul — nu e nevoie de dezactivare manuală.",
"coolingConnectionsTitle": "În prezent răcire ({count})",
+ "failedClearConnectionCooldown": "Ștergerea perioadei de așteptare a eșuat",
"failedDeleteAlias": "Nu s-a reușit ștergerea aliasului",
"failedDeleteConnection": "Nu s-a putut șterge conexiunea",
"failedDistributeProxies": "Distribuirea proxy-urilor a eșuat.",
@@ -6442,7 +6454,7 @@
"failedUpdateCliproxyRouting": "Actualizarea rutării CLIProxyAPI a eșuat",
"failedUpdateCodexLimitPolicy": "Actualizarea politicii limite Codex a eșuat",
"failedUpdateCodexServiceMode": "Actualizarea modului de serviciu Codex a eșuat",
- "filterByMedia": "Media",
+ "filterByMedia": "Conținut media",
"freeBadge": "Gratuit",
"kimiCodeApiKeyLabel": "Cheia API Kimi Code",
"modelTestFailed": "Testul modelului a eșuat",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "Setările punctului final al modelului salvat",
"searchByModelAria": "Caută după model",
"selectSupportedEndpoint": "Selectați cel puțin un punct final acceptat",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Cadru / CLI"
},
"settings": {
"title": "Setări",
@@ -6479,7 +6486,7 @@
"security": "Securitate",
"appearance": "Aspectul",
"routing": "Dirijare",
- "cache": "Cache",
+ "cache": "Memorie cache",
"resilience": "Reziliență",
"description": "Descriere",
"enable": "Activează",
@@ -6550,22 +6557,22 @@
"systemPrompt": "Prompt de sistem",
"thinkingBudget": "Gândirea bugetului",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "Proxy HTTP",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "Secțiuni proxy",
+ "requestBodyLimitTitle": "Limita corpului cererii",
+ "requestBodyLimitDescription": "Dimensiunea maximă acceptată a sarcinii utile API înainte ca un corp de cerere să fie analizat. Rutele dedicate pentru încărcări își păstrează cel puțin limita încorporată de 100 MB.",
+ "requestBodyLimitInputLabel": "Limita corpului cererii în MB",
+ "requestBodyLimitEmptyError": "Introdu o limită în MB",
+ "requestBodyLimitWholeNumberError": "Folosește un număr întreg",
+ "requestBodyLimitMinimumError": "Valoarea minimă este de {min} MB",
+ "requestBodyLimitMaximumError": "Valoarea maximă este de {max} MB",
+ "requestBodyLimitLoadFailed": "Încărcarea setărilor pentru limita cererii a eșuat",
+ "requestBodyLimitSaveSuccess": "Limita corpului cererii a fost salvată",
+ "requestBodyLimitSaveFailed": "Salvarea limitei corpului cererii a eșuat",
+ "requestBodyLimitSaving": "Se salvează...",
+ "requestBodyLimitSave": "Salvează",
+ "requestBodyLimitCurrent": "Valoarea actuală: {value}",
"cacheConfigLoadFailed": "Nu s-au putut încărca setările cache-ului",
"cacheConfigSaveSuccess": "Setările cache-ului au fost salvate",
"cacheConfigSaveFailed": "Nu s-a reușit salvarea setărilor cache",
@@ -6578,7 +6585,7 @@
"modelCatalogCacheTtlSaving": "Se salvează...",
"modelCatalogCacheTtlSave": "Salvează",
"modelCatalogCacheTtlCurrent": "Curent: {value} ms",
- "mitmProxy": "MITM Proxy",
+ "mitmProxy": "Proxy MITM",
"pricing": "Prețuri",
"storage": "Depozitare",
"policies": "Politici",
@@ -6589,59 +6596,59 @@
"enablePassword": "Activați parola",
"darkMode": "Modul întunecat",
"lightMode": "Modul de lumină",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "Memorie",
+ "memoryDesc": "Memorie conversațională persistentă între sesiuni",
+ "memoryEnabled": "Activează memoria",
+ "memoryEnabledDesc": "Când este activată, OmniRoute va insera context relevant din conversațiile anterioare.",
"memoryTokenCostWarning": "Atenție: cu memoria activată, OmniRoute injectează până la {tokens} tokenuri de context preluat în fiecare solicitare de chat — acest lucru crește utilizarea de tokenuri și costul. Pentru a omite injectarea pentru o solicitare specifică, trimiteți antetul \"x-omniroute-no-memory: true\".",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
+ "maxTokens": "Număr maxim de tokenuri",
+ "retentionDays": "Păstrare",
+ "recent": "Recente",
+ "recentDesc": "Fereastră cronologică",
"semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "semanticDesc": "Căutare vectorială",
+ "hybrid": "Hibrid",
+ "hybridDesc": "Recent + semantic",
+ "skillsTitle": "Abilități",
+ "skillsDesc": "Instrumente pentru modele",
+ "skillsEnabled": "Activează abilitățile",
+ "skillsEnabledDesc": "Permite agenților să declanșeze funcții.",
+ "skillsComingSoon": "Piața de abilități va fi disponibilă în curând.",
+ "memorySkillsTitle": "Memorie și abilități",
+ "memorySkillsDesc": "Context și capabilități persistente",
+ "modelsDevTitle": "Bază de date cu modele",
+ "modelsDevDesc": "Sincronizează automat prețurile, capabilitățile și specificațiile de la models.dev",
+ "modelsDevEnabled": "Activează sincronizarea cu models.dev",
+ "modelsDevEnabledDesc": "Preia prețurile, capabilitățile și specificațiile modelelor din baza de date open-source models.dev",
+ "modelsDevInterval": "Interval de sincronizare",
+ "syncNow": "Sincronizează acum",
+ "syncing": "Se sincronizează...",
+ "lastSync": "Ultima sincronizare",
+ "never": "Niciodată",
"justNow": "tocmai acum",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Statistici de sincronizare",
+ "modelsDevStatsDesc": "Acoperirea actuală a datelor models.dev",
"providers": "Furnizorii",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Modele cu informații despre prețuri",
+ "capabilities": "Capabilități",
+ "lastSyncCount": "Numărul de modele la ultima sincronizare",
+ "lastSyncFull": "Ultima sincronizare completă",
+ "modelsDevInfo": "Cum funcționează",
+ "modelsDevInfoDesc": "models.dev este o bază de date open-source cu specificații ale modelelor AI, întreținută de echipa SST/OpenCode. Oferă informații despre prețuri, capabilități, limite de context și modalități pentru peste 4.000 de modele de la peste 100 de furnizori.",
+ "modelsDevInfoResolution": "Ordinea de stabilire a prețurilor (de la cea mai mare prioritate):",
+ "modelsDevInfoOrder": "Suprascriere utilizator → models.dev → LiteLLM → Valoare implicită definită în cod",
"systemTheme": "Tema sistemului",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Activează modul de depanare",
"logToolSourcesToggle": "Jurnalizare surse instrumente",
"logToolSourcesDescription": "Emite o linie de jurnal de diagnosticare per solicitare, rezumând numărul de instrumente și defalcarea surselor MCP/găzduite/client.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "Fixează informațiile pe pagina principală",
"homePinnedSectionsDesc": "Alegeți ce secțiuni să fixați în partea de sus a paginii principale.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "Limitele cotelor furnizorilor",
+ "homeProviderQuotaLimitsDesc": "Fixează secțiunea privind starea cotelor furnizorilor (cu butonul Reîmprospătează tot) în partea de sus a paginii principale.",
+ "homeQuickStart": "Pornire rapidă",
+ "homeQuickStartDesc": "Afișează panoul Pornire rapidă pe pagina principală.",
+ "homeProviderTopology": "Topologia furnizorilor",
+ "homeProviderTopologyDesc": "Afișează topologia furnizorilor pe pagina principală.",
"accountEmailVisibility": "Vizibilitatea e-mailului contului",
"accountEmailVisibilityDesc": "Afișează adresele complete de e-mail ale contului în ecranele de furnizori, combinații, jurnale, cotă și playground. Dezactivați această opțiune pentru a le masca în mod implicit.",
"comboConfigMode": "Mod de configurare combo",
@@ -6657,53 +6664,53 @@
"providerQuotaAutoRefreshInterval": "Interval de reîmprospătare",
"providerQuotaAutoRefreshIntervalDesc": "Cât de des ar trebui să se reîmprospăteze vizualizarea cotei, în secunde.",
"seconds": "secunde",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Afișează elementele barei laterale",
"enableCache": "Activați memoria cache",
- "cacheTTL": "Cache TTL",
+ "cacheTTL": "TTL-ul memoriei cache",
"maxCacheSize": "Dimensiunea maximă a memoriei cache",
"clearCache": "Goliți memoria cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "Memoria cache a fost golită cu succes",
+ "clearCacheFailed": "Golirea memoriei cache a eșuat",
"cacheHits": "Hits în cache",
- "cacheMisses": "Cache Misses",
+ "cacheMisses": "Ratările memoriei cache",
"hitRate": "Rata de lovituri",
"cacheEntries": "Intrări în cache",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "cacheSettings": "Setările memoriei cache",
+ "semanticCache": "Cache semantic",
+ "maxEntries": "Număr maxim de intrări",
+ "ttlMinutes": "TTL (minute)",
+ "promptCache": "Cache pentru prompturi",
+ "strategy": "Strategie",
+ "preserveClientCache": "Păstrează memoria cache a clientului",
+ "enabled": "Activat",
"loading": "Loading...",
"saving": "Se salvează...",
- "save": "Save",
+ "save": "Salvează",
"circuitBreaker": "Întrerupător",
"retryPolicy": "Reîncercați Politica",
"maxRetries": "Reîncercări maxime",
"retryDelay": "Reîncercați Întârziere",
- "timeoutMs": "Timeout (ms)",
+ "timeoutMs": "Timp de expirare (ms)",
"enableSystemPrompt": "Activați promptul de sistem",
"systemPromptText": "Text prompt de sistem",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedAccounts": "Dezactivează automat conturile interzise",
+ "autoDisableDescription": "Marchează permanent conexiunile furnizorilor ca dezactivate dacă returnează anumite semnale terminale de interdicție (de ex., HTTP 403 „verify your account”). Acest lucru le elimină din rotația combinațiilor.",
+ "autoDisableThreshold": "Prag de interdicție",
+ "autoDisableThresholdDesc": "Numărul de semnale consecutive de interdicție necesare înainte de dezactivarea permanentă.",
+ "autoDisableBannedScope": "Aplică dezactivarea automată pentru",
+ "autoDisableBannedScopeDesc": "Locurile de autentificare (abonamente plătite și conturi gratuite) pot fi blocate de serviciul din amonte dacă OmniRoute continuă să reîncerce după o interdicție. Cheile API preplătite cu plată nu prezintă acest risc — lasă-le în grup pentru ca strategia fill-first să poată utiliza următoarea cheie.",
+ "autoDisableBannedScopeAll": "Toate conexiunile",
+ "autoDisableBannedScopeAllDesc": "Dezactivează fiecare conexiune care returnează un semnal de interdicție permanentă, inclusiv cheile API preplătite.",
+ "autoDisableBannedScopeSubscription": "Doar conturile de autentificare/abonament",
+ "autoDisableBannedScopeSubscriptionDesc": "Dezactivează locurile OAuth, cookie, sesiune și autentificare web (plătite sau gratuite). Cheile API preplătite rămân active, astfel încât rutarea să poată comuta la o alternativă.",
"customBannedSignals": "Cuvinte cheie interzise",
"customBannedSignalsDesc": "Cuvinte cheie suplimentare care declanșează detectarea blocării permanente a contului. Cuvintele cheie integrate se aplică întotdeauna.",
"customBannedSignalsPlaceholder": "de ex. api key revoked",
"noCustomBannedSignals": "Fără cuvinte cheie personalizate. Doar cuvintele cheie integrate sunt active.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Structura de reziliență",
"resilienceStructureDesc": "Această pagină configurează doar comportamentul. Starea de întrerupere live este afișată pe pagina Sănătate. Reîncercarea specifică combo-ului și controlul slotului round-robin rămân în setările combo.",
"enableThinking": "Activați gândirea",
- "maxThinkingTokens": "Max Thinking Tokens",
+ "maxThinkingTokens": "Număr maxim de tokenuri de gândire",
"enableProxy": "Activați proxy",
"perKeyProxyEnabled": "Activează alocarea proxy-ului per cheie",
"perKeyProxyEnabledDesc": "Când este activat, fiecare conexiune de furnizor poate utiliza propria alocare de proxy",
@@ -6742,27 +6749,27 @@
"themeSystem": "Sistem",
"endpointTunnelVisibility": "Vizibilitatea tunelului final",
"endpointTunnelVisibilityDesc": "Ascundeți controalele tunelului din pagina Endpoint fără a schimba starea tunelului.",
- "showCloudflareTunnel": "Cloudflare Quick Tunnel",
+ "showCloudflareTunnel": "Tunel rapid Cloudflare",
"showCloudflareTunnelDesc": "Afișați comenzile Cloudflare Quick Tunnel pe pagina Endpoint.",
"showTailscaleFunnel": "Pâlnie Tailscale",
"showTailscaleFunnelDesc": "Afișați comenzile Tailscale Funnel pe pagina Endpoint.",
"showNgrokTunnel": "Tunelul ngrok",
"showNgrokTunnelDesc": "Afișați comenzile ngrok Tunnel pe pagina Endpoint.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Ascunde elementele barei laterale",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
+ "presetAll": "Toate",
+ "presetAllDesc": "Afișează totul",
+ "presetEssentials": "Elemente esențiale",
+ "presetEssentialsDesc": "Parcurs pentru începători - Instrumentele avansate rămân disponibile în căutare",
"presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetMinimalDesc": "Doar paginile principale",
+ "presetDeveloper": "Dezvoltator",
+ "presetDeveloperDesc": "Instrumente pentru dezvoltare și proxy",
+ "presetAdmin": "Administrator",
+ "presetAdminDesc": "Monitorizare și audit",
+ "settingsSidebarTitle": "Personalizarea barei laterale",
+ "settingsSidebarDesc": "Alege ce elemente să fie afișate în bara laterală. Opțiunea Elemente esențiale păstrează instrumentele avansate disponibile în căutare.",
"hideHealthLogs": "Ascundeți jurnalele de verificare a stării de sănătate",
"hideHealthLogsDesc": "Când este ACTIVAT, suprimați mesajele [HealthCheck] din consola serverului",
"themeAccent": "Culoarea temei",
@@ -6776,19 +6783,19 @@
"themeOrange": "Portocaliu",
"themeCyan": "Cian",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Personalizează numele și sigla aplicației",
+ "appName": "Numele aplicației",
+ "appNameDesc": "Numele afișat în bara laterală și în fila browserului",
+ "customLogo": "URL pentru siglă personalizată",
+ "customLogoDesc": "URL-ul imaginii cu sigla personalizată",
+ "uploadLogo": "Încarcă sigla",
+ "resetLogo": "Restabilește valorile implicite",
+ "logoPreview": "Previzualizare",
+ "customFavicon": "Favicon pentru browser",
+ "customFaviconDesc": "URL-ul faviconului personalizat (afișat în fila browserului)",
+ "uploadFavicon": "Încarcă faviconul",
+ "resetFavicon": "Resetează faviconul",
+ "faviconPreview": "Previzualizare favicon",
"logoFileTooLarge": "Fișierul logo trebuie să aibă mai puțin de 500KB",
"faviconFileTooLarge": "Fișierul favicon trebuie să aibă mai puțin de 50KB",
"invalidLogoFileType": "Tip de fișier nevalid. Vă rugăm să încărcați PNG, JPG, SVG, GIF sau WebP.",
@@ -6876,7 +6883,7 @@
"deleteFailed": "Ștergerea eșuată",
"add": "Adaugă",
"cancel": "Anulează",
- "configure": "Configure",
+ "configure": "Configurează",
"copyEndpoint": "Copiază Endpoint-ul",
"coreEndpointHint": "Indicație Endpoint Principal",
"coreNodesHint": "Indicație Noduri de Bază",
@@ -6892,21 +6899,21 @@
"refreshInterval": "Interval De Actualizare",
"ruleModeDescription": "Descrierea Modului Regulilor"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
+ "bulkHealthcheck": "Verificare în masă a stării",
+ "bulkHealthcheckDesc": "Testează toate proxy-urile configurate folosind un URL țintă pentru a identifica proxy-urile funcționale.",
+ "healthcheckTesting": "Se testează...",
+ "healthcheckAll": "Verifică starea tuturor",
+ "healthcheckFailed": "Verificarea stării nu a putut fi executată",
+ "healthcheckTestingAll": "Se testează toate proxy-urile în paralel...",
"healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "healthcheckWorking": "Funcționale",
+ "healthcheckFailedLabel": "Eșuate",
+ "healthcheckStatus": "Stare",
+ "healthcheckProxyUrl": "URL proxy",
+ "healthcheckLatency": "Latență",
"proxyDocumentationScopeTitle": "Rezoluția domeniului de aplicare a proxy-ului",
"proxyDocumentationScopeDescBefore": "OmniRoute determină proxy-ul de ieșire în ordinea priorității:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "combinație → cont → furnizor → global",
"proxyDocumentationScopeDescAfter": ". Cel mai specific domeniu de aplicare câștigă.",
"proxyDocumentationAddTitle": "Adăugarea unui proxy personalizat",
"proxyDocumentationAddDescBefore": "Mergeți la",
@@ -6964,7 +6971,7 @@
"cancel": "Anulează",
"globalLabel": "Global",
"configure": "Configurați",
- "globalSystemPrompt": "Global System Prompt",
+ "globalSystemPrompt": "Prompt global de sistem",
"saved": "Salvat",
"beforePromptLabel": "Înainte de prompt",
"beforePromptDesc": "Injectat înainte de instrucțiunile de sistem ale agentului/furnizorului",
@@ -6978,9 +6985,9 @@
"thinkingBudgetIndependenceHint": "Funcțiile de compresie, rutare și limită de token-uri continuă să funcționeze în fiecare mod. Auto nu înseamnă „gândire auto-afişată” — elimină câmpurile de raționare ale clientului.",
"passthrough": "trecere",
"passthroughDesc": "Fără modificări — clientul controlează bugetul de gândire",
- "thinkingModePassthrough": "Passthrough",
+ "thinkingModePassthrough": "Transmitere directă",
"thinkingModePassthroughDesc": "Lăsați raționamentul clientului neschimbat (efort, rezumat, blocuri de gândire). Necesare pentru gândirea vizibilă Codex/Desktop. Implicit.",
- "thinkingModeAuto": "Auto (strip)",
+ "thinkingModeAuto": "Automat (eliminare)",
"thinkingModeAutoDesc": "Elimină toate câmpurile de gândire/raționare ale clientului (raționare, efort_raționare, gândirea Claude, gândirea Gemini_config) și lasă furnizorul să inventeze valori implicite. Poate ascunde panourile de gândire și poate întrerupe cererile de sumarizare ale clientului.",
"thinkingModeCustom": "Personalizat",
"thinkingModeCustomDesc": "Suprascrie fiecare cerere cu un buget fix de tokeni de gândire pe care îl stabilești mai jos.",
@@ -7014,7 +7021,7 @@
"errorOccurred": "A apărut o eroare",
"updatePassword": "Actualizați parola",
"setPassword": "Setați parola",
- "apiEndpointProtection": "API Endpoint Protection",
+ "apiEndpointProtection": "Protecția endpointului API",
"requireAuthModels": "Necesită cheia API pentru /models",
"requireAuthModelsDesc": "Când este ACTIVAT, punctul final /v1/models returnează 404 pentru solicitările neautentificate. Previne descoperirea modelului de către utilizatori neautorizați.",
"authModelHeading": "Model de autorizare activ",
@@ -7030,11 +7037,11 @@
"providersBlocked": "{count} furnizor(i) blocat(i) de la /modele",
"blockProviderTitle": "Blocați {provider}",
"unblockProviderTitle": "Deblocați {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "cliFingerprint": "Potrivirea amprentei CLI",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count} furnizor(i) cu amprenta CLI activă",
+ "enableFingerprintTitle": "Activează amprenta pentru {provider}",
+ "disableFingerprintTitle": "Dezactivează amprenta pentru {provider}",
"systemTransforms": "Conducta de transformare a blocurilor de sistem",
"systemTransformsDesc": "Canalul de transformări comandat de fiecare furnizor aplicat corpului cererii înainte de redirecționare. Acceptă orice ID de furnizor.",
"systemTransformsAddProvider": "Adăugați furnizorul",
@@ -7059,21 +7066,21 @@
"randomDesc": "Cont aleatoriu pentru fiecare cerere",
"leastUsed": "Cel mai puțin folosit",
"leastUsedDesc": "Alegeți contul cel mai puțin utilizat recent",
- "costOpt": "Cost Opt",
+ "costOpt": "Optimizarea costurilor",
"costOptDesc": "Prefer cel mai ieftin cont disponibil",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "RR adaptiv la resetare",
"resetAwareDesc": "Preferați conturile cu cotă rămasă sănătoasă și resetări mai apropiate",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Ponderat în funcție de cotă",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
+ "strictRandom": "Aleatoriu strict",
+ "strictRandomDesc": "Amestecă pachetul — utilizează fiecare cont o dată înainte de a amesteca din nou",
"stickyLimit": "Limită lipicioasă",
"stickyLimitDesc": "Apeluri pe cont înainte de a comuta",
"routingStrategyTitle": "Strategie de rutare",
"routingStrategySubtitle": "Potrivește 9router: cont round-robin, limite sticky și rotație combo",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Distribuire circulară",
"accountRoundRobinDesc": "Treci ciclic prin conturi pentru a distribui sarcina",
- "comboRoundRobin": "Combo Round Robin",
+ "comboRoundRobin": "Distribuire circulară combinată",
"comboRoundRobinDesc": "Treci ciclic prin țintele combo în loc să începi mereu cu prima",
"comboStickyLimit": "Limită sticky combo",
"comboStickyLimitDesc": "Apeluri per țintă combo înainte de comutare",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "Suprascrie strategia globală de cont pentru acest furnizor (paritate 9router).",
"providerRoutingStrategy": "Strategie cont",
"providerRoutingInheritGlobal": "Moștenește valoarea implicită globală",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Prag de verificare preliminară a cotei",
+ "quotaPreflightSubtitle": "Omite conturile care și-au epuizat cota înainte de a trimite solicitarea în amonte",
+ "quotaPreflightEnable": "Activează verificarea preliminară a cotei",
+ "quotaPreflightEnableDesc": "Înainte de fiecare solicitare, verifică cota rămasă a contului (intervale de 5 h / săptămânale / lunare). Conturile aflate la prag sau sub acesta sunt omise fără un apel în amonte. Pragurile pentru fiecare interval setate pe pagina Cota furnizorului au întotdeauna prioritate față de valoarea implicită de aici.",
+ "quotaPreflightCutoff": "Prag global (procent minim rămas)",
+ "quotaPreflightCutoffDesc": "Nu mai utiliza un cont atunci când cota sa rămasă scade la acest procent sau sub el, pentru fiecare interval care nu are propriul prag. Corespunde barelor cu procentul rămas de pe pagina Cota furnizorului.",
+ "quotaPreflightWindowsHint": "Intervalele cu propriul prag per interval sau per furnizor (setat în fereastra Prag de pe pagina Cota furnizorului) nu sunt afectate de această valoare implicită.",
+ "quotaPreflightLoadFailed": "Nu s-au putut încărca setările de verificare preliminară a cotei.",
"modelAliases": "Aliasuri de model",
"modelAliasesTitle": "Aliasuri de model",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "Remapează numele modelelor folosind potriviri exacte sau modele cu metacaractere.",
"addCustomAlias": "Adaugă Alias Personalizat",
"deprecatedModelId": "ID model depreciat",
"newModelId": "ID model nou",
@@ -7123,7 +7130,7 @@
"guest": "Oaspete",
"loginTime": "Ora de conectare",
"sessionAge": "Vârsta sesiunii",
- "browser": "Browser",
+ "browser": "Navigator",
"clearLocalData": "Ștergeți datele locale",
"logout": "Deconectare",
"clearLocalDataConfirm": "Ștergeți toate datele locale? Aceasta vă va reseta preferințele.",
@@ -7184,11 +7191,11 @@
"comboStrategyAria": "Strategie combinată",
"priority": "Prioritate",
"weighted": "ponderat",
- "contextRelay": "Context Relay",
+ "contextRelay": "Releu de context",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "Reîncercări maxime",
"retryDelayLabel": "Întârziere reîncercare (ms)",
- "timeoutLabel": "Timeout (ms)",
+ "timeoutLabel": "Timp de expirare (ms)",
"healthCheck": "Verificare de sănătate",
"healthCheckDesc": "Verificați prealabil disponibilitatea furnizorului",
"trackMetrics": "Urmăriți valorile",
@@ -7196,7 +7203,7 @@
"providerOverrides": "Suprascrierea furnizorului",
"providerOverridesDesc": "Suprascrierea timpului de expirare și reîncercări pentru fiecare furnizor. Setările furnizorului înlocuiesc valorile prestabilite globale.",
"providerMaxRetriesAria": "{provider} max. reîncercări",
- "providerTimeoutAria": "{provider} timeout ms",
+ "providerTimeoutAria": "Timp de expirare {provider} în ms",
"removeProviderOverrideAria": "Eliminați anularea {provider}",
"selectProviderPlaceholder": "Selectează furnizorul...",
"searchProviderPlaceholder": "Caută furnizori...",
@@ -7210,10 +7217,10 @@
"concurrencyPerModel": "Concurență / Model",
"queueTimeout": "Timp de așteptare la coadă (ms)",
"queueDepth": "Adâncime coadă",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "Prag de predare",
+ "contextRelayMaxMessages": "Număr maxim de mesaje pentru rezumat",
+ "contextRelaySummaryModel": "Model pentru rezumat",
+ "contextRelayProviderNote": "Context Relay generează în prezent predări pentru conturile Codex și utilizează aceste valori ca setări implicite globale pentru combinațiile noi sau neconfigurate.",
"providerProfiles": "Profiluri de furnizor",
"providerProfilesDesc": "Setări separate de rezistență pentru furnizorii OAuth (bazat pe sesiune) și API Key (contorizat). Furnizorii OAuth au praguri mai stricte din cauza limitelor mai mici ale ratei.",
"oauthProviders": "Furnizori OAuth",
@@ -7261,7 +7268,7 @@
"systemStorage": "Sistem și stocare",
"allDataLocal": "Toate datele stocate local pe aparatul dvs",
"databasePath": "Calea bazei de date",
- "export": "Export",
+ "export": "Exportă",
"exportDatabase": "Exportați baza de date",
"exportAll": "Exportați toate (.tar.gz)",
"importDatabase": "Importă baza de date",
@@ -7279,7 +7286,7 @@
"noBackupsYet": "Nu există copii de rezervă disponibile încă. Backup-urile vor fi create automat când datele se schimbă.",
"backupsAvailable": "{count} backup(uri) disponibil(e).",
"refresh": "Reîmprospătați",
- "confirm": "Confirm?",
+ "confirm": "Confirmați?",
"yes": "Da",
"no": "Nu",
"restore": "Restaurați",
@@ -7295,7 +7302,7 @@
"daysAgo": "acum {count}d",
"backupReasonManual": "manual",
"backupReasonPreRestore": "pre-restaurare",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
+ "connectionsCount": "{count, plural, one {# conexiune} other {# conexiuni}}",
"noChangesSinceBackup": "Nicio modificare de la ultima copie de rezervă",
"backupFailed": "Copierea de rezervă a eșuat",
"restoreFailed": "Restaurarea a eșuat",
@@ -7325,7 +7332,7 @@
"configured": "configurat",
"none": "Niciunul",
"modelOverrideValuePlaceholder": "Valoare numerică",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Separate prin virgule în limba engleză, de ex. low, medium, high",
"addKeyValue": "Adaugă cheie-valoare",
"noModelOverrides": "Nu sunt configurate suprascrieri pentru acest model.",
"modelOverrideLoadFailed": "Eroare la încărcarea suprascrierilor de model",
@@ -7374,25 +7381,25 @@
"editPricing": "Editați prețul",
"viewFullDetails": "Vezi detalii complete",
"themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Rutare adaptivă în funcție de volum",
+ "adaptiveVolumeRoutingDesc": "Scalează dinamic conexiunile în funcție de volumul sarcinii utile și de presiunea asupra debitului.",
+ "lkgpToggleTitle": "Ultimul furnizor funcțional cunoscut (LKGP)",
+ "lkgpToggleDesc": "Când este activată această opțiune, routerul reține furnizorul care a oferit cel mai recent un răspuns reușit și îl încearcă primul la solicitările ulterioare.",
"echoRequestedModelTitle": "Returnează numele modelului solicitat în răspunsuri",
"echoRequestedModelDesc": "Când este activat, câmpul `model` din răspuns returnează aliasul sau numele combo-ului solicitat de client în locul numelui modelului din amonte. Rezolvă problemele cu clienții stricți (de ex. Claude Desktop) care resping un răspuns al cărui model nu corespunde cu cel solicitat.",
"webSearchRouteTitle": "Rutare căutare web",
"webSearchRouteDesc": "Când o solicitare include un instrument nativ web_search, rutează întreaga solicitare către acest model în loc de cel implicit — util pentru furnizorii care nu implementează instrumentul de server web_search de la Anthropic. Lasă gol pentru a dezactiva.",
"webSearchRoutePlaceholder": "de ex. openrouter,anthropic/claude-3.5-sonnet",
"paidModelPatternWarning": "Acest șablon se potrivește doar cu modelele plătite — activează modelele plătite sau ajustează șablonul.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "Golește memoria cache LKGP",
+ "lkgpCacheCleared": "Memoria cache LKGP a fost golită cu succes",
+ "lkgpCacheClearFailed": "Golirea memoriei cache LKGP a eșuat",
+ "days": "Zile",
+ "lkgp": "Mod LKGP",
+ "lkgpDesc": "Ultimul furnizor funcțional cunoscut (reziliență predictibilă)",
+ "maintenance": "Întreținere",
+ "purgeExpiredLogs": "Șterge jurnalele expirate",
+ "purgeLogsFailed": "Ștergerea jurnalelor a eșuat",
"logsDeleted": "{count, plural, =0 {Nu s-au curățat jurnale expirate} one {S-a curățat # jurnal expirat} few {S-au curățat # jurnale expirate} other {S-au curățat # de jurnale expirate}}",
"resetUsageData": "Resetează datele de utilizare",
"resetUsageDataDesc": "Selectează cât de mult în urmă dorești să ștergi datele de utilizare, jurnalele de solicitări și datele analitice. Configurația furnizorilor, conexiunile, cheile API, combo-urile și setările sunt păstrate. Această acțiune nu poate fi anulată.",
@@ -7409,39 +7416,39 @@
"resetUsageFailed": "Resetarea datelor de utilizare a eșuat",
"reset": "Resetează",
"resetting": "Se resetează...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "Optimizat pentru context",
+ "contextOptDesc": "Rute bazate pe cerințele ferestrei de context și lungimea conversației",
+ "cacheOpt": "Optimizat pentru cache",
+ "cacheOptDesc": "Păstrează același prefix reutilizabil al promptului în același cont de furnizor",
+ "priorityDesc": "Rezervă secvențială - încearcă mai întâi furnizorul 1, apoi furnizorul 2 și așa mai departe",
+ "weightedDesc": "Distribuie traficul între furnizori în funcție de ponderi procentuale",
+ "modelRoutingTitle": "Reguli de rutare a modelelor",
+ "modelRoutingDesc": "Rutează automat modelele către anumite combinații folosind modele glob",
+ "addRule": "Adaugă regulă",
+ "routeToCombo": "Rutează către combinație",
+ "selectCombo": "Selectează combinația...",
+ "priorityHint": "Mai mare = verificat mai întâi. Folosește 10+ pentru modele specifice.",
+ "patternHint": "Folosește * pentru orice caractere, ? pentru un singur caracter. Nu ține cont de majuscule și minuscule.",
+ "noRoutingRules": "Nu este configurată nicio regulă de rutare. Solicitările folosesc implicit combinația globală.",
+ "routingRuleHint": "Adaugă o regulă precum claude-opus* -> frontier-combo pentru a ruta automat solicitările.",
+ "deleteRoutingRule": "Ștergi această regulă de rutare a modelelor?",
+ "exactMatchMode": "Potrivire exactă",
+ "wildcardPatternMode": "Model cu caractere wildcard",
+ "exactMatchModeDesc": "Folosește aliasuri exacte pentru ID-uri de modele retrase sau redenumite.",
+ "wildcardPatternModeDesc": "Folosește aliasuri wildcard cu * și ? atunci când o familie de modele trebuie asociată unei singure ținte.",
+ "noExactAliasesConfigured": "Nu sunt configurate aliasuri cu potrivire exactă.",
+ "wildcardRulesTitle": "Reguli wildcard",
+ "noWildcardAliasesConfigured": "Nu sunt configurate aliasuri wildcard.",
+ "overview": "Prezentare generală",
+ "unknownError": "Eroare necunoscută",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "Listă albă",
+ "syncDisabled": "Sincronizare dezactivată",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,23 +7456,23 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "Sincronizare activată",
+ "blacklist": "Listă neagră",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
+ "syncedModels": "Modele sincronizate",
+ "budget": "Buget",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "Nu s-a resetat prețul: {reason}",
- "tab": "Tab",
+ "tab": "Filă",
"pricingSavedProvider": "Prețul salvat pentru {provider}",
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "Nu s-a salvat prețul: {reason}",
"pricingResetProvider": "Resetarea prețului pentru {provider}",
- "nextSync": "Next Sync",
+ "nextSync": "Următoarea sincronizare",
"pricingSyncFailedWithReason": "Sincronizarea prețurilor a eșuat: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "Șterge prețurile sincronizate",
+ "compressionTitle": "Comprimarea prompturilor",
+ "compressionDesc": "Reduce utilizarea tokenurilor prin comprimarea prompturilor înainte de a le trimite furnizorilor",
"compressionGuidanceFullGuideLink": "Ghid complet de compresie",
"compressionGuidanceShow": "Detalii",
"compressionGuidanceHide": "Ascunde detaliile",
@@ -7481,15 +7488,15 @@
"tokenSaverInputCompressionDesc": "Rescrie istoricul de chat eligibil, păstrând codul, URL-urile și intenția.",
"tokenSaverFineTunePrefix": "Ajustează fin fiecare motor pe",
"tokenSaverFineTuneSuffix": "sau combină motoarele per solicitare pe",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Mod de comprimare",
+ "compressionModeOff": "Dezactivat",
+ "compressionModeOffDesc": "Nu se aplică nicio comprimare",
+ "compressionModeLite": "Ușor",
+ "compressionModeLiteDesc": "Reducerea spațiilor albe și a liniilor goale",
+ "compressionModeStandard": "Standard (Omul cavernelor)",
+ "compressionModeStandardDesc": "Compresie bazată pe reguli, cu peste 30 de modele, care păstrează blocurile de cod și URL-urile",
+ "compressionModeAggressive": "Agresiv",
+ "compressionModeAggressiveDesc": "Rezumare + compresia rezultatelor instrumentelor + învechire progresivă pentru economii maxime",
"compressionModeUltra": "Ultra",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "Configurație agresivă a motorului",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "Numărul de mesaje recente păstrate la fiecare nivel de vechime (mai mare = mai păstrat)",
"compressionToolStrategies": "Strategii de rezultate ale instrumentului",
"compressionToolStrategiesDesc": "Comutați strategiile de compresie pentru diferite tipuri de rezultate de scule",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "Setări generale",
+ "compressionAutoTrigger": "Prag de declanșare automată",
+ "compressionCacheTTL": "TTL-ul cache-ului",
+ "compressionPreserveSystem": "Păstrează promptul de sistem",
"compressionPreserveSystemAlways": "Întotdeauna",
"compressionPreserveSystemWhenNoCache": "Când nu există cache",
"compressionPreserveSystemNever": "Niciodată",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "Salvat",
"compressionExclusionsCount": "{count, plural, one {# excludere} other {# excluderi}} configurate",
"compressionExclusionsEmpty": "Nici o excludere configurată — fiecare model/endpoint este eligibil pentru compresie (comportament implicit).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Configurarea motorului Caveman",
+ "compressionCavemanConfigDesc": "Ajustați motorul de compresie bazat pe reguli",
"compressionCavemanPanelHint": "Starea pornit/oprit și nivelul acestuia sunt setate în panou:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Comprimă rolurile mesajelor",
+ "compressionRoleUser": "Utilizator",
+ "compressionRoleAssistant": "Asistent",
+ "compressionRoleSystem": "Sistem",
+ "compressionMinLength": "Lungimea minimă a mesajului",
+ "compressionSkipRules": "Reguli de compresie de omis",
+ "compressionSkipRulesDesc": "Faceți clic pe reguli pentru a le omite în timpul compresiei",
+ "compressionPreservePatterns": "Modele de păstrat",
+ "compressionPreservePatternsDesc": "Modele regex care nu sunt comprimate niciodată (câte unul pe linie)",
+ "compressionLogTitle": "Jurnal de compresie",
+ "compressionLogEmpty": "Nu există încă solicitări comprimate. Statisticile de compresie vor apărea aici atunci când solicitările sunt procesate cu compresia activată.",
"minutes": "minute",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
+ "compressionModeRtkDesc": "Filtrarea rezultatelor instrumentelor în funcție de comandă",
+ "compressionModeCodexResponses": "Rezultatele instrumentului Responses",
+ "compressionModeCodexResponsesDesc": "Compresie conservatoare pentru rezultate eligibile de shell, patch-uri, căutare, compilare și JSON",
+ "compressionModeStacked": "În cascadă",
+ "compressionModeStackedDesc": "Filtrarea rezultatelor instrumentelor cu RTK, urmată de compresia mesajelor cu Caveman",
+ "qdrantTitle": "Qdrant (memorie vectorială)",
+ "qdrantDesc": "Opțional. Indexează memoriile semantice într-o bază de date vectorială externă pentru o regăsire mai rapidă.",
+ "qdrantStatusActive": "Activ",
+ "qdrantStatusError": "Eroare",
+ "qdrantStatusDisabled": "Dezactivat",
+ "qdrantEnable": "Activează Qdrant",
+ "qdrantEnableDesc": "Când este activată, strategia semantică/hibridă poate utiliza Qdrant pentru a regăsi memorii.",
+ "qdrantTesting": "Se testează...",
+ "qdrantTestConnection": "Testează conexiunea",
+ "qdrantSaved": "Configurația a fost salvată",
+ "qdrantSaveError": "Salvarea configurației a eșuat",
+ "qdrantHostHint": "Fără port. Exemplu: 127.0.0.1 sau http://qdrant",
"qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "qdrantPortHint": "Valoare implicită Qdrant: 6333",
+ "qdrantCollectionHint": "Locul în care vor fi stocate punctele de memorie.",
+ "qdrantEmbeddingModel": "Model de încorporare",
+ "qdrantHelpTitle": "Ajutor pentru configurarea rapidă",
+ "qdrantHelpQuickTitle": "Configurare rapidă (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Gazdă: IP/URL Qdrant, Port: 6333, Colecție: omniroute_memory.",
+ "qdrantHelpStep2": "2. Dacă utilizați nvidia/llama-nemotron-embed-vl-1b-v2:free, folosiți dimensiunea 2048 pentru colecție.",
+ "qdrantHelpStep3": "3. Câmpul modelului: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Salvați, testați conexiunea, apoi testați căutarea.",
+ "qdrantEmbeddingQuickSelect": "Selectare rapidă dintre modelele descoperite...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "Format: provider/model. Datele de autentificare ale furnizorului trebuie configurate.",
+ "qdrantApiKeyPlaceholderKeep": "(lăsați necompletat pentru a păstra cheia actuală)",
+ "qdrantApiKeyPlaceholderOptional": "(lăsați necompletat dacă nu este utilizat)",
+ "qdrantSaveHint": "Sfat: editați gazda/portul/colecția/modelul și faceți clic pe Salvați. Cheia API este opțională.",
+ "qdrantSearchTestTitle": "Test de căutare",
+ "qdrantSearchTestDesc": "Generează o încorporare și efectuează o căutare în Qdrant.",
+ "qdrantSearchPlaceholder": "Exemplu: preferințe ale utilizatorului, istoric etc.",
+ "qdrantNoResults": "Niciun rezultat (sau Qdrant nu este configurat).",
+ "qdrantCleanupTitle": "Păstrare și curățare",
+ "qdrantCleanupDesc": "Elimină punctele expirate și vechi pe baza",
+ "searching": "Se caută...",
+ "cleaning": "Se curăță...",
+ "cleanNow": "Curățați acum",
"optional": "Opțional",
"current": "Curent",
"remove": "Eliminați",
@@ -7596,19 +7603,19 @@
"resilienceScope": "Domeniu de aplicare:",
"resilienceTrigger": "Declanșator:",
"resilienceEffect": "Efect:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "Coadă de solicitări și limită de frecvență",
+ "resilienceAutoEnableApiKeyProviders": "Activare automată pentru furnizorii care utilizează chei API",
+ "resilienceRequestsPerMinute": "Solicitări pe minut",
+ "resilienceMinTimeBetweenRequests": "Timp minim între solicitări",
+ "resilienceConcurrentRequests": "Solicitări simultane",
+ "resilienceConnectionScopeConcurrentRequests": "Solicitări simultane per conexiune/domeniu de cotă",
+ "resilienceGlobalConcurrentRequests": "Solicitări simultane globale către serviciile din amonte (0 = dezactivat)",
"resilienceMaxQueueWaitTime": "Timp maxim de așteptare la coadă",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Perioadă de așteptare de bază",
+ "resilienceUseUpstreamRetryHints": "Utilizați indicațiile de reîncercare ale serviciului din amonte",
+ "resilienceDefaultPerProvider": "Implicit (per furnizor)",
+ "resilienceAlwaysOn": "Întotdeauna activat",
+ "resilienceAlwaysOff": "Întotdeauna dezactivat",
"routingRemoveEntry": "Eliminați intrarea",
"routingNeedlesSubstrings": "Ace (subșiruri care să se potrivească)",
"routingCaseSensitive": "Sensibil cu majuscule",
@@ -7665,14 +7672,14 @@
"routingAntigravitySignatureDesc": "Controlează dacă OmniRoute reutilizează doar semnăturile de gândire Gemini stocate sau acceptă semnături validate furnizate de client în fluxurile de apelare a instrumentelor compatibile cu Antigravity.",
"routingAntigravitySignatureEnabledLabel": "Activat",
"routingAntigravitySignatureEnabledDesc": "Comportamentul curent. Ignoră semnăturile furnizate de client și continuă să utilizeze fluxul OmniRoute stocat.",
- "routingAntigravitySignatureBypassLabel": "Bypass",
+ "routingAntigravitySignatureBypassLabel": "Ocolire",
"routingAntigravitySignatureBypassDesc": "Acceptă semnăturile furnizate de client după o validare simplă și revine la semnătura stocată atunci când sunt nevalide.",
"routingAntigravitySignatureBypassStrictLabel": "Bypass strict",
"routingAntigravitySignatureBypassStrictDesc": "Solicită validarea completă protobuf înainte de a accepta o semnătură furnizată de client.",
"routingHeaderFingerprintTitle": "Amprenta antet (per furnizor)",
"routingServerRejectedSave": "⚠ Salvare respinsă de server:",
"routingAddTransformOp": "Adăugați o transformare op",
- "routingClientCacheControlTitle": "Client Cache Control",
+ "routingClientCacheControlTitle": "Controlul memoriei cache a clientului",
"routingClientCacheControlDesc": "Configurează dacă OmniRoute păstrează marcajele cache_control furnizate de client",
"routingClientCacheControlAutoDesc": "Pentru fluxuri deterministe compatibile cu Claude, păstrează cache_control furnizat de client ca atare. Dacă solicitarea nu are cache_control, OmniRoute nu injectează niciun marcaj deținut de bridge pentru compatibilitatea cu proxy-uri terțe compatibile cu CC.",
"routingClientCacheControlAlwaysLabel": "Păstrează întotdeauna",
@@ -7694,28 +7701,28 @@
"visionBridgePrompt": "Prompt de pod",
"visionBridgePromptPlaceholder": "Descrieți această imagine concis.",
"visionBridgePromptHint": "Trimis către modelul vision înainte ca descrierea extrasă să fie reinjectată în solicitarea inițială.",
- "visionBridgeTimeoutMs": "Timeout (ms)",
+ "visionBridgeTimeoutMs": "Timp de expirare (ms)",
"visionBridgeMaxImagesPerRequest": "Imagini maxime per cerere",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Număr maxim de pași de temporizare progresivă",
+ "resilienceProviderBreakerTitle": "Întrerupător de circuit per furnizor",
+ "resilienceFailureThreshold": "Prag de eșec",
+ "resilienceDegradationThreshold": "Prag de degradare",
"resilienceResetTimeout": "Resetați timeout",
"resilienceFailureThresholdLabel": "Pragul de eșec",
"resilienceResetTimeoutLabel": "Resetați timeout",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Perioadă de așteptare a conexiunii",
"resilienceUseUpstreamRetryHintsLabel": "Folosiți indicii de reîncercare în amonte",
"resilienceUseUpstream429BreakerLabel": "Utilizați în amonte 429 indicii (întrerupător)",
"resilienceMaxBackoffStepsLabel": "Pași maximi de retragere",
"resilienceYes": "Da",
"resilienceNo": "Nu",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Implicit",
"storageDatabaseBackupRetention": "Reținerea backupului bazei de date",
"storageDatabaseBackups": "Copii de rezervă ale bazei de date",
"storageBackupRetentionDescription": "Copiile de rezervă automate SQLite sunt stocate în",
"storageBackupRetentionHelp": "Configurează câte instantanee să fie păstrate și, opțional, șterge copiile de rezervă mai vechi de un anumit număr de zile.",
"storageBackupCount": "{count} copii de rezervă",
- "storageBackupMaximum": "Max {count}",
+ "storageBackupMaximum": "Maxim {count}",
"storageBackupAgeRetention": "Retenție {count} zile",
"storageBackupAgeRetentionOff": "Retenție după vechime dezactivată",
"storageBackupKeepLatest": "Păstrează cele mai recente copii de rezervă",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "JSON-ul de tip legacy a fost importat cu succes!",
"jsonImportFailed": "Importul JSON a eșuat",
"jsonImportError": "Eroare în timpul importului JSON",
+ "jsonImportAuthRequired": "Este necesară autentificarea pentru a importa o configurație JSON veche. Conectați-vă sau finalizați mai întâi configurarea.",
+ "databaseSettingsAuthRequiredTitle": "Autentificare necesară",
+ "databaseSettingsAuthRequiredBody": "Setările bazei de date și importul JSON sunt disponibile numai unui administrator autentificat. Conectați-vă sau finalizați configurarea pentru a le vizualiza și edita.",
+ "databaseSettingsAuthRequiredCta": "Conectare",
"storagePurgeData": "Curățați datele",
"storagePurgeDataDesc": "Șterge imediat toate înregistrările fără a aplica verificările de retenție. A se utiliza cu prudență.",
"storageRetentionCleanup": "Setări de retenție",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "mod: {mode}",
"compressionAdaptiveOff": "Buget de context adaptiv: dezactivat (declanșare automată moștenită)",
"compressionAdaptiveTarget": "Adaptiv ({mode}, politică: {policy}) — țintă ≈ {target, number} tokenuri (pentru o fereastră de {contextLimit, number} tokenuri)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Buget de context adaptiv",
+ "compressionAdaptiveModeOff": "Dezactivat (declanșare automată veche)",
+ "compressionAdaptiveModeFloor": "Prag minim (garantează întotdeauna încadrarea)",
+ "compressionAdaptiveModeReplace": "Înlocuiește declanșarea automată",
+ "compressionAdaptivePolicy": "Politica bugetului",
+ "compressionAdaptivePolicyReserve": "Rezervă pentru ieșire",
+ "compressionAdaptivePolicyPercentage": "Procent din fereastră",
+ "compressionAdaptivePolicyAbsolute": "Buget absolut de tokenuri",
"compressionOutputStylesDescription": "Injectează instrucțiuni de modelare a răspunsului fără a rescrie ieșirea furnizorului. Combină liber.",
"mcpAccessibilityDescription": "Limitează domeniul de aplicare al ieșirilor instrumentelor MCP (stocare separată).",
"compressionStylesTileSummary": "{tokens, number} tokenuri salvate · {runs, plural, one {# rulare stilizată} few {# rulări stilizate} other {# de rulări stilizate}}",
@@ -7840,7 +7851,7 @@
"minimal": "Minim",
"standard": "Standard",
"aggressive": "Agresiv",
- "lite": "Lite",
+ "lite": "Simplificat",
"full": "Complet",
"ultra": "Ultra"
},
@@ -7854,7 +7865,7 @@
"description": "Marcaje de regăsire adresate prin conținut."
},
"lite": {
- "label": "Lite",
+ "label": "Simplificat",
"description": "Curățare spații libere și formatare."
},
"rtk": {
@@ -7862,11 +7873,11 @@
"description": "Filtrare output comenzi."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Ieșirea instrumentului Responses",
+ "description": "Comprimare conservatoare pentru ieșirile acceptate ale instrumentului Responses."
},
"headroom": {
- "label": "Headroom",
+ "label": "Marjă de siguranță",
"description": "Compactare JSON tabulară."
},
"relevance": {
@@ -7874,7 +7885,7 @@
"description": "Scor de extragere a propozițiilor în raport cu ultima interogare a utilizatorului."
},
"caveman": {
- "label": "Caveman",
+ "label": "Omul peșterilor",
"description": "Compresie de proză bazată pe reguli."
},
"aggressive": {
@@ -7904,12 +7915,12 @@
"description": "Scara YAGNI: cea mai mică modificare funcțională, fără abstracții nesolicitate."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Coadă de cal (dezvoltator senior comod)",
+ "description": "Disciplina dezvoltatorului senior comod: urcă treptele YAGNI, remediază cauza principală, aplică cea mai mică modificare funcțională."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "Am ADHD (acțiunea pe primul loc)",
+ "description": "Rezultat orientat spre acțiune: începe cu următoarea acțiune, pași numerotați, un singur pas următor concret, fără introducere."
},
"terse-cjk": {
"label": "CJK concis (文言)",
@@ -7920,13 +7931,21 @@
"resilienceEnableServerSideWait": "Activați așteptarea pe server",
"resilienceMaximumRetries": "Numărul maxim de încercări",
"resilienceMaximumWaitPerRetry": "Așteptare maximă pentru fiecare reîncercare",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "Piața SkillsMP",
"memorySkillsFailedToSave": "Salvare eșuată",
"memorySkillsApiKey": "Cheia API",
"memorySkillsActiveSkillsProvider": "Furnizor activ de abilități",
- "cliproxyapiFallback": "CLIProxyAPI Fallback",
+ "cliproxyapiFallback": "CLIProxyAPI de rezervă",
"cliproxyapiEnableFallback": "Activați CLIProxyAPI Fallback",
"cliproxyapiUrl": "URL CLIProxyAPI",
+ "headroomProxyTitle": "Proxy Headroom",
+ "headroomProxyDesc": "URL-ul proxy-ului opțional Headroom pentru economisirea tokenurilor. Dacă este gol, se utilizează HEADROOM_URL sau http://localhost:8787.",
+ "headroomProxyUrl": "URL Headroom",
+ "headroomProxyUrlHint": "URL-urile loopback pot fi pornite din această pagină. URL-urile externe sunt doar verificate.",
+ "headroomProxySave": "Salvează",
+ "headroomProxyStart": "Pornește",
+ "headroomProxyStop": "Oprește",
+ "headroomProxyExternalHint": "Acest URL nu este loopback, așadar OmniRoute nu va porni interfața CLI locală.",
"cliproxyapiStatus": "Stare CLIProxyAPI",
"cliproxyapiNotDetected": "Nedetectat",
"cliproxyapiImportAuthTitle": "Importă conturi din CLIProxyAPI",
@@ -7934,11 +7953,11 @@
"cliproxyapiImportAuthButton": "Importă conturi",
"payloadRulesTitle": "Reguli de sarcină utilă",
"payloadRulesDesc": "Configurează mutațiile payload-ului cererii în funcție de model și protocol. Modificările sunt persistate în setări și reîncărcate la cald în runtime imediat după salvare.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "implicit",
"payloadRuleDefaultDesc": "Aplică parametrii doar atunci când calea țintă lipsește din payload-ul de ieșire.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "suprascriere",
"payloadRuleOverrideDesc": "Forțează valorile în payload, înlocuind orice există deja la calea respectivă.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "filtru",
"payloadRuleFilterDesc": "Elimină parametrii blocați din payload înainte ca cererea upstream să fie trimisă.",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "La fel ca default, dar valorile de tip șir sunt analizate mai întâi ca JSON atunci când este posibil. Aliasul de intrare moștenit default-raw este de asemenea acceptat la salvare.",
@@ -7976,28 +7995,28 @@
"responsesStateTitle": "Stare Responses",
"responsesStateDesc": "Controlează modul în care OmniRoute redirecționează previous_response_id.",
"responsesStateModeLabel": "Gestionare previous_response_id",
- "responsesStateModeAuto": "Auto",
+ "responsesStateModeAuto": "Automat",
"responsesStateModeStrip": "Eliminare",
"responsesStateModePreserve": "Păstrare",
"responsesStateHint": "Auto elimină previous_response_id cu excepția cazului în care o conexiune activează explicit stocarea OpenAI Responses. Eliminare este cea mai sigură opțiune pentru clienții stateless, cum ar fi VS Code Custom Endpoint; contextul depinde apoi de trimiterea istoricului complet de către client.",
"responsesStateSaveError": "Eșec la actualizarea setării pentru starea Responses",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Nivel rapid Codex",
"codexFastTierDesc": "Injectați global service_tier=priority pentru cererile OpenAI Codex.",
"codexFastTierHint": "Când este activat, OmniRoute adaugă service_tier=priority la solicitările Codex de ieșire pentru conexiuni care nu specifică deja un nivel. Nivelul prioritar necesită o cheie API OpenAI Enterprise sau calea ChatGPT-auth Codex; alte tipuri de chei vor primi o eroare legată de nivel de la OpenAI. Setările per conexiune de pe pagina furnizorului Codex au prioritate.",
"codexFastTierSaveError": "Nu s-a putut actualiza setarea Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Ping automat pentru cota Codex",
+ "codexAutoPingDesc": "Activare opțională pentru fiecare conexiune: trimite o solicitare mică imediat după resetarea ferestrei unei sesiuni Codex, astfel încât aceasta să nu fie inactivă când aveți nevoie de ea.",
+ "codexAutoPingWarning": "Consumă o cantitate mică din cota Codex reală la fiecare ping. Este dezactivată în mod implicit — activați-o doar pentru conexiunile pe care vă bazați în mod activ.",
+ "codexAutoPingSaveError": "Actualizarea setării de ping automat Codex a eșuat",
+ "codexAutoPingToggleAria": "Comutați pingul automat pentru cota Codex pentru {connection}",
"codexFastTierTierLabel": "Nivel de serviciu",
"codexFastTierTierPriority": "Prioritate",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierFlex": "Flexibil",
"codexFastTierTierDefault": "Implicit",
"codexFastTierModelsLabel": "Modele Fast-tier",
"codexFastTierModelsHint": "Doar modelele bifate primesc service_tier atunci când Fast Tier este activat.",
"codexFastTierModelCheckbox": "Activează Fast Tier pentru {model}",
- "claudeFastModeTitle": "Claude Fast Mode",
+ "claudeFastModeTitle": "Mod rapid Claude",
"claudeFastModeDesc": "Optați solicitările Claude selectate în modul rapid antropic (viteză: „rapid”).",
"claudeFastModeHint": "Anthropic nu acceptă oficial modul rapid pentru clienții în stil SDK. Când este activat, OmniRoute redirecționează un antet X-CPA-Force-Fast-Mode, astfel încât o versiune CLIProxyAPI asociată să poată opta pentru falsificarea punctului de intrare. Doar modelele Opus enumerate sunt supuse controlului Anthropic la nivelul clientului. Nivelul de abonament, planul Max și soldul creditului în modul rapid sunt încă aplicate pe partea serverului — Anthropic poate returna credite out_of_credit chiar și atunci când comutatorul este activat.",
"claudeFastModeModelsLabel": "Aplicat modelelor ({count})",
@@ -8050,7 +8069,7 @@
"pending": "Modificări nesalvate",
"badge": {
"bypassable": "Permite bypass prin scope-ul manage",
- "strict": "Strict loopback",
+ "strict": "Loopback strict",
"auth_required": "Autentificare necesară",
"public": "Public",
"always_protected": "Întotdeauna protejat",
@@ -8067,7 +8086,7 @@
},
"resilienceBaseCooldownLabel": "Răcire de bază",
"scopeLabel": "Domeniul de aplicare",
- "triggerLabel": "Trigger",
+ "triggerLabel": "Declanșator",
"effectLabel": "Efect",
"statusEnabled": "Activat",
"statusDisabled": "Dezactivat",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "Interval global de verificare",
"resilienceCredentialHealthEveryMinutes": "La fiecare {minutes} min",
"resilienceCredentialHealthHint": "0 dezactivează scanarea în fundal (max. 1440 min = 24 h). Conexiunile cu propria valoare de verificare a stării ignoră această valoare globală; 0 pe o conexiune o exclude chiar dacă scanarea globală e pornită.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "Activat întotdeauna pentru {provider} — este necesar pentru siguranța contului OAuth și nu poate fi dezactivat.",
+ "forcedFingerprintBadge": "Obligatoriu",
"sessionAffinityTitle": "Afinitate de sesiune",
"sessionAffinityDesc": "Păstrează o conversație pe același cont timp de atâtea secunde, pentru orice furnizor. 0 dezactivează opțiunea.",
"sessionAffinityTtl": "TTL afinitate (secunde)",
@@ -8198,24 +8217,24 @@
"modelLockoutMaxBackoffStepsDescription": "Numărul maxim de pași de backoff înainte ca durata de cooldown să nu mai crească. Limita Cooldown maxim este atinsă prima în majoritatea configurațiilor, făcând din aceasta un plafon de siguranță pentru situațiile în care Cooldown maxim este mărit.",
"disableSessionStickiness": "Dezactivare persistență sesiune",
"disableSessionStickinessDesc": "Combinațiile round-robin și aleatorii comută la o conexiune diferită la fiecare solicitare, în loc să fixeze o întreagă conversație la o singură conexiune pe baza hash-ului primului mesaj. Lăsați dezactivat pentru a păstra accesările din cache-ul de prompturi pentru conversațiile cu mai multe replici. Suprascrierile per combinație au prioritate.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Rutare în funcție de localitatea cache-ului de prompturi",
+ "promptCacheAffinityDesc": "Preferă același cont de furnizor pentru cheile de cache ale prompturilor care corespund, păstrând în același timp comutarea de rezervă bazată pe stare și cotă.",
+ "reasoningTokenBuffer": "Memorie tampon pentru tokenurile de raționament",
+ "reasoningTokenBufferDesc": "Permite rutării combinate să adauge spațiu suplimentar max_tokens numai pentru modelele de raționament cunoscute, atunci când întreaga memorie tampon se încadrează într-o limită de ieșire cunoscută.",
+ "zeroLatencyOptimizations": "Optimizări cu latență zero",
+ "zeroLatencyOptimizationsDesc": "Activați opțional hedgingul, omiterile predictive TTFT și comprimarea proactivă a solicitărilor de rezervă. Lăsați opțiunea dezactivată pentru a împiedica aceste funcții de latență să concureze țintele sau să comprime solicitările de rezervă.",
"credentialRedaction": "Mascare date de autentificare",
"credentialRedactionDesc": "Mascați cheile API, tokenurile și secretele din contextul trimis către furnizori și din răspunsuri.",
"enableCredentialRedaction": "Activează redactarea credențialelor",
"enableCredentialRedactionDesc": "Elimină cheile API, tokenurile, cheile private și JWT-urile din mesaje, apeluri de instrumente și răspunsuri.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Sincronizare automată dezactivată",
+ "pricingAutoSyncEnabled": "Sincronizare automată activată",
"modalityBridgeIntro": "Transformați conținutul multimodal în text înainte să ajungă la modele care procesează doar text. Punțile pentru imagine, audio și video sunt disponibile și configurabile.",
"modalityBridgeVisionTab": "Viziune",
"modalityBridgeAudioTab": "Audio",
"modalityBridgeVideoTab": "Video",
"modalityBridgeSubTabsAria": "Secțiuni Pod Modality",
- "modalityBridgeVisionTitle": "Vision Bridge",
+ "modalityBridgeVisionTitle": "Punte vizuală",
"modalityBridgeVisionDesc": "Descrie imaginile cu un model de viziune și continuă cu modelul de text ales de utilizator.",
"modalityBridgeMode": "Mod",
"modalityBridgeModeAuto": "Automat (recomandat)",
@@ -8238,8 +8257,8 @@
"modalityBridgeCacheEnabledDesc": "Reutilizați descrierile pentru imagini identice (cheie SHA-256, în memorie).",
"modalityBridgeCacheTtlMinutes": "Cache TTL (minute)",
"modalityBridgeCacheMaxEntries": "Numărul maxim de intrări în cache",
- "modalityBridgeStatsBridged": "bridged",
- "modalityBridgeStatsCacheHits": "cache hits",
+ "modalityBridgeStatsBridged": "intermediat",
+ "modalityBridgeStatsCacheHits": "reușite din cache",
"modalityBridgeStatsFailures": "defecțiuni",
"modalityBridgeStatsLastUsed": "ultimul folosit",
"modalityBridgeStatsNever": "niciodată",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "Sănătate",
"cliproxyapiPort": "Port",
"qdrantHost": "Gazdă",
- "qdrantCollection": "Colecție",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Colecție"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
+ "title": "Motor RTK",
+ "description": "Compresie adaptată comenzilor pentru rezultatele instrumentelor, jurnalele terminalului și rezultatele compilării.",
+ "enabled": "Activat",
+ "intensity": "Intensitate",
+ "intensityMinimal": "Minimă",
"intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "intensityAggressive": "Agresivă",
+ "toolResults": "Rezultatele instrumentelor",
+ "assistantMessages": "Mesajele asistentului",
+ "codeBlocks": "Blocuri de cod",
"filterCatalog": "Catalog de filtrare",
"filterCatalogDesc": "Filtre de ieșire disponibile în funcție de categorie",
"guidedConfig": "Configurare",
"guidedConfigDesc": "Ajustați modul în care RTK filtrează ieșirea terminalului",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "Număr maxim de linii",
+ "maxChars": "Număr maxim de caractere",
"deduplicateThreshold": "Deduplicați pragul",
"customFilters": "Filtre personalizate",
"detectedType": "Tip detectat",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "Eșecuri",
"rawOutputAlways": "Întotdeauna",
"rawOutputMaxBytes": "Octeți maxim de ieșire brută",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "Testarea filtrelor",
+ "pasteOutput": "Lipiți rezultatul instrumentului pentru a testa filtrarea...",
"presetHigh": "Agresiv",
"presetLow": "Lumină",
"presetMaxChars": "Numărul maxim de caractere de ieșire",
"presetMaxLines": "Max linii de ieșire",
"presetMedium": "Standard",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "Rulează",
+ "result": "Rezultat",
+ "previewEmpty": "Rulați un exemplu pentru a previzualiza rezultatul RTK.",
+ "detected": "Detectat",
"masterSwitchOffAlert": "Comutatorul principal Token Saver este DEZACTIVAT — aceste setări nu vor afecta cererile până când nu îl activați din pagina Endpoint.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "Tokenuri filtrate",
+ "filtersActive": "Filtre active",
+ "requests": "Solicitări",
+ "avgSavings": "Economie medie",
"simpleMode": "Simplu",
"advancedMode": "Avansat",
"searchFilters": "Filtre de căutare...",
@@ -8477,7 +8488,7 @@
"savings": "Economii",
"original": "Original",
"compressed": "Comprimat",
- "diff": "Diff",
+ "diff": "Diferențe",
"last7Days": "Ultimele 7 zile",
"noDataYet": "Nu există date încă",
"runs": "Rulări",
@@ -8598,14 +8609,14 @@
},
"intensity": {
"lite": "Lite",
- "full": "Full",
+ "full": "Complet",
"ultra": "Ultra"
}
},
"modeOptions": {
"default": "Implicit",
"off": "Oprit",
- "lite": "Lite",
+ "lite": "Minimal",
"standard": "Standard",
"aggressive": "Agresiv",
"ultra": "Ultra",
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "Combinații de compresie",
+ "description": "Definește modul în care motoarele sunt combinate pentru diferite scenarii de rutare.",
+ "createCombo": "Creează o combinație de compresie",
+ "editCombo": "Editează",
+ "deleteCombo": "Șterge",
+ "deleteConfirm": "Ștergi această combinație de compresie?",
+ "pipeline": "Flux de procesare",
+ "addStep": "Adaugă un pas",
+ "removeStep": "Elimină",
+ "name": "Nume",
+ "descriptionField": "Descriere",
+ "languagePacks": "Pachete lingvistice",
+ "outputMode": "Mod de ieșire",
+ "assignToRouting": "Atribuie combinațiilor de rutare",
+ "noAssignments": "Nu există combinații de rutare disponibile",
+ "default": "Implicit",
+ "setAsDefault": "Setează ca implicit",
+ "save": "Salvează",
+ "cancel": "Anulează",
+ "enabled": "Activat",
"loading": "Se încarcă…",
"hubTitle": "Hub de compresie",
"hubDescription": "Alege ce profil de compresie rulează la nivel global.",
@@ -8657,28 +8668,28 @@
"contextEditingNote": "În prezent disponibil doar pentru Claude (Anthropic). Este un mod delegat: furnizorul șterge blocurile vechi de utilizare a instrumentelor pe partea de server — noi nu rescriem mesajul. Nu afectează alți furnizori.",
"namedCombos": "Combinații denumite",
"namedCombosDescription": "Salvați diferite pipeline-uri și atribuiți-le unor combinații specifice de rutare.",
+ "activeProfileMasterSwitchOffWarning": "Profilul activ de mai jos nu va rula până când comutatorul principal „Comprimarea prompturilor” nu este activat.",
+ "activeProfileMasterSwitchOffCta": "Activează-l în Setări",
"comboNamePlaceholder": "Nume combinație",
"descriptionPlaceholder": "Descriere",
"nameRequired": "Introduceți un nume de combinație înainte de a salva.",
"pipelineRequired": "Adăugați cel puțin un pas de pipeline înainte de a salva.",
"saveComboFailed": "Eroare la salvarea combinației (HTTP {status}).",
"deleteNamedConfirm": "Ștergeți combinația „{name}”?",
- "intensityLite": "Lite",
+ "intensityLite": "Minimal",
"intensityFull": "Complet",
"intensityUltra": "Ultra",
"active": "Activ",
"languagePacksList": "Pachete de limbi: {packs}",
"dragToReorder": "Trageți pentru a reordona pasul",
"engine": "Motor",
- "intensity": "Intensitate",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Intensitate"
},
"compressionStudio": {
"noRun": "Nicio rulare de compresie disponibilă.",
"liveDataHint": "Datele în timp real sosesc prin canalul de compresie WebSocket.",
"cockpitView": "Vizualizare cockpit",
- "canvas": "Canvas",
+ "canvas": "Pânză",
"waterfall": "Cascadă",
"replayDone": "Redare finalizată",
"pauseReplay": "Întrerupeți redarea",
@@ -8687,7 +8698,7 @@
"replay": "Redare",
"resetReplay": "Resetați redarea",
"stepProgress": "pasul {current}/{total}",
- "inlineView": "Inline",
+ "inlineView": "În linie",
"splitComingSoon": "Vizualizare divizată (în curând)",
"inputPlaceholder": "Lipește un prompt, rezultatul unui instrument sau contextul…",
"activeCombined": "Activ în fluxul combinat",
@@ -8701,7 +8712,7 @@
"run": "Rulează",
"laneRejected": "respins: {reason}",
"error": "eroare",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Previzualizarea fluxului de procesare combinat a eșuat: {reason}",
"combinedFlow": "Flux combinat",
"eachLayer": "Fiecare strat separat",
"diff": "Diferență",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Activează motorul",
"enableDescription": "Rulează ultimul în stivă (după ce RTK/Caveman curăță textul, OmniGlyph convertește restul în imagini) și rulează, de asemenea, de sine stătător prin modul omniglyph. Aceasta este o previzualizare și rămâne dezactivată în mod implicit până când validarea end-to-end este finalizată.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profil de compresie",
+ "profileDescription": "Profilul este o limită superioară, nu una inferioară: un profil mai strict nu poate fi relaxat printr-o suprascriere la nivel de pas. Măsurat pe această bază de cod: cu modul sigur pentru cod sau cel echilibrat, o sesiune care nu a acumulat încă istoric nu comprimă nimic, deoarece ambele măresc pragul minim de caractere și păstrează nativ promptul de sistem, schemele instrumentelor și rezultatele instrumentelor.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresiv (implicit)",
+ "description": "Politica măsurată de rapoartele publicate. Transformă în imagini promptul de sistem, documentația instrumentelor și istoricul dens."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Echilibrat",
+ "description": "Păstrează nativă starea activă și protejează ultimele 8 schimburi; restrânge doar istoricul mai vechi și încheiat."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Sigur pentru cod",
+ "description": "Păstrează nativă autoritatea, schemele instrumentelor și rezultatele live ale instrumentelor, protejând ultimele 12 schimburi. Nu comprimă nimic până când sesiunea acumulează istoric."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Transmitere directă",
+ "description": "Direcționează fără transformare. Motorul este omis, iar solicitarea este redirecționată fără modificări."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Selectați profilul de comprimare OmniGlyph",
"saved": "Salvat.",
"saveFailed": "Nu s-a putut salva.",
"enableAria": "Activează motorul OmniGlyph",
@@ -8812,7 +8823,7 @@
"stateError": "Eroare",
"stateNotInstalled": "Neinstalat",
"stateUnknown": "Necunoscut",
- "port": "port {port}",
+ "port": "portul {port}",
"externalBadge": "Gestionat extern",
"externalTitle": "9Router extern detectat",
"externalDescription": "OmniRoute a găsit 9Router la {host}:{port}. Ciclul său de viață, jurnalele, actualizările și cheia de serviciu rămân gestionate de instalarea externă.",
@@ -8885,50 +8896,50 @@
"fallbackCodes": "Coduri de stare pentru fallback (separate prin virgulă)",
"invalidUrl": "URL nevalid — trebuie să înceapă cu http:// sau https://",
"saved": "Salvat",
- "saveFailed": "Failed to save setting",
- "modelMapping": "Model Mapping",
- "modelMappingDescription": "Map OmniRoute model IDs to CLIProxyAPI model IDs (for example, omniglyph. Это предварительная версия, которая остается отключенной по умолчанию до завершения сквозной проверки.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Профиль сжатия",
+ "profileDescription": "Профиль задаёт верхнюю, а не нижнюю границу: более строгий профиль нельзя ослабить переопределением на уровне отдельного шага. По результатам измерений на этой кодовой базе: при использовании профиля Coding-safe или Balanced сеанс, в котором ещё не накопилась история, ничего не сжимает, поскольку оба профиля повышают минимальный порог количества символов и сохраняют системный промпт, схемы инструментов и результаты их работы в исходном виде.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Агрессивный (по умолчанию)",
+ "description": "Политика, по которой проводились измерения в опубликованных отчётах. Преобразует в образы системный промпт, документацию инструментов и насыщенную историю."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Сбалансированный",
+ "description": "Сохраняет текущее состояние в исходном виде и защищает последние 8 реплик; сворачивает только более старую завершённую историю."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Безопасный для кода",
+ "description": "Сохраняет управляющие инструкции, схемы инструментов и актуальные результаты их работы в исходном виде, защищая последние 12 реплик. Ничего не сжимает, пока в сеансе не накопится история."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Без изменений",
+ "description": "Маршрутизирует без преобразований. Движок пропускается, а запрос пересылается без изменений."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Выберите профиль сжатия OmniGlyph",
"saved": "Сохранено.",
"saveFailed": "Не удалось сохранить.",
"enableAria": "Включить движок OmniGlyph",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Сжатие сообщений на основе правил, языковые пакеты, аналитика и управление режимом вывода.",
"advancedConfig": "Расширенная конфигурация",
"advancedConfigDesc": "Точная настройка поведения сжатия",
"aggressiveSettings": "Агрессивные настройки",
"aggressiveSettingsDesc": "Максимальное сжатие с возможным компромиссом в качестве",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Запросы",
+ "tokensSaved": "Сэкономлено токенов",
+ "savingsPercent": "Экономия, %",
+ "avgLatency": "Средняя задержка",
+ "languagePacks": "Языковые пакеты",
+ "languagePacksDesc": "Включить правила сжатия для определённых языков.",
"labelAutoTrigger": "Автоматическое сжатие, когда контекст превышает",
"labelCompressionRate": "Сила сжатия",
"labelMaxTokens": "Целевые токены на сообщение",
"labelMinLength": "Минимальная длина сообщения",
"labelMinSavings": "Минимум жетонов для сохранения",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Включено",
+ "autoDetect": "Автоматически определять язык",
+ "rulesCount": "Правил: {count}",
"inputCompressionTitle": "Сжатие ввода",
"inputCompressionDesc": "Перепишите историю чата с более короткими формулировками. Сокращает входные токены примерно на 50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Аналитика сжатия",
+ "noAnalytics": "Данных аналитики сжатия пока нет.",
"masterDisabledWarning": "Главный переключатель Token Saver выключен — эти настройки не повлияют на запросы, пока вы не включите его в Compression Settings или не измените здесь.",
"outputMode": "Режим вывода",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Режим вывода",
"quickSettings": "Быстрые настройки",
"quickSettingsDesc": "Основные настройки сжатия для начала работы",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Автоматический обход для ясных запросов",
+ "bypassConditions": "Условия обхода",
"bypassConditionsList": "безопасность, необратимый, уточнение, чувствительность к заказу",
"simpleMode": "Простой",
"advancedMode": "Расширенный",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ультра настройки",
"ultraSettingsDesc": "Семантическое сжатие на основе SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Отвечайте кратко. Сохраняйте технические термины, код, ошибки, URLs и идентификаторы.",
+ "full": "Отвечайте лаконично и компактно. Сохраняйте всю техническую суть.",
+ "ultra": "Отвечайте предельно кратко, используя общепринятые технические сокращения. Сохраняйте символы без изменений."
}
},
"translator": {
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Осталось",
"kiloPassRenews": "Продление через {count} дн.",
"kiloPassUsageLabel": "Использование в этом месяце",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Дополнительные кредиты на использование",
+ "kimiExtraUsage": "Дополнительное использование",
+ "kimiExtraUsageEnabled": "Включено",
+ "kimiExtraUsageDisabled": "Отключено",
+ "kimiExtraUsageFrozen": "Заморожено",
+ "kimiExtraUsageUnavailable": "Недоступно",
+ "kimiMonthlyUsed": "Использовано в этом месяце",
+ "kimiMonthlyLimit": "Месячный лимит",
+ "kimiMonthlyLimitUnlimited": "Без ограничений",
+ "kimiAdditionalCredits": "Дополнительные кредиты",
"loggerTab": "Регистратор",
"proxyTab": "Прокси",
"budgetManagement": "Управление бюджетом",
@@ -9369,7 +9380,7 @@
"runAllSuites": "Запустить все",
"runAllRunning": "Бегу все...",
"runAllProgress": "Запуск {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {Не пройден # набор} few {Не пройдено # набора} many {Не пройдено # наборов} other {Не пройдено # набора}}",
"runAllCompleted": "Запущено {suites} комплектов — {passed} пройдено, {failed} не выполнено",
"runAllCompletedWithFailures": "Запустил {completed} комплектов; {failedSuites} не удалось завершить",
"runningProgress": "Запуск {current}/{total}...",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Использовать кредит",
"resetCreditRedeemed": "Кредит сброса использован",
"resetCreditRedeemFailed": "Не удалось использовать кредит сброса",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Не удалось сохранить набор",
"clone": "Клонировать",
"exportSuite": "Экспорт",
"importSuite": "Импорт",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Неверный JSON пакета оценки.",
"suiteBuilderCloneSuffix": "копировать",
"suiteBuilderImportedSuite": "Импортированный люкс",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Таблица оценок",
+ "evalApiKey": "Ключ API",
+ "scorecardPassRate": "Доля успешных прохождений",
+ "targetTypeModel": "Модель",
+ "actualOutputLabel": "Фактический результат",
+ "evalTargetHint": "Выберите модель или комбинацию для оценки.",
+ "suiteBuilderDeleted": "Набор успешно удалён",
+ "suiteBuilderCaseCardHint": "Определите входной запрос и критерии ожидаемого результата.",
+ "nextResetUtc": "Следующий сброс (UTC)",
+ "scorecardHint": "Сводные показатели успешного прохождения по всем наборам оценивания.",
+ "suiteLatestRunsHint": "Последние запуски оценивания для этого набора.",
+ "saving": "Сохранение",
+ "suiteBuilderCaseModelLabel": "Модель (необязательно)",
+ "evalControlsTitle": "Управление оцениванием",
+ "suiteBuilderEditTitle": "Редактировать набор тестов",
+ "suiteBuilderCaseStrategyLabel": "Стратегия проверки",
+ "notifySelectDifferentCompareTarget": "Выберите другую целевую модель для сравнения",
+ "recentRunsHint": "Показаны последние запуски оценивания. Нажмите на запуск, чтобы просмотреть подробные результаты.",
+ "evalCompareHint": "При желании сравните результаты со второй целевой моделью.",
+ "suiteBuilderCaseInvalid": "В этом тесте есть ошибки проверки. Исправьте их перед сохранением.",
+ "historyEmpty": "История оценивания пока отсутствует",
+ "suiteBuilderUpdated": "Набор тестов успешно обновлён",
+ "resetInterval": "Интервал сброса",
+ "suiteBuilderCreateTitle": "Создать набор тестов",
+ "activePeriodSpend": "Расходы за текущий период",
+ "evalApiKeyHint": "Выберите API-ключ для запросов оценивания.",
+ "evalCompareOptional": "Сравнить (необязательно)",
+ "suiteBuilderDeleteFailed": "Не удалось удалить набор тестов",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Необязательные системные инструкции...",
+ "scorecardCases": "Тесты",
+ "runCompletedWithScore": "Оценивание завершено — доля успешных тестов: {score}%",
+ "suiteBuilderCustomBadge": "Пользовательский",
+ "targetSuiteDefaults": "Настройки набора по умолчанию",
+ "suiteBuilderDeleteConfirm": "Вы уверены, что хотите удалить этот набор? Это действие нельзя отменить.",
+ "suiteBuilderNameLabel": "Название набора",
+ "scorecardSuites": "Наборы тестов",
+ "evalCompareTarget": "Целевая модель для сравнения",
+ "suiteBuilderCaseModelPlaceholder": "например, gpt-4o-mini",
+ "evalControlsHint": "Настройте целевую модель и API-ключ, затем запустите наборы тестов для проверки качества модели.",
+ "recentRunsTitle": "Недавние запуски",
+ "suiteBuilderCaseSystemPromptLabel": "Системный промпт",
+ "suiteBuilderCaseExpectedPlaceholder": "например, def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "например защита Фибоначчи",
"suiteBuilderCaseExpectedPlaceholderExact": "Вставьте точный ожидаемый ответ",
"suiteBuilderCaseExpectedPlaceholderRegex": "например ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Используйте регулярное выражение JavaScript без переноса косых черт.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "например, Набор тестов качества кода",
+ "suiteBuilderAddCase": "Добавить тест",
+ "cancel": "Отмена",
+ "evalTarget": "Целевая модель",
+ "suiteBuilderCaseNameLabel": "Название теста",
+ "weeklyLimitUsd": "Недельный лимит (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "например, Напиши функцию вычисления чисел Фибоначчи на Python",
+ "suiteBuilderNameRequired": "Необходимо указать название набора",
+ "suiteBuilderCaseUserPromptLabel": "Пользовательский промпт",
+ "daily": "Ежедневно",
+ "resultErrorLabel": "Ошибка",
+ "suiteBuilderBuiltInBadge": "Встроенный",
+ "suiteBuilderCaseCardTitle": "Тестовый случай",
"suiteBuilderDuplicateCase": "Дублировать",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "например, 50.00",
+ "suiteBuilderCaseTagsHint": "Теги для организации тестовых случаев, разделённые запятыми.",
+ "notifyEvalRunFailedWithReason": "Сбой оценки: {reason}",
+ "weekly": "Еженедельно",
+ "runEvalRunning": "Выполняется оценка...",
+ "delete": "Удалить",
+ "resetTimeUtc": "Время сброса (UTC)",
+ "evalApiKeyAuto": "Авто (использовать значение по умолчанию)",
+ "suiteBuilderDescriptionPlaceholder": "Необязательное описание того, что тестирует этот набор...",
+ "targetComparisonTitle": "Сравнение целей",
+ "save": "Сохранить",
+ "suiteBuilderCreated": "Набор успешно создан",
+ "suiteLatestRuns": "Последние запуски",
+ "suiteBuilderCaseExpectedLabel": "Ожидаемое значение",
+ "historyLatency": "Задержка",
+ "suiteBuilderCaseTagsPlaceholder": "например, программирование, python",
+ "targetTypeCombo": "Комбинированный",
+ "scorecardPassed": "Пройдено",
+ "suiteBuilderCaseTagsLabel": "Теги",
+ "suiteBuilderNewSuite": "Новый набор",
+ "notifyEvalLoadFailed": "Не удалось загрузить данные оценки",
+ "notConfigured": "Не настроено",
+ "suiteBuilderCaseNamePlaceholder": "например, тест функции Фибоначчи на Python",
+ "intervalLabel": "Интервал",
+ "suiteBuilderCreateAction": "Создать набор",
+ "suiteBuilderCasesHint": "Каждый тестовый случай отправляет запрос и проверяет ответ.",
+ "suiteBuilderUpdatedAt": "Обновлено",
+ "errorBadge": "Ошибка",
+ "suiteBuilderCasesTitle": "Тестовые случаи",
+ "edit": "Изменить",
+ "monthly": "Ежемесячно",
+ "suiteBuilderCasesRequired": "Требуется хотя бы один тестовый случай",
+ "weeklyLimitSummary": "Сводка недельного лимита бюджета",
+ "suiteBuilderDescriptionLabel": "Описание",
+ "targetComparisonHint": "Параллельное сравнение результатов оценки между целями.",
+ "compareCompletedWithScore": "Сравнение завершено — доля успешных результатов: {score}%",
+ "staleQuotaTooltip": "Последнее обновление завершилось с ошибкой — показаны кэшированные данные",
"quotaThresholdLabel": "Мин осталось",
"quotaCutoffsColumnHelp": "Остановите запросы, когда оставшаяся квота упадет до этого процента или ниже.",
"quotaCutoffsButtonDefault": "По умолчанию",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Системные метрики",
"memory": "Память",
- "memoryShort": "mem",
+ "memoryShort": "память",
"uptime": "Время безотказной работы",
"ariaLabel": "Мониторинг системы",
"title": "Монитор системы",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Ожидание авторизации Antigravity...",
"waitingForQoderAuthorization": "Ожидание авторизации Qoder...",
"exchangingCodeForTokens": "Обмен кода на токены...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Несовместимая версия Node.js",
+ "nodeIncompatibleDesc": "Вы используете Node.js {version}, которая не соответствует политике OmniRoute в отношении поддерживаемых безопасных сред выполнения. Установите исправленную LTS-версию Node.js 20.x или 22.x.",
+ "nodeIncompatibleFixLabel": "Исправление: установите исправленную LTS-версию Node.js 22",
+ "nodeIncompatibleHint": "Для OmniRoute требуется Node.js 22.22.2+ (22.x LTS) или 24.0.0+ (24.x LTS). Рекомендуется Node 24 LTS.",
"resetViaAppDataTitle": "Сброс через данные приложения",
"resetViaAppDataDescription": "Удалите файл настроек из каталога данных приложения, чтобы сбросить пароль:",
"quitDesktopApp": "Полностью выйти из настольного приложения OmniRoute",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "ПВА",
"deployPwaText": "Установите OmniRoute как прогрессивное веб-приложение в браузерах Android, iOS и настольных ПК.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Запускайте OmniRoute на Android без графического интерфейса через Termux. Панель управления доступна в мобильном браузере.",
"featureRoutingTitle": "Маршрутизация между несколькими провайдерами",
"featureRoutingText": "Направляйте запросы более чем 30 поставщикам ИИ через единую конечную точку, совместимую с OpenAI. Поддерживает API чата, ответов, аудио и изображений.",
"featureCombosTitle": "Комбинации и балансировка",
@@ -10566,14 +10577,14 @@
"unavailableDesc": "Не удалось получить статистику кэша. Убедитесь, что сервер запущен.",
"loadingCacheAria": "Загрузка кэша",
"promptCache": "Кэш промптов (на стороне провайдера)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
+ "semanticCache": "Семантический кеш",
+ "promptCacheSectionDesc": "Показывает активность кеширования запросов на стороне провайдера на основе истории использования, чтобы вы могли видеть, где действует управление кешем и насколько эффективно повторно используются входные данные.",
+ "promptTrendDesc": "Почасовой объём запросов, охват кешем и объём чтения из кеша за последние 24 часа.",
"cachedRequests": "Запросы из кэша",
- "cachedRequests24h": "Cached Requests (24h)",
+ "cachedRequests24h": "Кешированные запросы (24 ч)",
"cacheHitRate": "Коэффициент попадания в кэш",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "cacheRate": "Доля кеширования",
+ "cacheRateDesc": "от общего числа запросов",
"cachedTokens": "Кэшированные токены",
"cacheCreationTokens": "Токены создания кэша",
"cacheMetrics": "Метрики кэша промптов",
@@ -10583,12 +10594,12 @@
"cacheReuseRatio": "Коэффициент повторного использования кэша",
"cacheReuseRatioDesc": "Кэшированные токены / Все входные токены",
"estCostSaved": "Примерная экономия",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
+ "lastUpdated": "Последнее обновление",
+ "hoursTracked": "часов отслеживается",
+ "busiestHour": "Самый загруженный час",
+ "peakCacheRate": "Пиковая доля кеширования",
+ "trendHour": "Час",
+ "activityVolume": "Активность",
"requestsShort": "запр.",
"inputShort": "Вх.",
"cachedShort": "В кэше",
@@ -10596,7 +10607,7 @@
"resetting": "Сброс...",
"resetMetrics": "Сбросить метрики",
"byProvider": "Разбивка по провайдерам",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "providerCacheRateDesc": "Каждый провайдер предоставляет общее количество входных токенов, токенов чтения из кеша и токенов записи в кеш, чтобы вы могли сверить коэффициент повторного использования с исходными общими значениями.",
"provider": "Провайдер",
"requests": "Запросы",
"inputTokens": "Входные токены",
@@ -10609,16 +10620,16 @@
"tableProvider": "Поставщик",
"tableModel": "Модель",
"performanceTitle": "Производительность",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
+ "semanticCacheSectionDesc": "Собственный детерминированный кеш ответов OmniRoute. Когда он включён, повторные непотоковые запросы с temperature=0 могут обслуживаться локально без обращения к вышестоящему провайдеру.",
+ "semanticCacheDisabledDesc": "Семантический кеш отключён. OmniRoute не будет повторно использовать локальные ответы, пока вы снова не включите эту функцию в настройках.",
+ "semanticEntriesDesc": "Сохранённые записи семантического кеша, находящиеся в SQLite. Активность кеша запросов на стороне провайдера здесь не отображается.",
"searchEntries": "Поиск записей...",
"search": "Поиск",
"loading": "Загрузка...",
- "entriesLoadError": "Failed to load semantic cache entries.",
+ "entriesLoadError": "Не удалось загрузить записи семантического кеша.",
"noEntries": "Записи кэша не найдены",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
+ "noPromptCacheData": "Активность кеша запросов на стороне провайдера пока не зарегистрирована.",
+ "noTrendData": "За последние 24 часа активность кеша запросов не зарегистрирована.",
"signature": "Сигнатура",
"model": "Модель",
"created": "Создано",
@@ -10627,8 +10638,8 @@
"deduplicatedRequests": "Дедуплицированные запросы",
"savedCalls": "Сэкономленные API-запросы",
"totalProcessed": "Всего запросов обработано",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "disabled": "Отключено",
+ "totalRequests": "Всего запросов",
"reasoningCache": "Рассуждение повтора",
"reasoningCacheDesc": "Сохраняет модельное мышление для многооборотных потоков вызова инструмента",
"reasoningEntries": "Активные записи",
@@ -10715,23 +10726,23 @@
"deviceCodeVerificationUrl": "URL-адрес подтверждения",
"deviceCodeYourCode": "Ваш код",
"deviceCodeWaiting": "Ожидание авторизации...",
- "googleLoopbackTitle": "Google sign-in can't complete from this address",
- "googleLoopbackWhatHappens": "Google only releases the authorization code once {redirectUri} is reachable from the browser that approves the sign-in. Here that address points at this computer, not at the OmniRoute server — so the consent screen hangs instead of redirecting, and there is no callback URL to copy.",
- "googleLoopbackRecommended": "Recommended — run this on your own computer, then paste the result below:",
- "googleLoopbackHelperNote": "It opens the Google consent locally (where 127.0.0.1 works) and prints a one-line omniroute-cred-v1.… blob. Paste that blob into the Step 2 field below — it accepts a credential blob as well as a callback URL.",
- "googleLoopbackTunnelLabel": "Or forward the dashboard port over SSH and reload OmniRoute through the tunnel:",
- "googleLoopbackTunnelNote": "Replace {userPlaceholder} with your SSH username, keep the terminal open, then open {localUrl} and connect again from there.",
- "googleLoopbackHeadlessAlt": "For fully headless use with no local callback at all, configure your own Google OAuth credentials plus a public base URL.",
+ "googleLoopbackTitle": "Вход через Google невозможно завершить с этого адреса",
+ "googleLoopbackWhatHappens": "Google выдаёт код авторизации только после того, как адрес {redirectUri} становится доступен из браузера, в котором подтверждается вход. Здесь этот адрес указывает на данный компьютер, а не на сервер OmniRoute, поэтому экран согласия зависает вместо перенаправления и URL-адрес обратного вызова невозможно скопировать.",
+ "googleLoopbackRecommended": "Рекомендуется — выполните эту команду на своём компьютере, а затем вставьте результат ниже:",
+ "googleLoopbackHelperNote": "Команда локально откроет экран согласия Google (где работает 127.0.0.1) и выведет в одной строке blob-объект omniroute-cred-v1.…. Вставьте этот blob-объект в поле шага 2 ниже — оно принимает как blob-объект учётных данных, так и URL-адрес обратного вызова.",
+ "googleLoopbackTunnelLabel": "Либо перенаправьте порт панели управления через SSH и повторно загрузите OmniRoute через туннель:",
+ "googleLoopbackTunnelNote": "Замените {userPlaceholder} своим именем пользователя SSH, не закрывайте терминал, затем откройте {localUrl} и повторно подключитесь оттуда.",
+ "googleLoopbackHeadlessAlt": "Для полностью автономного использования без локального обратного вызова настройте собственные учётные данные Google OAuth и общедоступный базовый URL-адрес.",
"remoteAccessInfo": "Удаленный доступ. Поскольку вы получаете доступ к OmniRoute удаленно, после авторизации вы увидите страницу с ошибкой (localhost не найден). Это нормально — просто скопируйте полный URL-адрес из адресной строки браузера и вставьте его ниже.",
- "loopbackMismatchTitle": "Sign-in can't complete from this address",
- "loopbackMismatchWhatHappened": "What's happening",
- "loopbackMismatchExplanation": "After you approve the login, {providerName} always sends the browser back to {redirectUri}. That address points at the computer running this browser, not at the OmniRoute server — so the authorization code never reaches OmniRoute and the provider fails the sign-in without showing an error.",
- "loopbackMismatchHowToFix": "How to fix it",
- "loopbackMismatchStep1": "On this computer, open a terminal and start an SSH tunnel to the OmniRoute server:",
- "loopbackMismatchStep1Note": "Replace {userPlaceholder} with your SSH username. Keep this terminal open until the connection shows as active — both ports are needed: one serves the dashboard, the other receives the callback.",
- "loopbackMismatchStep2": "In this browser, reopen OmniRoute through the tunnel:",
- "loopbackMismatchStep3": "Then connect {providerName} again from the new tab. The callback now reaches the server and the login completes normally.",
- "loopbackMismatchAlternative": "No SSH access? If this provider offers a token import tab, connect with a token instead — that path doesn't use a loopback callback.",
+ "loopbackMismatchTitle": "Вход невозможно завершить с этого адреса",
+ "loopbackMismatchWhatHappened": "Что происходит",
+ "loopbackMismatchExplanation": "После подтверждения входа {providerName} всегда перенаправляет браузер обратно на {redirectUri}. Этот адрес указывает на компьютер, на котором запущен браузер, а не на сервер OmniRoute, поэтому код авторизации не достигает OmniRoute и провайдер не может выполнить вход, не показывая при этом ошибку.",
+ "loopbackMismatchHowToFix": "Как это исправить",
+ "loopbackMismatchStep1": "На этом компьютере откройте терминал и запустите SSH-туннель к серверу OmniRoute:",
+ "loopbackMismatchStep1Note": "Замените {userPlaceholder} на своё имя пользователя SSH. Не закрывайте этот терминал, пока подключение не станет активным — необходимы оба порта: один обслуживает панель управления, другой принимает обратный вызов.",
+ "loopbackMismatchStep2": "В этом браузере снова откройте OmniRoute через туннель:",
+ "loopbackMismatchStep3": "Затем снова подключите {providerName} в новой вкладке. Теперь обратный вызов достигнет сервера, и вход завершится как обычно.",
+ "loopbackMismatchAlternative": "Нет доступа по SSH? Если этот провайдер предлагает вкладку импорта токена, подключитесь с помощью токена — этот способ не использует обратный вызов через loopback.",
"step1OpenUrl": "Шаг 1. Откройте этот URL-адрес в своем браузере.",
"copy": "Копировать",
"step2PasteCallback": "Шаг 2. Вставьте сюда URL обратного вызова или код авторизации.",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "Вставьте существующий ключ API Devin из аутентифицированной сессии Devin. Доступность экспорта ключа и шаги могут различаться в зависимости от версии Devin и учетной записи.",
"devinPasteDescription": "Укажите ваш WINDSURF_API_KEY (полученный через `devin auth login` или через команду \"Windsurf: Provide Auth Token\" в IDE Windsurf).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json для Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "API Ключ / Токен",
"saving": "Сохранение…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Подключить курсор IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Войти через Cursor",
+ "tabImport": "Импортировать токен",
+ "loginDescription": "Открывает страницу входа Cursor в браузере. Работает в Docker — подтвердите вход в браузере хост-системы, затем вернитесь сюда.",
+ "loginWithCursor": "Войти через Cursor",
+ "startingLogin": "Запуск…",
+ "waitingApproval": "Ожидание подтверждения входа в Cursor…",
+ "openUrlHint": "Если браузер не открылся:",
+ "openLoginLink": "Открыть страницу входа",
+ "cancelLogin": "Отменить вход",
"autoDetecting": "Автоматическое обнаружение токенов...",
"readingFromCursor": "Чтение из Cursor IDE или курсорного агента",
"tokensAutoDetected": "Токены успешно автоматически обнаружены в Cursor IDE!",
"cursorNotDetected": "Курсор IDE не обнаружен. Пожалуйста, вставьте свой токен вручную.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Работаете в Docker? Рекомендуется выбрать «Войти через Cursor». Автоимпорт из IDE и cursor-agent обычно недоступны внутри контейнера. См. docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Токен доступа",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Токен обновления",
+ "refreshTokenPlaceholder": "Необязательно — включает автоматическое обновление токена",
"required": "*",
"accessTokenPlaceholder": "Токен доступа будет автоматически заполнен...",
"machineId": "Идентификатор машины",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Не удалось автоматически обнаружить токены",
"errorEnterToken": "Пожалуйста, введите токен доступа",
"errorImportFailed": "Импорт не удался",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Не удалось начать вход в Cursor",
+ "errorLoginPoll": "Не удалось войти в Cursor",
+ "errorLoginTimeout": "Время ожидания входа в Cursor истекло — попробуйте ещё раз"
},
"pricingModal": {
"title": "Конфигурация цен",
@@ -10839,9 +10850,9 @@
"selectProxy": "Выбрать {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Импортировать устаревшие данные",
+ "bulkAssign": "Массовое назначение",
+ "addProxy": "Добавить прокси",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Проверить",
+ "edit": "Изменить",
+ "delete": "Удалить",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,7 +10913,7 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Ошибка",
"successRate": "{rate} % успеха",
"avgLatency": "{latency} мс в среднем",
"assignmentsCount": "{count} заданий",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Стратегия ротации",
"poolStrategyHint": "round-robin циклически перебирает участников по порядку; random выбирает равномерно; sticky удерживает одного участника в течение интервала; latency-optimized выбирает самый быстрый на основе логов.",
"poolStrategyFailed": "Не удалось обновить стратегию ротации",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "По кругу",
"strategyRandom": "Случайный",
"strategySticky": "Фиксированный",
"strategyLatency": "Оптимизация по задержке",
"poolMembersLabel": "Участники пула ({count})",
"poolNoMembers": "В этом пуле пока нет прокси.",
+ "poolEgressObservation": "Использовано {exits, plural, one {# выход} few {# выхода} many {# выходов} other {# выхода}} для {connections, plural, one {# подключения} few {# подключений} many {# подключений} other {# подключения}} · до {max} на одном выходе · за последние {hours} ч",
+ "poolEgressObservationEmpty": "За последние {hours} ч трафик не наблюдался",
+ "poolEgressObservationHint": "Рассчитано по журналу прокси за выбранный период: уникальные исходящие IP-адреса, обнаруженные у участников этого пула, и подключения OmniRoute, которые их использовали. «На одном выходе» означает за весь период, а не одновременно. Блокировка 429 для отдельного IP-адреса приостанавливает только подключения того же семейства провайдеров.",
"poolRemove": "Удалить",
"poolRemoveFailed": "Не удалось удалить прокси из пула",
"poolAddLabel": "Добавить прокси",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Конечная точка",
+ "provider": "Провайдер",
+ "model": "Модель",
"accountKey": "Account Key",
"autoAccounts": "Авто (аккаунтов: {count})",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Отправить",
+ "cancel": "Отмена",
+ "audioFile": "Аудиофайл",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Очистить всё",
+ "request": "Запрос",
+ "response": "Ответ",
+ "transcription": "Транскрипция",
+ "copy": "Копировать",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Сгенерировано изображений: {count}",
"generatedImage": "Сгенерированное изображение {index}",
- "save": "Save",
+ "save": "Сохранить",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Ответы",
"completions": "Генерация",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Эмбеддинги",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Модерация",
- "rerank": "Rerank",
+ "rerank": "Реранжирование",
"search": "Search",
"webFetch": "Веб-запросы"
},
"conversationalChat": "Разговорный чат",
"clearChat": "Очистить чат",
"typeMessagePlaceholder": "Введите сообщение... (Shift+Enter для новой строки)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Чат",
+ "tabCompare": "Сравнить",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Сборка",
+ "configPane": "Конфигурация",
+ "systemPrompt": "Системный промпт",
+ "systemPromptPlaceholder": "Вы — полезный ассистент.",
+ "modelPlaceholder": "например, openai/gpt-4o",
+ "endpointLabel": "Эндпоинт",
+ "parametersLabel": "Параметры",
+ "collapseConfig": "Свернуть панель конфигурации",
+ "expandConfig": "Развернуть панель конфигурации",
+ "temperature": "Температура",
+ "maxTokens": "Максимум токенов",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Штраф за присутствие",
+ "frequencyPenalty": "Штраф за частоту",
"reasoningLabel": "Рассуждение",
"thinking": "Мышление",
"effort": "Усилия",
"effortDefault": "По умолчанию",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Случайное значение (оставьте пустым)",
+ "presetsLabel": "Предустановки",
+ "loadPreset": "Загрузить предустановку",
+ "savePreset": "Сохранить предустановку",
+ "noPresets": "Нет предустановок",
+ "presetNamePlaceholder": "Название предустановки",
+ "savingPreset": "Сохранение…",
+ "nameRequired": "Необходимо указать название",
+ "failedToSavePreset": "Не удалось сохранить предустановку",
+ "improvePrompt": "Улучшить промпт",
+ "improvingPrompt": "Улучшение…",
+ "improvePromptTitle": "Улучшить промпт с помощью ИИ",
+ "setModelFirst": "Сначала выберите модель",
"setModelInConfigFirst": "Сначала выберите модель на панели конфигурации.",
"improvePromptFailed": "Не удалось улучшить промпт.",
"improvePromptAria": "Улучшить промпт с помощью ИИ",
"confirmImprovePrompt": "Подтвердить улучшение промпта",
"improvePromptDescription": "Это отправит ваш текущий системный промпт в omniglyph. Toto je predbežná verzia a predvolene zostáva vypnutá, kým sa nedokončí end-to-end validácia.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Profil kompresie",
+ "profileDescription": "Profil predstavuje hornú, nie dolnú hranicu: prísnejší profil nemožno zmierniť prepísaním nastavenia pre jednotlivý krok. Merané na tejto kódovej základni: pri profile bezpečnom pre programovanie alebo vyváženom sa v relácii, v ktorej sa ešte nenahromadila história, nič nekomprimuje, pretože oba zvyšujú minimálnu hranicu počtu znakov a zachovávajú systémovú výzvu, schémy nástrojov a výsledky nástrojov v pôvodnej podobe.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresívny (predvolený)",
+ "description": "Pravidlá, ktoré merali zverejnené potvrdenia. Prevádza systémovú výzvu, dokumentáciu nástrojov a rozsiahlu históriu na obrázky."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Vyvážený",
+ "description": "Zachováva aktuálny stav v pôvodnej podobe a chráni posledných 8 kôl; zlučuje iba staršiu uzavretú históriu."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Bezpečný pre programovanie",
+ "description": "Zachováva autoritu, schémy nástrojov a aktuálny výstup nástrojov v pôvodnej podobe a chráni posledných 12 kôl. Kým sa v relácii nenahromadí história, nič nekomprimuje."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Bez úprav",
+ "description": "Smeruje bez transformácie. Nástroj sa preskočí a požiadavka sa odošle bez zmien."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Vyberte profil kompresie OmniGlyph",
"saved": "Uložené.",
"saveFailed": "Nepodarilo sa uložiť.",
"enableAria": "Povoliť engine OmniGlyph",
@@ -8897,38 +8908,38 @@
"save": "Uložiť"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Nástroj Caveman",
+ "description": "Kompresia správ založená na pravidlách, jazykové balíky, analytika a ovládanie režimu výstupu.",
"advancedConfig": "Pokročilá konfigurácia",
"advancedConfigDesc": "Jemne dolaďte správanie kompresie",
"aggressiveSettings": "Agresívne nastavenia",
"aggressiveSettingsDesc": "Maximálna kompresia s možnými kompromismi v kvalite",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Požiadavky",
+ "tokensSaved": "Ušetrené tokeny",
+ "savingsPercent": "Úspora v %",
+ "avgLatency": "Priemerná latencia",
+ "languagePacks": "Jazykové balíky",
+ "languagePacksDesc": "Povoliť pravidlá kompresie pre konkrétne jazyky.",
"labelAutoTrigger": "Automatická kompresia pri prekročení kontextu",
"labelCompressionRate": "Pevnosť v tlaku",
"labelMaxTokens": "Cieľové tokeny na správu",
"labelMinLength": "Minimálna dĺžka správy",
"labelMinSavings": "Minimálny počet tokenov na uloženie",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Povolené",
+ "autoDetect": "Automaticky rozpoznať jazyk",
+ "rulesCount": "Počet pravidiel: {count}",
"inputCompressionTitle": "Kompresia vstupu",
"inputCompressionDesc": "Prepísať históriu chatu s kratším formulovaním. Znižuje počet vstupných tokenov o ~50 %.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Analytika kompresie",
+ "noAnalytics": "Zatiaľ nie sú k dispozícii žiadne analytické údaje o kompresii.",
"masterDisabledWarning": "Hlavný prepínač Token Saver je VYPNUTÝ — tieto nastavenia neovplyvnia požiadavky, kým ho nezapnete v Nastaveniach kompresie alebo ho nezmeníte tu.",
"outputMode": "Výstupný režim",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Režim výstupu",
"quickSettings": "Rýchle nastavenia",
"quickSettingsDesc": "Na začiatok základné nastavenia kompresie",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Obídenie Auto-Clarity",
+ "bypassConditions": "Podmienky obídenia",
"bypassConditionsList": "bezpečnostná, nezvratná, objasňujúca, citlivá na poriadok",
"simpleMode": "Jednoduché",
"advancedMode": "Pokročilé",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra nastavenia",
"ultraSettingsDesc": "Sémantická kompresia poháňaná SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Odpovedaj stručne. Zachovaj technické termíny, kód, chyby, adresy URL a identifikátory.",
+ "full": "Odpovedaj úsečne a kompaktne. Zachovaj všetok technický obsah.",
+ "ultra": "Odpovedaj maximálne úsečne s použitím bežných technických skratiek. Zachovaj presné symboly."
}
},
"translator": {
@@ -8983,7 +8994,7 @@
"ideCliIntegrations": "Integrácia IDE/CLI",
"inMemoryNote": "Poznámka: Udalosti sa ukladajú do pamäte a resetujú sa, keď sa server reštartuje.",
"ok": "OK",
- "errorShort": "ERR",
+ "errorShort": "CHYBA",
"formatConverter": "Prevodník formátov",
"formatConverterDescription": "Prilepte alebo zadajte telo požiadavky JSON. Prekladateľ automaticky rozpozná zdrojový formát a prevedie ho do cieľového formátu. Použite toto na ladenie spôsobu, akým OmniRoute prekladá požiadavky medzi formátmi (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (stredne pokročilá) → {target}",
@@ -8992,7 +9003,7 @@
"openaiIntermediatePanel": "OpenAI pre stredne pokročilých",
"autoFeaturesTitle": "Čo robí OmniRoute automaticky",
"autoFeaturesCount": "8 funkcií",
- "featureReasoningCache": "Reasoning Cache",
+ "featureReasoningCache": "Vyrovnávacia pamäť odôvodnenia",
"featureReasoningCacheDesc": "Opätovne vloží do vyrovnávacej pamäte logický obsah pre modely v režime myslenia (DeepSeek V4, Kimi K2, Qwen), keď ho klienti vynechajú z histórie konverzácií.",
"featureSchemaCoercion": "Schéma nátlaku",
"featureSchemaCoercionDesc": "Opravuje poškodené schémy nástrojov: pridáva chýbajúce dodatočné vlastnosti, dezinfikuje dlhé popisy, normalizuje vnorené objekty.",
@@ -9097,7 +9108,7 @@
"anthropicCompatibleLabel": "Antropické kompatibilné",
"noTemplateForFormat": "Žiadna šablóna pre tento formát",
"translationFailed": "Preklad zlyhal: {error}",
- "pipelineDebugger": "Pipeline Debugger",
+ "pipelineDebugger": "Ladiaci nástroj pipeline",
"translationPipeline": "Prekladové potrubie",
"loading": "Načítava sa…",
"compressionOriginal": "Originál",
@@ -9153,7 +9164,7 @@
"loadToolSample": "Načítať vzorku volania nástroja",
"transformToResponses": "Transformácia na odpovede",
"rawChatSseInput": "Neupravené dokončenia chatu SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Transformované SSE rozhrania Responses API",
"noResultsYet": "Zatiaľ žiadne výsledky",
"transformedEvents": "Transformované udalosti",
"uniqueEventTypes": "Jedinečné typy udalostí",
@@ -9166,7 +9177,7 @@
"comboRouted": "Kombinované smerovanie",
"uniqueEndpoints": "Jedinečné koncové body",
"routeDetails": "Podrobnosti trasy",
- "comboBadge": "Combo",
+ "comboBadge": "Kombinácia",
"routeEndpointLabel": "Koncový bod",
"routeConnectionLabel": "Pripojenie",
"scenarioVision": "Vízia (porozumenie obrazu)",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Vaša aplikácia hovorí „jazykom“ jedného API. Prekladač ho skonvertuje tak, aby používal iného poskytovateľa.",
"conceptDiagramAppLabel": "Vaša aplikácia",
"conceptDiagramSourceLabel": "Zdrojový formát",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (centrum)",
"conceptDiagramTargetLabel": "Cieľový poskytovateľ",
"conceptDiagramExampleApp": "napr. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Vložte JSON požiadavku; formát sa deteguje automaticky.",
"advancedPipelineTitle": "Medziľahlá pipeline OpenAI",
"advancedPipelineSubtitle": "Vizualizujte každý krok prekladu (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Transformátor streamu (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Konvertuje Chat Completions SSE na Responses API.",
"advancedTestBenchTitle": "Test Bench (8 scenárov)",
"advancedTestBenchSubtitle": "Spustí všetky scenáre a nahlási úspešnosť/zlyhanie + % kompatibility.",
@@ -9228,7 +9239,7 @@
"pipelineStepClientRequestDesc": "Požiadavka prijatá vo formáte klienta",
"pipelineStepFormatDetected": "Detegovaný formát",
"pipelineStepFormatDetectedDesc": "Automaticky detegovaný zdrojový formát",
- "pipelineStepOpenAIIntermediate": "OpenAI Intermediate",
+ "pipelineStepOpenAIIntermediate": "Medzistupeň OpenAI",
"pipelineStepOpenAIIntermediateDesc": "Preložené do formátu OpenAI hub",
"pipelineStepProviderFormat": "Formát poskytovateľa",
"pipelineStepProviderFormatDesc": "Preložené do cieľového formátu poskytovateľa",
@@ -9273,17 +9284,17 @@
"kiloPassRemaining": "Zostáva",
"kiloPassRenews": "Obnovuje sa o {count} dní",
"kiloPassUsageLabel": "Využitie za tento mesiac",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Dodatočné kredity za používanie",
+ "kimiExtraUsage": "Dodatočné používanie",
+ "kimiExtraUsageEnabled": "Povolené",
+ "kimiExtraUsageDisabled": "Zakázané",
+ "kimiExtraUsageFrozen": "Zmrazené",
+ "kimiExtraUsageUnavailable": "Nedostupné",
+ "kimiMonthlyUsed": "Použité tento mesiac",
+ "kimiMonthlyLimit": "Mesačný limit",
+ "kimiMonthlyLimitUnlimited": "Bez obmedzenia",
+ "kimiAdditionalCredits": "Dodatočné kredity",
+ "loggerTab": "Záznamník",
"proxyTab": "Proxy",
"budgetManagement": "Správa rozpočtu",
"budgetSaved": "Rozpočtové limity boli uložené",
@@ -9310,7 +9321,7 @@
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
+ "promptCache": "Vyrovnávacia pamäť promptov",
"systemHealth": "Zdravie systému",
"entries": "Príspevky",
"activeCount": "{count} aktívny",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Ističe",
"lockedIPs": "Zamknuté adresy IP",
"lockoutsAutoRefreshHint": "Zámky limitu rýchlosti pre model • Automatické obnovenie 10 s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# uzamknutý} few {# uzamknuté} other {# uzamknutých}}",
"timeLeft": "Zostáva {time}",
"howItWorks": "Ako to funguje",
"howItWorksSubtitle": "Zistite, ako hodnotenia overujú vaše odpovede LLM",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Testované modely",
"searchSuitesPlaceholder": "Hľadať apartmány...",
"passSuffix": "prejsť",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# prípad} few {# prípady} other {# prípadov}}",
"runEval": "Spustite Eval",
"runAllSuites": "Spustiť všetko",
"runAllRunning": "Beží všetko...",
"runAllProgress": "Beží {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# sada zlyhala} few {# sady zlyhali} other {# sád zlyhalo}}",
"runAllCompleted": "Spustených {suites} apartmánov – {passed} úspešné, {failed} neúspešné",
"runAllCompletedWithFailures": "Počet suít: {completed}; {failedSuites} sa nepodarilo dokončiť",
"runningProgress": "Spustený {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Limity poskytovateľa",
"noProviders": "Nie sú pripojení žiadni poskytovatelia",
"connectProvidersForQuota": "Pripojte sa k poskytovateľom pomocou protokolu OAuth, aby ste mohli sledovať limity kvót a využitie rozhrania API.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# účet} few {# účty} other {# účtov}}",
"filteredFromCount": "(filtrované z {count})",
"autoRefresh": "Automatické obnovenie",
"refreshAll": "Obnoviť všetko",
@@ -9429,10 +9440,10 @@
"hideQuotaRow": "Skryť tento riadok kvóty",
"showQuotaRow": "Zobraziť tento riadok kvóty",
"hiddenQuotaRowsLabel": "Skryté:",
- "quotaVisibilityUpdateFailed": "Failed to update quota visibility",
+ "quotaVisibilityUpdateFailed": "Nepodarilo sa aktualizovať viditeľnosť kvóty",
"account": "účtu",
"modelQuotas": "Modelové kvóty",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Naposledy obnovené",
"actions": "Akcie",
"refreshQuota": "Obnoviť kvótu",
"today": "Dnes",
@@ -9448,13 +9459,13 @@
"cardExpand": "Rozbaliť",
"cardCollapse": "Zbaliť",
"moreQuotas": "+{count} ďalších",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Nezoskupené",
+ "viewFlat": "Ploché",
+ "viewByEnvironment": "Podľa prostredia",
"noQuotaDataAvailable": "Nie sú k dispozícii žiadne údaje o kvóte",
"noAccountsForTierFilter": "Pre filter úrovne sa nenašli žiadne účty",
"tierAll": "Všetky",
- "tierEnterprise": "Enterprise",
+ "tierEnterprise": "Podnikový",
"tierTeam": "Tím",
"tierBusiness": "Podnikanie",
"tierUltra": "Ultra",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "Úroveň",
"purchaseAll": "Všetko",
"purchaseOauthSub": "Predplatné",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth zdarma",
"purchaseApiKey": "API kľúč",
"creditsLabel": "Kredity",
"creditBalanceHint": "Zostávajúci zostatok",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Uplatniť kredit",
"resetCreditRedeemed": "Vynulovať uplatnené",
"resetCreditRedeemFailed": "Nepodarilo sa uplatniť kredit na reset",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Súbor testov sa nepodarilo uložiť",
"clone": "Klonovať",
"exportSuite": "Exportovať",
"importSuite": "Importovať",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Neplatná eval suite JSON",
"suiteBuilderCloneSuffix": "kopírovať",
"suiteBuilderImportedSuite": "Importovaná suita",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Prehľad výsledkov",
+ "evalApiKey": "Kľúč API",
+ "scorecardPassRate": "Miera úspešnosti",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "actualOutputLabel": "Skutočný výstup",
+ "evalTargetHint": "Vyberte model alebo kombináciu na vyhodnotenie.",
+ "suiteBuilderDeleted": "Súbor testov bol úspešne odstránený",
+ "suiteBuilderCaseCardHint": "Definujte vstupnú výzvu a kritériá očakávaného výstupu.",
+ "nextResetUtc": "Ďalšie obnovenie (UTC)",
+ "scorecardHint": "Súhrnné miery úspešnosti vo všetkých súboroch hodnotení.",
+ "suiteLatestRunsHint": "Najnovšie spustenia hodnotenia pre tento súbor.",
+ "saving": "Ukladá sa",
+ "suiteBuilderCaseModelLabel": "Model (voliteľné)",
+ "evalControlsTitle": "Ovládacie prvky hodnotenia",
+ "suiteBuilderEditTitle": "Upraviť súbor hodnotení",
+ "suiteBuilderCaseStrategyLabel": "Stratégia validácie",
+ "notifySelectDifferentCompareTarget": "Vyberte na porovnanie iný cieľ",
+ "recentRunsHint": "Zobrazujú sa najnovšie spustenia hodnotenia. Kliknutím na spustenie zobrazíte podrobné výsledky.",
+ "evalCompareHint": "Výsledky môžete voliteľne porovnať s druhým cieľom.",
+ "suiteBuilderCaseInvalid": "Tento prípad obsahuje chyby validácie. Pred uložením ich opravte.",
+ "historyEmpty": "Zatiaľ žiadna história hodnotení",
+ "suiteBuilderUpdated": "Súbor hodnotení bol úspešne aktualizovaný",
+ "resetInterval": "Interval obnovenia",
+ "suiteBuilderCreateTitle": "Vytvoriť súbor hodnotení",
+ "activePeriodSpend": "Výdavky v aktívnom období",
+ "evalApiKeyHint": "Vyberte kľúč API, ktorý sa má použiť na požiadavky hodnotenia.",
+ "evalCompareOptional": "Porovnať (voliteľné)",
+ "suiteBuilderDeleteFailed": "Súbor sa nepodarilo odstrániť",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Voliteľné systémové pokyny...",
+ "scorecardCases": "Prípady",
+ "runCompletedWithScore": "Hodnotenie dokončené — miera úspešnosti {score} %",
+ "suiteBuilderCustomBadge": "Vlastné",
+ "targetSuiteDefaults": "Predvolené nastavenia súboru",
+ "suiteBuilderDeleteConfirm": "Naozaj chcete odstrániť tento súbor? Túto akciu nemožno vrátiť späť.",
+ "suiteBuilderNameLabel": "Názov sady",
+ "scorecardSuites": "Sady",
+ "evalCompareTarget": "Porovnať cieľ",
+ "suiteBuilderCaseModelPlaceholder": "napr. gpt-4o-mini",
+ "evalControlsHint": "Nakonfigurujte cieľ vyhodnocovania a kľúč API a potom spustite sady na overenie kvality modelu.",
+ "recentRunsTitle": "Nedávne spustenia",
+ "suiteBuilderCaseSystemPromptLabel": "Systémová výzva",
+ "suiteBuilderCaseExpectedPlaceholder": "napr. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "napr. def Fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Prilepte presnú očakávanú odpoveď",
"suiteBuilderCaseExpectedPlaceholderRegex": "napr. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Použite regulárny výraz JavaScript bez zalamovania lomiek.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "napr. Sada kvality kódu",
+ "suiteBuilderAddCase": "Pridať prípad",
+ "cancel": "Zrušiť",
+ "evalTarget": "Cieľ",
+ "suiteBuilderCaseNameLabel": "Názov prípadu",
+ "weeklyLimitUsd": "Týždenný limit (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "napr. Napíšte funkciu fibonacci v jazyku Python",
+ "suiteBuilderNameRequired": "Názov sady je povinný",
+ "suiteBuilderCaseUserPromptLabel": "Používateľská výzva",
+ "daily": "Denne",
+ "resultErrorLabel": "Chyba",
+ "suiteBuilderBuiltInBadge": "Vstavané",
+ "suiteBuilderCaseCardTitle": "Testovací prípad",
"suiteBuilderDuplicateCase": "Duplicitné",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
+ "weeklyLimitPlaceholder": "napr. 50.00",
+ "suiteBuilderCaseTagsHint": "Značky oddelené čiarkami na usporiadanie testovacích prípadov.",
+ "notifyEvalRunFailedWithReason": "Vyhodnotenie zlyhalo: {reason}",
+ "weekly": "Týždenne",
+ "runEvalRunning": "Prebieha vyhodnocovanie...",
+ "delete": "Odstrániť",
+ "resetTimeUtc": "Čas obnovenia (UTC)",
+ "evalApiKeyAuto": "Automaticky (použiť predvolené nastavenie)",
+ "suiteBuilderDescriptionPlaceholder": "Voliteľný opis toho, čo táto sada testuje...",
+ "targetComparisonTitle": "Porovnanie cieľov",
+ "save": "Uložiť",
+ "suiteBuilderCreated": "Sada bola úspešne vytvorená",
+ "suiteLatestRuns": "Najnovšie spustenia",
+ "suiteBuilderCaseExpectedLabel": "Očakávaná hodnota",
+ "historyLatency": "Latencia",
+ "suiteBuilderCaseTagsPlaceholder": "napr. kódovanie, python",
+ "targetTypeCombo": "Kombinácia",
+ "scorecardPassed": "Úspešné",
+ "suiteBuilderCaseTagsLabel": "Značky",
+ "suiteBuilderNewSuite": "Nový balík",
+ "notifyEvalLoadFailed": "Nepodarilo sa načítať údaje vyhodnotenia",
+ "notConfigured": "Nenakonfigurované",
+ "suiteBuilderCaseNamePlaceholder": "napr. test Fibonacciho postupnosti v Pythone",
"intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "suiteBuilderCreateAction": "Vytvoriť balík",
+ "suiteBuilderCasesHint": "Každý prípad odošle výzvu a overí odpoveď.",
+ "suiteBuilderUpdatedAt": "Aktualizované",
+ "errorBadge": "Chyba",
+ "suiteBuilderCasesTitle": "Testovacie prípady",
+ "edit": "Upraviť",
+ "monthly": "Mesačne",
+ "suiteBuilderCasesRequired": "Vyžaduje sa aspoň jeden testovací prípad",
+ "weeklyLimitSummary": "Súhrn týždenného rozpočtového limitu",
+ "suiteBuilderDescriptionLabel": "Popis",
+ "targetComparisonHint": "Porovnanie výsledkov vyhodnotenia medzi cieľmi vedľa seba.",
+ "compareCompletedWithScore": "Porovnanie dokončené — úspešnosť {score} %",
+ "staleQuotaTooltip": "Posledná aktualizácia zlyhala — zobrazujú sa údaje z vyrovnávacej pamäte",
"quotaThresholdLabel": "Zostáva min",
"quotaCutoffsColumnHelp": "Zastavte požiadavky, keď zostávajúca kvóta klesne na toto percento alebo nižšie.",
"quotaCutoffsButtonDefault": "Predvolené",
@@ -9741,7 +9752,7 @@
"proxy": "Proxy",
"level": "úroveň",
"directNative": "Priame (natívne)",
- "combo": "Combo",
+ "combo": "Kombinácia",
"inputTokens": "ja:",
"outputTokens": "O:"
},
@@ -9752,7 +9763,7 @@
"usageByModel": "Použitie podľa modelu",
"usageByAccount": "Použitie podľa účtu",
"failedToLoad": "Nepodarilo sa načítať štatistiky používania.",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Stav tokenov",
"totalOAuth": "Celkový počet OAuth",
"healthy": "Zdravý",
"warning": "Upozornenie",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Systémové metriky",
"memory": "Pamäť",
- "memoryShort": "mem",
+ "memoryShort": "pam.",
"uptime": "Dostupnosť",
"ariaLabel": "Sledovanie systému",
"title": "Systémový monitor",
@@ -9812,8 +9823,8 @@
"signIn": "Prihláste sa",
"enterPassword": "Ak chcete pokračovať, zadajte svoje heslo",
"password": "heslo",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
+ "unifiedProxy": "Jednotné proxy API pre AI",
+ "unifiedAiApiProxy": "Jednotné proxy API pre AI",
"unifiedAiApiProxyDesc": "Smerujte požiadavky k viacerým poskytovateľom AI cez jeden koncový bod. Zabudované vyrovnávanie záťaže, núdzové prepnutie a sledovanie využitia.",
"passwordNotEnabled": "Ochrana heslom nie je povolená",
"loading": "Načítava sa...",
@@ -9859,7 +9870,7 @@
"backToLogin": "Späť na Prihlásenie",
"forgotPassword": "Zabudli ste heslo?",
"continueWithOidc": "Pokračovať s OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Predvolené heslo: CHANGEME (ak nebolo nastavené INITIAL_PASSWORD)",
"Authorization": "Autorizácia",
"Content-Disposition": "Obsah-Dispozícia",
"waitingForAuthorization": "Čaká sa na autorizáciu...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Čaká sa na antigravitačné povolenie...",
"waitingForQoderAuthorization": "Čaká sa na autorizáciu Qoder...",
"exchangingCodeForTokens": "Výmena kódu za tokeny...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Nekompatibilná verzia Node.js",
+ "nodeIncompatibleDesc": "Používate Node.js {version}, ktorá nespĺňa zásady OmniRoute pre podporované bezpečné runtime prostredie. Použite opravenú verziu Node.js 20.x alebo 22.x LTS.",
+ "nodeIncompatibleFixLabel": "Riešenie: nainštalujte opravenú verziu Node.js 22 LTS",
+ "nodeIncompatibleHint": "OmniRoute vyžaduje Node.js 22.22.2+ (22.x LTS) alebo 24.0.0+ (24.x LTS). Odporúča sa Node 24 LTS.",
"resetViaAppDataTitle": "Obnoviť cez údaje aplikácie",
"resetViaAppDataDescription": "Odstráňte súbor nastavení z adresára aplikácie, aby ste resetovali svoje heslo:",
"quitDesktopApp": "Úplne ukončite desktopovú aplikáciu OmniRoute",
@@ -9929,7 +9940,7 @@
"navigateHome": "Prejdite domov",
"toggleMenu": "Prepnúť ponuku",
"featuresLink": "Vlastnosti",
- "docsLink": "Docs",
+ "docsLink": "Dokumentácia",
"github": "GitHub",
"versionLive": "v1.0 je teraz zverejnená",
"oneEndpoint": "Jeden koncový bod pre",
@@ -9943,7 +9954,7 @@
"featureUnifiedEndpointDesc": "Získajte prístup ku všetkým poskytovateľom prostredníctvom jedinej štandardnej adresy URL rozhrania API.",
"featureEasySetupTitle": "Jednoduché nastavenie",
"featureEasySetupDesc": "Začnite pracovať v priebehu niekoľkých minút pomocou príkazu npx.",
- "featureModelFallbackTitle": "Model Fallback",
+ "featureModelFallbackTitle": "Záložný model",
"featureModelFallbackDesc": "Automaticky prepínajte poskytovateľov pri zlyhaní alebo vysokej latencii.",
"featureUsageTrackingTitle": "Sledovanie používania",
"featureUsageTrackingDesc": "Podrobná analýza a sledovanie nákladov naprieč všetkými modelmi.",
@@ -9953,7 +9964,7 @@
"featureCloudSyncDesc": "Okamžite synchronizujte svoje konfigurácie medzi zariadeniami.",
"featureCliSupportTitle": "Podpora CLI",
"featureCliSupportDesc": "Funguje s Claude Code, Codex, Cline, Cursor a ďalšími.",
- "featureDashboardTitle": "Dashboard",
+ "featureDashboardTitle": "Prehľad",
"featureDashboardDesc": "Vizuálny panel pre analýzu návštevnosti v reálnom čase.",
"howItWorks": "Ako funguje OmniRoute",
"howItWorksDescription": "Dáta plynule prúdia z vašej aplikácie cez našu vrstvu inteligentného smerovania k najlepšiemu poskytovateľovi pre danú úlohu.",
@@ -9976,14 +9987,14 @@
"copied": "✓ Skopírované",
"startingOmniRoute": "Spúšťa sa OmniRoute...",
"serverRunningOnLabel": "Server beží",
- "dashboardLabel": "Dashboard",
+ "dashboardLabel": "Prehľad",
"readyToRoute": "Pripravený na cestu! ✓",
"configureProvidersNote": "📝 Nakonfigurujte poskytovateľov na informačnom paneli alebo použite premenné prostredia",
"dataLocation": "Umiestnenie údajov:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
"product": "Produkt",
- "dashboardLink": "Dashboard",
+ "dashboardLink": "Prehľad",
"changelog": "Denník zmien",
"resources": "Zdroje",
"documentation": "Dokumentácia",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "Poskytovatelia",
"commonUseCases": "Bežné prípady použitia",
"clientCompatibility": "Kompatibilita klienta",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Protokoly",
"apiReference": "Referencia API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Referenčná príručka API na správu",
+ "managementApiDescription": "Koncové body automatizácie pre register proxy serverov, priradenia rozsahov a migráciu starších proxy serverov.",
"method": "Metóda",
"path": "Cesta",
"notes": "Poznámky",
@@ -10040,7 +10051,7 @@
"supportsChat": "Podporuje koncové body chatu aj odpovedí.",
"oauthAutoRefresh": "Pripojenie OAuth s automatickou obnovou tokenu.",
"fullStreaming": "Plná podpora streamovania pre všetky modely.",
- "docsLabel": "Docs",
+ "docsLabel": "Dokumentácia",
"docsHeroDescription": "Brána AI pre LLM s viacerými poskytovateľmi. Jeden koncový bod pre OpenAI, Anthropic, Gemini, GitHub Copilot, Claude Code, Cursor a 20+ ďalších poskytovateľov.",
"openDashboard": "Otvorte informačný panel",
"endpointPage": "Koncový bod",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Použite napríklad predponu poskytovateľa",
"deploySetupTitle": "Sprievodca nastavením",
"deploySetupText": "Inštalácia krok za krokom, konfigurácia prostredia a návod na prvé spustenie pre OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron pre počítače",
"deployElectronText": "Spustite OmniRoute ako natívnu počítačovú aplikáciu v systémoch Windows, MacOS a Linux.",
"deployDockerTitle": "Docker",
"deployDockerText": "Kontajnerové nasadenie s Docker Compose; pripravené na produkčné zásobníky a Kubernetes.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Nainštalujte OmniRoute ako progresívnu webovú aplikáciu do prehliadačov so systémom Android, iOS a stolných počítačov.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Spustite OmniRoute na Androide cez Termux bez grafického rozhrania. K ovládaciemu panelu pristupujte z mobilného prehliadača.",
"featureRoutingTitle": "Smerovanie viacerých poskytovateľov",
"featureRoutingText": "Smerujte požiadavky na 30+ poskytovateľov AI cez jeden koncový bod kompatibilný s OpenAI. Podporuje chat, odpovede, audio a obrazové API.",
"featureCombosTitle": "Kombinácie a vyváženie",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Použite OmniRoute ako stabilnú základnú adresu URL, zatiaľ čo pod ňou budete striedať účty alebo kombinácie poskytovateľov.",
"clientKimiBullet2": "V tokoch kódovania uprednostňujte modely s predponou, aby záložné a kontrolné záznamy zostali explicitné.",
"clientKimiBullet3": "Ak chcete natívne smerovanie v štýle odpovedí pre klientov používajúcich nástroje, použite `/v1/responses`.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protokoly: MCP a A2A",
+ "protocolsDescription": "OmniRoute okrem API kompatibilných s OpenAI poskytuje dva prevádzkové protokoly: MCP na vykonávanie nástrojov a A2A na pracovné postupy medzi agentmi.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Použite MCP cez stdio, aby klienti mohli vyhľadávať a volať nástroje OmniRoute s možnosťou auditovania.",
+ "protocolMcpStep1": "Spustite prenos MCP pomocou `omniroute --mcp`.",
+ "protocolMcpStep2": "Nastavte svojho klienta MCP na prenos cez stdio.",
+ "protocolMcpStep3": "Zavolajte `omniroute_get_health` a `omniroute_list_combos` na overenie pripojenia.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Použite A2A JSON-RPC na odosielanie úloh synchrónne alebo prostredníctvom streamovania SSE.",
+ "protocolA2aStep1": "Na vyhľadanie agenta načítajte `/.well-known/agent.json`.",
+ "protocolA2aStep2": "Odosielajte požiadavky `message/send` alebo `message/stream` na `POST /a2a`.",
+ "protocolA2aStep3": "Spravujte životný cyklus úloh pomocou `tasks/get` a `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Riešenie problémov s protokolmi",
+ "protocolTroubleshooting1": "Ak je stav MCP offline, overte, či je proces stdio spustený a či sa aktualizuje súbor heartbeat.",
+ "protocolTroubleshooting2": "Ak úlohy A2A zostávajú v stave `working`, skontrolujte `/api/a2a/tasks/:id` a udalosti streamu, aby ste zistili koncový stav.",
+ "protocolTroubleshooting3": "Na prevádzkové ovládanie a auditovanie použite `/dashboard/mcp` a `/dashboard/a2a`.",
"endpointChatNote": "Koncový bod chatu kompatibilný s OpenAI (predvolené).",
"endpointResponsesNote": "Koncový bod API odpovedí (Codex, o-series).",
"endpointModelsNote": "Modelový katalóg pre všetkých pripojených poskytovateľov.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Pomocník na prepísanie pre klientov bez /v1.",
"endpointRewriteResponsesNote": "Pomocník na prepísanie pre odpovede bez /v1.",
"endpointRewriteModelsNote": "Prepísať pomocníka na zisťovanie modelov bez /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Zobrazí uložené položky registra proxy serverov (podporuje stránkovanie).",
+ "mgmtProxiesCreateNote": "Vytvorí opakovane použiteľnú položku proxy servera v registri.",
+ "mgmtProxiesHealthNote": "Získa 24-hodinové/priebežné metriky stavu každého uloženého proxy servera z jeho protokolov.",
+ "mgmtProxiesBulkAssignNote": "Priradí alebo odstráni jeden proxy server pre viacero ID rozsahov v jednej požiadavke.",
+ "mgmtAssignmentsListNote": "Zobrazí priradenia proxy serverov podľa scope, scope_id alebo proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Priradí alebo odstráni proxy server pre rozsah global/provider/account/combo.",
+ "mgmtLegacyMigrationNote": "Importuje staršie mapy proxyConfig do priradení registra.",
"modelPrefixesDescriptionStart": "Na smerovanie ku konkrétnemu poskytovateľovi použite predponu poskytovateľa pred názvom modelu. Príklad:",
"modelPrefixesDescriptionEnd": "trasy na GitHub Copilot.",
"provider": "Poskytovateľ",
@@ -10211,7 +10222,7 @@
"mcpToolsMemoryDesc": "Vyhľadávajte, pridávajte a vymažte trvalé záznamy konverzačnej pamäte.",
"mcpToolsSkillsTitle": "Zručnosti",
"mcpToolsSkillsDesc": "Uveďte, povoľte, spustite a monitorujte vykonávanie vlastných zručností.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "Automatické kombinácie",
"featureAutoComboText": "Automaticky vytvárajte optimalizované kombinácie na základe vašich pripojených poskytovateľov, vzorov používania a možností modelu.",
"featureSearchTitle": "Vyhľadávanie na webe",
"featureSearchText": "Integrované vyhľadávanie na webe s 5 poskytovateľmi (Serper, Brave, Exa, Tavily, Perplexity) vrátane analýzy a sledovania nákladov.",
@@ -10247,7 +10258,7 @@
"nonTechUsersSubtitle": "Začnite rýchlo — nie je potrebné technické zázemie",
"techUsersTitle": "Pre technických používateľov",
"techUsersSubtitle": "Hlboké ponorenie do architektúry, API a interných procesov",
- "apiExplorerMetadataTitle": "API Explorer — OmniRoute Docs",
+ "apiExplorerMetadataTitle": "Prieskumník API — dokumentácia OmniRoute",
"apiExplorerMetadataDescription": "Interaktívny API prehliadač — vyskúšajte koncové body OmniRoute naživo s odpoveďami v reálnom čase",
"apiExplorerTitle": "API Prieskumník",
"apiExplorerDescription": "Vyskúšajte koncové body OmniRoute naživo. Vyberte koncový bod, nakonfigurujte svoju požiadavku a sledujte odpoveď v reálnom čase.",
@@ -10292,7 +10303,7 @@
"listSeparator": "-",
"questionsVisit": "Otázky? Navštívte našu",
"githubRepository": "úložisko GitHub",
- "privacySection1Title": "1. Local-First Architecture",
+ "privacySection1Title": "1. Architektúra uprednostňujúca lokálne prostredie",
"privacySection1Text": "OmniRoute je navrhnutý ako lokálna aplikácia. Všetko spracovanie a ukladanie údajov prebieha výlučne na vašom počítači. Neexistuje žiadny centralizovaný server, ktorý by zbieral vaše informácie.",
"privacySection2Title": "2. Údaje, ktoré uchovávame",
"privacyDataStoredIn": "Nasledujúce údaje sú uložené lokálne v",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute je softvér s otvoreným zdrojovým kódom. Môžete ho voľne kontrolovať, upravovať a distribuovať v súlade s podmienkami jeho licencie."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "Agenti CLI",
+ "description": "Vyhľadajte agentov CLI nainštalovaných vo svojom systéme. Pridajte vlastných agentov na automatickú detekciu.",
+ "refresh": "Obnoviť",
+ "installed": "Nainštalované",
+ "notFound": "Nenájdené",
+ "builtIn": "Vstavaný",
+ "custom": "Vlastný",
+ "remove": "Odstrániť",
+ "addCustomAgent": "Pridať vlastného agenta",
+ "addCustomAgentDesc": "Zaregistrujte ľubovoľný nástroj CLI na detekciu. Pri obnovení sa automaticky vyhľadá.",
+ "agentName": "Názov agenta",
+ "binaryName": "Názov binárneho súboru",
+ "versionCommand": "Príkaz na zistenie verzie",
+ "spawnArgs": "Argumenty spustenia",
+ "addAgent": "Pridať agenta",
+ "scanning": "Vyhľadávajú sa agenti CLI v systéme...",
+ "opencodeIntegration": "Integrácia OpenCode",
+ "opencodeDetected": "Zistený opencode {version}",
+ "opencodeDesc": "Vygenerujte súbor {configFile} pripravený na použitie s vašou základnou URL adresou OmniRoute a všetkými dostupnými modelmi — umiestnite ho do koreňového adresára projektu a spustite príkaz {command}.",
+ "downloadConfig": "Stiahnuť {file}",
+ "downloaded": "Stiahnuté!",
+ "setupGuideTitle": "Sprievodca nastavením",
+ "openCliTools": "Otvoriť nástroje CLI",
+ "setupGuideDetectCliTitle": "Zistiť nainštalované nástroje CLI",
+ "setupGuideDetectCliDesc": "Po inštalácii alebo aktualizácii nástroja CLI kliknite na Obnoviť, aby OmniRoute mohol znova skontrolovať binárne súbory a verzie.",
+ "setupGuideCustomAgentTitle": "Zaregistrovať vlastný binárny súbor",
+ "setupGuideCustomAgentDesc": "Ak váš nástroj CLI nie je v zozname vstavaných nástrojov, použite možnosť Pridať vlastného agenta. Zadajte názov binárneho súboru a príkaz na zistenie verzie.",
+ "setupGuideCommandMissingTitle": "Opraviť chybu „príkaz sa nenašiel“",
+ "setupGuideCommandMissingDesc": "Uistite sa, že príkaz CLI existuje v PATH, otvorte novú reláciu terminálu a znova spustite obnovenie.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10534,108 +10545,108 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Správa vyrovnávacej pamäte",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Obnoviť",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Položky v pamäti",
+ "memoryEntriesSub": "LRU v pamäti",
+ "dbEntries": "Položky databázy",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Zásahy do vyrovnávacej pamäte",
+ "cacheHitsSub": "z celkového počtu {total}",
+ "tokensSaved": "Ušetrené tokeny",
+ "tokensSavedSub": "Odhadované zo zásahov",
+ "hitRate": "Miera zásahov",
+ "performance": "Výkon vyrovnávacej pamäte",
+ "autoRefresh": "Automaticky sa obnovuje každých {seconds} s",
+ "hits": "Zásahy",
+ "misses": "Minutia",
+ "total": "Celkom",
+ "behavior": "Správanie vyrovnávacej pamäte",
+ "behaviorDeterministic": "Ukladajú sa do vyrovnávacej pamäte iba požiadavky bez streamovania s temperature=0.",
+ "behaviorBypass": "Obíďte pomocou hlavičky {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Predvolená hodnota TTL: 30 minút. Nakonfigurujte ju pomocou {envVar}.",
+ "idempotency": "Vrstva idempotencie",
+ "activeDedupKeys": "Aktívne kľúče deduplikácie",
+ "dedupWindow": "Okno deduplikácie",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Vyrovnávaciu pamäť sa nepodarilo vymazať.",
+ "unavailable": "Vyrovnávacia pamäť nie je k dispozícii",
+ "unavailableDesc": "Nepodarilo sa načítať štatistiky vyrovnávacej pamäte. Uistite sa, že server je spustený.",
"loadingCacheAria": "Načítavanie cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Vyrovnávacia pamäť promptov (na strane poskytovateľa)",
+ "semanticCache": "Sémantická vyrovnávacia pamäť",
+ "promptCacheSectionDesc": "Zobrazuje aktivitu ukladania promptov do vyrovnávacej pamäte na strane poskytovateľa z histórie používania, aby ste videli, kde je riadenie vyrovnávacej pamäte aktívne a koľko vstupov sa opätovne používa.",
+ "promptTrendDesc": "Hodinový objem požiadaviek, pokrytie vyrovnávacej pamäte a objem čítania z vyrovnávacej pamäte za posledných 24 hodín.",
+ "cachedRequests": "Požiadavky vo vyrovnávacej pamäti",
+ "cachedRequests24h": "Požiadavky vo vyrovnávacej pamäti (24 h)",
+ "cacheHitRate": "Miera zásahov do vyrovnávacej pamäte",
+ "cacheRate": "Miera využitia vyrovnávacej pamäte",
+ "cacheRateDesc": "z celkového počtu požiadaviek",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Metriky vyrovnávacej pamäte promptov",
+ "withCacheControl": "S riadením vyrovnávacej pamäte",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Pomer opätovného použitia vyrovnávacej pamäte",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Odhadované ušetrené náklady",
+ "lastUpdated": "Posledná aktualizácia",
+ "hoursTracked": "sledovaných hodín",
+ "busiestHour": "Najvyťaženejšia hodina",
+ "peakCacheRate": "Maximálna miera využitia vyrovnávacej pamäte",
+ "trendHour": "Hodina",
+ "activityVolume": "Aktivita",
+ "requestsShort": "požiadaviek",
+ "inputShort": "Vstup",
+ "cachedShort": "Vo vyrovnávacej pamäti",
+ "writeShort": "Zápis",
+ "resetting": "Obnovuje sa...",
+ "resetMetrics": "Obnoviť metriky",
+ "byProvider": "Rozdelenie podľa poskytovateľa",
+ "providerCacheRateDesc": "Každý poskytovateľ uvádza celkový počet vstupných tokenov, tokenov načítaných z vyrovnávacej pamäte a tokenov zapísaných do vyrovnávacej pamäte, aby ste mohli porovnať pomer opätovného použitia s nespracovanými súčtami.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Požiadavky",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Trend vyrovnávacej pamäte (24 h)",
+ "peakCached": "Maximum uložených v pamäti",
+ "cached": "Vo vyrovnávacej pamäti",
+ "overview": "Prehľad",
"tableProvider": "Poskytovateľ",
"tableModel": "Model",
"performanceTitle": "Výkon",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "Vlastná deterministická vyrovnávacia pamäť odpovedí OmniRoute. Keď je povolená, opakované požiadavky bez streamovania s temperature=0 možno obslúžiť lokálne bez kontaktovania nadradeného poskytovateľa.",
+ "semanticCacheDisabledDesc": "Sémantická vyrovnávacia pamäť je vypnutá. OmniRoute nebude opätovne používať lokálne odpovede, kým ju znova nezapnete v Nastaveniach.",
+ "semanticEntriesDesc": "Trvalo uložené záznamy sémantickej vyrovnávacej pamäte, ktoré sú momentálne uložené v SQLite. Aktivita vyrovnávacej pamäte promptov na strane poskytovateľa tu nie je uvedená.",
+ "searchEntries": "Hľadať záznamy...",
+ "search": "Hľadať",
+ "loading": "Načítava sa...",
+ "entriesLoadError": "Nepodarilo sa načítať záznamy sémantickej vyrovnávacej pamäte.",
+ "noEntries": "Nenašli sa žiadne záznamy vo vyrovnávacej pamäti",
+ "noPromptCacheData": "Zatiaľ nebola zaznamenaná žiadna aktivita vyrovnávacej pamäte promptov na strane poskytovateľa.",
+ "noTrendData": "Za posledných 24 hodín nebola zaznamenaná žiadna aktivita vyrovnávacej pamäte promptov.",
+ "signature": "Podpis",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
- "reasoningCache": "Reasoning Replay",
+ "created": "Vytvorené",
+ "expires": "Platnosť vyprší",
+ "actions": "Akcie",
+ "deduplicatedRequests": "Deduplikované požiadavky",
+ "savedCalls": "Ušetrené volania API",
+ "totalProcessed": "Celkový počet spracovaných požiadaviek",
+ "disabled": "Vypnuté",
+ "totalRequests": "Požiadavky celkovo",
+ "reasoningCache": "Opätovné prehratie uvažovania",
"reasoningCacheDesc": "Zachováva modelové myslenie pre toky vyvolávania viacotáčkových nástrojov",
"reasoningEntries": "Aktívne záznamy",
"reasoningReplayRate": "Miera opakovania",
"reasoningReplays": "Celkový počet prehratí",
"reasoningCharsCached": "Postavy uložené vo vyrovnávacej pamäti",
- "reasoningMisses": "Cache Misses",
+ "reasoningMisses": "Nenájdené záznamy vo vyrovnávacej pamäti",
"reasoningByProvider": "Poskytovateľom",
"reasoningByModel": "Podľa modelu",
"reasoningRecentEntries": "Nedávne záznamy",
@@ -10665,16 +10676,16 @@
"minutesAgo": "pred {minutes}m",
"hoursAgo": "pred {hours}h",
"daysAgo": "pred {days}d",
- "entries": "Entries"
+ "entries": "Záznamy"
},
"proxyConfigModal": {
"levelGlobal": "globálne",
"levelProvider": "Poskytovateľ",
- "levelCombo": "Combo",
+ "levelCombo": "Kombinácia",
"levelKey": "kľúč",
"levelDirect": "Priame (bez proxy)",
"titleGlobal": "Globálna konfigurácia proxy",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "Proxy {level} — {label}",
"loading": "Načítava sa konfigurácia servera proxy...",
"inheritingFrom": "Dedenie od",
"source": "Zdroj",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "Vložte existujúci kľúč API Devin z autentifikovanej relácie Devin. Dostupnosť exportu kľúča a kroky sa líšia podľa verzie a účtu Devin.",
"devinPasteDescription": "Poskytnite svoj WINDSURF_API_KEY (získaný pomocou `devin auth login`, alebo prostredníctvom príkazu \"Windsurf: Provide Auth Token\" v IDE Windsurf).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json zostavy Grok",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "API Kľúč / Token",
"saving": "Ukladanie…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Pripojte kurzorové IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Prihlásiť sa pomocou Cursor",
+ "tabImport": "Importovať token",
+ "loginDescription": "Otvorí prihlásenie Cursor v prehliadači. Funguje aj v Docker — schváľte ho v prehliadači hostiteľského systému a potom sa vráťte sem.",
+ "loginWithCursor": "Prihlásiť sa pomocou Cursor",
+ "startingLogin": "Spúšťa sa…",
+ "waitingApproval": "Čaká sa na schválenie prihlásenia Cursor…",
+ "openUrlHint": "Ak sa prehliadač neotvoril:",
+ "openLoginLink": "Otvoriť prihlasovaciu stránku",
+ "cancelLogin": "Zrušiť prihlásenie",
"autoDetecting": "Automatické zisťovanie tokenov...",
"readingFromCursor": "Čítanie z kurzorového IDE alebo kurzorového agenta",
"tokensAutoDetected": "Tokeny boli úspešne automaticky zistené z Cursor IDE!",
"cursorNotDetected": "Nebolo zistené IDE kurzora. Prilepte svoj token ručne.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Používate Docker? Uprednostnite prihlásenie cez Cursor. Automatický import z IDE a cursor-agent zvyčajne nie sú v kontajneri dostupné. Pozrite si docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Prístupový token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Obnovovací token",
+ "refreshTokenPlaceholder": "Voliteľné — umožňuje automatické obnovovanie tokenu",
"required": "*",
"accessTokenPlaceholder": "Prístupový token sa automaticky vyplní...",
"machineId": "ID stroja",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Automatická detekcia tokenov zlyhala",
"errorEnterToken": "Zadajte prístupový token",
"errorImportFailed": "Import zlyhal",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Nepodarilo sa spustiť prihlásenie cez Cursor",
+ "errorLoginPoll": "Prihlásenie cez Cursor zlyhalo",
+ "errorLoginTimeout": "Časový limit prihlásenia cez Cursor vypršal — skúste to znova"
},
"pricingModal": {
"title": "Konfigurácia cien",
@@ -10839,9 +10850,9 @@
"selectProxy": "Vybrať {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importovať staršie údaje",
+ "bulkAssign": "Hromadne priradiť",
+ "addProxy": "Pridať proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,15 +10861,15 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Otestovať",
+ "edit": "Upraviť",
+ "delete": "Odstrániť",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Typ",
"labelFamily": "Rodina IP",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automaticky (dual-stack)",
"familyIpv4": "Iba IPv4",
"familyIpv6": "Iba IPv6",
"familyHint": "Rodina odchádzajúcich adries. Možnosť Auto zachová dual-stack; IPv4/IPv6 priradí toto proxy k danej rodine (zabraňuje úniku v4 pod proxy iba s IPv6).",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Zlyhalo",
"successRate": "{rate} % úspechu",
"avgLatency": "priemer {latency} ms",
"assignmentsCount": "{count} úloh",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Opraviť",
"relayAuthMissing": "chýba autorizácia",
@@ -10920,7 +10931,7 @@
"bulkImport": "Hromadný import",
"bulkImportTitle": "Hromadný import proxy",
"bulkImportDescription": "Prilepte profily proxy pomocou formátu oddeleného zvislými čiarami. Jeden proxy na riadok. Existujúce proxy (rovnaký hostiteľ + port) budú aktualizované.",
- "bulkImportParse": "Parse",
+ "bulkImportParse": "Analyzovať",
"bulkImportImport": "Importovať servery proxy {count}",
"bulkImportImporting": "Importuje sa...",
"bulkImportParsed": "Analyzované servery proxy: {count}",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Stratégia rotácie",
"poolStrategyHint": "round-robin cyklicky strieda členov v poradí; random vyberá rovnomerne; sticky drží jedného člena počas časového okna; latency-optimized vyberá najrýchlejšieho na základe záznamov.",
"poolStrategyFailed": "Nepodarilo sa aktualizovať stratégiu rotácie",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Cyklické",
"strategyRandom": "Náhodné",
- "strategySticky": "Sticky",
+ "strategySticky": "Trvalé priradenie",
"strategyLatency": "Optimalizované podľa latencie",
"poolMembersLabel": "Členovia poolu ({count})",
"poolNoMembers": "V tomto poole zatiaľ nie sú žiadne proxy servery.",
+ "poolEgressObservation": "Výstupy: {exits, plural, one {# výstup} few {# výstupy} other {# výstupov}} · pripojenia: {connections, plural, one {# pripojenie} few {# pripojenia} other {# pripojení}} · najviac {max} na jednom výstupe · za posledných {hours} h",
+ "poolEgressObservationEmpty": "Za posledných {hours} h nebola zaznamenaná žiadna prevádzka",
+ "poolEgressObservationHint": "Počítané z denníka proxy za sledované obdobie: jedinečné výstupné IP adresy zaznamenané pre členov tohto fondu a pripojenia OmniRoute, ktoré ich použili. „Na jednom výstupe“ znamená počas sledovaného obdobia, nie súčasne. Blokovanie 429 pre jednotlivé IP adresy pozastaví iba pripojenia rovnakej rodiny poskytovateľov.",
"poolRemove": "Odstrániť",
"poolRemoveFailed": "Nepodarilo sa odstrániť proxy z poolu",
"poolAddLabel": "Pridať proxy",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "endpoint": "Koncový bod",
+ "provider": "Poskytovateľ",
"model": "Model",
"accountKey": "Account Key",
"autoAccounts": "Auto (počet účtov: {count})",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Odoslať",
+ "cancel": "Zrušiť",
+ "audioFile": "Zvukový súbor",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Vymazať všetko",
+ "request": "Požiadavka",
+ "response": "Odpoveď",
+ "transcription": "Prepis",
+ "copy": "Kopírovať",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Počet vygenerovaných obrázkov: {count}",
"generatedImage": "Vygenerovaný obrázok {index}",
- "save": "Save",
+ "save": "Uložiť",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Odpovede",
"completions": "Dokončenia",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Vektorové reprezentácie",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Moderovanie",
- "rerank": "Rerank",
+ "rerank": "Zmena poradia",
"search": "Search",
"webFetch": "Načítanie z webu"
},
"conversationalChat": "Konverzačný rozhovor",
"clearChat": "Vymazať chat",
"typeMessagePlaceholder": "Napíšte správu... (Shift+Enter pre nový riadok)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Čet",
+ "tabCompare": "Porovnať",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Zostaviť",
+ "configPane": "Konfigurácia",
+ "systemPrompt": "Systémová výzva",
+ "systemPromptPlaceholder": "Ste nápomocný asistent.",
+ "modelPlaceholder": "napr. openai/gpt-4o",
+ "endpointLabel": "Koncový bod",
+ "parametersLabel": "Parametre",
+ "collapseConfig": "Zbaliť panel konfigurácie",
+ "expandConfig": "Rozbaliť panel konfigurácie",
+ "temperature": "Teplota",
+ "maxTokens": "Maximálny počet tokenov",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Penalizácia prítomnosti",
+ "frequencyPenalty": "Penalizácia frekvencie",
"reasoningLabel": "Uvažovanie",
"thinking": "Premýšľanie",
"effort": "Úsilie",
"effortDefault": "Predvolené",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Náhodné (nechajte prázdne)",
+ "presetsLabel": "Predvoľby",
+ "loadPreset": "Načítať predvoľbu",
+ "savePreset": "Uložiť predvoľbu",
+ "noPresets": "Žiadne predvoľby",
+ "presetNamePlaceholder": "Názov predvoľby",
+ "savingPreset": "Ukladá sa…",
+ "nameRequired": "Názov je povinný",
+ "failedToSavePreset": "Predvoľbu sa nepodarilo uložiť",
+ "improvePrompt": "Vylepšiť výzvu",
+ "improvingPrompt": "Vylepšuje sa…",
+ "improvePromptTitle": "Vylepšite svoju výzvu pomocou AI",
+ "setModelFirst": "Najprv nastavte model",
"setModelInConfigFirst": "Najprv nastavte model na paneli Konfigurácia.",
"improvePromptFailed": "Vylepšenie výzvy zlyhalo.",
"improvePromptAria": "Vylepšiť výzvu pomocou AI",
"confirmImprovePrompt": "Potvrdiť vylepšenie výzvy",
"improvePromptDescription": "Týmto odošlete svoj aktuálny systémový prompt do trae.ai v tento prehliadač najprv. Stránka autorizácie iba potvrdzuje existujúcu reláciu — nemôže vás prihlásiť. Ak vidíte \"Prihlásenie zlyhalo\", kliknite na \"Otvoriť solo.trae.ai\", prihláste sa, a potom sa vráťte sem.",
"waitingForAuthorization": "Čakám na trae.ai…",
"authorizeWithBrowser": "Autorizovať pomocou prehliadača",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "Otvoriť solo.trae.ai",
"orPasteManually": "alebo vložte token ručne",
"manualInstructions": "Prihláste sa na solo.trae.ai, otvorte DevTools → Network, pošlite akúkoľvek správu a skopírujte JWT z Authorization: Cloud-IDE-JWT {tokenPlaceholder} hlavičky požiadavky. Životnosť JWT je ~14 dní. Voliteľné identifikačné polia pochádzajú z common_params v tej istej požiadavke.",
"accessTokenLabel": "Prístupový token (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "webId": "Webové ID",
"optional": "voliteľné",
"bizUserId": "ID používateľa Biz",
"userUniqueId": "Jedinečné ID používateľa",
@@ -13854,7 +13887,7 @@
}
},
"providerTest": {
- "dialogLabel": "Test {provider}",
+ "dialogLabel": "Otestovať {provider}",
"deprecated": "zastaralé",
"risk": "riziko",
"close": "Zavrieť",
@@ -13864,7 +13897,7 @@
"clearConversation": "Vymazať konverzáciu",
"clear": "Vymazať",
"tabs": {
- "test": "Test",
+ "test": "Otestovať",
"logs": "Záznamy"
},
"loadingLogs": "Načítavam protokoly…",
@@ -13913,7 +13946,7 @@
"followDescription": "Os x sa posúva doľava, NOW čiara zostáva na 75%",
"now": "Teraz",
"nowDescription": "Preskoči na aktuálny čas, NOW riadok sa resetuje na stred",
- "pan": "Pan",
+ "pan": "Posun",
"panDescription": "Potiahnite na preskúmanie, pozadie je zamrznuté"
},
"reset": "Obnoviť",
@@ -13925,7 +13958,7 @@
"tokens": "Tokeny",
"active": "Aktívny",
"other": "Iné",
- "tenMinutes": "10min",
+ "tenMinutes": "10 min",
"hour": "hodina",
"day": "deň",
"unknownModel": "neznámy",
@@ -13934,9 +13967,9 @@
"metadata": {
"compressionTitle": "Komprimácia",
"compressionDescription": "Nastavte nastavenia kompresie kontextu na zníženie používania tokenov a nákladov.",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — Relay proxy servery",
"relayDescription": "Serverless relay proxy koncové body pre vašu AI infraštruktúru",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Inšpektor prevádzky — OmniRoute",
"trafficInspectorDescription": "Monitor LLM volania + debugovať HTTPS prenos akéhokoľvek aplikácie"
},
"conductor": {
@@ -13945,7 +13978,7 @@
"runners": "Bežci",
"tasks": "Úlohy",
"colName": "Názov",
- "colClis": "CLIs",
+ "colClis": "CLI",
"colStatus": "Stav",
"colTask": "Úloha",
"colMode": "Režim",
@@ -14048,11 +14081,11 @@
"actionApprove": "Schváliť plán",
"actionCancel": "Zrušiť",
"actionSeeInGraph": "Zobraziť v grafe",
+ "actionRepeat": "Opakovať",
"actionDone": "Akcia použitá",
"actionFailed": "Akcia zlyhala: {error}",
"detailFailed": "Nepodarilo sa načítať podrobnosti: {error}",
"mirroredInA2A": "Zrkadlené v A2A",
- "actionRepeat": "Opakovať",
"repeatConfirm": "Kliknutím znova potvrďte",
"repeatDone": "Vytvorené nové spustenie",
"repeatUnavailable": "Pôvodný vstup nie je k dispozícii"
@@ -14060,63 +14093,63 @@
"cliproxyProviderExposure": {
"title": "Expozícia poskytovateľa",
"description": "Expose CLIProxyAPI modely ako cieľ smerovania pod prefixom https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "URL за GitHub Enterprise",
"gheUrlRequired": "GitHub Enterprise URL је обавезан",
"gitlabDuoSetupTitle": "Подешавање GitLab Duo OAuth-а",
"gitlabDuoSetupMessage": "GitLab Duo OAuth није подешен. Региструјте OAuth апликацију на {applicationsUrl} са redirect URI {redirectUri} и обимима „{scopes}“, затим подесите {clientIdEnv} (и опционо {clientSecretEnv}) и поново покрените.",
@@ -10884,7 +10888,7 @@
"save": "Сачувај",
"bulkModalTitle": "Групно додељивање proxy сервера",
"bulkLabelScope": "Опсег",
- "bulkLabelProxy": "Proxy",
+ "bulkLabelProxy": "Прокси",
"bulkClearAssignment": "(Обриши доделу)",
"bulkLabelScopeIds": "ID-ови опсега (раздвојени зарезом или новим редом)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
@@ -10915,7 +10919,7 @@
"assignmentsCount": "{count} доделa",
"noData": "—",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Поправи",
"relayAuthMissing": "недостаје аутентикација",
@@ -10958,12 +10962,15 @@
"poolStrategyLabel": "Стратегија ротације",
"poolStrategyHint": "round-robin циклично пролази кроз чланове по редоследу; random бира равномерно насумично; sticky задржава једног члана током временског прозора; latency-optimized бира најбржи на основу логова.",
"poolStrategyFailed": "Ажурирање стратегије ротације није успело",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Кружно распоређивање",
"strategyRandom": "Насумично",
- "strategySticky": "Sticky",
+ "strategySticky": "Стална веза",
"strategyLatency": "Оптимизовано по кашњењу",
"poolMembersLabel": "Чланови групе ({count})",
"poolNoMembers": "Нема proxy-ja у овој групи још.",
+ "poolEgressObservation": "{exits, plural, one {# излаз} other {# излаза}} користи {connections, plural, one {# веза} other {# веза}} · до {max} на једном излазу · последњих {hours} ч",
+ "poolEgressObservationEmpty": "Није забележен саобраћај у последњих {hours} ч",
+ "poolEgressObservationHint": "Израчунато на основу евиденције проксија током периода: различите одлазне IP адресе забележене за чланове овог скупа и OmniRoute везе које су их користиле. „На једном излазу“ односи се на цео период, а не на исти тренутак. Закључавање по IP адреси услед грешке 429 паузира само везе исте породице провајдера.",
"poolRemove": "Уклони",
"poolRemoveFailed": "Уклањање proxy-ja из групе није успело",
"poolAddLabel": "Додај proxy",
@@ -11001,17 +11008,17 @@
"generatedImage": "Генерисана слика {index}",
"save": "Сачувај",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
- "completions": "Completions",
+ "chat": "Довршавања ћаскања",
+ "responses": "Одговори",
+ "completions": "Допуне",
"images": "Генерисање слика",
- "embeddings": "Embeddings",
+ "embeddings": "Уграђивања",
"speech": "Претварање текста у говор",
"transcription": "Транскрипција аудио записа",
"video": "Генерисање видеа",
"music": "Генерисање музике",
"moderations": "Модерације",
- "rerank": "Rerank",
+ "rerank": "Поновно рангирање",
"search": "Веб претрага",
"webFetch": "Преузимање веб садржаја"
},
@@ -11125,7 +11132,7 @@
"jsonSchemaEditor": "Уређивач JSON шеме",
"schemaValidated": "Шема је потврђена",
"validateSchema": "Потврди шему",
- "seed": "Seed",
+ "seed": "Почетна вредност",
"stopSequences": "Секвенце заустављања",
"stopSequencesPlaceholder": "нпр. \"\\n\\n\" или \"END\"",
"autoProvider": "Аутоматски",
@@ -11237,7 +11244,7 @@
"searchResultFallback": "Резултат {number}",
"noKeysFound": "Нису пронађени API кључеви. Додајте један у одељку Кључеви.",
"exampleLabel": "Пример",
- "latency": "{ms}ms",
+ "latency": "{ms} ms",
"statsLine": "{ms}ms · {tokensIn} улазних / {tokensOut} излазних токена",
"defaultKey": "(подразумевано)",
"clear": "Обриши",
@@ -11282,7 +11289,7 @@
"refresh": "Освежи",
"columnsLabel": "Колоне",
"cacheSem": "СЕМ",
- "cacheUp": "UP",
+ "cacheUp": "АКТИВНО",
"semantic": "Семантички",
"upstream": "Извориште",
"semanticCacheHit": "Погодак семантичке кеша (испоручио OmniRoute)",
@@ -11443,9 +11450,9 @@
"allLevels": "Сви нивои",
"allProviders": "Сви провајдери",
"total": "укупно",
- "ok": "OK",
- "err": "ERR",
- "timeoutShort": "TMO",
+ "ok": "У РЕДУ",
+ "err": "ГРЕШКА",
+ "timeoutShort": "ИСТЕК ВРЕМЕНА",
"direct": "директно",
"newest": "Најновије",
"oldest": "Најстарије",
@@ -11466,7 +11473,7 @@
"chat": "Ћаскање",
"music": "Музика",
"responses": "Одговори",
- "rerank": "Rerank",
+ "rerank": "Поновно рангирање",
"video": "Видео",
"embeddings": "Уградње",
"transcription": "Транскрипција"
@@ -11671,7 +11678,7 @@
"endpointsBaseUrl": "Основни URL",
"endpointsCollapse": "Скупи",
"endpointsExpand": "Прошири",
- "endpointsAnthropicNote": "Anthropic-native",
+ "endpointsAnthropicNote": "Изворно за Anthropic",
"endpointsResponsesNote": "OpenAI Responses — codex/github",
"endpointsWsNote": "WebSocket — само codex",
"betaText": "Quota Share функционише, али се очекују грешке. Пронашли сте једну? Молимо пријавите је.",
@@ -12002,7 +12009,7 @@
"requestTelemetryDescription": "Разлагање 7-фазног процеса (последњих 5 минута)"
},
"relay": {
- "title": "Serverless Relay Proxies",
+ "title": "Проксији за прослеђивање без сервера",
"description": "Направите јавне API крајње тачке које прослеђују захтеве ка OmniRoute уз ограничење брзине и контролу приступа",
"created": "Relay токен креиран",
"createFailed": "Креирање токена није успело",
@@ -12040,7 +12047,7 @@
"agentBridgeModeDesc": "Снимај саобраћај са свих повезаних IDE агента",
"customHostsMode": "Прилагођени хостови",
"customHostsModeDesc": "Додајте одређене хостове за пресретање",
- "httpProxyMode": "HTTP Proxy",
+ "httpProxyMode": "HTTP прокси",
"httpProxyModeDesc": "Користи HTTP_PROXY променљиву окружења",
"systemWideMode": "На нивоу система",
"systemWideModeDesc": "Пресретни сав системски саобраћај (напредно)",
@@ -12057,7 +12064,7 @@
"resumeBtn": "Настави",
"clearBtn": "Обриши све",
"exportHar": "Извези .har",
- "recordSession": "REC",
+ "recordSession": "СНИМ.",
"stopSession": "Заустави",
"liveBadge": "уживо",
"offlineBadge": "ван мреже",
@@ -12390,15 +12397,15 @@
"description": "Osnovne krajnje tačke za inferencu kompatibilne sa OpenAI: chat completions, embeddings, images, audio (TTS/STT), moderations, rerank i Responses API. Primarna integracijska površina za AI agente."
},
"cli-serve": {
- "name": "CLI: Serve",
+ "name": "CLI: Опслуживање",
"description": "Pokrenite, zaustavite i restartujte OmniRoute server iz CLI-a. Upravljajte daemon režimom, konfiguracijom porta, automatskim oporavkom, integracijom sa sistemskom trakom i prečicom za otvaranje kontrolne table."
},
"cli-health": {
- "name": "CLI: Health",
+ "name": "CLI: Стање",
"description": "Provera zdravlja servera, statusa komponenti i uživo metrika iz CLI-a. Pokrenite `health`, `health components` i `health watch` za kontrolnu tablu u realnom vremenu za circuit breakers i status provajdera."
},
"cli-providers": {
- "name": "CLI: Providers",
+ "name": "CLI: Провајдери",
"description": "Upravljajte konekcijama sa provajderima iz CLI-a: prikaz dostupnih/konfigurisanih provajdera, dodavanje, testiranje, test-all, validacija, rotacija API ključeva i pregled metrika po provajderu."
},
"cli-keys": {
@@ -12410,7 +12417,7 @@
"description": "Pretražujte dostupne AI modele, prikažite aliase modela i pregledajte kompletan katalog modela iz CLI-a. Filtrirajte po provajderu, pretražujte po mogućnostima i razrešavajte varijante naziva modela."
},
"cli-chat": {
- "name": "CLI: Chat",
+ "name": "CLI: Ћаскање",
"description": "Slanje chat completions, striming odgovora i pokretanje interaktivne REPL sesije iz CLI-a. Podržava sve OmniRoute provajdere, combo rutiranje i konfiguraciju sistemskog prompta."
},
"cli-routing": {
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Дозволи опоравку тока да поново затражи одговор и споји га након што су бајтови већ стигли до клијента."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Омогућите безбедан наставак позива алатке усред тока: никада не настављајте прекинути ток након што је позив алатке послат (било да је још у току или је већ завршен) и зауставите се након једног празног наставка уместо коришћења целокупног броја покушаја."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Једном пребаци на сродну везу када се ток затвори пре слања иједног корисног оквира, а ограничени поновни покушај на истој вези је искоришћен. Ако нема употребљиве сродне везе, враћа се изворна early-EOF грешка. Искључено: early-EOF остаје коначан након поновног покушаја."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Укључи поља са именом прилагођеним за приказ у одговорима /v1/models. Онемогући ово за клијенте који прихватају само ID-ове модела."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Серверска петља алата",
"description": "Наставите нестримујуће серверске позиве алата док модел не врати одговор који клијент може да користи."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Порекло вредности Retry-After",
+ "description": "За обједињене одговоре 429/503 о недоступности изоставите Retry-After када није познато конкретно будуће време поновног покушаја, уместо слања вештачке вредности од 1s; додајте error.retry_after_provenance и читајте текстуалне назнаке за поновни покушај на путањама пражњења комбинације."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Заустављања инфраструктуре за заштићени приоритет као 502",
+ "description": "Одговорите статусом 502 уместо 503 када приоритетно одредиште које користи резервну опцију само због квоте заустави комбинацију из разлога за који се може доказати да није квота: активираног прекидача кола провајдера или предиктивног прескакања због кашњења."
}
}
},
@@ -13482,7 +13503,7 @@
"localStateSaveFailed": "Није успело чување локалних Radar подешавања",
"guidedCombos": "Вођене комбинације",
"offers": "Понуде",
- "intel": "Intel"
+ "intel": "Увиди"
},
"radarCombosPage": {
"title": "Radar вођене комбинације",
@@ -13536,7 +13557,7 @@
"lockedOut": "Potrebna je vaša pažnja"
},
"table": {
- "status": "Status",
+ "status": "Статус",
"provider": "Provajder",
"connectionId": "Konekcija",
"authType": "Autentifikacija",
@@ -13556,9 +13577,9 @@
"timeline": {
"title": "Prelasci prekidača",
"window": "Period",
- "window1h": "1h",
- "window6h": "6h",
- "window24h": "24h",
+ "window1h": "1 ч",
+ "window6h": "6 ч",
+ "window24h": "24 ч",
"empty": "Нема прелаза у изабраном временском оквиру",
"currentState": "Тренутно стање",
"state": {
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Одбиј захтеве пре слања када циљни модел не поседује потребне могућности (визуелни унос, алати, структурирани излаз, контекстни прозор). Штити директне захтеве ка појединачном добављачу који заобилазе филтер компатибилности комбо-слоја.",
"featureFlagDisableContextWindowChecksDescription": "Прескочи локалну провера контекстног прозора и максималног броја улазних токена OmniRoute-а за директне захтеве ка појединачном моделу. Добављачи услуга и даље примењују своја стварна ограничења. Компресија упита и ограничења излазних токена остају активни.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Статистика претраге и недавне претраге рачунају само добављаче који и даље имају активну везу (добављачи без кључа, као што је duckduckgo-free, увек се рачунају). Искључивањем се задржава сваки сачувани ред претраге са ID-ом добављача.",
"publicSystem": {
"notFound": {
"title": "Страница није пронађена",
@@ -13846,9 +13868,9 @@
"orPasteManually": "или ручно налепите токен",
"manualInstructions": "Пријавите се на solo.trae.ai, отворите DevTools → Network, пошаљите било коју поруку у ћету и копирајте JWT из заглавља захтева Authorization: Cloud-IDE-JWT {tokenPlaceholder}. Трајање JWT-а је око 14 дана. Опциона поља идентитета долазе из common_params у истом телу захтева.",
"accessTokenLabel": "Приступни токен (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "webId": "Веб ID",
"optional": "опционо",
- "bizUserId": "Biz User ID",
+ "bizUserId": "ID пословног корисника",
"userUniqueId": "Јединствени ID корисника",
"scope": "Опсег",
"tenant": "Закупац",
@@ -13931,12 +13953,12 @@
"started": "Započeto",
"ended": "Završeno",
"duration": "Trajanje",
- "status": "Status",
+ "status": "Статус",
"provider": "Provajder",
"tokens": "Tokeni",
"active": "Aktivno",
"other": "Ostalo",
- "tenMinutes": "10min",
+ "tenMinutes": "10 мин",
"hour": "sat",
"day": "dan",
"unknownModel": "nepoznato",
@@ -13947,7 +13969,7 @@
"compressionDescription": "Konfigurišite podešavanja kompresije konteksta da smanjite potrošnju tokena i troškove.",
"relayTitle": "OmniRoute — Relejni proksiji",
"relayDescription": "Bezserverski relejni proksi endpointi za vašu AI infrastrukturu",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Инспектор саобраћаја — OmniRoute",
"trafficInspectorDescription": "Nadgledajte LLM pozive + debagujte HTTPS saobraćaj bilo koje aplikacije"
},
"conductor": {
@@ -14029,11 +14051,11 @@
"filterSources": "Извори",
"filterProviders": "Провајдери",
"clearFilters": "Обриши филтере",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Агент у облаку",
"sourceA2A": "A2A",
"sourceConductor": "Conductor",
"sourceStale": "Застарело од {since}",
- "sourceOffline": "Offline",
+ "sourceOffline": "Ван мреже",
"sourceCollapse": "Скупи",
"sourceExpand": "Прошири",
"stateQueued": "У реду чекања",
@@ -14098,7 +14120,7 @@
"trialDays": "{days, plural, one {# дан} other {# дана}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
+ "title": "Радарски увиди",
"subtitle": "ELO рангирања у власништву Radar-а и стварне промене у каталогу.",
"backToRadar": "Назад на Radar",
"loading": "Учитавање Intel-а...",
diff --git a/src/i18n/messages/sv.json b/src/i18n/messages/sv.json
index 8735d3ee6a..5b0bfe8350 100644
--- a/src/i18n/messages/sv.json
+++ b/src/i18n/messages/sv.json
@@ -31,7 +31,7 @@
"active": "Aktiv",
"inactive": "Inaktiv",
"noData": "Inga data tillgängliga",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Inget här ännu",
"configure": "Konfigurera",
"manualConfig": "Manuell konfiguration",
"manage": "Hantera",
@@ -47,7 +47,7 @@
"time": "Tid",
"details": "Detaljer",
"created": "Skapad",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Senast uppdaterad",
"loadMore": "Ladda mer",
"noResults": "Inga resultat hittades",
"reloadPage": "Ladda om sidan",
@@ -70,8 +70,8 @@
"note": "Obs",
"free": "Gratis",
"skipToContent": "Hoppa till innehållet",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "Servern har problem. Vissa funktioner kan vara otillgängliga.",
+ "maintenanceServerUnreachable": "Servern kan inte nås. Ansluter igen...",
"accept": "Acceptera",
"accountId": "Konto-ID",
"alias": "Alias",
@@ -98,7 +98,7 @@
"skill": "Skicklighet",
"sortBy": "Sortera efter",
"sortOrder": "Sorteringsordning",
- "tab": "Tab",
+ "tab": "Flik",
"text": "Text",
"textarea": "Textområde",
"tool": "Verktyg",
@@ -108,7 +108,7 @@
"whitelist": "Vitlista",
"blacklist": "Svartlista",
"resolve": "Lös",
- "force": "Force",
+ "force": "Tvinga",
"base64url": "Base64 URL",
"hex": "Hex",
"range": "Räckvidd",
@@ -120,7 +120,7 @@
"compatible": "Kompatibel",
"chat-completions": "Chattavslut",
"oauth": "OAuth",
- "auth_token": "Auth Token",
+ "auth_token": "Autentiseringstoken",
"crypto": "Krypto",
"hours": "Timmar",
"selfsigned": "Självsignerad",
@@ -150,13 +150,13 @@
"Failed to reset pricing": "Det gick inte att återställa prissättningen",
"apikey": "API-nyckel",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Gå till kontrollpanelen",
+ "checkSystemStatus": "Kontrollera systemstatus",
+ "selectModel": "Välj modell",
"addModel": "Lägg till modell",
"effortNone": "Ingen",
"effortLow": "Låg",
- "effortMedium": "Medium",
+ "effortMedium": "Medel",
"effortHigh": "Hög",
"effortExtraHigh": "Extra hög",
"effortMax": "Max",
@@ -164,10 +164,10 @@
"reasoningEffort": "Resonemangsinsats",
"wireApi": "Wire API",
"modelAliases": "Modellalias",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Kombinationer",
+ "noModelsFound": "Inga modeller hittades",
+ "clear": "Rensa",
+ "done": "Klar",
"selectAll": "Markera alla",
"unselectAll": "Avmarkera alla",
"visibleModels": "synliga",
@@ -184,533 +184,533 @@
"selectAllProviders": "Kontrollera alla leverantörer",
"clearProviderSelection": "Avmarkera leverantörer",
"providersSelectedCount": "{count} leverantörer kontrollerade",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Ett fel inträffade",
+ "comboDeleted": "Kombinationen har tagits bort",
+ "hide": "Dölj",
+ "creating": "Skapar",
+ "comboCreated": "Kombinationen har skapats",
+ "swapFormats": "Byt format",
+ "daysAgo": "Dagar sedan",
+ "retries": "Återförsök",
+ "errorDuringRestore": "Fel vid återställning",
+ "eventsAppearHint": "Tips om var händelser visas",
+ "noLockouts": "Inga spärrar",
+ "webSearchDesc": "Beskrivning av webbsökning",
+ "audioProvidersHeading": "Rubrik för ljudleverantörer",
"cloudAgentProviders": "Molnagentleverantörer",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Minuter sedan",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "Automatisk liveuppdatering",
+ "webSearch": "Webbsökning",
+ "anthropicPrefixPlaceholder": "Platshållare för Anthropic-prefix",
+ "addModelToCombo": "Lägg till modell i kombination",
+ "failedToLoad": "Det gick inte att läsa in",
+ "categoryMedia": "Kategorin Media",
+ "enableCloud": "Aktivera molnet",
+ "expirationBannerExpiringSoon": "Förfallobanderoll: upphör snart",
+ "retry": "Försök igen",
+ "embeddings": "Inbäddningar",
+ "errorCount": "Antal fel",
+ "backupReasonManual": "Orsak till säkerhetskopiering: manuell",
+ "safeSearchModerate": "Säker sökning: måttlig",
+ "activeLimiters": "Aktiva begränsare",
+ "a2aCardTitle": "Titel för A2A-kort",
+ "cloudWorkerUnreachable": "Molnarbetaren kan inte nås",
+ "testFailed": "Testet misslyckades",
+ "compatibleBaseUrlHint": "Tips om kompatibel bas-URL",
+ "usageTracking": "Användningsspårning",
+ "disableCloudTitle": "Inaktivera molnet – titel",
+ "noConnections": "Inga anslutningar",
+ "providerHealth": "Leverantörsstatus",
+ "confirmDbImport": "Bekräfta databasimport",
+ "notAvailableSymbol": "Symbol för ej tillgänglig",
+ "backupsAvailable": "Tillgängliga säkerhetskopior",
+ "providerAuto": "Automatiskt val av leverantör",
+ "newProviderNamePlaceholder": "Platshållare för nytt leverantörsnamn",
+ "a2aQuickStartStep2": "A2A-snabbstart, steg 2",
+ "ok": "OK",
+ "available": "Tillgänglig",
+ "noBackupYet": "Ingen säkerhetskopia ännu",
+ "more": "Mer",
+ "noCompatibleYet": "Inga kompatibla ännu",
+ "multiProvider": "Flera leverantörer",
+ "repairEnvHint": "Tips om att reparera miljön",
+ "disablingCloud": "Inaktiverar molnet",
+ "testBench": "Testbänk",
+ "valid": "Giltig",
+ "cloudBenefitShare": "Molnfördel: delning",
+ "mcpCardTitle": "Titel för MCP-kort",
+ "disableConfirm": "Bekräfta inaktivering",
+ "filters": "Filter",
+ "expirationBannerExpiredDesc": "Beskrivning för utgången förfallobanderoll",
+ "saveComboDefaults": "Spara standardvärden för kombinationen",
+ "cloudConnectedVerified": "Molnanslutningen har verifierats",
+ "uptime": "Drifttid",
+ "compatibleProdPlaceholder": "Platshållare för kompatibel produktionsmiljö",
+ "fallbackChainsTitle": "Titel för reservkedjor",
+ "oauthLabel": "OAuth-etikett",
+ "a2aCardDescription": "Beskrivning av A2A-kort",
+ "okShort": "OK",
+ "maintenance": "Underhåll",
+ "formatConverter": "Formatkonverterare",
+ "zedImportNetworkError": "Nätverksfel vid import från Zed",
+ "apiKeyLabel": "API-nyckeletikett",
+ "noModelsForProvider": "Inga modeller för leverantören",
+ "mcpCardDescription": "Beskrivning av MCP-kort",
+ "apiTypeLabel": "Etikett för API-typ",
+ "configuredProvidersLabel": "Etikett för konfigurerade leverantörer",
+ "maxRetriesLabel": "Etikett för maximalt antal återförsök",
+ "title": "Titel",
+ "output": "Utdata",
+ "prefixHint": "Prefixtips",
+ "skipWizard": "Hoppa över guiden",
+ "failedCount": "Antal misslyckade",
+ "confirmDbImportDesc": "Beskrivning av bekräftelse för DB-import",
+ "entries": "Poster",
+ "until": "Till",
+ "disableCombo": "Inaktivera kombination",
+ "liveMonitorDescriptionPrefix": "Prefix för beskrivning av liveövervakning",
+ "runningCount": "Antal pågående",
+ "noActiveConnectionsInGroup": "Inga aktiva anslutningar i gruppen",
+ "savedSuccessfully": "Sparades",
+ "systemStorage": "Systemlagring",
+ "videoDesc": "Videobeskrivning",
+ "maxResults": "Maximalt antal resultat",
+ "timeRangeMonth": "Tidsintervall: månad",
+ "testSummary": "Testsammanfattning",
+ "failedSetPassword": "Det gick inte att ange lösenordet",
+ "audio": "Ljud",
+ "restore": "Återställ",
+ "disableWarning": "Varning vid inaktivering",
+ "moderationsDesc": "Beskrivning av modereringar",
+ "providerHealthStatusAria": "ARIA för leverantörens hälsostatus",
+ "modelNamePlaceholder": "Platshållare för modellnamn",
+ "mcpQuickStartStep2": "Steg 2 i snabbstarten för MCP",
+ "quickStart": "Snabbstart",
+ "fullExportFailedWithError": "Fullständig export misslyckades med ett fel",
+ "loadingBackups": "Läser in säkerhetskopior",
+ "anthropicBaseUrlPlaceholder": "Platshållare för Anthropic-bas-URL",
+ "description": "Beskrivning",
+ "noProviderFound": "Ingen leverantör hittades",
+ "auto": "Automatiskt",
+ "protocolsDescription": "Beskrivning av protokoll",
+ "cloudSessionNote": "Anmärkning om molnsession",
+ "advancedSettings": "Avancerade inställningar",
+ "defaultStrategy": "Standardstrategi",
+ "purgeExpiredLogs": "Rensa utgångna loggar",
+ "justNow": "Nyss",
+ "providerTestFailed": "Leverantörstestet misslyckades",
+ "openaiBaseUrlPlaceholder": "Platshållare för OpenAI-bas-URL",
+ "image": "Bild",
+ "failedCreateChain": "Det gick inte att skapa kedjan",
+ "importDatabase": "Importera databas",
+ "allDataLocal": "Alla data är lokala",
+ "sectionTitle": "Avsnittsrubrik",
+ "failedToggle": "Det gick inte att växla",
+ "editCombo": "Redigera kombination",
+ "testResults": "Testresultat",
+ "searchQuery": "Sökfråga",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
- "openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "duplicate": "Duplicera",
+ "createCombo": "Skapa kombination",
+ "searchTypeWeb": "Söktyp: webb",
+ "addChain": "Lägg till kedja",
+ "prefixLabel": "Prefixetikett",
+ "listModelsDesc": "Beskrivning av modellista",
+ "databaseSize": "Databasstorlek",
+ "chainCreated": "Kedjan skapades",
+ "providerTestTimeout": "Tidsgränsen för leverantörstestet överskreds",
+ "routingStrategy": "Dirigeringsstrategi",
+ "translateAction": "Översättningsåtgärd",
+ "exportFailed": "Exporten misslyckades",
+ "connectedVerificationPending": "Ansluten, verifiering väntar",
+ "a2aQuickStartTitle": "Rubrik för A2A-snabbstart",
+ "couldNotTest": "Det gick inte att testa",
+ "testAllCompatible": "Testa alla kompatibla",
+ "anthropicCompatibleName": "Anthropic-kompatibelt namn",
+ "disabling": "Inaktiverar",
+ "failedEnable": "Det gick inte att aktivera",
+ "categoryUtility": "Verktygskategori",
+ "customUrlOptional": "Anpassad URL (valfritt)",
+ "localProviders": "Lokala leverantörer",
+ "comboNamePlaceholder": "Platshållare för kombinationsnamn",
+ "memoryRss": "Minnets RSS",
+ "disableProvider": "Inaktivera leverantör",
+ "welcomeDesc": "Välkomstbeskrivning",
+ "nameLabel": "Namnfält",
+ "allOperational": "Alla fungerar",
+ "backupNow": "Säkerhetskopiera nu",
+ "providerMaxRetriesAria": "ARIA-etikett för maximalt antal återförsök för leverantör",
+ "textToSpeechDesc": "Beskrivning av text-till-tal",
+ "machineId": "Maskin-ID",
+ "globalProxy": "Global proxy",
+ "hitsMisses": "Träffar och missar",
+ "testDesc": "Testbeskrivning",
+ "chatDesc": "Chattbeskrivning",
+ "importSuccess": "Importen lyckades",
+ "chat": "Chatt",
+ "a2aQuickStartStep1": "Steg 1 i snabbstarten för A2A",
+ "importFailed": "Importen misslyckades",
+ "inputPlaceholder": "Platshållare för inmatning",
+ "providerModelsTitle": "Rubrik för leverantörsmodeller",
+ "lastBackup": "Senaste säkerhetskopiering",
+ "yourEndpoint": "Din slutpunkt",
+ "autoDisableThresholdDesc": "Beskrivning av tröskelvärde för automatisk inaktivering",
+ "rerankDesc": "Beskrivning av omrangordning",
+ "modelsPathPlaceholder": "Platshållare för modellsökväg",
+ "noCombosYet": "Inga kombinationer ännu",
+ "connectedVerificationPendingWithError": "Ansluten, verifiering väntar med fel",
+ "comboDefaultsGuideHint1": "Tips 1 i guiden för standardvärden för kombinationer",
+ "enableCloudTitle": "Rubrik för aktivering av molnet",
+ "configuredProvidersHint": "Tips om konfigurerade leverantörer",
+ "paused": "Pausad",
+ "llmProviders": "LLM-leverantörer",
+ "enableCombo": "Aktivera kombination",
+ "removeProviderOverrideAria": "ARIA-etikett för borttagning av leverantörsåsidosättning",
+ "nodeVersion": "Node-version",
+ "openai": "OpenAI",
+ "exportFailedWithError": "Exporten misslyckades med ett fel",
+ "proxyConfigured": "Proxy konfigurerad",
+ "concurrencyPerModel": "Samtidighet per modell",
+ "protocolTasksLabel": "Etikett för protokolluppgifter",
+ "oauthProviders": "OAuth-leverantörer",
+ "lockedCount": "Antal låsta",
+ "deleteChainConfirm": "Bekräfta borttagning av kedja",
+ "recentTranslations": "Senaste översättningar",
+ "zedImportButton": "Zed-importknapp",
+ "responsesDesc": "Beskrivning av svar",
+ "testedCount": "Antal testade",
+ "providersCommaSeparatedPlaceholder": "Platshållare för kommaseparerade leverantörer",
+ "signatureDefaults": "Standardvärden för signatur",
+ "errorCreating": "Fel vid skapande",
+ "timeRangeYear": "Tidsintervall: år",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Molnet har inaktiverats",
+ "deleteConfirm": "Bekräfta borttagning",
+ "check": "Kontrollera",
+ "safeSearch": "Säker sökning",
+ "protocolLastActivity": "Senaste protokollaktivitet",
+ "openMcpDashboard": "Öppna MCP-instrumentpanelen",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Etikett för chattsökväg",
+ "retryDelay": "Fördröjning före nytt försök",
+ "errorUpdating": "Fel vid uppdatering",
+ "ideCliIntegrations": "IDE- och CLI-integrationer",
+ "imageGeneration": "Bildgenerering",
+ "apiKeyRequired": "API-nyckel krävs",
+ "resetAllTitle": "Återställ allt",
+ "connectionError": "Anslutningsfel",
+ "modelName": "Modellnamn",
+ "apiKeyForCheck": "API-nyckel för kontroll",
+ "cloudRequestTimeout": "Tidsgräns för molnbegäran",
+ "showConfiguredOnly": "Visa endast konfigurerade",
"showFreeOnly": "Endast gratis",
"addFirstProvider": "Lägg till din första leverantör",
"addFirstProviderDesc": "Anslut en AI-leverantör för att börja dirigera förfrågningar via OmniRoute. Du kan använda kostnadsfria leverantörer, API-nycklar eller OAuth-konton.",
"learnMore": "Läs mer",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Inkludera domäner",
+ "promptCache": "Promptcache",
+ "cloudConnected": "Ansluten till molnet",
+ "deleteChain": "Ta bort kedja",
+ "chatPathPlaceholder": "Platshållare för chattsökväg",
+ "databasePath": "Databassökväg",
+ "usingLocalServer": "Använder lokal server",
+ "globalComboConfig": "Global kombinationskonfiguration",
+ "backupFailed": "Säkerhetskopieringen misslyckades",
+ "tabProtocols": "Flikprotokoll",
+ "continue": "Fortsätt",
+ "categorySearch": "Kategorisökning",
+ "rateLimitStatus": "Status för hastighetsbegränsning",
+ "repairEnvSuccess": "Miljön har reparerats",
+ "nameRequired": "Namn krävs",
+ "country": "Land",
+ "trackMetricsDesc": "Beskrivning av mätvärdesspårning",
+ "durationSecondsShort": "Varaktighet i sekunder, kort",
+ "formatConverterDescription": "Beskrivning av formatkonverterare",
+ "cloudBenefitAccess": "Åtkomst till molnförmåner",
+ "maxRetries": "Maximalt antal återförsök",
+ "queueTimeout": "Tidsgräns för kö",
"queueDepth": "Ködjup",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Lägg till leverantör",
+ "realtime": "Realtid",
+ "totalTranslations": "Totalt antal översättningar",
+ "protocolActiveStreamsLabel": "Etikett för aktiva protokollströmmar",
+ "repairEnv": "Reparera miljö",
+ "modelsCount": "Antal modeller",
+ "viewBackups": "Visa säkerhetskopior",
+ "responsesApi": "Responses API",
+ "copyComboName": "Kopiera kombinationsnamn",
+ "failures": "Misslyckanden",
+ "failedUpdate": "Uppdateringen misslyckades",
+ "imageDesc": "Bildbeskrivning",
+ "failedCreate": "Det gick inte att skapa",
+ "remainingOfLimit": "Återstående av gränsen",
+ "protocolsTitle": "Protokoll",
+ "expirationBannerExpiringSoonDesc": "Beskrivning för banner om nära förestående utgång",
+ "source": "Källa",
+ "failed": "Misslyckades",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
+ "mcpQuickStartStep1": "MCP-snabbstart steg 1",
+ "runTest": "Kör test",
+ "loadingFallbackChains": "Läser in reservkedjor",
+ "healthy": "Fungerar korrekt",
"version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "saveBlockWeighted": "Spara viktat block",
+ "zedImportNone": "Ingen Zed-import",
+ "noBackupsYet": "Inga säkerhetskopior ännu",
+ "noGlobalProxy": "Ingen global proxy",
+ "noModels": "Inga modeller",
+ "stickyLimit": "Beständig gräns",
+ "passedCount": "Antal godkända",
+ "zedImportFailed": "Zed-importen misslyckades",
+ "saving": "Sparar",
+ "testAll": "Testa alla",
+ "globalProxyDesc": "Beskrivning av global proxy",
+ "latencyP99": "Latens P99",
+ "connectingToCloud": "Ansluter till molnet",
+ "responses": "Svar",
+ "errorDeleting": "Fel vid borttagning",
+ "openaiPrefixPlaceholder": "Platshållare för Openai-prefix",
+ "enterPassword": "Ange lösenord",
+ "openA2aDashboard": "Öppna A2A-instrumentpanelen",
+ "enableProvider": "Aktivera leverantör",
+ "modeTest": "Testläge",
+ "failedDeleteChain": "Det gick inte att ta bort kedjan",
+ "providerDesc": "Leverantörsbeskrivning",
+ "templateLoadHint": "Tips för mallinläsning",
+ "lastFailure": "Senaste misslyckandet",
+ "moveDown": "Flytta nedåt",
+ "providerLabel": "Leverantörsetikett",
+ "clearCacheFailed": "Det gick inte att rensa cachen",
+ "imagesGenerations": "Bildgenereringar",
+ "repairEnvWorking": "Reparation av miljön pågår",
+ "millisecondsShort": "ms",
+ "globalLabel": "Global etikett",
+ "failuresPlural": "Misslyckanden",
+ "completionsLegacyDesc": "Beskrivning av äldre kompletteringar",
+ "searchProviders": "Sök leverantörer",
+ "chatPathHint": "Tips för chattsökväg",
+ "defaultStrategyDesc": "Beskrivning av standardstrategi",
+ "latencyP95": "Latens P95",
+ "textToSpeech": "Text till tal",
+ "searchType": "Söktyp",
+ "messages": "Meddelanden",
+ "aggregatorsGateways": "Aggregatorgatewayer",
+ "comboStrategyAria": "Kombinationsstrategi Aria",
+ "input": "Indata",
+ "testingConnection": "Testar anslutning",
+ "excludeDomains": "Exkludera domäner",
+ "webCookieProviders": "Webbcookieleverantörer",
+ "allTestsPassed": "Alla tester godkändes",
+ "openaiCompatibleName": "Openai-kompatibelt namn",
+ "warningCostOptimizedPartialPricing": "Varning: kostnadsoptimerad partiell prissättning",
+ "comboDefaultsGuideTitle": "Titel för guide om standardinställningar för kombinationer",
+ "hoursAgo": "Timmar sedan",
+ "notAvailable": "Inte tillgängligt",
+ "skipAndContinue": "Hoppa över och fortsätt",
+ "moderations": "Modereringar",
+ "proxyConfig": "Proxykonfiguration",
+ "upstreamProxyProviders": "Uppströms proxyleverantörer",
+ "exportAll": "Exportera alla",
+ "queuedCount": "Antal i kö",
+ "resetAll": "Återställ alla",
+ "noTranslations": "Inga översättningar",
+ "avgLatency": "Genomsnittlig latens",
+ "throttleStatus": "Begränsningsstatus",
+ "backupRetentionDesc": "Beskrivning av säkerhetskopieringens lagringstid",
+ "noCBData": "Inga CB-data",
+ "chainDeleted": "Kedjan har tagits bort",
+ "timeLeft": "Återstående tid",
+ "expirationBannerExpired": "Utgångsbanderoll: har löpt ut",
+ "language": "Språk",
+ "invalidFileType": "Ogiltig filtyp",
+ "monitoredProviders": "Övervakade leverantörer",
+ "errors": "Fel",
+ "heap": "Minneshög",
+ "chatCompletions": "Chattkompletteringar",
+ "exampleTemplatesHint": "Tips för exempelmallar",
+ "retryDelayLabel": "Etikett för fördröjning före nytt försök",
+ "audioTranscription": "Ljudtranskribering",
+ "fallbackChainsDesc": "Beskrivning av reservkedjor",
+ "exampleTemplates": "Exempelmallar",
+ "connectionsCount": "Antal anslutningar",
+ "modelsPathLabel": "Etikett för modellsökväg",
+ "activeProvidersHint": "Tips om aktiva leverantörer",
+ "activeLockouts": "Aktiva utlåsningar",
+ "invalid": "Ogiltig",
+ "skipPassword": "Hoppa över lösenord",
+ "moveUp": "Flytta upp",
+ "timeRange": "Tidsintervall",
+ "stickyLimitDesc": "Beskrivning av fast gräns",
+ "cloudBenefitEdge": "Molnfördel för Edge",
+ "custom": "Anpassad",
+ "verifying": "Verifierar",
+ "baseUrlLabel": "Etikett för bas-URL",
+ "setPassword": "Ange lösenord",
+ "safeSearchStrict": "Strikt säker sökning",
+ "noChangesSinceBackup": "Inga ändringar sedan säkerhetskopieringen",
+ "modelsPathHint": "Tips om sökväg till modeller",
+ "audioTranscriptions": "Ljudtranskriberingar",
+ "testCombo": "Testa kombination",
+ "mcpQuickStartTitle": "Titel för MCP-snabbstart",
+ "comboUpdated": "Kombinationen har uppdaterats",
+ "weighted": "Viktad",
+ "providers": "Leverantörer",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
+ "noFallbackChainsDesc": "Beskrivning när reservkedjor saknas",
+ "yesImport": "Ja, importera",
+ "lockoutsAutoRefreshHint": "Tips om automatisk uppdatering av utlåsningar",
+ "tabApis": "Fliken API:er",
+ "sectionDescription": "Avsnittsbeskrivning",
"filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "purgeLogsFailed": "Det gick inte att rensa loggar",
+ "latency": "Latens",
+ "testAllOAuth": "Testa all OAuth",
+ "mcpQuickStartStep3": "Steg 3 i MCP-snabbstarten",
+ "repairEnvFailed": "Det gick inte att reparera miljön",
+ "zedImportHint": "Tips om Zed-import",
+ "modelsAcrossEndpoints": "Modeller över flera slutpunkter",
+ "autoDisableBannedAccounts": "Inaktivera automatiskt spärrade konton",
+ "securityDesc": "Säkerhetsbeskrivning",
+ "listModels": "Lista modeller",
+ "backupRestore": "Säkerhetskopiering och återställning",
+ "target": "Mål",
+ "zedImportSuccess": "Zed-importen lyckades",
+ "lastHeaderUpdate": "Senaste rubrikuppdatering",
+ "categoryCore": "Kärnkategori",
+ "noFallbackChains": "Inga reservkedjor",
+ "noSearchProviders": "Inga sökleverantörer",
+ "autoBalance": "Automatisk balansering",
+ "noModelsYet": "Inga modeller ännu",
+ "signatureFamily": "Signaturfamilj",
+ "externalApiCalls": "Externa API-anrop",
+ "providerOverridesDesc": "Beskrivning av leverantörsåsidosättningar",
+ "signatureTool": "Signaturverktyg",
+ "connectionFailed": "Anslutningen misslyckades",
+ "activeLimitersPlural": "Aktiva begränsare, plural",
+ "doneDesc": "Beskrivning av klar",
+ "down": "Nere",
+ "noDataYet": "Inga data ännu",
+ "activeProviders": "Aktiva leverantörer",
+ "nameInvalid": "Ogiltigt namn",
+ "skip": "Hoppa över",
+ "createChain": "Skapa kedja",
+ "audioSpeech": "Ljud och tal",
+ "cacheCleared": "Cachen har rensats",
+ "searchTypeNews": "Söktyp: nyheter",
+ "durationMillisecondsShort": "Varaktighet i millisekunder, kort",
+ "addOpenAICompatible": "Lägg till Open Ai-kompatibel",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "I kö",
+ "domainPlaceholder": "Platshållare för domän",
+ "durationMinutesShort": "Varaktighet i minuter, kort",
+ "verifyingConnection": "Verifierar anslutningen",
+ "imageProviders": "Bildleverantörer",
+ "protocolToolsLabel": "Etikett för protokollverktyg",
+ "queryPlaceholder": "Platshållare för sökfråga",
+ "videoGeneration": "Videogenerering",
+ "timeRangeWeek": "Tidsintervall: vecka",
+ "limitExhausted": "Gränsen är uppnådd",
+ "failedDisable": "Det gick inte att inaktivera",
+ "inMemoryNote": "Anteckning i minnet",
+ "compatibleHint": "Kompatibilitetstips",
+ "errorShort": "Kort felmeddelande",
+ "advancedHint": "Avancerat tips",
+ "restoreFailed": "Återställningen misslyckades",
+ "searchProvidersHeading": "Rubrik för sökning efter leverantörer",
+ "comboName": "Kombinationsnamn",
+ "autoDisableDescription": "Beskrivning av automatisk inaktivering",
+ "embeddingsDesc": "Beskrivning av inbäddningar",
+ "operational": "I drift",
+ "testAllApiKey": "Testa alla API-nycklar",
+ "backupCreated": "Säkerhetskopia skapad",
+ "errorDuringImport": "Fel vid import",
+ "comboDefaultsGuideHint2": "Tips 2 i guiden för standardinställningar för kombinationer",
+ "connecting": "Ansluter",
+ "fillModelAndProviders": "Fyll i modell och leverantörer",
+ "syncing": "Synkroniserar",
+ "resetConfirm": "Bekräfta återställning",
+ "trackMetrics": "Spåra mätvärden",
+ "successful": "Lyckades",
+ "recovering": "Återställer",
+ "autoDisableThreshold": "Tröskelvärde för automatisk inaktivering",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Synkroniserar data",
+ "cloudBenefitPorts": "Molnfördel: portar",
+ "compatibleProviders": "Kompatibla leverantörer",
"freeTierProviders": "Gratis leverantörer",
"freeTierLabel": "Gratis nivå tillgänglig",
"freeTierProvidersDesc": "Leverantörer med gratis nivåer - vissa kräver en API-nyckelregistrering, andra behöver inga referenser alls.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
- "gamificationAdmin": "Gamification Admin",
+ "clearCache": "Rensa cacheminnet",
+ "reqs": "Krav",
+ "addAnthropicCompatible": "Lägg till Anthropic-kompatibel leverantör",
+ "apiKeyProviders": "Leverantörer av API-nycklar",
+ "tabsAria": "ARIA för flikar",
+ "resetting": "Återställer",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Orsak till säkerhetskopiering före återställning",
+ "disableCloud": "Inaktivera molnet",
+ "newProviderNameAria": "ARIA för nytt leverantörsnamn",
+ "passwordsMismatch": "Lösenorden matchar inte",
+ "a2aQuickStartStep3": "Steg 3 i snabbstarten för A2A",
+ "liveMonitorDescriptionSuffix": "Suffix för beskrivning av liveövervakning",
+ "failedAddProvider": "Det gick inte att lägga till leverantören",
+ "addAtLeastOneProvider": "Lägg till minst en leverantör",
+ "reasonSeparator": "Avgränsare för orsak",
+ "zedImporting": "Importerar Zed",
+ "confirmPasswordPlaceholder": "Bekräfta lösenord",
+ "whatYouGet": "Det här får du",
+ "signatureSession": "Signatursession",
+ "errorCountNoCode": "Antal fel utan kod",
+ "testing": "Testning",
+ "providersCommaSeparated": "Leverantörer, kommaseparerade",
+ "exportDatabase": "Exportera databas",
+ "hitRate": "Träfffrekvens",
+ "completionsLegacy": "Kompletteringar (äldre version)",
+ "removeModel": "Ta bort modell",
+ "timeRangeDay": "Tidsintervall: dag",
+ "cloudRequestFailed": "Molnbegäran misslyckades",
+ "updatedAt": "Uppdaterad den",
+ "monitoredProvidersHint": "Tips för övervakade leverantörer",
+ "connectionSuccessful": "Anslutningen lyckades",
+ "latencyP50": "Latens P50",
+ "logsDeleted": "Loggar borttagna",
+ "chatTester": "Chatttestare",
+ "safeSearchOff": "Säker sökning av",
+ "nameHint": "Namntips",
+ "debugToggle": "Felsökningsväxel",
+ "embedding": "Inbäddning",
+ "issuesLabel": "Etikett för problem",
+ "optionAny": "Alternativ: valfritt",
+ "maxNestingDepth": "Maximalt nästlingsdjup",
+ "rerank": "Omrankning",
+ "checking": "Kontrollerar",
+ "getStarted": "Kom igång",
+ "restoreSuccess": "Återställningen lyckades",
+ "issuesDetected": "Problem upptäckta",
+ "signatureCache": "Signaturcache",
+ "modelLockouts": "Modellåsningar",
+ "usingCloudProxy": "Använder molnproxy",
+ "loadingHealth": "Läser in hälsostatus",
+ "providerOverrides": "Leverantörsåsidosättningar",
+ "audioTranscriptionDesc": "Beskrivning av ljudtranskribering",
+ "learnedFromHeaders": "Inlärt från rubriker",
+ "totalRequests": "Totalt antal begäranden",
+ "cloudUnstableNote": "Anmärkning om instabilt moln",
+ "gamificationAdmin": "Administration av spelifiering",
"monitorAnomaliesAndHealth": "Övervaka anomalier och systemtillstånd",
"flaggedAnomalies": "Flaggade anomalier",
"noAnomaliesDetected": "Inga anomalier upptäcktes",
"apiKey": "API-nyckel",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 h)",
"zScore": "Z-poäng",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Misstänkt",
"tokensCommunityServers": "Community-servrar",
"tokensServerNamePlaceholder": "Servernamn",
"tokensApiKeyPlaceholder": "API-nyckel",
"tokensTokenBalance": "Tokensaldo",
"tokensSendTokens": "Skicka tokens",
- "tokensRecipientApiKeyId": "Recipient API Key ID",
+ "tokensRecipientApiKeyId": "Mottagarens API-nyckel-ID",
"tokensRecipientApiKeyIdPlaceholder": "Ange mottagarens API-nyckel-ID",
"tokensReasonOptional": "Orsak (valfritt)",
"tokensReasonPlaceholder": "t.ex. bonus, belöning",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Läser in mer...",
"recommended": "Rekommenderas",
"understand": "Jag förstår",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "Batchbearbetning",
+ "batchConceptSubtitle": "Bearbeta tusentals förfrågningar asynkront till cirka 50 % av kostnaden (inom 24 timmar). Perfekt för utvärderingar, klassificering och inbäddningar.",
+ "batchConceptHowItWorks": "Så fungerar det",
+ "batchConceptBenefit50pct": "50 % rabatt på indata- och utdata-token",
+ "batchConceptAsync24h": "Asynkront med slutförande inom 24 timmar",
+ "batchConceptUseCases": "Passar bäst för klassificering i stora volymer, utvärderingar och inbäddningar",
+ "batchHeaderSubtitle": "Kör många förfrågningar som ett enda jobb",
+ "batchStep1": "1 · Ladda upp JSONL",
+ "batchStep1Desc": "Lägg till förfrågningar",
+ "batchStep2": "2 · Skapa batch",
+ "batchStep2Desc": "Kör jobb",
+ "batchStep3": "3 · Hämta resultat",
+ "batchStep3Desc": "Ladda ned utdata",
+ "filesConceptTitle": "Batchfiler",
+ "filesConceptSubtitle": "JSONL-filer som används av batcher: indataförfrågningar, resultat och fel.",
+ "filesConceptInput": "Indata – din JSONL med en förfrågan per rad",
+ "filesConceptOutput": "Utdata – resultat från slutförda förfrågningar",
+ "filesConceptError": "Fel – förfrågningar som misslyckades",
+ "filesConceptRetention": "Lagringstid: 30 dagar som standard (29 dagar hos Anthropic)",
+ "wizardTitle": "Ny batch",
+ "wizardClose": "Stäng",
+ "wizardNext": "Nästa",
+ "wizardBack": "Tillbaka",
+ "wizardCancel": "Avbryt",
+ "wizardCreate": "Skapa batch",
+ "wizardCreating": "Skapar…",
+ "wizardStep1Destination": "Mål",
+ "wizardStep2Input": "Indata",
+ "wizardStep3Validate": "Validera",
+ "wizardStep4Cost": "Kostnad och skapa",
+ "wizardProviderLabel": "Leverantör",
+ "wizardEndpointLabel": "Slutpunkt",
+ "wizardModelLabel": "Modell",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (vi konverterar)",
+ "wizardDropOrPick": "Släpp en fil här eller klicka för att välja",
+ "wizardCsvMappingTitle": "Mappa CSV-kolumner → fält i förfrågan",
+ "wizardCsvMappingAddField": "Lägg till fält",
"wizardCsvNoColumns": "Inga kolumner upptäcktes i CSV-rubriken.",
"wizardCsvIgnoreColumn": "— ignorera —",
"wizardCsvCustomIdMapped": "custom_id mappad",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} rader tolkade",
"wizardCsvRowsSkipped": "{count} rader överhoppade",
"wizardCsvRowError": "Rad {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Alla rader är giltiga",
"wizardValidating": "Validerar…",
"wizardValidationParseFailed": "Valideringen misslyckades — kunde inte tolka innehållet.",
"wizardValidationSummary": "{lines} rader · {ids} unika custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Dubbletter av custom_ids upptäcktes:",
"wizardValidationFirstErrors": "Fel (första {count}):",
"wizardValidationLine": "Rad {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Valideringsfel",
+ "wizardValidationPreview": "Förhandsgranskning (de första 5 förfrågningarna)",
+ "wizardValidationSamplingNote": "Filen är stor – validerad genom stickprov (de första 1 000 + de sista 100 raderna). Fullständig validering körs på serversidan.",
+ "wizardCostSync": "Kostnad för synkron bearbetning",
+ "wizardCostBatch": "Kostnad för batchbearbetning (-50 %)",
+ "wizardCostSavings": "Besparing",
+ "wizardCostEstimatedNotice": "Beräknad kostnad – den faktiska debiteringen kan variera.",
+ "wizardErrorUpload": "Det gick inte att ladda upp filen. Försök igen.",
+ "wizardErrorCreate": "Det gick inte att skapa batchen. Försök igen.",
+ "wizardEmptyProviders": "Anslut en leverantör med stöd för batchbearbetning (OpenAI, Anthropic eller Gemini) för att skapa en batch.",
+ "uploadModalTitle": "Ladda upp batchfil",
+ "uploadModalDropOrPick": "Släpp en .jsonl-fil här eller klicka för att välja",
+ "uploadModalUpload": "Ladda upp",
+ "uploadModalCancel": "Avbryt",
+ "uploadModalError": "Uppladdningen misslyckades. Försök igen.",
+ "uploadModalSuccess": "Uppladdad",
+ "uploadModalSizeLimit": "Högst 512 MB",
+ "batchListNewButton": "Ny batch",
+ "batchListAutoRefresh": "Uppdateras automatiskt var 30:e sekund",
+ "batchListCostColumn": "Kostnad",
+ "batchActionCancel": "Avbryt",
+ "batchActionDownloadOutput": "Ladda ned resultat",
+ "batchActionDownloadErrors": "Ladda ned fel",
+ "batchActionRetry": "Försök igen med misslyckade",
+ "batchActionRetryConfirm": "Försöka igen med {n} misslyckade förfrågningar? Den slutliga kostnaden beror på det faktiska antalet förbrukade token.",
+ "expirationBadgeCritical": "Kritiskt",
+ "expirationBadgeWarning": "Snart",
+ "expirationBadgeNormal": "Väntande",
+ "expirationBadgeExpired": "Utgången",
+ "filesListUploadButton": "Ladda upp",
+ "filesListUsedByColumn": "Används av",
+ "filesListUsedByNone": "Ingen",
+ "filesListUsedByRoleInput": "indata",
+ "filesListUsedByRoleOutput": "utdata",
+ "filesListUsedByRoleError": "fel",
+ "filesListSizeColumn": "Storlek",
+ "batchListProgressPartial": "(delvis)",
+ "batchListProviderColumn": "Leverantör",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
+ "batchListProviderOther": "Övrigt",
+ "batchListTitle": "Batchar",
+ "batchListCount": "{count} batchar",
+ "batchListRemovingCompleted": "Tar bort…",
+ "batchListRemoveCompleted": "Ta bort slutförda",
"batchListTableStatus": "Status",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "Slutpunkt",
+ "batchListTableModel": "Modell",
+ "batchListTableProgress": "Förlopp",
+ "batchListTableCreated": "Skapad",
+ "batchListTableExpires": "Upphör",
+ "batchListLoading": "Läser in…",
+ "batchListEmpty": "Inga batchar hittades",
+ "batchListValidating": "Validerar…",
+ "batchStatusAll": "Alla statusar",
+ "batchStatusInProgress": "Pågår",
+ "batchStatusValidating": "Validerar",
+ "batchStatusFinalizing": "Slutför",
+ "batchStatusCompleted": "Slutförd",
+ "batchStatusFailed": "Misslyckad",
+ "batchStatusCancelled": "Avbruten",
+ "batchStatusCancelling": "Avbryter",
+ "batchStatusExpired": "Utgången",
+ "batchStatusCompletedWithFailures": "slutförd med fel",
+ "batchStatusInProgressWithFailures": "pågår (med fel)",
+ "batchStatusFinalizingWithFailures": "slutförs (med fel)",
+ "batchStatusCancelledWithFailures": "avbruten med fel",
+ "batchStatusExpiredWithFailures": "utgången (delvis)",
+ "wizardCostEstimating": "Beräknar kostnad…",
+ "wizardCostRequests": "Förfrågningar",
+ "wizardCostInputTok": "indatatoken",
+ "wizardCostOutputTok": "utdatatoken",
+ "wizardCostWindow": "Tidsfönster",
+ "wizardDestinationSelectProvider": "Välj en leverantör…",
+ "wizardDestinationSelectModel": "Välj en modell…",
+ "wizardDestinationConnectProvider": "Anslut en leverantör",
+ "batchListBatchCreated": "Batch {id} skapad — uppdaterar listan…",
+ "batchListBatchCreatedDismiss": "Stäng",
+ "batchListRefreshing": "Uppdaterar…",
+ "batchListRefresh": "Uppdatera",
+ "uploadFileModalRemove": "Ta bort",
+ "uploadFileModalUploading": "Laddar upp…",
+ "wizardInputReading": "Läser fil…",
+ "wizardInputReady": "Klar",
+ "wizardInputLargeFileLabel": "Stor fil — stickprovsvalidering",
+ "wizardInputCsvJsonlReady": "JSONL har genererats — redo att valideras.",
+ "wizardInputLargeFileWarning": "Stor fil upptäcktes — valideringen utförs genom stickprov (de första 5 MB + de sista 100 KB). Fullständig validering sker på serversidan.",
+ "wizardCostWindow24h": "24 timmars slutförandefönster",
+ "wizardValidationFieldsOk": "obligatoriska fält är giltiga",
+ "filesListDelete": "Radera",
+ "filesListDownload": "Ladda ner",
+ "batchDetailActionCancel": "Avbryt batch",
+ "batchDetailActionRetry": "Försök igen med misslyckade förfrågningar",
+ "batchDetailCancelling": "Avbryter…",
+ "batchDetailRetrying": "Förbereder nytt försök…",
+ "batchDetailCancelConfirm": "Vill du avbryta denna batch? Pågående förfrågningar stoppas.",
+ "batchActionCancelError": "Det gick inte att avbryta batchen. Försök igen.",
+ "batchActionRetryError": "Det gick inte att försöka igen med misslyckade förfrågningar. Försök igen.",
+ "batchConceptRetentionNote": "Resultat- och felfiler sparas i 30 dagar (Anthropic: 29 dagar)",
"batchFilesSizeColumn": "Storlek",
"toggleNoAuthProvider": "Växla ingen autentisering leverantör",
"loadingModels": "Laddar modeller…",
@@ -988,17 +988,21 @@
"disabled": "Inaktiverad",
"featureFlagOmnirouteEmergencyFallbackDescription": "Dirigera anrop med förbrukad budget till den kostnadsfria reservleverantören/-modellen för nödfall.",
"featureFlagArenaEloSyncEnabledDescription": "Aktivera periodisk synkronisering av Arena AI-topplistans ELO för rankning av modellintelligens.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Generera och infoga konversationssammanfattningar när kombinationsroutning byter modell. Inaktivera för att behandla modellbyten oberoende av varandra och förhindra bakgrundsförfrågningar för överlämning för alla befintliga och framtida kombinationer.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Reklamera claude/<provider>/<model> spegel-id på /v1/models så att Claude Code gateway-modellens upptäcktslista visar icke-Claude-modeller. Varning: dubblerar katalogposter för alla klienter när det är aktiverat globalt.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Huvudreglage för gateway-aliasen no-think/<provider>/<model>. På (standard): /v1/models visar en variant utan tänkande för varje kvalificerad Claude-modell med stöd för tänkande, och ett no-think/-id som skickas i en förfrågan matchas tillbaka till den verkliga modellen med resonemang inaktiverat. Av: inga varianter visas och ett no-think/-id behandlas som vilket annat okänt modell-id som helst. Opt-in/opt-out-inställningen ModelSpec.noThinkingAlias per modell gäller fortfarande när detta är aktiverat.",
"featureFlagChatVirtualLanesEnabledDescription": "Aktivera adaptiva virtuella åtkomstfiler per tenant för providerutskick (#9654): en tenants burst ger inte längre en annan 503. Miljövariabeln OMNIROUTE_CHAT_VIRTUAL_LANES har företräde framför den här inställningen i instrumentpanelen; ändringarna träder i kraft vid omstart av servern.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Leverantörssidor på kontrollpanelen: visa märket Gratis endast för signaler som leverantören respekterar — slopar heuristiken för visningsnamn, icke-booleska gratisfält och suffixet :free för registrerade leverantörer utan en dokumenterad kostnadsfri nivå. Av behåller den tidigare märkesregeln.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxypooler och opencodes rotation per konto slutar att återanvända en proxy som nyss misslyckades (nekad TCP-kontroll eller ett 429-svar som togs emot via den) under en processpecifik period som fördubblas vid varje upprepat fel, upp till en maxgräns. Ingen proxystatus skrivs; om alla kandidater läggs åt sidan förblir valet oförändrat. Avstängt som standard: urvalsordningen följer exakt den vanliga rotationen.",
+ "featureFlagProxyPoolEgressObservationDescription": "Visa under en proxypool på instrumentpanelen hur många observerade utgående IP-adresser som betjänade dess medlemmar under de senaste 24 timmarna, hur många anslutningar som använde dem och det högsta antalet som observerades bakom en och samma IP-adress. Skrivskyddat, beräknat från proxyloggen och används aldrig för dirigering. Avstängt som standard: poolredigeraren är oförändrad och observationsrutten returnerar null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Låt en kontroll som avvisades av målet (401/403/429: proxyn vidarebefordrade begäran men destinationen avvisade den utgående IP-adressen) nollställa proxyns serie av på varandra följande fel i proxyhälsokontrollen, precis som en betjänad kontroll. Avstängt som standard: ett avvisande förblir neutralt och bibehåller serien. Ett 5xx-svar förblir icke avgörande i båda fallen, och ett avvisande tar aldrig bort, inaktiverar eller återaktiverar en proxy.",
"sidebar": {
"home": "Hem",
"dashboard": "Instrumentpanel",
"providers": "Leverantörer",
- "combos": "Combos",
+ "combos": "Kombinationer",
"usage": "Användning",
- "analytics": "Analytics",
+ "analytics": "Analys",
"costs": "Kostnader",
"health": "Hälsa",
"proxy": "Proxy",
@@ -1008,11 +1012,11 @@
"settings": "Inställningar",
"translator": "Översättare",
"playground": "Lekplats",
- "searchTools": "Search Tools",
+ "searchTools": "Sökverktyg",
"agents": "Agenter",
"cloudAgents": "Molnagenter",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Minne",
+ "skills": "Färdigheter",
"omniSkills": "OmniSkills",
"agentSkills": "AgentSkills",
"chaosConfig": "Kaosläge",
@@ -1025,7 +1029,7 @@
"embeddedServices": "Inbäddade Tjänster",
"embeddedServicesSubtitle": "Hantera lokala proxytjänster",
"logs": "Loggar",
- "webhooks": "Webhooks",
+ "webhooks": "Webhookar",
"webhooksSubtitle": "Få besked om händelser",
"logExport": "Loggexport",
"logExportSubtitle": "Skicka ut anropsloggar",
@@ -1051,59 +1055,59 @@
"serverDisconnectedMsg": "Proxyservern har stoppats eller startar om.",
"expandSidebar": "Expandera sidofältet",
"collapseSidebar": "Dölj sidofältet",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
+ "themes": "Teman",
+ "presetColors": "Populära färger",
+ "createTheme": "Skapa tema",
+ "chooseColor": "Välj en färg",
+ "themeCoral": "Korall",
+ "themeBlue": "Blå",
+ "themeRed": "Röd",
+ "themeGreen": "Grön",
+ "themeViolet": "Violett",
"themeOrange": "Orange",
"themeCyan": "Cyan",
"cliToolsShort": "Verktyg",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "batch": "Batchjobb",
+ "themeSystem": "Temasystem",
+ "whitelabelingDesc": "Beskrivning av egen varumärkesprofilering",
+ "switchThemes": "Byt tema",
+ "themeAccentDesc": "Beskrivning av temats accentfärg",
+ "uploadFavicon": "Ladda upp favicon",
+ "themeDark": "Mörkt tema",
+ "customLogoDesc": "Beskrivning av anpassad logotyp",
+ "sidebarVisibilityToggle": "Växla sidofältets synlighet",
+ "themeAccent": "Temats accentfärg",
+ "resetFavicon": "Återställ favicon",
+ "whitelabeling": "Egen varumärkesprofilering",
+ "darkMode": "Mörkt läge",
+ "uploadLogo": "Ladda upp logotyp",
+ "themeLight": "Ljust tema",
+ "appName": "Appnamn",
+ "appNameDesc": "Beskrivning av appnamn",
+ "resetLogo": "Återställ logotyp",
+ "customFavicon": "Anpassad favicon",
+ "hideHealthLogs": "Dölj hälsologgar",
+ "customLogo": "Anpassad logotyp",
+ "appearance": "Utseende",
+ "themeSelectionAria": "ARIA-etikett för temaval",
+ "themeCreate": "Skapa tema",
+ "customFaviconDesc": "Beskrivning av anpassad favicon",
+ "logoPreview": "Förhandsvisning av logotyp",
+ "themeCustom": "Anpassat tema",
+ "hideHealthLogsDesc": "Beskrivning av att dölja hälsologgar",
+ "faviconPreview": "Förhandsvisning av favicon",
+ "changelog": "Ändringslogg",
+ "contextSection": "Kontext och cache",
+ "contextCaveman": "Grottmänniska",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Motorkombinationer",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Komprimeringsinställningar",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
@@ -1124,27 +1128,27 @@
"compressionStudioSubtitle": "Live-motorkaskad",
"compressionExclusionsSubtitle": "Per-modell/slutpunkt omdirigering",
"chaosConfigSubtitle": "Parallell körning av flera modeller",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Routning",
+ "protocolsSection": "Protokoll",
+ "agentsAiSection": "Agenter och AI",
+ "cacheContextSection": "Cache och kontext",
+ "analyticsSection": "Analys",
+ "costsSection": "Kostnader",
+ "monitoringSection": "Övervakning",
+ "auditSecuritySection": "Granskning och säkerhet",
+ "devtoolsSection": "Utvecklarverktyg",
+ "configurationSection": "Konfiguration",
+ "aiFeaturesSection": "AI-funktioner",
"mcp": "MCP",
"a2a": "A2A",
- "plugins": "Plugins",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
+ "plugins": "Insticksprogram",
+ "apiEndpoints": "API-slutpunkter",
+ "batchFiles": "Filer",
+ "analyticsEvals": "Utvärderingar",
+ "analyticsSearch": "Sök",
+ "analyticsUtilization": "Utnyttjande",
+ "analyticsComboHealth": "Combo-hälsa",
+ "analyticsCompression": "Komprimering",
"costsBudget": "Budget",
"costsFreeTiers": "Budget för gratisnivå",
"costsFreeTiersSubtitle": "Månatlig tilldelning av gratis-tokens",
@@ -1152,117 +1156,117 @@
"freeProviderRankingsSubtitle": "Bästa gratisleverantörer rankade efter modellens ELO-poäng",
"radar": "Radar Katalog",
"radarSubtitle": "Gemenskapsberikad gratis modellkatalog",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Kvotdelning",
+ "costsPricing": "Prissättning",
+ "logsProxy": "Proxyloggar",
+ "logsConsole": "Konsol",
+ "logsActivity": "Aktivitet",
+ "auditMcp": "MCP-granskning",
"auditA2a": "A2A-revision",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Utseende",
+ "settingsAi": "AI-inställningar",
+ "settingsSecurity": "Säkerhet",
"settingsAccessTokens": "Åtkomsttokens",
"settingsFeatureFlags": "Funktionsflaggor",
"settingsCache": "Cache",
"settingsAuthz": "Auktorisering",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsRouting": "Routning",
+ "settingsResilience": "Feltolerans",
"modelLockout": "Modellblockering",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Avancerat",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Leverantörskvot",
+ "providerQuota": "Leverantörskvot",
+ "runtime": "Körmiljö",
+ "consoleLogs": "Konsolloggar",
+ "logsTimeline": "Tidslinje",
"logsTimelineSubtitle": "Visuell begäran tidslinje",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Konversationer",
+ "conversationsSubtitle": "Agentbaserade flervarvskonversationer",
+ "globalRouting": "Global dirigering",
+ "mitmProxy": "MITM-proxy",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
+ "agenticFeaturesSection": "Agentbaserade funktioner",
+ "otherFeaturesSection": "Övriga funktioner",
+ "compressionContextGroup": "Kontextkomprimering",
+ "gamificationGroup": "Spelifiering",
+ "toolsGroup": "Verktyg",
+ "integrationsGroup": "Integrationer",
"proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "costsParametersGroup": "Kostnadsparametrar",
+ "auditGroup": "Granskning",
+ "batchGroup": "Batchbearbetning",
+ "homeSubtitle": "Översikt över instrumentpanelen",
+ "providersSubtitle": "Hantera AI-leverantörer",
+ "quotaTrackerSubtitle": "Spåra användningsgränser",
+ "providerQuotaSubtitle": "Spåra leverantörernas användningsgränser",
+ "runtimeSubtitle": "Feltolerans och sessioner i realtid",
+ "contextCombosSubtitle": "Kombinera komprimeringsmotorer",
+ "cliToolsSubtitle": "Konfigurera CLI-körmiljöer",
+ "agentsSubtitle": "Hantera lokala agenter",
+ "cloudAgentsSubtitle": "Hantera molnbaserade agenter",
+ "apiEndpointsSubtitle": "Exponera anpassade slutpunkter",
+ "proxySubtitle": "Inställningar för HTTP-proxy",
+ "mitmProxySubtitle": "MITM-avlyssning",
+ "oneProxySubtitle": "Offentlig proxygateway",
+ "leaderboard": "Topplista",
+ "profile": "Profil",
+ "tokens": "Token",
+ "gamificationAdmin": "Administration av spelifiering",
+ "leaderboardSubtitle": "Rankningar och prestationer",
+ "profileSubtitle": "Konto och inställningar",
+ "tokensSubtitle": "Tokenanvändning och budgetar",
+ "gamificationAdminSubtitle": "Avvikelseövervakning och antifusk",
+ "usageSubtitle": "Trafik- och användningsstatistik",
+ "analyticsComboHealthSubtitle": "Tillförlitlighet för kombinationsmål",
+ "analyticsUtilizationSubtitle": "Leverantörsutnyttjande",
+ "costsSubtitle": "Kostnadsfördelning",
+ "cacheSubtitle": "Cacheträfffrekvenser",
+ "analyticsCompressionSubtitle": "Statistik över tokenbesparingar",
+ "analyticsSearchSubtitle": "Analys av sökverktyg",
+ "analyticsEvalsSubtitle": "Resultat från utvärderingssviter",
"providerStats": "Leverantörsstatistik",
"providerStatsSubtitle": "Latens- och prestandamått",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Applikationsloggar",
+ "logsProxySubtitle": "Proxytrafikloggar",
+ "consoleLogsSubtitle": "Konsolutdata",
+ "logsActivitySubtitle": "Användaraktivitetslogg",
+ "healthSubtitle": "Systemhälsokontroll",
+ "costsPricingSubtitle": "Prissättningsregler per modell",
+ "costsBudgetSubtitle": "Budgetgränser",
+ "costsQuotaShareSubtitle": "Dela leverantörskvoter mellan nycklar",
+ "auditLogSubtitle": "Behörighetsgranskning",
+ "auditMcpSubtitle": "Granskning av MCP-server",
+ "auditA2aSubtitle": "Granskning av A2A-protokoll",
+ "translatorSubtitle": "Formatkonvertering",
+ "playgroundSubtitle": "Testa prompter live",
+ "searchToolsSubtitle": "Register över sökverktyg",
+ "memorySubtitle": "Beständigt agentminne",
+ "omniSkillsSubtitle": "Register över sandbox-färdigheter",
+ "agentSkillsSubtitle": "Register över A2A-färdigheter",
+ "mcpSubtitle": "Kontroller för MCP-server",
+ "a2aSubtitle": "A2A-protokollserver",
"pluginsSubtitle": "Plugin-marknadsplats och installationer",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Cachelagrade mediefiler",
+ "batchFilesSubtitle": "Filer för batchindata/-utdata",
+ "settingsSubtitle": "Alla inställningar",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Tema och layout",
+ "settingsAiSubtitle": "Standardinställningar för AI-beteende",
+ "globalRoutingSubtitle": "Globala routningsregler",
+ "settingsResilienceSubtitle": "Återförsök och kretsbrytare",
+ "settingsAdvancedSubtitle": "Alternativ för avancerade användare",
+ "settingsSecuritySubtitle": "Autentisering och kryptering",
"settingsAccessTokensSubtitle": "Avgränsade CLI-tokens för fjärrläge",
"settingsFeatureFlagsSubtitle": "Växla systemfunktioner",
"settingsCacheSubtitle": "Modellkatalog och svarscaching",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Sidofält",
+ "settingsSidebarSubtitle": "Anpassa sidofältets layout",
"settingsAuthzSubtitle": "Ruttinventering och förbikopplingspolicy",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Dokumentation",
+ "issuesSubtitle": "Rapportera ett fel",
+ "changelogSubtitle": "Versionsinformation",
"costsQuotaPlans": "Planer och kvoter",
"costsQuotaPlansSubtitle": "Konfigurera planer efter leverantör",
"activity": "Aktivitet",
@@ -1271,11 +1275,11 @@
"systemGroup": "System",
"costsOverview": "Översikt",
"costsOverviewSubtitle": "Konsoliderad kostnadsanalys",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Agentbrygga",
"agentBridgeSubtitle": "Fånga upp IDE-agenttrafik",
"trafficInspector": "Trafikinspektör",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Granska förfrågnings- och svarstrafik från dina appar",
+ "trafficInspectorPurpose": "Se exakt vad din applikation skickar till och tar emot från AI-leverantörer. Fungerar med alla OpenAI-kompatibla klienter.",
"cliCode": "CLI-kod",
"cliCodeSubtitle": "Kodverktyg som pekar på OmniRoute",
"cliAgents": "CLI-agenter",
@@ -1314,7 +1318,7 @@
"noResults": "Inga resultat"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Webhookar",
"description": "Konfigurera HTTP-återuppringningar för systemhändelser.",
"configuredWebhooks": "Konfigurerade Webhooks",
"configuredWebhooksDesc": "Hantera leveransslutpunkter, prenumererade händelser, status och testsändningar.",
@@ -1323,7 +1327,7 @@
"name": "Namn",
"namePlaceholder": "Produktionsövervakning",
"unnamedWebhook": "Namnlös webhook",
- "url": "Endpoint URL",
+ "url": "Slutpunkts-URL",
"events": "Händelser",
"allEvents": "Alla evenemang",
"secret": "Hemligt",
@@ -1341,7 +1345,7 @@
"refresh": "Uppdatera",
"loading": "Laddar webhooks...",
"never": "Aldrig",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {inga fel} one {# fel} other {# fel}}",
"testWebhook": "Skicka test",
"testSuccess": "Testwebhook skickades.",
"testFailed": "Testa webhook misslyckades.",
@@ -1559,13 +1563,13 @@
"mcpMetricTopTool": "Toppverktyg"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "Teman",
+ "description": "Välj ett förinställt tema eller skapa ett eget med en enda färg",
+ "presetColors": "Populära färger",
+ "customTheme": "Anpassat tema",
+ "customThemeDesc": "Klicka på skapa tema och välj en färg",
+ "createTheme": "Skapa tema",
+ "activePreset": "Aktivt tema"
},
"header": {
"logout": "Logga ut",
@@ -1577,73 +1581,73 @@
"language": "Språk",
"providers": "Leverantörer",
"providerDescription": "Hantera dina AI-leverantörsanslutningar",
- "combos": "Combos",
+ "combos": "Kombinationer",
"comboDescription": "Modellkombo med reserv",
"usage": "Användning & analys",
"usageDescription": "Övervaka din API-användning, tokenförbrukning och förfrågningsloggar",
- "analytics": "Analytics",
+ "analytics": "Analys",
"analyticsDescription": "Diagram, trender och utvärderingsinsikter",
"cliTools": "CLI-verktyg",
"cliToolsDescription": "Konfigurera CLI-verktyg",
"home": "Hem",
"homeDescription": "Välkommen till OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "Slutpunkter",
+ "endpointDescription": "Hantera proxyslutpunkter, MCP, A2A och API-slutpunkter",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Hantering och verktyg för Model Context Protocol-servrar",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "Agent-to-Agent-protokolluppgifter och observerbarhet",
"settings": "Inställningar",
"settingsDescription": "Hantera dina preferenser",
"openaiCompatible": "OpenAI-kompatibel",
"anthropicCompatible": "Antropisk kompatibel",
"media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "mediaDescription": "Generera bilder, videor och musik",
+ "themes": "Teman",
+ "themesDescription": "Välj ett färgtema för hela instrumentpanelen",
+ "costsDescription": "Spåra utgifter, analysera trender och hantera din AI-budget för alla leverantörer",
+ "cacheDescription": "Övervaka effektiviteten hos leverantörernas promptcache och lokal semantisk återanvändning av svar.",
+ "limitsDescription": "Konfigurera hastighetsgränser och kvoter per API-nyckel och leverantör",
+ "runtimeDescription": "Realtidsövervakning av körning — kretsbrytare, nedkylningsperioder, modellspärrar, sessioner och kvotaviseringar",
+ "apiManagerDescription": "Hantera API-nycklar och åtkomstkontroll för din OmniRoute-instans",
+ "batchDescription": "Bearbeta stora mängder förfrågningar asynkront med batchindelade API-anrop",
+ "contextCavemanDescription": "Regelbaserad meddelandekomprimering, språkpaket, analys och kontroller för utdataläge.",
+ "contextRtkDescription": "Kommandomedveten komprimering för verktygsutdata, terminalloggar och byggresultat.",
+ "contextCombosDescription": "Definiera hur motorer kombineras för olika routningsscenarier.",
+ "changelogDescription": "Håll dig uppdaterad om de senaste plattformsfunktionerna och tillkännagivandena.",
+ "agentsDescription": "Hantera och konfigurera verktyg för AI-agenter: Codex, Devin, Jules och anpassade agenter",
+ "cloudAgentsDescription": "Orkestrera molnbaserade AI-agenter med uppgiftsspårning i realtid och godkännande av planer",
+ "memoryDescription": "Beständigt konversationsminne med semantisk sökning och FTS5-fulltextindexering",
+ "skillsDescription": "Installera och hantera sandboxfärdigheter för automatisk körning av prompter och verktyg",
+ "agentSkillsDescription": "Agentanpassad färdighetskatalog med URL-kopiering med ett klick för integrering med AI-klienter",
+ "translatorDescription": "Översätt och testa prompter mellan API-format: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "Testa prompter interaktivt med leverantörssvar i realtid och formatinspektion",
+ "searchToolsDescription": "Sökanalys, leverantörsuppdelning, cacheträffsfrekvenser och kostnadsspårning",
+ "logsDescription": "Förfrågningsloggar i realtid, felspårningar och inspektör för strömmande händelser",
+ "auditDescription": "Regelefterlevnadslogg för användning av API-nycklar, MCP-verktygsanrop och policyhändelser",
+ "webhooksDescription": "Konfigurera webhook-slutpunkter för att ta emot händelseaviseringar i realtid",
+ "healthDescription": "Översikt över systemstatus: leverantörer, kretsbrytare, hastighetsgränser och databas",
+ "proxyDescription": "Konfigurera inställningar för uppströmsproxy för utgående leverantörsanslutningar",
+ "apiEndpointsDescription": "Hantera anpassade konfigurationer av API-slutpunkter och åsidosättningar av routning",
+ "batchFilesDescription": "Bläddra bland och hantera utdatafiler och resultat från batchjobb",
+ "analyticsEvalsDescription": "Resultat från modellutvärderingar och prestandajämförelser",
+ "analyticsSearchDescription": "Analys av sökfrågor, cacheträffsfrekvenser och kostnadsspårning",
+ "analyticsUtilizationDescription": "Mätvärden för leverantörsanvändning och kapacitetsplanering",
+ "analyticsComboHealthDescription": "Status och prestanda i realtid för kombinerade routningskonfigurationer",
+ "analyticsCompressionDescription": "Analys av kontextkomprimering och tokenbesparingar",
+ "costsBudgetDescription": "Budgetgränser och utgiftsaviseringar per API-nyckel och leverantör",
+ "costsPricingDescription": "Anpassad priskonfiguration för beräkning av tokenkostnader",
+ "logsProxyDescription": "Loggar för förfrågningar via uppströmsproxy och trafikinspektion",
+ "logsConsoleDescription": "Utdata från programkonsolen och felsökningsloggar",
+ "logsActivityDescription": "Granskningslogg över användaråtgärder och systemhändelser",
+ "auditMcpDescription": "Granskningslogg för anrop av MCP-verktyg och dokumentation för regelefterlevnad",
"auditA2a": "A2A-revision",
"auditA2aDescription": "A2A-uppgiftsutförande revisionsspår, tillståndsövergångar och skicklighetsanrop",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Tema, varumärkesprofilering och visuell anpassning",
+ "settingsAiDescription": "AI-beteenden, tankebudgetar, visuella funktioner och minnesinställningar",
"settingsCacheDescription": "TTL för modellkatalogens cacheposter",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Inställningar för autentisering, auktorisering och åtkomstkontroll",
"featureFlags": "Funktionsflaggor",
"featureFlagsDescription": "Styrsystems kapacitet och experimentella funktioner",
"featureFlagsActive": "{count} aktiv",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Inga flaggor matchar din sökning",
"featureFlagsSaved": "Flaggan uppdaterad",
"featureFlagsError": "Det gick inte att uppdatera flaggan",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Routningsregler, modellalias, standardvärden för kombinationer och nedgraderingsinställningar",
+ "settingsResilienceDescription": "Konfiguration av kretsbrytare, återförsök och reservlösningar",
+ "settingsAdvancedDescription": "Avancerade nyttolastregler, begäransgränser och proxy-API-inställningar",
+ "mitmProxyDescription": "Konfigurera MITM-proxyinställningar för trafikinspektion och felsökning",
+ "oneProxyDescription": "Konfigurera 1Proxy-inställningar för avancerad proxykedjning",
"omniSkillsDescription": "Installera och hantera sandlådefärdigheter för automatiserad körning av prompter och verktyg"
},
"cloudSyncStatus": {
@@ -1694,7 +1698,7 @@
"general": "Allmänt",
"appearance": "Utseende",
"ai": "AI-inställningar",
- "routing": "Routing",
+ "routing": "Routning",
"resilience": "Resiliens",
"advanced": "Avancerat",
"accessTokens": "Åtkomsttokens",
@@ -1704,7 +1708,7 @@
"console": "Konsol",
"logger": "Loggare",
"translator": "Översättare",
- "playground": "Playground",
+ "playground": "Testmiljö",
"add": "Lägg till",
"edit": "Redigera",
"apiKeys": "API-nycklar",
@@ -1721,7 +1725,7 @@
"costs": "Kostnader",
"health": "Hälsa",
"runtime": "Körtid",
- "webhooks": "Webhooks",
+ "webhooks": "Webhookar",
"home": "Hem",
"activity": "Aktivitet",
"agentSkills": "AgentSkills",
@@ -1758,7 +1762,7 @@
"discovery": "Upptäckt",
"freeProviderRankings": "Rankning av gratisleverantörer",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Konfiguration",
"freeTiers": "Gratisnivåer",
"gamification": "Spelifiering",
"leaderboard": "Topplista",
@@ -1772,7 +1776,7 @@
"searchTools": "Sökverktyg",
"security": "Säkerhet",
"sidebar": "Sidofält",
- "tokens": "Tokens",
+ "tokens": "Token",
"tools": "Verktyg",
"agentBridge": "Agentbrygga",
"trafficInspector": "Trafikinspektör",
@@ -1808,7 +1812,7 @@
"reportIssue": "Rapportera problem",
"activeError": "{active} aktiv · {errors} fel",
"topologyLegendActive": "Aktiv",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Senaste",
"topologyLegendError": "Fel",
"oauthLabel": "OAuth",
"apiKeyLabel": "API-nyckel",
@@ -1822,11 +1826,11 @@
"updateStarted": "Uppdatering startade...",
"reloadingPageAutomatically": "Laddar om sidan automatiskt...",
"providerTopology": "Leverantörstopologi",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Senaste begäranden",
+ "recentRequestsEmpty": "Inga begäranden ännu.",
+ "recentRequestsModel": "Modell",
+ "recentRequestsTokens": "In/ut",
+ "recentRequestsWhen": "När",
"downloadDmg": "Ladda ner DMG (macOS)",
"downloadDmgDescription": "En ny version av OmniRoute-skrivbordsappen är tillgänglig. Vänligen ladda ner och installera macOS DMG-installationsprogrammet för att uppdatera (nuvarande: v{version}).",
"downloadExe": "Ladda ner EXE (Windows)",
@@ -1884,18 +1888,18 @@
"releaseNotes": "Versionsinformation",
"readMore": "Läs Mer",
"noAuthLabel": "Ingen autentisering",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Gör dig redo att routa",
+ "readinessTitle": "Skicka din första begäran",
+ "readinessSubtitle": "Fyra små steg. OmniRoute kontrollerar att allt är klart under tiden.",
+ "readinessStep1": "Anslut en leverantör",
+ "readinessStep2": "Konfigurera autentisering för slutpunkten",
+ "readinessStep3": "Kopiera din slutpunkt",
+ "readinessStep4": "Skicka en testförfrågan",
+ "readinessContinue": "Fortsätt konfigurationen",
+ "readinessDismiss": "Avfärda tills vidare"
},
"analytics": {
- "title": "Analytics",
+ "title": "Analys",
"usageAnalyticsTitle": "Användningsanalys",
"diversityScoreTitle": "Leverantörs mångfald",
"diversityScoreDesc": "Ögonblicksbild av leverantörskoncentration för det senaste trafikfönstret.",
@@ -1924,13 +1928,13 @@
"chartNoData": "Inga data",
"chartWeekly": "Veckovis",
"activitySummary": "{active} aktiva dagar · {tokens} tokens · {days} dagar",
- "activityCellTitle": "{date}: {tokens} tokens",
+ "activityCellTitle": "{date}: {tokens} token",
"activityLess": "Mindre",
"activityMore": "Mer",
"chartApiKeyBreakdown": "Uppdelning per API-nyckel",
"chartApiKey": "API-nyckel",
"mostActiveDay": "Mest aktiva dag",
- "datedTokenCount": "{date} · {tokens} tokens",
+ "datedTokenCount": "{date} · {tokens} token",
"noDataLast7Days": "Inga data för de senaste 7 dagarna",
"requestTokenSummary": "{requests} förfrågningar · {tokens} tokens",
"chartByAccount": "Per konto",
@@ -1959,11 +1963,11 @@
"rangeCancel": "Avbryt",
"rangeApply": "Tillämpa",
"rangeErrorInvalid": "Start måste vara före slut",
- "period1D": "1D",
- "period7D": "7D",
- "period30D": "30D",
- "period90D": "90D",
- "periodYTD": "YTD",
+ "period1D": "1 d",
+ "period7D": "7 d",
+ "period30D": "30 d",
+ "period90D": "90 d",
+ "periodYTD": "Hittills i år",
"periodAll": "Alla",
"totalTokens": "Totala tokens",
"inputTokens": "Indatatokens",
@@ -1989,7 +1993,7 @@
"overviewDescription": "Övervaka dina API-användningsmönster, tokenförbrukning, kostnader och aktivitetstrender för alla leverantörer och modeller.",
"evalsDescription": "Kör utvärderingssviter för att testa och validera dina LLM-slutpunkter. Jämför modellkvalitet, upptäck regressioner och benchmark latens.",
"overview": "Översikt",
- "evals": "Evals",
+ "evals": "Utvärderingar",
"search": "Sök",
"utilization": "Användning",
"routeTrace": "Ruttspårning",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Fel",
"comboHealth": "Kombohälsa",
"comboHealthDescription": "Kombonivåkvot, användningsfördelning och prestandamått",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Komprimeringsanalys",
+ "compressionAnalyticsDescription": "Komprimeringsanalys – tokenbesparingar, fördelning per läge och leverantörsstatistik.",
"autoRoutingTotalAutoRequests": "Totalt antal automatiska förfrågningar",
"autoRoutingAvgSelectionScore": "Genomsnittligt urvalsresultat",
"autoRoutingExplorationRate": "Utforskningshastighet",
@@ -2038,7 +2042,7 @@
"comboHealthTraffic": "trafik",
"comboHealthProjectedQuota": "Prognostiserad kvot",
"comboHealthPricingCoverage": "Pristäckning",
- "comboHealthAutopilotTitle": "Combo Health Autopilot",
+ "comboHealthAutopilotTitle": "Autopilot för kombinationshälsa",
"comboHealthAutopilotDescription": "Prioriterade rekommendationer från kombinationshälsa, prognoser, kvoter och leverantörshälsa.",
"comboHealthIssues": "Problem",
"comboHealthActionable": "{count} åtgärdbara",
@@ -2106,7 +2110,7 @@
"compressionAnalyticsAvgSavings": "Genomsnittliga besparingar",
"compressionAnalyticsAvgDuration": "Genomsnittlig varaktighet",
"compressionAnalyticsReceipts": "Kvitton",
- "compressionAnalyticsFallbacks": "Fallbacks",
+ "compressionAnalyticsFallbacks": "Reservval",
"compressionAnalyticsPromptTokens": "Fråga tokens",
"compressionAnalyticsCompletionTokens": "Färdigställande tokens",
"compressionAnalyticsTotalTokens": "Totalt tokens",
@@ -2205,8 +2209,8 @@
"connection": "Anslutning",
"combo": "Kombination",
"routeStep": "Steg",
- "tokens": "Tokens",
- "notAvailable": "n/a",
+ "tokens": "Token",
+ "notAvailable": "saknas",
"routeTokenCounts": "{input} in · {output} ut",
"routeEvidence": "Underlag",
"routeFactors": "Routingfaktorer",
@@ -2254,9 +2258,9 @@
"fullAccess": "Full tillgång",
"keyManagement": "API-nyckelhantering",
"keyManagementDesc": "Skapa och hantera API-nycklar för autentisering av förfrågningar till din slutpunkt",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Din app skickar förfrågningar via en API-nyckel till OmniRoute",
+ "requestFlowYourApp": "Din app",
+ "requestFlowApiKey": "API-nyckel",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Totalt nycklar",
"restricted": "Begränsad",
@@ -2271,7 +2275,7 @@
"usage": "Användning",
"created": "Skapad",
"actions": "Åtgärder",
- "reqs": "reqs",
+ "reqs": "förfr.",
"neverUsed": "Aldrig använd",
"deleteConfirm": "Vill du ta bort denna API-nyckel?",
"usageTips": "Användningstips",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "Kopiera och lagra den här nyckeln nu – den kommer inte att visas igen.",
"done": "Klart",
"savePermissions": "Spara behörigheter",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "Tillåtna slutpunkter",
+ "allEndpointsAllowed": "Den här nyckeln har åtkomst till alla API-slutpunkter.",
+ "endpointsRestricted": "Begränsad till {count} slutpunkt{count, plural, one {} other {er}}.",
+ "autoResolve": "Lös automatiskt",
+ "autoResolveDesc": "Matcha automatiskt tvetydiga modellnamn med den ursprungliga leverantören för den här API-nyckeln.",
"streamDefaultMode": "Standardkompatibilitet för ström",
"streamDefaultModeDesc": "Styr utelämnade `stream`-flaggor för denna nyckel. JSON-läge returnerar icke-strömmande svar såvida inte klienten uttryckligen begär SSE.",
- "streamDefaultLegacy": "Legacy",
+ "streamDefaultLegacy": "Äldre",
"streamDefaultJson": "JSON-kompatibel",
"streamDefaultBadge": "Standard för JSON-ström",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "Nyckeln är aktiv",
+ "keyActiveDesc": "Aktivera eller inaktivera den här API-nyckeln. Inaktiverade nycklar avvisas omedelbart med 403.",
+ "accessSchedule": "Åtkomstschema",
+ "accessScheduleDesc": "Begränsa åtkomsten till specifika tider och veckodagar.",
+ "scheduleFrom": "Från",
+ "scheduleUntil": "Till",
+ "scheduleDays": "Dagar",
+ "scheduleTimezone": "Tidszon",
+ "scheduleTimezoneHint": "Använd IANA-tidszonsnamn, t.ex. America/New_York, Europe/Berlin",
+ "scheduleActive": "Schema",
+ "disabled": "Inaktiverad",
+ "daySun": "Sön",
+ "dayMon": "Mån",
+ "dayTue": "Tis",
+ "dayWed": "Ons",
+ "dayThu": "Tors",
+ "dayFri": "Fre",
+ "daySat": "Lör",
"allowAll": "Tillåt alla",
"restrict": "Begränsa",
"allowAllInfo": "Denna nyckel kan komma åt alla tillgängliga modeller.",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "Det gick inte att uppdatera behörigheter. Försök igen.",
"unknownProvider": "okänt",
"copyMaskedKey": "Kopiera maskerad nyckel",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "Den fullständiga nyckeln är endast tillgänglig när den skapas – kopiera den när du skapar nyckeln första gången",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# enhet} other {# enheter}}",
"devicesTooltip": "{count, plural, one {# unik IP/User-Agent-enhet sedd med denna nyckel (senaste 30 min)} other {# unika IP/User-Agent-enheter sedda med denna nyckel (senaste 30 min)}}",
@@ -2378,20 +2382,20 @@
"allowedCombos": "Tillåtna kombinationer",
"allCombosAllowed": "Denna nyckel kan använda valfri kombination.",
"restrictedComboCount": "Begränsad till {count, plural, one {# kombination} other {# kombinationer}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# lagrad post finns} other {# lagrade poster finns}} inte i den här kombinationslistan (till exempel routningsregler) och kommer att behållas i sparat skick.",
+ "preservedComboRuleHint": "Behålls i lagrat skick. Den här posten är inte ett alternativ i listan ovan och kan därför endast ändras via API:et.",
"apiManagerCustomRateLimits": "Anpassade prisgränser",
"apiManagerCustomRateLimitsDesc": "Åsidosätt globala standardgränser. Lämna tomt om du vill använda standardinställningarna.",
"apiManagerRateLimitRequestsPlaceholder": "Förfrågningar",
- "apiManagerRateLimitReqPer": "req /",
+ "apiManagerRateLimitReqPer": "begäranden /",
"apiManagerRateLimitSecondsPlaceholder": "Sekunder",
"apiManagerRemoveLimitTitle": "Ta bort gränsen",
"apiManagerTimezonePlaceholder": "Amerika/Sao_Paulo",
"noLogPayloadPrivacy": "No-Log Payload Sekretess",
"bannedStatus": "Förbjuden status",
- "managementApiAccess": "Management API Access",
+ "managementApiAccess": "Åtkomst till hanterings-API",
"expirationDate": "Utgångsdatum",
- "managementAccess": "Management Access",
+ "managementAccess": "Hanteringsåtkomst",
"allowedConnections": "Tillåtna anslutningar",
"searchPlaceholder": "Sök efter namn eller token...",
"activeOnly": "Endast aktiva",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Tillåter att denna nyckel ignorerar uppströmsleverantörens/kontots stoppolicy under dirigering. API-nyckelns USD-kvoter gäller fortfarande.",
"quotaPill": "KVOT",
"quotaModeOnly": "endast qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Exklusiv tilldelning",
+ "exclusiveLeaseNoticeTitle": "Exklusiv tilldelning",
+ "exclusiveLeaseNoticeDesc": "Den här API-nyckeln har behörighet för exklusiv tilldelning vid routning av dedikerade anslutningar.",
+ "allConnections": "Alla anslutningar",
+ "onlySelectedConnections": "Endast valda anslutningar",
+ "selectAtLeastOneConnection": "Välj minst en anslutning eller välj Alla anslutningar.",
+ "allConnectionsDesc": "Den här nyckeln kan använda alla aktiva anslutningar.",
+ "restrictedToConnections": "Begränsad till {count, plural, one {# anslutning} other {# anslutningar}}."
},
"auditLog": {
"title": "Revisionslogg",
@@ -2453,14 +2457,14 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Generera",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Genererar...",
+ "loadingModels": "Läser in tillgängliga modeller...",
+ "noModels": "Inga modeller är tillgängliga. Konfigurera först leverantörer med mediefunktioner.",
+ "error": "Genereringen misslyckades",
+ "result": "Resultat",
+ "imageDescription": "Generera bilder från textprompter med OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI med flera.",
+ "videoDescription": "Skapa videor med AnimateDiff, Stable Video Diffusion via ComfyUI eller SD WebUI.",
+ "musicDescription": "Komponera musik med Stable Audio Open eller MusicGen via ComfyUI.",
"kinds": {
"embedding": "Inbäddning",
"image": "Bild",
@@ -2527,7 +2531,7 @@
"generateModality": "Generera {modality}",
"apiKeyRequired": "API-nyckel krävs",
"configureApiKeys": "Konfigurera API-nycklar i Leverantörer",
- "downloadFormat": "Download {format}",
+ "downloadFormat": "Ladda ner {format}",
"noTextReturned": "Ingen text returnerades",
"wordTimestamps": "Tidsstämplar på ordnivå ({count} ord)",
"providerCount": "{count} leverantörer",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "OpenRouter tal-till-text modeller använder din konfigurerade OpenRouter-anslutning. Ingen separat autentisering krävs."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Sökfråga",
+ "searchResults": "Sökresultat",
+ "cachedResult": "Cachad",
+ "searchCost": "Kostnad",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Avancerad söktestning med leverantörsjämförelse",
+ "compareProviders": "Jämför leverantörer",
+ "rerankResults": "Rangordna om resultat",
+ "searchHistory": "Sökhistorik",
+ "urlOverlap": "URL-överlappning",
+ "noSearchProviders": "Inga sökleverantörer har konfigurerats. Lägg till leverantörer i Inställningar.",
+ "noRerankModels": "Ingen modell för omrangordning är tillgänglig",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Leverantör",
+ "searchType": "Söktyp",
+ "maxResults": "Max antal resultat",
+ "filters": "Filter",
+ "country": "Land",
+ "language": "Språk",
+ "timeRange": "Tidsintervall",
+ "includeDomains": "Inkludera domäner",
+ "excludeDomains": "Exkludera domäner",
+ "safeSearch": "Säker sökning",
+ "safeSearchOff": "Av",
+ "safeSearchModerate": "Måttlig",
+ "safeSearchStrict": "Strikt",
+ "queryPlaceholder": "Ange sökfråga...",
+ "providerAuto": "auto (billigast)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "nyheter",
+ "optionAny": "alla",
+ "timeRangeDay": "Senaste dygnet",
+ "timeRangeWeek": "Senaste veckan",
+ "timeRangeMonth": "Senaste månaden",
+ "timeRangeYear": "Senaste året",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Tidsgränsen för begäran överskreds ({seconds}s)",
+ "networkError": "Nätverksfel",
+ "formatted": "Formaterad",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "cachemiss",
+ "cacheHit": "cacheträff",
+ "latency": "Svarstid",
+ "cost": "Kostnad",
+ "results": "Resultat",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Omrankningsmodell",
+ "positionDelta": "Positionsändring",
+ "emptyState": "Skicka en sökfråga för att se resultat",
"copy": "Kopiera",
"resetToDefault": "Återställ till standard",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Sök",
+ "tabScrape": "Skrapa",
+ "tabCompare": "Jämför",
+ "modalitiesGuide": "Guide till modaliteter",
+ "searchConceptTitle": "Sök",
+ "searchConceptDesc": "Sök = hämtar en lista med webbresultat (titel, URL, utdrag, relevanspoäng)",
+ "scrapeConceptTitle": "Skrapa",
+ "scrapeConceptDesc": "Skrapa = extraherar hela innehållet från en URL (markdown, text eller HTML)",
+ "compareConceptTitle": "Jämför",
+ "compareConceptDesc": "Jämför = kör samma fråga parallellt hos N leverantörer för att jämföra svarstid, kostnad och överlappning mellan resultat",
+ "rerankConceptTitle": "Rangordna om",
+ "rerankConceptDesc": "Rangordna om = ordnar om resultaten via LLM för att förbättra relevansen utifrån frågan",
+ "autoConceptTitle": "Auto (billigast)",
+ "autoConceptDesc": "Auto (billigast) = väljer automatiskt den billigaste tillgängliga leverantören med konfigurerade autentiseringsuppgifter",
+ "providerCatalogTitle": "Leverantörskatalog",
+ "kindSearch": "Sök",
+ "kindFetch": "Hämta/skrapa",
+ "statusConfigured": "Konfigurerad",
+ "statusMissing": "Inga autentiseringsuppgifter",
+ "statusRateLimited": "Hastighetsbegränsad",
+ "configureProvider": "Konfigurera under Leverantörer",
+ "loadingProviders": "Läser in leverantörer…",
+ "failedToLoadProviders": "Det gick inte att läsa in leverantörer",
+ "costPerQuery": "Kostnad/fråga",
+ "freeQuota": "Kostnadsfri kvot/mån",
+ "scrapeUrl": "URL att skrapa",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL krävs",
"scrapeUrlInvalid": "Ogiltig URL — den måste börja med http:// eller https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
+ "scrapeExtract": "Extrahera",
+ "scrapeExtracting": "Extraherar…",
+ "scrapeFullPage": "Hela sidan",
"scrapeFormat": "Format",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
"formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
+ "scrapePreview": "Förhandsgranskning",
+ "scrapeRaw": "Rå",
+ "scrapeContentTruncated": "(avkortat, visa rådata)",
"scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "scrapeProvider": "Leverantör",
+ "scrapeSize": "Storlek",
"scrapeEmptyState": "Ange en URL för att extrahera dess innehåll",
"scrapeProvidersAvailable": "Tillgängliga leverantörer: Firecrawl, Jina Reader, Tavily.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Jämför",
+ "compareRunning": "Jämför…",
+ "autoProvider": "Auto (billigast)",
+ "configuredStatus": "Konfigurerad",
+ "rateLimitedStatus": "Hastighetsbegränsad",
+ "noCredential": "Inga autentiseringsuppgifter",
+ "searchTypeLabel": "Typ",
+ "rerankModelLabel": "Omrankningsmodell",
+ "noneOption": "Ingen",
+ "size": "Storlek",
"configurationPane": "Konfigurationspanel",
"configuration": "Konfiguration",
"status": "Status",
@@ -2704,7 +2708,7 @@
"classifierCompatLoadFailed": "Misslyckades med att läsa in inställning",
"classifierCompatMode": {
"off": "Av",
- "auto": "Auto",
+ "auto": "Automatisk",
"always": "Alltid"
},
"ccDiscoveryInfoButton": "Hur man aktiverar upptäcktsläge i Claude Code",
@@ -2734,7 +2738,7 @@
"reasoningEffort": "Resonemangsansträngning för {model}",
"effortNone": "Ingen",
"effortLow": "Låg",
- "effortMedium": "Medium",
+ "effortMedium": "Medel",
"effortHigh": "Hög",
"effortExtraHigh": "Extra hög",
"effortMax": "Max",
@@ -2804,7 +2808,7 @@
"reasoningEffortTier": {
"none": "Ingen",
"low": "Låg",
- "medium": "Medium",
+ "medium": "Medel",
"high": "Hög",
"xhigh": "X-hög"
},
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Lägg till",
"antigravityStep2Suffix": "till din hosts-fil som 127.0.0.1.",
"antigravityStep3": "3. Öppna Antigravity och förfrågningar kommer att skickas som proxy.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} skickar förfrågningar till sin leverantörsslutpunkt. MITM fångar upp och omdirigerar dem till OmniRoute.",
+ "mitmStep1": "1. Starta MITM för att dirigera förfrågningar genom OmniRoute.",
+ "mitmStep2Prefix": "2. Lägg till",
+ "mitmStep2Suffix": "i din hosts-fil som 127.0.0.1.",
+ "mitmStep3": "3. Öppna {toolName} så skickas förfrågningarna via proxy.",
"sudoPasswordRequiredTitle": "Sudo-lösenord krävs",
"sudoPasswordHint": "Administratörslösenord krävs för att ändra värdens fil- och systemproxyinställningar.",
"enterSudoPassword": "Ange sudo lösenord",
@@ -2865,7 +2869,7 @@
"provider": "Leverantör",
"model": "Modell",
"providers": "Leverantörer",
- "auth": "Auth",
+ "auth": "Autentisering",
"noApiKeysAvailable": "Inga API-nycklar tillgängliga",
"usingDefaultOmniroute": "Använder standard: sk_omniroute",
"updateConfig": "Uppdatera Config",
@@ -2904,7 +2908,7 @@
"continue": "Använd när du kör Continue i IDE och du behöver portabel JSON-baserad leverantörskonfiguration.",
"opencode": "Använd när du föredrar terminalbaserade agentkörningar och skriptautomation via OpenCode.",
"kiro": "Använd när du integrerar Kiro och styr modelldirigering centralt från OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Använd när du vill ha en AI-fokuserad IDE med Codeium/Windsurf-modeller dirigerade genom OmniRoute.",
"antigravity": "Använd när Antigravity/Kiro-trafik måste avlyssnas genom MITM och dirigeras till OmniRoute.",
"copilot": "Använd när du vill ha Copilot chattstil UX samtidigt som du upprätthåller OmniRoute-nycklar och routingregler.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2917,18 +2921,18 @@
"claude": "Antropisk Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "xAI Grok Build TUI-kodningsagent med stöd för anpassad leverantör",
- "droid": "Factory Droid AI Assistant",
+ "droid": "Factory Droid AI-assistent",
"openclaw": "Öppna Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
+ "cline": "Cline AI-kodningsassistent för CLI",
"kilo": "Kilokod AI Assistant CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
"continue": "Fortsätt AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "OpenCode AI-kodningsagent (terminal)",
+ "kiro": "Amazon Kiro — AI-driven IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "Sourcegraph Amp kodningsassistent för CLI",
"hermes": "Hermes AI terminalassistent",
"hermes-agent": "Hermes Agent (av Nousresearch) - Avancerad terminal-AI med stöd för flera modeller (delegation, vision, komprimering, etc.)",
"custom": "Generisk OpenAI-kompatibel CLI- eller SDK-konfigurationsgenerator",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter autonom kodningsagent-CLI",
"omp": "Oh My Pi terminal-kodningsagent",
"letta": "Letta CLI-agent med persistent minne och verktygsanvändning",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — självlärande RLM-kodningsramverk med stöd för OpenAI-kompatibla leverantörer",
"warp": "Warp AI-terminal med stöd för anpassad leverantör",
"agent-deck": "Agent Deck multi-agent-orkestrerare",
"5dive": "5dive — självhostad flotta av kodningsagenter; en auth-profil pekar dem alla mot OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Installera OpenCode",
+ "desc": "Installera via npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API-nyckel"
},
"3": {
- "title": "Set Base URL",
+ "title": "Ange bas-URL",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Välj modell"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Använd resonemangsvariant",
+ "desc": "För resonemangsmodeller, kör med --variant high/low/max (se exempelkommandot nedan)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Öppna Kiro-inställningar",
+ "desc": "Gå till Inställningar → AI-leverantör"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Bas-URL",
+ "desc": "Klistra in URL:en till din OmniRoute-slutpunkt"
},
"3": {
- "title": "API Key"
+ "title": "API-nyckel"
},
"4": {
- "title": "Select Model"
+ "title": "Välj modell"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Öppna AI-inställningar",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Lägg till anpassad leverantör",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Bas-URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API-nyckel",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Välj modell",
+ "desc": "Välj en modell i rullgardinsmenyn"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Anpassad CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Verktygskategorier",
"visibleToolsCount": "{count} tillgängliga verktyg",
"customCliBuilderTitle": "OpenAI-kompatibel CLI-byggare",
"customCliBuilderDescription": "Generera env vars och JSON-kodavsnitt för alla CLI eller SDK som accepterar en OpenAI-kompatibel bas-URL, API-nyckel och modell-ID.",
@@ -3108,13 +3112,13 @@
"hermesRoleDefaultDesc": "Primär konversationsmodell",
"hermesRoleDelegation": "Delegering (underagenter)",
"hermesRoleDelegationDesc": "Orkestrerare och underagentmodell",
- "hermesRoleVision": "Vision",
+ "hermesRoleVision": "Bildanalys",
"hermesRoleVisionDesc": "Bild- och skärmdumpsförståelse",
"hermesRoleCompression": "Komprimering",
"hermesRoleCompressionDesc": "Promptkomprimering och sammanfattning",
"hermesRoleWebExtract": "Webbextrahering",
"hermesRoleWebExtractDesc": "Extrahering av webbsidesinnehåll",
- "hermesRoleSkillsHub": "Skills Hub",
+ "hermesRoleSkillsHub": "Kompetenscenter",
"hermesRoleSkillsHubDesc": "Färdigheter och resonemang kring verktygsanvändning",
"hermesRoleApproval": "Godkännande",
"hermesRoleApprovalDesc": "Säkerhets- och godkännandebeslut",
@@ -3126,9 +3130,9 @@
"hermesRoleMemoryQueryRewriteDesc": "Ombearbetning av minnessökfråga",
"hermesRoleTtsAudioTags": "TTS Ljudtaggar",
"hermesRoleTtsAudioTagsDesc": "TTS ljudtaggsgenerering",
- "hermesRoleTriageSpecifier": "Triage Specifier",
+ "hermesRoleTriageSpecifier": "Triagespecificerare",
"hermesRoleTriageSpecifierDesc": "Specifikation för ärende- och PR-triage",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "Kanban-uppdelare",
"hermesRoleKanbanDecomposerDesc": "Kanban-uppgiftsdekomposition",
"hermesRoleProfileDescriber": "Profilbeskrivare",
"hermesRoleProfileDescriberDesc": "Användarprofilbeskrivning",
@@ -3155,7 +3159,7 @@
"hermesRolesWillUpdate": "{count, plural, one {# roll kommer att uppdateras} other {# roller kommer att uppdateras}}",
"hermesPreviewPath": "Förhandsgranskning — skrivs till ~/.hermes/config.yaml",
"hermesSaveDescription": "Sparar den valda modellen för varje roll i",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "Konfigurationsgenerator för GitHub Copilot",
"copilotGeneratorDescriptionPrefix": "Genererar",
"copilotGeneratorDescriptionSuffix": "blocket för VS Code GitHub Copilot med Azure-leverantörsmönstret. Välj de modeller du vill ha och kopiera sedan JSON-koden till din konfigurationsfil.",
"copilotCompatibilityWarning": "Denna konfiguration använder Azure-leverantörens workaround för anpassade modellistor. Testad med omniglyph-läge. Detta är en förhandsgranskning och förblir inaktiverad som standard tills end-to-end-valideringen är slutförd.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Komprimeringsprofil",
+ "profileDescription": "Profilen är ett tak, inte ett golv: en striktare profil kan inte öppnas upp igen med en åsidosättning för ett enskilt steg. Uppmätt på denna kodbas: med kodsäker eller balanserad komprimeras ingenting i en session som ännu inte har samlat på sig historik, eftersom båda höjer tröskeln för minsta antal tecken och behåller systemprompten, verktygsschemana och verktygsresultaten i ursprungligt format.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Aggressiv (standard)",
+ "description": "Policyn som användes för de publicerade mätresultaten. Avbildar systemprompten, verktygsdokumentationen och omfattande historik."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Balanserad",
+ "description": "Behåller aktivt tillstånd i ursprungligt format och skyddar de senaste 8 turerna; komprimerar endast äldre, avslutad historik."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Kodsäker",
+ "description": "Behåller behörighetsinstruktioner, verktygsscheman och aktiva verktygsutdata i ursprungligt format och skyddar de senaste 12 turerna. Komprimerar ingenting förrän sessionen har samlat på sig historik."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Genomströmning",
+ "description": "Dirigerar utan omvandling. Motorn hoppas över och begäran vidarebefordras oförändrad."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Välj komprimeringsprofil för OmniGlyph",
"saved": "Sparat.",
"saveFailed": "Kunde inte spara.",
"enableAria": "Aktivera OmniGlyph-motorn",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Regelbaserad meddelandekomprimering, språkpaket, analys och kontroller för utdataläge.",
"advancedConfig": "Avancerad konfiguration",
"advancedConfigDesc": "Finjustera kompressionsbeteendet",
"aggressiveSettings": "Aggressiva inställningar",
"aggressiveSettingsDesc": "Maximal komprimering med potentiella kvalitetsavvägningar",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Begäranden",
+ "tokensSaved": "Sparade token",
+ "savingsPercent": "Besparing i %",
+ "avgLatency": "Genomsnittlig latens",
+ "languagePacks": "Språkpaket",
+ "languagePacksDesc": "Aktivera komprimeringsregler för specifika språk.",
"labelAutoTrigger": "Autokomprimera när sammanhanget överskrider",
"labelCompressionRate": "Kompressionsstyrka",
"labelMaxTokens": "Rikta tokens per meddelande",
"labelMinLength": "Minsta meddelandelängd",
"labelMinSavings": "Minsta tokens att spara",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Aktiverad",
+ "autoDetect": "Identifiera språk automatiskt",
+ "rulesCount": "{count} regler",
"inputCompressionTitle": "Indatakomprimering",
"inputCompressionDesc": "Skriv om chatthistoriken med kortare formuleringar. Minskar indatatokens med ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Komprimeringsanalys",
+ "noAnalytics": "Ingen komprimeringsanalys ännu.",
"masterDisabledWarning": "Huvudströmbrytaren för Token Saver är AV — dessa inställningar påverkar inte förfrågningar förrän du slår på den från Komprimeringsinställningar eller ändrar den här.",
"outputMode": "Utgångsläge",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Utdataläge",
"quickSettings": "Snabbinställningar",
"quickSettingsDesc": "Grundläggande komprimeringsinställningar för att komma igång",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Automatisk förbikoppling för tydlighet",
+ "bypassConditions": "Villkor för förbikoppling",
"bypassConditionsList": "säkerhet, oåterkallelig, förtydligande, orderkänslig",
"simpleMode": "Enkelt",
"advancedMode": "Avancerat",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultrainställningar",
"ultraSettingsDesc": "SLM-driven semantisk komprimering",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Svara kortfattat. Bevara tekniska termer, kod, fel, URL:er och identifierare.",
+ "full": "Svara koncist och kompakt. Bevara allt tekniskt innehåll.",
+ "ultra": "Svara extremt kortfattat med vanliga tekniska förkortningar. Bevara exakta symboler."
}
},
"translator": {
@@ -8954,7 +8965,7 @@
"realtime": "Översättningsaktivitet i realtid",
"chatTester": "Chattestare",
"testBench": "Testbänk",
- "liveMonitor": "Live Monitor",
+ "liveMonitor": "Liveövervakning",
"modeDescriptionPlayground": "Klistra in valfri API-begäran och se hur OmniRoute översätter den mellan leverantörsformat (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
"modeDescriptionChatTester": "Skicka riktiga chattförfrågningar via OmniRoute och inspektera hela tur och retur: indata, översatt begäran, leverantörssvar och översatt utdata.",
"modeDescriptionTestBench": "Kör fördefinierade scenarier och jämför kompatibilitet mellan leverantörer och modeller.",
@@ -8989,7 +9000,7 @@
"translationPathHubSpoke": "{source} → OpenAI (mellanliggande) → {target}",
"translationPathDirect": "{source} → {target} (direktöversättare)",
"translationPathPassthrough": "Samma format – ingen översättning behövs",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "OpenAI-mellanformat",
"autoFeaturesTitle": "Vad OmniRoute gör automatiskt",
"autoFeaturesCount": "8 funktioner",
"featureReasoningCache": "Resonerande Cache",
@@ -9000,7 +9011,7 @@
"featureRoleNormalizationDesc": "Kartutvecklare→system för icke-OpenAI-mål. Maps system→användare för modeller som inte stöder systemrollen.",
"featureToolCallIds": "Verktyg Call ID Normalization",
"featureToolCallIdsDesc": "Genererar unika tool_call-ID när de saknas. Normaliseras till formatet 9 tecken för leverantörer som Mistral.",
- "featureMissingToolResponse": "Tool Response Injection",
+ "featureMissingToolResponse": "Injicering av verktygssvar",
"featureMissingToolResponseDesc": "Injicerar tomma tool_result-meddelanden när klienter skickar tool_calls utan motsvarande svar.",
"featureThinkingBudget": "Tänkande budget",
"featureThinkingBudgetDesc": "Hanterar automatiskt tankekonfiguration. Tar bort tankeparametrar när det sista meddelandet inte kommer från användaren.",
@@ -9035,15 +9046,15 @@
"scenarioMultiTurn": "Flervarv",
"scenarioThinking": "Tänker",
"scenarioSystemPrompt": "Systemprompt",
- "scenarioStreaming": "Streaming",
+ "scenarioStreaming": "Strömning",
"templateNames": {
"simple-chat": "Enkel chatt",
"tool-calling": "Verktygsanrop",
"multi-turn": "Flervarv",
"thinking": "Tänker",
"system-prompt": "Systemprompt",
- "streaming": "Streaming",
- "vision": "Vision",
+ "streaming": "Strömning",
+ "vision": "Bildanalys",
"schema-coercion": "Schema tvång"
},
"templateDescriptions": {
@@ -9097,7 +9108,7 @@
"anthropicCompatibleLabel": "Antropisk kompatibel",
"noTemplateForFormat": "Ingen mall för detta format",
"translationFailed": "Översättning misslyckades: {error}",
- "pipelineDebugger": "Pipeline Debugger",
+ "pipelineDebugger": "Pipeline-felsökare",
"translationPipeline": "Översättning pipeline",
"loading": "Läser in…",
"compressionOriginal": "Original",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "Begäran som din klient skulle skicka den",
"formatDetected": "Format upptäckt",
"formatDetectedDescription": "OmniRoute upptäcker automatiskt API-formatet från förfrågningsstrukturen",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "OpenAI-mellanformat",
"openaiIntermediateDescription": "Alla format normaliseras först till OpenAI-format (den universella bryggan)",
"providerFormat": "Leverantörsformat",
"providerFormatDescription": "OpenAI-formatet översätts till leverantörens ursprungliga format",
@@ -9153,7 +9164,7 @@
"loadToolSample": "Ladda verktyg-anropsexempel",
"transformToResponses": "Förvandla till svar",
"rawChatSseInput": "Rå chattavslut SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Transformerat Responses API SSE",
"noResultsYet": "Inga resultat ännu",
"transformedEvents": "Förvandlade händelser",
"uniqueEventTypes": "Unika händelsetyper",
@@ -9166,7 +9177,7 @@
"comboRouted": "Combo dirigerad",
"uniqueEndpoints": "Unika slutpunkter",
"routeDetails": "Ruttdetaljer",
- "comboBadge": "Combo",
+ "comboBadge": "Kombination",
"routeEndpointLabel": "Slutpunkt",
"routeConnectionLabel": "Anslutning",
"scenarioVision": "Vision (bildförståelse)",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Klistra in en JSON-begäran; formatet identifieras automatiskt.",
"advancedPipelineTitle": "OpenAI mellanliggande pipeline",
"advancedPipelineSubtitle": "Visualisera varje översättningssteg (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Strömtransformerare (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Konverterar Chat Completions SSE till Responses API.",
"advancedTestBenchTitle": "Testbänk (8 scenarier)",
"advancedTestBenchSubtitle": "Kör alla scenarier och rapporterar godkänd/misslyckad + kompatibilitets-%.",
@@ -9246,10 +9257,10 @@
"compressionPreviewButton": "Förhandsgranska komprimering",
"compressionPreviewing": "Förhandsgranskar…",
"compressionPreviewFailed": "Förhandsgranskning av komprimering misslyckades",
- "tokens": "tokens",
+ "tokens": "token",
"pauseAutoRefresh": "Pausa automatisk uppdatering",
"resumeAutoRefresh": "Återuppta automatisk uppdatering",
- "live": "Live",
+ "live": "Direkt",
"copyInput": "Kopiera indata",
"copyOutput": "Kopiera utdata",
"streamTransformFailed": "Misslyckades med att transformera strömmen"
@@ -9273,17 +9284,17 @@
"kiloPassRemaining": "Återstående",
"kiloPassRenews": "Förnyas om {count} dagar",
"kiloPassUsageLabel": "Denna månads användning",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Extra användningskrediter",
+ "kimiExtraUsage": "Extra användning",
+ "kimiExtraUsageEnabled": "Aktiverad",
+ "kimiExtraUsageDisabled": "Inaktiverad",
+ "kimiExtraUsageFrozen": "Fryst",
+ "kimiExtraUsageUnavailable": "Ej tillgänglig",
+ "kimiMonthlyUsed": "Använt den här månaden",
+ "kimiMonthlyLimit": "Månadsgräns",
+ "kimiMonthlyLimitUnlimited": "Obegränsat",
+ "kimiAdditionalCredits": "Ytterligare krediter",
+ "loggerTab": "Loggning",
"proxyTab": "Proxy",
"budgetManagement": "Budgethantering",
"budgetSaved": "Budgetgränser sparade",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Strömbrytare",
"lockedIPs": "Låsta IP-adresser",
"lockoutsAutoRefreshHint": "Lås för hastighetsgräns per modell • Automatisk uppdatering 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# låst} other {# låsta}}",
"timeLeft": "{time} kvar",
"howItWorks": "Hur det fungerar",
"howItWorksSubtitle": "Lär dig hur utvärderingar validerar dina LLM-svar",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Svar jämförs mot förväntade kriterier. Se godkänt/underkänt för varje fall med latensstatistik och detaljerad feedback.",
"evalsStrategyContainsLabel": "Innehåller",
"evalsStrategyExactLabel": "Exakt matchning",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Reguljärt uttryck",
"evalsStrategyCustomLabel": "Anpassad logik",
"evalsStrategyContainsDescription": "Kontrollerar om LLM-utdata innehåller den förväntade delsträngen.",
"evalsStrategyExactDescription": "Kontrollerar om LLM-utdata exakt matchar det förväntade värdet.",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Modeller under test",
"searchSuitesPlaceholder": "Sök efter sviter...",
"passSuffix": "passera",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# fall} other {# fall}}",
"runEval": "Kör Eval",
"runAllSuites": "Kör alla",
"runAllRunning": "Kör alla...",
"runAllProgress": "Kör {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# testsvit misslyckades} other {# testsviter misslyckades}}",
"runAllCompleted": "Körde {suites} sviter — {passed} godkändes, {failed} misslyckades",
"runAllCompletedWithFailures": "Körde {completed} sviter; {failedSuites} kunde inte slutföras",
"runningProgress": "Kör {current}/{total}...",
@@ -9393,13 +9404,13 @@
"notifyAllCasesPassed": "Alla {total} fall godkändes ✅",
"notifySomeCasesFailed": "{passed}/{total} godkänd, {failed} misslyckades",
"notifyEvalRunFailed": "Evalkörningen misslyckades",
- "notifyEvalTitle": "Eval: {name}",
+ "notifyEvalTitle": "Utvärdering: {name}",
"modelEvals": "Modellutvärderingar",
"evalsHeroDescription": "Testa och validera dina LLM-slutpunkter genom att köra fördefinierade utvärderingssviter. Varje svit innehåller testfall som skickar riktiga uppmaningar genom OmniRoute och jämför svar mot förväntade kriterier – vilket hjälper dig att upptäcka regressioner, jämföra modeller och säkerställa svarskvalitet mellan leverantörer.",
"qualityValidation": "Kvalitetsvalidering",
"modelComparison": "Modelljämförelse",
"regressionDetection": "Regressionsdetektering",
- "latencyBenchmarks": "Latency Benchmarks",
+ "latencyBenchmarks": "Prestandatester för svarstid",
"modelLockouts": "Modell Lockouter",
"noLockouts": "Inga modeller är för närvarande låsta",
"activeSessions": "Aktiva sessioner",
@@ -9419,7 +9430,7 @@
"providerLimits": "Leverantörsgränser",
"noProviders": "Inga leverantörer anslutna",
"connectProvidersForQuota": "Anslut till leverantörer med OAuth för att spåra dina API-kvotgränser och användning.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# konto} other {# konton}}",
"filteredFromCount": "(filtrerad från {count})",
"autoRefresh": "Automatisk uppdatering",
"refreshAll": "Uppdatera alla",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Misslyckades med att uppdatera kvotens synlighet",
"account": "konto",
"modelQuotas": "Modellkvoter",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Senast uppdaterad",
"actions": "Åtgärder",
"refreshQuota": "Uppdatera kvoten",
"today": "Idag",
@@ -9448,15 +9459,15 @@
"cardExpand": "Expandera",
"cardCollapse": "Fäll ihop",
"moreQuotas": "+{count} fler",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "Ogrupperade",
+ "viewFlat": "Platt",
+ "viewByEnvironment": "Efter miljö",
"noQuotaDataAvailable": "Inga kvotdata tillgängliga",
"noAccountsForTierFilter": "Inga konton hittades för nivåfilter",
"tierAll": "Alla",
"tierEnterprise": "Företag",
"tierTeam": "Team",
- "tierBusiness": "Business",
+ "tierBusiness": "Företag",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
@@ -9471,7 +9482,7 @@
"filterTierLabel": "Nivå",
"purchaseAll": "Alla",
"purchaseOauthSub": "Prenumeration",
- "purchaseOauthFree": "OAuth Free",
+ "purchaseOauthFree": "OAuth Gratis",
"purchaseApiKey": "API-nyckel",
"creditsLabel": "Krediter",
"creditBalanceHint": "Återstående saldo",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Lös in kredit",
"resetCreditRedeemed": "Återställ inlösta",
"resetCreditRedeemFailed": "Misslyckades med att lösa in återställningskredit",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Det gick inte att spara testsviten",
"clone": "Klona",
"exportSuite": "Exportera",
"importSuite": "Importera",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Ogiltig eval suite JSON",
"suiteBuilderCloneSuffix": "kopia",
"suiteBuilderImportedSuite": "Importerad svit",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Resultatkort",
+ "evalApiKey": "API-nyckel",
+ "scorecardPassRate": "Andel godkända",
+ "targetTypeModel": "Modell",
+ "actualOutputLabel": "Faktiskt resultat",
+ "evalTargetHint": "Välj en modell eller kombination att utvärdera.",
+ "suiteBuilderDeleted": "Testsviten har tagits bort",
+ "suiteBuilderCaseCardHint": "Definiera indataprompten och kriterierna för förväntat resultat.",
+ "nextResetUtc": "Nästa återställning (UTC)",
+ "scorecardHint": "Sammanställd andel godkända för alla utvärderingssviter.",
+ "suiteLatestRunsHint": "De senaste utvärderingskörningarna för den här sviten.",
+ "saving": "Sparar",
+ "suiteBuilderCaseModelLabel": "Modell (valfritt)",
+ "evalControlsTitle": "Utvärderingskontroller",
+ "suiteBuilderEditTitle": "Redigera utvärderingssvit",
+ "suiteBuilderCaseStrategyLabel": "Valideringsstrategi",
+ "notifySelectDifferentCompareTarget": "Välj ett annat mål för jämförelsen",
+ "recentRunsHint": "Visar de senaste utvärderingskörningarna. Klicka på en körning för att se detaljerade resultat.",
+ "evalCompareHint": "Jämför valfritt resultaten med ett andra mål.",
+ "suiteBuilderCaseInvalid": "Det här fallet har valideringsfel. Åtgärda dem innan du sparar.",
+ "historyEmpty": "Ingen utvärderingshistorik ännu",
+ "suiteBuilderUpdated": "Sviten har uppdaterats",
+ "resetInterval": "Återställningsintervall",
+ "suiteBuilderCreateTitle": "Skapa utvärderingssvit",
+ "activePeriodSpend": "Utgifter under aktiv period",
+ "evalApiKeyHint": "Välj vilken API-nyckel som ska användas för utvärderingsförfrågningar.",
+ "evalCompareOptional": "Jämför (valfritt)",
+ "suiteBuilderDeleteFailed": "Det gick inte att ta bort sviten",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Valfria systeminstruktioner...",
+ "scorecardCases": "Fall",
+ "runCompletedWithScore": "Utvärderingen slutfördes — {score} % godkända",
+ "suiteBuilderCustomBadge": "Anpassad",
+ "targetSuiteDefaults": "Standardinställningar för sviten",
+ "suiteBuilderDeleteConfirm": "Är du säker på att du vill ta bort den här sviten? Åtgärden kan inte ångras.",
+ "suiteBuilderNameLabel": "Svitnamn",
+ "scorecardSuites": "Sviter",
+ "evalCompareTarget": "Jämförelsemål",
+ "suiteBuilderCaseModelPlaceholder": "t.ex. gpt-4o-mini",
+ "evalControlsHint": "Konfigurera ditt utvärderingsmål och din API-nyckel och kör sedan sviter för att validera modellkvaliteten.",
+ "recentRunsTitle": "Senaste körningar",
+ "suiteBuilderCaseSystemPromptLabel": "Systemprompt",
+ "suiteBuilderCaseExpectedPlaceholder": "t.ex. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "t.ex. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Klistra in det exakta förväntade svaret",
"suiteBuilderCaseExpectedPlaceholderRegex": "t.ex. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Använd ett reguljärt JavaScript-uttryck utan att radbryta snedstreck.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "t.ex. svit för kodkvalitet",
+ "suiteBuilderAddCase": "Lägg till fall",
+ "cancel": "Avbryt",
+ "evalTarget": "Mål",
+ "suiteBuilderCaseNameLabel": "Fallnamn",
+ "weeklyLimitUsd": "Veckogräns (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "t.ex. Skriv en fibonacci-funktion i Python",
+ "suiteBuilderNameRequired": "Svitnamn krävs",
+ "suiteBuilderCaseUserPromptLabel": "Användarprompt",
+ "daily": "Dagligen",
+ "resultErrorLabel": "Fel",
+ "suiteBuilderBuiltInBadge": "Inbyggd",
+ "suiteBuilderCaseCardTitle": "Testfall",
"suiteBuilderDuplicateCase": "Duplicera",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "t.ex. 50.00",
+ "suiteBuilderCaseTagsHint": "Kommaseparerade taggar för att organisera testfall.",
+ "notifyEvalRunFailedWithReason": "Utvärderingen misslyckades: {reason}",
+ "weekly": "Varje vecka",
+ "runEvalRunning": "Kör utvärdering...",
+ "delete": "Ta bort",
+ "resetTimeUtc": "Återställningstid (UTC)",
+ "evalApiKeyAuto": "Automatiskt (använd standardvärde)",
+ "suiteBuilderDescriptionPlaceholder": "Valfri beskrivning av vad den här testsviten testar...",
+ "targetComparisonTitle": "Måljämförelse",
+ "save": "Spara",
+ "suiteBuilderCreated": "Testsviten har skapats",
+ "suiteLatestRuns": "Senaste körningar",
+ "suiteBuilderCaseExpectedLabel": "Förväntat värde",
+ "historyLatency": "Latens",
+ "suiteBuilderCaseTagsPlaceholder": "t.ex. kodning, python",
+ "targetTypeCombo": "Kombination",
+ "scorecardPassed": "Godkänd",
+ "suiteBuilderCaseTagsLabel": "Taggar",
+ "suiteBuilderNewSuite": "Ny testsvit",
+ "notifyEvalLoadFailed": "Det gick inte att läsa in utvärderingsdata",
+ "notConfigured": "Inte konfigurerad",
+ "suiteBuilderCaseNamePlaceholder": "t.ex. Fibonacci-test i Python",
+ "intervalLabel": "Intervall",
+ "suiteBuilderCreateAction": "Skapa testsvit",
+ "suiteBuilderCasesHint": "Varje testfall skickar en prompt och validerar svaret.",
+ "suiteBuilderUpdatedAt": "Uppdaterad",
+ "errorBadge": "Fel",
+ "suiteBuilderCasesTitle": "Testfall",
+ "edit": "Redigera",
+ "monthly": "Varje månad",
+ "suiteBuilderCasesRequired": "Minst ett testfall krävs",
+ "weeklyLimitSummary": "Sammanfattning av veckans budgetgräns",
+ "suiteBuilderDescriptionLabel": "Beskrivning",
+ "targetComparisonHint": "Jämförelse sida vid sida av utvärderingsresultat mellan mål.",
+ "compareCompletedWithScore": "Jämförelsen är slutförd – {score} % godkända",
+ "staleQuotaTooltip": "Den senaste uppdateringen misslyckades – cachelagrade data visas",
"quotaThresholdLabel": "Min kvar",
"quotaCutoffsColumnHelp": "Stoppa förfrågningar när återstående kvot faller till denna procentandel eller lägre.",
"quotaCutoffsButtonDefault": "Standard",
@@ -9741,18 +9752,18 @@
"proxy": "Proxy",
"level": "Nivå",
"directNative": "Direkt (infödd)",
- "combo": "Combo",
+ "combo": "Kombination",
"inputTokens": "jag:",
"outputTokens": "O:"
},
"stats": {
"usageOverview": "Användningsöversikt",
- "outputTokens": "Output Tokens",
+ "outputTokens": "Utdata-token",
"totalCost": "Total kostnad",
"usageByModel": "Användning efter modell",
"usageByAccount": "Användning per konto",
"failedToLoad": "Det gick inte att läsa in användningsstatistik.",
- "tokenHealth": "Token Health",
+ "tokenHealth": "Tokenstatus",
"totalOAuth": "Totalt OAuth",
"healthy": "Frisk",
"warning": "Varning",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Systemmetrik",
"memory": "Minne",
- "memoryShort": "mem",
+ "memoryShort": "minne",
"uptime": "Drifttid",
"ariaLabel": "Systemövervakning",
"title": "Systemövervakning",
@@ -9812,8 +9823,8 @@
"signIn": "Logga in",
"enterPassword": "Ange ditt lösenord för att fortsätta",
"password": "Lösenord",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
+ "unifiedProxy": "Enhetlig AI API-proxy",
+ "unifiedAiApiProxy": "Enhetlig AI API-proxy",
"unifiedAiApiProxyDesc": "Dirigera förfrågningar till flera AI-leverantörer via en enda slutpunkt. Lastbalansering, failover och användningsspårning inbyggd.",
"passwordNotEnabled": "Lösenordsskydd är inte aktiverat",
"loading": "Laddar...",
@@ -9859,7 +9870,7 @@
"backToLogin": "Tillbaka till inloggning",
"forgotPassword": "Glömt lösenordet?",
"continueWithOidc": "Fortsätt med OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Standardlösenord: CHANGEME (om inte INITIAL_PASSWORD har angetts)",
"Authorization": "Auktorisation",
"Content-Disposition": "Innehåll-Disposition",
"waitingForAuthorization": "Väntar på auktorisation...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Väntar på antigravitationstillstånd...",
"waitingForQoderAuthorization": "Väntar på Qoder-auktorisering...",
"exchangingCodeForTokens": "Byter ut kod för tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Inkompatibel Node.js-version",
+ "nodeIncompatibleDesc": "Du kör Node.js {version}, som inte omfattas av OmniRoutes policy för säkra körningsmiljöer. Använd en korrigerad LTS-version av Node.js 20.x eller 22.x.",
+ "nodeIncompatibleFixLabel": "Åtgärd: installera en korrigerad LTS-version av Node.js 22",
+ "nodeIncompatibleHint": "OmniRoute kräver Node.js 22.22.2+ (22.x LTS) eller 24.0.0+ (24.x LTS). Node 24 LTS rekommenderas.",
"resetViaAppDataTitle": "Återställ via App-data",
"resetViaAppDataDescription": "Ta bort inställningsfilen från appdata-katalogen för att återställa ditt lösenord:",
"quitDesktopApp": "Avsluta OmniRoute-skrivbordsappen helt",
@@ -9939,7 +9950,7 @@
"viewOnGithub": "Visa på GitHub",
"powerfulFeatures": "Kraftfulla funktioner",
"featuresSubtitle": "Allt du behöver för att hantera din AI-infrastruktur på ett ställe, byggt för skala.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
+ "featureUnifiedEndpointTitle": "Enhetlig slutpunkt",
"featureUnifiedEndpointDesc": "Få tillgång till alla leverantörer via en enda standard API-URL.",
"featureEasySetupTitle": "Enkel installation",
"featureEasySetupDesc": "Kom igång på några minuter med npx-kommandot.",
@@ -9951,7 +9962,7 @@
"featureOAuthApiKeysDesc": "Hantera autentiseringsuppgifter på ett säkert sätt i ett valv.",
"featureCloudSyncTitle": "Molnsynkronisering",
"featureCloudSyncDesc": "Synkronisera dina konfigurationer mellan enheter direkt.",
- "featureCliSupportTitle": "CLI Support",
+ "featureCliSupportTitle": "CLI-stöd",
"featureCliSupportDesc": "Fungerar med Claude Code, Codex, Cline, Cursor och mer.",
"featureDashboardTitle": "Instrumentpanel",
"featureDashboardDesc": "Visuell instrumentpanel för trafikanalys i realtid.",
@@ -10029,8 +10040,8 @@
"clientCompatibility": "Klientkompatibilitet",
"protocolsToc": "Protokoll",
"apiReference": "API-referens",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Referens för hanterings-API",
+ "managementApiDescription": "Automatiseringsslutpunkter för proxyregister, tilldelning av omfång och migrering av äldre proxyservrar.",
"method": "Metod",
"path": "Väg",
"notes": "Anteckningar",
@@ -10060,7 +10071,7 @@
"quickStartStep4Suffix": "Använd till exempel leverantörsprefix",
"deploySetupTitle": "Installationsguide",
"deploySetupText": "Steg-för-steg-installation, miljökonfiguration och första genomgång för OmniRoute.",
- "deployElectronTitle": "Electron Desktop",
+ "deployElectronTitle": "Electron-skrivbord",
"deployElectronText": "Kör OmniRoute som ett inbyggt skrivbordsprogram på Windows, macOS och Linux.",
"deployDockerTitle": "Hamnarbetare",
"deployDockerText": "Containeriserad distribution med Docker Compose; redo för produktionsstackar och Kubernetes.",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Installera OmniRoute som en progressiv webbapp på Android, iOS och stationära webbläsare.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Kör OmniRoute utan grafiskt gränssnitt på Android via Termux. Öppna kontrollpanelen från din mobila webbläsare.",
"featureRoutingTitle": "Routing för flera leverantörer",
"featureRoutingText": "Dirigera förfrågningar till 30+ AI-leverantörer via en enda OpenAI-kompatibel slutpunkt. Stöder chatt, svar, ljud och bild-API:er.",
"featureCombosTitle": "Kombinationer och balansering",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "Använd OmniRoute som en stabil bas-URL medan du roterar konton eller leverantörskombinationer under.",
"clientKimiBullet2": "Föredra prefixmodeller i kodningsflöden så att reserv- och revisionsspår förblir explicita.",
"clientKimiBullet3": "Använd `/v1/responses` när du vill ha inbyggd routing i Responses-stil för klienter som använder verktyg.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Protokoll: MCP och A2A",
+ "protocolsDescription": "OmniRoute tillhandahåller två operativa protokoll utöver OpenAI-kompatibla API:er: MCP för verktygskörning och A2A för arbetsflöden mellan agenter.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Använd MCP via stdio för att låta klienter identifiera och anropa OmniRoute-verktyg med granskningsinsyn.",
+ "protocolMcpStep1": "Starta MCP-transporten med `omniroute --mcp`.",
+ "protocolMcpStep2": "Konfigurera din MCP-klient att använda stdio-transporten.",
+ "protocolMcpStep3": "Anropa `omniroute_get_health` och `omniroute_list_combos` för att verifiera anslutningen.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Använd A2A JSON-RPC för att skicka uppgifter synkront eller via SSE-strömning.",
+ "protocolA2aStep1": "Läs `/.well-known/agent.json` för agentidentifiering.",
+ "protocolA2aStep2": "Skicka `message/send`- eller `message/stream`-förfrågningar till `POST /a2a`.",
+ "protocolA2aStep3": "Hantera uppgifternas livscykel med `tasks/get` och `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Felsökning av protokoll",
+ "protocolTroubleshooting1": "Om MCP-statusen är offline kontrollerar du att stdio-processen körs och att heartbeat-filen uppdateras.",
+ "protocolTroubleshooting2": "Om A2A-uppgifter förblir i läget `working` granskar du `/api/a2a/tasks/:id` och strömmar händelser för att hitta sluttillståndet.",
+ "protocolTroubleshooting3": "Använd `/dashboard/mcp` och `/dashboard/a2a` för driftkontroller och granskningsinsyn.",
"endpointChatNote": "OpenAI-kompatibel chattslutpunkt (standard).",
"endpointResponsesNote": "Responses API-slutpunkt (Codex, o-serien).",
"endpointModelsNote": "Modellkatalog för alla anslutna leverantörer.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Omskrivningshjälp för klienter utan /v1.",
"endpointRewriteResponsesNote": "Skriv om hjälpare för svar utan /v1.",
"endpointRewriteModelsNote": "Omskrivningshjälp för modellupptäckt utan /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Lista sparade proxyobjekt i registret (stöder sidnumrering).",
+ "mgmtProxiesCreateNote": "Skapa ett återanvändbart proxyobjekt i registret.",
+ "mgmtProxiesHealthNote": "Hämta 24-timmars/rullande hälsomätvärden per sparad proxy från proxyloggar.",
+ "mgmtProxiesBulkAssignNote": "Tilldela eller ta bort en proxy för flera omfångs-ID:n i en enda begäran.",
+ "mgmtAssignmentsListNote": "Lista proxytilldelningar efter omfång, scope_id eller proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Tilldela eller ta bort proxy för globalt omfång, leverantörs-, konto- eller kombinationsomfång.",
+ "mgmtLegacyMigrationNote": "Importera äldre proxyConfig-mappningar till registertilldelningar.",
"modelPrefixesDescriptionStart": "Använd leverantörsprefixet före modellnamnet för att dirigera till en specifik leverantör. Exempel:",
"modelPrefixesDescriptionEnd": "rutter till GitHub Copilot.",
"provider": "Leverantör",
@@ -10197,7 +10208,7 @@
"mcpToolsDescription": "OmniRoute exponerar {count} verktyg via Model Context Protocol för agentorkestrering.",
"mcpToolsCount": "{count} verktyg",
"mcpToolsToc": "MCP-verktyg",
- "mcpToolsRoutingTitle": "Routing & Discovery",
+ "mcpToolsRoutingTitle": "Routning och identifiering",
"mcpToolsRoutingDesc": "Hälsokontroller, kombinationshantering, kvotövervakning, kostnadsrapportering och modellkatalogåtkomst.",
"mcpToolsOperationsTitle": "Verksamhet & Strategi",
"mcpToolsOperationsDesc": "Ruttsimulering, budgetvakter, strategibyte, resiliensprofiler och leverantörsmått.",
@@ -10211,7 +10222,7 @@
"mcpToolsMemoryDesc": "Sök, lägg till och rensa beständiga konversationsminnesposter.",
"mcpToolsSkillsTitle": "Färdigheter",
"mcpToolsSkillsDesc": "Lista, aktivera, exekvera och övervaka anpassade färdighetskörningar.",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "Automatisk kombination",
"featureAutoComboText": "Skapa automatiskt optimerade kombinationer baserat på dina anslutna leverantörer, användningsmönster och modellmöjligheter.",
"featureSearchTitle": "Webbsökning",
"featureSearchText": "Integrerad webbsökning med 5 leverantörer (Serper, Brave, Exa, Tavily, Perplexity) inklusive analys och kostnadsspårning.",
@@ -10239,7 +10250,7 @@
"homeSearchHint": "Tryck på Ctrl K för att söka i dokumentationen",
"featuredQuickStartTitle": "Snabbstart",
"featuredQuickStartDescription": "Få OmniRoute att fungera på 3 minuter",
- "featuredAutoComboTitle": "Auto-Combo Guide",
+ "featuredAutoComboTitle": "Guide för automatisk kombination",
"featuredAutoComboDescription": "Låt OmniRoute välja den bästa AI:n för dig",
"featuredProvidersTitle": "Leverantörsguide",
"featuredProvidersDescription": "Anslut AI-leverantörer på några minuter",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute är programvara med öppen källkod. Du är fri att inspektera, modifiera och distribuera den enligt villkoren i dess licens."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-agenter",
+ "description": "Identifiera installerade CLI-agenter på ditt system. Lägg till anpassade agenter för automatisk identifiering.",
+ "refresh": "Uppdatera",
+ "installed": "Installerad",
+ "notFound": "Hittades inte",
+ "builtIn": "Inbyggd",
+ "custom": "Anpassad",
+ "remove": "Ta bort",
+ "addCustomAgent": "Lägg till anpassad agent",
+ "addCustomAgentDesc": "Registrera valfritt CLI-verktyg för identifiering. Det genomsöks automatiskt vid uppdatering.",
+ "agentName": "Agentnamn",
+ "binaryName": "Binärfilens namn",
+ "versionCommand": "Versionskommando",
+ "spawnArgs": "Startargument",
+ "addAgent": "Lägg till agent",
+ "scanning": "Söker efter CLI-agenter i systemet...",
+ "opencodeIntegration": "OpenCode-integration",
+ "opencodeDetected": "opencode {version} identifierades",
+ "opencodeDesc": "Generera en färdig {configFile} med din OmniRoute-bas-URL och alla tillgängliga modeller – placera den i projektets rotkatalog och kör {command}.",
+ "downloadConfig": "Ladda ned {file}",
+ "downloaded": "Nedladdad!",
+ "setupGuideTitle": "Installationsguide",
+ "openCliTools": "Öppna CLI-verktyg",
+ "setupGuideDetectCliTitle": "Identifiera installerade CLI-verktyg",
+ "setupGuideDetectCliDesc": "Klicka på Uppdatera efter att du har installerat eller uppdaterat ett CLI-verktyg så att OmniRoute kan söka igenom binärfiler och versioner på nytt.",
+ "setupGuideCustomAgentTitle": "Registrera anpassad binärfil",
+ "setupGuideCustomAgentDesc": "Använd Lägg till anpassad agent när ditt CLI-verktyg inte finns i den inbyggda listan. Ange binärfilens namn och versionskommando.",
+ "setupGuideCommandMissingTitle": "Åtgärda ”command not found”",
+ "setupGuideCommandMissingDesc": "Kontrollera att CLI-kommandot finns i PATH, öppna en ny terminalsession och kör Uppdatera igen.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10387,7 +10398,7 @@
"flowDiagramClientDesc": "SDK, API eller uppströmstjänst",
"flowDiagramOmniRoute": "OmniRoute",
"flowDiagramOmniRouteDesc": "Tar emot begäran och väljer mål",
- "flowDiagramSpawn": "Spawn Process",
+ "flowDiagramSpawn": "Starta process",
"flowDiagramSpawnDesc": "Startar CLI binär via stdio",
"flowDiagramCli": "CLI-agent",
"flowDiagramCliDesc": "Processer med egen auth/modell",
@@ -10469,7 +10480,7 @@
"statusFailed": "Misslyckades",
"statusCancelled": "Avbruten",
"repositoryName": "Förvaringsnamn",
- "repositoryUrl": "Repository URL",
+ "repositoryUrl": "Repository-URL",
"branch": "Filial",
"agentDescriptions": {
"jules": "Googles autonoma kodningsagent",
@@ -10488,12 +10499,12 @@
},
"templateNames": {
"simple-chat": "Enkel chatt",
- "streaming": "Streaming",
+ "streaming": "Strömning",
"system-prompt": "Systemprompt",
"thinking": "Tänker",
"tool-calling": "Verktygsanrop",
"multi-turn": "Flervarv",
- "vision": "Vision",
+ "vision": "Bildanalys",
"schema-coercion": "Schema tvång"
},
"templateDescriptions": {
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Cachehantering",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Uppdatera",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Minnesposter",
+ "memoryEntriesSub": "LRU i minnet",
+ "dbEntries": "Databasposter",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Cacheträffar",
+ "cacheHitsSub": "av totalt {total}",
+ "tokensSaved": "Sparade token",
+ "tokensSavedSub": "Uppskattat från träffar",
+ "hitRate": "Träfffrekvens",
+ "performance": "Cacheprestanda",
+ "autoRefresh": "Uppdateras automatiskt var {seconds}:e sekund",
+ "hits": "Träffar",
+ "misses": "Missar",
+ "total": "Totalt",
+ "behavior": "Cachebeteende",
+ "behaviorDeterministic": "Endast icke-strömmande begäranden med temperature=0 cachelagras.",
+ "behaviorBypass": "Kringgå med headern {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Standard-TTL: 30 minuter. Konfigurera via {envVar}.",
+ "idempotency": "Idempotenslager",
+ "activeDedupKeys": "Aktiva dedupliceringsnycklar",
+ "dedupWindow": "Dedupliceringsfönster",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Det gick inte att rensa cachen.",
+ "unavailable": "Cachen är inte tillgänglig",
+ "unavailableDesc": "Det gick inte att hämta cachestatistik. Kontrollera att servern körs.",
"loadingCacheAria": "Laddar cache",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Promptcache (hos leverantören)",
+ "semanticCache": "Semantisk cache",
+ "promptCacheSectionDesc": "Visar aktivitet för promptcachelagring hos leverantören från användningshistoriken, så att du kan se var cachestyrning är aktiv och hur mycket indata som återanvänds.",
+ "promptTrendDesc": "Begärandevolym per timme, cachetäckning och läsvolym från cachen under de senaste 24 timmarna.",
+ "cachedRequests": "Cachelagrade begäranden",
+ "cachedRequests24h": "Cachelagrade begäranden (24 h)",
+ "cacheHitRate": "Cacheträfffrekvens",
+ "cacheRate": "Cachefrekvens",
+ "cacheRateDesc": "av det totala antalet begäranden",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Mätvärden för promptcache",
+ "withCacheControl": "Med cachekontroll",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Återanvändningsgrad för cache",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
+ "estCostSaved": "Uppskattad kostnadsbesparing",
+ "lastUpdated": "Senast uppdaterad",
+ "hoursTracked": "spårade timmar",
+ "busiestHour": "Mest aktiva timme",
+ "peakCacheRate": "Högsta cachefrekvens",
+ "trendHour": "Timme",
+ "activityVolume": "Aktivitet",
+ "requestsShort": "förfrågningar",
"inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "cachedShort": "Cachelagrat",
+ "writeShort": "Skrivning",
+ "resetting": "Återställer...",
+ "resetMetrics": "Återställ mätvärden",
+ "byProvider": "Fördelning per leverantör",
+ "providerCacheRateDesc": "Varje leverantör visar totalt antal indatatoken, cachelästa token och cacheskrivna token så att du kan verifiera återanvändningsgraden mot de faktiska totalvärdena.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Förfrågningar",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Cachetrend (24 h)",
+ "peakCached": "Högsta cachelagring",
+ "cached": "Cachelagrat",
+ "overview": "Översikt",
"tableProvider": "Leverantör",
"tableModel": "Modell",
"performanceTitle": "Prestanda",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoutes egen deterministiska svarscache. När den är aktiverad kan upprepade icke-strömmande förfrågningar med temperature=0 hanteras lokalt utan att den överordnade leverantören kontaktas.",
+ "semanticCacheDisabledDesc": "Semantisk cache är inaktiverad. OmniRoute hoppar över lokal återanvändning av svar tills du aktiverar den igen i Inställningar.",
+ "semanticEntriesDesc": "Beständiga semantiska cacheposter som för närvarande lagras i SQLite. Aktivitet i leverantörens promptcache visas inte här.",
+ "searchEntries": "Sök poster...",
+ "search": "Sök",
+ "loading": "Läser in...",
+ "entriesLoadError": "Det gick inte att läsa in poster i den semantiska cachen.",
+ "noEntries": "Inga cacheposter hittades",
+ "noPromptCacheData": "Ingen aktivitet i leverantörens promptcache har registrerats ännu.",
+ "noTrendData": "Ingen aktivitet i promptcachen har registrerats under de senaste 24 timmarna.",
+ "signature": "Signatur",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Skapad",
+ "expires": "Upphör",
+ "actions": "Åtgärder",
+ "deduplicatedRequests": "Deduplicerade förfrågningar",
+ "savedCalls": "Sparade API-anrop",
+ "totalProcessed": "Totalt antal behandlade förfrågningar",
+ "disabled": "Inaktiverad",
+ "totalRequests": "Totalt antal förfrågningar",
"reasoningCache": "Resonemang Replay",
"reasoningCacheDesc": "Bevarar modelltänkande för verktygsanropsflöden med flera varv",
"reasoningEntries": "Aktiva poster",
@@ -10665,16 +10676,16 @@
"minutesAgo": "{minutes}m sedan",
"hoursAgo": "{hours}t sedan",
"daysAgo": "{days}d sedan",
- "entries": "Entries"
+ "entries": "Poster"
},
"proxyConfigModal": {
"levelGlobal": "Global",
"levelProvider": "Leverantör",
- "levelCombo": "Combo",
+ "levelCombo": "Kombination",
"levelKey": "Nyckel",
"levelDirect": "Direkt (ingen proxy)",
"titleGlobal": "Global proxykonfiguration",
- "titleLevel": "{level} Proxy — {label}",
+ "titleLevel": "{level}-proxy — {label}",
"loading": "Laddar proxykonfiguration...",
"inheritingFrom": "Ärver från",
"source": "Källa",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Anslut Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Logga in med Cursor",
+ "tabImport": "Importera token",
+ "loginDescription": "Öppnar Cursors webbläsarinloggning. Fungerar i Docker — godkänn i webbläsaren på din värddator och återvänd sedan hit.",
+ "loginWithCursor": "Logga in med Cursor",
+ "startingLogin": "Startar…",
+ "waitingApproval": "Väntar på godkännande av Cursor-inloggningen…",
+ "openUrlHint": "Om webbläsaren inte öppnades:",
+ "openLoginLink": "Öppna inloggningssidan",
+ "cancelLogin": "Avbryt inloggning",
"autoDetecting": "Identifierar tokens automatiskt...",
"readingFromCursor": "Läser från Cursor IDE eller cursor-agent",
"tokensAutoDetected": "Tokens har framgångsrikt identifierats automatiskt från Cursor IDE!",
"cursorNotDetected": "Markör-IDE upptäcktes inte. Vänligen klistra in din token manuellt.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Kör du i Docker? Använd helst Logga in med Cursor. Automatisk import från IDE och cursor-agent är vanligtvis inte tillgängliga inuti containern. Se docs/providers/CURSOR-DOCKER.md.",
+ "accessToken": "Åtkomsttoken",
+ "refreshToken": "Uppdateringstoken",
+ "refreshTokenPlaceholder": "Valfritt — aktiverar automatisk tokenuppdatering",
"required": "*",
"accessTokenPlaceholder": "Åtkomsttoken kommer att fyllas i automatiskt...",
"machineId": "Maskin-ID",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Automatisk identifiering av tokens misslyckades",
"errorEnterToken": "Vänligen ange åtkomsttoken",
"errorImportFailed": "Importen misslyckades",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Det gick inte att starta Cursor-inloggningen",
+ "errorLoginPoll": "Cursor-inloggningen misslyckades",
+ "errorLoginTimeout": "Tidsgränsen för Cursor-inloggningen överskreds — försök igen"
},
"pricingModal": {
"title": "Priskonfiguration",
@@ -10839,9 +10850,9 @@
"selectProxy": "Välj {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Importera äldre data",
+ "bulkAssign": "Masstilldela",
+ "addProxy": "Lägg till proxy",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,15 +10861,15 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Testa",
+ "edit": "Redigera",
+ "delete": "Ta bort",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
"labelType": "Typ",
"labelFamily": "IP-familj",
- "familyAuto": "Auto (dual-stack)",
+ "familyAuto": "Automatiskt (dual-stack)",
"familyIpv4": "Endast IPv4",
"familyIpv6": "Endast IPv6",
"familyHint": "Utgående adressfamilj. Auto behåller dual-stack; IPv4/IPv6 låser denna proxy till den familjen (förhindrar en v4-läcka under en proxy med endast IPv6).",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Misslyckades",
"successRate": "{rate} % framgång",
"avgLatency": "{latency} ms i genomsnitt",
"assignmentsCount": "{count} uppdrag",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Reparera",
"relayAuthMissing": "autentisering saknas",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Rotationsstrategi",
"poolStrategyHint": "round-robin växlar medlemmar i ordning; random väljer enhetligt; sticky behåller en medlem under ett tidsfönster; latency-optimized väljer den snabbaste baserat på loggar.",
"poolStrategyFailed": "Misslyckades med att uppdatera rotationsstrategin",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Turordning",
"strategyRandom": "Slumpmässig",
- "strategySticky": "Sticky",
+ "strategySticky": "Beständig",
"strategyLatency": "Latensoptimerad",
"poolMembersLabel": "Poolmedlemmar ({count})",
"poolNoMembers": "Inga proxyservrar i denna pool ännu.",
+ "poolEgressObservation": "{exits, plural, one {# utgång} other {# utgångar}} används av {connections, plural, one {# anslutning} other {# anslutningar}} · upp till {max} på en utgång · senaste {hours} h",
+ "poolEgressObservationEmpty": "Ingen trafik observerades under de senaste {hours} h",
+ "poolEgressObservationHint": "Beräknat från proxyloggen under tidsfönstret: distinkta utgående IP-adresser som observerats för medlemmarna i denna pool samt de OmniRoute-anslutningar som använde dem. ”På en utgång” avser hela tidsfönstret, inte samma tidpunkt. 429-spärren per IP pausar endast anslutningar inom samma leverantörsfamilj.",
"poolRemove": "Ta bort",
"poolRemoveFailed": "Misslyckades med att ta bort proxyn från poolen",
"poolAddLabel": "Lägg till en proxy",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Slutpunkt",
+ "provider": "Leverantör",
+ "model": "Modell",
"accountKey": "Account Key",
"autoAccounts": "Auto ({count} konton)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Skicka",
+ "cancel": "Avbryt",
+ "audioFile": "Ljudfil",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Rensa alla",
+ "request": "Begäran",
+ "response": "Svar",
+ "transcription": "Transkription",
+ "copy": "Kopiera",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Genererade {count} bilder",
"generatedImage": "Genererad bild {index}",
- "save": "Save",
+ "save": "Spara",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Svar",
"completions": "Kompletteringar",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Inbäddningar",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Modereringar",
- "rerank": "Rerank",
+ "rerank": "Omrangordna",
"search": "Search",
"webFetch": "Webbhämtning"
},
"conversationalChat": "Konversationschatt",
"clearChat": "Rensa chatten",
"typeMessagePlaceholder": "Skriv ett meddelande... (Skift+Enter för ny rad)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Chatt",
+ "tabCompare": "Jämför",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Bygg",
+ "configPane": "Konfiguration",
+ "systemPrompt": "Systemprompt",
+ "systemPromptPlaceholder": "Du är en hjälpsam assistent.",
+ "modelPlaceholder": "t.ex. openai/gpt-4o",
+ "endpointLabel": "Slutpunkt",
+ "parametersLabel": "Parametrar",
+ "collapseConfig": "Fäll ihop konfigurationspanelen",
+ "expandConfig": "Fäll ut konfigurationspanelen",
+ "temperature": "Temperatur",
+ "maxTokens": "Max antal tokens",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Närvarostraff",
+ "frequencyPenalty": "Frekvensstraff",
"reasoningLabel": "Resonemang",
"thinking": "Tänkande",
"effort": "Ansträngning",
"effortDefault": "Standard",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Slumpmässigt (lämna tomt)",
+ "presetsLabel": "Förinställningar",
+ "loadPreset": "Läs in förinställning",
+ "savePreset": "Spara förinställning",
+ "noPresets": "Inga förinställningar",
+ "presetNamePlaceholder": "Namn på förinställning",
+ "savingPreset": "Sparar…",
+ "nameRequired": "Namn krävs",
+ "failedToSavePreset": "Det gick inte att spara förinställningen",
+ "improvePrompt": "Förbättra prompt",
+ "improvingPrompt": "Förbättrar…",
+ "improvePromptTitle": "Förbättra din prompt med AI",
+ "setModelFirst": "Välj en modell först",
"setModelInConfigFirst": "Ställ in en modell i konfigurationspanelen först.",
"improvePromptFailed": "Misslyckades med att förbättra prompten.",
"improvePromptAria": "Förbättra prompten med AI",
"confirmImprovePrompt": "Bekräfta förbättring av prompt",
"improvePromptDescription": "Detta skickar din nuvarande systemprompt till --permission-mode auto chenye jibu la kuruhusu la kisanii ili njia mbadala zisishindwe kufungwa. Imezimwa kwa chaguomsingi.",
"classifierCompatCycle": "Mzunguko: imezimwa → kiotomatiki → kila wakati",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "Tengeneza upya ~/.codex/*.config.toml baada ya ugunduzi wa muundo.",
"claudeProfiles": "Wasifu wa Claude Code",
"claudeProfilesDescription": "Tengeneza upya kila ~/.claude/profiles/…/settings.json baada ya ugunduzi wa muundo.",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "Hakuna watoa huduma amilifu",
+ "noActiveProvidersDesc": "Tafadhali ongeza na uunganishe watoa huduma kwanza ili kusanidi zana za CLI.",
+ "mapModels": "Pangia Miundo",
+ "testConnection": "Jaribu Muunganisho",
+ "connectionStatus": "Hali ya Muunganisho",
+ "configureEndpoint": "Sanidi Endpoint",
+ "instructions": "Maelekezo",
+ "modelMapping": "Upangaji wa Miundo",
"reasoningEffort": "Juhudi za kufikiri za {model}",
"effortNone": "Hakuna",
"effortLow": "Chini",
@@ -2738,67 +2742,67 @@
"effortHigh": "Juu",
"effortExtraHigh": "Juu sana",
"effortMax": "Upeo",
- "effortUltra": "Ultra",
- "wireApi": "Wire API",
+ "effortUltra": "Bora zaidi",
+ "wireApi": "API ya Wire",
"modelAliases": "Majina mbadala ya modeli",
"addModel": "Ongeza modeli",
"routeModelPlaceholder": "Elekeza {model} kwenye...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "URL ya Msingi",
+ "apiKey": "Ufunguo wa API",
+ "configured": "Imesanidiwa",
+ "notConfigured": "Haijasanidiwa",
+ "notInstalled": "Haijasakinishwa",
+ "custom": "Maalum",
+ "unknown": "Haijulikani",
+ "lastSavedAt": "Ilihifadhiwa mwisho: {date}",
+ "never": "Kamwe",
+ "justNow": "sasa hivi",
+ "minutesAgoShort": "dakika {count} zilizopita",
+ "hoursAgoShort": "saa {count} zilizopita",
+ "daysAgoShort": "siku {count} zilizopita",
+ "monthsAgoShort": "miezi {count} iliyopita",
+ "yearsAgoShort": "miaka {count} iliyopita",
+ "runtimeCheckFailed": "Ukaguzi wa mazingira ya utekelezaji umeshindwa",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "Usanidi umehifadhiwa.",
+ "failedToSave": "Imeshindwa kuhifadhi usanidi.",
+ "noApiKeysCreateOne": "Hakuna funguo za API - Unda moja kwenye ukurasa wa Keys",
+ "defaultOmnirouteKey": "sk_omniroute (chaguomsingi)",
+ "selectModel": "Chagua Muundo",
+ "selectModelForAlias": "Chagua muundo wa {alias}",
+ "selectModelForTool": "Chagua Muundo kwa ajili ya {tool}",
+ "select": "Chagua",
+ "clear": "Futa",
+ "comingSoon": "Inakuja hivi karibuni",
+ "checkingRuntime": "Inakagua hali ya mazingira ya utekelezaji...",
+ "guideOnlyIntegration": "Muunganisho wa mwongozo pekee (mazingira ya utekelezaji ya ndani hayahitajiki)",
+ "cliRuntimeDetected": "Mazingira ya utekelezaji ya CLI yamegunduliwa na yako tayari",
+ "cliFoundNotRunnable": "CLI imepatikana lakini haiwezi kuendeshwa{reason}",
+ "cliRuntimeNotDetected": "Mazingira ya utekelezaji ya CLI hayajagunduliwa",
+ "binary": "Faili ya kutekelezwa",
+ "configPath": "Njia ya usanidi",
+ "configPathShort": "Usanidi",
+ "failedCheckRuntimeStatus": "Imeshindwa kukagua hali ya mazingira ya utekelezaji.",
+ "copy": "Nakili",
+ "copied": "Imenakiliwa",
+ "copyConfig": "Nakili Usanidi",
+ "saveConfig": "Hifadhi Usanidi",
+ "selectionSaved": "Chaguo limehifadhiwa",
+ "guide": "Mwongozo",
+ "detected": "Imegunduliwa",
+ "notReady": "Haiko tayari",
+ "active": "Inatumika",
+ "inactive": "Haitumiki",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM imeanzishwa kwa mafanikio!",
+ "mitmStopped": "MITM imesimamishwa kwa mafanikio!",
+ "failedStart": "Imeshindwa kuanzisha MITM",
+ "failedStop": "Imeshindwa kusimamisha MITM",
+ "saveMappings": "Hifadhi Ulinganishaji",
+ "mappingsSaved": "Ulinganishaji umehifadhiwa!",
+ "failedSaveMappings": "Imeshindwa kuhifadhi ulinganishaji",
"reasoningEffortDefault": "Chaguo-msingi",
"reasoningEffortHint": "Chaguo-msingi huhifadhi juhudi za kufikiri zilizotumwa na wakala",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "Juu",
"xhigh": "XJuu"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "Jinsi inavyofanya kazi:",
+ "antigravityHowWorksDesc": "Antigravity hutuma maombi kwenye endpoint ya Google. MITM huyanasa na kuyaelekeza upya kwa OmniRoute.",
+ "antigravityStep1": "1. Anzisha MITM ili kuelekeza maombi kupitia OmniRoute.",
+ "antigravityStep2Prefix": "2. Ongeza",
+ "antigravityStep2Suffix": "kwenye faili yako ya hosts kama 127.0.0.1.",
+ "antigravityStep3": "3. Fungua Antigravity na maombi yatapitishwa kupitia proksi.",
+ "mitmHowWorksDesc": "{toolName} hutuma maombi kwenye endpoint ya mtoa huduma wake. MITM huyanasa na kuyaelekeza upya kwa OmniRoute.",
+ "mitmStep1": "1. Anzisha MITM ili kuelekeza maombi kupitia OmniRoute.",
+ "mitmStep2Prefix": "2. Ongeza",
+ "mitmStep2Suffix": "kwenye faili yako ya hosts kama 127.0.0.1.",
+ "mitmStep3": "3. Fungua {toolName} na maombi yatapitishwa kupitia proksi.",
+ "sudoPasswordRequiredTitle": "Nenosiri la Sudo Linahitajika",
+ "sudoPasswordHint": "Nenosiri la msimamizi linahitajika ili kurekebisha faili ya hosts na mipangilio ya proksi ya mfumo.",
+ "enterSudoPassword": "Weka nenosiri la sudo",
+ "sudoPasswordRequiredError": "Nenosiri la sudo linahitajika.",
+ "cancel": "Ghairi",
+ "confirm": "Thibitisha",
+ "settingsApplied": "Mipangilio imetekelezwa kwa mafanikio!",
+ "failedApplySettings": "Imeshindikana kutekeleza mipangilio",
+ "settingsReset": "Mipangilio imewekwa upya kwa mafanikio!",
+ "failedResetSettings": "Imeshindikana kuweka upya mipangilio",
+ "backupRestored": "Nakala rudufu imerejeshwa!",
+ "failedRestore": "Imeshindikana kurejesha",
+ "checkingCli": "Inakagua CLI ya {tool}...",
+ "cliNotRunnable": "CLI ya {tool} imesakinishwa lakini haiwezi kuendeshwa",
+ "cliNotInstalled": "CLI ya {tool} haijasakinishwa",
+ "cliNotDetected": "CLI ya {tool} haijatambuliwa",
+ "cliDetectedReady": "CLI ya {tool} imetambuliwa na iko tayari",
+ "cliFoundFailedHealthcheck": "CLI ya {tool} ilipatikana lakini haikufaulu ukaguzi wa utendaji{reason}.",
+ "installCliPrompt": "Tafadhali sakinisha CLI ya {tool} ili kutumia kipengele hiki.",
+ "installCodexPrompt": "Tafadhali sakinisha Codex CLI ili kutumia kipengele cha kutekeleza kiotomatiki.",
+ "hide": "Ficha",
+ "howToInstall": "Jinsi ya Kusakinisha",
+ "installationGuide": "Mwongozo wa Usakinishaji",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "Baada ya kusakinisha, endesha",
+ "toVerify": "ili kuthibitisha.",
+ "current": "Ya sasa",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "Weka upya kuwa chaguomsingi",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "Tekeleza",
+ "reset": "Weka upya",
+ "manualConfig": "Usanidi wa Mkono",
+ "backups": "Nakala Rudufu",
+ "configBackups": "Nakala Rudufu za Usanidi",
+ "noBackupsYet": "Bado hakuna nakala rudufu. Nakala rudufu huundwa kiotomatiki kabla ya kila utekelezaji au uwekaji upya.",
+ "restore": "Rejesha",
+ "backupRestoredReloading": "Nakala rudufu imerejeshwa! Inapakia upya hali...",
+ "failedRestoreBackup": "Imeshindikana kurejesha nakala rudufu",
+ "applied": "Imetekelezwa!",
+ "failed": "Imeshindikana",
+ "resetDone": "Weka upya!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute imesanidiwa kama mtoa huduma anayeoana na OpenAI",
+ "provider": "Mtoa huduma",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "Watoa huduma",
+ "auth": "Uthibitishaji",
+ "noApiKeysAvailable": "Hakuna funguo za API zinazopatikana",
+ "usingDefaultOmniroute": "Inatumia chaguo-msingi: sk_omniroute",
+ "updateConfig": "Sasisha Usanidi",
+ "applyConfig": "Tekeleza Usanidi",
+ "noBackupsAvailable": "Hakuna nakala rudufu zinazopatikana.",
+ "profileSaved": "Wasifu \"{name}\" umehifadhiwa!",
+ "failedSaveProfile": "Imeshindwa kuhifadhi wasifu",
+ "profileActivated": "Wasifu umeamilishwa!",
+ "failedActivateProfile": "Imeshindwa kuamilisha wasifu",
+ "profiles": "Wasifu",
+ "savedProfiles": "Wasifu Uliohifadhiwa",
+ "noProfilesYet": "Bado hakuna wasifu uliohifadhiwa. Hifadhi usanidi wa sasa kama wasifu hapa chini.",
+ "activate": "Amilisha",
+ "deleteProfile": "Futa wasifu",
+ "profileNamePlaceholder": "Jina la wasifu (k.m. Akaunti Binafsi)",
+ "saveCurrent": "Hifadhi Usanidi wa Sasa",
+ "codexAuthNotePrefix": "Codex hutumia",
+ "codexAuthNoteMiddle": "pamoja na",
+ "codexAuthNoteSuffix": "Bofya \"Tekeleza\" ili kusanidi kiotomatiki.",
+ "claudeManualConfiguration": "Claude CLI - Usanidi wa Mkono",
+ "codexManualConfiguration": "Codex CLI - Usanidi wa Mkono",
+ "droidManualConfiguration": "Factory Droid - Usanidi wa Mkono",
+ "openClawManualConfiguration": "Open Claw - Usanidi wa Mkono",
+ "clineManualConfiguration": "Usanidi wa Mkono wa Cline",
+ "kiloManualConfiguration": "Usanidi wa Mkono wa Kilo Code",
+ "whenToUseLabel": "Wakati wa kutumia",
+ "openToolDocs": "Fungua nyaraka za zana",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "Tumia unapotaka mtiririko thabiti wa kazi wa kupanga na urekebishaji mkubwa wa muda mrefu wa faili nyingi ukitumia Claude Code.",
+ "codex": "Tumia wakati timu yako imesanifishwa kutumia mitiririko ya OpenAI Codex CLI na uthibitishaji unaotegemea wasifu.",
+ "droid": "Tumia unapohitaji wakala mwepesi wa terminal unaolenga uandishi wa msimbo wa haraka na mizunguko ya utekelezaji wa amri.",
+ "openclaw": "Tumia unapotaka wakala wa uandishi wa msimbo wa mtindo wa Open Claw lakini anayeelekezwa kupitia sera za OmniRoute.",
+ "cline": "Tumia unaposanidi mawakala wa uandishi wa msimbo ndani ya vihariri na unataka usanidi unaoongozwa kwa kutumia miundo ya OmniRoute.",
+ "kilo": "Tumia wakati mtiririko wako wa kazi unategemea amri za Kilo Code na uhariri wa haraka wa hatua kwa hatua.",
+ "cursor": "Tumia unapoandika msimbo katika Cursor na unahitaji miundo maalum inayo-oana na OpenAI kupitia OmniRoute.",
+ "continue": "Tumia unapoendesha Continue katika IDE na unahitaji usanidi wa mtoa huduma unaohamishika unaotegemea JSON.",
+ "opencode": "Tumia unapopendelea uendeshaji wa mawakala unaotegemea terminali na otomatiki iliyoratibiwa kupitia OpenCode.",
+ "kiro": "Tumia unapounganisha Kiro na kudhibiti uelekezaji wa modeli kutoka sehemu moja kupitia OmniRoute.",
+ "windsurf": "Tumia unapotaka IDE inayotanguliza AI, huku modeli za Codeium/Windsurf zikielekezwa kupitia OmniRoute.",
+ "antigravity": "Tumia wakati trafiki ya Antigravity/Kiro lazima inaswe kupitia MITM na kuelekezwa kwenye OmniRoute.",
+ "copilot": "Tumia unapotaka UX ya mtindo wa gumzo la Copilot huku ukitekeleza matumizi ya funguo na kanuni za uelekezaji za OmniRoute.",
+ "amp": "Tumia unapotaka mtiririko wa kazi wa mkato wa Amp lakini bado unahitaji utekelezaji wa lakabu na kanuni za uelekezaji za OmniRoute.",
+ "hermes": "Tumia unapohitaji msaidizi mwepesi wa AI unaotegemea terminali kwa kazi za haraka.",
"hermes-agent": "Tumia unapohitaji Hermes Agent (kutoka Nousresearch) ikiwa na modeli za chaguo-msingi, ugawaji majukumu, uoni na modeli saidizi zilizoelekezwa kupitia OmniRoute.",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "Tumia kwa utekelezaji maalum wa zana au usanidi wa jumla unaooana na OpenAI."
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "Google Antigravity IDE yenye MITM",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "Wakala wa uandishi wa kodi wa xAI Grok Build TUI mwenye usaidizi wa mtoa huduma maalum",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Msaidizi wa AI wa Factory Droid",
+ "openclaw": "Msaidizi wa AI wa Open Claw",
+ "cline": "CLI ya Msaidizi wa Uandishi wa Msimbo wa AI wa Cline",
+ "kilo": "CLI ya Msaidizi wa AI wa Kilo Code",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Msaidizi wa AI wa Continue",
+ "opencode": "Wakala wa uandishi wa msimbo wa AI wa OpenCode (Terminali)",
+ "kiro": "Amazon Kiro — IDE inayoendeshwa na AI",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "CLI ya msaidizi wa uandishi wa msimbo wa Sourcegraph Amp",
+ "hermes": "Msaidizi wa Terminali wa AI wa Hermes",
"hermes-agent": "Hermes Agent (kutoka Nousresearch) - AI ya hali ya juu ya terminal yenye usaidizi wa modeli nyingi (ugawaji majukumu, uoni, mgandamizo, n.k.)",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "Kizalishaji cha usanidi wa CLI au SDK ya jumla inayooana na OpenAI",
"aider": "CLI ya uandishi wa kodi wa pamoja ya Aider AI yenye URL ya msingi inayooana na OpenAI",
"forge": "CLI ya wakala wa uandishi wa kodi wa ForgeCode yenye mtoa huduma maalum",
"cursor-cli": "Cursor Agent CLI katika hali ya wakala ya headless",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI ya wakala anayejitegemea wa uandishi wa kodi wa Open Interpreter",
"omp": "Wakala wa uandishi wa kodi wa terminal wa Oh My Pi",
"letta": "Wakala wa Letta CLI mwenye kumbukumbu ya kudumu na matumizi ya zana",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — mfumo wa uandishi wa msimbo wa RLM unaojiboresha wenye usaidizi wa watoa huduma wanaooana na OpenAI",
"warp": "Terminal ya Warp AI yenye usaidizi wa mtoa huduma maalum",
"agent-deck": "Mratibu wa mawakala wengi wa Agent Deck",
"5dive": "5dive — kundi la mawakala wa uandishi wa msimbo unaojipangisha; wasifu mmoja wa auth huwaelekeza wote kwa OmniRoute"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "Inahitaji akaunti ya Cursor Pro ili kutumia kipengele hiki.",
+ "1": "Cursor huelekeza maombi kupitia seva yake yenyewe, kwa hivyo endpoint ya ndani haitumiki. Tafadhali washa Cloud Endpoint katika Settings."
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "Fungua Settings",
+ "desc": "Nenda kwenye Settings -> Models"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "Washa OpenAI API",
+ "desc": "Washa chaguo la \"OpenAI API key\""
},
"3": {
- "title": "Base URL"
+ "title": "URL ya Msingi"
},
"4": {
- "title": "API Key"
+ "title": "Ufunguo wa API"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "Ongeza Modeli Maalum",
+ "desc": "Bofya \"View All Model\" -> \"Add Custom Model\""
},
"6": {
- "title": "Select Model"
+ "title": "Chagua Modeli"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "Fungua Usanidi",
+ "desc": "Fungua faili ya usanidi ya Continue"
},
"2": {
- "title": "API Key"
+ "title": "Ufunguo wa API"
},
"3": {
- "title": "Select Model"
+ "title": "Chagua Modeli"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "Ongeza Usanidi wa Modeli",
+ "desc": "Ongeza usanidi ufuatao kwenye safu yako ya models:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue hutumia faili ya usanidi ya JSON."
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Sakinisha OpenCode",
+ "desc": "Sakinisha kupitia npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Ufunguo wa API"
},
"3": {
- "title": "Set Base URL",
+ "title": "Weka URL ya Msingi",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Chagua Muundo"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Tumia Kibadala cha Kufikiri",
+ "desc": "Kwa miundo ya kufikiri, endesha ukitumia --variant high/low/max (amri ya mfano iko hapa chini)."
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode inahitaji usanidi wa ufunguo wa API.",
+ "1": "Weka URL ya msingi kuwa endpoint yako ya OmniRoute."
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Fungua Mipangilio ya Kiro",
+ "desc": "Nenda kwenye Mipangilio → Mtoa Huduma wa AI"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "URL ya Msingi",
+ "desc": "Bandika URL ya endpoint yako ya OmniRoute"
},
"3": {
- "title": "API Key"
+ "title": "Ufunguo wa API"
},
"4": {
- "title": "Select Model"
+ "title": "Chagua Muundo"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro inahitaji akaunti ya Amazon."
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Fungua Mipangilio ya AI",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Ongeza Mtoa Huduma Maalum",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "URL ya Msingi",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "Ufunguo wa API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Chagua Muundo",
+ "desc": "Chagua muundo kutoka kwenye orodha kunjuzi"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "Imesanidiwa Kiotomatiki",
+ "toolCategoriesDesc": "Sanidi visaidizi vya uandishi wa msimbo vya AI ili vipitie OmniRoute",
+ "allToolsTab": "Zana Zote",
+ "guidedClientsTab": "Klienti Zinazoongozwa",
+ "mitmClientsTab": "Klienti za MITM",
"customCliTab": "CLI maalum",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "Kategoria za Zana",
+ "visibleToolsCount": "Zana {count} zinapatikana",
"customCliBuilderTitle": "Mjenzi wa CLI unaolingana na OpenAI",
"customCliBuilderDescription": "Tengeneza env vars na vijisehemu vya JSON kwa CLI au SDK yoyote ambayo inakubali URL msingi inayooana na OpenAI, ufunguo wa API na kitambulisho cha muundo.",
"customCliNoModels": "Unganisha angalau mtoa huduma mmoja ili kujaza viteuzi vya miundo.",
@@ -3136,7 +3140,7 @@
"hermesRoleGoalJudgeDesc": "Uhakiki wa kukamilika kwa malengo",
"hermesRoleCurator": "Mwandishi",
"hermesRoleCuratorDesc": "Ukurasa wa Ujuzi na Kumbukumbu",
- "hermesRoleMonitor": "Monitor",
+ "hermesRoleMonitor": "Kifuatiliaji",
"hermesRoleMonitorDesc": "Ufuatiliaji wa nyuma",
"hermesRoleBackgroundReview": "Mapitio ya Muktadha",
"hermesRoleBackgroundReviewDesc": "Mapitio ya msimbo wa nyuma",
@@ -3155,7 +3159,7 @@
"hermesRolesWillUpdate": "{count, plural, one {jukumu # litasasishwa} other {majukumu # yatasasishwa}}",
"hermesPreviewPath": "Hakiki — itaandika kwenye ~/.hermes/config.yaml",
"hermesSaveDescription": "Inahifadhi muundo uliochaguliwa kwa kila jukumu kwenye",
- "copilotConfigGenerator": "GitHub Copilot Config Generator",
+ "copilotConfigGenerator": "Kizalishaji cha Usanidi wa GitHub Copilot",
"copilotGeneratorDescriptionPrefix": "Inazalisha",
"copilotGeneratorDescriptionSuffix": "kitalu cha VS Code GitHub Copilot kwa kutumia muundo wa muuzaji wa Azure. Chagua miundo unayotaka, kisha nakili JSON kwenye faili yako ya usanidi.",
"copilotCompatibilityWarning": "Usanidi huu unatumia suluhisho mbadala la muuzaji wa Azure kwa orodha za miundo maalum. Imejaribiwa na omniglyph. Hii ni hakiki na inabaki imezimwa kwa chaguomsingi hadi uthibitishaji wa mwisho hadi mwisho ukamilike.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Wasifu wa mfinyazo",
+ "profileDescription": "Wasifu ni kikomo cha juu, si cha chini: wasifu mkali zaidi hauwezi kulegezwa tena kwa ubatilishaji wa hatua mahususi. Kama ilivyopimwa kwenye msimbo huu: kwa hali salama kwa uandishi wa msimbo au iliyosawazishwa, kipindi ambacho bado hakijakusanya historia hakifinyazi chochote, kwa sababu zote mbili huongeza kiwango cha chini cha herufi na kuacha prompti ya mfumo, skima za zana na matokeo ya zana katika hali asilia.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Mkali (chaguomsingi)",
+ "description": "Sera iliyopimwa na risiti zilizochapishwa. Huunda taswira za prompti ya mfumo, nyaraka za zana na historia yenye maelezo mengi."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Iliyosawazishwa",
+ "description": "Hudumisha hali ya moja kwa moja katika muundo wake asilia na kulinda zamu 8 za mwisho; hubana tu historia ya zamani iliyofungwa."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Salama kwa uandishi wa msimbo",
+ "description": "Hudumisha mamlaka, miundo ya zana na matokeo ya moja kwa moja ya zana katika muundo wake asilia, huku ikilinda zamu 12 za mwisho. Haibani chochote hadi kipindi kikusanye historia."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Upitishaji wa moja kwa moja",
+ "description": "Huelekeza bila kubadilisha. Injini inarukwa na ombi linasambazwa bila kuguswa."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Chagua wasifu wa ubanaji wa OmniGlyph",
"saved": "Imehifadhiwa.",
"saveFailed": "Imeshindwa kuhifadhi.",
"enableAria": "Wezesha injini ya OmniGlyph",
@@ -8898,40 +8909,40 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Ubanaji wa ujumbe unaotegemea kanuni, vifurushi vya lugha, takwimu za uchanganuzi na vidhibiti vya hali ya matokeo.",
"advancedConfig": "Usanidi wa hali ya juu",
"advancedConfigDesc": "Fine-tune compression tabia",
"aggressiveSettings": "Mipangilio ya Aggressive",
"aggressiveSettingsDesc": "Upeo wa mbano na ubadilishanaji wa ubora unaowezekana",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Maombi",
+ "tokensSaved": "Tokeni zilizookolewa",
+ "savingsPercent": "Asilimia ya uokoaji",
+ "avgLatency": "Wastani wa ukawiaji",
+ "languagePacks": "Vifurushi vya Lugha",
+ "languagePacksDesc": "Washa kanuni za ubanaji kwa lugha mahususi.",
"labelAutoTrigger": "Finyaza kiotomatiki wakati muktadha unazidi",
"labelCompressionRate": "Nguvu ya kukandamiza",
"labelMaxTokens": "Tokeni lengwa kwa kila ujumbe",
"labelMinLength": "Urefu wa chini wa ujumbe",
"labelMinSavings": "Kiwango cha chini cha tokeni za kuhifadhi",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Imewashwa",
+ "autoDetect": "Tambua lugha kiotomatiki",
+ "rulesCount": "Kanuni {count}",
"inputCompressionTitle": "Mfinyazo wa ingizo",
"inputCompressionDesc": "Andika upya historia ya gumzo kwa maneno mafupi zaidi. Hupunguza tokeni za ingizo kwa ~50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Takwimu za Uchanganuzi wa Ubanaji",
+ "noAnalytics": "Bado hakuna takwimu za uchanganuzi wa ubanaji.",
"masterDisabledWarning": "Swichi kuu ya Token Saver imezimwa — mipangilio hii haitaathiri maombi hadi uwashe kutoka kwenye Mipangilio ya Mfinyazo au uibadilishe hapa.",
"outputMode": "Modi ya Pato",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Hali ya Matokeo",
"quickSettings": "Mipangilio ya Haraka",
"quickSettingsDesc": "Mipangilio ya msingi ya ukandamizaji ili kuanza",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Urukaji wa Kiotomatiki kwa Uwazi",
+ "bypassConditions": "Masharti ya kuruka",
"bypassConditionsList": "usalama, usioweza kutenduliwa, ufafanuzi, unaozingatia utaratibu",
"simpleMode": "Rahisi",
- "advancedMode": "Advanced",
+ "advancedMode": "Ya Kina",
"tooltipAutoTrigger": "Fina kiotomatiki wakati muktadha unazidi ukubwa huu.",
"tooltipCompressionRate": "0.0 = hakuna, 1.0 = upeo. 0.5 = usawa.",
"tooltipMaxTokens": "Hesabu ya ishara inayolengwa baada ya kukandamizwa. Chini = mkali zaidi.",
@@ -8940,52 +8951,52 @@
"ultraSettings": "Mipangilio ya Juu",
"ultraSettingsDesc": "Mfinyazo wa kisemantiki unaoendeshwa na SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Jibu kwa ufupi. Hifadhi istilahi za kiufundi, msimbo, hitilafu, URLs na vitambulisho.",
+ "full": "Jibu kwa maneno machache na kwa ufupi. Hifadhi maudhui yote ya kiufundi.",
+ "ultra": "Jibu kwa ufupi sana ukitumia vifupisho vya kawaida vya kiufundi. Hifadhi alama halisi."
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "Kitafsiri",
+ "metaTitle": "Mazingira ya Majaribio ya Kitafsiri | OmniRoute",
+ "metaDescription": "Tatua hitilafu, jaribu na onyesha kwa taswira tafsiri za miundo ya API kati ya watoa huduma",
+ "playgroundTitle": "Mazingira ya Majaribio ya Kitafsiri",
+ "playground": "Mazingira ya Majaribio",
+ "realtime": "Shughuli za Tafsiri za Wakati Halisi",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "Jukwaa la Majaribio",
+ "liveMonitor": "Ufuatiliaji wa Moja kwa Moja",
+ "modeDescriptionPlayground": "Bandika mwili wowote wa ombi la API na uone jinsi OmniRoute inavyolitafsiri kati ya miundo ya watoa huduma (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
+ "modeDescriptionChatTester": "Tuma maombi halisi ya gumzo kupitia OmniRoute na ukague mzunguko kamili: ingizo, ombi lililotafsiriwa, jibu la mtoa huduma na tokeo lililotafsiriwa.",
+ "modeDescriptionTestBench": "Endesha hali zilizofafanuliwa mapema na ulinganishe uoanifu kati ya watoa huduma na modeli.",
+ "modeDescriptionLiveMonitor": "Tazama matukio ya tafsiri kwa wakati halisi maombi yanapopita kupitia OmniRoute.",
+ "modeDescriptionFallback": "Tatua hitilafu, jaribu na uonyeshe kwa taswira jinsi OmniRoute inavyotafsiri maombi ya API kati ya watoa huduma.",
+ "recentTranslations": "Tafsiri za Hivi Karibuni",
+ "noTranslations": "Bado hakuna tafsiri",
+ "source": "Chanzo",
+ "target": "Lengo",
+ "time": "Muda",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "Ucheleweshaji",
+ "totalTranslations": "Jumla ya Tafsiri",
+ "successful": "Zilizofaulu",
+ "errors": "Hitilafu",
+ "avgLatency": "Wastani wa Ucheleweshaji",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "Moja kwa moja — Inajisasisha kiotomatiki",
+ "paused": "Imesitishwa",
+ "eventsAppearHint": "Matukio ya tafsiri yataonekana hapa maombi yanapopitia OmniRoute. Tumia mojawapo ya mbinu hizi kuzalisha matukio:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "Miito ya API ya nje",
+ "ideCliIntegrations": "Miunganisho ya IDE/CLI",
+ "inMemoryNote": "Kumbuka: Matukio huhifadhiwa kwenye kumbukumbu na huwekwa upya seva inapoanzishwa upya.",
"ok": "OK",
- "errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "errorShort": "HITILAFU",
+ "formatConverter": "Kigeuzi cha Umbizo",
+ "formatConverterDescription": "Bandika au andika mwili wa ombi la JSON. Kitafsiri kitatambua kiotomatiki umbizo la chanzo na kulibadilisha kuwa umbizo lengwa. Tumia hii kutatua hitilafu za jinsi OmniRoute inavyotafsiri maombi kati ya miundo (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (kati) → {target}",
"translationPathDirect": "{source} → {target} (mtafsiri wa moja kwa moja)",
"translationPathPassthrough": "Umbizo sawa - hakuna tafsiri inayohitajika",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "Baadhi ya jozi za umbizo (Claude→Gemini) zina vifasiri vya moja kwa moja ambavyo vinakwepa kitovu cha OpenAI, na hivyo kutoa matokeo sahihi zaidi.",
"featureImageMapping": "Ramani ya Ukubwa wa Picha",
"featureImageMappingDesc": "Hutafsiri kanuni za vipimo vya picha kati ya miundo ya API (k.m., viwango vya maelezo ya OpenAI → vipimo vya Gemini).",
- "input": "Input",
- "output": "Output",
+ "input": "Ingizo",
+ "output": "Tokeo",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "Badilishana miundo",
+ "translateAction": "Tafsiri",
+ "clear": "Futa",
+ "inputPlaceholder": "Bandika mwili wa ombi hapa au uchague kiolezo hapa chini...",
+ "exampleTemplates": "Violezo vya Mfano",
+ "exampleTemplatesHint": "— Bofya ili kupakia",
+ "templateLoadHint": "Kiolezo hupakia ombi katika umbizo la {format}. Badilisha Umbizo la Chanzo ili kupakia katika umbizo tofauti.",
+ "compatibilityTester": "Kijaribu Uoanifu",
+ "compatibilityReport": "Ripoti ya Uoanifu",
+ "testBenchDescription": "Endesha hali zilizofafanuliwa awali (Gumzo Rahisi, Uitaji wa Zana, n.k.) ili kuthibitisha tafsiri na uoanifu wa mtoa huduma. Chagua umbizo la chanzo na mtoa huduma lengwa, kisha endesha majaribio yote ili kuona asilimia ya uoanifu. Tumia hii kubaini vipengele vinavyofanya kazi kwa watoa huduma mbalimbali.",
+ "targetProvider": "Mtoa Huduma Lengwa",
+ "runAllTests": "Endesha Majaribio Yote",
+ "runTest": "Endesha Jaribio",
+ "reRun": "Endesha tena",
+ "running": "Inaendeshwa...",
+ "passed": "zimefaulu",
+ "failed": "zimeshindwa",
+ "passedIconLabel": "✅ Imefaulu",
+ "chunks": "vipande",
+ "scenarioSimpleChat": "Gumzo Rahisi",
+ "scenarioToolCalling": "Kuitisha Zana",
+ "scenarioMultiTurn": "Zamu Nyingi",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "Kidokezo cha Mfumo",
+ "scenarioStreaming": "Utiririshaji",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "Gumzo Rahisi",
+ "tool-calling": "Kuitisha Zana",
+ "multi-turn": "Zamu Nyingi",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "Kidokezo cha Mfumo",
+ "streaming": "Utiririshaji",
"vision": "Maono",
"schema-coercion": "Schema ya Schema"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "Ujumbe wa kawaida wa maandishi",
+ "tool-calling": "Uitishaji wa kitendakazi/zana",
+ "multi-turn": "Mazungumzo yenye historia",
+ "thinking": "Kufikiri / kutoa hoja kwa kina",
+ "system-prompt": "Maagizo changamano ya mfumo",
+ "streaming": "Ombi la utiririshaji la SSE",
"vision": "Ombi la Multimodal na uingizaji wa picha",
"schema-coercion": "Pato-Muundo / Utekelezaji wa schema ya JSON"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "Wewe ni msaidizi mwenye manufaa.",
+ "userGreeting": "Habari! Hujambo leo?"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "Hali ya hewa ikoje São Paulo?",
+ "toolDescription": "Pata hali ya hewa ya sasa ya eneo",
+ "cityNameDescription": "Jina la jiji"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "Wewe ni msaidizi wa uandishi wa msimbo.",
+ "userInitial": "Andika kitendakazi cha kupanga safu katika Python.",
+ "assistantExample": "Hiki ni kitendakazi rahisi cha kupanga: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "Sasa kifanye kipange kwa mpangilio wa kushuka."
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "Jumla ya namba tasa 100 za kwanza ni ngapi?"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "Wewe ni mhandisi mwandamizi wa programu aliyebobea katika mifumo iliyosambazwa. Jibu maswali kwa ufupi ukitumia mbinu bora za sekta. Daima toa mifano ya msimbo inapofaa. Panga majibu yako kwa kutumia markdown.",
+ "question": "Nitatekelezaje muundo wa circuit breaker?"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "Nisimulie hadithi fupi kuhusu roboti inayojifunza kuchora."
},
"vision": {
"system": "Wewe ni msaidizi anayeelezea picha kwa usahihi.",
@@ -9093,12 +9104,12 @@
"cityDescription": "Jiji la kuuliza, k.m. 'Tokyo' au 'New York'."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "Inaoana na OpenAI",
+ "anthropicCompatibleLabel": "Inaoana na Anthropic",
+ "noTemplateForFormat": "Hakuna kiolezo cha umbizo hili",
+ "translationFailed": "Tafsiri imeshindikana: {error}",
+ "pipelineDebugger": "Kitatuzi cha Pipeline",
+ "translationPipeline": "Pipeline ya Tafsiri",
"loading": "Inapakia…",
"compressionOriginal": "Asili",
"compressionCompressed": "Iliyofinyazwa",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "Hatua za bomba",
"copyIntermediateJson": "Nakili JSON ya kati",
"copyOutputJson": "Nakili JSON ya matokeo",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "Uonyeshaji wa pipeline",
+ "pipelineVisualizationHint": "Tuma ujumbe ili kuona jinsi ombi lako linavyopita katika utambuzi → tafsiri → mwito wa mtoa huduma.",
+ "chatTesterDescription": "Tuma ujumbe katika umbizo mahususi la mteja na uchunguze kila hatua ya pipeline ya tafsiri.",
+ "chatTesterFlow": "Ombi la Mteja → Utambuzi wa Umbizo → OpenAI ya Kati → Umbizo la Mtoa Huduma → Jibu",
+ "clickStepToInspect": "Bofya hatua yoyote ili kukagua data katika hatua hiyo.",
+ "clientFormat": "Muundo wa Mteja",
+ "provider": "Mtoa Huduma",
+ "modelPlaceholder": "Chagua au andika jina la modeli...",
+ "sendMessageToSeePipeline": "Tuma ujumbe ili kuona mchakato wa tafsiri",
+ "chatMessageHintPrefix": "Ujumbe wako utapangwa katika muundo wa",
+ "chatMessageHintSuffix": "ombi, utatafsiriwa kupitia mchakato huo, na kutumwa kwa mtoa huduma aliyechaguliwa.",
+ "youWithFormat": "Wewe ({format})",
+ "assistant": "Msaidizi",
+ "typeMessage": "Andika ujumbe...",
+ "send": "Tuma",
+ "clientRequest": "Ombi la Mteja",
+ "clientRequestDescription": "Mwili wa ombi jinsi mteja wako angeutuma",
+ "formatDetected": "Muundo Umegunduliwa",
+ "formatDetectedDescription": "OmniRoute hutambua kiotomatiki muundo wa API kutokana na muundo wa ombi",
+ "openaiIntermediate": "Muundo wa Kati wa OpenAI",
+ "openaiIntermediateDescription": "Miundo yote husawazishwa kwanza kuwa muundo wa OpenAI (kiunganishi cha jumla)",
+ "providerFormat": "Muundo wa Mtoa Huduma",
+ "providerFormatDescription": "Muundo wa OpenAI hutafsiriwa kuwa muundo asilia wa mtoa huduma",
+ "providerResponse": "Jibu la Mtoa Huduma",
+ "providerResponseRawDescription": "Jibu ghafi kutoka kwa API ya mtoa huduma",
+ "providerResponseSseDescription": "Mtiririko ghafi wa SSE kutoka kwa API ya mtoa huduma",
+ "unexpectedError": "Hitilafu isiyotarajiwa imetokea",
+ "error": "Hitilafu",
+ "errorMessage": "Hitilafu: {message}",
+ "requestFailed": "Ombi limeshindwa",
+ "noTextExtracted": "(Hakuna maandishi yaliyotolewa)",
"liveMonitorMemoryNote": "Matukio huhifadhiwa kwenye kumbukumbu na kupotea wakati wa kuanza upya.",
"liveMonitorMemoryCapNote": "Matukio yasiyozidi 200 yamesalia.",
"eventSourcesLabel": "Vyanzo vya matukio:",
"eventSourceTranslatorPage": "• Ukurasa wa Mtafsiri (Kijaribu cha Gumzo, Kiti cha Kujaribu)",
"eventSourceMainPipeline": "• Njia kuu ya ombi (trafiki ya CLI/IDE/API)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "Huonyesha matukio ya tafsiri kadiri miito ya API inavyopita kwenye OmniRoute. Matukio hutoka kwenye akiba ya kumbukumbu (huwekwa upya inapoanzishwa tena). Tumia",
+ "liveMonitorDescriptionSuffix": ", au miito ya nje ya API ili kuzalisha matukio.",
"streamTransformer": "Tiririsha Transfoma",
"modeDescriptionStreamTransformer": "Endesha ukamilishaji gumzo mitiririko ya SSE kupitia kibadilishaji cha Majibu.",
"streamTransformerTitle": "Kibadilishaji cha Majibu cha Mtiririko",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Programu yako inazungumza \"lugha\" ya API moja. Mtafsiri huibadilisha ili itumie mtoa huduma mwingine.",
"conceptDiagramAppLabel": "Programu yako",
"conceptDiagramSourceLabel": "Muundo wa chanzo",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (kitovu)",
"conceptDiagramTargetLabel": "Mtoa huduma lengwa",
"conceptDiagramExampleApp": "k.m. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "Imeshindwa kubadilisha mtiririko"
},
"usage": {
- "title": "Usage",
+ "title": "Matumizi",
"grokExtraUsageCredits": "Mikopo Ya Ziada",
"grokAutoTopUp": "Kuongeza Otomatikia",
"grokAutoTopUpUnavailable": "Haipatikani",
@@ -9263,7 +9274,7 @@
"grokAutoTopUpDisabled": "Imezimwa",
"grokAutoTopUpAt": "katika",
"grokAutoTopUpAdd": "ongeza",
- "grokAutoTopUpMax": "max",
+ "grokAutoTopUpMax": "kiwango cha juu",
"grokAutoTopUpMonth": "mwezi",
"grokAdditionalCredits": "Mikopo Ya Ziada",
"kiloAccountBalance": "Salio la Akaunti",
@@ -9273,63 +9284,63 @@
"kiloPassRemaining": "Iliyobaki",
"kiloPassRenews": "Inasasishwa baada ya siku {count}",
"kiloPassUsageLabel": "Matumizi ya mwezi huu",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "Salio la Ziada la Matumizi",
+ "kimiExtraUsage": "Matumizi ya Ziada",
+ "kimiExtraUsageEnabled": "Imewashwa",
+ "kimiExtraUsageDisabled": "Imezimwa",
+ "kimiExtraUsageFrozen": "Imesitishwa",
+ "kimiExtraUsageUnavailable": "Haipatikani",
+ "kimiMonthlyUsed": "Imetumika mwezi huu",
+ "kimiMonthlyLimit": "Kikomo cha kila mwezi",
+ "kimiMonthlyLimitUnlimited": "Bila kikomo",
+ "kimiAdditionalCredits": "Salio la Ziada",
+ "loggerTab": "Kirekodi",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "Usimamizi wa Bajeti",
+ "budgetSaved": "Vikomo vya bajeti vimehifadhiwa",
+ "budgetSaveFailed": "Imeshindikana kuhifadhi bajeti",
+ "loadingBudgetData": "Inapakia data ya bajeti...",
+ "noApiKeysTitle": "Hakuna Funguo za API",
+ "noApiKeysDescription": "Ongeza funguo za API kwanza ili kuweka vikomo vya bajeti.",
+ "apiKey": "Ufunguo wa API",
+ "todaysSpend": "Matumizi ya Leo",
+ "thisMonth": "Mwezi Huu",
+ "setLimits": "Weka Vikomo",
+ "dailyLimitUsd": "Kikomo cha Kila Siku (USD)",
+ "monthlyLimitUsd": "Kikomo cha Kila Mwezi (USD)",
+ "warningThresholdPercent": "Kiwango cha Onyo (%)",
+ "dailyLimitPlaceholder": "k.m. 5.00",
+ "monthlyLimitPlaceholder": "k.m. 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "Hifadhi Vikomo",
+ "budgetOk": "Bajeti iko sawa — {remaining} zimesalia",
+ "budgetExceeded": "Bajeti imepitwa — maombi yanaweza kuzuiwa",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "Bado hakuna data",
+ "latency": "Muda wa kusubiri",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "Akiba ya Prompt",
+ "systemHealth": "Hali ya Mfumo",
+ "entries": "Maingizo",
+ "activeCount": "{count} vinavyotumika",
+ "openCircuitBreakersDetected": "Vivunja mzunguko vilivyo wazi vimegunduliwa",
+ "hitRate": "Kiwango cha Upatikanaji",
+ "hitsMisses": "Mafanikio / Kukosa",
+ "circuitBreakers": "Vivunja Mzunguko",
+ "lockedIPs": "IP Zilizofungwa",
+ "lockoutsAutoRefreshHint": "Vifungo vya vikomo vya kasi kwa kila modeli • Kujisasisha kiotomatiki sekunde 10",
+ "lockedCount": "{count, plural, one {# imefungwa} other {# zimefungwa}}",
+ "timeLeft": "Zimesalia {time}",
+ "howItWorks": "Jinsi Inavyofanya Kazi",
+ "howItWorksSubtitle": "Jifunze jinsi tathmini zinavyothibitisha majibu yako ya LLM",
+ "define": "Bainisha",
+ "defineStepDescription": "Unda majaribio yenye vidokezo vya ingizo na vigezo vya matokeo yanayotarajiwa kwa kutumia mikakati kama vile kujumuisha, regex au ulinganifu kamili.",
+ "run": "Endesha",
+ "runStepDescription": "Tekeleza majaribio dhidi ya vituo vyako vya mwisho vya LLM kupitia OmniRoute. Kila jaribio hutumwa kama ombi halisi la API.",
+ "evaluate": "Tathmini",
+ "evaluateStepDescription": "Majibu hulinganishwa na vigezo vinavyotarajiwa. Tazama kufaulu/kushindwa kwa kila jaribio pamoja na vipimo vya muda wa kusubiri na maoni ya kina.",
"evalsStrategyContainsLabel": "Ina",
"evalsStrategyExactLabel": "Ulinganifu Kamili",
"evalsStrategyRegexLabel": "Regex",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "Kiwango cha Ufaulu",
"historyColumnAvgLatencyMs": "Wastani wa Ucheleweshaji",
"historyColumnCreatedAt": "Imetekelezwa",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "Vifurushi vya Tathmini",
+ "evalSuitesHint": "Bofya kifurushi ili kuona majaribio, kisha ukiendeshe ili kutathmini vituo vyako vya mwisho vya LLM",
+ "evalsLoading": "Inapakia vifurushi vya tathmini...",
+ "noEvalSuitesFound": "Hakuna Vifurushi vya Tathmini Vilivyopatikana",
+ "noEvalSuitesDescription": "Vifurushi vya tathmini vinaweza kubainishwa kupitia API au kwenye msimbo. Hupima matokeo ya modeli dhidi ya matokeo yanayotarajiwa kwa kutumia mikakati kama vile kujumuisha, regex, ulinganifu kamili na vitendakazi maalum.",
+ "columnCase": "Jaribio",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "Muda wa Kusubiri",
+ "columnDetails": "Maelezo",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "Mkakati",
+ "columnExpected": "Kinachotarajiwa",
+ "statsSuites": "Vifurushi",
+ "statsTestCases": "Majaribio",
+ "statsModels": "Modeli",
+ "statsCoverage": "Ufunikaji",
+ "statsStrategiesCount": "mikakati {count}",
+ "evaluationStrategies": "Mikakati ya Tathmini",
+ "modelsUnderTest": "Modeli Zinazojaribiwa",
+ "searchSuitesPlaceholder": "Tafuta vifurushi...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# jaribio} other {# majaribio}}",
+ "runEval": "Endesha Tathmini",
"runAllSuites": "Endesha Zote",
"runAllRunning": "Inakimbia zote...",
"runAllProgress": "Inaendesha {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# kifurushi kimeshindwa} other {# vifurushi vimeshindwa}}",
"runAllCompleted": "Alikimbia {suites} vyumba - {passed} kupita, {failed} imeshindwa",
"runAllCompletedWithFailures": "Aliendesha vyumba {completed}; {failedSuites} imeshindwa kukamilika",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "Inaendesha {current}/{total}...",
+ "passRate": "kiwango cha kufaulu",
+ "summaryBreakdown": "{passed} zimefaulu · {failed} zimeshindwa · jumla {total}",
+ "passedIconLabel": "✅ Imefaulu",
+ "failedIconLabel": "❌ Imeshindwa",
"resultPassed": "Imepitishwa",
"resultFailed": "Imeshindwa",
"expandResult": "Panua maelezo ya matokeo",
"collapseResult": "Kunja maelezo ya matokeo",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "Inajumuisha: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "Kinachotarajiwa: \"{expected}\"",
"expectedOutputLabel": "Pato Linalotarajiwa",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "Bado hakuna matokeo",
+ "testCasesCount": "Majaribio ({count})",
+ "noTestCasesDefined": "Hakuna majaribio yaliyobainishwa",
+ "runEvalHint": "Bofya \"Endesha Tathmini\" ili kutekeleza majaribio yote dhidi ya kituo chako cha mwisho cha LLM. Kila jaribio hutuma ombi halisi kupitia OmniRoute.",
+ "notifyNoTestCases": "Hakuna majaribio yaliyobainishwa kwa kifurushi hiki",
+ "notifyAllCasesPassed": "Kesi zote {total} zimefaulu ✅",
+ "notifySomeCasesFailed": "{passed}/{total} zimefaulu, {failed} zimeshindwa",
+ "notifyEvalRunFailed": "Uendeshaji wa tathmini umeshindwa",
+ "notifyEvalTitle": "Tathmini: {name}",
+ "modelEvals": "Tathmini za Modeli",
+ "evalsHeroDescription": "Jaribu na uthibitishe vituo vyako vya LLM kwa kuendesha vifurushi vya tathmini vilivyofafanuliwa mapema. Kila kifurushi kina kesi za majaribio zinazotuma vidokezo halisi kupitia OmniRoute na kulinganisha majibu na vigezo vinavyotarajiwa — hali inayokusaidia kugundua hitilafu zilizojirudia, kulinganisha modeli na kuhakikisha ubora wa majibu kwa watoa huduma mbalimbali.",
+ "qualityValidation": "Uthibitishaji wa Ubora",
+ "modelComparison": "Ulinganishaji wa Modeli",
+ "regressionDetection": "Ugunduzi wa Hitilafu Zilizojirudia",
+ "latencyBenchmarks": "Vipimo vya Ucheleweshaji",
+ "modelLockouts": "Kufungiwa kwa Modeli",
+ "noLockouts": "Hakuna modeli zilizofungiwa kwa sasa",
+ "activeSessions": "Vipindi Vinavyotumika",
+ "noSessions": "Hakuna vipindi vinavyotumika",
+ "sessionsHint": "Vipindi huonekana maombi yanapopita kwenye proksi",
+ "sessionsTrackedHint": "Hufuatiliwa kupitia utambuzi wa alama za kipekee za maombi • Uonyeshaji upya otomatiki kila sekunde 5",
+ "session": "Kipindi",
+ "age": "Muda",
+ "requests": "Maombi",
+ "connection": "Muunganisho",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "Vikomo vya Watoa Huduma",
+ "noProviders": "Hakuna Watoa Huduma Waliounganishwa",
+ "connectProvidersForQuota": "Unganisha kwa watoa huduma kupitia OAuth ili kufuatilia vikomo vya mgawo na matumizi ya API yako.",
+ "accountsCount": "{count, plural, one {akaunti #} other {akaunti #}}",
+ "filteredFromCount": "(zimechujwa kutoka {count})",
+ "autoRefresh": "Onyesha upya kiotomatiki",
+ "refreshAll": "Onyesha Upya Zote",
+ "loadingQuotas": "Inapakia...",
"showMoreQuotas": "Onyesha {count} zaidi",
"showLessQuotas": "Onyesha machache",
"hideQuotaRow": "Ficha safu mlalo hii ya mgawo",
"showQuotaRow": "Onyesha safu mlalo hii ya mgawo",
"hiddenQuotaRowsLabel": "Imefichwa:",
"quotaVisibilityUpdateFailed": "Imeshindwa kusasisha mwonekano wa mgawo",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
+ "account": "Akaunti",
+ "modelQuotas": "Mgao wa Modeli",
+ "lastUsed": "Ilionyeshwa Upya Mara ya Mwisho",
+ "actions": "Vitendo",
+ "refreshQuota": "Onyesha upya mgawo",
+ "today": "Leo",
+ "tomorrow": "Kesho",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "baada ya {duration}",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "Mpango ghafi: {plan}",
+ "noPlanFromProvider": "Hakuna mpango kutoka kwa mtoa huduma",
"tokenExpiresIn": "Tokeni inaisha muda wake baada ya {time}",
"tokenExpired": "Muda wa tokeni umeisha",
- "noQuotaData": "No quota data",
+ "noQuotaData": "Hakuna data ya mgawo",
"cardExpand": "Panua",
"cardCollapse": "Kunja",
"moreQuotas": "+{count} zaidi",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "Haijapangwa katika kikundi",
+ "viewFlat": "Bapa",
+ "viewByEnvironment": "Kwa Mazingira",
+ "noQuotaDataAvailable": "Hakuna data ya kikomo cha matumizi inayopatikana",
+ "noAccountsForTierFilter": "Hakuna akaunti zilizopatikana kwa kichujio cha kiwango",
+ "tierAll": "Zote",
+ "tierEnterprise": "Biashara",
+ "tierTeam": "Timu",
+ "tierBusiness": "Biashara",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
- "tierLite": "Lite",
- "tierUnknown": "Unknown",
+ "tierFree": "Bure",
+ "tierLite": "Nyepesi",
+ "tierUnknown": "Haijulikani",
"statTotal": "Jumla",
"statCritical": "Mahututi",
"statAlert": "Tahadhari",
@@ -9500,8 +9511,8 @@
"confirmRedeemResetCreditButton": "Komboa mkopo",
"resetCreditRedeemed": "Uwekaji upya umekombolewa",
"resetCreditRedeemFailed": "Imeshindwa kukomboa mkopo wa kuweka upya",
- "suiteBuilderSaveFailed": "Failed to save suite",
- "clone": "Clone",
+ "suiteBuilderSaveFailed": "Imeshindwa kuhifadhi mkusanyiko",
+ "clone": "Nakili",
"exportSuite": "Hamisha",
"importSuite": "Ingiza",
"suiteExported": "Suite imehamishwa",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Safu batili ya JSON",
"suiteBuilderCloneSuffix": "nakala",
"suiteBuilderImportedSuite": "Suite iliyoingizwa",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "Kadi ya Alama",
+ "evalApiKey": "Ufunguo wa API",
+ "scorecardPassRate": "Kiwango cha Kufaulu",
+ "targetTypeModel": "Modeli",
+ "actualOutputLabel": "Matokeo Halisi",
+ "evalTargetHint": "Chagua modeli au mchanganyiko wa kutathmini.",
+ "suiteBuilderDeleted": "Mkusanyiko umefutwa",
+ "suiteBuilderCaseCardHint": "Bainisha kidokezo cha ingizo na vigezo vya matokeo yanayotarajiwa.",
+ "nextResetUtc": "Uwekaji upya unaofuata (UTC)",
+ "scorecardHint": "Viwango vya kufaulu vilivyojumlishwa katika mikusanyiko yote ya tathmini.",
+ "suiteLatestRunsHint": "Uendeshaji wa hivi karibuni wa tathmini kwa mkusanyiko huu.",
+ "saving": "Inahifadhi",
+ "suiteBuilderCaseModelLabel": "Modeli (si lazima)",
+ "evalControlsTitle": "Vidhibiti vya Tathmini",
+ "suiteBuilderEditTitle": "Hariri Mkusanyiko wa Tathmini",
+ "suiteBuilderCaseStrategyLabel": "Mkakati wa Uthibitishaji",
+ "notifySelectDifferentCompareTarget": "Tafadhali chagua lengo tofauti kwa ajili ya ulinganisho",
+ "recentRunsHint": "Inaonyesha uendeshaji wa hivi karibuni wa tathmini. Bofya uendeshaji ili kuona matokeo ya kina.",
+ "evalCompareHint": "Unaweza kulinganisha matokeo na lengo la pili.",
+ "suiteBuilderCaseInvalid": "Kesi hii ina hitilafu za uthibitishaji. Tafadhali zirekebishe kabla ya kuhifadhi.",
+ "historyEmpty": "Bado hakuna historia ya tathmini",
+ "suiteBuilderUpdated": "Mkusanyiko umesasishwa",
+ "resetInterval": "Kipindi cha Uwekaji Upya",
+ "suiteBuilderCreateTitle": "Unda Mkusanyiko wa Tathmini",
+ "activePeriodSpend": "Matumizi ya Kipindi Kinachoendelea",
+ "evalApiKeyHint": "Chagua API Key ya kutumia kwa maombi ya tathmini.",
+ "evalCompareOptional": "Linganisha (hiari)",
+ "suiteBuilderDeleteFailed": "Imeshindikana kufuta kifurushi",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Maagizo ya mfumo ya hiari...",
+ "scorecardCases": "Vipimo",
+ "runCompletedWithScore": "Tathmini imekamilika — kiwango cha ufaulu ni {score}%",
+ "suiteBuilderCustomBadge": "Maalum",
+ "targetSuiteDefaults": "Mipangilio chaguomsingi ya kifurushi",
+ "suiteBuilderDeleteConfirm": "Una uhakika unataka kufuta kifurushi hiki? Kitendo hiki hakiwezi kutenduliwa.",
+ "suiteBuilderNameLabel": "Jina la Kifurushi",
+ "scorecardSuites": "Vifurushi",
+ "evalCompareTarget": "Lengo la Kulinganisha",
+ "suiteBuilderCaseModelPlaceholder": "k.m. gpt-4o-mini",
+ "evalControlsHint": "Sanidi lengo lako la tathmini na ufunguo wa API, kisha endesha vifurushi ili kuthibitisha ubora wa modeli.",
+ "recentRunsTitle": "Uendeshaji wa Hivi Karibuni",
+ "suiteBuilderCaseSystemPromptLabel": "Kidokezo cha Mfumo",
+ "suiteBuilderCaseExpectedPlaceholder": "k.m. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "k.m. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Bandika jibu kamili linalotarajiwa",
"suiteBuilderCaseExpectedPlaceholderRegex": "k.m. ^\\\\s*\\\\{.*\\\\}\\\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Tumia msemo wa kawaida wa JavaScript bila kukunja mikwaju.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "k.m. Kifurushi cha Ubora wa Usimbaji",
+ "suiteBuilderAddCase": "Ongeza Kipimo",
+ "cancel": "Ghairi",
+ "evalTarget": "Lengo",
+ "suiteBuilderCaseNameLabel": "Jina la Kipimo",
+ "weeklyLimitUsd": "Kikomo cha Wiki (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "k.m. Andika kitendakazi cha fibonacci katika Python",
+ "suiteBuilderNameRequired": "Jina la kifurushi linahitajika",
+ "suiteBuilderCaseUserPromptLabel": "Kidokezo cha Mtumiaji",
+ "daily": "Kila Siku",
+ "resultErrorLabel": "Hitilafu",
+ "suiteBuilderBuiltInBadge": "Kilichojumuishwa",
+ "suiteBuilderCaseCardTitle": "Kipimo cha Jaribio",
"suiteBuilderDuplicateCase": "Nakala",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "k.m. 50.00",
+ "suiteBuilderCaseTagsHint": "Lebo zilizotenganishwa kwa koma kwa ajili ya kupanga vipimo vya jaribio.",
+ "notifyEvalRunFailedWithReason": "Tathmini imeshindikana: {reason}",
+ "weekly": "Kila Wiki",
+ "runEvalRunning": "Tathmini inaendeshwa...",
+ "delete": "Futa",
+ "resetTimeUtc": "Muda wa Kuweka Upya (UTC)",
+ "evalApiKeyAuto": "Otomatiki (tumia chaguomsingi)",
+ "suiteBuilderDescriptionPlaceholder": "Maelezo ya hiari kuhusu kile ambacho kifurushi hiki kinapima...",
+ "targetComparisonTitle": "Ulinganishaji wa Lengo",
+ "save": "Hifadhi",
+ "suiteBuilderCreated": "Suite imeundwa kwa mafanikio",
+ "suiteLatestRuns": "Uendeshaji wa Hivi Karibuni",
+ "suiteBuilderCaseExpectedLabel": "Thamani Inayotarajiwa",
+ "historyLatency": "Muda wa Kusubiri",
+ "suiteBuilderCaseTagsPlaceholder": "mf. coding, python",
+ "targetTypeCombo": "Mchanganyiko",
+ "scorecardPassed": "Imefaulu",
+ "suiteBuilderCaseTagsLabel": "Lebo",
+ "suiteBuilderNewSuite": "Suite Mpya",
+ "notifyEvalLoadFailed": "Imeshindwa kupakia data ya tathmini",
+ "notConfigured": "Haijasanidiwa",
+ "suiteBuilderCaseNamePlaceholder": "mf. jaribio la Fibonacci la Python",
+ "intervalLabel": "Kipindi",
+ "suiteBuilderCreateAction": "Unda Suite",
+ "suiteBuilderCasesHint": "Kila kesi hutuma kidokezo na kuthibitisha jibu.",
+ "suiteBuilderUpdatedAt": "Imesasishwa",
+ "errorBadge": "Hitilafu",
+ "suiteBuilderCasesTitle": "Kesi za Majaribio",
+ "edit": "Hariri",
+ "monthly": "Kila Mwezi",
+ "suiteBuilderCasesRequired": "Angalau kesi moja ya jaribio inahitajika",
+ "weeklyLimitSummary": "Muhtasari wa kikomo cha bajeti ya kila wiki",
+ "suiteBuilderDescriptionLabel": "Maelezo",
+ "targetComparisonHint": "Ulinganisho wa sambamba wa matokeo ya tathmini kati ya shabaha.",
+ "compareCompletedWithScore": "Ulinganisho umekamilika — kiwango cha ufaulu ni {score}%",
+ "staleQuotaTooltip": "Uonyeshaji upya wa mwisho umeshindwa — inaonyesha data iliyohifadhiwa kwenye akiba",
"quotaThresholdLabel": "Dakika kushoto",
"quotaCutoffsColumnHelp": "Sitisha maombi wakati mgawo uliosalia unaangukia kwa asilimia hii au chini yake.",
"quotaCutoffsButtonDefault": "Chaguomsingi",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "Hali ya moja kwa moja kwenye akaunti zilizounganishwa"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "Inasubiri Uidhinishaji",
+ "verificationUrl": "URL ya Uthibitishaji",
+ "yourCode": "Msimbo Wako",
+ "remoteAccess": "Ufikiaji wa mbali:",
+ "connectedSuccess": "Imeunganishwa kwa Mafanikio!",
+ "connectionFailed": "Muunganisho Umeshindwa",
+ "chooseAuthMethod": "Chagua mbinu yako ya uthibitishaji:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Akaunti ya Google",
+ "githubAccount": "Akaunti ya GitHub",
+ "importToken": "Leta Tokeni",
+ "pasteToken": "Bandika tokeni ya kuonyesha upya kutoka Kiro IDE.",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "Inatambua tokeni kiotomatiki...",
+ "readingFromCache": "Inasoma kutoka kwenye akiba ya AWS SSO",
+ "readingFromCursor": "Inasoma kutoka kwenye hifadhidata ya Cursor IDE",
+ "initializing": "Inaanzisha...",
+ "pricingConfig": "Usanidi wa Bei",
+ "loadingPricing": "Inapakia data ya bei...",
+ "pricingRatesFormat": "Muundo wa Viwango vya Bei",
+ "noPricingData": "Hakuna data ya bei inayopatikana",
+ "noModelsFound": "Hakuna miundo iliyopatikana"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "Watoa Huduma Wote",
+ "allModels": "Miundo Yote",
+ "allAccounts": "Akaunti Zote",
+ "allApiKeys": "Funguo Zote za API",
+ "allTypes": "Aina Zote",
+ "allLevels": "Viwango Vyote",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "Inapakia kumbukumbu...",
+ "loadingProxyLogs": "Inapakia kumbukumbu za proksi...",
+ "noLogEntries": "Hakuna maingizo ya kumbukumbu yaliyopatikana",
+ "noPayloadData": "Hakuna data ya payload inayopatikana kwa ingizo hili la kumbukumbu.",
+ "proxyEvent": "Tukio la Proksi",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "Kiwango",
+ "directNative": "Moja kwa moja (asili)",
+ "combo": "Mchanganyiko",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "Muhtasari wa Matumizi",
+ "outputTokens": "Tokeni za Tokeo",
+ "totalCost": "Jumla ya Gharama",
+ "usageByModel": "Matumizi kwa Muundo",
+ "usageByAccount": "Matumizi kwa Akaunti",
+ "failedToLoad": "Imeshindwa kupakia takwimu za matumizi.",
+ "tokenHealth": "Hali ya Tokeni",
+ "totalOAuth": "Jumla ya OAuth",
+ "healthy": "Nzuri",
+ "warning": "Onyo",
+ "errored": "Zenye Hitilafu",
+ "lastCheck": "Ukaguzi wa mwisho",
+ "noData": "Hakuna data",
+ "share": "Shiriki",
+ "unableToLoad": "Haiwezi kupakia vipimo vya mfumo",
+ "product": "Bidhaa",
+ "resources": "Nyenzo",
+ "company": "Kampuni",
"tokenHealthTooltips": {
"allHealthy": "Vikosi vyote vina afya",
"needsAttention": "Baadhi ya alama zinahitaji umakini",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Metriki za Mfumo",
"memory": "Kumbukumbu",
- "memoryShort": "mem",
+ "memoryShort": "kumbukumbu",
"uptime": "Wakati wa Uendeshaji",
"ariaLabel": "Ufuatiliaji wa Mfumo",
"title": "Msimamizi wa Mfumo",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "Hakuna matumizi maalum ya akaunti yaliyorekodiwa bado. Fanya maombi kwa kutumia akaunti za OAuth ili kuona data hapa."
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "Karibu",
+ "signIn": "Ingia",
+ "enterPassword": "Weka nenosiri lako ili kuendelea",
+ "password": "Nenosiri",
+ "unifiedProxy": "Proksi Iliyounganishwa ya API ya AI",
+ "unifiedAiApiProxy": "Proksi Iliyounganishwa ya API ya AI",
+ "unifiedAiApiProxyDesc": "Elekeza maombi kwa watoa huduma wengi wa AI kupitia sehemu moja ya mwisho. Usawazishaji wa mzigo, uhamishaji kiotomatiki iwapo hitilafu itatokea, na ufuatiliaji wa matumizi vimejumuishwa.",
+ "passwordNotEnabled": "Ulinzi wa nenosiri haujawashwa",
+ "loading": "Inapakia...",
+ "invalidPassword": "Nenosiri si sahihi",
+ "errorOccurredRetry": "Hitilafu imetokea. Tafadhali jaribu tena.",
+ "configureInstance": "Hebu tusanidi mfumo wako wa OmniRoute",
+ "runOnboardingWizard": "Endesha mchawi wa usanidi wa awali ili kuweka nenosiri lako na kuunganisha mtoa huduma wako wa kwanza wa AI.",
+ "startOnboarding": "Anza Usanidi wa Awali",
+ "secureYourInstance": "Linda Mfumo Wako",
+ "setPasswordDescription": "Weka nenosiri ili kulinda dashibodi yako na kulinda sehemu zako za mwisho za API dhidi ya ufikiaji usioidhinishwa.",
+ "configurePassword": "Sanidi Nenosiri",
+ "continue": "Endelea",
+ "windowWillClose": "Dirisha hili litafungwa kiotomatiki...",
+ "closeTabNow": "Sasa unaweza kufunga kichupo hiki.",
+ "copyUrlManual": "Tafadhali nakili URL kutoka kwenye upau wa anwani na uibandike kwenye programu.",
+ "accessDeniedDescription": "Huna ruhusa ya kufikia rasilimali hii. Angalia ufunguo wako wa API au wasiliana na msimamizi.",
+ "goToDashboard": "Nenda kwenye Dashibodi",
+ "featureMultiProviderTitle": "Watoa Huduma Wengi",
+ "featureMultiProviderDesc": "OpenAI, Anthropic, Google, na wengine zaidi",
+ "featureLoadBalancingTitle": "Usawazishaji wa Mzigo",
+ "featureLoadBalancingDesc": "Sambaza maombi kwa njia bora",
+ "featureUsageTrackingTitle": "Ufuatiliaji wa Matumizi",
+ "featureUsageTrackingDesc": "Fuatilia gharama na tokeni",
+ "resetPassword": "Weka Upya Nenosiri",
+ "resetDescription": "Chagua mbinu ya kurejesha ufikiaji wa dashibodi yako",
+ "stopServer": "Simamisha seva ya OmniRoute",
+ "processing": "Inachakata...",
+ "pleaseWait": "Tafadhali subiri tunapokamilisha uidhinishaji.",
+ "authSuccess": "Uidhinishaji Umefaulu!",
+ "copyUrl": "Nakili URL Hii",
+ "accessDenied": "Ufikiaji Umekataliwa",
+ "methodCliTitle": "Mbinu ya 1: Kuweka Upya kwa CLI",
+ "methodCliDescription": "Endesha amri ifuatayo kwenye seva ambayo OmniRoute inaendeshwa:",
+ "methodCliHint": "Hii itakuomba kuweka nenosiri jipya. Lazima seva isimamishwe kwanza.",
+ "methodManualTitle": "Mbinu ya 2: Uwekaji Upya wa Mikono",
+ "methodManualDescription": "Futa nenosiri kwenye hifadhidata na uweke jipya wakati wa kuanzisha:",
+ "setPasswordInYour": "Weka nenosiri jipya kwenye",
+ "fileLabelSuffix": "faili yako:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "Futa",
+ "orRemovePasswordHashField": "au ondoa sehemu ya passwordHash",
+ "restartServerWithNewPassword": "Anzisha seva upya—itatumia nenosiri jipya",
+ "backToLogin": "Rudi kwenye Kuingia",
+ "forgotPassword": "Umesahau nenosiri?",
"continueWithOidc": "Endelea na OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "Nenosiri chaguomsingi: CHANGEME (isipokuwa INITIAL_PASSWORD iliwekwa)",
+ "Authorization": "Uidhinishaji",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "Inasubiri uidhinishaji...",
+ "waitingForGoogleAuthorization": "Inasubiri uidhinishaji wa Google...",
+ "waitingForOpenAIAuthorization": "Inasubiri uidhinishaji wa OpenAI...",
+ "waitingForAntigravityAuthorization": "Inasubiri uidhinishaji wa Antigravity...",
+ "waitingForQoderAuthorization": "Inasubiri uidhinishaji wa Qoder...",
+ "exchangingCodeForTokens": "Inabadilisha msimbo kuwa tokeni...",
+ "nodeIncompatibleTitle": "Toleo la Node.js Lisilooana",
+ "nodeIncompatibleDesc": "Unatumia Node.js {version}, ambalo haliruhusiwi na sera ya OmniRoute ya mazingira salama ya utekelezaji. Tumia toleo la Node.js 20.x au 22.x LTS lililowekewa viraka.",
+ "nodeIncompatibleFixLabel": "Suluhisho: sakinisha toleo la Node.js 22 LTS lililowekewa viraka",
+ "nodeIncompatibleHint": "OmniRoute inahitaji Node.js 22.22.2+ (22.x LTS) au 24.0.0+ (24.x LTS). Node 24 LTS inapendekezwa.",
"resetViaAppDataTitle": "Rekebisha kupitia Takwimu za Programu",
"resetViaAppDataDescription": "Futa faili la mipangilio kutoka kwenye saraka ya data ya programu ili kurekebisha nenosiri lako:",
"quitDesktopApp": "Funga programu ya desktop ya OmniRoute kabisa",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "Nenda kwenye ukurasa wa mwanzo",
+ "toggleMenu": "Fungua au funga menyu",
+ "featuresLink": "Vipengele",
+ "docsLink": "Nyaraka",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "versionLive": "v1.0 sasa inapatikana",
+ "oneEndpoint": "Endpoint Moja kwa",
+ "allProviders": "Watoa Huduma Wote wa AI",
+ "heroDescription": "Proksi ya endpoint ya AI yenye dashibodi ya wavuti—toleo la JavaScript la CLIProxyAPI. Hufanya kazi kwa urahisi na Claude Code, OpenAI Codex, Cline, RooCode na zana nyingine za CLI.",
+ "getStarted": "Anza Kutumia",
+ "viewOnGithub": "Tazama kwenye GitHub",
+ "powerfulFeatures": "Vipengele Madhubuti",
+ "featuresSubtitle": "Kila kitu unachohitaji ili kudhibiti miundombinu yako ya AI mahali pamoja, kilichoundwa kukua kulingana na mahitaji.",
+ "featureUnifiedEndpointTitle": "Endpoint Iliyounganishwa",
+ "featureUnifiedEndpointDesc": "Fikia watoa huduma wote kupitia URL moja ya kawaida ya API.",
+ "featureEasySetupTitle": "Usanidi Rahisi",
+ "featureEasySetupDesc": "Anza kutumia ndani ya dakika chache kwa amri ya npx.",
+ "featureModelFallbackTitle": "Ubadilishaji wa Muundo Mbadala",
+ "featureModelFallbackDesc": "Badilisha watoa huduma kiotomatiki panapotokea hitilafu au ucheleweshaji mkubwa.",
+ "featureUsageTrackingTitle": "Ufuatiliaji wa Matumizi",
+ "featureUsageTrackingDesc": "Uchanganuzi wa kina na ufuatiliaji wa gharama katika miundo yote.",
+ "featureOAuthApiKeysTitle": "OAuth na Funguo za API",
+ "featureOAuthApiKeysDesc": "Dhibiti vitambulisho kwa usalama katika hifadhi moja.",
+ "featureCloudSyncTitle": "Usawazishaji wa Wingu",
+ "featureCloudSyncDesc": "Sawazisha usanidi wako kwenye vifaa vyote papo hapo.",
+ "featureCliSupportTitle": "Usaidizi wa CLI",
+ "featureCliSupportDesc": "Hufanya kazi na Claude Code, Codex, Cline, Cursor, na nyinginezo.",
+ "featureDashboardTitle": "Dashibodi",
+ "featureDashboardDesc": "Dashibodi ya kuona kwa uchanganuzi wa trafiki wa wakati halisi.",
+ "howItWorks": "Jinsi OmniRoute Inavyofanya Kazi",
+ "howItWorksDescription": "Data hutiririka kwa urahisi kutoka kwenye programu yako kupitia safu yetu mahiri ya uelekezaji hadi kwa mtoa huduma anayefaa zaidi kwa kazi hiyo.",
+ "howItWorksStep1Title": "1. CLI na SDK",
+ "howItWorksStep1Description": "Maombi yako huanzia kwenye zana unazopenda au SDK yetu iliyounganishwa. Badilisha tu URL ya msingi.",
+ "howItWorksStep2Title": "2. Kitovu cha OmniRoute",
+ "howItWorksStep2Description": "Injini yetu huchanganua kidokezo, hukagua hali ya watoa huduma, na kuelekeza kwa ucheleweshaji au gharama ya chini zaidi.",
+ "howItWorksStep3Title": "3. Watoa Huduma za AI",
+ "howItWorksStep3Description": "Ombi hutekelezwa papo hapo na OpenAI, Anthropic, Gemini, au wengine.",
+ "getStartedIn30Seconds": "Anza Ndani ya Sekunde 30",
+ "getStartedDescription": "Sakinisha OmniRoute, sanidi watoa huduma wako kupitia dashibodi ya wavuti, na uanze kuelekeza maombi ya AI.",
+ "installOmniRoute": "Sakinisha OmniRoute",
+ "installStepDescription": "Endesha amri ya npx ili kuanzisha seva papo hapo",
+ "openDashboard": "Fungua Dashibodi",
+ "openDashboardStepDescription": "Sanidi watoa huduma na funguo za API kupitia kiolesura cha wavuti",
+ "routeRequests": "Elekeza Maombi",
+ "routeRequestsStepDescription": "Elekeza zana zako za CLI kwenye {endpoint}",
+ "terminal": "terminali",
+ "copy": "Nakili",
+ "copied": "✓ Imenakiliwa",
+ "startingOmniRoute": "Inaanzisha OmniRoute...",
+ "serverRunningOnLabel": "Seva inaendeshwa kwenye",
+ "dashboardLabel": "Dashibodi",
+ "readyToRoute": "Tayari kuelekeza! ✓",
+ "configureProvidersNote": "📝 Sanidi watoa huduma kwenye dashibodi au tumia vigeu vya mazingira",
+ "dataLocation": "Mahali Data Ilipo:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "Bidhaa",
+ "dashboardLink": "Dashibodi",
+ "changelog": "Orodha ya Mabadiliko",
+ "resources": "Rasilimali",
+ "documentation": "Nyaraka",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "Masuala ya Kisheria",
+ "mitLicense": "Leseni ya MIT",
+ "footerTagline": "Endpoint iliyounganishwa kwa ajili ya uzalishaji wa AI. Unganisha, elekeza, na udhibiti watoa huduma wako wa AI kwa urahisi.",
+ "copyright": "© {year} OmniRoute. Haki zote zimehifadhiwa.",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "Mchoro shirikishi unaonekana kwenye kompyuta ya mezani",
+ "ctaTitle": "Uko Tayari Kurahisisha Miundombinu Yako ya AI?",
+ "ctaDescription": "Jiunge na wasanidi programu wanaorahisisha miunganisho yao ya AI kwa kutumia OmniRoute. Ni chanzo huria na ni bure kuanza.",
+ "startFree": "Anza Bila Malipo",
+ "readDocumentation": "Soma Nyaraka",
"company": "Kampuni",
"pricing": "Bei",
"apiReference": "Marejeo ya API",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "Majadiliano ya Jamii"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "Nyaraka",
+ "quickStart": "Anza Haraka",
"deploymentGuides": "Miongozo ya Usambazaji",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "Vipengele",
+ "supportedProviders": "Watoa Huduma Wanaotumika",
+ "supportedProvidersToc": "Watoa Huduma",
+ "commonUseCases": "Matumizi ya Kawaida",
+ "clientCompatibility": "Uoanifu wa Kiteja",
+ "protocolsToc": "Itifaki",
+ "apiReference": "Rejeleo la API",
+ "managementApiReference": "Rejeleo la API ya Usimamizi",
+ "managementApiDescription": "Endpoint za kiotomatiki za sajili ya proksi, ugawaji wa mawanda, na uhamishaji wa proksi za zamani.",
+ "method": "Mbinu",
+ "path": "Njia",
+ "notes": "Maelezo",
+ "modelPrefixes": "Viambishi Awali vya Modeli",
+ "prefix": "Kiambishi Awali",
+ "troubleshooting": "Utatuzi wa Matatizo",
+ "supportsChat": "Inatumia endpoint za gumzo na majibu.",
+ "oauthAutoRefresh": "Muunganisho wa OAuth wenye uonyeshaji upya wa tokeni kiotomatiki.",
+ "fullStreaming": "Usaidizi kamili wa utiririshaji kwa modeli zote.",
+ "docsLabel": "Nyaraka",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "Fungua Dashibodi",
+ "endpointPage": "Ukurasa wa Endpoint",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "Ripoti Tatizo",
+ "onThisPage": "Kwenye ukurasa huu",
+ "documentationVersion": "Nyaraka - v{version}",
+ "quickStartStep1Title": "1. Sakinisha na uendeshe",
+ "quickStartStep1Prefix": "Endesha",
+ "quickStartStep1Middle": "au nakili kutoka GitHub na uendeshe",
+ "quickStartStep2Title": "2. Unda ufunguo wa API",
+ "quickStartStep2Text": "Nenda kwenye Endpoint -> Registered Keys. Tengeneza ufunguo mmoja kwa kila mazingira.",
+ "quickStartStep3Title": "3. Unganisha watoa huduma",
+ "quickStartStep3Text": "Ongeza akaunti za watoa huduma kupitia kuingia kwa OAuth, ufunguo wa API, au muunganisho wa kiotomatiki wa kiwango cha bure.",
+ "quickStartStep4Title": "4. Weka URL msingi ya mteja",
+ "quickStartStep4Prefix": "Elekeza IDE au kiteja chako cha API kwenye",
+ "quickStartStep4Suffix": "Tumia kiambishi awali cha mtoa huduma, kwa mfano",
"deploySetupTitle": "Mwongozo wa Kuweka",
"deploySetupText": "Usakinishaji wa hatua kwa hatua, usanidi wa mazingira, na mapitio ya mara ya kwanza ya OmniRoute.",
"deployElectronTitle": "Desktop ya elektroni",
@@ -10071,161 +10082,161 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Sakinisha OmniRoute kama Programu Inayoendelea ya Wavuti kwenye vivinjari vya Android, iOS na eneo-kazi.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "Endesha OmniRoute bila kiolesura kwenye Android kupitia Termux. Fikia dashibodi kutoka kwenye kivinjari chako cha simu.",
+ "featureRoutingTitle": "Uelekezaji kwa Watoa Huduma Wengi",
+ "featureRoutingText": "Elekeza maombi kwa watoa huduma 30+ wa AI kupitia endpoint moja inayooana na OpenAI. Inatumia API za gumzo, majibu, sauti na picha.",
+ "featureCombosTitle": "Mikusanyiko na Usawazishaji",
+ "featureCombosText": "Unda mikusanyiko ya modeli yenye misururu ya mbadala na mikakati ya usawazishaji: kwa zamu, kipaumbele, nasibu, iliyotumika kwa kiwango cha chini, na iliyoboreshwa kwa gharama.",
+ "featureUsageTitle": "Ufuatiliaji wa Matumizi na Gharama",
+ "featureUsageText": "Kuhesabu tokeni kwa wakati halisi, kukokotoa gharama kwa kila mtoa huduma/modeli, na uchanganuzi wa kina wa matumizi kulingana na ufunguo wa API na akaunti.",
+ "featureAnalyticsTitle": "Dashibodi ya Uchanganuzi",
+ "featureAnalyticsText": "Uchanganuzi unaoonekana wenye chati za maombi, tokeni, hitilafu, muda wa kusubiri, gharama na umaarufu wa modeli kadiri muda unavyopita.",
+ "featureHealthTitle": "Ufuatiliaji wa Afya ya Mfumo",
+ "featureHealthText": "Ukaguzi wa moja kwa moja wa afya ya mfumo, hali ya mtoa huduma, hali za circuit breaker, na utambuzi wa kiotomatiki wa vikomo vya kasi wenye ucheleweshaji unaoongezeka kwa kasi.",
+ "featureCliTitle": "Zana za CLI",
+ "featureCliText": "Dhibiti usanidi wa IDE, hamisha/leta nakala rudufu, gundua wasifu wa codex, na usanidi mipangilio kutoka kwenye dashibodi.",
+ "featureSecurityTitle": "Usalama na Sera",
+ "featureSecurityText": "Uthibitishaji kwa ufunguo wa API, uchujaji wa IP, ulinzi dhidi ya prompt injection, sera za vikoa, usimamizi wa vipindi, na uwekaji kumbukumbu za ukaguzi.",
+ "featureCloudSyncTitle": "Usawazishaji wa Wingu",
+ "featureCloudSyncText": "Sawazisha usanidi wako kwenye Cloudflare Workers kwa ufikiaji wa mbali wenye vitambulisho vilivyosimbwa kwa njia fiche na uhamishaji wa kiotomatiki kwenda mfumo mbadala.",
+ "providersAcrossConnectionTypes": "Watoa huduma {count} katika aina tatu za muunganisho.",
+ "manageProviders": "Dhibiti Watoa Huduma",
+ "providersCount": "Watoa huduma {count}",
+ "providerTypeFree": "Kiwango cha Bure",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "Ufunguo wa API",
+ "useCaseSingleEndpointTitle": "Endpoint moja kwa watoa huduma wengi",
+ "useCaseSingleEndpointText": "Elekeza viteja kwenye URL msingi moja na uelekeze kwa kutumia kiambishi awali cha modeli (kwa mfano: gh/, cc/, kr/, openai/).",
+ "useCaseFallbackTitle": "Mbadala na ubadilishaji wa modeli kwa kutumia mikusanyiko",
+ "useCaseFallbackText": "Unda modeli za mkusanyiko katika Dashboard na udumishe usanidi thabiti wa kiteja huku watoa huduma wakibadilishana kwa ndani.",
+ "useCaseUsageVisibilityTitle": "Mwonekano wa matumizi, gharama na utatuzi wa hitilafu",
+ "useCaseUsageVisibilityText": "Fuatilia tokeni na gharama kulingana na mtoa huduma, akaunti na ufunguo wa API katika vichupo vya Usage na Analytics.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "URL ya msingi",
+ "chatEndpointLabel": "Endpoint ya gumzo",
+ "modelRecommendationLabel": "Pendekezo la modeli: kiambishi awali bayana",
+ "clientCodexTitle": "Modeli za Codex / GitHub Copilot",
+ "clientCodexBullet1": "Tumia vitambulisho vya modeli vyenye",
+ "clientCodexBullet2": "Modeli za familia ya Codex huelekezwa kiotomatiki kwenda",
+ "clientCodexBullet3": "Modeli zisizo za Codex huendelea kwenye",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "Tumia",
+ "clientCursorBullet1Suffix": "kiambishi awali kwa modeli za Cursor.",
+ "clientCursorBullet2": "Muunganisho wa OAuth - ingia kutoka kwenye ukurasa wa Providers.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "Tumia",
+ "clientClaudeBullet1Middle": "kiambishi awali cha (Claude) au",
+ "clientClaudeBullet1Suffix": "cha (Antigravity).",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "Tumia OmniRoute kama URL ya msingi inayooana na OpenAI na uhifadhi viambishi awali bayana vya watoa huduma kwa uelekezaji thabiti.",
+ "clientWindsurfBullet2": "Elekeza modeli kwenye `/v1/chat/completions` kwa trafiki ya jumla na uhifadhi `/v1/responses` kwa mitiririko ya mtindo wa Codex.",
+ "clientWindsurfBullet3": "Tumia Dashboard -> CLI Tools kupata mwongozo wa usanidi wa Windsurf ulio tayari kutumika.",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "Cline hufanya kazi vizuri zaidi kwa viambishi awali bayana vya mtoa huduma/modeli ili kipanga njia kisilazimike kamwe kukisia mfumo wa nyuma.",
+ "clientClineBullet2": "Tumia `/v1/chat/completions` kwa modeli za jumla na utumie tena URL ileile ya msingi ya OmniRoute kwenye akaunti tofauti.",
+ "clientClineBullet3": "Tumia dashibodi ya Providers kuthibitisha OAuth/ufunguo wa API kabla ya kutatua matatizo ya wakati wa utekelezaji wa Cline.",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "Tumia OmniRoute kama URL thabiti ya msingi huku ukibadilisha akaunti au michanganyiko ya watoa huduma inayoitumia.",
+ "clientKimiBullet2": "Pendelea modeli zenye viambishi awali katika mitiririko ya usimbaji ili urejeshaji mbadala na rekodi ya ukaguzi viendelee kuwa bayana.",
+ "clientKimiBullet3": "Tumia `/v1/responses` unapotaka uelekezaji asilia wa mtindo wa Responses kwa wateja wanaotumia zana.",
+ "protocolsTitle": "Itifaki: MCP na A2A",
+ "protocolsDescription": "OmniRoute hutoa itifaki mbili za uendeshaji pamoja na API zinazooana na OpenAI: MCP kwa utekelezaji wa zana na A2A kwa mitiririko ya kazi kati ya mawakala.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Tumia MCP kupitia stdio ili kuruhusu wateja kugundua na kuita zana za OmniRoute kwa mwonekano wa ukaguzi.",
+ "protocolMcpStep1": "Anzisha usafirishaji wa MCP kwa `omniroute --mcp`.",
+ "protocolMcpStep2": "Elekeza kiteja chako cha MCP kwenye usafirishaji wa stdio.",
+ "protocolMcpStep3": "Ita `omniroute_get_health` na `omniroute_list_combos` ili kuthibitisha muunganisho.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "Tumia A2A JSON-RPC kuwasilisha kazi kwa usawazishaji au kupitia utiririshaji wa SSE.",
+ "protocolA2aStep1": "Soma `/.well-known/agent.json` kwa ugunduzi wa wakala.",
+ "protocolA2aStep2": "Tuma maombi ya `message/send` au `message/stream` kwenda `POST /a2a`.",
+ "protocolA2aStep3": "Dhibiti mzunguko wa maisha wa kazi kwa `tasks/get` na `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Utatuzi wa Matatizo ya Itifaki",
+ "protocolTroubleshooting1": "Ikiwa hali ya MCP iko nje ya mtandao, thibitisha kuwa mchakato wa stdio unaendelea na faili ya mpigo wa moyo inasasishwa.",
+ "protocolTroubleshooting2": "Ikiwa kazi za A2A zitasalia katika hali ya `working`, kagua `/api/a2a/tasks/:id` na matukio ya mtiririko ili kupata hali ya mwisho.",
+ "protocolTroubleshooting3": "Tumia `/dashboard/mcp` na `/dashboard/a2a` kwa vidhibiti vya uendeshaji na mwonekano wa ukaguzi.",
+ "endpointChatNote": "Endpoint ya gumzo inayooana na OpenAI (chaguomsingi).",
+ "endpointResponsesNote": "Endpointi ya Responses API (Codex, mfululizo wa o).",
+ "endpointModelsNote": "Katalogi ya modeli kwa watoa huduma wote waliounganishwa.",
+ "endpointAudioNote": "Unukuzi wa sauti (Deepgram, AssemblyAI).",
+ "endpointSpeechNote": "Uzalishaji wa matamshi kutoka kwa maandishi (ElevenLabs, OpenAI TTS).",
+ "endpointEmbeddingsNote": "Uzalishaji wa upachikaji wa maandishi (OpenAI, Cohere, Voyage).",
+ "endpointImagesNote": "Uzalishaji wa picha (NanoBanana).",
+ "endpointRewriteChatNote": "Kisaidizi cha kuandika upya kwa wateja wasio na /v1.",
+ "endpointRewriteResponsesNote": "Kisaidizi cha kuandika upya kwa Responses zisizo na /v1.",
+ "endpointRewriteModelsNote": "Kisaidizi cha kuandika upya kwa ugunduzi wa modeli bila /v1.",
+ "mgmtProxiesListNote": "Orodhesha vipengee vya sajili ya proksi vilivyohifadhiwa (inaauni ugawaji katika kurasa).",
+ "mgmtProxiesCreateNote": "Unda kipengee cha proksi kinachoweza kutumika tena katika sajili.",
+ "mgmtProxiesHealthNote": "Pata vipimo vya afya vya saa 24/vinavyosonga kwa kila proksi iliyohifadhiwa kutoka kwenye kumbukumbu za proksi.",
+ "mgmtProxiesBulkAssignNote": "Weka au ondoa proksi moja kwenye vitambulisho vingi vya mawanda katika ombi moja.",
+ "mgmtAssignmentsListNote": "Orodhesha migawo ya proksi kwa scope, scope_id, au proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Weka au ondoa proksi kwa mawanda ya global/provider/account/combo.",
+ "mgmtLegacyMigrationNote": "Leta ramani za zamani za proxyConfig katika migawo ya sajili.",
+ "modelPrefixesDescriptionStart": "Tumia kiambishi awali cha mtoa huduma kabla ya jina la modeli ili kuelekeza kwa mtoa huduma mahususi. Mfano:",
+ "modelPrefixesDescriptionEnd": "huelekeza kwa GitHub Copilot.",
+ "provider": "Mtoa huduma",
+ "type": "Aina",
+ "troubleshootingModelRouting": "Ikiwa mteja atashindwa katika uelekezaji wa modeli, tumia provider/model bayana (kwa mfano: gh/gpt-5.1-codex).",
+ "troubleshootingAmbiguousModels": "Ukipokea hitilafu za utata wa modeli, chagua kiambishi awali cha mtoa huduma badala ya kitambulisho cha modeli pekee.",
+ "troubleshootingCodexFamily": "Kwa modeli za familia ya GitHub Codex, acha modeli ikiwa gh/codex-model; kipanga njia huchagua /responses kiotomatiki.",
+ "troubleshootingTestConnection": "Tumia Dashboard > Providers > Test Connection kabla ya kujaribu kutoka kwenye IDE au wateja wa nje.",
+ "troubleshootingCircuitBreaker": "Ikiwa mtoa huduma anaonyesha kuwa circuit breaker imefunguka, subiri kipindi cha utulivu au angalia ukurasa wa Health kwa maelezo.",
+ "troubleshootingOAuth": "Kwa watoa huduma wa OAuth, thibitisha utambulisho upya ikiwa tokeni zimeisha muda wake. Angalia kiashirio cha hali kwenye kadi ya mtoa huduma.",
+ "endpointCompletionsNote": "Endpointi ya zamani ya ukamilishaji kwa uzalishaji wa maandishi.",
+ "endpointModerationsNote": "Udhibiti wa maudhui na uainishaji wa usalama.",
+ "endpointRerankNote": "Upangaji upya wa nyaraka kwa uzalishaji ulioboreshwa kwa urejeshaji (Cohere, Jina).",
+ "endpointSearchNote": "Utafutaji wa wavuti kwa kutumia watoa huduma 5 (Serper, Brave, Exa, Tavily, Perplexity).",
+ "endpointSearchAnalyticsNote": "Uchanganuzi na vipimo vya maombi ya utafutaji.",
+ "endpointVideoNote": "Uzalishaji wa video (mitiririko ya kazi ya ComfyUI, SD WebUI).",
+ "endpointMusicNote": "Uzalishaji wa muziki kupitia mitiririko ya kazi ya ComfyUI.",
+ "endpointMessagesNote": "Endpointi ya ujumbe asilia ya Anthropic.",
+ "endpointCountTokensNote": "Hesabu tokeni za data ya ujumbe iliyotolewa.",
+ "endpointFilesNote": "Upakiaji wa faili kwa ingizo za hali anuwai.",
+ "endpointBatchesNote": "Uchakataji wa makundi kwa maombi mengi ya API.",
+ "endpointWsNote": "Endpointi ya WebSocket kwa utiririshaji wa wakati halisi.",
+ "mgmtProvidersListNote": "Orodhesha miunganisho yote ya watoa huduma iliyosajiliwa.",
+ "mgmtProvidersCreateNote": "Unda muunganisho mpya wa mtoa huduma.",
+ "mgmtProvidersUpdateNote": "Sasisha muunganisho uliopo wa mtoa huduma.",
+ "mgmtProvidersDeleteNote": "Futa muunganisho wa mtoa huduma.",
+ "mgmtProvidersTestNote": "Jaribu muunganisho na uthibitishaji kwa mtoa huduma.",
+ "mgmtProvidersModelsNote": "Orodhesha modeli zinazopatikana kwa mtoa huduma mahususi.",
+ "mgmtSettingsGetNote": "Pata mipangilio ya sasa ya programu.",
+ "mgmtSettingsUpdateNote": "Sasisha mipangilio ya programu.",
+ "mgmtPayloadRulesGetNote": "Pata kanuni za ubadilishaji wa payload.",
+ "mgmtPayloadRulesUpdateNote": "Sasisha kanuni za ubadilishaji wa payload.",
+ "mcpToolsTitle": "Zana za MCP",
+ "mcpToolsDescription": "OmniRoute hutoa zana {count} kupitia Model Context Protocol kwa uratibu wa mawakala.",
+ "mcpToolsCount": "Zana {count}",
+ "mcpToolsToc": "Zana za MCP",
+ "mcpToolsRoutingTitle": "Uelekezaji na Ugunduzi",
+ "mcpToolsRoutingDesc": "Ukaguzi wa afya, usimamizi wa combo, ufuatiliaji wa mgao, ripoti za gharama na ufikiaji wa katalogi ya modeli.",
+ "mcpToolsOperationsTitle": "Uendeshaji na Mkakati",
+ "mcpToolsOperationsDesc": "Uigaji wa njia, vizuizi vya bajeti, ubadilishaji wa mkakati, wasifu wa ustahimilivu na vipimo vya watoa huduma.",
+ "mcpToolsCacheTitle": "Usimamizi wa Akiba",
+ "mcpToolsCacheDesc": "Tazama takwimu za akiba na ufute akiba za kisemantiki au sahihi.",
"mcpToolsCompressionTitle": "Injini za Kukandamiza",
"mcpToolsCompressionDesc": "Sanidi mbano wa RTK/Brotli, injini za kubadilishana, na kagua uchanganuzi wa mbano kwa mseto.",
"mcpToolsOneProxyTitle": "1 Wakala / Vichungi",
"mcpToolsOneProxyDesc": "Dhibiti seva mbadala zinazotoka nje, zungusha IP za makazi, na ukague afya ya seva mbadala.",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "Kumbukumbu",
+ "mcpToolsMemoryDesc": "Tafuta, ongeza na ufute maingizo ya kudumu ya kumbukumbu ya mazungumzo.",
+ "mcpToolsSkillsTitle": "Ujuzi",
+ "mcpToolsSkillsDesc": "Orodhesha, washa, tekeleza na ufuatilie utekelezaji wa ujuzi maalum.",
+ "featureAutoComboTitle": "Mchanganyiko Otomatiki",
+ "featureAutoComboText": "Unda combo zilizoboreshwa kiotomatiki kulingana na watoa huduma wako waliounganishwa, mifumo ya matumizi na uwezo wa modeli.",
+ "featureSearchTitle": "Utafutaji wa Wavuti",
+ "featureSearchText": "Utafutaji jumuishi wa wavuti wenye watoa huduma 5 (Serper, Brave, Exa, Tavily, Perplexity), ukiwemo uchanganuzi na ufuatiliaji wa gharama.",
+ "featureMemoryTitle": "Mfumo wa Kumbukumbu",
+ "featureMemoryText": "Kumbukumbu endelevu ya mazungumzo yenye uchimbaji, uingizaji, urejeshaji na ufupishaji katika vipindi mbalimbali.",
+ "featureSkillsTitle": "Mfumo wa Ujuzi",
+ "featureSkillsText": "Mfumo wa ujuzi unaoweza kupanuliwa wenye ujuzi uliojengewa ndani na maalum, utekelezaji katika sandbox, uingiliaji wa maombi na uingizaji wa muktadha.",
+ "featureAcpTitle": "Mawasiliano ya Mawakala",
+ "featureAcpText": "Rejesta ya Agent Communication Protocol (ACP) ya kusimamia mtiririko wa kazi kati ya mawakala na uratibu wa zana.",
+ "protocolAcpTitle": "ACP (Mawasiliano ya Mawakala)",
+ "protocolAcpDesc": "Sajili na usimamie mawakala kupitia rejesta ya ACP kwa mawasiliano kati ya mawakala na ushiriki wa zana.",
+ "protocolAcpStep1": "Nenda kwenye Dashboard → Agents ili kuona mawakala wa ACP waliosajiliwa.",
+ "protocolAcpStep2": "Sajili mawakala wapya pamoja na uwezo wao na usanidi wa endpoint.",
+ "protocolAcpStep3": "Tumia CLI Tools kusanidi njia za mawasiliano ya mawakala.",
"metadataTitleTemplate": "%s — Nyaraka za OmniRoute",
"metadataDefaultTitle": "Hati ya OmniRoute",
"metadataDescription": "Hati kamili ya lango la OmniRoute AI — usanidi, API, ufinyazi, uwekaji, na zaidi.",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "Sera ya Faragha",
+ "termsOfService": "Masharti ya Huduma",
+ "providerConfigurations": "Mipangilio ya watoa huduma",
+ "apiKeys": "Funguo za API",
+ "usageLogs": "Kumbukumbu za matumizi",
+ "applicationSettings": "Mipangilio ya programu",
+ "viewExportAnalytics": "Tazama na uhamishe nje takwimu za matumizi",
+ "clearHistory": "Futa historia ya matumizi wakati wowote",
+ "configureRetention": "Sanidi sera za kuhifadhi kumbukumbu",
+ "backupRestore": "Hifadhi nakala rudufu na urejeshe kanzidata yako",
+ "privacyMetadataTitle": "Sera ya Faragha | OmniRoute",
+ "privacyMetadataDescription": "Sera ya faragha ya kipanga njia mbadala cha API ya AI cha OmniRoute.",
+ "termsMetadataTitle": "Masharti ya Huduma | OmniRoute",
+ "termsMetadataDescription": "Masharti ya huduma ya kipanga njia mbadala cha API ya AI cha OmniRoute.",
+ "backToHome": "Rudi kwenye ukurasa wa mwanzo",
+ "lastUpdated": "Ilisasishwa mwisho: {date}",
+ "policyLastUpdatedDate": "Februari 13, 2026",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "Una maswali? Tembelea",
+ "githubRepository": "hazina yetu ya GitHub",
+ "privacySection1Title": "1. Usanifu Unaotanguliza Mfumo wa Ndani",
+ "privacySection1Text": "OmniRoute imeundwa kama programu inayotanguliza mfumo wa ndani. Uchakataji na uhifadhi wote wa data hufanyika kabisa kwenye mashine yako. Hakuna seva kuu inayokusanya taarifa zako.",
+ "privacySection2Title": "2. Data Tunayohifadhi",
+ "privacyDataStoredIn": "Data ifuatayo huhifadhiwa ndani ya",
+ "privacyDataProviderConfigurationsDesc": "URL za muunganisho, aina za watoa huduma na mipangilio ya kipaumbele",
+ "privacyDataApiKeysDesc": "imesimbwa kwa njia fiche na kuhifadhiwa ndani kwa ajili ya uthibitishaji na watoa huduma wa AI",
+ "privacyDataUsageLogsDesc": "idadi ya maombi, matumizi ya tokeni, majina ya modeli, mihuri ya muda na nyakati za majibu",
+ "privacyDataApplicationSettingsDesc": "mapendeleo ya mandhari, mkakati wa uelekezaji na usanidi wa michanganyiko",
+ "privacySection3Title": "3. Hakuna Telemetria",
+ "privacySection3Text": "OmniRoute haikusanyi telemetria, takwimu za uchanganuzi wala ripoti za hitilafu. Hakuna data inayotumwa kwetu au kwa mhusika mwingine yeyote. Mifumo yako ya matumizi, miito ya API na usanidi wako hubaki kuwa wa faragha kabisa.",
+ "privacySection4Title": "4. Watoa Huduma wa AI wa Wahusika Wengine",
+ "privacySection4Text": "Unapopiga miito ya API kupitia OmniRoute, maombi yako hutumwa kwa watoa huduma wa AI uliowasanidi (kwa mfano: OpenAI, Anthropic, Google). Watoa huduma hawa wana sera zao za faragha zinazosimamia jinsi wanavyoshughulikia data yako. Tafadhali pitia:",
+ "privacyOpenAiPolicy": "Sera ya Faragha ya OpenAI",
+ "privacyAnthropicPolicy": "Sera ya Faragha ya Anthropic",
+ "privacyGooglePolicy": "Sera ya Faragha ya Google",
+ "privacySection5Title": "5. Usawazishaji wa Wingu (Hiari)",
+ "privacySection5Text": "Ukiwasha kipengele cha hiari cha usawazishaji wa wingu, usanidi wa watoa huduma na funguo za API zinaweza kutumwa kwenye ncha ya wingu iliyosanidiwa. Kipengele hiki kimezimwa kwa chaguomsingi na kinahitaji idhini ya wazi.",
+ "privacySection6Title": "6. Uwekaji Kumbukumbu",
+ "privacyLoggingIntro": "Kumbukumbu za maombi zinaweza kusanidiwa kupitia mipangilio ya dashibodi. Unaweza:",
+ "privacySection7Title": "7. Haki Zako",
+ "privacySection7TextStart": "Kwa kuwa data yote huhifadhiwa ndani, una udhibiti kamili. Unaweza kufuta data yako wakati wowote kwa kuondoa",
+ "privacySection7TextEnd": "saraka au kutumia vipengele vya kuhifadhi nakala rudufu na kurejesha kanzidata katika dashibodi.",
+ "termsSection1Title": "1. Muhtasari",
+ "termsSection1Text": "OmniRoute ni kipanga njia mbadala cha API ya AI kinachotanguliza mfumo wa ndani na kufanya kazi kabisa kwenye mashine yako. Huelekeza maombi kwa watoa huduma wengi wa AI kwa kutumia usawazishaji wa mzigo, uhamisho wa kiotomatiki wakati wa hitilafu na ufuatiliaji wa matumizi.",
+ "termsSection2Title": "2. Majukumu ya Mtumiaji",
+ "termsResponsibilityApiKeys": "Unawajibika kikamilifu kudhibiti funguo zako za API na vitambulisho vya watoa huduma wengine wa AI (OpenAI, Anthropic, Google, n.k.).",
+ "termsResponsibilityCompliance": "Lazima uzingatie masharti ya huduma ya kila mtoa huduma wa AI ambaye API yake unaifikia kupitia OmniRoute.",
+ "termsResponsibilitySecurity": "Unawajibika kwa usalama wa usakinishaji wako wa ndani wa OmniRoute, ikiwa ni pamoja na kuweka nenosiri na kuzuia ufikiaji wa mtandao.",
+ "termsSection3Title": "3. Jinsi Inavyofanya Kazi",
+ "termsSection3Text": "OmniRoute hufanya kazi kama seva mbadala ya kati. Miito ya API inayotumwa kwa OmniRoute hutafsiriwa na kupelekwa kwa watoa huduma wako wa AI waliosanidiwa. OmniRoute haibadilishi maudhui ya maombi au majibu yako zaidi ya tafsiri inayohitajika ya itifaki.",
+ "termsSection4Title": "4. Ushughulikiaji wa Data",
+ "termsDataStoredLocally": "Data yote huhifadhiwa ndani ya mashine yako katika hifadhidata ya SQLite.",
+ "termsNoTransmission": "OmniRoute haitumi data yoyote kwa seva za nje isipokuwa uwashe vipengele vya usawazishaji wa wingu mwenyewe.",
+ "termsDataLocationText": "Kumbukumbu za matumizi, funguo za API na usanidi huhifadhiwa katika",
+ "termsSection5Title": "5. Kanusho",
+ "termsSection5Text": "OmniRoute hutolewa \"kama ilivyo\" bila udhamini wa aina yoyote. Hatuwajibiki kwa gharama zozote zinazotokana na matumizi ya API, kukatizwa kwa huduma au kupotea kwa data. Daima hifadhi nakala rudufu za usanidi wako.",
+ "termsSection6Title": "6. Programu Huria",
+ "termsSection6Text": "OmniRoute ni programu huria. Uko huru kuikagua, kuibadilisha na kuisambaza chini ya masharti ya leseni yake."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "Ajenti za CLI",
+ "description": "Gundua ajenti za CLI zilizosakinishwa kwenye mfumo wako. Ongeza ajenti maalum kwa ajili ya utambuzi wa kiotomatiki.",
+ "refresh": "Onyesha Upya",
+ "installed": "Imesakinishwa",
+ "notFound": "Haikupatikana",
+ "builtIn": "Iliyojengewa Ndani",
+ "custom": "Maalum",
+ "remove": "Ondoa",
+ "addCustomAgent": "Ongeza Ajenti Maalum",
+ "addCustomAgentDesc": "Sajili zana yoyote ya CLI ili iweze kutambuliwa. Itachanganuliwa kiotomatiki unapoonyesha upya.",
+ "agentName": "Jina la Ajenti",
+ "binaryName": "Jina la Faili Tekelezi",
+ "versionCommand": "Amri ya Toleo",
+ "spawnArgs": "Hoja za Kuanzisha",
+ "addAgent": "Ongeza Ajenti",
+ "scanning": "Inachanganua mfumo kutafuta ajenti za CLI...",
+ "opencodeIntegration": "Muunganisho wa OpenCode",
+ "opencodeDetected": "opencode {version} imetambuliwa",
+ "opencodeDesc": "Tengeneza {configFile} iliyo tayari kutumika ikiwa na URL msingi ya OmniRoute na modeli zote zinazopatikana — iweke kwenye mzizi wa mradi wako kisha utekeleze {command}.",
+ "downloadConfig": "Pakua {file}",
+ "downloaded": "Imepakuliwa!",
+ "setupGuideTitle": "Mwongozo wa usanidi",
+ "openCliTools": "Fungua Zana za CLI",
+ "setupGuideDetectCliTitle": "Tambua CLI zilizosakinishwa",
+ "setupGuideDetectCliDesc": "Bofya Onyesha Upya baada ya kusakinisha au kusasisha CLI ili OmniRoute iweze kuchanganua tena faili tekelezi na matoleo.",
+ "setupGuideCustomAgentTitle": "Sajili faili tekelezi maalum",
+ "setupGuideCustomAgentDesc": "Tumia Ongeza Ajenti Maalum wakati CLI yako haipo kwenye orodha iliyojengewa ndani. Toa jina la faili tekelezi na amri ya toleo.",
+ "setupGuideCommandMissingTitle": "Rekebisha hitilafu ya 'command not found'",
+ "setupGuideCommandMissingDesc": "Hakikisha amri ya CLI ipo kwenye PATH, fungua kipindi kipya cha terminal, kisha utekeleze Upyaishaji tena.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "Gumzo Rahisi",
+ "streaming": "Utiririshaji",
+ "system-prompt": "Maelekezo ya Mfumo",
+ "thinking": "Kufikiri",
+ "tool-calling": "Uitaji wa Zana",
+ "multi-turn": "Zamu Nyingi",
"vision": "Maono",
"schema-coercion": "Schema ya Schema"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "Kiolezo cha msingi cha gumzo chenye ujumbe wa mfumo",
+ "streaming": "Kiolezo cha majibu yanayotiririshwa",
+ "system-prompt": "Kiolezo chenye maelekezo maalum ya mfumo",
+ "thinking": "Kiolezo chenye bajeti ya kutoa hoja/kufikiri",
+ "tool-calling": "Kiolezo cha kuita zana/chaguo za kukokotoa",
+ "multi-turn": "Kiolezo cha mazungumzo ya zamu nyingi",
"vision": "Multimodal template na pembejeo picha",
"schema-coercion": "Pato-Muundo / Utekelezaji wa schema ya JSON"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "Wewe ni msaidizi wa AI mwenye kusaidia.",
+ "userGreeting": "Hujambo! Ninaweza kukusaidiaje leo?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "Andika hadithi kuhusu"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "Maana ya maisha ni nini?",
+ "systemInstruction": "Toa jibu la kina na la kifalsafa."
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "Eleza kompyuta ya kwanta"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "Jina la jiji la kupata taarifa za hali ya hewa",
+ "toolDescription": "Pata hali ya hewa ya sasa ya eneo",
+ "userWeather": "Hali ya hewa ikoje Tokyo?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "Wewe ni msaidizi mwenye kusaidia.",
+ "assistantExample": "Nitafurahi kukusaidia na hilo.",
+ "userInitial": "Ninahitaji msaada kuhusu",
+ "userFollowUp": "Unaweza kufafanua zaidi kuhusu hilo?"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "Usimamizi wa Akiba",
+ "description": "Fuatilia ufanisi wa akiba ya maelekezo ya mtoa huduma na utumiaji tena wa majibu ya kisemantiki ya ndani.",
+ "refresh": "Onyesha Upya",
+ "clearAll": "Futa Akiba ya Kisemantiki",
+ "memoryEntries": "Vipengee vya Kumbukumbu",
+ "memoryEntriesSub": "LRU ya ndani ya kumbukumbu",
+ "dbEntries": "Vipengee vya DB",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Mafanikio ya Akiba",
+ "cacheHitsSub": "kati ya jumla ya {total}",
+ "tokensSaved": "Tokeni Zilizookolewa",
+ "tokensSavedSub": "Makadirio kutokana na mafanikio",
+ "hitRate": "Kiwango cha Mafanikio",
+ "performance": "Utendaji wa Akiba",
+ "autoRefresh": "Huonyeshwa upya kiotomatiki kila sekunde {seconds}",
+ "hits": "Mafanikio",
+ "misses": "Makosa",
+ "total": "Jumla",
+ "behavior": "Tabia ya Akiba",
+ "behaviorDeterministic": "Ni maombi yasiyotiririshwa yenye temperature=0 pekee yanayohifadhiwa kwenye akiba.",
+ "behaviorBypass": "Pita pembeni kwa kutumia kichwa {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "TTL chaguomsingi: dakika 30. Sanidi kupitia {envVar}.",
+ "idempotency": "Safu ya Idempotensi",
+ "activeDedupKeys": "Funguo Amilifu za Uondoaji wa Nakala Rudufu",
+ "dedupWindow": "Kipindi cha Uondoaji wa Nakala Rudufu",
+ "clearSuccess": "Akiba ya kisemantiki imefutwa. Maingizo {count} yameondolewa.",
+ "clearError": "Imeshindwa kufuta akiba.",
+ "unavailable": "Akiba haipatikani",
+ "unavailableDesc": "Haikuweza kuleta takwimu za akiba. Hakikisha seva inaendeshwa.",
"loadingCacheAria": "Inapakia akiba",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "Akiba ya Prompti (Upande wa Mtoa Huduma)",
+ "semanticCache": "Akiba ya Kisemantiki",
+ "promptCacheSectionDesc": "Huonyesha shughuli za uhifadhi wa prompti kwenye akiba upande wa mtoa huduma kutoka kwenye historia ya matumizi, ili uweze kuona mahali udhibiti wa akiba unapotumika na kiasi cha matumizi tena ya ingizo unachopata.",
+ "promptTrendDesc": "Kiasi cha maombi kwa kila saa, ufunikaji wa akiba na kiasi cha usomaji kutoka kwenye akiba katika saa 24 zilizopita.",
+ "cachedRequests": "Maombi Yaliyohifadhiwa kwenye Akiba",
+ "cachedRequests24h": "Maombi Yaliyohifadhiwa kwenye Akiba (saa 24)",
+ "cacheHitRate": "Kiwango cha Mafanikio ya Akiba",
+ "cacheRate": "Kiwango cha Akiba",
+ "cacheRateDesc": "ya jumla ya maombi",
+ "cachedTokens": "Tokeni Zilizosomwa kutoka Akiba",
+ "cacheCreationTokens": "Tokeni Zilizoandikwa kwenye Akiba",
+ "cacheMetrics": "Vipimo vya Akiba ya Prompti",
+ "withCacheControl": "Yenye Udhibiti wa Akiba",
+ "cachedTokensRead": "Zilizosomwa kutoka akiba",
+ "cacheCreationWrite": "Zilizoandikwa kwenye akiba",
+ "cacheReuseRatio": "Uwiano wa Matumizi Tena ya Akiba",
+ "cacheReuseRatioDesc": "Tokeni zilizosomwa kutoka akiba / Jumla ya tokeni za ingizo",
+ "estCostSaved": "Makadirio ya Gharama Iliyookolewa",
+ "lastUpdated": "Ilisasishwa mara ya mwisho",
+ "hoursTracked": "saa zilizofuatiliwa",
+ "busiestHour": "Saa Yenye Shughuli Nyingi Zaidi",
+ "peakCacheRate": "Kiwango cha Juu Zaidi cha Akiba",
+ "trendHour": "Saa",
+ "activityVolume": "Shughuli",
+ "requestsShort": "maombi",
+ "inputShort": "Ingizo",
+ "cachedShort": "Zilizohifadhiwa",
+ "writeShort": "Andika",
+ "resetting": "Inaweka upya...",
+ "resetMetrics": "Weka Vipimo Upya",
+ "byProvider": "Uchanganuzi kwa Mtoa Huduma",
+ "providerCacheRateDesc": "Kila mtoa huduma huonyesha jumla ya tokeni za ingizo, tokeni zilizosomwa kutoka kwenye akiba, na tokeni zilizoandikwa kwenye akiba ili uweze kuthibitisha uwiano wa matumizi tena dhidi ya jumla ghafi.",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "Maombi",
+ "inputTokens": "Jumla ya Tokeni za Ingizo",
+ "cachedTokensCol": "Usomaji wa Akiba",
+ "cacheCreation": "Uandikaji kwenye Akiba",
+ "trend24h": "Mwenendo wa Akiba (saa 24)",
+ "peakCached": "Kilele kilichohifadhiwa",
+ "cached": "Zilizohifadhiwa",
+ "overview": "Muhtasari",
"tableProvider": "Mtoa huduma",
"tableModel": "Muundo",
"performanceTitle": "Utendaji",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "Akiba ya majibu bainifu ya OmniRoute. Ikiwashwa, maombi yanayojirudia yasiyo ya utiririshaji yenye temperature=0 yanaweza kuhudumiwa ndani ya mfumo bila kufikia mtoa huduma wa juu.",
+ "semanticCacheDisabledDesc": "Akiba ya kisemantiki imezimwa. OmniRoute itaruka matumizi ya ndani ya majibu hadi uiwashe tena katika Mipangilio.",
+ "semanticEntriesDesc": "Rekodi za akiba ya kisemantiki zilizohifadhiwa kwa sasa katika SQLite. Shughuli za akiba ya prompt za upande wa mtoa huduma hazijaorodheshwa hapa.",
+ "searchEntries": "Tafuta maingizo...",
+ "search": "Tafuta",
+ "loading": "Inapakia...",
+ "entriesLoadError": "Imeshindwa kupakia maingizo ya akiba ya kisemantiki.",
+ "noEntries": "Hakuna maingizo ya akiba yaliyopatikana",
+ "noPromptCacheData": "Bado hakuna shughuli za akiba ya prompt za upande wa mtoa huduma zilizorekodiwa.",
+ "noTrendData": "Hakuna shughuli za akiba ya prompt zilizorekodiwa katika saa 24 zilizopita.",
+ "signature": "Sahihi",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Iliundwa",
+ "expires": "Inaisha Muda",
+ "actions": "Vitendo",
+ "deduplicatedRequests": "Maombi Yaliyoondolewa Rudufu",
+ "savedCalls": "Miito ya API Iliyookolewa",
+ "totalProcessed": "Jumla ya Maombi Yaliyochakatwa",
+ "disabled": "Imezimwa",
+ "totalRequests": "Jumla ya Maombi",
"reasoningCache": "Kutoa Sababu Replay",
"reasoningCacheDesc": "Huhifadhi fikra za kielelezo kwa mtiririko wa simu wa zana za zamu nyingi",
"reasoningEntries": "Maingizo Amilifu",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}m zilizopita",
"hoursAgo": "{hours}h zilizopita",
"daysAgo": "{days}d zilizopita",
- "entries": "Entries"
+ "entries": "Maingizo"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
+ "levelGlobal": "Ya Jumla",
+ "levelProvider": "Mtoa Huduma",
+ "levelCombo": "Mchanganyiko",
+ "levelKey": "Ufunguo",
+ "levelDirect": "Moja kwa moja (bila proksi)",
+ "titleGlobal": "Usanidi wa Proksi wa Kimataifa",
+ "titleLevel": "Proksi ya {level} — {label}",
+ "loading": "Inapakia usanidi wa proksi...",
+ "inheritingFrom": "Inarithi kutoka",
+ "source": "Chanzo",
+ "savedProxy": "Proksi Iliyohifadhiwa",
+ "custom": "Maalum",
+ "selectSavedProxyPlaceholder": "Chagua proksi iliyohifadhiwa...",
+ "proxyType": "Aina ya Proksi",
+ "host": "Seva Pangishi",
+ "hostPlaceholder": "1.2.3.4 au proxy.example.com",
+ "port": "Mlango",
+ "authOptional": "Uthibitishaji (si lazima)",
+ "username": "Jina la mtumiaji",
+ "usernamePlaceholder": "Jina la mtumiaji",
+ "password": "Nenosiri",
+ "passwordPlaceholder": "Nenosiri",
+ "connected": "Imeunganishwa",
"ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "connectionFailed": "Muunganisho umeshindwa",
+ "testConnection": "Jaribu muunganisho",
+ "clear": "Futa",
+ "cancel": "Ghairi",
+ "save": "Hifadhi",
+ "errorSelectSavedProxy": "Tafadhali chagua kwanza proksi iliyohifadhiwa.",
+ "errorSelectProxyFirst": "Tafadhali chagua kwanza proksi.",
+ "errorProxyNotFound": "Proksi iliyochaguliwa haikupatikana.",
+ "errorClearSavedProxy": "Imeshindwa kufuta proksi iliyohifadhiwa",
+ "errorSaveProxy": "Imeshindwa kuhifadhi usanidi wa proksi",
+ "errorClearProxy": "Imeshindwa kufuta usanidi wa proksi",
+ "errorSocks5Hidden": "SOCKS5 imesanidiwa lakini imefichwa kwa sababu NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "Unganisha {providerName}",
+ "waiting": "Inasubiri uidhinishaji",
+ "completeAuthInPopup": "Kamilisha uidhinishaji katika dirisha ibukizi.",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "Dirisha ibukizi limezuiwa? Weka URL mwenyewe",
+ "deviceCodeVisitUrl": "Tembelea URL iliyo hapa chini na uweke msimbo:",
+ "deviceCodeVerificationUrl": "URL ya Uthibitishaji",
+ "deviceCodeYourCode": "Msimbo wako",
+ "deviceCodeWaiting": "Inasubiri uidhinishaji...",
"googleLoopbackTitle": "Kujiunga na Google haiwezi kukamilika kutoka anwani hii",
"googleLoopbackWhatHappens": "Google hutolewa tu msimbo wa idhini mara {redirectUri} inapatikana kutoka kivinjari kinachothibitisha kuingia. Hapa anwani hiyo inaelekeza kwenye kompyuta hii, si kwenye seva ya OmniRoute — hivyo skrini ya idhini inakwama badala ya kuelekeza, na hakuna URL ya kurudi nyuma ya kunakili.",
"googleLoopbackRecommended": "Inapendekezwa — endesha hii kwenye kompyuta yako mwenyewe, kisha bandika matokeo hapa chini:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "Au peleka bandari ya dashibodi kupitia SSH na upakie tena OmniRoute kupitia handaki:",
"googleLoopbackTunnelNote": "Badilisha {userPlaceholder} na jina lako la mtumiaji wa SSH, shika terminal wazi, kisha fungua {localUrl} na uungane tena kutoka hapo.",
"googleLoopbackHeadlessAlt": "Kwa matumizi ya kichwa kisicho na chochote kabisa na hakuna mwitikio wa ndani, sanidi akiba yako ya Google OAuth pamoja na URL ya msingi ya umma.",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "Ufikiaji wa mbali: Kwa kuwa unafikia OmniRoute ukiwa mbali, baada ya kuidhinisha utaona ukurasa wa hitilafu (localhost haikupatikana). Hili ni jambo la kawaida — nakili tu URL kamili kutoka kwenye upau wa anwani wa kivinjari chako na uibandike hapa chini.",
"loopbackMismatchTitle": "Kujiandikisha haiwezi kukamilika kutoka anwani hii",
"loopbackMismatchWhatHappened": "Ninachofanyika",
"loopbackMismatchExplanation": "Baada ya kuidhinisha kuingia, {providerName} kila wakati inarudisha kivinjari kwenye {redirectUri}. Anuani hiyo inaelekeza kwenye kompyuta inayotumia kivinjari hiki, si kwenye seva ya OmniRoute — hivyo nambari ya idhini haitafika kwa OmniRoute na mtoa huduma anashindwa kuingia bila kuonyesha kosa.",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "Katika kivinjari hiki, fungua tena OmniRoute kupitia handaki:",
"loopbackMismatchStep3": "Basi ungana tena na {providerName} kutoka kwenye kichupo kipya. Kito cha kurudi sasa kinawafikia seva na kuingia kumalizika kawaida.",
"loopbackMismatchAlternative": "Huna ufikiaji wa SSH? Ikiwa mtoa huduma huyu anatoa kichupo cha kuagiza tokeni, ungana kwa kutumia tokeni badala yake — njia hiyo haitumii kurudi nyuma.",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "Hatua ya 1: Fungua URL hii kwenye kivinjari chako",
+ "copy": "Nakili",
+ "step2PasteCallback": "Hatua ya 2: Bandika URL ya callback au msimbo wa uidhinishaji hapa",
+ "step2Hint": "Baada ya kuidhinisha, bandika URL kamili ya callback. Kwa Claude Code na Cline, unaweza pia kubandika msimbo wa uthibitishaji moja kwa moja, kwa mfano code#state.",
+ "connect": "Unganisha",
+ "cancel": "Ghairi",
+ "success": "Muunganisho umefanikiwa!",
+ "successMessage": "Akaunti yako ya {providerName} imeunganishwa.",
+ "done": "Imekamilika",
+ "error": "Muunganisho umeshindwa",
+ "tryAgain": "Jaribu tena",
"errorSessionIncomplete": "Sehemu ya OAuth haijakamilika (inakosa URI ya kurejea au msahihishaji wa msimbo). Anza tena muunganisho na ujaribu tena.",
"errorExchangeFailed": "Kubadilishana kumeshindikana",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: Akikosi ya kawaida ya Google OAuth inafanya kazi tu kwenye localhost. Kwa matumizi ya mbali, tengeneza akakosi zako za OAuth kupitia mabadiliko ya mazingira: ANTIGRAVITY_OAUTH_CLIENT_ID na ANTIGRAVITY_OAUTH_CLIENT_SECRET. Tazama sehemu ya README 'OAuth kwenye Seva ya Mbali'.",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "Pasta funguo ya API ya Devin iliyopo kutoka kwa kikao cha Devin kilichothibitishwa. Upatikanaji wa usafirishaji wa funguo na hatua zinatofautiana kulingana na toleo la Devin na akaunti.",
"devinPasteDescription": "Toa WINDSURF_API_KEY yako (iliyopatikana kupitia `devin auth login`, au kupitia amri ya Windsurf IDE \"Windsurf: Provide Auth Token\").",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json ya Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Funguo la API / Token",
"saving": "Inahifadhi…",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Ingia kwa kutumia Cursor",
+ "tabImport": "Leta tokeni",
+ "loginDescription": "Hufungua ukurasa wa kuingia wa Cursor kwenye kivinjari. Hufanya kazi katika Docker — idhinisha katika kivinjari cha mfumo wako mwenyeji, kisha urudi hapa.",
+ "loginWithCursor": "Ingia kwa kutumia Cursor",
+ "startingLogin": "Inaanza…",
+ "waitingApproval": "Inasubiri idhini ya kuingia kwenye Cursor…",
+ "openUrlHint": "Ikiwa kivinjari hakikufunguka:",
+ "openLoginLink": "Fungua ukurasa wa kuingia",
+ "cancelLogin": "Ghairi kuingia",
+ "autoDetecting": "Inatambua tokeni kiotomatiki...",
+ "readingFromCursor": "Inasoma kutoka Cursor IDE au cursor-agent",
+ "tokensAutoDetected": "Tokeni zimetambuliwa kiotomatiki kutoka Cursor IDE!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Unaendesha katika Docker? Ni vyema kutumia Ingia kwa kutumia Cursor. Uletaji wa kiotomatiki kutoka IDE na cursor-agent kwa kawaida haupatikani ndani ya kontena. Angalia docs/providers/CURSOR-DOCKER.md.",
+ "accessToken": "Tokeni ya Ufikiaji",
+ "refreshToken": "Tokeni ya Kuonyesha Upya",
+ "refreshTokenPlaceholder": "Si lazima — huwezesha kuonyesha upya tokeni kiotomatiki",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "Tokeni ya ufikiaji itajazwa kiotomatiki...",
+ "machineId": "Kitambulisho cha Mashine",
+ "optional": "(si lazima)",
+ "machineIdPlaceholder": "Kitambulisho cha Mashine kitajazwa kiotomatiki...",
+ "importing": "Inaleta...",
+ "importToken": "Leta Tokeni",
+ "cancel": "Ghairi",
+ "errorAutoDetect": "Imeshindwa kugundua tokeni kiotomatiki",
+ "errorAutoDetectFailed": "Ugunduzi wa tokeni kiotomatiki umeshindwa",
+ "errorEnterToken": "Tafadhali ingiza tokeni ya ufikiaji",
+ "errorImportFailed": "Uingizaji umeshindwa",
+ "errorLoginStart": "Imeshindwa kuanzisha kuingia kwa Cursor",
+ "errorLoginPoll": "Kuingia kwa Cursor kumeshindwa",
+ "errorLoginTimeout": "Muda wa kuingia kwa Cursor umeisha — jaribu tena"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "Usanidi wa Bei",
+ "loading": "Inapakia data ya bei...",
+ "pricingRatesFormat": "Muundo wa Viwango vya Bei",
+ "ratesDescription": "Viwango vyote viko katika dola kwa kila tokeni milioni moja ($/1M tokens). Mfano: Kiwango cha ingizo cha 2.50 kinamaanisha $2.50 kwa kila tokeni 1,000,000 za ingizo.",
+ "model": "Muundo",
+ "input": "Ingizo",
+ "output": "Tokeo",
+ "cached": "Zilizohifadhiwa kwenye akiba",
+ "reasoning": "Uchambuzi",
+ "cacheCreation": "Uundaji wa Akiba",
+ "noPricingData": "Hakuna data ya bei inayopatikana",
+ "resetToDefaults": "Rejesha chaguo-msingi",
+ "cancel": "Ghairi",
+ "saving": "Inahifadhi...",
+ "saveChanges": "Hifadhi mabadiliko",
+ "resetConfirm": "Urejeshe bei zote kwa chaguo-msingi? Kitendo hiki hakiwezi kutenduliwa.",
+ "errorSaveFailed": "Imeshindwa kuhifadhi bei",
+ "errorResetFailed": "Imeshindwa kurejesha bei"
},
"proxyRegistry": {
"selectAllProxies": "Chagua proksi zote",
"selectProxy": "Chagua {name}",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "Rejesta ya Proksi",
+ "description": "Hifadhi proksi zinazoweza kutumika tena na ufuatilie ugawaji.",
+ "importLegacy": "Leta Data ya Zamani",
+ "bulkAssign": "Gawa kwa Wingi",
+ "addProxy": "Ongeza Proksi",
+ "loading": "Inapakia proksi...",
+ "noProxies": "Bado hakuna proksi zilizohifadhiwa.",
+ "tableName": "Jina",
+ "tableEndpoint": "Kituo cha mwisho",
+ "tableStatus": "Hali",
+ "tableHealth": "Afya (saa 24)",
+ "tableUsage": "Matumizi",
+ "tableActions": "Vitendo",
+ "test": "Jaribu",
+ "edit": "Hariri",
+ "delete": "Futa",
+ "modalCreateTitle": "Unda Proksi",
+ "modalEditTitle": "Hariri Proksi",
+ "labelName": "Jina",
+ "labelType": "Aina",
"labelFamily": "Familia ya IP",
"familyAuto": "Otomatiki (dual-stack)",
"familyIpv4": "IPv4 pekee",
"familyIpv6": "IPv6 pekee",
"familyHint": "Familia ya anwani ya egress. Otomatiki huweka dual-stack; IPv4/IPv6 huweka proksi hii kwenye familia hiyo (huzuia uvujaji wa v4 chini ya proksi ya IPv6 pekee).",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "Seva Pangishi",
+ "labelPort": "Mlango",
+ "labelUsername": "Jina la mtumiaji",
+ "labelPassword": "Nenosiri",
+ "labelRegion": "Eneo",
+ "labelStatus": "Hali",
+ "labelNotes": "Maelezo",
+ "usernamePlaceholderEdit": "Acha wazi ili kuhifadhi jina la sasa la mtumiaji",
+ "passwordPlaceholderEdit": "Acha wazi ili kuhifadhi nenosiri la sasa",
+ "statusActive": "Inatumika",
+ "statusInactive": "Haitumiki",
+ "cancel": "Ghairi",
+ "save": "Hifadhi",
+ "bulkModalTitle": "Ugawaji wa Proksi kwa Wingi",
+ "bulkLabelScope": "Wigo",
+ "bulkLabelProxy": "Proksi",
+ "bulkClearAssignment": "(Futa ugawaji)",
+ "bulkLabelScopeIds": "Vitambulisho vya wigo (vimetenganishwa kwa koma au mstari mpya)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "Tekeleza",
"labelScope": "Upeo",
"labelProxy": "Proksi",
"scopeGlobal": "kimataifa",
@@ -10893,19 +10904,19 @@
"bulkImportErrorInvalidPort": "BANDARI si sahihi (lazima iwe 1-65535)",
"bulkImportErrorInvalidType": "TYPE batili (tumia http, https, au soksi5)",
"bulkImportErrorInvalidStatus": "STATUS batili (tumia hai au isiyotumika)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "Imeshindwa kupakia sajili ya proksi",
+ "errorNameHostRequired": "Jina na seva pangishi vinahitajika",
+ "errorSaveFailed": "Imeshindwa kuhifadhi proksi",
+ "errorDeleteFailed": "Imeshindwa kufuta proksi",
+ "errorForceDeleteConfirm": "Proksi hii bado imegawiwa. Ungependa kuifuta kwa lazima na kuondoa migawanyo yote?",
+ "errorMigrateFailed": "Imeshindwa kuhamisha usanidi wa zamani wa proksi",
+ "errorBulkFailed": "Imeshindwa kutekeleza ugawaji kwa wingi",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "Imeshindwa",
+ "successRate": "Mafanikio ya {rate}%",
+ "avgLatency": "Wastani wa {latency}ms",
+ "assignmentsCount": "Migawanyo {count}",
"noData": "—",
"testSuccess": "✓ {ip}",
"testLatency": "{latency}ms",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Mkakati wa mzunguko",
"poolStrategyHint": "round-robin huzungusha wanachama kwa mpangilio; random huchagua kwa usawa; sticky hushikilia mwanachama mmoja kwa muda fulani; latency-optimized huchagua iliyo ya haraka zaidi kulingana na kumbukumbu.",
"poolStrategyFailed": "Imeshindwa kusasisha mkakati wa mzunguko",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Mzunguko",
"strategyRandom": "Nasibu",
- "strategySticky": "Sticky",
+ "strategySticky": "Inayoshikamana",
"strategyLatency": "Iliyoboreshwa kwa ucheleweshaji",
"poolMembersLabel": "Wanachama wa dimbwi ({count})",
"poolNoMembers": "Hakuna proksi katika dimbwi hili bado.",
+ "poolEgressObservation": "{exits, plural, one {njia # ya kutoka} other {njia # za kutoka}} zilitumiwa na {connections, plural, one {muunganisho #} other {miunganisho #}} · hadi {max} kwenye njia moja ya kutoka · saa {hours} zilizopita",
+ "poolEgressObservationEmpty": "Hakuna trafiki iliyoonekana katika saa {hours} zilizopita",
+ "poolEgressObservationHint": "Imehesabiwa kutoka kwenye kumbukumbu ya proksi katika kipindi hiki: IP tofauti za kutoka zilizoonekana kwa wanachama wa kundi hili, na miunganisho ya OmniRoute iliyozitumia. \"Kwenye njia moja ya kutoka\" humaanisha katika kipindi hicho, si kwa wakati mmoja. Uzuiaji wa 429 kwa kila IP husitisha tu miunganisho ya familia moja ya watoa huduma.",
"poolRemove": "Ondoa",
"poolRemoveFailed": "Imeshindwa kuondoa proksi kwenye dimbwi",
"poolAddLabel": "Ongeza proksi",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "Imeshindwa kuhifadhi ugawaji wa dimbwi"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "Mazingira ya Majaribio ya Modeli",
+ "description": "Jaribu modeli yoyote moja kwa moja kutoka kwenye dashibodi. Chagua mtoa huduma, modeli na aina ya endpoint, kisha tuma ombi ili kuona jibu ghafi.",
+ "endpoint": "Kituo cha mwisho",
+ "provider": "Mtoa huduma",
+ "model": "Modeli",
+ "accountKey": "Akaunti / Ufunguo",
+ "autoAccounts": "Kiotomatiki (akaunti {count})",
+ "noAccounts": "Hakuna akaunti",
+ "send": "Tuma",
+ "cancel": "Ghairi",
+ "audioFile": "Faili ya Sauti",
+ "attachImages": "Ambatisha Picha (Uoni)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "Hadi picha 4",
+ "selectAudioFile": "Chagua faili ya sauti ya kunukuliwa (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "Futa Zote",
+ "request": "Ombi",
+ "response": "Jibu",
+ "transcription": "Unukuzi",
+ "copy": "Nakili",
+ "resetToDefault": "Rejesha chaguo-msingi",
+ "downloadAudio": "Pakua sauti",
+ "copyText": "Nakili maandishi",
+ "transcriptionHint": "Unukuzi hutumia multipart/form-data. Pakia faili ya sauti hapo juu — JSON iliyo hapa chini hudhibiti vigezo vya ziada (modeli, lugha).",
+ "imagesGenerated": "Picha {count} zimeundwa",
+ "generatedImage": "Picha iliyoundwa {index}",
+ "save": "Hifadhi",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "Ukamilishaji wa gumzo",
+ "responses": "Majibu",
"completions": "Kukamilisha",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "Uundaji wa picha",
+ "embeddings": "Upachikaji",
+ "speech": "Maandishi-hadi-sauti",
+ "transcription": "Unukuzi wa sauti",
+ "video": "Uundaji wa video",
+ "music": "Uundaji wa muziki",
"moderations": "Udhibiti",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "Panga upya",
+ "search": "Utafutaji wa wavuti",
"webFetch": "Uletaji wa wavuti"
},
"conversationalChat": "Gumzo la Mazungumzo",
"clearChat": "Futa gumzo",
"typeMessagePlaceholder": "Andika ujumbe... (Shift+Enter kwa laini mpya)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Gumzo",
+ "tabCompare": "Linganisha",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Unda",
+ "configPane": "Usanidi",
+ "systemPrompt": "Kidokezo cha mfumo",
+ "systemPromptPlaceholder": "Wewe ni msaidizi mwenye manufaa.",
+ "modelPlaceholder": "mf. openai/gpt-4o",
+ "endpointLabel": "Kituo cha mwisho",
+ "parametersLabel": "Vigezo",
+ "collapseConfig": "Kunja kidirisha cha usanidi",
+ "expandConfig": "Panua kidirisha cha usanidi",
+ "temperature": "Halijoto",
+ "maxTokens": "Idadi ya juu ya tokeni",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Adhabu ya uwepo",
+ "frequencyPenalty": "Adhabu ya marudio",
"reasoningLabel": "Ufikiri",
"thinking": "Kufikiri",
"effort": "Juhudi",
"effortDefault": "Chaguo-msingi",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Nasibu (acha tupu)",
+ "presetsLabel": "Mipangilio iliyohifadhiwa",
+ "loadPreset": "Pakia mpangilio uliohifadhiwa",
+ "savePreset": "Hifadhi mpangilio",
+ "noPresets": "Hakuna mipangilio iliyohifadhiwa",
+ "presetNamePlaceholder": "Jina la mpangilio",
+ "savingPreset": "Inahifadhi…",
+ "nameRequired": "Jina linahitajika",
+ "failedToSavePreset": "Imeshindwa kuhifadhi mpangilio",
+ "improvePrompt": "Boresha kidokezo",
+ "improvingPrompt": "Inaboresha…",
+ "improvePromptTitle": "Boresha kidokezo chako kwa AI",
+ "setModelFirst": "Weka modeli kwanza",
"setModelInConfigFirst": "Weka modeli kwenye kidirisha cha Usanidi kwanza.",
"improvePromptFailed": "Uboreshaji wa kidokezo umeshindwa.",
"improvePromptAria": "Boresha kidokezo kwa kutumia AI",
"confirmImprovePrompt": "Thibitisha kuboresha kidokezo",
"improvePromptDescription": "Hii itatuma kidokezo chako cha sasa cha mfumo kwa trae.ai katika dirisha la popup. Dirisha la popup litajifunga lenyewe mara tu token itakapokuwa imeagizwa.",
"authorizeImportant": "Muhimu: lazima uwe umeingia kwenye trae.ai katika browsa hii kwanza. Ukurasa wa kuidhinisha unathibitisha tu kikao kilichopo — hauwezi kukusaini. Ikiwa unaona \"Kuingia Kumeshindwa\", bonyeza \"Fungua solo.trae.ai\", ingia, kisha rudi hapa.",
"waitingForAuthorization": "Inasubiri trae.ai…",
@@ -13895,7 +13928,7 @@
"time": "Wakati",
"latency": "Uchelewaji",
"clientIp": "Anwani ya IP ya Mteja",
- "proxy": "Proxy",
+ "proxy": "Proksi",
"direct": "Moja kwa moja",
"type": "andika",
"level": "Kiwango",
@@ -13913,7 +13946,7 @@
"followDescription": "Mhimili unateleza kushoto, mstari wa SASA unabaki kwenye 75%",
"now": "Sasa",
"nowDescription": "Ruka kwa wakati wa sasa, mstari wa SASA unarudi katikati",
- "pan": "Pan",
+ "pan": "Sogeza",
"panDescription": "Buruta ili kuchunguza, nyuma imegandishwa"
},
"reset": "Rekebisha",
@@ -13925,7 +13958,7 @@
"tokens": "Vifungo",
"active": "Haiwezi",
"other": "Nyingine",
- "tenMinutes": "10min",
+ "tenMinutes": "dak 10",
"hour": "saa",
"day": "siku",
"unknownModel": "sijulikana",
@@ -13934,7 +13967,7 @@
"metadata": {
"compressionTitle": "Kufinya",
"compressionDescription": "Sanitize mipangilio ya kubana muktadha ili kupunguza matumizi ya tokeni na gharama.",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — Proksi za Relay",
"relayDescription": "Mikondo ya proxy ya relay isiyo na seva kwa miundombinu yako ya AI",
"trafficInspectorTitle": "Mchunguzi wa Trafiki — OmniRoute",
"trafficInspectorDescription": "Fuatilia wito za LLM + debug trafiki ya HTTPS ya programu yoyote"
@@ -13945,7 +13978,7 @@
"runners": "Wakimbiaji",
"tasks": "Majukumu",
"colName": "Jina",
- "colClis": "CLIs",
+ "colClis": "CLI",
"colStatus": "Hali",
"colTask": "Kazi",
"colMode": "Hali",
@@ -14048,11 +14081,11 @@
"actionApprove": "Idhinisha mpango",
"actionCancel": "Ghairi",
"actionSeeInGraph": "Ona kwenye grafu",
+ "actionRepeat": "Rudia",
"actionDone": "Kitendo kimetumika",
"actionFailed": "Kitendo kimeshindwa: {error}",
"detailFailed": "Imeshindwa kupakia maelezo: {error}",
"mirroredInA2A": "Kimeakisiwa katika A2A",
- "actionRepeat": "Rudia",
"repeatConfirm": "Bofya tena kuthibitisha",
"repeatDone": "Uendeshaji mpya umeundwa",
"repeatUnavailable": "Ingizo asili halipatikani"
@@ -14066,57 +14099,57 @@
"networkError": "Kosa la mtandao — haiwezekani kuboresha mipangilio ya kufichua mtoa huduma"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "Ofa za wafuasi",
+ "subtitle": "Punguzo rasmi, mikopo, vipindi vya majaribio na manufaa ya washirika yaliyokaguliwa kutoka Radar.",
+ "backToRadar": "Rudi kwenye Radar",
+ "loading": "Inapakia ofa...",
+ "refresh": "Onyesha upya ofa",
+ "refreshing": "Inaonyesha upya...",
+ "loadFailed": "Hatukuweza kuonyesha upya ofa. Akiba ya mwisho ya ndani iliyothibitishwa imehifadhiwa.",
+ "empty": "Hakuna ofa zinazotumika kwa sasa.",
+ "keyRequiredTitle": "Ufunguo wa mfuasi unahitajika",
+ "keyRequiredDescription": "Ofa ni manufaa ya moja kwa moja ya Radar. Ongeza ufunguo uliopo wa mfuasi kwenye skrini ya Radar, thibitisha hali yako ya uchangiaji, au saidia mradi ili kupata ufunguo.",
+ "contributorButton": "Mimi ni mchangiaji",
+ "supporterButton": "Saidia mradi",
+ "partnerBadge": "Mshirika",
+ "officialBadge": "Rasmi",
+ "conditionsLabel": "Masharti:",
+ "validUntil": "Inatumika hadi {date}",
+ "noExpiry": "Hakuna tarehe ya mwisho iliyotangazwa",
+ "openOffer": "Tazama ofa",
+ "trialDays": "{days, plural, one {siku #} other {siku #}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "Taarifa za Radar",
+ "subtitle": "Nafasi za ELO zinazomilikiwa na Radar na mabadiliko halisi ya katalogi.",
+ "backToRadar": "Rudi kwenye Radar",
+ "loading": "Inapakia taarifa...",
+ "refresh": "Onyesha upya taarifa",
+ "syncing": "Inaonyesha upya...",
+ "loadFailed": "Hatukuweza kuonyesha upya taarifa. Akiba ya mwisho ya ndani iliyothibitishwa imehifadhiwa.",
+ "empty": "Bado hakuna muhtasari wa taarifa uliothibitishwa unaopatikana.",
+ "supporterBadge": "Mfuasi wa Radar",
+ "methodology": "Mbinu",
+ "eloMethod": "ELO, ya awali {initial}, K={factor}",
+ "freshness": "Usasishaji wa katalogi",
+ "ageDays": "{days, plural, one {ina siku #} other {ina siku #}}",
+ "trend": "Mwelekeo wa katalogi",
+ "modelDelta": "Miundo {current}, +{added} / -{removed}",
+ "ranking": "Nafasi za miundo",
+ "noRankings": "Bado hakuna ulinganisho uliothibitishwa unaopatikana.",
+ "model": "Muundo",
+ "category": "Kategoria",
+ "rating": "Ukadiriaji",
+ "matches": "Mechi",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Mpya",
+ "aging": "Inazeeka",
+ "stale": "Imepitwa na wakati"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "Inakua",
+ "stable": "Thabiti",
+ "shrinking": "Inapungua"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "Omba inazidi dirisha la muktadha wa mtoa huduma"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Uchambuzi wa Gharama Nafuu ni Rafiki wa Chanzo Huria wa OmniRoute",
+ "description": "Lango linalopanga kwa gharama na kuuza tena modeli nyingi za kisasa kupitia endpoint moja inayooana na OpenAI — likielekeza kila ombi kwa mtoa huduma anayestahiki mwenye bei nafuu zaidi, bila kuzidi bei iliyoorodheshwa.",
+ "cta": "Pata Ufunguo wa API",
+ "partnerLinkNote": "Kiungo cha mshirika",
+ "dismissAriaLabel": "Funga"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Zima uundaji wa vibadala vya kiwango cha kufikiri (k.m. -low, -medium, -high) katika katalogi ya /v1/models."
}
diff --git a/src/i18n/messages/ta.json b/src/i18n/messages/ta.json
index 83c6a6151d..b4de89c2a4 100644
--- a/src/i18n/messages/ta.json
+++ b/src/i18n/messages/ta.json
@@ -1,15 +1,15 @@
{
"common": {
- "save": "Save",
- "cancel": "Cancel",
- "delete": "Delete",
- "loading": "Loading...",
+ "save": "சேமி",
+ "cancel": "ரத்துசெய்",
+ "delete": "நீக்கு",
+ "loading": "ஏற்றுகிறது...",
"selectOption": "ஒரு விருப்பத்தைத் தேர்ந்தெடுக்கவும்",
- "error": "An error occurred",
- "success": "Success",
- "confirm": "Are you sure?",
- "refresh": "Refresh",
- "close": "Close",
+ "error": "ஒரு பிழை ஏற்பட்டது",
+ "success": "வெற்றி",
+ "confirm": "நிச்சயமாகத் தொடர விரும்புகிறீர்களா?",
+ "refresh": "புதுப்பி",
+ "close": "மூடு",
"previousPage": "முந்தைய பக்கம்",
"nextPage": "அடுத்த பக்கம்",
"capsLockOn": "Caps Lock இயக்கத்தில் உள்ளது",
@@ -17,142 +17,142 @@
"toggleColumns": "நெடுவரிசைகளை நிலைமாற்றவும்",
"confirmTitle": "உறுதிப்படுத்தவும்",
"confirmAction": "உறுதிப்படுத்தவும்",
- "add": "Add",
- "edit": "Edit",
- "search": "Search",
- "back": "Back",
- "next": "Next",
- "submit": "Submit",
- "reset": "Reset",
- "copy": "Copy",
- "copied": "Copied!",
- "enabled": "Enabled",
- "disabled": "Disabled",
- "active": "Active",
- "inactive": "Inactive",
- "noData": "No data available",
- "nothingHere": "Nothing here yet",
- "configure": "Configure",
+ "add": "சேர்",
+ "edit": "திருத்து",
+ "search": "தேடு",
+ "back": "பின்செல்",
+ "next": "அடுத்து",
+ "submit": "சமர்ப்பி",
+ "reset": "மீட்டமை",
+ "copy": "நகலெடு",
+ "copied": "நகலெடுக்கப்பட்டது!",
+ "enabled": "இயக்கப்பட்டது",
+ "disabled": "முடக்கப்பட்டது",
+ "active": "செயலில் உள்ளது",
+ "inactive": "செயலில் இல்லை",
+ "noData": "தரவு எதுவும் இல்லை",
+ "nothingHere": "இதுவரை இங்கு எதுவும் இல்லை",
+ "configure": "உள்ளமை",
"manualConfig": "கைமுறை உள்ளமைவு",
- "manage": "Manage",
- "name": "Name",
- "actions": "Actions",
- "status": "Status",
- "type": "Type",
+ "manage": "நிர்வகி",
+ "name": "பெயர்",
+ "actions": "செயல்கள்",
+ "status": "நிலை",
+ "type": "வகை",
"model": "Model",
- "models": "models",
- "provider": "Provider",
+ "models": "மாதிரிகள்",
+ "provider": "வழங்குநர்",
"unknownProvider": "தெரியாத வழங்குநர்",
- "account": "Account",
- "time": "Time",
- "details": "Details",
- "created": "Created",
- "lastUsed": "Last Refreshed",
- "loadMore": "Load More",
- "noResults": "No results found",
- "reloadPage": "Reload Page",
- "connected": "Connected",
- "disconnected": "Disconnected",
- "notConfigured": "Not configured",
- "testConnection": "Test Connection",
- "enable": "Enable",
- "disable": "Disable",
- "columns": "Columns",
- "newest": "Newest",
- "oldest": "Oldest",
- "all": "All",
- "none": "None",
- "yes": "Yes",
- "no": "No",
+ "account": "கணக்கு",
+ "time": "நேரம்",
+ "details": "விவரங்கள்",
+ "created": "உருவாக்கப்பட்டது",
+ "lastUsed": "கடைசியாகப் புதுப்பிக்கப்பட்டது",
+ "loadMore": "மேலும் ஏற்று",
+ "noResults": "முடிவுகள் எதுவும் கிடைக்கவில்லை",
+ "reloadPage": "பக்கத்தை மீண்டும் ஏற்று",
+ "connected": "இணைக்கப்பட்டது",
+ "disconnected": "இணைப்பு துண்டிக்கப்பட்டது",
+ "notConfigured": "உள்ளமைக்கப்படவில்லை",
+ "testConnection": "இணைப்பைச் சோதிக்கவும்",
+ "enable": "இயக்கு",
+ "disable": "முடக்கு",
+ "columns": "நெடுவரிசைகள்",
+ "newest": "மிகப் புதியவை",
+ "oldest": "மிகப் பழையவை",
+ "all": "அனைத்தும்",
+ "none": "எதுவுமில்லை",
+ "yes": "ஆம்",
+ "no": "இல்லை",
"on": "இயக்கத்தில்",
"off": "முடக்கத்தில்",
- "warning": "Warning",
- "note": "Note",
- "free": "Free",
- "skipToContent": "Skip to content",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
- "accept": "Accept",
- "accountId": "Account ID",
+ "warning": "எச்சரிக்கை",
+ "note": "குறிப்பு",
+ "free": "இலவசம்",
+ "skipToContent": "உள்ளடக்கத்திற்குச் செல்க",
+ "maintenanceServerIssues": "சேவையகத்தில் சிக்கல்கள் ஏற்பட்டுள்ளன. சில அம்சங்கள் கிடைக்காமல் இருக்கலாம்.",
+ "maintenanceServerUnreachable": "சேவையகத்தை அணுக முடியவில்லை. மீண்டும் இணைக்கப்படுகிறது...",
+ "accept": "ஏற்கவும்",
+ "accountId": "கணக்கு ஐடி",
"alias": "Alias",
- "apiKeyId": "API Key ID",
- "apiKeyName": "API Key Name",
- "apiKeySecret": "API Key Secret",
- "authorization": "Authorization",
- "content-type": "Content Type",
- "content-length": "Content Length",
+ "apiKeyId": "API விசை ஐடி",
+ "apiKeyName": "API விசையின் பெயர்",
+ "apiKeySecret": "API விசையின் ரகசியம்",
+ "authorization": "அங்கீகாரம்",
+ "content-type": "உள்ளடக்க வகை",
+ "content-length": "உள்ளடக்க நீளம்",
"cookie": "Cookie",
- "file": "File",
- "host": "Host",
+ "file": "கோப்பு",
+ "host": "புரவலன்",
"id": "ID",
- "import": "Import",
+ "import": "இறக்குமதி செய்",
"limit": "Limit",
"offset": "Offset",
- "open": "Open",
- "origin": "Origin",
- "promptTokens": "Prompt Tokens",
- "completionTokens": "Completion Tokens",
- "totalTokens": "Total Tokens",
- "rawModel": "Raw Model",
- "scope": "Scope",
- "skill": "Skill",
- "sortBy": "Sort By",
- "sortOrder": "Sort Order",
- "tab": "Tab",
+ "open": "திற",
+ "origin": "தோற்றம்",
+ "promptTokens": "உள்ளீட்டு டோக்கன்கள்",
+ "completionTokens": "நிறைவு டோக்கன்கள்",
+ "totalTokens": "மொத்த டோக்கன்கள்",
+ "rawModel": "மூல மாடல்",
+ "scope": "வரம்பு",
+ "skill": "திறன்",
+ "sortBy": "வரிசைப்படுத்தும் அடிப்படை",
+ "sortOrder": "வரிசைப்படுத்தும் வரிசை",
+ "tab": "தாவல்",
"text": "Text",
- "textarea": "Textarea",
- "tool": "Tool",
- "toolId": "Tool ID",
+ "textarea": "உரைப்பகுதி",
+ "tool": "கருவி",
+ "toolId": "கருவி ID",
"web": "Web",
- "whereUsed": "Where Used",
- "whitelist": "Whitelist",
- "blacklist": "Blacklist",
- "resolve": "Resolve",
- "force": "Force",
+ "whereUsed": "பயன்படுத்தப்படும் இடங்கள்",
+ "whitelist": "அனுமதிப் பட்டியல்",
+ "blacklist": "தடுப்புப் பட்டியல்",
+ "resolve": "தீர்வு காண்",
+ "force": "கட்டாயப்படுத்து",
"base64url": "Base64 URL",
"hex": "Hex",
- "range": "Range",
- "component": "Component",
- "redirect_uri": "Redirect URI",
- "idempotency-key": "Idempotency Key",
- "error_description": "Error Description",
- "code": "Code",
- "compatible": "Compatible",
- "chat-completions": "Chat Completions",
+ "range": "வரம்பு",
+ "component": "கூறு",
+ "redirect_uri": "திருப்பிவிடும் URI",
+ "idempotency-key": "மீள்செயல் பாதுகாப்பு விசை",
+ "error_description": "பிழை விளக்கம்",
+ "code": "குறியீடு",
+ "compatible": "இணக்கமானது",
+ "chat-completions": "அரட்டை நிறைவுகள்",
"oauth": "OAuth",
- "auth_token": "Auth Token",
- "crypto": "Crypto",
- "hours": "Hours",
+ "auth_token": "அங்கீகார டோக்கன்",
+ "crypto": "குறியாக்கவியல்",
+ "hours": "மணிநேரங்கள்",
"selfsigned": "Self-signed",
- "proxy_id": "Proxy ID",
- "proxyId": "Proxy ID",
- "connectionId": "Connection ID",
- "resolveConnectionId": "Resolve Connection ID",
- "resolve_connection_id": "Resolve Connection ID",
- "scope_id": "Scope ID",
- "scopeId": "Scope ID",
- "jwtSecret": "JWT Secret",
+ "proxy_id": "பதிலி ID",
+ "proxyId": "பதிலி ID",
+ "connectionId": "இணைப்பு ID",
+ "resolveConnectionId": "இணைப்பு ID-ஐத் தீர்மானி",
+ "resolve_connection_id": "இணைப்பு ID-ஐத் தீர்மானி",
+ "scope_id": "செயற்பரப்பு ID",
+ "scopeId": "செயற்பரப்பு ID",
+ "jwtSecret": "JWT இரகசியம்",
"keytar": "Keytar",
"better-sqlite3": "better-sqlite3",
"undici": "undici",
"builder-id": "Builder ID",
- "musicDesc": "Music Description",
- "musicGeneration": "Music Generation",
+ "musicDesc": "இசை விளக்கம்",
+ "musicGeneration": "இசை உருவாக்கம்",
"idc": "IDC",
- "cloud-status-changed": "Cloud status changed",
- "where_used": "Where Used",
- "windowMs": "Window (ms)",
+ "cloud-status-changed": "கிளவுட் நிலை மாறியது",
+ "where_used": "பயன்படுத்தப்படும் இடங்கள்",
+ "windowMs": "காலச் சாளரம் (ms)",
"social-github": "GitHub",
"social-google": "Google",
- "TOOL_ALLOWLIST": "Tool Allowlist",
- "TOOL_DENYLIST": "Tool Denylist",
- "Failed to save pricing": "Failed to save pricing",
- "Failed to reset pricing": "Failed to reset pricing",
- "apikey": "API Key",
+ "TOOL_ALLOWLIST": "கருவி அனுமதிப் பட்டியல்",
+ "TOOL_DENYLIST": "கருவி தடுப்புப் பட்டியல்",
+ "Failed to save pricing": "விலை நிர்ணயத்தைச் சேமிக்க முடியவில்லை",
+ "Failed to reset pricing": "விலை நிர்ணயத்தை மீட்டமைக்க முடியவில்லை",
+ "apikey": "API விசை",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "டாஷ்போர்டுக்குச் செல்",
+ "checkSystemStatus": "கணினி நிலையைச் சரிபார்",
+ "selectModel": "மாதிரியைத் தேர்ந்தெடுக்கவும்",
"addModel": "மாதிரியைச் சேர்க்கவும்",
"effortNone": "எதுவுமில்லை",
"effortLow": "குறைவு",
@@ -162,12 +162,12 @@
"effortMax": "அதிகபட்சம்",
"effortUltra": "அல்ட்ரா",
"reasoningEffort": "பகுத்தறிதல் முயற்சி",
- "wireApi": "Wire API",
+ "wireApi": "API-ஐ இணைக்கவும்",
"modelAliases": "மாதிரி மாற்றுப்பெயர்கள்",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "சேர்க்கைகள்",
+ "noModelsFound": "மாதிரிகள் எதுவும் கிடைக்கவில்லை",
+ "clear": "அழிக்கவும்",
+ "done": "முடிந்தது",
"selectAll": "அனைத்தையும் தேர்ந்தெடு",
"unselectAll": "தேர்வை நீக்கு",
"visibleModels": "காணக்கூடியவை",
@@ -184,527 +184,527 @@
"selectAllProviders": "எல்லா வழங்குநர்களையும் சரிபார்க்கவும்",
"clearProviderSelection": "சேவையளர்களை அகற்றவும்",
"providersSelectedCount": "{count} வழங்குநர்கள் சரிபார்க்கப்பட்டனர்",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "பிழை ஏற்பட்டது",
+ "comboDeleted": "சேர்க்கை நீக்கப்பட்டது",
+ "hide": "மறைக்கவும்",
+ "creating": "உருவாக்கப்படுகிறது",
+ "comboCreated": "சேர்க்கை உருவாக்கப்பட்டது",
+ "swapFormats": "வடிவங்களை மாற்றவும்",
+ "daysAgo": "நாட்களுக்கு முன்பு",
+ "retries": "மறுமுயற்சிகள்",
+ "errorDuringRestore": "மீட்டமைப்பின்போது பிழை",
+ "eventsAppearHint": "நிகழ்வுகள் தோன்றும் குறிப்பு",
+ "noLockouts": "பூட்டல்கள் இல்லை",
+ "webSearchDesc": "இணையத் தேடல் விளக்கம்",
+ "audioProvidersHeading": "ஆடியோ வழங்குநர்கள்",
"cloudAgentProviders": "கிளவுட் ஏஜென்ட் வழங்குநர்கள்",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "நிமிடங்களுக்கு முன்பு",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "நேரலையில் தானாகப் புதுப்பிக்கப்படுகிறது",
+ "webSearch": "இணையத் தேடல்",
+ "anthropicPrefixPlaceholder": "Anthropic முன்னொட்டு இடநிரப்பி",
+ "addModelToCombo": "சேர்க்கையில் மாதிரியைச் சேர்க்கவும்",
+ "failedToLoad": "ஏற்ற முடியவில்லை",
+ "categoryMedia": "ஊடக வகை",
+ "enableCloud": "கிளவுட்டை இயக்கவும்",
+ "expirationBannerExpiringSoon": "காலாவதியாகவிருக்கும் அறிவிப்புப் பட்டை",
+ "retry": "மீண்டும் முயற்சிக்கவும்",
+ "embeddings": "உட்பொதிவுகள்",
+ "errorCount": "பிழைகளின் எண்ணிக்கை",
+ "backupReasonManual": "கைமுறை காப்புப்பிரதிக்கான காரணம்",
+ "safeSearchModerate": "மிதமான பாதுகாப்புத் தேடல்",
+ "activeLimiters": "செயலில் உள்ள வரம்புக் கட்டுப்படுத்திகள்",
+ "a2aCardTitle": "A2A அட்டைத் தலைப்பு",
+ "cloudWorkerUnreachable": "கிளவுட் வொர்க்கரை அணுக முடியவில்லை",
+ "testFailed": "சோதனை தோல்வியடைந்தது",
+ "compatibleBaseUrlHint": "இணக்கமான அடிப்படை URL குறிப்பு",
+ "usageTracking": "பயன்பாட்டுக் கண்காணிப்பு",
+ "disableCloudTitle": "கிளவுடை முடக்கு தலைப்பு",
+ "noConnections": "இணைப்புகள் இல்லை",
+ "providerHealth": "வழங்குநர் நிலை",
+ "confirmDbImport": "DB இறக்குமதியை உறுதிப்படுத்து",
+ "notAvailableSymbol": "கிடைக்கவில்லை என்பதற்கான குறியீடு",
+ "backupsAvailable": "காப்புப்பிரதிகள் உள்ளன",
+ "providerAuto": "தானியங்கு வழங்குநர்",
+ "newProviderNamePlaceholder": "புதிய வழங்குநர் பெயருக்கான இடநிரப்பி",
+ "a2aQuickStartStep2": "A2A விரைவுத் தொடக்கம் படி 2",
+ "ok": "சரி",
+ "available": "கிடைக்கிறது",
+ "noBackupYet": "இன்னும் காப்புப்பிரதி இல்லை",
+ "more": "மேலும்",
+ "noCompatibleYet": "இன்னும் இணக்கமானவை இல்லை",
+ "multiProvider": "பல வழங்குநர்கள்",
+ "repairEnvHint": "சூழலைச் சீரமைப்பதற்கான குறிப்பு",
+ "disablingCloud": "கிளவுட் முடக்கப்படுகிறது",
+ "testBench": "சோதனைக் களம்",
+ "valid": "செல்லுபடியாகும்",
+ "cloudBenefitShare": "கிளவுட் நன்மைப் பகிர்வு",
+ "mcpCardTitle": "MCP அட்டைத் தலைப்பு",
+ "disableConfirm": "முடக்குவதை உறுதிப்படுத்து",
+ "filters": "வடிப்பான்கள்",
+ "expirationBannerExpiredDesc": "காலாவதிப் பதாகையின் காலாவதியான விளக்கம்",
+ "saveComboDefaults": "சேர்க்கை இயல்புநிலைகளைச் சேமி",
+ "cloudConnectedVerified": "கிளவுட் இணைப்பு சரிபார்க்கப்பட்டது",
+ "uptime": "செயல்பாட்டு நேரம்",
+ "compatibleProdPlaceholder": "இணக்கமான தயாரிப்புக்கான இடநிரப்பி",
+ "fallbackChainsTitle": "மாற்றுச் சங்கிலிகள் தலைப்பு",
+ "oauthLabel": "OAuth குறிச்சொல்",
+ "a2aCardDescription": "A2A அட்டை விளக்கம்",
+ "okShort": "சரி",
+ "maintenance": "பராமரிப்பு",
+ "formatConverter": "வடிவமைப்பு மாற்றி",
+ "zedImportNetworkError": "Zed இறக்குமதி பிணையப் பிழை",
+ "apiKeyLabel": "API விசைக் குறிச்சொல்",
+ "noModelsForProvider": "வழங்குநருக்கான மாதிரிகள் இல்லை",
+ "mcpCardDescription": "MCP அட்டை விளக்கம்",
+ "apiTypeLabel": "API வகைக் குறிச்சொல்",
+ "configuredProvidersLabel": "உள்ளமைக்கப்பட்ட வழங்குநர்கள் குறிச்சொல்",
+ "maxRetriesLabel": "அதிகபட்ச மறுமுயற்சிகள் குறிச்சொல்",
+ "title": "தலைப்பு",
+ "output": "வெளியீடு",
+ "prefixHint": "முன்னொட்டுக் குறிப்பு",
+ "skipWizard": "வழிகாட்டியைத் தவிர்",
+ "failedCount": "தோல்வியடைந்தவற்றின் எண்ணிக்கை",
+ "confirmDbImportDesc": "Db இறக்குமதி உறுதிப்படுத்தல் விளக்கம்",
+ "entries": "உள்ளீடுகள்",
+ "until": "வரை",
+ "disableCombo": "சேர்க்கையை முடக்கு",
+ "liveMonitorDescriptionPrefix": "நேரடி கண்காணிப்பு விளக்க முன்னொட்டு",
+ "runningCount": "இயங்குபவற்றின் எண்ணிக்கை",
+ "noActiveConnectionsInGroup": "குழுவில் செயலில் உள்ள இணைப்புகள் எதுவும் இல்லை",
+ "savedSuccessfully": "வெற்றிகரமாகச் சேமிக்கப்பட்டது",
+ "systemStorage": "கணினிச் சேமிப்பகம்",
+ "videoDesc": "வீடியோ விளக்கம்",
+ "maxResults": "அதிகபட்ச முடிவுகள்",
+ "timeRangeMonth": "கால வரம்பு: மாதம்",
+ "testSummary": "சோதனைச் சுருக்கம்",
+ "failedSetPassword": "கடவுச்சொல்லை அமைக்க முடியவில்லை",
+ "audio": "ஆடியோ",
+ "restore": "மீட்டமை",
+ "disableWarning": "எச்சரிக்கையை முடக்கு",
+ "moderationsDesc": "உள்ளடக்கக் கட்டுப்பாடுகளின் விளக்கம்",
+ "providerHealthStatusAria": "வழங்குநரின் செயல்நிலை ARIA",
+ "modelNamePlaceholder": "மாதிரிப் பெயருக்கான இடநிரப்பி",
+ "mcpQuickStartStep2": "Mcp விரைவுத் தொடக்கம்: படி 2",
+ "quickStart": "விரைவுத் தொடக்கம்",
+ "fullExportFailedWithError": "முழு ஏற்றுமதி பிழையுடன் தோல்வியடைந்தது",
+ "loadingBackups": "காப்புப்பிரதிகள் ஏற்றப்படுகின்றன",
+ "anthropicBaseUrlPlaceholder": "Anthropic அடிப்படை URL இடநிரப்பி",
+ "description": "விளக்கம்",
+ "noProviderFound": "வழங்குநர் எவரும் கண்டறியப்படவில்லை",
+ "auto": "தானியங்கி",
+ "protocolsDescription": "நெறிமுறைகளின் விளக்கம்",
+ "cloudSessionNote": "கிளவுட் அமர்வுக் குறிப்பு",
+ "advancedSettings": "மேம்பட்ட அமைப்புகள்",
+ "defaultStrategy": "இயல்புநிலை உத்தி",
+ "purgeExpiredLogs": "காலாவதியான பதிவுகளை அகற்று",
+ "justNow": "இப்போதுதான்",
+ "providerTestFailed": "வழங்குநர் சோதனை தோல்வியடைந்தது",
+ "openaiBaseUrlPlaceholder": "Openai அடிப்படை URL இடநிரப்பி",
+ "image": "படம்",
+ "failedCreateChain": "சங்கிலியை உருவாக்க முடியவில்லை",
+ "importDatabase": "தரவுத்தளத்தை இறக்குமதி செய்",
+ "allDataLocal": "அனைத்துத் தரவும் உள்ளகமானது",
+ "sectionTitle": "பிரிவு தலைப்பு",
+ "failedToggle": "நிலைமாற்றம் தோல்வியடைந்தது",
+ "editCombo": "காம்போவைத் திருத்து",
+ "testResults": "சோதனை முடிவுகள்",
+ "searchQuery": "தேடல் வினவல்",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "நகலெடு",
+ "createCombo": "காம்போவை உருவாக்கு",
+ "searchTypeWeb": "தேடல் வகை: இணையம்",
+ "addChain": "சங்கிலியைச் சேர்",
+ "prefixLabel": "முன்னொட்டு லேபிள்",
+ "listModelsDesc": "மாதிரிகள் பட்டியலின் விளக்கம்",
+ "databaseSize": "தரவுத்தள அளவு",
+ "chainCreated": "சங்கிலி உருவாக்கப்பட்டது",
+ "providerTestTimeout": "வழங்குநர் சோதனைக்கான நேரம் முடிந்தது",
+ "routingStrategy": "வழித்தட உத்தி",
+ "translateAction": "மொழிபெயர்ப்பு நடவடிக்கை",
+ "exportFailed": "ஏற்றுமதி தோல்வியடைந்தது",
+ "connectedVerificationPending": "இணைக்கப்பட்டது, சரிபார்ப்பு நிலுவையில் உள்ளது",
+ "a2aQuickStartTitle": "A2A விரைவுத் தொடக்கத் தலைப்பு",
+ "couldNotTest": "சோதிக்க முடியவில்லை",
+ "testAllCompatible": "இணக்கமான அனைத்தையும் சோதிக்கவும்",
+ "anthropicCompatibleName": "Anthropic-இணக்கமான பெயர்",
+ "disabling": "முடக்கப்படுகிறது",
+ "failedEnable": "இயக்க முடியவில்லை",
+ "categoryUtility": "பயன்பாட்டு வகை",
+ "customUrlOptional": "தனிப்பயன் URL (விருப்பத்திற்குரியது)",
+ "localProviders": "உள்ளக வழங்குநர்கள்",
+ "comboNamePlaceholder": "காம்போ பெயர் இடநிரப்பி",
+ "memoryRss": "நினைவக RSS",
+ "disableProvider": "வழங்குநரை முடக்கு",
+ "welcomeDesc": "வரவேற்பு விளக்கம்",
+ "nameLabel": "பெயர் லேபிள்",
+ "allOperational": "அனைத்தும் செயல்பாட்டில் உள்ளன",
+ "backupNow": "இப்போது காப்புப் பிரதி எடு",
+ "providerMaxRetriesAria": "வழங்குநரின் அதிகபட்ச மறுமுயற்சிகள் ARIA",
+ "textToSpeechDesc": "உரையிலிருந்து பேச்சுக்கான விளக்கம்",
+ "machineId": "இயந்திர ஐடி",
+ "globalProxy": "உலகளாவிய ப்ராக்ஸி",
+ "hitsMisses": "வெற்றிகள் மற்றும் தவறல்கள்",
+ "testDesc": "சோதனை விளக்கம்",
+ "chatDesc": "அரட்டை விளக்கம்",
+ "importSuccess": "இறக்குமதி வெற்றியடைந்தது",
+ "chat": "அரட்டை",
+ "a2aQuickStartStep1": "A2A விரைவுத் தொடக்கம் படி 1",
+ "importFailed": "இறக்குமதி தோல்வியடைந்தது",
+ "inputPlaceholder": "உள்ளீட்டுக்கான இடநிரப்பி",
+ "providerModelsTitle": "வழங்குநர் மாதிரிகள் தலைப்பு",
+ "lastBackup": "கடைசி காப்புப்பிரதி",
+ "yourEndpoint": "உங்கள் முடிவுப்புள்ளி",
+ "autoDisableThresholdDesc": "தானாக முடக்கும் வரம்பின் விளக்கம்",
+ "rerankDesc": "மறுதரவரிசைப்படுத்தல் விளக்கம்",
+ "modelsPathPlaceholder": "மாதிரிகள் பாதைக்கான இடநிரப்பி",
+ "noCombosYet": "இதுவரை சேர்க்கைகள் இல்லை",
+ "connectedVerificationPendingWithError": "இணைக்கப்பட்டது, பிழையுடன் சரிபார்ப்பு நிலுவையில் உள்ளது",
+ "comboDefaultsGuideHint1": "சேர்க்கை இயல்புநிலைகள் வழிகாட்டிக் குறிப்பு 1",
+ "enableCloudTitle": "கிளவுடை இயக்கு தலைப்பு",
+ "configuredProvidersHint": "உள்ளமைக்கப்பட்ட வழங்குநர்கள் குறிப்பு",
+ "paused": "இடைநிறுத்தப்பட்டது",
+ "llmProviders": "LLM வழங்குநர்கள்",
+ "enableCombo": "சேர்க்கையை இயக்கு",
+ "removeProviderOverrideAria": "வழங்குநர் மேலெழுதலை அகற்று ARIA",
+ "nodeVersion": "Node பதிப்பு",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "பிழையுடன் ஏற்றுமதி தோல்வியடைந்தது",
+ "proxyConfigured": "ப்ராக்ஸி உள்ளமைக்கப்பட்டது",
+ "concurrencyPerModel": "ஒவ்வொரு மாதிரிக்கும் ஒரேநேரச் செயல்பாடுகள்",
+ "protocolTasksLabel": "நெறிமுறைப் பணிகள் லேபிள்",
+ "oauthProviders": "OAuth வழங்குநர்கள்",
+ "lockedCount": "பூட்டப்பட்டவற்றின் எண்ணிக்கை",
+ "deleteChainConfirm": "சங்கிலியை நீக்குவதை உறுதிப்படுத்து",
+ "recentTranslations": "சமீபத்திய மொழிபெயர்ப்புகள்",
+ "zedImportButton": "Zed இறக்குமதி பொத்தான்",
+ "responsesDesc": "பதில்கள் விளக்கம்",
+ "testedCount": "சோதிக்கப்பட்டவற்றின் எண்ணிக்கை",
+ "providersCommaSeparatedPlaceholder": "காற்புள்ளியால் பிரிக்கப்பட்ட வழங்குநர்களுக்கான இடநிரப்பி",
+ "signatureDefaults": "கையொப்ப இயல்புநிலைகள்",
+ "errorCreating": "உருவாக்குவதில் பிழை",
+ "timeRangeYear": "கால வரம்பு: ஆண்டு",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
- "testBenchTab": "Test Bench",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "cloudDisabledSuccess": "கிளவுட் வெற்றிகரமாக முடக்கப்பட்டது",
+ "deleteConfirm": "நீக்குதலை உறுதிப்படுத்தவும்",
+ "check": "சரிபார்க்கவும்",
+ "safeSearch": "பாதுகாப்பான தேடல்",
+ "protocolLastActivity": "நெறிமுறையின் கடைசிச் செயல்பாடு",
+ "openMcpDashboard": "Mcp டாஷ்போர்டைத் திறக்கவும்",
+ "testBenchTab": "சோதனைத் தளம்",
+ "chatPathLabel": "அரட்டைப் பாதைக்கான லேபிள்",
+ "retryDelay": "மறுமுயற்சித் தாமதம்",
+ "errorUpdating": "புதுப்பிப்பதில் பிழை",
+ "ideCliIntegrations": "IDE CLI ஒருங்கிணைப்புகள்",
+ "imageGeneration": "பட உருவாக்கம்",
+ "apiKeyRequired": "API விசை தேவை",
+ "resetAllTitle": "அனைத்தையும் மீட்டமைத்தல்",
+ "connectionError": "இணைப்புப் பிழை",
+ "modelName": "மாதிரியின் பெயர்",
+ "apiKeyForCheck": "சரிபார்ப்புக்கான API விசை",
+ "cloudRequestTimeout": "கிளவுட் கோரிக்கைக்கான நேரக்கெடு முடிந்தது",
+ "showConfiguredOnly": "உள்ளமைக்கப்பட்டவற்றை மட்டும் காட்டு",
"showFreeOnly": "இலவசம் மட்டுமே",
"addFirstProvider": "உங்கள் முதல் வழங்குநரைச் சேர்க்கவும்",
"addFirstProviderDesc": "OmniRoute மூலம் ரூட்டிங் கோரிக்கைகளைத் தொடங்க AI வழங்குநரை இணைக்கவும். நீங்கள் இலவச வழங்குநர்கள், API விசைகள் அல்லது OAuth கணக்குகளைப் பயன்படுத்தலாம்.",
"learnMore": "மேலும் அறிக",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "டொமைன்களைச் சேர்க்கவும்",
+ "promptCache": "ப்ராம்ப்ட் தற்காலிகச் சேமிப்பு",
+ "cloudConnected": "கிளவுட் இணைக்கப்பட்டது",
+ "deleteChain": "சங்கிலியை நீக்கவும்",
+ "chatPathPlaceholder": "அரட்டைப் பாதைக்கான இடநிரப்பி",
+ "databasePath": "தரவுத்தளப் பாதை",
+ "usingLocalServer": "உள்ளூர் சேவையகத்தைப் பயன்படுத்துகிறது",
+ "globalComboConfig": "உலகளாவிய சேர்க்கை உள்ளமைவு",
+ "backupFailed": "காப்புப்பிரதி தோல்வியடைந்தது",
+ "tabProtocols": "நெறிமுறைகள் தாவல்",
+ "continue": "தொடரவும்",
+ "categorySearch": "வகைத் தேடல்",
+ "rateLimitStatus": "விகித வரம்பு நிலை",
+ "repairEnvSuccess": "சூழல் வெற்றிகரமாகச் சரிசெய்யப்பட்டது",
+ "nameRequired": "பெயர் தேவை",
+ "country": "நாடு",
+ "trackMetricsDesc": "அளவீடுகளைக் கண்காணிப்பதற்கான விளக்கம்",
+ "durationSecondsShort": "கால அளவு (விநாடிகள்) — சுருக்கம்",
+ "formatConverterDescription": "வடிவமைப்பு மாற்றியின் விளக்கம்",
+ "cloudBenefitAccess": "கிளவுட் நன்மைக்கான அணுகல்",
+ "maxRetries": "அதிகபட்ச மறுமுயற்சிகள்",
+ "queueTimeout": "வரிசைக் காத்திருப்பு நேரம்",
"queueDepth": "வரிசை ஆழம்",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "வழங்குநரைச் சேர்",
+ "realtime": "நிகழ்நேரம்",
+ "totalTranslations": "மொத்த மொழிபெயர்ப்புகள்",
+ "protocolActiveStreamsLabel": "நெறிமுறை செயலில் உள்ள ஸ்ட்ரீம்களின் லேபிள்",
+ "repairEnv": "சூழல் மாறிகளைச் சீரமை",
+ "modelsCount": "மாடல்களின் எண்ணிக்கை",
+ "viewBackups": "காப்புப்பிரதிகளைக் காண்க",
+ "responsesApi": "Responses API",
+ "copyComboName": "காம்போ பெயரை நகலெடு",
+ "failures": "தோல்விகள்",
+ "failedUpdate": "புதுப்பிப்பு தோல்வியடைந்தது",
+ "imageDesc": "படத்தின் விளக்கம்",
+ "failedCreate": "உருவாக்கம் தோல்வியடைந்தது",
+ "remainingOfLimit": "வரம்பில் மீதமுள்ளது",
+ "protocolsTitle": "நெறிமுறைகளின் தலைப்பு",
+ "expirationBannerExpiringSoonDesc": "காலாவதி அறிவிப்புப் பட்டை — விரைவில் காலாவதியாகும் விளக்கம்",
+ "source": "மூலம்",
+ "failed": "தோல்வியடைந்தது",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "Mcp விரைவுத் தொடக்கம் — படி 1",
+ "runTest": "சோதனையை இயக்கு",
+ "loadingFallbackChains": "மாற்றுக் காப்புச் சங்கிலிகள் ஏற்றப்படுகின்றன",
+ "healthy": "ஆரோக்கியமானது",
+ "version": "பதிப்பு",
+ "saveBlockWeighted": "எடையிடப்பட்ட தொகுதியைச் சேமி",
+ "zedImportNone": "Zed இறக்குமதி — எதுவுமில்லை",
+ "noBackupsYet": "இதுவரை காப்புப்பிரதிகள் இல்லை",
+ "noGlobalProxy": "உலகளாவிய ப்ராக்ஸி இல்லை",
+ "noModels": "மாடல்கள் இல்லை",
+ "stickyLimit": "நிலையான வரம்பு",
+ "passedCount": "தேர்ச்சி பெற்றவற்றின் எண்ணிக்கை",
+ "zedImportFailed": "Zed இறக்குமதி தோல்வியடைந்தது",
+ "saving": "சேமிக்கப்படுகிறது",
+ "testAll": "அனைத்தையும் சோதி",
+ "globalProxyDesc": "உலகளாவிய ப்ராக்ஸியின் விளக்கம்",
+ "latencyP99": "தாமதம் P99",
+ "connectingToCloud": "கிளவுடுடன் இணைக்கிறது",
+ "responses": "பதில்கள்",
+ "errorDeleting": "நீக்குவதில் பிழை",
+ "openaiPrefixPlaceholder": "Openai முன்னொட்டு இடநிரப்பு",
+ "enterPassword": "கடவுச்சொல்லை உள்ளிடவும்",
+ "openA2aDashboard": "A2A டாஷ்போர்டைத் திறக்கவும்",
+ "enableProvider": "வழங்குநரை இயக்கவும்",
+ "modeTest": "சோதனைப் பயன்முறை",
+ "failedDeleteChain": "சங்கிலியை நீக்க முடியவில்லை",
+ "providerDesc": "வழங்குநர் விளக்கம்",
+ "templateLoadHint": "வார்ப்புரு ஏற்றுதல் குறிப்பு",
+ "lastFailure": "கடைசித் தோல்வி",
+ "moveDown": "கீழே நகர்த்தவும்",
+ "providerLabel": "வழங்குநர் அடையாளச்சொல்",
+ "clearCacheFailed": "தற்காலிகச் சேமிப்பை அழிக்க முடியவில்லை",
+ "imagesGenerations": "பட உருவாக்கங்கள்",
+ "repairEnvWorking": "சூழல் பழுதுபார்ப்பு செயல்படுகிறது",
+ "millisecondsShort": "மில்லிவினாடிகள் — சுருக்கம்",
+ "globalLabel": "உலகளாவிய அடையாளச்சொல்",
+ "failuresPlural": "தோல்விகள்",
+ "completionsLegacyDesc": "மரபுவழி நிறைவுகளின் விளக்கம்",
+ "searchProviders": "வழங்குநர்களைத் தேடவும்",
+ "chatPathHint": "அரட்டைப் பாதைக் குறிப்பு",
+ "defaultStrategyDesc": "இயல்புநிலை உத்தி விளக்கம்",
+ "latencyP95": "தாமதநிலை P95",
+ "textToSpeech": "உரையிலிருந்து பேச்சு",
+ "searchType": "தேடல் வகை",
+ "messages": "செய்திகள்",
+ "aggregatorsGateways": "திரட்டிகள் மற்றும் நுழைவாயில்கள்",
+ "comboStrategyAria": "கூட்டு உத்தி Aria",
+ "input": "உள்ளீடு",
+ "testingConnection": "இணைப்பைச் சோதிக்கிறது",
+ "excludeDomains": "டொமைன்களை விலக்கவும்",
+ "webCookieProviders": "இணைய குக்கீ வழங்குநர்கள்",
+ "allTestsPassed": "அனைத்துச் சோதனைகளும் வெற்றிபெற்றன",
+ "openaiCompatibleName": "Openai-இணக்கமான பெயர்",
+ "warningCostOptimizedPartialPricing": "எச்சரிக்கை: செலவுக்கு உகந்ததாக்கப்பட்டது, பகுதியளவு விலை நிர்ணயம்",
+ "comboDefaultsGuideTitle": "கூட்டு இயல்புநிலைகள் வழிகாட்டித் தலைப்பு",
+ "hoursAgo": "மணிநேரங்களுக்கு முன்பு",
+ "notAvailable": "கிடைக்கவில்லை",
+ "skipAndContinue": "தவிர்த்து தொடரவும்",
+ "moderations": "உள்ளடக்கக் கட்டுப்பாடுகள்",
+ "proxyConfig": "ப்ராக்ஸி உள்ளமைவு",
+ "upstreamProxyProviders": "அப்ஸ்ட்ரீம் ப்ராக்ஸி வழங்குநர்கள்",
+ "exportAll": "அனைத்தையும் ஏற்றுமதி செய்",
+ "queuedCount": "வரிசையில் உள்ள எண்ணிக்கை",
+ "resetAll": "அனைத்தையும் மீட்டமை",
+ "noTranslations": "மொழிபெயர்ப்புகள் இல்லை",
+ "avgLatency": "சராசரி தாமதம்",
+ "throttleStatus": "விகிதக் கட்டுப்பாட்டு நிலை",
+ "backupRetentionDesc": "காப்புப்பிரதி தக்கவைப்பு விளக்கம்",
+ "noCBData": "Cb தரவு இல்லை",
+ "chainDeleted": "சங்கிலி நீக்கப்பட்டது",
+ "timeLeft": "மீதமுள்ள நேரம்",
+ "expirationBannerExpired": "காலாவதி அறிவிப்புப் பட்டை காலாவதியானது",
+ "language": "மொழி",
+ "invalidFileType": "தவறான கோப்பு வகை",
+ "monitoredProviders": "கண்காணிக்கப்படும் வழங்குநர்கள்",
+ "errors": "பிழைகள்",
+ "heap": "ஹீப்",
+ "chatCompletions": "அரட்டை நிறைவுகள்",
+ "exampleTemplatesHint": "எடுத்துக்காட்டு வார்ப்புருக்கள் குறிப்பு",
+ "retryDelayLabel": "மறுமுயற்சித் தாமதத்திற்கான லேபிள்",
+ "audioTranscription": "ஒலி உரைமாற்றம்",
+ "fallbackChainsDesc": "மாற்றுச் சங்கிலிகள் விளக்கம்",
+ "exampleTemplates": "எடுத்துக்காட்டு வார்ப்புருக்கள்",
+ "connectionsCount": "இணைப்புகளின் எண்ணிக்கை",
+ "modelsPathLabel": "மாதிரிகள் பாதைக்கான லேபிள்",
+ "activeProvidersHint": "செயலில் உள்ள வழங்குநர்கள் குறிப்பு",
+ "activeLockouts": "செயலில் உள்ள பூட்டுதல்கள்",
+ "invalid": "செல்லாதது",
+ "skipPassword": "கடவுச்சொல்லைத் தவிர்",
+ "moveUp": "மேலே நகர்த்து",
+ "timeRange": "நேர வரம்பு",
+ "stickyLimitDesc": "நிலையான வரம்பு விளக்கம்",
+ "cloudBenefitEdge": "கிளவுட் எட்ஜ் நன்மை",
+ "custom": "தனிப்பயன்",
+ "verifying": "சரிபார்க்கப்படுகிறது",
+ "baseUrlLabel": "அடிப்படை URL-க்கான லேபிள்",
+ "setPassword": "கடவுச்சொல்லை அமை",
+ "safeSearchStrict": "கடுமையான பாதுகாப்பான தேடல்",
+ "noChangesSinceBackup": "காப்புப்பிரதிக்குப் பிறகு மாற்றங்கள் இல்லை",
+ "modelsPathHint": "மாதிரிகள் பாதைக்கான குறிப்பு",
+ "audioTranscriptions": "ஒலி உரைமாற்றங்கள்",
+ "testCombo": "சேர்க்கையைச் சோதிக்கவும்",
+ "mcpQuickStartTitle": "MCP விரைவுத் தொடக்கத் தலைப்பு",
+ "comboUpdated": "சேர்க்கை புதுப்பிக்கப்பட்டது",
+ "weighted": "எடையிடப்பட்டது",
+ "providers": "வழங்குநர்கள்",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
- "chatTesterTab": "Chat Tester",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "noFallbackChainsDesc": "மாற்று வழிச் சங்கிலிகள் எதுவும் இல்லை என்பதற்கான விளக்கம்",
+ "yesImport": "ஆம், இறக்குமதி செய்",
+ "lockoutsAutoRefreshHint": "பூட்டுதல்களைத் தானாகப் புதுப்பிப்பதற்கான குறிப்பு",
+ "tabApis": "API-கள் தாவல்",
+ "sectionDescription": "பிரிவு விளக்கம்",
+ "filter": "வடிகட்டி",
+ "purgeLogsFailed": "பதிவுகளை முற்றிலும் நீக்க முடியவில்லை",
+ "latency": "தாமதம்",
+ "testAllOAuth": "அனைத்து OAuth இணைப்புகளையும் சோதிக்கவும்",
+ "mcpQuickStartStep3": "MCP விரைவுத் தொடக்கம் படி 3",
+ "repairEnvFailed": "சூழலைச் சரிசெய்ய முடியவில்லை",
+ "zedImportHint": "Zed இறக்குமதிக் குறிப்பு",
+ "modelsAcrossEndpoints": "முனைப்புள்ளிகள் முழுவதிலும் உள்ள மாதிரிகள்",
+ "autoDisableBannedAccounts": "தடைசெய்யப்பட்ட கணக்குகளைத் தானாக முடக்கு",
+ "securityDesc": "பாதுகாப்பு விளக்கம்",
+ "listModels": "மாதிரிகளைப் பட்டியலிடு",
+ "backupRestore": "காப்புப்பிரதி மற்றும் மீட்டமைப்பு",
+ "target": "இலக்கு",
+ "zedImportSuccess": "Zed இறக்குமதி வெற்றியடைந்தது",
+ "lastHeaderUpdate": "கடைசி தலைப்பு புதுப்பிப்பு",
+ "categoryCore": "முதன்மை வகை",
+ "noFallbackChains": "மாற்று வழிச் சங்கிலிகள் எதுவும் இல்லை",
+ "noSearchProviders": "தேடல் வழங்குநர்கள் எதுவும் இல்லை",
+ "autoBalance": "தானியங்கு சமநிலைப்படுத்தல்",
+ "noModelsYet": "இன்னும் மாதிரிகள் இல்லை",
+ "signatureFamily": "கையொப்பக் குடும்பம்",
+ "externalApiCalls": "வெளிப்புற API அழைப்புகள்",
+ "providerOverridesDesc": "வழங்குநர் மேலெழுதல்களின் விளக்கம்",
+ "signatureTool": "கையொப்பக் கருவி",
+ "connectionFailed": "இணைப்பு தோல்வியடைந்தது",
+ "activeLimitersPlural": "செயலில் உள்ள வரம்புக் கட்டுப்படுத்திகள்",
+ "doneDesc": "முடிந்தது விளக்கம்",
+ "down": "கீழே",
+ "noDataYet": "இதுவரை தரவு இல்லை",
+ "activeProviders": "செயலில் உள்ள வழங்குநர்கள்",
+ "nameInvalid": "பெயர் தவறானது",
+ "skip": "தவிர்",
+ "createChain": "சங்கிலியை உருவாக்கு",
+ "audioSpeech": "ஒலிப் பேச்சு",
+ "cacheCleared": "தற்காலிகச் சேமிப்பு அழிக்கப்பட்டது",
+ "searchTypeNews": "தேடல் வகை: செய்திகள்",
+ "durationMillisecondsShort": "கால அளவு (மி.வி.)",
+ "addOpenAICompatible": "Open Ai இணக்கமானதைச் சேர்",
+ "chatTesterTab": "அரட்டைச் சோதனையாளர்",
+ "queued": "வரிசையில் உள்ளது",
+ "domainPlaceholder": "டொமைன் இடநிரப்பி",
+ "durationMinutesShort": "கால அளவு (நிமி.)",
+ "verifyingConnection": "இணைப்பு சரிபார்க்கப்படுகிறது",
+ "imageProviders": "பட வழங்குநர்கள்",
+ "protocolToolsLabel": "நெறிமுறைக் கருவிகள் லேபிள்",
+ "queryPlaceholder": "வினவல் இடநிரப்பி",
+ "videoGeneration": "காணொளி உருவாக்கம்",
+ "timeRangeWeek": "கால வரம்பு: ஒரு வாரம்",
+ "limitExhausted": "வரம்பு தீர்ந்துவிட்டது",
+ "failedDisable": "முடக்குவது தோல்வியடைந்தது",
+ "inMemoryNote": "நினைவகக் குறிப்பு",
+ "compatibleHint": "இணக்கத்தன்மைக் குறிப்பு",
+ "errorShort": "பிழை",
+ "advancedHint": "மேம்பட்ட அமைப்புகளுக்கான குறிப்பு",
+ "restoreFailed": "மீட்டமைத்தல் தோல்வியடைந்தது",
+ "searchProvidersHeading": "தேடல் வழங்குநர்கள்",
+ "comboName": "காம்போ பெயர்",
+ "autoDisableDescription": "தானாக முடக்குவதற்கான விளக்கம்",
+ "embeddingsDesc": "உட்பொதிவுகள் விளக்கம்",
+ "operational": "செயல்பாட்டில் உள்ளது",
+ "testAllApiKey": "அனைத்து API விசைகளையும் சோதி",
+ "backupCreated": "காப்புப்பிரதி உருவாக்கப்பட்டது",
+ "errorDuringImport": "இறக்குமதியின்போது பிழை",
+ "comboDefaultsGuideHint2": "காம்போ இயல்புநிலை வழிகாட்டிக் குறிப்பு 2",
+ "connecting": "இணைக்கப்படுகிறது",
+ "fillModelAndProviders": "மாதிரியையும் வழங்குநர்களையும் நிரப்பவும்",
+ "syncing": "ஒத்திசைக்கிறது",
+ "resetConfirm": "மீட்டமைப்பை உறுதிப்படுத்துக",
+ "trackMetrics": "அளவீடுகளைக் கண்காணிக்கவும்",
+ "successful": "வெற்றிகரமானது",
+ "recovering": "மீட்டெடுக்கிறது",
+ "autoDisableThreshold": "தானியங்கு முடக்க வரம்பு",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "தரவை ஒத்திசைக்கிறது",
+ "cloudBenefitPorts": "Cloud நன்மை போர்ட்கள்",
+ "compatibleProviders": "இணக்கமான வழங்குநர்கள்",
"freeTierProviders": "இலவச அடுக்கு வழங்குநர்கள்",
"freeTierLabel": "இலவச அடுக்கு கிடைக்கிறது",
"freeTierProvidersDesc": "இலவச அடுக்குகளைக் கொண்ட வழங்குநர்கள் - சிலருக்கு API விசைப் பதிவு தேவை, மற்றவர்களுக்கு நற்சான்றிதழ்கள் எதுவும் தேவையில்லை.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "தற்காலிக சேமிப்பை அழிக்கவும்",
+ "reqs": "கோரிக்கைகள்",
+ "addAnthropicCompatible": "Anthropic-இணக்கமான வழங்குநரைச் சேர்க்கவும்",
+ "apiKeyProviders": "API விசை வழங்குநர்கள்",
+ "tabsAria": "தாவல்கள் ARIA",
+ "resetting": "மீட்டமைக்கிறது",
+ "millisecondsAbbr": "மி.வி.",
+ "backupReasonPreRestore": "மீட்டெடுப்பதற்கு முந்தைய காப்புப்பிரதி காரணம்",
+ "disableCloud": "Cloud-ஐ முடக்கவும்",
+ "newProviderNameAria": "புதிய வழங்குநர் பெயர் ARIA",
+ "passwordsMismatch": "கடவுச்சொற்கள் பொருந்தவில்லை",
+ "a2aQuickStartStep3": "A2A விரைவுத் தொடக்கம் படி 3",
+ "liveMonitorDescriptionSuffix": "நேரடிக் கண்காணிப்பு விளக்கப் பின்னொட்டு",
+ "failedAddProvider": "வழங்குநரைச் சேர்க்க முடியவில்லை",
+ "addAtLeastOneProvider": "குறைந்தது ஒரு வழங்குநரையாவது சேர்க்கவும்",
+ "reasonSeparator": "காரணப் பிரிப்பான்",
+ "zedImporting": "Zed இறக்குமதி செய்கிறது",
+ "confirmPasswordPlaceholder": "கடவுச்சொல்லை உறுதிப்படுத்தவும்",
+ "whatYouGet": "உங்களுக்குக் கிடைப்பவை",
+ "signatureSession": "கையொப்ப அமர்வு",
+ "errorCountNoCode": "குறியீடு இல்லாத பிழை எண்ணிக்கை",
+ "testing": "சோதிக்கிறது",
+ "providersCommaSeparated": "காற்புள்ளியால் பிரிக்கப்பட்ட வழங்குநர்கள்",
+ "exportDatabase": "தரவுத்தளத்தை ஏற்றுமதி செய்யவும்",
+ "hitRate": "வெற்றி விகிதம்",
+ "completionsLegacy": "நிறைவுகள் (பழைய முறை)",
+ "removeModel": "மாதிரியை அகற்றவும்",
+ "timeRangeDay": "கால வரம்பு: நாள்",
+ "cloudRequestFailed": "Cloud கோரிக்கை தோல்வியடைந்தது",
+ "updatedAt": "புதுப்பிக்கப்பட்ட நேரம்",
+ "monitoredProvidersHint": "கண்காணிக்கப்படும் வழங்குநர்கள் குறிப்பு",
+ "connectionSuccessful": "இணைப்பு வெற்றிகரமாக அமைந்தது",
+ "latencyP50": "தாமதம் P50",
+ "logsDeleted": "பதிவுகள் நீக்கப்பட்டன",
+ "chatTester": "அரட்டைச் சோதனையாளர்",
+ "safeSearchOff": "பாதுகாப்பான தேடல் முடக்கப்பட்டுள்ளது",
+ "nameHint": "பெயர் குறிப்பு",
+ "debugToggle": "பிழைத்திருத்த நிலைமாற்றி",
+ "embedding": "உட்பொதித்தல்",
+ "issuesLabel": "சிக்கல்கள் குறிச்சொல்",
+ "optionAny": "எதுவும்",
+ "maxNestingDepth": "அதிகபட்ச உள்ளமைவு ஆழம்",
+ "rerank": "மறுதரவரிசைப்படுத்தல்",
+ "checking": "சரிபார்க்கப்படுகிறது",
+ "getStarted": "தொடங்குங்கள்",
+ "restoreSuccess": "மீட்டமைப்பு வெற்றிகரமாக முடிந்தது",
+ "issuesDetected": "சிக்கல்கள் கண்டறியப்பட்டன",
+ "signatureCache": "கையொப்பத் தற்காலிகச் சேமிப்பு",
+ "modelLockouts": "மாதிரிப் பூட்டல்கள்",
+ "usingCloudProxy": "Cloud Proxy பயன்படுத்தப்படுகிறது",
+ "loadingHealth": "நிலை ஏற்றப்படுகிறது",
+ "providerOverrides": "வழங்குநர் மேலெழுதல்கள்",
+ "audioTranscriptionDesc": "ஒலி உரைமாற்ற விளக்கம்",
+ "learnedFromHeaders": "தலைப்புகளிலிருந்து கற்றவை",
+ "totalRequests": "மொத்தக் கோரிக்கைகள்",
+ "cloudUnstableNote": "Cloud நிலையற்ற தன்மை குறிப்பு",
"gamificationAdmin": "கேமிஃபிகேஷன் நிர்வாகி",
"monitorAnomaliesAndHealth": "முரண்பாடுகள் மற்றும் அமைப்பின் ஆரோக்கியத்தை கண்காணிக்கவும்",
"flaggedAnomalies": "கொடியிடப்பட்ட முரண்பாடுகள்",
"noAnomaliesDetected": "முரண்பாடுகள் எதுவும் கண்டறியப்படவில்லை",
"apiKey": "API விசை",
- "xpLastHour": "XP (1h)",
+ "xpLastHour": "XP (1 மணிநேரம்)",
"zScore": "Z-ஸ்கோர்",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "சந்தேகத்திற்குரியது",
"tokensCommunityServers": "சமூக சேவையகங்கள்",
"tokensServerNamePlaceholder": "சர்வர் பெயர்",
"tokensApiKeyPlaceholder": "API விசை",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "மேலும் ஏற்றுகிறது…",
"recommended": "பரிந்துரைக்கப்படுகிறது",
"understand": "எனக்குப் புரிகிறது",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "தொகுதிச் செயலாக்கம்",
+ "batchConceptSubtitle": "ஆயிரக்கணக்கான கோரிக்கைகளை ~50% செலவில் ஒத்திசைவின்றிச் செயலாக்குங்கள் (24 மணிநேரக் காலவரம்பு). மதிப்பீடுகள், வகைப்பாடு மற்றும் உட்பொதித்தல்களுக்கு ஏற்றது.",
+ "batchConceptHowItWorks": "இது எவ்வாறு செயல்படுகிறது",
+ "batchConceptBenefit50pct": "உள்ளீடு + வெளியீட்டு டோக்கன்களுக்கு 50% தள்ளுபடி",
+ "batchConceptAsync24h": "24 மணிநேர நிறைவு காலவரம்புடன் ஒத்திசைவற்ற செயலாக்கம்",
+ "batchConceptUseCases": "மொத்த வகைப்பாடு, மதிப்பீடுகள் மற்றும் உட்பொதித்தல்களுக்கு மிகவும் ஏற்றது",
+ "batchHeaderSubtitle": "பல கோரிக்கைகளை ஒரே பணியாக இயக்குங்கள்",
+ "batchStep1": "1 · JSONL-ஐப் பதிவேற்றுங்கள்",
+ "batchStep1Desc": "கோரிக்கைகளைச் சேர்க்கவும்",
+ "batchStep2": "2 · தொகுதியை உருவாக்குங்கள்",
+ "batchStep2Desc": "பணியை இயக்குங்கள்",
+ "batchStep3": "3 · முடிவுகளைப் பெறுங்கள்",
+ "batchStep3Desc": "வெளியீட்டைப் பதிவிறக்கு",
+ "filesConceptTitle": "தொகுதி கோப்புகள்",
+ "filesConceptSubtitle": "தொகுதிகளால் பயன்படுத்தப்படும் JSONL கோப்புகள்: உள்ளீட்டுக் கோரிக்கைகள், முடிவுகள் மற்றும் பிழைகள்.",
+ "filesConceptInput": "உள்ளீடு — ஒரு வரிக்கு ஒரு கோரிக்கையைக் கொண்ட உங்கள் JSONL",
+ "filesConceptOutput": "வெளியீடு — நிறைவடைந்த கோரிக்கைகளின் முடிவுகள்",
+ "filesConceptError": "பிழைகள் — தோல்வியடைந்த கோரிக்கைகள்",
+ "filesConceptRetention": "தக்கவைப்புக் காலம்: இயல்பாக 30 நாட்கள் (Anthropic-இல் 29 நாட்கள்)",
+ "wizardTitle": "புதிய தொகுதி",
+ "wizardClose": "மூடு",
+ "wizardNext": "அடுத்து",
+ "wizardBack": "பின்செல்",
+ "wizardCancel": "ரத்துசெய்",
+ "wizardCreate": "தொகுதியை உருவாக்கு",
+ "wizardCreating": "உருவாக்கப்படுகிறது…",
+ "wizardStep1Destination": "சேருமிடம்",
+ "wizardStep2Input": "உள்ளீடு",
+ "wizardStep3Validate": "சரிபார்",
+ "wizardStep4Cost": "செலவு மற்றும் உருவாக்கம்",
+ "wizardProviderLabel": "வழங்குநர்",
+ "wizardEndpointLabel": "இறுதிப்புள்ளி",
+ "wizardModelLabel": "மாதிரி",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (நாங்கள் மாற்றுவோம்)",
+ "wizardDropOrPick": "ஒரு கோப்பை இங்கே விடவும் அல்லது தேர்ந்தெடுக்கக் கிளிக் செய்யவும்",
+ "wizardCsvMappingTitle": "CSV நெடுவரிசைகள் → கோரிக்கைப் புலங்களைப் பொருத்து",
+ "wizardCsvMappingAddField": "புலத்தைச் சேர்",
"wizardCsvNoColumns": "CSV தலைப்பில் நெடுவரிசைகள் எதுவும் கண்டறியப்படவில்லை.",
"wizardCsvIgnoreColumn": "— புறக்கணி —",
"wizardCsvCustomIdMapped": "custom_id மேப் செய்யப்பட்டது",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} வரிசைகள் பாகுபடுத்தப்பட்டன",
"wizardCsvRowsSkipped": "{count} வரிசைகள் தவிர்க்கப்பட்டன",
"wizardCsvRowError": "வரிசை {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "அனைத்து வரிகளும் செல்லுபடியாகும்",
"wizardValidating": "சரிபார்க்கிறது…",
"wizardValidationParseFailed": "சரிபார்ப்பு தோல்வியடைந்தது — உள்ளடக்கத்தைப் பாகுபடுத்த முடியவில்லை.",
"wizardValidationSummary": "{lines} வரிகள் · {ids} தனித்துவமான custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "நகல் custom_ids கண்டறியப்பட்டன:",
"wizardValidationFirstErrors": "பிழைகள் (முதல் {count}):",
"wizardValidationLine": "வரி {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "சரிபார்ப்புப் பிழைகள்",
+ "wizardValidationPreview": "முன்னோட்டம் (முதல் 5 கோரிக்கைகள்)",
+ "wizardValidationSamplingNote": "கோப்பு பெரியது — மாதிரி எடுப்பின் மூலம் சரிபார்க்கப்பட்டது (முதல் 1000 + கடைசி 100 வரிகள்). முழுச் சரிபார்ப்பு சேவையகத்தில் இயங்கும்.",
+ "wizardCostSync": "ஒத்திசைவுச் செலவு",
+ "wizardCostBatch": "தொகுதிச் செலவு (-50%)",
+ "wizardCostSavings": "சேமிப்பு",
+ "wizardCostEstimatedNotice": "மதிப்பிடப்பட்ட செலவு — உண்மையான கட்டணம் மாறுபடலாம்.",
+ "wizardErrorUpload": "கோப்பைப் பதிவேற்ற முடியவில்லை. மீண்டும் முயலவும்.",
+ "wizardErrorCreate": "தொகுதியை உருவாக்க முடியவில்லை. மீண்டும் முயலவும்.",
+ "wizardEmptyProviders": "ஒரு தொகுதியை உருவாக்க, தொகுதி ஆதரவுள்ள வழங்குநரை (OpenAI, Anthropic அல்லது Gemini) இணைக்கவும்.",
+ "uploadModalTitle": "தொகுதிக் கோப்பைப் பதிவேற்று",
+ "uploadModalDropOrPick": "ஒரு .jsonl கோப்பை இங்கே விடவும் அல்லது தேர்ந்தெடுக்கக் கிளிக் செய்யவும்",
+ "uploadModalUpload": "பதிவேற்று",
+ "uploadModalCancel": "ரத்துசெய்",
+ "uploadModalError": "பதிவேற்றம் தோல்வியடைந்தது. மீண்டும் முயற்சிக்கவும்.",
+ "uploadModalSuccess": "பதிவேற்றப்பட்டது",
+ "uploadModalSizeLimit": "அதிகபட்சம் 512 MB",
+ "batchListNewButton": "புதிய தொகுதி",
+ "batchListAutoRefresh": "ஒவ்வொரு 30 வினாடிக்கும் தானாகப் புதுப்பி",
+ "batchListCostColumn": "செலவு",
+ "batchActionCancel": "ரத்துசெய்",
+ "batchActionDownloadOutput": "வெளியீட்டைப் பதிவிறக்கு",
+ "batchActionDownloadErrors": "பிழைகளைப் பதிவிறக்கு",
+ "batchActionRetry": "தோல்வியடைந்தவற்றை மீண்டும் முயற்சிக்கவும்",
+ "batchActionRetryConfirm": "தோல்வியடைந்த {n} கோரிக்கை(களை) மீண்டும் முயற்சிக்கவா? பயன்படுத்தப்பட்ட உண்மையான டோக்கன்களைப் பொறுத்து இறுதிச் செலவு அமையும்.",
+ "expirationBadgeCritical": "மிக அவசரம்",
+ "expirationBadgeWarning": "விரைவில்",
+ "expirationBadgeNormal": "நிலுவையில்",
+ "expirationBadgeExpired": "காலாவதியானது",
+ "filesListUploadButton": "பதிவேற்று",
+ "filesListUsedByColumn": "பயன்படுத்துவது",
+ "filesListUsedByNone": "எதுவுமில்லை",
+ "filesListUsedByRoleInput": "உள்ளீடு",
+ "filesListUsedByRoleOutput": "வெளியீடு",
+ "filesListUsedByRoleError": "பிழை",
+ "filesListSizeColumn": "அளவு",
+ "batchListProgressPartial": "(பகுதியளவு)",
+ "batchListProviderColumn": "வழங்குநர்",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "மற்றவை",
+ "batchListTitle": "தொகுதிகள்",
+ "batchListCount": "{count} தொகுதிகள்",
+ "batchListRemovingCompleted": "அகற்றப்படுகிறது…",
+ "batchListRemoveCompleted": "அகற்றல் நிறைவடைந்தது",
+ "batchListTableStatus": "நிலை",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "இறுதிப்புள்ளி",
+ "batchListTableModel": "மாடல்",
+ "batchListTableProgress": "முன்னேற்றம்",
+ "batchListTableCreated": "உருவாக்கப்பட்டது",
+ "batchListTableExpires": "காலாவதியாகும் நேரம்",
+ "batchListLoading": "ஏற்றப்படுகிறது…",
+ "batchListEmpty": "தொகுதிகள் எதுவும் கிடைக்கவில்லை",
+ "batchListValidating": "சரிபார்க்கிறது…",
+ "batchStatusAll": "அனைத்து நிலைகளும்",
+ "batchStatusInProgress": "செயல்பாட்டில் உள்ளது",
+ "batchStatusValidating": "சரிபார்க்கிறது",
+ "batchStatusFinalizing": "இறுதிப்படுத்துகிறது",
+ "batchStatusCompleted": "நிறைவடைந்தது",
+ "batchStatusFailed": "தோல்வியடைந்தது",
+ "batchStatusCancelled": "ரத்துசெய்யப்பட்டது",
+ "batchStatusCancelling": "ரத்துசெய்கிறது",
+ "batchStatusExpired": "காலாவதியானது",
+ "batchStatusCompletedWithFailures": "தோல்விகளுடன் நிறைவடைந்தது",
+ "batchStatusInProgressWithFailures": "செயல்பாட்டில் உள்ளது (தோல்விகளுடன்)",
+ "batchStatusFinalizingWithFailures": "இறுதிப்படுத்துகிறது (தோல்விகளுடன்)",
+ "batchStatusCancelledWithFailures": "தோல்விகளுடன் ரத்துசெய்யப்பட்டது",
+ "batchStatusExpiredWithFailures": "காலாவதியானது (பகுதியளவு)",
+ "wizardCostEstimating": "செலவைக் கணக்கிடுகிறது…",
+ "wizardCostRequests": "கோரிக்கைகள்",
+ "wizardCostInputTok": "உள்ளீட்டு tok",
+ "wizardCostOutputTok": "வெளியீட்டு tok",
+ "wizardCostWindow": "கால வரம்பு",
+ "wizardDestinationSelectProvider": "ஒரு வழங்குநரைத் தேர்ந்தெடுக்கவும்…",
+ "wizardDestinationSelectModel": "ஒரு மாதிரியைத் தேர்ந்தெடுக்கவும்…",
+ "wizardDestinationConnectProvider": "ஒரு வழங்குநரை இணைக்கவும்",
+ "batchListBatchCreated": "தொகுதி {id} உருவாக்கப்பட்டது — பட்டியல் புதுப்பிக்கப்படுகிறது…",
+ "batchListBatchCreatedDismiss": "மூடு",
+ "batchListRefreshing": "புதுப்பிக்கிறது…",
+ "batchListRefresh": "புதுப்பி",
+ "uploadFileModalRemove": "அகற்று",
+ "uploadFileModalUploading": "பதிவேற்றுகிறது…",
+ "wizardInputReading": "கோப்பைப் படிக்கிறது…",
+ "wizardInputReady": "தயார்",
+ "wizardInputLargeFileLabel": "பெரிய கோப்பு — மாதிரித் தரவைச் சரிபார்க்கிறது",
+ "wizardInputCsvJsonlReady": "JSONL உருவாக்கப்பட்டது — சரிபார்க்கத் தயார்.",
+ "wizardInputLargeFileWarning": "பெரிய கோப்பு கண்டறியப்பட்டது — மாதிரி எடுப்பதன் மூலம் சரிபார்ப்பு நடைபெறும் (முதல் 5 MB + கடைசி 100 KB). முழுச் சரிபார்ப்பு சேவையகத்தில் நடைபெறும்.",
+ "wizardCostWindow24h": "24 மணிநேர நிறைவு கால வரம்பு",
+ "wizardValidationFieldsOk": "தேவையான புலங்கள் செல்லுபடியாகும்",
+ "filesListDelete": "நீக்கு",
+ "filesListDownload": "பதிவிறக்கு",
+ "batchDetailActionCancel": "தொகுதியை ரத்துசெய்",
+ "batchDetailActionRetry": "தோல்வியடைந்த கோரிக்கைகளை மீண்டும் முயற்சிக்கவும்",
+ "batchDetailCancelling": "ரத்துசெய்கிறது…",
+ "batchDetailRetrying": "மறுமுயற்சிக்குத் தயாராகிறது…",
+ "batchDetailCancelConfirm": "இந்தத் தொகுதியை ரத்துசெய்யவா? செயல்பாட்டில் உள்ள கோரிக்கைகள் நிறுத்தப்படும்.",
+ "batchActionCancelError": "தொகுதியை ரத்துசெய்ய முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "batchActionRetryError": "தோல்வியடைந்த கோரிக்கைகளை மீண்டும் முயற்சிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "batchConceptRetentionNote": "முடிவுகள் மற்றும் பிழைக் கோப்புகள் 30 நாட்களுக்குத் தக்கவைக்கப்படும் (Anthropic: 29 நாட்கள்)",
"batchFilesSizeColumn": "அளவு",
"toggleNoAuthProvider": "அங்கீகாரம் இல்லாத வழங்குநரை மாற்றவும்",
"loadingModels": "மாதிரிகளை ஏற்றுகிறது…",
@@ -988,43 +988,47 @@
"disabled": "முடக்கப்பட்டது",
"featureFlagOmnirouteEmergencyFallbackDescription": "பட்ஜெட் தீர்ந்த கோரிக்கைகளை அவசரகால இலவச ஃபால்பேக் வழங்குநர்/மாடலுக்கு வழிசெலுத்துங்கள்.",
"featureFlagArenaEloSyncEnabledDescription": "மாடல் நுண்ணறிவு தரவரிசைகளுக்காக அவ்வப்போதான Arena AI லீடர்போர்டு ELO ஒத்திசைவை இயக்குங்கள்.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "காம்போ வழித்தடம் மாடல்களை மாற்றும்போது உரையாடல் சுருக்கங்களை உருவாக்கி உட்செலுத்தவும். மாடல் மாற்றங்களைத் தனித்தனியாகக் கையாளவும், ஏற்கனவே உள்ள மற்றும் எதிர்கால காம்போக்கள் அனைத்திற்குமான பின்னணி ஒப்படைப்புக் கோரிக்கைகளைத் தடுக்கவும் இதை முடக்கவும்.",
"featureFlagExposeCcDiscoveryAliasesDescription": "/v1/models இல் Claude Code gateway மாதிரி கண்டுபிடிப்பு பட்டியலில் non-Claude மாதிரிகளை காட்ட Claude/<provider>/<model> மின்னூல் அடையாளங்களை விளம்பரம் செய்யவும். எச்சரிக்கை: உலகளாவியமாக செயல்படுத்தப்பட்டால் அனைத்து கிளையன்டுகளுக்கும் பட்டியல் பதிவுகளை இரட்டைப்படுத்துகிறது.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> நுழைவாயில் மாற்றுப்பெயர்களுக்கான முதன்மை நிலைமாற்றி. இயக்கம் (இயல்புநிலை): தகுதியுள்ள, சிந்திக்கும் திறன்கொண்ட ஒவ்வொரு Claude மாடலுக்கும் /v1/models ஒரு சிந்தனையற்ற மாறுபாட்டைக் காட்டும்; மேலும், ஒரு கோரிக்கையில் அனுப்பப்படும் no-think/ ஐடி, பகுத்தறிதல் ஒடுக்கப்பட்ட நிலையில் உண்மையான மாடலுக்குத் திரும்பத் தீர்மானிக்கப்படும். முடக்கம்: எந்த மாறுபாடுகளும் காட்டப்படாது; மேலும் no-think/ ஐடி, மற்ற அறியப்படாத மாடல் ஐடியைப் போலவே கருதப்படும். இது இயக்கத்தில் இருக்கும்போது, ஒவ்வொரு மாடலுக்குமான ModelSpec.noThinkingAlias இணைதல்/விலகல் அமைப்பு தொடர்ந்து பொருந்தும்.",
"featureFlagChatVirtualLanesEnabledDescription": "வழங்குநர் அனுப்பீட்டிற்கு ஒவ்வொரு குத்தகைதாரருக்கும் (tenant) தகவமைப்பு மெய்நிகர் சேர்க்கைப் பாதைகளை இயக்கு (#9654): ஒரு குத்தகைதாரரின் அதிகரிப்பு இனி மற்றொருவருக்கு 503 ஐ அளிக்காது. OMNIROUTE_CHAT_VIRTUAL_LANES சூழல் மாறி இந்த டாஷ்போர்டு அமைப்பை விட முன்னுரிமை பெறுகிறது; மாற்றங்கள் சேவையகம் மறுதொடக்கத்தில் நடைமுறைக்கு வரும்.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "டாஷ்போர்டு வழங்குநர் பக்கங்கள்: வழங்குநர் ஏற்கும் குறியீடுகளில் மட்டும் இலவசம் என்ற அடையாளத்தைக் காட்டும் — ஆவணப்படுத்தப்பட்ட இலவச அடுக்கு இல்லாத பதிவுசெய்யப்பட்ட வழங்குநர்களுக்கான காட்சிப் பெயர் ஊகம், பூலியன் அல்லாத இலவசப் புலங்கள் மற்றும் :free பின்னொட்டுகளைப் புறக்கணிக்கும். இதை முடக்கினால், முந்தைய அடையாள விதி பயன்படுத்தப்படும்.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy குளங்களும் opencode-இன் ஒவ்வொரு கணக்கிற்குமான சுழற்சியும், இப்போது தோல்வியடைந்த ஒரு proxy-ஐ (மறுக்கப்பட்ட TCP ஆய்வு அல்லது அதன் வழியாகப் பெறப்பட்ட 429) ஒவ்வொரு செயல்முறைக்கும் உரிய ஒரு காலகட்டத்திற்கு மீண்டும் வழங்குவதை நிறுத்தும்; ஒவ்வொரு தொடர் தோல்வியின்போதும் அந்தக் காலகட்டம் இரட்டிப்பாகி, அதிகபட்ச வரம்பு வரை செல்லும். எந்த proxy நிலையும் எழுதப்படாது; ஒவ்வொரு தேர்வுக்குரியதும் ஒதுக்கி வைக்கப்பட்டால், தேர்வு மாறாமல் இருக்கும். இயல்பாக முடக்கப்பட்டிருக்கும்: தேர்வு வரிசை சாதாரண சுழற்சியை அப்படியே பின்பற்றும்.",
+ "featureFlagProxyPoolEgressObservationDescription": "டாஷ்போர்டில் ஒரு proxy குளத்தின் கீழ், கடந்த 24 மணிநேரத்தில் அதன் உறுப்பினர்களுக்குச் சேவையளித்த கண்டறியப்பட்ட வெளியேற்ற IP-களின் எண்ணிக்கை, அவற்றைப் பயன்படுத்திய இணைப்புகளின் எண்ணிக்கை மற்றும் ஓர் IP-க்குப் பின்னால் காணப்பட்ட அதிகபட்ச எண்ணிக்கை ஆகியவற்றைக் காட்டும். படிக்க மட்டும்; proxy பதிவிலிருந்து கணக்கிடப்படும்; வழித்தடத் தேர்வுக்கு ஒருபோதும் பயன்படுத்தப்படாது. இயல்பாக முடக்கப்பட்டிருக்கும்: குளத் திருத்தி மாறாமல் இருக்கும், மேலும் கண்காணிப்பு வழித்தடம் null எனப் பதிலளிக்கும்.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Proxy ஆரோக்கியச் சோதனையில், இலக்கு மறுத்த ஓர் ஆய்வு (401/403/429: proxy அதை அனுப்பியது, ஆனால் இலக்கு இந்த வெளியேற்ற IP-ஐ மறுத்தது), சேவையளிக்கப்பட்ட ஆய்வைப் போலவே proxy-இன் தொடர்ச்சியான தோல்வி வரிசையை மீட்டமைக்க அனுமதிக்கும். இயல்பாக முடக்கப்பட்டிருக்கும்: ஒரு மறுப்பு நடுநிலையாகவே இருந்து, தோல்வி வரிசையைத் தொடர வைத்திருக்கும். எந்த நிலையிலும் 5xx முடிவுறாததாகவே இருக்கும்; மேலும் ஒரு மறுப்பு ஒருபோதும் proxy-ஐ அகற்றவோ, முடக்கவோ அல்லது மீண்டும் செயல்படுத்தவோ செய்யாது.",
"sidebar": {
- "home": "Home",
- "dashboard": "Dashboard",
- "providers": "Providers",
- "combos": "Combos",
- "usage": "Usage",
- "analytics": "Analytics",
- "costs": "Costs",
- "health": "Health",
+ "home": "முகப்பு",
+ "dashboard": "கட்டுப்பாட்டுப் பலகம்",
+ "providers": "வழங்குநர்கள்",
+ "combos": "காம்போக்கள்",
+ "usage": "பயன்பாடு",
+ "analytics": "பகுப்பாய்வு",
+ "costs": "செலவுகள்",
+ "health": "செயல்நிலை",
"proxy": "பிராக்ஸி",
"limits": "Limits & Quotas",
- "cliTools": "CLI Tools",
- "media": "Media",
- "settings": "Settings",
- "translator": "Translator",
- "playground": "Playground",
- "searchTools": "Search Tools",
- "agents": "Agents",
+ "cliTools": "CLI கருவிகள்",
+ "media": "ஊடகம்",
+ "settings": "அமைப்புகள்",
+ "translator": "மொழிபெயர்ப்பி",
+ "playground": "சோதனைக் களம்",
+ "searchTools": "தேடல் கருவிகள்",
+ "agents": "முகவர்கள்",
"cloudAgents": "கிளவுட் முகவர்கள்",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "நினைவகம்",
+ "skills": "திறன்கள்",
"omniSkills": "OmniSkills",
"agentSkills": "முகவர் திறன்கள்",
"chaosConfig": "Chaos பயன்முறை",
- "docs": "Docs",
- "issues": "Issues",
- "endpoints": "Endpoints",
+ "docs": "ஆவணங்கள்",
+ "issues": "சிக்கல்கள்",
+ "endpoints": "இறுதிப்புள்ளிகள்",
"endpointsSubtitle": "உங்கள் AI இணைப்பு URLகள்",
- "apiManager": "API Keys",
+ "apiManager": "API விசைகள்",
"apiManagerSubtitle": "API விசைகள் மற்றும் அணுகலை நிர்வகிக்கவும்",
"embeddedServices": "உட்பொதிக்கப்பட்ட சேவைகள்",
"embeddedServicesSubtitle": "உள்ளூர் proxy சேவைகளை நிர்வகிக்கவும்",
- "logs": "Logs",
+ "logs": "பதிவுகள்",
"webhooks": "வெப்ஹூக்ஸ்",
"webhooksSubtitle": "நிகழ்வுகளின் அறிவிப்பைப் பெறுங்கள்",
"logExport": "பதிவு ஏற்றுமதி",
@@ -1033,82 +1037,82 @@
"batchSubtitle": "பல கோரிக்கைகளை செயல்படுத்தவும்",
"contextCavemanSubtitle": "உடனடி சுருக்கம்",
"contextRtkSubtitle": "வெளியீட்டு வடிகட்டுதல்",
- "auditLog": "Audit Log",
- "shutdown": "Shutdown",
- "restart": "Restart",
- "shutdownConfirm": "Shut down OmniRoute?",
- "restartConfirm": "Restart OmniRoute?",
+ "auditLog": "தணிக்கைப் பதிவு",
+ "shutdown": "நிறுத்து",
+ "restart": "மறுதொடக்கம்",
+ "shutdownConfirm": "OmniRoute-ஐ நிறுத்தவா?",
+ "restartConfirm": "OmniRoute-ஐ மறுதொடக்கம் செய்யவா?",
"version": "v{version}",
"debug": "Debug",
- "system": "System",
- "help": "Help",
+ "system": "அமைப்பு",
+ "help": "உதவி",
"primarySection": "Main",
"cliSection": "CLI",
"debugSection": "Debug",
"systemSection": "System",
"helpSection": "Help",
- "serverDisconnected": "Server Disconnected",
- "serverDisconnectedMsg": "The proxy server has been stopped or is restarting.",
- "expandSidebar": "Expand sidebar",
- "collapseSidebar": "Collapse sidebar",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
- "cliToolsShort": "Tools",
+ "serverDisconnected": "சேவையக இணைப்பு துண்டிக்கப்பட்டது",
+ "serverDisconnectedMsg": "பதிலி சேவையகம் நிறுத்தப்பட்டுள்ளது அல்லது மறுதொடக்கம் செய்யப்படுகிறது.",
+ "expandSidebar": "பக்கப்பட்டியை விரிவாக்கு",
+ "collapseSidebar": "பக்கப்பட்டியைச் சுருக்கு",
+ "themes": "தீம்கள்",
+ "presetColors": "பிரபலமான நிறங்கள்",
+ "createTheme": "தீமை உருவாக்கு",
+ "chooseColor": "ஒரு நிறத்தைத் தேர்ந்தெடுக்கவும்",
+ "themeCoral": "பவள நிறம்",
+ "themeBlue": "நீலம்",
+ "themeRed": "சிவப்பு",
+ "themeGreen": "பச்சை",
+ "themeViolet": "ஊதா",
+ "themeOrange": "ஆரஞ்சு",
+ "themeCyan": "சியான்",
+ "cliToolsShort": "கருவிகள்",
"cache": "Cache",
"cacheShort": "Cache",
"batch": "Batch Testing",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "themeSystem": "தீம் அமைப்பு",
+ "whitelabelingDesc": "வெள்ளை லேபிளிடல் விளக்கம்",
+ "switchThemes": "தீம்களை மாற்று",
+ "themeAccentDesc": "தீமின் அழுத்த நிற விளக்கம்",
+ "uploadFavicon": "Favicon-ஐப் பதிவேற்று",
+ "themeDark": "இருண்ட தீம்",
+ "customLogoDesc": "தனிப்பயன் Logo விளக்கம்",
+ "sidebarVisibilityToggle": "பக்கப்பட்டிக் காட்சிநிலை மாற்றி",
+ "themeAccent": "தீமின் அழுத்த நிறம்",
+ "resetFavicon": "Favicon-ஐ மீட்டமை",
+ "whitelabeling": "வெள்ளை லேபிளிடல்",
+ "darkMode": "இருண்ட பயன்முறை",
+ "uploadLogo": "Logo-வைப் பதிவேற்று",
+ "themeLight": "ஒளிர்ந்த தீம்",
+ "appName": "செயலி பெயர்",
+ "appNameDesc": "செயலி பெயர் விளக்கம்",
+ "resetLogo": "Logo-வை மீட்டமை",
+ "customFavicon": "தனிப்பயன் Favicon",
+ "hideHealthLogs": "நலநிலைப் பதிவுகளை மறை",
+ "customLogo": "தனிப்பயன் Logo",
+ "appearance": "தோற்றம்",
+ "themeSelectionAria": "தீம் தேர்வு Aria",
+ "themeCreate": "தீம் உருவாக்கம்",
+ "customFaviconDesc": "தனிப்பயன் Favicon விளக்கம்",
+ "logoPreview": "Logo முன்னோட்டம்",
+ "themeCustom": "தனிப்பயன் தீம்",
+ "hideHealthLogsDesc": "நலநிலைப் பதிவுகளின் விளக்கத்தை மறை",
+ "faviconPreview": "ஃபேவிகான் முன்னோட்டம்",
+ "changelog": "மாற்றப் பதிவு",
+ "contextSection": "சூழல் & தற்காலிகச் சேமிப்பு",
+ "contextCaveman": "கேவ்மேன்",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "எஞ்சின் சேர்க்கைகள்",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
- "contextUltra": "Ultra",
+ "contextUltra": "அல்ட்ரா",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "சுருக்க அமைப்புகள்",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "சேர்க்கை ஸ்டுடியோ",
"combosLiveSubtitle": "நேரலை ரூட்டிங் அடுக்கு",
"compressionStudio": "Compression Studio",
"compressionExclusions": "விலக்கல்கள்",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "நேரலை என்ஜின் அடுக்கு",
"compressionExclusionsSubtitle": "மாதிரி/எண்ட்பாயிண்ட் தவிர்க்கவும்",
"chaosConfigSubtitle": "பல மாடல் இணையான செயலாக்கம்",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "வழித்தடத் தேர்வு",
+ "protocolsSection": "நெறிமுறைகள்",
+ "agentsAiSection": "முகவர்கள் & AI",
+ "cacheContextSection": "தற்காலிகச் சேமிப்பு & சூழல்",
+ "analyticsSection": "பகுப்பாய்வு",
+ "costsSection": "செலவுகள்",
+ "monitoringSection": "கண்காணிப்பு",
+ "auditSecuritySection": "தணிக்கை & பாதுகாப்பு",
+ "devtoolsSection": "உருவாக்குநர் கருவிகள்",
+ "configurationSection": "உள்ளமைவு",
+ "aiFeaturesSection": "AI அம்சங்கள்",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "செருகுநிரல்கள்",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "API முனைப்புள்ளிகள்",
+ "batchFiles": "கோப்புகள்",
+ "analyticsEvals": "மதிப்பீடுகள்",
+ "analyticsSearch": "தேடல்",
+ "analyticsUtilization": "பயன்பாட்டு அளவு",
+ "analyticsComboHealth": "சேர்க்கை நலநிலை",
+ "analyticsCompression": "சுருக்கம்",
+ "costsBudget": "வரவுசெலவுத் திட்டம்",
"costsFreeTiers": "இலவச அடுக்கு பட்ஜெட்",
"costsFreeTiersSubtitle": "மாதாந்திர இலவச டோக்கன் ஒதுக்கீடுகள்",
"freeProviderRankings": "இலவச வழங்குநர் தரவரிசைகள்",
"freeProviderRankingsSubtitle": "மாடல் ELO மதிப்பெண்களின் அடிப்படையில் தரவரிசைப்படுத்தப்பட்ட சிறந்த இலவச வழங்குநர்கள்",
"radar": "ரேடார் பட்டியல்",
"radarSubtitle": "சமூகமாக வளமான இலவச மாதிரி பட்டியல்",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "ஒதுக்கீட்டுப் பகிர்வு",
+ "costsPricing": "விலை நிர்ணயம்",
+ "logsProxy": "பதிலாள் பதிவுகள்",
+ "logsConsole": "கன்சோல்",
+ "logsActivity": "செயல்பாடு",
+ "auditMcp": "MCP தணிக்கை",
"auditA2a": "A2A தணிக்கை",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "தோற்றம்",
+ "settingsAi": "AI அமைப்புகள்",
+ "settingsSecurity": "பாதுகாப்பு",
"settingsAccessTokens": "அணுகல் டோக்கன்கள்",
"settingsFeatureFlags": "அம்சம் கொடிகள்",
"settingsCache": "கேஷ்",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "அங்கீகார அனுமதி",
+ "settingsRouting": "வழித்தடம்",
+ "settingsResilience": "மீட்சித்திறன்",
"modelLockout": "மாடல் லாக்அவுட்",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "மேம்பட்டவை",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "வழங்குநர் ஒதுக்கீடு",
+ "providerQuota": "வழங்குநர் ஒதுக்கீடு",
+ "runtime": "இயக்கச்சூழல்",
+ "consoleLogs": "கன்சோல் பதிவுகள்",
+ "logsTimeline": "காலவரிசை",
"logsTimelineSubtitle": "காட்சி கோரிக்கை காலக்கெடு",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "உரையாடல்கள்",
+ "conversationsSubtitle": "பல-சுற்று முகவர் சார்ந்த உரையாடல்கள்",
+ "globalRouting": "உலகளாவிய வழித்தடம்",
+ "mitmProxy": "MITM பதிலி",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "agenticFeaturesSection": "முகவர் சார்ந்த அம்சங்கள்",
+ "otherFeaturesSection": "பிற அம்சங்கள்",
+ "compressionContextGroup": "சுருக்கச் சூழல்",
+ "gamificationGroup": "விளையாட்டுமயமாக்கல்",
+ "toolsGroup": "கருவிகள்",
+ "integrationsGroup": "ஒருங்கிணைப்புகள்",
+ "proxyGroup": "பதிலி",
+ "costsParametersGroup": "செலவு அளவுருக்கள்",
+ "auditGroup": "தணிக்கை",
+ "batchGroup": "தொகுதி",
+ "homeSubtitle": "டாஷ்போர்டு மேலோட்டம்",
+ "providersSubtitle": "AI வழங்குநர்களை நிர்வகிக்கவும்",
+ "quotaTrackerSubtitle": "பயன்பாட்டு வரம்புகளைக் கண்காணிக்கவும்",
+ "providerQuotaSubtitle": "வழங்குநரின் பயன்பாட்டு வரம்புகளைக் கண்காணிக்கவும்",
+ "runtimeSubtitle": "நிகழ்நேர மீட்சித்திறன் மற்றும் அமர்வுகள்",
+ "contextCombosSubtitle": "சுருக்கப் பொறிகளை ஒருங்கிணைக்கவும்",
+ "cliToolsSubtitle": "CLI இயக்கச்சூழல்களை உள்ளமைக்கவும்",
+ "agentsSubtitle": "உள்ளூர் முகவர்களை நிர்வகிக்கவும்",
+ "cloudAgentsSubtitle": "கிளவுட் அடிப்படையிலான முகவர்களை நிர்வகிக்கவும்",
+ "apiEndpointsSubtitle": "தனிப்பயன் முடிவுப்புள்ளிகளை வெளிப்படுத்து",
+ "proxySubtitle": "HTTP ப்ராக்ஸி அமைப்புகள்",
+ "mitmProxySubtitle": "MITM இடைமறிப்பு",
+ "oneProxySubtitle": "பொது ப்ராக்ஸி நுழைவாயில்",
+ "leaderboard": "தரவரிசைப் பலகை",
+ "profile": "சுயவிவரம்",
+ "tokens": "டோக்கன்கள்",
+ "gamificationAdmin": "விளையாட்டுமயமாக்கல் நிர்வாகம்",
+ "leaderboardSubtitle": "தரவரிசைகள் மற்றும் சாதனைகள்",
+ "profileSubtitle": "கணக்கு மற்றும் விருப்பத்தேர்வுகள்",
+ "tokensSubtitle": "டோக்கன் பயன்பாடு மற்றும் வரவுசெலவுத் திட்டங்கள்",
+ "gamificationAdminSubtitle": "முரண்பாடு கண்காணிப்பு மற்றும் மோசடித் தடுப்பு",
+ "usageSubtitle": "போக்குவரத்து மற்றும் பயன்பாட்டுப் புள்ளிவிவரங்கள்",
+ "analyticsComboHealthSubtitle": "காம்போ இலக்கின் நம்பகத்தன்மை",
+ "analyticsUtilizationSubtitle": "வழங்குநர் பயன்பாடு",
+ "costsSubtitle": "செலவுப் பகுப்பாய்வு",
+ "cacheSubtitle": "தற்காலிகச் சேமிப்பக வெற்றி விகிதங்கள்",
+ "analyticsCompressionSubtitle": "டோக்கன் சேமிப்புப் புள்ளிவிவரங்கள்",
+ "analyticsSearchSubtitle": "தேடல் கருவிப் பகுப்பாய்வு",
+ "analyticsEvalsSubtitle": "மதிப்பீட்டுத் தொகுப்பு முடிவுகள்",
"providerStats": "வழங்குநர் புள்ளிவிவரங்கள்",
"providerStatsSubtitle": "தாமதம் மற்றும் செயல்திறன் அளவீடுகள்",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "பயன்பாட்டுப் பதிவுகள்",
+ "logsProxySubtitle": "ப்ராக்ஸி போக்குவரத்துப் பதிவுகள்",
+ "consoleLogsSubtitle": "கன்சோல் வெளியீடு",
+ "logsActivitySubtitle": "பயனர் செயல்பாட்டுப் பதிவு",
+ "healthSubtitle": "கணினி ஆரோக்கியச் சோதனை",
+ "costsPricingSubtitle": "ஒவ்வொரு மாதிரிக்குமான விலை நிர்ணய விதிகள்",
+ "costsBudgetSubtitle": "வரவுசெலவு வரம்புகள்",
+ "costsQuotaShareSubtitle": "வழங்குநர் ஒதுக்கீடுகளை விசைகளுக்கு இடையே பகிர்",
+ "auditLogSubtitle": "அங்கீகாரத் தணிக்கை",
+ "auditMcpSubtitle": "MCP சேவையகத் தணிக்கை",
+ "auditA2aSubtitle": "A2A நெறிமுறைத் தணிக்கை",
+ "translatorSubtitle": "வடிவமைப்பு மாற்றம்",
+ "playgroundSubtitle": "தூண்டுதல்களை நேரலையில் சோதி",
+ "searchToolsSubtitle": "தேடல் கருவிப் பதிவேடு",
+ "memorySubtitle": "நிலையான முகவர் நினைவகம்",
+ "omniSkillsSubtitle": "Sandbox திறன் பதிவேடு",
+ "agentSkillsSubtitle": "A2A திறன் பதிவேடு",
+ "mcpSubtitle": "MCP சேவையகக் கட்டுப்பாடுகள்",
+ "a2aSubtitle": "A2A நெறிமுறை சேவையகம்",
"pluginsSubtitle": "செருகுநிரல் சந்தை & நிறுவவல்கள்",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "தற்காலிகமாகச் சேமிக்கப்பட்ட ஊடகக் கோப்புகள்",
+ "batchFilesSubtitle": "தொகுதி உள்ளீடு/வெளியீட்டுக் கோப்புகள்",
+ "settingsSubtitle": "அனைத்து அமைப்புகளும்",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "தீம் மற்றும் தளவமைப்பு",
+ "settingsAiSubtitle": "AI நடத்தைக்கான இயல்புநிலைகள்",
+ "globalRoutingSubtitle": "உலகளாவிய வழிப்படுத்தல் விதிகள்",
+ "settingsResilienceSubtitle": "மறுமுயற்சிகள் மற்றும் சுற்றுத் தடுப்பான்கள்",
+ "settingsAdvancedSubtitle": "மேம்பட்ட பயனர் விருப்பங்கள்",
+ "settingsSecuritySubtitle": "அங்கீகாரம் மற்றும் குறியாக்கம்",
"settingsAccessTokensSubtitle": "தொலைநிலை பயன்முறைக்கான ஸ்கோப் செய்யப்பட்ட CLI டோக்கன்கள்",
"settingsFeatureFlagsSubtitle": "கணினி திறன்களை மாற்றவும்",
"settingsCacheSubtitle": "மாதிரி பட்டியல் மற்றும் பதில் கச்சா சேமிப்பு",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "பக்கப்பட்டை",
+ "settingsSidebarSubtitle": "பக்கப்பட்டை தளவமைப்பைத் தனிப்பயனாக்குங்கள்",
"settingsAuthzSubtitle": "ரூட் இருப்பு மற்றும் பைபாஸ் கொள்கை",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "ஆவணங்கள்",
+ "issuesSubtitle": "பிழையைப் புகாரளிக்கவும்",
+ "changelogSubtitle": "வெளியீட்டுக் குறிப்புகள்",
"costsQuotaPlans": "திட்டங்கள் & ஒதுக்கீடுகள்",
"costsQuotaPlansSubtitle": "வழங்குநர் வாரியாக திட்டங்களை உள்ளமைக்கவும்",
"activity": "செயல்பாடு",
@@ -1274,8 +1278,8 @@
"agentBridge": "ஏஜென்ட் பிரிட்ஜ்",
"agentBridgeSubtitle": "IDE ஏஜென்ட் டிராஃபிக்கை இடைமறிக்கவும்",
"trafficInspector": "டிராஃபிக் இன்ஸ்பெக்டர்",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "உங்கள் செயலிகளின் கோரிக்கை மற்றும் பதில் போக்குவரத்தை ஆய்வு செய்யுங்கள்",
+ "trafficInspectorPurpose": "உங்கள் செயலி AI வழங்குநர்களுக்கு எதை அனுப்புகிறது மற்றும் அவர்களிடமிருந்து எதைப் பெறுகிறது என்பதைத் துல்லியமாகப் பாருங்கள். OpenAI-இணக்கமான எந்தக் கிளையண்டுடனும் செயல்படும்.",
"cliCode": "CLI குறியீடு",
"cliCodeSubtitle": "OmniRoute-ஐ சுட்டிக்காட்டும் குறியீட்டுக் கருவிகள்",
"cliAgents": "CLI ஏஜென்ட்கள்",
@@ -1341,7 +1345,7 @@
"refresh": "புதுப்பிக்கவும்",
"loading": "வெப்ஹூக்குகளை ஏற்றுகிறது...",
"never": "ஒருபோதும் இல்லை",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {தோல்விகள் இல்லை} one {# தோல்வி} other {# தோல்விகள்}}",
"testWebhook": "சோதனையை அனுப்பவும்",
"testSuccess": "சோதனை webhook வெற்றிகரமாக அனுப்பப்பட்டது.",
"testFailed": "சோதனை வெப்ஹூக் தோல்வியடைந்தது.",
@@ -1559,91 +1563,91 @@
"mcpMetricTopTool": "மேலான கருவி"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "தீம்கள்",
+ "description": "முன்னமைக்கப்பட்ட தீமைத் தேர்வுசெய்யுங்கள் அல்லது ஒரே நிறத்தைப் பயன்படுத்தி உங்களுக்கென ஒன்றை உருவாக்குங்கள்",
+ "presetColors": "பிரபலமான நிறங்கள்",
+ "customTheme": "தனிப்பயன் தீம்",
+ "customThemeDesc": "தீமை உருவாக்கு என்பதைக் கிளிக் செய்து ஒரு நிறத்தைத் தேர்ந்தெடுக்கவும்",
+ "createTheme": "தீமை உருவாக்கு",
+ "activePreset": "செயலில் உள்ள தீம்"
},
"header": {
- "logout": "Logout",
+ "logout": "வெளியேறு",
"quickNavigation": "விரைவு வழிசெலுத்தல்",
"quickNavigationTitle": "விரைவு வழிசெலுத்தல் (⌘K / Ctrl+K)",
"openQuickNavigation": "விரைவு வழிசெலுத்தலைத் திறக்கவும்",
"switchToLightMode": "வெளிச்சப் பயன்முறைக்கு மாறவும்",
"switchToDarkMode": "இருண்ட பயன்முறைக்கு மாறவும்",
- "language": "Language",
- "providers": "Providers",
- "providerDescription": "Manage your AI provider connections",
- "combos": "Combos",
- "comboDescription": "Model combos with fallback",
- "usage": "Usage & Analytics",
- "usageDescription": "Monitor your API usage, token consumption, and request logs",
- "analytics": "Analytics",
- "analyticsDescription": "Charts, trends, and evaluation insights",
- "cliTools": "CLI Tools",
- "cliToolsDescription": "Configure CLI tools",
- "home": "Home",
- "homeDescription": "Welcome to OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "language": "மொழி",
+ "providers": "வழங்குநர்கள்",
+ "providerDescription": "உங்கள் AI வழங்குநர் இணைப்புகளை நிர்வகிக்கவும்",
+ "combos": "சேர்க்கைகள்",
+ "comboDescription": "மாற்று வசதியுடன் கூடிய மாதிரி சேர்க்கைகள்",
+ "usage": "பயன்பாடு மற்றும் பகுப்பாய்வு",
+ "usageDescription": "உங்கள் API பயன்பாடு, டோக்கன் நுகர்வு மற்றும் கோரிக்கைப் பதிவுகளைக் கண்காணிக்கவும்",
+ "analytics": "பகுப்பாய்வு",
+ "analyticsDescription": "விளக்கப்படங்கள், போக்குகள் மற்றும் மதிப்பீட்டு நுண்ணறிவுகள்",
+ "cliTools": "CLI கருவிகள்",
+ "cliToolsDescription": "CLI கருவிகளை உள்ளமைக்கவும்",
+ "home": "முகப்பு",
+ "homeDescription": "OmniRoute-க்கு வரவேற்கிறோம்",
+ "endpoint": "இறுதிப்புள்ளிகள்",
+ "endpointDescription": "ப்ராக்ஸி இறுதிப்புள்ளிகள், MCP, A2A மற்றும் API இறுதிப்புள்ளிகளை நிர்வகிக்கவும்",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Model Context Protocol சேவையக மேலாண்மை மற்றும் கருவிகள்",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
- "settings": "Settings",
- "settingsDescription": "Manage your preferences",
- "openaiCompatible": "OpenAI Compatible",
- "anthropicCompatible": "Anthropic Compatible",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "a2aDescription": "Agent-to-Agent நெறிமுறைப் பணிகள் மற்றும் கண்காணிப்புத்திறன்",
+ "settings": "அமைப்புகள்",
+ "settingsDescription": "உங்கள் விருப்பங்களை நிர்வகிக்கவும்",
+ "openaiCompatible": "OpenAI இணக்கமானது",
+ "anthropicCompatible": "Anthropic இணக்கமானது",
+ "media": "ஊடகம்",
+ "mediaDescription": "படங்கள், காணொளிகள் மற்றும் இசையை உருவாக்கவும்",
+ "themes": "தீம்கள்",
+ "themesDescription": "முழு டாஷ்போர்டு பலகைக்கும் ஒரு வண்ணத் தீமைத் தேர்ந்தெடுக்கவும்",
+ "costsDescription": "அனைத்து வழங்குநர்களிலும் செலவினத்தைக் கண்காணித்து, போக்குகளைப் பகுப்பாய்ந்து, உங்கள் AI வரவுசெலவுத் திட்டத்தை நிர்வகிக்கவும்",
+ "cacheDescription": "வழங்குநரின் ப்ராம்ப்ட் கேச் செயல்திறன் மற்றும் உள்ளூர் சொற்பொருள் பதில் மறுபயன்பாட்டைக் கண்காணிக்கவும்.",
+ "limitsDescription": "ஒவ்வொரு API விசைக்கும் வழங்குநருக்கும் வீத வரம்புகளையும் ஒதுக்கீடுகளையும் உள்ளமைக்கவும்",
+ "runtimeDescription": "நேரடி இயக்கநேரக் கண்காணிப்புத்திறன் — சர்க்யூட் பிரேக்கர்கள், கூல்டவுன்கள், மாடல் முடக்கங்கள், அமர்வுகள் மற்றும் ஒதுக்கீட்டு எச்சரிக்கைகள்",
+ "apiManagerDescription": "உங்கள் OmniRoute நிகழ்வுக்கான API விசைகள் மற்றும் அணுகல் கட்டுப்பாட்டை நிர்வகிக்கவும்",
+ "batchDescription": "தொகுக்கப்பட்ட API அழைப்புகள் மூலம் பெருமளவிலான கோரிக்கைகளை ஒத்திசைவின்றிச் செயலாக்கவும்",
+ "contextCavemanDescription": "விதி அடிப்படையிலான செய்திச் சுருக்கம், மொழித் தொகுப்புகள், பகுப்பாய்வு மற்றும் வெளியீட்டு முறை கட்டுப்பாடுகள்.",
+ "contextRtkDescription": "கருவி வெளியீடு, முனையப் பதிவுகள் மற்றும் உருவாக்க முடிவுகளுக்கான கட்டளை-அறிதிறன் கொண்ட சுருக்கம்.",
+ "contextCombosDescription": "வெவ்வேறு வழிப்படுத்தல் சூழ்நிலைகளுக்கு என்ஜின்கள் எவ்வாறு இணைக்கப்பட வேண்டும் என்பதை வரையறுக்கவும்.",
+ "changelogDescription": "சமீபத்திய தள அம்சங்கள் மற்றும் அறிவிப்புகளை உடனுக்குடன் அறிந்திருங்கள்.",
+ "agentsDescription": "AI முகவர் கருவிகளை நிர்வகித்து உள்ளமைக்கவும்: Codex, Devin, Jules மற்றும் தனிப்பயன் முகவர்கள்",
+ "cloudAgentsDescription": "நேரடிப் பணி கண்காணிப்பு மற்றும் திட்ட ஒப்புதலுடன் கிளவுட் அடிப்படையிலான AI முகவர்களை ஒருங்கிணைக்கவும்",
+ "memoryDescription": "சொற்பொருள் தேடல் மற்றும் FTS5 முழு-உரை அட்டவணைப்படுத்தலுடன் நிலையான உரையாடல் நினைவகம்",
+ "skillsDescription": "தானியங்கு ப்ராம்ப்ட் மற்றும் கருவிச் செயலாக்கத்திற்கான சாண்ட்பாக்ஸ் திறன்களை நிறுவி நிர்வகிக்கவும்",
+ "agentSkillsDescription": "AI கிளையன்ட் ஒருங்கிணைப்புக்காக ஒரே கிளிக்கில் URL நகலெடுக்கும் வசதியுள்ள முகவர்-தயார் திறன்களின் பட்டியல்",
+ "translatorDescription": "API வடிவங்களுக்கிடையே ப்ராம்ப்ட்களை மொழிபெயர்த்துச் சோதிக்கவும்: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "நேரடி வழங்குநர் பதில்கள் மற்றும் வடிவ ஆய்வுடன் ப்ராம்ப்ட்களை ஊடாடும் முறையில் சோதிக்கவும்",
+ "searchToolsDescription": "தேடல் பகுப்பாய்வு, வழங்குநர் வாரியான விவரம், கேச் ஹிட் விகிதங்கள் மற்றும் செலவுக் கண்காணிப்பு",
+ "logsDescription": "நிகழ்நேரக் கோரிக்கைப் பதிவுகள், பிழைத் தடங்கள் மற்றும் ஸ்ட்ரீமிங் நிகழ்வு ஆய்வி",
+ "auditDescription": "API விசைப் பயன்பாடு, MCP கருவி அழைப்புகள் மற்றும் கொள்கை நிகழ்வுகளின் இணக்கத் தணிக்கைத் தடம்",
+ "webhooksDescription": "நிகழ்நேர நிகழ்வு அறிவிப்புகளைப் பெற வெப்ஹுக் இறுதிப்புள்ளிகளை உள்ளமைக்கவும்",
+ "healthDescription": "அமைப்பின் ஆரோக்கிய மேலோட்டம்: வழங்குநர்கள், சர்க்யூட் பிரேக்கர்கள், வீத வரம்புகள் மற்றும் தரவுத்தளம்",
+ "proxyDescription": "வெளிச்செல்லும் வழங்குநர் இணைப்புகளுக்கான அப்ஸ்ட்ரீம் ப்ராக்ஸி அமைப்புகளை உள்ளமைக்கவும்",
+ "apiEndpointsDescription": "தனிப்பயன் API முனைப்புள்ளி உள்ளமைவுகள் மற்றும் வழித்தட மேலெழுதல்களை நிர்வகிக்கவும்",
+ "batchFilesDescription": "தொகுதி வேலை வெளியீட்டுக் கோப்புகள் மற்றும் முடிவுகளை உலாவி நிர்வகிக்கவும்",
+ "analyticsEvalsDescription": "மாதிரி மதிப்பீட்டு முடிவுகள் மற்றும் செயல்திறன் அளவுகோல்கள்",
+ "analyticsSearchDescription": "தேடல் வினவல் பகுப்பாய்வு, தற்காலிகச் சேமிப்பு வெற்றி வீதங்கள் மற்றும் செலவுக் கண்காணிப்பு",
+ "analyticsUtilizationDescription": "வழங்குநர் பயன்பாட்டு அளவீடுகள் மற்றும் திறன் திட்டமிடல்",
+ "analyticsComboHealthDescription": "காம்போ வழித்தட உள்ளமைவுகளின் நிகழ்நேர ஆரோக்கியம் மற்றும் செயல்திறன்",
+ "analyticsCompressionDescription": "சூழல் சுருக்கப் பகுப்பாய்வு மற்றும் டோக்கன் சேமிப்பு",
+ "costsBudgetDescription": "ஒவ்வொரு API விசை மற்றும் வழங்குநருக்குமான பட்ஜெட் வரம்புகள் மற்றும் செலவு எச்சரிக்கைகள்",
+ "costsPricingDescription": "டோக்கன் செலவுக் கணக்கீடுகளுக்கான தனிப்பயன் விலை உள்ளமைவு",
+ "logsProxyDescription": "அப்ஸ்ட்ரீம் ப்ராக்ஸி கோரிக்கை பதிவுகள் மற்றும் போக்குவரத்து ஆய்வு",
+ "logsConsoleDescription": "பயன்பாட்டு கன்சோல் வெளியீடு மற்றும் பிழைத்திருத்தப் பதிவுகள்",
+ "logsActivityDescription": "பயனர் செயல்கள் மற்றும் அமைப்பு நிகழ்வுகளின் தணிக்கைத் தடம்",
+ "auditMcpDescription": "MCP கருவி அழைப்புகளின் தணிக்கைத் தடம் மற்றும் இணக்கப் பதிவுகள்",
"auditA2a": "A2A தணிக்கை",
"auditA2aDescription": "A2A டாஸ்க் எக்ஸிகியூஷன் ஆடிட் டிரெயில், மாநில மாற்றங்கள் மற்றும் திறன் அழைப்பு பதிவுகள்",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "தீம், பிராண்டிங் மற்றும் காட்சித் தனிப்பயனாக்கம்",
+ "settingsAiDescription": "AI நடத்தைகள், சிந்தனை பட்ஜெட்டுகள், பார்வை மற்றும் நினைவக அமைப்புகள்",
"settingsCacheDescription": "மாதிரி பட்டியலுக்கான காசே க entries ியின் TTL",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "அடையாளச் சரிபார்ப்பு, அங்கீகாரம் மற்றும் அணுகல் கட்டுப்பாட்டு அமைப்புகள்",
"featureFlags": "அம்சம் கொடிகள்",
"featureFlagsDescription": "கட்டுப்பாட்டு அமைப்பு திறன்கள் மற்றும் சோதனை அம்சங்கள்",
"featureFlagsActive": "{count} செயலில் உள்ளது",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "உங்கள் தேடலுக்கு எந்தக் கொடியும் பொருந்தவில்லை",
"featureFlagsSaved": "கொடி புதுப்பிக்கப்பட்டது",
"featureFlagsError": "கொடியைப் புதுப்பிக்க முடியவில்லை",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "வழித்தட விதிகள், மாதிரி மாற்றுப்பெயர்கள், காம்போ இயல்புநிலைகள் மற்றும் தரக்குறைப்பு அமைப்புகள்",
+ "settingsResilienceDescription": "சர்க்யூட் பிரேக்கர், மறுமுயற்சி மற்றும் மாற்று ஏற்பாட்டு உள்ளமைவு",
+ "settingsAdvancedDescription": "மேம்பட்ட பேலோடு விதிகள், கோரிக்கை வரம்புகள் மற்றும் ப்ராக்ஸி API அமைப்புகள்",
+ "mitmProxyDescription": "போக்குவரத்து ஆய்வு மற்றும் பிழைத்திருத்தத்திற்கான MITM ப்ராக்ஸி அமைப்புகளை உள்ளமைக்கவும்",
+ "oneProxyDescription": "மேம்பட்ட ப்ராக்ஸி சங்கிலியிடலுக்கான 1Proxy அமைப்புகளை உள்ளமைக்கவும்",
"omniSkillsDescription": "தானியங்கி தூண்டுதல் மற்றும் கருவி செயலாக்கத்திற்கான சாண்ட்பாக்ஸ் திறன்களை நிறுவி நிர்வகிக்கவும்"
},
"cloudSyncStatus": {
@@ -1757,8 +1761,8 @@
"quotaShare": "ஒதுக்கீட்டுப் பகிர்வு",
"discovery": "கண்டறிதல்",
"freeProviderRankings": "இலவச வழங்குநர் தரவரிசை",
- "radar": "Radar",
- "setup": "Setup",
+ "radar": "ரேடார்",
+ "setup": "அமைத்தல்",
"freeTiers": "இலவச அடுக்குகள்",
"gamification": "கேமிஃபிகேஷன்",
"leaderboard": "லீடர்போர்டு",
@@ -1780,53 +1784,53 @@
"orchestration": "ஆர்கெஸ்ட்ரேஷன்"
},
"home": {
- "quickStart": "Quick Start",
- "quickStartDesc": "Get up and running in 4 steps. Connect providers, route models, monitor everything.",
- "fullDocs": "Full Docs",
- "step1Title": "1. Create API key",
+ "quickStart": "விரைவு தொடக்கம்",
+ "quickStartDesc": "4 படிகளில் தொடங்கி செயல்படுங்கள். வழங்குநர்களை இணைத்து, மாதிரிகளை வழிநடத்தி, அனைத்தையும் கண்காணியுங்கள்.",
+ "fullDocs": "முழு ஆவணங்கள்",
+ "step1Title": "1. API விசையை உருவாக்கவும்",
"step1Desc": "Go to --permission-mode auto பாதுகாப்பு வகைப்படுத்தியை ஒரு செயற்கை அனுமதி பதிலுடன் ஷார்ட்-சர்க்யூட் செய்யவும். இயல்பாக முடக்கப்பட்டுள்ளது.",
"classifierCompatCycle": "சுழற்சி: off → auto → always",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "மாதிரி கண்டறிதலுக்குப் பிறகு ~/.codex/*.config.toml-ஐ மீண்டும் உருவாக்கவும்.",
"claudeProfiles": "Claude Code சுயவிவரங்கள்",
"claudeProfilesDescription": "மாதிரி கண்டறிதலுக்குப் பிறகு ஒவ்வொரு ~/.claude/profiles/…/settings.json-ஐயும் மீண்டும் உருவாக்கவும்.",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "செயலில் உள்ள வழங்குநர்கள் இல்லை",
+ "noActiveProvidersDesc": "CLI கருவிகளை உள்ளமைக்க, முதலில் வழங்குநர்களைச் சேர்த்து இணைக்கவும்.",
+ "mapModels": "மாதிரிகளைப் பொருத்து",
+ "testConnection": "இணைப்பைச் சோதி",
+ "connectionStatus": "இணைப்பு நிலை",
+ "configureEndpoint": "முனைப்புள்ளியை உள்ளமை",
+ "instructions": "வழிமுறைகள்",
+ "modelMapping": "மாதிரிப் பொருத்தம்",
"reasoningEffort": "{model}-க்கான பகுத்தறியும் முயற்சி",
"effortNone": "எதுவுமில்லை",
"effortLow": "குறைவு",
@@ -2743,62 +2747,62 @@
"modelAliases": "மாதிரி மாற்றுப்பெயர்கள்",
"addModel": "மாதிரியைச் சேர்",
"routeModelPlaceholder": "{model}-ஐ இதற்கு வழிப்படுத்து...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "அடிப்படை URL",
+ "apiKey": "API விசை",
+ "configured": "உள்ளமைக்கப்பட்டது",
+ "notConfigured": "உள்ளமைக்கப்படவில்லை",
+ "notInstalled": "நிறுவப்படவில்லை",
+ "custom": "தனிப்பயன்",
+ "unknown": "தெரியவில்லை",
+ "lastSavedAt": "கடைசியாகச் சேமிக்கப்பட்டது: {date}",
+ "never": "ஒருபோதும் இல்லை",
+ "justNow": "இப்போதுதான்",
+ "minutesAgoShort": "{count} நிமிடங்களுக்கு முன்பு",
+ "hoursAgoShort": "{count} மணிநேரங்களுக்கு முன்பு",
+ "daysAgoShort": "{count} நாட்களுக்கு முன்பு",
+ "monthsAgoShort": "{count} மாதங்களுக்கு முன்பு",
+ "yearsAgoShort": "{count} ஆண்டுகளுக்கு முன்பு",
+ "runtimeCheckFailed": "இயக்கநேரச் சரிபார்ப்பு தோல்வியடைந்தது",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "உள்ளமைவு வெற்றிகரமாகச் சேமிக்கப்பட்டது.",
+ "failedToSave": "உள்ளமைவைச் சேமிக்க முடியவில்லை.",
+ "noApiKeysCreateOne": "API விசைகள் இல்லை - Keys பக்கத்தில் ஒன்றை உருவாக்கவும்",
+ "defaultOmnirouteKey": "sk_omniroute (இயல்புநிலை)",
+ "selectModel": "மாதிரியைத் தேர்ந்தெடுக்கவும்",
+ "selectModelForAlias": "{alias} என்பதற்கான மாதிரியைத் தேர்ந்தெடுக்கவும்",
+ "selectModelForTool": "{tool} என்பதற்கான மாதிரியைத் தேர்ந்தெடுக்கவும்",
+ "select": "தேர்ந்தெடுக்கவும்",
+ "clear": "அழிக்கவும்",
+ "comingSoon": "விரைவில் வருகிறது",
+ "checkingRuntime": "இயக்கநேர நிலை சரிபார்க்கப்படுகிறது...",
+ "guideOnlyIntegration": "வழிகாட்டி மட்டுமே கொண்ட ஒருங்கிணைப்பு (உள்ளூர் இயக்கநேரம் தேவையில்லை)",
+ "cliRuntimeDetected": "CLI இயக்கநேரம் கண்டறியப்பட்டு தயாராக உள்ளது",
+ "cliFoundNotRunnable": "CLI கண்டறியப்பட்டது, ஆனால் இயக்க முடியவில்லை{reason}",
+ "cliRuntimeNotDetected": "CLI இயக்கநேரம் கண்டறியப்படவில்லை",
+ "binary": "இருமக் கோப்பு",
+ "configPath": "உள்ளமைவுப் பாதை",
+ "configPathShort": "உள்ளமைவு",
+ "failedCheckRuntimeStatus": "இயக்கநேர நிலையைச் சரிபார்க்க முடியவில்லை.",
+ "copy": "நகலெடுக்கவும்",
+ "copied": "நகலெடுக்கப்பட்டது",
+ "copyConfig": "உள்ளமைவை நகலெடுக்கவும்",
+ "saveConfig": "உள்ளமைவைச் சேமிக்கவும்",
+ "selectionSaved": "தேர்வு சேமிக்கப்பட்டது",
+ "guide": "வழிகாட்டி",
+ "detected": "கண்டறியப்பட்டது",
+ "notReady": "தயாராக இல்லை",
+ "active": "செயலில் உள்ளது",
+ "inactive": "செயலில் இல்லை",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM வெற்றிகரமாகத் தொடங்கப்பட்டது!",
+ "mitmStopped": "MITM வெற்றிகரமாக நிறுத்தப்பட்டது!",
+ "failedStart": "MITM-ஐத் தொடங்க முடியவில்லை",
+ "failedStop": "MITM-ஐ நிறுத்த முடியவில்லை",
+ "saveMappings": "மேப்பிங்குகளைச் சேமி",
+ "mappingsSaved": "மேப்பிங்குகள் சேமிக்கப்பட்டன!",
+ "failedSaveMappings": "மேப்பிங்குகளைச் சேமிக்க முடியவில்லை",
"reasoningEffortDefault": "இயல்புநிலை",
"reasoningEffortHint": "முகவரால் அனுப்பப்பட்ட பகுத்தறியும் முயற்சியை இயல்புநிலை பாதுகாக்கிறது",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "அதிகம்",
"xhigh": "மிகவும் அதிகம்"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "இது செயல்படும் விதம்:",
+ "antigravityHowWorksDesc": "Antigravity, Google's endpoint-க்கு கோரிக்கைகளை அனுப்புகிறது. MITM அவற்றை இடைமறித்து OmniRoute-க்கு திருப்பிவிடுகிறது.",
+ "antigravityStep1": "1. OmniRoute வழியாகக் கோரிக்கைகளை அனுப்ப MITM-ஐத் தொடங்கவும்.",
+ "antigravityStep2Prefix": "2. உங்கள் hosts கோப்பில்",
+ "antigravityStep2Suffix": "என்பதை 127.0.0.1 ஆகச் சேர்க்கவும்.",
+ "antigravityStep3": "3. Antigravity-ஐத் திறக்கவும்; கோரிக்கைகள் ப்ராக்ஸி வழியாக அனுப்பப்படும்.",
+ "mitmHowWorksDesc": "{toolName}, அதன் provider endpoint-க்கு கோரிக்கைகளை அனுப்புகிறது. MITM அவற்றை இடைமறித்து OmniRoute-க்கு திருப்பிவிடுகிறது.",
+ "mitmStep1": "1. OmniRoute வழியாகக் கோரிக்கைகளை அனுப்ப MITM-ஐத் தொடங்கவும்.",
+ "mitmStep2Prefix": "2. உங்கள் hosts கோப்பில்",
+ "mitmStep2Suffix": "என்பதை 127.0.0.1 ஆகச் சேர்க்கவும்.",
+ "mitmStep3": "3. {toolName}-ஐத் திறக்கவும்; கோரிக்கைகள் ப்ராக்ஸி வழியாக அனுப்பப்படும்.",
+ "sudoPasswordRequiredTitle": "Sudo கடவுச்சொல் தேவை",
+ "sudoPasswordHint": "hosts கோப்பையும் கணினியின் ப்ராக்ஸி அமைப்புகளையும் மாற்ற நிர்வாகி கடவுச்சொல் தேவை.",
+ "enterSudoPassword": "sudo கடவுச்சொல்லை உள்ளிடவும்",
+ "sudoPasswordRequiredError": "Sudo கடவுச்சொல் தேவை.",
+ "cancel": "ரத்துசெய்",
+ "confirm": "உறுதிப்படுத்து",
+ "settingsApplied": "அமைப்புகள் வெற்றிகரமாகப் பயன்படுத்தப்பட்டன!",
+ "failedApplySettings": "அமைப்புகளைப் பயன்படுத்த முடியவில்லை",
+ "settingsReset": "அமைப்புகள் வெற்றிகரமாக மீட்டமைக்கப்பட்டன!",
+ "failedResetSettings": "அமைப்புகளை மீட்டமைக்க முடியவில்லை",
+ "backupRestored": "காப்புப்பிரதி மீட்டெடுக்கப்பட்டது!",
+ "failedRestore": "மீட்டெடுக்க முடியவில்லை",
+ "checkingCli": "{tool} CLI சரிபார்க்கப்படுகிறது...",
+ "cliNotRunnable": "{tool} CLI நிறுவப்பட்டுள்ளது, ஆனால் அதை இயக்க முடியவில்லை",
+ "cliNotInstalled": "{tool} CLI நிறுவப்படவில்லை",
+ "cliNotDetected": "{tool} CLI கண்டறியப்படவில்லை",
+ "cliDetectedReady": "{tool} CLI கண்டறியப்பட்டு தயாராக உள்ளது",
+ "cliFoundFailedHealthcheck": "{tool} CLI கண்டறியப்பட்டது, ஆனால் இயக்கநேர நலச் சரிபார்ப்பில் தோல்வியடைந்தது{reason}.",
+ "installCliPrompt": "இந்த அம்சத்தைப் பயன்படுத்த {tool} CLI-ஐ நிறுவவும்.",
+ "installCodexPrompt": "தானாகப் பயன்படுத்தும் அம்சத்தைப் பயன்படுத்த Codex CLI-ஐ நிறுவவும்.",
+ "hide": "மறை",
+ "howToInstall": "நிறுவுவது எப்படி",
+ "installationGuide": "நிறுவல் வழிகாட்டி",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "நிறுவிய பிறகு, இயக்கவும்",
+ "toVerify": "சரிபார்க்க.",
+ "current": "தற்போதையது",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "இயல்புநிலைக்கு மீட்டமை",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "செயல்படுத்து",
+ "reset": "மீட்டமை",
+ "manualConfig": "கைமுறை உள்ளமைவு",
+ "backups": "காப்புப்பிரதிகள்",
+ "configBackups": "உள்ளமைவு காப்புப்பிரதிகள்",
+ "noBackupsYet": "இதுவரை காப்புப்பிரதிகள் எதுவும் இல்லை. ஒவ்வொரு செயல்படுத்தல் அல்லது மீட்டமைத்தலுக்கு முன்பும் காப்புப்பிரதிகள் தானாக உருவாக்கப்படும்.",
+ "restore": "மீட்டெடு",
+ "backupRestoredReloading": "காப்புப்பிரதி மீட்டெடுக்கப்பட்டது! நிலை மீண்டும் ஏற்றப்படுகிறது...",
+ "failedRestoreBackup": "காப்புப்பிரதியை மீட்டெடுக்க முடியவில்லை",
+ "applied": "செயல்படுத்தப்பட்டது!",
+ "failed": "தோல்வியடைந்தது",
+ "resetDone": "மீட்டமைக்கப்பட்டது!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute ஆனது OpenAI-இணக்கமான வழங்குநராக உள்ளமைக்கப்பட்டுள்ளது",
+ "provider": "வழங்குநர்",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "வழங்குநர்கள்",
+ "auth": "அங்கீகாரம்",
+ "noApiKeysAvailable": "API விசைகள் எதுவும் கிடைக்கவில்லை",
+ "usingDefaultOmniroute": "இயல்புநிலை பயன்படுத்தப்படுகிறது: sk_omniroute",
+ "updateConfig": "உள்ளமைவைப் புதுப்பி",
+ "applyConfig": "உள்ளமைவைச் செயல்படுத்து",
+ "noBackupsAvailable": "காப்புப்பிரதிகள் எதுவும் கிடைக்கவில்லை.",
+ "profileSaved": "\"{name}\" சுயவிவரம் சேமிக்கப்பட்டது!",
+ "failedSaveProfile": "சுயவிவரத்தைச் சேமிக்க முடியவில்லை",
+ "profileActivated": "சுயவிவரம் செயல்படுத்தப்பட்டது!",
+ "failedActivateProfile": "சுயவிவரத்தைச் செயல்படுத்த முடியவில்லை",
+ "profiles": "சுயவிவரங்கள்",
+ "savedProfiles": "சேமிக்கப்பட்ட சுயவிவரங்கள்",
+ "noProfilesYet": "இதுவரை சுயவிவரங்கள் எதுவும் சேமிக்கப்படவில்லை. தற்போதைய உள்ளமைவைக் கீழே ஒரு சுயவிவரமாகச் சேமிக்கவும்.",
+ "activate": "செயல்படுத்து",
+ "deleteProfile": "சுயவிவரத்தை நீக்கு",
+ "profileNamePlaceholder": "சுயவிவரப் பெயர் (எ.கா. தனிப்பட்ட கணக்கு)",
+ "saveCurrent": "தற்போதையதைச் சேமி",
+ "codexAuthNotePrefix": "Codex பயன்படுத்துவது",
+ "codexAuthNoteMiddle": "உடன்",
+ "codexAuthNoteSuffix": "தானாக உள்ளமைக்க \"செயல்படுத்து\" என்பதைக் கிளிக் செய்யவும்.",
+ "claudeManualConfiguration": "Claude CLI - கைமுறை உள்ளமைவு",
+ "codexManualConfiguration": "Codex CLI - கைமுறை உள்ளமைவு",
+ "droidManualConfiguration": "Factory Droid - கைமுறை உள்ளமைவு",
+ "openClawManualConfiguration": "Open Claw - கைமுறை உள்ளமைவு",
+ "clineManualConfiguration": "Cline கைமுறை உள்ளமைவு",
+ "kiloManualConfiguration": "Kilo Code கைமுறை உள்ளமைவு",
+ "whenToUseLabel": "எப்போது பயன்படுத்த வேண்டும்",
+ "openToolDocs": "கருவியின் ஆவணங்களைத் திறக்கவும்",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "Claude Code உடன் வலுவான திட்டமிடல் பணிப்பாய்வுகளையும், பல கோப்புகளில் நீண்ட மறுசீரமைப்புகளையும் மேற்கொள்ள விரும்பும்போது பயன்படுத்தவும்.",
+ "codex": "உங்கள் குழு OpenAI Codex CLI பணிப்பாய்வுகள் மற்றும் சுயவிவர அடிப்படையிலான அங்கீகாரத்தைத் தரநிலையாகப் பயன்படுத்தும்போது இதைப் பயன்படுத்தவும்.",
+ "droid": "வேகமான குறியீட்டாக்கம் மற்றும் கட்டளை இயக்கச் சுழற்சிகளில் கவனம் செலுத்தும் இலகுரக டெர்மினல் முகவர் தேவைப்படும்போது பயன்படுத்தவும்.",
+ "openclaw": "Open Claw பாணியிலான குறியீட்டாக்க முகவரை OmniRoute கொள்கைகள் வழியாகத் திருப்பிப் பயன்படுத்த விரும்பும்போது இதைப் பயன்படுத்தவும்.",
+ "cline": "எடிட்டர்களுக்குள் குறியீட்டாக்க முகவர்களை உள்ளமைத்து, OmniRoute மாதிரிகளுடன் வழிகாட்டப்பட்ட அமைப்பை விரும்பும்போது பயன்படுத்தவும்.",
+ "kilo": "உங்கள் பணிப்பாய்வு Kilo Code கட்டளைகள் மற்றும் வேகமான தொடர் திருத்தங்களைச் சார்ந்திருக்கும்போது பயன்படுத்தவும்.",
+ "cursor": "Cursor-இல் குறியீடு எழுதும்போது, OmniRoute வழியாகத் தனிப்பயன் OpenAI-இணக்கமான மாதிரிகள் தேவைப்பட்டால் பயன்படுத்தவும்.",
+ "continue": "IDE-களில் Continue-ஐ இயக்கும்போது, எளிதில் எடுத்துச் செல்லக்கூடிய JSON அடிப்படையிலான வழங்குநர் உள்ளமைவு தேவைப்பட்டால் பயன்படுத்தவும்.",
+ "opencode": "டெர்மினலுக்கே உரிய முகவர் இயக்கங்களையும் OpenCode வழியான ஸ்கிரிப்ட் தானியக்கத்தையும் விரும்பும்போது பயன்படுத்தவும்.",
+ "kiro": "Kiro-ஐ ஒருங்கிணைத்து, மாதிரி வழித்தடத்தை OmniRoute-இலிருந்து மையப்படுத்திக் கட்டுப்படுத்தும்போது பயன்படுத்தவும்.",
+ "windsurf": "Codeium/Windsurf மாதிரிகள் OmniRoute வழியாகத் திருப்பப்படும் AI-முதன்மை IDE-ஐ விரும்பும்போது பயன்படுத்தவும்.",
+ "antigravity": "Antigravity/Kiro போக்குவரத்தை MITM வழியாக இடைமறித்து OmniRoute-க்குத் திருப்ப வேண்டியிருக்கும்போது பயன்படுத்தவும்.",
+ "copilot": "OmniRoute விசைகள் மற்றும் வழித்தட விதிகளை அமல்படுத்திக்கொண்டே Copilot அரட்டை பாணியிலான பயனர் அனுபவத்தை விரும்பும்போது பயன்படுத்தவும்.",
+ "amp": "Amp சுருக்கெழுத்துப் பணிப்பாய்வுகளை விரும்பினாலும், OmniRoute மாற்றுப்பெயர் மற்றும் வழித்தட விதிகளின் அமலாக்கம் தேவைப்படும்போது பயன்படுத்தவும்.",
+ "hermes": "விரைவான பணிகளுக்கு இலகுரக, டெர்மினலுக்கே உரிய AI உதவியாளர் தேவைப்படும்போது பயன்படுத்தவும்.",
"hermes-agent": "இயல்புநிலை, பிரதிநிதித்துவம், பார்வை மற்றும் துணை மாதிரிகள் OmniRoute வழியாக வழிநடத்தப்படும் Hermes Agent (Nousresearch வழங்கும்) உங்களுக்குத் தேவைப்படும்போது இதைப் பயன்படுத்தவும்.",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "தனிப்பயன் கருவிச் செயலாக்கங்கள் அல்லது பொதுவான OpenAI-இணக்கமான உள்ளமைவுகளுக்குப் பயன்படுத்தவும்."
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "MITM உடனான Google Antigravity IDE",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "தனிப்பயன் வழங்குநர் ஆதரவுடன் கூடிய xAI Grok Build TUI குறியீட்டு முகவர்",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Factory Droid AI உதவியாளர்",
+ "openclaw": "Open Claw AI உதவியாளர்",
+ "cline": "Cline AI குறியீட்டாக்க உதவியாளர் CLI",
+ "kilo": "Kilo Code AI உதவியாளர் CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Continue AI உதவியாளர்",
+ "opencode": "OpenCode AI குறியீட்டாக்க முகவர் (டெர்மினல்)",
+ "kiro": "Amazon Kiro — AI-ஆல் இயக்கப்படும் IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp குறியீட்டாக்க உதவியாளர் CLI",
+ "hermes": "Hermes AI டெர்மினல் உதவியாளர்",
"hermes-agent": "Hermes Agent (Nousresearch வழங்கும்) - பல மாதிரி ஆதரவுடன் கூடிய மேம்பட்ட டெர்மினல் AI (பிரதிநிதித்துவம், பார்வை, சுருக்கம் போன்றவை)",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "பொதுவான OpenAI-இணக்கமான CLI அல்லது SDK உள்ளமைவு உருவாக்கி",
"aider": "OpenAI-இணக்கமான அடிப்படை URL ஐக் கொண்ட Aider AI ஜோடி-நிரலாக்க CLI",
"forge": "தனிப்பயன் வழங்குநரைக் கொண்ட ForgeCode குறியீட்டு முகவர் CLI",
"cursor-cli": "ஹெட்லெஸ் முகவர் பயன்முறையில் Cursor Agent CLI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter தன்னாட்சி குறியீட்டு முகவர் CLI",
"omp": "Oh My Pi டெர்மினல் குறியீட்டு முகவர்",
"letta": "நிலையான நினைவகம் மற்றும் கருவிப் பயன்பாட்டுடன் கூடிய Letta CLI முகவர்",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI-இணக்கமான வழங்குநர் ஆதரவுடன் தன்னை மேம்படுத்திக்கொள்ளும் RLM குறியீட்டாக்கக் கட்டமைப்பு",
"warp": "தனிப்பயன் வழங்குநர் ஆதரவுடன் கூடிய Warp AI டெர்மினல்",
"agent-deck": "Agent Deck பல-முகவர் ஒருங்கிணைப்பாளர்",
"5dive": "5dive — சுய-ஹோஸ்ட் செய்யப்பட்ட குறியீட்டு முகவர்களின் கூட்டம்; ஒரு auth சுயவிவரம் அனைத்தையும் OmniRoute-க்கு திருப்புகிறது"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "இந்த அம்சத்தைப் பயன்படுத்த Cursor Pro கணக்கு தேவை.",
+ "1": "Cursor கோரிக்கைகளை அதன் சொந்த சேவையகம் வழியாகத் திருப்புவதால், உள்ளூர் முனைப்புள்ளி ஆதரிக்கப்படாது. Settings-இல் Cloud Endpoint-ஐ இயக்கவும்."
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "Settings-ஐத் திறக்கவும்",
+ "desc": "Settings -> Models என்பதற்குச் செல்லவும்"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI API-ஐ இயக்கவும்",
+ "desc": "\"OpenAI API key\" விருப்பத்தை இயக்கவும்"
},
"3": {
- "title": "Base URL"
+ "title": "அடிப்படை URL"
},
"4": {
- "title": "API Key"
+ "title": "API விசை"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "தனிப்பயன் மாடலைச் சேர்க்கவும்",
+ "desc": "\"View All Model\" -> \"Add Custom Model\" என்பதைக் கிளிக் செய்யவும்"
},
"6": {
- "title": "Select Model"
+ "title": "மாடலைத் தேர்ந்தெடுக்கவும்"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "உள்ளமைவைத் திறக்கவும்",
+ "desc": "Continue உள்ளமைவுக் கோப்பைத் திறக்கவும்"
},
"2": {
- "title": "API Key"
+ "title": "API விசை"
},
"3": {
- "title": "Select Model"
+ "title": "மாடலைத் தேர்ந்தெடுக்கவும்"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "மாடல் உள்ளமைவைச் சேர்க்கவும்",
+ "desc": "பின்வரும் உள்ளமைவை உங்கள் models அணிவரிசையில் சேர்க்கவும்:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue, JSON உள்ளமைவுக் கோப்பைப் பயன்படுத்துகிறது."
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCode-ஐ நிறுவவும்",
+ "desc": "npm வழியாக நிறுவவும்: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API விசை"
},
"3": {
- "title": "Set Base URL",
+ "title": "அடிப்படை URL-ஐ அமைக்கவும்",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "மாடலைத் தேர்ந்தெடுக்கவும்"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "சிந்தனை வகையைப் பயன்படுத்தவும்",
+ "desc": "சிந்தனை மாடல்களுக்கு, --variant high/low/max உடன் இயக்கவும் (எடுத்துக்காட்டுக் கட்டளை கீழே உள்ளது)."
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode-க்கு API விசை உள்ளமைவு தேவை.",
+ "1": "அடிப்படை URL-ஐ உங்கள் OmniRoute முனைப்புள்ளியாக அமைக்கவும்."
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro அமைப்புகளைத் திறக்கவும்",
+ "desc": "Settings → AI Provider என்பதற்குச் செல்லவும்"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "அடிப்படை URL",
+ "desc": "உங்கள் OmniRoute முனைப்புள்ளி URL-ஐ ஒட்டவும்"
},
"3": {
- "title": "API Key"
+ "title": "API விசை"
},
"4": {
- "title": "Select Model"
+ "title": "மாடலைத் தேர்ந்தெடுக்கவும்"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro-க்கு Amazon கணக்கு தேவை."
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI அமைப்புகளைத் திறக்கவும்",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "தனிப்பயன் வழங்குநரைச் சேர்க்கவும்",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "அடிப்படை URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API விசை",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "மாடலைத் தேர்ந்தெடுக்கவும்",
+ "desc": "கீழ்தோன்றும் பட்டியலிலிருந்து ஒரு மாடலைத் தேர்ந்தெடுக்கவும்"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "தானாக உள்ளமைக்கப்பட்டது",
+ "toolCategoriesDesc": "OmniRoute வழியாக வழிச்செலுத்த AI குறியீட்டு உதவியாளர்களை உள்ளமைக்கவும்",
+ "allToolsTab": "அனைத்துக் கருவிகளும்",
+ "guidedClientsTab": "வழிகாட்டப்பட்ட கிளையண்டுகள்",
+ "mitmClientsTab": "MITM கிளையண்டுகள்",
"customCliTab": "தனிப்பயன் CLI",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "கருவி வகைகள்",
+ "visibleToolsCount": "{count} கருவிகள் கிடைக்கின்றன",
"customCliBuilderTitle": "OpenAI-இணக்கமான CLI பில்டர்",
"customCliBuilderDescription": "OpenAI-இணக்கமான அடிப்படை URL, API விசை மற்றும் மாதிரி ஐடியை ஏற்கும் எந்த CLI அல்லது SDK க்கும் env vars மற்றும் JSON துணுக்குகளை உருவாக்கவும்.",
"customCliNoModels": "மாதிரி தேர்வாளர்களை நிரப்ப குறைந்தபட்சம் ஒரு வழங்குநரை இணைக்கவும்.",
@@ -3199,75 +3203,75 @@
"cliproxyapiVersion": "பதிப்பு"
},
"combos": {
- "title": "Combos",
- "description": "Create model combos with weighted routing and fallback support",
+ "title": "காம்போக்கள்",
+ "description": "எடையிட்ட வழிப்படுத்தல் மற்றும் மாற்று ஆதரவுடன் மாதிரி காம்போக்களை உருவாக்கவும்",
"autoCatalogTitle": "தானாக ரூட்டிங் பட்டியல்",
"autoCatalogTemplateCount": "{count} டெம்ப்ளேட்கள்",
"autoCatalogDescription": "இணைக்கப்பட்ட வழங்குநர்களிடமிருந்து உள்ளமைந்த தானியங்கு/* சேர்க்கைகள் மாறும் வகையில் தீர்க்கப்படுகின்றன. இந்த ஐடிகளில் ஏதேனும் ஒன்றை மாதிரி புலமாகப் பயன்படுத்தவும் - அமைப்பு தேவையில்லை.",
"autoCatalogExpand": "தானாக ரூட்டிங் பட்டியலை விரிவாக்குங்கள்",
"autoCatalogCollapse": "தானாக ரூட்டிங் பட்டியலைச் சுருக்கவும்",
- "createCombo": "Create Combo",
- "editCombo": "Edit Combo",
- "deleteCombo": "Delete Combo",
- "noModels": "No models",
- "noModelsYet": "No models added yet",
- "addModel": "Add Model",
- "addModelToCombo": "Add Model to Combo",
- "routingStrategy": "Routing Strategy",
- "maxRetries": "Max Retries",
- "timeout": "Timeout (ms)",
- "healthcheck": "Healthcheck",
- "priority": "Priority",
- "fallback": "Fallback",
+ "createCombo": "காம்போவை உருவாக்கு",
+ "editCombo": "காம்போவைத் திருத்து",
+ "deleteCombo": "காம்போவை நீக்கு",
+ "noModels": "மாதிரிகள் இல்லை",
+ "noModelsYet": "இதுவரை மாதிரிகள் எதுவும் சேர்க்கப்படவில்லை",
+ "addModel": "மாதிரியைச் சேர்",
+ "addModelToCombo": "காம்போவில் மாதிரியைச் சேர்",
+ "routingStrategy": "வழிப்படுத்தல் உத்தி",
+ "maxRetries": "அதிகபட்ச மறுமுயற்சிகள்",
+ "timeout": "காலக்கெடு (ms)",
+ "healthcheck": "நிலைச் சரிபார்ப்பு",
+ "priority": "முன்னுரிமை",
+ "fallback": "மாற்று",
"roundRobin": "Round Robin",
- "random": "Random",
- "leastLatency": "Least Latency",
- "comboName": "Combo Name",
+ "random": "சீரற்றது",
+ "leastLatency": "குறைந்தபட்ச தாமதம்",
+ "comboName": "காம்போ பெயர்",
"comboNamePlaceholder": "my-combo",
"comboDescription": "விளக்கம்",
"comboDescriptionPlaceholder": "இந்த கலவையை விவரிக்கும் விருப்ப குறிப்பு",
- "deleteConfirm": "Delete this combo?",
- "noCombosYet": "No combos yet",
- "comboCreated": "Combo created successfully",
- "comboUpdated": "Combo updated successfully",
- "comboDeleted": "Combo deleted",
- "failedCreate": "Failed to create combo",
- "failedUpdate": "Failed to update combo",
- "errorCreating": "Error creating combo",
- "errorUpdating": "Error updating combo",
- "errorDeleting": "Error deleting combo",
- "testFailed": "Test request failed",
- "failedToggle": "Failed to toggle combo",
- "testResults": "Test Results — {name}",
- "resolvedBy": "Resolved by:",
- "more": "+{count} more",
- "reqs": "reqs",
- "success": "success",
- "proxyConfigured": "Proxy configured",
- "copyComboName": "Copy combo name",
- "enableCombo": "Enable combo",
- "disableCombo": "Disable combo",
- "testCombo": "Test combo",
- "duplicate": "Duplicate",
- "proxyConfig": "Proxy configuration",
- "nameRequired": "Name is required",
- "nameInvalid": "Only letters, numbers, -, _, / and . allowed",
- "nameHint": "Letters, numbers, -, _, / and . allowed",
- "priorityDesc": "Sequential fallback: tries model 1 first, then 2, etc.",
- "weightedDesc": "Distributes traffic by weight percentage with fallback",
- "roundRobinDesc": "Circular distribution: each request goes to the next model in rotation",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
- "randomDesc": "Uniform random selection, then fallback to remaining models",
- "leastUsedDesc": "Picks the model with fewest requests, balancing load over time",
- "costOptimizedDesc": "Routes to the cheapest model first based on pricing",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "deleteConfirm": "இந்தக் காம்போவை நீக்கவா?",
+ "noCombosYet": "இதுவரை காம்போக்கள் இல்லை",
+ "comboCreated": "காம்போ வெற்றிகரமாக உருவாக்கப்பட்டது",
+ "comboUpdated": "காம்போ வெற்றிகரமாகப் புதுப்பிக்கப்பட்டது",
+ "comboDeleted": "காம்போ நீக்கப்பட்டது",
+ "failedCreate": "காம்போவை உருவாக்க முடியவில்லை",
+ "failedUpdate": "காம்போவைப் புதுப்பிக்க முடியவில்லை",
+ "errorCreating": "காம்போவை உருவாக்குவதில் பிழை",
+ "errorUpdating": "காம்போவைப் புதுப்பிப்பதில் பிழை",
+ "errorDeleting": "காம்போவை நீக்குவதில் பிழை",
+ "testFailed": "சோதனைக் கோரிக்கை தோல்வியடைந்தது",
+ "failedToggle": "காம்போவை மாற்ற முடியவில்லை",
+ "testResults": "சோதனை முடிவுகள் — {name}",
+ "resolvedBy": "தீர்வு வழங்கியது:",
+ "more": "+மேலும் {count}",
+ "reqs": "கோரிக்கைகள்",
+ "success": "வெற்றி",
+ "proxyConfigured": "பதிலி உள்ளமைக்கப்பட்டது",
+ "copyComboName": "காம்போ பெயரை நகலெடு",
+ "enableCombo": "காம்போவை இயக்கு",
+ "disableCombo": "காம்போவை முடக்கு",
+ "testCombo": "காம்போவைச் சோதி",
+ "duplicate": "நகலெடு",
+ "proxyConfig": "ப்ராக்ஸி உள்ளமைவு",
+ "nameRequired": "பெயர் அவசியம்",
+ "nameInvalid": "எழுத்துகள், எண்கள், -, _, / மற்றும் . மட்டுமே அனுமதிக்கப்படும்",
+ "nameHint": "எழுத்துகள், எண்கள், -, _, / மற்றும் . அனுமதிக்கப்படும்",
+ "priorityDesc": "வரிசையான மாற்றுத் தேர்வு: முதலில் மாடல் 1-ஐ முயற்சிக்கும், பின்னர் 2, இவ்வாறு தொடரும்.",
+ "weightedDesc": "மாற்றுத் தேர்வுடன், எடை சதவீதத்தின் அடிப்படையில் போக்குவரத்தைப் பகிர்ந்தளிக்கும்",
+ "roundRobinDesc": "சுழற்சி விநியோகம்: ஒவ்வொரு கோரிக்கையும் சுழற்சியில் அடுத்த மாடலுக்குச் செல்லும்",
+ "contextRelay": "சூழல் ரிலே",
+ "contextRelayDesc": "கணக்குகள் சுழற்சி முறையில் மாறும்போது, ஒப்படைப்புச் சுருக்கங்கள் மூலம் அமர்வுத் தொடர்ச்சியைப் பேணும்",
+ "randomDesc": "சீரான சீரற்ற தேர்வு, பின்னர் மீதமுள்ள மாடல்களுக்கு மாற்றுத் தேர்வு",
+ "leastUsedDesc": "காலப்போக்கில் சுமையைச் சமநிலைப்படுத்தி, மிகக் குறைவான கோரிக்கைகளைக் கொண்ட மாடலைத் தேர்ந்தெடுக்கும்",
+ "costOptimizedDesc": "விலை நிர்ணயத்தின் அடிப்படையில் முதலில் மிகக் குறைந்த செலவுள்ள மாடலுக்கு வழிப்படுத்தும்",
+ "cacheOptimizedDesc": "மீண்டும் பயன்படுத்தக்கூடிய ஒவ்வொரு தூண்டல் முன்னொட்டையும் தொடர்ந்து அதே வழங்குநர் கணக்குக்கு வழிப்படுத்தும்",
"resetAware": "ரீசெட்-அவேர் ஆர்ஆர்",
"resetAwareDesc": "5h மற்றும் வாராந்திர மீட்டமைப்புகளுக்கு எதிராக மீதமுள்ள ஒதுக்கீட்டை சமநிலைப்படுத்துகிறது, பின்னர் ரவுண்ட்-ராபின்கள் ஒத்த மதிப்பெண்கள்",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "ஒதுக்கீடு-எடையிடப்பட்டது",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "கண்டிப்பான சீரற்ற தேர்வு",
+ "strictRandomDesc": "சீட்டுக்கட்டை கலைத்தல் — மீண்டும் கலைப்பதற்கு முன் ஒவ்வொரு மாடலையும் ஒருமுறை பயன்படுத்தும்",
"fusion": "இணைவு",
"fusionDesc": "ப்ராம்ப்ட்டை அனைத்து பேனல் மாடல்களுக்கும் இணையாக அனுப்பி, பின்னர் ஒரு நடுவர் மாடல் ஒரு இறுதிப் பதிலை ஒருங்கிணைக்கிறது",
"fusionJudgeModel": "நடுவர் மாடல்",
@@ -3278,27 +3282,27 @@
"fusionStragglerGraceMsHelp": "கோரம் எட்டப்பட்டதும் மெதுவான பேனல் மாடல்களுக்காக எவ்வளவு நேரம் காத்திருக்க வேண்டும் (இயல்புநிலை 8000).",
"fusionPanelHardTimeoutMs": "பேனல் இறுதி காலாவதி நேரம் (மி.வி)",
"fusionPanelHardTimeoutMsHelp": "ஒரு முடங்கிய மாடல் முழு பேனலையும் நிறுத்தாமல் இருக்க விதிக்கப்படும் முழுமையான வரம்பு (இயல்புநிலை 90000).",
- "models": "Models",
- "autoBalance": "Auto-balance",
- "advancedSettings": "Advanced Settings",
- "retryDelay": "Retry Delay (ms)",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
- "advancedHint": "Leave empty to use global defaults. These override per-provider settings.",
+ "models": "மாடல்கள்",
+ "autoBalance": "தானியங்குச் சமநிலை",
+ "advancedSettings": "மேம்பட்ட அமைப்புகள்",
+ "retryDelay": "மறுமுயற்சி தாமதம் (ms)",
+ "concurrencyPerModel": "ஒரேநேரச் செயல்பாடு / மாடல்",
+ "queueTimeout": "வரிசைக் காத்திருப்பு நேர முடிவு (ms)",
+ "contextRelayHandoffThreshold": "ஒப்படைப்பு வரம்பு",
+ "contextRelayHandoffThresholdHelp": "ஒதுக்கீட்டுப் பயன்பாடு இந்த வரம்பை அடையும்போது, செயலில் உள்ள கணக்கின் ஒதுக்கீடு தீர்வதற்கு முன் OmniRoute ஒரு கட்டமைக்கப்பட்ட ஒப்படைப்புச் சுருக்கத்தை உருவாக்கும்.",
+ "contextRelayMaxMessages": "சுருக்கத்திற்கான அதிகபட்சச் செய்திகள்",
+ "contextRelayMaxMessagesHelp": "சமீபத்திய வரலாற்றில் எவ்வளவு பகுதி ரிலே சுருக்கமாகச் சுருக்கப்பட வேண்டும் என்பதைக் கட்டுப்படுத்தும்.",
+ "contextRelaySummaryModel": "சுருக்க மாடல்",
+ "contextRelaySummaryModelHelp": "ஒப்படைப்புச் சுருக்கத்தை உருவாக்குவதற்கு மட்டும் பயன்படுத்தப்படும் விருப்ப மாற்று மாடல். செயலில் உள்ள காம்போ மாடலை மீண்டும் பயன்படுத்த, இதைக் காலியாக விடவும்.",
+ "contextRelayProviderNote": "தற்போது Context Relay, Codex கணக்குச் சுழற்சிக்கான ஒப்படைப்புகளை உருவாக்குகிறது. சிறந்த தொடர்ச்சிக்காக, ஒரே வழங்குநரின் பல கணக்குகளுடன் இதைப் பயன்படுத்தவும்.",
+ "advancedHint": "உலகளாவிய இயல்புநிலைகளைப் பயன்படுத்த, இதைக் காலியாக விடவும். இவை ஒவ்வொரு வழங்குநருக்குமான அமைப்புகளை மீறும்.",
"failoverBeforeRetry": "மீண்டும் முயற்சிக்கும் முன் தோல்வி",
"maxSetRetries": "அதிகபட்ச செட் மீண்டும் முயற்சிகள்",
"setRetryDelayMs": "மறுமுயற்சி தாமதத்தை (மிவி) அமைக்கவும்",
- "moveUp": "Move up",
- "moveDown": "Move down",
- "removeModel": "Remove",
- "saving": "Saving...",
+ "moveUp": "மேலே நகர்த்து",
+ "moveDown": "கீழே நகர்த்து",
+ "removeModel": "அகற்று",
+ "saving": "சேமிக்கிறது...",
"liveNoProviders": "வழங்குநர்கள் இன்னும் கண்டறியப்படவில்லை.",
"liveFleetDataHint": "ஃப்ளீட் தரவு நேரலை காம்போ நிகழ்வுகள் மூலம் பெறப்படுகிறது.",
"liveActiveCount": "செயலில் ({count})",
@@ -3338,43 +3342,43 @@
"playgroundEmptyHint": "ரூட்டிங் பாதையைக் காண ஒரு காம்போவைத் தேர்ந்தெடுத்து Simulate Route என்பதை கிளிக் செய்யவும்.",
"playgroundNoCombosYet": "இன்னும் எந்த காம்போக்களும் கட்டமைக்கப்படவில்லை.",
"playgroundCreateFirst": "முதலில் ஒன்றை உருவாக்கவும்",
- "weighted": "Weighted",
- "leastUsed": "Least-Used",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "weighted": "எடையிடப்பட்டது",
+ "leastUsed": "மிகக் குறைவாகப் பயன்படுத்தப்பட்டது",
+ "costOpt": "செலவு-உகப்பாக்கம்",
+ "strategyGuideTitle": "இந்த உத்தியைப் பயன்படுத்துவது எப்படி",
+ "strategyGuideWhen": "எப்போது பயன்படுத்த வேண்டும்",
+ "strategyGuideAvoid": "எப்போது தவிர்க்க வேண்டும்",
+ "strategyGuideExample": "எடுத்துக்காட்டு",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "உங்களுக்கு விருப்பமான ஒரே மாதிரி உள்ளது; தோல்வி ஏற்பட்டால் மட்டுமே மாற்று மாதிரியைப் பயன்படுத்த விரும்புகிறீர்கள்.",
+ "avoid": "கோரிக்கைகளை மாதிரிகளுக்கு இடையே பகிர்ந்தளிக்க வேண்டும்.",
+ "example": "செயலிழப்புகளின்போது பயன்படுத்துவதற்கு மலிவான மாற்றுடன் கூடிய முதன்மைக் குறியீட்டு மாதிரி."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "மாதிரிகளுக்கு இடையே கட்டுப்படுத்தப்பட்ட போக்குவரத்துப் பிரிப்பு தேவை.",
+ "avoid": "காலப்போக்கில் துல்லியமான எடைகளைப் பராமரிக்க முடியாது.",
+ "example": "80% நிலையான மாதிரி + 20% கேனரி மாதிரி வெளியீடு."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "கணிக்கக்கூடிய மற்றும் சீரான பகிர்ந்தளிப்பை விரும்புகிறீர்கள்.",
+ "avoid": "தாமதம் அல்லது செலவில் மாதிரிகள் மிகவும் வேறுபடுகின்றன.",
+ "example": "செயல்திறனைப் பகிர்ந்தளிக்கப் பல கணக்குகளில் ஒரே மாதிரியைப் பயன்படுத்துதல்."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "குறைந்தபட்ச அமைப்புடன் எளிய பகிர்ந்தளிப்பை விரும்புகிறீர்கள்.",
+ "avoid": "கடுமையான போக்குவரத்து உத்தரவாதங்கள் தேவை.",
+ "example": "ஒத்த மாதிரிகளுடன் விரைவான முன்மாதிரி உருவாக்கம்."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "நிகழ்நேரத் தேவையின் அடிப்படையில் தகவமைவு சமநிலைப்படுத்தலை விரும்புகிறீர்கள்.",
+ "avoid": "பயன்பாட்டுச் சமநிலைப்படுத்தலால் பயனடைய முடியாத அளவுக்குப் போக்குவரத்து குறைவாக உள்ளது.",
+ "example": "ஒரு மாதிரி அடிக்கடி அதிகச் சுமைக்கு உள்ளாகும் கலப்புப் பணிச்சுமைகள்."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "செலவைக் குறைப்பதே உங்கள் முதன்மையான முன்னுரிமை.",
+ "avoid": "விலைத் தரவு கிடைக்கவில்லை அல்லது காலாவதியாகியுள்ளது.",
+ "example": "குறைந்த செலவுக்கு முன்னுரிமை அளிக்கப்படும் பின்னணி அல்லது தொகுதிப் பணிகள்."
},
"reset-aware": {
"when": "கோட்டா டெலிமெட்ரி மற்றும் வெவ்வேறு மீட்டமைப்பு சாளரங்கள் மூலம் நீங்கள் பல கணக்குகளுக்குச் செல்கிறீர்கள்.",
@@ -3382,104 +3386,104 @@
"example": "நாளை 60% வாராந்திர கணக்கு மீட்டமைப்பை 80% கணக்கை மீட்டமைப்பதை விரும்புங்கள்."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "முற்றிலும் சீரான பரவலை விரும்பும்போது பயன்படுத்தவும் — மீண்டும் பயன்படுத்துவதற்கு முன் ஒவ்வொரு மாதிரியும் ஒருமுறை பயன்படுத்தப்படும்.",
+ "avoid": "மாதிரிகளின் தரம் அல்லது தாமதம் வேறுபட்டு, வரிசை முக்கியமாக இருக்கும்போது தவிர்க்கவும்.",
+ "example": "எடுத்துக்காட்டு: பயன்பாட்டைச் சீராகப் பகிர்ந்தளிக்க ஒரே மாதிரியின் பல கணக்குகள்."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Power-of-Two-Choices வழிமுறையைப் பயன்படுத்திக் குறைந்த தாமதத்துடன் தேர்ந்தெடுக்க விரும்பும்போது பயன்படுத்தவும்.",
+ "avoid": "2 அல்லது அதற்குக் குறைவான மாதிரிகளைக் கொண்ட சிறிய சேர்க்கைகளுக்கு இதைத் தவிர்க்கவும் — round-robin முறையைவிட எந்தப் பயனும் இல்லை.",
+ "example": "எடுத்துக்காட்டு: 4+ ஒத்த மாதிரி முனைப்புள்ளிகளில் அதிகச் செயல்திறன் கொண்ட அனுமானம்."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "செயல்படும் சூழலை இழக்காமல் நீண்ட அமர்வுகள் கணக்குச் சுழற்சியைத் தாங்க வேண்டியிருக்கும்போது பயன்படுத்தவும்.",
+ "avoid": "கணக்கு மாற்றுவது அரிதாக இருக்கும்போது அல்லது கூடுதல் சுருக்கக் கோரிக்கைகளை விரும்பாதபோது தவிர்க்கவும்.",
+ "example": "எடுத்துக்காட்டு: ஒதுக்கீடு தீரும் நிலையில் பல கணக்குகளுக்கு இடையே சுழலும் Codex அமர்வுகள்."
},
"fill-first": {
- "when": "Use when you want to fully exhaust one provider's quota before moving to the next.",
- "avoid": "Avoid when you need request-level load balancing across providers.",
- "example": "Example: Use all $200 Deepgram credits before falling back to Groq."
+ "when": "அடுத்த வழங்குநருக்கு மாறுவதற்கு முன் ஒரு வழங்குநரின் ஒதுக்கீட்டை முழுமையாகப் பயன்படுத்த விரும்பும்போது பயன்படுத்தவும்.",
+ "avoid": "வழங்குநர்களுக்கு இடையே கோரிக்கை-நிலைச் சுமைச் சமநிலைப்படுத்தல் தேவைப்படும்போது தவிர்க்கவும்.",
+ "example": "எடுத்துக்காட்டு: Groq-ஐ மாற்றாகப் பயன்படுத்துவதற்கு முன் Deepgram-இன் $200 கிரெடிட்கள் அனைத்தையும் பயன்படுத்தவும்."
},
"auto": {
- "when": "Use when you need multi-factor scoring routing based on cost, latency, and quality.",
- "avoid": "Avoid when you need strict priority ordering or historical persistence.",
- "example": "Example: Balance requests across models with different strengths."
+ "when": "செலவு, தாமதம் மற்றும் தரத்தின் அடிப்படையில் பல-காரண மதிப்பீட்டு வழிப்படுத்தல் தேவைப்படும்போது பயன்படுத்தவும்.",
+ "avoid": "கடுமையான முன்னுரிமை வரிசை அல்லது வரலாற்றுத் தொடர்ச்சி தேவைப்படும்போது தவிர்க்கவும்.",
+ "example": "எடுத்துக்காட்டு: வெவ்வேறு பலங்களைக் கொண்ட மாதிரிகளுக்கு இடையே கோரிக்கைகளைச் சமநிலைப்படுத்தவும்."
},
"lkgp": {
- "when": "Use when you want to route based on historical success rates and performance.",
- "avoid": "Avoid when historical data is limited or unreliable.",
- "example": "Example: Route to models with a good track record on specific tasks."
+ "when": "வரலாற்று வெற்றி விகிதங்கள் மற்றும் செயல்திறனின் அடிப்படையில் வழிப்படுத்த விரும்பும்போது பயன்படுத்தவும்.",
+ "avoid": "வரலாற்றுத் தரவு குறைவாகவோ நம்பகமற்றதாகவோ இருக்கும்போது தவிர்க்கவும்.",
+ "example": "எடுத்துக்காட்டு: குறிப்பிட்ட பணிகளில் சிறந்த செயல்திறன் வரலாற்றைக் கொண்ட மாடல்களுக்கு வழிமாற்றவும்."
},
"context-optimized": {
- "when": "Use when you need to optimize context window usage across models.",
- "avoid": "Avoid when models have similar context lengths or tasks are simple.",
- "example": "Example: Distribute long conversations across models with larger context windows."
+ "when": "மாடல்களுக்கிடையே சூழல் சாளரப் பயன்பாட்டை உகப்பாக்க வேண்டியிருக்கும்போது பயன்படுத்தவும்.",
+ "avoid": "மாடல்களின் சூழல் நீளங்கள் ஒரே மாதிரியாக இருக்கும்போதோ பணிகள் எளிமையாக இருக்கும்போதோ தவிர்க்கவும்.",
+ "example": "எடுத்துக்காட்டு: நீண்ட உரையாடல்களைப் பெரிய சூழல் சாளரங்களைக் கொண்ட மாடல்களிடையே பகிர்ந்தளிக்கவும்."
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "ஒரு கோரிக்கை தோல்வியடைவதற்கு முன் எத்தனை மறுமுயற்சிகள் மேற்கொள்ளப்படும்.",
+ "retryDelay": "மறுமுயற்சிகளுக்கு இடையிலான ஆரம்பக் காத்திருப்பு நேரம். அதிக மதிப்புகள் திடீர் சுமையைக் குறைக்கும்.",
+ "timeout": "நிறுத்தப்படுவதற்கு முன் கோரிக்கைக்கான அதிகபட்ச கால அளவு.",
+ "healthcheck": "வழிமாற்ற முடிவுகளில் செயல்நலமற்ற மாடல்கள்/வழங்குநர்களைத் தவிர்க்கிறது.",
+ "concurrencyPerModel": "சுழற்சி முறையில் ஒரு மாடலுக்கு அனுமதிக்கப்படும் அதிகபட்ச ஒரேநேரக் கோரிக்கைகள்.",
+ "queueTimeout": "காலாவதியாவதற்கு முன் ஒரு கோரிக்கை வரிசையில் காத்திருக்கக்கூடிய அதிகபட்ச நேரம்.",
"failoverBeforeRetry": "இயக்கப்படும் போது, ஏதேனும் அப்ஸ்ட்ரீம் பிழையானது அடுத்த சேர்க்கை இலக்கை உடனடியாக தோல்வியடையச் செய்து, அனைத்து மறுமுயற்சிகள் மற்றும் ஃபால்பேக் URLகளைத் தவிர்த்துவிடும்.",
"maxSetRetries": "ஒவ்வொரு இலக்கும் தோல்வியடையும் போது நிர்ணயித்த முழு இலக்கை மீண்டும் முயற்சிக்க வேண்டிய முறைகளின் எண்ணிக்கை. 0 = செட்-லெவல் மறு முயற்சி இல்லை.",
"setRetryDelayMs": "செட்-லெவல் மறுமுயற்சிகளுக்கு இடையே தாமதம், தற்காலிக சிக்கல்களைத் தீர்க்க நேரம் கிடைக்கும்.",
"disableSessionStickiness": "முதல்-செய்தி ஹாஷ் மூலம் முழு உரையாடலையும் ஒரு இணைப்பிற்குப் பின் செய்வதற்குப் பதிலாக, ஒவ்வொரு கோரிக்கையிலும் வேறு இணைப்பிற்கு மாறவும். உலகளாவிய இயல்புநிலையை மேலெழுதுகிறது. மல்டி-டர்ன் அரட்டைகளுக்கான ப்ராம்ப்ட்-கேச் ஹிட்களைப் பாதுகாக்க Inherit இல் விடவும்."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "விரைவு வார்ப்புருக்கள்",
+ "templatesDescription": "தொடக்கச் சுயவிவரத்தைப் பயன்படுத்தி, பின்னர் மாடல்களையும் உள்ளமைவையும் சரிசெய்யவும்.",
+ "templateApply": "வார்ப்புருவைப் பயன்படுத்து",
+ "templateHighAvailability": "உயர் கிடைப்புத்தன்மை",
+ "templateHighAvailabilityDesc": "செயல்நலச் சோதனைகள் மற்றும் பாதுகாப்பான மறுமுயற்சிகளுடன் முன்னுரிமை வழிமாற்றம்.",
+ "templateCostSaver": "செலவு சேமிப்பு",
+ "templateCostSaverDesc": "பட்ஜெட்டுக்கு முன்னுரிமை அளிக்கும் பணிச்சுமைகளுக்கான செலவு-உகப்பாக்கப்பட்ட வழிமாற்றம்.",
+ "templateBalanced": "சமநிலைப்படுத்தப்பட்ட சுமை",
+ "templateBalancedDesc": "காலப்போக்கில் தேவையைப் பகிர்ந்தளிக்க மிகக் குறைவாகப் பயன்படுத்தப்பட்டதற்கான வழிமாற்றம்.",
+ "usageGuideHide": "மறை",
+ "usageGuideDontShowAgain": "மீண்டும் காட்ட வேண்டாம்",
+ "usageGuideShow": "வழிகாட்டியைக் காட்டு",
+ "quickTestTitle": "சரிபார்க்கத் தயாரான தொகுப்பு",
+ "quickTestDescription": "மாற்றுவழி மற்றும் தாமதச் செயல்பாட்டை உறுதிப்படுத்த இப்போது ஒரு சோதனையை இயக்கவும்.",
+ "testNow": "இப்போது சோதிக்கவும்",
+ "pricingCoverage": "விலையிடல் உள்ளடக்கம்",
+ "pricingCoverageHint": "அனைத்து தொகுப்பு மாடல்களுக்கும் விலையிடல் இருக்கும்போது செலவு-உகப்பாக்கம் சிறப்பாகச் செயல்படும்.",
+ "pricingAvailable": "விலையிடல் உள்ளது",
+ "pricingMissing": "விலையிடல் இல்லை",
+ "pricingAvailableShort": "விலையிடப்பட்டது",
+ "pricingMissingShort": "விலையிடப்படாதது",
"fallbackOnlyOnQuotaExhaustion": "கோட்டையின் முடிவுக்கு முன்னே செல்லவும்",
"fallbackOnlyOnQuotaExhaustionShort": "கோட்டா-மட்டுமே மறு நிலை",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
- "readinessCheckPricing": "Pricing data is available",
- "readinessCheckPricingOptional": "Pricing rule not required",
- "saveBlockedTitle": "Save is blocked until the following items are fixed:",
- "saveBlockName": "Define a combo name.",
- "saveBlockModels": "Add at least one model.",
- "saveBlockWeighted": "Set weights to 100% (current: {total}%).",
- "saveBlockPricing": "Add pricing for at least one model or choose a different strategy.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "warningRoundRobinSingleModel": "குறைந்தது 2 மாடல்கள் இருக்கும்போது சுழற்சி முறை மிகவும் பயனுள்ளதாக இருக்கும்.",
+ "warningCostOptimizedPartialPricing": "{total} மாடல்களில் {priced} மாடல்களுக்கு மட்டுமே விலையிடல் உள்ளது. வழிமாற்றம் செலவைப் பகுதியளவில் மட்டுமே கருத்தில் கொள்ளக்கூடும்.",
+ "warningCostOptimizedNoPricing": "இந்தத் தொகுப்பிற்கான விலையிடல் தரவு எதுவும் கிடைக்கவில்லை. செலவு-உகப்பாக்கப்பட்ட முறை எதிர்பாராத வகையில் வழிமாற்றக்கூடும்.",
+ "filterAll": "அனைத்தும்",
+ "filterIntelligent": "நுண்ணறிவுமிக்கது",
+ "filterDeterministic": "நிர்ணயிக்கப்பட்டது",
+ "filterEmptyTitle": "இந்த உத்தி வடிகட்டியுடன் எந்தத் தொகுப்பும் பொருந்தவில்லை.",
+ "filterEmptyIntelligentDescription": "நுண்ணறிவு வழிமாற்ற முகப்புப் பலகையை நிரப்ப, auto அல்லது LKGP தொகுப்பை உருவாக்கவும்.",
+ "filterEmptyDeterministicDescription": "தற்போது auto மற்றும் LKGP சேர்க்கைகள் மட்டுமே உள்ளன. All என்பதற்கு மீண்டும் மாறவும் அல்லது நிர்ணயிக்கப்பட்ட சேர்க்கையை உருவாக்கவும்.",
+ "readinessTitle": "சேமிக்கத் தயாரா?",
+ "readinessDescription": "இந்தச் சேர்க்கையை உருவாக்கும் அல்லது புதுப்பிக்கும் முன் சரிபார்ப்புப் பட்டியலை மதிப்பாய்வு செய்யவும்.",
+ "readinessCheckName": "சேர்க்கையின் பெயர் செல்லுபடியாகும்",
+ "readinessCheckModels": "குறைந்தது ஒரு மாடல் தேர்ந்தெடுக்கப்பட்டுள்ளது",
+ "readinessCheckWeights": "எடைகளின் மொத்தம் 100%",
+ "readinessCheckWeightsOptional": "எடை விதி தேவையில்லை",
+ "readinessCheckPricing": "விலைத் தரவு கிடைக்கிறது",
+ "readinessCheckPricingOptional": "விலை விதி தேவையில்லை",
+ "saveBlockedTitle": "பின்வரும் உருப்படிகள் சரிசெய்யப்படும் வரை சேமிக்க முடியாது:",
+ "saveBlockName": "சேர்க்கைக்கு ஒரு பெயரை வரையறுக்கவும்.",
+ "saveBlockModels": "குறைந்தது ஒரு மாடலைச் சேர்க்கவும்.",
+ "saveBlockWeighted": "எடைகளை 100% ஆக அமைக்கவும் (தற்போது: {total}%).",
+ "saveBlockPricing": "குறைந்தது ஒரு மாடலுக்கான விலையைச் சேர்க்கவும் அல்லது வேறொரு உத்தியைத் தேர்ந்தெடுக்கவும்.",
+ "recommendationsLabel": "பரிந்துரைக்கப்பட்ட அமைப்பு",
+ "applyRecommendations": "பரிந்துரைகளைப் பயன்படுத்தவும்",
+ "recommendationsUpdated": "{strategy} உத்திக்கான பரிந்துரைகள் புதுப்பிக்கப்பட்டன.",
+ "recommendationsApplied": "இந்தச் சேர்க்கைக்கு பரிந்துரைகள் பயன்படுத்தப்பட்டன.",
+ "intelligentPanelTitle": "நுண்ணறிவு வழித்தட டாஷ்போர்டு",
+ "intelligentPanelDesc": "இந்தத் தானியங்கி வழித்தடச் சேர்க்கைக்கான நிகழ்நேர மதிப்பீடும் செயல்நிலை நிலையும்.",
"configOnlyStatus": "கட்டமைப்பு காட்சி",
"configOnlyHint": "இந்த பேனல் ரூட்டிங் உள்ளீடுகளை மட்டுமே காட்டுகிறது. நேரடி பிரேக்கர் நிலை ஹெல்த் பக்கத்தில் கிடைக்கிறது.",
"routingInputs": "ரூட்டிங் உள்ளீடுகள்",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "அறியப்படாத வழங்குநர் முன்னொட்டு.",
"builderDynamicAccountShort": "டைனமிக் கணக்கு",
"builderNeedValidName": "தொடர்வதற்கு முன் சரியான காம்போ பெயரை வரையறுக்கவும்.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "நிலை மேலோட்டம்",
+ "normalOperation": "இயல்பான செயல்பாடு",
+ "allProvidersHealthy": "வழங்குநர்கள் ஆரோக்கியமான வழித்தட நிலைமைகளைப் புகாரளிக்கின்றனர்.",
+ "incidentMode": "சம்பவப் பயன்முறை",
+ "highCircuitBreakerRate": "அதிக சர்க்யூட் பிரேக்கர் தூண்டல் விகிதம் கண்டறியப்பட்டது.",
+ "activeModePack": "செயலில் உள்ள பயன்முறைத் தொகுப்பு",
+ "modePackUpdated": "பயன்முறைத் தொகுப்பு {pack} ஆகப் புதுப்பிக்கப்பட்டது.",
+ "modePackHint": "சேர்க்கையை மீண்டும் உருவாக்காமல் வழித்தட இயந்திரத்தின் சார்பை மாற்ற, முன்னமைவுகளை மாற்றவும்.",
+ "providerScores": "வழங்குநர் மதிப்பெண்கள்",
+ "allProvidersEvaluated": "பரிசீலனைக்கான வழங்குநர் தொகுப்பு எதுவும் உள்ளமைக்கப்படவில்லை. செயலில் உள்ள அனைத்து வழங்குநர்களும் இயக்க நேரத்தில் மதிப்பிடப்படுகின்றனர்.",
+ "excludedProviders": "விலக்கப்பட்ட வழங்குநர்கள்",
+ "excludedProvidersHint": "OPEN சர்க்யூட் பிரேக்கரைக் கொண்ட வழங்குநர்கள் வழித்தடத்திலிருந்து தற்காலிகமாக விலக்கப்படுகின்றனர்.",
+ "noExcludedProviders": "தற்போது எந்த வழங்குநர்களும் விலக்கப்படவில்லை.",
+ "cooldownMinutes": "காத்திருப்பு நேரம்: {minutes} நிமி",
+ "builderIntelligentTitle": "நுண்ணறிவு வழித்தட உள்ளமைவு",
+ "builderIntelligentDesc": "இந்தத் தானியங்கி வழித்தடச் சேர்க்கைக்கான பல-காரணி மதிப்பீட்டு இயந்திரத்தை உள்ளமைக்கவும்.",
+ "candidatePoolLabel": "பரிசீலனைத் தொகுப்பு",
+ "candidatePoolHint": "இந்த இயந்திரம் எந்த வழங்குநர்களை மதிப்பிட வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும். செயலில் உள்ள அனைத்து வழங்குநர்களையும் பயன்படுத்த, காலியாக விடவும்.",
+ "candidatePoolEmpty": "செயலில் உள்ள வழங்குநர்கள் இன்னும் கிடைக்கவில்லை.",
+ "candidatePoolAllProviders": "அனைத்து வழங்குநர்களும்",
+ "modePackLabel": "முறைமைத் தொகுப்பு",
+ "routerStrategyLabel": "வழிப்படுத்தி உத்தி",
+ "strategyRules": "விதிகள் (6-காரணி மதிப்பீடு)",
+ "explorationRateLabel": "ஆய்வு விகிதம்",
+ "explorationRateHint": "கோரிக்கைகளில் {percent}% உகந்ததல்லாத வழங்குநர்களை ஆராயலாம்.",
+ "budgetCapLabel": "வரவுசெலவு உச்சவரம்பு (USD / கோரிக்கை)",
+ "budgetCapPlaceholder": "வரம்பு இல்லை",
+ "advancedWeightsTitle": "மேம்பட்டது: மதிப்பீட்டு எடைகள்",
"nestedComboFlatten": "உள்ளமைக்கப்பட்ட காம்போக்களை தட்டையாக்கு",
"nestedComboExecute": "உள்ளமைக்கப்பட்ட காம்போக்களை இலக்குகளாக இயக்கவும்",
"effectiveRoutingShare": "செயல்திறன்மிக்க ரூட்டிங் பங்கு (எடை ÷ மொத்தம்)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "ஒதுக்கீடு",
+ "weightHealth": "நிலை",
+ "weightCostInv": "செலவு",
+ "weightLatencyInv": "தாமதம்",
+ "weightTaskFit": "பணிப் பொருத்தம்",
+ "weightStability": "நிலைத்தன்மை",
+ "weightTierPriority": "அடுக்கு",
+ "weightCacheAffinity": "தற்காலிகச் சேமிப்பக வெற்றிச் சார்பு",
"weightSessionAvailability": "அமைப்புக்கான கிடைக்கும் நேரம்",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "நுண்ணறிவு வழிப்படுத்தல் உள்ளமைவு",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "தோல்வி-பாதுகாப்பு அடிப்படை",
+ "description": "ஒரு முதன்மை மாதிரியைப் பயன்படுத்தி, மாற்றுச் சங்கிலியைச் சுருக்கமாகவும் நம்பகமாகவும் வைத்திருங்கள்.",
+ "tip1": "மிகவும் நம்பகமான மாதிரியை முதலில் வைக்கவும்.",
+ "tip2": "ஒத்த தரமுள்ள 1-2 காப்பு மாதிரிகளை வைத்திருங்கள்.",
+ "tip3": "வழங்குநரின் தற்காலிகத் தோல்விகளைச் சமாளிக்கப் பாதுகாப்பான மறுமுயற்சிகளைப் பயன்படுத்தவும்."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "கட்டுப்படுத்தப்பட்ட போக்குவரத்துப் பிரிப்பு",
+ "description": "கேனரி வெளியீடுகளுக்கும் மாதிரிகளுக்கு இடையிலான படிப்படியான இடமாற்றத்திற்கும் சிறந்தது.",
+ "tip1": "90/10 போன்ற எச்சரிக்கையான பிரிப்புடன் தொடங்கவும்.",
+ "tip2": "மொத்தத்தை 100% ஆக வைத்திருந்து, மாற்றங்களுக்குப் பிறகு தானாகச் சமநிலைப்படுத்தவும்.",
+ "tip3": "கேனரி எடையை அதிகரிப்பதற்கு முன் வெற்றி விகிதத்தையும் தாமதத்தையும் கண்காணிக்கவும்."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "கணிக்கக்கூடிய சுமைப் பகிர்வு",
+ "description": "மாதிரிகள் சமமானவையாக இருந்து, சீரான விநியோகம் தேவைப்படும்போது சிறந்தது.",
+ "tip1": "குறைந்தது 2 மாதிரிகளைப் பயன்படுத்தவும்.",
+ "tip2": "திடீர் சுமை மிகைப்பைத் தவிர்க்க ஒரேநேரச் செயலாக்க வரம்புகளை அமைக்கவும்.",
+ "tip3": "நிறைவுச் சுமையின்போது விரைவாகத் தோல்வியடைய வரிசைக் காலக்கெடுவைப் பயன்படுத்தவும்."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "குறைந்த அமைப்புடன் விரைவான பரவல்",
+ "description": "கடுமையான உத்தரவாதங்கள் இல்லாமல் எளிய விநியோகம் தேவைப்படும்போது பயன்படுத்தவும்.",
+ "tip1": "ஒத்த தாமதச் சுயவிவரங்களைக் கொண்ட மாதிரிகளைப் பயன்படுத்தவும்.",
+ "tip2": "சீரற்ற தவறுகளைச் சமாளிக்க மறுமுயற்சிகளை இயக்கத்தில் வைத்திருங்கள்.",
+ "tip3": "கடுமையான SLA-களுக்காக அல்லாமல், பரிசோதனைக்காக இதைத் தேர்ந்தெடுக்கவும்."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "தகவமைப்பு சமநிலைப்படுத்தல்",
+ "description": "காலப்போக்கில் அதிகச் சுமை மையங்களைக் குறைக்க, குறைவாகப் பயன்படுத்தப்பட்ட மாதிரிகளுக்கு வழிப்படுத்துகிறது.",
+ "tip1": "தொடர்ச்சியான போக்குவரத்தில் சிறப்பாகச் செயல்படும்.",
+ "tip2": "பாதுகாப்பான சமநிலைப்படுத்தலுக்கு ஆரோக்கியச் சோதனைகளுடன் இணைக்கவும்.",
+ "tip3": "விநியோக மேம்பாடுகளைச் சரிபார்க்க, ஒவ்வொரு மாடலின் பயன்பாட்டையும் கண்காணிக்கவும்."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "பட்ஜெட்டுக்கு முன்னுரிமை அளிக்கும் வழிப்படுத்தல்",
+ "description": "விலைத் தரவுகள் கிடைக்கும்போது, குறைந்த செலவுள்ள மாடல்களுக்கு வழிப்படுத்தும்.",
+ "tip1": "தேர்ந்தெடுக்கப்பட்ட அனைத்து மாடல்களுக்கும் விலை விவரங்கள் இருப்பதை உறுதிசெய்யவும்.",
+ "tip2": "கடினமான ப்ராம்ப்ட்களுக்கு தரமான மாற்று மாடலை வைத்திருக்கவும்.",
+ "tip3": "செலவே முக்கிய KPI ஆக இருக்கும் தொகுதி/பின்னணி பணிகளுக்கு இதைப் பயன்படுத்தவும்."
},
"reset-aware": {
"title": "கணக்கு சுழற்சியை மீட்டமைத்தல்",
@@ -3593,155 +3597,155 @@
"tip3": "டை பேண்டை சிறியதாக வைத்திருங்கள், அதனால் சமமான கணக்குகள் இன்னும் சீராக சுழலும்."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "சீட்டுக்கட்டு கலைப்பு விநியோகம்",
+ "description": "மீண்டும் கலைப்பதற்கு முன், ஒவ்வொரு சுழற்சியிலும் ஒவ்வொரு மாடலும் சரியாக ஒருமுறை பயன்படுத்தப்படும்.",
+ "tip1": "பயனுள்ள விநியோகத்திற்கு குறைந்தது 2 மாடல்களைப் பயன்படுத்தவும்.",
+ "tip2": "ஒரே மாதிரியான செயல்திறன் கொண்ட மாடல்களுடன் சிறப்பாகச் செயல்படும்.",
+ "tip3": "பல API கணக்குகளுக்கு இடையே சுமையைச் சமநிலைப்படுத்துவதற்கு ஏற்றது."
},
"fill-first": {
- "description": "Exhaust provider quotas sequentially before falling back.",
- "tip1": "Use for quota-based routing with clear fallback chains.",
- "tip2": "Set quotas accurately to avoid premature fallback.",
- "tip3": "Works best with providers offering free tiers or credit buckets.",
- "title": "Quota Exhaustion"
+ "description": "மாற்று வழங்குநருக்குச் செல்வதற்கு முன், வழங்குநர் ஒதுக்கீடுகளை வரிசையாக முழுமையாகப் பயன்படுத்தும்.",
+ "tip1": "தெளிவான மாற்றுச் சங்கிலிகளைக் கொண்ட ஒதுக்கீடு சார்ந்த வழிப்படுத்தலுக்கு இதைப் பயன்படுத்தவும்.",
+ "tip2": "முன்கூட்டியே மாற்று வழங்குநருக்குச் செல்வதைத் தவிர்க்க, ஒதுக்கீடுகளைத் துல்லியமாக அமைக்கவும்.",
+ "tip3": "இலவச அடுக்குகள் அல்லது கிரெடிட் தொகுப்புகளை வழங்கும் வழங்குநர்களுடன் சிறப்பாகச் செயல்படும்.",
+ "title": "ஒதுக்கீடு தீர்ந்துபோதல்"
},
"auto": {
- "description": "Route based on real-time scoring for cost, latency, quality, and health.",
- "tip1": "Let the engine balance multiple factors automatically.",
- "tip2": "Monitor which factors drive routing decisions in logs.",
- "tip3": "Use for complex workloads where no single factor dominates.",
- "title": "Multi-Factor Optimization"
+ "description": "செலவு, தாமதம், தரம் மற்றும் ஆரோக்கியத்திற்கான நிகழ்நேர மதிப்பீட்டின் அடிப்படையில் வழிப்படுத்தவும்.",
+ "tip1": "பல காரணிகளை என்ஜின் தானாகச் சமநிலைப்படுத்த அனுமதிக்கவும்.",
+ "tip2": "பதிவுகளில் வழிப்படுத்தல் முடிவுகளை எந்தக் காரணிகள் இயக்குகின்றன என்பதைக் கண்காணிக்கவும்.",
+ "tip3": "எந்த ஒரு காரணியும் ஆதிக்கம் செலுத்தாத சிக்கலான பணிச்சுமைகளுக்கு இதைப் பயன்படுத்தவும்.",
+ "title": "பல-காரணி உகப்பாக்கம்"
},
"lkgp": {
- "description": "Route based on historical performance and success patterns.",
- "tip1": "Requires sufficient request history for accurate predictions.",
- "tip2": "Good for workloads with consistent model performance patterns.",
- "tip3": "Monitor prediction accuracy and adjust weights as needed.",
- "title": "History-Based Routing"
+ "description": "வரலாற்றுச் செயல்திறன் மற்றும் வெற்றி முறைகளின் அடிப்படையில் வழிப்படுத்தவும்.",
+ "tip1": "துல்லியமான கணிப்புகளுக்குப் போதுமான கோரிக்கை வரலாறு தேவை.",
+ "tip2": "சீரான மாடல் செயல்திறன் முறைகளைக் கொண்ட பணிச்சுமைகளுக்கு ஏற்றது.",
+ "tip3": "கணிப்புத் துல்லியத்தைக் கண்காணித்து, தேவைக்கேற்ப எடைகளைச் சரிசெய்யவும்.",
+ "title": "வரலாறு சார்ந்த வழிப்படுத்தல்"
},
"context-optimized": {
- "description": "Optimize routing based on context window usage and token efficiency.",
- "tip1": "Route long conversations to models with larger context windows.",
- "tip2": "Monitor context utilization to avoid token waste.",
- "tip3": "Best for conversational AI requiring extensive context retention.",
- "title": "Context Optimization"
+ "description": "சூழல் சாளரப் பயன்பாடு மற்றும் டோக்கன் செயல்திறனின் அடிப்படையில் வழிப்படுத்தலை உகப்பாக்கவும்.",
+ "tip1": "நீண்ட உரையாடல்களைப் பெரிய சூழல் சாளரங்களைக் கொண்ட மாடல்களுக்கு வழிப்படுத்தவும்.",
+ "tip2": "டோக்கன் விரயத்தைத் தவிர்க்க, சூழல் பயன்பாட்டைக் கண்காணிக்கவும்.",
+ "tip3": "விரிவான சூழல் நினைவுத்திறன் தேவைப்படும் உரையாடல் AI-க்கு மிகவும் ஏற்றது.",
+ "title": "சூழல் உகப்பாக்கம்"
},
"context-relay": {
- "description": "Best when account rotation is expected and the next account must inherit a simplified task summary.",
- "tip1": "Use with providers rotating accounts for the same model family.",
- "tip2": "Set handoff threshold below hard quota cutoffs for summary generation time.",
- "tip3": "Only set a dedicated summary model if the primary is too expensive or unstable.",
- "title": "Session Continuity Priority"
+ "description": "கணக்கு சுழற்சி எதிர்பார்க்கப்படும்போதும், அடுத்த கணக்கு எளிமைப்படுத்தப்பட்ட பணிச் சுருக்கத்தைப் பெற வேண்டியபோதும் மிகவும் ஏற்றது.",
+ "tip1": "ஒரே மாடல் குடும்பத்திற்கான கணக்குகளைச் சுழற்சி முறையில் மாற்றும் வழங்குநர்களுடன் பயன்படுத்தவும்.",
+ "tip2": "சுருக்கத்தை உருவாக்குவதற்கான நேரத்தை வழங்க, கடின ஒதுக்கீட்டு வரம்புகளுக்குக் கீழே ஒப்படைப்பு வரம்பை அமைக்கவும்.",
+ "tip3": "முதன்மை மாடல் மிகவும் விலையுயர்ந்ததாகவோ நிலையற்றதாகவோ இருந்தால் மட்டுமே பிரத்யேக சுருக்க மாடலை அமைக்கவும்.",
+ "title": "அமர்வுத் தொடர்ச்சிக்கு முன்னுரிமை"
},
"p2c": {
- "description": "Route to the provider with the lowest current load based on real-time metrics.",
- "tip1": "Monitor provider health metrics for accurate load assessment.",
- "tip2": "Works best with homogeneous provider pools.",
- "tip3": "Adjust sensitivity to avoid oscillation during traffic spikes.",
- "title": "Power of Two Choices"
+ "description": "நிகழ்நேர அளவீடுகளின் அடிப்படையில், தற்போது மிகக் குறைந்த சுமையைக் கொண்ட வழங்குநருக்கு வழிப்படுத்தவும்.",
+ "tip1": "துல்லியமான சுமை மதிப்பீட்டிற்கு வழங்குநரின் ஆரோக்கிய அளவீடுகளைக் கண்காணிக்கவும்.",
+ "tip2": "ஒரே மாதிரியான வழங்குநர் தொகுப்புகளுடன் சிறப்பாகச் செயல்படும்.",
+ "tip3": "போக்குவரத்து திடீரென அதிகரிக்கும் போது அலைவுகளைத் தவிர்க்க உணர்திறனைச் சரிசெய்யவும்.",
+ "title": "இரண்டு தேர்வுகளின் ஆற்றல்"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
- "auto": "Intelligent Auto",
- "autoDesc": "Self-healing smart routing pool with multi-factor scoring",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Prioritizes the last provider that successfully completed a request",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "templateFreeStack": "இலவச ஸ்டாக் ($0)",
+ "templateFreeStackDesc": "அனைத்து இலவச வழங்குநர்களிலும் ரவுண்ட்-ராபின் முறையில் வழிமாற்றம்: Kiro (Claude), Qoder (5 மாடல்கள்), Qwen (4 மாடல்கள்). செலவே இல்லை, குறியீடு எழுதுவது ஒருபோதும் நிற்காது.",
+ "auto": "நுண்ணறிவு தானியக்கம்",
+ "autoDesc": "பல-காரணி மதிப்பீட்டுடன் தானாகச் சீரமைந்துகொள்ளும் ஸ்மார்ட் வழிமாற்றக் குழு",
+ "lkgp": "LKGP பயன்முறை",
+ "lkgpDesc": "கடைசியாக ஒரு கோரிக்கையை வெற்றிகரமாக நிறைவு செய்த வழங்குநருக்கு முன்னுரிமை அளிக்கிறது",
+ "wizardGuideTitle": "காம்போக்களுடன் தொடங்குதல்",
+ "wizardGuideDesc": "AI போக்குவரத்தை நுண்ணறிவுடன் வழிமாற்ற மாடல் காம்போக்களை உருவாக்குங்கள்",
+ "wizardGuideHint": "அல்லது மேலே உள்ள + காம்போவை உருவாக்கு என்பதைக் கிளிக் செய்யவும்",
+ "createFirstCombo": "உங்கள் முதல் காம்போவை உருவாக்குங்கள்",
+ "wizardStep1Title": "உங்கள் காம்போவுக்குப் பெயரிடுங்கள்",
+ "wizardStep1Desc": "வழிமாற்ற விதிகளில் அடையாளம் காண உங்கள் காம்போவிற்குத் தனித்துவமான பெயரை வழங்குங்கள்",
+ "wizardStep2Title": "மாடல்களைச் சேர்க்கவும்",
+ "wizardStep2Desc": "AI மாடல்களைத் தேர்ந்தெடுத்து, அவற்றின் மாற்று முன்னுரிமை வரிசையை அமைக்கவும்",
+ "wizardStep3Title": "உத்தியைத் தேர்ந்தெடுக்கவும்",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "மதிப்பாய்வு செய்து சேமிக்கவும்",
+ "wizardStep4Desc": "உங்கள் உள்ளமைவை மதிப்பாய்வு செய்து காம்போவைச் செயல்படுத்தவும்",
+ "usageGuideInvokeTitle": "இந்த காம்போவை அழைப்பது எப்படி",
+ "usageGuideInvokeDesc": "மாடலாக காம்போவின் துல்லியமான பெயரை அனுப்பவும், எ.கா. model: \"my-combo\" (அல்லது combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto மற்றும் auto/* ஆகியவை உங்கள் காம்போக்களைப் பயன்படுத்தாத தனியான பூஜ்ஜிய-உள்ளமைவு ரவுட்டர் ஆகும் (ஒரு காம்போவுக்கு உண்மையாகவே auto என்று பெயரிடப்பட்டிருந்தால் தவிர).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto என்பது உண்மையான கட்டண OpenRouter தயாரிப்பு (Auto Best Available), OmniRoute மாற்றுப்பெயர் அல்ல — Settings → Routing → Hide paid models வழியாக அதை விலக்கவும்.",
+ "emailVisibilityStateOn": "இயக்கு",
+ "emailVisibilityStateOff": "முடக்கு",
+ "reorderHandle": "வரிசையை மாற்ற இழுக்கவும்",
+ "failedReorder": "மாடல்களின் வரிசையை மாற்ற முடியவில்லை",
+ "builderFlowTitle": "காம்போ உருவாக்கி செயல்முறை",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "அடிப்படைகள்",
+ "description": "பெயர் மற்றும் தொடக்க வார்ப்புரு"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "படிகள்",
+ "description": "வழங்குநர், மாடல் மற்றும் கணக்குத் தேர்வு"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "உத்தி",
+ "description": "வழிமாற்ற நடத்தை மற்றும் மேம்பட்ட அமைப்புகள்"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "ஸ்மார்ட் வழிமாற்றம்",
+ "description": "தானியங்கு வழிமாற்றத்திற்கான தேர்வாளர் குழு, முன்வரையறைகள் மற்றும் மதிப்பீடு"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "மதிப்பாய்வு",
+ "description": "சேமிப்பதற்கு முன் இறுதிச் சரிபார்ப்பு"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
- "builderDuplicateExact": "This exact provider/model/account step is already in the combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
- "builderStagesDescription": "Complete each stage in order to define combos, build steps, select routing strategy, and review results.",
- "builderStepsDescription": "Build each combo step in order: provider, model, then account. This allows reusing the same provider and model across different accounts.",
- "selectProvider": "Select Provider",
- "selectProviderPlaceholder": "Select a provider",
- "selectModel": "Select Model",
- "selectModelPlaceholder": "Select a provider first",
- "selectAccount": "Select Account",
- "selectComboToReference": "Select combo to reference",
- "comboReference": "Combo Reference",
- "addComboReference": "Add Combo Reference",
- "addStepBeforeContinue": "Please add at least one step before proceeding to the next stage.",
- "previewNextStep": "Preview next step",
- "autoSelectAccount": "Automatically select account at runtime",
- "modePackBalanced": "Balanced",
- "modePackBudget": "Budget",
- "modePackPerformance": "Performance",
- "modePackCustom": "Custom",
- "browseLegacyCatalog": "Browse legacy combo catalog",
- "agentFeaturesTitle": "Agent Features",
- "agentFeaturesDescription": "Enable advanced features for agents using this combo",
+ "builderStageVisited": "கட்டம் நிறைவடைந்தது",
+ "builderStageCurrent": "தற்போதைய கட்டம்",
+ "builderStagePending": "நிலுவையில் உள்ளது",
+ "builderStageLocked": "பூட்டப்பட்டுள்ளது — முதலில் முந்தைய கட்டத்தை நிறைவு செய்யவும்",
+ "builderTitle": "ஒரு Combo-ஐ உருவாக்கவும்",
+ "builderBrowseCatalog": "பட்டியலை உலாவவும்",
+ "builderProvider": "வழங்குநர்",
+ "builderLoadingProviders": "Providers ஏற்றப்படுகின்றன...",
+ "builderSelectProvider": "Provider-ஐத் தேர்ந்தெடுக்கவும்",
+ "builderModel": "மாதிரி",
+ "builderSelectModel": "Model-ஐத் தேர்ந்தெடுக்கவும்",
+ "builderProviderFirst": "முதலில் Provider-ஐத் தேர்ந்தெடுக்கவும்",
+ "builderAccount": "கணக்கு",
+ "builderPreview": "முன்னோட்டம்",
+ "builderAddStep": "படியைச் சேர்க்கவும்",
+ "builderDuplicateExact": "இதே Provider/Model/Account படி ஏற்கனவே Combo-வில் உள்ளது.",
+ "builderComboRef": "Combo குறிப்பு",
+ "builderAddComboRef": "Combo குறிப்பைச் சேர்க்கவும்",
+ "builderComboRefStep": "Combo குறிப்பைச் சேர்க்கவும்",
+ "builderPinnedAccount": "பின் செய்யப்பட்ட கணக்கு",
+ "builderLegacyEntry": "மரபுவழிப் பதிவு",
+ "reviewName": "பெயர்",
+ "reviewStrategy": "உத்தி",
+ "reviewSteps": "படிகள்",
+ "reviewAccounts": "கணக்குகள்",
+ "reviewProviders": "வழங்குநர்கள்",
+ "reviewComboRefs": "Combo குறிப்புகள்",
+ "reviewAdvanced": "மேம்பட்ட அமைப்புகள்",
+ "reviewAgentFlags": "Agent கொடிகள்",
+ "reviewSequence": "Model வரிசை",
+ "reviewNoSteps": "படிகள் எதுவும் உள்ளமைக்கப்படவில்லை",
+ "builderStagesDescription": "Combos-ஐ வரையறுக்கவும், படிகளை உருவாக்கவும், வழிப்படுத்தல் உத்தியைத் தேர்ந்தெடுக்கவும், முடிவுகளை மதிப்பாய்வு செய்யவும் ஒவ்வொரு கட்டத்தையும் வரிசையாக நிறைவு செய்யவும்.",
+ "builderStepsDescription": "ஒவ்வொரு Combo படியையும் இந்த வரிசையில் உருவாக்கவும்: Provider, Model, பின்னர் கணக்கு. இதனால் ஒரே Provider மற்றும் Model-ஐ வெவ்வேறு கணக்குகளில் மீண்டும் பயன்படுத்தலாம்.",
+ "selectProvider": "Provider-ஐத் தேர்ந்தெடுக்கவும்",
+ "selectProviderPlaceholder": "ஒரு Provider-ஐத் தேர்ந்தெடுக்கவும்",
+ "selectModel": "Model-ஐத் தேர்ந்தெடுக்கவும்",
+ "selectModelPlaceholder": "முதலில் ஒரு Provider-ஐத் தேர்ந்தெடுக்கவும்",
+ "selectAccount": "கணக்கைத் தேர்ந்தெடுக்கவும்",
+ "selectComboToReference": "குறிப்பிட வேண்டிய Combo-ஐத் தேர்ந்தெடுக்கவும்",
+ "comboReference": "Combo குறிப்பு",
+ "addComboReference": "Combo குறிப்பைச் சேர்க்கவும்",
+ "addStepBeforeContinue": "அடுத்த கட்டத்திற்குச் செல்வதற்கு முன் குறைந்தது ஒரு படியையாவது சேர்க்கவும்.",
+ "previewNextStep": "அடுத்த படியை முன்னோட்டமிடு",
+ "autoSelectAccount": "இயக்க நேரத்தில் கணக்கைத் தானாகத் தேர்ந்தெடு",
+ "modePackBalanced": "சமநிலை",
+ "modePackBudget": "பட்ஜெட்",
+ "modePackPerformance": "செயல்திறன்",
+ "modePackCustom": "தனிப்பயன்",
+ "browseLegacyCatalog": "பழைய காம்போ பட்டியலை உலாவு",
+ "agentFeaturesTitle": "முகவர் அம்சங்கள்",
+ "agentFeaturesDescription": "இந்த காம்போவைப் பயன்படுத்தும் முகவர்களுக்கான மேம்பட்ட அம்சங்களை இயக்கு",
"responseValidationTitle": "பதில் சரிபார்ப்பு",
"responseValidationHelp": "ஒரு 200 OK பாடி இந்த சோதனைகளில் தோல்வியடையும் போது (உதவியாளர் உள்ளடக்கம்), அடுத்த இலக்கிற்கு மாறவும்.",
"responseValidationForbidden": "தடைசெய்யப்பட்ட சப்ஸ்ட்ரிங்குகள் (வரிக்கு ஒன்று)",
@@ -3749,13 +3753,13 @@
"responseValidationMinLength": "குறைந்தபட்ச உள்ளடக்க நீளம் (எழுத்துக்கள்)",
"responseValidationJsonPaths": "JSON-பாதை சோதனைகள்",
"responseValidationAddCheck": "+ சோதனையைச் சேர்",
- "agentFeaturesSystemMessageOverride": "Override system message",
- "agentFeaturesSystemMessagePlaceholder": "You are an expert assistant...",
- "agentFeaturesSystemMessageHint": "System message override for agents",
+ "agentFeaturesSystemMessageOverride": "கணினிச் செய்தியை மேலெழுது",
+ "agentFeaturesSystemMessagePlaceholder": "நீங்கள் ஒரு நிபுணத்துவ உதவியாளர்...",
+ "agentFeaturesSystemMessageHint": "முகவர்களுக்கான கணினிச் செய்தி மேலெழுதுதல்",
"agentFeaturesToolFilterRegex": "/regex-pattern/",
- "agentFeaturesToolFilterHint": "Tool filter regex for agents",
- "agentFeaturesContextCacheHint": "Enable in-context cache for agent tools",
- "agentFeaturesContextCacheProtection": "Protect cache from agent tool mutations",
+ "agentFeaturesToolFilterHint": "முகவர்களுக்கான கருவி வடிகட்டி regex",
+ "agentFeaturesContextCacheHint": "முகவர் கருவிகளுக்கான சூழல்-உள் தற்காலிகச் சேமிப்பை இயக்கு",
+ "agentFeaturesContextCacheProtection": "முகவர் கருவி மாற்றங்களிலிருந்து தற்காலிகச் சேமிப்பைப் பாதுகாத்திடு",
"agentFeaturesContextLength": "சூழல் நீளம்",
"agentFeaturesContextLengthPlaceholder": "எ.கா. 128000",
"agentFeaturesContextLengthHint": "இந்த சேர்க்கைக்கான சூழல் சாளரத்தை /v1/மாடல்களில் வரையறுக்கிறது.",
@@ -3784,40 +3788,40 @@
"duplicateAutoComboTitle": "{name} இலிருந்து நிலையான கம்போ உருவாக்கவும்"
},
"costs": {
- "title": "Costs",
- "pageDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "overview": "Overview",
- "budget": "Budget",
- "totalCost": "Total Cost",
- "breakdown": "Cost Breakdown",
- "noData": "No cost data",
- "byModel": "By Model",
- "byProvider": "By Provider",
- "range7d": "7 Days",
- "range30d": "30 Days",
- "range90d": "90 Days",
- "range180d": "180 Days",
- "range365d": "365 Days",
- "rangeAll": "All Time",
- "spend30d": "Spend 30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
- "overviewTitle": "Cost Overview",
- "spend7d": "Spend 7D",
- "avgCostPerRequest": "Avg Cost / Request",
- "noCostDataDescription": "Start making requests to see cost data appear here. Costs are tracked automatically for all providers.",
- "spendToday": "Spend Today",
- "overviewLoadFailed": "Failed to load cost overview",
- "overviewDescription": "Real-time spending breakdown across all connected providers and models",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
- "noCostDataTitle": "No cost data yet",
- "topModels": "Top Models",
- "requestsInWindow": "Requests in Window",
+ "title": "செலவுகள்",
+ "pageDescription": "அனைத்து வழங்குநர்களிலும் செலவினங்களைக் கண்காணித்து, போக்குகளைப் பகுப்பாய்வு செய்து, உங்கள் AI பட்ஜெட்டை நிர்வகியுங்கள்",
+ "overview": "மேலோட்டம்",
+ "budget": "பட்ஜெட்",
+ "totalCost": "மொத்தச் செலவு",
+ "breakdown": "செலவு விவரம்",
+ "noData": "செலவுத் தரவு இல்லை",
+ "byModel": "மாதிரி வாரியாக",
+ "byProvider": "வழங்குநர் வாரியாக",
+ "range7d": "7 நாட்கள்",
+ "range30d": "30 நாட்கள்",
+ "range90d": "90 நாட்கள்",
+ "range180d": "180 நாட்கள்",
+ "range365d": "365 நாட்கள்",
+ "rangeAll": "எல்லாக் காலமும்",
+ "spend30d": "30 நாள் செலவு",
+ "activeModels": "செயலில் உள்ள மாதிரிகள்",
+ "flatRateEstimateNotice": "நிலையான கட்டணச் சந்தாக்களுக்கான டோக்கன்-விலை மதிப்பீடுகள் இதில் அடங்கும்; கட்டணமிடப்பட்ட செலவு அல்ல.",
+ "flatRateEstimateForecast": "முன்கணிப்பில் நிலையான கட்டண மதிப்பீடுகள் அடங்கும்.",
+ "selectedWindow": "தேர்ந்தெடுக்கப்பட்ட காலச்சாளரம்",
+ "activeProviders": "செயலில் உள்ள வழங்குநர்கள்",
+ "overviewTitle": "செலவு மேலோட்டம்",
+ "spend7d": "7 நாள் செலவு",
+ "avgCostPerRequest": "கோரிக்கை ஒன்றிற்கான சராசரிச் செலவு",
+ "noCostDataDescription": "செலவுத் தரவு இங்கே தோன்றுவதைக் காண கோரிக்கைகளை அனுப்பத் தொடங்குங்கள். அனைத்து வழங்குநர்களுக்குமான செலவுகள் தானாகவே கண்காணிக்கப்படுகின்றன.",
+ "spendToday": "இன்றைய செலவு",
+ "overviewLoadFailed": "செலவுக் கண்ணோட்டத்தை ஏற்ற முடியவில்லை",
+ "overviewDescription": "இணைக்கப்பட்ட அனைத்து வழங்குநர்கள் மற்றும் மாடல்களின் நிகழ்நேர செலவு விவரம்",
+ "providerShare": "வழங்குநர் பங்கு",
+ "topProviders": "முன்னணி வழங்குநர்கள்",
+ "costTrend": "செலவுப் போக்கு",
+ "noCostDataTitle": "இன்னும் செலவுத் தரவு இல்லை",
+ "topModels": "முன்னணி மாடல்கள்",
+ "requestsInWindow": "காலச்சாளரத்தில் உள்ள கோரிக்கைகள்",
"tokenUsage": "டோக்கன் பயன்பாடு",
"totalTokens": "மொத்த டோக்கன்கள்",
"inputTokens": "உள்ளீடு டோக்கன்கள்",
@@ -3877,139 +3881,139 @@
"showingTopCostRows": "பொருந்தும் {total} வரிசைகளில் {shown} காட்டப்படுகிறது (முதல் 50)."
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
- "available": "Available Endpoints",
+ "title": "API முனைப்புள்ளி",
+ "subtitle": "பெரும்பாலான SDKs மற்றும் கருவிகளுடன் OpenAI-இணக்கமான முனைப்புள்ளியைப் பயன்படுத்துங்கள்.",
+ "testEndpoint": "முனைப்புள்ளியைச் சோதிக்கவும் →",
+ "advancedProtocols": "மேம்பட்ட நெறிமுறைகள்",
+ "available": "கிடைக்கக்கூடிய முனைப்புள்ளிகள்",
"cloudProxy": "Cloud Proxy",
- "disableConfirm": "Are you sure you want to disable cloud proxy?",
- "baseUrl": "Base URL",
- "apiKeyLabel": "API Key",
- "registeredKeys": "Registered Keys",
+ "disableConfirm": "கிளவுட் ப்ராக்ஸியை முடக்க விரும்புகிறீர்களா?",
+ "baseUrl": "அடிப்படை URL",
+ "apiKeyLabel": "API விசை",
+ "registeredKeys": "பதிவுசெய்யப்பட்ட விசைகள்",
"chatCompletions": "Chat Completions",
- "responses": "Responses",
- "listModels": "List Models",
- "usingCloudProxy": "Using Cloud Proxy",
- "usingLocalServer": "Using Local Server",
- "machineId": "Machine ID: {id}...",
- "disableCloud": "Disable Cloud",
- "enableCloud": "Enable Cloud",
- "modelsAcrossEndpoints": "{models} models across {endpoints} endpoints",
- "loadingModels": "Loading available models...",
- "chatDesc": "Streaming & non-streaming chat with all providers",
- "embeddings": "Embeddings",
- "embeddingsDesc": "Text embeddings for search & RAG pipelines",
- "imageGeneration": "Image Generation",
- "imageDesc": "Generate images from text prompts",
+ "responses": "பதில்கள்",
+ "listModels": "மாடல்களைப் பட்டியலிடு",
+ "usingCloudProxy": "கிளவுட் ப்ராக்ஸி பயன்படுத்தப்படுகிறது",
+ "usingLocalServer": "உள்ளூர் சேவையகம் பயன்படுத்தப்படுகிறது",
+ "machineId": "இயந்திர ID: {id}...",
+ "disableCloud": "கிளவுடை முடக்கு",
+ "enableCloud": "கிளவுடை இயக்கு",
+ "modelsAcrossEndpoints": "{endpoints} முனைப்புள்ளிகளில் {models} மாடல்கள்",
+ "loadingModels": "கிடைக்கக்கூடிய மாடல்கள் ஏற்றப்படுகின்றன...",
+ "chatDesc": "அனைத்து வழங்குநர்களுடனும் ஸ்ட்ரீமிங் மற்றும் ஸ்ட்ரீமிங் அல்லாத அரட்டை",
+ "embeddings": "உட்பொதிவுகள்",
+ "embeddingsDesc": "தேடல் மற்றும் RAG பைப்லைன்களுக்கான உரை உட்பொதிவுகள்",
+ "imageGeneration": "பட உருவாக்கம்",
+ "imageDesc": "உரைத் தூண்டுதல்களிலிருந்து படங்களை உருவாக்குங்கள்",
"rerank": "Rerank",
- "rerankDesc": "Rerank documents by relevance to a query",
- "audioTranscription": "Audio Transcription",
- "audioTranscriptionDesc": "Transcribe audio files to text (Whisper)",
- "textToSpeech": "Text to Speech",
- "textToSpeechDesc": "Convert text to natural-sounding speech",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
- "moderations": "Moderations",
- "moderationsDesc": "Content moderation and safety classification",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
- "categoryCore": "Core APIs",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
- "categoryUtility": "Utility & Management",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
- "enableCloudTitle": "Enable Cloud Proxy",
- "whatYouGet": "What you will get",
- "cloudBenefitAccess": "Access your API from anywhere in the world",
- "cloudBenefitShare": "Share endpoint with your team easily",
- "cloudBenefitPorts": "No need to open ports or configure firewall",
- "cloudBenefitEdge": "Fast global edge network",
- "cloudSessionNote": "Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.",
- "cloudUnstableNote": "Cloud is currently unstable with Claude Code OAuth in some cases.",
- "cloudConnected": "Cloud Proxy connected!",
- "connectingToCloud": "Connecting to cloud...",
- "verifyingConnection": "Verifying connection...",
- "connecting": "Connecting...",
- "verifying": "Verifying...",
- "connected": "Connected!",
- "disableCloudTitle": "Disable Cloud Proxy",
- "disableWarning": "All auth sessions will be deleted from cloud.",
- "syncingData": "Syncing latest data...",
- "disablingCloud": "Disabling cloud...",
- "syncing": "Syncing...",
- "disabling": "Disabling...",
- "cloudConnectedVerified": "Cloud Proxy connected and verified!",
- "connectedVerificationPending": "Connected — verification pending",
- "connectedVerificationPendingWithError": "Connected — verification pending: {error}",
- "cloudDisabledSuccess": "Cloud disabled successfully",
- "syncedSuccess": "Synced successfully",
- "failedDisable": "Failed to disable cloud",
- "failedEnable": "Failed to enable cloud",
- "cloudRequestTimeout": "Cloud request timeout",
- "cloudRequestFailed": "Cloud request failed",
- "cloudWorkerUnreachable": "Could not reach cloud worker. Make sure the cloud service is running (npm run dev in /cloud).",
- "connectionFailed": "Connection failed",
- "syncFailed": "Failed to sync cloud data",
+ "rerankDesc": "வினவலுக்கான தொடர்புத்தன்மையின் அடிப்படையில் ஆவணங்களை மறுதரவரிசைப்படுத்துங்கள்",
+ "audioTranscription": "ஒலி உரைமாற்றம்",
+ "audioTranscriptionDesc": "ஒலிக் கோப்புகளை உரையாக மாற்றுங்கள் (Whisper)",
+ "textToSpeech": "உரையிலிருந்து பேச்சு",
+ "textToSpeechDesc": "உரையை இயல்பாக ஒலிக்கும் பேச்சாக மாற்றுங்கள்",
+ "musicGeneration": "இசை உருவாக்கம்",
+ "musicDesc": "ComfyUI (Stable Audio, MusicGen) வழியாக இசை மற்றும் ஒலித் தடங்களை உருவாக்குங்கள்",
+ "moderations": "மிதப்படுத்தல்கள்",
+ "moderationsDesc": "உள்ளடக்க மிதப்படுத்தல் மற்றும் பாதுகாப்பு வகைப்பாடு",
+ "responsesDesc": "Codex மற்றும் மேம்பட்ட ஏஜென்ட் பணிப்பாய்வுகளுக்கான OpenAI Responses API",
+ "listModelsDesc": "இணைக்கப்பட்ட அனைத்து வழங்குநர்களிலும் கிடைக்கும் அனைத்து மாதிரிகளையும் பட்டியலிடு",
+ "settingsApiDesc": "API வழியாக OmniRoute உள்ளமைவைப் படித்து மாற்று",
+ "settingsApi": "அமைப்புகள் API",
+ "categoryCore": "மைய API-கள்",
+ "categoryMedia": "ஊடகம் & பன்முகத் திறன்",
+ "categorySearch": "தேடல் & கண்டறிதல்",
+ "categoryUtility": "பயன்பாட்டுக் கருவிகள் & மேலாண்மை",
+ "webSearch": "இணையத் தேடல்",
+ "webSearchDesc": "தானியங்கி மாற்றுவழி மற்றும் தேக்கக வசதியுடன் பல வழங்குநர்களில் ஒருங்கிணைந்த இணையத் தேடல்",
+ "searchProvider": "தேடல் வழங்குநர்",
+ "searchProviderDesc": "இந்த வழங்குநர் POST /v1/search வழியான இணையத் தேடலுக்குப் பயன்படுத்தப்படுகிறது. மாதிரி உள்ளமைவு தேவையில்லை — API விசை இணைக்கப்பட்டதும் தேடல் வழங்குநர்கள் பயன்படுத்தத் தயாராக இருக்கும்.",
+ "enableCloudTitle": "Cloud Proxy-ஐ இயக்கு",
+ "whatYouGet": "நீங்கள் பெறுபவை",
+ "cloudBenefitAccess": "உலகின் எந்த இடத்திலிருந்தும் உங்கள் API-ஐ அணுகுங்கள்",
+ "cloudBenefitShare": "உங்கள் குழுவுடன் endpoint-ஐ எளிதாகப் பகிருங்கள்",
+ "cloudBenefitPorts": "port-களைத் திறக்கவோ firewall-ஐ உள்ளமைக்கவோ தேவையில்லை",
+ "cloudBenefitEdge": "வேகமான உலகளாவிய edge network",
+ "cloudSessionNote": "Cloud உங்கள் அங்கீகார அமர்வை 1 நாளுக்கு வைத்திருக்கும். பயன்படுத்தப்படாவிட்டால், அது தானாகவே நீக்கப்படும்.",
+ "cloudUnstableNote": "சில சந்தர்ப்பங்களில் Claude Code OAuth உடன் Cloud தற்போது நிலையற்றதாக உள்ளது.",
+ "cloudConnected": "Cloud Proxy இணைக்கப்பட்டது!",
+ "connectingToCloud": "Cloud உடன் இணைக்கிறது...",
+ "verifyingConnection": "இணைப்பைச் சரிபார்க்கிறது...",
+ "connecting": "இணைக்கிறது...",
+ "verifying": "சரிபார்க்கிறது...",
+ "connected": "இணைக்கப்பட்டது!",
+ "disableCloudTitle": "Cloud Proxy-ஐ முடக்கு",
+ "disableWarning": "அனைத்து அங்கீகார அமர்வுகளும் Cloud-இலிருந்து நீக்கப்படும்.",
+ "syncingData": "சமீபத்திய தரவை ஒத்திசைக்கிறது...",
+ "disablingCloud": "Cloud-ஐ முடக்குகிறது...",
+ "syncing": "ஒத்திசைக்கிறது...",
+ "disabling": "முடக்குகிறது...",
+ "cloudConnectedVerified": "Cloud Proxy இணைக்கப்பட்டுச் சரிபார்க்கப்பட்டது!",
+ "connectedVerificationPending": "இணைக்கப்பட்டது — சரிபார்ப்பு நிலுவையில் உள்ளது",
+ "connectedVerificationPendingWithError": "இணைக்கப்பட்டது — சரிபார்ப்பு நிலுவையில் உள்ளது: {error}",
+ "cloudDisabledSuccess": "Cloud வெற்றிகரமாக முடக்கப்பட்டது",
+ "syncedSuccess": "வெற்றிகரமாக ஒத்திசைக்கப்பட்டது",
+ "failedDisable": "Cloud-ஐ முடக்க முடியவில்லை",
+ "failedEnable": "கிளவுடை இயக்க முடியவில்லை",
+ "cloudRequestTimeout": "கிளவுட் கோரிக்கைக்கான நேரம் முடிந்தது",
+ "cloudRequestFailed": "கிளவுட் கோரிக்கை தோல்வியடைந்தது",
+ "cloudWorkerUnreachable": "கிளவுட் வொர்க்கரை அணுக முடியவில்லை. கிளவுட் சேவை இயங்குவதை உறுதிசெய்யவும் (/cloud இல் npm run dev ஐ இயக்கவும்).",
+ "connectionFailed": "இணைப்பு தோல்வியடைந்தது",
+ "syncFailed": "கிளவுட் தரவை ஒத்திசைக்க முடியவில்லை",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
- "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredDescription": "இந்த முனைப்புள்ளிக்காக Cloudflare Quick Tunnel ஒன்றை உருவாக்கவும்.",
+ "cloudflaredUrlNotice": "தற்காலிக Cloudflare Quick Tunnel ஒன்றை உருவாக்கும். ஒவ்வொரு மறுதொடக்கத்திற்குப் பிறகும் URL மாறும்.",
+ "cloudflaredEnable": "Tunnel-ஐ இயக்கு",
+ "cloudflaredInstallAndEnable": "நிறுவி இயக்கு",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "இயங்குகிறது",
+ "cloudflaredStarting": "தொடங்குகிறது",
+ "cloudflaredStoppedState": "நிறுத்தப்பட்டது",
+ "cloudflaredNotInstalled": "நிறுவப்படவில்லை",
+ "cloudflaredUnsupported": "ஆதரிக்கப்படவில்லை",
+ "cloudflaredError": "பிழை",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
- "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after every restart.",
- "cloudflaredUnsupportedNote": "This platform is not supported for managed installs. Install cloudflared manually or point CLOUDFLARED_BIN to an existing binary.",
+ "cloudflaredTemporaryNote": "Quick Tunnel URL-கள் தற்காலிகமானவை; ஒவ்வொரு மறுதொடக்கத்திற்குப் பிறகும் அவை மாறும்.",
+ "cloudflaredUnsupportedNote": "நிர்வகிக்கப்பட்ட நிறுவல்களை இந்தத் தளம் ஆதரிக்கவில்லை. cloudflared-ஐ கைமுறையாக நிறுவவும் அல்லது CLOUDFLARED_BIN-ஐ ஏற்கனவே உள்ள பைனரிக்குச் சுட்டிக்காட்டவும்.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
- "providerModelsTitle": "{provider} — Models",
- "noModelsForProvider": "No models available for this provider.",
+ "cloudflaredLastError": "கடைசிப் பிழை: {error}",
+ "providerModelsTitle": "{provider} — மாதிரிகள்",
+ "noModelsForProvider": "இந்த வழங்குநருக்கு மாதிரிகள் எதுவும் கிடைக்கவில்லை.",
"chat": "Chat",
- "embedding": "Embedding",
- "image": "Image",
- "custom": "custom",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "embedding": "உட்பொதித்தல்",
+ "image": "படம்",
+ "custom": "தனிப்பயன்",
+ "modelsCount": "{count, plural, one {# மாதிரி} other {# மாதிரிகள்}}",
+ "sectionTitle": "ஒருங்கிணைப்புப் பரப்பு",
+ "sectionDescription": "OpenAI-இணக்கமான API-கள் மற்றும் செயல்பாட்டு நெறிமுறை முனைப்புள்ளிகள்",
"tabApis": "APIகள்",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "நெறிமுறைகள்",
+ "tabsAria": "முனைப்புள்ளிப் பிரிவுகள்",
+ "protocolsTitle": "நெறிமுறைகள்",
+ "protocolsDescription": "MCP மற்றும் A2A ஆகியவை பிரத்யேக கண்காணிப்புத் திறன் மற்றும் கட்டுப்பாடுகளைக் கொண்ட முதன்மை முனைப்புள்ளிகள்.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "stdio வழியான Model Context Protocol",
+ "a2aCardTitle": "A2A சேவையகம்",
+ "a2aCardDescription": "Agent2Agent JSON-RPC முனைப்புள்ளி",
+ "protocolToolsLabel": "கருவிகள்",
+ "protocolTasksLabel": "பணிகள்",
+ "protocolActiveStreamsLabel": "செயலில் உள்ள ஸ்ட்ரீம்கள்",
+ "protocolLastActivity": "கடைசிச் செயல்பாடு",
+ "quickStart": "விரைவுத் தொடக்கம்",
+ "openMcpDashboard": "MCP நிர்வாகத்தைத் திற",
+ "openA2aDashboard": "A2A நிர்வாகத்தைத் திற",
+ "mcpQuickStartTitle": "MCP விரைவுத் தொடக்கம்",
+ "mcpQuickStartStep1": "MCP சேவையகத்தை `omniroute --mcp` மூலம் இயக்கவும்.",
+ "mcpQuickStartStep2": "stdio போக்குவரத்து வழியாக இணைக்க உங்கள் MCP கிளையண்டை உள்ளமைக்கவும்.",
+ "mcpQuickStartStep3": "`omniroute_get_health` மற்றும் `omniroute_list_combos` போன்ற கருவுகளை அழைக்கவும்.",
+ "a2aQuickStartTitle": "A2A விரைவுத் தொடக்கம்",
+ "a2aQuickStartStep1": "`/.well-known/agent.json` இல் முகவர் அட்டையைக் கண்டறியவும்.",
+ "a2aQuickStartStep2": "`message/send` அல்லது `message/stream` ஐப் பயன்படுத்தி `POST /a2a` க்கு JSON-RPC கோரிக்கைகளை அனுப்பவும்.",
+ "a2aQuickStartStep3": "`tasks/get` மற்றும் `tasks/cancel` ஐப் பயன்படுத்தி பணிகளைக் கண்காணித்து கட்டுப்படுத்தவும்.",
+ "completionsLegacy": "நிறைவாக்கங்கள் (மரபுவழி)",
+ "completionsLegacyDesc": "மரபுவழி OpenAI உரை நிறைவாக்கங்கள் — prompt சரம் மற்றும் messages அணிவரிசை வடிவங்கள் இரண்டையும் ஏற்கிறது",
"messagesApi": "செய்திகள்",
"messagesApiDesc": "Claude-இணக்கமான வழங்குநர்களுக்கான Native Anthropic Messages API வடிவம்",
"imageEdits": "படத் திருத்தங்கள்",
@@ -4018,41 +4022,41 @@
"batchApiDesc": "பெரிய அளவிலான கோரிக்கைகளை ஒத்திசைவற்ற முறையில் செயலாக்கவும் (OpenAI- இணக்கமானது)",
"filesApi": "கோப்புகள் API",
"filesApiDesc": "தொகுதி செயலாக்கத்திற்கான கோப்புகளைப் பதிவேற்றி நிர்வகிக்கவும்",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "காணொளி உருவாக்கம்",
+ "videoDesc": "ComfyUI மற்றும் Stable Video Diffusion போன்ற AI மாதிரிகளைப் பயன்படுத்தி காணொளிகளை உருவாக்கவும்.",
+ "tailscaleRequestFailed": "Tailscale நிலையை ஏற்ற முடியவில்லை",
+ "tailscaleEnableFailed": "Tailscale Funnel ஐ இயக்க முடியவில்லை",
+ "tailscaleWaitingForLogin": "திறக்கப்பட்ட உலாவித் தாவலில் Tailscale உள்நுழைவை நிறைவு செய்யவும். OmniRoute தானாகவே மீண்டும் முயற்சிக்கும்.",
+ "tailscaleLoginTimedOut": "Tailscale உள்நுழைவுக்காகக் காத்திருந்த நேரம் முடிந்தது",
+ "tailscaleWaitingForFunnel": "திறக்கப்பட்ட உலாவித் தாவலில் இந்தச் சாதனத்திற்கான Funnel ஐ இயக்கவும். OmniRoute தொடர்ந்து நிலையைச் சரிபார்க்கும்.",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel இயக்கப்படுவதற்காகக் காத்திருந்த நேரம் முடிந்தது",
+ "tailscaleStarted": "Tailscale Funnel இயக்கப்பட்டது",
+ "tailscaleDisableFailed": "Tailscale Funnel ஐ முடக்க முடியவில்லை",
+ "tailscaleStopped": "Tailscale Funnel முடக்கப்பட்டது",
+ "tailscaleInstallFailed": "Tailscale ஐ நிறுவ முடியவில்லை",
+ "tailscaleInstallProgress": "செயல்படுகிறது...",
+ "tailscaleInstalled": "Tailscale வெற்றிகரமாக நிறுவப்பட்டது",
+ "tailscaleRunning": "இயங்குகிறது",
+ "tailscaleNeedsLogin": "உள்நுழைவு தேவை",
+ "tailscaleStoppedState": "நிறுத்தப்பட்டது",
+ "tailscaleNotInstalled": "நிறுவப்படவில்லை",
+ "tailscaleUnsupported": "ஆதரிக்கப்படவில்லை",
+ "tailscaleError": "பிழை",
+ "tailscaleDisable": "Funnel ஐ நிறுத்து",
+ "tailscaleInstallAndEnable": "நிறுவி இயக்கு",
+ "tailscaleLoginAndEnable": "உள்நுழைந்து இயக்கு",
+ "tailscaleEnable": "Funnel ஐ இயக்கு",
+ "tailscaleUrlNotice": "உங்கள் Tailscale .ts.net முகவரியைப் பயன்படுத்துகிறது. முதல் பயன்பாட்டின்போது உள்நுழைவும் Funnel ஒப்புதலும் தேவைப்படலாம்.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
- "tailscaleSudoLabel": "Sudo Password (required on macOS/Linux)",
+ "tailscaleNeedsLoginHint": "இந்தக் கணினியை Tailscale உடன் அங்கீகரித்து, பின்னர் Funnel ஐ இயக்கவும்.",
+ "tailscaleBinaryPath": "இருமக் கோப்பு: {path}",
+ "tailscaleLastError": "கடைசிப் பிழை: {error}",
+ "tailscaleInstallTitle": "Tailscale-ஐ நிறுவு",
+ "tailscaleInstallIntro": "இந்தக் கணினியில் Tailscale-ஐ நிறுவி, Funnel-ஐ இயக்க OmniRoute-ஐத் தயார்படுத்துகிறது.",
+ "tailscaleInstallPasswordHint": "macOS மற்றும் Linux-இல், தொகுப்பை நிறுவவும் daemon-ஐத் தொடங்கவும் sudo தேவைப்படலாம்.",
+ "tailscaleSudoPlaceholder": "விருப்பத்திற்குரிய sudo கடவுச்சொல்",
+ "tailscaleInstalling": "நிறுவப்படுகிறது",
+ "tailscaleSudoLabel": "Sudo கடவுச்சொல் (macOS/Linux-இல் தேவை)",
"ngrokTitle": "ngrok சுரங்கப்பாதை",
"ngrokRunning": "ஓடுகிறது",
"ngrokStarting": "தொடங்குகிறது",
@@ -4085,9 +4089,9 @@
"statusRunning": "இயங்குகிறது",
"tunnels": "டன்னல்கள்",
"activeTunnelCount": "{active} / {total} செயலில் உள்ளது",
- "badgeLocal": "LOCAL",
- "badgeProtected": "PROTECTED",
- "badgeInternal": "INTERNAL",
+ "badgeLocal": "உள்ளூர்",
+ "badgeProtected": "பாதுகாக்கப்பட்டது",
+ "badgeInternal": "உள்ளமைப்பு",
"catalogLoadFailed": "HTTP {status} உடன் API பட்டியல் கோரிக்கை தோல்வியடைந்தது",
"catalogLoadFailedGeneric": "API பட்டியலை ஏற்ற முடியவில்லை",
"apiKeysLoadFailed": "API விசைகளை ஏற்ற முடியவில்லை ({status})",
@@ -4104,7 +4108,7 @@
"all": "அனைத்தும்",
"more": "+{count} மேலும்",
"showInternalTooltip": "உள் வழிகளைக் காட்டவும் அல்லது மறைக்கவும் (இயல்பாக மறைக்கப்பட்டிருக்கும்)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Bearer அங்கீகாரம்",
"requestBody": "கோரிக்கை உள்ளடக்கம்",
"close": "மூடவும்",
"tryIt": "முயற்சித்துப் பார்க்கவும்",
@@ -4140,9 +4144,9 @@
"tierPublic": "பொதுவானது",
"hideInternal": "உள் இருப்பவற்றை மறை",
"showInternal": "உள் இருப்பவற்றைக் காட்டு",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "தனிப்பயன் கணினித் தூண்டுரை",
+ "customSystemPromptDescription": "ஒவ்வொரு மாதிரிக் கோரிக்கையிலும் தனிப்பயன் கணினித் தூண்டுரையைச் சேர்",
+ "customSystemPromptPlaceholder": "எ.கா. எப்போதும் கடற்கொள்ளையர் பாணியில் பதிலளி...",
"obsidianEnterToken": "தயவுசெய்து ஒரு Obsidian API டோக்கனை உள்ளிடவும்",
"obsidianConnectFailed": "இணைக்க முடியவில்லை",
"obsidianConnectionFailed": "இணைப்பு தோல்வியடைந்தது",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "டோக்கன் கட்டமைக்கப்பட்டுள்ளது. Notion கருவிகள் MCP மூலம் கிடைக்கின்றன."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "இறுதிப்புள்ளி ப்ராக்ஸி",
+ "tabApiEndpoints": "API இறுதிப்புள்ளிகள்",
+ "apiEndpointsTitle": "API இறுதிப்புள்ளிகள்",
+ "apiEndpointsDescription": "பிற பயன்பாடுகள் மற்றும் சேவைகளால் பயன்படுத்தக்கூடிய பின்தள API இறுதிப்புள்ளிகள். ஆவணங்கள் மற்றும் சோதனை வசதிகளுடன் கிடைக்கும் அனைத்து REST API-களும் இந்தப் பிரிவில் பட்டியலிடப்படும்.",
+ "comingSoon": "விரைவில் வருகிறது",
+ "plannedFeatures": "திட்டமிடப்பட்ட அம்சங்கள்",
+ "featureRestApi": "ஊடாடும் ஆவணங்களுடன் கூடிய REST API இறுதிப்புள்ளிப் பட்டியல்",
+ "featureWebhooks": "Webhook உள்ளமைவு மற்றும் நிகழ்வுச் சந்தாக்கள்",
+ "featureSwagger": "OpenAPI / Swagger விவரக்குறிப்பின் தானியங்கு உருவாக்கம்",
+ "featureAuth": "ஒவ்வொரு இறுதிப்புள்ளிக்குமான API விசை மற்றும் OAuth வரம்பு மேலாண்மை"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP கட்டுப்பாட்டுப் பலகம் ஏற்றப்படுகிறது...",
+ "activate": "செயல்படுத்து",
+ "deactivate": "செயலிழக்கச் செய்",
+ "confirmSwitchCombo": "\"{combo}\" சேர்க்கையை {action}வதை உறுதிப்படுத்துகிறீர்களா?",
+ "switchComboFailed": "சேர்க்கையின் நிலையை மாற்ற முடியவில்லை.",
+ "switchComboSuccess": "\"{combo}\" சேர்க்கை புதுப்பிக்கப்பட்டது.",
+ "confirmApplyProfile": "\"{profile}\" மீள்திறன் சுயவிவரத்தைப் பயன்படுத்தவா?",
+ "applyProfileFailed": "மீள்திறன் சுயவிவரத்தைப் பயன்படுத்த முடியவில்லை.",
+ "applyProfileSuccess": "\"{profile}\" சுயவிவரம் பயன்படுத்தப்பட்டது.",
+ "confirmResetBreakers": "அனைத்து சர்க்யூட் பிரேக்கர்களையும் மீட்டமைக்கவா?",
+ "resetBreakersFailed": "சர்க்யூட் பிரேக்கர்களை மீட்டமைக்க முடியவில்லை.",
+ "resetBreakersSuccess": "சர்க்யூட் பிரேக்கர்கள் மீட்டமைக்கப்பட்டன.",
+ "processStatus": "செயல்முறை நிலை",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} ஐ முடக்கு",
@@ -4233,119 +4237,119 @@
"mcpStep2": "stdio போக்குவரத்து வழியாக இணைக்க உங்கள் MCP கிளையண்டைக் கட்டமைக்கவும்.",
"mcpStep3": "{code1} மற்றும் {code2} போன்ற கருவிகளை அழைக்கவும்.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "அமர்வு இயங்குநேரம்",
+ "lastHeartbeat": "கடைசி இதயத்துடிப்பு",
+ "activity24h": "செயல்பாடு (24மணி)",
+ "totalCalls": "மொத்த அழைப்புகள்",
+ "successRate": "வெற்றி விகிதம்",
+ "avgLatency": "சராசரி தாமதம்",
+ "topTools": "முன்னணி கருவிகள்",
+ "noToolCalls24h": "கடந்த 24 மணிநேரத்தில் கருவி அழைப்புகள் எதுவும் இல்லை.",
+ "runtimeDetails": "இயக்கநேர விவரங்கள்",
+ "transport": "பரிமாற்ற முறை",
+ "scopesEnforced": "அமல்படுத்தப்பட்ட அணுகல் வரம்புகள்",
+ "yes": "ஆம்",
+ "no": "இல்லை",
+ "lastCall": "கடைசி அழைப்பு",
+ "heartbeatPath": "இதயத்துடிப்புப் பாதை",
+ "operationalControls": "செயல்பாட்டுக் கட்டுப்பாடுகள்",
+ "switchCombo": "சேர்க்கையை மாற்று",
+ "inactive": "செயலற்றது",
+ "active": "செயலில் உள்ளது",
+ "activateCombo": "சேர்க்கையைச் செயல்படுத்து",
+ "deactivateCombo": "சேர்க்கையைச் செயலிழக்கச் செய்",
+ "applyResilienceProfile": "மீண்டெழும் சுயவிவரத்தைப் பயன்படுத்து",
+ "profileAggressive": "தீவிரமானது",
+ "profileBalanced": "சமநிலையானது",
+ "profileConservative": "எச்சரிக்கையானது",
+ "applyProfile": "சுயவிவரத்தைப் பயன்படுத்து",
+ "resetCircuitBreakers": "சுற்றுத் துண்டிப்பான்களை மீட்டமை",
+ "resetCircuitBreakersHelp": "வழங்குநர்களுக்கான தற்போதைய துண்டிப்பான் நிலை மற்றும் தோல்வி எண்ணிக்கைகளை அழிக்கிறது.",
+ "resetAllBreakers": "அனைத்து துண்டிப்பான்களையும் மீட்டமை",
+ "toolsAndScopes": "கருவிகளும் அணுகல் வரம்புகளும்",
+ "tableTool": "கருவி",
+ "tableScopes": "அணுகல் வரம்புகள்",
+ "tablePhase": "கட்டம்",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "தணிக்கைப் பதிவு",
+ "auditSummary": "அழைப்புகள்: {total} | {totalPages} பக்கங்களில் பக்கம் {page}",
+ "allTools": "அனைத்துக் கருவிகளும்",
+ "allResults": "அனைத்து முடிவுகளும்",
+ "success": "வெற்றி",
+ "failure": "தோல்வி",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "தணிக்கைப் பதிவுகள் ஏற்றப்படுகின்றன...",
+ "noAuditEntriesForFilters": "தற்போதைய வடிப்பான்களுக்கான தணிக்கைப் பதிவுகள் எதுவும் கிடைக்கவில்லை.",
+ "tableTimestamp": "நேரமுத்திரை",
+ "tableDuration": "கால அளவு",
+ "tableResult": "முடிவு",
+ "tableApiKey": "API விசை",
+ "failed": "தோல்வியடைந்தது",
+ "previous": "முந்தையது",
+ "next": "அடுத்தது",
+ "apiKeyId": "API விசை ஐடி",
+ "offset": "தொடக்க விலக்கம்",
+ "limit": "வரம்பு",
+ "tool": "கருவி"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A கட்டுப்பாட்டுப் பலகை ஏற்றப்படுகிறது...",
+ "confirmCancelTask": "{taskId} பணியை ரத்துசெய்யவா?",
+ "cancelTaskFailed": "பணியை ரத்துசெய்ய முடியவில்லை.",
+ "cancelTaskSuccess": "{taskId} பணி ரத்துசெய்யப்பட்டது.",
+ "smokeSendFailed": "message/send அடிப்படைச் சோதனை தோல்வியடைந்தது.",
+ "smokeSendSuccessWithTask": "message/send வெற்றிகரமாக முடிந்தது (பணி {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream அடிப்படைச் சோதனை தோல்வியடைந்தது.",
+ "smokeStreamSuccessWithTask": "message/stream வெற்றிகரமாக முடிந்தது (பணி {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "பணி ஐடி இல்லாமல் message/stream முடிந்தது.",
+ "health": "நிலை",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "மொத்தப் பணிகள்",
+ "activeStreams": "செயலில் உள்ள ஸ்ட்ரீம்கள்",
+ "lastTask": "கடைசிப் பணி",
+ "taskStateOverview": "பணி நிலை மேலோட்டம்",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "சமர்ப்பிக்கப்பட்டது",
+ "working": "செயல்பாட்டில் உள்ளது",
+ "completed": "நிறைவடைந்தது",
+ "failed": "தோல்வியடைந்தது",
+ "cancelled": "ரத்துசெய்யப்பட்டது"
},
- "agentCard": "Agent card",
+ "agentCard": "முகவர் அட்டை",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "பதிப்பு",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "திறன்கள்",
+ "agentCardNotAvailable": "முகவர் அட்டை கிடைக்கவில்லை.",
+ "quickValidation": "விரைவுச் சரிபார்ப்பு",
+ "quickValidationDescription": "நேரடி `/a2a` முனைப்புள்ளி வழியாக அடிப்படைச் சோதனை அழைப்புகளைச் செயல்படுத்துகிறது.",
+ "runMessageSend": "message/send-ஐ இயக்குக",
+ "runMessageStream": "message/stream-ஐ இயக்குக",
+ "taskManagement": "பணி மேலாண்மை",
+ "taskSummary": "{total} பணிகள் | பக்கம் {page} / {totalPages}",
+ "allStates": "அனைத்தும்",
+ "allSkills": "அனைத்துத் திறன்களும்",
+ "loadingTasks": "பணிகள் ஏற்றப்படுகின்றன...",
+ "noTasksForFilters": "தற்போதைய வடிகட்டிகளுக்குப் பொருந்தும் பணிகள் எதுவும் இல்லை.",
+ "tableTask": "பணி",
+ "tableSkill": "திறன்",
+ "tableState": "நிலை",
+ "tableUpdated": "புதுப்பிக்கப்பட்டது",
+ "tableActions": "செயல்கள்",
+ "view": "பார்க்க",
+ "cancel": "ரத்துசெய்",
+ "previous": "முந்தையது",
+ "next": "அடுத்தது",
+ "taskDetail": "பணி விவரம்",
+ "close": "மூடு",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "நிகழ்வுகள்",
+ "artifacts": "கலைப்பொருட்கள்",
+ "tablePhase": "அட்டவணைக் கட்டம்",
+ "offset": "தொடக்க இடம்",
+ "limit": "வரம்பு",
+ "skill": "திறன்",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "செய்தி/அனுப்பு",
"rpcMethodStream": "செய்தி/ஸ்ட்ரீம்",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "செயல்கள்",
+ "addMemory": "நினைவகத்தைச் சேர்",
+ "allTypes": "அனைத்து வகைகளும்",
"cancel": "ரத்து செய்",
"checkHealth": "ஆரோக்கியத்தை சரிபார்க்கவும்",
"checkingHealth": "சரிபார்க்கிறது…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "இது எவ்வாறு செயல்படுகிறது",
"howWorksContent": "1. தானியங்கி பிரித்தெடுத்தல்: ஒவ்வொரு பதிலின் முடிவிலும், உண்மைகளும் நிகழ்வுகளும் கண்டறியப்பட்டு தானாகவே சேமிக்கப்படும்.\n2. மீட்டெடுப்பு: ஒவ்வொரு பதிலுக்கும் முன், மிகவும் பொருத்தமான நினைவுகள் FTS5 (துல்லியமான), வெக்டார் (சொற்பொருள்) அல்லது கலப்பின RRF வழியாகத் தேடப்படும்.\n3. உட்செலுத்துதல்: பதிலின் தரத்தை மேம்படுத்த பொருத்தமான நினைவுகள் உதவியாளர் சூழலில் உட்செலுத்தப்படும்.\n4. மேலாண்மை: பழைய நினைவுகளைப் பார்க்க, திருத்த, ஏற்றுமதி செய்ய மற்றும் சுருக்க இந்தப் பக்கத்தைப் பயன்படுத்தவும்."
},
- "content": "Content",
+ "content": "உள்ளடக்கம்",
"contentPlaceholder": "நினைவில் கொள்ள வேண்டிய மதிப்பு அல்லது JSON உள்ளடக்கம்",
- "created": "Created",
- "delete": "Delete",
+ "created": "உருவாக்கப்பட்டது",
+ "delete": "நீக்கு",
"deleteConfirmDesc": "இந்தச் செயலை மாற்ற முடியாது. நினைவகம் நிரந்தரமாக நீக்கப்படும்.",
"deleteConfirmTitle": "நினைவகத்தை நீக்கவா?",
- "description": "View and manage stored memory entries",
+ "description": "சேமிக்கப்பட்ட நினைவகப் பதிவுகளைப் பார்த்து நிர்வகிக்கவும்",
"editMemory": "நினைவகத்தைத் திருத்து",
"editModal": {
"title": "நினைவகத்தைத் திருத்து",
@@ -4440,20 +4444,20 @@
"configureCta": "கட்டமைக்கவும்",
"vectorStoreInstallHint": "வெக்டர் தேடலை இயக்க: npm install sqlite-vec (இயற்கையான Node.js தேவை, WASM அல்ல), பின்னர் மறுதொடக்கம் செய்யவும்."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "நிகழ்வுசார்",
+ "export": "ஏற்றுமதி",
+ "factual": "உண்மைசார்",
"healthUnknown": "உடல்நலம் தெரியவில்லை",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "வெற்றி விகிதம்",
+ "import": "இறக்குமதி",
"importError": "கோப்பை இறக்குமதி செய்ய முடியவில்லை",
"importResult": "{imported} இறக்குமதி செய்யப்பட்டது, {skipped} தவிர்க்கப்பட்டது",
- "key": "Key",
+ "key": "திறவுகோல்",
"keyPlaceholder": "எ.கா. user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "நினைவுகள்",
"next": "அடுத்து",
- "noMemories": "No memories found",
+ "noMemories": "நினைவுகள் எதுவும் காணப்படவில்லை",
"pageInfo": "பக்கம் {page} / {totalPages} ({total} மொத்தம்)",
"pipelineError": "குழாய் பிழை",
"pipelineOk": "பைப்லைன் சரி ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "மாதிரிக்காட்சியைப் பெற முடியவில்லை"
},
"previous": "முந்தைய",
- "procedural": "Procedural",
+ "procedural": "செயல்முறை சார்ந்தவை",
"qdrant": {
"title": "Qdrant (வெக்டர் சேமிப்பகம் அடுக்கு 2)",
"description": "அளவிடக்கூடிய சொற்பொருள் தேடலுக்கான விருப்பத்தேர்வு Qdrant ஒருங்கிணைப்பு",
@@ -4530,8 +4534,8 @@
},
"save": "சேமிக்கவும்",
"saving": "சேமிக்கிறது...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "நினைவுகளைத் தேடுங்கள்...",
+ "semantic": "பொருள்சார்",
"summarize": {
"title": "பழைய நினைவுகளைச் சுருக்கு",
"noCandidates": "சுருக்குவதற்குத் தகுதியான நினைவுகள் எதுவும் இல்லை (நிபந்தனை: >30 நாட்கள் பழமையானது).",
@@ -4543,8 +4547,8 @@
"playground": "சோதனைக்களம்",
"engine": "இன்ஜின்"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "நினைவக மேலாண்மை",
+ "tokensUsed": "பயன்படுத்தப்பட்ட டோக்கன்கள்",
"tooltip": {
"totalEntries": "இந்த API key-க்காக சேமிக்கப்பட்ட மொத்த நினைவுகள்",
"tokensUsed": "செயலில் உள்ள நினைவுகளால் ஆக்கிரமிக்கப்பட்ட மதிப்பிடப்பட்ட மொத்த டோக்கன்கள்",
@@ -4554,15 +4558,15 @@
"procedural": "உதவியாளர் பின்பற்ற வேண்டிய நடைமுறைகள், பணிப்பாய்வுகள் மற்றும் வழிமுறைகள்",
"semantic": "கருத்துகள், விருப்பத்தேர்வுகள் மற்றும் டொமைன் அறிவு"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "மொத்தப் பதிவுகள்",
+ "type": "வகை",
"memoryEnabled": "நினைவகம் இயக்கப்பட்டது"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "திறன்கள்",
+ "description": "AI திறன்களை நிர்வகித்து கண்காணிக்கவும்",
+ "skillsTab": "திறன்கள்",
+ "executionsTab": "செயலாக்கங்கள்",
"selectSkillToInspect": "ஆய்வு செய்ய இடதுபுறத்தில் உள்ள ஒரு திறனைத் தேர்ந்தெடுக்கவும்.",
"schemaTab": "ஸ்கீமா",
"handlerTab": "ஹேண்ட்லர்",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "சோதனையை இயக்கு (பிளேஸ்ஹோல்டர்)",
"setModeAria": "பயன்முறையை {mode} என அமை",
"uninstallSkill": "திறனை நிறுவல் நீக்கு",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "சோதனைச் சூழல்",
+ "loading": "திறன்கள் ஏற்றப்படுகின்றன...",
+ "noSkills": "திறன்கள் எதுவும் காணப்படவில்லை",
+ "noExecutions": "செயலாக்கங்கள் எதுவும் காணப்படவில்லை",
+ "enabled": "இயக்கப்பட்டது",
+ "disabled": "முடக்கப்பட்டது",
"delete": "நீக்கு",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "பதிப்பு",
+ "tableDescription": "விளக்கம்",
+ "skill": "திறன்",
+ "status": "நிலை",
+ "duration": "கால அளவு",
+ "time": "நேரம்",
+ "sandboxConfig": "Sandbox உள்ளமைவு",
+ "cpuLimit": "CPU வரம்பு",
+ "cpuLimitDesc": "ஒரு திறனுக்கான அதிகபட்ச செயலாக்க நேரம்",
+ "memoryLimit": "நினைவக வரம்பு",
+ "memoryLimitDesc": "அதிகபட்ச நினைவக ஒதுக்கீடு",
+ "timeout": "காலக்கெடு",
+ "timeoutDesc": "பதிலுக்கான அதிகபட்ச காத்திருப்பு நேரம்",
+ "networkAccess": "பிணைய அணுகல்",
+ "networkAccessDesc": "வெளிச்செல்லும் பிணையக் கோரிக்கைகளை அனுமதிக்கவும்",
+ "mode": "பயன்முறை",
"q": "Q",
"filterSkillsPlaceholder": "பெயர், விளக்கம் அல்லது குறிச்சொல் மூலம் திறன்களை வடிகட்டவும்",
"allModes": "அனைத்து முறைகள்",
@@ -4638,90 +4642,90 @@
"installSkill": "திறமையை நிறுவவும்"
},
"health": {
- "title": "System Health",
- "description": "Real-time monitoring of your OmniRoute instance",
- "healthy": "Healthy",
- "degraded": "Degraded",
- "down": "Down",
- "uptime": "Uptime",
- "memory": "Memory",
- "memoryRss": "Memory (RSS)",
- "heap": "Heap",
+ "title": "கணினி நலநிலை",
+ "description": "உங்கள் OmniRoute நிகழ்வின் நிகழ்நேரக் கண்காணிப்பு",
+ "healthy": "ஆரோக்கியமானது",
+ "degraded": "சீர்குன்றியது",
+ "down": "செயலிழந்துள்ளது",
+ "uptime": "இயங்குநேரம்",
+ "memory": "நினைவகம்",
+ "memoryRss": "நினைவகம் (RSS)",
+ "heap": "ஹீப்",
"cpu": "CPU",
- "database": "Database",
- "version": "Version",
- "lastCheck": "Last Check",
- "providerHealth": "Provider Health",
- "systemMetrics": "System Metrics",
- "tokenHealth": "Token Health",
- "refreshAll": "Refresh All",
- "checkNow": "Check Now",
- "loadingHealth": "Loading health data...",
- "failedToLoad": "Failed to load health data: {error}",
- "retry": "Retry",
- "allOperational": "All systems operational",
- "issuesDetected": "System issues detected",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
- "updatedAt": "Updated {time}",
- "latency": "Latency",
+ "database": "தரவுத்தளம்",
+ "version": "பதிப்பு",
+ "lastCheck": "கடைசிச் சரிபார்ப்பு",
+ "providerHealth": "வழங்குநர் நிலை",
+ "systemMetrics": "கணினி அளவீடுகள்",
+ "tokenHealth": "டோக்கன் நிலை",
+ "refreshAll": "அனைத்தையும் புதுப்பி",
+ "checkNow": "இப்போது சரிபார்",
+ "loadingHealth": "நிலைத் தரவு ஏற்றப்படுகிறது...",
+ "failedToLoad": "நிலைத் தரவை ஏற்ற முடியவில்லை: {error}",
+ "retry": "மீண்டும் முயல்க",
+ "allOperational": "அனைத்து அமைப்புகளும் செயல்பாட்டில் உள்ளன",
+ "issuesDetected": "கணினிச் சிக்கல்கள் கண்டறியப்பட்டன",
+ "healthVerdictReady": "OmniRoute தயாராக உள்ளது",
+ "healthVerdictActionRequired": "முழுமையான செயல்பாட்டை மீட்டமைக்க நடவடிக்கை தேவை",
+ "healthVerdictCoolingDown": "சமீபத்திய மாற்றங்களுக்குப் பிறகு தணிவடைகிறது",
+ "healthSubtitle": "கணினி நிலைச் சரிபார்ப்பு",
+ "advancedDiagnosticsTitle": "மேம்பட்ட நோயறிதல்",
+ "hide": "மறை",
+ "show": "காட்டு",
+ "updatedAt": "{time} அன்று புதுப்பிக்கப்பட்டது",
+ "latency": "தாமதம்",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
"millisecondsShort": "{value}ms",
"notAvailable": "—",
- "totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "promptCache": "Prompt Cache",
- "entries": "Entries",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "signatureCache": "Signature Cache",
- "signatureDefaults": "Defaults",
- "signatureTool": "Tool",
- "signatureFamily": "Family",
- "signatureSession": "Session",
- "recovering": "Recovering",
- "noCBData": "No circuit breaker data available. Make some requests first.",
- "providerHealthStatusAria": "Provider health status",
- "issuesLabel": "Issues Detected",
- "operational": "Operational",
- "providers": "Providers",
- "configuredProvidersLabel": "Configured in dashboard",
- "configuredProvidersHint": "Providers with credentials saved in /dashboard/providers, regardless of runtime state.",
- "activeProviders": "{count} active",
- "activeProvidersHint": "Configured providers currently enabled for routing requests.",
- "monitoredProviders": "{count} monitored",
- "monitoredProvidersHint": "Providers currently tracked by circuit-breaker health monitors.",
- "healthyCount": "{count} healthy",
+ "totalRequests": "மொத்தக் கோரிக்கைகள்",
+ "noDataYet": "இன்னும் தரவு இல்லை",
+ "promptCache": "ப்ராம்ப்ட் தற்காலிகச் சேமிப்பு",
+ "entries": "உள்ளீடுகள்",
+ "hitRate": "ஹிட் விகிதம்",
+ "hitsMisses": "ஹிட்கள் / மிஸ்கள்",
+ "signatureCache": "கையொப்பத் தற்காலிகச் சேமிப்பு",
+ "signatureDefaults": "இயல்புநிலைகள்",
+ "signatureTool": "கருவி",
+ "signatureFamily": "குடும்பம்",
+ "signatureSession": "அமர்வு",
+ "recovering": "மீண்டு வருகிறது",
+ "noCBData": "சர்க்யூட் பிரேக்கர் தரவு எதுவும் கிடைக்கவில்லை. முதலில் சில கோரிக்கைகளைச் செய்யவும்.",
+ "providerHealthStatusAria": "வழங்குநர் செயல்நிலை",
+ "issuesLabel": "சிக்கல்கள் கண்டறியப்பட்டன",
+ "operational": "செயல்பாட்டில் உள்ளது",
+ "providers": "வழங்குநர்கள்",
+ "configuredProvidersLabel": "டாஷ்போர்டில் உள்ளமைக்கப்பட்டது",
+ "configuredProvidersHint": "இயக்கநிலையைப் பொருட்படுத்தாமல், /dashboard/providers இல் நற்சான்றுகள் சேமிக்கப்பட்டுள்ள வழங்குநர்கள்.",
+ "activeProviders": "{count} செயலில்",
+ "activeProvidersHint": "வழிப்படுத்தல் கோரிக்கைகளுக்காக தற்போது இயக்கப்பட்டுள்ள உள்ளமைக்கப்பட்ட வழங்குநர்கள்.",
+ "monitoredProviders": "{count} கண்காணிக்கப்படுகின்றன",
+ "monitoredProvidersHint": "சர்க்யூட்-பிரேக்கர் செயல்நிலைக் கண்காணிப்பான்களால் தற்போது கண்காணிக்கப்படும் வழங்குநர்கள்.",
+ "healthyCount": "{count} ஆரோக்கியமாக உள்ளன",
"nodeVersion": "Node {version}",
- "failures": "{count} failure",
- "failuresPlural": "{count} failures",
- "lastFailure": "Last",
- "rateLimitStatus": "Rate Limit Status",
- "activeLimiters": "{count} active limiter",
- "activeLimitersPlural": "{count} active limiters",
- "queued": "Queued",
- "queuedCount": "{count} queued",
- "running": "running",
- "runningCount": "{count} running",
+ "failures": "{count} தோல்வி",
+ "failuresPlural": "{count} தோல்விகள்",
+ "lastFailure": "கடைசியாக",
+ "rateLimitStatus": "விகித வரம்பு நிலை",
+ "activeLimiters": "{count} செயலில் உள்ள வரம்பி",
+ "activeLimitersPlural": "{count} செயலில் உள்ள வரம்பிகள்",
+ "queued": "வரிசையில் உள்ளவை",
+ "queuedCount": "{count} வரிசையில் உள்ளன",
+ "running": "இயங்குகிறது",
+ "runningCount": "{count} இயங்குகின்றன",
"ok": "OK",
- "activeLockouts": "Active Lockouts",
- "resetConfirm": "Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.",
- "resetAllTitle": "Reset all circuit breakers to healthy state",
- "resetting": "Resetting...",
- "resetAll": "Reset All",
- "until": "Until {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "activeLockouts": "செயலில் உள்ள பூட்டல்கள்",
+ "resetConfirm": "அனைத்து சர்க்யூட் பிரேக்கர்களையும் ஆரோக்கியமான நிலைக்கு மீட்டமைக்கவா? இது அனைத்து தோல்வி எண்ணிக்கைகளையும் அழித்து, அனைத்து வழங்குநர்களையும் செயல்பாட்டு நிலைக்கு மீட்டெடுக்கும்.",
+ "resetAllTitle": "அனைத்து சர்க்யூட் பிரேக்கர்களையும் ஆரோக்கியமான நிலைக்கு மீட்டமை",
+ "resetting": "மீட்டமைக்கப்படுகிறது...",
+ "resetAll": "அனைத்தையும் மீட்டமை",
+ "until": "{time} வரை",
+ "limitExhausted": "தீர்ந்துவிட்டது",
+ "learnedFromHeaders": "தலைப்புகளிலிருந்து அறியப்பட்டது",
+ "remainingOfLimit": "{remaining}/{limit} மீதமுள்ளது",
+ "throttleStatus": "வேகக் கட்டுப்பாடு: {value}",
+ "lastHeaderUpdate": "தலைப்பு புதுப்பிப்பு: {age}",
"databaseHealth": "தரவுத்தள ஆரோக்கியம்",
"databaseHealthDescription": "பழைய quota/domain வரிசைகள் மற்றும் உடைந்த combo குறிப்புகளைக் கண்டறிந்து சரிசெய்யவும்.",
"status": "நிலை",
@@ -4847,65 +4851,65 @@
"noTargets": "இலக்கு வழிகள் எதுவும் கட்டமைக்கப்படவில்லை."
},
"limits": {
- "title": "Limits & Quotas",
- "rateLimit": "Rate Limit",
- "remaining": "Remaining",
- "requestsPerMinute": "Requests/min",
- "tokensPerMinute": "Tokens/min",
- "dailyLimit": "Daily Limit"
+ "title": "வரம்புகள் மற்றும் ஒதுக்கீடுகள்",
+ "rateLimit": "விகித வரம்பு",
+ "remaining": "மீதமுள்ளது",
+ "requestsPerMinute": "கோரிக்கைகள்/நிமிடம்",
+ "tokensPerMinute": "டோக்கன்கள்/நிமிடம்",
+ "dailyLimit": "தினசரி வரம்பு"
},
"logs": {
- "title": "Logs",
- "requestLogs": "Request Logs",
- "proxyLogs": "Proxy Logs",
- "auditLog": "Audit Log",
+ "title": "பதிவுகள்",
+ "requestLogs": "கோரிக்கைப் பதிவுகள்",
+ "proxyLogs": "ப்ராக்ஸி பதிவுகள்",
+ "auditLog": "தணிக்கைப் பதிவு",
"console": "Console",
- "auditLogDesc": "Administrative actions and security events",
- "loading": "Loading...",
- "refresh": "Refresh",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
- "showing": "Showing {count} entries (offset {offset})",
- "search": "Search",
- "timestamp": "Timestamp",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "details": "Details",
- "ipAddress": "IP Address",
+ "auditLogDesc": "நிர்வாகச் செயல்கள் மற்றும் பாதுகாப்பு நிகழ்வுகள்",
+ "loading": "ஏற்றுகிறது...",
+ "refresh": "புதுப்பி",
+ "filterByAction": "செயலின்படி வடிகட்டு...",
+ "filterByActor": "செயற்பாட்டாளரின்படி வடிகட்டு...",
+ "filterEntriesAria": "தணிக்கைப் பதிவு உள்ளீடுகளை வடிகட்டு",
+ "filterByActionTypeAria": "செயல் வகையின்படி வடிகட்டு",
+ "filterByActorAria": "செயற்பாட்டாளரின்படி வடிகட்டு",
+ "refreshAuditLogAria": "தணிக்கைப் பதிவைப் புதுப்பி",
+ "tableAria": "தணிக்கைப் பதிவு உள்ளீடுகள்",
+ "failedFetchAuditLog": "தணிக்கைப் பதிவைப் பெற முடியவில்லை",
+ "showing": "{count} உள்ளீடுகள் காட்டப்படுகின்றன (தொடக்க இடம் {offset})",
+ "search": "தேடு",
+ "timestamp": "நேர முத்திரை",
+ "action": "செயல்",
+ "actor": "செயற்பாட்டாளர்",
+ "target": "இலக்கு",
+ "details": "விவரங்கள்",
+ "ipAddress": "IP முகவரி",
"notAvailable": "—",
- "noEntries": "No audit log entries found",
- "previous": "Previous",
- "next": "Next",
- "providerWarningTitle": "Provider Warnings",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
- "providerWarningDesc": "Some providers returned warnings during request processing",
+ "noEntries": "தணிக்கைப் பதிவு உள்ளீடுகள் எதுவும் கிடைக்கவில்லை",
+ "previous": "முந்தையது",
+ "next": "அடுத்தது",
+ "providerWarningTitle": "வழங்குநர் எச்சரிக்கைகள்",
+ "viewDetails": "விவரங்களைக் காண்க",
+ "eventMetadata": "நிகழ்வு மெட்டாடேட்டா",
+ "eventPayload": "நிகழ்வு பேலோடு",
+ "requestId": "கோரிக்கை ID",
+ "providerWarningDesc": "கோரிக்கைச் செயலாக்கத்தின்போது சில வழங்குநர்கள் எச்சரிக்கைகளை வழங்கினர்",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "offset": "தொடக்க இடம்",
+ "limit": "வரம்பு",
+ "status": "நிலை",
+ "resourceType": "வள வகை",
+ "totalEntries": "மொத்த உள்ளீடுகள்",
+ "tab": "தாவல்",
+ "auditModalSubtitle": "நிகழ்வு விவரங்கள் மற்றும் மெட்டாடேட்டா",
+ "close": "மூடு",
+ "runningRequests": "செயலில் உள்ள கோரிக்கைகள்",
+ "runningRequestsDesc": "தற்போது செயல்பாட்டில் உள்ள அப்ஸ்ட்ரீம் கோரிக்கைகளின் நிகழ்நேரக் காட்சி",
"clearAll": "அனைத்தையும் அழி",
"confirmClearActiveRequests": "செயலில் உள்ள அனைத்து கோரிக்கைகளையும் அழிக்கவா?",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "மாடல்",
+ "provider": "வழங்குநர்",
+ "account": "கணக்கு",
+ "elapsed": "கடந்த நேரம்",
"activeStage": "கட்டம்",
"activeStageUnknown": "அப்ஸ்ட்ரீமுக்கு இன்னும் அனுப்பப்படவில்லை",
"activeStageRegistered": "பதிவு செய்யப்பட்டது",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "ரேட் லிமிட் ஸ்லாட் பெறப்பட்டது",
"activeStageSendingToProvider": "அப்ஸ்ட்ரீமுக்கு அனுப்பப்படுகிறது",
"activeStageProviderResponseStarted": "அப்ஸ்ட்ரீம் பதில் தொடங்கியது",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "எண்ணிக்கை",
+ "payloads": "பேலோடுகள்",
+ "viewPayloads": "காண்க",
+ "activeCount": "{count} செயலில் உள்ளது",
+ "clientPayload": "கிளையன்ட் கோரிக்கை பேலோடு",
+ "upstreamPayload": "அப்ஸ்ட்ரீம் வழங்குநர் பேலோடு",
+ "upstreamNotSentYet": "அப்ஸ்ட்ரீமிற்கு இன்னும் அனுப்பப்படவில்லை",
+ "runningRequestDetailMeta": "கணக்கு: {account} — கடந்த நேரம்: {elapsed}",
+ "export": "ஏற்றுமதி செய்",
+ "exporting": "ஏற்றுமதி செய்யப்படுகிறது...",
+ "exportFailed": "ஏற்றுமதி தோல்வியடைந்தது",
"cleanHistoryButton": "வரலாற்றை அழி",
"cleanHistoryTitle": "பதிவு வரலாற்றை அழிக்கவா?",
"cleanHistoryMessage": "இது DATA_DIR/call_logs இன் கீழ் உள்ள அனைத்து கோரிக்கை பதிவு வரிசைகள், பழைய விவர வரிசைகள் மற்றும் உள்ளூர் ஆர்ட்டிஃபாக்ட் கோப்புகளை நிரந்தரமாக அழிக்கும். சுத்தம் செய்த பிறகு நேரலைப் பக்கம் புதுப்பிக்கப்படும்.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "{deleted} பதிவு உள்ளீடுகள், {deletedArtifacts} ஆர்ட்டிஃபாக்ட்கள் மற்றும் {deletedDetailedLogs} பழைய விவர வரிசைகள் அழிக்கப்பட்டன.",
"cleanHistoryEmpty": "கோரிக்கை பதிவு வரலாறு எதுவும் காணப்படவில்லை.",
"cleanHistoryFailed": "பதிவு வரலாற்றைச் சுத்தம் செய்ய முடியவில்லை.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "நேர வரம்பு",
+ "lastNHours": "கடந்த {hours}",
+ "defaultRange": "இயல்புநிலை",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "பதிவுகளைப் பெற முடியவில்லை",
+ "copyFailed": "பதிவு உள்ளீட்டை நகலெடுக்க முடியவில்லை",
+ "copyLogEntry": "பதிவு உள்ளீட்டை நகலெடு",
"filterByLevel": "பதிவு நிலை வாரியாக வடிகட்டவும்",
"searchPlaceholder": "பதிவுகளைத் தேடவும்…",
"searchAria": "பதிவு உள்ளீடுகளைத் தேடவும்",
@@ -4960,49 +4964,49 @@
"tokens": "டோக்கன்கள்"
},
"onboarding": {
- "welcome": "Welcome",
+ "welcome": "வரவேற்கிறோம்",
"tiers": "அடுக்குகள்",
- "security": "Security",
+ "security": "பாதுகாப்பு",
"test": "Test",
- "ready": "Ready!",
- "setPassword": "Set Password",
- "addProvider": "Add your first provider",
- "getStarted": "Get Started",
- "skip": "Skip",
- "skipWizard": "Skip wizard entirely",
- "skipPassword": "Skip password setup",
- "skipAndContinue": "Skip & Continue",
- "passwordLabel": "Password",
- "confirmPassword": "Confirm Password",
- "enterPassword": "Enter password",
- "confirmPasswordPlaceholder": "Confirm password",
- "passwordsMismatch": "Passwords do not match",
- "setupComplete": "Setup Complete!",
- "goToDashboard": "Go to Dashboard →",
- "welcomeDesc": "OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "multiProvider": "Multi-Provider",
- "usageTracking": "Usage Tracking",
- "securityDesc": "Set a password to protect your dashboard, or skip for now.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
- "providerDesc": "Connect your first AI provider. You can add more later.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
- "apiKeyRequired": "API Key (required)",
- "customUrlOptional": "Custom URL (optional)",
- "testDesc": "Let's verify your provider connection works.",
- "runTest": "Run Connection Test",
- "testingConnection": "Testing connection...",
- "connectionSuccessful": "Connection successful! Your provider is ready.",
- "noProviderFound": "No provider found. You can add one from the dashboard later.",
- "testFailed": "Test failed, but you can configure this later.",
- "couldNotTest": "Could not test right now. You can test from the dashboard.",
- "doneDesc": "You're all set! Your OmniRoute instance is configured and ready to proxy AI requests.",
- "yourEndpoint": "Your endpoint:",
- "continue": "Continue",
- "retry": "Retry",
- "failedSetPassword": "Failed to set password. Try again.",
- "failedAddProvider": "Failed to add provider. Try again.",
- "connectionError": "Connection error. Please try again.",
- "provider": "Provider",
+ "ready": "தயார்!",
+ "setPassword": "கடவுச்சொல்லை அமைக்கவும்",
+ "addProvider": "உங்கள் முதல் வழங்குநரைச் சேர்க்கவும்",
+ "getStarted": "தொடங்கவும்",
+ "skip": "தவிர்",
+ "skipWizard": "வழிகாட்டியை முழுவதுமாகத் தவிர்",
+ "skipPassword": "கடவுச்சொல் அமைப்பைத் தவிர்",
+ "skipAndContinue": "தவிர்த்துத் தொடரவும்",
+ "passwordLabel": "கடவுச்சொல்",
+ "confirmPassword": "கடவுச்சொல்லை உறுதிப்படுத்தவும்",
+ "enterPassword": "கடவுச்சொல்லை உள்ளிடவும்",
+ "confirmPasswordPlaceholder": "கடவுச்சொல்லை உறுதிப்படுத்தவும்",
+ "passwordsMismatch": "கடவுச்சொற்கள் பொருந்தவில்லை",
+ "setupComplete": "அமைவு நிறைவடைந்தது!",
+ "goToDashboard": "டாஷ்போர்டுக்குச் செல்லவும் →",
+ "welcomeDesc": "OmniRoute என்பது உங்கள் உள்ளூர் AI API ப்ராக்ஸி. இது சுமைச் சமநிலை, செயலிழப்பு மாற்று மற்றும் பயன்பாட்டுக் கண்காணிப்புடன் பல AI வழங்குநர்களுக்கு கோரிக்கைகளை வழிமாற்றுகிறது.",
+ "multiProvider": "பல வழங்குநர்கள்",
+ "usageTracking": "பயன்பாட்டுக் கண்காணிப்பு",
+ "securityDesc": "உங்கள் டாஷ்போர்டைப் பாதுகாக்க ஒரு கடவுச்சொல்லை அமைக்கவும் அல்லது இப்போதைக்கு தவிர்க்கவும்.",
+ "securityDescSkipWarning": "⚠️ கடவுச்சொல் இல்லாமல், அமைவின்போது வழங்குநர்களைச் சேர்க்க முடியாது. கடவுச்சொல்லை அமைத்த பிறகு டாஷ்போர்டிலிருந்து அவர்களைச் சேர்க்கலாம்.",
+ "providerDesc": "உங்கள் முதல் AI வழங்குநரை இணைக்கவும். பின்னர் மேலும் சேர்க்கலாம்.",
+ "providerRequiresPassword": "வழங்குநர்களைச் சேர்க்க முதலில் கடவுச்சொல்லை அமைக்க வேண்டும். பாதுகாப்புப் படிக்குத் திரும்பிச் சென்று கடவுச்சொல்லை அமைக்கவும் அல்லது பின்னர் டாஷ்போர்டிலிருந்து வழங்குநர்களைச் சேர்க்கவும்.",
+ "apiKeyRequired": "API விசை (கட்டாயம்)",
+ "customUrlOptional": "தனிப்பயன் URL (விருப்பத்தேர்வு)",
+ "testDesc": "உங்கள் வழங்குநர் இணைப்பு செயல்படுகிறதா என்பதைச் சரிபார்ப்போம்.",
+ "runTest": "இணைப்புச் சோதனையை இயக்கவும்",
+ "testingConnection": "இணைப்பு சோதிக்கப்படுகிறது...",
+ "connectionSuccessful": "இணைப்பு வெற்றிகரமாக அமைந்தது! உங்கள் வழங்குநர் தயாராக உள்ளார்.",
+ "noProviderFound": "வழங்குநர் எவரும் காணப்படவில்லை. பின்னர் டாஷ்போர்டிலிருந்து ஒருவரைச் சேர்க்கலாம்.",
+ "testFailed": "சோதனை தோல்வியடைந்தது, ஆனால் இதைப் பின்னர் உள்ளமைக்கலாம்.",
+ "couldNotTest": "இப்போது சோதிக்க முடியவில்லை. டாஷ்போர்டிலிருந்து சோதிக்கலாம்.",
+ "doneDesc": "அனைத்தும் தயார்! உங்கள் OmniRoute நிகழ்வு உள்ளமைக்கப்பட்டு, AI கோரிக்கைகளை ப்ராக்ஸி செய்யத் தயாராக உள்ளது.",
+ "yourEndpoint": "உங்கள் முனைப்புள்ளி:",
+ "continue": "தொடரவும்",
+ "retry": "மீண்டும் முயற்சிக்கவும்",
+ "failedSetPassword": "கடவுச்சொல்லை அமைக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "failedAddProvider": "வழங்குநரைச் சேர்க்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "connectionError": "இணைப்புப் பிழை. மீண்டும் முயற்சிக்கவும்.",
+ "provider": "வழங்குநர்",
"apiKeyHelp": "API விசை என்பது AI சேவைகளுக்கான கடவுச்சொல். உங்கள் வழங்குநரின் இணையதளத்திலிருந்து ஒன்றைப் பெறுங்கள் (எ.கா., platform.openai.com, console.anthropic.com).",
"tier": {
"subtitle": "OmniRoute வழங்குநர்களை மூன்று அடுக்குகளாக ஒழுங்கமைக்கிறது, எனவே ரூட்டிங் முதலில் மிகவும் நம்பகமான, குறைந்த விலை பாதையை விரும்புகிறது.",
@@ -5045,12 +5049,12 @@
}
},
"providers": {
- "title": "Providers",
+ "title": "வழங்குநர்கள்",
"Account Deactivated": "கணக்கு செயலிழக்கப்பட்டது",
"allProviders": "அனைத்து வழங்குநர்கள்",
"audioProviders": "ஆடியோ வழங்குநர்கள்",
"showFreeOnly": "இலவசம் மட்டுமே",
- "addProvider": "Add Provider",
+ "addProvider": "வழங்குநரைச் சேர்க்கவும்",
"addFirstProvider": "உங்கள் முதல் வழங்குநரைச் சேர்க்கவும்",
"addFirstProviderDesc": "OmniRoute மூலம் ரூட்டிங் கோரிக்கைகளைத் தொடங்க AI வழங்குநரை இணைக்கவும். நீங்கள் இலவச வழங்குநர்கள், API விசைகள் அல்லது OAuth கணக்குகளைப் பயன்படுத்தலாம்.",
"learnMore": "மேலும் அறிக",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "இறக்குமதி செய்கிறது…",
"importFromFileImport": "{count} வழங்குநர்களை இறக்குமதி செய்",
"importFromFileResult": "{success} வழங்குநர்கள் இறக்குமதி செய்யப்பட்டன ({failed} தோல்வியடைந்தன)",
+ "importFromFileDownloadTemplate": "CSV வார்ப்புருவைப் பதிவிறக்கவும்",
+ "importFromFileMoreErrors": "மேலும் +{count}",
+ "importFromFileSchemaHint": "CSV நெடுவரிசைகள் இடநிலையை அடிப்படையாகக் கொண்டவை: provider, name, apiKey, baseUrl (விருப்பத்தேர்வு), priority (விருப்பத்தேர்வு). provider நெடுவரிசை ஏற்கனவே உள்ள நிர்வகிக்கப்பட்ட வழங்குநர் id அல்லது முன்பே பதிவுசெய்யப்பட்ட OpenAI/Anthropic-இணக்கமான node id ஆக இருக்க வேண்டும் — இந்த இறக்குமதி புதிய endpoint nodes-ஐ உருவாக்காது.",
"adaptaTutorial": {
"title": "Adapta Web-ஐ எவ்வாறு இணைப்பது",
"introPrefix": "Adapta ஆனது Clerk மூலம் அங்கீகரிக்கிறது. டோக்கன்",
@@ -5099,31 +5106,31 @@
"tipPrefix": "இந்த",
"tipSuffix": "குக்கீ நீண்ட காலம் நீடிக்கும், வழக்கமாக பல மாதங்கள் வரை. நீங்கள் வெளியேறினால் அல்லது Adapta அமர்வை செல்லாததாக்கினால் மட்டுமே நீங்கள் அதை புதுப்பிக்க வேண்டும்."
},
- "editProvider": "Edit Provider",
- "deleteProvider": "Delete Provider",
- "noProviders": "No providers configured",
- "modelAvailability": "Model Availability",
- "accounts": "Accounts",
- "newAccount": "New Account",
- "deleteConfirm": "Are you sure you want to delete this provider?",
- "testing": "Testing...",
- "testConnection": "Test Connection",
- "testSuccess": "Connection successful",
- "testFailed": "Connection failed",
- "available": "Available",
- "cooldown": "Cooldown",
- "unavailable": "Unavailable",
- "unknown": "Unknown",
+ "editProvider": "வழங்குநரைத் திருத்தவும்",
+ "deleteProvider": "வழங்குநரை நீக்கவும்",
+ "noProviders": "வழங்குநர்கள் எதுவும் உள்ளமைக்கப்படவில்லை",
+ "modelAvailability": "மாதிரி கிடைக்கும் தன்மை",
+ "accounts": "கணக்குகள்",
+ "newAccount": "புதிய கணக்கு",
+ "deleteConfirm": "இந்த வழங்குநரை நீக்க விரும்புகிறீர்கள் என்பதில் உறுதியாக உள்ளீர்களா?",
+ "testing": "சோதிக்கப்படுகிறது...",
+ "testConnection": "இணைப்பைச் சோதிக்கவும்",
+ "testSuccess": "இணைப்பு வெற்றிகரமாக அமைந்தது",
+ "testFailed": "இணைப்பு தோல்வியடைந்தது",
+ "available": "கிடைக்கிறது",
+ "cooldown": "காத்திருப்பு காலம்",
+ "unavailable": "கிடைக்கவில்லை",
+ "unknown": "தெரியவில்லை",
"oauthLabel": "OAuth",
- "compatibleLabel": "Compatible",
+ "compatibleLabel": "இணக்கமானது",
"chat": "Chat",
"responses": "Responses",
"messages": "Messages",
- "oauthProviders": "OAuth Providers",
- "freeProviders": "Free Providers",
- "apiKeyProviders": "API Key Providers",
- "compatibleProviders": "API Key Compatible Providers",
- "testAll": "Test All",
+ "oauthProviders": "OAuth வழங்குநர்கள்",
+ "freeProviders": "இலவச வழங்குநர்கள்",
+ "apiKeyProviders": "API Key வழங்குநர்கள்",
+ "compatibleProviders": "API Key இணக்கமான வழங்குநர்கள்",
+ "testAll": "அனைத்தையும் சோதிக்கவும்",
"reorderByAvailability": "மறுவரிசைப்படுத்து",
"reorderByAvailabilityTitle": "கிடைக்கும் தன்மையின் அடிப்படையில் இணைப்புகளை மறுவரிசைப்படுத்தவும்",
"reorderByAvailabilityError": "கிடைக்கும் தன்மையின் அடிப்படையில் இணைப்புகளை மறுவரிசைப்படுத்த முடியவில்லை",
@@ -5131,10 +5138,10 @@
"distributing": "விநியோகிக்கப்படுகிறது...",
"selectedCount": "{count, plural, one {# தேர்ந்தெடுக்கப்பட்டது} other {# தேர்ந்தெடுக்கப்பட்டன}}",
"accountsCount": "{count, plural, one {# கணக்கு} other {# கணக்குகள்}}",
- "testAllOAuth": "Test all OAuth connections",
- "testAllFree": "Test all Free connections",
- "testAllApiKey": "Test all API Key connections",
- "testAllCompatible": "Test all Compatible connections",
+ "testAllOAuth": "அனைத்து OAuth இணைப்புகளையும் சோதிக்கவும்",
+ "testAllFree": "அனைத்து இலவச இணைப்புகளையும் சோதிக்கவும்",
+ "testAllApiKey": "அனைத்து API Key இணைப்புகளையும் சோதிக்கவும்",
+ "testAllCompatible": "அனைத்து இணக்கமான இணைப்புகளையும் சோதிக்கவும்",
"testAllModels": "அனைத்து மாடல்களையும் சோதிக்கவும்",
"testAllModelsConfirm": "தெரியும் அனைத்து மாடல்களையும் சோதிக்கவா? தானியங்கு மறைத்தல் இயக்கப்பட்டிருந்தால் தோல்வியடைந்த மாடல்கள் மறைக்கப்படும்.",
"testingAllModels": "{done}/{total} சோதிக்கப்படுகிறது...",
@@ -5150,9 +5157,9 @@
"filterByVisibility": "காண்பதன் அடிப்படையில் வடிகட்டு",
"autoHideFailed": "தோல்வியடைந்த மாடல்களை தானாகவே மறைக்கவும்",
"autoHideFailedHint": "செயல்படுத்தப்படும் போது, 'அனைத்தையும் சோதி' என்பது /v1/models போன்ற பொதுவான பட்டியல்களில் இருந்து தற்காலிகமற்ற தோல்விகளை மறைக்கும். ஒற்றை-மாடல் சோதனைகள் ஒருபோதும் தானாக மறைக்காது.",
- "connected": "{count} Connected",
- "errorCount": "{count} Error ({code})",
- "errorCountNoCode": "{count} Error",
+ "connected": "{count} இணைக்கப்பட்டுள்ளன",
+ "errorCount": "{count} பிழை ({code})",
+ "errorCountNoCode": "{count} பிழை",
"testAllCompleted": "{total} மாடல்கள் சோதிக்கப்பட்டன: {ok} சரி, {failed} தோல்வியடைந்தன",
"modelAutoHidden": "மாடல் {model} தானாகவே மறைக்கப்பட்டது (சோதனை தோல்வியடைந்தது)",
"filterAll": "அனைத்தும்",
@@ -5160,9 +5167,9 @@
"filterHidden": "மறைக்கப்பட்டவை மட்டும்",
"modelsHiddenCount": "{count} மறைக்கப்பட்டுள்ளன",
"warningCount": "{count} எச்சரிக்கை",
- "noConnections": "No connections",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "noConnections": "இணைப்புகள் இல்லை",
+ "expiredBadge": "காலாவதியானது",
+ "expiringSoonBadge": "விரைவில் காலாவதியாகும்",
"freeTier": "இலவச அடுக்கு",
"freeTierAvailable": "இலவச அடுக்கு கிடைக்கிறது",
"hasFreeTooltip": "இலவச அடுக்கு கிடைக்கிறது",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "இந்த வழங்குநர் நிராகரிக்கப்பட்டார்",
"riskNotice": {
"title": "தொடர்வதற்கு முன்",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "பயன்பாட்டு வரம்புகள்",
"tooltip": "பயன்பாட்டு எச்சரிக்கைகளைக் கொண்ட வழங்குநர் — விவரங்களுக்கு கிளிக் செய்யவும்",
"oauth": "இந்த வழங்குநர் உங்களது அதிகாரப்பூர்வ தயாரிப்பு அமர்வு/OAuth ஐப் பயன்படுத்துகிறார், இது ப்ராக்ஸி/ரவுட்டர் பயன்பாட்டிற்கு அங்கீகரிக்கப்படவில்லை. தீவிரமான தன்னாட்சி முகவர் பயன்பாட்டை (OpenCloud-பாணி, நீண்ட பல-படி ஓட்டங்கள், பெரிய தொகுதிகள்) நாங்கள் பரிந்துரைக்கவில்லை — அப்ஸ்ட்ரீம் கணக்கைக் கட்டுப்படுத்துவதன் மூலமோ அல்லது தடை செய்வதன் மூலமோ எதிர்வினையாற்றலாம். உங்கள் சொந்த பொறுப்பில் பயன்படுத்தவும்.",
"webCookie": "இந்த வழங்குநர் உங்கள் வலை அமர்வு குக்கீகள் மூலம் அங்கீகரிக்கிறார். அப்ஸ்ட்ரீம் சேவை எந்த நேரத்திலும் அமர்வை செல்லாததாக்கலாம், இதனால் நீங்கள் மீண்டும் உள்நுழைய வேண்டியிருக்கும். நீண்ட கவனிக்கப்படாத செயல்பாடுகளுக்கு பரிந்துரைக்கப்படவில்லை. உங்கள் சொந்த பொறுப்பில் பயன்படுத்தவும்.",
@@ -5184,95 +5191,95 @@
"cancel": "ரத்துசெய்"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} இணைப்பு(கள்) குறிக்கப்பட்டுள்ளன — சமீபத்திய தோல்விகள் அதிகபட்சம் {maxFailures}{lastFailureSuffix}. இணைப்பின் நிலையைப் பார்க்க கிளிக் செய்யவும்.",
+ "lastFailureSuffix": "(கடைசித் தோல்வி {time})",
+ "ariaLabel": "இணைப்பின் நிலை விவரங்களைப் பார்க்கவும், {count} எச்சரிக்கை(கள்)"
},
- "disabled": "Disabled",
- "enableProvider": "Enable provider",
- "disableProvider": "Disable provider",
- "testResults": "Test Results",
- "noCompatibleYet": "No compatible providers added yet",
- "compatibleHint": "Use the buttons above to add OpenAI or Anthropic compatible endpoints",
- "addOpenAICompatible": "Add OpenAI Compatible",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "addNewProvider": "Add New Provider",
- "backToProviders": "Back to Providers",
- "configureNewProvider": "Configure a new AI provider to use with your applications.",
- "providerLabel": "Provider",
- "selectProvider": "Select a provider",
- "selectedProvider": "Selected provider",
- "authMethod": "Authentication Method",
- "apiKeyLabel": "API Key",
- "apiKeyRequired": "API Key is required",
- "selectProviderRequired": "Please select a provider",
- "enterApiKey": "Enter your API key",
- "apiKeySecure": "Your API key will be encrypted and stored securely.",
- "oauth2Connect": "Connect with OAuth2",
+ "disabled": "முடக்கப்பட்டது",
+ "enableProvider": "வழங்குநரை இயக்கவும்",
+ "disableProvider": "வழங்குநரை முடக்கவும்",
+ "testResults": "சோதனை முடிவுகள்",
+ "noCompatibleYet": "இணக்கமான வழங்குநர்கள் இன்னும் சேர்க்கப்படவில்லை",
+ "compatibleHint": "OpenAI அல்லது Anthropic இணக்கமான முனைப்புள்ளிகளைச் சேர்க்க மேலேயுள்ள பொத்தான்களைப் பயன்படுத்தவும்",
+ "addOpenAICompatible": "OpenAI இணக்கமானதைச் சேர்க்கவும்",
+ "addAnthropicCompatible": "Anthropic இணக்கமானதைச் சேர்க்கவும்",
+ "addNewProvider": "புதிய வழங்குநரைச் சேர்க்கவும்",
+ "backToProviders": "வழங்குநர்களுக்குத் திரும்பவும்",
+ "configureNewProvider": "உங்கள் பயன்பாடுகளுடன் பயன்படுத்த புதிய AI வழங்குநரை உள்ளமைக்கவும்.",
+ "providerLabel": "வழங்குநர்",
+ "selectProvider": "ஒரு வழங்குநரைத் தேர்ந்தெடுக்கவும்",
+ "selectedProvider": "தேர்ந்தெடுக்கப்பட்ட வழங்குநர்",
+ "authMethod": "அங்கீகார முறை",
+ "apiKeyLabel": "API விசை",
+ "apiKeyRequired": "API விசை தேவை",
+ "selectProviderRequired": "ஒரு வழங்குநரைத் தேர்ந்தெடுக்கவும்",
+ "enterApiKey": "உங்கள் API விசையை உள்ளிடவும்",
+ "apiKeySecure": "உங்கள் API விசை குறியாக்கம் செய்யப்பட்டு பாதுகாப்பாகச் சேமிக்கப்படும்.",
+ "oauth2Connect": "OAuth2 மூலம் இணைக்கவும்",
"oauth2Label": "OAuth2",
- "oauth2Desc": "Connect your account using OAuth2 authentication.",
- "displayName": "Display Name",
- "displayNamePlaceholder": "e.g., Production API, Dev Environment",
- "displayNameHint": "Optional. A friendly name to identify this configuration.",
- "active": "Active",
- "activeDescription": "Enable this provider for use in your applications",
- "cancel": "Cancel",
- "createProvider": "Create Provider",
- "failedCreate": "Failed to create provider",
- "errorOccurred": "An error occurred. Please try again.",
- "modelStatus": "Model Status",
- "showConfiguredOnly": "Configured only",
- "allModelsOperational": "All models operational",
- "modelsWithIssues": "{count} model(s) with issues",
- "allModelsNormal": "All models are responding normally.",
- "cooldownCleared": "Cooldown cleared for {model}",
- "failedClearCooldown": "Failed to clear cooldown",
- "loadingAvailability": "Loading model availability...",
- "clearCooldown": "Clear",
- "clearing": "Clearing...",
- "until": "Until {time}",
- "providerTestFailed": "Provider test failed",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "oauth2Desc": "OAuth2 அங்கீகாரத்தைப் பயன்படுத்தி உங்கள் கணக்கை இணைக்கவும்.",
+ "displayName": "காட்சிப் பெயர்",
+ "displayNamePlaceholder": "எ.கா., Production API, Dev Environment",
+ "displayNameHint": "விருப்பத்திற்குரியது. இந்த உள்ளமைவை அடையாளம் காண உதவும் எளிய பெயர்.",
+ "active": "செயலில் உள்ளது",
+ "activeDescription": "உங்கள் பயன்பாடுகளில் இந்த வழங்குநரைப் பயன்படுத்த இயக்கவும்",
+ "cancel": "ரத்துசெய்",
+ "createProvider": "வழங்குநரை உருவாக்கு",
+ "failedCreate": "வழங்குநரை உருவாக்க முடியவில்லை",
+ "errorOccurred": "ஒரு பிழை ஏற்பட்டது. மீண்டும் முயற்சிக்கவும்.",
+ "modelStatus": "மாதிரி நிலை",
+ "showConfiguredOnly": "உள்ளமைக்கப்பட்டவை மட்டும்",
+ "allModelsOperational": "அனைத்து மாதிரிகளும் செயல்பாட்டில் உள்ளன",
+ "modelsWithIssues": "சிக்கல்களைக் கொண்ட {count} மாதிரி(கள்)",
+ "allModelsNormal": "அனைத்து மாதிரிகளும் இயல்பாகப் பதிலளிக்கின்றன.",
+ "cooldownCleared": "{model} மாதிரிக்கான காத்திருப்புக் காலம் நீக்கப்பட்டது",
+ "failedClearCooldown": "காத்திருப்புக் காலத்தை நீக்க முடியவில்லை",
+ "loadingAvailability": "மாதிரிகளின் கிடைப்புநிலை ஏற்றப்படுகிறது...",
+ "clearCooldown": "நீக்கு",
+ "clearing": "நீக்கப்படுகிறது...",
+ "until": "{time} வரை",
+ "providerTestFailed": "வழங்குநர் சோதனை தோல்வியடைந்தது",
+ "providerTestTimeout": "வழங்குநர் சோதனைக்கான நேரம் முடிந்தது — ஒரே நேரத்தில் சோதிக்க அதிகமான இணைப்புகள் உள்ளன",
"modeTest": "{mode} Test",
- "passedCount": "{count} passed",
- "failedCount": "{count} failed",
- "testedCount": "{count} tested",
+ "passedCount": "{count} தேர்ச்சி பெற்றன",
+ "failedCount": "{count} தோல்வியடைந்தன",
+ "testedCount": "{count} சோதிக்கப்பட்டன",
"millisecondsAbbr": "{value}ms",
"okShort": "OK",
- "errorShort": "ERROR",
- "noActiveConnectionsInGroup": "No active connections found for this group.",
- "allTestsPassed": "All {total} tests passed",
- "testSummary": "{passed}/{total} passed, {failed} failed",
- "nameLabel": "Name",
+ "errorShort": "பிழை",
+ "noActiveConnectionsInGroup": "இந்தக் குழுவிற்குச் செயலில் உள்ள இணைப்புகள் எதுவும் கிடைக்கவில்லை.",
+ "allTestsPassed": "அனைத்து {total} சோதனைகளும் தேர்ச்சி பெற்றன",
+ "testSummary": "{passed}/{total} தேர்ச்சி பெற்றன, {failed} தோல்வியடைந்தன",
+ "nameLabel": "பெயர்",
"prefixLabel": "Prefix",
- "baseUrlLabel": "Base URL",
- "apiTypeLabel": "API Type",
- "prefixHint": "Required. Unique prefix for model names.",
- "nameHint": "Required. A friendly label for this node.",
- "baseUrlHint": "Required. Provider API base URL.",
+ "baseUrlLabel": "அடிப்படை URL",
+ "apiTypeLabel": "API வகை",
+ "prefixHint": "தேவையானது. மாதிரிப் பெயர்களுக்கான தனித்துவமான முன்னொட்டு.",
+ "nameHint": "அவசியம். இந்த நோடுக்கான எளிதில் புரியக்கூடிய பெயர்.",
+ "baseUrlHint": "அவசியம். வழங்குநர் API அடிப்படை URL.",
"iconUrlLabel": "சின்னத்தின் URL",
"iconUrlHint": "விருப்பத்திற்குரியது. இந்த வழங்குநரின் சின்னமாக காட்டப்படும் பட URL.",
"iconUrlInvalid": "தவறான ஐகான் URL. http(s):// அல்லது data:image/*;base64 URL ஐப் பயன்படுத்தவும்.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "தினசரி ஒதுக்கீடு மீட்டமைக்கும் நேர மண்டலம்",
+ "dailyQuotaResetTimezoneHint": "மேல்நிலைச் சேவை X-RateLimit-Reset ஐ வழங்காதபோது பயன்படுத்தப்படும் விருப்பமான IANA நேர மண்டலம். குறுகிய காத்திருப்புக் காலத்தைத் தொடர, இதைக் காலியாக விடவும்.",
+ "dailyQuotaResetHourLabel": "தினசரி ஒதுக்கீடு மீட்டமைக்கும் மணிநேரம்",
+ "dailyQuotaResetHourHint": "மேலே உள்ள நேர மண்டலத்தின்படி உள்ளூர் மணிநேரம் 0-23. காலியாக இருந்தால் நோட்-நிலை கடிகாரம் இல்லை என்று பொருள்.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
- "validateConnection": "Validate Connection",
- "validating": "Validating...",
- "connectionValid": "Connection is valid!",
- "connectionFailed": "Connection failed. Check URL and key.",
- "testKeyLabel": "Test API Key",
- "testKeyPlaceholder": "sk-... (for validation only)",
- "providerNotFound": "Provider not found",
- "deleteConnectionConfirm": "Delete this connection?",
+ "validateConnection": "இணைப்பைச் சரிபார்க்கவும்",
+ "validating": "சரிபார்க்கப்படுகிறது...",
+ "connectionValid": "இணைப்பு செல்லுபடியாகிறது!",
+ "connectionFailed": "இணைப்பு தோல்வியடைந்தது. URL மற்றும் விசையைச் சரிபார்க்கவும்.",
+ "testKeyLabel": "API விசையைச் சோதிக்கவும்",
+ "testKeyPlaceholder": "sk-... (சரிபார்ப்புக்கு மட்டும்)",
+ "providerNotFound": "வழங்குநர் கிடைக்கவில்லை",
+ "deleteConnectionConfirm": "இந்த இணைப்பை நீக்கவா?",
"deleteConnectionConfirmNamed": "{name} ஐ நீக்க வேண்டுமா? இந்தச் செயலைச் செயல்தவிர்க்க முடியாது.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "தேர்ந்தெடுத்தவற்றை நீக்கவும் ({count})",
+ "batchDeleteConfirm": "{count} இணைப்பு(களை) நீக்கவா? இந்தச் செயலைச் செயல்தவிர்க்க முடியாது.",
+ "batchDeleteSuccess": "{count} இணைப்பு(கள்) நீக்கப்பட்டன",
"batchActivateSelected": "செயல்படுத்து",
"batchDeactivateSelected": "செயலிழக்கச் செய்",
"batchRetestSelected": "மீண்டும் சோதி",
@@ -5288,32 +5295,32 @@
"filterError": "பிழை",
"filterBanned": "தடைசெய்யப்பட்டது",
"filterCreditsExhausted": "கிரெடிட் தீர்ந்தது",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "கணக்குகளைத் தேடவும்…",
"noFilteredConnections": "தற்போதைய வடிகட்டியுடன் எந்த இணைப்புகளும் பொருந்தவில்லை.",
- "failedSetAlias": "Failed to set alias",
+ "failedSetAlias": "மாற்றுப்பெயரை அமைக்க முடியவில்லை",
"setAliasSuccess": "மாற்றுப்பெயர் {alias} அமைக்கப்பட்டது",
"deleteAliasSuccess": "மாற்றுப்பெயர் {alias} நீக்கப்பட்டது",
- "failedSaveConnection": "Failed to save connection",
- "failedSaveConnectionRetry": "Failed to save connection. Please try again.",
- "failedRetestConnection": "Failed to retest connection",
- "deleteCompatibleNodeConfirm": "Delete this {type} Compatible node?",
- "anthropicCompatibleDetails": "Anthropic Compatible Details",
- "openaiCompatibleDetails": "OpenAI Compatible Details",
+ "failedSaveConnection": "இணைப்பைச் சேமிக்க முடியவில்லை",
+ "failedSaveConnectionRetry": "இணைப்பைச் சேமிக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "failedRetestConnection": "இணைப்பை மீண்டும் சோதிக்க முடியவில்லை",
+ "deleteCompatibleNodeConfirm": "இந்த {type} Compatible நோட்டை நீக்கவா?",
+ "anthropicCompatibleDetails": "Anthropic Compatible விவரங்கள்",
+ "openaiCompatibleDetails": "OpenAI Compatible விவரங்கள்",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "உட்பொதிவுகள்",
+ "audioTranscriptions": "ஒலிப் படியெடுத்தல்கள்",
+ "audioSpeech": "ஒலிப் பேச்சு",
+ "imagesGenerations": "பட உருவாக்கங்கள்",
"chatCompletions": "Chat Completions",
- "importingModels": "Importing...",
- "importFromModels": "Import from /models",
- "modelsImported": "{count} models imported",
- "allModelsAlreadyImported": "All models already imported",
- "noNewModelsToImport": "No new models to import — all models are already in the registry or custom models list",
- "skippingExistingModels": "Skipping {count} existing models",
- "autoSync": "Auto-Sync",
- "autoSyncShort": "Sync",
+ "importingModels": "இறக்குமதி செய்யப்படுகிறது...",
+ "importFromModels": "/models இலிருந்து இறக்குமதி செய்யவும்",
+ "modelsImported": "{count} மாடல்கள் இறக்குமதி செய்யப்பட்டன",
+ "allModelsAlreadyImported": "அனைத்து மாடல்களும் ஏற்கனவே இறக்குமதி செய்யப்பட்டுள்ளன",
+ "noNewModelsToImport": "இறக்குமதி செய்யப் புதிய மாடல்கள் எதுவும் இல்லை — அனைத்து மாடல்களும் ஏற்கனவே பதிவகத்தில் அல்லது தனிப்பயன் மாடல்கள் பட்டியலில் உள்ளன",
+ "skippingExistingModels": "ஏற்கனவே உள்ள {count} மாடல்கள் தவிர்க்கப்படுகின்றன",
+ "autoSync": "தானியங்கு ஒத்திசைவு",
+ "autoSyncShort": "ஒத்திசைக்கவும்",
"autoFetchModels": "உயர்தர மாதிரிகளை தானாகப் பெறவும்",
"autoFetchModelsTooltip": "தேவையான போது மேல்நிலை மாதிரிகளை பெறவும் மற்றும் கச்சே செய்யவும்",
"autoFetchModelsEnabled": "மேல்நிலை மாதிரி தானாகப் பெறுதல் செயல்படுத்தப்பட்டது",
@@ -5325,52 +5332,52 @@
"resetToUpstreamDefaults": "முதன்மை இயல்புகளை மீட்டமைக்கவும்",
"resetToUpstreamDefaultsSuccess": "மீட்டமைக்கப்பட்ட மேல்நிலை மாதிரி இயல்புகள்",
"resetToUpstreamDefaultsFailed": "மேல்நிலை மாதிரி இயல்புகளை மீட்டெடுக்க முடியவில்லை",
- "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)",
- "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically",
- "autoSyncDisabled": "Auto-sync disabled",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
- "autoSyncPartialFailure": "Auto-sync updated for some connections, but not all",
- "clearAllModels": "Clear All Models",
- "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.",
- "clearAllModelsSuccess": "All models cleared",
- "clearAllModelsFailed": "Failed to clear models",
- "addConnectionToImport": "Add a connection to enable importing.",
- "noModelsConfigured": "No models configured",
- "connectionCount": "{count} connection(s)",
- "fetchingModels": "Fetching available models...",
- "failedFetchModels": "Failed to fetch models",
+ "autoSyncTooltip": "ஒவ்வொரு 24 மணிநேரத்திற்கும் மாடல் பட்டியலைத் தானாகப் புதுப்பிக்கவும் (MODEL_SYNC_INTERVAL_HOURS மூலம் உள்ளமைக்கலாம்)",
+ "autoSyncEnabled": "தானியங்கு ஒத்திசைவு இயக்கப்பட்டுள்ளது — மாடல்கள் அவ்வப்போது புதுப்பிக்கப்படும்",
+ "autoSyncDisabled": "தானியங்கு ஒத்திசைவு முடக்கப்பட்டுள்ளது",
+ "autoSyncToggleFailed": "தானியங்கு ஒத்திசைவை மாற்ற முடியவில்லை",
+ "autoSyncPartialFailure": "சில இணைப்புகளுக்குத் தானியங்கு ஒத்திசைவு புதுப்பிக்கப்பட்டது, ஆனால் அனைத்திற்கும் இல்லை",
+ "clearAllModels": "அனைத்து மாடல்களையும் அழி",
+ "clearAllModelsConfirm": "இந்த வழங்குநருக்கான அனைத்து மாடல்களையும் நிச்சயமாக அகற்ற விரும்புகிறீர்களா? இதைச் செயல்தவிர்க்க முடியாது.",
+ "clearAllModelsSuccess": "அனைத்து மாடல்களும் அழிக்கப்பட்டன",
+ "clearAllModelsFailed": "மாடல்களை அழிக்க முடியவில்லை",
+ "addConnectionToImport": "இறக்குமதியை இயக்க ஓர் இணைப்பைச் சேர்க்கவும்.",
+ "noModelsConfigured": "மாடல்கள் எதுவும் உள்ளமைக்கப்படவில்லை",
+ "connectionCount": "{count} இணைப்பு(கள்)",
+ "fetchingModels": "கிடைக்கக்கூடிய மாடல்கள் பெறப்படுகின்றன...",
+ "failedFetchModels": "மாடல்களைப் பெற முடியவில்லை",
"noFreeModelsFound": "இந்த வழங்குநருக்கு இலவச மாடல்கள் எதுவும் கிடைக்கவில்லை — எதுவும் இறக்குமதி செய்யப்படவில்லை.",
"fetchModelsSuccess": "{count} புதிய மாடல்கள் கண்டறியப்பட்டன",
"fetchModelsFailed": "மாடல்களை தானாகப் பெற முடியவில்லை (அமைப்புகளில் இருந்து மீண்டும் முயற்சிக்கலாம்)",
- "noModelsFound": "No models found",
- "importFailed": "Import failed",
- "noNewModelsAdded": "No new models were added.",
+ "noModelsFound": "மாடல்கள் எதுவும் கிடைக்கவில்லை",
+ "importFailed": "இறக்குமதி தோல்வியடைந்தது",
+ "noNewModelsAdded": "புதிய மாடல்கள் எதுவும் சேர்க்கப்படவில்லை.",
"adding": "Adding...",
- "close": "Close",
- "importingModelsTitle": "Importing Models",
- "copyModel": "Copy model",
- "filterModels": "Filter models...",
+ "close": "மூடு",
+ "importingModelsTitle": "மாடல்கள் இறக்குமதி செய்யப்படுகின்றன",
+ "copyModel": "மாடலை நகலெடு",
+ "filterModels": "மாடல்களை வடிகட்டு...",
"testAllRateLimited": "வீத வரம்பை எட்டியது, முன்கூட்டியே நிறுத்தப்பட்டது",
"hideFailedAuto": "தோல்வியடைந்த மாடல்களை தானாக மறைக்கவும்",
- "selectAllModels": "Select all",
+ "selectAllModels": "அனைத்தையும் தேர்ந்தெடு",
"hideAllModels": "அனைத்தையும் மறைக்கவும்",
- "modelsActive": "Active",
- "showModel": "Show model",
- "hideModel": "Hide model",
- "removeModel": "Remove model",
- "rateLimitProtected": "Protected",
- "rateLimitUnprotected": "Unprotected",
+ "modelsActive": "செயலில் உள்ளது",
+ "showModel": "மாடலைக் காட்டு",
+ "hideModel": "மாடலை மறை",
+ "removeModel": "மாடலை அகற்று",
+ "rateLimitProtected": "பாதுகாக்கப்பட்டது",
+ "rateLimitUnprotected": "பாதுகாக்கப்படவில்லை",
"providerQuotaShort": "ஒதுக்கீடு",
"hideConnectionFromProviderQuota": "வழங்குநர் ஒதுக்கீட்டில் (Provider Quota) இருந்து இந்த கணக்கை மறைக்கவும்",
"showConnectionInProviderQuota": "வழங்குநர் ஒதுக்கீட்டில் (Provider Quota) இந்த கணக்கைக் காட்டவும்",
"quotaVisibilityUpdateFailed": "வழங்குநர் ஒதுக்கீடு (Provider Quota) தெரிவுநிலையைப் புதுப்பிக்க முடியவில்லை",
- "enableRateLimitProtection": "Click to enable rate limit protection",
- "disableRateLimitProtection": "Click to disable rate limit protection",
+ "enableRateLimitProtection": "விகித வரம்புப் பாதுகாப்பை இயக்க கிளிக் செய்யவும்",
+ "disableRateLimitProtection": "விகித வரம்புப் பாதுகாப்பை முடக்க கிளிக் செய்யவும்",
"testAllProgress": "{done}/{total} சோதிக்கப்பட்டது",
"testAllFailedHidden": "{count} தோல்வியடைந்த மாடல்கள் மறைக்கப்பட்டன",
"testAllDone": "அனைத்து மாடல்களும் சோதிக்கப்பட்டன",
- "productionKey": "Production Key",
- "enterNewApiKey": "Enter new API key",
+ "productionKey": "தயாரிப்புச் சூழல் திறவுகோல்",
+ "enterNewApiKey": "புதிய API திறவுகோலை உள்ளிடவும்",
"codexApplyModalTitle": "உள்ளூர் கோடெக்ஸுக்கு விண்ணப்பிக்கவும்",
"codexApplyTargetLabel": "இலக்கு பாதை",
"codexApplyBackupLabel": "காப்புப்பிரதிகள்",
@@ -5382,77 +5389,77 @@
"bulkAddFormatHint": "ஒரு வரிக்கு ஒரு விசை. வடிவம்: பெயர்|apiKey அல்லது apiKey (இன்டெக்ஸ் மூலம் தானாக பெயரிடப்பட்டது).",
"bulkValidateKeys": "சேமிப்பதற்கு முன் ஒவ்வொரு விசையையும் சரிபார்க்கவும் (மெதுவாக)",
"bulkAddAllKeys": "அனைத்து விசைகளையும் சேர்க்கவும்",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
- "optional": "Optional",
+ "bulkAddedCount": "{count, plural, one {# திறவுகோல் சேர்க்கப்பட்டது} other {# திறவுகோல்கள் சேர்க்கப்பட்டன}}",
+ "bulkFailedCount": "{count, plural, one {# தோல்வியடைந்தது} other {# தோல்வியடைந்தன}}",
+ "optional": "விருப்பத்திற்குரியது",
"anthropicCompatibleName": "Anthropic Compatible",
"openaiCompatibleName": "OpenAI Compatible",
"compatibleDefaultModelLabel": "இயல்புநிலை மாடல்",
"compatibleDefaultModelHint": "உங்கள் இணக்கமான எண்ட்பாயிண்ட் (endpoint) எதிர்பார்ப்பது போலவே மாடல் ஐடியை (model ID) உள்ளிடவும். இந்த மாடல் இணைப்பின் இயல்புநிலையாகச் சேமிக்கப்படும்.",
- "failedImportModels": "Failed to import models",
- "noModelsReturnedFromEndpoint": "No models returned from /models endpoint.",
- "importingModelsProgress": "Importing {current} of {total} models...",
- "foundModelsStartingImport": "Found {count} models. Starting import...",
- "importingModelById": "Importing {modelId}...",
- "importSuccessCount": "Successfully imported {count, plural, one {# model} other {# models}}!",
- "noNewModelsAddedExisting": "No new models were added (all already exist).",
- "importDoneCount": "✓ Done! {count, plural, one {# model imported.} other {# models imported.}}",
- "unexpectedErrorOccurred": "An unexpected error occurred",
+ "failedImportModels": "மாடல்களை இறக்குமதி செய்ய முடியவில்லை",
+ "noModelsReturnedFromEndpoint": "/models endpoint-இலிருந்து எந்த மாடல்களும் திரும்பப் பெறப்படவில்லை.",
+ "importingModelsProgress": "{total} மாடல்களில் {current}வது இறக்குமதி செய்யப்படுகிறது...",
+ "foundModelsStartingImport": "{count} மாடல்கள் கண்டறியப்பட்டன. இறக்குமதி தொடங்குகிறது...",
+ "importingModelById": "{modelId} இறக்குமதி செய்யப்படுகிறது...",
+ "importSuccessCount": "{count, plural, one {# மாடல் வெற்றிகரமாக இறக்குமதி செய்யப்பட்டது!} other {# மாடல்கள் வெற்றிகரமாக இறக்குமதி செய்யப்பட்டன!}}",
+ "noNewModelsAddedExisting": "புதிய மாடல்கள் எதுவும் சேர்க்கப்படவில்லை (அனைத்தும் ஏற்கனவே உள்ளன).",
+ "importDoneCount": "✓ முடிந்தது! {count, plural, one {# மாடல் இறக்குமதி செய்யப்பட்டது.} other {# மாடல்கள் இறக்குமதி செய்யப்பட்டன.}}",
+ "unexpectedErrorOccurred": "எதிர்பாராத பிழை ஏற்பட்டது",
"getApiKey": "API விசையை பெறவும்",
"getApiKeyDescription": "API விசையை பதிவு செய்யவும் அல்லது பதிவு செய்யவும்",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# இணைப்பு} other {# இணைப்புகள்}}",
"messagesPath": "messages",
"responsesPath": "responses",
"chatCompletionsPath": "chat/completions",
- "add": "Add",
- "edit": "Edit",
- "delete": "Delete",
+ "add": "சேர்",
+ "edit": "திருத்து",
+ "delete": "நீக்கு",
"anthropic": "Anthropic",
"openai": "OpenAI",
- "singleConnectionPerCompatible": "Only one connection is allowed per compatible node. Add another node if you need more connections.",
- "connections": "Connections",
- "providerProxyTitleConfigured": "Provider proxy: {host}",
- "configured": "configured",
- "providerProxyConfigureHint": "Configure proxy for all connections of this provider",
- "providerProxy": "Provider Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
- "noConnectionsYet": "No connections yet",
- "addFirstConnectionHint": "Add your first connection to get started",
- "addConnection": "Add Connection",
- "availableModels": "Available Models",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
- "pageAutoRefresh": "Page will refresh automatically...",
- "statusDisabled": "disabled",
- "statusConnected": "connected",
- "statusRuntimeIssue": "runtime issue",
- "statusAuthFailed": "auth failed",
- "statusRateLimited": "rate limited",
- "statusNetworkIssue": "network issue",
- "statusTestUnsupported": "test unsupported",
- "statusUnavailable": "unavailable",
- "statusFailed": "failed",
- "statusError": "error",
- "oauthAccount": "OAuth Account",
- "errorTypeRuntime": "Local runtime",
- "errorTypeUpstreamAuth": "Upstream auth",
- "errorTypeMissingCredential": "Missing credential",
- "errorTypeRefreshFailed": "Refresh failed",
- "errorTypeTokenExpired": "Token expired",
- "errorTypeRateLimited": "Rate limited",
- "errorTypeUpstreamUnavailable": "Upstream unavailable",
- "errorTypeNetworkError": "Network error",
- "errorTypeTestUnsupported": "Test unsupported",
- "errorTypeUpstreamError": "Upstream error",
+ "singleConnectionPerCompatible": "இணக்கமான ஒவ்வொரு முனையத்திற்கும் ஒரு இணைப்பு மட்டுமே அனுமதிக்கப்படும். மேலும் இணைப்புகள் தேவைப்பட்டால் மற்றொரு முனையத்தைச் சேர்க்கவும்.",
+ "connections": "இணைப்புகள்",
+ "providerProxyTitleConfigured": "வழங்குநர் ப்ராக்ஸி: {host}",
+ "configured": "உள்ளமைக்கப்பட்டது",
+ "providerProxyConfigureHint": "இந்த வழங்குநரின் அனைத்து இணைப்புகளுக்கும் ப்ராக்ஸியை உள்ளமைக்கவும்",
+ "providerProxy": "வழங்குநர் ப்ராக்ஸி",
+ "repairEnv": "env-ஐச் சீரமை",
+ "repairEnvWorking": "சீரமைக்கப்படுகிறது...",
+ "repairEnvHint": "ஏற்கனவே உள்ள மதிப்புகளை மேலெழுதாமல், விடுபட்ட OAuth இயல்புநிலைகளை .env-இல் மீட்டமைக்கவும்.",
+ "repairEnvSuccess": "OAuth இயல்புநிலைகள் மீட்டமைக்கப்பட்டன",
+ "repairEnvFailed": ".env-ஐச் சீரமைக்க முடியவில்லை",
+ "noConnectionsYet": "இதுவரை இணைப்புகள் இல்லை",
+ "addFirstConnectionHint": "தொடங்குவதற்கு உங்கள் முதல் இணைப்பைச் சேர்க்கவும்",
+ "addConnection": "இணைப்பைச் சேர்",
+ "availableModels": "கிடைக்கக்கூடிய மாதிரிகள்",
+ "builtInModels": "உள்ளமைக்கப்பட்ட மாதிரிகள்",
+ "builtInModelsHint": "இந்த வழங்குநருக்கான பதிவக மாதிரிகள். இணக்கத்தன்மை விருப்பங்களை அமைக்க பென்சில் ஐகானைப் பயன்படுத்தவும்.",
+ "pageAutoRefresh": "பக்கம் தானாகவே புதுப்பிக்கப்படும்...",
+ "statusDisabled": "முடக்கப்பட்டது",
+ "statusConnected": "இணைக்கப்பட்டது",
+ "statusRuntimeIssue": "இயக்கநேரச் சிக்கல்",
+ "statusAuthFailed": "அங்கீகாரம் தோல்வியடைந்தது",
+ "statusRateLimited": "விகித வரம்பை எட்டியது",
+ "statusNetworkIssue": "பிணையச் சிக்கல்",
+ "statusTestUnsupported": "சோதனை ஆதரிக்கப்படவில்லை",
+ "statusUnavailable": "கிடைக்கவில்லை",
+ "statusFailed": "தோல்வியடைந்தது",
+ "statusError": "பிழை",
+ "oauthAccount": "OAuth கணக்கு",
+ "errorTypeRuntime": "உள்ளூர் இயக்கநேரம்",
+ "errorTypeUpstreamAuth": "மேல்நிலை அங்கீகாரம்",
+ "errorTypeMissingCredential": "நற்சான்று இல்லை",
+ "errorTypeRefreshFailed": "புதுப்பித்தல் தோல்வியடைந்தது",
+ "errorTypeTokenExpired": "டோக்கன் காலாவதியானது",
+ "errorTypeRateLimited": "விகித வரம்பை எட்டியது",
+ "errorTypeUpstreamUnavailable": "மேல்நிலைச் சேவை கிடைக்கவில்லை",
+ "errorTypeNetworkError": "பிணையப் பிழை",
+ "errorTypeTestUnsupported": "சோதனை ஆதரிக்கப்படவில்லை",
+ "errorTypeUpstreamError": "மேல்நிலைச் சேவைப் பிழை",
"errorTypeCreditsExhausted": "கிரெடிட்கள் இல்லை",
"errorTypeBanned": "403 தடைசெய்யப்பட்டது",
- "proxySourceGlobal": "Global",
- "proxySourceProvider": "Provider",
- "proxySourceKey": "Key",
+ "proxySourceGlobal": "உலகளாவிய",
+ "proxySourceProvider": "வழங்குநர்",
+ "proxySourceKey": "விசை",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"proxyOn": "ப்ராக்ஸி ஆன்",
"proxyOff": "நேரடி (ப்ராக்ஸியைத் தவிர்க்கவும்)",
@@ -5464,31 +5471,31 @@
"perKeyProxyDisabledTitle": "இந்த வழங்குநருக்கு ஒரு கீக்கான ப்ராக்ஸி ஒதுக்கீடு முடக்கப்பட்டுள்ளது",
"autoPriority": "Auto: {priority}",
"proxy": "Proxy",
- "retestAuthentication": "Retest authentication",
- "retest": "Retest",
- "disableConnection": "Disable connection",
- "enableConnection": "Enable connection",
- "reauthenticateConnection": "Re-authenticate this connection",
- "proxyConfig": "Proxy config",
- "aliasExistsAlert": "Alias \"{alias}\" already exists. Please use a different model or edit existing alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
- "openRouterAnyModelHint": "OpenRouter supports any model. Add models and create aliases for quick access.",
- "modelIdFromOpenRouter": "Model ID (from OpenRouter)",
+ "retestAuthentication": "அங்கீகாரத்தை மீண்டும் சோதிக்கவும்",
+ "retest": "மீண்டும் சோதிக்கவும்",
+ "disableConnection": "இணைப்பை முடக்கவும்",
+ "enableConnection": "இணைப்பை இயக்கவும்",
+ "reauthenticateConnection": "இந்த இணைப்பை மீண்டும் அங்கீகரிக்கவும்",
+ "proxyConfig": "பதிலி உள்ளமைவு",
+ "aliasExistsAlert": "\"{alias}\" என்ற மாற்றுப்பெயர் ஏற்கனவே உள்ளது. வேறொரு மாதிரியைப் பயன்படுத்தவும் அல்லது ஏற்கனவே உள்ள மாற்றுப்பெயரைத் திருத்தவும்.",
+ "aliasInputPlaceholder": "மாற்றுப்பெயர்",
+ "clickToSetAlias": "மாற்றுப்பெயரை அமைக்கக் கிளிக் செய்யவும்",
+ "clickToEditAlias": "மாற்றுப்பெயர்: {alias} (திருத்தக் கிளிக் செய்யவும்)",
+ "openRouterAnyModelHint": "OpenRouter எந்த மாதிரியையும் ஆதரிக்கிறது. விரைவான அணுகலுக்காக மாதிரிகளைச் சேர்த்து மாற்றுப்பெயர்களை உருவாக்கவும்.",
+ "modelIdFromOpenRouter": "மாதிரி ID (OpenRouter இலிருந்து)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
- "customModels": "Custom Models",
- "customModelsHint": "Add model IDs not in the default list. These will be available for routing.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "customModels": "தனிப்பயன் மாதிரிகள்",
+ "customModelsHint": "இயல்புநிலைப் பட்டியலில் இல்லாத மாதிரி ID-களைச் சேர்க்கவும். இவை வழித்தடத் தேர்வுக்குக் கிடைக்கும்.",
+ "normalizeToolCallIdLabel": "கருவி அழைப்பு ID-களை 9 எழுத்துகளாக இயல்பாக்கவும் (எ.கா. Mistral)",
+ "preserveDeveloperRoleLabel": "OpenAI Responses டெவலப்பர் பங்கைத் தக்கவைக்கவும் (system ஆக மாற்ற வேண்டாம்)",
+ "compatAdjustmentsTitle": "இணக்கத்தன்மை",
+ "compatButtonLabel": "இணக்கத்தன்மை",
+ "compatToolIdShort": "கருவி ID 9",
+ "compatDeveloperShort": "டெவலப்பர் பங்கு",
+ "compatDoNotPreserveDeveloper": "டெவலப்பர் பங்கைத் தக்கவைக்க வேண்டாம்",
+ "compatBadgeNoPreserve": "தக்கவைக்க வேண்டாம்",
+ "compatProtocolLabel": "கிளையன்ட் கோரிக்கை நெறிமுறை",
+ "compatProtocolHint": "OmniRoute இந்தக் கோரிக்கை வடிவத்தைக் (OpenAI Chat, Responses API அல்லது Anthropic Messages) கண்டறியும்போது இந்த விருப்பங்கள் பயன்படுத்தப்படும்.",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,84 +5537,84 @@
"interceptFetchHint": "சொந்த web_fetch கருவி அழைப்புகளை OmniRoute இன் /v1/web/fetch க்கு மீண்டும் எழுதவும்.",
"interceptionLoadError": "இடைமறிப்பு அமைப்புகளை ஏற்றுவதில் தோல்வி: {error}",
"interceptionSaveError": "இடைமறிப்பு அமைப்புகளைச் சேமிப்பதில் தோல்வி: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
- "perModelQuotaLabel": "Per-Model Quota",
- "perModelQuotaDescription": "When enabled, 429/404 errors only lock the specific model, not the entire connection. Use for providers with per-model rate limits (e.g., ModelScope).",
+ "ccAliasSectionTitle": "Claude Code இல் காட்டவும் (claude/…)",
+ "ccAliasSectionHint": "Claude Code இன் நுழைவாயில் மாதிரிக் கண்டறிதல் அவற்றைப் பட்டியலிடும் வகையில், இந்த வழங்குநரின் மாதிரிகளை claude/<provider>/<model> பிரதிபலிப்பு ID-களின் கீழ் அறிவிக்கவும். இயல்பாக இது முடக்கப்பட்டிருக்கும் — இதை இயக்கினால் அனைத்து கிளையன்ட்களுக்குமான பட்டியல் உள்ளீடுகள் இரட்டிப்பாகும்.",
+ "ccAliasProviderLevelLabel": "வழங்குநரின் இயல்புநிலை",
+ "ccAliasModelOverridesLabel": "ஒவ்வொரு மாதிரிக்குமான மேலெழுதல்கள்",
+ "ccAliasModelOverrideAriaLabel": "{modelId} க்கான மேலெழுதல்",
+ "ccAliasStateInherit": "மரபுரிமையாகப் பெறவும்",
+ "ccAliasStateOn": "இயக்கப்பட்டது",
+ "ccAliasStateOff": "முடக்கப்பட்டது",
+ "ccAliasAddModelPlaceholder": "மாடல் ID (எ.கா. gpt-4o)",
+ "ccAliasAddModelButton": "மேலெழுதலைச் சேர்",
+ "ccAliasLoadError": "கண்டறிதல் மாற்றுப்பெயர் அமைப்புகளை ஏற்ற முடியவில்லை: {error}",
+ "ccAliasSaveError": "கண்டறிதல் மாற்றுப்பெயர் அமைப்பைச் சேமிக்க முடியவில்லை: {error}",
+ "compatUpstreamHeadersLabel": "கூடுதல் அப்ஸ்ட்ரீம் தலைப்புகள்",
+ "compatUpstreamHeadersHint": "உயர்-அதிகார அமைப்பு — வழங்குநரின் API நற்சான்றுகளைத் திருத்துவதற்கு இணையான நம்பிக்கை நிலை கொண்டது; நம்பகமான நிர்வாகிகள் மட்டுமே இதைப் பயன்படுத்த வேண்டும். வழங்குநரின் API விசையிலிருந்து OmniRoute அங்கீகாரத்தைச் சேர்த்த பிறகு இது ஒன்றிணைக்கப்படும். தனிப்பயன் தலைப்பு ஏற்கனவே உள்ள தலைப்பின் அதே பெயரைப் பயன்படுத்தினால் (எ.கா. Authorization), தானாக உருவாக்கப்பட்ட தலைப்பை (Bearer டோக்கன் உட்பட) உங்கள் மதிப்பு முழுமையாக மாற்றிவிடும் — அமைப்புகளில் உள்ள விசையை அல்லாமல், நீங்கள் உள்ளிட்டதை மட்டுமே அப்ஸ்ட்ரீம் காணும். தவறான உள்ளமைவு 401 பிழையை அல்லது செயலிழந்த அப்ஸ்ட்ரீம் அங்கீகாரத்தை ஏற்படுத்தலாம். ஒவ்வொரு தலைப்புக்கும் ஒரு வரி (எ.கா. சில கேட்வேகளுக்கான கூடுதல் Authentication). முன்னோட்டமிட மதிப்பின் மீது சுட்டியை நகர்த்தவும் அல்லது அதில் கவனம் செலுத்தவும். கவனம் நீங்கும்போது, வெளியில் கிளிக் செய்யும்போது அல்லது இந்தப் பலகையை மூடும்போது சேமிக்கப்படும்.",
+ "compatUpstreamHeaderName": "தலைப்புப் பெயர்",
+ "compatUpstreamHeaderValue": "மதிப்பு",
+ "compatUpstreamAddRow": "தலைப்பைச் சேர்",
+ "compatUpstreamRemoveRow": "வரிசையை அகற்று",
+ "compatBadgeUpstreamHeaders": "தலைப்புகள்",
+ "perModelQuotaLabel": "ஒவ்வொரு மாடலுக்குமான ஒதுக்கீடு",
+ "perModelQuotaDescription": "இதை இயக்கும்போது, 429/404 பிழைகள் முழு இணைப்பையும் அல்லாமல் குறிப்பிட்ட மாடலை மட்டுமே பூட்டும். ஒவ்வொரு மாடலுக்கும் தனித்தனி விகித வரம்புகளைக் கொண்ட வழங்குநர்களுக்கு இதைப் பயன்படுத்தவும் (எ.கா., ModelScope).",
"importFreeModelsOnlyLabel": "இலவச மாடல்களை மட்டும் இறக்குமதி செய்யவும்",
"importFreeModelsOnlyHint": "இயக்கப்பட்டால், இந்த வழங்குநரின் இலவச மாடல்கள் மட்டுமே இறக்குமதி செய்யப்படும். கட்டண மாடல்கள் தவிர்க்கப்படும்.",
- "perModelQuotaToggle": "Per-Model Quota Toggle",
- "modelId": "Model ID",
- "customModelPlaceholder": "e.g. gpt-4.5-turbo",
- "loading": "Loading...",
- "removeCustomModel": "Remove custom model",
- "noCustomModels": "No custom models added yet.",
- "allSuggestedAliasesExist": "All suggested aliases already exist. Please choose a different model or remove conflicting aliases.",
- "failedSaveCustomModel": "Failed to save custom model",
- "modelAddedSuccess": "Model {modelId} added successfully",
- "failedAddModelTryAgain": "Failed to add model. Please try again.",
- "failedSaveImportedModel": "Failed to save imported model to custom database",
- "failedImportModelsTryAgain": "Failed to import models. Please try again.",
- "failedRemoveModelFromDatabase": "Failed to remove model from database",
- "modelRemovedSuccess": "Model removed successfully",
- "failedDeleteModelTryAgain": "Failed to delete model. Please try again.",
- "compatibleModelsDescription": "Add {type}-compatible models manually or import them from the /models endpoint.",
+ "perModelQuotaToggle": "ஒவ்வொரு மாடலுக்குமான ஒதுக்கீட்டு நிலைமாற்றி",
+ "modelId": "மாடல் ID",
+ "customModelPlaceholder": "எ.கா. gpt-4.5-turbo",
+ "loading": "ஏற்றப்படுகிறது...",
+ "removeCustomModel": "தனிப்பயன் மாடலை அகற்று",
+ "noCustomModels": "தனிப்பயன் மாடல்கள் எதுவும் இன்னும் சேர்க்கப்படவில்லை.",
+ "allSuggestedAliasesExist": "பரிந்துரைக்கப்பட்ட அனைத்து மாற்றுப்பெயர்களும் ஏற்கனவே உள்ளன. வேறொரு மாடலைத் தேர்ந்தெடுக்கவும் அல்லது முரண்படும் மாற்றுப்பெயர்களை அகற்றவும்.",
+ "failedSaveCustomModel": "தனிப்பயன் மாடலைச் சேமிக்க முடியவில்லை",
+ "modelAddedSuccess": "மாடல் {modelId} வெற்றிகரமாகச் சேர்க்கப்பட்டது",
+ "failedAddModelTryAgain": "மாடலைச் சேர்க்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "failedSaveImportedModel": "இறக்குமதி செய்யப்பட்ட மாடலைத் தனிப்பயன் தரவுத்தளத்தில் சேமிக்க முடியவில்லை",
+ "failedImportModelsTryAgain": "மாடல்களை இறக்குமதி செய்ய முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "failedRemoveModelFromDatabase": "தரவுத்தளத்திலிருந்து மாடலை அகற்ற முடியவில்லை",
+ "modelRemovedSuccess": "மாடல் வெற்றிகரமாக அகற்றப்பட்டது",
+ "failedDeleteModelTryAgain": "மாடலை நீக்க முடியவில்லை. மீண்டும் முயற்சிக்கவும்.",
+ "compatibleModelsDescription": "{type}-இணக்கமான மாடல்களைக் கைமுறையாகச் சேர்க்கவும் அல்லது /models முனைப்புள்ளியிலிருந்து அவற்றை இறக்குமதி செய்யவும்.",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
- "apiKeyValidationFailed": "API key validation failed. Please check your key and try again.",
- "addProviderApiKeyTitle": "Add {provider} API Key",
- "checking": "Checking...",
- "check": "Check",
- "valid": "Valid",
- "invalid": "Invalid",
- "creating": "Creating...",
- "validationChecksAnthropicCompatible": "Validation checks {provider} by verifying the API key.",
- "validationChecksOpenAiCompatible": "Validation checks {provider} via /models on your base URL.",
- "priorityLabel": "Priority",
- "saving": "Saving...",
- "save": "Save",
- "editConnection": "Edit Connection",
- "accountName": "Account name",
+ "apiKeyValidationFailed": "API விசை சரிபார்ப்பு தோல்வியடைந்தது. உங்கள் விசையைச் சரிபார்த்து மீண்டும் முயற்சிக்கவும்.",
+ "addProviderApiKeyTitle": "{provider} API விசையைச் சேர்",
+ "checking": "சரிபார்க்கப்படுகிறது...",
+ "check": "சரிபார்",
+ "valid": "செல்லுபடியாகும்",
+ "invalid": "செல்லுபடியாகாது",
+ "creating": "உருவாக்கப்படுகிறது...",
+ "validationChecksAnthropicCompatible": "API விசையைச் சரிபார்ப்பதன் மூலம் {provider} சரிபார்க்கப்படுகிறது.",
+ "validationChecksOpenAiCompatible": "உங்கள் அடிப்படை URL-இல் உள்ள /models வழியாக {provider} சரிபார்க்கப்படுகிறது.",
+ "priorityLabel": "முன்னுரிமை",
+ "saving": "சேமிக்கிறது...",
+ "save": "சேமி",
+ "editConnection": "இணைப்பைத் திருத்து",
+ "accountName": "கணக்குப் பெயர்",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "நிலைச் சரிபார்ப்பு (நிமி)",
"healthCheckHint": "Proactive token refresh interval. 0 = disabled.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
- "failedTestConnection": "Failed to test connection",
- "failed": "Failed",
- "leaveBlankKeepCurrentApiKey": "Leave blank to keep the current API key.",
- "editCompatibleTitle": "Edit {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
- "apiKeyForCheck": "API Key (for Check)",
+ "deselectAllModels": "அனைத்துத் தேர்வுகளையும் நீக்கு",
+ "modelsActiveCount": "{active}/{total} செயலில் உள்ளன",
+ "noModelsMatch": "\"{filter}\" உடன் பொருந்தும் மாதிரிகள் எதுவும் இல்லை",
+ "groupLabel": "சூழல்",
+ "groupPlaceholder": "எ.கா. eKaizen, தனிப்பட்டது",
+ "failedTestConnection": "இணைப்பைச் சோதிக்க முடியவில்லை",
+ "failed": "தோல்வியடைந்தது",
+ "leaveBlankKeepCurrentApiKey": "தற்போதைய API விசையைத் தொடர்ந்து பயன்படுத்த, இதைக் காலியாக விடவும்.",
+ "editCompatibleTitle": "{type} இணக்கமானதைத் திருத்து",
+ "compatibleBaseUrlHint": "உங்கள் {type}-இணக்கமான API-இன் மூல URL. தனிப்பயன் இறுதிப்புள்ளிப் பாதைகளுக்கு மேம்பட்ட அமைப்புகளைப் பயன்படுத்தவும்.",
+ "apiKeyForCheck": "API விசை (சரிபார்ப்புக்கு)",
"testModelIdLabel": "மாடல் ஐடி (விருப்பத்திற்குரியது)",
"testModelIdPlaceholder": "எ.கா. my-model-id",
"testModelIdHint": "வழங்குநரிடம் /models இறுதிப்புள்ளி இல்லை எனில், அதற்குப் பதிலாக /chat/completions வழியாக சரிபார்க்க மாடல் ஐடியை உள்ளிடவும்.",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "compatibleProdPlaceholder": "{type} இணக்கமானது (உற்பத்தி)",
+ "tokenRefreshed": "டோக்கன் வெற்றிகரமாகப் புதுப்பிக்கப்பட்டது",
+ "tokenRefreshFailed": "டோக்கனைப் புதுப்பிக்க முடியவில்லை",
"cursorSessionUnchanged": "அந்த அமர்வு ஏற்கனவே நடப்பில் உள்ளது",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "அங்கீகாரத்தைப் பயன்படுத்து",
+ "exportCodexAuthFile": "அங்கீகாரத்தை ஏற்றுமதி செய்",
"applyClaudeAuthLocal": "அங்கீகாரத்தைப் பயன்படுத்தவும்",
"exportClaudeAuthFile": "ஏற்றுமதி அங்கீகாரம்",
"importClaudeAuth": "இறக்குமதி அங்கீகாரம்",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} தோல்வியடைந்தது",
"codexImportBulkZipExtracting": "ZIP பிரித்தெடுக்கிறது…",
"codexImportBulkZipError": "ZIP பிரித்தெடுக்க முடியவில்லை",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "மேம்பட்ட அமைப்புகள்",
+ "chatPathLabel": "அரட்டை இறுதிப்புள்ளிப் பாதை",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "தரமற்ற API-களைக் கொண்ட வழங்குநர்களுக்கான தனிப்பயன் அரட்டைப் பாதை (எ.கா. /v4/chat/completions)",
+ "modelsPathLabel": "மாதிரிகள் இறுதிப்புள்ளிப் பாதை",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "சரிபார்ப்புக்கான தனிப்பயன் மாதிரிப் பாதை (எ.கா. /v4/models)",
"clientIdentityLabel": "கிளையண்ட் அடையாளம்",
"clientIdentityHint": "விருப்பத்திற்குரியது. இணக்கமான கேட்வேகளுக்குத் தேவைப்படும் பட்சத்தில், அறியப்பட்ட CLI உடன் பொருந்தக்கூடிய கிளையன்ட் கைரேகை ஹெடர்களை (எ.கா. User-Agent) சேர்க்கிறது.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "செயலிழக்கச் செய்யப்பட்டது (கைமுறையாக)",
+ "statusBanned": "தடைசெய்யப்பட்டது / Sandbox விதிமீறல்",
+ "statusCreditsExhausted": "போதிய இருப்பு இல்லை / ஒதுக்கீடு தீர்ந்துவிட்டது",
+ "showEmails": "அனைத்து மின்னஞ்சல்களையும் காட்டு",
+ "hideEmails": "அனைத்து மின்னஞ்சல்களையும் மறை",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "மற்றொரு API விசையைச் சேர்க்கவும் அல்லது பல விசைகளை ஒட்டவும்",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "தொகுப்பான் நுழைவாயில்கள்",
"enterpriseCloud": "எண்டர்பிரைஸ் & கிளவுட்",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "API வடிவமைப்பு லேபிள்",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "API பிராந்தியம் சீனா",
+ "apiRegionHint": "API பிராந்தியக் குறிப்பு",
+ "apiRegionInternational": "API பிராந்தியம் சர்வதேசம்",
+ "apiRegionLabel": "API பிராந்திய லேபிள்",
+ "apikey": "API விசை",
+ "audio": "ஆடியோ",
+ "audioProvidersHeading": "ஆடியோ வழங்குநர்கள் தலைப்பு",
"cloudAgentProviders": "கிளவுட் ஏஜென்ட் வழங்குநர்கள்",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "ஆடியோ குறும் லேபல்",
+ "azureOpenAiBaseUrlHint": "Azure Open Ai அடிப்படை URL குறிப்பு",
+ "bailianBaseUrlHint": "Bailian அடிப்படை URL குறிப்பு",
+ "claudeWebCookieHint": "claude.ai-ஐத் திறக்கவும் → DevTools → Application → Cookies → claude.ai என்பதற்குச் சென்று, 'sessionKey' மதிப்பை நகலெடுக்கவும். Cloudflare-க்காக cf_clearance, __cf_bm, _cfuvid ஆகியவையும் தேவை.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web குக்கீ குறிப்பு",
+ "blackboxWebCookiePlaceholder": "Blackbox Web குக்கீ இடநிரப்பி",
"t3ChatWebCookieHint": "t3.chat → DevTools → Application → Local Storage → https://t3.chat ஐ திறக்கவும், 'convex-session-id' ஐ நகலெடுக்கவும். பின்னர் DevTools → Networkஐத் திறந்து, எந்த அரட்டை கோரிக்கையிலிருந்தும் முழு குக்கீ தலைப்பையும் நகலெடுக்கவும். இரண்டு மதிப்புகளையும் கீழே உள்ள புலங்களில் ஒட்டவும்.",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web குக்கீ குறிப்பு",
"blockClaudeExtraUsageDescription": "இது செயல்படுத்தப்பட்டால், OmniRoute இந்த Claude இணைப்பை கிடைக்காததாக குறிக்கிறது, பயன்பாட்டு API வரிசைப்படுத்தப்பட்ட கூடுதல் பயன்பாட்டைப் புகாரளிக்கும்போது, எனவே மீள்பார்வை கட்டணத்தை அடிப்படையாகக் கொண்டு கூடுதல் பில்லிங்கில் தொடர்வதற்குப் பதிலாக மற்றொரு இணைப்புக்கு மாறுகிறது.",
"blockClaudeExtraUsageLabel": "கிளோட் கூடுதல் பயன்பாட்டை தடிக்கவும்",
"disableCoolingDescription": "தற்காலிக கூல்டவுனைத் தவிர்க்கவும், இதனால் மீட்டெடுக்கக்கூடிய பிழைகளுக்குப் பிறகும் இந்த இணைப்பு தகுதியுடையதாக இருக்கும் (தடைசெய்யப்பட்ட/காலாவதியான போன்ற இறுதி நிலைகள் இன்னும் பொருந்தும்).",
"disableCoolingLabel": "இந்த இணைப்பிற்கான கூல்டவுனை முடக்கவும்",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 விசை சேர்க்கப்பட்டது} other {# விசைகள் சேர்க்கப்பட்டன}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 நகல் தவிர்க்கப்பட்டது} other {# நகல்கள் தவிர்க்கப்பட்டன}}",
+ "bulkPasteHint": "ஒவ்வொரு வரியிலும் ஓர் API விசையை ஒட்டவும். காலியான வரிகள் புறக்கணிக்கப்படும்; நகல் விசைகள் தவிர்க்கப்படும்.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "மறைக்கப்பட்ட Claude சிந்தனை ஸ்ட்ரீம்கள் தேவைப்படும் CC Compatible அப்ஸ்ட்ரீம்களுக்காக redact-thinking பீட்டா தலைப்பைச் சேர்க்கிறது.",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking பீட்டாவை இயக்கு",
+ "ccCompatibleSummarizeThinkingDescription": "ஆதரிக்கப்படும் Claude மாதிரிகள் காட்சிப்படுத்தக்கூடிய சிந்தனை மாற்றங்களை ஸ்ட்ரீம் செய்யும் வகையில், CC Compatible சிந்தனைக் கோரிக்கைகளில் `display: \"summarized\"` என்பதைச் சேர்க்கிறது.",
+ "ccCompatibleSummarizeThinkingLabel": "சுருக்கப்பட்ட சிந்தனைக் காட்சியை இயக்கு",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "கிடைக்கும்போது Codex கோரிக்கைகளுக்கு முன்னுரிமைச் சேவை அடுக்கைப் பயன்படுத்தவும்.",
+ "codexFastServiceTierLabel": "Codex விரைவு சேவை அடுக்கு",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "இணக்கமான அப்ஸ்ட்ரீம் தலைப்புப் பெயர் இடநிரப்பி",
+ "compatUpstreamHeaderValuePlaceholder": "இணக்கமான அப்ஸ்ட்ரீம் தலைப்பு மதிப்பு இடநிரப்பி",
+ "compatible": "இணக்கமானது",
+ "configuredCount": "உள்ளமைக்கப்பட்ட எண்ணிக்கை",
+ "consoleApiKeyOracleHint": "கன்சோல் API விசை Oracle குறிப்பு",
+ "consoleApiKeyOracleLabel": "கன்சோல் API விசை Oracle லேபல்",
+ "consoleApiKeyOraclePlaceholder": "கன்சோல் API விசை Oracle இடநிரப்பி",
+ "newApiUserIdLabel": "New-API பயனர் ID",
+ "newApiUserIdPlaceholder": "எ.கா. 12345",
+ "newApiUserIdHint": "ஒதுக்கீட்டு இருப்பைப் பெறுவதற்காக கன்சோல் API விசையுடன் சேர்த்துப் பயன்படுத்தப்படும் AgentRouter New-Api-User தலைப்பு மதிப்பு.",
"newApiAggregatorToggleLabel": "அக்ரிகேட்டர் கேட்வே",
"newApiAggregatorToggleHint": "புதிய-API / ஒன்-API / Sub2API தொகுப்பாளர் நொடிகளுக்கான சமநிலை கண்டறிதலை செயல்படுத்தவும். டாஷ்போர்டில் சமநிலை அடையாளம் மற்றும் குவோட்டா-முன் வழிமுறை சிக்கிய கணக்குகளை தவிர்க்கும்.",
"newApiAggregatorConsoleApiKeyHint": "அக்ரிகேட்டரின் /api/user/self எண்ட்பாயிண்டிற்கான சிஸ்டம் அணுகல் டோக்கன். ரவுடிங் API விசை அல்ல.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "புதிய-API / ஒன்-API / Sub2API தொகுப்பாளர் பொருந்தும் நொடிகளுக்கான சமநிலை கண்டுபிடிப்பை இயக்கவும்",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "தனிப்பயன் பயனர் முகவர் குறிப்பு",
+ "customUserAgentLabel": "தனிப்பயன் பயனர் முகவர் லேபல்",
+ "databricksBaseUrlHint": "Databricks அடிப்படை URL குறிப்பு",
+ "defaultThinkingStrengthHint": "ஒரு கோரிக்கையில் பகுத்தறிவு முயற்சி குறிப்பிடப்படாதபோது பயன்படுத்தப்படும்.",
+ "defaultThinkingStrengthLabel": "இயல்புநிலை சிந்தனை வலிமை",
+ "deleteAllExtraApiKeys": "அனைத்தையும் நீக்கு",
+ "excludedModelsHint": "விலக்கப்பட்ட மாதிரிகள் குறிப்பு",
+ "excludedModelsLabel": "விலக்கப்பட்ட மாதிரிகள் லேபல்",
+ "excludedModelsPlaceholder": "விலக்கப்பட்ட மாதிரிகள் இடநிரப்பி",
+ "expirationBannerExpired": "காலாவதி அறிவிப்புப் பட்டை: காலாவதியானது",
+ "expirationBannerExpiredDesc": "காலாவதி பதாகை காலாவதியானதற்கான விளக்கம்",
+ "expirationBannerExpiringSoon": "காலாவதி பதாகை விரைவில் காலாவதியாகும்",
+ "expirationBannerExpiringSoonDesc": "காலாவதி பதாகை விரைவில் காலாவதியாகும் என்பதற்கான விளக்கம்",
+ "extraApiKeyMasked": "விசை {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "கூடுதல் API விசைகளுக்கான குறிப்பு",
+ "extraApiKeysLabel": "கூடுதல் API விசைகளுக்கான லேபிள்",
+ "apiKeyHealthLabel": "API விசையின் நிலை",
+ "apiKeyStatusActive": "செயலில் உள்ளது",
+ "apiKeyStatusWarning": "எச்சரிக்கை ({count} தோல்விகள்)",
+ "apiKeyStatusInvalid": "செல்லாதது",
+ "primaryKey": "முதன்மை விசை",
+ "apiKeyInvalidAlert": "இணைப்புகளில் ஏற்பட்ட அங்கீகாரத் தோல்விகள் காரணமாக {count} API விசை(கள்) செல்லாதவையாகக் குறிக்கப்பட்டுள்ளன: {connections}. சுழற்சியில் அவை தவிர்க்கப்படும். மதிப்பாய்வு செய்ய கிளிக் செய்யவும்.",
+ "apiKeyInvalidAlertTitle": "API விசை நிலை எச்சரிக்கை",
+ "apiKeyWarningAlert": "இணைப்புகளில் அதிகரித்த தோல்வி விகிதம் காரணமாக {count} API விசை(கள்) எச்சரிக்கை நிலையில் உள்ளன: {connections}. சுழற்சிச் சிக்கல்களைத் தவிர்க்க மதிப்பாய்வு செய்யவும்.",
+ "apiKeyWarningAlertTitle": "API விசை எச்சரிக்கை",
+ "googlePseInfo": "Google Pse தகவல்",
"antigravityProjectIdHint": "ஆண்டிகிராவிட்டி கிளவுட் கோட் கோரிக்கைகளுக்கான விருப்ப மேலெழுதல். Google OAuth இன் போது கண்டுபிடிக்கப்பட்ட திட்டத்தைப் பயன்படுத்த, காலியாக விடவும்.",
"antigravityClientProfileLabel": "கிளையன்ட் சுயவிவரம்",
"antigravityClientProfileHint": "API-க்கு OmniRoute எந்த Antigravity கிளையன்ட் அடையாளத்தை வழங்குகிறது என்பதைத் தேர்வுசெய்யவும்.",
@@ -5861,18 +5868,18 @@
"tierFast": "வேகமான",
"antigravityProjectIdLabel": "Google Cloud Project ஐடி",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok இணையக் குக்கீ இடநிரப்பி",
+ "herokuBaseUrlHint": "Heroku அடிப்படை URL குறிப்பு",
+ "hideEmail": "மின்னஞ்சலை மறை",
+ "imageProviders": "பட வழங்குநர்கள்",
"videoProviders": "வீடியோ உருவாக்கம்",
"embeddingRerankProviders": "உட்பொதிப்புகள் & மறுவரிசைப்படுத்துதல்",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "படங்களுக்கான குறுகிய லேபிள்",
+ "llmProviders": "Llm வழங்குநர்கள்",
+ "localProviderApiKeyOptionalHint": "உள்ளூர் வழங்குநரின் API விசை விருப்பத்திற்குரியது என்பதற்கான குறிப்பு",
+ "localProviderBaseUrlHint": "உள்ளூர் வழங்குநரின் அடிப்படை URL குறிப்பு",
+ "localProviders": "உள்ளூர் வழங்குநர்கள்",
+ "maxConcurrentWholeNumberError": "அதிகபட்ச ஒரேநேர எண்ணிக்கை முழு எண்ணாக இருக்க வேண்டும்",
"m365TierLabel": "Copilot அடுக்கு",
"m365TierHint": "இந்த இணைப்பு எந்த Microsoft 365 Copilot மேற்பரப்பைப் பயன்படுத்துகிறது என்பதைத் தேர்வுசெய்யவும். தனிநபர் என்பது இயல்புநிலை நுகர்வோர் BizChat ஆகும்; கல்வி மற்றும் எண்டர்பிரைஸ் (வேலை) ஆகியவை அவற்றின் குத்தகைதாரர் மேற்பரப்புகளைத் தேர்வுசெய்கின்றன.",
"m365TierIndividualOption": "தனிநபர் (இயல்புநிலை)",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "மலிவானது",
"tierOverridePremium": "பிரீமியம்",
"tierOverrideHelpText": "மாதிரி விலையிலிருந்து OmniRoute அதை ஊகிப்பதற்குப் பதிலாக, இந்த வழங்குநரை ஒரு ரூட்டிங் அடுக்கில் பின் செய்யவும்.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark இணையக் குக்கீ குறிப்பு",
+ "museSparkWebCookiePlaceholder": "Muse Spark இணையக் குக்கீ இடநிரப்பி",
"oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "openCliTools": "Cli கருவிகளைத் திற",
+ "openSettings": "அமைப்புகளைத் திற",
+ "openaiResponsesStoreDescription": "சேமிக்கப்பட்ட பதில் நிலையைப் பராமரிக்க இணக்கமான Responses API கோரிக்கைகளை அனுமதிக்கவும்.",
+ "openaiResponsesStoreLabel": "OpenAI Responses சேமிப்பகம்",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search பகிரப்பட்ட விசைத் தகவல்",
+ "perplexityWebCookieHint": "Perplexity இணையக் குக்கீ குறிப்பு",
+ "perplexityWebCookiePlaceholder": "Perplexity இணையக் குக்கீ இடநிரப்பி",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "விகித வரம்பு மேலெழுதுதல்கள்",
"rateLimitOverridesMaxConcurrentHint": "இந்த இணைப்பிற்கான அதிகபட்ச ஒரே நேரத்தில் நிகழும் கோரிக்கைகளின் மேலெழுதுதல். கணக்கு அளவிலான வரம்பை மேலெழுதுகிறது.",
"rateLimitOverridesMaxConcurrentLabel": "அதிகபட்ச ஒரே நேரத்தில் நிகழும் கோரிக்கைகள் (விகித வரம்பு)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "விகித வரம்பு இடத்திற்காக ஒரு கோரிக்கை தோல்வியடைவதற்கு முன் காத்திருக்கக்கூடிய அதிகபட்ச நேரம் (ms). இந்த இணைப்பிற்கு மட்டும் உலகளாவிய மீட்சித்திறன் அமைப்பை மீறுகிறது.",
+ "rateLimitOverridesMaxWaitMsLabel": "அதிகபட்ச வரிசைக் காத்திருப்பு (ms)",
"rateLimitOverridesMinTimeHint": "கோரிக்கைகளுக்கு இடையிலான குறைந்தபட்ச நேரம் (மில்லிசெகண்ட்). இயல்புநிலை விகித வரம்பியின் தாமதத்தை மேலெழுதுகிறது.",
"rateLimitOverridesMinTimeLabel": "குறைந்தபட்ச இடைவெளி (ms)",
"rateLimitOverridesRpdHint": "இந்த இணைப்பிற்கான ஒரு நாளைக்கு அதிகபட்ச கோரிக்கைகள். வழங்குநர் இயல்புநிலையை மேலெழுதுகிறது.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (டோக்கன்கள்/நாள்)",
"rateLimitOverridesTpmHint": "இந்த இணைப்பிற்கான நிமிடத்திற்கு அதிகபட்ச டோக்கன்கள். வழங்குநரின் இயல்புநிலையை மேலெழுதுகிறது.",
"rateLimitOverridesTpmLabel": "TPM (டோக்கன்கள்/நிமிடம்)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
- "searchProviders": "Search Providers",
+ "refreshOauthTokenTitle": "OAuth டோக்கனைப் புதுப்பித்தல் தலைப்பு",
+ "regionHint": "பிராந்தியக் குறிப்பு",
+ "regionLabel": "பிராந்திய லேபிள்",
+ "removeThisKey": "இந்த விசையை அகற்று",
+ "routingTagsHint": "வழித்தடக் குறிச்சொற்கள் குறிப்பு",
+ "routingTagsLabel": "வழித்தடக் குறிச்சொற்கள் லேபிள்",
+ "routingTagsPlaceholder": "வழித்தடக் குறிச்சொற்கள் இடநிரப்பி",
+ "search": "தேடு",
+ "searchEngineIdHint": "தேடுபொறி ID குறிப்பு",
+ "searchEngineIdLabel": "தேடுபொறி ID லேபிள்",
+ "searchEngineIdRequired": "தேடுபொறி ID தேவை",
+ "searchProvider": "தேடல் வழங்குநர்",
+ "searchProviderDesc": "தேடல் வழங்குநர் விளக்கம்",
+ "searchProviders": "தேடல் வழங்குநர்கள்",
"searchByModel": "மாதிரி மூலம் தேடவும்…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "தேடல் வழங்குநர்கள் தலைப்பு",
+ "searxngBaseUrlHint": "Searxng அடிப்படை URL குறிப்பு",
+ "searxngInfo": "Searxng தகவல்",
+ "sessionCookieLabel": "அமர்வு குக்கி லேபிள்",
+ "showEmail": "மின்னஞ்சலைக் காட்டு",
+ "snowflakeBaseUrlHint": "Snowflake அடிப்படை URL குறிப்பு",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "குறிச்சொல் குழுக் குறிப்பு",
+ "tagGroupLabel": "குறிச்சொல் குழு லேபிள்",
+ "tagGroupPlaceholder": "குறிச்சொல் குழு இடநிரப்பி",
+ "testModel": "மாதிரியைச் சோதி",
+ "testingModel": "மாதிரி சோதிக்கப்படுகிறது",
"modelTestQuotaTooltip": "கோட்டா முடிந்தது — நாளை மீண்டும் தொடங்கும் அல்லது மேலதிகம் தேவை.",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "டோக்கன் காலாவதியானது என்ற அடையாளம்",
+ "tokenExpiredTitle": "டோக்கன் காலாவதியானது தலைப்பு",
+ "tokenExpiresSoonTitle": "டோக்கன் விரைவில் காலாவதியாகும் தலைப்பு",
+ "tokenShort": "குறுகிய டோக்கன்",
+ "totalKeysRotating": "{count, plural, one {1 விசை சுழற்சியில் உள்ளது} other {# விசைகள் சுழற்சியில் உள்ளன}}",
+ "unhideModel": "மாதிரியை மீண்டும் காட்டு",
+ "upstreamProxyProviders": "அப்ஸ்ட்ரீம் ப்ராக்ஸி வழங்குநர்கள்",
"validationModelIdHint": "API விசையைச் சரிபார்க்கப் பயன்படுத்தப்படும் மாடல். வழங்குநரின் முதல் கிடைக்கக்கூடிய மாடலைப் பயன்படுத்த காலியாக விடவும்.",
"validationModelIdLabel": "சரிபார்ப்பு மாடல்",
"validationModelIdPlaceholder": "எ.கா. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "உங்கள் Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) அல்லது OAuth access_token-ஐ ஒட்டவும்",
+ "webCookieProviders": "வலைக் குக்கி வழங்குநர்கள்",
+ "weeklyShort": "வாராந்திரச் சுருக்கம்",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo அடிப்படை URL குறிப்பு",
"globalCodexServiceMode": "உலகளாவிய Codex சேவை பயன்முறை",
"connect": "இணைக்கவும்",
"manualApiKey": "கைமுறை API கீ",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "OS keychain-இல் Zed IDE சேமித்துள்ள AI வழங்குநர் நற்சான்றுகளை (OpenAI, Anthropic, Google, Mistral, xAI) கண்டறிந்து அவற்றை இணைப்புகளாக இறக்குமதி செய்யவும். இந்த கணினியில் Zed IDE நிறுவப்பட்டிருக்க வேண்டும்.",
"zedImportButton": "Zed இல் இருந்து இறக்குமதி செய்",
"zedImportFailed": "Zed இறக்குமதி தோல்வியுற்றது",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed இறக்குமதிக் குறிப்பு",
+ "zedImportNetworkError": "Zed இறக்குமதி நெட்வொர்க் பிழை",
+ "zedImportNone": "Zed இறக்குமதி எதுவுமில்லை",
"zedImportSuccess": "{providers} வழங்குநர்களுக்கான Zed இல் இருந்து {credentials} அங்கீகாரங்களை இறக்குமதி செய்யப்பட்டது",
"zedImporting": "இறக்குமதி செய்கிறேன்…",
"zedNoCredentials": "keychain-இல் Zed நற்சான்றுகள் எதுவும் கண்டறியப்படவில்லை",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 உட்பட 40+ மாதிரிகளுக்கான தள்ளுபடி செய்யப்பட்ட API ப்ராக்ஸி. https://freeaiapikey.com/dashboard இல் உங்கள் API விசையைப் பெறவும். அடிப்படை URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "https://freemodel.dev இல் $300 இலவச API கிரெடிட்களைப் பெறவும் — கட்டணத் தகவல் தேவையில்லை. OpenAI-இணக்கமான எண்ட்பாயிண்ட். GPT-5.4 மற்றும் GPT-5.5 மாதிரிகள் கிடைக்கின்றன.",
"friendliai": "சர்வர்லெஸ் இன்ஃபெரன்ஸிற்கான இலவச அடுக்கு — கிரெடிட் கார்டு தேவையில்லை",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio மூலம் இலவச அடுக்கு; ஒவ்வொரு மாதிரிக்குமான ஒதுக்கீடுகள் இனி வெளியிடப்படுவதில்லை (AI Studio-வில் உள்ள ஒதுக்கீட்டுப் பக்கத்தைப் பார்க்கவும்) — கிரெடிட் கார்டு தேவையில்லை.",
"gigachat": "GigaChat (Sber) ஐ ஒரு API விசையுடன் இணைக்கவும்.",
"gitlab": "பொது குறியீடு பரிந்துரைகள் API க்கான GitLab தனிப்பட்ட அணுகல் டோக்கன். gitlab.com ஐப் பயன்படுத்தாதபோது சுய-ஹோஸ்ட் செய்யப்பட்ட அடிப்படை URL ஐ உள்ளமைக்கவும்.",
"gitlawb-gmi": "Gitlawb Opengateway டாஷ்போர்டிலிருந்து உங்கள் API விசையைப் பெறவும்.",
@@ -6180,7 +6187,7 @@
"glm-cn": "GLM Coding (China) ஐ ஒரு API விசையுடன் இணைக்கவும்.",
"glmt": "அதிக டோக்கன் பட்ஜெட், சிந்தனை இயக்கப்பட்டது மற்றும் நீண்ட காலாவதி நேரத்துடன் கூடிய முன்னமைக்கப்பட்ட GLM சுயவிவரம்.",
"getgoapi": "GoAPI ஐ ஒரு API விசையுடன் இணைக்கவும்.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "இலவசத் திட்டம்: ஒவ்வொரு மாடலுக்கும் வரம்புகள் (ஒரு chat மாடலுக்கு நாளொன்றுக்கு 200K tokens; RPM/RPD விவரங்களுக்கு console.groq.com/docs/rate-limits ஐப் பார்க்கவும்) — கோப்பில் கட்டண முறை எதுவும் இல்லை.",
"haiper": "haiper.ai/haiper-api இல் API விசையைப் பெறவும்",
"heroku": "Heroku AI ஐ ஒரு API விசையுடன் இணைக்கவும்.",
"hcnsec": "api.hcnsec.cn இல் API விசையைப் பெறுக",
@@ -6225,7 +6232,7 @@
"nscale": "இன்ஃபெரன்ஸ் சோதனைக்காக பதிவு செய்யும் போது $5 இலவச கிரெடிட்கள்",
"nube": "Nube.sh ஐ ஒரு API விசையுடன் இணைக்கவும்.",
"nvidia": "இலவச டெவலப்பர் அணுகல்: ~40 RPM, 70+ மாடல்கள் (Kimi K2.5, GLM 4.7, DeepSeek V3.2...)",
- "oci": "OCI exposes OpenAI-compatible chat and responses endpoints. Project ID is optional in OmniRoute but may be required for Responses and agentic workflows.",
+ "oci": "OCI, OpenAI-இணக்கமான chat மற்றும் responses endpoints-ஐ வழங்குகிறது. OmniRoute-இல் Project ID விருப்பத்தேர்வாகும்; ஆனால் Responses மற்றும் agentic workflows-க்கு அது தேவைப்படலாம்.",
"ollama-cloud": "Ollama Cloud-ஐ ஒரு API கீ மூலம் இணைக்கவும்.",
"openadapter": "OpenAdapter ஆனது https://api.openadapter.in/v1/chat/completions இல் OpenAI-உடன் இணக்கமான அரட்டை நிறைவு எண்ட்பாயிண்ட்டை வழங்குகிறது, இது 70+ திறந்த மூல மாதிரிகளை (DeepSeek, Qwen, Kimi, MiniMax, GLM, Llama, Mistral, …) ஒருங்கிணைக்கிறது. OmniRoute ஆனது OpenAI புரோட்டோகாலைப் பயன்படுத்துகிறது.",
"openai": "OpenAI-ஐ ஒரு API கீ மூலம் இணைக்கவும்.",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai இல் ஒரு API கீயை உருவாக்கி, பின்னர் அதை இங்கே Bearer டோக்கனாக ஒட்டவும். OpenAI-உடன் இணக்கமான எண்ட்பாயிண்ட் https://router.requesty.ai/v1 இல் நேரடி /v1/models பட்டியலுடன் உள்ளது.",
"runwayml": "Runway வீடியோ உருவாக்கம் என்பது பணி அடிப்படையிலானது. OmniRoute ஆனது உரை-க்கு-வீடியோ அல்லது படம்-க்கு-வீடியோ பணிகளைச் சமர்ப்பித்து, /v1/tasks/[id] ஐத் தொடர்ந்து சரிபார்த்து, முடிக்கப்பட்ட வீடியோ வெளியீடுகளை மீண்டும் OpenAI போன்ற /v1/videos/generations பதிலுக்கு இயல்பாக்குகிறது.",
"sambanova": "பதிவு செய்யும் போது $5 இலவச கிரெடிட்கள் (30 நாட்கள் செல்லுபடியாகும்), கிரெடிட் கார்டு தேவையில்லை",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.cc இல் ஒரு API key-ஐ உருவாக்கி, பின்னர் அதை Bearer token ஆக இங்கே ஒட்டவும். OpenAI-இணக்கமான base URL: https://seekai.cc/v1.",
"sap": "மாதிரி கண்டறிதல் ஆனது AI_API_URL இல் /v2/lm/scenarios/foundation-models/models ஐப் பயன்படுத்துகிறது. அரட்டை கோரிக்கைகள் deploymentUrl/chat/completions ஐப் பயன்படுத்துகின்றன மற்றும் AI-Resource-Group தேவைப்படுகிறது.",
"sarvam": "Sarvam AI OpenAI-க்கு இணக்கமானது /v1 இல். OmniRoute /v1/models ஐ ஆராய்ந்து /v1/chat/completions க்கு உரையாடல் போக்குவரத்தை வழிமொழிகிறது. மாதிரிகள் இந்திய மொழிகளுக்காக அமைக்கப்பட்டுள்ளது.",
"scaleway": "புதிய கணக்குகளுக்கு 1M இலவச டோக்கன்கள் — EU/GDPR இணக்கமானது (பாரிஸ்), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "ஏற்கனவே உள்ள OAuth flow மூலம் Claude Code-ஐ இணைக்கவும்.",
"cline": "ஏற்கனவே உள்ள OAuth flow மூலம் Cline-ஐ இணைக்கவும்.",
"cursor": "ஏற்கனவே உள்ள OAuth flow மூலம் Cursor IDE-ஐ இணைக்கவும்.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "cursor.com/dashboard/api இலிருந்து பெறப்பட்ட பயனர் API key (crsr_...) மூலம் Cursor-ஐ இணைக்கவும்; IDE session தேவையில்லை.",
"github": "ஏற்கனவே உள்ள OAuth flow மூலம் GitHub Copilot-ஐ இணைக்கவும்.",
"gitlab-duo": "ai_features + read_user scopes கொண்ட OAuth பயன்பாடு. இந்த OmniRoute instance-இல் GITLAB_DUO_OAUTH_CLIENT_ID மற்றும் விருப்பத்தேர்வாக GITLAB_DUO_OAUTH_CLIENT_SECRET-ஐ உள்ளமைக்கவும்.",
"kilocode": "ஏற்கனவே உள்ள OAuth flow மூலம் Kilo Code-ஐ இணைக்கவும்.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "வழங்குநரின் சொந்த டொமைனில் இருந்து தேவையான நற்சான்றிதழை நகலெடுக்கவும். குக்கீகளுக்கு, குக்கீ தலைப்பு மதிப்பை மட்டும் நகலெடுத்து குக்கீ:.",
"webSessionGuideStep3Manual": "கையேடு பாதை: உலாவி மேம்பாட்டு கருவிகளை திறக்கவும் (F12 → நெட்வொர்க்), பக்கம் புதுப்பிக்கவும், அங்கீகாரம் பெற்ற கோரிக்கையை திறக்கவும், மற்றும் கோரிக்கை தலைப்புகளில் இருந்து குக்கீ தலைப்பு மதிப்பை நகலெடுக்கவும் — குக்கீ: முன்னணி நீக்கவும்.",
"webSessionGuideStep4": "அதை இங்கே ஒட்டவும் மற்றும் இணைப்பைச் சரிபார்க்கவும். அது வேலை செய்வதை நிறுத்தினால், மீண்டும் உள்நுழைந்து புதிய மதிப்புடன் மாற்றவும்.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har கோப்பை இறக்குமதி செய்",
+ "harImportButtonBusy": "இறக்குமதி செய்யப்படுகிறது…",
+ "harImportButtonHint": "குறைந்தது ஒரு chat செய்தியை அனுப்பிய பிறகு DevTools Network தாவலிலிருந்து ஏற்றுமதி செய்யவும்.",
+ "harImportStatusValid": "இறக்குமதி செய்யப்பட்டது — சுமார் {minutes} நிமிடங்களுக்கு செல்லுபடியாகும்.",
+ "harImportStatusExpiringSoon": "இறக்குமதி செய்யப்பட்டது — இன்னும் சுமார் {minutes} நிமிடங்களுக்கு மட்டுமே செல்லுபடியாகும்.",
+ "harImportStatusExpired": "இறக்குமதி செய்யப்பட்டது, ஆனால் இந்த token ஏற்கனவே காலாவதியாகிவிட்டது ({minutes} நிமிடங்களுக்கு முன்பு) — புதிய HAR ஒன்றை ஏற்றுமதி செய்யவும்.",
+ "harImportStatusUnknownExpiry": "இறக்குமதி செய்யப்பட்டது. அதன் காலாவதி நேரத்தைப் படிக்க முடியவில்லை.",
+ "harImportErrorNotJson": "அந்தக் கோப்பு செல்லுபடியாகும் JSON அல்ல — அது உண்மையிலேயே .har export தானா?",
+ "harImportErrorNoEntries": "இந்த HAR-இல் எந்த network entries-உம் பதிவு செய்யப்படவில்லை.",
+ "harImportErrorNoChathubUrl": "இந்த HAR-இல் Copilot chat connection எதுவும் காணப்படவில்லை. ஏற்றுமதி செய்வதற்கு முன் m365.cloud.microsoft இல் குறைந்தது ஒரு chat செய்தியை அனுப்பவும்.",
+ "harImportErrorUnparsableUrl": "chat connection கண்டறியப்பட்டது, ஆனால் அதன் URL-ஐப் படிக்க முடியவில்லை.",
+ "harImportErrorMissingFields": "chat connection கண்டறியப்பட்டது, ஆனால் அதில் token இல்லை.",
+ "harImportErrorReadFailed": "அந்தக் கோப்பைப் படிக்க முடியவில்லை.",
+ "harImportErrorUnknown": "அந்த HAR கோப்பிலிருந்து credential-ஐப் பிரித்தெடுக்க முடியவில்லை.",
"webSessionSecurityHint": "கடவுச்சொல்லைப் போல் இதை நடத்தவும்: இது உங்கள் உள்நுழைந்த இணையக் கணக்கை அது காலாவதியாகும் வரை அல்லது திரும்பப்பெறும் வரை அணுகலாம்.",
"webNoAuthGuideTitle": "நற்சான்றிதழ் தேவையில்லை",
"webNoAuthGuideBody": "{provider}க்கு API விசை அல்லது குக்கீ தேவையில்லை. இலவச இணைய இறுதிப் புள்ளியைப் பயன்படுத்த இணைப்பைச் சேமிக்கவும்.",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "கமாண்டு குறியீடு அங்கீகாரம் காலாவதியானது",
"commandCodeConnected": "கமாண்டு குறியீடு இணைக்கப்பட்டது",
"commandCodeConnectionAdded": "கமாண்டு கோட் இணைப்பு சேர்க்கப்பட்டது",
+ "clearConnectionCooldown": "Cooldown-ஐ நீக்கு",
+ "clearConnectionCooldownInProgress": "நீக்கப்படுகிறது…",
+ "clearConnectionCooldownTitle": "Cooldown-ஐ இப்போது நீக்கவும் — upstream-இல் quota ஏற்கனவே புதுப்பிக்கப்பட்டிருந்தால் இதைப் பயன்படுத்தவும்",
"commandCodeLinkExpired": "கமாண்டு குறியீட்டு இணைப்பு காலாவதியாகியுள்ளது",
"commandCodeOpeningStudio": "கமாண்டு கோட் ஸ்டூடியோவை திறக்கிறது…",
"commandCodePopupBlocked": "பாப்-அப் தடிக்கப்பட்டது. தயவுசெய்து பாப்-அப்களை அனுமதிக்கவும் மற்றும் Command Code Connect ஐ மீண்டும் முயற்சிக்கவும்.",
"commandCodeStartFailed": "Command Code auth ஐ துவங்குவதில் தோல்வி அடைந்தது",
"connectionDeleted": "இணைப்பு நீக்கப்பட்டது",
"connectionFallback": "இணைப்பு",
+ "connectionCooldownCleared": "Cooldown நீக்கப்பட்டது — connection மீண்டும் routing-இல் இணைந்தது",
"coolingConnectionsDescription": "இந்த இணைப்புகள் கடைசி கோரிக்கைக்குப் பிறகு குளிர்கின்றன. நேரம் முடியும் வரை OmniRoute அவற்றைத் தவிர்க்கும் — கைமுறையாக முடக்க வேண்டியதில்லை.",
"coolingConnectionsTitle": "தற்போது குளிர்ச்சி ({count})",
+ "failedClearConnectionCooldown": "Cooldown-ஐ நீக்க முடியவில்லை",
"failedDeleteAlias": "அலியாஸ் நீக்குவதில் தோல்வி அடைந்தது",
"failedDeleteConnection": "இணைப்பை நீக்க முடியவில்லை",
"failedDistributeProxies": "பிராக்ஸிகளை பகிர்வதில் தோல்வி அடைந்தது.",
@@ -6466,21 +6478,16 @@
"savedModelEndpointSettings": "சேமிக்கப்பட்ட மாதிரி முடிவுறுப்பு அமைப்புகள்",
"searchByModelAria": "மாதிரியில் தேடு",
"selectSupportedEndpoint": "குறைந்தது ஒரு ஆதரிக்கப்படும் முடிவுகளைத் தேர்ந்தெடுக்கவும்",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "ஹார்னஸ் / CLI"
},
"settings": {
- "title": "Settings",
- "general": "General",
- "security": "Security",
- "appearance": "Appearance",
- "routing": "Routing",
- "cache": "Cache",
- "resilience": "Resilience",
+ "title": "அமைப்புகள்",
+ "general": "பொது",
+ "security": "பாதுகாப்பு",
+ "appearance": "தோற்றம்",
+ "routing": "வழித்தடம்",
+ "cache": "தற்காலிகச் சேமிப்பு",
+ "resilience": "மீட்சித்திறன்",
"description": "விளக்கம்",
"enable": "இயக்கு",
"disable": "முடக்கு",
@@ -6547,25 +6554,25 @@
"routingOpStatusSeparator": " ·",
"resilienceSettingsIntro": "வழங்குநர்கள் தோல்வியுற்றால் தானியங்கு மறுமுயற்சி, கூல்டவுன் மற்றும் ஃபால்பேக்.",
"aiSettingsIntro": "பட்ஜெட் சிந்தனை, மாதிரி நடத்தை மற்றும் சுருக்கத்திற்கான AI- குறிப்பிட்ட அமைப்புகள்.",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "கணினி அறிவுறுத்தல்",
+ "thinkingBudget": "சிந்தனை வரம்பு",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP ப்ராக்ஸி",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "ப்ராக்ஸி பிரிவுகள்",
+ "requestBodyLimitTitle": "கோரிக்கை உடல் வரம்பு",
+ "requestBodyLimitDescription": "கோரிக்கை உடல் பகுப்பாய்வு செய்யப்படுவதற்கு முன் ஏற்கப்படும் அதிகபட்ச API பேலோடு அளவு. பிரத்யேக பதிவேற்ற வழிகள் அவற்றின் உள்ளமைக்கப்பட்ட 100 MB வரம்பையாவது கொண்டிருக்கும்.",
+ "requestBodyLimitInputLabel": "MB-இல் கோரிக்கை உடல் வரம்பு",
+ "requestBodyLimitEmptyError": "MB-இல் ஒரு வரம்பை உள்ளிடவும்",
+ "requestBodyLimitWholeNumberError": "முழு எண்ணைப் பயன்படுத்தவும்",
+ "requestBodyLimitMinimumError": "குறைந்தபட்சம் {min} MB",
+ "requestBodyLimitMaximumError": "அதிகபட்சம் {max} MB",
+ "requestBodyLimitLoadFailed": "கோரிக்கை வரம்பு அமைப்புகளை ஏற்ற முடியவில்லை",
+ "requestBodyLimitSaveSuccess": "கோரிக்கை உடல் வரம்பு சேமிக்கப்பட்டது",
+ "requestBodyLimitSaveFailed": "கோரிக்கை உடல் வரம்பைச் சேமிக்க முடியவில்லை",
+ "requestBodyLimitSaving": "சேமிக்கப்படுகிறது...",
+ "requestBodyLimitSave": "சேமி",
+ "requestBodyLimitCurrent": "தற்போதையது: {value}",
"cacheConfigLoadFailed": "கேஷ் அமைப்புகளை ஏற்றுவதில் தோல்வி அடைந்தது",
"cacheConfigSaveSuccess": "கேஷ் அமைப்புகள் சேமிக்கப்பட்டன",
"cacheConfigSaveFailed": "கேஷ் அமைப்புகளை சேமிக்க முடியவில்லை",
@@ -6579,69 +6586,69 @@
"modelCatalogCacheTtlSave": "சேமிக்கவும்",
"modelCatalogCacheTtlCurrent": "தற்போதைய: {value} ms",
"mitmProxy": "MITM ப்ராக்ஸி",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
- "comboDefaults": "Combo Defaults",
- "fallbackChains": "Fallback Chains",
- "changePassword": "Change Password",
- "enablePassword": "Enable Password",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "pricing": "விலை நிர்ணயம்",
+ "storage": "சேமிப்பகம்",
+ "policies": "கொள்கைகள்",
+ "ipFilter": "IP வடிகட்டி",
+ "comboDefaults": "காம்போ இயல்புநிலைகள்",
+ "fallbackChains": "மாற்று சங்கிலிகள்",
+ "changePassword": "கடவுச்சொல்லை மாற்று",
+ "enablePassword": "கடவுச்சொல்லை இயக்கு",
+ "darkMode": "இருண்ட பயன்முறை",
+ "lightMode": "ஒளிர் பயன்முறை",
+ "memoryTitle": "நினைவகம்",
+ "memoryDesc": "அமர்வுகள் முழுவதும் நிலைத்திருக்கும் உரையாடல் நினைவகம்",
+ "memoryEnabled": "நினைவகத்தை இயக்கு",
+ "memoryEnabledDesc": "இயக்கப்பட்டிருக்கும்போது, OmniRoute தொடர்புடைய முந்தைய சூழலைச் சேர்க்கும்.",
"memoryTokenCostWarning": "கவனத்திற்கு: நினைவகம் இயக்கப்பட்டிருக்கும் போது, OmniRoute ஒவ்வொரு அரட்டை கோரிக்கையிலும் மீட்டெடுக்கப்பட்ட சூழலின் {tokens} டோக்கன்கள் வரை சேர்க்கிறது — இது டோக்கன் பயன்பாட்டையும் செலவையும் அதிகரிக்கும். குறிப்பிட்ட கோரிக்கைக்கு இந்தச் சேர்க்கையைத் தவிர்க்க, \"x-omniroute-no-memory: true\" தலைப்பை அனுப்பவும்.",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
- "justNow": "Just now",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
- "providers": "Providers",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
- "systemTheme": "System Theme",
- "debugToggle": "Enable Debug Mode",
+ "maxTokens": "அதிகபட்ச டோக்கன்கள்",
+ "retentionDays": "தக்கவைப்புக் காலம்",
+ "recent": "சமீபத்தியவை",
+ "recentDesc": "காலவரிசைச் சாளரம்",
+ "semantic": "பொருள்சார்",
+ "semanticDesc": "வெக்டர் தேடல்",
+ "hybrid": "கலப்பு",
+ "hybridDesc": "சமீபத்தியவை + பொருள்சார்",
+ "skillsTitle": "திறன்கள்",
+ "skillsDesc": "மாடல்களுக்கான கருவிகள்",
+ "skillsEnabled": "திறன்களை இயக்கவும்",
+ "skillsEnabledDesc": "முகவர்கள் செயல்பாடுகளைத் தூண்ட அனுமதிக்கிறது.",
+ "skillsComingSoon": "திறன்களுக்கான சந்தை விரைவில் வருகிறது.",
+ "memorySkillsTitle": "நினைவகம் & திறன்கள்",
+ "memorySkillsDesc": "நிலையான சூழல் & திறன்கள்",
+ "modelsDevTitle": "மாடல் தரவுத்தளம்",
+ "modelsDevDesc": "models.dev இலிருந்து விலை, திறன்கள் & விவரக்குறிப்புகளைத் தானாக ஒத்திசைக்கவும்",
+ "modelsDevEnabled": "models.dev ஒத்திசைவை இயக்கவும்",
+ "modelsDevEnabledDesc": "திறந்த மூல models.dev தரவுத்தளத்திலிருந்து மாடல் விலை, திறன்கள் மற்றும் விவரக்குறிப்புகளைப் பெறவும்",
+ "modelsDevInterval": "ஒத்திசைவு இடைவெளி",
+ "syncNow": "இப்போது ஒத்திசைக்கவும்",
+ "syncing": "ஒத்திசைக்கிறது...",
+ "lastSync": "கடைசி ஒத்திசைவு",
+ "never": "ஒருபோதும் இல்லை",
+ "justNow": "சற்று முன்பு",
+ "modelsDevStats": "ஒத்திசைவு புள்ளிவிவரங்கள்",
+ "modelsDevStatsDesc": "தற்போதைய models.dev தரவுப் பரவல்",
+ "providers": "வழங்குநர்கள்",
+ "modelsWithPricing": "விலைத் தகவலுடன் கூடிய மாடல்கள்",
+ "capabilities": "திறன்கள்",
+ "lastSyncCount": "கடைசி ஒத்திசைவு எண்ணிக்கை",
+ "lastSyncFull": "கடைசி முழு ஒத்திசைவு",
+ "modelsDevInfo": "இது எவ்வாறு செயல்படுகிறது",
+ "modelsDevInfoDesc": "models.dev என்பது SST/OpenCode குழுவால் பராமரிக்கப்படும் AI மாடல் விவரக்குறிப்புகளின் திறந்த மூலத் தரவுத்தளமாகும். இது 100+ வழங்குநர்களின் 4,000+ மாடல்களுக்கான விலை, திறன்கள், சூழல் வரம்புகள் மற்றும் புலன்வகைகளை வழங்குகிறது.",
+ "modelsDevInfoResolution": "விலை நிர்ணயத் தீர்மான வரிசை (அதிக முன்னுரிமை முதலில்):",
+ "modelsDevInfoOrder": "பயனர் மேலெழுதல் → models.dev → LiteLLM → நிலையாகக் குறியிடப்பட்ட இயல்புநிலை",
+ "systemTheme": "கணினித் தோற்றத்தீம்",
+ "debugToggle": "பிழைத்திருத்தப் பயன்முறையை இயக்கவும்",
"logToolSourcesToggle": "கருவி மூலங்களைப் பதிவுசெய்க",
"logToolSourcesDescription": "ஒவ்வொரு கோரிக்கைக்கும் கருவிகளின் எண்ணிக்கை மற்றும் MCP/hosted/client மூலப் பிரிவைச் சுருக்கமாகக் கூறும் கண்டறிதல் பதிவு வரியை வெளியிடுங்கள்.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "முகப்புப் பக்கத்தில் தகவலைப் பின்செய்யவும்",
"homePinnedSectionsDesc": "முகப்புப் பக்கத்தின் மேற்பகுதியில் எந்தப் பிரிவுகளைப் பின் செய்ய வேண்டும் என்பதைத் தேர்வுசெய்யவும்.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "வழங்குநர் ஒதுக்கீட்டு வரம்புகள்",
+ "homeProviderQuotaLimitsDesc": "வழங்குநர் ஒதுக்கீட்டு நிலைக் கொள்கலனை (அனைத்தையும் புதுப்பி பொத்தானுடன்) முகப்புப் பக்கத்தின் மேலே பின்செய்யவும்.",
+ "homeQuickStart": "விரைவுத் தொடக்கம்",
+ "homeQuickStartDesc": "முகப்புப் பக்கத்தில் விரைவுத் தொடக்கப் பலகத்தைக் காட்டவும்.",
+ "homeProviderTopology": "வழங்குநர் இடவியல்",
+ "homeProviderTopologyDesc": "முகப்புப் பக்கத்தில் வழங்குநர் இடவியலைக் காட்டவும்.",
"accountEmailVisibility": "கணக்கு மின்னஞ்சல் தெரிவுநிலை",
"accountEmailVisibilityDesc": "வழங்குநர்கள், காம்போக்கள், பதிவுகள், ஒதுக்கீடு மற்றும் பிளேகிரவுண்ட் திரைகளில் முழு கணக்கு மின்னஞ்சல்களையும் காட்டுங்கள். இயல்புநிலையாக அவற்றை மறைக்க இதை முடக்கவும்.",
"comboConfigMode": "காம்போ உள்ளமைவு முறை",
@@ -6657,89 +6664,89 @@
"providerQuotaAutoRefreshInterval": "புதுப்பிப்பு இடைவெளி",
"providerQuotaAutoRefreshIntervalDesc": "ஒதுக்கீட்டுக் காட்சி எத்தனை வினாடிகளுக்கு ஒருமுறை புதுப்பிக்கப்பட வேண்டும்.",
"seconds": "வினாடிகள்",
- "sidebarVisibilityToggle": "Show Sidebar Items",
- "enableCache": "Enable Cache",
- "cacheTTL": "Cache TTL",
- "maxCacheSize": "Max Cache Size",
- "clearCache": "Clear Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
- "cacheMisses": "Cache Misses",
- "hitRate": "Hit Rate",
- "cacheEntries": "Cache Entries",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "sidebarVisibilityToggle": "பக்கப்பட்டி உருப்படிகளைக் காட்டவும்",
+ "enableCache": "தற்காலிகச் சேமிப்பை இயக்கவும்",
+ "cacheTTL": "தற்காலிகச் சேமிப்பு TTL",
+ "maxCacheSize": "அதிகபட்சத் தற்காலிகச் சேமிப்பு அளவு",
+ "clearCache": "தற்காலிகச் சேமிப்பை அழி",
+ "cacheCleared": "தற்காலிகச் சேமிப்பு வெற்றிகரமாக அழிக்கப்பட்டது",
+ "clearCacheFailed": "தற்காலிகச் சேமிப்பை அழிக்க முடியவில்லை",
+ "cacheHits": "தற்காலிகச் சேமிப்பு வெற்றிகள்",
+ "cacheMisses": "தற்காலிகச் சேமிப்பு தவறல்கள்",
+ "hitRate": "வெற்றி விகிதம்",
+ "cacheEntries": "தற்காலிகச் சேமிப்புப் பதிவுகள்",
+ "cacheSettings": "தற்காலிகச் சேமிப்பு அமைப்புகள்",
+ "semanticCache": "சொற்பொருள் தற்காலிகச் சேமிப்பு",
+ "maxEntries": "அதிகபட்சப் பதிவுகள்",
+ "ttlMinutes": "TTL (நிமிடங்கள்)",
+ "promptCache": "Prompt தற்காலிகச் சேமிப்பு",
+ "strategy": "உத்தி",
+ "preserveClientCache": "Client தற்காலிகச் சேமிப்பைப் பாதுகாத்தல்",
+ "enabled": "இயக்கப்பட்டது",
"loading": "Loading...",
- "saving": "Saving...",
- "save": "Save",
- "circuitBreaker": "Circuit Breaker",
- "retryPolicy": "Retry Policy",
- "maxRetries": "Max Retries",
- "retryDelay": "Retry Delay",
- "timeoutMs": "Timeout (ms)",
- "enableSystemPrompt": "Enable System Prompt",
- "systemPromptText": "System Prompt Text",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "saving": "சேமிக்கிறது...",
+ "save": "சேமி",
+ "circuitBreaker": "சுற்றுத் தடுப்பான்",
+ "retryPolicy": "மறுமுயற்சிக் கொள்கை",
+ "maxRetries": "அதிகபட்ச மறுமுயற்சிகள்",
+ "retryDelay": "மறுமுயற்சித் தாமதம்",
+ "timeoutMs": "காலக்கெடு (ms)",
+ "enableSystemPrompt": "System Prompt-ஐ இயக்கு",
+ "systemPromptText": "System Prompt உரை",
+ "autoDisableBannedAccounts": "தடைசெய்யப்பட்ட கணக்குகளைத் தானாக முடக்கு",
+ "autoDisableDescription": "குறிப்பிட்ட நிரந்தரத் தடைச் சைகைகளை (எ.கா. HTTP 403 'verify your account') வழங்கும் provider இணைப்புகளை நிரந்தரமாகச் செயலிழந்ததாகக் குறிக்கவும். இது அவற்றை combo சுழற்சியிலிருந்து அகற்றும்.",
+ "autoDisableThreshold": "தடை வரம்பு",
+ "autoDisableThresholdDesc": "நிரந்தரச் செயலிழப்புக்கு முன் தேவைப்படும் தொடர்ச்சியான தடைச் சைகைகள்.",
+ "autoDisableBannedScope": "தானியங்கு முடக்கத்தை இதற்குப் பயன்படுத்து",
+ "autoDisableBannedScopeDesc": "தடைக்குப் பிறகும் OmniRoute தொடர்ந்து மறுமுயற்சி செய்தால், உள்நுழைவு இடங்கள் (கட்டணச் சந்தாக்கள் மற்றும் இலவசக் கணக்குகள்) upstream-ஆல் பூட்டப்படலாம். கட்டணம் செலுத்தப்பட்ட prepaid API keys-க்கு அந்த ஆபத்து இல்லை — அடுத்த key-ஐ fill-first பயன்படுத்தும் வகையில் அவற்றை pool-இல் வைத்திருக்கவும்.",
+ "autoDisableBannedScopeAll": "அனைத்து இணைப்புகளும்",
+ "autoDisableBannedScopeAllDesc": "prepaid API keys உட்பட, நிரந்தரத் தடைச் சைகையை வழங்கும் ஒவ்வொரு இணைப்பையும் செயலிழக்கச் செய்.",
+ "autoDisableBannedScopeSubscription": "உள்நுழைவு / சந்தா கணக்குகள் மட்டும்",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth, cookie, session மற்றும் web-login இடங்களை (கட்டணமானவை அல்லது இலவசமானவை) செயலிழக்கச் செய். வழிமாற்றம் மாற்று இணைப்புக்கு மாறும் வகையில் prepaid API keys செயலில் இருக்கும்.",
"customBannedSignals": "தடைசெய்யப்பட்ட முக்கிய வார்த்தைகள்",
"customBannedSignalsDesc": "நிரந்தரக் கணக்குத் தடை கண்டறிதலைத் தூண்டும் கூடுதல் முக்கிய வார்த்தைகள். உள்ளமைக்கப்பட்ட முக்கிய வார்த்தைகள் எப்போதும் பொருந்தும்.",
"customBannedSignalsPlaceholder": "எ.கா. api key revoked",
"noCustomBannedSignals": "தனிப்பயன் முக்கிய வார்த்தைகள் இல்லை. உள்ளமைக்கப்பட்ட முக்கிய வார்த்தைகள் மட்டுமே செயலில் உள்ளன.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "மீள்திறன் கட்டமைப்பு",
"resilienceStructureDesc": "இந்தப் பக்கம் நடத்தையை மட்டுமே கட்டமைக்கிறது. லைவ் பிரேக்கர் நிலை ஆரோக்கியம் பக்கத்தில் காட்டப்பட்டுள்ளது. காம்போ-குறிப்பிட்ட மறு முயற்சி மற்றும் ரவுண்ட்-ராபின் ஸ்லாட் கட்டுப்பாடு ஆகியவை காம்போ அமைப்புகளில் இருக்கும்.",
- "enableThinking": "Enable Thinking",
- "maxThinkingTokens": "Max Thinking Tokens",
- "enableProxy": "Enable Proxy",
+ "enableThinking": "சிந்தனையை இயக்கு",
+ "maxThinkingTokens": "அதிகபட்ச சிந்தனை Tokens",
+ "enableProxy": "Proxy-ஐ இயக்கு",
"perKeyProxyEnabled": "ஒவ்வொரு விசைக்குமான ப்ராக்ஸி ஒதுக்கீட்டை இயக்கு",
"perKeyProxyEnabledDesc": "இயக்கப்பட்டால், ஒவ்வொரு வழங்குநர் இணைப்பும் அதன் சொந்த ப்ராக்ஸி ஒதுக்கீட்டைப் பயன்படுத்தலாம்",
- "proxyUrl": "Proxy URL",
- "pricingRates": "Pricing Rates Format",
- "currentPricing": "Current Pricing Overview",
- "loadingPricing": "Loading pricing data...",
- "noPricing": "No pricing data available",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
+ "proxyUrl": "பதிலி URL",
+ "pricingRates": "விலையிடல் விகிதங்களின் வடிவம்",
+ "currentPricing": "தற்போதைய விலை விவரக் கண்ணோட்டம்",
+ "loadingPricing": "விலைத் தரவு ஏற்றப்படுகிறது...",
+ "noPricing": "விலைத் தரவு எதுவும் இல்லை",
+ "input": "உள்ளீடு",
+ "output": "வெளியீடு",
+ "cached": "தற்காலிகச் சேமிப்பு",
"reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "customPricing": "Custom Pricing",
- "databaseSize": "Database Size",
- "backupDb": "Backup Database",
- "restoreDb": "Restore Database",
- "exportData": "Export Data",
- "importData": "Import Data",
- "clearData": "Clear All Data",
- "clearDataConfirm": "This will permanently delete all data. Are you sure?",
- "enableRequestLogs": "Enable Request Logs",
- "logRetention": "Log Retention",
- "ipWhitelist": "IP Whitelist",
- "ipBlacklist": "IP Blacklist",
- "addIP": "Add IP",
- "savedSuccessfully": "Settings saved successfully",
+ "cacheCreation": "தற்காலிகச் சேமிப்பை உருவாக்குதல்",
+ "customPricing": "தனிப்பயன் விலை நிர்ணயம்",
+ "databaseSize": "தரவுத்தள அளவு",
+ "backupDb": "தரவுத்தளத்தைக் காப்புப் பிரதி எடுக்கவும்",
+ "restoreDb": "தரவுத்தளத்தை மீட்டமைக்கவும்",
+ "exportData": "தரவை ஏற்றுமதி செய்யவும்",
+ "importData": "தரவை இறக்குமதி செய்யவும்",
+ "clearData": "எல்லாத் தரவையும் அழிக்கவும்",
+ "clearDataConfirm": "இது எல்லாத் தரவையும் நிரந்தரமாக நீக்கும். உறுதியாகத் தொடர விரும்புகிறீர்களா?",
+ "enableRequestLogs": "கோரிக்கைப் பதிவுகளை இயக்கவும்",
+ "logRetention": "பதிவுத் தக்கவைப்புக் காலம்",
+ "ipWhitelist": "IP அனுமதிப்புப் பட்டியல்",
+ "ipBlacklist": "IP தடுப்புப் பட்டியல்",
+ "addIP": "IP-ஐச் சேர்க்கவும்",
+ "savedSuccessfully": "அமைப்புகள் வெற்றிகரமாகச் சேமிக்கப்பட்டன",
"ai": "AI",
- "advanced": "Advanced",
- "localMode": "Local Mode — All data stored on your machine",
- "settingsSectionsAria": "Settings sections",
- "switchThemes": "Switch between light and dark themes",
- "themeSelectionAria": "Theme selection",
- "themeLight": "Light",
- "themeDark": "Dark",
- "themeSystem": "System",
+ "advanced": "மேம்பட்டவை",
+ "localMode": "உள்ளூர் பயன்முறை — எல்லாத் தரவும் உங்கள் கணினியில் சேமிக்கப்படும்",
+ "settingsSectionsAria": "அமைப்புப் பிரிவுகள்",
+ "switchThemes": "ஒளிர் மற்றும் இருள் தோற்றங்களுக்கு இடையே மாறவும்",
+ "themeSelectionAria": "தோற்றத் தேர்வு",
+ "themeLight": "ஒளிர்",
+ "themeDark": "இருள்",
+ "themeSystem": "கணினி",
"endpointTunnelVisibility": "இறுதிப்புள்ளி சுரங்கப்பாதை தெரிவுநிலை",
"endpointTunnelVisibilityDesc": "சுரங்கப்பாதை நிலையை மாற்றாமல் இறுதிப்புள்ளி பக்கத்திலிருந்து சுரங்கப்பாதை கட்டுப்பாடுகளை மறைக்கவும்.",
"showCloudflareTunnel": "கிளவுட்ஃப்ளேர் விரைவு சுரங்கப்பாதை",
@@ -6748,47 +6755,47 @@
"showTailscaleFunnelDesc": "இறுதிப்புள்ளி பக்கத்தில் டெயில்ஸ்கேல் ஃபனல் கட்டுப்பாடுகளைக் காட்டு.",
"showNgrokTunnel": "ngrok சுரங்கப்பாதை",
"showNgrokTunnelDesc": "எண்ட்பாயிண்ட் பக்கத்தில் ngrok டன்னல் கட்டுப்பாடுகளைக் காட்டு.",
- "sidebarVisibility": "Hide sidebar items",
- "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter without disabling any features",
- "sidebarVisibilityHint": "Any sidebar section is hidden automatically when all of its entries are hidden",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
- "hideHealthLogs": "Hide Health Check Logs",
- "hideHealthLogsDesc": "When ON, suppress [HealthCheck] messages in server console",
- "themeAccent": "Theme color",
- "themeAccentDesc": "Choose a preset color or create your own theme with one color",
- "themeCreate": "Create theme",
- "themeCustom": "Custom theme",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "sidebarVisibility": "பக்கப்பட்டி உருப்படிகளை மறைக்கவும்",
+ "sidebarVisibilityDesc": "எந்த அம்சத்தையும் முடக்காமல் காட்சிக் குழப்பத்தைக் குறைக்க, பக்கப்பட்டியின் எந்த வழிசெலுத்தல் உள்ளீட்டையும் மறைக்கவும்",
+ "sidebarVisibilityHint": "ஒரு பக்கப்பட்டிப் பிரிவின் அனைத்து உள்ளீடுகளும் மறைக்கப்பட்டால், அந்தப் பிரிவு தானாகவே மறைக்கப்படும்",
+ "presetAll": "அனைத்தும்",
+ "presetAllDesc": "அனைத்தையும் காண்பி",
+ "presetEssentials": "அத்தியாவசியமானவை",
+ "presetEssentialsDesc": "தொடக்கநிலையினருக்கான பாதை - மேம்பட்ட கருவிகளைத் தேட முடியும்",
+ "presetMinimal": "குறைந்தபட்சம்",
+ "presetMinimalDesc": "முக்கியப் பக்கங்கள் மட்டும்",
+ "presetDeveloper": "உருவாக்குநர்",
+ "presetDeveloperDesc": "உருவாக்குநர் மற்றும் ப்ராக்ஸி கருவிகள்",
+ "presetAdmin": "நிர்வாகம்",
+ "presetAdminDesc": "கண்காணிப்பு மற்றும் தணிக்கை",
+ "settingsSidebarTitle": "பக்கப்பட்டைத் தனிப்பயனாக்கம்",
+ "settingsSidebarDesc": "எந்தப் பக்கப்பட்டை உருப்படிகளைக் காட்ட வேண்டும் என்பதைத் தேர்வுசெய்யவும். அத்தியாவசியங்கள் மேம்பட்ட கருவிகளைத் தேடக்கூடியவையாக வைத்திருக்கும்.",
+ "hideHealthLogs": "நிலைச் சரிபார்ப்புப் பதிவுகளை மறை",
+ "hideHealthLogsDesc": "இயக்கப்பட்டிருக்கும்போது, சேவையக முனையத்தில் [HealthCheck] செய்திகளைக் காட்டாமல் தடுக்கும்",
+ "themeAccent": "தீம் நிறம்",
+ "themeAccentDesc": "முன்னமைக்கப்பட்ட நிறத்தைத் தேர்வுசெய்யவும் அல்லது ஒரே நிறத்தைக் கொண்டு உங்கள் சொந்த தீமை உருவாக்கவும்",
+ "themeCreate": "தீமை உருவாக்கு",
+ "themeCustom": "தனிப்பயன் தீம்",
+ "themeBlue": "நீலம்",
+ "themeRed": "சிவப்பு",
+ "themeGreen": "பச்சை",
+ "themeViolet": "ஊதா",
+ "themeOrange": "ஆரஞ்சு",
+ "themeCyan": "சியான்",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "பயன்பாட்டின் பெயரையும் இலச்சினையையும் தனிப்பயனாக்கவும்",
+ "appName": "பயன்பாட்டின் பெயர்",
+ "appNameDesc": "பக்கப்பட்டையிலும் உலாவி தாவலிலும் காட்டப்படும் பெயர்",
+ "customLogo": "தனிப்பயன் இலச்சினை URL",
+ "customLogoDesc": "உங்கள் தனிப்பயன் இலச்சினைப் படத்திற்கான URL",
+ "uploadLogo": "இலச்சினையைப் பதிவேற்று",
+ "resetLogo": "இயல்புநிலைக்கு மீட்டமை",
+ "logoPreview": "முன்னோட்டம்",
+ "customFavicon": "உலாவி Favicon",
+ "customFaviconDesc": "உங்கள் தனிப்பயன் favicon-க்கான URL (உலாவி தாவலில் காட்டப்படும்)",
+ "uploadFavicon": "Favicon-ஐப் பதிவேற்று",
+ "resetFavicon": "Favicon-ஐ மீட்டமை",
+ "faviconPreview": "Favicon முன்னோட்டம்",
"logoFileTooLarge": "லோகோ கோப்பு 500KB-க்கு குறைவாக இருக்க வேண்டும்",
"faviconFileTooLarge": "Favicon கோப்பு 50KB-க்கு குறைவாக இருக்க வேண்டும்",
"invalidLogoFileType": "தவறான கோப்பு வகை. PNG, JPG, SVG, GIF அல்லது WebP-ஐப் பதிவேற்றவும்.",
@@ -6796,15 +6803,15 @@
"failedToReadFile": "கோப்பைப் படிக்க முடியவில்லை",
"startOnLogin": "உள்நுழையும்போது தொடங்கவும்",
"startOnLoginDesc": "கணினி தொடங்கும் போது OmniRoute-ஐத் தானாகவே துவக்கி, பின்னணி ட்ரேயில் அமைதியாக இயக்கவும்.",
- "flushCache": "Flush Cache",
- "flushing": "Flushing…",
- "size": "Size",
- "hits": "Hits",
- "evictions": "Evictions",
- "loadingCacheStats": "Loading cache stats…",
- "globalProxy": "Global Proxy",
- "globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
- "noGlobalProxy": "No global proxy configured",
+ "flushCache": "தற்காலிகச் சேமிப்பை அழி",
+ "flushing": "அழிக்கப்படுகிறது…",
+ "size": "அளவு",
+ "hits": "அணுகல்கள்",
+ "evictions": "வெளியேற்றங்கள்",
+ "loadingCacheStats": "தற்காலிகச் சேமிப்புப் புள்ளிவிவரங்கள் ஏற்றப்படுகின்றன…",
+ "globalProxy": "உலகளாவிய பதிலாள்",
+ "globalProxyDesc": "அனைத்து API அழைப்புகளுக்கும் உலகளாவிய வெளிச்செல்லும் பதிலாளை உள்ளமைக்கவும். தனிப்பட்ட வழங்குநர்கள், சேர்க்கைகள் மற்றும் விசைகள் இதை மேலெழுதலாம்.",
+ "noGlobalProxy": "உலகளாவிய பதிலாள் எதுவும் உள்ளமைக்கப்படவில்லை",
"proxyPool": "ப்ராக்ஸி பூல்",
"freePool": "இலவச பூல்",
"proxyDocumentation": "ப்ராக்ஸி ஆவணங்கள்",
@@ -6892,21 +6899,21 @@
"refreshInterval": "புதுப்பிப்பு இடைவெளி",
"ruleModeDescription": "வழிமுறை முறை விளக்கம்"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "மொத்த நிலைச் சரிபார்ப்பு",
+ "bulkHealthcheckDesc": "இலக்கு URL-க்கு எதிராக உள்ளமைக்கப்பட்ட அனைத்து ப்ராக்ஸிகளையும் சோதித்து, செயல்படுபவற்றைக் கண்டறியவும்.",
+ "healthcheckTesting": "சோதிக்கிறது...",
+ "healthcheckAll": "அனைத்திற்கும் செயல்நிலைச் சோதனை",
+ "healthcheckFailed": "செயல்நிலைச் சோதனையை இயக்க முடியவில்லை",
+ "healthcheckTestingAll": "அனைத்து ப்ராக்ஸிகளையும் இணையாகச் சோதிக்கிறது...",
+ "healthcheckTotal": "மொத்தம்",
+ "healthcheckWorking": "செயல்படுபவை",
+ "healthcheckFailedLabel": "தோல்வியடைந்தவை",
+ "healthcheckStatus": "நிலை",
+ "healthcheckProxyUrl": "ப்ராக்ஸி URL",
+ "healthcheckLatency": "தாமதம்",
"proxyDocumentationScopeTitle": "ப்ராக்ஸி ஸ்கோப் தீர்மானம்",
"proxyDocumentationScopeDescBefore": "OmniRoute வெளிச்செல்லும் ப்ராக்ஸியை முன்னுரிமை வரிசையில் தீர்மானிக்கிறது:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "சேர்க்கை → கணக்கு → வழங்குநர் → உலகளாவிய",
"proxyDocumentationScopeDescAfter": ". மிகவும் குறிப்பிட்ட ஸ்கோப் முன்னுரிமை பெறும்.",
"proxyDocumentationAddTitle": "தனிப்பயன் ப்ராக்ஸியைச் சேர்த்தல்",
"proxyDocumentationAddDescBefore": "இதற்குச் செல்லவும் ",
@@ -6941,7 +6948,7 @@
"proxyFreePoolAddSelected": "தேர்ந்தெடுக்கப்பட்டவற்றை பூலில் சேர்க்கவும்",
"proxyFreePoolAddVisible": "காணக்கூடிய அனைத்தையும் பூலில் சேர்க்கவும்",
"proxyFreePoolSource": "மூலம்",
- "proxyFreePoolHostPort": "Host:Port",
+ "proxyFreePoolHostPort": "ஹோஸ்ட்:போர்ட்",
"proxyFreePoolType": "வகை",
"proxyFreePoolCountry": "நாடு",
"proxyFreePoolQuality": "தரம்",
@@ -6962,22 +6969,22 @@
"proxyFreePoolLoadMore": "மேலும் ஏற்றவும்",
"close": "மூடு",
"cancel": "ரத்துசெய்",
- "globalLabel": "Global",
- "configure": "Configure",
- "globalSystemPrompt": "Global System Prompt",
- "saved": "Saved",
+ "globalLabel": "உலகளாவிய",
+ "configure": "உள்ளமைக்கவும்",
+ "globalSystemPrompt": "உலகளாவிய கணினி அறிவுறுத்தல்",
+ "saved": "சேமிக்கப்பட்டது",
"beforePromptLabel": "ப்ராம்ப்ட்டிற்கு முன்",
"beforePromptDesc": "ஏஜென்ட்/வழங்குநரின் சிஸ்டம் வழிமுறைகளுக்கு முன் உட்செலுத்தப்பட்டது",
"beforePromptPlaceholder": "ஏஜென்ட்/வழங்குநர் ப்ராம்ப்ட்டிற்கு முன் செருகப்பட்ட வழிமுறைகள்...",
"afterPromptLabel": "ப்ராம்ப்ட்டிற்குப் பின்",
"afterPromptDesc": "ஏஜென்ட்/வழங்குநரின் சிஸ்டம் வழிமுறைகளுக்குப் பின் உட்செலுத்தப்பட்டது",
"afterPromptPlaceholder": "ஏஜென்ட்/வழங்குநர் ப்ராம்ப்ட்டிற்குப் பின் செருகப்பட்ட வழிமுறைகள்...",
- "chars": "{count} chars",
- "thinkingBudgetTitle": "Thinking Budget",
+ "chars": "{count} எழுத்துகள்",
+ "thinkingBudgetTitle": "சிந்தனை வரம்பு",
"thinkingBudgetDesc": "Control AI reasoning token usage across all requests",
"thinkingBudgetIndependenceHint": "சுருக்கம், வழிமுறை, மற்றும் டோக்கன்-வரம்பு அம்சங்கள் ஒவ்வொரு முறையிலும் செயல்படுகின்றன. ஆட்டோ என்பது \"ஆட்டோ-காணும் சிந்தனை\" என்பதைக் குறிக்கவில்லை - இது கிளையண்ட் காரணம் துறைகளை நீக்குகிறது.",
- "passthrough": "Passthrough",
- "passthroughDesc": "No changes — client controls thinking budget",
+ "passthrough": "மாற்றமின்றி அனுப்புதல்",
+ "passthroughDesc": "மாற்றங்கள் இல்லை — கிளையன்ட் சிந்தனை வரம்பைக் கட்டுப்படுத்துகிறது",
"thinkingModePassthrough": "பாஸ்த்ரூவ்",
"thinkingModePassthroughDesc": "கிளையனின் காரணங்களை மாற்றாமல் வைக்கவும் (முயற்சி, சுருக்கம், சிந்தனை தடங்கள்). Codex/Desktop காட்சி சிந்தனைக்கு தேவையானது. இயல்பானது.",
"thinkingModeAuto": "ஆட்டோ (ஸ்டிரிப்)",
@@ -6987,36 +6994,36 @@
"thinkingModeAdaptive": "அனுகூலமான",
"thinkingModeAdaptiveDesc": "செய்தி எண்ணிக்கை, கருவிகள் மற்றும் உந்துதல் நீளம் பயன்படுத்தி அடிப்படை முயற்சியிலிருந்து எண்ணக்கூடிய பட்ஜெட்டை அளவிடுங்கள்.",
"auto": "Auto Combo",
- "autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "custom": "Custom",
- "customDesc": "Set a fixed token budget for all requests",
- "adaptive": "Adaptive",
- "adaptiveDesc": "Scale budget based on request complexity",
- "effortNone": "None (0 tokens)",
- "effortLow": "Low (1K tokens)",
- "effortMedium": "Medium (10K tokens)",
- "effortHigh": "High (128K tokens)",
- "tokenBudget": "Token Budget",
- "tokens": "tokens",
- "baseEffortLevel": "Base Effort Level",
+ "autoDesc": "தானாகச் சீரமைந்துகொள்ளும் நுண்ணறிவு வழித்தடக் குழு (செயல்திறனுக்காக மேம்படுத்தப்பட்டது)",
+ "custom": "தனிப்பயன்",
+ "customDesc": "அனைத்து கோரிக்கைகளுக்கும் நிலையான டோக்கன் வரம்பை அமைக்கவும்",
+ "adaptive": "தகவமைப்பு",
+ "adaptiveDesc": "கோரிக்கையின் சிக்கல்தன்மையின் அடிப்படையில் வரம்பை அளவிடவும்",
+ "effortNone": "எதுவுமில்லை (0 டோக்கன்கள்)",
+ "effortLow": "குறைவு (1K டோக்கன்கள்)",
+ "effortMedium": "நடுத்தரம் (10K டோக்கன்கள்)",
+ "effortHigh": "அதிகம் (128K டோக்கன்கள்)",
+ "tokenBudget": "டோக்கன் வரம்பு",
+ "tokens": "டோக்கன்கள்",
+ "baseEffortLevel": "அடிப்படை முயற்சி நிலை",
"adaptiveHint": "Adaptive mode scales from this base level based on message count, tool usage, and prompt length.",
- "requireLogin": "Require login",
- "requireLoginDesc": "When ON, dashboard requires password. When OFF, access without login.",
- "currentPassword": "Current Password",
- "enterCurrentPassword": "Enter current password",
- "newPassword": "New Password",
- "enterNewPassword": "Enter new password",
- "confirmPassword": "Confirm New Password",
- "confirmPasswordPlaceholder": "Confirm new password",
- "passwordsNoMatch": "Passwords do not match",
- "passwordUpdated": "Password updated successfully",
- "failedUpdatePassword": "Failed to update password",
- "errorOccurred": "An error occurred",
- "updatePassword": "Update Password",
- "setPassword": "Set Password",
- "apiEndpointProtection": "API Endpoint Protection",
- "requireAuthModels": "Require API key for /models",
- "requireAuthModelsDesc": "When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.",
+ "requireLogin": "உள்நுழைவு தேவை",
+ "requireLoginDesc": "இயக்கப்பட்டிருக்கும்போது, டாஷ்போர்டுக்கு கடவுச்சொல் தேவை. முடக்கப்பட்டிருக்கும்போது, உள்நுழையாமல் அணுகலாம்.",
+ "currentPassword": "தற்போதைய கடவுச்சொல்",
+ "enterCurrentPassword": "தற்போதைய கடவுச்சொல்லை உள்ளிடவும்",
+ "newPassword": "புதிய கடவுச்சொல்",
+ "enterNewPassword": "புதிய கடவுச்சொல்லை உள்ளிடவும்",
+ "confirmPassword": "புதிய கடவுச்சொல்லை உறுதிப்படுத்தவும்",
+ "confirmPasswordPlaceholder": "புதிய கடவுச்சொல்லை உறுதிப்படுத்தவும்",
+ "passwordsNoMatch": "கடவுச்சொற்கள் பொருந்தவில்லை",
+ "passwordUpdated": "கடவுச்சொல் வெற்றிகரமாகப் புதுப்பிக்கப்பட்டது",
+ "failedUpdatePassword": "கடவுச்சொல்லைப் புதுப்பிக்க முடியவில்லை",
+ "errorOccurred": "ஒரு பிழை ஏற்பட்டது",
+ "updatePassword": "கடவுச்சொல்லைப் புதுப்பிக்கவும்",
+ "setPassword": "கடவுச்சொல்லை அமைக்கவும்",
+ "apiEndpointProtection": "API இறுதிப்புள்ளிப் பாதுகாப்பு",
+ "requireAuthModels": "/models-க்கு API விசை தேவை",
+ "requireAuthModelsDesc": "இதை இயக்கும்போது, அங்கீகரிக்கப்படாத கோரிக்கைகளுக்கு /v1/models இறுதிப்புள்ளி 404-ஐ வழங்கும். அங்கீகரிக்கப்படாத பயனர்கள் மாடல்களைக் கண்டறிவதைத் தடுக்கிறது.",
"authModelHeading": "செயலில் உள்ள அங்கீகார மாதிரி",
"authModelClient": "கிளையண்ட் ஏபிஐ இறுதிப்புள்ளிகளுக்கு (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) ஒரு Bearer API விசை தேவை.",
"authModelManagement": "மேலாண்மை முடிவுப்புள்ளிகளுக்கு (/டாஷ்போர்டு, /api/*) டாஷ்போர்டு அமர்வு அல்லது மேலாண்மை சான்று தேவை.",
@@ -7025,16 +7032,16 @@
"bruteForceProtectionDesc": "ஒரே ஐபியிலிருந்து மீண்டும் மீண்டும் தோல்விகளுக்குப் பிறகு /api/auth/login ஐ த்ரோட்டில் செய்து பூட்டவும்.",
"corsAllowedOrigins": "CORS அனுமதிக்கப்பட்ட தோற்றம்",
"corsAllowedOriginsDesc": "இந்தச் சேவையகத்தை அழைக்க அனுமதிக்கப்பட்ட உலாவி தோற்றங்களின் கமாவால் பிரிக்கப்பட்ட பட்டியல். வெற்று பட்டியல் = உலாவி CORS அணுகல் இல்லை (சர்வர்-டு-சர்வர் இன்னும் வேலை செய்கிறது). வளர்ச்சிக்கு மட்டும் CORS_ALLOW_ALL=true env var ஐப் பயன்படுத்தவும்.",
- "blockedProviders": "Blocked Providers",
- "blockedProvidersDesc": "Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.",
- "providersBlocked": "{count} provider(s) blocked from /models",
- "blockProviderTitle": "Block {provider}",
- "unblockProviderTitle": "Unblock {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "blockedProviders": "தடுக்கப்பட்ட வழங்குநர்கள்",
+ "blockedProvidersDesc": "/v1/models பதிலிலிருந்து குறிப்பிட்ட வழங்குநர்களை மறைக்கவும். தடுக்கப்பட்ட வழங்குநர்கள் மாடல் பட்டியல்களில் தோன்ற மாட்டார்கள்.",
+ "providersBlocked": "/models-இல் {count} வழங்குநர்(கள்) தடுக்கப்பட்டுள்ளனர்",
+ "blockProviderTitle": "{provider}-ஐத் தடுக்கவும்",
+ "unblockProviderTitle": "{provider}-இன் தடையை நீக்கவும்",
+ "cliFingerprint": "CLI கைரேகைப் பொருத்தம்",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "CLI கைரேகை செயலில் உள்ள {count} வழங்குநர்(கள்)",
+ "enableFingerprintTitle": "{provider}-க்கு கைரேகையை இயக்கவும்",
+ "disableFingerprintTitle": "{provider}-க்கான கைரேகையை முடக்கவும்",
"systemTransforms": "சிஸ்டம்-பிளாக் டிரான்ஸ்ஃபார்ம் பைப்லைன்",
"systemTransformsDesc": "ஒவ்வொரு வழங்குநரும் ஆர்டர் செய்யப்பட்ட உருமாற்றங்களின் பைப்லைனை அனுப்புவதற்கு முன் கோரிக்கை அமைப்புக்கு பயன்படுத்தப்பட்டது. எந்தவொரு வழங்குநர் ஐடியையும் ஆதரிக்கிறது.",
"systemTransformsAddProvider": "வழங்குநரைச் சேர்க்கவும்",
@@ -7045,29 +7052,29 @@
"systemTransformsOpMoveUp": "மேலே செல்லவும்",
"systemTransformsOpMoveDown": "கீழே நகர்த்தவும்",
"systemTransformsOpDelete": "op ஐ நீக்கு",
- "routingStrategy": "Routing Strategy",
- "routingAdvancedGuideTitle": "Advanced routing guidance",
+ "routingStrategy": "வழிப்படுத்தல் உத்தி",
+ "routingAdvancedGuideTitle": "மேம்பட்ட வழிப்படுத்தல் வழிகாட்டுதல்",
"routingAdvancedGuideHint1": "Use Fill First for predictable priority, Round Robin for fairness, and P2C for latency resilience.",
"routingAdvancedGuideHint2": "If providers vary in quality/cost, start with Cost Opt for background work and Least Used for balanced wear.",
- "fillFirst": "Fill First",
- "fillFirstDesc": "Use accounts in priority order",
+ "fillFirst": "முதலில் நிரப்பவும்",
+ "fillFirstDesc": "முன்னுரிமை வரிசையில் கணக்குகளைப் பயன்படுத்தவும்",
"roundRobin": "Round Robin",
- "roundRobinDesc": "Cycle through all accounts",
+ "roundRobinDesc": "அனைத்துக் கணக்குகளையும் சுழற்சி முறையில் பயன்படுத்தவும்",
"p2c": "P2C",
- "p2cDesc": "Pick 2 random, use the healthier one",
- "random": "Random",
- "randomDesc": "Random account each request",
- "leastUsed": "Least Used",
- "leastUsedDesc": "Pick least recently used account",
- "costOpt": "Cost Opt",
- "costOptDesc": "Prefer cheapest available account",
+ "p2cDesc": "சீரற்ற முறையில் 2 கணக்குகளைத் தேர்ந்தெடுத்து, ஆரோக்கியமானதைப் பயன்படுத்தவும்",
+ "random": "சீரற்றது",
+ "randomDesc": "ஒவ்வொரு கோரிக்கைக்கும் ஒரு சீரற்ற கணக்கு",
+ "leastUsed": "குறைவாகப் பயன்படுத்தப்பட்டது",
+ "leastUsedDesc": "மிக நீண்ட காலமாகப் பயன்படுத்தப்படாத கணக்கைத் தேர்ந்தெடுக்கவும்",
+ "costOpt": "செலவு உகப்பாக்கம்",
+ "costOptDesc": "கிடைக்கக்கூடிய மலிவான கணக்கிற்கு முன்னுரிமை அளிக்கவும்",
"resetAware": "ரீசெட்-அவேர் ஆர்ஆர்",
"resetAwareDesc": "ஆரோக்கியமான மீதமுள்ள ஒதுக்கீடு மற்றும் அருகிலுள்ள மீட்டமைப்புகளுடன் கணக்குகளை விரும்பவும்",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "ஒதுக்கீட்டு எடையிடப்பட்டது",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "கண்டிப்பான சீரற்ற முறை",
+ "strictRandomDesc": "அட்டைகளைக் கலைத்தல் — மீண்டும் கலைப்பதற்கு முன் ஒவ்வொரு கணக்கையும் ஒருமுறை பயன்படுத்தும்",
+ "stickyLimit": "நிலையான வரம்பு",
"stickyLimitDesc": "Calls per account before switching",
"routingStrategyTitle": "ரூட்டிங் உத்தி",
"routingStrategySubtitle": "9router-ஐப் பொருத்து: கணக்கு ரவுண்ட்-ராபின், ஸ்டிக்கி வரம்புகள் மற்றும் காம்போ சுழற்சி",
@@ -7085,225 +7092,225 @@
"providerAccountRoutingDesc": "இந்த வழங்குநருக்கான உலகளாவிய கணக்கு உத்தியை மேலெழுது (9router சமநிலை).",
"providerRoutingStrategy": "கணக்கு உத்தி",
"providerRoutingInheritGlobal": "பொதுவான இயல்புநிலையைப் பெறுக",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
- "modelAliases": "Model Aliases",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
- "addCustomAlias": "Add Custom Alias",
- "deprecatedModelId": "Deprecated model ID",
- "newModelId": "New model ID",
- "customAliases": "Custom Aliases",
- "builtInAliases": "Built-in Aliases",
- "backgroundDegradationTitle": "Background Task Degradation",
- "backgroundDegradationDesc": "Auto-detect background tasks (titles, summaries) and route to cheaper models",
- "enableDegradation": "Enable Background Degradation",
- "enableDegradationHint": "When enabled, background tasks like title generation and summarization are routed to cheaper models automatically",
- "tasksDetected": "Tasks detected",
- "degradationMap": "Model Degradation Map",
- "premiumModel": "Premium model",
- "cheapModel": "Cheap model",
- "detectionPatterns": "Detection Patterns",
- "newPattern": "e.g. \"generate a title\"",
+ "quotaPreflightTitle": "ஒதுக்கீட்டு முன்சோதனை வரம்பு",
+ "quotaPreflightSubtitle": "கோரிக்கையை மேல்நிலைக்கு அனுப்புவதற்கு முன், ஒதுக்கீடு தீர்ந்த கணக்குகளைத் தவிர்க்கவும்",
+ "quotaPreflightEnable": "ஒதுக்கீட்டு முன்சோதனையை இயக்கவும்",
+ "quotaPreflightEnableDesc": "ஒவ்வொரு கோரிக்கைக்கும் முன், கணக்கின் மீதமுள்ள ஒதுக்கீட்டைச் சரிபார்க்கவும் (5 மணிநேர / வாராந்திர / மாதாந்திர காலச்சாளரங்கள்). வரம்பிற்கு இணையாகவோ அதற்குக் கீழாகவோ உள்ள கணக்குகள் மேல்நிலை அழைப்பின்றித் தவிர்க்கப்படும். வழங்குநர் ஒதுக்கீட்டுப் பக்கத்தில் ஒவ்வொரு காலச்சாளரத்திற்கும் அமைக்கப்பட்ட வரம்புகளே இங்குள்ள இயல்புநிலையைவிட எப்போதும் முன்னுரிமை பெறும்.",
+ "quotaPreflightCutoff": "உலகளாவிய வரம்பு (மீதமுள்ள குறைந்தபட்ச %)",
+ "quotaPreflightCutoffDesc": "தனிப்பட்ட வரம்பு இல்லாத ஒவ்வொரு விண்டோவிலும், கணக்கின் மீதமுள்ள ஒதுக்கீடு இந்தச் சதவீதத்திற்கோ அதற்குக் கீழோ குறையும்போது அதைப் பயன்படுத்துவதை நிறுத்தவும். இது Provider Quota பக்கத்திலுள்ள மீதமுள்ள-% பட்டைகளுடன் பொருந்தும்.",
+ "quotaPreflightWindowsHint": "Provider Quota பக்கத்திலுள்ள Cutoff உரையாடலில் அமைக்கப்பட்ட, தனிப்பட்ட விண்டோ அல்லது வழங்குநர் வாரியான வரம்பைக் கொண்ட விண்டோக்கள் இந்த இயல்புநிலை அமைப்பால் பாதிக்கப்படாது.",
+ "quotaPreflightLoadFailed": "ஒதுக்கீட்டின் முன்சரிபார்ப்பு அமைப்புகளை ஏற்ற முடியவில்லை.",
+ "modelAliases": "மாதிரி மாற்றுப்பெயர்கள்",
+ "modelAliasesTitle": "மாதிரி மாற்றுப்பெயர்கள்",
+ "modelAliasesDesc": "சரியான பொருத்தங்கள் அல்லது வைல்ட்கார்டு வடிவங்களைப் பயன்படுத்தி மாதிரிப் பெயர்களை மறுவரைபடம் செய்யவும்.",
+ "addCustomAlias": "தனிப்பயன் மாற்றுப்பெயரைச் சேர்",
+ "deprecatedModelId": "நீக்கப்படவுள்ள மாதிரி ID",
+ "newModelId": "புதிய மாதிரி ID",
+ "customAliases": "தனிப்பயன் மாற்றுப்பெயர்கள்",
+ "builtInAliases": "உள்ளமைந்த மாற்றுப்பெயர்கள்",
+ "backgroundDegradationTitle": "பின்னணிப் பணிகளுக்கான தரக் குறைப்பு",
+ "backgroundDegradationDesc": "பின்னணிப் பணிகளை (தலைப்புகள், சுருக்கங்கள்) தானாகக் கண்டறிந்து, குறைந்த செலவுள்ள மாதிரிகளுக்கு வழிமாற்றவும்",
+ "enableDegradation": "பின்னணித் தரக் குறைப்பை இயக்கு",
+ "enableDegradationHint": "இயக்கப்பட்டிருக்கும்போது, தலைப்பு உருவாக்கம் மற்றும் சுருக்கம் போன்ற பின்னணிப் பணிகள் தானாகவே குறைந்த செலவுள்ள மாதிரிகளுக்கு வழிமாற்றப்படும்",
+ "tasksDetected": "கண்டறியப்பட்ட பணிகள்",
+ "degradationMap": "மாதிரித் தரக் குறைப்பு வரைபடம்",
+ "premiumModel": "பிரீமியம் மாதிரி",
+ "cheapModel": "குறைந்த செலவுள்ள மாதிரி",
+ "detectionPatterns": "கண்டறிதல் வடிவங்கள்",
+ "newPattern": "எ.கா. \"ஒரு தலைப்பை உருவாக்கு\"",
"aliasPatternPlaceholder": "claude-sonnet-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
- "pattern": "Pattern",
- "targetModel": "Target Model",
- "add": "+ Add",
- "session": "Session",
- "sessionDetailsAria": "Session details",
+ "pattern": "வடிவம்",
+ "targetModel": "இலக்கு மாதிரி",
+ "add": "+ சேர்",
+ "session": "அமர்வு",
+ "sessionDetailsAria": "அமர்வு விவரங்கள்",
"status": "Status",
- "authenticated": "Authenticated",
- "guest": "Guest",
- "loginTime": "Login Time",
- "sessionAge": "Session Age",
- "browser": "Browser",
- "clearLocalData": "Clear Local Data",
- "logout": "Logout",
- "clearLocalDataConfirm": "Clear all local data? This will reset your preferences.",
- "unknown": "Unknown",
- "systemActor": "system",
- "ipAccessControl": "IP Access Control",
- "ipAccessControlDesc": "Block or allow specific IP addresses",
- "ipModeDisabled": "Disabled",
- "ipModeBlacklist": "Blacklist",
- "ipModeWhitelist": "Whitelist",
- "ipModeWhitelistPriority": "WL Priority",
- "addIpAddress": "Add IP Address",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
- "block": "+ Block",
- "allow": "+ Allow",
- "blocked": "Blocked ({count})",
- "allowed": "Allowed ({count})",
- "temporaryBans": "Temporary Bans ({count})",
- "minLeft": "{min}m left",
- "auditLog": "Audit Log",
- "searchAuditLogs": "Search audit logs...",
- "failedLoadAuditLog": "Failed to load audit log",
- "noAuditEvents": "No audit events found",
- "action": "Action",
- "actor": "Actor",
- "details": "Details",
- "time": "Time",
- "fallbackChainsTitle": "Fallback Chains",
- "fallbackChainsDesc": "Define provider fallback order per model",
- "addChain": "+ Add Chain",
- "modelName": "Model Name",
+ "authenticated": "அங்கீகரிக்கப்பட்டது",
+ "guest": "விருந்தினர்",
+ "loginTime": "உள்நுழைவு நேரம்",
+ "sessionAge": "அமர்வின் காலம்",
+ "browser": "உலாவி",
+ "clearLocalData": "உள்ளூர் தரவை அழி",
+ "logout": "வெளியேறு",
+ "clearLocalDataConfirm": "அனைத்து உள்ளூர் தரவையும் அழிக்கவா? இது உங்கள் விருப்பத்தேர்வுகளை மீட்டமைக்கும்.",
+ "unknown": "தெரியாதது",
+ "systemActor": "அமைப்பு",
+ "ipAccessControl": "IP அணுகல் கட்டுப்பாடு",
+ "ipAccessControlDesc": "குறிப்பிட்ட IP முகவரிகளைத் தடுக்கவும் அல்லது அனுமதிக்கவும்",
+ "ipModeDisabled": "முடக்கப்பட்டது",
+ "ipModeBlacklist": "தடுப்புப் பட்டியல்",
+ "ipModeWhitelist": "அனுமதிப்பட்டியல்",
+ "ipModeWhitelistPriority": "அனுமதிப்பட்டியல் முன்னுரிமை",
+ "addIpAddress": "IP முகவரியைச் சேர்",
+ "ipAddressPlaceholder": "192.168.1.0/24 அல்லது 10.0.*.*",
+ "block": "+ தடு",
+ "allow": "+ அனுமதி",
+ "blocked": "தடுக்கப்பட்டவை ({count})",
+ "allowed": "அனுமதிக்கப்பட்டவை ({count})",
+ "temporaryBans": "தற்காலிகத் தடைகள் ({count})",
+ "minLeft": "{min} நிமிடம் மீதமுள்ளது",
+ "auditLog": "தணிக்கைப் பதிவு",
+ "searchAuditLogs": "தணிக்கைப் பதிவுகளில் தேடுக...",
+ "failedLoadAuditLog": "தணிக்கைப் பதிவை ஏற்ற முடியவில்லை",
+ "noAuditEvents": "தணிக்கை நிகழ்வுகள் எதுவும் காணப்படவில்லை",
+ "action": "செயல்",
+ "actor": "செயல்படுத்தியவர்",
+ "details": "விவரங்கள்",
+ "time": "நேரம்",
+ "fallbackChainsTitle": "மாற்று வழங்குநர் சங்கிலிகள்",
+ "fallbackChainsDesc": "ஒவ்வொரு மாதிரிக்கும் வழங்குநர்களின் மாற்று வரிசையை வரையறுக்கவும்",
+ "addChain": "+ சங்கிலியைச் சேர்",
+ "modelName": "மாதிரிப் பெயர்",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
- "providersCommaSeparated": "Providers (comma-separated, in priority order)",
+ "providersCommaSeparated": "வழங்குநர்கள் (காற்புள்ளியால் பிரிக்கப்பட்டு, முன்னுரிமை வரிசையில்)",
"providersCommaSeparatedPlaceholder": "anthropic, openai, gemini",
- "createChain": "Create Chain",
- "noFallbackChains": "No Fallback Chains",
- "noFallbackChainsDesc": "Create a chain to define provider fallback order for a model.",
- "loadingFallbackChains": "Loading fallback chains...",
- "deleteChainConfirm": "Delete fallback chain for \"{model}\"?",
- "chainCreated": "Chain created for {model}",
- "chainDeleted": "Chain deleted for {model}",
- "failedCreateChain": "Failed to create chain",
- "failedDeleteChain": "Failed to delete chain",
- "deleteChain": "Delete chain",
- "fillModelAndProviders": "Please fill model name and providers",
- "addAtLeastOneProvider": "Add at least one provider",
- "comboDefaultsTitle": "Combo Defaults",
- "comboDefaultsGuideTitle": "How to tune combo defaults",
- "comboDefaultsGuideHint1": "Keep retries low in low-latency flows; increase timeout only for long generation tasks.",
- "comboDefaultsGuideHint2": "Use provider overrides when one provider needs different timeout/retry behavior than global defaults.",
- "globalComboConfig": "Global combo configuration",
+ "createChain": "சங்கிலியை உருவாக்கு",
+ "noFallbackChains": "மாற்று வழங்குநர் சங்கிலிகள் இல்லை",
+ "noFallbackChainsDesc": "ஒரு மாதிரிக்கான வழங்குநர்களின் மாற்று வரிசையை வரையறுக்க ஒரு சங்கிலியை உருவாக்கவும்.",
+ "loadingFallbackChains": "மாற்று வழங்குநர் சங்கிலிகள் ஏற்றப்படுகின்றன...",
+ "deleteChainConfirm": "\"{model}\"-க்கான மாற்று வழங்குநர் சங்கிலியை நீக்கவா?",
+ "chainCreated": "{model}-க்கான சங்கிலி உருவாக்கப்பட்டது",
+ "chainDeleted": "{model}-க்கான சங்கிலி நீக்கப்பட்டது",
+ "failedCreateChain": "சங்கிலியை உருவாக்க முடியவில்லை",
+ "failedDeleteChain": "சங்கிலியை நீக்க முடியவில்லை",
+ "deleteChain": "சங்கிலியை நீக்கு",
+ "fillModelAndProviders": "மாதிரிப் பெயரையும் வழங்குநர்களையும் நிரப்பவும்",
+ "addAtLeastOneProvider": "குறைந்தது ஒரு வழங்குநரையாவது சேர்க்கவும்",
+ "comboDefaultsTitle": "காம்போ இயல்புநிலைகள்",
+ "comboDefaultsGuideTitle": "காம்போ இயல்புநிலைகளை எவ்வாறு சீரமைப்பது",
+ "comboDefaultsGuideHint1": "குறைந்த தாமதச் செயலோட்டங்களில் மறுமுயற்சிகளைக் குறைவாக வைத்திருங்கள்; நீண்ட உருவாக்கப் பணிகளுக்கு மட்டும் காலக்கெடுவை அதிகரிக்கவும்.",
+ "comboDefaultsGuideHint2": "ஒரு வழங்குநருக்கு உலகளாவிய இயல்புநிலைகளிலிருந்து மாறுபட்ட காலக்கெடு/மறுமுயற்சி செயல்பாடு தேவைப்படும்போது வழங்குநர் மேலெழுதல்களைப் பயன்படுத்தவும்.",
+ "globalComboConfig": "உலகளாவிய காம்போ உள்ளமைவு",
"moveUp": "மேலே நகர்த்து",
"moveDown": "கீழே நகர்த்து",
"allProvidersAdded": "அனைத்து வழங்குநர்களும் சேர்க்கப்பட்டனர்",
"noProvidersFound": "வழங்குநர்கள் யாரும் கண்டறியப்படவில்லை",
- "defaultStrategy": "Default Strategy",
+ "defaultStrategy": "இயல்புநிலை உத்தி",
"defaultStrategyDesc": "Applied to new combos without explicit strategy",
- "comboStrategyAria": "Combo strategy",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Priority-style routing with automatic context handoffs when account rotation happens",
- "maxRetriesLabel": "Max Retries",
- "retryDelayLabel": "Retry Delay (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
- "healthCheckDesc": "Pre-check provider availability",
- "trackMetrics": "Track Metrics",
- "trackMetricsDesc": "Record per-combo request metrics",
- "providerOverrides": "Provider Overrides",
- "providerOverridesDesc": "Override timeout and retries per provider. Provider settings override global defaults.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
- "removeProviderOverrideAria": "Remove {provider} override",
+ "comboStrategyAria": "காம்போ உத்தி",
+ "priority": "முன்னுரிமை",
+ "weighted": "எடையிடப்பட்டது",
+ "contextRelay": "சூழல் பரிமாற்றம்",
+ "contextRelayDesc": "கணக்கு சுழற்சி நிகழும்போது தானியங்கி சூழல் ஒப்படைப்புகளுடன் கூடிய முன்னுரிமை-பாணி வழிப்படுத்தல்",
+ "maxRetriesLabel": "அதிகபட்ச மறுமுயற்சிகள்",
+ "retryDelayLabel": "மறுமுயற்சி தாமதம் (ms)",
+ "timeoutLabel": "காலக்கெடு (ms)",
+ "healthCheck": "நிலைச் சரிபார்ப்பு",
+ "healthCheckDesc": "வழங்குநர் கிடைப்பதை முன்கூட்டியே சரிபார்க்கவும்",
+ "trackMetrics": "அளவீடுகளைக் கண்காணிக்கவும்",
+ "trackMetricsDesc": "ஒவ்வொரு காம்போவிற்குமான கோரிக்கை அளவீடுகளைப் பதிவுசெய்யவும்",
+ "providerOverrides": "வழங்குநர் மேலெழுதல்கள்",
+ "providerOverridesDesc": "ஒவ்வொரு வழங்குநருக்கும் காலக்கெடு மற்றும் மறுமுயற்சிகளை மேலெழுதவும். வழங்குநர் அமைப்புகள் உலகளாவிய இயல்புநிலைகளை மேலெழுதும்.",
+ "providerMaxRetriesAria": "{provider} அதிகபட்ச மறுமுயற்சிகள்",
+ "providerTimeoutAria": "{provider} காலக்கெடு ms",
+ "removeProviderOverrideAria": "{provider} மேலெழுதலை அகற்றவும்",
"selectProviderPlaceholder": "வழங்குநரைத் தேர்ந்தெடுக்கவும்...",
"searchProviderPlaceholder": "வழங்குநர்களைத் தேடவும்...",
"searchProviderAria": "வழங்குநர்களைத் தேடவும்",
- "newProviderNamePlaceholder": "e.g. google, openai...",
- "newProviderNameAria": "New provider name",
- "retries": "retries",
+ "newProviderNamePlaceholder": "எ.கா. google, openai...",
+ "newProviderNameAria": "புதிய வழங்குநரின் பெயர்",
+ "retries": "மறுமுயற்சிகள்",
"ms": "ms",
- "saveComboDefaults": "Save Combo Defaults",
- "maxNestingDepth": "Max Nesting Depth",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
+ "saveComboDefaults": "காம்போ இயல்புநிலைகளைச் சேமிக்கவும்",
+ "maxNestingDepth": "அதிகபட்ச உள்ளமைப்பு ஆழம்",
+ "concurrencyPerModel": "ஒரேநேரச் செயல்பாடுகள் / மாடல்",
+ "queueTimeout": "வரிசைக் காலக்கெடு (ms)",
"queueDepth": "வரிசை ஆழம்",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
- "providerProfiles": "Provider Profiles",
- "providerProfilesDesc": "Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
- "maxBackoffLevel": "Max Backoff Level",
- "cbThreshold": "CB Threshold",
- "cbResetTime": "CB Reset Time",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
- "defaultSafetyNet": "Default Safety Net",
+ "contextRelayHandoffThreshold": "ஒப்படைப்பு வரம்பு",
+ "contextRelayMaxMessages": "சுருக்கத்திற்கான அதிகபட்ச செய்திகள்",
+ "contextRelaySummaryModel": "சுருக்க மாடல்",
+ "contextRelayProviderNote": "சூழல் பரிமாற்றம் தற்போது Codex கணக்குகளுக்கான ஒப்படைப்புகளை உருவாக்குகிறது மற்றும் புதிய அல்லது உள்ளமைக்கப்படாத காம்போக்களுக்கு இந்த மதிப்புகளை உலகளாவிய இயல்புநிலைகளாகப் பயன்படுத்துகிறது.",
+ "providerProfiles": "வழங்குநர் சுயவிவரங்கள்",
+ "providerProfilesDesc": "OAuth (அமர்வு அடிப்படையிலான) மற்றும் API Key (பயன்பாட்டு அளவீடு கொண்ட) வழங்குநர்களுக்கான தனித்தனி மீட்சித்திறன் அமைப்புகள். குறைவான விகித வரம்புகள் காரணமாக OAuth வழங்குநர்களுக்குக் கடுமையான வரம்புகள் உள்ளன.",
+ "oauthProviders": "OAuth வழங்குநர்கள்",
+ "apiKeyProviders": "API Key வழங்குநர்கள்",
+ "transientCooldown": "தற்காலிகக் காத்திருப்பு",
+ "rateLimitCooldown": "விகித வரம்புக் காத்திருப்பு",
+ "maxBackoffLevel": "அதிகபட்ச பின்வாங்கல் நிலை",
+ "cbThreshold": "CB வரம்பு",
+ "cbResetTime": "CB மீட்டமைப்பு நேரம்",
+ "rateLimiting": "விகிதக் கட்டுப்பாடு",
+ "rateLimitingDesc": "API Key வழங்குநர்களுக்குப் பாதுகாப்பான இயல்புநிலைகளுடன் தானாகவே விகிதக் கட்டுப்பாடு விதிக்கப்படுகிறது. வரம்புகள் பதில் தலைப்புகளிலிருந்து கற்றுக்கொள்ளப்பட்டு, காலப்போக்கில் தகவமைக்கப்படுகின்றன.",
+ "defaultSafetyNet": "இயல்புநிலை பாதுகாப்பு வலை",
"rpm": "RPM",
- "minGap": "Min Gap",
- "maxConcurrent": "Max Concurrent",
- "activeLimiters": "Active Limiters",
- "noActiveLimiters": "No active rate limiters yet.",
- "reservoir": "Reservoir",
- "running": "Running",
- "queued": "Queued",
- "circuitBreakers": "Circuit Breakers",
- "breakerStateClosed": "Closed",
- "breakerStateOpen": "Open",
- "breakerStateHalfOpen": "Half-Open",
- "tripped": "{count} tripped",
- "healthy": "{count} healthy",
- "resetAll": "Reset All",
- "noCircuitBreakers": "No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.",
- "failures": "{count} failure(s)",
- "policiesLocked": "Policies & Locked Identifiers",
- "allOperational": "All systems operational — no lockouts or tripped breakers",
- "loadingPolicies": "Loading policies...",
- "lockedIdentifiers": "Locked Identifiers",
- "unlockedIdentifier": "Unlocked: {identifier}",
- "sinceDate": "since {date}",
- "forceUnlock": "Force Unlock",
- "unlocking": "Unlocking...",
- "failedUnlock": "Failed to unlock",
- "failedLoadWithStatus": "Failed to load: {status}",
- "failedLoadResilience": "Failed to load resilience status",
- "saveFailed": "Save failed",
- "resetFailed": "Reset failed",
- "loadingResilience": "Loading resilience status...",
- "retry": "Retry",
+ "minGap": "குறைந்தபட்ச இடைவெளி",
+ "maxConcurrent": "அதிகபட்ச ஒரேநேர செயல்பாடுகள்",
+ "activeLimiters": "செயலில் உள்ள வரம்புக் கட்டுப்படுத்திகள்",
+ "noActiveLimiters": "செயலில் உள்ள கோரிக்கை வீத வரம்புக் கட்டுப்படுத்திகள் இன்னும் இல்லை.",
+ "reservoir": "கையிருப்பு",
+ "running": "இயங்குகிறது",
+ "queued": "வரிசையில் உள்ளது",
+ "circuitBreakers": "சுற்று முறிப்பான்கள்",
+ "breakerStateClosed": "மூடப்பட்டது",
+ "breakerStateOpen": "திறக்கப்பட்டது",
+ "breakerStateHalfOpen": "பாதி திறக்கப்பட்டது",
+ "tripped": "{count} செயலிழந்தன",
+ "healthy": "{count} ஆரோக்கியமாக உள்ளன",
+ "resetAll": "அனைத்தையும் மீட்டமை",
+ "noCircuitBreakers": "செயலில் உள்ள சுற்று முறிப்பான்கள் இன்னும் இல்லை. சேர்க்கைச் செயலாக்கத் தொடரின் வழியாகக் கோரிக்கைகள் செல்லும்போது அவை தானாக உருவாக்கப்படும்.",
+ "failures": "{count} தோல்வி(கள்)",
+ "policiesLocked": "கொள்கைகள் & பூட்டப்பட்ட அடையாளங்காட்டிகள்",
+ "allOperational": "அனைத்து அமைப்புகளும் செயல்பாட்டில் உள்ளன — பூட்டுதல்களோ செயலிழந்த சுற்று முறிப்பான்களோ இல்லை",
+ "loadingPolicies": "கொள்கைகள் ஏற்றப்படுகின்றன...",
+ "lockedIdentifiers": "பூட்டப்பட்ட அடையாளங்காட்டிகள்",
+ "unlockedIdentifier": "பூட்டு நீக்கப்பட்டது: {identifier}",
+ "sinceDate": "{date} முதல்",
+ "forceUnlock": "கட்டாயமாகப் பூட்டை நீக்கு",
+ "unlocking": "பூட்டு நீக்கப்படுகிறது...",
+ "failedUnlock": "பூட்டை நீக்க முடியவில்லை",
+ "failedLoadWithStatus": "ஏற்ற முடியவில்லை: {status}",
+ "failedLoadResilience": "மீள்திறன் நிலையை ஏற்ற முடியவில்லை",
+ "saveFailed": "சேமிக்க முடியவில்லை",
+ "resetFailed": "மீட்டமைக்க முடியவில்லை",
+ "loadingResilience": "மீள்திறன் நிலை ஏற்றப்படுகிறது...",
+ "retry": "மீண்டும் முயல்க",
"systemStorage": "System & Storage",
- "allDataLocal": "All data stored locally on your machine",
- "databasePath": "Database Path",
+ "allDataLocal": "அனைத்துத் தரவும் உங்கள் கணினியில் உள்ளகமாகச் சேமிக்கப்படுகிறது",
+ "databasePath": "தரவுத்தளப் பாதை",
"export": "ஏற்றுமதி செய்",
- "exportDatabase": "Export Database",
- "exportAll": "Export All (.tar.gz)",
- "importDatabase": "Import Database",
- "confirmDbImport": "Confirm Database Import",
- "confirmDbImportDesc": "This will replace all current data with the content from {file}. A backup will be created automatically before the import.",
- "yesImport": "Yes, Import",
- "lastBackup": "Last Backup",
- "noBackupYet": "No backup yet",
- "backupNow": "Backup Now",
- "backupRestore": "Backup & Restore",
- "viewBackups": "View Backups",
- "hide": "Hide",
- "backupRetentionDesc": "Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.",
- "loadingBackups": "Loading backups...",
- "noBackupsYet": "No backups available yet. Backups will be created automatically when data changes.",
- "backupsAvailable": "{count} backup(s) available",
- "refresh": "Refresh",
- "confirm": "Confirm?",
- "yes": "Yes",
- "no": "No",
- "restore": "Restore",
- "invalidFileType": "Invalid file type. Only .sqlite files are accepted.",
- "exportFailed": "Export failed",
- "exportFailedWithError": "Export failed: {error}",
- "fullExportFailedWithError": "Full export failed: {error}",
- "backupCreated": "Backup created: {file}",
- "restoreSuccess": "Restored! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "importSuccess": "Database imported! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "minutesAgo": "{count}m ago",
- "hoursAgo": "{count}h ago",
- "daysAgo": "{count}d ago",
- "backupReasonManual": "manual",
- "backupReasonPreRestore": "pre-restore",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
- "noChangesSinceBackup": "No changes since last backup",
- "backupFailed": "Backup failed",
- "restoreFailed": "Restore failed",
- "importFailed": "Import failed",
- "errorDuringRestore": "An error occurred during restore",
- "errorDuringImport": "An error occurred during import",
- "modelPricing": "Model Pricing",
- "modelPricingDesc": "Configure cost rates per model • All rates in $/1M tokens",
+ "exportDatabase": "தரவுத்தளத்தை ஏற்றுமதி செய்",
+ "exportAll": "அனைத்தையும் ஏற்றுமதி செய் (.tar.gz)",
+ "importDatabase": "தரவுத்தளத்தை இறக்குமதி செய்",
+ "confirmDbImport": "தரவுத்தள இறக்குமதியை உறுதிப்படுத்து",
+ "confirmDbImportDesc": "இது தற்போதைய அனைத்துத் தரவையும் {file} கோப்பின் உள்ளடக்கத்தால் மாற்றும். இறக்குமதிக்கு முன் ஒரு காப்புப்பிரதி தானாக உருவாக்கப்படும்.",
+ "yesImport": "ஆம், இறக்குமதி செய்",
+ "lastBackup": "கடைசி காப்புப்பிரதி",
+ "noBackupYet": "இதுவரை காப்புப்பிரதி இல்லை",
+ "backupNow": "இப்போது காப்புப்பிரதி எடுக்கவும்",
+ "backupRestore": "காப்புப்பிரதி & மீட்டமைப்பு",
+ "viewBackups": "காப்புப்பிரதிகளைக் காண்க",
+ "hide": "மறை",
+ "backupRetentionDesc": "மீட்டமைப்பதற்கு முன்பும், தரவு மாறும்போது ஒவ்வொரு 15 நிமிடங்களுக்கும் தரவுத்தள ஸ்னாப்ஷாட்கள் தானாக உருவாக்கப்படும். தக்கவைப்பு: அறிவார்ந்த சுழற்சியுடன் 24 மணிநேரக் காப்புப்பிரதிகள் + 30 தினசரிக் காப்புப்பிரதிகள்.",
+ "loadingBackups": "காப்புப்பிரதிகள் ஏற்றப்படுகின்றன...",
+ "noBackupsYet": "இதுவரை காப்புப்பிரதிகள் எதுவும் இல்லை. தரவு மாறும்போது காப்புப்பிரதிகள் தானாக உருவாக்கப்படும்.",
+ "backupsAvailable": "{count} காப்புப்பிரதி(கள்) உள்ளன",
+ "refresh": "புதுப்பி",
+ "confirm": "உறுதிப்படுத்தவா?",
+ "yes": "ஆம்",
+ "no": "இல்லை",
+ "restore": "மீட்டமை",
+ "invalidFileType": "தவறான கோப்பு வகை. .sqlite கோப்புகள் மட்டுமே ஏற்கப்படும்.",
+ "exportFailed": "ஏற்றுமதி தோல்வியடைந்தது",
+ "exportFailedWithError": "ஏற்றுமதி தோல்வியடைந்தது: {error}",
+ "fullExportFailedWithError": "முழு ஏற்றுமதி தோல்வியடைந்தது: {error}",
+ "backupCreated": "காப்புப்பிரதி உருவாக்கப்பட்டது: {file}",
+ "restoreSuccess": "மீட்டமைக்கப்பட்டது! {connections} இணைப்புகள், {nodes} முனைகள், {combos} சேர்க்கைகள், {apiKeys} API விசைகள்.",
+ "importSuccess": "தரவுத்தளம் இறக்குமதி செய்யப்பட்டது! {connections} இணைப்புகள், {nodes} முனைகள், {combos} சேர்க்கைகள், {apiKeys} API விசைகள்.",
+ "minutesAgo": "{count} நிமி முன்பு",
+ "hoursAgo": "{count} மணி முன்பு",
+ "daysAgo": "{count} நாள் முன்பு",
+ "backupReasonManual": "கைமுறை",
+ "backupReasonPreRestore": "மீட்டமைப்புக்கு முன்",
+ "connectionsCount": "{count, plural, one {# இணைப்பு} other {# இணைப்புகள்}}",
+ "noChangesSinceBackup": "கடைசி காப்புப்பிரதிக்குப் பிறகு மாற்றங்கள் இல்லை",
+ "backupFailed": "காப்புப்பிரதி தோல்வியடைந்தது",
+ "restoreFailed": "மீட்டமைப்பு தோல்வியடைந்தது",
+ "importFailed": "இறக்குமதி தோல்வியடைந்தது",
+ "errorDuringRestore": "மீட்டமைப்பின்போது பிழை ஏற்பட்டது",
+ "errorDuringImport": "இறக்குமதியின்போது பிழை ஏற்பட்டது",
+ "modelPricing": "மாதிரி விலை நிர்ணயம்",
+ "modelPricingDesc": "ஒவ்வொரு மாதிரிக்கும் செலவு விகிதங்களை உள்ளமைக்கவும் • அனைத்து விகிதங்களும் $/1M டோக்கன்களில்",
"pricingCoverage": "கவரேஜ்",
"pricingAuth": "அங்கீகாரம்",
"pricingSort": "வரிசைப்படுத்து",
@@ -7325,7 +7332,7 @@
"configured": "கட்டமைக்கப்பட்டது",
"none": "ஏதுமில்லை",
"modelOverrideValuePlaceholder": "எண் மதிப்பு",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "ஆங்கிலக் காற்புள்ளியால் பிரிக்கப்பட்டவை, எ.கா. low, medium, high",
"addKeyValue": "விசை மதிப்பைச் சேர்",
"noModelOverrides": "இந்த மாதிரிக்கு மேலெழுதல்கள் எதுவும் கட்டமைக்கப்படவில்லை.",
"modelOverrideLoadFailed": "மாதிரி மேலெழுதல்களை ஏற்றுவதில் தோல்வி",
@@ -7333,66 +7340,66 @@
"modelOverrideRemoved": "மாதிரி மேலெழுதுதல் அகற்றப்பட்டது",
"modelOverrideSaveFailed": "மாதிரி மேலெழுதலைச் சேமிப்பதில் தோல்வி",
"modelOverrideRemoveFailed": "மாதிரி மேலெழுதலை அகற்றுவதில் தோல்வி",
- "registry": "Registry",
- "priced": "Priced",
- "searchProvidersModels": "Search providers or models...",
- "showAll": "Show All",
- "noProvidersMatch": "No providers match your search.",
- "howPricingWorks": "How Pricing Works",
- "cacheWrite": "Cache Write",
- "unsaved": "unsaved",
+ "registry": "பதிவேடு",
+ "priced": "விலை நிர்ணயிக்கப்பட்டது",
+ "searchProvidersModels": "வழங்குநர்கள் அல்லது மாதிரிகளைத் தேடுக...",
+ "showAll": "அனைத்தையும் காட்டு",
+ "noProvidersMatch": "உங்கள் தேடலுக்கு எந்த வழங்குநர்களும் பொருந்தவில்லை.",
+ "howPricingWorks": "விலை நிர்ணயம் எவ்வாறு செயல்படுகிறது",
+ "cacheWrite": "தற்காலிகச் சேமிப்பக எழுதுதல்",
+ "unsaved": "சேமிக்கப்படாதது",
"resetDefaults": "மூல அமைப்புகளை மீட்டமைக்கவும்",
- "saveProvider": "Save Provider",
+ "saveProvider": "வழங்குநரைச் சேமி",
"model": "Model",
- "models": "models",
- "moreProviders": "{count} more providers",
- "withPricing": "with pricing configured",
- "policiesCircuitBreakers": "Policies & Circuit Breakers",
- "activeIssuesDetected": "Active issues detected",
- "off": "Off",
- "resetPricingConfirm": "Reset all pricing for {provider} to defaults?",
- "pricingDescInput": "Input: tokens sent to the model",
- "pricingDescOutput": "Output: tokens generated",
- "pricingDescCached": "Cached: reused input (~50% of input rate)",
- "pricingDescReasoning": "Reasoning: thinking tokens (falls back to Output)",
- "pricingDescCacheWrite": "Cache Write: creating cache entries (falls back to Input)",
- "pricingDescFormula": "Cost = (input × input_rate) + (output × output_rate) + (cached × cached_rate) per million tokens.",
- "pricingSettingsTitle": "Pricing Settings",
- "totalModels": "Total Models",
- "active": "Active",
- "costCalculation": "Cost Calculation",
- "costCalculationDesc": "Costs are calculated based on token usage and pricing rates configured for each model.",
- "pricingFormat": "Pricing Format",
- "pricingFormatDesc": "All rates are in $/1M tokens (dollars per million tokens).",
- "tokenTypes": "Token Types",
- "inputTokenDesc": "Standard prompt tokens",
- "outputTokenDesc": "Completion/response tokens",
- "cachedTokenDesc": "Cached input tokens (typically 50% of input rate)",
- "reasoningTokenDesc": "Special reasoning/thinking tokens (fallback to output rate)",
- "cacheCreationTokenDesc": "Tokens used to create cache entries (fallback to input rate)",
- "customPricingNote": "You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.",
- "editPricing": "Edit Pricing",
- "viewFullDetails": "View Full Details",
+ "models": "மாதிரிகள்",
+ "moreProviders": "மேலும் {count} வழங்குநர்கள்",
+ "withPricing": "விலை நிர்ணயம் உள்ளமைக்கப்பட்டுள்ளது",
+ "policiesCircuitBreakers": "கொள்கைகள் மற்றும் சர்க்யூட் பிரேக்கர்கள்",
+ "activeIssuesDetected": "செயலில் உள்ள சிக்கல்கள் கண்டறியப்பட்டன",
+ "off": "முடக்கு",
+ "resetPricingConfirm": "{provider}-க்கான அனைத்து விலை நிர்ணயத்தையும் இயல்புநிலைக்கு மீட்டமைக்கவா?",
+ "pricingDescInput": "உள்ளீடு: மாதிரிக்கு அனுப்பப்பட்ட டோக்கன்கள்",
+ "pricingDescOutput": "வெளியீடு: உருவாக்கப்பட்ட டோக்கன்கள்",
+ "pricingDescCached": "தற்காலிகச் சேமிப்பிலிருந்து: மீண்டும் பயன்படுத்தப்பட்ட உள்ளீடு (உள்ளீட்டு விகிதத்தில் சுமார் 50%)",
+ "pricingDescReasoning": "பகுத்தறிதல்: சிந்தனை டோக்கன்கள் (இல்லையெனில் வெளியீட்டு விகிதம் பயன்படுத்தப்படும்)",
+ "pricingDescCacheWrite": "தற்காலிகச் சேமிப்பக எழுதுதல்: தற்காலிகச் சேமிப்புப் பதிவுகளை உருவாக்குதல் (இல்லையெனில் உள்ளீட்டு விகிதம் பயன்படுத்தப்படும்)",
+ "pricingDescFormula": "செலவு = (உள்ளீடு × உள்ளீட்டு_விகிதம்) + (வெளியீடு × வெளியீட்டு_விகிதம்) + (தற்காலிகச் சேமிப்பு × தற்காலிகச்_சேமிப்பு_விகிதம்), ஒரு மில்லியன் டோக்கன்களுக்கு.",
+ "pricingSettingsTitle": "விலை நிர்ணய அமைப்புகள்",
+ "totalModels": "மொத்த மாதிரிகள்",
+ "active": "செயலில் உள்ளது",
+ "costCalculation": "செலவுக் கணக்கீடு",
+ "costCalculationDesc": "ஒவ்வொரு மாதிரிக்கும் உள்ளமைக்கப்பட்ட டோக்கன் பயன்பாடு மற்றும் விலை விகிதங்களின் அடிப்படையில் செலவுகள் கணக்கிடப்படுகின்றன.",
+ "pricingFormat": "விலை நிர்ணய வடிவம்",
+ "pricingFormatDesc": "அனைத்து விகிதங்களும் $/1M டோக்கன்கள் என்ற அளவில் உள்ளன (ஒரு மில்லியன் டோக்கன்களுக்கான டாலர்கள்).",
+ "tokenTypes": "டோக்கன் வகைகள்",
+ "inputTokenDesc": "நிலையான ப்ராம்ப்ட் டோக்கன்கள்",
+ "outputTokenDesc": "நிறைவு/பதில் டோக்கன்கள்",
+ "cachedTokenDesc": "தற்காலிகச் சேமிப்பிலுள்ள உள்ளீட்டு டோக்கன்கள் (பொதுவாக உள்ளீட்டு விகிதத்தில் 50%)",
+ "reasoningTokenDesc": "சிறப்புப் பகுத்தறிதல்/சிந்தனை டோக்கன்கள் (இல்லையெனில் வெளியீட்டு விகிதம் பயன்படுத்தப்படும்)",
+ "cacheCreationTokenDesc": "தற்காலிகச் சேமிப்புப் பதிவுகளை உருவாக்கப் பயன்படுத்தப்படும் டோக்கன்கள் (இல்லையெனில் உள்ளீட்டு விகிதம் பயன்படுத்தப்படும்)",
+ "customPricingNote": "குறிப்பிட்ட மாதிரிகளுக்கான இயல்புநிலை விலை நிர்ணயத்தை நீங்கள் மாற்றியமைக்கலாம். தனிப்பயன் மாற்றங்கள் தானாகக் கண்டறியப்பட்ட விலை நிர்ணயத்தைவிட முன்னுரிமை பெறும்.",
+ "editPricing": "விலை நிர்ணயத்தைத் திருத்து",
+ "viewFullDetails": "முழு விவரங்களைக் காண்க",
"themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "தகவமைவு அளவு வழிப்படுத்தல்",
+ "adaptiveVolumeRoutingDesc": "பேலோட் அளவு மற்றும் செயல்திறன் அழுத்தத்தின் அடிப்படையில் இணைப்புகளை மாறும் வகையில் அளவிடுங்கள்.",
+ "lkgpToggleTitle": "கடைசியாகச் சரியாகச் செயல்பட்ட வழங்குநர் (LKGP)",
+ "lkgpToggleDesc": "இது இயக்கப்பட்டிருக்கும்போது, கடைசியாக வெற்றிகரமான பதிலை வழங்கிய வழங்குநரை ரவுட்டர் நினைவில் வைத்து, அடுத்தடுத்த கோரிக்கைகளில் முதலில் அதையே முயற்சிக்கும்.",
"echoRequestedModelTitle": "பதில்களில் கோரப்பட்ட மாதிரியின் பெயரை எதிரொலி செய்",
"echoRequestedModelDesc": "இயக்கப்பட்டால், பதிலின் `model` புலம், அப்ஸ்ட்ரீம் மாடல் பெயருக்குப் பதிலாக கிளையன்ட் கோரிய மாற்றுப்பெயர் அல்லது காம்போ பெயரை எதிரொலிக்கும். கோரிக்கையுடன் பொருந்தாத மாடலைக் கொண்ட பதிலை நிராகரிக்கும் கடுமையான கிளையன்ட்களை (எ.கா. Claude Desktop) இது சரிசெய்கிறது.",
"webSearchRouteTitle": "இணையத் தேடல் ரூட்டிங்",
"webSearchRouteDesc": "ஒரு கோரிக்கையில் நேட்டிவ் web_search கருவி சேர்க்கப்படும்போது, இயல்புநிலைக்குப் பதிலாக முழு கோரிக்கையையும் இந்த மாடலுக்கு ரூட் செய்யவும் — Anthropic-இன் web_search சர்வர் கருவியை செயல்படுத்தாத வழங்குநர்களுக்கு இது பயனுள்ளதாக இருக்கும். முடக்க காலியாக விடவும்.",
"webSearchRoutePlaceholder": "ஒரு மாடலைத் தேடவும் அல்லது தேர்ந்தெடுக்கவும்…",
"paidModelPatternWarning": "இந்த பேட்டர்ன் கட்டண மாடல்களுடன் மட்டுமே பொருந்துகிறது — கட்டண மாடல்களை இயக்கவும் அல்லது பேட்டர்னை சரிசெய்யவும்.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP தற்காலிக சேமிப்பை அழி",
+ "lkgpCacheCleared": "LKGP தற்காலிக சேமிப்பு வெற்றிகரமாக அழிக்கப்பட்டது",
+ "lkgpCacheClearFailed": "LKGP தற்காலிக சேமிப்பை அழிக்க முடியவில்லை",
+ "days": "நாட்கள்",
+ "lkgp": "LKGP பயன்முறை",
+ "lkgpDesc": "கடைசியாக அறியப்பட்ட நல்ல வழங்குநர் (முன்கணிக்கக்கூடிய மீட்சித்திறன்)",
+ "maintenance": "பராமரிப்பு",
+ "purgeExpiredLogs": "காலாவதியான பதிவுகளை அகற்று",
+ "purgeLogsFailed": "பதிவுகளை அகற்ற முடியவில்லை",
"logsDeleted": "{count, plural, =0 {காலாவதியான பதிவுகள் எதுவும் நீக்கப்படவில்லை} one {# காலாவதியான பதிவு நீக்கப்பட்டது} other {# காலாவதியான பதிவுகள் நீக்கப்பட்டன}}",
"resetUsageData": "பயன்பாட்டுத் தரவை மீட்டமை",
"resetUsageDataDesc": "பயன்பாடு, கோரிக்கை பதிவுகள் மற்றும் பகுப்பாய்வுத் தரவை எவ்வளவு காலத்திற்கு முன்பு வரை நீக்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும். வழங்குநர் உள்ளமைப்பு, இணைப்புகள், API விசைகள், காம்போக்கள் மற்றும் அமைப்புகள் பாதுகாக்கப்படும். இந்தச் செயலை மாற்ற முடியாது.",
@@ -7409,63 +7416,63 @@
"resetUsageFailed": "பயன்பாட்டுத் தரவை மீட்டமைக்க முடியவில்லை",
"reset": "மீட்டமை",
"resetting": "மீட்டமைக்கப்படுகிறது...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
- "clearSyncedPricingConfirm": "Clear all synced pricing data? Provider defaults will be used instead.",
- "clearSyncedPricingFailed": "Failed to clear synced pricing",
- "pricingSourceUser": "User Override",
- "pageDescription": "Manage application settings, model aliases, pricing, and routing rules",
- "pricingSyncStatus": "Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
- "pricingLoadFailed": "Failed to load pricing data",
- "pricingSyncDescription": "Automatically sync model pricing from external sources to keep cost calculations accurate",
- "clearSyncedPricingSuccess": "Synced pricing data cleared",
- "clearSyncedPricingFailedWithReason": "Failed to clear pricing: {reason}",
- "pricingSourceDefault": "Built-in Default",
- "pricingSyncSuccess": "Pricing synced successfully",
- "enableSyncError": "Failed to toggle pricing sync",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "contextOpt": "சூழலுக்காக உகப்பாக்கப்பட்டது",
+ "contextOptDesc": "சூழல் சாளரத் தேவைகள் மற்றும் உரையாடல் நீளத்தின் அடிப்படையில் வழித்தடங்களைத் தேர்ந்தெடுக்கிறது",
+ "cacheOpt": "தற்காலிக சேமிப்புக்காக உகப்பாக்கப்பட்டது",
+ "cacheOptDesc": "மீண்டும் பயன்படுத்தக்கூடிய அதே தூண்டல் முன்னொட்டை அதே வழங்குநர் கணக்கில் வைத்திருக்கிறது",
+ "priorityDesc": "தொடர்ச்சியான மாற்றுவழி — முதலில் வழங்குநர் 1-ஐ முயற்சித்து, பின்னர் வழங்குநர் 2-ஐ முயற்சித்து, அவ்வாறே தொடர்கிறது",
+ "weightedDesc": "வழங்குநர்களிடையே சதவீத எடைகளின்படி போக்குவரத்தைப் பகிர்ந்தளிக்கிறது",
+ "modelRoutingTitle": "மாதிரி வழித்தட விதிகள்",
+ "modelRoutingDesc": "குளோப் வடிவங்களைப் பயன்படுத்தி மாதிரிகளைத் தானாகவே குறிப்பிட்ட காம்போக்களுக்கு வழிமாற்றுகிறது",
+ "addRule": "விதியைச் சேர்",
+ "routeToCombo": "காம்போவுக்கு வழிமாற்று",
+ "selectCombo": "காம்போவைத் தேர்ந்தெடுக்கவும்...",
+ "priorityHint": "அதிக மதிப்பு = முதலில் சரிபார்க்கப்படும். குறிப்பிட்ட வடிவங்களுக்கு 10+ ஐப் பயன்படுத்தவும்.",
+ "patternHint": "எத்தனை எழுத்துகளுக்கும் * ஐயும், ஒற்றை எழுத்துக்கு ? ஐயும் பயன்படுத்தவும். எழுத்துப் பெட்டி வேறுபாடு கணக்கில் கொள்ளப்படாது.",
+ "noRoutingRules": "வழித்தட விதிகள் எதுவும் உள்ளமைக்கப்படவில்லை. இயல்பாக கோரிக்கைகள் உலகளாவிய காம்போவைப் பயன்படுத்தும்.",
+ "routingRuleHint": "கோரிக்கைகளைத் தானாக வழிமாற்ற claude-opus* -> frontier-combo போன்ற ஒரு விதியைச் சேர்க்கவும்.",
+ "deleteRoutingRule": "இந்த மாதிரி வழித்தட விதியை நீக்கவா?",
+ "exactMatchMode": "துல்லியப் பொருத்தம்",
+ "wildcardPatternMode": "வைல்ட்கார்டு வடிவம்",
+ "exactMatchModeDesc": "நிறுத்தப்பட்ட அல்லது மறுபெயரிடப்பட்ட மாதிரி ID-களுக்கு துல்லியமான மாற்றுப்பெயர்களைப் பயன்படுத்தவும்.",
+ "wildcardPatternModeDesc": "மாதிரிகளின் ஒரு குடும்பம் ஒரே இலக்குடன் பொருத்தப்பட வேண்டுமெனில், * மற்றும் ? கொண்ட வைல்ட்கார்டு மாற்றுப்பெயர்களைப் பயன்படுத்தவும்.",
+ "noExactAliasesConfigured": "துல்லியப் பொருத்த மாற்றுப்பெயர்கள் எதுவும் உள்ளமைக்கப்படவில்லை.",
+ "wildcardRulesTitle": "வைல்ட்கார்டு விதிகள்",
+ "noWildcardAliasesConfigured": "வைல்ட்கார்டு மாற்றுப்பெயர்கள் எதுவும் உள்ளமைக்கப்படவில்லை.",
+ "overview": "மேலோட்டம்",
+ "unknownError": "அறியப்படாத பிழை",
+ "pricingSourceLiteLLM": "LiteLLM (சமூகம்)",
+ "clearSyncedPricingConfirm": "ஒத்திசைக்கப்பட்ட அனைத்து விலைத் தரவையும் அழிக்கவா? அதற்குப் பதிலாக வழங்குநரின் இயல்புநிலை மதிப்புகள் பயன்படுத்தப்படும்.",
+ "clearSyncedPricingFailed": "ஒத்திசைக்கப்பட்ட விலைத் தரவை அழிக்க முடியவில்லை",
+ "pricingSourceUser": "பயனர் மேலெழுதுதல்",
+ "pageDescription": "பயன்பாட்டு அமைப்புகள், மாதிரி மாற்றுப்பெயர்கள், விலை நிர்ணயம் மற்றும் வழித்தட விதிகளை நிர்வகிக்கவும்",
+ "pricingSyncStatus": "ஒத்திசைவு நிலை",
+ "whitelist": "அனுமதிப்பட்டியல்",
+ "syncDisabled": "ஒத்திசைவு முடக்கப்பட்டுள்ளது",
+ "pricingLoadFailed": "விலைத் தரவை ஏற்ற முடியவில்லை",
+ "pricingSyncDescription": "செலவுக் கணக்கீடுகளைத் துல்லியமாக வைத்திருக்க வெளிப்புற மூலங்களிலிருந்து மாதிரி விலைகளைத் தானாக ஒத்திசைக்கவும்",
+ "clearSyncedPricingSuccess": "ஒத்திசைக்கப்பட்ட விலைத் தரவு அழிக்கப்பட்டது",
+ "clearSyncedPricingFailedWithReason": "விலையை அழிக்க முடியவில்லை: {reason}",
+ "pricingSourceDefault": "உள்ளமைக்கப்பட்ட இயல்புநிலை",
+ "pricingSyncSuccess": "விலை வெற்றிகரமாக ஒத்திசைக்கப்பட்டது",
+ "enableSyncError": "விலை ஒத்திசைவை மாற்ற முடியவில்லை",
+ "syncEnabled": "ஒத்திசைவு இயக்கப்பட்டுள்ளது",
+ "blacklist": "தடுப்புப்பட்டியல்",
"pricingSourceModelsDev": "Models.dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
- "pricingSyncTitle": "Pricing Sync",
- "pricingResetFailedWithReason": "Failed to reset pricing: {reason}",
- "tab": "Tab",
- "pricingSavedProvider": "Pricing saved for {provider}",
- "pricingSyncFailed": "Pricing sync failed",
- "pricingSaveFailedWithReason": "Failed to save pricing: {reason}",
- "pricingResetProvider": "Pricing reset for {provider}",
- "nextSync": "Next Sync",
- "pricingSyncFailedWithReason": "Pricing sync failed: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "syncedModels": "ஒத்திசைக்கப்பட்ட மாதிரிகள்",
+ "budget": "வரவுசெலவுத் திட்டம்",
+ "pricingSyncTitle": "விலை ஒத்திசைவு",
+ "pricingResetFailedWithReason": "விலையை மீட்டமைக்க முடியவில்லை: {reason}",
+ "tab": "தாவல்",
+ "pricingSavedProvider": "{provider} க்கான விலை சேமிக்கப்பட்டது",
+ "pricingSyncFailed": "விலை ஒத்திசைவு தோல்வியடைந்தது",
+ "pricingSaveFailedWithReason": "விலையைச் சேமிக்க முடியவில்லை: {reason}",
+ "pricingResetProvider": "{provider} க்கான விலை மீட்டமைக்கப்பட்டது",
+ "nextSync": "அடுத்த ஒத்திசைவு",
+ "pricingSyncFailedWithReason": "விலை ஒத்திசைவு தோல்வியடைந்தது: {reason}",
+ "clearSyncedPricing": "ஒத்திசைக்கப்பட்ட விலையை அழி",
+ "compressionTitle": "தூண்டுரை சுருக்கம்",
+ "compressionDesc": "வழங்குநர்களுக்கு அனுப்புவதற்கு முன் தூண்டுரைகளைச் சுருக்கி டோக்கன் பயன்பாட்டைக் குறைக்கவும்",
"compressionGuidanceFullGuideLink": "முழு சுருக்க வழிகாட்டி",
"compressionGuidanceShow": "விவரங்கள்",
"compressionGuidanceHide": "விவரங்களை மறை",
@@ -7481,13 +7488,13 @@
"tokenSaverInputCompressionDesc": "குறியீடு, URLகள் மற்றும் நோக்கத்தைப் பாதுகாக்கும் அதே வேளையில், தகுதியான அரட்டை வரலாற்றை மீண்டும் எழுதவும்.",
"tokenSaverFineTunePrefix": "ஒவ்வொரு இன்ஜினையும் இதில் ஃபைன்-டியூன் செய்யவும்",
"tokenSaverFineTuneSuffix": "அல்லது ஒவ்வொரு கோரிக்கைக்கும் இன்ஜின்களை இதில் இணைக்கவும்",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
+ "compressionMode": "சுருக்க முறை",
+ "compressionModeOff": "முடக்கு",
+ "compressionModeOffDesc": "சுருக்கம் பயன்படுத்தப்படவில்லை",
+ "compressionModeLite": "எளிய",
+ "compressionModeLiteDesc": "வெற்றிடங்கள் மற்றும் காலி வரிகளைக் குறைத்தல்",
+ "compressionModeStandard": "நிலையானது (Caveman)",
+ "compressionModeStandardDesc": "30+ வடிவங்களைக் கொண்ட விதி அடிப்படையிலான சுருக்கம்; குறியீட்டுத் தொகுதிகளையும் URLs-ஐயும் பாதுகாக்கிறது",
"compressionModeAggressive": "ஆக்கிரமிப்பு",
"compressionModeAggressiveDesc": "அதிகபட்ச சேமிப்பிற்கான சுருக்கம் + கருவி முடிவு சுருக்கம் + முற்போக்கான வயதானது",
"compressionModeUltra": "அல்ட்ரா",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "ஒவ்வொரு வயதான அடுக்கிலும் வைக்கப்பட்டுள்ள சமீபத்திய செய்திகளின் எண்ணிக்கை (அதிகமானது = மேலும் பாதுகாக்கப்பட்டது)",
"compressionToolStrategies": "கருவி முடிவு உத்திகள்",
"compressionToolStrategiesDesc": "வெவ்வேறு கருவி முடிவு வகைகளுக்கான சுருக்க உத்திகளை நிலைமாற்று",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "பொது அமைப்புகள்",
+ "compressionAutoTrigger": "தானியங்கு இயக்க வரம்பு",
+ "compressionCacheTTL": "தற்காலிக சேமிப்பு TTL",
+ "compressionPreserveSystem": "கணினித் தூண்டுரையைப் பாதுகாத்தல்",
"compressionPreserveSystemAlways": "எப்போதும்",
"compressionPreserveSystemWhenNoCache": "கேச் இல்லாதபோது",
"compressionPreserveSystemNever": "ஒருபோதும் இல்லை",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "சேமிக்கப்பட்டது",
"compressionExclusionsCount": "{count, plural, one {# விலக்கு} other {# விலக்குகள்}} கட்டமைக்கப்பட்டது",
"compressionExclusionsEmpty": "எந்த விதிவிலக்குகளும் அமைக்கப்படவில்லை — ஒவ்வொரு மாதிரியும்/எண்ட்பாயிண்டும் சுருக்கத்திற்கு உரியதாக உள்ளது (இயல்பான நடத்தை).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman இயந்திர உள்ளமைவு",
+ "compressionCavemanConfigDesc": "விதி அடிப்படையிலான சுருக்க இயந்திரத்தை நுணுக்கமாகச் சரிசெய்யவும்",
"compressionCavemanPanelHint": "இதன் ஆன்/ஆஃப் மற்றும் நிலை பேனலில் அமைக்கப்பட்டுள்ளது:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "செய்திப் பங்குகளைச் சுருக்கவும்",
+ "compressionRoleUser": "பயனர்",
+ "compressionRoleAssistant": "உதவியாளர்",
+ "compressionRoleSystem": "அமைப்பு",
+ "compressionMinLength": "குறைந்தபட்சச் செய்தி நீளம்",
+ "compressionSkipRules": "சுருக்க விதிகளைத் தவிர்க்கவும்",
+ "compressionSkipRulesDesc": "சுருக்கத்தின்போது விதிகளைத் தவிர்க்க அவற்றைக் கிளிக் செய்யவும்",
+ "compressionPreservePatterns": "வடிவங்களைப் பாதுகாக்கவும்",
+ "compressionPreservePatternsDesc": "ஒருபோதும் சுருக்கப்படாத Regex வடிவங்கள் (ஒரு வரிக்கு ஒன்று)",
+ "compressionLogTitle": "சுருக்கப் பதிவு",
+ "compressionLogEmpty": "இதுவரை சுருக்கப்பட்ட கோரிக்கைகள் எதுவுமில்லை. சுருக்கம் இயக்கப்பட்ட நிலையில் கோரிக்கைகள் செயலாக்கப்படும்போது சுருக்கப் புள்ளிவிவரங்கள் இங்கே தோன்றும்.",
"minutes": "நிமிடங்கள்",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "கட்டளைகளை அறிந்து கருவி வெளியீட்டை வடிகட்டுதல்",
+ "compressionModeCodexResponses": "Responses கருவி வெளியீடு",
+ "compressionModeCodexResponsesDesc": "தகுதியான shell, patch, search, build மற்றும் JSON வெளியீடுகளுக்கான கவனமான சுருக்கம்",
+ "compressionModeStacked": "அடுக்கப்பட்டது",
+ "compressionModeStackedDesc": "RTK கருவி-வெளியீட்டு வடிகட்டலைத் தொடர்ந்து Caveman செய்திச் சுருக்கம்",
+ "qdrantTitle": "Qdrant (வெக்டர் நினைவகம்)",
+ "qdrantDesc": "விருப்பத்தேர்வு. விரைவான மீட்டெடுப்புக்காகச் சொற்பொருள் நினைவுகளை வெளிப்புற வெக்டர் தரவுத்தளத்தில் அட்டவணைப்படுத்துகிறது.",
+ "qdrantStatusActive": "செயலில் உள்ளது",
+ "qdrantStatusError": "பிழை",
+ "qdrantStatusDisabled": "முடக்கப்பட்டது",
+ "qdrantEnable": "Qdrant-ஐ இயக்கவும்",
+ "qdrantEnableDesc": "இயக்கப்பட்டிருக்கும்போது, சொற்பொருள்/கலப்பு உத்தியானது நினைவுகளை மீட்டெடுக்க Qdrant-ஐப் பயன்படுத்தலாம்.",
+ "qdrantTesting": "சோதிக்கப்படுகிறது...",
+ "qdrantTestConnection": "இணைப்பைச் சோதிக்கவும்",
+ "qdrantSaved": "உள்ளமைவு சேமிக்கப்பட்டது",
+ "qdrantSaveError": "உள்ளமைவைச் சேமிக்க முடியவில்லை",
+ "qdrantHostHint": "போர்ட் இல்லாமல். எடுத்துக்காட்டு: 127.0.0.1 அல்லது http://qdrant",
+ "qdrantPort": "போர்ட்",
+ "qdrantPortHint": "Qdrant இயல்புநிலை: 6333",
+ "qdrantCollectionHint": "நினைவுப் புள்ளிகள் சேமிக்கப்படும் இடம்.",
+ "qdrantEmbeddingModel": "Embedding மாதிரி",
+ "qdrantHelpTitle": "விரைவு அமைவு உதவி",
+ "qdrantHelpQuickTitle": "விரைவு அமைவு (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. ஹோஸ்ட்: Qdrant IP/URL, போர்ட்: 6333, தொகுப்பு: omniroute_memory.",
+ "qdrantHelpStep2": "2. nvidia/llama-nemotron-embed-vl-1b-v2:free-ஐப் பயன்படுத்தினால், தொகுப்புப் பரிமாணமாக 2048-ஐப் பயன்படுத்தவும்.",
+ "qdrantHelpStep3": "3. மாதிரிப் புலம்: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. சேமித்து, இணைப்பைச் சோதித்த பின்னர் தேடலைச் சோதிக்கவும்.",
+ "qdrantEmbeddingQuickSelect": "கண்டறியப்பட்ட மாதிரிகளிலிருந்து விரைவாகத் தேர்ந்தெடுக்கவும்...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "வடிவம்: provider/model. வழங்குநர் சான்று உள்ளமைக்கப்பட்டிருக்க வேண்டும்.",
+ "qdrantApiKeyPlaceholderKeep": "(தற்போதைய விசையைத் தக்கவைக்க காலியாக விடவும்)",
+ "qdrantApiKeyPlaceholderOptional": "(பயன்படுத்தவில்லை என்றால் காலியாக விடவும்)",
+ "qdrantSaveHint": "குறிப்பு: host/port/collection/model-ஐத் திருத்தி, சேமி என்பதைக் கிளிக் செய்யவும். API விசை விருப்பத்திற்குரியது.",
+ "qdrantSearchTestTitle": "தேடல் சோதனை",
+ "qdrantSearchTestDesc": "Embedding-ஐ உருவாக்கி Qdrant-இல் தேடுகிறது.",
+ "qdrantSearchPlaceholder": "எடுத்துக்காட்டு: பயனர் விருப்பத்தேர்வுகள், வரலாறு போன்றவை",
+ "qdrantNoResults": "முடிவுகள் இல்லை (அல்லது Qdrant உள்ளமைக்கப்படவில்லை).",
+ "qdrantCleanupTitle": "தக்கவைப்பும் சுத்தப்படுத்தலும்",
+ "qdrantCleanupDesc": "இதன் அடிப்படையில் காலாவதியான மற்றும் பழைய புள்ளிகளை அகற்றுகிறது",
+ "searching": "தேடுகிறது...",
+ "cleaning": "சுத்தப்படுத்துகிறது...",
+ "cleanNow": "இப்போது சுத்தப்படுத்து",
"optional": "விருப்பமானது",
"current": "தற்போதைய",
"remove": "அகற்று",
@@ -7596,19 +7603,19 @@
"resilienceScope": "நோக்கம்:",
"resilienceTrigger": "தூண்டுதல்:",
"resilienceEffect": "விளைவு:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "கோரிக்கை வரிசை மற்றும் வீதம்",
+ "resilienceAutoEnableApiKeyProviders": "API-key வழங்குநர்களுக்கு தானாக இயக்கவும்",
+ "resilienceRequestsPerMinute": "நிமிடத்திற்கு கோரிக்கைகள்",
+ "resilienceMinTimeBetweenRequests": "கோரிக்கைகளுக்கு இடையிலான குறைந்தபட்ச நேரம்",
+ "resilienceConcurrentRequests": "ஒரே நேரக் கோரிக்கைகள்",
+ "resilienceConnectionScopeConcurrentRequests": "ஒவ்வொரு இணைப்பு/ஒதுக்கீட்டு வரம்பிற்குமான ஒரே நேரக் கோரிக்கைகள்",
+ "resilienceGlobalConcurrentRequests": "உலகளாவிய ஒரே நேர upstream கோரிக்கைகள் (0 = முடக்கப்பட்டது)",
"resilienceMaxQueueWaitTime": "அதிகபட்ச வரிசையில் காத்திருக்கும் நேரம்",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "அடிப்படை காத்திருப்பு நேரம்",
+ "resilienceUseUpstreamRetryHints": "upstream மறுமுயற்சிக் குறிப்புகளைப் பயன்படுத்தவும்",
+ "resilienceDefaultPerProvider": "இயல்புநிலை (ஒவ்வொரு வழங்குநருக்கும்)",
+ "resilienceAlwaysOn": "எப்போதும் இயக்கத்தில்",
+ "resilienceAlwaysOff": "எப்போதும் முடக்கத்தில்",
"routingRemoveEntry": "உள்ளீட்டை அகற்று",
"routingNeedlesSubstrings": "ஊசிகள் (பொருந்தும் துணைச்சரங்கள்)",
"routingCaseSensitive": "கேஸ் சென்சிட்டிவ்",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "பரித்தெடுக்கப்பட்ட விளக்கம் அசல் கோரிக்கையில் மீண்டும் புகுத்தப்படுவதற்கு முன்பு பார்வை மாதிரிக்கு (vision model) அனுப்பப்படும்.",
"visionBridgeTimeoutMs": "நேரம் முடிந்தது (மிவி)",
"visionBridgeMaxImagesPerRequest": "ஒரு கோரிக்கைக்கு அதிகபட்ச படங்கள்",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "அதிகபட்ச backoff படிகள்",
+ "resilienceProviderBreakerTitle": "ஒவ்வொரு வழங்குநருக்குமான Circuit Breaker",
+ "resilienceFailureThreshold": "தோல்வி வரம்பு",
+ "resilienceDegradationThreshold": "செயல்திறன் சிதைவு வரம்பு",
"resilienceResetTimeout": "காலாவதியை மீட்டமைக்கவும்",
"resilienceFailureThresholdLabel": "தோல்வி வரம்பு",
"resilienceResetTimeoutLabel": "காலாவதியை மீட்டமைக்கவும்",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "இணைப்பு காத்திருப்பு நேரம்",
"resilienceUseUpstreamRetryHintsLabel": "அப்ஸ்ட்ரீம் மீண்டும் முயற்சி குறிப்புகளைப் பயன்படுத்தவும்",
"resilienceUseUpstream429BreakerLabel": "அப்ஸ்ட்ரீம் 429 குறிப்புகளைப் பயன்படுத்தவும் (பிரேக்கர்)",
"resilienceMaxBackoffStepsLabel": "அதிகபட்ச பின்னடைவு படிகள்",
"resilienceYes": "ஆம்",
"resilienceNo": "இல்லை",
- "resilienceDefault": "Default",
+ "resilienceDefault": "இயல்புநிலை",
"storageDatabaseBackupRetention": "தரவுத்தள காப்புப் பிரதி வைத்திருத்தல்",
"storageDatabaseBackups": "தரவுத்தள காப்புப்பிரதிகள்",
"storageBackupRetentionDescription": "தானியங்கி SQLite காப்புப்பிரதிகள் இதில் சேமிக்கப்படுகின்றன",
@@ -7725,57 +7732,61 @@
"storageDatabaseStatistics": "தரவுத்தள புள்ளிவிவரங்கள்",
"storageIntegrityNotChecked": "சரிபார்க்கப்படவில்லை",
"backupRetentionSaved": "காப்புப்பிரதி தக்கவைப்பு சேமிக்கப்பட்டது.",
- "backupRetentionSaveFailed": "Failed to save backup retention",
- "backupCleanupSuccess": "Deleted {backups} backup set(s) and {files} file(s).",
- "backupCleanupFailed": "Failed to clean database backups",
- "purgeQuotaSnapshotsSuccess": "Purged {count} quota snapshots",
- "purgeQuotaSnapshotsFailed": "Failed to purge quota snapshots",
- "purgeCallLogsSuccess": "Purged {count} call logs",
- "purgeCallLogsFailed": "Failed to purge call logs",
- "purgeDetailedLogsSuccess": "Purged {count} detailed logs",
- "purgeDetailedLogsFailed": "Failed to purge detailed logs",
- "vacuumCompleted": "VACUUM completed",
- "vacuumFailed": "VACUUM failed",
- "jsonExportFailed": "JSON export failed",
- "invalidJsonFileType": "Invalid file type. Only .json files are allowed.",
- "legacyJsonImportSuccess": "Legacy JSON imported successfully!",
- "jsonImportFailed": "Failed to import JSON",
- "jsonImportError": "Error during JSON import",
+ "backupRetentionSaveFailed": "காப்புப்பிரதி தக்கவைப்பைச் சேமிக்க முடியவில்லை",
+ "backupCleanupSuccess": "{backups} காப்புப்பிரதித் தொகுதி(கள்) மற்றும் {files} கோப்பு(கள்) நீக்கப்பட்டன.",
+ "backupCleanupFailed": "தரவுத்தளக் காப்புப்பிரதிகளைச் சுத்தப்படுத்த முடியவில்லை",
+ "purgeQuotaSnapshotsSuccess": "{count} ஒதுக்கீட்டு snapshot-கள் அகற்றப்பட்டன",
+ "purgeQuotaSnapshotsFailed": "ஒதுக்கீட்டு snapshot-களை அகற்ற முடியவில்லை",
+ "purgeCallLogsSuccess": "{count} அழைப்புப் பதிவுகள் அகற்றப்பட்டன",
+ "purgeCallLogsFailed": "அழைப்புப் பதிவுகளை அகற்ற முடியவில்லை",
+ "purgeDetailedLogsSuccess": "{count} விரிவான பதிவுகள் அகற்றப்பட்டன",
+ "purgeDetailedLogsFailed": "விரிவான பதிவுகளை முழுமையாக நீக்க முடியவில்லை",
+ "vacuumCompleted": "VACUUM முடிந்தது",
+ "vacuumFailed": "VACUUM தோல்வியடைந்தது",
+ "jsonExportFailed": "JSON ஏற்றுமதி தோல்வியடைந்தது",
+ "invalidJsonFileType": "தவறான கோப்பு வகை. .json கோப்புகள் மட்டுமே அனுமதிக்கப்படுகின்றன.",
+ "legacyJsonImportSuccess": "பழைய JSON வெற்றிகரமாக இறக்குமதி செய்யப்பட்டது!",
+ "jsonImportFailed": "JSON-ஐ இறக்குமதி செய்ய முடியவில்லை",
+ "jsonImportError": "JSON இறக்குமதியின்போது பிழை ஏற்பட்டது",
+ "jsonImportAuthRequired": "பழைய JSON உள்ளமைவை இறக்குமதி செய்ய அங்கீகாரம் தேவை. உள்நுழையவும் அல்லது முதலில் அமைப்பை நிறைவு செய்யவும்.",
+ "databaseSettingsAuthRequiredTitle": "அங்கீகாரம் தேவை",
+ "databaseSettingsAuthRequiredBody": "தரவுத்தள அமைப்புகளும் JSON இறக்குமதியும் அங்கீகரிக்கப்பட்ட நிர்வாகிக்கு மட்டுமே கிடைக்கும். அவற்றைப் பார்த்துத் திருத்த, உள்நுழையவும் அல்லது அமைப்பை நிறைவு செய்யவும்.",
+ "databaseSettingsAuthRequiredCta": "உள்நுழைக",
"storagePurgeData": "சுத்திகரிப்பு தரவு",
- "storagePurgeDataDesc": "Immediately delete all records without applying retention checks. Use with caution.",
- "storageRetentionCleanup": "Retention Settings",
- "storageRetentionCleanupDesc": "Configure operational record retention and database backup cleanup.",
- "retentionCallDays": "Call {count}d",
- "retentionAppDays": "App {count}d",
- "retentionRows": "{count} rows",
+ "storagePurgeDataDesc": "தக்கவைப்பு சரிபார்ப்புகளைப் பயன்படுத்தாமல் அனைத்துப் பதிவுகளையும் உடனடியாக நீக்கவும். எச்சரிக்கையுடன் பயன்படுத்தவும்.",
+ "storageRetentionCleanup": "தக்கவைப்பு அமைப்புகள்",
+ "storageRetentionCleanupDesc": "செயல்பாட்டுப் பதிவுகளின் தக்கவைப்பையும் தரவுத்தளக் காப்புப்பிரதி சுத்திகரிப்பையும் உள்ளமைக்கவும்.",
+ "retentionCallDays": "அழைப்பு {count} நாள்",
+ "retentionAppDays": "செயலி {count} நாள்",
+ "retentionRows": "{count} வரிசைகள்",
"retentionQuotaSnapshots": "ஒதுக்கீடு ஸ்னாப்ஷாட்கள் (நாட்கள்)",
- "retentionCompressionAnalytics": "Compression Analytics (days)",
+ "retentionCompressionAnalytics": "சுருக்கப் பகுப்பாய்வு (நாட்கள்)",
"retentionMcpAudit": "MCP தணிக்கை (நாட்கள்)",
"retentionA2aEvents": "A2A நிகழ்வுகள் (நாட்கள்)",
"retentionCallLogs": "அழைப்பு பதிவுகள் (நாட்கள்)",
"retentionUsageHistory": "பயன்பாட்டு வரலாறு (நாட்கள்)",
"retentionMemoryEntries": "நினைவக உள்ளீடுகள் (நாட்கள்)",
- "retentionXpAuditLog": "XP Audit Log (days)",
- "saveRetentionSettings": "Save retention settings",
+ "retentionXpAuditLog": "XP தணிக்கைப் பதிவு (நாட்கள்)",
+ "saveRetentionSettings": "தக்கவைப்பு அமைப்புகளைச் சேமிக்கவும்",
"storageAutoVacuumMode": "தானியங்கு வெற்றிட பயன்முறை",
"storageScheduledVacuum": "திட்டமிடப்பட்ட வெற்றிடம்",
"storageVacuumHour": "வெற்றிட நேரம் (0-23)",
"storagePageSize": "பக்க அளவு (பைட்டுகள்)",
- "storageOptimizationSettings": "Optimization Settings",
- "storageJournalModeNone": "None",
- "storageJournalModeFull": "Full",
- "storageJournalModeIncremental": "Incremental",
- "storageVacuumNever": "Never",
- "storageVacuumDaily": "Daily",
- "storageVacuumWeekly": "Weekly",
- "storageVacuumMonthly": "Monthly",
- "storageCacheSizeKb": "Cache Size (KB)",
- "storageOptimizeOnStartup": "Optimize on Startup",
- "storageSaveOptimization": "Save Optimization Settings",
- "storageCompressionAggregation": "Compression & Aggregation Settings",
- "storageEnableAggregation": "Enable Data Aggregation",
- "storageRawDataRetention": "Raw Data Retention (days)",
- "storageGranularity": "Granularity",
+ "storageOptimizationSettings": "மேம்படுத்தல் அமைப்புகள்",
+ "storageJournalModeNone": "எதுவுமில்லை",
+ "storageJournalModeFull": "முழுமையானது",
+ "storageJournalModeIncremental": "படிப்படியானது",
+ "storageVacuumNever": "ஒருபோதும் இல்லை",
+ "storageVacuumDaily": "தினசரி",
+ "storageVacuumWeekly": "வாராந்திரம்",
+ "storageVacuumMonthly": "மாதாந்திரம்",
+ "storageCacheSizeKb": "தற்காலிக சேமிப்பக அளவு (KB)",
+ "storageOptimizeOnStartup": "தொடக்கத்தில் மேம்படுத்து",
+ "storageSaveOptimization": "மேம்படுத்தல் அமைப்புகளைச் சேமிக்கவும்",
+ "storageCompressionAggregation": "சுருக்கம் மற்றும் திரட்டல் அமைப்புகள்",
+ "storageEnableAggregation": "தரவுத் திரட்டலை இயக்கவும்",
+ "storageRawDataRetention": "மூலத் தரவுத் தக்கவைப்பு (நாட்கள்)",
+ "storageGranularity": "நுணுக்கநிலை",
"storageHourly": "மணிநேரம்",
"storageDaily": "தினசரி",
"storageWeekly": "வாராந்திர",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "முறை: {mode}",
"compressionAdaptiveOff": "தகவமைப்பு சூழல் பட்ஜெட்: ஆஃப் (பழைய தானியங்கு-தூண்டுதல்)",
"compressionAdaptiveTarget": "தகவமைப்பு ({mode}, கொள்கை: {policy}) — இலக்கு ≈ {target, number} டோக்கன்கள் ({contextLimit, number}-டோக்கன் சாளரத்திற்கு)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "தகவல் சூழலுக்கேற்ப மாறும் பட்ஜெட்",
+ "compressionAdaptiveModeOff": "முடக்கம் (பழைய தானியங்குத் தூண்டல்)",
+ "compressionAdaptiveModeFloor": "குறைந்தபட்சம் (எப்போதும் பொருந்துவதை உறுதிசெய்)",
+ "compressionAdaptiveModeReplace": "தானியங்குத் தூண்டலை மாற்றியமை",
+ "compressionAdaptivePolicy": "பட்ஜெட் கொள்கை",
+ "compressionAdaptivePolicyReserve": "வெளியீட்டுக்காக ஒதுக்கு",
+ "compressionAdaptivePolicyPercentage": "சாளரத்தின் சதவீதம்",
+ "compressionAdaptivePolicyAbsolute": "நிலையான டோக்கன் பட்ஜெட்",
"compressionOutputStylesDescription": "வழங்குநரின் வெளியீட்டை மீண்டும் எழுதாமல் பதில்-வடிவமைப்பு வழிமுறைகளை உட்செலுத்தவும். தாராளமாக இணைக்கவும்.",
"mcpAccessibilityDescription": "MCP கருவி வெளியீடுகளை வரம்பிற்குள் வைக்கிறது (தனிச் சேமிப்பகம்).",
"compressionStylesTileSummary": "{tokens, number} டோக்கன்கள் சேமிக்கப்பட்டன · {runs, plural, one {# இயக்கம் வடிவமைக்கப்பட்டது} other {# இயக்கங்கள் வடிவமைக்கப்பட்டன}}",
@@ -7862,8 +7873,8 @@
"description": "கட்டளை-வெளியீடு வடிகட்டுதல்."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses கருவி வெளியீடு",
+ "description": "ஆதரிக்கப்படும் Responses கருவி வெளியீடுகளுக்கான பாதுகாப்பான சுருக்கம்."
},
"headroom": {
"label": "ஹெட்ரூம்",
@@ -7904,12 +7915,12 @@
"description": "YAGNI ஏணி: மிகச்சிறிய வேலை செய்யும் மாற்றம், கோரப்படாத சுருக்கங்கள் இல்லை."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (சோம்பேறி மூத்த டெவலப்பர்)",
+ "description": "சோம்பேறி மூத்த டெவலப்பர் ஒழுங்குமுறை: YAGNI படிக்கட்டில் ஏறுங்கள், மூலக் காரணத்தைச் சரிசெய்யுங்கள், செயல்படும் மிகச் சிறிய diff-ஐப் பயன்படுத்துங்கள்."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "எனக்கு ADHD உள்ளது (செயல் முதலில்)",
+ "description": "செயல்-முதல் வெளியீடு: அடுத்த செயலை முதலில் காட்டவும், படிகளுக்கு எண்களிடவும், ஒரே ஒரு உறுதியான அடுத்த படியை வழங்கவும், முன்னுரை வேண்டாம்."
},
"terse-cjk": {
"label": "சுருக்கமான CJK (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI ஃபால்பேக்",
"cliproxyapiEnableFallback": "CLIProxyAPI ஃபால்பேக்கை இயக்கவும்",
"cliproxyapiUrl": "CLIProxyAPI URL",
+ "headroomProxyTitle": "Headroom ப்ராக்ஸி",
+ "headroomProxyDesc": "விருப்பத்தேர்வான Headroom டோக்கன்-சேமிப்பு ப்ராக்ஸியின் URL. காலியாக இருந்தால் HEADROOM_URL அல்லது http://localhost:8787 பயன்படுத்தப்படும்.",
+ "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrlHint": "லூப்பேக் URL-களை இந்தப் பக்கத்திலிருந்து தொடங்கலாம். வெளிப்புற URL-கள் சோதிக்கப்படுவது மட்டுமே.",
+ "headroomProxySave": "சேமி",
+ "headroomProxyStart": "தொடங்கு",
+ "headroomProxyStop": "நிறுத்து",
+ "headroomProxyExternalHint": "இந்த URL லூப்பேக் அல்ல, எனவே OmniRoute உள்ளூர் CLI-ஐத் தொடங்காது.",
"cliproxyapiStatus": "CLIProxyAPI நிலை",
"cliproxyapiNotDetected": "கண்டறியப்படவில்லை",
"cliproxyapiImportAuthTitle": "CLIProxyAPI இலிருந்து கணக்குகளை இறக்குமதி செய்",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "உலகளவில் சேவை_tier=OpenAI கோடெக்ஸ் கோரிக்கைகளுக்கு முன்னுரிமை.",
"codexFastTierHint": "இயக்கப்படும் போது, OmniRoute ஆனது, ஏற்கனவே ஒரு அடுக்கைக் குறிப்பிடாத இணைப்புகளுக்கான வெளிச்செல்லும் கோடெக்ஸ் கோரிக்கைகளுக்கு service_tier=முன்னுரிமை சேர்க்கிறது. முன்னுரிமை அடுக்குக்கு OpenAI Enterprise API விசை அல்லது ChatGPT-auth கோடெக்ஸ் பாதை தேவை; மற்ற முக்கிய வகைகள் OpenAI இலிருந்து அடுக்கு தொடர்பான பிழையைப் பெறும். கோடெக்ஸ் வழங்குநர் பக்கத்தில் ஒவ்வொரு இணைப்பு அமைப்புகளும் முன்னுரிமை பெறுகின்றன.",
"codexFastTierSaveError": "கோடெக்ஸ் ஃபாஸ்ட் டையர் அமைப்பைப் புதுப்பிக்க முடியவில்லை",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex ஒதுக்கீட்டின் தானியங்கி பிங்",
+ "codexAutoPingDesc": "ஒவ்வொரு இணைப்புக்கும் விருப்பத்தேர்வு: Codex அமர்வு சாளரம் மீட்டமைக்கப்பட்டவுடன் ஒரு மிகச் சிறிய கோரிக்கையை அனுப்பும்; இதனால் தேவைப்படும் நேரத்தில் அது செயலற்ற நிலையில் இருக்காது.",
+ "codexAutoPingWarning": "ஒவ்வொரு பிங்கிலும் உண்மையான Codex ஒதுக்கீட்டில் ஒரு சிறிய அளவு பயன்படுத்தப்படும். இயல்பாக முடக்கப்பட்டுள்ளது — நீங்கள் செயலில் சார்ந்திருக்கும் இணைப்புகளுக்கு மட்டும் இயக்கவும்.",
+ "codexAutoPingSaveError": "Codex தானியங்கி பிங் அமைப்பைப் புதுப்பிக்க முடியவில்லை",
+ "codexAutoPingToggleAria": "{connection} இணைப்பிற்கான Codex ஒதுக்கீட்டுத் தானியங்கி பிங்கை மாற்று",
"codexFastTierTierLabel": "சேவை அடுக்கு",
"codexFastTierTierPriority": "முன்னுரிமை",
"codexFastTierTierFlex": "ஃப்ளெக்ஸ்",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "உலகளாவிய சோதனை இடைவெளி",
"resilienceCredentialHealthEveryMinutes": "ஒவ்வொரு {minutes} நிமிடமும்",
"resilienceCredentialHealthHint": "0 பின்னணி ஸ்கேனை அணைக்கிறது (அதிகபட்சம் 1440 நிமிடம் = 24 மணி). சொந்த உடல்நலச் சோதனை மதிப்புள்ள இணைப்புகள் இந்த உலகளாவிய இயல்புநிலையைப் புறக்கணிக்கின்றன; ஒரு இணைப்பில் 0 உலகளாவிய ஸ்கேன் இயங்கினாலும் அதை விலக்குகிறது.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "{provider} வழங்குநருக்கு எப்போதும் இயக்கப்பட்டிருக்கும் — OAuth கணக்குப் பாதுகாப்பிற்கு இது அவசியம்; இதை முடக்க முடியாது.",
+ "forcedFingerprintBadge": "அவசியம்",
"sessionAffinityTitle": "அமர்வு அஃபினிட்டி",
"sessionAffinityDesc": "எந்தவொரு வழங்குநருக்கும், ஒரு உரையாடலை இத்தனை வினாடிகளுக்கு அதே கணக்கில் வைத்திருக்கும். 0 இதை முடக்கும்.",
"sessionAffinityTtl": "Affinity TTL (வினாடிகள்)",
@@ -8141,7 +8160,7 @@
"vercelRelayButton": "Vercel Relay-ஐ வரிசைப்படுத்து",
"vercelRelayModalTitle": "Vercel Relay-ஐ வரிசைப்படுத்து",
"vercelRelayWarning": "எச்சரிக்கை: Vercel deployment token தேவை. இந்த டோக்கன் சர்வர்லெஸ் ரிலேவை உருவாக்க மட்டுமே பயன்படுத்தப்படும், மேலும் OmniRoute-ஆல் ஒருபோதும் சேமிக்கப்படாது.",
- "vercelRelayTokenLabel": "Vercel Access Token",
+ "vercelRelayTokenLabel": "Vercel அணுகல் டோக்கன்",
"vercelRelayProjectNameLabel": "Vercel திட்டப் பெயர்",
"vercelRelayFreeTierNote": "ரிலேக்கள் என்பவை உள்ளூர் நெட்வொர்க்/பிராந்திய வரம்புகளைத் தவிர்ப்பதற்காக Vercel-இன் இலவச அடுக்கில் வரிசைப்படுத்தப்பட்ட இலகுரக ப்ராக்ஸி இறுதிப்புள்ளிகள் ஆகும்.",
"vercelRelayDeploying": "வரிசைப்படுத்துகிறது...",
@@ -8150,7 +8169,7 @@
"denoRelayButton": "Deno Relay-ஐ வரிசைப்படுத்து",
"denoRelayModalTitle": "Deno Relay-ஐ வரிசைப்படுத்து",
"denoRelayWarning": "எச்சரிக்கை: Deno Deploy organization token தேவை. இந்த டோக்கன் ரிலே செயலியை உருவாக்க மட்டுமே பயன்படுத்தப்படும், மேலும் OmniRoute-ஆல் ஒருபோதும் சேமிக்கப்படாது.",
- "denoRelayTokenLabel": "Deno Deploy Organization Token",
+ "denoRelayTokenLabel": "Deno Deploy நிறுவன டோக்கன்",
"denoRelayOrgDomainLabel": "நிறுவன டொமைன்",
"denoRelayProjectNameLabel": "Deno செயலி பெயர்",
"denoRelayFreeTierNote": "Deno Deploy v2 உலகளாவிய எட்ஜ் நெட்வொர்க்கில் இயங்குகிறது. இலவச அடுக்கு: மாதத்திற்கு 1M கோரிக்கைகள் & 100GiB வெளிச்செல்லும் டிராஃபிக், கோரிக்கைக்கான CPU வரம்புகள் இல்லை, 20 செயலில் உள்ள செயலிகள் & 50 தனிப்பயன் டொமைன்கள் வரை.",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "கூல்டவுன் அதிகரிப்பது நிறுத்தப்படுவதற்கு முந்தைய அதிகபட்ச பேக்ஆஃப் படிகளின் எண்ணிக்கை. பெரும்பாலான உள்ளமைவுகளில் Max Cooldown வரம்பு முதலில் எட்டப்படுகிறது, இதனால் Max Cooldown உயர்த்தப்படும்போது இது ஒரு பாதுகாப்பு உச்சவரம்பாக செயல்படுகிறது.",
"disableSessionStickiness": "செஷன் ஸ்டிக்கினெஸை முடக்கு",
"disableSessionStickinessDesc": "முதல்-செய்தி ஹாஷ் மூலம் முழு உரையாடலையும் ஒரே இணைப்பில் நிலைநிறுத்துவதற்குப் பதிலாக, Round-robin மற்றும் random சேர்க்கைகள் ஒவ்வொரு கோரிக்கையிலும் வேறுபட்ட இணைப்புக்கு மாறுகின்றன. பல-முறை அரட்டைகளுக்கான prompt-cache ஹிட்களைப் பாதுகாக்க இதை முடக்கியே வைக்கவும். Per-combo மேலெழுதல்களுக்கு முன்னுரிமை உண்டு.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Prompt-cache இடச்சார்பு வழிப்படுத்தல்",
+ "promptCacheAffinityDesc": "ஆரோக்கிய நிலை மற்றும் ஒதுக்கீட்டு failover-ஐப் பாதுகாத்தபடி, பொருந்தும் prompt-cache விசைகளுக்கு அதே வழங்குநர் கணக்கை விரும்பிப் பயன்படுத்தவும்.",
+ "reasoningTokenBuffer": "Reasoning டோக்கன் இடையகம்",
+ "reasoningTokenBufferDesc": "அறியப்பட்ட வெளியீட்டு வரம்பிற்குள் முழு இடையகமும் பொருந்தும்போது மட்டும், அறியப்பட்ட reasoning மாடல்களுக்காக combo வழிப்படுத்தல் max_tokens கூடுதல் இடத்தைச் சேர்க்க அனுமதிக்கவும்.",
+ "zeroLatencyOptimizations": "பூஜ்ஜிய-தாமத மேம்படுத்தல்கள்",
+ "zeroLatencyOptimizationsDesc": "Hedging, முன்கணிப்பு TTFT தவிர்ப்புகள் மற்றும் முன்செயல்முறை fallback சுருக்கம் ஆகியவற்றைத் தேர்வுசெய்து இயக்கவும். இந்தத் தாமத அம்சங்கள் இலக்குகளுடன் போட்டியிடுவதையோ fallback கோரிக்கைகளைச் சுருக்குவதையோ தடுக்க, இதை முடக்கியே வைக்கவும்.",
"credentialRedaction": "கிரெடென்ஷியல் மறைத்தல்",
"credentialRedactionDesc": "வழங்குநர்களுக்கு அனுப்பப்படும் சூழல் மற்றும் பதில்களில் இருந்து API விசைகள், டோக்கன்கள் மற்றும் ரகசியங்களை மறைக்கவும்.",
"enableCredentialRedaction": "கிரெடென்ஷியல் மறைத்தலை இயக்கு",
"enableCredentialRedactionDesc": "செய்திகள், கருவி அழைப்புகள் மற்றும் பதில்களில் இருந்து API விசைகள், டோக்கன்கள், தனிப்பட்ட விசைகள் மற்றும் JWT-களை நீக்குகிறது.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "தானியங்கி ஒத்திசைவு முடக்கப்பட்டுள்ளது",
+ "pricingAutoSyncEnabled": "தானியங்கி ஒத்திசைவு இயக்கப்பட்டுள்ளது",
"modalityBridgeIntro": "பல்முறை உள்ளடக்கம் உரை மட்டும் மாதிரிகளை அடைவதற்கு முன் அதை உரையாக மாற்றவும். பார்வை, ஒலி மற்றும் வீடியோ பாலங்கள் கிடைக்கின்றன மற்றும் கட்டமைக்கலாம்.",
"modalityBridgeVisionTab": "கண்ணோட்டம்",
"modalityBridgeAudioTab": "ஆடியோ",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "ஆரோக்கியம்",
"cliproxyapiPort": "போர்ட்",
"qdrantHost": "விருந்தினர்",
- "qdrantCollection": "கலெக்ஷன்",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "கலெக்ஷன்"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "RTK எஞ்சின்",
+ "description": "கருவி வெளியீடு, முனையப் பதிவுகள் மற்றும் உருவாக்க முடிவுகளுக்கான கட்டளை-அறிந்த சுருக்கம்.",
+ "enabled": "இயக்கப்பட்டது",
+ "intensity": "தீவிரம்",
+ "intensityMinimal": "குறைந்தபட்சம்",
+ "intensityStandard": "நிலையானது",
+ "intensityAggressive": "தீவிரமானது",
+ "toolResults": "கருவி முடிவுகள்",
+ "assistantMessages": "உதவியாளர் செய்திகள்",
+ "codeBlocks": "குறியீட்டுத் தொகுதிகள்",
"filterCatalog": "வடிகட்டி பட்டியல்",
"filterCatalogDesc": "வகையின்படி கிடைக்கும் வெளியீடு வடிப்பான்கள்",
"guidedConfig": "கட்டமைப்பு",
"guidedConfigDesc": "உங்கள் டெர்மினல் வெளியீட்டை RTK எவ்வாறு வடிகட்டுகிறது என்பதைச் சரிசெய்யவும்",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "அதிகபட்ச வரிகள்",
+ "maxChars": "அதிகபட்ச எழுத்துகள்",
"deduplicateThreshold": "நகல் வாசல்",
"customFilters": "தனிப்பயன் வடிப்பான்கள்",
"detectedType": "கண்டறியப்பட்ட வகை",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "தோல்விகள்",
"rawOutputAlways": "எப்போதும்",
"rawOutputMaxBytes": "மூல வெளியீடு அதிகபட்ச பைட்டுகள்",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "வடிகட்டி சோதனை",
+ "pasteOutput": "வடிகட்டலைச் சோதிக்க கருவி வெளியீட்டை ஒட்டவும்...",
"presetHigh": "ஆக்கிரமிப்பு",
"presetLow": "ஒளி",
"presetMaxChars": "அதிகபட்ச வெளியீட்டு எழுத்துக்கள்",
"presetMaxLines": "அதிகபட்ச வெளியீட்டு கோடுகள்",
"presetMedium": "தரநிலை",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "இயக்கு",
+ "result": "முடிவு",
+ "previewEmpty": "RTK வெளியீட்டை முன்னோட்டமிட ஒரு மாதிரியை இயக்கவும்.",
+ "detected": "கண்டறியப்பட்டது",
"masterSwitchOffAlert": "Token Saver முதன்மை சுவிட்ச் OFF-ல் உள்ளது — Endpoint பக்கத்திலிருந்து நீங்கள் அதை இயக்கும் வரை இந்த அமைப்புகள் கோரிக்கைகளைப் பாதிக்காது.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "வடிகட்டப்பட்ட டோக்கன்கள்",
+ "filtersActive": "செயலில் உள்ள வடிகட்டிகள்",
+ "requests": "கோரிக்கைகள்",
+ "avgSavings": "சராசரி சேமிப்பு",
"simpleMode": "எளிமையானது",
"advancedMode": "மேம்பட்டது",
"searchFilters": "வடிப்பான்களைத் தேடு...",
@@ -8495,7 +8506,7 @@
"description": "வெளிப்படையான வரிசை எண்ணிக்கை குறிப்பான்களுடன் ஒரே மாதிரியான JSON அணிகளின் இழப்பற்ற அட்டவணை சுருக்கம்."
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "அமர்வு நகல்நீக்கம்",
"description": "மீட்டெடுக்கக்கூடிய உள்ளடக்கக் குறிப்பான்களுடன் கூடிய Cross-turn பிளாக் நகல் நீக்கம்."
},
"ccr": {
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "சுருக்கச் சேர்க்கைகள்",
+ "description": "வெவ்வேறு வழித்தடச் சூழல்களுக்கு எஞ்சின்கள் எவ்வாறு இணைக்கப்படுகின்றன என்பதை வரையறுக்கவும்.",
+ "createCombo": "சுருக்கச் சேர்க்கையை உருவாக்கு",
+ "editCombo": "திருத்து",
+ "deleteCombo": "நீக்கு",
+ "deleteConfirm": "இந்தச் சுருக்கச் சேர்க்கையை நீக்கவா?",
+ "pipeline": "செயலாக்கத் தொடர்",
+ "addStep": "படியைச் சேர்",
+ "removeStep": "அகற்று",
+ "name": "பெயர்",
+ "descriptionField": "விளக்கம்",
+ "languagePacks": "மொழித் தொகுப்புகள்",
+ "outputMode": "வெளியீட்டு முறை",
+ "assignToRouting": "வழித்தடச் சேர்க்கைகளுக்கு ஒதுக்கு",
+ "noAssignments": "வழித்தட சேர்க்கைகள் எதுவும் கிடைக்கவில்லை",
+ "default": "இயல்புநிலை",
+ "setAsDefault": "இயல்புநிலையாக அமை",
+ "save": "சேமி",
+ "cancel": "ரத்துசெய்",
+ "enabled": "இயக்கப்பட்டது",
"loading": "ஏற்றப்படுகிறது…",
"hubTitle": "சுருக்க மையம்",
"hubDescription": "உலகளவில் எந்த சுருக்க சுயவிவரம் இயங்க வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்.",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "தற்போது Claude (Anthropic) க்கு மட்டுமே கிடைக்கிறது. இது ஒரு ஒப்படைக்கப்பட்ட பயன்முறையாகும்: வழங்குநர் சர்வர் பக்கத்தில் பழைய கருவி-பயன்பாட்டுத் தொகுதிகளை அழிக்கிறார் — நாங்கள் செய்தியை மீண்டும் எழுதுவதில்லை. இது பிற வழங்குநர்களைப் பாதிக்காது.",
"namedCombos": "பெயரிடப்பட்ட சேர்க்கைகள்",
"namedCombosDescription": "வெவ்வேறு பைப்லைன்களைச் சேமித்து, அவற்றை குறிப்பிட்ட ரூட்டிங் சேர்க்கைகளுக்கு ஒதுக்கவும்.",
+ "activeProfileMasterSwitchOffWarning": "முதன்மை \"Prompt Compression\" நிலைமாற்றி இயக்கப்படும் வரை கீழே உள்ள செயலில் உள்ள சுயவிவரம் இயங்காது.",
+ "activeProfileMasterSwitchOffCta": "Settings-இல் அதை இயக்கவும்",
"comboNamePlaceholder": "சேர்க்கை பெயர்",
"descriptionPlaceholder": "விளக்கம்",
"nameRequired": "சேமிப்பதற்கு முன் சேர்க்கை பெயரை உள்ளிடவும்.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "மொழிப் பொதிகள்: {packs}",
"dragToReorder": "படியை மறுவரிசைப்படுத்த இழுக்கவும்",
"engine": "எஞ்சின்",
- "intensity": "தீவிரம்",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "தீவிரம்"
},
"compressionStudio": {
"noRun": "சுருக்க இயக்கம் எதுவும் கிடைக்கவில்லை.",
@@ -8701,7 +8712,7 @@
"run": "இயக்கு",
"laneRejected": "நிராகரிக்கப்பட்டது: {reason}",
"error": "பிழை",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "ஒருங்கிணைந்த பைப்லைன் முன்னோட்டம் தோல்வியடைந்தது: {reason}",
"combinedFlow": "ஒருங்கிணைந்த ஓட்டம்",
"eachLayer": "ஒவ்வொரு அடுக்கையும் தனித்தனியாக",
"diff": "வேறுபாடு",
@@ -8718,7 +8729,7 @@
"enterJudgeModel": "ஒரு நடுவர் மாதிரியை உள்ளிடவும்",
"verifying": "சரிபார்க்கப்படுகிறது…",
"verifyAll": "அனைத்தையும் சரிபார்",
- "spent": "spent ${spent} / ${cap}",
+ "spent": "${cap} இல் ${spent} செலவிடப்பட்டது",
"capReached": "வரம்பு எட்டப்பட்டது",
"loadAb": "A/B ஐ ஏற்று",
"engine": "இன்ஜின்",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "இயந்திரத்தை இயக்கு",
"enableDescription": "அடுக்கில் கடைசியாக இயங்குகிறது (RTK/Caveman உரையைச் சுத்தப்படுத்திய பிறகு, OmniGlyph எஞ்சியிருப்பதை படங்களாக மாற்றுகிறது) மேலும் omniglyph பயன்முறை மூலமாகவும் தனித்து இயங்குகிறது. இது ஒரு முன்னோட்டமாகும், மேலும் இறுதி-முதல்-இறுதி சரிபார்ப்பு முடியும் வரை இயல்பாகவே முடக்கப்பட்டிருக்கும்.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "சுருக்கச் சுயவிவரம்",
+ "profileDescription": "இந்தச் சுயவிவரம் ஓர் உச்சவரம்பு, குறைந்தபட்ச வரம்பு அல்ல: கடுமையான சுயவிவரத்தை ஒவ்வொரு படிநிலை மீறல் அமைப்பாலும் மீண்டும் தளர்த்த முடியாது. இந்தக் குறியீட்டுத் தொகுப்பில் அளவிடப்பட்டது: coding-safe அல்லது balanced பயன்படுத்தும்போது, இதுவரை வரலாறு சேராத அமர்வு எதையும் சுருக்காது; ஏனெனில் இரண்டும் குறைந்தபட்ச எழுத்து எண்ணிக்கை வரம்பை உயர்த்தி, கணினி அறிவுறுத்தல், கருவி ஸ்கீமாக்கள் மற்றும் கருவி முடிவுகளை அசல் வடிவிலேயே வைத்திருக்கும்.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "தீவிரம் (இயல்புநிலை)",
+ "description": "வெளியிடப்பட்ட ரசீதுகள் அளவிட்ட கொள்கை. கணினி அறிவுறுத்தல், கருவி ஆவணங்கள் மற்றும் அடர்த்தியான வரலாற்றைப் படமாக்குகிறது."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "சமநிலை",
+ "description": "நேரடி நிலையை அசல் வடிவில் வைத்திருந்து, கடைசி 8 உரையாடல் சுற்றுகளைப் பாதுகாக்கிறது; பழைய முடிவுற்ற வரலாற்றை மட்டுமே சுருக்குகிறது."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "குறியீட்டிற்குப் பாதுகாப்பானது",
+ "description": "அதிகாரத் தகவல், கருவி ஸ்கீமாக்கள் மற்றும் நேரடி கருவி வெளியீட்டை அசல் வடிவில் வைத்திருந்து, கடைசி 12 உரையாடல் சுற்றுகளைப் பாதுகாக்கிறது. அமர்வில் வரலாறு சேரும் வரை எதையும் சுருக்காது."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "மாற்றமின்றி அனுப்புதல்",
+ "description": "மாற்றாமல் வழிப்படுத்துகிறது. இயந்திரம் தவிர்க்கப்பட்டு, கோரிக்கை எந்த மாற்றமுமின்றி அனுப்பப்படுகிறது."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph சுருக்கச் சுயவிவரத்தைத் தேர்ந்தெடுக்கவும்",
"saved": "சேமிக்கப்பட்டது.",
"saveFailed": "சேமிக்க முடியவில்லை.",
"enableAria": "OmniGlyph இயந்திரத்தை இயக்கு",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "விதி அடிப்படையிலான செய்திச் சுருக்கம், மொழித் தொகுப்புகள், பகுப்பாய்வு மற்றும் வெளியீட்டு முறை கட்டுப்பாடுகள்.",
"advancedConfig": "மேம்பட்ட கட்டமைப்பு",
"advancedConfigDesc": "ஃபைன்-டியூன் சுருக்க நடத்தை",
"aggressiveSettings": "ஆக்கிரமிப்பு அமைப்புகள்",
"aggressiveSettingsDesc": "சாத்தியமான தர வர்த்தக பரிமாற்றங்களுடன் கூடிய அதிகபட்ச சுருக்கம்",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "கோரிக்கைகள்",
+ "tokensSaved": "சேமிக்கப்பட்ட டோக்கன்கள்",
+ "savingsPercent": "சேமிப்பு %",
+ "avgLatency": "சராசரி தாமதம்",
+ "languagePacks": "மொழித் தொகுப்புகள்",
+ "languagePacksDesc": "குறிப்பிட்ட மொழிகளுக்கான சுருக்க விதிகளை இயக்கவும்.",
"labelAutoTrigger": "சூழல் மீறும்போது தானாக சுருக்கவும்",
"labelCompressionRate": "சுருக்க வலிமை",
"labelMaxTokens": "ஒரு செய்திக்கு இலக்கு டோக்கன்கள்",
"labelMinLength": "குறைந்தபட்ச செய்தி நீளம்",
"labelMinSavings": "சேமிக்க குறைந்தபட்ச டோக்கன்கள்",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "இயக்கப்பட்டது",
+ "autoDetect": "மொழியைத் தானாகக் கண்டறி",
+ "rulesCount": "{count} விதிகள்",
"inputCompressionTitle": "உள்ளீட்டு சுருக்கம்",
"inputCompressionDesc": "அரட்டை வரலாற்றை குறுகிய சொற்களுடன் மீண்டும் எழுதவும். உள்ளீட்டு டோக்கன்களை ~50% குறைக்கிறது.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "சுருக்கப் பகுப்பாய்வு",
+ "noAnalytics": "இதுவரை சுருக்கப் பகுப்பாய்வு எதுவும் இல்லை.",
"masterDisabledWarning": "டோக்கன் சேவர் முதன்மை சுவிட்ச் ஆஃப் செய்யப்பட்டுள்ளது — சுருக்க அமைப்புகளில் இருந்து அதை ஆன் செய்யும் வரை அல்லது இங்கே மாற்றும் வரை இந்த அமைப்புகள் கோரிக்கைகளை பாதிக்காது.",
"outputMode": "வெளியீட்டு முறை",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "வெளியீட்டு முறை",
"quickSettings": "விரைவு அமைப்புகள்",
"quickSettingsDesc": "தொடங்குவதற்கான அடிப்படை சுருக்க அமைப்புகள்",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "தானியங்கு-தெளிவு தவிர்ப்பு",
+ "bypassConditions": "தவிர்ப்பதற்கான நிபந்தனைகள்",
"bypassConditionsList": "பாதுகாப்பு, மீளமுடியாத, தெளிவுபடுத்தல், ஒழுங்கு உணர்திறன்",
"simpleMode": "எளிமையானது",
"advancedMode": "மேம்பட்டது",
@@ -8940,52 +8951,52 @@
"ultraSettings": "அல்ட்ரா அமைப்புகள்",
"ultraSettingsDesc": "SLM-இயங்கும் சொற்பொருள் சுருக்கம்",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "சுருக்கமாகப் பதிலளிக்கவும். தொழில்நுட்பச் சொற்கள், code, errors, URLs மற்றும் identifiers ஆகியவற்றை மாற்றாமல் வைத்திருக்கவும்.",
+ "full": "சுருக்கமாகவும் செறிவாகவும் பதிலளிக்கவும். அனைத்து தொழில்நுட்ப உள்ளடக்கத்தையும் பாதுகாக்கவும்.",
+ "ultra": "பொதுவான தொழில்நுட்பச் சுருக்கங்களைப் பயன்படுத்தி மிகச் சுருக்கமாகப் பதிலளிக்கவும். துல்லியமான குறியீடுகளைப் பாதுகாக்கவும்."
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "மொழிபெயர்ப்பி",
+ "metaTitle": "மொழிபெயர்ப்பி பயிற்சிக்களம் | OmniRoute",
+ "metaDescription": "வழங்குநர்களுக்கிடையேயான API வடிவமைப்பு மொழிபெயர்ப்புகளைப் பிழைநீக்கி, சோதித்து, காட்சிப்படுத்தவும்",
+ "playgroundTitle": "மொழிபெயர்ப்பி பயிற்சிக்களம்",
+ "playground": "பயிற்சிக்களம்",
+ "realtime": "நிகழ்நேர மொழிபெயர்ப்புச் செயல்பாடு",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "சோதனைக் களம்",
+ "liveMonitor": "நேரடிக் கண்காணிப்பு",
+ "modeDescriptionPlayground": "எந்தவொரு API கோரிக்கை உட்பகுதியையும் ஒட்டி, அதை வழங்குநர் வடிவமைப்புகளுக்கிடையே (OpenAI ↔ Claude ↔ Gemini ↔ Responses API) OmniRoute எவ்வாறு மொழிபெயர்க்கிறது என்பதைப் பார்க்கவும்",
+ "modeDescriptionChatTester": "OmniRoute வழியாக உண்மையான அரட்டைக் கோரிக்கைகளை அனுப்பி, உள்ளீடு, மொழிபெயர்க்கப்பட்ட கோரிக்கை, வழங்குநர் பதில் மற்றும் மொழிபெயர்க்கப்பட்ட வெளியீடு உள்ளிட்ட முழுச் சுற்றுப்பயணத்தையும் ஆய்வு செய்யவும்.",
+ "modeDescriptionTestBench": "முன்வரையறுக்கப்பட்ட சூழல்களை இயக்கி, வழங்குநர்கள் மற்றும் மாதிரிகளுக்கிடையேயான இணக்கத்தன்மையை ஒப்பிடவும்.",
+ "modeDescriptionLiveMonitor": "கோரிக்கைகள் OmniRoute வழியாகச் செல்லும்போது மொழிபெயர்ப்பு நிகழ்வுகளை நிகழ்நேரத்தில் பார்க்கவும்.",
+ "modeDescriptionFallback": "வழங்குநர்களுக்கிடையே API கோரிக்கைகளை OmniRoute எவ்வாறு மொழிபெயர்க்கிறது என்பதைப் பிழைநீக்கி, சோதித்து, காட்சிப்படுத்தவும்.",
+ "recentTranslations": "சமீபத்திய மொழிபெயர்ப்புகள்",
+ "noTranslations": "இதுவரை மொழிபெயர்ப்புகள் இல்லை",
+ "source": "மூலம்",
+ "target": "இலக்கு",
+ "time": "நேரம்",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "தாமதம்",
+ "totalTranslations": "மொத்த மொழிபெயர்ப்புகள்",
+ "successful": "வெற்றியடைந்தவை",
+ "errors": "பிழைகள்",
+ "avgLatency": "சராசரி தாமதம்",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "நேரலை — தானாகப் புதுப்பிக்கப்படுகிறது",
+ "paused": "இடைநிறுத்தப்பட்டது",
+ "eventsAppearHint": "கோரிக்கைகள் OmniRoute வழியாகச் செல்லும்போது மொழிபெயர்ப்பு நிகழ்வுகள் இங்கே தோன்றும். நிகழ்வுகளை உருவாக்க இந்த முறைகளில் ஏதேனும் ஒன்றைப் பயன்படுத்தவும்:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "வெளிப்புற API அழைப்புகள்",
+ "ideCliIntegrations": "IDE/CLI ஒருங்கிணைப்புகள்",
+ "inMemoryNote": "குறிப்பு: நிகழ்வுகள் நினைவகத்தில் சேமிக்கப்படுகின்றன; சேவையகம் மறுதொடக்கம் செய்யப்படும்போது அவை மீட்டமைக்கப்படும்.",
"ok": "OK",
"errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "formatConverter": "வடிவமைப்பு மாற்றி",
+ "formatConverterDescription": "JSON கோரிக்கை உட்பகுதியை ஒட்டவும் அல்லது தட்டச்சு செய்யவும். மொழிபெயர்ப்பி மூல வடிவமைப்பைத் தானாகக் கண்டறிந்து, அதை இலக்கு வடிவமைப்பாக மாற்றும். வடிவமைப்புகளுக்கிடையே (OpenAI ↔ Claude ↔ Gemini ↔ Responses API) கோரிக்கைகளை OmniRoute எவ்வாறு மொழிபெயர்க்கிறது என்பதைப் பிழைநீக்க இதைப் பயன்படுத்தவும்.",
"translationPathHubSpoke": "{source} → OpenAI (இடைநிலை) → {target}",
"translationPathDirect": "{source} → {target} (நேரடி மொழிபெயர்ப்பாளர்)",
"translationPathPassthrough": "அதே வடிவம் - மொழிபெயர்ப்பு தேவையில்லை",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "சில வடிவமைப்பு ஜோடிகள் (Claude→Gemini) நேரடி மொழிபெயர்ப்பாளர்களைக் கொண்டுள்ளன, அவை OpenAI மையத்தைத் தவிர்த்து, மிகவும் துல்லியமான வெளியீட்டை உருவாக்குகின்றன.",
"featureImageMapping": "படத்தின் அளவு மேப்பிங்",
"featureImageMappingDesc": "API வடிவங்களுக்கு இடையே பட பரிமாண மரபுகளை மொழிபெயர்க்கிறது (எ.கா., OpenAI விவர நிலைகள் → Gemini பரிமாணங்கள்).",
- "input": "Input",
- "output": "Output",
+ "input": "உள்ளீடு",
+ "output": "வெளியீடு",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "வடிவமைப்புகளை இடமாற்றவும்",
+ "translateAction": "மொழிபெயர்",
+ "clear": "அழி",
+ "inputPlaceholder": "கோரிக்கை உட்பகுதியை இங்கே ஒட்டவும் அல்லது கீழே உள்ள வார்ப்புருவைத் தேர்ந்தெடுக்கவும்...",
+ "exampleTemplates": "எடுத்துக்காட்டு வார்ப்புருக்கள்",
+ "exampleTemplatesHint": "— ஏற்ற கிளிக் செய்யவும்",
+ "templateLoadHint": "வார்ப்புரு கோரிக்கையை {format} வடிவத்தில் ஏற்றுகிறது. வேறொரு வடிவத்தில் ஏற்ற, மூல வடிவத்தை மாற்றவும்.",
+ "compatibilityTester": "இணக்கத்தன்மை சோதனையாளர்",
+ "compatibilityReport": "இணக்கத்தன்மை அறிக்கை",
+ "testBenchDescription": "மொழிபெயர்ப்பு மற்றும் வழங்குநர் இணக்கத்தன்மையைச் சரிபார்க்க, முன்வரையறுக்கப்பட்ட சூழல்களை (எளிய அரட்டை, கருவி அழைப்பு போன்றவை) இயக்கவும். ஒரு மூல வடிவத்தையும் இலக்கு வழங்குநரையும் தேர்ந்தெடுத்து, இணக்கத்தன்மை சதவீதத்தைக் காண அனைத்து சோதனைகளையும் இயக்கவும். வழங்குநர்களுக்கு இடையே எந்த அம்சங்கள் செயல்படுகின்றன என்பதைக் கண்டறிய இதைப் பயன்படுத்தவும்.",
+ "targetProvider": "இலக்கு வழங்குநர்",
+ "runAllTests": "அனைத்து சோதனைகளையும் இயக்கவும்",
+ "runTest": "சோதனையை இயக்கவும்",
+ "reRun": "மீண்டும் இயக்கவும்",
+ "running": "இயங்குகிறது...",
+ "passed": "தேர்ச்சி பெற்றது",
+ "failed": "தோல்வியடைந்தது",
+ "passedIconLabel": "✅ தேர்ச்சி பெற்றது",
+ "chunks": "துண்டுகள்",
+ "scenarioSimpleChat": "எளிய அரட்டை",
+ "scenarioToolCalling": "கருவி அழைப்பு",
+ "scenarioMultiTurn": "பல-திருப்ப உரையாடல்",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "கணினி அறிவுறுத்தல்",
+ "scenarioStreaming": "தொடரோட்டம்",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "எளிய அரட்டை",
+ "tool-calling": "கருவி அழைப்பு",
+ "multi-turn": "பல-திருப்ப உரையாடல்",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "கணினி அறிவுறுத்தல்",
+ "streaming": "தொடரோட்டம்",
"vision": "பார்வை",
"schema-coercion": "திட்ட வற்புறுத்தல்"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "அடிப்படை உரைச் செய்தி",
+ "tool-calling": "செயல்பாடு/கருவி அழைப்பு",
+ "multi-turn": "வரலாற்றுடன் கூடிய உரையாடல்",
+ "thinking": "விரிவான சிந்தனை / காரணவியல்",
+ "system-prompt": "சிக்கலான கணினி அறிவுறுத்தல்கள்",
+ "streaming": "SSE தொடரோட்டக் கோரிக்கை",
"vision": "பட உள்ளீட்டுடன் மல்டிமாடல் கோரிக்கை",
"schema-coercion": "கட்டமைக்கப்பட்ட வெளியீடு / JSON திட்ட அமலாக்கம்"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "நீங்கள் உதவிகரமான ஓர் உதவியாளர்.",
+ "userGreeting": "வணக்கம்! இன்று எப்படி இருக்கிறீர்கள்?"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "São Paulo-வில் வானிலை எப்படி உள்ளது?",
+ "toolDescription": "ஓர் இருப்பிடத்தின் தற்போதைய வானிலையைப் பெறவும்",
+ "cityNameDescription": "நகரத்தின் பெயர்"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "நீங்கள் ஒரு நிரலாக்க உதவியாளர்.",
+ "userInitial": "Python-இல் ஒரு அணிவரிசையை வரிசைப்படுத்துவதற்கான செயல்பாட்டை எழுதவும்.",
+ "assistantExample": "இதோ ஓர் எளிய வரிசைப்படுத்தல் செயல்பாடு: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "இப்போது இதை இறங்கு வரிசையில் வரிசைப்படுத்தும்படி மாற்றவும்."
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "முதல் 100 பகா எண்களின் கூட்டுத்தொகை என்ன?"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "நீங்கள் பகிர்ந்தளிக்கப்பட்ட அமைப்புகளில் நிபுணத்துவம் பெற்ற மூத்த மென்பொருள் பொறியாளர். தொழில்துறையின் சிறந்த நடைமுறைகளைப் பயன்படுத்தி கேள்விகளுக்குச் சுருக்கமாகப் பதிலளிக்கவும். பொருத்தமான இடங்களில் எப்போதும் குறியீட்டு எடுத்துக்காட்டுகளை வழங்கவும். உங்கள் பதில்களை markdown பயன்படுத்தி வடிவமைக்கவும்.",
+ "question": "சுற்றுத் துண்டிப்பான் வடிவமைப்பு முறையை எவ்வாறு செயல்படுத்துவது?"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "ஓவியம் வரையக் கற்றுக்கொள்ளும் ஒரு ரோபோவைப் பற்றிய சிறுகதை ஒன்றைச் சொல்லுங்கள்."
},
"vision": {
"system": "படங்களை துல்லியமாக விவரிக்கும் உதவியாளர் நீங்கள்.",
@@ -9093,12 +9104,12 @@
"cityDescription": "வினவ வேண்டிய நகரம், எ.கா. 'டோக்கியோ' அல்லது 'நியூயார்க்'."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "OpenAI-இணக்கமானது",
+ "anthropicCompatibleLabel": "Anthropic-இணக்கமானது",
+ "noTemplateForFormat": "இந்த வடிவமைப்பிற்கு வார்ப்புரு இல்லை",
+ "translationFailed": "மொழிபெயர்ப்பு தோல்வியடைந்தது: {error}",
+ "pipelineDebugger": "பைப்லைன் பிழைத்திருத்தி",
+ "translationPipeline": "மொழிபெயர்ப்பு பைப்லைன்",
"loading": "ஏற்றப்படுகிறது…",
"compressionOriginal": "அசல்",
"compressionCompressed": "சுருக்கப்பட்டது",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "பைப்லைன் படிகள்",
"copyIntermediateJson": "இடைநிலை JSON-ஐ நகலெடு",
"copyOutputJson": "வெளியீட்டு JSON-ஐ நகலெடு",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "பைப்லைன் காட்சிப்படுத்தல்",
+ "pipelineVisualizationHint": "கண்டறிதல் → மொழிபெயர்ப்பு → வழங்குநர் அழைப்பு வழியாக உங்கள் கோரிக்கை எவ்வாறு செல்கிறது என்பதைப் பார்க்க ஒரு செய்தியை அனுப்பவும்.",
+ "chatTesterDescription": "ஒரு குறிப்பிட்ட கிளையன்ட் வடிவத்தில் செய்திகளை அனுப்பி, மொழிபெயர்ப்பு பைப்லைனின் ஒவ்வொரு படியையும் ஆய்வு செய்யவும்.",
+ "chatTesterFlow": "கிளையன்ட் கோரிக்கை → வடிவமைப்பு கண்டறிதல் → OpenAI இடைநிலை → வழங்குநர் வடிவமைப்பு → பதில்",
+ "clickStepToInspect": "அந்தக் கட்டத்திலுள்ள தரவை ஆய்வு செய்ய எந்தப் படியையும் கிளிக் செய்யவும்.",
+ "clientFormat": "கிளையன்ட் வடிவமைப்பு",
+ "provider": "வழங்குநர்",
+ "modelPlaceholder": "ஒரு மாதிரிப் பெயரைத் தேர்ந்தெடுக்கவும் அல்லது தட்டச்சு செய்யவும்...",
+ "sendMessageToSeePipeline": "மொழிபெயர்ப்பு பைப்லைனைப் பார்க்க ஒரு செய்தியை அனுப்பவும்",
+ "chatMessageHintPrefix": "உங்கள் செய்தி ஒரு",
+ "chatMessageHintSuffix": "கோரிக்கையாக வடிவமைக்கப்பட்டு, பைப்லைன் வழியாக மொழிபெயர்க்கப்பட்டு, தேர்ந்தெடுக்கப்பட்ட வழங்குநருக்கு அனுப்பப்படும்.",
+ "youWithFormat": "நீங்கள் ({format})",
+ "assistant": "உதவியாளர்",
+ "typeMessage": "ஒரு செய்தியைத் தட்டச்சு செய்யவும்...",
+ "send": "அனுப்பு",
+ "clientRequest": "கிளையன்ட் கோரிக்கை",
+ "clientRequestDescription": "உங்கள் கிளையன்ட் அனுப்பும் கோரிக்கை உள்ளடக்கம்",
+ "formatDetected": "கண்டறியப்பட்ட வடிவமைப்பு",
+ "formatDetectedDescription": "கோரிக்கையின் கட்டமைப்பிலிருந்து API வடிவமைப்பை OmniRoute தானாகக் கண்டறிகிறது",
+ "openaiIntermediate": "OpenAI இடைநிலை",
+ "openaiIntermediateDescription": "அனைத்து வடிவமைப்புகளும் முதலில் OpenAI வடிவமைப்பிற்கு (உலகளாவிய இணைப்புப் பாலம்) இயல்பாக்கப்படுகின்றன",
+ "providerFormat": "வழங்குநர் வடிவமைப்பு",
+ "providerFormatDescription": "OpenAI வடிவமைப்பு வழங்குநரின் சொந்த வடிவமைப்பிற்கு மொழிபெயர்க்கப்படுகிறது",
+ "providerResponse": "வழங்குநர் பதில்",
+ "providerResponseRawDescription": "வழங்குநர் API-இலிருந்து பெறப்படும் மூலப் பதில்",
+ "providerResponseSseDescription": "வழங்குநர் API-இலிருந்து பெறப்படும் மூல SSE ஸ்ட்ரீம்",
+ "unexpectedError": "எதிர்பாராத பிழை ஏற்பட்டது",
+ "error": "பிழை",
+ "errorMessage": "பிழை: {message}",
+ "requestFailed": "கோரிக்கை தோல்வியடைந்தது",
+ "noTextExtracted": "(உரை எதுவும் பிரித்தெடுக்கப்படவில்லை)",
"liveMonitorMemoryNote": "நிகழ்வுகள் நினைவகத்தில் சேமிக்கப்பட்டு மறுதொடக்கத்தில் இழக்கப்படும்.",
"liveMonitorMemoryCapNote": "அதிகபட்சம் 200 நிகழ்வுகள் தக்கவைக்கப்பட்டுள்ளன.",
"eventSourcesLabel": "நிகழ்வு ஆதாரங்கள்:",
"eventSourceTranslatorPage": "• மொழிபெயர்ப்பாளர் பக்கம் (அரட்டை சோதனையாளர், சோதனை பெஞ்ச்)",
"eventSourceMainPipeline": "• முதன்மை கோரிக்கை பைப்லைன் (CLI/IDE/API போக்குவரத்து)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "API அழைப்புகள் OmniRoute வழியாகச் செல்லும்போது மொழிபெயர்ப்பு நிகழ்வுகளைக் காட்டுகிறது. நிகழ்வுகள் நினைவக இடையகத்திலிருந்து வருகின்றன (மறுதொடக்கத்தில் மீட்டமைக்கப்படும்). பயன்படுத்தவும்",
+ "liveMonitorDescriptionSuffix": ", அல்லது நிகழ்வுகளை உருவாக்க வெளிப்புற API அழைப்புகளைப் பயன்படுத்தவும்.",
"streamTransformer": "ஸ்ட்ரீம் மின்மாற்றி",
"modeDescriptionStreamTransformer": "பதில்கள் மின்மாற்றி மூலம் அரட்டை நிறைவுகளை SSE ஸ்ட்ரீம்களை இயக்கவும்.",
"streamTransformerTitle": "பதில்கள் ஸ்ட்ரீம் டிரான்ஸ்ஃபார்மர்",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "உங்கள் பயன்பாடு ஒரு API-இன் \"மொழியைப்\" பேசுகிறது. மொழிபெயர்ப்பாளர் அதை மற்றொரு வழங்குநரைப் பயன்படுத்தும் வகையில் மாற்றுகிறார்.",
"conceptDiagramAppLabel": "உங்கள் பயன்பாடு",
"conceptDiagramSourceLabel": "மூல வடிவம்",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (மையம்)",
"conceptDiagramTargetLabel": "இலக்கு வழங்குநர்",
"conceptDiagramExampleApp": "எ.கா. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "ஒரு JSON கோரிக்கையை ஒட்டவும்; வடிவம் தானாகவே கண்டறியப்படும்.",
"advancedPipelineTitle": "OpenAI இடைநிலை pipeline",
"advancedPipelineSubtitle": "ஒவ்வொரு மொழிபெயர்ப்புப் படியையும் காட்சிப்படுத்தவும் (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "ஸ்ட்ரீம் மாற்றி (அரட்டை → Responses SSE)",
"advancedStreamTransformSubtitle": "Chat Completions SSE-ஐ Responses API-ஆக மாற்றுகிறது.",
"advancedTestBenchTitle": "Test Bench (8 காட்சிகள்)",
"advancedTestBenchSubtitle": "அனைத்து காட்சிகளையும் இயக்கி, தேர்ச்சி/தோல்வி + பொருந்தக்கூடிய % ஆகியவற்றை அறிக்கை செய்கிறது.",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "ஸ்ட்ரீமை மாற்ற முடியவில்லை"
},
"usage": {
- "title": "Usage",
+ "title": "பயன்பாடு",
"grokExtraUsageCredits": "கூடுதல் பயன்பாட்டு கிரெடிட்கள்",
"grokAutoTopUp": "தானியங்கி மேலேற்றம்",
"grokAutoTopUpUnavailable": "கிடையாது",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "மீதமுள்ளது",
"kiloPassRenews": "{count} நாட்களில் புதுப்பிக்கப்படும்",
"kiloPassUsageLabel": "இந்த மாத பயன்பாடு",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "கூடுதல் பயன்பாட்டுக் கிரெடிட்கள்",
+ "kimiExtraUsage": "கூடுதல் பயன்பாடு",
+ "kimiExtraUsageEnabled": "இயக்கப்பட்டது",
+ "kimiExtraUsageDisabled": "முடக்கப்பட்டது",
+ "kimiExtraUsageFrozen": "முடக்கி வைக்கப்பட்டது",
+ "kimiExtraUsageUnavailable": "கிடைக்கவில்லை",
+ "kimiMonthlyUsed": "இந்த மாதம் பயன்படுத்தப்பட்டது",
+ "kimiMonthlyLimit": "மாதாந்திர வரம்பு",
+ "kimiMonthlyLimitUnlimited": "வரம்பற்றது",
+ "kimiAdditionalCredits": "கூடுதல் கிரெடிட்கள்",
+ "loggerTab": "பதிவி",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "பட்ஜெட் மேலாண்மை",
+ "budgetSaved": "பட்ஜெட் வரம்புகள் சேமிக்கப்பட்டன",
+ "budgetSaveFailed": "பட்ஜெட்டைச் சேமிக்க முடியவில்லை",
+ "loadingBudgetData": "பட்ஜெட் தரவு ஏற்றப்படுகிறது...",
+ "noApiKeysTitle": "API விசைகள் இல்லை",
+ "noApiKeysDescription": "பட்ஜெட் வரம்புகளை அமைக்க முதலில் API விசைகளைச் சேர்க்கவும்.",
+ "apiKey": "API விசை",
+ "todaysSpend": "இன்றைய செலவு",
+ "thisMonth": "இந்த மாதம்",
+ "setLimits": "வரம்புகளை அமைக்கவும்",
+ "dailyLimitUsd": "தினசரி வரம்பு (USD)",
+ "monthlyLimitUsd": "மாதாந்திர வரம்பு (USD)",
+ "warningThresholdPercent": "எச்சரிக்கை வரம்புநிலை (%)",
+ "dailyLimitPlaceholder": "எ.கா. 5.00",
+ "monthlyLimitPlaceholder": "எ.கா. 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "வரம்புகளைச் சேமிக்கவும்",
+ "budgetOk": "பட்ஜெட் சரியாக உள்ளது — {remaining} மீதமுள்ளது",
+ "budgetExceeded": "பட்ஜெட் மீறப்பட்டது — கோரிக்கைகள் தடுக்கப்படலாம்",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "இதுவரை தரவு இல்லை",
+ "latency": "தாமதம்",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "ப்ராம்ப்ட் தற்காலிக சேமிப்பு",
+ "systemHealth": "கணினி நிலை",
+ "entries": "பதிவுகள்",
+ "activeCount": "{count} செயலில் உள்ளன",
+ "openCircuitBreakersDetected": "திறந்த சர்க்யூட் பிரேக்கர்கள் கண்டறியப்பட்டன",
+ "hitRate": "ஹிட் விகிதம்",
+ "hitsMisses": "ஹிட்கள் / மிஸ்கள்",
+ "circuitBreakers": "சர்க்யூட் பிரேக்கர்கள்",
+ "lockedIPs": "பூட்டப்பட்ட IP-கள்",
+ "lockoutsAutoRefreshHint": "மாடல் வாரியான வீத வரம்புப் பூட்டுகள் • ஒவ்வொரு 10 வினாடிக்கும் தானாகப் புதுப்பிக்கப்படும்",
+ "lockedCount": "{count, plural, one {# பூட்டப்பட்டுள்ளது} other {# பூட்டப்பட்டுள்ளன}}",
+ "timeLeft": "{time} மீதமுள்ளது",
+ "howItWorks": "இது எவ்வாறு செயல்படுகிறது",
+ "howItWorksSubtitle": "மதிப்பீடுகள் உங்கள் LLM பதில்களை எவ்வாறு சரிபார்க்கின்றன என்பதை அறிக",
+ "define": "வரையறு",
+ "defineStepDescription": "உள்ளடக்கம் உள்ளது, regex அல்லது துல்லியப் பொருத்தம் போன்ற உத்திகளைப் பயன்படுத்தி, உள்ளீட்டுப் ப்ராம்ப்ட்கள் மற்றும் எதிர்பார்க்கப்படும் வெளியீட்டு அளவுகோல்களுடன் சோதனை நிகழ்வுகளை உருவாக்கவும்.",
+ "run": "இயக்கு",
+ "runStepDescription": "OmniRoute மூலம் உங்கள் LLM எண்ட்பாயிண்ட்களில் சோதனை நிகழ்வுகளை இயக்கவும். ஒவ்வொரு நிகழ்வும் உண்மையான API கோரிக்கையாக அனுப்பப்படும்.",
+ "evaluate": "மதிப்பிடு",
+ "evaluateStepDescription": "பதில்கள் எதிர்பார்க்கப்படும் அளவுகோல்களுடன் ஒப்பிடப்படுகின்றன. தாமத அளவீடுகள் மற்றும் விரிவான பின்னூட்டத்துடன் ஒவ்வொரு நிகழ்வின் தேர்ச்சி/தோல்வியைக் காண்க.",
"evalsStrategyContainsLabel": "கொண்டுள்ளது",
"evalsStrategyExactLabel": "சரியான பொருத்தம்",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "ரெகுலர் எக்ஸ்பிரஷன்",
"evalsStrategyCustomLabel": "தனிப்பயன் தர்க்கம்",
"evalsStrategyContainsDescription": "LLM வெளியீட்டில் எதிர்பார்க்கப்படும் சப்ஸ்ட்ரிங் உள்ளதா என்று சரிபார்க்கிறது.",
"evalsStrategyExactDescription": "LLM வெளியீடு எதிர்பார்க்கப்படும் மதிப்புடன் சரியாகப் பொருந்துகிறதா என்று சரிபார்க்கிறது.",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "வெற்றி விகிதம்",
"historyColumnAvgLatencyMs": "சராசரி தாமதம்",
"historyColumnCreatedAt": "செயல்படுத்தப்பட்டது",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "மதிப்பீட்டுத் தொகுப்புகள்",
+ "evalSuitesHint": "சோதனை நிகழ்வுகளைக் காண ஒரு தொகுப்பைக் கிளிக் செய்து, பின்னர் உங்கள் LLM எண்ட்பாயிண்ட்களை மதிப்பிட அதை இயக்கவும்",
+ "evalsLoading": "மதிப்பீட்டுத் தொகுப்புகள் ஏற்றப்படுகின்றன...",
+ "noEvalSuitesFound": "மதிப்பீட்டுத் தொகுப்புகள் எதுவும் கிடைக்கவில்லை",
+ "noEvalSuitesDescription": "மதிப்பீட்டுத் தொகுப்புகளை API மூலமாகவோ அல்லது குறியீட்டிலோ வரையறுக்கலாம். அவை உள்ளடக்கம் உள்ளது, regex, துல்லியப் பொருத்தம் மற்றும் தனிப்பயன் செயல்பாடுகள் போன்ற உத்திகளைப் பயன்படுத்தி மாடல் வெளியீடுகளை எதிர்பார்க்கப்படும் முடிவுகளுடன் ஒப்பிட்டுச் சோதிக்கின்றன.",
+ "columnCase": "நிகழ்வு",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "தாமதம்",
+ "columnDetails": "விவரங்கள்",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "உத்தி",
+ "columnExpected": "எதிர்பார்க்கப்படுவது",
+ "statsSuites": "தொகுப்புகள்",
+ "statsTestCases": "சோதனை நிகழ்வுகள்",
+ "statsModels": "மாடல்கள்",
+ "statsCoverage": "சோதனை வரம்பு",
+ "statsStrategiesCount": "{count} உத்திகள்",
+ "evaluationStrategies": "மதிப்பீட்டு உத்திகள்",
+ "modelsUnderTest": "சோதிக்கப்படும் மாடல்கள்",
+ "searchSuitesPlaceholder": "தொகுப்புகளைத் தேடுக...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# வழக்கு} other {# வழக்குகள்}}",
+ "runEval": "மதிப்பீட்டை இயக்கவும்",
"runAllSuites": "அனைத்தையும் இயக்கவும்",
"runAllRunning": "அனைத்தையும் இயக்குகிறது...",
"runAllProgress": "இயங்கும் {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# தொகுப்பு தோல்வியடைந்தது} other {# தொகுப்புகள் தோல்வியடைந்தன}}",
"runAllCompleted": "ஓடியது {suites} தொகுப்புகள் — {passed} தேர்ச்சி பெற்றது, {failed} தோல்வியடைந்தது",
"runAllCompletedWithFailures": "ரன் {completed} தொகுப்புகள்; {failedSuites} முடிக்க முடியவில்லை",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "{current}/{total} இயக்கப்படுகிறது...",
+ "passRate": "தேர்ச்சி விகிதம்",
+ "summaryBreakdown": "{passed} தேர்ச்சி · {failed} தோல்வி · மொத்தம் {total}",
+ "passedIconLabel": "✅ தேர்ச்சி",
+ "failedIconLabel": "❌ தோல்வி",
"resultPassed": "தேர்ச்சி பெற்றார்",
"resultFailed": "தோல்வியடைந்தது",
"expandResult": "முடிவு விவரங்களை விரிவாக்குங்கள்",
"collapseResult": "முடிவு விவரங்களைச் சுருக்கவும்",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "இதைக் கொண்டுள்ளது: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "எதிர்பார்க்கப்பட்டது: \"{expected}\"",
"expectedOutputLabel": "எதிர்பார்க்கப்படும் வெளியீடு",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "இன்னும் முடிவுகள் இல்லை",
+ "testCasesCount": "சோதனை வழக்குகள் ({count})",
+ "noTestCasesDefined": "சோதனை வழக்குகள் எதுவும் வரையறுக்கப்படவில்லை",
+ "runEvalHint": "உங்கள் LLM முனைப்புள்ளிக்கு எதிராக அனைத்து வழக்குகளையும் இயக்க, \"மதிப்பீட்டை இயக்கவும்\" என்பதைக் கிளிக் செய்யவும். ஒவ்வொரு சோதனையும் OmniRoute வழியாக ஓர் உண்மையான கோரிக்கையை அனுப்பும்.",
+ "notifyNoTestCases": "இந்தத் தொகுப்பிற்கான சோதனை வழக்குகள் எதுவும் வரையறுக்கப்படவில்லை",
+ "notifyAllCasesPassed": "அனைத்து {total} வழக்குகளும் தேர்ச்சி பெற்றன ✅",
+ "notifySomeCasesFailed": "{passed}/{total} தேர்ச்சி, {failed} தோல்வி",
+ "notifyEvalRunFailed": "மதிப்பீட்டு இயக்கம் தோல்வியடைந்தது",
+ "notifyEvalTitle": "மதிப்பீடு: {name}",
+ "modelEvals": "மாதிரி மதிப்பீடுகள்",
+ "evalsHeroDescription": "முன்வரையறுக்கப்பட்ட மதிப்பீட்டுத் தொகுப்புகளை இயக்குவதன் மூலம் உங்கள் LLM முனைப்புள்ளிகளைச் சோதித்து சரிபார்க்கவும். ஒவ்வொரு தொகுப்பிலும் OmniRoute வழியாக உண்மையான தூண்டுதல்களை அனுப்பி, பதில்களை எதிர்பார்க்கப்படும் அளவுகோல்களுடன் ஒப்பிடும் சோதனை வழக்குகள் உள்ளன — இது பின்னடைவுகளைக் கண்டறியவும், மாதிரிகளை ஒப்பிடவும், வழங்குநர்களிடையே பதில்களின் தரத்தை உறுதிப்படுத்தவும் உதவும்.",
+ "qualityValidation": "தரச் சரிபார்ப்பு",
+ "modelComparison": "மாதிரி ஒப்பீடு",
+ "regressionDetection": "பின்னடைவு கண்டறிதல்",
+ "latencyBenchmarks": "தாமத அளவுகோல்கள்",
+ "modelLockouts": "மாதிரிப் பூட்டல்கள்",
+ "noLockouts": "தற்போது எந்த மாதிரியும் பூட்டப்படவில்லை",
+ "activeSessions": "செயலில் உள்ள அமர்வுகள்",
+ "noSessions": "செயலில் உள்ள அமர்வுகள் இல்லை",
+ "sessionsHint": "பதிலி வழியாகக் கோரிக்கைகள் செல்லும்போது அமர்வுகள் தோன்றும்",
+ "sessionsTrackedHint": "கோரிக்கை கைரேகைப் பதிவின் மூலம் கண்காணிக்கப்படுகிறது • 5 வினாடிகளுக்கு ஒருமுறை தானாகப் புதுப்பிக்கப்படும்",
+ "session": "அமர்வு",
+ "age": "வயது",
+ "requests": "கோரிக்கைகள்",
+ "connection": "இணைப்பு",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "வழங்குநர் வரம்புகள்",
+ "noProviders": "வழங்குநர்கள் எவரும் இணைக்கப்படவில்லை",
+ "connectProvidersForQuota": "உங்கள் API ஒதுக்கீட்டு வரம்புகளையும் பயன்பாட்டையும் கண்காணிக்க OAuth மூலம் வழங்குநர்களுடன் இணையவும்.",
+ "accountsCount": "{count, plural, one {# கணக்கு} other {# கணக்குகள்}}",
+ "filteredFromCount": "({count} இலிருந்து வடிகட்டப்பட்டது)",
+ "autoRefresh": "தானாகப் புதுப்பித்தல்",
+ "refreshAll": "அனைத்தையும் புதுப்பி",
+ "loadingQuotas": "ஏற்றுகிறது...",
"showMoreQuotas": "மேலும் {count}-ஐக் காட்டு",
"showLessQuotas": "குறைவாகக் காட்டு",
"hideQuotaRow": "இந்த ஒதுக்கீட்டு வரிசையை மறை",
"showQuotaRow": "இந்த ஒதுக்கீட்டு வரிசையைக் காட்டு",
"hiddenQuotaRowsLabel": "மறைக்கப்பட்டது:",
"quotaVisibilityUpdateFailed": "ஒதுக்கீட்டுத் தெரிவுநிலையைப் புதுப்பிக்க முடியவில்லை",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
+ "account": "கணக்கு",
+ "modelQuotas": "மாதிரி ஒதுக்கீடுகள்",
+ "lastUsed": "கடைசியாகப் புதுப்பிக்கப்பட்டது",
+ "actions": "செயல்கள்",
+ "refreshQuota": "ஒதுக்கீட்டைப் புதுப்பி",
+ "today": "இன்று",
+ "tomorrow": "நாளை",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "{duration} இல்",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "மூலத் திட்டம்: {plan}",
+ "noPlanFromProvider": "வழங்குநரிடமிருந்து திட்டம் இல்லை",
"tokenExpiresIn": "டோக்கன் {time}-ல் காலாவதியாகிறது",
"tokenExpired": "டோக்கன் காலாவதியானது",
- "noQuotaData": "No quota data",
+ "noQuotaData": "ஒதுக்கீட்டுத் தரவு இல்லை",
"cardExpand": "விரிவாக்கு",
"cardCollapse": "சுருக்கு",
"moreQuotas": "+{count} மேலும்",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "குழுவாக்கப்படாதவை",
+ "viewFlat": "தட்டையானது",
+ "viewByEnvironment": "சூழலின்படி",
+ "noQuotaDataAvailable": "ஒதுக்கீட்டுத் தரவு எதுவும் கிடைக்கவில்லை",
+ "noAccountsForTierFilter": "அடுக்கு வடிப்பிக்கு எந்தக் கணக்குகளும் கிடைக்கவில்லை",
+ "tierAll": "அனைத்தும்",
+ "tierEnterprise": "நிறுவனப் பதிப்பு",
+ "tierTeam": "குழு",
+ "tierBusiness": "வணிகம்",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "இலவசம்",
"tierLite": "லைட்",
- "tierUnknown": "Unknown",
+ "tierUnknown": "தெரியாதது",
"statTotal": "மொத்தம்",
"statCritical": "கடுமையானது",
"statAlert": "எச்சரிக்கை",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "கிரெடிட்டை ரிடீம் செய்",
"resetCreditRedeemed": "ரீசெட் ரிடீம் செய்யப்பட்டது",
"resetCreditRedeemFailed": "ரீசெட் கிரெடிட்டை ரிடீம் செய்ய முடியவில்லை",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "தொகுப்பைச் சேமிக்க முடியவில்லை",
"clone": "குளோன்",
"exportSuite": "ஏற்றுமதி",
"importSuite": "இறக்குமதி",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "தவறான eval suite JSON",
"suiteBuilderCloneSuffix": "நகல்",
"suiteBuilderImportedSuite": "இறக்குமதி செய்யப்பட்ட தொகுப்பு",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "மதிப்பீட்டு அட்டை",
+ "evalApiKey": "API விசை",
+ "scorecardPassRate": "தேர்ச்சி விகிதம்",
+ "targetTypeModel": "மாதிரி",
+ "actualOutputLabel": "உண்மையான வெளியீடு",
+ "evalTargetHint": "மதிப்பீடு செய்ய ஒரு மாதிரி அல்லது சேர்க்கையைத் தேர்ந்தெடுக்கவும்.",
+ "suiteBuilderDeleted": "தொகுப்பு வெற்றிகரமாக நீக்கப்பட்டது",
+ "suiteBuilderCaseCardHint": "உள்ளீட்டு வழிமொழியையும் எதிர்பார்க்கப்படும் வெளியீட்டு அளவுகோல்களையும் வரையறுக்கவும்.",
+ "nextResetUtc": "அடுத்த மீட்டமைப்பு (UTC)",
+ "scorecardHint": "அனைத்து மதிப்பீட்டுத் தொகுப்புகளிலும் திரட்டப்பட்ட தேர்ச்சி விகிதங்கள்.",
+ "suiteLatestRunsHint": "இந்தத் தொகுப்பிற்கான மிகச் சமீபத்திய மதிப்பீட்டு இயக்கங்கள்.",
+ "saving": "சேமிக்கிறது",
+ "suiteBuilderCaseModelLabel": "மாதிரி (விருப்பத்தேர்வு)",
+ "evalControlsTitle": "மதிப்பீட்டுக் கட்டுப்பாடுகள்",
+ "suiteBuilderEditTitle": "மதிப்பீட்டுத் தொகுப்பைத் திருத்து",
+ "suiteBuilderCaseStrategyLabel": "சரிபார்ப்பு உத்தி",
+ "notifySelectDifferentCompareTarget": "ஒப்பிடுவதற்கு வேறொரு இலக்கைத் தேர்ந்தெடுக்கவும்",
+ "recentRunsHint": "மிகச் சமீபத்திய மதிப்பீட்டு இயக்கங்கள் காட்டப்படுகின்றன. விரிவான முடிவுகளைக் காண ஓர் இயக்கத்தைக் கிளிக் செய்யவும்.",
+ "evalCompareHint": "விருப்பத்தேர்வாக, முடிவுகளை இரண்டாவது இலக்குடன் ஒப்பிடவும்.",
+ "suiteBuilderCaseInvalid": "இந்தச் சோதனை நிகழ்வில் சரிபார்ப்புப் பிழைகள் உள்ளன. சேமிப்பதற்கு முன் அவற்றைச் சரிசெய்யவும்.",
+ "historyEmpty": "இதுவரை மதிப்பீட்டு வரலாறு இல்லை",
+ "suiteBuilderUpdated": "தொகுப்பு வெற்றிகரமாகப் புதுப்பிக்கப்பட்டது",
+ "resetInterval": "மீட்டமைப்பு இடைவெளி",
+ "suiteBuilderCreateTitle": "மதிப்பீட்டுத் தொகுப்பை உருவாக்கு",
+ "activePeriodSpend": "செயலில் உள்ள காலகட்டச் செலவு",
+ "evalApiKeyHint": "மதிப்பீட்டுக் கோரிக்கைகளுக்கு எந்த API விசையைப் பயன்படுத்த வேண்டும் என்பதைத் தேர்ந்தெடுக்கவும்.",
+ "evalCompareOptional": "ஒப்பிடு (விருப்பத்தேர்வு)",
+ "suiteBuilderDeleteFailed": "தொகுப்பை நீக்க முடியவில்லை",
+ "suiteBuilderCaseSystemPromptPlaceholder": "விருப்பத்திற்குரிய அமைப்பு வழிமுறைகள்...",
+ "scorecardCases": "சோதனை நிகழ்வுகள்",
+ "runCompletedWithScore": "மதிப்பீடு நிறைவடைந்தது — {score}% தேர்ச்சி விகிதம்",
+ "suiteBuilderCustomBadge": "தனிப்பயன்",
+ "targetSuiteDefaults": "தொகுப்பின் இயல்புநிலைகள்",
+ "suiteBuilderDeleteConfirm": "இந்தத் தொகுப்பை நீக்க விரும்புகிறீர்களா? இந்தச் செயலைச் செயல்தவிர்க்க முடியாது.",
+ "suiteBuilderNameLabel": "தொகுப்பின் பெயர்",
+ "scorecardSuites": "தொகுப்புகள்",
+ "evalCompareTarget": "ஒப்பீட்டு இலக்கு",
+ "suiteBuilderCaseModelPlaceholder": "எ.கா. gpt-4o-mini",
+ "evalControlsHint": "உங்கள் மதிப்பீட்டு இலக்கையும் API விசையையும் உள்ளமைத்து, பின்னர் மாதிரித் தரத்தைச் சரிபார்க்க தொகுப்புகளை இயக்கவும்.",
+ "recentRunsTitle": "சமீபத்திய இயக்கங்கள்",
+ "suiteBuilderCaseSystemPromptLabel": "அமைப்பு வழிகாட்டி உரை",
+ "suiteBuilderCaseExpectedPlaceholder": "எ.கா. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "எ.கா. டெஃப் ஃபைபோனச்சி",
"suiteBuilderCaseExpectedPlaceholderExact": "எதிர்பார்க்கப்படும் சரியான பதிலை ஒட்டவும்",
"suiteBuilderCaseExpectedPlaceholderRegex": "எ.கா. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "ஜாவாஸ்கிரிப்ட் ரெகுலர் எக்ஸ்ப்ரெஷனைப் பயன்படுத்தவும்.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "எ.கா. குறியீட்டுத் தரத் தொகுப்பு",
+ "suiteBuilderAddCase": "சோதனை நிகழ்வைச் சேர்",
+ "cancel": "ரத்துசெய்",
+ "evalTarget": "இலக்கு",
+ "suiteBuilderCaseNameLabel": "சோதனை நிகழ்வின் பெயர்",
+ "weeklyLimitUsd": "வாராந்திர வரம்பு (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "எ.கா. Python-இல் ஒரு fibonacci செயல்பாட்டை எழுதவும்",
+ "suiteBuilderNameRequired": "தொகுப்பின் பெயர் தேவை",
+ "suiteBuilderCaseUserPromptLabel": "பயனர் வழிகாட்டி உரை",
+ "daily": "தினசரி",
+ "resultErrorLabel": "பிழை",
+ "suiteBuilderBuiltInBadge": "உள்ளமைந்த",
+ "suiteBuilderCaseCardTitle": "சோதனை நிகழ்வு",
"suiteBuilderDuplicateCase": "நகல்",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "எ.கா. 50.00",
+ "suiteBuilderCaseTagsHint": "சோதனை நிகழ்வுகளை ஒழுங்கமைப்பதற்கான காற்புள்ளியால் பிரிக்கப்பட்ட குறிச்சொற்கள்.",
+ "notifyEvalRunFailedWithReason": "மதிப்பீடு தோல்வியடைந்தது: {reason}",
+ "weekly": "வாரந்தோறும்",
+ "runEvalRunning": "மதிப்பீடு இயங்குகிறது...",
+ "delete": "நீக்கு",
+ "resetTimeUtc": "மீட்டமைப்பு நேரம் (UTC)",
+ "evalApiKeyAuto": "தானியங்கி (இயல்புநிலையைப் பயன்படுத்து)",
+ "suiteBuilderDescriptionPlaceholder": "இந்தத் தொகுப்பு எதைச் சோதிக்கிறது என்பதற்கான விருப்ப விளக்கம்...",
+ "targetComparisonTitle": "இலக்கு ஒப்பீடு",
+ "save": "சேமி",
+ "suiteBuilderCreated": "தொகுப்பு வெற்றிகரமாக உருவாக்கப்பட்டது",
+ "suiteLatestRuns": "சமீபத்திய இயக்கங்கள்",
+ "suiteBuilderCaseExpectedLabel": "எதிர்பார்க்கப்படும் மதிப்பு",
+ "historyLatency": "தாமதம்",
+ "suiteBuilderCaseTagsPlaceholder": "எ.கா. coding, python",
+ "targetTypeCombo": "சேர்க்கை",
+ "scorecardPassed": "தேர்ச்சி பெற்றது",
+ "suiteBuilderCaseTagsLabel": "குறிச்சொற்கள்",
+ "suiteBuilderNewSuite": "புதிய தொகுப்பு",
+ "notifyEvalLoadFailed": "மதிப்பீட்டுத் தரவை ஏற்ற முடியவில்லை",
+ "notConfigured": "உள்ளமைக்கப்படவில்லை",
+ "suiteBuilderCaseNamePlaceholder": "எ.கா. Python fibonacci சோதனை",
+ "intervalLabel": "இடைவெளி",
+ "suiteBuilderCreateAction": "தொகுப்பை உருவாக்கு",
+ "suiteBuilderCasesHint": "ஒவ்வொரு நிகழ்வும் ஒரு உள்ளீட்டை அனுப்பி, பதிலைச் சரிபார்க்கிறது.",
+ "suiteBuilderUpdatedAt": "புதுப்பிக்கப்பட்டது",
+ "errorBadge": "பிழை",
+ "suiteBuilderCasesTitle": "சோதனை நிகழ்வுகள்",
+ "edit": "திருத்து",
+ "monthly": "மாதந்தோறும்",
+ "suiteBuilderCasesRequired": "குறைந்தது ஒரு சோதனை நிகழ்வு தேவை",
+ "weeklyLimitSummary": "வாராந்திர பட்ஜெட் வரம்புச் சுருக்கம்",
+ "suiteBuilderDescriptionLabel": "விளக்கம்",
+ "targetComparisonHint": "இலக்குகளுக்கு இடையேயான மதிப்பீட்டு முடிவுகளின் அருகருகான ஒப்பீடு.",
+ "compareCompletedWithScore": "ஒப்பீடு முடிந்தது — {score}% தேர்ச்சி விகிதம்",
+ "staleQuotaTooltip": "கடைசிப் புதுப்பிப்பு தோல்வியடைந்தது — தற்காலிகமாகச் சேமிக்கப்பட்ட தரவு காட்டப்படுகிறது",
"quotaThresholdLabel": "மினி",
"quotaCutoffsColumnHelp": "மீதமுள்ள ஒதுக்கீடு இந்த சதவீதத்திற்கு அல்லது அதற்கும் குறைவாக இருந்தால் கோரிக்கைகளை நிறுத்தவும்.",
"quotaCutoffsButtonDefault": "இயல்புநிலை",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "இணைக்கப்பட்ட கணக்குகளின் நேரலை நிலை"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "அங்கீகாரத்திற்காகக் காத்திருக்கிறது",
+ "verificationUrl": "சரிபார்ப்பு URL",
+ "yourCode": "உங்கள் குறியீடு",
+ "remoteAccess": "தொலைநிலை அணுகல்:",
+ "connectedSuccess": "வெற்றிகரமாக இணைக்கப்பட்டது!",
+ "connectionFailed": "இணைப்பு தோல்வியடைந்தது",
+ "chooseAuthMethod": "உங்கள் அங்கீகார முறையைத் தேர்வுசெய்யவும்:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Google கணக்கு",
+ "githubAccount": "GitHub கணக்கு",
+ "importToken": "டோக்கனை இறக்குமதி செய்",
+ "pasteToken": "Kiro IDE இலிருந்து புதுப்பிப்பு டோக்கனை ஒட்டவும்.",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "டோக்கன்கள் தானாகக் கண்டறியப்படுகின்றன...",
+ "readingFromCache": "AWS SSO தற்காலிகச் சேமிப்பிலிருந்து படிக்கிறது",
+ "readingFromCursor": "Cursor IDE தரவுத்தளத்திலிருந்து படிக்கிறது",
+ "initializing": "தொடங்குகிறது...",
+ "pricingConfig": "விலையிடல் உள்ளமைவு",
+ "loadingPricing": "விலையிடல் தரவு ஏற்றப்படுகிறது...",
+ "pricingRatesFormat": "விலையிடல் கட்டண வடிவம்",
+ "noPricingData": "விலையிடல் தரவு எதுவும் இல்லை",
+ "noModelsFound": "மாதிரிகள் எதுவும் கிடைக்கவில்லை"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "அனைத்து வழங்குநர்களும்",
+ "allModels": "அனைத்து மாதிரிகளும்",
+ "allAccounts": "அனைத்து கணக்குகளும்",
+ "allApiKeys": "அனைத்து API விசைகளும்",
+ "allTypes": "அனைத்து வகைகளும்",
+ "allLevels": "அனைத்து நிலைகளும்",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "பதிவுகள் ஏற்றப்படுகின்றன...",
+ "loadingProxyLogs": "பதிலி பதிவுகள் ஏற்றப்படுகின்றன...",
+ "noLogEntries": "பதிவு உள்ளீடுகள் எதுவும் கிடைக்கவில்லை",
+ "noPayloadData": "இந்தப் பதிவு உள்ளீட்டிற்கு பேலோட் தரவு எதுவும் இல்லை.",
+ "proxyEvent": "பதிலி நிகழ்வு",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "நிலை",
+ "directNative": "நேரடி (சொந்த)",
+ "combo": "கூட்டு",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "பயன்பாட்டுக் கண்ணோட்டம்",
+ "outputTokens": "வெளியீட்டு டோக்கன்கள்",
+ "totalCost": "மொத்தச் செலவு",
+ "usageByModel": "மாதிரி வாரியான பயன்பாடு",
+ "usageByAccount": "கணக்கு வாரியான பயன்பாடு",
+ "failedToLoad": "பயன்பாட்டுப் புள்ளிவிவரங்களை ஏற்ற முடியவில்லை.",
+ "tokenHealth": "டோக்கன் நிலை",
+ "totalOAuth": "மொத்த OAuth",
+ "healthy": "சீரானது",
+ "warning": "எச்சரிக்கை",
+ "errored": "பிழையடைந்தது",
+ "lastCheck": "கடைசி சரிபார்ப்பு",
+ "noData": "தரவு இல்லை",
+ "share": "பகிர்",
+ "unableToLoad": "கணினி அளவீடுகளை ஏற்ற முடியவில்லை",
+ "product": "தயாரிப்பு",
+ "resources": "வளங்கள்",
+ "company": "நிறுவனம்",
"tokenHealthTooltips": {
"allHealthy": "எல்லா டோக்கன்களும் ஆரோக்கியமாக உள்ளன",
"needsAttention": "சில டோக்கன்களுக்கு கவனம் தேவை",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "இன்னும் கணக்கு-சிறப்பு பயன்பாடு பதிவு செய்யப்படவில்லை. இங்கே தரவுகளை காண OAuth கணக்குகளைப் பயன்படுத்தி கோரிக்கைகள் செய்யவும்."
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "வரவேற்கிறோம்",
+ "signIn": "உள்நுழைக",
+ "enterPassword": "தொடர உங்கள் கடவுச்சொல்லை உள்ளிடவும்",
+ "password": "கடவுச்சொல்",
+ "unifiedProxy": "ஒருங்கிணைந்த AI API ப்ராக்ஸி",
+ "unifiedAiApiProxy": "ஒருங்கிணைந்த AI API ப்ராக்ஸி",
+ "unifiedAiApiProxyDesc": "ஒரே முனைப்புள்ளி மூலம் பல AI வழங்குநர்களுக்குக் கோரிக்கைகளை வழிமாற்றுங்கள். சுமை சமநிலைப்படுத்தல், செயலிழப்பு மாற்று மற்றும் பயன்பாட்டுக் கண்காணிப்பு ஆகியவை உள்ளமைக்கப்பட்டுள்ளன.",
+ "passwordNotEnabled": "கடவுச்சொல் பாதுகாப்பு இயக்கப்படவில்லை",
+ "loading": "ஏற்றப்படுகிறது...",
+ "invalidPassword": "தவறான கடவுச்சொல்",
+ "errorOccurredRetry": "ஒரு பிழை ஏற்பட்டது. மீண்டும் முயற்சிக்கவும்.",
+ "configureInstance": "உங்கள் OmniRoute நிகழ்வை உள்ளமைப்போம்",
+ "runOnboardingWizard": "உங்கள் கடவுச்சொல்லை அமைத்து, முதல் AI வழங்குநரை இணைக்க தொடக்கநிலை அமைப்பு வழிகாட்டியை இயக்கவும்.",
+ "startOnboarding": "தொடக்கநிலை அமைப்பைத் தொடங்கு",
+ "secureYourInstance": "உங்கள் நிகழ்வைப் பாதுகாக்கவும்",
+ "setPasswordDescription": "உங்கள் கட்டுப்பாட்டுப் பலகையைப் பாதுகாக்கவும், அங்கீகரிக்கப்படாத அணுகலிலிருந்து உங்கள் API முனைப்புள்ளிகளைப் பாதுகாப்பாக வைத்திருக்கவும் ஒரு கடவுச்சொல்லை அமைக்கவும்.",
+ "configurePassword": "கடவுச்சொல்லை உள்ளமைக்கவும்",
+ "continue": "தொடரவும்",
+ "windowWillClose": "இந்தச் சாளரம் தானாகவே மூடப்படும்...",
+ "closeTabNow": "இப்போது இந்தத் தாவலை மூடலாம்.",
+ "copyUrlManual": "முகவரிப் பட்டியிலிருந்து URL-ஐ நகலெடுத்து பயன்பாட்டில் ஒட்டவும்.",
+ "accessDeniedDescription": "இந்த வளத்தை அணுக உங்களுக்கு அனுமதி இல்லை. உங்கள் API key-ஐச் சரிபார்க்கவும் அல்லது நிர்வாகியைத் தொடர்புகொள்ளவும்.",
+ "goToDashboard": "கட்டுப்பாட்டுப் பலகைக்குச் செல்",
+ "featureMultiProviderTitle": "பல வழங்குநர்கள்",
+ "featureMultiProviderDesc": "OpenAI, Anthropic, Google மற்றும் பல",
+ "featureLoadBalancingTitle": "சுமை சமநிலைப்படுத்தல்",
+ "featureLoadBalancingDesc": "கோரிக்கைகளை அறிவார்ந்த முறையில் பகிர்ந்தளிக்கவும்",
+ "featureUsageTrackingTitle": "பயன்பாட்டுக் கண்காணிப்பு",
+ "featureUsageTrackingDesc": "செலவுகள் மற்றும் டோக்கன்களைக் கண்காணிக்கவும்",
+ "resetPassword": "கடவுச்சொல்லை மீட்டமை",
+ "resetDescription": "உங்கள் டாஷ்போர்டிற்கான அணுகலை மீட்டெடுக்க ஒரு முறையைத் தேர்ந்தெடுக்கவும்",
+ "stopServer": "OmniRoute சேவையகத்தை நிறுத்தவும்",
+ "processing": "செயலாக்கப்படுகிறது...",
+ "pleaseWait": "அங்கீகாரத்தை நிறைவு செய்யும் வரை காத்திருக்கவும்.",
+ "authSuccess": "அங்கீகாரம் வெற்றிகரமாக முடிந்தது!",
+ "copyUrl": "இந்த URL-ஐ நகலெடுக்கவும்",
+ "accessDenied": "அணுகல் மறுக்கப்பட்டது",
+ "methodCliTitle": "முறை 1: CLI மூலம் மீட்டமைத்தல்",
+ "methodCliDescription": "OmniRoute இயங்கும் சேவையகத்தில் பின்வரும் கட்டளையை இயக்கவும்:",
+ "methodCliHint": "இது புதிய கடவுச்சொல்லை அமைக்கும்படி உங்களிடம் கேட்கும். முதலில் சேவையகம் நிறுத்தப்பட்டிருக்க வேண்டும்.",
+ "methodManualTitle": "முறை 2: கைமுறையாக மீட்டமைத்தல்",
+ "methodManualDescription": "தரவுத்தளத்திலிருந்து கடவுச்சொல்லை நீக்கி, தொடக்கத்தின்போது புதிய கடவுச்சொல்லை அமைக்கவும்:",
+ "setPasswordInYour": "உங்கள் பின்வரும் கோப்பில் புதிய கடவுச்சொல்லை அமைக்கவும்:",
+ "fileLabelSuffix": "கோப்பு:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "நீக்கவும்",
+ "orRemovePasswordHashField": "அல்லது passwordHash புலத்தை அகற்றவும்",
+ "restartServerWithNewPassword": "சேவையகத்தை மறுதொடக்கம் செய்யவும் - அது புதிய கடவுச்சொல்லைப் பயன்படுத்தும்",
+ "backToLogin": "உள்நுழைவுக்குத் திரும்பு",
+ "forgotPassword": "கடவுச்சொல்லை மறந்துவிட்டீர்களா?",
"continueWithOidc": "OIDC மூலம் தொடரவும்",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "இயல்புநிலை கடவுச்சொல்: CHANGEME (INITIAL_PASSWORD அமைக்கப்படவில்லை எனில்)",
+ "Authorization": "அங்கீகாரம்",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "அங்கீகாரத்திற்காகக் காத்திருக்கிறது...",
+ "waitingForGoogleAuthorization": "Google அங்கீகாரத்திற்காகக் காத்திருக்கிறது...",
+ "waitingForOpenAIAuthorization": "OpenAI அங்கீகாரத்திற்காகக் காத்திருக்கிறது...",
+ "waitingForAntigravityAuthorization": "Antigravity அங்கீகாரத்திற்காகக் காத்திருக்கிறது...",
+ "waitingForQoderAuthorization": "Qoder அங்கீகாரத்திற்காகக் காத்திருக்கிறது...",
+ "exchangingCodeForTokens": "குறியீடு டோக்கன்களாகப் பரிமாறப்படுகிறது...",
+ "nodeIncompatibleTitle": "பொருந்தாத Node.js பதிப்பு",
+ "nodeIncompatibleDesc": "நீங்கள் Node.js {version} பதிப்பைப் பயன்படுத்துகிறீர்கள்; இது OmniRoute ஆதரிக்கும் பாதுகாப்பான இயக்கச் சூழல் கொள்கைக்கு உட்பட்டதல்ல. பாதுகாப்புத் திருத்தங்கள் செய்யப்பட்ட Node.js 20.x அல்லது 22.x LTS வெளியீட்டைப் பயன்படுத்தவும்.",
+ "nodeIncompatibleFixLabel": "தீர்வு: பாதுகாப்புத் திருத்தங்கள் செய்யப்பட்ட Node.js 22 LTS வெளியீட்டை நிறுவவும்",
+ "nodeIncompatibleHint": "OmniRoute-க்கு Node.js 22.22.2+ (22.x LTS) அல்லது 24.0.0+ (24.x LTS) தேவை. Node 24 LTS பரிந்துரைக்கப்படுகிறது.",
"resetViaAppDataTitle": "அப்ளிகேஷன் தரவின் மூலம் மீட்டமைக்கவும்",
"resetViaAppDataDescription": "அந்த செயலியின் தரவுத்தொகுப்பில் உள்ள அமைப்புகள் கோப்பை நீக்கி உங்கள் கடவுச்சொல்லை மீட்டமைக்கவும்:",
"quitDesktopApp": "OmniRoute டெஸ்க்டாப் செயலியை முற்றிலும் மூடு",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "முகப்புக்குச் செல்லவும்",
+ "toggleMenu": "மெனுவை மாற்றிக் காட்டவும்",
+ "featuresLink": "அம்சங்கள்",
+ "docsLink": "ஆவணங்கள்",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "versionLive": "v1.0 இப்போது பயன்பாட்டில் உள்ளது",
+ "oneEndpoint": "ஒரே இறுதிப்புள்ளியில்",
+ "allProviders": "அனைத்து AI வழங்குநர்களும்",
+ "heroDescription": "இணைய முகப்புப்பலகையுடன் கூடிய AI இறுதிப்புள்ளி ப்ராக்ஸி — CLIProxyAPI-இன் JavaScript பதிப்பு. Claude Code, OpenAI Codex, Cline, RooCode மற்றும் பிற CLI கருவிகளுடன் தடையின்றிச் செயல்படுகிறது.",
+ "getStarted": "தொடங்குங்கள்",
+ "viewOnGithub": "GitHub-இல் காண்க",
+ "powerfulFeatures": "சக்திவாய்ந்த அம்சங்கள்",
+ "featuresSubtitle": "உங்கள் AI உட்கட்டமைப்பை ஒரே இடத்தில் நிர்வகிக்கத் தேவையான அனைத்தும், பெரிய அளவிலான பயன்பாட்டிற்காக உருவாக்கப்பட்டுள்ளன.",
+ "featureUnifiedEndpointTitle": "ஒருங்கிணைந்த இறுதிப்புள்ளி",
+ "featureUnifiedEndpointDesc": "ஒரே நிலையான API URL வழியாக அனைத்து வழங்குநர்களையும் அணுகுங்கள்.",
+ "featureEasySetupTitle": "எளிய அமைப்பு",
+ "featureEasySetupDesc": "npx கட்டளையைப் பயன்படுத்தி சில நிமிடங்களில் செயல்படத் தொடங்குங்கள்.",
+ "featureModelFallbackTitle": "மாதிரி மாற்று ஏற்பாடு",
+ "featureModelFallbackDesc": "செயலிழப்பு அல்லது அதிக தாமதம் ஏற்பட்டால் தானாகவே வழங்குநர்களை மாற்றுங்கள்.",
+ "featureUsageTrackingTitle": "பயன்பாட்டுக் கண்காணிப்பு",
+ "featureUsageTrackingDesc": "அனைத்து மாதிரிகளுக்குமான விரிவான பகுப்பாய்வுகளும் செலவுக் கண்காணிப்பும்.",
+ "featureOAuthApiKeysTitle": "OAuth மற்றும் API விசைகள்",
+ "featureOAuthApiKeysDesc": "ஒரே பாதுகாப்புப் பெட்டகத்தில் நற்சான்றுகளைப் பாதுகாப்பாக நிர்வகியுங்கள்.",
+ "featureCloudSyncTitle": "கிளவுட் ஒத்திசைவு",
+ "featureCloudSyncDesc": "உங்கள் உள்ளமைவுகளைச் சாதனங்கள் முழுவதும் உடனடியாக ஒத்திசையுங்கள்.",
+ "featureCliSupportTitle": "CLI ஆதரவு",
+ "featureCliSupportDesc": "Claude Code, Codex, Cline, Cursor மற்றும் பலவற்றுடன் செயல்படுகிறது.",
+ "featureDashboardTitle": "முகப்புப்பலகை",
+ "featureDashboardDesc": "நிகழ்நேரப் போக்குவரத்துப் பகுப்பாய்வுக்கான காட்சிமுகப்புப்பலகை.",
+ "howItWorks": "OmniRoute எவ்வாறு செயல்படுகிறது",
+ "howItWorksDescription": "உங்கள் பயன்பாட்டிலிருந்து எங்களின் நுண்ணறிவுமிக்க வழித்தட அடுக்கு வழியாகப் பணிக்கு மிகவும் பொருத்தமான வழங்குநரிடம் தரவு தடையின்றிப் பாய்கிறது.",
+ "howItWorksStep1Title": "1. CLI மற்றும் SDK-கள்",
+ "howItWorksStep1Description": "உங்களுக்குப் பிடித்த கருவிகள் அல்லது எங்களின் ஒருங்கிணைந்த SDK-இலிருந்து உங்கள் கோரிக்கைகள் தொடங்குகின்றன. அடிப்படை URL-ஐ மட்டும் மாற்றுங்கள்.",
+ "howItWorksStep2Title": "2. OmniRoute மையம்",
+ "howItWorksStep2Description": "எங்கள் இயந்திரம் அறிவுறுத்தலைப் பகுப்பாய்வு செய்து, வழங்குநரின் செயல்நிலையைச் சரிபார்த்து, குறைந்த தாமதம் அல்லது செலவுக்கேற்ப வழித்தடத்தைத் தேர்ந்தெடுக்கிறது.",
+ "howItWorksStep3Title": "3. AI வழங்குநர்கள்",
+ "howItWorksStep3Description": "கோரிக்கை OpenAI, Anthropic, Gemini அல்லது பிற வழங்குநர்களால் உடனடியாக நிறைவேற்றப்படுகிறது.",
+ "getStartedIn30Seconds": "30 வினாடிகளில் தொடங்குங்கள்",
+ "getStartedDescription": "OmniRoute-ஐ நிறுவி, இணைய முகப்புப்பலகை வழியாக உங்கள் வழங்குநர்களை உள்ளமைத்து, AI கோரிக்கைகளை வழிநடத்தத் தொடங்குங்கள்.",
+ "installOmniRoute": "OmniRoute-ஐ நிறுவுங்கள்",
+ "installStepDescription": "சேவையகத்தை உடனடியாகத் தொடங்க npx கட்டளையை இயக்குங்கள்",
+ "openDashboard": "முகப்புப்பலகையைத் திறக்கவும்",
+ "openDashboardStepDescription": "இணைய இடைமுகம் வழியாக வழங்குநர்களையும் API விசைகளையும் உள்ளமைக்கவும்",
+ "routeRequests": "கோரிக்கைகளை வழிநடத்துங்கள்",
+ "routeRequestsStepDescription": "உங்கள் CLI கருவிகளை {endpoint} நோக்கி அமைக்கவும்",
+ "terminal": "டெர்மினல்",
+ "copy": "நகலெடு",
+ "copied": "✓ நகலெடுக்கப்பட்டது",
+ "startingOmniRoute": "OmniRoute தொடங்குகிறது...",
+ "serverRunningOnLabel": "சேவையகம் இயங்கும் முகவரி",
+ "dashboardLabel": "கட்டுப்பாட்டுப் பலகம்",
+ "readyToRoute": "வழித்தடமிடத் தயார்! ✓",
+ "configureProvidersNote": "📝 வழங்குநர்களைக் கட்டுப்பாட்டுப் பலகத்தில் உள்ளமைக்கவும் அல்லது சூழல் மாறிகளைப் பயன்படுத்தவும்",
+ "dataLocation": "தரவு இருப்பிடம்:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "தயாரிப்பு",
+ "dashboardLink": "கட்டுப்பாட்டுப் பலகம்",
+ "changelog": "மாற்றப் பதிவு",
+ "resources": "வளங்கள்",
+ "documentation": "ஆவணங்கள்",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "சட்டத் தகவல்கள்",
+ "mitLicense": "MIT உரிமம்",
+ "footerTagline": "AI உருவாக்கத்திற்கான ஒருங்கிணைந்த முனைப்புள்ளி. உங்கள் AI வழங்குநர்களை எளிதாக இணைத்து, வழித்தடமிட்டு, நிர்வகிக்கவும்.",
+ "copyright": "© {year} OmniRoute. அனைத்து உரிமைகளும் பாதுகாக்கப்பட்டவை.",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "ஊடாடும் வரைபடம் டெஸ்க்டாப்பில் தெரியும்",
+ "ctaTitle": "உங்கள் AI உள்கட்டமைப்பை எளிமைப்படுத்தத் தயாரா?",
+ "ctaDescription": "OmniRoute மூலம் தங்கள் AI ஒருங்கிணைப்புகளை நெறிப்படுத்தும் உருவாக்குநர்களுடன் இணையுங்கள். இது திறந்த மூலமானது, மேலும் இலவசமாகத் தொடங்கலாம்.",
+ "startFree": "இலவசமாகத் தொடங்குங்கள்",
+ "readDocumentation": "ஆவணங்களைப் படிக்கவும்",
"company": "நிறுவனம்",
"pricing": "விலை நிர்ணயம்",
"apiReference": "API குறிப்பு",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "சமூக விவாதங்கள்"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "ஆவணங்கள்",
+ "quickStart": "விரைவுத் தொடக்கம்",
"deploymentGuides": "வரிசைப்படுத்தல் வழிகாட்டிகள்",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "அம்சங்கள்",
+ "supportedProviders": "ஆதரிக்கப்படும் வழங்குநர்கள்",
+ "supportedProvidersToc": "வழங்குநர்கள்",
+ "commonUseCases": "பொதுவான பயன்பாட்டு நிகழ்வுகள்",
+ "clientCompatibility": "கிளையண்ட் இணக்கத்தன்மை",
+ "protocolsToc": "நெறிமுறைகள்",
+ "apiReference": "API குறிப்பு",
+ "managementApiReference": "மேலாண்மை API குறிப்பு",
+ "managementApiDescription": "பதிலி பதிவேடு, வரம்பு ஒதுக்கீடுகள் மற்றும் பழைய பதிலி இடமாற்றத்திற்கான தானியக்க முனைப்புள்ளிகள்.",
+ "method": "முறை",
+ "path": "பாதை",
+ "notes": "குறிப்புகள்",
+ "modelPrefixes": "மாதிரி முன்னொட்டுகள்",
+ "prefix": "முன்னொட்டு",
+ "troubleshooting": "சிக்கல் தீர்வு",
+ "supportsChat": "அரட்டை மற்றும் responses endpoint-கள் இரண்டையும் ஆதரிக்கிறது.",
+ "oauthAutoRefresh": "தானியங்கி token புதுப்பிப்புடன் OAuth இணைப்பு.",
+ "fullStreaming": "அனைத்து model-களுக்கும் முழுமையான streaming ஆதரவு.",
+ "docsLabel": "ஆவணங்கள்",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "Dashboard-ஐத் திற",
+ "endpointPage": "Endpoint பக்கம்",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "சிக்கலைப் புகாரளி",
+ "onThisPage": "இந்தப் பக்கத்தில்",
+ "documentationVersion": "ஆவணங்கள் - v{version}",
+ "quickStartStep1Title": "1. நிறுவி இயக்கவும்",
+ "quickStartStep1Prefix": "இயக்கு",
+ "quickStartStep1Middle": "அல்லது GitHub-இலிருந்து clone செய்து இயக்கவும்",
+ "quickStartStep2Title": "2. API key-ஐ உருவாக்கவும்",
+ "quickStartStep2Text": "Endpoint -> Registered Keys என்பதற்குச் செல்லவும். ஒவ்வொரு சூழலுக்கும் ஒரு key-ஐ உருவாக்கவும்.",
+ "quickStartStep3Title": "3. Provider-களை இணைக்கவும்",
+ "quickStartStep3Text": "OAuth உள்நுழைவு, API key அல்லது இலவச அடுக்கு தானியங்கி இணைப்பு மூலம் provider கணக்குகளைச் சேர்க்கவும்.",
+ "quickStartStep4Title": "4. Client base URL-ஐ அமைக்கவும்",
+ "quickStartStep4Prefix": "உங்கள் IDE அல்லது API client-ஐ இதற்குச் சுட்டவும்",
+ "quickStartStep4Suffix": "Provider முன்னொட்டைப் பயன்படுத்தவும், எடுத்துக்காட்டாக",
"deploySetupTitle": "அமைவு வழிகாட்டி",
"deploySetupText": "OmniRoute க்கான படிப்படியான நிறுவல், சுற்றுச்சூழல் உள்ளமைவு மற்றும் முதல்-ஓட நடைப்பயிற்சி.",
"deployElectronTitle": "எலக்ட்ரான் டெஸ்க்டாப்",
@@ -10071,161 +10082,161 @@
"deployPwaTitle": "PWA",
"deployPwaText": "ஆண்ட்ராய்டு, iOS மற்றும் டெஸ்க்டாப் உலாவிகளில் OmniRoute ஐ ஒரு முற்போக்கான வலை பயன்பாடாக நிறுவவும்.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "Termux மூலம் Android-இல் OmniRoute-ஐ headless முறையில் இயக்கவும். உங்கள் மொபைல் உலாவியிலிருந்து dashboard-ஐ அணுகவும்.",
+ "featureRoutingTitle": "பல-Provider வழிப்படுத்தல்",
+ "featureRoutingText": "ஒரே OpenAI-compatible endpoint மூலம் 30+ AI provider-களுக்கு கோரிக்கைகளை வழிப்படுத்துங்கள். அரட்டை, responses, audio மற்றும் image API-களை ஆதரிக்கிறது.",
+ "featureCombosTitle": "Combo-கள் மற்றும் சமநிலைப்படுத்தல்",
+ "featureCombosText": "மாற்று fallback சங்கிலிகள் மற்றும் சமநிலைப்படுத்தும் உத்திகளுடன் model combo-களை உருவாக்கவும்: round-robin, முன்னுரிமை, சீரற்ற தேர்வு, குறைவாகப் பயன்படுத்தப்பட்டது மற்றும் செலவு-உகப்பாக்கப்பட்டது.",
+ "featureUsageTitle": "பயன்பாடு மற்றும் செலவுக் கண்காணிப்பு",
+ "featureUsageText": "நிகழ்நேர token எண்ணிக்கை, ஒவ்வொரு provider/model-க்குமான செலவுக் கணக்கீடு மற்றும் API key மற்றும் கணக்கின் அடிப்படையில் விரிவான பயன்பாட்டுப் பகுப்பாய்வு.",
+ "featureAnalyticsTitle": "பகுப்பாய்வு Dashboard",
+ "featureAnalyticsText": "கோரிக்கைகள், token-கள், பிழைகள், தாமதம், செலவுகள் மற்றும் காலப்போக்கிலான model பிரபலத்திற்கான விளக்கப்படங்களுடன் கூடிய காட்சிப் பகுப்பாய்வு.",
+ "featureHealthTitle": "நிலை கண்காணிப்பு",
+ "featureHealthText": "நேரடி நிலைச் சோதனைகள், provider நிலை, circuit breaker நிலைகள் மற்றும் exponential backoff உடன் தானியங்கி rate limit கண்டறிதல்.",
+ "featureCliTitle": "CLI கருவிகள்",
+ "featureCliText": "IDE உள்ளமைவுகளை நிர்வகிக்கவும், காப்புப்பிரதிகளை export/import செய்யவும், codex profile-களைக் கண்டறியவும் மற்றும் dashboard-இலிருந்து அமைப்புகளை உள்ளமைக்கவும்.",
+ "featureSecurityTitle": "பாதுகாப்பு மற்றும் கொள்கைகள்",
+ "featureSecurityText": "API key அங்கீகாரம், IP வடிகட்டல், prompt injection பாதுகாப்பு, domain கொள்கைகள், session மேலாண்மை மற்றும் audit பதிவு.",
+ "featureCloudSyncTitle": "Cloud ஒத்திசைவு",
+ "featureCloudSyncText": "மறையாக்கப்பட்ட சான்றுகளுடனும் தானியங்கி மாற்றுவழி செயல்பாட்டுடனும் தொலைநிலை அணுகலுக்காக உங்கள் உள்ளமைவை Cloudflare Workers உடன் ஒத்திசைக்கவும்.",
+ "providersAcrossConnectionTypes": "மூன்று இணைப்பு வகைகளில் {count} வழங்குநர்கள்.",
+ "manageProviders": "வழங்குநர்களை நிர்வகிக்கவும்",
+ "providersCount": "{count} வழங்குநர்கள்",
+ "providerTypeFree": "இலவச அடுக்கு",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "API விசை",
+ "useCaseSingleEndpointTitle": "பல வழங்குநர்களுக்கான ஒரே முனைப்புள்ளி",
+ "useCaseSingleEndpointText": "கிளையன்டுகளை ஒரே அடிப்படை URL-க்குச் சுட்டி, மாதிரி முன்னொட்டின்படி வழிமாற்றவும் (எடுத்துக்காட்டாக: gh/, cc/, kr/, openai/).",
+ "useCaseFallbackTitle": "சேர்க்கைகளுடன் மாற்றுவழி மற்றும் மாதிரி மாறுதல்",
+ "useCaseFallbackText": "Dashboard-இல் சேர்க்கை மாதிரிகளை உருவாக்கி, வழங்குநர்கள் அகத்தில் சுழற்சி முறையில் மாறும்போதும் கிளையன்ட் உள்ளமைவை நிலையாக வைத்திருக்கவும்.",
+ "useCaseUsageVisibilityTitle": "பயன்பாடு, செலவு மற்றும் பிழைத்திருத்தத் தெளிவுநிலை",
+ "useCaseUsageVisibilityText": "Usage மற்றும் Analytics தாவல்களில் வழங்குநர், கணக்கு மற்றும் API விசை வாரியாக டோக்கன்களையும் செலவையும் கண்காணிக்கவும்.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "அடிப்படை URL",
+ "chatEndpointLabel": "அரட்டை முனைப்புள்ளி",
+ "modelRecommendationLabel": "மாதிரிப் பரிந்துரை: வெளிப்படையான முன்னொட்டு",
+ "clientCodexTitle": "Codex / GitHub Copilot மாதிரிகள்",
+ "clientCodexBullet1": "இதனுடன் மாதிரி ID-களைப் பயன்படுத்தவும்:",
+ "clientCodexBullet2": "Codex-குடும்ப மாதிரிகள் தானாகவே இதற்கு வழிமாற்றப்படும்:",
+ "clientCodexBullet3": "Codex அல்லாத மாதிரிகள் இதில் தொடரும்:",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "இதைக் பயன்படுத்தவும்:",
+ "clientCursorBullet1Suffix": "Cursor மாதிரிகளுக்கான முன்னொட்டு.",
+ "clientCursorBullet2": "OAuth இணைப்பு - Providers பக்கத்திலிருந்து உள்நுழையவும்.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "இதைக் பயன்படுத்தவும்:",
+ "clientClaudeBullet1Middle": "(Claude) அல்லது",
+ "clientClaudeBullet1Suffix": "(Antigravity) முன்னொட்டு.",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "OmniRoute-ஐ OpenAI-இணக்கமான அடிப்படை URL ஆகப் பயன்படுத்தி, உறுதியான வழிமாற்றத்திற்காக வெளிப்படையான வழங்குநர் முன்னொட்டுகளை வைத்திருக்கவும்.",
+ "clientWindsurfBullet2": "பொதுவான போக்குவரத்துக்கு மாதிரிகளை `/v1/chat/completions`-க்குச் சுட்டி, Codex-பாணி செயலோட்டங்களுக்காக `/v1/responses`-ஐத் தக்கவைக்கவும்.",
+ "clientWindsurfBullet3": "தயாராக உள்ள Windsurf உள்ளமைவு வழிகாட்டிக்கு Dashboard -> CLI Tools-ஐப் பயன்படுத்தவும்.",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "வெளிப்படையான வழங்குநர்/மாதிரி முன்னொட்டுகளுடன் Cline சிறப்பாகச் செயல்படும்; இதனால் திசைவி எந்தப் பின்தளத்தைப் பயன்படுத்த வேண்டும் என்று ஒருபோதும் ஊகிக்க வேண்டியதில்லை.",
+ "clientClineBullet2": "பொதுவான மாதிரிகளுக்கு `/v1/chat/completions`-ஐப் பயன்படுத்தி, வெவ்வேறு கணக்குகளிலும் அதே OmniRoute அடிப்படை URL-ஐ மீண்டும் பயன்படுத்தவும்.",
+ "clientClineBullet3": "Cline இயக்கநேரச் சிக்கல்களைப் பிழைத்திருத்துவதற்கு முன் OAuth/API விசையைச் சரிபார்க்க Providers dashboard-ஐப் பயன்படுத்தவும்.",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "அடியில் உள்ள கணக்குகள் அல்லது வழங்குநர் சேர்க்கைகளைச் சுழற்சி முறையில் மாற்றும்போது, OmniRoute-ஐ நிலையான அடிப்படை URL ஆகப் பயன்படுத்தவும்.",
+ "clientKimiBullet2": "மாற்றுவழியும் தணிக்கைத் தடமும் வெளிப்படையாக இருக்க, குறியீட்டாக்கச் செயலோட்டங்களில் முன்னொட்டுள்ள மாதிரிகளுக்கு முன்னுரிமை அளிக்கவும்.",
+ "clientKimiBullet3": "கருவிகளைப் பயன்படுத்தும் கிளையன்டுகளுக்கு சொந்த Responses-பாணி வழிமாற்றம் தேவைப்படும்போது `/v1/responses`-ஐப் பயன்படுத்தவும்.",
+ "protocolsTitle": "நெறிமுறைகள்: MCP & A2A",
+ "protocolsDescription": "OpenAI-இணக்கமான API-களுடன் கூடுதலாக OmniRoute இரண்டு செயல்பாட்டு நெறிமுறைகளை வழங்குகிறது: கருவிச் செயலாக்கத்திற்கு MCP மற்றும் முகவர்களுக்கு இடையிலான செயலோட்டங்களுக்கு A2A.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "தணிக்கைத் தெளிவுநிலையுடன் OmniRoute கருவிகளைக் கண்டறிந்து அழைக்க கிளையன்டுகளை அனுமதிக்க, stdio வழியாக MCP-ஐப் பயன்படுத்தவும்.",
+ "protocolMcpStep1": "`omniroute --mcp` மூலம் MCP போக்குவரத்தைத் தொடங்கவும்.",
+ "protocolMcpStep2": "உங்கள் MCP கிளையண்டை stdio போக்குவரத்திற்குச் சுட்டிக்காட்டவும்.",
+ "protocolMcpStep3": "இணைப்பைச் சரிபார்க்க `omniroute_get_health` மற்றும் `omniroute_list_combos` ஆகியவற்றை அழைக்கவும்.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "பணிகளை ஒத்திசைவாக அல்லது SSE ஸ்ட்ரீமிங் வழியாகச் சமர்ப்பிக்க A2A JSON-RPC-ஐப் பயன்படுத்தவும்.",
+ "protocolA2aStep1": "முகவர் கண்டறிதலுக்கு `/.well-known/agent.json`-ஐப் படிக்கவும்.",
+ "protocolA2aStep2": "`POST /a2a`-க்கு `message/send` அல்லது `message/stream` கோரிக்கைகளை அனுப்பவும்.",
+ "protocolA2aStep3": "`tasks/get` மற்றும் `tasks/cancel` மூலம் பணியின் வாழ்க்கைச் சுழற்சியை நிர்வகிக்கவும்.",
+ "protocolTroubleshootingTitle": "நெறிமுறைச் சிக்கல் தீர்வு",
+ "protocolTroubleshooting1": "MCP நிலை ஆஃப்லைனில் இருந்தால், stdio செயல்முறை இயங்குவதையும் heartbeat கோப்பு புதுப்பிக்கப்படுவதையும் சரிபார்க்கவும்.",
+ "protocolTroubleshooting2": "A2A பணிகள் `working` நிலையிலேயே இருந்தால், முடிவு நிலையை அறிய `/api/a2a/tasks/:id` மற்றும் ஸ்ட்ரீம் நிகழ்வுகளை ஆய்வு செய்யவும்.",
+ "protocolTroubleshooting3": "செயல்பாட்டுக் கட்டுப்பாடுகள் மற்றும் தணிக்கைத் தெரிவுநிலைக்கு `/dashboard/mcp` மற்றும் `/dashboard/a2a` ஆகியவற்றைப் பயன்படுத்தவும்.",
+ "endpointChatNote": "OpenAI-இணக்கமான அரட்டை முனைப்புள்ளி (இயல்புநிலை).",
+ "endpointResponsesNote": "Responses API முனைப்புள்ளி (Codex, o-series).",
+ "endpointModelsNote": "இணைக்கப்பட்ட அனைத்து வழங்குநர்களுக்குமான மாதிரிப் பட்டியல்.",
+ "endpointAudioNote": "ஒலி உரைமாற்றம் (Deepgram, AssemblyAI).",
+ "endpointSpeechNote": "உரையிலிருந்து பேச்சு உருவாக்கம் (ElevenLabs, OpenAI TTS).",
+ "endpointEmbeddingsNote": "உரை உட்பொதிவு உருவாக்கம் (OpenAI, Cohere, Voyage).",
+ "endpointImagesNote": "பட உருவாக்கம் (NanoBanana).",
+ "endpointRewriteChatNote": "/v1 இல்லாத கிளையண்டுகளுக்கான மீளெழுதும் உதவி.",
+ "endpointRewriteResponsesNote": "/v1 இல்லாத Responses-க்கான மீளெழுதும் உதவி.",
+ "endpointRewriteModelsNote": "/v1 இல்லாத மாதிரி கண்டறிதலுக்கான மீளெழுதும் உதவி.",
+ "mgmtProxiesListNote": "சேமிக்கப்பட்ட ப்ராக்ஸி பதிவேட்டு உருப்படிகளைப் பட்டியலிடவும் (பக்கமிடலை ஆதரிக்கிறது).",
+ "mgmtProxiesCreateNote": "பதிவேட்டில் மீண்டும் பயன்படுத்தக்கூடிய ப்ராக்ஸி உருப்படியை உருவாக்கவும்.",
+ "mgmtProxiesHealthNote": "ப்ராக்ஸி பதிவுகளிலிருந்து சேமிக்கப்பட்ட ஒவ்வொரு ப்ராக்ஸிக்கும் 24 மணிநேர/சுழலும் ஆரோக்கிய அளவீடுகளைப் பெறவும்.",
+ "mgmtProxiesBulkAssignNote": "ஒரே கோரிக்கையில் பல வரம்பு ID-களுக்கு ஒரு ப்ராக்ஸியை ஒதுக்கவும் அல்லது நீக்கவும்.",
+ "mgmtAssignmentsListNote": "வரம்பு, scope_id அல்லது proxy_id அடிப்படையில் ப்ராக்ஸி ஒதுக்கீடுகளைப் பட்டியலிடவும்.",
+ "mgmtAssignmentsUpdateNote": "உலகளாவிய/வழங்குநர்/கணக்கு/காம்போ வரம்புக்குப் ப்ராக்ஸியை ஒதுக்கவும் அல்லது நீக்கவும்.",
+ "mgmtLegacyMigrationNote": "பழைய proxyConfig வரைபடங்களைப் பதிவேட்டு ஒதுக்கீடுகளுக்கு இறக்குமதி செய்யவும்.",
+ "modelPrefixesDescriptionStart": "ஒரு குறிப்பிட்ட வழங்குநருக்கு வழிமாற்ற, மாதிரிப் பெயருக்கு முன் வழங்குநர் முன்னொட்டைப் பயன்படுத்தவும். எடுத்துக்காட்டு:",
+ "modelPrefixesDescriptionEnd": "GitHub Copilot-க்கு வழிமாற்றுகிறது.",
+ "provider": "வழங்குநர்",
+ "type": "வகை",
+ "troubleshootingModelRouting": "மாதிரி வழிமாற்றத்தில் கிளையண்ட் தோல்வியடைந்தால், வெளிப்படையான வழங்குநர்/மாதிரியைக் குறிப்பிடவும் (எடுத்துக்காட்டு: gh/gpt-5.1-codex).",
+ "troubleshootingAmbiguousModels": "தெளிவற்ற மாதிரிப் பிழைகள் ஏற்பட்டால், தனித்த மாதிரி ID-க்குப் பதிலாக வழங்குநர் முன்னொட்டைத் தேர்ந்தெடுக்கவும்.",
+ "troubleshootingCodexFamily": "GitHub Codex-குடும்ப மாதிரிகளுக்கு, மாதிரியை gh/codex-model ஆகவே வைத்திருக்கவும்; வழிமாற்றி தானாகவே /responses-ஐத் தேர்ந்தெடுக்கும்.",
+ "troubleshootingTestConnection": "IDE-கள் அல்லது வெளிப்புற கிளையண்டுகளிலிருந்து சோதிப்பதற்கு முன் Dashboard > Providers > Test Connection என்பதைப் பயன்படுத்தவும்.",
+ "troubleshootingCircuitBreaker": "ஒரு வழங்குநரில் circuit breaker திறந்திருப்பதாகக் காட்டப்பட்டால், cooldown முடியும் வரை காத்திருக்கவும் அல்லது விவரங்களுக்கு Health பக்கத்தைப் பார்க்கவும்.",
+ "troubleshootingOAuth": "OAuth வழங்குநர்களுக்கு, டோக்கன்கள் காலாவதியானால் மீண்டும் அங்கீகரிக்கவும். வழங்குநர் அட்டையின் நிலைக் குறிகாட்டியைச் சரிபார்க்கவும்.",
+ "endpointCompletionsNote": "உரை உருவாக்கத்திற்கான பழைய completions முனைப்புள்ளி.",
+ "endpointModerationsNote": "உள்ளடக்க மதிப்பாய்வு மற்றும் பாதுகாப்பு வகைப்பாடு.",
+ "endpointRerankNote": "மீட்டெடுப்பு-மேம்படுத்தப்பட்ட உருவாக்கத்திற்கான ஆவண மறுதரவரிசைப்படுத்தல் (Cohere, Jina).",
+ "endpointSearchNote": "5 வழங்குநர்களுடன் இணையத் தேடல் (Serper, Brave, Exa, Tavily, Perplexity).",
+ "endpointSearchAnalyticsNote": "தேடல் கோரிக்கைகளுக்கான பகுப்பாய்வுகளும் அளவீடுகளும்.",
+ "endpointVideoNote": "காணொளி உருவாக்கம் (ComfyUI, SD WebUI பணிப்பாய்வுகள்).",
+ "endpointMusicNote": "ComfyUI பணிப்பாய்வுகள் மூலம் இசை உருவாக்கம்.",
+ "endpointMessagesNote": "Anthropic-சார்ந்த இயல்நிலைச் செய்திகள் முனைப்புள்ளி.",
+ "endpointCountTokensNote": "கொடுக்கப்பட்ட செய்திப் பயன்சுமைக்கான டோக்கன்களை எண்ணுக.",
+ "endpointFilesNote": "பல்மாதிரி உள்ளீடுகளுக்கான கோப்புப் பதிவேற்றம்.",
+ "endpointBatchesNote": "மொத்த API கோரிக்கைகளுக்கான தொகுதி செயலாக்கம்.",
+ "endpointWsNote": "நிகழ்நேர ஸ்ட்ரீமிங்கிற்கான WebSocket முனைப்புள்ளி.",
+ "mgmtProvidersListNote": "பதிவுசெய்யப்பட்ட அனைத்து வழங்குநர் இணைப்புகளையும் பட்டியலிடுக.",
+ "mgmtProvidersCreateNote": "புதிய வழங்குநர் இணைப்பை உருவாக்குக.",
+ "mgmtProvidersUpdateNote": "ஏற்கனவே உள்ள வழங்குநர் இணைப்பைப் புதுப்பிக்கவும்.",
+ "mgmtProvidersDeleteNote": "வழங்குநர் இணைப்பை நீக்குக.",
+ "mgmtProvidersTestNote": "வழங்குநருக்கான இணைப்புத்தன்மையையும் அங்கீகாரத்தையும் சோதிக்கவும்.",
+ "mgmtProvidersModelsNote": "குறிப்பிட்ட வழங்குநருக்குக் கிடைக்கும் மாதிரிகளைப் பட்டியலிடுக.",
+ "mgmtSettingsGetNote": "தற்போதைய பயன்பாட்டு அமைப்புகளைப் பெறுக.",
+ "mgmtSettingsUpdateNote": "பயன்பாட்டு அமைப்புகளைப் புதுப்பிக்கவும்.",
+ "mgmtPayloadRulesGetNote": "பயன்சுமை மாற்ற விதிகளைப் பெறுக.",
+ "mgmtPayloadRulesUpdateNote": "பயன்சுமை மாற்ற விதிகளைப் புதுப்பிக்கவும்.",
+ "mcpToolsTitle": "MCP கருவிகள்",
+ "mcpToolsDescription": "முகவர் ஒருங்கிணைப்பிற்காக Model Context Protocol மூலம் OmniRoute {count} கருவிகளை வழங்குகிறது.",
+ "mcpToolsCount": "{count} கருவிகள்",
+ "mcpToolsToc": "MCP கருவிகள்",
+ "mcpToolsRoutingTitle": "வழித்தட அமைப்பும் கண்டறிதலும்",
+ "mcpToolsRoutingDesc": "நிலைச் சோதனைகள், கூட்டமைப்பு மேலாண்மை, ஒதுக்கீடு கண்காணிப்பு, செலவு அறிக்கையிடல் மற்றும் மாதிரிப் பட்டியல் அணுகல்.",
+ "mcpToolsOperationsTitle": "செயல்பாடுகளும் உத்தியும்",
+ "mcpToolsOperationsDesc": "வழித்தட உருவகப்படுத்தல், வரவுசெலவுக் கட்டுப்பாடுகள், உத்தி மாற்றம், மீள்திறன் சுயவிவரங்கள் மற்றும் வழங்குநர் அளவீடுகள்.",
+ "mcpToolsCacheTitle": "தற்காலிகச் சேமிப்பக மேலாண்மை",
+ "mcpToolsCacheDesc": "தற்காலிகச் சேமிப்பகப் புள்ளிவிவரங்களைக் காணவும், பொருள்சார் அல்லது கையொப்பத் தற்காலிகச் சேமிப்பகங்களை அழிக்கவும்.",
"mcpToolsCompressionTitle": "சுருக்க இயந்திரங்கள்",
"mcpToolsCompressionDesc": "RTK/Brotli கம்ப்ரஷன், ஸ்வாப் என்ஜின்களை உள்ளமைக்கவும் மற்றும் காம்போ மூலம் சுருக்க பகுப்பாய்வுகளை ஆய்வு செய்யவும்.",
"mcpToolsOneProxyTitle": "1 ப்ராக்ஸி / சுரங்கங்கள்",
"mcpToolsOneProxyDesc": "வெளிச்செல்லும் ப்ராக்ஸிகளை நிர்வகிக்கவும், குடியிருப்பு ஐபிகளை சுழற்றவும் மற்றும் ப்ராக்ஸி ஆரோக்கியத்தை ஆய்வு செய்யவும்.",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "நினைவகம்",
+ "mcpToolsMemoryDesc": "நிலையான உரையாடல் நினைவகப் பதிவுகளைத் தேடவும், சேர்க்கவும் மற்றும் அழிக்கவும்.",
+ "mcpToolsSkillsTitle": "திறன்கள்",
+ "mcpToolsSkillsDesc": "தனிப்பயன் திறன் செயல்பாடுகளைப் பட்டியலிடவும், இயக்கவும், செயல்படுத்தவும் மற்றும் கண்காணிக்கவும்.",
+ "featureAutoComboTitle": "தானியங்குக் கூட்டமைப்பு",
+ "featureAutoComboText": "இணைக்கப்பட்ட உங்கள் வழங்குநர்கள், பயன்பாட்டு முறைகள் மற்றும் மாதிரித் திறன்களின் அடிப்படையில் உகந்த கூட்டமைப்புகளைத் தானாக உருவாக்கவும்.",
+ "featureSearchTitle": "இணையத் தேடல்",
+ "featureSearchText": "பகுப்பாய்வு மற்றும் செலவுக் கண்காணிப்பு உட்பட 5 வழங்குநர்களுடன் (Serper, Brave, Exa, Tavily, Perplexity) ஒருங்கிணைந்த இணையத் தேடல்.",
+ "featureMemoryTitle": "நினைவக அமைப்பு",
+ "featureMemoryText": "அமர்வுகளுக்கு இடையே பிரித்தெடுத்தல், உட்செலுத்தல், மீட்டெடுத்தல் மற்றும் சுருக்கமாக்கலுடன் கூடிய நிலையான உரையாடல் நினைவகம்.",
+ "featureSkillsTitle": "திறன்கள் கட்டமைப்பு",
+ "featureSkillsText": "உள்ளமைக்கப்பட்ட மற்றும் தனிப்பயன் திறன்கள், சாண்ட்பாக்ஸ் இயக்கம், கோரிக்கை இடைமறிப்பு மற்றும் சூழல் உட்செலுத்தல் ஆகியவற்றைக் கொண்ட விரிவாக்கக்கூடிய திறன் அமைப்பு.",
+ "featureAcpTitle": "முகவர் தொடர்பு",
+ "featureAcpText": "முகவர்களுக்கு இடையேயான பணிப்பாய்வுகளையும் கருவி ஒருங்கிணைப்பையும் நிர்வகிப்பதற்கான முகவர் தொடர்பு நெறிமுறை (ACP) பதிவகம்.",
+ "protocolAcpTitle": "ACP (முகவர் தொடர்பு)",
+ "protocolAcpDesc": "முகவர்களுக்கு இடையேயான தொடர்பு மற்றும் கருவிப் பகிர்வுக்காக ACP பதிவகம் வழியாக முகவர்களைப் பதிவுசெய்து நிர்வகிக்கவும்.",
+ "protocolAcpStep1": "பதிவுசெய்யப்பட்ட ACP முகவர்களைக் காண டாஷ்போர்டு → முகவர்கள் என்பதற்குச் செல்லவும்.",
+ "protocolAcpStep2": "திறன்கள் மற்றும் முனைப்புள்ளி உள்ளமைவுடன் புதிய முகவர்களைப் பதிவுசெய்யவும்.",
+ "protocolAcpStep3": "முகவர் தொடர்புச் சேனல்களை உள்ளமைக்க CLI கருவிகளைப் பயன்படுத்தவும்.",
"metadataTitleTemplate": "%s — OmniRoute ஆவணங்கள்",
"metadataDefaultTitle": "OmniRoute ஆவணம்",
"metadataDescription": "OmniRoute AI கேட்வேவிற்கான விரிவான ஆவணங்கள் — அமைப்பு, API, சுருக்கம், பரப்புரை, மற்றும் மேலும்.",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "தனியுரிமைக் கொள்கை",
+ "termsOfService": "சேவை விதிமுறைகள்",
+ "providerConfigurations": "வழங்குநர் உள்ளமைவுகள்",
+ "apiKeys": "API விசைகள்",
+ "usageLogs": "பயன்பாட்டுப் பதிவுகள்",
+ "applicationSettings": "செயலி அமைப்புகள்",
+ "viewExportAnalytics": "பயன்பாட்டுப் பகுப்பாய்வைக் கண்டு ஏற்றுமதி செய்யவும்",
+ "clearHistory": "எப்போது வேண்டுமானாலும் பயன்பாட்டு வரலாற்றை அழிக்கவும்",
+ "configureRetention": "பதிவுத் தக்கவைப்புக் கொள்கைகளை உள்ளமைக்கவும்",
+ "backupRestore": "உங்கள் தரவுத்தளத்தைக் காப்புப் பிரதி எடுத்து மீட்டமைக்கவும்",
+ "privacyMetadataTitle": "தனியுரிமைக் கொள்கை | OmniRoute",
+ "privacyMetadataDescription": "OmniRoute AI API பதிலி திசைவிக்கான தனியுரிமைக் கொள்கை.",
+ "termsMetadataTitle": "சேவை விதிமுறைகள் | OmniRoute",
+ "termsMetadataDescription": "OmniRoute AI API பதிலி திசைவிக்கான சேவை விதிமுறைகள்.",
+ "backToHome": "முகப்புப் பக்கத்திற்குத் திரும்பு",
+ "lastUpdated": "கடைசியாகப் புதுப்பிக்கப்பட்டது: {date}",
+ "policyLastUpdatedDate": "பிப்ரவரி 13, 2026",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "கேள்விகள் உள்ளனவா? எங்களின்",
+ "githubRepository": "GitHub களஞ்சியத்தைப் பார்வையிடவும்",
+ "privacySection1Title": "1. உள்ளூர்-முதன்மை கட்டமைப்பு",
+ "privacySection1Text": "OmniRoute ஓர் உள்ளூர்-முதன்மை செயலியாக வடிவமைக்கப்பட்டுள்ளது. அனைத்து தரவுச் செயலாக்கமும் சேமிப்பகமும் முழுமையாக உங்கள் கணினியிலேயே நடைபெறுகின்றன. உங்கள் தகவல்களைச் சேகரிக்கும் மையப்படுத்தப்பட்ட சேவையகம் எதுவும் இல்லை.",
+ "privacySection2Title": "2. நாங்கள் சேமிக்கும் தரவு",
+ "privacyDataStoredIn": "பின்வரும் தரவு இதில் உள்ளூராகச் சேமிக்கப்படுகிறது",
+ "privacyDataProviderConfigurationsDesc": "இணைப்பு URL-கள், வழங்குநர் வகைகள் மற்றும் முன்னுரிமை அமைப்புகள்",
+ "privacyDataApiKeysDesc": "AI வழங்குநர்களுடன் அங்கீகரிப்பதற்காகக் குறியாக்கம் செய்யப்பட்டு உள்ளூராகச் சேமிக்கப்படுகின்றன",
+ "privacyDataUsageLogsDesc": "கோரிக்கை எண்ணிக்கைகள், டோக்கன் பயன்பாடு, மாதிரிப் பெயர்கள், நேர முத்திரைகள் மற்றும் பதிலளிப்பு நேரங்கள்",
+ "privacyDataApplicationSettingsDesc": "கருப்பொருள் விருப்பத்தேர்வுகள், திசைவிப்பு உத்தி மற்றும் சேர்க்கை உள்ளமைவுகள்",
+ "privacySection3Title": "3. தொலைஅளவீடு இல்லை",
+ "privacySection3Text": "OmniRoute தொலைஅளவீடு, பகுப்பாய்வு அல்லது செயலிழப்பு அறிக்கைகளைச் சேகரிப்பதில்லை. எங்களுக்கோ எந்த மூன்றாம் தரப்பினருக்கோ தரவு எதுவும் அனுப்பப்படுவதில்லை. உங்கள் பயன்பாட்டு முறைகள், API அழைப்புகள் மற்றும் உள்ளமைவுகள் முற்றிலும் தனிப்பட்டவையாகவே இருக்கும்.",
+ "privacySection4Title": "4. மூன்றாம் தரப்பு AI வழங்குநர்கள்",
+ "privacySection4Text": "OmniRoute வழியாக நீங்கள் API அழைப்புகளைச் செய்யும்போது, உங்கள் கோரிக்கைகள் நீங்கள் உள்ளமைத்துள்ள AI வழங்குநர்களுக்கு (எடுத்துக்காட்டாக: OpenAI, Anthropic, Google) அனுப்பப்படுகின்றன. உங்கள் தரவை அவர்கள் எவ்வாறு கையாளுகிறார்கள் என்பதை நிர்வகிக்கும் தனித்தனியான தனியுரிமைக் கொள்கைகள் இந்த வழங்குநர்களுக்கு உள்ளன. தயவுசெய்து இவற்றைப் பரிசீலிக்கவும்:",
+ "privacyOpenAiPolicy": "OpenAI தனியுரிமைக் கொள்கை",
+ "privacyAnthropicPolicy": "Anthropic தனியுரிமைக் கொள்கை",
+ "privacyGooglePolicy": "Google தனியுரிமைக் கொள்கை",
+ "privacySection5Title": "5. கிளவுட் ஒத்திசைவு (விருப்பத்தேர்வு)",
+ "privacySection5Text": "விருப்பத்தேர்வான கிளவுட் ஒத்திசைவு அம்சத்தை நீங்கள் இயக்கினால், வழங்குநர் உள்ளமைவுகளும் API விசைகளும் உள்ளமைக்கப்பட்ட கிளவுட் முனைப்புள்ளிக்கு அனுப்பப்படலாம். இந்த அம்சம் இயல்பாக முடக்கப்பட்டிருக்கும்; இதை இயக்க வெளிப்படையான ஒப்புதல் தேவை.",
+ "privacySection6Title": "6. பதிவுசெய்தல்",
+ "privacyLoggingIntro": "டாஷ்போர்டு அமைப்புகள் மூலம் கோரிக்கைப் பதிவுகளை உள்ளமைக்கலாம். நீங்கள் செய்யக்கூடியவை:",
+ "privacySection7Title": "7. உங்கள் உரிமைகள்",
+ "privacySection7TextStart": "எல்லாத் தரவும் உள்ளூரிலேயே சேமிக்கப்படுவதால், உங்களுக்கு முழுக் கட்டுப்பாடு உள்ளது. எந்த நேரத்திலும் பின்வரும் கோப்பகத்தை அகற்றுவதன் மூலம் உங்கள் தரவை நீக்கலாம்:",
+ "privacySection7TextEnd": "அல்லது டாஷ்போர்டில் உள்ள தரவுத்தளக் காப்புப்பிரதி மற்றும் மீட்டெடுப்பு அம்சங்களைப் பயன்படுத்தலாம்.",
+ "termsSection1Title": "1. கண்ணோட்டம்",
+ "termsSection1Text": "OmniRoute என்பது உங்கள் கணினியிலேயே முழுமையாக இயங்கும், உள்ளூர்-முதன்மை AI API ப்ராக்ஸி ரூட்டர் ஆகும். இது சுமைச் சமநிலைப்படுத்தல், செயலிழப்பு மாற்று மற்றும் பயன்பாட்டுக் கண்காணிப்பு ஆகியவற்றுடன் கோரிக்கைகளைப் பல AI வழங்குநர்களுக்கு வழிமாற்றுகிறது.",
+ "termsSection2Title": "2. பயனர் பொறுப்புகள்",
+ "termsResponsibilityApiKeys": "மூன்றாம் தரப்பு AI வழங்குநர்களுக்கான (OpenAI, Anthropic, Google போன்றவை) உங்கள் சொந்த API விசைகளையும் உள்நுழைவுச் சான்றுகளையும் நிர்வகிப்பதற்கு நீங்கள் மட்டுமே முழுப் பொறுப்பாவீர்கள்.",
+ "termsResponsibilityCompliance": "OmniRoute மூலம் நீங்கள் API-ஐ அணுகும் ஒவ்வொரு AI வழங்குநரின் சேவை விதிமுறைகளையும் நீங்கள் கடைப்பிடிக்க வேண்டும்.",
+ "termsResponsibilitySecurity": "கடவுச்சொல் அமைத்தல் மற்றும் பிணைய அணுகலைக் கட்டுப்படுத்துதல் உள்ளிட்ட உங்கள் உள்ளூர் OmniRoute நிறுவலின் பாதுகாப்பிற்கு நீங்களே பொறுப்பு.",
+ "termsSection3Title": "3. இது எவ்வாறு செயல்படுகிறது",
+ "termsSection3Text": "OmniRoute ஓர் இடைநிலை ப்ராக்ஸியாகச் செயல்படுகிறது. OmniRoute-க்கு அனுப்பப்படும் API அழைப்புகள் மாற்றப்பட்டு, நீங்கள் உள்ளமைத்துள்ள AI வழங்குநர்களுக்கு அனுப்பப்படுகின்றன. தேவையான நெறிமுறை மாற்றத்தைத் தவிர, உங்கள் கோரிக்கைகள் அல்லது பதில்களின் உள்ளடக்கத்தை OmniRoute மாற்றாது.",
+ "termsSection4Title": "4. தரவுக் கையாளுதல்",
+ "termsDataStoredLocally": "எல்லாத் தரவும் உங்கள் கணினியில் உள்ள SQLite தரவுத்தளத்தில் உள்ளூரிலேயே சேமிக்கப்படுகிறது.",
+ "termsNoTransmission": "கிளவுட் ஒத்திசைவு அம்சங்களை நீங்கள் வெளிப்படையாக இயக்காத வரை, OmniRoute எந்தத் தரவையும் வெளிப்புறச் சேவையகங்களுக்கு அனுப்பாது.",
+ "termsDataLocationText": "பயன்பாட்டுப் பதிவுகள், API விசைகள் மற்றும் உள்ளமைவு ஆகியவை இதில் சேமிக்கப்படுகின்றன:",
+ "termsSection5Title": "5. பொறுப்புத்துறப்பு",
+ "termsSection5Text": "OmniRoute எந்தவித உத்தரவாதமும் இன்றி \"உள்ளபடியே\" வழங்கப்படுகிறது. API பயன்பாட்டால் ஏற்படும் செலவுகள், சேவைத் தடங்கல்கள் அல்லது தரவு இழப்பு ஆகியவற்றுக்கு நாங்கள் பொறுப்பல்ல. உங்கள் உள்ளமைவின் காப்புப்பிரதிகளை எப்போதும் பராமரிக்கவும்.",
+ "termsSection6Title": "6. திறந்த மூல மென்பொருள்",
+ "termsSection6Text": "OmniRoute ஒரு திறந்த மூல மென்பொருள். அதன் உரிம விதிமுறைகளின்படி அதை ஆய்வு செய்யவும், மாற்றவும், விநியோகிக்கவும் உங்களுக்கு உரிமை உண்டு."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI முகவர்கள்",
+ "description": "உங்கள் கணினியில் நிறுவப்பட்டுள்ள CLI முகவர்களைக் கண்டறியவும். தானாகக் கண்டறிவதற்குத் தனிப்பயன் முகவர்களைச் சேர்க்கவும்.",
+ "refresh": "புதுப்பிக்கவும்",
+ "installed": "நிறுவப்பட்டது",
+ "notFound": "காணப்படவில்லை",
+ "builtIn": "உள்ளமைந்தது",
+ "custom": "தனிப்பயன்",
+ "remove": "அகற்று",
+ "addCustomAgent": "தனிப்பயன் முகவரைச் சேர்",
+ "addCustomAgentDesc": "கண்டறிதலுக்காக எந்தவொரு CLI கருவியையும் பதிவுசெய்யவும். புதுப்பிக்கும்போது அது தானாகவே ஸ்கேன் செய்யப்படும்.",
+ "agentName": "முகவர் பெயர்",
+ "binaryName": "பைனரி பெயர்",
+ "versionCommand": "பதிப்புக் கட்டளை",
+ "spawnArgs": "தொடக்க அளவுருக்கள்",
+ "addAgent": "முகவரைச் சேர்",
+ "scanning": "CLI முகவர்களுக்காகக் கணினியை வருடுகிறது...",
+ "opencodeIntegration": "OpenCode ஒருங்கிணைப்பு",
+ "opencodeDetected": "opencode {version} கண்டறியப்பட்டது",
+ "opencodeDesc": "உங்கள் OmniRoute அடிப்படை URL மற்றும் கிடைக்கக்கூடிய அனைத்து மாதிரிகளுடனும் பயன்படுத்தத் தயாரான {configFile} கோப்பை உருவாக்குங்கள் — அதை உங்கள் திட்டத்தின் மூலக் கோப்பகத்தில் வைத்து {command} கட்டளையை இயக்குங்கள்.",
+ "downloadConfig": "{file} கோப்பைப் பதிவிறக்கு",
+ "downloaded": "பதிவிறக்கப்பட்டது!",
+ "setupGuideTitle": "அமைவு வழிகாட்டி",
+ "openCliTools": "CLI கருவிகளைத் திற",
+ "setupGuideDetectCliTitle": "நிறுவப்பட்ட CLI-களைக் கண்டறி",
+ "setupGuideDetectCliDesc": "ஒரு CLI-ஐ நிறுவிய அல்லது புதுப்பித்த பிறகு, OmniRoute இருமக் கோப்புகளையும் பதிப்புகளையும் மீண்டும் வருடுவதற்கு புதுப்பி என்பதைக் கிளிக் செய்யவும்.",
+ "setupGuideCustomAgentTitle": "தனிப்பயன் இருமக் கோப்பைப் பதிவுசெய்",
+ "setupGuideCustomAgentDesc": "உங்கள் CLI உள்ளமைக்கப்பட்ட பட்டியலில் இல்லாதபோது தனிப்பயன் முகவரைச் சேர் என்பதைப் பயன்படுத்தவும். இருமக் கோப்பின் பெயரையும் பதிப்புக் கட்டளையையும் வழங்கவும்.",
+ "setupGuideCommandMissingTitle": "'கட்டளை கிடைக்கவில்லை' என்பதைச் சரிசெய்",
+ "setupGuideCommandMissingDesc": "CLI கட்டளை PATH-இல் இருப்பதை உறுதிசெய்து, புதிய முனைய அமர்வைத் திறந்து, புதுப்பி என்பதை மீண்டும் இயக்கவும்.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "எளிய அரட்டை",
+ "streaming": "தொடரோட்டம்",
+ "system-prompt": "கணினித் தூண்டுரை",
+ "thinking": "சிந்தித்தல்",
+ "tool-calling": "கருவி அழைப்பு",
+ "multi-turn": "பல-சுற்று",
"vision": "பார்வை",
"schema-coercion": "திட்ட வற்புறுத்தல்"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "கணினிச் செய்தியுடனான அடிப்படை அரட்டை வார்ப்புரு",
+ "streaming": "தொடரோட்டப் பதில்களுக்கான வார்ப்புரு",
+ "system-prompt": "தனிப்பயன் கணினித் தூண்டுரையுடனான வார்ப்புரு",
+ "thinking": "காரணமறிதல்/சிந்தித்தல் வரம்புடனான வார்ப்புரு",
+ "tool-calling": "கருவி/செயல்பாட்டு அழைப்புக்கான வார்ப்புரு",
+ "multi-turn": "பல-சுற்று உரையாடல்களுக்கான வார்ப்புரு",
"vision": "பட உள்ளீட்டுடன் மல்டிமோடல் டெம்ப்ளேட்",
"schema-coercion": "கட்டமைக்கப்பட்ட வெளியீடு / JSON திட்ட அமலாக்கம்"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "நீங்கள் உதவிகரமான AI உதவியாளர்.",
+ "userGreeting": "வணக்கம்! இன்று நான் உங்களுக்கு எப்படி உதவலாம்?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "இதைப் பற்றி ஒரு கதையை எழுதுங்கள்"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "வாழ்க்கையின் பொருள் என்ன?",
+ "systemInstruction": "சிந்தனைமிக்க, தத்துவார்த்தமான பதிலை வழங்குங்கள்."
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "குவாண்டம் கணிப்பை விளக்குங்கள்"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "வானிலையைப் பெற வேண்டிய நகரத்தின் பெயர்",
+ "toolDescription": "ஓர் இடத்தின் தற்போதைய வானிலையைப் பெறு",
+ "userWeather": "டோக்கியோவில் வானிலை எப்படி இருக்கிறது?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "நீங்கள் உதவிகரமான உதவியாளர்.",
+ "assistantExample": "அதில் உங்களுக்கு உதவுவதில் மகிழ்ச்சி அடைவேன்.",
+ "userInitial": "இதற்கு எனக்கு உதவி தேவை",
+ "userFollowUp": "அதைப் பற்றி விரிவாகக் கூற முடியுமா?"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "கேச் மேலாண்மை",
+ "description": "வழங்குநரின் ப்ராம்ப்ட் கேச் செயல்திறனையும் உள்ளூர் சொற்பொருள் மறுமொழி மறுபயன்பாட்டையும் கண்காணிக்கவும்.",
+ "refresh": "புதுப்பிக்கவும்",
+ "clearAll": "சொற்பொருள் கேச்சை அழிக்கவும்",
+ "memoryEntries": "நினைவகப் பதிவுகள்",
+ "memoryEntriesSub": "நினைவகத்திலுள்ள LRU",
+ "dbEntries": "DB பதிவுகள்",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "கேச் ஹிட்கள்",
+ "cacheHitsSub": "மொத்தம் {total} இல்",
+ "tokensSaved": "சேமிக்கப்பட்ட டோக்கன்கள்",
+ "tokensSavedSub": "ஹிட்களிலிருந்து மதிப்பிடப்பட்டது",
+ "hitRate": "ஹிட் விகிதம்",
+ "performance": "கேச் செயல்திறன்",
+ "autoRefresh": "ஒவ்வொரு {seconds}s-க்கும் தானாகப் புதுப்பிக்கப்படும்",
+ "hits": "ஹிட்கள்",
+ "misses": "மிஸ்கள்",
+ "total": "மொத்தம்",
+ "behavior": "கேச் நடத்தை",
+ "behaviorDeterministic": "temperature=0 கொண்ட ஸ்ட்ரீமிங் அல்லாத கோரிக்கைகள் மட்டுமே கேச் செய்யப்படும்.",
+ "behaviorBypass": "{header} தலைப்புடன் புறக்கணிக்கவும்.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "இயல்புநிலை TTL: 30 நிமிடங்கள். {envVar} வழியாக உள்ளமைக்கவும்.",
+ "idempotency": "ஐடெம்போடென்சி அடுக்கு",
+ "activeDedupKeys": "செயலில் உள்ள நகல்நீக்க விசைகள்",
+ "dedupWindow": "நகல்நீக்க நேரச்சாளரம்",
+ "clearSuccess": "சொற்பொருள் கேச் அழிக்கப்பட்டது. {count} பதிவுகள் அகற்றப்பட்டன.",
+ "clearError": "கேச்சை அழிக்க முடியவில்லை.",
+ "unavailable": "கேச் கிடைக்கவில்லை",
+ "unavailableDesc": "கேச் புள்ளிவிவரங்களைப் பெற முடியவில்லை. சேவையகம் இயங்குவதை உறுதிசெய்யவும்.",
"loadingCacheAria": "தற்காலிக சேமிப்பு ஏற்றப்படுகிறது",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "ப்ராம்ப்ட் கேச் (வழங்குநர் தரப்பில்)",
+ "semanticCache": "சொற்பொருள் கேச்",
+ "promptCacheSectionDesc": "பயன்பாட்டு வரலாற்றிலிருந்து வழங்குநர் தரப்பிலான ப்ராம்ப்ட் கேச்சிங் செயல்பாட்டைக் காட்டுகிறது; இதன் மூலம் கேச் கட்டுப்பாடு எங்கு செயல்பாட்டில் உள்ளது என்பதையும், எவ்வளவு உள்ளீட்டு மறுபயன்பாடு கிடைக்கிறது என்பதையும் காணலாம்.",
+ "promptTrendDesc": "கடந்த 24 மணிநேரத்தின் மணிநேரக் கோரிக்கை அளவு, கேச் கவரேஜ் மற்றும் கேச் வாசிப்பு அளவு.",
+ "cachedRequests": "கேச் செய்யப்பட்ட கோரிக்கைகள்",
+ "cachedRequests24h": "கேச் செய்யப்பட்ட கோரிக்கைகள் (24மணி)",
+ "cacheHitRate": "கேச் ஹிட் விகிதம்",
+ "cacheRate": "கேச் விகிதம்",
+ "cacheRateDesc": "மொத்தக் கோரிக்கைகளில்",
+ "cachedTokens": "கேச் வாசிப்பு டோக்கன்கள்",
+ "cacheCreationTokens": "கேச் எழுதுதல் டோக்கன்கள்",
+ "cacheMetrics": "ப்ராம்ப்ட் கேச் அளவீடுகள்",
+ "withCacheControl": "கேச் கட்டுப்பாட்டுடன்",
+ "cachedTokensRead": "கேச்சிலிருந்து படிக்கப்பட்டவை",
+ "cacheCreationWrite": "கேச்சில் எழுதப்பட்டவை",
+ "cacheReuseRatio": "கேச் மறுபயன்பாட்டு விகிதம்",
+ "cacheReuseRatioDesc": "கேச் வாசிப்பு டோக்கன்கள் / மொத்த உள்ளீட்டு டோக்கன்கள்",
+ "estCostSaved": "மதிப்பிடப்பட்ட செலவுச் சேமிப்பு",
+ "lastUpdated": "கடைசியாகப் புதுப்பிக்கப்பட்டது",
+ "hoursTracked": "கண்காணிக்கப்பட்ட மணிநேரங்கள்",
+ "busiestHour": "மிகவும் பரபரப்பான மணிநேரம்",
+ "peakCacheRate": "உச்ச கேச் விகிதம்",
+ "trendHour": "மணிநேரம்",
+ "activityVolume": "செயல்பாடு",
+ "requestsShort": "கோரிக்கைகள்",
+ "inputShort": "உள்ளீடு",
+ "cachedShort": "கேச் செய்யப்பட்டவை",
+ "writeShort": "எழுதப்பட்டவை",
+ "resetting": "மீட்டமைக்கப்படுகிறது...",
+ "resetMetrics": "அளவீடுகளை மீட்டமை",
+ "byProvider": "வழங்குநர் வாரியான விவரம்",
+ "providerCacheRateDesc": "ஒவ்வொரு வழங்குநரும் மொத்த உள்ளீட்டு டோக்கன்கள், கேச் வாசிப்பு டோக்கன்கள் மற்றும் கேச் எழுதுதல் டோக்கன்களைக் காட்டுவதால், மூல மொத்தங்களுடன் மறுபயன்பாட்டு விகிதத்தை நீங்கள் சரிபார்க்கலாம்.",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "கோரிக்கைகள்",
+ "inputTokens": "மொத்த உள்ளீட்டு டோக்கன்கள்",
+ "cachedTokensCol": "கேச் வாசிப்பு",
+ "cacheCreation": "கேச் எழுதுதல்",
+ "trend24h": "கேச் போக்கு (24மணி)",
+ "peakCached": "உச்சமாக கேச் செய்யப்பட்டவை",
+ "cached": "கேச் செய்யப்பட்டவை",
+ "overview": "கண்ணோட்டம்",
"tableProvider": "வழங்குநர்",
"tableModel": "மாடல்",
"performanceTitle": "செயல்திறன்",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute-இன் சொந்த தீர்மானிக்கக்கூடிய பதில் கேச். இது இயக்கப்பட்டிருக்கும்போது, மீண்டும் மீண்டும் வரும் ஸ்ட்ரீமிங் அல்லாத temperature=0 கோரிக்கைகளை அப்ஸ்ட்ரீம் வழங்குநரை அணுகாமல் உள்ளூரிலேயே வழங்க முடியும்.",
+ "semanticCacheDisabledDesc": "சொற்பொருள் கேச் முடக்கப்பட்டுள்ளது. Settings-இல் அதை மீண்டும் இயக்கும் வரை OmniRoute உள்ளூர் பதில் மறுபயன்பாட்டைத் தவிர்க்கும்.",
+ "semanticEntriesDesc": "தற்போது SQLite-இல் சேமிக்கப்பட்டுள்ள நிலையான சொற்பொருள் கேச் பதிவுகள். வழங்குநர் தரப்பு ப்ராம்ப்ட் கேச் செயல்பாடு இங்கே பட்டியலிடப்படவில்லை.",
+ "searchEntries": "பதிவுகளைத் தேடுக...",
+ "search": "தேடுக",
+ "loading": "ஏற்றப்படுகிறது...",
+ "entriesLoadError": "சொற்பொருள் கேச் பதிவுகளை ஏற்ற முடியவில்லை.",
+ "noEntries": "கேச் பதிவுகள் எதுவும் கிடைக்கவில்லை",
+ "noPromptCacheData": "வழங்குநர் தரப்பு ப்ராம்ப்ட் கேச் செயல்பாடு இதுவரை பதிவுசெய்யப்படவில்லை.",
+ "noTrendData": "கடந்த 24 மணிநேரத்தில் எந்த ப்ராம்ப்ட் கேச் செயல்பாடும் பதிவுசெய்யப்படவில்லை.",
+ "signature": "கையொப்பம்",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "உருவாக்கப்பட்டது",
+ "expires": "காலாவதியாகும் நேரம்",
+ "actions": "செயல்கள்",
+ "deduplicatedRequests": "நகல் நீக்கப்பட்ட கோரிக்கைகள்",
+ "savedCalls": "சேமிக்கப்பட்ட API அழைப்புகள்",
+ "totalProcessed": "செயலாக்கப்பட்ட மொத்த கோரிக்கைகள்",
+ "disabled": "முடக்கப்பட்டது",
+ "totalRequests": "மொத்த கோரிக்கைகள்",
"reasoningCache": "ரீசனிங் ரீப்ளே",
"reasoningCacheDesc": "மல்டி-டர்ன் டூல் அழைப்பு ஓட்டங்களுக்கான மாதிரி சிந்தனையைப் பாதுகாக்கிறது",
"reasoningEntries": "செயலில் உள்ளீடுகள்",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}m முன்",
"hoursAgo": "{hours}h முன்",
"daysAgo": "{days}d முன்",
- "entries": "Entries"
+ "entries": "பதிவுகள்"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
+ "levelGlobal": "உலகளாவிய",
+ "levelProvider": "வழங்குநர்",
+ "levelCombo": "கூட்டு",
+ "levelKey": "விசை",
+ "levelDirect": "நேரடி (பதிலி இல்லை)",
+ "titleGlobal": "உலகளாவிய பதிலி உள்ளமைவு",
+ "titleLevel": "{level} பதிலி — {label}",
+ "loading": "பதிலி உள்ளமைவு ஏற்றப்படுகிறது...",
+ "inheritingFrom": "இதிலிருந்து பெறப்படுகிறது",
+ "source": "மூலம்",
+ "savedProxy": "சேமிக்கப்பட்ட பதிலி",
+ "custom": "தனிப்பயன்",
+ "selectSavedProxyPlaceholder": "சேமிக்கப்பட்ட பதிலியைத் தேர்ந்தெடுக்கவும்...",
+ "proxyType": "பதிலி வகை",
+ "host": "புரவலன்",
+ "hostPlaceholder": "1.2.3.4 அல்லது proxy.example.com",
+ "port": "போர்ட்",
+ "authOptional": "அங்கீகாரம் (விருப்பத்திற்குரியது)",
+ "username": "பயனர்பெயர்",
+ "usernamePlaceholder": "பயனர்பெயர்",
+ "password": "கடவுச்சொல்",
+ "passwordPlaceholder": "கடவுச்சொல்",
+ "connected": "இணைக்கப்பட்டது",
"ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "connectionFailed": "இணைப்பு தோல்வியடைந்தது",
+ "testConnection": "இணைப்பைச் சோதிக்கவும்",
+ "clear": "அழி",
+ "cancel": "ரத்துசெய்",
+ "save": "சேமி",
+ "errorSelectSavedProxy": "முதலில் சேமிக்கப்பட்ட பதிலியைத் தேர்ந்தெடுக்கவும்.",
+ "errorSelectProxyFirst": "முதலில் ஒரு பதிலியைத் தேர்ந்தெடுக்கவும்.",
+ "errorProxyNotFound": "தேர்ந்தெடுக்கப்பட்ட ப்ராக்ஸி கிடைக்கவில்லை.",
+ "errorClearSavedProxy": "சேமிக்கப்பட்ட ப்ராக்ஸியை அழிக்க முடியவில்லை",
+ "errorSaveProxy": "ப்ராக்ஸி உள்ளமைவைச் சேமிக்க முடியவில்லை",
+ "errorClearProxy": "ப்ராக்ஸி உள்ளமைவை அழிக்க முடியவில்லை",
+ "errorSocks5Hidden": "SOCKS5 உள்ளமைக்கப்பட்டுள்ளது, ஆனால் NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false என்பதால் மறைக்கப்பட்டுள்ளது."
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "{providerName} ஐ இணைக்கவும்",
+ "waiting": "அங்கீகாரத்திற்காகக் காத்திருக்கிறது",
+ "completeAuthInPopup": "பாப்அப் சாளரத்தில் அங்கீகாரத்தை நிறைவு செய்யவும்.",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "பாப்அப் தடுக்கப்பட்டதா? URL ஐ கைமுறையாக உள்ளிடவும்",
+ "deviceCodeVisitUrl": "கீழே உள்ள URL ஐப் பார்வையிட்டு குறியீட்டை உள்ளிடவும்:",
+ "deviceCodeVerificationUrl": "சரிபார்ப்பு URL",
+ "deviceCodeYourCode": "உங்கள் குறியீடு",
+ "deviceCodeWaiting": "அங்கீகாரத்திற்காகக் காத்திருக்கிறது...",
"googleLoopbackTitle": "இந்த முகவரியிலிருந்து Google உள்நுழைவு முடிக்க முடியாது",
"googleLoopbackWhatHappens": "Google மட்டுமே அங்கீகாரம் குறியீட்டை வெளியிடுகிறது {redirectUri} உலாவியில் உள்நுழைவுக்கு ஒப்புதல் அளிக்கும் போது அடையக்கூடியது. இங்கு அந்த முகவரி இந்த கணினியை குறிக்கிறது, OmniRoute சேவையகம் அல்ல — எனவே ஒப்புதல் திரை நிற்கிறது, மறுபடியும் மாற்றுவதற்குப் பதிலாக, மற்றும் நகலெடுக்க எந்த callback URL இல்லை.",
"googleLoopbackRecommended": "எடுத்துக்காட்டப்பட்டது — இதை உங்கள் சொந்த கணினியில் இயக்கவும், பின்னர் கீழே முடிவை ஒட்டவும்:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "அல்லது SSH மூலம் டாஷ்போர்ட் போர்டை முன்னணி செய்யவும் மற்றும் ஒம்னி ரவுட் டன்னல் மூலம் மீண்டும் ஏற்றவும்:",
"googleLoopbackTunnelNote": "{userPlaceholder} ஐ உங்கள் SSH பயனர் பெயருடன் மாற்றவும், டெர்மினலை திறந்தே வைக்கவும், பின்னர் {localUrl} ஐ திறந்து அங்கு இருந்து மீண்டும் இணைக்கவும்.",
"googleLoopbackHeadlessAlt": "முழுமையாக தலைவில்லா பயன்பாட்டிற்காக, எந்த உள்ளூர் அழைப்பும் இல்லாமல், உங்கள் சொந்த Google OAuth சான்றிதழ்களை மற்றும் ஒரு பொது அடிப்படை URL ஐ அமைக்கவும்.",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "தொலைநிலை அணுகல்: நீங்கள் OmniRoute ஐ தொலைவிலிருந்து அணுகுவதால், அங்கீகாரத்திற்குப் பிறகு ஒரு பிழைப் பக்கத்தைக் காண்பீர்கள் (localhost கிடைக்கவில்லை). இது இயல்பானது — உங்கள் உலாவியின் முகவரிப் பட்டையிலிருந்து முழு URL ஐ நகலெடுத்து கீழே ஒட்டவும்.",
"loopbackMismatchTitle": "இந்த முகவரியிலிருந்து உள்நுழைவு முடிக்க முடியாது",
"loopbackMismatchWhatHappened": "என்ன நடக்கிறது",
"loopbackMismatchExplanation": "உங்கள் உள்நுழைவுக்கு நீங்கள் ஒப்புதல் அளித்த பிறகு, {providerName} எப்போதும் உலாவியை {redirectUri} க்கு திருப்புகிறது. அந்த முகவரி இந்த உலாவியை இயக்கும் கணினியை குறிக்கிறது, OmniRoute சேவையகத்தை அல்ல — எனவே அங்கீகாரக் குறியீடு OmniRoute க்கு எப்போது சென்றாலும், பிழையை காட்டாமல் வழங்குநர் உள்நுழைவில் தோல்வியுறுகிறது.",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "இந்த உலாவியில், உலாவி மூலம் OmniRoute-ஐ மீண்டும் திறக்கவும்:",
"loopbackMismatchStep3": "பிறகு புதிய தாவலிலிருந்து {providerName} ஐ மீண்டும் இணைக்கவும். இப்போது கால் பேக் சர்வருக்கு அடைகிறது மற்றும் உள்நுழைவு சாதாரணமாக முடிகிறது.",
"loopbackMismatchAlternative": "SSH அணுகல் இல்லை? இந்த வழங்குநர் ஒரு டோக்கன் இறக்குமதி தாவலை வழங்கினால், டோக்கன் மூலம் இணைக்கவும் - அந்த பாதை ஒரு லூப்பேக் கால் பாகத்தைப் பயன்படுத்தாது.",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "படி 1: இந்த URL ஐ உங்கள் உலாவியில் திறக்கவும்",
+ "copy": "நகலெடு",
+ "step2PasteCallback": "படி 2: திரும்பஅழைப்பு URL அல்லது அங்கீகாரக் குறியீட்டை இங்கே ஒட்டவும்",
+ "step2Hint": "அங்கீகாரத்திற்குப் பிறகு, முழு திரும்பஅழைப்பு URL ஐ ஒட்டவும். Claude Code மற்றும் Cline ஆகியவற்றிற்கு, அங்கீகாரக் குறியீட்டையும் நேரடியாக ஒட்டலாம், எ.கா. code#state.",
+ "connect": "இணைக்கவும்",
+ "cancel": "ரத்துசெய்",
+ "success": "இணைப்பு வெற்றிகரமாக முடிந்தது!",
+ "successMessage": "உங்கள் {providerName} கணக்கு இணைக்கப்பட்டது.",
+ "done": "முடிந்தது",
+ "error": "இணைப்பு தோல்வியடைந்தது",
+ "tryAgain": "மீண்டும் முயற்சிக்கவும்",
"errorSessionIncomplete": "OAuth அமர்வு முழுமையல்ல (மறுவழி URI அல்லது குறியீட்டு சரிபார்ப்பாளர் காணவில்லை). இணைப்பை மீண்டும் தொடங்கவும் மற்றும் மீண்டும் முயற்சிக்கவும்.",
"errorExchangeFailed": "மாற்றம் தோல்வியுற்றது",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: இயல்பான Google OAuth அங்கீகாரங்கள் localhost இல் மட்டுமே செயல்படுகிறது. தொலைதூர பயன்பாட்டிற்காக, உங்கள் சொந்த OAuth அங்கீகாரங்களை சூழல் மாறிலிகள் மூலம் கட்டமைக்கவும்: ANTIGRAVITY_OAUTH_CLIENT_ID மற்றும் ANTIGRAVITY_OAUTH_CLIENT_SECRET. 'தொலைதூர சேவையகத்தில் OAuth' என்ற README பிரிவைப் பார்க்கவும்.",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Cursor மூலம் உள்நுழைக",
+ "tabImport": "டோக்கனை இறக்குமதி செய்க",
+ "loginDescription": "Cursor இன் உலாவி உள்நுழைவைத் திறக்கும். Docker இல் செயல்படும் — உங்கள் ஹோஸ்ட் உலாவியில் ஒப்புதல் அளித்துவிட்டு, பின்னர் இங்கே திரும்பவும்.",
+ "loginWithCursor": "Cursor மூலம் உள்நுழைக",
+ "startingLogin": "தொடங்குகிறது…",
+ "waitingApproval": "Cursor உள்நுழைவு ஒப்புதலுக்காகக் காத்திருக்கிறது…",
+ "openUrlHint": "உலாவி திறக்கப்படவில்லை என்றால்:",
+ "openLoginLink": "உள்நுழைவுப் பக்கத்தைத் திறக்கவும்",
+ "cancelLogin": "உள்நுழைவை ரத்துசெய்",
+ "autoDetecting": "டோக்கன்கள் தானாகக் கண்டறியப்படுகின்றன...",
+ "readingFromCursor": "Cursor IDE அல்லது cursor-agent இலிருந்து படிக்கிறது",
+ "tokensAutoDetected": "Cursor IDE இலிருந்து டோக்கன்கள் வெற்றிகரமாகத் தானாகக் கண்டறியப்பட்டன!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Docker-இல் இயக்குகிறீர்களா? Cursor மூலம் உள்நுழைவதைப் பயன்படுத்தவும். IDE தானியக்க இறக்குமதி மற்றும் cursor-agent ஆகியவை பொதுவாகக் கொள்கலனுக்குள் கிடைக்காது. docs/providers/CURSOR-DOCKER.md-ஐப் பார்க்கவும்.",
+ "accessToken": "அணுகல் டோக்கன்",
+ "refreshToken": "புதுப்பிப்பு டோக்கன்",
+ "refreshTokenPlaceholder": "விருப்பத்தேர்வு — தானியக்க டோக்கன் புதுப்பிப்பைச் செயல்படுத்துகிறது",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "அணுகல் டோக்கன் தானாக நிரப்பப்படும்...",
+ "machineId": "இயந்திர ID",
+ "optional": "(விருப்பத்தேர்வு)",
+ "machineIdPlaceholder": "இயந்திர ID தானாக நிரப்பப்படும்...",
+ "importing": "இறக்குமதி செய்யப்படுகிறது...",
+ "importToken": "டோக்கனை இறக்குமதி செய்",
+ "cancel": "ரத்துசெய்",
+ "errorAutoDetect": "டோக்கன்களைத் தானாகக் கண்டறிய முடியவில்லை",
+ "errorAutoDetectFailed": "டோக்கன்களைத் தானாகக் கண்டறிதல் தோல்வியடைந்தது",
+ "errorEnterToken": "அணுகல் டோக்கனை உள்ளிடவும்",
+ "errorImportFailed": "இறக்குமதி தோல்வியடைந்தது",
+ "errorLoginStart": "Cursor உள்நுழைவைத் தொடங்க முடியவில்லை",
+ "errorLoginPoll": "Cursor உள்நுழைவு தோல்வியடைந்தது",
+ "errorLoginTimeout": "Cursor உள்நுழைவுக்கான நேரம் முடிந்தது — மீண்டும் முயற்சிக்கவும்"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "விலையிடல் உள்ளமைவு",
+ "loading": "விலையிடல் தரவு ஏற்றப்படுகிறது...",
+ "pricingRatesFormat": "விலையிடல் கட்டண வடிவம்",
+ "ratesDescription": "அனைத்துக் கட்டணங்களும் ஒரு மில்லியன் டோக்கன்களுக்கான டாலர்களில் ($/1M டோக்கன்கள்) குறிப்பிடப்பட்டுள்ளன. எடுத்துக்காட்டு: உள்ளீட்டுக் கட்டணம் 2.50 எனில், 1,000,000 உள்ளீட்டு டோக்கன்களுக்கு $2.50 என்று பொருள்.",
+ "model": "மாதிரி",
+ "input": "உள்ளீடு",
+ "output": "வெளியீடு",
+ "cached": "தற்காலிகச் சேமிப்பிலுள்ளது",
+ "reasoning": "காரணமறிதல்",
+ "cacheCreation": "தற்காலிகச் சேமிப்பு உருவாக்கம்",
+ "noPricingData": "விலையிடல் தரவு எதுவும் கிடைக்கவில்லை",
+ "resetToDefaults": "இயல்புநிலைகளுக்கு மீட்டமை",
+ "cancel": "ரத்துசெய்",
+ "saving": "சேமிக்கப்படுகிறது...",
+ "saveChanges": "மாற்றங்களைச் சேமி",
+ "resetConfirm": "அனைத்து விலைகளையும் இயல்புநிலைகளுக்கு மீட்டமைக்கவா? இதைச் செயல்தவிர்க்க முடியாது.",
+ "errorSaveFailed": "விலையிடலைச் சேமிக்க முடியவில்லை",
+ "errorResetFailed": "விலையிடலை மீட்டமைக்க முடியவில்லை"
},
"proxyRegistry": {
"selectAllProxies": "அனைத்து ப்ராக்ஸிகளையும் தேர்ந்தெடு",
"selectProxy": "{name}-ஐத் தேர்ந்தெடு",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "ப்ராக்ஸி பதிவகம்",
+ "description": "மீண்டும் பயன்படுத்தக்கூடிய ப்ராக்ஸிகளைச் சேமித்து, ஒதுக்கீடுகளைக் கண்காணிக்கவும்.",
+ "importLegacy": "பழையவற்றை இறக்குமதி செய்",
+ "bulkAssign": "மொத்தமாக ஒதுக்கு",
+ "addProxy": "ப்ராக்ஸியைச் சேர்",
+ "loading": "ப்ராக்ஸிகள் ஏற்றப்படுகின்றன...",
+ "noProxies": "இன்னும் சேமிக்கப்பட்ட ப்ராக்ஸிகள் இல்லை.",
+ "tableName": "பெயர்",
+ "tableEndpoint": "முனையம்",
+ "tableStatus": "நிலை",
+ "tableHealth": "செயல்நலம் (24மணி)",
+ "tableUsage": "பயன்பாடு",
+ "tableActions": "செயல்கள்",
+ "test": "சோதனை",
+ "edit": "திருத்து",
+ "delete": "நீக்கு",
+ "modalCreateTitle": "ப்ராக்ஸியை உருவாக்கு",
+ "modalEditTitle": "ப்ராக்ஸியைத் திருத்து",
+ "labelName": "பெயர்",
+ "labelType": "வகை",
"labelFamily": "IP குடும்பம்",
"familyAuto": "தானியங்கு (dual-stack)",
"familyIpv4": "IPv4 மட்டும்",
"familyIpv6": "IPv6 மட்டும்",
"familyHint": "Egress முகவரி குடும்பம். Auto ஆனது dual-stack-ஐ வைத்திருக்கும்; IPv4/IPv6 இந்த ப்ராக்ஸியை அந்தக் குடும்பத்திற்குப் பின் செய்கிறது (IPv6-only ப்ராக்ஸியின் கீழ் v4 கசிவைத் தடுக்கிறது).",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "ஹோஸ்ட்",
+ "labelPort": "போர்ட்",
+ "labelUsername": "பயனர்பெயர்",
+ "labelPassword": "கடவுச்சொல்",
+ "labelRegion": "பகுதி",
+ "labelStatus": "நிலை",
+ "labelNotes": "குறிப்புகள்",
+ "usernamePlaceholderEdit": "தற்போதைய பயனர்பெயரைத் தக்கவைக்கக் காலியாக விடவும்",
+ "passwordPlaceholderEdit": "தற்போதைய கடவுச்சொல்லைத் தக்கவைக்கக் காலியாக விடவும்",
+ "statusActive": "செயலில் உள்ளது",
+ "statusInactive": "செயலில் இல்லை",
+ "cancel": "ரத்துசெய்",
+ "save": "சேமி",
+ "bulkModalTitle": "மொத்த ப்ராக்ஸி ஒதுக்கீடு",
+ "bulkLabelScope": "வரம்பு",
+ "bulkLabelProxy": "ப்ராக்ஸி",
+ "bulkClearAssignment": "(ஒதுக்கீட்டை அழி)",
+ "bulkLabelScopeIds": "வரம்பு ID-கள் (காற்புள்ளி அல்லது புதிய வரியால் பிரிக்கப்பட்டவை)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "பயன்படுத்து",
"labelScope": "வரம்பு",
"labelProxy": "ப்ராக்ஸி",
"scopeGlobal": "உலகளாவிய",
@@ -10893,19 +10904,19 @@
"bulkImportErrorInvalidPort": "தவறான போர்ட் (1-65535 ஆக இருக்க வேண்டும்)",
"bulkImportErrorInvalidType": "தவறான வகை (http, https அல்லது socks5 ஐப் பயன்படுத்தவும்)",
"bulkImportErrorInvalidStatus": "தவறான நிலை (செயலில் அல்லது செயலற்றதைப் பயன்படுத்தவும்)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "ப்ராக்ஸி பதிவகத்தை ஏற்ற முடியவில்லை",
+ "errorNameHostRequired": "பெயரும் ஹோஸ்டும் அவசியம்",
+ "errorSaveFailed": "ப்ராக்ஸியைச் சேமிக்க முடியவில்லை",
+ "errorDeleteFailed": "ப்ராக்ஸியை நீக்க முடியவில்லை",
+ "errorForceDeleteConfirm": "இந்தப் ப்ராக்ஸி இன்னும் ஒதுக்கப்பட்டுள்ளது. கட்டாயமாக நீக்கி, அனைத்து ஒதுக்கீடுகளையும் அகற்றவா?",
+ "errorMigrateFailed": "பழைய ப்ராக்ஸி உள்ளமைவை இடம்பெயர்க்க முடியவில்லை",
+ "errorBulkFailed": "மொத்த ஒதுக்கீட்டைச் செயல்படுத்த முடியவில்லை",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "தோல்வியடைந்தது",
+ "successRate": "{rate}% வெற்றி",
+ "avgLatency": "சராசரி {latency}ms",
+ "assignmentsCount": "{count} ஒதுக்கீடுகள்",
"noData": "—",
"testSuccess": "✓ {ip}",
"testLatency": "{latency}ms",
@@ -10943,20 +10954,23 @@
"managePool": "தொகுப்பை நிர்வகி",
"poolTitle": "Proxy தொகுப்பு & சுழற்சி",
"poolDescription": "ஒரு scope-உடன் பல proxy-களை இணைத்து, அவற்றின் வழியே egress IP-களை சுழற்றவும். ஒற்றை proxy கொண்ட scope, சாதாரண ஒதுக்கீட்டைப் போலவே செயல்படும்.",
- "poolScopeIdLabel": "Scope ID",
- "poolScopeIdPlaceholder": "provider id / connection id / combo id",
+ "poolScopeIdLabel": "செயல்பாட்டு வரம்பு ID",
+ "poolScopeIdPlaceholder": "வழங்குநர் id / இணைப்பு id / சேர்க்கை id",
"poolScopeIdRequired": "provider, account அல்லது combo scope-க்கு ஒரு scope ID தேவை.",
"poolLoad": "தொகுப்பை ஏற்று",
"poolLoadFailed": "Proxy தொகுப்பை ஏற்றுவது தோல்வியடைந்தது",
"poolStrategyLabel": "சுழற்சி உத்தி",
"poolStrategyHint": "round-robin உறுப்பினர்களை வரிசையாக சுழற்றுகிறது; random சீராகத் தேர்ந்தெடுக்கிறது; sticky ஒரு குறிப்பிட்ட நேரத்திற்கு ஒரு உறுப்பினரைத் தக்கவைக்கிறது; latency-optimized பதிவுகளின் அடிப்படையில் அதிவேகமானதைத் தேர்ந்தெடுக்கிறது.",
"poolStrategyFailed": "சுழற்சி உத்தியைப் புதுப்பிப்பது தோல்வியடைந்தது",
- "strategyRoundRobin": "Round-robin",
- "strategyRandom": "Random",
- "strategySticky": "Sticky",
- "strategyLatency": "Latency-optimized",
+ "strategyRoundRobin": "சுழற்சி முறை",
+ "strategyRandom": "சீரற்றது",
+ "strategySticky": "நிலையானது",
+ "strategyLatency": "தாமதத்திற்கு உகந்தது",
"poolMembersLabel": "தொகுப்பு உறுப்பினர்கள் ({count})",
"poolNoMembers": "இந்தத் தொகுப்பில் இன்னும் proxy-கள் எதுவும் இல்லை.",
+ "poolEgressObservation": "{exits, plural, one {# வெளியேற்றம்} other {# வெளியேற்றங்கள்}} — {connections, plural, one {# இணைப்பு} other {# இணைப்புகள்}} பயன்படுத்தியவை · ஒரு வெளியேற்றத்தில் அதிகபட்சம் {max} · கடந்த {hours} மணிநேரம்",
+ "poolEgressObservationEmpty": "கடந்த {hours} மணிநேரத்தில் போக்குவரத்து எதுவும் காணப்படவில்லை",
+ "poolEgressObservationHint": "இந்தக் காலச் சாளரத்திற்கான ப்ராக்ஸி பதிவிலிருந்து கணக்கிடப்பட்டது: இந்தத் தொகுப்பின் உறுப்பினர்களுக்காகக் காணப்பட்ட தனித்துவமான வெளியேற்ற IP-களும், அவற்றைப் பயன்படுத்திய OmniRoute இணைப்புகளும். \"ஒரு வெளியேற்றத்தில்\" என்பது ஒரே நேரத்தில் என்பதல்ல; இந்தக் காலச் சாளரத்தின் போது என்பதாகும். ஒவ்வொரு IP-க்குமான 429 பூட்டல், அதே வழங்குநர் குடும்பத்தைச் சேர்ந்த இணைப்புகளை மட்டுமே இடைநிறுத்தும்.",
"poolRemove": "அகற்று",
"poolRemoveFailed": "தொகுப்பிலிருந்து proxy-ஐ அகற்றுவது தோல்வியடைந்தது",
"poolAddLabel": "ஒரு proxy-ஐச் சேர்",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "தொகுப்பு ஒதுக்கீட்டைச் சேமிப்பது தோல்வியடைந்தது"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "மாதிரி சோதனைக்களம்",
+ "description": "எந்த மாதிரியையும் நேரடியாக முகப்புப் பலகையிலிருந்து சோதிக்கவும். வழங்குநர், மாதிரி மற்றும் இறுதிப்புள்ளி வகையைத் தேர்ந்தெடுத்து, மூலப் பதிலைக் காண ஒரு கோரிக்கையை அனுப்பவும்.",
+ "endpoint": "இறுதிப்புள்ளி",
+ "provider": "வழங்குநர்",
+ "model": "மாதிரி",
+ "accountKey": "கணக்கு / விசை",
+ "autoAccounts": "தானியங்கு ({count} கணக்குகள்)",
+ "noAccounts": "கணக்குகள் இல்லை",
+ "send": "அனுப்பு",
+ "cancel": "ரத்துசெய்",
+ "audioFile": "ஒலிக் கோப்பு",
+ "attachImages": "படங்களை இணைக்கவும் (Vision)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "அதிகபட்சம் 4 படங்கள்",
+ "selectAudioFile": "உரைமாற்றத்திற்கான ஒலிக் கோப்பைத் தேர்ந்தெடுக்கவும் (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "அனைத்தையும் அழி",
+ "request": "கோரிக்கை",
+ "response": "பதில்",
+ "transcription": "உரைமாற்றம்",
+ "copy": "நகலெடு",
+ "resetToDefault": "இயல்புநிலைக்கு மீட்டமை",
+ "downloadAudio": "ஒலியைப் பதிவிறக்கு",
+ "copyText": "உரையை நகலெடு",
+ "transcriptionHint": "உரைமாற்றம் multipart/form-data-ஐப் பயன்படுத்துகிறது. மேலே உள்ள ஒலிக் கோப்பைப் பதிவேற்றவும் — கீழே உள்ள JSON கூடுதல் அளவுருக்களை (model, language) கட்டுப்படுத்துகிறது.",
+ "imagesGenerated": "{count} படங்கள் உருவாக்கப்பட்டன",
+ "generatedImage": "உருவாக்கப்பட்ட படம் {index}",
+ "save": "சேமி",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
- "completions": "Completions",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
- "moderations": "Moderations",
- "rerank": "Rerank",
- "search": "Web search",
+ "chat": "அரட்டை நிறைவுகள்",
+ "responses": "பதில்கள்",
+ "completions": "நிறைவுகள்",
+ "images": "பட உருவாக்கம்",
+ "embeddings": "உட்பொதிவுகள்",
+ "speech": "உரையிலிருந்து பேச்சு",
+ "transcription": "ஒலி உரைமாற்றம்",
+ "video": "காணொளி உருவாக்கம்",
+ "music": "இசை உருவாக்கம்",
+ "moderations": "உள்ளடக்க மதிப்பாய்வுகள்",
+ "rerank": "மறுதரவரிசைப்படுத்தல்",
+ "search": "இணையத் தேடல்",
"webFetch": "இணையப் பெறுதல்"
},
"conversationalChat": "உரையாடல் அரட்டை",
"clearChat": "தெளிவான அரட்டை",
"typeMessagePlaceholder": "செய்தியைத் தட்டச்சு செய்யவும்... (புதிய வரிக்கு Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "அரட்டை",
+ "tabCompare": "ஒப்பிடு",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "உருவாக்கு",
+ "configPane": "உள்ளமைவு",
+ "systemPrompt": "கணினி அறிவுறுத்தல்",
+ "systemPromptPlaceholder": "நீங்கள் உதவிகரமான ஓர் உதவியாளர்.",
+ "modelPlaceholder": "எ.கா. openai/gpt-4o",
+ "endpointLabel": "முனைப்புள்ளி",
+ "parametersLabel": "அளவுருக்கள்",
+ "collapseConfig": "உள்ளமைவுப் பலகையைச் சுருக்கு",
+ "expandConfig": "உள்ளமைவுப் பலகையை விரிவாக்கு",
+ "temperature": "வெப்பநிலை",
+ "maxTokens": "அதிகபட்ச டோக்கன்கள்",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "இருப்பு அபராதம்",
+ "frequencyPenalty": "நிகழ்வெண் அபராதம்",
"reasoningLabel": "பகுத்தறிதல்",
"thinking": "சிந்தித்தல்",
"effort": "முயற்சி",
"effortDefault": "இயல்புநிலை",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "சீரற்றது (காலியாக விடவும்)",
+ "presetsLabel": "முன்னமைவுகள்",
+ "loadPreset": "முன்னமைவை ஏற்று",
+ "savePreset": "முன்னமைவைச் சேமி",
+ "noPresets": "முன்னமைவுகள் இல்லை",
+ "presetNamePlaceholder": "முன்னமைவின் பெயர்",
+ "savingPreset": "சேமிக்கிறது…",
+ "nameRequired": "பெயர் தேவை",
+ "failedToSavePreset": "முன்னமைவைச் சேமிக்க முடியவில்லை",
+ "improvePrompt": "தூண்டுரையை மேம்படுத்து",
+ "improvingPrompt": "மேம்படுத்துகிறது…",
+ "improvePromptTitle": "AI மூலம் உங்கள் தூண்டுரையை மேம்படுத்துங்கள்",
+ "setModelFirst": "முதலில் ஒரு மாதிரியை அமைக்கவும்",
"setModelInConfigFirst": "முதலில் Config பலகத்தில் ஒரு மாதிரியை அமைக்கவும்.",
"improvePromptFailed": "ப்ராம்ப்ட்டை மேம்படுத்துவது தோல்வியடைந்தது.",
"improvePromptAria": "AI-ஐப் பயன்படுத்தி ப்ராம்ப்ட்டை மேம்படுத்தவும்",
"confirmImprovePrompt": "ப்ராம்ப்ட் மேம்படுத்தலை உறுதிப்படுத்தவும்",
"improvePromptDescription": "மேம்படுத்தப்பட்ட பதிப்பை உருவாக்க இது உங்கள் தற்போதைய சிஸ்டம் ப்ராம்ப்ட்டை trae.ai மூலம் ஒரு பாப்அப் மூலம் அங்கீகாரம் அளிக்கவும். டோக்கன் இறக்குமதி செய்யப்பட்டவுடன் பாப்அப் தானாகவே மூடப்படும்.",
"authorizeImportant": "முக்கியம்: நீங்கள் முதலில் trae.ai இல் இந்த உலாவியில் உள்நுழைந்திருக்க வேண்டும். அங்கீகாரம் பக்கம் ஏற்கனவே உள்ள அமர்வை மட்டுமே உறுதிப்படுத்துகிறது — இது உங்களை உள்நுழைக்க முடியாது. \"உள்நுழைவு தோல்வி\" எனக் காண்பித்தால், \"Open solo.trae.ai\" என்பதைக் கிளிக் செய்து, உள்நுழைந்து, பின்னர் இங்கு திரும்பவும் வரவும்.",
"waitingForAuthorization": "trae.ai க்காக காத்திருக்கிறது…",
"authorizeWithBrowser": "உலாவியுடன் அங்கீகாரம் அளிக்கவும்",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai-ஐத் திறக்கவும்",
"orPasteManually": "அல்லது ஒரு டோக்கனை கையால் ஒட்டவும்",
"manualInstructions": "solo.trae.ai இல் உள்நுழைக, DevTools → Network ஐ திறக்கவும், எந்த உரையாடல் செய்தியையும் அனுப்பவும், மற்றும் Authorization: Cloud-IDE-JWT {tokenPlaceholder} கோரிக்கை தலைப்பில் இருந்து JWT ஐ நகலெடுக்கவும். JWT வாழ்நாள் ~14 நாட்கள். விருப்ப அடையாள புலங்கள் ஒரே கோரிக்கை உடலில் உள்ள common_params இல் இருந்து வருகின்றன.",
"accessTokenLabel": "அணுகல் டோக்கன் (Cloud-IDE-JWT)",
@@ -13945,7 +13978,7 @@
"runners": "ஓட்டக்காரர்கள்",
"tasks": "பணிகள்",
"colName": "பெயர்",
- "colClis": "CLIs",
+ "colClis": "CLI-கள்",
"colStatus": "நிலை",
"colTask": "பணி",
"colMode": "முறை",
@@ -14048,11 +14081,11 @@
"actionApprove": "திட்டத்தை ஒப்புதல் அளி",
"actionCancel": "ரத்துசெய்",
"actionSeeInGraph": "வரைபடத்தில் பார்",
+ "actionRepeat": "மீண்டும் செய்",
"actionDone": "செயல் பயன்படுத்தப்பட்டது",
"actionFailed": "செயல் தோல்வியடைந்தது: {error}",
"detailFailed": "விவரங்களை ஏற்ற முடியவில்லை: {error}",
"mirroredInA2A": "A2A இல் பிரதிபலிக்கப்பட்டது",
- "actionRepeat": "மீண்டும் செய்",
"repeatConfirm": "உறுதிப்படுத்த மீண்டும் கிளிக் செய்யவும்",
"repeatDone": "புதிய இயக்கம் உருவாக்கப்பட்டது",
"repeatUnavailable": "அசல் உள்ளீடு கிடைக்கவில்லை"
@@ -14066,57 +14099,57 @@
"networkError": "நெட்வொர்க் பிழை — வழங்குநர் வெளிப்பாடு அமைப்பை புதுப்பிக்க முடியவில்லை"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "ஆதரவாளர் சலுகைகள்",
+ "subtitle": "Radar வழங்கும் அதிகாரப்பூர்வ தள்ளுபடிகள், கிரெடிட்கள், சோதனைக் காலங்கள் மற்றும் மதிப்பாய்வு செய்யப்பட்ட கூட்டாளர் பலன்கள்.",
+ "backToRadar": "Radar-க்குத் திரும்பு",
+ "loading": "சலுகைகள் ஏற்றப்படுகின்றன...",
+ "refresh": "சலுகைகளைப் புதுப்பி",
+ "refreshing": "புதுப்பிக்கப்படுகிறது...",
+ "loadFailed": "சலுகைகளைப் புதுப்பிக்க முடியவில்லை. கடைசியாகச் சரிபார்க்கப்பட்ட உள்ளூர் தற்காலிகச் சேமிப்பு தக்கவைக்கப்பட்டுள்ளது.",
+ "empty": "தற்போது செயலில் உள்ள சலுகைகள் எதுவும் இல்லை.",
+ "keyRequiredTitle": "ஆதரவாளர் விசை தேவை",
+ "keyRequiredDescription": "சலுகைகள் Radar-ன் நேரடி பலனாகும். Radar திரையில் ஏற்கனவே உள்ள ஆதரவாளர் விசையைச் சேர்க்கவும், உங்கள் பங்களிப்பாளர் நிலையைச் சரிபார்க்கவும் அல்லது விசையைப் பெற திட்டத்திற்கு ஆதரவளிக்கவும்.",
+ "contributorButton": "நான் ஒரு பங்களிப்பாளர்",
+ "supporterButton": "திட்டத்திற்கு ஆதரவளி",
+ "partnerBadge": "கூட்டாளர்",
+ "officialBadge": "அதிகாரப்பூர்வமானது",
+ "conditionsLabel": "நிபந்தனைகள்:",
+ "validUntil": "{date} வரை செல்லுபடியாகும்",
+ "noExpiry": "காலாவதித் தேதி அறிவிக்கப்படவில்லை",
+ "openOffer": "சலுகையைப் பார்",
+ "trialDays": "{days, plural, one {# நாள்} other {# நாட்கள்}}"
},
"radarIntelPage": {
"title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "subtitle": "Radar-க்குச் சொந்தமான ELO தரவரிசைகளும் உண்மைத் தரவுகளின் அடிப்படையிலான பட்டியல் மாற்றங்களும்.",
+ "backToRadar": "Radar-க்குத் திரும்பு",
+ "loading": "Intel ஏற்றப்படுகிறது...",
+ "refresh": "Intel-ஐப் புதுப்பி",
+ "syncing": "புதுப்பிக்கப்படுகிறது...",
+ "loadFailed": "Intel-ஐப் புதுப்பிக்க முடியவில்லை. கடைசியாகச் சரிபார்க்கப்பட்ட உள்ளூர் தற்காலிகச் சேமிப்பு தக்கவைக்கப்பட்டுள்ளது.",
+ "empty": "சரிபார்க்கப்பட்ட Intel நிலைப்படம் இன்னும் கிடைக்கவில்லை.",
+ "supporterBadge": "Radar ஆதரவாளர்",
+ "methodology": "வழிமுறை",
+ "eloMethod": "ELO, தொடக்க மதிப்பு {initial}, K={factor}",
+ "freshness": "பட்டியலின் புதுமை",
+ "ageDays": "{days, plural, one {# நாள் பழையது} other {# நாட்கள் பழையது}}",
+ "trend": "பட்டியல் போக்கு",
+ "modelDelta": "{current} மாதிரிகள், +{added} / -{removed}",
+ "ranking": "மாதிரி தரவரிசை",
+ "noRankings": "உறுதிப்படுத்தப்பட்ட ஒப்பீடுகள் இன்னும் கிடைக்கவில்லை.",
+ "model": "மாதிரி",
+ "category": "வகை",
+ "rating": "மதிப்பீடு",
+ "matches": "பொருத்தங்கள்",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "புதியது",
+ "aging": "பழையதாகி வருகிறது",
+ "stale": "காலாவதியானது"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "வளர்கிறது",
+ "stable": "நிலையானது",
+ "shrinking": "சுருங்குகிறது"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "விண்ணப்பம் வழங்குநர் சூழல் ஜன்னலை மீறுகிறது"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference என்பது OmniRoute இன் ஓர் திறந்த மூல நண்பர்",
+ "description": "ஒரே OpenAI-இணக்கமான endpoint-க்குப் பின்னால் டஜன் கணக்கான முன்னணி models-ஐ மறுவிற்பனை செய்யும், செலவின் அடிப்படையில் தரவரிசைப்படுத்தப்பட்ட gateway — ஒவ்வொரு request-ஐயும் தகுதியான மிக மலிவான provider-க்கு வழிநடத்துகிறது; பட்டியல் விலையை ஒருபோதும் மீறாது.",
+ "cta": "API Key-ஐப் பெறுக",
+ "partnerLinkNote": "கூட்டாளர் இணைப்பு",
+ "dismissAriaLabel": "மூடு"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models catalog-இல் thinking level variants (எ.கா. -low, -medium, -high) உருவாக்கப்படுவதை முடக்கவும்."
}
diff --git a/src/i18n/messages/te.json b/src/i18n/messages/te.json
index 9d263d3c46..ab48cf6f81 100644
--- a/src/i18n/messages/te.json
+++ b/src/i18n/messages/te.json
@@ -1,15 +1,15 @@
{
"common": {
- "save": "Save",
- "cancel": "Cancel",
- "delete": "Delete",
- "loading": "Loading...",
+ "save": "సేవ్ చేయండి",
+ "cancel": "రద్దు చేయండి",
+ "delete": "తొలగించండి",
+ "loading": "లోడ్ అవుతోంది...",
"selectOption": "ఒక ఎంపికను ఎంచుకోండి",
- "error": "An error occurred",
- "success": "Success",
- "confirm": "Are you sure?",
- "refresh": "Refresh",
- "close": "Close",
+ "error": "ఒక లోపం సంభవించింది",
+ "success": "విజయవంతమైంది",
+ "confirm": "మీరు ఖచ్చితంగా కొనసాగాలనుకుంటున్నారా?",
+ "refresh": "రిఫ్రెష్ చేయండి",
+ "close": "మూసివేయండి",
"previousPage": "మునుపటి పేజీ",
"nextPage": "తదుపరి పేజీ",
"capsLockOn": "Caps Lock ఆన్లో ఉంది",
@@ -17,142 +17,142 @@
"toggleColumns": "నిలువు వరుసలను మార్చండి",
"confirmTitle": "ధృవీకరించు",
"confirmAction": "ధృవీకరించు",
- "add": "Add",
- "edit": "Edit",
- "search": "Search",
- "back": "Back",
- "next": "Next",
- "submit": "Submit",
- "reset": "Reset",
- "copy": "Copy",
- "copied": "Copied!",
- "enabled": "Enabled",
- "disabled": "Disabled",
- "active": "Active",
- "inactive": "Inactive",
- "noData": "No data available",
- "nothingHere": "Nothing here yet",
- "configure": "Configure",
+ "add": "జోడించండి",
+ "edit": "సవరించండి",
+ "search": "వెతకండి",
+ "back": "వెనుకకు",
+ "next": "తదుపరి",
+ "submit": "సమర్పించండి",
+ "reset": "రీసెట్ చేయండి",
+ "copy": "కాపీ చేయండి",
+ "copied": "కాపీ చేయబడింది!",
+ "enabled": "ప్రారంభించబడింది",
+ "disabled": "నిలిపివేయబడింది",
+ "active": "క్రియాశీలం",
+ "inactive": "నిష్క్రియం",
+ "noData": "డేటా అందుబాటులో లేదు",
+ "nothingHere": "ఇక్కడ ఇంకా ఏమీ లేదు",
+ "configure": "కాన్ఫిగర్ చేయండి",
"manualConfig": "మాన్యువల్ కాన్ఫిగరేషన్",
- "manage": "Manage",
- "name": "Name",
- "actions": "Actions",
- "status": "Status",
- "type": "Type",
+ "manage": "నిర్వహించండి",
+ "name": "పేరు",
+ "actions": "చర్యలు",
+ "status": "స్థితి",
+ "type": "రకం",
"model": "Model",
- "models": "models",
- "provider": "Provider",
+ "models": "మోడళ్లు",
+ "provider": "ప్రొవైడర్",
"unknownProvider": "తెలియని ప్రొవైడర్",
- "account": "Account",
- "time": "Time",
- "details": "Details",
- "created": "Created",
- "lastUsed": "Last Refreshed",
- "loadMore": "Load More",
- "noResults": "No results found",
- "reloadPage": "Reload Page",
- "connected": "Connected",
- "disconnected": "Disconnected",
- "notConfigured": "Not configured",
- "testConnection": "Test Connection",
- "enable": "Enable",
- "disable": "Disable",
- "columns": "Columns",
- "newest": "Newest",
- "oldest": "Oldest",
- "all": "All",
- "none": "None",
- "yes": "Yes",
- "no": "No",
+ "account": "ఖాతా",
+ "time": "సమయం",
+ "details": "వివరాలు",
+ "created": "సృష్టించబడింది",
+ "lastUsed": "చివరిగా రిఫ్రెష్ చేయబడింది",
+ "loadMore": "మరిన్ని లోడ్ చేయండి",
+ "noResults": "ఫలితాలు కనుగొనబడలేదు",
+ "reloadPage": "పేజీని మళ్లీ లోడ్ చేయండి",
+ "connected": "కనెక్ట్ అయింది",
+ "disconnected": "డిస్కనెక్ట్ అయింది",
+ "notConfigured": "కాన్ఫిగర్ చేయలేదు",
+ "testConnection": "కనెక్షన్ను పరీక్షించండి",
+ "enable": "ప్రారంభించండి",
+ "disable": "నిలిపివేయండి",
+ "columns": "నిలువు వరుసలు",
+ "newest": "సరికొత్తవి",
+ "oldest": "పురాతనమైనవి",
+ "all": "అన్నీ",
+ "none": "ఏదీ లేదు",
+ "yes": "అవును",
+ "no": "కాదు",
"on": "ఆన్",
"off": "ఆఫ్",
- "warning": "Warning",
- "note": "Note",
- "free": "Free",
- "skipToContent": "Skip to content",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
- "accept": "Accept",
- "accountId": "Account ID",
+ "warning": "హెచ్చరిక",
+ "note": "గమనిక",
+ "free": "ఉచితం",
+ "skipToContent": "కంటెంట్కు వెళ్లండి",
+ "maintenanceServerIssues": "సర్వర్లో సమస్యలు ఉన్నాయి. కొన్ని ఫీచర్లు అందుబాటులో ఉండకపోవచ్చు.",
+ "maintenanceServerUnreachable": "సర్వర్ను చేరుకోలేకపోయాం. మళ్లీ కనెక్ట్ అవుతోంది...",
+ "accept": "ఆమోదించండి",
+ "accountId": "ఖాతా ID",
"alias": "Alias",
- "apiKeyId": "API Key ID",
- "apiKeyName": "API Key Name",
- "apiKeySecret": "API Key Secret",
- "authorization": "Authorization",
- "content-type": "Content Type",
- "content-length": "Content Length",
+ "apiKeyId": "API కీ ID",
+ "apiKeyName": "API కీ పేరు",
+ "apiKeySecret": "API కీ రహస్యం",
+ "authorization": "అధీకరణ",
+ "content-type": "కంటెంట్ రకం",
+ "content-length": "కంటెంట్ నిడివి",
"cookie": "Cookie",
- "file": "File",
- "host": "Host",
+ "file": "ఫైల్",
+ "host": "హోస్ట్",
"id": "ID",
- "import": "Import",
+ "import": "దిగుమతి చేయండి",
"limit": "Limit",
"offset": "Offset",
- "open": "Open",
- "origin": "Origin",
- "promptTokens": "Prompt Tokens",
- "completionTokens": "Completion Tokens",
- "totalTokens": "Total Tokens",
- "rawModel": "Raw Model",
- "scope": "Scope",
- "skill": "Skill",
- "sortBy": "Sort By",
- "sortOrder": "Sort Order",
- "tab": "Tab",
+ "open": "తెరవండి",
+ "origin": "మూలం",
+ "promptTokens": "ప్రాంప్ట్ టోకెన్లు",
+ "completionTokens": "పూర్తి చేయడానికి ఉపయోగించిన టోకెన్లు",
+ "totalTokens": "మొత్తం టోకెన్లు",
+ "rawModel": "ముడి మోడల్",
+ "scope": "పరిధి",
+ "skill": "నైపుణ్యం",
+ "sortBy": "దీని ప్రకారం క్రమబద్ధీకరించండి",
+ "sortOrder": "క్రమబద్ధీకరణ క్రమం",
+ "tab": "ట్యాబ్",
"text": "Text",
- "textarea": "Textarea",
- "tool": "Tool",
- "toolId": "Tool ID",
+ "textarea": "టెక్స్ట్ ఏరియా",
+ "tool": "సాధనం",
+ "toolId": "సాధనం ID",
"web": "Web",
- "whereUsed": "Where Used",
- "whitelist": "Whitelist",
- "blacklist": "Blacklist",
- "resolve": "Resolve",
- "force": "Force",
+ "whereUsed": "ఉపయోగించిన చోటు",
+ "whitelist": "అనుమతి జాబితా",
+ "blacklist": "నిషేధ జాబితా",
+ "resolve": "పరిష్కరించు",
+ "force": "బలవంతం చేయి",
"base64url": "Base64 URL",
"hex": "Hex",
- "range": "Range",
- "component": "Component",
- "redirect_uri": "Redirect URI",
- "idempotency-key": "Idempotency Key",
- "error_description": "Error Description",
- "code": "Code",
- "compatible": "Compatible",
- "chat-completions": "Chat Completions",
+ "range": "పరిధి",
+ "component": "కాంపోనెంట్",
+ "redirect_uri": "రీడైరెక్ట్ URI",
+ "idempotency-key": "ఐడెంపోటెన్సీ కీ",
+ "error_description": "లోప వివరణ",
+ "code": "కోడ్",
+ "compatible": "అనుకూలమైనది",
+ "chat-completions": "చాట్ పూర్తీకరణలు",
"oauth": "OAuth",
- "auth_token": "Auth Token",
- "crypto": "Crypto",
- "hours": "Hours",
+ "auth_token": "ప్రామాణీకరణ టోకెన్",
+ "crypto": "క్రిప్టో",
+ "hours": "గంటలు",
"selfsigned": "Self-signed",
- "proxy_id": "Proxy ID",
- "proxyId": "Proxy ID",
- "connectionId": "Connection ID",
- "resolveConnectionId": "Resolve Connection ID",
- "resolve_connection_id": "Resolve Connection ID",
- "scope_id": "Scope ID",
- "scopeId": "Scope ID",
- "jwtSecret": "JWT Secret",
+ "proxy_id": "ప్రాక్సీ ID",
+ "proxyId": "ప్రాక్సీ ID",
+ "connectionId": "కనెక్షన్ ID",
+ "resolveConnectionId": "కనెక్షన్ IDని పరిష్కరించు",
+ "resolve_connection_id": "కనెక్షన్ IDని పరిష్కరించు",
+ "scope_id": "స్కోప్ ID",
+ "scopeId": "స్కోప్ ID",
+ "jwtSecret": "JWT సీక్రెట్",
"keytar": "Keytar",
"better-sqlite3": "better-sqlite3",
"undici": "undici",
"builder-id": "Builder ID",
- "musicDesc": "Music Description",
- "musicGeneration": "Music Generation",
+ "musicDesc": "సంగీత వివరణ",
+ "musicGeneration": "సంగీత ఉత్పత్తి",
"idc": "IDC",
- "cloud-status-changed": "Cloud status changed",
- "where_used": "Where Used",
- "windowMs": "Window (ms)",
+ "cloud-status-changed": "క్లౌడ్ స్థితి మారింది",
+ "where_used": "ఉపయోగించిన చోటు",
+ "windowMs": "విండో (ms)",
"social-github": "GitHub",
"social-google": "Google",
- "TOOL_ALLOWLIST": "Tool Allowlist",
- "TOOL_DENYLIST": "Tool Denylist",
- "Failed to save pricing": "Failed to save pricing",
- "Failed to reset pricing": "Failed to reset pricing",
- "apikey": "API Key",
+ "TOOL_ALLOWLIST": "సాధన అనుమతి జాబితా",
+ "TOOL_DENYLIST": "సాధన నిషేధ జాబితా",
+ "Failed to save pricing": "ధరలను సేవ్ చేయడం విఫలమైంది",
+ "Failed to reset pricing": "ధరలను రీసెట్ చేయడం విఫలమైంది",
+ "apikey": "API కీ",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "డాష్బోర్డ్కు వెళ్లు",
+ "checkSystemStatus": "సిస్టమ్ స్థితిని తనిఖీ చేయండి",
+ "selectModel": "మోడల్ను ఎంచుకోండి",
"addModel": "మోడల్ను జోడించు",
"effortNone": "ఏదీ లేదు",
"effortLow": "తక్కువ",
@@ -164,10 +164,10 @@
"reasoningEffort": "రీజనింగ్ ప్రయత్నం",
"wireApi": "వైర్ API",
"modelAliases": "మోడల్ మారుపేర్లు",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "కాంబోలు",
+ "noModelsFound": "మోడల్లు ఏవీ కనుగొనబడలేదు",
+ "clear": "క్లియర్ చేయండి",
+ "done": "పూర్తయింది",
"selectAll": "అన్నీ ఎంచుకోండి",
"unselectAll": "ఎంపికను తీసివేయండి",
"visibleModels": "కనిపిస్తున్నవి",
@@ -184,519 +184,519 @@
"selectAllProviders": "అన్ని ప్రొవైడర్లను తనిఖీ చేయండి",
"clearProviderSelection": "ప్రొవైడర్లను అన్చెక్ చేయండి",
"providersSelectedCount": "{count} ప్రొవైడర్లు తనిఖీ చేయబడ్డారు",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "లోపం సంభవించింది",
+ "comboDeleted": "కాంబో తొలగించబడింది",
+ "hide": "దాచు",
+ "creating": "సృష్టిస్తోంది",
+ "comboCreated": "కాంబో సృష్టించబడింది",
+ "swapFormats": "ఫార్మాట్లను మార్చండి",
+ "daysAgo": "రోజుల క్రితం",
+ "retries": "మళ్లీ ప్రయత్నాలు",
+ "errorDuringRestore": "పునరుద్ధరణ సమయంలో లోపం",
+ "eventsAppearHint": "ఈవెంట్లు కనిపించే సూచన",
+ "noLockouts": "లాకౌట్లు లేవు",
+ "webSearchDesc": "వెబ్ శోధన వివరణ",
+ "audioProvidersHeading": "ఆడియో ప్రొవైడర్ల శీర్షిక",
"cloudAgentProviders": "క్లౌడ్ ఏజెంట్ ప్రొవైడర్లు",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "నిమిషాల క్రితం",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "లైవ్ స్వయంచాలక రిఫ్రెష్ కొనసాగుతోంది",
+ "webSearch": "వెబ్ శోధన",
+ "anthropicPrefixPlaceholder": "Anthropic ప్రిఫిక్స్ ప్లేస్హోల్డర్",
+ "addModelToCombo": "కాంబోకు మోడల్ను జోడించండి",
+ "failedToLoad": "లోడ్ చేయడం విఫలమైంది",
+ "categoryMedia": "మీడియా వర్గం",
+ "enableCloud": "క్లౌడ్ను ప్రారంభించండి",
+ "expirationBannerExpiringSoon": "గడువు త్వరలో ముగుస్తుందనే బ్యానర్",
+ "retry": "మళ్లీ ప్రయత్నించండి",
+ "embeddings": "ఎంబెడ్డింగ్లు",
+ "errorCount": "లోపాల సంఖ్య",
+ "backupReasonManual": "బ్యాకప్ కారణం: మాన్యువల్",
+ "safeSearchModerate": "సురక్షిత శోధన: మధ్యస్థం",
+ "activeLimiters": "సక్రియ పరిమితికారకాలు",
+ "a2aCardTitle": "A2A కార్డ్ శీర్షిక",
+ "cloudWorkerUnreachable": "క్లౌడ్ వర్కర్ను చేరుకోలేకపోయాం",
+ "testFailed": "పరీక్ష విఫలమైంది",
+ "compatibleBaseUrlHint": "అనుకూలమైన బేస్ URL సూచన",
+ "usageTracking": "వినియోగ ట్రాకింగ్",
+ "disableCloudTitle": "క్లౌడ్ను నిలిపివేయండి",
+ "noConnections": "కనెక్షన్లు లేవు",
+ "providerHealth": "ప్రొవైడర్ స్థితి",
+ "confirmDbImport": "Db దిగుమతిని నిర్ధారించండి",
+ "notAvailableSymbol": "అందుబాటులో లేని చిహ్నం",
+ "backupsAvailable": "బ్యాకప్లు అందుబాటులో ఉన్నాయి",
+ "providerAuto": "ప్రొవైడర్ ఆటో",
+ "newProviderNamePlaceholder": "కొత్త ప్రొవైడర్ పేరు ప్లేస్హోల్డర్",
+ "a2aQuickStartStep2": "A2A త్వరిత ప్రారంభం దశ 2",
+ "ok": "సరే",
+ "available": "అందుబాటులో ఉంది",
+ "noBackupYet": "ఇంకా బ్యాకప్ లేదు",
+ "more": "మరిన్ని",
+ "noCompatibleYet": "ఇంకా అనుకూలమైనవి లేవు",
+ "multiProvider": "బహుళ ప్రొవైడర్",
+ "repairEnvHint": "ఎన్విరాన్మెంట్ మరమ్మతు సూచన",
+ "disablingCloud": "Cloud నిలిపివేయబడుతోంది",
+ "testBench": "పరీక్షా వేదిక",
+ "valid": "చెల్లుబాటు అవుతుంది",
+ "cloudBenefitShare": "Cloud ప్రయోజన భాగస్వామ్యం",
+ "mcpCardTitle": "Mcp కార్డ్ శీర్షిక",
+ "disableConfirm": "నిలిపివేతను నిర్ధారించండి",
+ "filters": "ఫిల్టర్లు",
+ "expirationBannerExpiredDesc": "గడువు ముగిసిన బ్యానర్ వివరణ",
+ "saveComboDefaults": "కాంబో డిఫాల్ట్లను సేవ్ చేయండి",
+ "cloudConnectedVerified": "Cloud కనెక్ట్ చేయబడింది, ధృవీకరించబడింది",
+ "uptime": "అప్టైమ్",
+ "compatibleProdPlaceholder": "అనుకూలమైన ప్రొడక్షన్ ప్లేస్హోల్డర్",
+ "fallbackChainsTitle": "ఫాల్బ్యాక్ చైన్ల శీర్షిక",
+ "oauthLabel": "Oauth లేబుల్",
+ "a2aCardDescription": "A2A కార్డ్ వివరణ",
+ "okShort": "సరే",
+ "maintenance": "నిర్వహణ",
+ "formatConverter": "ఫార్మాట్ కన్వర్టర్",
+ "zedImportNetworkError": "Zed దిగుమతి నెట్వర్క్ లోపం",
+ "apiKeyLabel": "Api కీ లేబుల్",
+ "noModelsForProvider": "ప్రొవైడర్కు మోడల్లు లేవు",
+ "mcpCardDescription": "Mcp కార్డ్ వివరణ",
+ "apiTypeLabel": "Api రకం లేబుల్",
+ "configuredProvidersLabel": "కాన్ఫిగర్ చేసిన ప్రొవైడర్ల లేబుల్",
+ "maxRetriesLabel": "గరిష్ఠ పునఃప్రయత్నాల లేబుల్",
+ "title": "శీర్షిక",
+ "output": "అవుట్పుట్",
+ "prefixHint": "ప్రిఫిక్స్ సూచన",
+ "skipWizard": "విజార్డ్ను దాటవేయి",
+ "failedCount": "విఫలమైన వాటి సంఖ్య",
+ "confirmDbImportDesc": "డేటాబేస్ దిగుమతి నిర్ధారణ వివరణ",
+ "entries": "ఎంట్రీలు",
+ "until": "వరకు",
+ "disableCombo": "కాంబోను నిలిపివేయి",
+ "liveMonitorDescriptionPrefix": "లైవ్ మానిటర్ వివరణ ప్రిఫిక్స్",
+ "runningCount": "అమలవుతున్న వాటి సంఖ్య",
+ "noActiveConnectionsInGroup": "సమూహంలో క్రియాశీల కనెక్షన్లు లేవు",
+ "savedSuccessfully": "విజయవంతంగా సేవ్ చేయబడింది",
+ "systemStorage": "సిస్టమ్ నిల్వ",
+ "videoDesc": "వీడియో వివరణ",
+ "maxResults": "గరిష్ఠ ఫలితాలు",
+ "timeRangeMonth": "కాల పరిధి: నెల",
+ "testSummary": "పరీక్ష సారాంశం",
+ "failedSetPassword": "పాస్వర్డ్ సెట్ చేయడం విఫలమైంది",
+ "audio": "ఆడియో",
+ "restore": "పునరుద్ధరించు",
+ "disableWarning": "హెచ్చరికను నిలిపివేయి",
+ "moderationsDesc": "మోడరేషన్ల వివరణ",
+ "providerHealthStatusAria": "ప్రొవైడర్ ఆరోగ్య స్థితి ARIA",
+ "modelNamePlaceholder": "మోడల్ పేరు ప్లేస్హోల్డర్",
+ "mcpQuickStartStep2": "Mcp త్వరిత ప్రారంభం దశ 2",
+ "quickStart": "త్వరిత ప్రారంభం",
+ "fullExportFailedWithError": "లోపంతో పూర్తి ఎగుమతి విఫలమైంది",
+ "loadingBackups": "బ్యాకప్లు లోడ్ అవుతున్నాయి",
+ "anthropicBaseUrlPlaceholder": "Anthropic బేస్ URL ప్లేస్హోల్డర్",
+ "description": "వివరణ",
+ "noProviderFound": "ప్రొవైడర్ కనుగొనబడలేదు",
+ "auto": "స్వయంచాలకం",
+ "protocolsDescription": "ప్రోటోకాల్ల వివరణ",
+ "cloudSessionNote": "క్లౌడ్ సెషన్ గమనిక",
+ "advancedSettings": "అధునాతన సెట్టింగ్లు",
+ "defaultStrategy": "డిఫాల్ట్ వ్యూహం",
+ "purgeExpiredLogs": "గడువు ముగిసిన లాగ్లను తొలగించు",
+ "justNow": "ఇప్పుడే",
+ "providerTestFailed": "ప్రొవైడర్ పరీక్ష విఫలమైంది",
+ "openaiBaseUrlPlaceholder": "Openai బేస్ URL ప్లేస్హోల్డర్",
+ "image": "చిత్రం",
+ "failedCreateChain": "చైన్ను సృష్టించడం విఫలమైంది",
+ "importDatabase": "డేటాబేస్ను దిగుమతి చేయండి",
+ "allDataLocal": "మొత్తం డేటా లోకల్లోనే ఉంటుంది",
+ "sectionTitle": "విభాగం శీర్షిక",
+ "failedToggle": "టోగుల్ చేయడం విఫలమైంది",
+ "editCombo": "కాంబోను సవరించండి",
+ "testResults": "పరీక్ష ఫలితాలు",
+ "searchQuery": "శోధన క్వెరీ",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "నకలు చేయండి",
+ "createCombo": "కాంబోను సృష్టించండి",
+ "searchTypeWeb": "శోధన రకం: వెబ్",
+ "addChain": "చైన్ను జోడించండి",
+ "prefixLabel": "ప్రిఫిక్స్ లేబుల్",
+ "listModelsDesc": "మోడళ్ల జాబితా వివరణ",
+ "databaseSize": "డేటాబేస్ పరిమాణం",
+ "chainCreated": "చైన్ సృష్టించబడింది",
+ "providerTestTimeout": "ప్రొవైడర్ పరీక్ష సమయం ముగిసింది",
+ "routingStrategy": "రూటింగ్ వ్యూహం",
+ "translateAction": "అనువదించండి",
+ "exportFailed": "ఎగుమతి విఫలమైంది",
+ "connectedVerificationPending": "కనెక్ట్ అయింది, ధృవీకరణ పెండింగ్లో ఉంది",
+ "a2aQuickStartTitle": "A2A త్వరిత ప్రారంభ శీర్షిక",
+ "couldNotTest": "పరీక్షించలేకపోయాము",
+ "testAllCompatible": "అనుకూలమైన అన్నింటినీ పరీక్షించండి",
+ "anthropicCompatibleName": "Anthropic-అనుకూల పేరు",
+ "disabling": "నిలిపివేస్తోంది",
+ "failedEnable": "ప్రారంభించడం విఫలమైంది",
+ "categoryUtility": "యుటిలిటీ వర్గం",
+ "customUrlOptional": "అనుకూల URL (ఐచ్ఛికం)",
+ "localProviders": "లోకల్ ప్రొవైడర్లు",
+ "comboNamePlaceholder": "కాంబో పేరు ప్లేస్హోల్డర్",
+ "memoryRss": "మెమరీ RSS",
+ "disableProvider": "ప్రొవైడర్ను నిలిపివేయండి",
+ "welcomeDesc": "స్వాగత వివరణ",
+ "nameLabel": "పేరు లేబుల్",
+ "allOperational": "అన్నీ సక్రమంగా పనిచేస్తున్నాయి",
+ "backupNow": "ఇప్పుడే బ్యాకప్ చేయండి",
+ "providerMaxRetriesAria": "ప్రొవైడర్ గరిష్ఠ పునఃప్రయత్నాల ARIA",
+ "textToSpeechDesc": "టెక్స్ట్ టు స్పీచ్ వివరణ",
+ "machineId": "మెషిన్ ID",
+ "globalProxy": "గ్లోబల్ ప్రాక్సీ",
+ "hitsMisses": "హిట్లు మరియు మిస్లు",
+ "testDesc": "పరీక్ష వివరణ",
+ "chatDesc": "చాట్ వివరణ",
+ "importSuccess": "దిగుమతి విజయవంతమైంది",
+ "chat": "చాట్",
+ "a2aQuickStartStep1": "A2A త్వరిత ప్రారంభం దశ 1",
+ "importFailed": "దిగుమతి విఫలమైంది",
+ "inputPlaceholder": "ఇన్పుట్ ప్లేస్హోల్డర్",
+ "providerModelsTitle": "ప్రొవైడర్ మోడళ్ల శీర్షిక",
+ "lastBackup": "చివరి బ్యాకప్",
+ "yourEndpoint": "మీ ఎండ్పాయింట్",
+ "autoDisableThresholdDesc": "స్వయంచాలక నిలిపివేత పరిమితి వివరణ",
+ "rerankDesc": "రీర్యాంక్ వివరణ",
+ "modelsPathPlaceholder": "మోడళ్ల పాత్ ప్లేస్హోల్డర్",
+ "noCombosYet": "ఇంకా కాంబోలు లేవు",
+ "connectedVerificationPendingWithError": "కనెక్ట్ చేయబడింది, ధృవీకరణ పెండింగ్లో ఉంది, లోపంతో",
+ "comboDefaultsGuideHint1": "కాంబో డిఫాల్ట్ల గైడ్ సూచన 1",
+ "enableCloudTitle": "క్లౌడ్ను ప్రారంభించండి శీర్షిక",
+ "configuredProvidersHint": "కాన్ఫిగర్ చేసిన ప్రొవైడర్ల సూచన",
+ "paused": "పాజ్ చేయబడింది",
+ "llmProviders": "LLM ప్రొవైడర్లు",
+ "enableCombo": "కాంబోను ప్రారంభించండి",
+ "removeProviderOverrideAria": "ప్రొవైడర్ ఓవర్రైడ్ను తొలగించండి Aria",
+ "nodeVersion": "Node వెర్షన్",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "లోపంతో ఎగుమతి విఫలమైంది",
+ "proxyConfigured": "ప్రాక్సీ కాన్ఫిగర్ చేయబడింది",
+ "concurrencyPerModel": "ప్రతి మోడల్కు సమకాలీనత",
+ "protocolTasksLabel": "ప్రోటోకాల్ టాస్క్ల లేబుల్",
+ "oauthProviders": "Oauth ప్రొవైడర్లు",
+ "lockedCount": "లాక్ చేసిన సంఖ్య",
+ "deleteChainConfirm": "చైన్ను తొలగించడాన్ని నిర్ధారించండి",
+ "recentTranslations": "ఇటీవలి అనువాదాలు",
+ "zedImportButton": "Zed దిగుమతి బటన్",
+ "responsesDesc": "ప్రతిస్పందనల వివరణ",
+ "testedCount": "పరీక్షించిన సంఖ్య",
+ "providersCommaSeparatedPlaceholder": "కామాలతో వేరు చేసిన ప్రొవైడర్ల ప్లేస్హోల్డర్",
+ "signatureDefaults": "సంతకం డిఫాల్ట్లు",
+ "errorCreating": "సృష్టించడంలో లోపం",
+ "timeRangeYear": "కాల పరిధి సంవత్సరం",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
- "testBenchTab": "Test Bench",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "cloudDisabledSuccess": "క్లౌడ్ విజయవంతంగా నిలిపివేయబడింది",
+ "deleteConfirm": "తొలగింపును నిర్ధారించండి",
+ "check": "తనిఖీ చేయండి",
+ "safeSearch": "సురక్షిత శోధన",
+ "protocolLastActivity": "ప్రోటోకాల్ చివరి కార్యకలాపం",
+ "openMcpDashboard": "Mcp డాష్బోర్డ్ను తెరవండి",
+ "testBenchTab": "పరీక్షా వేదిక",
+ "chatPathLabel": "చాట్ పాత్ లేబుల్",
+ "retryDelay": "మళ్లీ ప్రయత్నించే ఆలస్యం",
+ "errorUpdating": "నవీకరించడంలో లోపం",
+ "ideCliIntegrations": "IDE CLI అనుసంధానాలు",
+ "imageGeneration": "చిత్ర సృష్టి",
+ "apiKeyRequired": "API కీ అవసరం",
+ "resetAllTitle": "అన్నింటినీ రీసెట్ చేయండి",
+ "connectionError": "కనెక్షన్ లోపం",
+ "modelName": "మోడల్ పేరు",
+ "apiKeyForCheck": "తనిఖీ కోసం API కీ",
+ "cloudRequestTimeout": "క్లౌడ్ అభ్యర్థన గడువు ముగిసింది",
+ "showConfiguredOnly": "కాన్ఫిగర్ చేసినవి మాత్రమే చూపించండి",
"showFreeOnly": "ఉచితం మాత్రమే",
"addFirstProvider": "మీ మొదటి ప్రొవైడర్ని జోడించండి",
"addFirstProviderDesc": "OmniRoute ద్వారా రూటింగ్ అభ్యర్థనలను ప్రారంభించడానికి AI ప్రొవైడర్ను కనెక్ట్ చేయండి. మీరు ఉచిత ప్రొవైడర్లు, API కీలు లేదా OAuth ఖాతాలను ఉపయోగించవచ్చు.",
"learnMore": "మరింత తెలుసుకోండి",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "డొమైన్లను చేర్చండి",
+ "promptCache": "ప్రాంప్ట్ కాష్",
+ "cloudConnected": "క్లౌడ్ కనెక్ట్ చేయబడింది",
+ "deleteChain": "చైన్ను తొలగించండి",
+ "chatPathPlaceholder": "చాట్ పాత్ ప్లేస్హోల్డర్",
+ "databasePath": "డేటాబేస్ పాత్",
+ "usingLocalServer": "స్థానిక సర్వర్ను ఉపయోగిస్తోంది",
+ "globalComboConfig": "గ్లోబల్ కాంబో కాన్ఫిగరేషన్",
+ "backupFailed": "బ్యాకప్ విఫలమైంది",
+ "tabProtocols": "ప్రోటోకాల్ల ట్యాబ్",
+ "continue": "కొనసాగించండి",
+ "categorySearch": "వర్గ శోధన",
+ "rateLimitStatus": "రేట్ పరిమితి స్థితి",
+ "repairEnvSuccess": "ఎన్విరాన్మెంట్ విజయవంతంగా మరమ్మతు చేయబడింది",
+ "nameRequired": "పేరు అవసరం",
+ "country": "దేశం",
+ "trackMetricsDesc": "మెట్రిక్లను ట్రాక్ చేయడం గురించిన వివరణ",
+ "durationSecondsShort": "వ్యవధి (సెకన్లు)",
+ "formatConverterDescription": "ఫార్మాట్ కన్వర్టర్ వివరణ",
+ "cloudBenefitAccess": "క్లౌడ్ ప్రయోజన యాక్సెస్",
+ "maxRetries": "గరిష్ఠ పునఃప్రయత్నాలు",
+ "queueTimeout": "క్యూ గడువు ముగింపు",
"queueDepth": "క్యూ లోతు",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "ప్రొవైడర్ను జోడించండి",
+ "realtime": "రియల్టైమ్",
+ "totalTranslations": "మొత్తం అనువాదాలు",
+ "protocolActiveStreamsLabel": "ప్రోటోకాల్ సక్రియ స్ట్రీమ్ల లేబుల్",
+ "repairEnv": "Envను మరమ్మతు చేయండి",
+ "modelsCount": "మోడళ్ల సంఖ్య",
+ "viewBackups": "బ్యాకప్లను వీక్షించండి",
+ "responsesApi": "Responses API",
+ "copyComboName": "కాంబో పేరును కాపీ చేయండి",
+ "failures": "వైఫల్యాలు",
+ "failedUpdate": "నవీకరణ విఫలమైంది",
+ "imageDesc": "చిత్ర వివరణ",
+ "failedCreate": "సృష్టించడం విఫలమైంది",
+ "remainingOfLimit": "పరిమితిలో మిగిలినది",
+ "protocolsTitle": "ప్రోటోకాల్స్ శీర్షిక",
+ "expirationBannerExpiringSoonDesc": "త్వరలో గడువు ముగియనున్న బ్యానర్ వివరణ",
+ "source": "మూలం",
+ "failed": "విఫలమైంది",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "MCP త్వరిత ప్రారంభం దశ 1",
+ "runTest": "పరీక్షను అమలు చేయండి",
+ "loadingFallbackChains": "ఫాల్బ్యాక్ చైన్లు లోడ్ అవుతున్నాయి",
+ "healthy": "సక్రమంగా ఉంది",
+ "version": "వెర్షన్",
+ "saveBlockWeighted": "వెయిటెడ్ బ్లాక్ను సేవ్ చేయండి",
+ "zedImportNone": "Zed దిగుమతి ఏదీ లేదు",
+ "noBackupsYet": "ఇంకా బ్యాకప్లు లేవు",
+ "noGlobalProxy": "గ్లోబల్ ప్రాక్సీ లేదు",
+ "noModels": "మోడళ్లు లేవు",
+ "stickyLimit": "స్టికీ పరిమితి",
+ "passedCount": "ఉత్తీర్ణమైన వాటి సంఖ్య",
+ "zedImportFailed": "Zed దిగుమతి విఫలమైంది",
+ "saving": "సేవ్ అవుతోంది",
+ "testAll": "అన్నింటినీ పరీక్షించండి",
+ "globalProxyDesc": "గ్లోబల్ ప్రాక్సీ వివరణ",
+ "latencyP99": "లేటెన్సీ P99",
+ "connectingToCloud": "క్లౌడ్కు కనెక్ట్ అవుతోంది",
+ "responses": "ప్రతిస్పందనలు",
+ "errorDeleting": "తొలగించడంలో లోపం",
+ "openaiPrefixPlaceholder": "Openai ప్రిఫిక్స్ ప్లేస్హోల్డర్",
+ "enterPassword": "పాస్వర్డ్ను నమోదు చేయండి",
+ "openA2aDashboard": "A2A డాష్బోర్డ్ను తెరవండి",
+ "enableProvider": "ప్రొవైడర్ను ప్రారంభించండి",
+ "modeTest": "పరీక్ష మోడ్",
+ "failedDeleteChain": "చైన్ను తొలగించడం విఫలమైంది",
+ "providerDesc": "ప్రొవైడర్ వివరణ",
+ "templateLoadHint": "టెంప్లేట్ లోడ్ సూచన",
+ "lastFailure": "చివరి వైఫల్యం",
+ "moveDown": "కిందికి తరలించండి",
+ "providerLabel": "ప్రొవైడర్ లేబుల్",
+ "clearCacheFailed": "క్యాష్ను క్లియర్ చేయడం విఫలమైంది",
+ "imagesGenerations": "చిత్రాల సృష్టి",
+ "repairEnvWorking": "వాతావరణ మరమ్మతు జరుగుతోంది",
+ "millisecondsShort": "మి.సె.",
+ "globalLabel": "గ్లోబల్ లేబుల్",
+ "failuresPlural": "వైఫల్యాలు",
+ "completionsLegacyDesc": "లెగసీ కంప్లీషన్ల వివరణ",
+ "searchProviders": "ప్రొవైడర్లను శోధించండి",
+ "chatPathHint": "చాట్ పాత్ సూచన",
+ "defaultStrategyDesc": "డిఫాల్ట్ వ్యూహం వివరణ",
+ "latencyP95": "లేటెన్సీ P95",
+ "textToSpeech": "టెక్స్ట్ నుండి స్పీచ్",
+ "searchType": "శోధన రకం",
+ "messages": "సందేశాలు",
+ "aggregatorsGateways": "అగ్రిగేటర్లు మరియు గేట్వేలు",
+ "comboStrategyAria": "కాంబో వ్యూహం Aria",
+ "input": "ఇన్పుట్",
+ "testingConnection": "కనెక్షన్ను పరీక్షిస్తోంది",
+ "excludeDomains": "డొమైన్లను మినహాయించండి",
+ "webCookieProviders": "వెబ్ కుకీ ప్రొవైడర్లు",
+ "allTestsPassed": "అన్ని పరీక్షలు విజయవంతమయ్యాయి",
+ "openaiCompatibleName": "Openai అనుకూల పేరు",
+ "warningCostOptimizedPartialPricing": "హెచ్చరిక: ఖర్చు-ఆప్టిమైజ్ చేసిన ఎంపికకు పాక్షిక ధర సమాచారం మాత్రమే ఉంది",
+ "comboDefaultsGuideTitle": "కాంబో డిఫాల్ట్ల మార్గదర్శిని శీర్షిక",
+ "hoursAgo": "గంటల క్రితం",
+ "notAvailable": "అందుబాటులో లేదు",
+ "skipAndContinue": "దాటవేసి కొనసాగించండి",
+ "moderations": "మోడరేషన్లు",
+ "proxyConfig": "ప్రాక్సీ కాన్ఫిగరేషన్",
+ "upstreamProxyProviders": "అప్స్ట్రీమ్ ప్రాక్సీ ప్రొవైడర్లు",
+ "exportAll": "అన్నింటినీ ఎగుమతి చేయండి",
+ "queuedCount": "క్యూలో ఉన్న వాటి సంఖ్య",
+ "resetAll": "అన్నింటినీ రీసెట్ చేయండి",
+ "noTranslations": "అనువాదాలు లేవు",
+ "avgLatency": "సగటు లేటెన్సీ",
+ "throttleStatus": "థ్రాటిల్ స్థితి",
+ "backupRetentionDesc": "బ్యాకప్ నిల్వ వివరణ",
+ "noCBData": "Cb డేటా లేదు",
+ "chainDeleted": "చైన్ తొలగించబడింది",
+ "timeLeft": "మిగిలిన సమయం",
+ "expirationBannerExpired": "గడువు ముగిసిన బ్యానర్",
+ "language": "భాష",
+ "invalidFileType": "చెల్లని ఫైల్ రకం",
+ "monitoredProviders": "పర్యవేక్షించబడుతున్న ప్రొవైడర్లు",
+ "errors": "లోపాలు",
+ "heap": "హీప్",
+ "chatCompletions": "చాట్ పూర్తీకరణలు",
+ "exampleTemplatesHint": "ఉదాహరణ టెంప్లేట్ల సూచన",
+ "retryDelayLabel": "మళ్లీ ప్రయత్నించే ఆలస్యం లేబుల్",
+ "audioTranscription": "ఆడియో లిప్యంతరీకరణ",
+ "fallbackChainsDesc": "ఫాల్బ్యాక్ చైన్ల వివరణ",
+ "exampleTemplates": "ఉదాహరణ టెంప్లేట్లు",
+ "connectionsCount": "కనెక్షన్ల సంఖ్య",
+ "modelsPathLabel": "మోడల్ల పాత్ లేబుల్",
+ "activeProvidersHint": "యాక్టివ్ ప్రొవైడర్ల సూచన",
+ "activeLockouts": "యాక్టివ్ లాకౌట్లు",
+ "invalid": "చెల్లదు",
+ "skipPassword": "పాస్వర్డ్ను దాటవేయండి",
+ "moveUp": "పైకి తరలించండి",
+ "timeRange": "సమయ పరిధి",
+ "stickyLimitDesc": "స్టికీ పరిమితి వివరణ",
+ "cloudBenefitEdge": "క్లౌడ్ ప్రయోజన అంచు",
+ "custom": "అనుకూలం",
+ "verifying": "ధృవీకరిస్తోంది",
+ "baseUrlLabel": "బేస్ URL లేబుల్",
+ "setPassword": "పాస్వర్డ్ను సెట్ చేయండి",
+ "safeSearchStrict": "కఠినమైన సురక్షిత శోధన",
+ "noChangesSinceBackup": "బ్యాకప్ తర్వాత మార్పులు లేవు",
+ "modelsPathHint": "మోడల్స్ పాత్ సూచన",
+ "audioTranscriptions": "ఆడియో లిప్యంతరీకరణలు",
+ "testCombo": "కాంబోను పరీక్షించండి",
+ "mcpQuickStartTitle": "Mcp త్వరిత ప్రారంభ శీర్షిక",
+ "comboUpdated": "కాంబో నవీకరించబడింది",
+ "weighted": "బరువు కేటాయించినది",
+ "providers": "ప్రొవైడర్లు",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
- "chatTesterTab": "Chat Tester",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "noFallbackChainsDesc": "ఫాల్బ్యాక్ చైన్లు లేవు వివరణ",
+ "yesImport": "అవును, దిగుమతి చేయండి",
+ "lockoutsAutoRefreshHint": "లాకౌట్ల స్వీయ రిఫ్రెష్ సూచన",
+ "tabApis": "Apis ట్యాబ్",
+ "sectionDescription": "విభాగం వివరణ",
+ "filter": "ఫిల్టర్",
+ "purgeLogsFailed": "లాగ్ల తొలగింపు విఫలమైంది",
+ "latency": "జాప్యం",
+ "testAllOAuth": "అన్ని O Authలను పరీక్షించండి",
+ "mcpQuickStartStep3": "Mcp త్వరిత ప్రారంభ దశ 3",
+ "repairEnvFailed": "Env మరమ్మతు విఫలమైంది",
+ "zedImportHint": "Zed దిగుమతి సూచన",
+ "modelsAcrossEndpoints": "ఎండ్పాయింట్లలోని మోడల్స్",
+ "autoDisableBannedAccounts": "నిషేధిత ఖాతాలను స్వయంచాలకంగా నిలిపివేయండి",
+ "securityDesc": "భద్రత వివరణ",
+ "listModels": "మోడల్స్ను జాబితా చేయండి",
+ "backupRestore": "బ్యాకప్ పునరుద్ధరణ",
+ "target": "లక్ష్యం",
+ "zedImportSuccess": "Zed దిగుమతి విజయవంతమైంది",
+ "lastHeaderUpdate": "చివరి హెడర్ నవీకరణ",
+ "categoryCore": "కోర్ వర్గం",
+ "noFallbackChains": "ఫాల్బ్యాక్ చైన్లు లేవు",
+ "noSearchProviders": "శోధన ప్రొవైడర్లు లేరు",
+ "autoBalance": "స్వీయ సమతుల్యం",
+ "noModelsYet": "ఇంకా మోడల్స్ లేవు",
+ "signatureFamily": "సంతకం కుటుంబం",
+ "externalApiCalls": "బాహ్య Api కాల్స్",
+ "providerOverridesDesc": "ప్రొవైడర్ ఓవర్రైడ్ల వివరణ",
+ "signatureTool": "సంతకం సాధనం",
+ "connectionFailed": "కనెక్షన్ విఫలమైంది",
+ "activeLimitersPlural": "క్రియాశీల పరిమితికారకాలు",
+ "doneDesc": "పూర్తయింది వివరణ",
+ "down": "డౌన్",
+ "noDataYet": "ఇంకా డేటా లేదు",
+ "activeProviders": "సక్రియ ప్రొవైడర్లు",
+ "nameInvalid": "పేరు చెల్లదు",
+ "skip": "దాటవేయి",
+ "createChain": "చైన్ను సృష్టించు",
+ "audioSpeech": "ఆడియో ప్రసంగం",
+ "cacheCleared": "క్యాష్ క్లియర్ చేయబడింది",
+ "searchTypeNews": "శోధన రకం: వార్తలు",
+ "durationMillisecondsShort": "వ్యవధి (మిల్లీసెకన్లు, సంక్షిప్తం)",
+ "addOpenAICompatible": "OpenAI-అనుకూలమైనదాన్ని జోడించు",
+ "chatTesterTab": "చాట్ టెస్టర్",
+ "queued": "క్యూలో ఉంది",
+ "domainPlaceholder": "డొమైన్ ప్లేస్హోల్డర్",
+ "durationMinutesShort": "వ్యవధి (నిమిషాలు, సంక్షిప్తం)",
+ "verifyingConnection": "కనెక్షన్ను ధృవీకరిస్తోంది",
+ "imageProviders": "చిత్ర ప్రొవైడర్లు",
+ "protocolToolsLabel": "ప్రోటోకాల్ సాధనాల లేబుల్",
+ "queryPlaceholder": "క్వెరీ ప్లేస్హోల్డర్",
+ "videoGeneration": "వీడియో జనరేషన్",
+ "timeRangeWeek": "సమయ పరిధి: వారం",
+ "limitExhausted": "పరిమితి ముగిసింది",
+ "failedDisable": "నిలిపివేయడం విఫలమైంది",
+ "inMemoryNote": "ఇన్-మెమరీ గమనిక",
+ "compatibleHint": "అనుకూలత సూచన",
+ "errorShort": "సంక్షిప్త లోపం",
+ "advancedHint": "అధునాతన సూచన",
+ "restoreFailed": "పునరుద్ధరణ విఫలమైంది",
+ "searchProvidersHeading": "శోధన ప్రొవైడర్ల శీర్షిక",
+ "comboName": "కాంబో పేరు",
+ "autoDisableDescription": "స్వయంచాలక నిలిపివేత వివరణ",
+ "embeddingsDesc": "ఎంబెడ్డింగ్ల వివరణ",
+ "operational": "కార్యాచరణలో ఉంది",
+ "testAllApiKey": "అన్ని API కీలను పరీక్షించు",
+ "backupCreated": "బ్యాకప్ సృష్టించబడింది",
+ "errorDuringImport": "దిగుమతి సమయంలో లోపం",
+ "comboDefaultsGuideHint2": "కాంబో డిఫాల్ట్ల గైడ్ సూచన 2",
+ "connecting": "కనెక్ట్ అవుతోంది",
+ "fillModelAndProviders": "మోడల్ మరియు ప్రొవైడర్లను పూరించండి",
+ "syncing": "సమకాలీకరిస్తోంది",
+ "resetConfirm": "రీసెట్ నిర్ధారణ",
+ "trackMetrics": "మెట్రిక్లను ట్రాక్ చేయండి",
+ "successful": "విజయవంతం",
+ "recovering": "పునరుద్ధరిస్తోంది",
+ "autoDisableThreshold": "స్వయంచాలకంగా నిలిపివేసే పరిమితి",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "డేటాను సమకాలీకరిస్తోంది",
+ "cloudBenefitPorts": "క్లౌడ్ ప్రయోజన పోర్ట్లు",
+ "compatibleProviders": "అనుకూల ప్రొవైడర్లు",
"freeTierProviders": "ఉచిత టైర్ ప్రొవైడర్లు",
"freeTierLabel": "ఉచిత టైర్ అందుబాటులో ఉంది",
"freeTierProvidersDesc": "ఉచిత శ్రేణులతో ఉన్న ప్రొవైడర్లు — కొన్నింటికి API కీ సైన్అప్ అవసరం, ఇతరులకు ఎటువంటి ఆధారాలు అవసరం లేదు.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "క్యాష్ను క్లియర్ చేయండి",
+ "reqs": "అభ్యర్థనలు",
+ "addAnthropicCompatible": "Anthropic అనుకూల ప్రొవైడర్ను జోడించండి",
+ "apiKeyProviders": "API కీ ప్రొవైడర్లు",
+ "tabsAria": "ట్యాబ్ల ARIA",
+ "resetting": "రీసెట్ చేస్తోంది",
+ "millisecondsAbbr": "మిల్లీసెకన్ల సంక్షిప్త రూపం",
+ "backupReasonPreRestore": "పునరుద్ధరణకు ముందు బ్యాకప్ కారణం",
+ "disableCloud": "క్లౌడ్ను నిలిపివేయండి",
+ "newProviderNameAria": "కొత్త ప్రొవైడర్ పేరు ARIA",
+ "passwordsMismatch": "పాస్వర్డ్లు సరిపోలడం లేదు",
+ "a2aQuickStartStep3": "A2A త్వరిత ప్రారంభం దశ 3",
+ "liveMonitorDescriptionSuffix": "లైవ్ మానిటర్ వివరణ ప్రత్యయం",
+ "failedAddProvider": "ప్రొవైడర్ను జోడించడం విఫలమైంది",
+ "addAtLeastOneProvider": "కనీసం ఒక ప్రొవైడర్ను జోడించండి",
+ "reasonSeparator": "కారణ విభాజకం",
+ "zedImporting": "Zed దిగుమతి చేస్తోంది",
+ "confirmPasswordPlaceholder": "పాస్వర్డ్ను నిర్ధారించండి",
+ "whatYouGet": "మీకు లభించేవి",
+ "signatureSession": "సంతకం సెషన్",
+ "errorCountNoCode": "కోడ్ లేని లోపాల సంఖ్య",
+ "testing": "పరీక్షిస్తోంది",
+ "providersCommaSeparated": "కామాలతో వేరు చేసిన ప్రొవైడర్లు",
+ "exportDatabase": "డేటాబేస్ను ఎగుమతి చేయండి",
+ "hitRate": "హిట్ రేట్",
+ "completionsLegacy": "కంప్లీషన్లు (లెగసీ)",
+ "removeModel": "మోడల్ను తొలగించండి",
+ "timeRangeDay": "కాల పరిధి: రోజు",
+ "cloudRequestFailed": "క్లౌడ్ అభ్యర్థన విఫలమైంది",
+ "updatedAt": "నవీకరించిన సమయం",
+ "monitoredProvidersHint": "పర్యవేక్షించబడే ప్రొవైడర్ల సూచన",
+ "connectionSuccessful": "కనెక్షన్ విజయవంతమైంది",
+ "latencyP50": "లేటెన్సీ P50",
+ "logsDeleted": "లాగ్లు తొలగించబడ్డాయి",
+ "chatTester": "చాట్ టెస్టర్",
+ "safeSearchOff": "సురక్షిత శోధన ఆఫ్లో ఉంది",
+ "nameHint": "పేరు సూచన",
+ "debugToggle": "డీబగ్ టోగుల్",
+ "embedding": "ఎంబెడ్డింగ్",
+ "issuesLabel": "సమస్యల లేబుల్",
+ "optionAny": "ఏదైనా ఎంపిక",
+ "maxNestingDepth": "గరిష్ఠ నెస్టింగ్ లోతు",
+ "rerank": "రీర్యాంక్",
+ "checking": "తనిఖీ చేస్తోంది",
+ "getStarted": "ప్రారంభించండి",
+ "restoreSuccess": "పునరుద్ధరణ విజయవంతమైంది",
+ "issuesDetected": "సమస్యలు గుర్తించబడ్డాయి",
+ "signatureCache": "సిగ్నేచర్ క్యాష్",
+ "modelLockouts": "మోడల్ లాకౌట్లు",
+ "usingCloudProxy": "Cloud Proxy ఉపయోగిస్తోంది",
+ "loadingHealth": "హెల్త్ను లోడ్ చేస్తోంది",
+ "providerOverrides": "ప్రొవైడర్ ఓవర్రైడ్లు",
+ "audioTranscriptionDesc": "ఆడియో ట్రాన్స్క్రిప్షన్ వివరణ",
+ "learnedFromHeaders": "హెడర్ల నుండి నేర్చుకున్నవి",
+ "totalRequests": "మొత్తం అభ్యర్థనలు",
+ "cloudUnstableNote": "Cloud అస్థిరత గమనిక",
"gamificationAdmin": "Gamification అడ్మిన్",
"monitorAnomaliesAndHealth": "క్రమరాహిత్యాలు మరియు సిస్టమ్ ఆరోగ్యాన్ని పర్యవేక్షించండి",
"flaggedAnomalies": "అసమానతలు ఫ్లాగ్ చేయబడ్డాయి",
@@ -704,7 +704,7 @@
"apiKey": "API కీ",
"xpLastHour": "XP (1గం)",
"zScore": "Z-స్కోరు",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "అనుమానాస్పదం",
"tokensCommunityServers": "కమ్యూనిటీ సర్వర్లు",
"tokensServerNamePlaceholder": "సర్వర్ పేరు",
"tokensApiKeyPlaceholder": "API కీ",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "మరింత లోడ్ అవుతోంది…",
"recommended": "సిఫార్సు చేయబడింది",
"understand": "నాకు అర్థమైంది",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "బ్యాచ్ ప్రాసెసింగ్",
+ "batchConceptSubtitle": "ఖర్చులో ~50%తో వేలాది అభ్యర్థనలను అసింక్రోనస్గా ప్రాసెస్ చేయండి (24గం. వ్యవధి). మూల్యాంకనాలు, వర్గీకరణ మరియు ఎంబెడ్డింగ్లకు అనువైనది.",
+ "batchConceptHowItWorks": "ఇది ఎలా పనిచేస్తుంది",
+ "batchConceptBenefit50pct": "ఇన్పుట్ + అవుట్పుట్ టోకెన్లపై 50% తగ్గింపు",
+ "batchConceptAsync24h": "24గం. పూర్తి వ్యవధితో అసింక్రోనస్",
+ "batchConceptUseCases": "భారీ స్థాయి వర్గీకరణ, మూల్యాంకనాలు మరియు ఎంబెడ్డింగ్లకు ఉత్తమమైనది",
+ "batchHeaderSubtitle": "అనేక అభ్యర్థనలను ఒకే జాబ్గా అమలు చేయండి",
+ "batchStep1": "1 · JSONL అప్లోడ్ చేయండి",
+ "batchStep1Desc": "అభ్యర్థనలను జోడించండి",
+ "batchStep2": "2 · బ్యాచ్ను సృష్టించండి",
+ "batchStep2Desc": "జాబ్ను అమలు చేయండి",
+ "batchStep3": "3 · ఫలితాలను పొందండి",
+ "batchStep3Desc": "అవుట్పుట్ను డౌన్లోడ్ చేయండి",
+ "filesConceptTitle": "బ్యాచ్ ఫైల్లు",
+ "filesConceptSubtitle": "బ్యాచ్లు ఉపయోగించే JSONL ఫైళ్లు: ఇన్పుట్ అభ్యర్థనలు, ఫలితాలు మరియు లోపాలు.",
+ "filesConceptInput": "ఇన్పుట్ — ప్రతి లైన్కు ఒక అభ్యర్థనతో మీ JSONL",
+ "filesConceptOutput": "అవుట్పుట్ — పూర్తయిన అభ్యర్థనల ఫలితాలు",
+ "filesConceptError": "లోపాలు — విఫలమైన అభ్యర్థనలు",
+ "filesConceptRetention": "నిల్వ వ్యవధి: డిఫాల్ట్గా 30 రోజులు (Anthropicలో 29 రోజులు)",
+ "wizardTitle": "కొత్త బ్యాచ్",
+ "wizardClose": "మూసివేయి",
+ "wizardNext": "తదుపరి",
+ "wizardBack": "వెనుకకు",
+ "wizardCancel": "రద్దు చేయి",
+ "wizardCreate": "బ్యాచ్ను సృష్టించు",
+ "wizardCreating": "సృష్టిస్తోంది…",
+ "wizardStep1Destination": "గమ్యస్థానం",
+ "wizardStep2Input": "ఇన్పుట్",
+ "wizardStep3Validate": "ధృవీకరించు",
+ "wizardStep4Cost": "ఖర్చు & సృష్టించు",
+ "wizardProviderLabel": "ప్రొవైడర్",
+ "wizardEndpointLabel": "ఎండ్పాయింట్",
+ "wizardModelLabel": "మోడల్",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (మేము మారుస్తాము)",
+ "wizardDropOrPick": "ఫైల్ను ఇక్కడ వదలండి లేదా ఎంచుకోవడానికి క్లిక్ చేయండి",
+ "wizardCsvMappingTitle": "CSV కాలమ్లు → అభ్యర్థన ఫీల్డ్లకు మ్యాప్ చేయండి",
+ "wizardCsvMappingAddField": "ఫీల్డ్ను జోడించు",
"wizardCsvNoColumns": "CSV హెడర్లో నిలువు వరుసలు ఏవీ గుర్తించబడలేదు.",
"wizardCsvIgnoreColumn": "— విస్మరించు —",
"wizardCsvCustomIdMapped": "custom_id మ్యాప్ చేయబడింది",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} అడ్డు వరుసలు పార్స్ చేయబడ్డాయి",
"wizardCsvRowsSkipped": "{count} అడ్డు వరుసలు దాటవేయబడ్డాయి",
"wizardCsvRowError": "వరుస {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "అన్ని లైన్లు చెల్లుబాటు అయ్యాయి",
"wizardValidating": "ధృవీకరిస్తోంది…",
"wizardValidationParseFailed": "ధృవీకరణ విఫలమైంది — కంటెంట్ను పార్స్ చేయడం సాధ్యపడలేదు.",
"wizardValidationSummary": "{lines} లైన్లు · {ids} ప్రత్యేకమైన custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "నకిలీ custom_ids గుర్తించబడ్డాయి:",
"wizardValidationFirstErrors": "లోపాలు (మొదటి {count}):",
"wizardValidationLine": "లైన్ {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "ధృవీకరణ లోపాలు",
+ "wizardValidationPreview": "ప్రివ్యూ (మొదటి 5 అభ్యర్థనలు)",
+ "wizardValidationSamplingNote": "ఫైల్ పెద్దదిగా ఉంది — నమూనా ఆధారంగా ధృవీకరించబడింది (మొదటి 1000 + చివరి 100 లైన్లు). పూర్తి ధృవీకరణ సర్వర్ వైపు అమలవుతుంది.",
+ "wizardCostSync": "సింక్ ఖర్చు",
+ "wizardCostBatch": "బ్యాచ్ ఖర్చు (-50%)",
+ "wizardCostSavings": "ఆదా",
+ "wizardCostEstimatedNotice": "అంచనా ఖర్చు — వాస్తవ బిల్లింగ్ మారవచ్చు.",
+ "wizardErrorUpload": "ఫైల్ను అప్లోడ్ చేయడం విఫలమైంది. మళ్లీ ప్రయత్నించండి.",
+ "wizardErrorCreate": "బ్యాచ్ను సృష్టించడం విఫలమైంది. మళ్లీ ప్రయత్నించండి.",
+ "wizardEmptyProviders": "బ్యాచ్ను సృష్టించడానికి బ్యాచ్ సపోర్ట్ ఉన్న ప్రొవైడర్ను (OpenAI, Anthropic లేదా Gemini) కనెక్ట్ చేయండి.",
+ "uploadModalTitle": "బ్యాచ్ ఫైల్ను అప్లోడ్ చేయండి",
+ "uploadModalDropOrPick": ".jsonl ఫైల్ను ఇక్కడ వదలండి లేదా ఎంచుకోవడానికి క్లిక్ చేయండి",
+ "uploadModalUpload": "అప్లోడ్ చేయి",
+ "uploadModalCancel": "రద్దు చేయి",
+ "uploadModalError": "అప్లోడ్ విఫలమైంది. మళ్లీ ప్రయత్నించండి.",
+ "uploadModalSuccess": "అప్లోడ్ చేయబడింది",
+ "uploadModalSizeLimit": "గరిష్ఠం 512 MB",
+ "batchListNewButton": "కొత్త బ్యాచ్",
+ "batchListAutoRefresh": "30 సెకన్లకు స్వయంచాలక రీఫ్రెష్",
+ "batchListCostColumn": "ఖర్చు",
+ "batchActionCancel": "రద్దు చేయండి",
+ "batchActionDownloadOutput": "అవుట్పుట్ను డౌన్లోడ్ చేయండి",
+ "batchActionDownloadErrors": "లోపాలను డౌన్లోడ్ చేయండి",
+ "batchActionRetry": "విఫలమైన వాటిని మళ్లీ ప్రయత్నించండి",
+ "batchActionRetryConfirm": "విఫలమైన {n} అభ్యర్థి(ల)ను మళ్లీ ప్రయత్నించాలా? వాస్తవంగా వినియోగించిన టోకెన్లపై తుది ఖర్చు ఆధారపడి ఉంటుంది.",
+ "expirationBadgeCritical": "అత్యవసరం",
+ "expirationBadgeWarning": "త్వరలో",
+ "expirationBadgeNormal": "పెండింగ్లో ఉంది",
+ "expirationBadgeExpired": "గడువు ముగిసింది",
+ "filesListUploadButton": "అప్లోడ్ చేయండి",
+ "filesListUsedByColumn": "దీని ద్వారా ఉపయోగించబడింది",
+ "filesListUsedByNone": "ఏదీ లేదు",
+ "filesListUsedByRoleInput": "ఇన్పుట్",
+ "filesListUsedByRoleOutput": "అవుట్పుట్",
+ "filesListUsedByRoleError": "లోపం",
+ "filesListSizeColumn": "పరిమాణం",
+ "batchListProgressPartial": "(పాక్షికం)",
+ "batchListProviderColumn": "ప్రొవైడర్",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "ఇతర",
+ "batchListTitle": "బ్యాచ్లు",
+ "batchListCount": "{count} బ్యాచ్లు",
+ "batchListRemovingCompleted": "తొలగిస్తోంది…",
+ "batchListRemoveCompleted": "పూర్తయిన వాటిని తొలగించండి",
+ "batchListTableStatus": "స్థితి",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "ఎండ్పాయింట్",
+ "batchListTableModel": "మోడల్",
+ "batchListTableProgress": "పురోగతి",
+ "batchListTableCreated": "సృష్టించబడింది",
+ "batchListTableExpires": "గడువు ముగుస్తుంది",
+ "batchListLoading": "లోడ్ అవుతోంది…",
+ "batchListEmpty": "బ్యాచ్లు ఏవీ కనుగొనబడలేదు",
+ "batchListValidating": "ధృవీకరిస్తోంది…",
+ "batchStatusAll": "అన్ని స్థితులు",
+ "batchStatusInProgress": "ప్రాసెస్లో ఉంది",
+ "batchStatusValidating": "ధృవీకరిస్తోంది",
+ "batchStatusFinalizing": "తుది దశలో ఉంది",
+ "batchStatusCompleted": "పూర్తయింది",
+ "batchStatusFailed": "విఫలమైంది",
+ "batchStatusCancelled": "రద్దయింది",
+ "batchStatusCancelling": "రద్దు చేస్తోంది",
+ "batchStatusExpired": "గడువు ముగిసింది",
+ "batchStatusCompletedWithFailures": "వైఫల్యాలతో పూర్తయింది",
+ "batchStatusInProgressWithFailures": "ప్రాసెస్లో ఉంది (వైఫల్యాలతో)",
+ "batchStatusFinalizingWithFailures": "తుది దశలో ఉంది (వైఫల్యాలతో)",
+ "batchStatusCancelledWithFailures": "వైఫల్యాలతో రద్దయింది",
+ "batchStatusExpiredWithFailures": "గడువు ముగిసింది (పాక్షికం)",
+ "wizardCostEstimating": "ఖర్చును అంచనా వేస్తోంది…",
+ "wizardCostRequests": "అభ్యర్థనలు",
+ "wizardCostInputTok": "ఇన్పుట్ టోకెన్",
+ "wizardCostOutputTok": "అవుట్పుట్ టోకెన్",
+ "wizardCostWindow": "విండో",
+ "wizardDestinationSelectProvider": "ప్రొవైడర్ను ఎంచుకోండి…",
+ "wizardDestinationSelectModel": "మోడల్ను ఎంచుకోండి…",
+ "wizardDestinationConnectProvider": "ప్రొవైడర్ను కనెక్ట్ చేయండి",
+ "batchListBatchCreated": "బ్యాచ్ {id} సృష్టించబడింది — జాబితాను రిఫ్రెష్ చేస్తోంది…",
+ "batchListBatchCreatedDismiss": "మూసివేయి",
+ "batchListRefreshing": "రిఫ్రెష్ చేస్తోంది…",
+ "batchListRefresh": "రిఫ్రెష్ చేయి",
+ "uploadFileModalRemove": "తొలగించు",
+ "uploadFileModalUploading": "అప్లోడ్ చేస్తోంది…",
+ "wizardInputReading": "ఫైల్ను చదువుతోంది…",
+ "wizardInputReady": "సిద్ధంగా ఉంది",
+ "wizardInputLargeFileLabel": "పెద్ద ఫైల్ — నమూనా ధృవీకరణ",
+ "wizardInputCsvJsonlReady": "JSONL రూపొందించబడింది — ధృవీకరించడానికి సిద్ధంగా ఉంది.",
+ "wizardInputLargeFileWarning": "పెద్ద ఫైల్ గుర్తించబడింది — ధృవీకరణ నమూనా ఆధారంగా జరుగుతుంది (మొదటి 5 MB + చివరి 100 KB). పూర్తి ధృవీకరణ సర్వర్ వైపు జరుగుతుంది.",
+ "wizardCostWindow24h": "24గం. పూర్తి చేసే వ్యవధి",
+ "wizardValidationFieldsOk": "అవసరమైన ఫీల్డ్లు చెల్లుబాటు అవుతున్నాయి",
+ "filesListDelete": "తొలగించు",
+ "filesListDownload": "డౌన్లోడ్ చేయి",
+ "batchDetailActionCancel": "బ్యాచ్ను రద్దు చేయి",
+ "batchDetailActionRetry": "విఫలమైన అభ్యర్థనలను మళ్లీ ప్రయత్నించండి",
+ "batchDetailCancelling": "రద్దు చేస్తోంది…",
+ "batchDetailRetrying": "మళ్లీ ప్రయత్నించడానికి సిద్ధం చేస్తోంది…",
+ "batchDetailCancelConfirm": "ఈ బ్యాచ్ను రద్దు చేయాలా? ప్రస్తుతం ప్రాసెస్లో ఉన్న అభ్యర్థనలు ఆగిపోతాయి.",
+ "batchActionCancelError": "బ్యాచ్ను రద్దు చేయడం విఫలమైంది. మళ్లీ ప్రయత్నించండి.",
+ "batchActionRetryError": "విఫలమైన అభ్యర్థనలను మళ్లీ ప్రయత్నించడం విఫలమైంది. మళ్లీ ప్రయత్నించండి.",
+ "batchConceptRetentionNote": "ఫలితాలు మరియు లోపాల ఫైళ్లు 30 రోజుల పాటు (Anthropic: 29 రోజులు) నిల్వ ఉంచబడతాయి",
"batchFilesSizeColumn": "పరిమాణం",
"toggleNoAuthProvider": "నో-ఆథ్ ప్రొవైడర్ను టోగుల్ చేయండి",
"loadingModels": "మోడల్స్ లోడ్ అవుతున్నాయి…",
@@ -988,43 +988,47 @@
"disabled": "నిలిపివేయబడింది",
"featureFlagOmnirouteEmergencyFallbackDescription": "బడ్జెట్ ముగిసిపోయిన అభ్యర్థనలను అత్యవసర ఉచిత ఫాల్బ్యాక్ ప్రొవైడర్/మోడల్కు రూట్ చేయండి.",
"featureFlagArenaEloSyncEnabledDescription": "మోడల్ ఇంటెలిజెన్స్ ర్యాంకింగ్ల కోసం క్రమానుగత Arena AI లీడర్బోర్డ్ ELO సమకాలీకరణను ప్రారంభించండి.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "కాంబో రూటింగ్ మోడళ్లను మార్చినప్పుడు సంభాషణ సారాంశాలను రూపొందించి చొప్పించండి. మోడల్ మార్పులను స్వతంత్రంగా పరిగణించడానికి మరియు ప్రస్తుతం ఉన్న, భవిష్యత్తులో సృష్టించే అన్ని కాంబోల కోసం బ్యాక్గ్రౌండ్ హ్యాండ్ఆఫ్ అభ్యర్థనలను నిరోధించడానికి దీన్ని నిలిపివేయండి.",
"featureFlagExposeCcDiscoveryAliasesDescription": "/v1/models లో claude/<provider>/<model> మిర్రర్ ఐడీలను ప్రచారం చేయండి కాబట్టి Claude Code గేట్వే మోడల్ డిస్కవరీ non-Claude మోడళ్లను జాబితా చేస్తుంది. హెచ్చరిక: ఇది ప్రపంచవ్యాప్తంగా ప్రారంభించినప్పుడు అన్ని క్లయింట్ల కోసం కాటలాగ్ ఎంట్రీలను డబుల్ చేస్తుంది.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> గేట్వే అలియాస్ల కోసం ప్రధాన స్విచ్. ఆన్ (డిఫాల్ట్): అర్హత కలిగిన ప్రతి థింకింగ్-సామర్థ్యం గల Claude మోడల్కు /v1/models నో-థింకింగ్ వేరియంట్ను చూపిస్తుంది, అలాగే అభ్యర్థనలో పంపిన no-think/ id రీజనింగ్ను అణచివేస్తూ తిరిగి అసలు మోడల్కు పరిష్కరించబడుతుంది. ఆఫ్: ఏ వేరియంట్లూ చూపించబడవు మరియు no-think/ id ఇతర తెలియని మోడల్ id లాగానే పరిగణించబడుతుంది. ఇది ఆన్లో ఉన్నప్పుడు ఒక్కో మోడల్కు సంబంధించిన ModelSpec.noThinkingAlias ఆప్ట్-ఇన్/ఆప్ట్-అవుట్ ఇప్పటికీ వర్తిస్తుంది.",
"featureFlagChatVirtualLanesEnabledDescription": "ప్రొవైడర్ డిస్పాచ్ కోసం ప్రతి-టెనెంట్ అడాప్టివ్ వర్చువల్ అడ్మిషన్ లేన్లను ప్రారంభించండి (#9654): ఒక టెనెంట్ బర్స్ట్ ఇకపై మరొక టెనెంట్కు 503 ఇవ్వదు. OMNIROUTE_CHAT_VIRTUAL_LANES ఎన్విరాన్మెంట్ వేరియబుల్ ఈ డాష్బోర్డ్ సెట్టింగ్ కంటే ప్రాధాన్యత పొందుతుంది; మార్పులు సర్వర్ పునఃప్రారంభంలో ప్రభావం చూపుతాయి.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "డ్యాష్బోర్డ్ ప్రొవైడర్ పేజీలు: ప్రొవైడర్ గుర్తించే సంకేతాలపైనే ఉచిత బ్యాడ్జ్ను చూపించండి — డాక్యుమెంట్ చేయబడిన ఉచిత టైర్ లేని నమోదిత ప్రొవైడర్లలో డిస్ప్లే-పేరు హ్యూరిస్టిక్, బూలియన్ కాని ఉచిత ఫీల్డ్లు మరియు :free ప్రత్యయాలను విస్మరిస్తుంది. ఆఫ్ చేస్తే మునుపటి బ్యాడ్జ్ నియమాన్ని కొనసాగిస్తుంది.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy పూల్లు మరియు opencode యొక్క ఒక్కో ఖాతా రొటేషన్లో, అప్పుడే విఫలమైన Proxyని (TCP ప్రోబ్ తిరస్కరించబడటం లేదా దాని ద్వారా 429 అందుకోవడం) ప్రతి పునరావృతంతో రెట్టింపయ్యే, గరిష్ఠ పరిమితి వరకు ఉండే ఒక్కో ప్రాసెస్ వ్యవధిలో మళ్లీ అందించకుండా ఆపుతుంది. Proxy స్థితి ఏదీ వ్రాయబడదు; ప్రతి అభ్యర్థినీ పక్కన పెడితే ఎంపికలో మార్పు ఉండదు. డిఫాల్ట్గా ఆఫ్లో ఉంటుంది: ఎంపిక క్రమం సరిగ్గా సాధారణ రొటేషన్లానే ఉంటుంది.",
+ "featureFlagProxyPoolEgressObservationDescription": "డ్యాష్బోర్డ్లోని Proxy పూల్ కింద, గత 24 గంటల్లో దాని సభ్యులకు సేవలందించిన గమనించిన ఎగ్రెస్ IPల సంఖ్య, వాటిని ఉపయోగించిన కనెక్షన్ల సంఖ్య మరియు ఒకే IP వెనుక అత్యధికంగా కనిపించిన సంఖ్యను చూపండి. ఇది చదవడానికి మాత్రమే, Proxy లాగ్ నుండి గణించబడుతుంది, రూటింగ్ కోసం ఎప్పుడూ ఉపయోగించబడదు. డిఫాల్ట్గా ఆఫ్లో ఉంటుంది: పూల్ ఎడిటర్ మారదు మరియు పరిశీలన రూట్ null అని సమాధానమిస్తుంది.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Proxy ఆరోగ్య స్వీప్లో, లక్ష్యం తిరస్కరించిన ప్రోబ్ (401/403/429: Proxy ప్రసారం చేసింది, గమ్యస్థానం ఈ ఎగ్రెస్ IPని తిరస్కరించింది) విజయవంతంగా సేవలందించిన ప్రోబ్లాగే Proxy యొక్క వరుస వైఫల్యాల పరంపరను రీసెట్ చేయనివ్వండి. డిఫాల్ట్గా ఆఫ్లో ఉంటుంది: తిరస్కరణ తటస్థంగానే ఉండి పరంపరను అలాగే ఉంచుతుంది. ఏ విధంగానైనా 5xx అనిశ్చితంగానే ఉంటుంది, అలాగే తిరస్కరణ ఎప్పుడూ Proxyని తొలగించదు, నిలిపివేయదు లేదా మళ్లీ సక్రియం చేయదు.",
"sidebar": {
- "home": "Home",
- "dashboard": "Dashboard",
- "providers": "Providers",
- "combos": "Combos",
- "usage": "Usage",
- "analytics": "Analytics",
- "costs": "Costs",
- "health": "Health",
+ "home": "హోమ్",
+ "dashboard": "డ్యాష్బోర్డ్",
+ "providers": "ప్రొవైడర్లు",
+ "combos": "కాంబోలు",
+ "usage": "వినియోగం",
+ "analytics": "విశ్లేషణలు",
+ "costs": "ఖర్చులు",
+ "health": "స్థితి",
"proxy": "ప్రాక్సీ",
"limits": "Limits & Quotas",
- "cliTools": "CLI Tools",
- "media": "Media",
- "settings": "Settings",
- "translator": "Translator",
- "playground": "Playground",
- "searchTools": "Search Tools",
- "agents": "Agents",
+ "cliTools": "CLI సాధనాలు",
+ "media": "మీడియా",
+ "settings": "సెట్టింగ్లు",
+ "translator": "అనువాదకుడు",
+ "playground": "ప్లేగ్రౌండ్",
+ "searchTools": "శోధన సాధనాలు",
+ "agents": "ఏజెంట్లు",
"cloudAgents": "క్లౌడ్ ఏజెంట్లు",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "మెమరీ",
+ "skills": "నైపుణ్యాలు",
"omniSkills": "ఓమ్నిస్కిల్స్",
"agentSkills": "ఏజెంట్ నైపుణ్యాలు",
"chaosConfig": "ఖోస్ మోడ్",
- "docs": "Docs",
- "issues": "Issues",
- "endpoints": "Endpoints",
+ "docs": "డాక్యుమెంటేషన్",
+ "issues": "సమస్యలు",
+ "endpoints": "ఎండ్పాయింట్లు",
"endpointsSubtitle": "మీ AI కనెక్షన్ URLలు",
- "apiManager": "API Keys",
+ "apiManager": "API కీలు",
"apiManagerSubtitle": "API కీలు మరియు యాక్సెస్ని నిర్వహించండి",
"embeddedServices": "ఎంబెడ్ సేవలు",
"embeddedServicesSubtitle": "స్థానిక ప్రాక్సీ సేవలను నిర్వహించండి",
- "logs": "Logs",
+ "logs": "లాగ్లు",
"webhooks": "వెబ్బూక్స్",
"webhooksSubtitle": "ఈవెంట్ల గురించి తెలియజేయండి",
"logExport": "లాగ్ ఎగుమతి",
@@ -1033,82 +1037,82 @@
"batchSubtitle": "బహుళ అభ్యర్థనలను ప్రాసెస్ చేయండి",
"contextCavemanSubtitle": "ప్రాంప్ట్ కుదింపు",
"contextRtkSubtitle": "అవుట్పుట్ ఫిల్టరింగ్",
- "auditLog": "Audit Log",
- "shutdown": "Shutdown",
- "restart": "Restart",
- "shutdownConfirm": "Shut down OmniRoute?",
- "restartConfirm": "Restart OmniRoute?",
+ "auditLog": "ఆడిట్ లాగ్",
+ "shutdown": "షట్డౌన్",
+ "restart": "పునఃప్రారంభించు",
+ "shutdownConfirm": "OmniRouteను షట్డౌన్ చేయాలా?",
+ "restartConfirm": "OmniRouteను పునఃప్రారంభించాలా?",
"version": "v{version}",
"debug": "Debug",
- "system": "System",
- "help": "Help",
+ "system": "సిస్టమ్",
+ "help": "సహాయం",
"primarySection": "Main",
"cliSection": "CLI",
"debugSection": "Debug",
"systemSection": "System",
"helpSection": "Help",
- "serverDisconnected": "Server Disconnected",
- "serverDisconnectedMsg": "The proxy server has been stopped or is restarting.",
- "expandSidebar": "Expand sidebar",
- "collapseSidebar": "Collapse sidebar",
- "themes": "Themes",
- "presetColors": "Popular colors",
- "createTheme": "Create theme",
- "chooseColor": "Pick one color",
- "themeCoral": "Coral",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
- "cliToolsShort": "Tools",
+ "serverDisconnected": "సర్వర్ డిస్కనెక్ట్ అయింది",
+ "serverDisconnectedMsg": "ప్రాక్సీ సర్వర్ ఆపివేయబడింది లేదా పునఃప్రారంభమవుతోంది.",
+ "expandSidebar": "సైడ్బార్ను విస్తరించు",
+ "collapseSidebar": "సైడ్బార్ను కుదించు",
+ "themes": "థీమ్లు",
+ "presetColors": "ప్రసిద్ధ రంగులు",
+ "createTheme": "థీమ్ను సృష్టించండి",
+ "chooseColor": "ఒక రంగును ఎంచుకోండి",
+ "themeCoral": "పగడపు రంగు",
+ "themeBlue": "నీలం",
+ "themeRed": "ఎరుపు",
+ "themeGreen": "ఆకుపచ్చ",
+ "themeViolet": "ఊదా",
+ "themeOrange": "నారింజ",
+ "themeCyan": "సయాన్",
+ "cliToolsShort": "సాధనాలు",
"cache": "Cache",
"cacheShort": "Cache",
"batch": "Batch Testing",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
- "contextCaveman": "Caveman",
+ "themeSystem": "థీమ్ వ్యవస్థ",
+ "whitelabelingDesc": "వైట్లేబెలింగ్ వివరణ",
+ "switchThemes": "థీమ్లను మార్చండి",
+ "themeAccentDesc": "థీమ్ యాక్సెంట్ వివరణ",
+ "uploadFavicon": "ఫేవికాన్ను అప్లోడ్ చేయండి",
+ "themeDark": "డార్క్ థీమ్",
+ "customLogoDesc": "అనుకూల లోగో వివరణ",
+ "sidebarVisibilityToggle": "సైడ్బార్ దృశ్యమానత టాగుల్",
+ "themeAccent": "థీమ్ యాక్సెంట్",
+ "resetFavicon": "ఫేవికాన్ను రీసెట్ చేయండి",
+ "whitelabeling": "వైట్లేబెలింగ్",
+ "darkMode": "డార్క్ మోడ్",
+ "uploadLogo": "లోగోను అప్లోడ్ చేయండి",
+ "themeLight": "లైట్ థీమ్",
+ "appName": "యాప్ పేరు",
+ "appNameDesc": "యాప్ పేరు వివరణ",
+ "resetLogo": "లోగోను రీసెట్ చేయండి",
+ "customFavicon": "అనుకూల ఫేవికాన్",
+ "hideHealthLogs": "హెల్త్ లాగ్లను దాచండి",
+ "customLogo": "అనుకూల లోగో",
+ "appearance": "రూపురేఖలు",
+ "themeSelectionAria": "థీమ్ ఎంపిక ఏరియా",
+ "themeCreate": "థీమ్ను సృష్టించండి",
+ "customFaviconDesc": "అనుకూల ఫేవికాన్ వివరణ",
+ "logoPreview": "లోగో ప్రివ్యూ",
+ "themeCustom": "అనుకూల థీమ్",
+ "hideHealthLogsDesc": "హెల్త్ లాగ్లను దాచడం గురించి వివరణ",
+ "faviconPreview": "ఫేవికాన్ ప్రివ్యూ",
+ "changelog": "మార్పుల చిట్టా",
+ "contextSection": "కాంటెక్స్ట్ & క్యాష్",
+ "contextCaveman": "గుహావాసి",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "ఇంజిన్ కాంబోలు",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
- "contextUltra": "Ultra",
+ "contextUltra": "అల్ట్రా",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "కంప్రెషన్ సెట్టింగ్లు",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "కాంబో స్టూడియో",
"combosLiveSubtitle": "లైవ్ రూటింగ్ క్యాస్కేడ్",
"compressionStudio": "Compression Studio",
"compressionExclusions": "అనుమతించబడని అంశాలు",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "లైవ్ ఇంజిన్ క్యాస్కేడ్",
"compressionExclusionsSubtitle": "ప్రతి మోడల్/ఎండ్పాయింట్ బైపాస్",
"chaosConfigSubtitle": "మల్టీ-మోడల్ సమాంతర అమలు",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "రూటింగ్",
+ "protocolsSection": "ప్రోటోకాల్లు",
+ "agentsAiSection": "ఏజెంట్లు & AI",
+ "cacheContextSection": "క్యాష్ & కాంటెక్స్ట్",
+ "analyticsSection": "విశ్లేషణలు",
+ "costsSection": "ఖర్చులు",
+ "monitoringSection": "పర్యవేక్షణ",
+ "auditSecuritySection": "ఆడిట్ & భద్రత",
+ "devtoolsSection": "డెవలపర్ సాధనాలు",
+ "configurationSection": "కాన్ఫిగరేషన్",
+ "aiFeaturesSection": "AI ఫీచర్లు",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "ప్లగిన్లు",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "API ఎండ్పాయింట్లు",
+ "batchFiles": "ఫైళ్లు",
+ "analyticsEvals": "మూల్యాంకనాలు",
+ "analyticsSearch": "శోధన",
+ "analyticsUtilization": "వినియోగం",
+ "analyticsComboHealth": "కాంబో స్థితి",
+ "analyticsCompression": "కంప్రెషన్",
+ "costsBudget": "బడ్జెట్",
"costsFreeTiers": "ఉచిత-శ్రేణి బడ్జెట్",
"costsFreeTiersSubtitle": "నెలవారీ ఉచిత-టోకెన్ అలవెన్సులు",
"freeProviderRankings": "ఉచిత ప్రొవైడర్ ర్యాంకింగ్లు",
"freeProviderRankingsSubtitle": "మోడల్ ELO స్కోర్ల ఆధారంగా ర్యాంక్ చేయబడిన ఉత్తమ ఉచిత ప్రొవైడర్లు",
"radar": "రాడార్ కాటలాగ్",
"radarSubtitle": "సమాజం-సమృద్ధి చేసిన ఉచిత మోడల్ కాటలాగ్",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "కోటా భాగస్వామ్యం",
+ "costsPricing": "ధరలు",
+ "logsProxy": "ప్రాక్సీ లాగ్లు",
+ "logsConsole": "కన్సోల్",
+ "logsActivity": "కార్యాచరణ",
+ "auditMcp": "MCP ఆడిట్",
"auditA2a": "A2A ఆడిట్",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "రూపురేఖలు",
+ "settingsAi": "AI సెట్టింగ్లు",
+ "settingsSecurity": "భద్రత",
"settingsAccessTokens": "యాక్సెస్ టోకెన్లు",
"settingsFeatureFlags": "ఫీచర్ ఫ్లాగ్స్",
"settingsCache": "క్యాష్",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "అధికార నియంత్రణ",
+ "settingsRouting": "రూటింగ్",
+ "settingsResilience": "స్థితిస్థాపకత",
"modelLockout": "మోడల్ లాకౌట్",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "అధునాతనం",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "ప్రొవైడర్ కోటా",
+ "providerQuota": "ప్రొవైడర్ కోటా",
+ "runtime": "రన్టైమ్",
+ "consoleLogs": "కన్సోల్ లాగ్లు",
+ "logsTimeline": "కాలక్రమం",
"logsTimelineSubtitle": "దృశ్య అభ్యర్థన కాలరేఖ",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "సంభాషణలు",
+ "conversationsSubtitle": "బహుళ-దశల ఏజెంటిక్ సంభాషణలు",
+ "globalRouting": "గ్లోబల్ రూటింగ్",
+ "mitmProxy": "MITM ప్రాక్సీ",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "agenticFeaturesSection": "ఏజెంటిక్ ఫీచర్లు",
+ "otherFeaturesSection": "ఇతర ఫీచర్లు",
+ "compressionContextGroup": "కంప్రెషన్ సందర్భం",
+ "gamificationGroup": "గేమిఫికేషన్",
+ "toolsGroup": "సాధనాలు",
+ "integrationsGroup": "ఇంటిగ్రేషన్లు",
+ "proxyGroup": "ప్రాక్సీ",
+ "costsParametersGroup": "ఖర్చుల పారామీటర్లు",
+ "auditGroup": "ఆడిట్",
+ "batchGroup": "బ్యాచ్",
+ "homeSubtitle": "డ్యాష్బోర్డ్ అవలోకనం",
+ "providersSubtitle": "AI ప్రొవైడర్లను నిర్వహించండి",
+ "quotaTrackerSubtitle": "వినియోగ పరిమితులను ట్రాక్ చేయండి",
+ "providerQuotaSubtitle": "ప్రొవైడర్ వినియోగ పరిమితులను ట్రాక్ చేయండి",
+ "runtimeSubtitle": "రియల్టైమ్ స్థితిస్థాపకత & సెషన్లు",
+ "contextCombosSubtitle": "కంప్రెషన్ ఇంజిన్లను కలపండి",
+ "cliToolsSubtitle": "CLI రన్టైమ్లను కాన్ఫిగర్ చేయండి",
+ "agentsSubtitle": "లోకల్ ఏజెంట్లను నిర్వహించండి",
+ "cloudAgentsSubtitle": "క్లౌడ్-ఆధారిత ఏజెంట్లను నిర్వహించండి",
+ "apiEndpointsSubtitle": "కస్టమ్ ఎండ్పాయింట్లను అందుబాటులో ఉంచండి",
+ "proxySubtitle": "HTTP ప్రాక్సీ సెట్టింగ్లు",
+ "mitmProxySubtitle": "MITM ఇంటర్సెప్షన్",
+ "oneProxySubtitle": "పబ్లిక్ ప్రాక్సీ గేట్వే",
+ "leaderboard": "లీడర్బోర్డ్",
+ "profile": "ప్రొఫైల్",
+ "tokens": "టోకెన్లు",
+ "gamificationAdmin": "గేమిఫికేషన్ అడ్మిన్",
+ "leaderboardSubtitle": "ర్యాంకింగ్లు మరియు విజయాలు",
+ "profileSubtitle": "ఖాతా మరియు ప్రాధాన్యతలు",
+ "tokensSubtitle": "టోకెన్ వినియోగం మరియు బడ్జెట్లు",
+ "gamificationAdminSubtitle": "అసాధారణతల పర్యవేక్షణ మరియు మోస నిరోధం",
+ "usageSubtitle": "ట్రాఫిక్ మరియు వినియోగ గణాంకాలు",
+ "analyticsComboHealthSubtitle": "కాంబో లక్ష్య విశ్వసనీయత",
+ "analyticsUtilizationSubtitle": "ప్రొవైడర్ వినియోగం",
+ "costsSubtitle": "వ్యయ విభజన",
+ "cacheSubtitle": "క్యాష్ హిట్ రేట్లు",
+ "analyticsCompressionSubtitle": "టోకెన్ ఆదా గణాంకాలు",
+ "analyticsSearchSubtitle": "శోధన సాధన విశ్లేషణలు",
+ "analyticsEvalsSubtitle": "మూల్యాంకన సూట్ ఫలితాలు",
"providerStats": "ప్రొవైడర్ గణాంకాలు",
"providerStatsSubtitle": "లేటెన్సీ మరియు పనితీరు కొలమానాలు",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "అప్లికేషన్ లాగ్లు",
+ "logsProxySubtitle": "ప్రాక్సీ ట్రాఫిక్ లాగ్లు",
+ "consoleLogsSubtitle": "కన్సోల్ అవుట్పుట్",
+ "logsActivitySubtitle": "వినియోగదారు కార్యకలాపాల లాగ్",
+ "healthSubtitle": "సిస్టమ్ ఆరోగ్య తనిఖీ",
+ "costsPricingSubtitle": "ప్రతి మోడల్కు ధర నియమాలు",
+ "costsBudgetSubtitle": "బడ్జెట్ పరిమితులు",
+ "costsQuotaShareSubtitle": "కీల మధ్య ప్రొవైడర్ కోటాలను పంచుకోండి",
+ "auditLogSubtitle": "అధికార అనుమతుల ఆడిట్",
+ "auditMcpSubtitle": "MCP సర్వర్ ఆడిట్",
+ "auditA2aSubtitle": "A2A ప్రోటోకాల్ ఆడిట్",
+ "translatorSubtitle": "ఫార్మాట్ మార్పిడి",
+ "playgroundSubtitle": "ప్రాంప్ట్లను ప్రత్యక్షంగా పరీక్షించండి",
+ "searchToolsSubtitle": "శోధన సాధన రిజిస్ట్రీ",
+ "memorySubtitle": "శాశ్వత ఏజెంట్ మెమరీ",
+ "omniSkillsSubtitle": "శాండ్బాక్స్ నైపుణ్య రిజిస్ట్రీ",
+ "agentSkillsSubtitle": "A2A నైపుణ్య రిజిస్ట్రీ",
+ "mcpSubtitle": "MCP సర్వర్ నియంత్రణలు",
+ "a2aSubtitle": "A2A ప్రోటోకాల్ సర్వర్",
"pluginsSubtitle": "ప్లగిన్ మార్కెట్ప్లేస్ & ఇన్స్టాల్లు",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "క్యాష్ చేసిన మీడియా ఫైళ్లు",
+ "batchFilesSubtitle": "బ్యాచ్ ఇన్పుట్/అవుట్పుట్ ఫైళ్లు",
+ "settingsSubtitle": "అన్ని సెట్టింగ్లు",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "థీమ్ మరియు లేఅవుట్",
+ "settingsAiSubtitle": "AI ప్రవర్తన డిఫాల్ట్లు",
+ "globalRoutingSubtitle": "గ్లోబల్ రూటింగ్ నియమాలు",
+ "settingsResilienceSubtitle": "పునఃప్రయత్నాలు మరియు సర్క్యూట్ బ్రేకర్లు",
+ "settingsAdvancedSubtitle": "పవర్ యూజర్ ఎంపికలు",
+ "settingsSecuritySubtitle": "ప్రమాణీకరణ మరియు ఎన్క్రిప్షన్",
"settingsAccessTokensSubtitle": "రిమోట్ మోడ్ కోసం స్కోప్డ్ CLI టోకెన్లు",
"settingsFeatureFlagsSubtitle": "సిస్టమ్ సామర్థ్యాలను టోగుల్ చేయండి",
"settingsCacheSubtitle": "మోడల్ కాటలాగ్ మరియు స్పందన కాషింగ్",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "సైడ్బార్",
+ "settingsSidebarSubtitle": "సైడ్బార్ లేఅవుట్ను అనుకూలీకరించండి",
"settingsAuthzSubtitle": "రూట్ ఇన్వెంటరీ మరియు బైపాస్ పాలసీ",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "డాక్యుమెంటేషన్",
+ "issuesSubtitle": "బగ్ను నివేదించండి",
+ "changelogSubtitle": "విడుదల గమనికలు",
"costsQuotaPlans": "ప్లాన్లు & కోటాలు",
"costsQuotaPlansSubtitle": "ప్రొవైడర్ వారీగా ప్లాన్లను కాన్ఫిగర్ చేయండి",
"activity": "కార్యకలాపం",
@@ -1274,8 +1278,8 @@
"agentBridge": "ఏజెంట్ బ్రిడ్జ్",
"agentBridgeSubtitle": "IDE ఏజెంట్ ట్రాఫిక్ను అడ్డుకోండి",
"trafficInspector": "ట్రాఫిక్ ఇన్స్పెక్టర్",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "మీ యాప్ల నుంచి వచ్చే అభ్యర్థన మరియు ప్రతిస్పందన ట్రాఫిక్ను పరిశీలించండి",
+ "trafficInspectorPurpose": "మీ అప్లికేషన్ AI ప్రొవైడర్లకు ఖచ్చితంగా ఏమి పంపుతుందో, వాటి నుంచి ఏమి స్వీకరిస్తుందో చూడండి. OpenAI-అనుకూలమైన ఏ క్లయింట్తోనైనా పనిచేస్తుంది.",
"cliCode": "CLI కోడ్",
"cliCodeSubtitle": "OmniRoute వైపు చూపే కోడ్ సాధనాలు",
"cliAgents": "CLI ఏజెంట్లు",
@@ -1341,7 +1345,7 @@
"refresh": "రిఫ్రెష్ చేయండి",
"loading": "వెబ్హుక్లను లోడ్ చేస్తోంది...",
"never": "ఎప్పుడూ",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {వైఫల్యాలు లేవు} one {# వైఫల్యం} other {# వైఫల్యాలు}}",
"testWebhook": "పరీక్ష పంపండి",
"testSuccess": "పరీక్ష వెబ్హుక్ విజయవంతంగా పంపబడింది.",
"testFailed": "పరీక్ష వెబ్హుక్ విఫలమైంది.",
@@ -1559,91 +1563,91 @@
"mcpMetricTopTool": "టాప్ టూల్"
},
"themesPage": {
- "title": "Themes",
- "description": "Choose a preset theme or create your own with a single color",
- "presetColors": "Popular colors",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
- "createTheme": "Create theme",
- "activePreset": "Active theme"
+ "title": "థీమ్లు",
+ "description": "ముందే సిద్ధం చేసిన థీమ్ను ఎంచుకోండి లేదా ఒకే రంగుతో మీ స్వంత థీమ్ను సృష్టించండి",
+ "presetColors": "ప్రజాదరణ పొందిన రంగులు",
+ "customTheme": "అనుకూల థీమ్",
+ "customThemeDesc": "థీమ్ను సృష్టించుపై క్లిక్ చేసి ఒక రంగును ఎంచుకోండి",
+ "createTheme": "థీమ్ను సృష్టించండి",
+ "activePreset": "సక్రియ థీమ్"
},
"header": {
- "logout": "Logout",
+ "logout": "లాగ్ అవుట్",
"quickNavigation": "త్వరిత నావిగేషన్",
"quickNavigationTitle": "త్వరిత నావిగేషన్ (⌘K / Ctrl+K)",
"openQuickNavigation": "త్వరిత నావిగేషన్ను తెరవండి",
"switchToLightMode": "లైట్ మోడ్కి మారండి",
"switchToDarkMode": "డార్క్ మోడ్కి మారండి",
- "language": "Language",
- "providers": "Providers",
- "providerDescription": "Manage your AI provider connections",
- "combos": "Combos",
- "comboDescription": "Model combos with fallback",
- "usage": "Usage & Analytics",
- "usageDescription": "Monitor your API usage, token consumption, and request logs",
- "analytics": "Analytics",
- "analyticsDescription": "Charts, trends, and evaluation insights",
- "cliTools": "CLI Tools",
- "cliToolsDescription": "Configure CLI tools",
- "home": "Home",
- "homeDescription": "Welcome to OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "language": "భాష",
+ "providers": "ప్రొవైడర్లు",
+ "providerDescription": "మీ AI ప్రొవైడర్ కనెక్షన్లను నిర్వహించండి",
+ "combos": "కాంబోలు",
+ "comboDescription": "ఫాల్బ్యాక్తో కూడిన మోడల్ కాంబోలు",
+ "usage": "వినియోగం & విశ్లేషణలు",
+ "usageDescription": "మీ API వినియోగం, టోకెన్ వినియోగం మరియు అభ్యర్థన లాగ్లను పర్యవేక్షించండి",
+ "analytics": "విశ్లేషణలు",
+ "analyticsDescription": "చార్ట్లు, ధోరణులు మరియు మూల్యాంకన అంతర్దృష్టులు",
+ "cliTools": "CLI సాధనాలు",
+ "cliToolsDescription": "CLI సాధనాలను కాన్ఫిగర్ చేయండి",
+ "home": "హోమ్",
+ "homeDescription": "OmniRouteకు స్వాగతం",
+ "endpoint": "ఎండ్పాయింట్లు",
+ "endpointDescription": "ప్రాక్సీ ఎండ్పాయింట్లు, MCP, A2A మరియు API ఎండ్పాయింట్లను నిర్వహించండి",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "Model Context Protocol సర్వర్ నిర్వహణ మరియు సాధనాలు",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
- "settings": "Settings",
- "settingsDescription": "Manage your preferences",
- "openaiCompatible": "OpenAI Compatible",
- "anthropicCompatible": "Anthropic Compatible",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
- "themes": "Themes",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "a2aDescription": "Agent-to-Agent ప్రోటోకాల్ టాస్క్లు మరియు పరిశీలన సామర్థ్యం",
+ "settings": "సెట్టింగ్లు",
+ "settingsDescription": "మీ ప్రాధాన్యతలను నిర్వహించండి",
+ "openaiCompatible": "OpenAI అనుకూలం",
+ "anthropicCompatible": "Anthropic అనుకూలం",
+ "media": "మీడియా",
+ "mediaDescription": "చిత్రాలు, వీడియోలు మరియు సంగీతాన్ని రూపొందించండి",
+ "themes": "థీమ్లు",
+ "themesDescription": "మొత్తం డ్యాష్బోర్డ్ ప్యానెల్ కోసం ఒక రంగు థీమ్ను ఎంచుకోండి",
+ "costsDescription": "అందరు ప్రొవైడర్లలో ఖర్చులను ట్రాక్ చేయండి, ధోరణులను విశ్లేషించండి మరియు మీ AI బడ్జెట్ను నిర్వహించండి",
+ "cacheDescription": "ప్రొవైడర్ ప్రాంప్ట్ క్యాష్ సామర్థ్యాన్ని మరియు స్థానిక సెమాంటిక్ ప్రతిస్పందన పునర్వినియోగాన్ని పర్యవేక్షించండి.",
+ "limitsDescription": "ప్రతి API కీ మరియు ప్రొవైడర్కు రేట్ పరిమితులు మరియు కోటాలను కాన్ఫిగర్ చేయండి",
+ "runtimeDescription": "లైవ్ రన్టైమ్ పరిశీలన — సర్క్యూట్ బ్రేకర్లు, కూల్డౌన్లు, మోడల్ లాకౌట్లు, సెషన్లు మరియు కోటా హెచ్చరికలు",
+ "apiManagerDescription": "మీ OmniRoute ఇన్స్టాన్స్ కోసం API కీలు మరియు యాక్సెస్ నియంత్రణను నిర్వహించండి",
+ "batchDescription": "బ్యాచ్ చేసిన API కాల్లతో అధిక పరిమాణంలోని అభ్యర్థనలను అసమకాలికంగా ప్రాసెస్ చేయండి",
+ "contextCavemanDescription": "నియమ-ఆధారిత సందేశ కంప్రెషన్, భాషా ప్యాక్లు, అనలిటిక్స్ మరియు అవుట్పుట్ మోడ్ నియంత్రణలు.",
+ "contextRtkDescription": "టూల్ అవుట్పుట్, టెర్మినల్ లాగ్లు మరియు బిల్డ్ ఫలితాల కోసం కమాండ్-అవేర్ కంప్రెషన్.",
+ "contextCombosDescription": "విభిన్న రూటింగ్ సందర్భాల కోసం ఇంజిన్లను ఎలా కలపాలో నిర్వచించండి.",
+ "changelogDescription": "తాజా ప్లాట్ఫారమ్ ఫీచర్లు మరియు ప్రకటనల గురించి ఎప్పటికప్పుడు తెలుసుకోండి.",
+ "agentsDescription": "AI ఏజెంట్ సాధనాలను నిర్వహించి, కాన్ఫిగర్ చేయండి: Codex, Devin, Jules మరియు కస్టమ్ ఏజెంట్లు",
+ "cloudAgentsDescription": "లైవ్ టాస్క్ ట్రాకింగ్ మరియు ప్లాన్ ఆమోదంతో క్లౌడ్-ఆధారిత AI ఏజెంట్లను సమన్వయం చేయండి",
+ "memoryDescription": "సెమాంటిక్ శోధన మరియు FTS5 పూర్తి-టెక్స్ట్ ఇండెక్సింగ్తో స్థిరమైన సంభాషణ మెమరీ",
+ "skillsDescription": "ఆటోమేటెడ్ ప్రాంప్ట్ మరియు టూల్ అమలు కోసం శాండ్బాక్స్ నైపుణ్యాలను ఇన్స్టాల్ చేసి, నిర్వహించండి",
+ "agentSkillsDescription": "AI క్లయింట్ ఇంటిగ్రేషన్ కోసం ఒకే క్లిక్తో URL కాపీ చేయగల ఏజెంట్-రెడీ నైపుణ్యాల కేటలాగ్",
+ "translatorDescription": "API ఫార్మాట్ల మధ్య ప్రాంప్ట్లను అనువదించి, పరీక్షించండి: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "లైవ్ ప్రొవైడర్ ప్రతిస్పందనలు మరియు ఫార్మాట్ తనిఖీతో ప్రాంప్ట్లను ఇంటరాక్టివ్గా పరీక్షించండి",
+ "searchToolsDescription": "శోధన అనలిటిక్స్, ప్రొవైడర్ విభజన, క్యాష్ హిట్ రేట్లు మరియు ఖర్చు ట్రాకింగ్",
+ "logsDescription": "రియల్-టైమ్ అభ్యర్థన లాగ్లు, ఎర్రర్ ట్రేస్లు మరియు స్ట్రీమింగ్ ఈవెంట్ ఇన్స్పెక్టర్",
+ "auditDescription": "API కీ వినియోగం, MCP టూల్ కాల్లు మరియు పాలసీ ఈవెంట్ల కంప్లయన్స్ ఆడిట్ ట్రయల్",
+ "webhooksDescription": "రియల్-టైమ్ ఈవెంట్ నోటిఫికేషన్లను స్వీకరించడానికి వెబ్హుక్ ఎండ్పాయింట్లను కాన్ఫిగర్ చేయండి",
+ "healthDescription": "సిస్టమ్ ఆరోగ్య స్థితి సమీక్ష: ప్రొవైడర్లు, సర్క్యూట్ బ్రేకర్లు, రేట్ పరిమితులు మరియు డేటాబేస్",
+ "proxyDescription": "అవుట్బౌండ్ ప్రొవైడర్ కనెక్షన్ల కోసం అప్స్ట్రీమ్ ప్రాక్సీ సెట్టింగ్లను కాన్ఫిగర్ చేయండి",
+ "apiEndpointsDescription": "కస్టమ్ API ఎండ్పాయింట్ కాన్ఫిగరేషన్లు మరియు రూటింగ్ ఓవర్రైడ్లను నిర్వహించండి",
+ "batchFilesDescription": "బ్యాచ్ జాబ్ అవుట్పుట్ ఫైళ్లు మరియు ఫలితాలను బ్రౌజ్ చేసి నిర్వహించండి",
+ "analyticsEvalsDescription": "మోడల్ మూల్యాంకన ఫలితాలు మరియు పనితీరు బెంచ్మార్క్లు",
+ "analyticsSearchDescription": "శోధన క్వెరీ విశ్లేషణలు, క్యాష్ హిట్ రేట్లు మరియు వ్యయ ట్రాకింగ్",
+ "analyticsUtilizationDescription": "ప్రొవైడర్ వినియోగ మెట్రిక్లు మరియు సామర్థ్య ప్రణాళిక",
+ "analyticsComboHealthDescription": "కాంబో రూటింగ్ కాన్ఫిగరేషన్ల రియల్-టైమ్ స్థితి మరియు పనితీరు",
+ "analyticsCompressionDescription": "కాంటెక్స్ట్ కంప్రెషన్ విశ్లేషణలు మరియు టోకెన్ ఆదా",
+ "costsBudgetDescription": "ప్రతి API కీ మరియు ప్రొవైడర్కు బడ్జెట్ పరిమితులు మరియు ఖర్చు హెచ్చరికలు",
+ "costsPricingDescription": "టోకెన్ వ్యయ గణనల కోసం అనుకూల ధరల కాన్ఫిగరేషన్",
+ "logsProxyDescription": "అప్స్ట్రీమ్ ప్రాక్సీ అభ్యర్థన లాగ్లు మరియు ట్రాఫిక్ తనిఖీ",
+ "logsConsoleDescription": "అప్లికేషన్ కన్సోల్ అవుట్పుట్ మరియు డీబగ్ లాగ్లు",
+ "logsActivityDescription": "వినియోగదారు చర్యలు మరియు సిస్టమ్ ఈవెంట్ల ఆడిట్ ట్రయిల్",
+ "auditMcpDescription": "MCP టూల్ అమలు ఆడిట్ ట్రయిల్ మరియు అనుపాలన రికార్డులు",
"auditA2a": "A2A ఆడిట్",
"auditA2aDescription": "A2A టాస్క్ ఎగ్జిక్యూషన్ ఆడిట్ ట్రయల్, స్టేట్ ట్రాన్సిషన్స్ మరియు స్కిల్ ఇన్వోకేషన్ రికార్డ్లు",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "థీమ్, బ్రాండింగ్ మరియు దృశ్య అనుకూలీకరణ",
+ "settingsAiDescription": "AI ప్రవర్తనలు, ఆలోచనా బడ్జెట్లు, విజన్ మరియు మెమరీ సెట్టింగ్లు",
"settingsCacheDescription": "మోడల్ కాటలాగ్ కాష్ ఎంట్రీల కోసం TTL",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "ప్రామాణీకరణ, అధికార కల్పన మరియు యాక్సెస్ నియంత్రణ సెట్టింగ్లు",
"featureFlags": "ఫీచర్ ఫ్లాగ్స్",
"featureFlagsDescription": "సిస్టమ్ సామర్థ్యాలు మరియు ప్రయోగాత్మక లక్షణాలను నియంత్రించండి",
"featureFlagsActive": "{count} సక్రియంగా ఉంది",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "మీ శోధనకు సరిపోలే ఫ్లాగ్లు ఏవీ లేవు",
"featureFlagsSaved": "ఫ్లాగ్ నవీకరించబడింది",
"featureFlagsError": "ఫ్లాగ్ని నవీకరించడంలో విఫలమైంది",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "రూటింగ్ నియమాలు, మోడల్ అలియాస్లు, కాంబో డిఫాల్ట్లు మరియు డీగ్రేడేషన్ సెట్టింగ్లు",
+ "settingsResilienceDescription": "సర్క్యూట్ బ్రేకర్, మళ్లీ ప్రయత్నించడం మరియు ఫాల్బ్యాక్ కాన్ఫిగరేషన్",
+ "settingsAdvancedDescription": "అధునాతన పేలోడ్ నియమాలు, అభ్యర్థన పరిమితులు మరియు ప్రాక్సీ API సెట్టింగ్లు",
+ "mitmProxyDescription": "ట్రాఫిక్ తనిఖీ మరియు డీబగ్గింగ్ కోసం MITM ప్రాక్సీ సెట్టింగ్లను కాన్ఫిగర్ చేయండి",
+ "oneProxyDescription": "అధునాతన ప్రాక్సీ చైనింగ్ కోసం 1Proxy సెట్టింగ్లను కాన్ఫిగర్ చేయండి",
"omniSkillsDescription": "ఆటోమేటెడ్ ప్రాంప్ట్ మరియు టూల్ ఎగ్జిక్యూషన్ కోసం శాండ్బాక్స్ స్కిల్స్ను ఇన్స్టాల్ చేయండి మరియు నిర్వహించండి"
},
"cloudSyncStatus": {
@@ -1757,8 +1761,8 @@
"quotaShare": "కోటా షేర్",
"discovery": "అన్వేషణ",
"freeProviderRankings": "ఉచిత ప్రొవైడర్ ర్యాంకింగ్లు",
- "radar": "Radar",
- "setup": "Setup",
+ "radar": "రాడార్",
+ "setup": "సెటప్",
"freeTiers": "ఉచిత శ్రేణులు",
"gamification": "గేమిఫికేషన్",
"leaderboard": "లీడర్బోర్డ్",
@@ -1780,53 +1784,53 @@
"orchestration": "ఆర్కెస్ట్రేషన్"
},
"home": {
- "quickStart": "Quick Start",
- "quickStartDesc": "Get up and running in 4 steps. Connect providers, route models, monitor everything.",
- "fullDocs": "Full Docs",
- "step1Title": "1. Create API key",
+ "quickStart": "త్వరిత ప్రారంభం",
+ "quickStartDesc": "4 దశల్లో ప్రారంభించండి. ప్రొవైడర్లను కనెక్ట్ చేయండి, మోడల్లను రూట్ చేయండి, అన్నింటినీ పర్యవేక్షించండి.",
+ "fullDocs": "పూర్తి డాక్యుమెంటేషన్",
+ "step1Title": "1. API కీని సృష్టించండి",
"step1Desc": "Go to --permission-mode auto సెక్యూరిటీ క్లాసిఫైయర్ను షార్ట్-సర్క్యూట్ చేయండి. డిఫాల్ట్గా ఆఫ్ చేయబడి ఉంటుంది.",
"classifierCompatCycle": "సైకిల్: ఆఫ్ → ఆటో → ఎల్లప్పుడూ",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "మోడల్ డిస్కవరీ తర్వాత ~/.codex/*.config.tomlని మళ్లీ రూపొందించండి.",
"claudeProfiles": "Claude Code ప్రొఫైల్స్",
"claudeProfilesDescription": "మోడల్ డిస్కవరీ తర్వాత ప్రతి ~/.claude/profiles/…/settings.jsonని మళ్లీ రూపొందించండి.",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "యాక్టివ్ ప్రొవైడర్లు లేరు",
+ "noActiveProvidersDesc": "CLI సాధనాలను కాన్ఫిగర్ చేయడానికి ముందుగా ప్రొవైడర్లను జోడించి, కనెక్ట్ చేయండి.",
+ "mapModels": "మోడళ్లను మ్యాప్ చేయండి",
+ "testConnection": "కనెక్షన్ను పరీక్షించండి",
+ "connectionStatus": "కనెక్షన్ స్థితి",
+ "configureEndpoint": "ఎండ్పాయింట్ను కాన్ఫిగర్ చేయండి",
+ "instructions": "సూచనలు",
+ "modelMapping": "మోడల్ మ్యాపింగ్",
"reasoningEffort": "{model} కోసం రీజనింగ్ ఎఫర్ట్",
"effortNone": "ఏదీ లేదు",
"effortLow": "తక్కువ",
@@ -2743,62 +2747,62 @@
"modelAliases": "మోడల్ మారుపేర్లు",
"addModel": "మోడల్ను జోడించండి",
"routeModelPlaceholder": "{model}ను దీనికి రూట్ చేయండి...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "బేస్ URL",
+ "apiKey": "API కీ",
+ "configured": "కాన్ఫిగర్ చేయబడింది",
+ "notConfigured": "కాన్ఫిగర్ చేయబడలేదు",
+ "notInstalled": "ఇన్స్టాల్ చేయబడలేదు",
+ "custom": "అనుకూలం",
+ "unknown": "తెలియదు",
+ "lastSavedAt": "చివరిగా సేవ్ చేసినది: {date}",
+ "never": "ఎప్పుడూ లేదు",
+ "justNow": "ఇప్పుడే",
+ "minutesAgoShort": "{count} నిమిషాల క్రితం",
+ "hoursAgoShort": "{count} గంటల క్రితం",
+ "daysAgoShort": "{count} రోజుల క్రితం",
+ "monthsAgoShort": "{count} నెలల క్రితం",
+ "yearsAgoShort": "{count} సంవత్సరాల క్రితం",
+ "runtimeCheckFailed": "రన్టైమ్ తనిఖీ విఫలమైంది",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "కాన్ఫిగరేషన్ విజయవంతంగా సేవ్ చేయబడింది.",
+ "failedToSave": "కాన్ఫిగరేషన్ను సేవ్ చేయడం విఫలమైంది.",
+ "noApiKeysCreateOne": "API కీలు లేవు - Keys పేజీలో ఒకదాన్ని సృష్టించండి",
+ "defaultOmnirouteKey": "sk_omniroute (డిఫాల్ట్)",
+ "selectModel": "మోడల్ను ఎంచుకోండి",
+ "selectModelForAlias": "{alias} కోసం మోడల్ను ఎంచుకోండి",
+ "selectModelForTool": "{tool} కోసం మోడల్ను ఎంచుకోండి",
+ "select": "ఎంచుకోండి",
+ "clear": "క్లియర్ చేయండి",
+ "comingSoon": "త్వరలో అందుబాటులోకి వస్తుంది",
+ "checkingRuntime": "రన్టైమ్ స్థితిని తనిఖీ చేస్తోంది...",
+ "guideOnlyIntegration": "మార్గదర్శిని-మాత్రమే ఇంటిగ్రేషన్ (లోకల్ రన్టైమ్ అవసరం లేదు)",
+ "cliRuntimeDetected": "CLI రన్టైమ్ గుర్తించబడింది మరియు సిద్ధంగా ఉంది",
+ "cliFoundNotRunnable": "CLI కనుగొనబడింది కానీ అమలు చేయడం సాధ్యం కాదు{reason}",
+ "cliRuntimeNotDetected": "CLI రన్టైమ్ గుర్తించబడలేదు",
+ "binary": "బైనరీ",
+ "configPath": "కాన్ఫిగ్ పాత్",
+ "configPathShort": "కాన్ఫిగ్",
+ "failedCheckRuntimeStatus": "రన్టైమ్ స్థితిని తనిఖీ చేయడం విఫలమైంది.",
+ "copy": "కాపీ చేయండి",
+ "copied": "కాపీ చేయబడింది",
+ "copyConfig": "కాన్ఫిగ్ను కాపీ చేయి",
+ "saveConfig": "కాన్ఫిగ్ను సేవ్ చేయి",
+ "selectionSaved": "ఎంపిక సేవ్ చేయబడింది",
+ "guide": "మార్గదర్శిని",
+ "detected": "గుర్తించబడింది",
+ "notReady": "సిద్ధంగా లేదు",
+ "active": "సక్రియం",
+ "inactive": "నిష్క్రియం",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM విజయవంతంగా ప్రారంభించబడింది!",
+ "mitmStopped": "MITM విజయవంతంగా ఆపివేయబడింది!",
+ "failedStart": "MITMను ప్రారంభించడం విఫలమైంది",
+ "failedStop": "MITMను ఆపివేయడం విఫలమైంది",
+ "saveMappings": "మ్యాపింగ్లను సేవ్ చేయి",
+ "mappingsSaved": "మ్యాపింగ్లు సేవ్ చేయబడ్డాయి!",
+ "failedSaveMappings": "మ్యాపింగ్లను సేవ్ చేయడం విఫలమైంది",
"reasoningEffortDefault": "డిఫాల్ట్",
"reasoningEffortHint": "డిఫాల్ట్ అనేది ఏజెంట్ పంపిన రీజనింగ్ ఎఫర్ట్ను అలాగే ఉంచుతుంది",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "ఎక్కువ",
"xhigh": "XHigh"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "ఇది ఎలా పనిచేస్తుంది:",
+ "antigravityHowWorksDesc": "Antigravity Google ఎండ్పాయింట్కు అభ్యర్థనలను పంపుతుంది. MITM వాటిని అడ్డగించి OmniRouteకు మళ్లిస్తుంది.",
+ "antigravityStep1": "1. అభ్యర్థనలను OmniRoute ద్వారా రూట్ చేయడానికి MITMను ప్రారంభించండి.",
+ "antigravityStep2Prefix": "2. మీ hosts ఫైల్కు",
+ "antigravityStep2Suffix": "ను 127.0.0.1గా జోడించండి.",
+ "antigravityStep3": "3. Antigravityని తెరవండి, అభ్యర్థనలు ప్రాక్సీ చేయబడతాయి.",
+ "mitmHowWorksDesc": "{toolName} తన ప్రొవైడర్ ఎండ్పాయింట్కు అభ్యర్థనలను పంపుతుంది. MITM వాటిని అడ్డగించి OmniRouteకు మళ్లిస్తుంది.",
+ "mitmStep1": "1. అభ్యర్థనలను OmniRoute ద్వారా రూట్ చేయడానికి MITMను ప్రారంభించండి.",
+ "mitmStep2Prefix": "2. మీ hosts ఫైల్కు",
+ "mitmStep2Suffix": "ను 127.0.0.1గా జోడించండి.",
+ "mitmStep3": "3. {toolName}ను తెరవండి, అభ్యర్థనలు ప్రాక్సీ చేయబడతాయి.",
+ "sudoPasswordRequiredTitle": "Sudo పాస్వర్డ్ అవసరం",
+ "sudoPasswordHint": "hosts ఫైల్ మరియు సిస్టమ్ ప్రాక్సీ సెట్టింగ్లను మార్చడానికి నిర్వాహకుని పాస్వర్డ్ అవసరం.",
+ "enterSudoPassword": "sudo పాస్వర్డ్ను నమోదు చేయండి",
+ "sudoPasswordRequiredError": "Sudo పాస్వర్డ్ అవసరం.",
+ "cancel": "రద్దు చేయి",
+ "confirm": "నిర్ధారించు",
+ "settingsApplied": "సెట్టింగ్లు విజయవంతంగా వర్తింపజేయబడ్డాయి!",
+ "failedApplySettings": "సెట్టింగ్లను వర్తింపజేయడం విఫలమైంది",
+ "settingsReset": "సెట్టింగ్లు విజయవంతంగా రీసెట్ చేయబడ్డాయి!",
+ "failedResetSettings": "సెట్టింగ్లను రీసెట్ చేయడం విఫలమైంది",
+ "backupRestored": "బ్యాకప్ పునరుద్ధరించబడింది!",
+ "failedRestore": "పునరుద్ధరించడం విఫలమైంది",
+ "checkingCli": "{tool} CLIని తనిఖీ చేస్తోంది...",
+ "cliNotRunnable": "{tool} CLI ఇన్స్టాల్ చేయబడింది, కానీ అమలు చేయడం సాధ్యం కాదు",
+ "cliNotInstalled": "{tool} CLI ఇన్స్టాల్ చేయబడలేదు",
+ "cliNotDetected": "{tool} CLI గుర్తించబడలేదు",
+ "cliDetectedReady": "{tool} CLI గుర్తించబడింది మరియు సిద్ధంగా ఉంది",
+ "cliFoundFailedHealthcheck": "{tool} CLI కనుగొనబడింది, కానీ రన్టైమ్ ఆరోగ్య తనిఖీలో విఫలమైంది{reason}.",
+ "installCliPrompt": "ఈ ఫీచర్ను ఉపయోగించడానికి దయచేసి {tool} CLIని ఇన్స్టాల్ చేయండి.",
+ "installCodexPrompt": "ఆటో-అప్లై ఫీచర్ను ఉపయోగించడానికి దయచేసి Codex CLIని ఇన్స్టాల్ చేయండి.",
+ "hide": "దాచు",
+ "howToInstall": "ఇన్స్టాల్ చేసే విధానం",
+ "installationGuide": "ఇన్స్టాలేషన్ గైడ్",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "ఇన్స్టాలేషన్ తర్వాత, అమలు చేయండి",
+ "toVerify": "ధృవీకరించడానికి.",
+ "current": "ప్రస్తుతం ఉన్నది",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "డిఫాల్ట్కు రీసెట్ చేయి",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "వర్తింపజేయి",
+ "reset": "రీసెట్ చేయి",
+ "manualConfig": "మాన్యువల్ కాన్ఫిగ్",
+ "backups": "బ్యాకప్లు",
+ "configBackups": "కాన్ఫిగ్ బ్యాకప్లు",
+ "noBackupsYet": "ఇంకా బ్యాకప్లు లేవు. ప్రతి వర్తింపు లేదా రీసెట్కు ముందు బ్యాకప్లు స్వయంచాలకంగా సృష్టించబడతాయి.",
+ "restore": "పునరుద్ధరించు",
+ "backupRestoredReloading": "బ్యాకప్ పునరుద్ధరించబడింది! స్థితి మళ్లీ లోడ్ అవుతోంది...",
+ "failedRestoreBackup": "బ్యాకప్ను పునరుద్ధరించడం విఫలమైంది",
+ "applied": "వర్తింపజేయబడింది!",
+ "failed": "విఫలమైంది",
+ "resetDone": "రీసెట్ చేయబడింది!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute, OpenAI-అనుకూల ప్రొవైడర్గా కాన్ఫిగర్ చేయబడింది",
+ "provider": "ప్రొవైడర్",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "ప్రొవైడర్లు",
+ "auth": "ప్రామాణీకరణ",
+ "noApiKeysAvailable": "API కీలు అందుబాటులో లేవు",
+ "usingDefaultOmniroute": "డిఫాల్ట్ను ఉపయోగిస్తోంది: sk_omniroute",
+ "updateConfig": "కాన్ఫిగ్ను అప్డేట్ చేయి",
+ "applyConfig": "కాన్ఫిగ్ను వర్తింపజేయి",
+ "noBackupsAvailable": "బ్యాకప్లు అందుబాటులో లేవు.",
+ "profileSaved": "ప్రొఫైల్ \"{name}\" సేవ్ చేయబడింది!",
+ "failedSaveProfile": "ప్రొఫైల్ను సేవ్ చేయడం విఫలమైంది",
+ "profileActivated": "ప్రొఫైల్ యాక్టివేట్ చేయబడింది!",
+ "failedActivateProfile": "ప్రొఫైల్ను యాక్టివేట్ చేయడం విఫలమైంది",
+ "profiles": "ప్రొఫైల్లు",
+ "savedProfiles": "సేవ్ చేసిన ప్రొఫైల్లు",
+ "noProfilesYet": "ఇంకా ప్రొఫైల్లు ఏవీ సేవ్ చేయలేదు. ప్రస్తుత కాన్ఫిగరేషన్ను దిగువన ప్రొఫైల్గా సేవ్ చేయండి.",
+ "activate": "సక్రియం చేయండి",
+ "deleteProfile": "ప్రొఫైల్ను తొలగించండి",
+ "profileNamePlaceholder": "ప్రొఫైల్ పేరు (ఉదా. వ్యక్తిగత ఖాతా)",
+ "saveCurrent": "ప్రస్తుతదాన్ని సేవ్ చేయండి",
+ "codexAuthNotePrefix": "Codex ఉపయోగించేది",
+ "codexAuthNoteMiddle": "దీనితో",
+ "codexAuthNoteSuffix": "స్వయంచాలకంగా కాన్ఫిగర్ చేయడానికి \"వర్తింపజేయి\"ని క్లిక్ చేయండి.",
+ "claudeManualConfiguration": "Claude CLI - మాన్యువల్ కాన్ఫిగరేషన్",
+ "codexManualConfiguration": "Codex CLI - మాన్యువల్ కాన్ఫిగరేషన్",
+ "droidManualConfiguration": "Factory Droid - మాన్యువల్ కాన్ఫిగరేషన్",
+ "openClawManualConfiguration": "Open Claw - మాన్యువల్ కాన్ఫిగరేషన్",
+ "clineManualConfiguration": "Cline మాన్యువల్ కాన్ఫిగరేషన్",
+ "kiloManualConfiguration": "Kilo Code మాన్యువల్ కాన్ఫిగరేషన్",
+ "whenToUseLabel": "ఎప్పుడు ఉపయోగించాలి",
+ "openToolDocs": "టూల్ డాక్యుమెంటేషన్ను తెరవండి",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "Claude Codeతో పటిష్ఠమైన ప్రణాళికా వర్క్ఫ్లోలు మరియు అనేక ఫైళ్లతో కూడిన దీర్ఘకాలిక రీఫ్యాక్టరింగ్ కావాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "codex": "మీ బృందం OpenAI Codex CLI ఫ్లోలు మరియు ప్రొఫైల్-ఆధారిత ప్రామాణీకరణను ప్రామాణికంగా ఉపయోగిస్తున్నప్పుడు ఉపయోగించండి.",
+ "droid": "వేగవంతమైన కోడింగ్ మరియు కమాండ్ అమలు లూప్లపై దృష్టి పెట్టే తేలికపాటి టెర్మినల్ ఏజెంట్ అవసరమైనప్పుడు ఉపయోగించండి.",
+ "openclaw": "Open Claw శైలి కోడింగ్ ఏజెంట్ను OmniRoute విధానాల ద్వారా రూట్ చేసి ఉపయోగించాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "cline": "ఎడిటర్లలో కోడింగ్ ఏజెంట్లను కాన్ఫిగర్ చేస్తూ, OmniRoute మోడళ్లతో మార్గదర్శిత సెటప్ కావాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "kilo": "మీ వర్క్ఫ్లో Kilo Code కమాండ్లు మరియు వేగవంతమైన పునరావృత సవరణలపై ఆధారపడినప్పుడు ఉపయోగించండి.",
+ "cursor": "Cursorలో కోడింగ్ చేస్తున్నప్పుడు, OmniRoute ద్వారా అనుకూల OpenAI-సరిపోలిక మోడళ్లు అవసరమైతే ఉపయోగించండి.",
+ "continue": "IDEలలో Continueను అమలు చేస్తున్నప్పుడు, పోర్టబుల్ JSON-ఆధారిత ప్రొవైడర్ కాన్ఫిగరేషన్ అవసరమైతే ఉపయోగించండి.",
+ "opencode": "OpenCode ద్వారా టెర్మినల్-నేటివ్ ఏజెంట్ అమలులు మరియు స్క్రిప్ట్ చేసిన ఆటోమేషన్ను ఇష్టపడినప్పుడు ఉపయోగించండి.",
+ "kiro": "Kiroను సమీకరిస్తూ, OmniRoute నుంచి మోడల్ రూటింగ్ను కేంద్రీకృతంగా నియంత్రించాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "windsurf": "Codeium/Windsurf మోడళ్లను OmniRoute ద్వారా రూట్ చేసే AI-ప్రాధాన్య IDE కావాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "antigravity": "Antigravity/Kiro ట్రాఫిక్ను MITM ద్వారా అడ్డగించి OmniRouteకు రూట్ చేయాల్సినప్పుడు ఉపయోగించండి.",
+ "copilot": "OmniRoute కీలు మరియు రూటింగ్ నియమాలను అమలు చేస్తూనే Copilot చాట్ శైలి UX కావాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "amp": "Amp సంక్షిప్త వర్క్ఫ్లోలు కావాలనుకున్నప్పటికీ, OmniRoute అలియాస్ మరియు రూటింగ్ నియమాల అమలు అవసరమైనప్పుడు ఉపయోగించండి.",
+ "hermes": "త్వరిత పనుల కోసం తేలికపాటి టెర్మినల్-నేటివ్ AI సహాయకుడు అవసరమైనప్పుడు ఉపయోగించండి.",
"hermes-agent": "మీకు OmniRoute ద్వారా రూట్ చేయబడిన డిఫాల్ట్, డెలిగేషన్, విజన్ మరియు ఆక్సిలరీ మోడళ్లతో Hermes Agent (Nousresearch ద్వారా) అవసరమైనప్పుడు ఉపయోగించండి.",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "అనుకూల టూల్ అమలులు లేదా సాధారణ OpenAI-సరిపోలిక కాన్ఫిగరేషన్ల కోసం ఉపయోగించండి."
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "MITMతో Google Antigravity IDE",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "కస్టమ్ ప్రొవైడర్ సపోర్ట్తో xAI Grok Build TUI కోడింగ్ ఏజెంట్",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Factory Droid AI సహాయకుడు",
+ "openclaw": "Open Claw AI సహాయకుడు",
+ "cline": "Cline AI కోడింగ్ సహాయక CLI",
+ "kilo": "Kilo Code AI సహాయక CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Continue AI సహాయకుడు",
+ "opencode": "OpenCode AI కోడింగ్ ఏజెంట్ (టెర్మినల్)",
+ "kiro": "Amazon Kiro — AI ఆధారిత IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp కోడింగ్ సహాయక CLI",
+ "hermes": "Hermes AI టెర్మినల్ సహాయకం",
"hermes-agent": "Hermes Agent (Nousresearch ద్వారా) - మల్టీ-మోడల్ సపోర్ట్తో కూడిన అధునాతన టెర్మినల్ AI (డెలిగేషన్, విజన్, కంప్రెషన్ మొదలైనవి)",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "సాధారణ OpenAI-అనుకూల CLI లేదా SDK కాన్ఫిగరేషన్ జనరేటర్",
"aider": "OpenAI-అనుకూల బేస్ URLతో Aider AI పెయిర్-ప్రోగ్రామింగ్ CLI",
"forge": "కస్టమ్ ప్రొవైడర్తో ForgeCode కోడింగ్ ఏజెంట్ CLI",
"cursor-cli": "హెడ్లెస్ ఏజెంట్ మోడ్లో Cursor Agent CLI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter అటానమస్ కోడింగ్ ఏజెంట్ CLI",
"omp": "Oh My Pi టెర్మినల్ కోడింగ్ ఏజెంట్",
"letta": "పర్సిస్టెంట్ మెమరీ మరియు టూల్ వినియోగంతో Letta CLI ఏజెంట్",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI-అనుకూల ప్రొవైడర్ మద్దతుతో స్వీయ-మెరుగుదల కలిగిన RLM కోడింగ్ హార్నెస్",
"warp": "కస్టమ్ ప్రొవైడర్ సపోర్ట్తో Warp AI టెర్మినల్",
"agent-deck": "Agent Deck మల్టీ-ఏజెంట్ ఆర్కెస్ట్రేటర్",
"5dive": "5dive — స్వీయ-హోస్టెడ్ కోడింగ్ ఏజెంట్ల సముదాయం; ఒక auth ప్రొఫైల్ అన్నింటినీ OmniRoute వైపు మళ్లిస్తుంది"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "ఈ ఫీచర్ను ఉపయోగించడానికి Cursor Pro ఖాతా అవసరం.",
+ "1": "Cursor అభ్యర్థనలను దాని స్వంత సర్వర్ ద్వారా పంపుతుంది, కాబట్టి స్థానిక ఎండ్పాయింట్కు మద్దతు లేదు. దయచేసి సెట్టింగ్లలో Cloud Endpointను ప్రారంభించండి."
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "సెట్టింగ్లను తెరవండి",
+ "desc": "Settings -> Modelsకు వెళ్లండి"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI APIని ప్రారంభించండి",
+ "desc": "\"OpenAI API key\" ఎంపికను ప్రారంభించండి"
},
"3": {
- "title": "Base URL"
+ "title": "బేస్ URL"
},
"4": {
- "title": "API Key"
+ "title": "API కీ"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "అనుకూల మోడల్ను జోడించండి",
+ "desc": "\"View All Model\" -> \"Add Custom Model\"పై క్లిక్ చేయండి"
},
"6": {
- "title": "Select Model"
+ "title": "మోడల్ను ఎంచుకోండి"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "కాన్ఫిగరేషన్ను తెరవండి",
+ "desc": "Continue కాన్ఫిగరేషన్ ఫైల్ను తెరవండి"
},
"2": {
- "title": "API Key"
+ "title": "API కీ"
},
"3": {
- "title": "Select Model"
+ "title": "మోడల్ను ఎంచుకోండి"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "మోడల్ కాన్ఫిగరేషన్ను జోడించండి",
+ "desc": "మీ models అర్రేకు కింది కాన్ఫిగరేషన్ను జోడించండి:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue JSON కాన్ఫిగరేషన్ ఫైల్ను ఉపయోగిస్తుంది."
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCodeను ఇన్స్టాల్ చేయండి",
+ "desc": "npm ద్వారా ఇన్స్టాల్ చేయండి: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API కీ"
},
"3": {
- "title": "Set Base URL",
+ "title": "బేస్ URLను సెట్ చేయండి",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "మోడల్ను ఎంచుకోండి"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "థింకింగ్ వేరియంట్ను ఉపయోగించండి",
+ "desc": "థింకింగ్ మోడల్ల కోసం, --variant high/low/maxతో అమలు చేయండి (దిగువ ఉదాహరణ కమాండ్ను చూడండి)."
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCodeకు API కీ కాన్ఫిగరేషన్ అవసరం.",
+ "1": "బేస్ URLను మీ OmniRoute ఎండ్పాయింట్కు సెట్ చేయండి."
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro సెట్టింగ్లను తెరవండి",
+ "desc": "Settings → AI Providerకు వెళ్లండి"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "బేస్ URL",
+ "desc": "మీ OmniRoute ఎండ్పాయింట్ URLను పేస్ట్ చేయండి"
},
"3": {
- "title": "API Key"
+ "title": "API కీ"
},
"4": {
- "title": "Select Model"
+ "title": "మోడల్ను ఎంచుకోండి"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiroకు Amazon ఖాతా అవసరం."
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Open AI సెట్టింగ్లు",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "అనుకూల ప్రొవైడర్ను జోడించండి",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "బేస్ URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API కీ",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "మోడల్ను ఎంచుకోండి",
+ "desc": "డ్రాప్డౌన్ నుండి మోడల్ను ఎంచుకోండి"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "స్వయంచాలకంగా కాన్ఫిగర్ చేయబడింది",
+ "toolCategoriesDesc": "OmniRoute ద్వారా రూట్ అయ్యేలా AI కోడింగ్ సహాయకాలను కాన్ఫిగర్ చేయండి",
+ "allToolsTab": "అన్ని సాధనాలు",
+ "guidedClientsTab": "మార్గదర్శిత క్లయింట్లు",
+ "mitmClientsTab": "MITM క్లయింట్లు",
"customCliTab": "అనుకూల CLI",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "సాధనాల వర్గాలు",
+ "visibleToolsCount": "{count} సాధనాలు అందుబాటులో ఉన్నాయి",
"customCliBuilderTitle": "OpenAI-అనుకూల CLI బిల్డర్",
"customCliBuilderDescription": "OpenAI-అనుకూల బేస్ URL, API కీ మరియు మోడల్ IDని ఆమోదించే ఏదైనా CLI లేదా SDK కోసం env vars మరియు JSON స్నిప్పెట్లను రూపొందించండి.",
"customCliNoModels": "మోడల్ సెలెక్టర్లను పాపులేట్ చేయడానికి కనీసం ఒక ప్రొవైడర్ని కనెక్ట్ చేయండి.",
@@ -3199,75 +3203,75 @@
"cliproxyapiVersion": "సంవత్సరం"
},
"combos": {
- "title": "Combos",
- "description": "Create model combos with weighted routing and fallback support",
+ "title": "కాంబోలు",
+ "description": "వెయిటెడ్ రూటింగ్ మరియు ఫాల్బ్యాక్ మద్దతుతో మోడల్ కాంబోలను సృష్టించండి",
"autoCatalogTitle": "ఆటో-రూటింగ్ కేటలాగ్",
"autoCatalogTemplateCount": "{count} టెంప్లేట్లు",
"autoCatalogDescription": "కనెక్ట్ చేయబడిన ప్రొవైడర్ల నుండి అంతర్నిర్మిత ఆటో/* కాంబోలు డైనమిక్గా పరిష్కరించబడతాయి. ఈ IDలలో దేనినైనా మోడల్ ఫీల్డ్గా ఉపయోగించండి — సెటప్ అవసరం లేదు.",
"autoCatalogExpand": "ఆటో-రూటింగ్ కేటలాగ్ని విస్తరించండి",
"autoCatalogCollapse": "ఆటో-రూటింగ్ కేటలాగ్ను కుదించు",
- "createCombo": "Create Combo",
- "editCombo": "Edit Combo",
- "deleteCombo": "Delete Combo",
- "noModels": "No models",
- "noModelsYet": "No models added yet",
- "addModel": "Add Model",
- "addModelToCombo": "Add Model to Combo",
- "routingStrategy": "Routing Strategy",
- "maxRetries": "Max Retries",
- "timeout": "Timeout (ms)",
- "healthcheck": "Healthcheck",
- "priority": "Priority",
- "fallback": "Fallback",
+ "createCombo": "కాంబోను సృష్టించండి",
+ "editCombo": "కాంబోను సవరించండి",
+ "deleteCombo": "కాంబోను తొలగించండి",
+ "noModels": "మోడళ్లు లేవు",
+ "noModelsYet": "ఇంకా మోడళ్లు జోడించబడలేదు",
+ "addModel": "మోడల్ను జోడించండి",
+ "addModelToCombo": "కాంబోకు మోడల్ను జోడించండి",
+ "routingStrategy": "రూటింగ్ వ్యూహం",
+ "maxRetries": "గరిష్ఠ పునఃప్రయత్నాలు",
+ "timeout": "కాలపరిమితి (ms)",
+ "healthcheck": "ఆరోగ్య తనిఖీ",
+ "priority": "ప్రాధాన్యత",
+ "fallback": "ఫాల్బ్యాక్",
"roundRobin": "Round Robin",
- "random": "Random",
- "leastLatency": "Least Latency",
- "comboName": "Combo Name",
+ "random": "యాదృచ్ఛికం",
+ "leastLatency": "అతి తక్కువ లేటెన్సీ",
+ "comboName": "కాంబో పేరు",
"comboNamePlaceholder": "my-combo",
"comboDescription": "వివరణ",
"comboDescriptionPlaceholder": "ఈ కాంబోను వివరించే ఐచ్ఛిక గమనిక",
- "deleteConfirm": "Delete this combo?",
- "noCombosYet": "No combos yet",
- "comboCreated": "Combo created successfully",
- "comboUpdated": "Combo updated successfully",
- "comboDeleted": "Combo deleted",
- "failedCreate": "Failed to create combo",
- "failedUpdate": "Failed to update combo",
- "errorCreating": "Error creating combo",
- "errorUpdating": "Error updating combo",
- "errorDeleting": "Error deleting combo",
- "testFailed": "Test request failed",
- "failedToggle": "Failed to toggle combo",
- "testResults": "Test Results — {name}",
- "resolvedBy": "Resolved by:",
- "more": "+{count} more",
- "reqs": "reqs",
- "success": "success",
- "proxyConfigured": "Proxy configured",
- "copyComboName": "Copy combo name",
- "enableCombo": "Enable combo",
- "disableCombo": "Disable combo",
- "testCombo": "Test combo",
- "duplicate": "Duplicate",
- "proxyConfig": "Proxy configuration",
- "nameRequired": "Name is required",
- "nameInvalid": "Only letters, numbers, -, _, / and . allowed",
- "nameHint": "Letters, numbers, -, _, / and . allowed",
- "priorityDesc": "Sequential fallback: tries model 1 first, then 2, etc.",
- "weightedDesc": "Distributes traffic by weight percentage with fallback",
- "roundRobinDesc": "Circular distribution: each request goes to the next model in rotation",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
- "randomDesc": "Uniform random selection, then fallback to remaining models",
- "leastUsedDesc": "Picks the model with fewest requests, balancing load over time",
- "costOptimizedDesc": "Routes to the cheapest model first based on pricing",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "deleteConfirm": "ఈ కాంబోను తొలగించాలా?",
+ "noCombosYet": "ఇంకా కాంబోలు లేవు",
+ "comboCreated": "కాంబో విజయవంతంగా సృష్టించబడింది",
+ "comboUpdated": "కాంబో విజయవంతంగా నవీకరించబడింది",
+ "comboDeleted": "కాంబో తొలగించబడింది",
+ "failedCreate": "కాంబోను సృష్టించడం విఫలమైంది",
+ "failedUpdate": "కాంబోను నవీకరించడం విఫలమైంది",
+ "errorCreating": "కాంబోను సృష్టించడంలో లోపం",
+ "errorUpdating": "కాంబోను నవీకరించడంలో లోపం",
+ "errorDeleting": "కాంబోను తొలగించడంలో లోపం",
+ "testFailed": "పరీక్ష అభ్యర్థన విఫలమైంది",
+ "failedToggle": "కాంబో స్థితిని మార్చడం విఫలమైంది",
+ "testResults": "పరీక్ష ఫలితాలు — {name}",
+ "resolvedBy": "పరిష్కరించినది:",
+ "more": "మరో {count}",
+ "reqs": "అభ్యర్థనలు",
+ "success": "విజయం",
+ "proxyConfigured": "ప్రాక్సీ కాన్ఫిగర్ చేయబడింది",
+ "copyComboName": "కాంబో పేరును కాపీ చేయండి",
+ "enableCombo": "కాంబోను ప్రారంభించండి",
+ "disableCombo": "కాంబోను నిలిపివేయండి",
+ "testCombo": "కాంబోను పరీక్షించండి",
+ "duplicate": "నకలు చేయండి",
+ "proxyConfig": "ప్రాక్సీ కాన్ఫిగరేషన్",
+ "nameRequired": "పేరు తప్పనిసరి",
+ "nameInvalid": "అక్షరాలు, సంఖ్యలు, -, _, / మరియు . మాత్రమే అనుమతించబడతాయి",
+ "nameHint": "అక్షరాలు, సంఖ్యలు, -, _, / మరియు . అనుమతించబడతాయి",
+ "priorityDesc": "క్రమానుగత ఫాల్బ్యాక్: ముందుగా మోడల్ 1ను, ఆపై 2ను, ఇలా ప్రయత్నిస్తుంది.",
+ "weightedDesc": "ఫాల్బ్యాక్తో ట్రాఫిక్ను వెయిట్ శాతం ప్రకారం పంపిణీ చేస్తుంది",
+ "roundRobinDesc": "చక్రీయ పంపిణీ: ప్రతి అభ్యర్థన రొటేషన్లోని తదుపరి మోడల్కు వెళ్తుంది",
+ "contextRelay": "కాంటెక్స్ట్ రిలే",
+ "contextRelayDesc": "ఖాతాలు మారినప్పుడు హ్యాండాఫ్ సారాంశాలతో సెషన్ కొనసాగింపును కాపాడుతుంది",
+ "randomDesc": "ఏకరీతి యాదృచ్ఛిక ఎంపిక, ఆపై మిగిలిన మోడల్లకు ఫాల్బ్యాక్",
+ "leastUsedDesc": "అతి తక్కువ అభ్యర్థనలు ఉన్న మోడల్ను ఎంచుకుని, కాలక్రమేణా లోడ్ను సమతుల్యం చేస్తుంది",
+ "costOptimizedDesc": "ధర ఆధారంగా ముందుగా అత్యంత చవకైన మోడల్కు రూట్ చేస్తుంది",
+ "cacheOptimizedDesc": "మళ్లీ ఉపయోగించగల ప్రతి ప్రాంప్ట్ ప్రిఫిక్స్ను స్థిరంగా అదే ప్రొవైడర్ ఖాతాకు రూట్ చేస్తుంది",
"resetAware": "రీసెట్-అవేర్ RR",
"resetAwareDesc": "5గం మరియు వారపు రీసెట్లకు వ్యతిరేకంగా మిగిలిన కోటాను బ్యాలెన్స్ చేస్తుంది, ఆపై రౌండ్-రాబిన్లు సారూప్య స్కోర్లు",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "కోటా-వెయిటెడ్",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "స్ట్రిక్ట్ రాండమ్",
+ "strictRandomDesc": "షఫుల్ డెక్ — మళ్లీ షఫుల్ చేయడానికి ముందు ప్రతి మోడల్ను ఒక్కసారి ఉపయోగిస్తుంది",
"fusion": "ఫ్యూజన్",
"fusionDesc": "ప్రాంప్ట్ను సమాంతరంగా ప్రతి ప్యానెల్ మోడల్కు పంపుతుంది, ఆపై జడ్జ్ మోడల్ ఒక తుది సమాధానాన్ని సంశ్లేషిస్తుంది",
"fusionJudgeModel": "జడ్జ్ మోడల్",
@@ -3278,27 +3282,27 @@
"fusionStragglerGraceMsHelp": "కోరం చేరుకున్న తర్వాత నెమ్మదిగా ఉన్న ప్యానెల్ మోడళ్ల కోసం ఎంత సమయం వేచి ఉండాలి (డిఫాల్ట్ 8000).",
"fusionPanelHardTimeoutMs": "ప్యానెల్ హార్డ్ టైమ్అవుట్ (ms)",
"fusionPanelHardTimeoutMsHelp": "ఒక నిలిచిపోయిన మోడల్ మొత్తం ప్యానెల్ను నిలిపివేయకుండా ఉండేందుకు సంపూర్ణ పరిమితి (డిఫాల్ట్ 90000).",
- "models": "Models",
- "autoBalance": "Auto-balance",
- "advancedSettings": "Advanced Settings",
- "retryDelay": "Retry Delay (ms)",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
- "advancedHint": "Leave empty to use global defaults. These override per-provider settings.",
+ "models": "మోడల్లు",
+ "autoBalance": "స్వయంచాలక సమతుల్యం",
+ "advancedSettings": "అధునాతన సెట్టింగ్లు",
+ "retryDelay": "పునఃప్రయత్న ఆలస్యం (ms)",
+ "concurrencyPerModel": "ఏకకాలికత / మోడల్",
+ "queueTimeout": "క్యూ గడువు ముగింపు (ms)",
+ "contextRelayHandoffThreshold": "హ్యాండాఫ్ థ్రెషోల్డ్",
+ "contextRelayHandoffThresholdHelp": "కోటా వినియోగం ఈ థ్రెషోల్డ్కు చేరుకున్నప్పుడు, సక్రియ ఖాతా కోటా పూర్తిగా అయిపోవడానికి ముందు OmniRoute నిర్మిత హ్యాండాఫ్ సారాంశాన్ని రూపొందిస్తుంది.",
+ "contextRelayMaxMessages": "సారాంశం కోసం గరిష్ఠ సందేశాలు",
+ "contextRelayMaxMessagesHelp": "ఇటీవలి చరిత్రలో ఎంత భాగాన్ని రిలే సారాంశంలోకి సంక్షిప్తం చేయాలో పరిమితం చేస్తుంది.",
+ "contextRelaySummaryModel": "సారాంశ మోడల్",
+ "contextRelaySummaryModelHelp": "హ్యాండాఫ్ సారాంశాన్ని రూపొందించడానికి మాత్రమే ఉపయోగించే ఐచ్ఛిక ప్రత్యామ్నాయ మోడల్. సక్రియ కాంబో మోడల్ను తిరిగి ఉపయోగించడానికి ఖాళీగా వదిలివేయండి.",
+ "contextRelayProviderNote": "ప్రస్తుతం Context Relay, Codex ఖాతా రొటేషన్ కోసం హ్యాండాఫ్లను రూపొందిస్తుంది. అత్యుత్తమ కొనసాగింపు కోసం దాన్ని ఒకే ప్రొవైడర్కు చెందిన అనేక ఖాతాలతో జత చేయండి.",
+ "advancedHint": "గ్లోబల్ డిఫాల్ట్లను ఉపయోగించడానికి ఖాళీగా వదిలివేయండి. ఇవి ప్రతి ప్రొవైడర్ సెట్టింగ్లను ఓవర్రైడ్ చేస్తాయి.",
"failoverBeforeRetry": "మళ్లీ ప్రయత్నించే ముందు వైఫల్యం",
"maxSetRetries": "గరిష్ట సెట్ పునఃప్రయత్నాలు",
"setRetryDelayMs": "మళ్లీ ప్రయత్నించండి ఆలస్యాన్ని సెట్ చేయండి (మిసె)",
- "moveUp": "Move up",
- "moveDown": "Move down",
- "removeModel": "Remove",
- "saving": "Saving...",
+ "moveUp": "పైకి తరలించు",
+ "moveDown": "కిందికి తరలించు",
+ "removeModel": "తొలగించు",
+ "saving": "సేవ్ చేస్తోంది...",
"liveNoProviders": "ఇంకా ఏ ప్రొవైడర్లు గమనించబడలేదు.",
"liveFleetDataHint": "ఫ్లీట్ డేటా లైవ్ కాంబో ఈవెంట్ల ద్వారా వస్తుంది.",
"liveActiveCount": "యాక్టివ్ ({count})",
@@ -3338,43 +3342,43 @@
"playgroundEmptyHint": "రూటింగ్ మార్గాన్ని చూడటానికి ఒక కాంబోను ఎంచుకుని, Simulate Routeని క్లిక్ చేయండి.",
"playgroundNoCombosYet": "ఇంకా ఏ కాంబోలు కాన్ఫిగర్ చేయబడలేదు.",
"playgroundCreateFirst": "ముందుగా ఒకదాన్ని సృష్టించండి",
- "weighted": "Weighted",
- "leastUsed": "Least-Used",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "weighted": "వెయిటెడ్",
+ "leastUsed": "అతి తక్కువగా ఉపయోగించబడినది",
+ "costOpt": "ఖర్చు-ఆప్టిమైజ్డ్",
+ "strategyGuideTitle": "ఈ వ్యూహాన్ని ఎలా ఉపయోగించాలి",
+ "strategyGuideWhen": "ఎప్పుడు ఉపయోగించాలి",
+ "strategyGuideAvoid": "ఎప్పుడు నివారించాలి",
+ "strategyGuideExample": "ఉదాహరణ",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "మీకు ఒక ప్రాధాన్య మోడల్ ఉండి, అది విఫలమైనప్పుడు మాత్రమే ఫాల్బ్యాక్ కావాలి.",
+ "avoid": "మీరు అభ్యర్థనలను మోడళ్ల మధ్య పంపిణీ చేయాలి.",
+ "example": "అంతరాయాల సమయంలో తక్కువ ఖర్చుతో కూడిన బ్యాకప్ ఉన్న ప్రధాన కోడింగ్ మోడల్."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "మీకు మోడళ్ల మధ్య నియంత్రిత ట్రాఫిక్ విభజన అవసరం.",
+ "avoid": "మీరు కాలక్రమేణా ఖచ్చితమైన వెయిట్లను నిర్వహించలేరు.",
+ "example": "80% స్థిరమైన మోడల్ + 20% కానరీ మోడల్ రోల్అవుట్."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "మీకు ఊహించదగిన, సమానమైన పంపిణీ కావాలి.",
+ "avoid": "లేటెన్సీ లేదా ఖర్చు పరంగా మోడళ్ల మధ్య చాలా వ్యత్యాసం ఉంది.",
+ "example": "త్రూపుట్ను విస్తరించడానికి అనేక ఖాతాల్లో ఒకే మోడల్."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "కనిష్ఠ సెటప్తో సరళమైన పంపిణీ కావాలి.",
+ "avoid": "మీకు కచ్చితమైన ట్రాఫిక్ హామీలు అవసరం.",
+ "example": "సమానమైన మోడళ్లతో వేగవంతమైన ప్రోటోటైపింగ్."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "ప్రత్యక్ష డిమాండ్ ఆధారంగా అనుకూలంగా మారే బ్యాలెన్సింగ్ కావాలి.",
+ "avoid": "వినియోగ బ్యాలెన్సింగ్ ప్రయోజనం పొందడానికి ట్రాఫిక్ చాలా తక్కువగా ఉంది.",
+ "example": "ఒక మోడల్ తరచుగా ఓవర్లోడ్ అయ్యే మిశ్రమ వర్క్లోడ్లు."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "ఖర్చు తగ్గింపే మీ అత్యున్నత ప్రాధాన్యం.",
+ "avoid": "ధరల డేటా అందుబాటులో లేదు లేదా పాతది.",
+ "example": "తక్కువ ఖర్చుకు ప్రాధాన్యం ఇచ్చే బ్యాక్గ్రౌండ్ లేదా బ్యాచ్ జాబ్లు."
},
"reset-aware": {
"when": "మీరు కోటా టెలిమెట్రీ మరియు విభిన్న రీసెట్ విండోలతో బహుళ ఖాతాలకు వెళ్లవచ్చు.",
@@ -3382,104 +3386,104 @@
"example": "తర్వాత 80% ఖాతా రీసెట్ చేయడం కంటే రేపు 60% వీక్లీ ఖాతా రీసెట్ని ఇష్టపడండి."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "ప్రతి మోడల్ను మళ్లీ ఉపయోగించే ముందు ఒక్కోసారి ఉపయోగిస్తూ, పూర్తిగా సమానమైన పంపిణీ కావాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "avoid": "మోడళ్ల నాణ్యత లేదా లేటెన్సీ భిన్నంగా ఉండి, క్రమం ముఖ్యమైనప్పుడు నివారించండి.",
+ "example": "ఉదాహరణ: వినియోగాన్ని సమానంగా పంపిణీ చేయడానికి ఒకే మోడల్కు చెందిన అనేక ఖాతాలు."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Power-of-Two-Choices అల్గోరిథమ్ను ఉపయోగించి తక్కువ-లేటెన్సీ ఎంపిక కావాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "avoid": "2 లేదా అంతకంటే తక్కువ మోడళ్లు ఉన్న చిన్న కాంబోల కోసం నివారించండి — రౌండ్-రాబిన్తో పోలిస్తే ఎలాంటి ప్రయోజనం లేదు.",
+ "example": "ఉదాహరణ: 4+ సమానమైన మోడల్ ఎండ్పాయింట్లలో అధిక-నిర్వహణ సామర్థ్యంతో ఇన్ఫరెన్స్."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "పని చేస్తున్న సందర్భాన్ని కోల్పోకుండా ఖాతా మార్పును తట్టుకుని దీర్ఘ సెషన్లు కొనసాగాల్సినప్పుడు ఉపయోగించండి.",
+ "avoid": "ఖాతా మార్పు అరుదుగా జరిగేటప్పుడు లేదా అదనపు సారాంశ అభ్యర్థనలు వద్దనుకున్నప్పుడు ఉపయోగించవద్దు.",
+ "example": "ఉదాహరణ: కోటా పూర్తయ్యే దశలో బహుళ ఖాతాల మధ్య మారే Codex సెషన్లు."
},
"fill-first": {
- "when": "Use when you want to fully exhaust one provider's quota before moving to the next.",
- "avoid": "Avoid when you need request-level load balancing across providers.",
- "example": "Example: Use all $200 Deepgram credits before falling back to Groq."
+ "when": "తదుపరి ప్రొవైడర్కు మారే ముందు ఒక ప్రొవైడర్ కోటాను పూర్తిగా వినియోగించాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "avoid": "ప్రొవైడర్లలో అభ్యర్థన-స్థాయి లోడ్ బ్యాలెన్సింగ్ అవసరమైనప్పుడు ఉపయోగించవద్దు.",
+ "example": "ఉదాహరణ: Groqకు మారే ముందు మొత్తం $200 Deepgram క్రెడిట్లను ఉపయోగించండి."
},
"auto": {
- "when": "Use when you need multi-factor scoring routing based on cost, latency, and quality.",
- "avoid": "Avoid when you need strict priority ordering or historical persistence.",
- "example": "Example: Balance requests across models with different strengths."
+ "when": "ఖర్చు, ఆలస్యం మరియు నాణ్యత ఆధారంగా బహుళ-కారకాల స్కోరింగ్ రూటింగ్ అవసరమైనప్పుడు ఉపయోగించండి.",
+ "avoid": "ఖచ్చితమైన ప్రాధాన్యతా క్రమం లేదా చారిత్రక స్థిరత్వం అవసరమైనప్పుడు ఉపయోగించవద్దు.",
+ "example": "ఉదాహరణ: విభిన్న సామర్థ్యాలు కలిగిన మోడళ్లలో అభ్యర్థనలను సమతుల్యం చేయండి."
},
"lkgp": {
- "when": "Use when you want to route based on historical success rates and performance.",
- "avoid": "Avoid when historical data is limited or unreliable.",
- "example": "Example: Route to models with a good track record on specific tasks."
+ "when": "చారిత్రక విజయ రేట్లు మరియు పనితీరు ఆధారంగా రూట్ చేయాలనుకున్నప్పుడు ఉపయోగించండి.",
+ "avoid": "చారిత్రక డేటా పరిమితంగా లేదా నమ్మదగనిదిగా ఉన్నప్పుడు ఉపయోగించవద్దు.",
+ "example": "ఉదాహరణ: నిర్దిష్ట పనుల్లో మంచి పనితీరు చరిత్ర కలిగిన మోడళ్లకు రూట్ చేయండి."
},
"context-optimized": {
- "when": "Use when you need to optimize context window usage across models.",
- "avoid": "Avoid when models have similar context lengths or tasks are simple.",
- "example": "Example: Distribute long conversations across models with larger context windows."
+ "when": "మోడళ్లలో కాంటెక్స్ట్ విండో వినియోగాన్ని ఆప్టిమైజ్ చేయాల్సినప్పుడు ఉపయోగించండి.",
+ "avoid": "మోడళ్లకు సమానమైన కాంటెక్స్ట్ నిడివులు ఉన్నప్పుడు లేదా పనులు సరళంగా ఉన్నప్పుడు ఉపయోగించవద్దు.",
+ "example": "ఉదాహరణ: పెద్ద కాంటెక్స్ట్ విండోలు కలిగిన మోడళ్లలో సుదీర్ఘ సంభాషణలను పంపిణీ చేయండి."
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "అభ్యర్థన విఫలమైనట్లు నిర్ధారించే ముందు ఎన్నిసార్లు మళ్లీ ప్రయత్నించాలి.",
+ "retryDelay": "పునఃప్రయత్నాల మధ్య ప్రారంభ నిరీక్షణ సమయం. అధిక విలువలు ఆకస్మిక ఒత్తిడిని తగ్గిస్తాయి.",
+ "timeout": "నిలిపివేయడానికి ముందు గరిష్ఠ అభ్యర్థన వ్యవధి.",
+ "healthcheck": "రూటింగ్ నిర్ణయాల నుండి సరిగా పనిచేయని మోడళ్లు/ప్రొవైడర్లను మినహాయిస్తుంది.",
+ "concurrencyPerModel": "రౌండ్-రాబిన్లో ఒక్కో మోడల్కు అనుమతించబడే గరిష్ఠ ఏకకాల అభ్యర్థనలు.",
+ "queueTimeout": "సమయం ముగిసే ముందు ఒక అభ్యర్థన క్యూలో ఎంతసేపు వేచి ఉండవచ్చు.",
"failoverBeforeRetry": "ప్రారంభించబడినప్పుడు, ఏదైనా అప్స్ట్రీమ్ లోపం తదుపరి కాంబో లక్ష్యానికి తక్షణ వైఫల్యాన్ని ప్రేరేపిస్తుంది, అన్ని పునఃప్రయత్నాలు మరియు ఫాల్బ్యాక్ URLలను దాటవేస్తుంది.",
"maxSetRetries": "ప్రతి లక్ష్యం విఫలమైనప్పుడు సెట్ చేసిన పూర్తి లక్ష్యాన్ని మళ్లీ ప్రయత్నించడానికి ఎన్ని సార్లు. 0 = సెట్-స్థాయి పునఃప్రయత్నం లేదు.",
"setRetryDelayMs": "సెట్-స్థాయి పునఃప్రయత్నాల మధ్య ఆలస్యం, తాత్కాలిక సమస్యలను పరిష్కరించడానికి సమయం ఇస్తుంది.",
"disableSessionStickiness": "మొదటి-సందేశం హ్యాష్ ద్వారా మొత్తం సంభాషణను ఒకే కనెక్షన్కు పిన్ చేయడానికి బదులుగా ప్రతి రిక్వెస్ట్కు వేరొక కనెక్షన్కు రొటేట్ చేయండి. గ్లోబల్ డిఫాల్ట్ను ఓవర్రైడ్ చేస్తుంది. మల్టీ-టర్న్ చాట్ల కోసం ప్రాంప్ట్-కాష్ హిట్లను సంరక్షించడానికి Inherit లో ఉంచండి."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "త్వరిత టెంప్లేట్లు",
+ "templatesDescription": "ప్రారంభ ప్రొఫైల్ను వర్తింపజేసి, ఆపై మోడళ్లు మరియు కాన్ఫిగ్ను సర్దుబాటు చేయండి.",
+ "templateApply": "టెంప్లేట్ను వర్తింపజేయండి",
+ "templateHighAvailability": "అధిక లభ్యత",
+ "templateHighAvailabilityDesc": "హెల్త్ చెక్లు మరియు సురక్షిత పునఃప్రయత్నాలతో ప్రాధాన్యతా రూటింగ్.",
+ "templateCostSaver": "ఖర్చు ఆదా",
+ "templateCostSaverDesc": "బడ్జెట్కు ప్రాధాన్యమిచ్చే వర్క్లోడ్ల కోసం ఖర్చు-ఆప్టిమైజ్డ్ రూటింగ్.",
+ "templateBalanced": "సమతుల్య లోడ్",
+ "templateBalancedDesc": "కాలక్రమంలో డిమాండ్ను విస్తరించేందుకు అతి తక్కువగా ఉపయోగించిన రూటింగ్.",
+ "usageGuideHide": "దాచు",
+ "usageGuideDontShowAgain": "మళ్లీ చూపవద్దు",
+ "usageGuideShow": "మార్గదర్శిని చూపు",
+ "quickTestTitle": "కాంబో ధృవీకరణకు సిద్ధంగా ఉంది",
+ "quickTestDescription": "ఫాల్బ్యాక్ మరియు ఆలస్య ప్రవర్తనను నిర్ధారించడానికి ఇప్పుడే పరీక్షను అమలు చేయండి.",
+ "testNow": "ఇప్పుడే పరీక్షించండి",
+ "pricingCoverage": "ధరల కవరేజ్",
+ "pricingCoverageHint": "అన్ని కాంబో మోడళ్లకు ధరలు ఉన్నప్పుడు ఖర్చు-ఆప్టిమైజ్డ్ ఉత్తమంగా పనిచేస్తుంది.",
+ "pricingAvailable": "ధరలు అందుబాటులో ఉన్నాయి",
+ "pricingMissing": "ధర సమాచారం లేదు",
+ "pricingAvailableShort": "ధర నిర్ణయించబడినవి",
+ "pricingMissingShort": "ధర-లేనివి",
"fallbackOnlyOnQuotaExhaustion": "కేవలం క్వోటా ముగిసినప్పుడు మాత్రమే ముందుకు సాగండి",
"fallbackOnlyOnQuotaExhaustionShort": "కోటా-మాత్రం బ్యాకప్",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
- "readinessCheckPricing": "Pricing data is available",
- "readinessCheckPricingOptional": "Pricing rule not required",
- "saveBlockedTitle": "Save is blocked until the following items are fixed:",
- "saveBlockName": "Define a combo name.",
- "saveBlockModels": "Add at least one model.",
- "saveBlockWeighted": "Set weights to 100% (current: {total}%).",
- "saveBlockPricing": "Add pricing for at least one model or choose a different strategy.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "warningRoundRobinSingleModel": "రౌండ్-రాబిన్ కనీసం 2 మోడళ్లతో అత్యంత ఉపయోగకరంగా ఉంటుంది.",
+ "warningCostOptimizedPartialPricing": "{total} మోడళ్లలో {priced} మోడళ్లకు మాత్రమే ధర సమాచారం ఉంది. రూటింగ్ పాక్షికంగా వ్యయాన్ని పరిగణనలోకి తీసుకోవచ్చు.",
+ "warningCostOptimizedNoPricing": "ఈ కాంబోకు ధర డేటా కనుగొనబడలేదు. వ్యయ-ఆప్టిమైజ్డ్ వ్యూహం అనూహ్యంగా రూట్ చేయవచ్చు.",
+ "filterAll": "అన్నీ",
+ "filterIntelligent": "తెలివైనవి",
+ "filterDeterministic": "నిర్ణీతమైనవి",
+ "filterEmptyTitle": "ఈ వ్యూహ ఫిల్టర్కు సరిపోలే కాంబోలు లేవు.",
+ "filterEmptyIntelligentDescription": "తెలివైన రూటింగ్ డ్యాష్బోర్డ్ను నింపడానికి auto లేదా LKGP కాంబోను సృష్టించండి.",
+ "filterEmptyDeterministicDescription": "ప్రస్తుతం auto మరియు LKGP కాంబోలు మాత్రమే ఉన్నాయి. తిరిగి అన్నీ ఎంచుకోండి లేదా నిర్ణీత కాంబోను సృష్టించండి.",
+ "readinessTitle": "సేవ్ చేయడానికి సిద్ధంగా ఉన్నారా?",
+ "readinessDescription": "ఈ కాంబోను సృష్టించే లేదా నవీకరించే ముందు చెక్లిస్ట్ను సమీక్షించండి.",
+ "readinessCheckName": "కాంబో పేరు చెల్లుబాటు అవుతుంది",
+ "readinessCheckModels": "కనీసం ఒక మోడల్ ఎంపిక చేయబడింది",
+ "readinessCheckWeights": "వెయిటెడ్ మొత్తం 100%",
+ "readinessCheckWeightsOptional": "వెయిట్ నియమం అవసరం లేదు",
+ "readinessCheckPricing": "ధర డేటా అందుబాటులో ఉంది",
+ "readinessCheckPricingOptional": "ధర నియమం అవసరం లేదు",
+ "saveBlockedTitle": "కింది అంశాలను పరిష్కరించే వరకు సేవ్ చేయడం నిరోధించబడుతుంది:",
+ "saveBlockName": "కాంబో పేరును నిర్వచించండి.",
+ "saveBlockModels": "కనీసం ఒక మోడల్ను జోడించండి.",
+ "saveBlockWeighted": "వెయిట్లను 100%కి సెట్ చేయండి (ప్రస్తుతం: {total}%).",
+ "saveBlockPricing": "కనీసం ఒక మోడల్కు ధరను జోడించండి లేదా వేరే వ్యూహాన్ని ఎంచుకోండి.",
+ "recommendationsLabel": "సిఫార్సు చేసిన సెటప్",
+ "applyRecommendations": "సిఫార్సులను వర్తింపజేయండి",
+ "recommendationsUpdated": "{strategy} కోసం సిఫార్సులు నవీకరించబడ్డాయి.",
+ "recommendationsApplied": "ఈ కాంబోకు సిఫార్సులు వర్తింపజేయబడ్డాయి.",
+ "intelligentPanelTitle": "తెలివైన రూటింగ్ డ్యాష్బోర్డ్",
+ "intelligentPanelDesc": "ఈ auto-routing కాంబో కోసం రియల్-టైమ్ స్కోరింగ్ మరియు ఆరోగ్య స్థితి.",
"configOnlyStatus": "కాన్ఫిగరేషన్ వీక్షణ",
"configOnlyHint": "ఈ ప్యానెల్ రూటింగ్ ఇన్పుట్లను మాత్రమే చూపుతుంది. లైవ్ బ్రేకర్ స్థితి Health పేజీలో అందుబాటులో ఉంది.",
"routingInputs": "రూటింగ్ ఇన్పుట్లు",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "తెలియని ప్రొవైడర్ ప్రిఫిక్స్.",
"builderDynamicAccountShort": "డైనమిక్ ఖాతా",
"builderNeedValidName": "కొనసాగడానికి ముందు చెల్లుబాటు అయ్యే కాంబో పేరును నిర్వచించండి.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "స్థితి అవలోకనం",
+ "normalOperation": "సాధారణ కార్యకలాపం",
+ "allProvidersHealthy": "ప్రొవైడర్లు ఆరోగ్యకరమైన రూటింగ్ పరిస్థితులను నివేదిస్తున్నారు.",
+ "incidentMode": "సంఘటన మోడ్",
+ "highCircuitBreakerRate": "అధిక సర్క్యూట్ బ్రేకర్ ట్రిప్ రేటు గుర్తించబడింది.",
+ "activeModePack": "సక్రియ మోడ్ ప్యాక్",
+ "modePackUpdated": "మోడ్ ప్యాక్ {pack}కు నవీకరించబడింది.",
+ "modePackHint": "కాంబోను మళ్లీ నిర్మించకుండా రూటింగ్ ఇంజిన్ను నిర్దిష్ట దిశగా మొగ్గు చూపించడానికి ప్రీసెట్లను మార్చండి.",
+ "providerScores": "ప్రొవైడర్ స్కోర్లు",
+ "allProvidersEvaluated": "అభ్యర్థి పూల్ కాన్ఫిగర్ చేయబడలేదు. రన్టైమ్లో అన్ని సక్రియ ప్రొవైడర్లు మూల్యాంకనం చేయబడతారు.",
+ "excludedProviders": "మినహాయించిన ప్రొవైడర్లు",
+ "excludedProvidersHint": "OPEN సర్క్యూట్ బ్రేకర్ ఉన్న ప్రొవైడర్లు రూటింగ్ నుండి తాత్కాలికంగా మినహాయించబడతారు.",
+ "noExcludedProviders": "ప్రస్తుతం ఏ ప్రొవైడర్లూ మినహాయించబడలేదు.",
+ "cooldownMinutes": "కూల్డౌన్: {minutes}m",
+ "builderIntelligentTitle": "ఇంటెలిజెంట్ రూటింగ్ కాన్ఫిగరేషన్",
+ "builderIntelligentDesc": "ఈ ఆటో-రూటింగ్ కాంబో కోసం బహుళ-కారకాల స్కోరింగ్ ఇంజిన్ను కాన్ఫిగర్ చేయండి.",
+ "candidatePoolLabel": "అభ్యర్థి పూల్",
+ "candidatePoolHint": "ఈ ఇంజిన్ ఏ ప్రొవైడర్లను మూల్యాంకనం చేయాలో ఎంచుకోండి. అన్ని సక్రియ ప్రొవైడర్లను ఉపయోగించడానికి ఖాళీగా వదిలేయండి.",
+ "candidatePoolEmpty": "ఇంకా సక్రియ ప్రొవైడర్లు అందుబాటులో లేరు.",
+ "candidatePoolAllProviders": "అన్ని ప్రొవైడర్లు",
+ "modePackLabel": "మోడ్ ప్యాక్",
+ "routerStrategyLabel": "రౌటర్ వ్యూహం",
+ "strategyRules": "నియమాలు (6-కారకాల స్కోరింగ్)",
+ "explorationRateLabel": "అన్వేషణ రేటు",
+ "explorationRateHint": "అభ్యర్థనల్లో {percent}% అనుకూలం కాని ప్రొవైడర్లను అన్వేషించవచ్చు.",
+ "budgetCapLabel": "బడ్జెట్ పరిమితి (USD / అభ్యర్థన)",
+ "budgetCapPlaceholder": "పరిమితి లేదు",
+ "advancedWeightsTitle": "అధునాతనం: స్కోరింగ్ వెయిట్లు",
"nestedComboFlatten": "నెస్టెడ్ కాంబోలను ఫ్లాటెన్ చేయండి",
"nestedComboExecute": "నెస్టెడ్ కాంబోలను టార్గెట్లుగా అమలు చేయండి",
"effectiveRoutingShare": "సమర్థవంతమైన రూటింగ్ వాటా (weight ÷ total)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "కోటా",
+ "weightHealth": "ఆరోగ్యం",
+ "weightCostInv": "ఖర్చు",
+ "weightLatencyInv": "జాప్యం",
+ "weightTaskFit": "టాస్క్ అనుకూలత",
+ "weightStability": "స్థిరత్వం",
+ "weightTierPriority": "టియర్",
+ "weightCacheAffinity": "క్యాష్ హిట్ అనుబంధం",
"weightSessionAvailability": "సెషన్ అందుబాటులో ఉంది",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "ఇంటెలిజెంట్ రూటింగ్ కాన్ఫిగరేషన్",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "ఫెయిల్-సేఫ్ బేస్లైన్",
+ "description": "ఒక ప్రాథమిక మోడల్ను ఉపయోగించి, ఫాల్బ్యాక్ చైన్ను చిన్నదిగా మరియు విశ్వసనీయంగా ఉంచండి.",
+ "tip1": "అత్యంత విశ్వసనీయమైన మీ మోడల్ను మొదట ఉంచండి.",
+ "tip2": "సమాన నాణ్యత కలిగిన 1-2 బ్యాకప్ మోడళ్లను ఉంచండి.",
+ "tip3": "తాత్కాలిక ప్రొవైడర్ వైఫల్యాలను తట్టుకోవడానికి సురక్షిత రీట్రైలను ఉపయోగించండి."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "నియంత్రిత ట్రాఫిక్ విభజన",
+ "description": "క్యానరీ రోల్అవుట్లకు మరియు మోడళ్ల మధ్య క్రమానుగత మైగ్రేషన్కు చాలా అనుకూలం.",
+ "tip1": "90/10 వంటి పరిమిత విభజనతో ప్రారంభించండి.",
+ "tip2": "మొత్తాన్ని 100% వద్ద ఉంచి, మార్పుల తర్వాత స్వయంచాలకంగా సమతుల్యం చేయండి.",
+ "tip3": "క్యానరీ వెయిట్ను పెంచే ముందు విజయ రేటు మరియు జాప్యాన్ని పర్యవేక్షించండి."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "ఊహించదగిన లోడ్ భాగస్వామ్యం",
+ "description": "మోడళ్లు సమానంగా ఉన్నప్పుడు మరియు సజావైన పంపిణీ అవసరమైనప్పుడు ఇది ఉత్తమం.",
+ "tip1": "కనీసం 2 మోడళ్లను ఉపయోగించండి.",
+ "tip2": "ఒక్కసారిగా అధిక లోడ్ పడకుండా సమకాలికత పరిమితులను సెట్ చేయండి.",
+ "tip3": "సిస్టమ్ పూర్తిగా నిండినప్పుడు త్వరగా విఫలమయ్యేలా క్యూ గడువు ముగింపు సమయాన్ని ఉపయోగించండి."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "తక్కువ సెటప్తో వేగవంతమైన పంపిణీ",
+ "description": "కఠినమైన హామీలు అవసరం లేకుండా సరళమైన పంపిణీ కావాల్సినప్పుడు ఉపయోగించండి.",
+ "tip1": "ఒకే విధమైన జాప్య ప్రొఫైల్లున్న మోడళ్లను ఉపయోగించండి.",
+ "tip2": "యాదృచ్ఛిక వైఫల్యాలను తట్టుకోవడానికి పునఃప్రయత్నాలను ప్రారంభించి ఉంచండి.",
+ "tip3": "కఠినమైన SLAల కోసం కాకుండా ప్రయోగాల కోసం దీన్ని ప్రాధాన్యంగా ఉపయోగించండి."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "అనుకూల సంతులనం",
+ "description": "కాలక్రమేణా హాట్స్పాట్లను తగ్గించడానికి తక్కువగా ఉపయోగించిన మోడళ్లకు రూట్ చేస్తుంది.",
+ "tip1": "నిరంతర ట్రాఫిక్లో మెరుగ్గా పనిచేస్తుంది.",
+ "tip2": "సురక్షితమైన సంతులనం కోసం ఆరోగ్య తనిఖీలతో కలిపి ఉపయోగించండి.",
+ "tip3": "పంపిణీ ప్రయోజనాలను ధృవీకరించడానికి ప్రతి మోడల్ వినియోగాన్ని ట్రాక్ చేయండి."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "బడ్జెట్కు ప్రాధాన్యమిచ్చే రూటింగ్",
+ "description": "ధరల మెటాడేటా అందుబాటులో ఉన్నప్పుడు తక్కువ ఖర్చు గల మోడళ్లకు రూట్ చేస్తుంది.",
+ "tip1": "ఎంచుకున్న అన్ని మోడళ్లకు ధరల సమాచారం అందుబాటులో ఉందని నిర్ధారించుకోండి.",
+ "tip2": "క్లిష్టమైన ప్రాంప్ట్ల కోసం నాణ్యమైన ఫాల్బ్యాక్ను ఉంచండి.",
+ "tip3": "ఖర్చే ప్రధాన KPIగా ఉండే బ్యాచ్/బ్యాక్గ్రౌండ్ జాబ్ల కోసం ఉపయోగించండి."
},
"reset-aware": {
"title": "ఖాతా భ్రమణాన్ని రీసెట్ చేయండి",
@@ -3593,155 +3597,155 @@
"tip3": "టై బ్యాండ్ను చిన్నగా ఉంచండి, తద్వారా సమానమైన ఖాతాలు ఇప్పటికీ చాలా చక్కగా తిరుగుతాయి."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "షఫుల్ డెక్ పంపిణీ",
+ "description": "మళ్లీ షఫుల్ చేయడానికి ముందు ప్రతి చక్రంలో ఒక్కో మోడల్ సరిగ్గా ఒకసారి ఉపయోగించబడుతుంది.",
+ "tip1": "అర్థవంతమైన పంపిణీ కోసం కనీసం 2 మోడళ్లను ఉపయోగించండి.",
+ "tip2": "సమాన పనితీరు గల మోడళ్లతో ఉత్తమంగా పనిచేస్తుంది.",
+ "tip3": "బహుళ API ఖాతాల మధ్య లోడ్ బ్యాలెన్సింగ్కు అనువైనది."
},
"fill-first": {
- "description": "Exhaust provider quotas sequentially before falling back.",
- "tip1": "Use for quota-based routing with clear fallback chains.",
- "tip2": "Set quotas accurately to avoid premature fallback.",
- "tip3": "Works best with providers offering free tiers or credit buckets.",
- "title": "Quota Exhaustion"
+ "description": "ఫాల్బ్యాక్కు వెళ్లే ముందు ప్రొవైడర్ కోటాలను వరుసగా పూర్తిగా వినియోగిస్తుంది.",
+ "tip1": "స్పష్టమైన ఫాల్బ్యాక్ గొలుసులతో కోటా-ఆధారిత రూటింగ్ కోసం ఉపయోగించండి.",
+ "tip2": "ముందస్తు ఫాల్బ్యాక్ను నివారించడానికి కోటాలను ఖచ్చితంగా సెట్ చేయండి.",
+ "tip3": "ఉచిత టియర్లు లేదా క్రెడిట్ బకెట్లను అందించే ప్రొవైడర్లతో ఉత్తమంగా పనిచేస్తుంది.",
+ "title": "కోటా పూర్తిగా వినియోగించబడటం"
},
"auto": {
- "description": "Route based on real-time scoring for cost, latency, quality, and health.",
- "tip1": "Let the engine balance multiple factors automatically.",
- "tip2": "Monitor which factors drive routing decisions in logs.",
- "tip3": "Use for complex workloads where no single factor dominates.",
- "title": "Multi-Factor Optimization"
+ "description": "ఖర్చు, జాప్యం, నాణ్యత మరియు ఆరోగ్యానికి సంబంధించిన రియల్-టైమ్ స్కోరింగ్ ఆధారంగా రూట్ చేయండి.",
+ "tip1": "బహుళ అంశాలను ఇంజిన్ స్వయంచాలకంగా సమతుల్యం చేయనివ్వండి.",
+ "tip2": "లాగ్లలో రూటింగ్ నిర్ణయాలను ఏ అంశాలు ప్రభావితం చేస్తున్నాయో పర్యవేక్షించండి.",
+ "tip3": "ఏ ఒక్క అంశమూ ఆధిపత్యం వహించని సంక్లిష్ట వర్క్లోడ్ల కోసం ఉపయోగించండి.",
+ "title": "బహుళ-అంశాల ఆప్టిమైజేషన్"
},
"lkgp": {
- "description": "Route based on historical performance and success patterns.",
- "tip1": "Requires sufficient request history for accurate predictions.",
- "tip2": "Good for workloads with consistent model performance patterns.",
- "tip3": "Monitor prediction accuracy and adjust weights as needed.",
- "title": "History-Based Routing"
+ "description": "చారిత్రక పనితీరు మరియు విజయవంతమైన నమూనాల ఆధారంగా రూట్ చేయండి.",
+ "tip1": "ఖచ్చితమైన అంచనాల కోసం తగినంత అభ్యర్థన చరిత్ర అవసరం.",
+ "tip2": "స్థిరమైన మోడల్ పనితీరు నమూనాలున్న వర్క్లోడ్లకు అనుకూలం.",
+ "tip3": "అంచనాల ఖచ్చితత్వాన్ని పర్యవేక్షించి, అవసరమైన విధంగా వెయిట్లను సర్దుబాటు చేయండి.",
+ "title": "చరిత్ర-ఆధారిత రూటింగ్"
},
"context-optimized": {
- "description": "Optimize routing based on context window usage and token efficiency.",
- "tip1": "Route long conversations to models with larger context windows.",
- "tip2": "Monitor context utilization to avoid token waste.",
- "tip3": "Best for conversational AI requiring extensive context retention.",
- "title": "Context Optimization"
+ "description": "కాంటెక్స్ట్ విండో వినియోగం మరియు టోకెన్ సామర్థ్యం ఆధారంగా రూటింగ్ను ఆప్టిమైజ్ చేయండి.",
+ "tip1": "సుదీర్ఘ సంభాషణలను పెద్ద కాంటెక్స్ట్ విండోలు గల మోడళ్లకు రూట్ చేయండి.",
+ "tip2": "టోకెన్ వృథాను నివారించడానికి కాంటెక్స్ట్ వినియోగాన్ని పర్యవేక్షించండి.",
+ "tip3": "విస్తృతమైన కాంటెక్స్ట్ నిలుపుదల అవసరమైన సంభాషణాత్మక AIకి ఉత్తమం.",
+ "title": "కాంటెక్స్ట్ ఆప్టిమైజేషన్"
},
"context-relay": {
- "description": "Best when account rotation is expected and the next account must inherit a simplified task summary.",
- "tip1": "Use with providers rotating accounts for the same model family.",
- "tip2": "Set handoff threshold below hard quota cutoffs for summary generation time.",
- "tip3": "Only set a dedicated summary model if the primary is too expensive or unstable.",
- "title": "Session Continuity Priority"
+ "description": "ఖాతా రొటేషన్ జరగవచ్చని భావించినప్పుడు మరియు తదుపరి ఖాతా సరళీకృత టాస్క్ సారాంశాన్ని స్వీకరించాల్సినప్పుడు ఉత్తమం.",
+ "tip1": "ఒకే మోడల్ ఫ్యామిలీ కోసం ఖాతాలను రొటేట్ చేసే ప్రొవైడర్లతో ఉపయోగించండి.",
+ "tip2": "సారాంశాన్ని రూపొందించడానికి సమయం ఉండేలా హార్డ్ కోటా కటాఫ్ల కంటే హ్యాండాఫ్ థ్రెషోల్డ్ను తక్కువగా సెట్ చేయండి.",
+ "tip3": "ప్రైమరీ మోడల్ చాలా ఖరీదైనది లేదా అస్థిరమైనది అయితే మాత్రమే ప్రత్యేక సారాంశ మోడల్ను సెట్ చేయండి.",
+ "title": "సెషన్ కొనసాగింపు ప్రాధాన్యత"
},
"p2c": {
- "description": "Route to the provider with the lowest current load based on real-time metrics.",
- "tip1": "Monitor provider health metrics for accurate load assessment.",
- "tip2": "Works best with homogeneous provider pools.",
- "tip3": "Adjust sensitivity to avoid oscillation during traffic spikes.",
- "title": "Power of Two Choices"
+ "description": "రియల్-టైమ్ మెట్రిక్స్ ఆధారంగా ప్రస్తుతం అత్యల్ప లోడ్ ఉన్న ప్రొవైడర్కు రూట్ చేయండి.",
+ "tip1": "లోడ్ను ఖచ్చితంగా అంచనా వేయడానికి ప్రొవైడర్ హెల్త్ మెట్రిక్స్ను పర్యవేక్షించండి.",
+ "tip2": "ఒకే రకమైన ప్రొవైడర్ పూల్స్తో అత్యుత్తమంగా పనిచేస్తుంది.",
+ "tip3": "ట్రాఫిక్ స్పైక్స్ సమయంలో ఊగిసలాటను నివారించడానికి సెన్సిటివిటీని సర్దుబాటు చేయండి.",
+ "title": "రెండు ఎంపికల శక్తి"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
- "auto": "Intelligent Auto",
- "autoDesc": "Self-healing smart routing pool with multi-factor scoring",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Prioritizes the last provider that successfully completed a request",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "templateFreeStack": "ఉచిత స్టాక్ ($0)",
+ "templateFreeStackDesc": "అన్ని ఉచిత ప్రొవైడర్లలో రౌండ్-రాబిన్: Kiro (Claude), Qoder (5 మోడళ్లు), Qwen (4 మోడళ్లు). సున్నా ఖర్చు, కోడింగ్ ఎప్పటికీ ఆగదు.",
+ "auto": "తెలివైన ఆటో",
+ "autoDesc": "బహుళ-కారక స్కోరింగ్తో స్వీయ-పునరుద్ధరణ స్మార్ట్ రూటింగ్ పూల్",
+ "lkgp": "LKGP మోడ్",
+ "lkgpDesc": "ఒక అభ్యర్థనను చివరిగా విజయవంతంగా పూర్తి చేసిన ప్రొవైడర్కు ప్రాధాన్యత ఇస్తుంది",
+ "wizardGuideTitle": "కాంబోలతో ప్రారంభించడం",
+ "wizardGuideDesc": "AI ట్రాఫిక్ను తెలివిగా రూట్ చేయడానికి మోడల్ కాంబోలను సృష్టించండి",
+ "wizardGuideHint": "లేదా పైన ఉన్న + కాంబోను సృష్టించండి క్లిక్ చేయండి",
+ "createFirstCombo": "మీ మొదటి కాంబోను సృష్టించండి",
+ "wizardStep1Title": "మీ కాంబోకు పేరు పెట్టండి",
+ "wizardStep1Desc": "రూటింగ్ నియమాల్లో గుర్తించడానికి మీ కాంబోకు ఒక ప్రత్యేకమైన పేరు ఇవ్వండి",
+ "wizardStep2Title": "మోడళ్లను జోడించండి",
+ "wizardStep2Desc": "AI మోడళ్లను ఎంచుకుని, వాటి ఫాల్బ్యాక్ ప్రాధాన్యత క్రమంలో అమర్చండి",
+ "wizardStep3Title": "వ్యూహాన్ని ఎంచుకోండి",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "సమీక్షించి సేవ్ చేయండి",
+ "wizardStep4Desc": "మీ కాన్ఫిగరేషన్ను సమీక్షించి, కాంబోను యాక్టివేట్ చేయండి",
+ "usageGuideInvokeTitle": "ఈ కాంబోను ఎలా కాల్ చేయాలి",
+ "usageGuideInvokeDesc": "కాంబో యొక్క ఖచ్చితమైన పేరును మోడల్గా పంపండి, ఉదా. model: \"my-combo\" (లేదా combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto మరియు auto/* అనేవి మీ కాంబోలను ఉపయోగించని ప్రత్యేక జీరో-కాన్ఫిగ్ రౌటర్ (ఒక కాంబోకు నిజంగానే auto అని పేరు పెట్టి ఉంటే తప్ప).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto అనేది నిజమైన చెల్లింపు OpenRouter ఉత్పత్తి (Auto Best Available), OmniRoute అలియాస్ కాదు — Settings → Routing → Hide paid models ద్వారా దాన్ని మినహాయించండి.",
+ "emailVisibilityStateOn": "ఆన్",
+ "emailVisibilityStateOff": "ఆఫ్",
+ "reorderHandle": "క్రమాన్ని మార్చడానికి డ్రాగ్ చేయండి",
+ "failedReorder": "మోడళ్ల క్రమాన్ని మార్చడం విఫలమైంది",
+ "builderFlowTitle": "కాంబో బిల్డర్ ఫ్లో",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "ప్రాథమిక అంశాలు",
+ "description": "పేరు మరియు ప్రారంభ టెంప్లేట్"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "దశలు",
+ "description": "ప్రొవైడర్, మోడల్ మరియు ఖాతా ఎంపిక"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "వ్యూహం",
+ "description": "రూటింగ్ ప్రవర్తన మరియు అధునాతన సెట్టింగ్లు"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "స్మార్ట్ రూటింగ్",
+ "description": "ఆటో-రూటింగ్ అభ్యర్థుల సమూహం, ప్రీసెట్లు మరియు స్కోరింగ్"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "సమీక్ష",
+ "description": "సేవ్ చేయడానికి ముందు తుది ధ్రువీకరణ"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
- "builderDuplicateExact": "This exact provider/model/account step is already in the combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
- "builderStagesDescription": "Complete each stage in order to define combos, build steps, select routing strategy, and review results.",
- "builderStepsDescription": "Build each combo step in order: provider, model, then account. This allows reusing the same provider and model across different accounts.",
- "selectProvider": "Select Provider",
- "selectProviderPlaceholder": "Select a provider",
- "selectModel": "Select Model",
- "selectModelPlaceholder": "Select a provider first",
- "selectAccount": "Select Account",
- "selectComboToReference": "Select combo to reference",
- "comboReference": "Combo Reference",
- "addComboReference": "Add Combo Reference",
- "addStepBeforeContinue": "Please add at least one step before proceeding to the next stage.",
- "previewNextStep": "Preview next step",
- "autoSelectAccount": "Automatically select account at runtime",
- "modePackBalanced": "Balanced",
- "modePackBudget": "Budget",
- "modePackPerformance": "Performance",
- "modePackCustom": "Custom",
- "browseLegacyCatalog": "Browse legacy combo catalog",
- "agentFeaturesTitle": "Agent Features",
- "agentFeaturesDescription": "Enable advanced features for agents using this combo",
+ "builderStageVisited": "దశ పూర్తయింది",
+ "builderStageCurrent": "ప్రస్తుత దశ",
+ "builderStagePending": "పెండింగ్లో ఉంది",
+ "builderStageLocked": "లాక్ చేయబడింది — ముందుగా మునుపటి దశను పూర్తి చేయండి",
+ "builderTitle": "కాంబోను రూపొందించండి",
+ "builderBrowseCatalog": "కేటలాగ్ను బ్రౌజ్ చేయండి",
+ "builderProvider": "ప్రొవైడర్",
+ "builderLoadingProviders": "ప్రొవైడర్లు లోడ్ అవుతున్నాయి...",
+ "builderSelectProvider": "ప్రొవైడర్ను ఎంచుకోండి",
+ "builderModel": "మోడల్",
+ "builderSelectModel": "మోడల్ను ఎంచుకోండి",
+ "builderProviderFirst": "ముందుగా ప్రొవైడర్ను ఎంచుకోండి",
+ "builderAccount": "ఖాతా",
+ "builderPreview": "ప్రివ్యూ",
+ "builderAddStep": "దశను జోడించండి",
+ "builderDuplicateExact": "ఇదే ప్రొవైడర్/మోడల్/ఖాతా దశ ఇప్పటికే కాంబోలో ఉంది.",
+ "builderComboRef": "కాంబో సూచన",
+ "builderAddComboRef": "కాంబో సూచనను జోడించండి",
+ "builderComboRefStep": "కాంబో సూచనను జోడించండి",
+ "builderPinnedAccount": "పిన్ చేసిన ఖాతా",
+ "builderLegacyEntry": "లెగసీ ఎంట్రీ",
+ "reviewName": "పేరు",
+ "reviewStrategy": "వ్యూహం",
+ "reviewSteps": "దశలు",
+ "reviewAccounts": "ఖాతాలు",
+ "reviewProviders": "ప్రొవైడర్లు",
+ "reviewComboRefs": "కాంబో సూచనలు",
+ "reviewAdvanced": "అధునాతన సెట్టింగ్లు",
+ "reviewAgentFlags": "ఏజెంట్ ఫ్లాగ్లు",
+ "reviewSequence": "మోడల్ క్రమం",
+ "reviewNoSteps": "దశలు ఏవీ కాన్ఫిగర్ చేయబడలేదు",
+ "builderStagesDescription": "కాంబోలను నిర్వచించడానికి, దశలను రూపొందించడానికి, రూటింగ్ వ్యూహాన్ని ఎంచుకోవడానికి మరియు ఫలితాలను సమీక్షించడానికి ప్రతి దశను క్రమంగా పూర్తి చేయండి.",
+ "builderStepsDescription": "ప్రతి కాంబో దశను ఈ క్రమంలో రూపొందించండి: ప్రొవైడర్, మోడల్, ఆపై ఖాతా. ఇది ఒకే ప్రొవైడర్ మరియు మోడల్ను వేర్వేరు ఖాతాలలో మళ్లీ ఉపయోగించడానికి వీలు కల్పిస్తుంది.",
+ "selectProvider": "ప్రొవైడర్ను ఎంచుకోండి",
+ "selectProviderPlaceholder": "ఒక ప్రొవైడర్ను ఎంచుకోండి",
+ "selectModel": "మోడల్ను ఎంచుకోండి",
+ "selectModelPlaceholder": "ముందుగా ఒక ప్రొవైడర్ను ఎంచుకోండి",
+ "selectAccount": "ఖాతాను ఎంచుకోండి",
+ "selectComboToReference": "సూచించాల్సిన కాంబోను ఎంచుకోండి",
+ "comboReference": "కాంబో సూచన",
+ "addComboReference": "కాంబో సూచనను జోడించండి",
+ "addStepBeforeContinue": "తదుపరి దశకు వెళ్లే ముందు కనీసం ఒక దశను జోడించండి.",
+ "previewNextStep": "తదుపరి దశను ప్రివ్యూ చేయండి",
+ "autoSelectAccount": "రన్టైమ్లో ఖాతాను స్వయంచాలకంగా ఎంచుకోండి",
+ "modePackBalanced": "సమతుల్యమైనది",
+ "modePackBudget": "బడ్జెట్",
+ "modePackPerformance": "పనితీరు",
+ "modePackCustom": "అనుకూలం",
+ "browseLegacyCatalog": "లెగసీ కాంబో కేటలాగ్ను బ్రౌజ్ చేయండి",
+ "agentFeaturesTitle": "ఏజెంట్ ఫీచర్లు",
+ "agentFeaturesDescription": "ఈ కాంబోను ఉపయోగించే ఏజెంట్ల కోసం అధునాతన ఫీచర్లను ప్రారంభించండి",
"responseValidationTitle": "రెస్పాన్స్ ధ్రువీకరణ",
"responseValidationHelp": "200 OK బాడీ ఈ తనిఖీలలో విఫలమైనప్పుడు (అసిస్టెంట్ కంటెంట్) తదుపరి టార్గెట్కు ఫెయిల్ఓవర్ చేయండి.",
"responseValidationForbidden": "నిషేధించబడిన సబ్స్ట్రింగ్లు (లైనుకు ఒకటి)",
@@ -3749,13 +3753,13 @@
"responseValidationMinLength": "కనిష్ట కంటెంట్ పొడవు (అక్షరాలు)",
"responseValidationJsonPaths": "JSON-path తనిఖీలు",
"responseValidationAddCheck": "+ తనిఖీని జోడించండి",
- "agentFeaturesSystemMessageOverride": "Override system message",
- "agentFeaturesSystemMessagePlaceholder": "You are an expert assistant...",
- "agentFeaturesSystemMessageHint": "System message override for agents",
+ "agentFeaturesSystemMessageOverride": "సిస్టమ్ సందేశాన్ని ఓవర్రైడ్ చేయండి",
+ "agentFeaturesSystemMessagePlaceholder": "మీరు నిపుణులైన సహాయకులు...",
+ "agentFeaturesSystemMessageHint": "ఏజెంట్ల కోసం సిస్టమ్ సందేశ ఓవర్రైడ్",
"agentFeaturesToolFilterRegex": "/regex-pattern/",
- "agentFeaturesToolFilterHint": "Tool filter regex for agents",
- "agentFeaturesContextCacheHint": "Enable in-context cache for agent tools",
- "agentFeaturesContextCacheProtection": "Protect cache from agent tool mutations",
+ "agentFeaturesToolFilterHint": "ఏజెంట్ల కోసం టూల్ ఫిల్టర్ రెగ్యులర్ ఎక్స్ప్రెషన్",
+ "agentFeaturesContextCacheHint": "ఏజెంట్ టూల్స్ కోసం ఇన్-కాంటెక్స్ట్ క్యాష్ను ప్రారంభించండి",
+ "agentFeaturesContextCacheProtection": "ఏజెంట్ టూల్ మార్పుల నుండి క్యాష్ను రక్షించండి",
"agentFeaturesContextLength": "సందర్భ నిడివి",
"agentFeaturesContextLengthPlaceholder": "ఉదా 128000",
"agentFeaturesContextLengthHint": "/v1/మోడల్స్లో ఈ కాంబో కోసం సందర్భ విండోను నిర్వచిస్తుంది.",
@@ -3784,40 +3788,40 @@
"duplicateAutoComboTitle": "{name} నుండి స్థిర కంబో సృష్టించండి"
},
"costs": {
- "title": "Costs",
- "pageDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "overview": "Overview",
- "budget": "Budget",
- "totalCost": "Total Cost",
- "breakdown": "Cost Breakdown",
- "noData": "No cost data",
- "byModel": "By Model",
- "byProvider": "By Provider",
- "range7d": "7 Days",
- "range30d": "30 Days",
- "range90d": "90 Days",
- "range180d": "180 Days",
- "range365d": "365 Days",
- "rangeAll": "All Time",
- "spend30d": "Spend 30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
- "overviewTitle": "Cost Overview",
- "spend7d": "Spend 7D",
- "avgCostPerRequest": "Avg Cost / Request",
- "noCostDataDescription": "Start making requests to see cost data appear here. Costs are tracked automatically for all providers.",
- "spendToday": "Spend Today",
- "overviewLoadFailed": "Failed to load cost overview",
- "overviewDescription": "Real-time spending breakdown across all connected providers and models",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
- "noCostDataTitle": "No cost data yet",
- "topModels": "Top Models",
- "requestsInWindow": "Requests in Window",
+ "title": "ఖర్చులు",
+ "pageDescription": "అన్ని ప్రొవైడర్లలో ఖర్చులను ట్రాక్ చేయండి, ధోరణులను విశ్లేషించండి మరియు మీ AI బడ్జెట్ను నిర్వహించండి",
+ "overview": "అవలోకనం",
+ "budget": "బడ్జెట్",
+ "totalCost": "మొత్తం ఖర్చు",
+ "breakdown": "ఖర్చుల విభజన",
+ "noData": "ఖర్చు డేటా లేదు",
+ "byModel": "మోడల్ వారీగా",
+ "byProvider": "ప్రొవైడర్ వారీగా",
+ "range7d": "7 రోజులు",
+ "range30d": "30 రోజులు",
+ "range90d": "90 రోజులు",
+ "range180d": "180 రోజులు",
+ "range365d": "365 రోజులు",
+ "rangeAll": "మొత్తం కాలం",
+ "spend30d": "30 రోజుల ఖర్చు",
+ "activeModels": "సక్రియ మోడల్లు",
+ "flatRateEstimateNotice": "స్థిర-రేటు సబ్స్క్రిప్షన్ల కోసం టోకెన్-ధర అంచనాలను కలిగి ఉంటుంది, బిల్ చేసిన ఖర్చును కాదు.",
+ "flatRateEstimateForecast": "అంచనాలో స్థిర-రేటు అంచనాలు ఉన్నాయి.",
+ "selectedWindow": "ఎంచుకున్న కాలవ్యవధి",
+ "activeProviders": "సక్రియ ప్రొవైడర్లు",
+ "overviewTitle": "ఖర్చు అవలోకనం",
+ "spend7d": "7 రోజుల ఖర్చు",
+ "avgCostPerRequest": "అభ్యర్థనకు సగటు ఖర్చు",
+ "noCostDataDescription": "ఖర్చు డేటా ఇక్కడ కనిపించడానికి అభ్యర్థనలు చేయడం ప్రారంభించండి. అన్ని ప్రొవైడర్ల ఖర్చులు స్వయంచాలకంగా ట్రాక్ చేయబడతాయి.",
+ "spendToday": "ఈరోజు ఖర్చు",
+ "overviewLoadFailed": "ఖర్చు అవలోకనాన్ని లోడ్ చేయడం విఫలమైంది",
+ "overviewDescription": "కనెక్ట్ చేసిన అన్ని ప్రొవైడర్లు మరియు మోడల్లలో నిజ-సమయ ఖర్చు విభజన",
+ "providerShare": "ప్రొవైడర్ వాటా",
+ "topProviders": "అగ్ర ప్రొవైడర్లు",
+ "costTrend": "ఖర్చు ధోరణి",
+ "noCostDataTitle": "ఇంకా ఖర్చు డేటా లేదు",
+ "topModels": "అగ్ర మోడల్లు",
+ "requestsInWindow": "కాలవ్యవధిలోని అభ్యర్థనలు",
"tokenUsage": "టోకెన్ వినియోగం",
"totalTokens": "మొత్తం టోకెన్లు",
"inputTokens": "ఇన్పుట్ టోకెన్లు",
@@ -3877,139 +3881,139 @@
"showingTopCostRows": "సరిపోలే {total} వరుసల్లో {shown} చూపిస్తోంది (టాప్ 50)."
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
- "available": "Available Endpoints",
+ "title": "API ఎండ్పాయింట్",
+ "subtitle": "చాలా SDKలు మరియు సాధనాలతో OpenAI-అనుకూల endpointను ఉపయోగించండి.",
+ "testEndpoint": "endpointను పరీక్షించండి →",
+ "advancedProtocols": "అధునాతన ప్రోటోకాల్లు",
+ "available": "అందుబాటులో ఉన్న Endpointలు",
"cloudProxy": "Cloud Proxy",
- "disableConfirm": "Are you sure you want to disable cloud proxy?",
- "baseUrl": "Base URL",
- "apiKeyLabel": "API Key",
- "registeredKeys": "Registered Keys",
+ "disableConfirm": "మీరు cloud proxyని నిలిపివేయాలనుకుంటున్నారని ఖచ్చితంగా అనుకుంటున్నారా?",
+ "baseUrl": "బేస్ URL",
+ "apiKeyLabel": "API కీ",
+ "registeredKeys": "నమోదిత కీలు",
"chatCompletions": "Chat Completions",
- "responses": "Responses",
- "listModels": "List Models",
- "usingCloudProxy": "Using Cloud Proxy",
- "usingLocalServer": "Using Local Server",
- "machineId": "Machine ID: {id}...",
- "disableCloud": "Disable Cloud",
- "enableCloud": "Enable Cloud",
- "modelsAcrossEndpoints": "{models} models across {endpoints} endpoints",
- "loadingModels": "Loading available models...",
- "chatDesc": "Streaming & non-streaming chat with all providers",
- "embeddings": "Embeddings",
- "embeddingsDesc": "Text embeddings for search & RAG pipelines",
- "imageGeneration": "Image Generation",
- "imageDesc": "Generate images from text prompts",
+ "responses": "ప్రతిస్పందనలు",
+ "listModels": "మోడల్లను జాబితా చేయండి",
+ "usingCloudProxy": "Cloud Proxyని ఉపయోగిస్తోంది",
+ "usingLocalServer": "Local Serverను ఉపయోగిస్తోంది",
+ "machineId": "మెషిన్ ID: {id}...",
+ "disableCloud": "Cloudను నిలిపివేయండి",
+ "enableCloud": "Cloudను ప్రారంభించండి",
+ "modelsAcrossEndpoints": "{endpoints} endpointలలో {models} మోడల్లు",
+ "loadingModels": "అందుబాటులో ఉన్న మోడల్లను లోడ్ చేస్తోంది...",
+ "chatDesc": "అన్ని ప్రొవైడర్లతో స్ట్రీమింగ్ & నాన్-స్ట్రీమింగ్ చాట్",
+ "embeddings": "ఎంబెడ్డింగ్లు",
+ "embeddingsDesc": "శోధన & RAG పైప్లైన్ల కోసం టెక్స్ట్ ఎంబెడ్డింగ్లు",
+ "imageGeneration": "చిత్ర సృష్టి",
+ "imageDesc": "టెక్స్ట్ ప్రాంప్ట్ల నుండి చిత్రాలను రూపొందించండి",
"rerank": "Rerank",
- "rerankDesc": "Rerank documents by relevance to a query",
- "audioTranscription": "Audio Transcription",
- "audioTranscriptionDesc": "Transcribe audio files to text (Whisper)",
- "textToSpeech": "Text to Speech",
- "textToSpeechDesc": "Convert text to natural-sounding speech",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
- "moderations": "Moderations",
- "moderationsDesc": "Content moderation and safety classification",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
- "categoryCore": "Core APIs",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
- "categoryUtility": "Utility & Management",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
- "enableCloudTitle": "Enable Cloud Proxy",
- "whatYouGet": "What you will get",
- "cloudBenefitAccess": "Access your API from anywhere in the world",
- "cloudBenefitShare": "Share endpoint with your team easily",
- "cloudBenefitPorts": "No need to open ports or configure firewall",
- "cloudBenefitEdge": "Fast global edge network",
- "cloudSessionNote": "Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.",
- "cloudUnstableNote": "Cloud is currently unstable with Claude Code OAuth in some cases.",
- "cloudConnected": "Cloud Proxy connected!",
- "connectingToCloud": "Connecting to cloud...",
- "verifyingConnection": "Verifying connection...",
- "connecting": "Connecting...",
- "verifying": "Verifying...",
- "connected": "Connected!",
- "disableCloudTitle": "Disable Cloud Proxy",
- "disableWarning": "All auth sessions will be deleted from cloud.",
- "syncingData": "Syncing latest data...",
- "disablingCloud": "Disabling cloud...",
- "syncing": "Syncing...",
- "disabling": "Disabling...",
- "cloudConnectedVerified": "Cloud Proxy connected and verified!",
- "connectedVerificationPending": "Connected — verification pending",
- "connectedVerificationPendingWithError": "Connected — verification pending: {error}",
- "cloudDisabledSuccess": "Cloud disabled successfully",
- "syncedSuccess": "Synced successfully",
- "failedDisable": "Failed to disable cloud",
- "failedEnable": "Failed to enable cloud",
- "cloudRequestTimeout": "Cloud request timeout",
- "cloudRequestFailed": "Cloud request failed",
- "cloudWorkerUnreachable": "Could not reach cloud worker. Make sure the cloud service is running (npm run dev in /cloud).",
- "connectionFailed": "Connection failed",
- "syncFailed": "Failed to sync cloud data",
+ "rerankDesc": "క్వెరీకి సంబంధించిన ప్రాసంగికత ఆధారంగా డాక్యుమెంట్లను పునఃర్యాంక్ చేయండి",
+ "audioTranscription": "ఆడియో లిప్యంతరీకరణ",
+ "audioTranscriptionDesc": "ఆడియో ఫైల్లను టెక్స్ట్గా లిప్యంతరీకరించండి (Whisper)",
+ "textToSpeech": "టెక్స్ట్ నుండి ప్రసంగం",
+ "textToSpeechDesc": "టెక్స్ట్ను సహజంగా వినిపించే ప్రసంగంగా మార్చండి",
+ "musicGeneration": "సంగీత సృష్టి",
+ "musicDesc": "ComfyUI (Stable Audio, MusicGen) ద్వారా సంగీతం మరియు ఆడియో ట్రాక్లను రూపొందించండి",
+ "moderations": "మోడరేషన్లు",
+ "moderationsDesc": "కంటెంట్ మోడరేషన్ మరియు భద్రతా వర్గీకరణ",
+ "responsesDesc": "Codex మరియు అధునాతన ఏజెంటిక్ వర్క్ఫ్లోల కోసం OpenAI Responses API",
+ "listModelsDesc": "కనెక్ట్ చేసిన అన్ని ప్రొవైడర్లలో అందుబాటులో ఉన్న అన్ని మోడల్లను జాబితా చేయండి",
+ "settingsApiDesc": "API ద్వారా OmniRoute కాన్ఫిగరేషన్ను చదవండి మరియు సవరించండి",
+ "settingsApi": "సెట్టింగ్ల API",
+ "categoryCore": "కోర్ APIలు",
+ "categoryMedia": "మీడియా & మల్టీ-మోడల్",
+ "categorySearch": "శోధన & ఆవిష్కరణ",
+ "categoryUtility": "యుటిలిటీ & నిర్వహణ",
+ "webSearch": "వెబ్ శోధన",
+ "webSearchDesc": "ఆటోమేటిక్ ఫెయిల్ఓవర్ మరియు క్యాషింగ్తో బహుళ ప్రొవైడర్లలో ఏకీకృత వెబ్ శోధన",
+ "searchProvider": "శోధన ప్రొవైడర్",
+ "searchProviderDesc": "ఈ ప్రొవైడర్ POST /v1/search ద్వారా వెబ్ శోధన కోసం ఉపయోగించబడుతుంది. మోడల్ కాన్ఫిగరేషన్ అవసరం లేదు — API కీ కనెక్ట్ చేసిన వెంటనే శోధన ప్రొవైడర్లు ఉపయోగించడానికి సిద్ధంగా ఉంటాయి.",
+ "enableCloudTitle": "క్లౌడ్ ప్రాక్సీని ప్రారంభించండి",
+ "whatYouGet": "మీకు లభించేవి",
+ "cloudBenefitAccess": "ప్రపంచంలో ఎక్కడి నుండైనా మీ APIని యాక్సెస్ చేయండి",
+ "cloudBenefitShare": "మీ బృందంతో ఎండ్పాయింట్ను సులభంగా పంచుకోండి",
+ "cloudBenefitPorts": "పోర్ట్లను తెరవడం లేదా ఫైర్వాల్ను కాన్ఫిగర్ చేయడం అవసరం లేదు",
+ "cloudBenefitEdge": "వేగవంతమైన గ్లోబల్ ఎడ్జ్ నెట్వర్క్",
+ "cloudSessionNote": "క్లౌడ్ మీ ప్రమాణీకరణ సెషన్ను 1 రోజు పాటు ఉంచుతుంది. ఉపయోగించకపోతే, అది స్వయంచాలకంగా తొలగించబడుతుంది.",
+ "cloudUnstableNote": "కొన్ని సందర్భాల్లో Claude Code OAuthతో క్లౌడ్ ప్రస్తుతం అస్థిరంగా ఉంది.",
+ "cloudConnected": "క్లౌడ్ ప్రాక్సీ కనెక్ట్ అయింది!",
+ "connectingToCloud": "క్లౌడ్కు కనెక్ట్ అవుతోంది...",
+ "verifyingConnection": "కనెక్షన్ను ధృవీకరిస్తోంది...",
+ "connecting": "కనెక్ట్ అవుతోంది...",
+ "verifying": "ధృవీకరిస్తోంది...",
+ "connected": "కనెక్ట్ అయింది!",
+ "disableCloudTitle": "క్లౌడ్ ప్రాక్సీని నిలిపివేయండి",
+ "disableWarning": "అన్ని ప్రమాణీకరణ సెషన్లు క్లౌడ్ నుండి తొలగించబడతాయి.",
+ "syncingData": "తాజా డేటాను సమకాలీకరిస్తోంది...",
+ "disablingCloud": "క్లౌడ్ను నిలిపివేస్తోంది...",
+ "syncing": "సమకాలీకరిస్తోంది...",
+ "disabling": "నిలిపివేస్తోంది...",
+ "cloudConnectedVerified": "Cloud Proxy కనెక్ట్ చేయబడి, ధృవీకరించబడింది!",
+ "connectedVerificationPending": "కనెక్ట్ చేయబడింది — ధృవీకరణ పెండింగ్లో ఉంది",
+ "connectedVerificationPendingWithError": "కనెక్ట్ చేయబడింది — ధృవీకరణ పెండింగ్లో ఉంది: {error}",
+ "cloudDisabledSuccess": "క్లౌడ్ విజయవంతంగా నిలిపివేయబడింది",
+ "syncedSuccess": "విజయవంతంగా సమకాలీకరించబడింది",
+ "failedDisable": "క్లౌడ్ను నిలిపివేయడం విఫలమైంది",
+ "failedEnable": "క్లౌడ్ను ప్రారంభించడం విఫలమైంది",
+ "cloudRequestTimeout": "క్లౌడ్ అభ్యర్థన సమయం ముగిసింది",
+ "cloudRequestFailed": "క్లౌడ్ అభ్యర్థన విఫలమైంది",
+ "cloudWorkerUnreachable": "క్లౌడ్ వర్కర్ను చేరుకోలేకపోయాము. క్లౌడ్ సేవ రన్ అవుతోందని నిర్ధారించుకోండి (/cloudలో npm run dev).",
+ "connectionFailed": "కనెక్షన్ విఫలమైంది",
+ "syncFailed": "క్లౌడ్ డేటాను సమకాలీకరించడం విఫలమైంది",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
- "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredDescription": "ఈ ఎండ్పాయింట్ కోసం Cloudflare Quick Tunnelను సృష్టించండి.",
+ "cloudflaredUrlNotice": "తాత్కాలిక Cloudflare Quick Tunnelను సృష్టిస్తుంది. ప్రతి పునఃప్రారంభం తర్వాత URL మారుతుంది.",
+ "cloudflaredEnable": "Tunnelను ప్రారంభించండి",
+ "cloudflaredInstallAndEnable": "ఇన్స్టాల్ చేసి ప్రారంభించండి",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "రన్ అవుతోంది",
+ "cloudflaredStarting": "ప్రారంభమవుతోంది",
+ "cloudflaredStoppedState": "ఆగిపోయింది",
+ "cloudflaredNotInstalled": "ఇన్స్టాల్ చేయబడలేదు",
+ "cloudflaredUnsupported": "మద్దతు లేదు",
+ "cloudflaredError": "లోపం",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
- "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after every restart.",
- "cloudflaredUnsupportedNote": "This platform is not supported for managed installs. Install cloudflared manually or point CLOUDFLARED_BIN to an existing binary.",
+ "cloudflaredTemporaryNote": "Quick Tunnel URLలు తాత్కాలికమైనవి, ప్రతి పునఃప్రారంభం తర్వాత మారుతాయి.",
+ "cloudflaredUnsupportedNote": "నిర్వహిత ఇన్స్టాలేషన్లకు ఈ ప్లాట్ఫారమ్ మద్దతు ఇవ్వదు. cloudflaredను మాన్యువల్గా ఇన్స్టాల్ చేయండి లేదా CLOUDFLARED_BINను ఇప్పటికే ఉన్న బైనరీకి పాయింట్ చేయండి.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
- "providerModelsTitle": "{provider} — Models",
- "noModelsForProvider": "No models available for this provider.",
+ "cloudflaredLastError": "చివరి లోపం: {error}",
+ "providerModelsTitle": "{provider} — మోడళ్లు",
+ "noModelsForProvider": "ఈ ప్రొవైడర్కు మోడళ్లు అందుబాటులో లేవు.",
"chat": "Chat",
- "embedding": "Embedding",
- "image": "Image",
- "custom": "custom",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "embedding": "ఎంబెడింగ్",
+ "image": "చిత్రం",
+ "custom": "అనుకూలం",
+ "modelsCount": "{count, plural, one {# మోడల్} other {# మోడళ్లు}}",
+ "sectionTitle": "ఇంటిగ్రేషన్ ఉపరితలం",
+ "sectionDescription": "OpenAI-అనుకూల APIలు మరియు కార్యాచరణ ప్రోటోకాల్ ఎండ్పాయింట్లు",
"tabApis": "APIలు",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "ప్రోటోకాల్లు",
+ "tabsAria": "ఎండ్పాయింట్ విభాగాలు",
+ "protocolsTitle": "ప్రోటోకాల్లు",
+ "protocolsDescription": "MCP మరియు A2A అనేవి ప్రత్యేక పర్యవేక్షణ సామర్థ్యం మరియు నియంత్రణలతో కూడిన ప్రథమ-శ్రేణి ఎండ్పాయింట్లు.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "stdio ద్వారా Model Context Protocol",
+ "a2aCardTitle": "A2A సర్వర్",
+ "a2aCardDescription": "Agent2Agent JSON-RPC ఎండ్పాయింట్",
+ "protocolToolsLabel": "సాధనాలు",
+ "protocolTasksLabel": "టాస్క్లు",
+ "protocolActiveStreamsLabel": "యాక్టివ్ స్ట్రీమ్లు",
+ "protocolLastActivity": "చివరి యాక్టివిటీ",
+ "quickStart": "త్వరిత ప్రారంభం",
+ "openMcpDashboard": "MCP నిర్వహణను తెరవండి",
+ "openA2aDashboard": "A2A నిర్వహణను తెరవండి",
+ "mcpQuickStartTitle": "MCP త్వరిత ప్రారంభం",
+ "mcpQuickStartStep1": "`omniroute --mcp` ద్వారా MCP సర్వర్ను అమలు చేయండి.",
+ "mcpQuickStartStep2": "stdio ట్రాన్స్పోర్ట్ ద్వారా కనెక్ట్ అయ్యేలా మీ MCP క్లయింట్ను కాన్ఫిగర్ చేయండి.",
+ "mcpQuickStartStep3": "`omniroute_get_health` మరియు `omniroute_list_combos` వంటి సాధనాలను అమలు చేయండి.",
+ "a2aQuickStartTitle": "A2A త్వరిత ప్రారంభం",
+ "a2aQuickStartStep1": "`/.well-known/agent.json` వద్ద ఏజెంట్ కార్డ్ను కనుగొనండి.",
+ "a2aQuickStartStep2": "`message/send` లేదా `message/stream` ఉపయోగించి `POST /a2a`కు JSON-RPC అభ్యర్థనలను పంపండి.",
+ "a2aQuickStartStep3": "`tasks/get` మరియు `tasks/cancel` ఉపయోగించి టాస్క్లను ట్రాక్ చేసి నియంత్రించండి.",
+ "completionsLegacy": "కంప్లీషన్లు (లెగసీ)",
+ "completionsLegacyDesc": "లెగసీ OpenAI టెక్స్ట్ కంప్లీషన్లు — ప్రాంప్ట్ స్ట్రింగ్ మరియు మెసేజ్ల అరే ఫార్మాట్ రెండింటినీ అంగీకరిస్తాయి",
"messagesApi": "సందేశాలు",
"messagesApiDesc": "క్లాడ్-అనుకూల ప్రొవైడర్ల కోసం స్థానిక ఆంత్రోపిక్ సందేశాల API ఫార్మాట్",
"imageEdits": "చిత్ర సవరణలు",
@@ -4018,41 +4022,41 @@
"batchApiDesc": "పెద్ద బ్యాచ్ల అభ్యర్థనలను అసమకాలికంగా ప్రాసెస్ చేయండి (OpenAI-అనుకూలమైనది)",
"filesApi": "ఫైల్స్ API",
"filesApiDesc": "బ్యాచ్ ప్రాసెసింగ్ కోసం ఫైల్లను అప్లోడ్ చేయండి మరియు నిర్వహించండి",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "వీడియో జనరేషన్",
+ "videoDesc": "ComfyUI మరియు Stable Video Diffusion వంటి AI మోడళ్లను ఉపయోగించి వీడియోలను రూపొందించండి.",
+ "tailscaleRequestFailed": "Tailscale స్థితిని లోడ్ చేయడంలో విఫలమైంది",
+ "tailscaleEnableFailed": "Tailscale Funnelను ప్రారంభించడంలో విఫలమైంది",
+ "tailscaleWaitingForLogin": "తెరిచిన బ్రౌజర్ ట్యాబ్లో Tailscale లాగిన్ను పూర్తి చేయండి. OmniRoute స్వయంచాలకంగా మళ్లీ ప్రయత్నిస్తుంది.",
+ "tailscaleLoginTimedOut": "Tailscale లాగిన్ కోసం వేచి ఉండే సమయం ముగిసింది",
+ "tailscaleWaitingForFunnel": "తెరిచిన బ్రౌజర్ ట్యాబ్లో ఈ పరికరం కోసం Funnelను ప్రారంభించండి. OmniRoute పోలింగ్ను కొనసాగిస్తుంది.",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel ప్రారంభం కావడానికి వేచి ఉండే సమయం ముగిసింది",
+ "tailscaleStarted": "Tailscale Funnel ప్రారంభించబడింది",
+ "tailscaleDisableFailed": "Tailscale Funnelను నిలిపివేయడంలో విఫలమైంది",
+ "tailscaleStopped": "Tailscale Funnel నిలిపివేయబడింది",
+ "tailscaleInstallFailed": "Tailscaleను ఇన్స్టాల్ చేయడంలో విఫలమైంది",
+ "tailscaleInstallProgress": "పని జరుగుతోంది...",
+ "tailscaleInstalled": "Tailscale విజయవంతంగా ఇన్స్టాల్ చేయబడింది",
+ "tailscaleRunning": "అమలులో ఉంది",
+ "tailscaleNeedsLogin": "లాగిన్ అవసరం",
+ "tailscaleStoppedState": "ఆపివేయబడింది",
+ "tailscaleNotInstalled": "ఇన్స్టాల్ చేయబడలేదు",
+ "tailscaleUnsupported": "మద్దతు లేదు",
+ "tailscaleError": "లోపం",
+ "tailscaleDisable": "Funnelను ఆపండి",
+ "tailscaleInstallAndEnable": "ఇన్స్టాల్ చేసి ప్రారంభించండి",
+ "tailscaleLoginAndEnable": "లాగిన్ చేసి ప్రారంభించండి",
+ "tailscaleEnable": "Funnelను ప్రారంభించండి",
+ "tailscaleUrlNotice": "మీ Tailscale .ts.net చిరునామాను ఉపయోగిస్తుంది. మొదటిసారి ఉపయోగించేటప్పుడు లాగిన్ మరియు Funnel ఆమోదం అవసరం కావచ్చు.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
- "tailscaleSudoLabel": "Sudo Password (required on macOS/Linux)",
+ "tailscaleNeedsLoginHint": "ఈ మెషీన్ను Tailscaleతో ప్రమాణీకరించి, ఆపై Funnelను ప్రారంభించండి.",
+ "tailscaleBinaryPath": "బైనరీ: {path}",
+ "tailscaleLastError": "చివరి లోపం: {error}",
+ "tailscaleInstallTitle": "Tailscaleను ఇన్స్టాల్ చేయండి",
+ "tailscaleInstallIntro": "ఈ మెషీన్లో Tailscaleను ఇన్స్టాల్ చేసి, Funnelను ప్రారంభించడానికి OmniRouteను సిద్ధం చేస్తుంది.",
+ "tailscaleInstallPasswordHint": "macOS మరియు Linuxలో, ప్యాకేజీ ఇన్స్టాలేషన్ మరియు డీమన్ ప్రారంభం కోసం sudo అవసరం కావచ్చు.",
+ "tailscaleSudoPlaceholder": "ఐచ్ఛిక sudo పాస్వర్డ్",
+ "tailscaleInstalling": "ఇన్స్టాల్ అవుతోంది",
+ "tailscaleSudoLabel": "Sudo పాస్వర్డ్ (macOS/Linuxలో అవసరం)",
"ngrokTitle": "ngrok సొరంగం",
"ngrokRunning": "నడుస్తోంది",
"ngrokStarting": "ప్రారంభిస్తోంది",
@@ -4104,7 +4108,7 @@
"all": "అన్నీ",
"more": "+{count} మరిన్ని",
"showInternalTooltip": "అంతర్గత రూట్లను చూపించండి లేదా దాచండి (డిఫాల్ట్గా దాచబడింది)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "బేరర్ ప్రమాణీకరణ",
"requestBody": "రిక్వెస్ట్ బాడీ",
"close": "మూసివేయి",
"tryIt": "ప్రయత్నించండి",
@@ -4140,9 +4144,9 @@
"tierPublic": "పబ్లిక్",
"hideInternal": "అంతర్గతమైనవి దాచు",
"showInternal": "అంతర్గతమైనవి చూపించు",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "అనుకూల సిస్టమ్ ప్రాంప్ట్",
+ "customSystemPromptDescription": "ప్రతి మోడల్ అభ్యర్థనలో ఒక అనుకూల సిస్టమ్ ప్రాంప్ట్ను చొప్పించండి",
+ "customSystemPromptPlaceholder": "ఉదా. ఎల్లప్పుడూ సముద్రపు దొంగలా మాట్లాడండి...",
"obsidianEnterToken": "దయచేసి Obsidian API టోకెన్ను నమోదు చేయండి",
"obsidianConnectFailed": "కనెక్ట్ చేయడం విఫలమైంది",
"obsidianConnectionFailed": "కనెక్షన్ విఫలమైంది",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "టోకెన్ కాన్ఫిగర్ చేయబడింది. Notion టూల్స్ MCP ద్వారా అందుబాటులో ఉన్నాయి."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "ఎండ్పాయింట్ ప్రాక్సీ",
+ "tabApiEndpoints": "API ఎండ్పాయింట్లు",
+ "apiEndpointsTitle": "API ఎండ్పాయింట్లు",
+ "apiEndpointsDescription": "ఇతర అప్లికేషన్లు మరియు సేవలు ఉపయోగించగల బ్యాకెండ్ API ఎండ్పాయింట్లు. ఈ విభాగం అందుబాటులో ఉన్న అన్ని REST APIలను డాక్యుమెంటేషన్ మరియు పరీక్షా సామర్థ్యాలతో జాబితా చేస్తుంది.",
+ "comingSoon": "త్వరలో అందుబాటులోకి వస్తుంది",
+ "plannedFeatures": "ప్రణాళికలో ఉన్న ఫీచర్లు",
+ "featureRestApi": "ఇంటరాక్టివ్ డాక్యుమెంటేషన్తో REST API ఎండ్పాయింట్ కేటలాగ్",
+ "featureWebhooks": "Webhook కాన్ఫిగరేషన్ మరియు ఈవెంట్ సబ్స్క్రిప్షన్లు",
+ "featureSwagger": "OpenAPI / Swagger స్పెక్ స్వయంచాలక ఉత్పత్తి",
+ "featureAuth": "ప్రతి ఎండ్పాయింట్కు API కీ మరియు OAuth స్కోప్ నిర్వహణ"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP డ్యాష్బోర్డ్ లోడ్ అవుతోంది...",
+ "activate": "ప్రారంభించండి",
+ "deactivate": "నిష్క్రియం చేయండి",
+ "confirmSwitchCombo": "\"{combo}\" కాంబోను {action} చేయాలా?",
+ "switchComboFailed": "కాంబో స్థితిని మార్చడం విఫలమైంది.",
+ "switchComboSuccess": "\"{combo}\" కాంబో నవీకరించబడింది.",
+ "confirmApplyProfile": "స్థిరత్వ ప్రొఫైల్ \"{profile}\"ను వర్తింపజేయాలా?",
+ "applyProfileFailed": "స్థిరత్వ ప్రొఫైల్ను వర్తింపజేయడం విఫలమైంది.",
+ "applyProfileSuccess": "ప్రొఫైల్ \"{profile}\" వర్తింపజేయబడింది.",
+ "confirmResetBreakers": "అన్ని సర్క్యూట్ బ్రేకర్లను రీసెట్ చేయాలా?",
+ "resetBreakersFailed": "సర్క్యూట్ బ్రేకర్లను రీసెట్ చేయడం విఫలమైంది.",
+ "resetBreakersSuccess": "సర్క్యూట్ బ్రేకర్లు రీసెట్ చేయబడ్డాయి.",
+ "processStatus": "ప్రాసెస్ స్థితి",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} నిలిపివేయి",
@@ -4233,119 +4237,119 @@
"mcpStep2": "stdio ట్రాన్స్పోర్ట్ ద్వారా కనెక్ట్ కావడానికి మీ MCP క్లయింట్ను కాన్ఫిగర్ చేయండి.",
"mcpStep3": "{code1} మరియు {code2} వంటి టూల్స్ను ఇన్వోక్ చేయండి.",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "సెషన్ అప్టైమ్",
+ "lastHeartbeat": "చివరి హార్ట్బీట్",
+ "activity24h": "కార్యాచరణ (24గం.)",
+ "totalCalls": "మొత్తం కాల్లు",
+ "successRate": "విజయ రేటు",
+ "avgLatency": "సగటు లేటెన్సీ",
+ "topTools": "అగ్ర సాధనాలు",
+ "noToolCalls24h": "గత 24 గంటల్లో సాధన కాల్లు లేవు.",
+ "runtimeDetails": "రన్టైమ్ వివరాలు",
+ "transport": "రవాణా",
+ "scopesEnforced": "అమలు చేయబడిన స్కోప్లు",
+ "yes": "అవును",
+ "no": "కాదు",
+ "lastCall": "చివరి కాల్",
+ "heartbeatPath": "హార్ట్బీట్ పాత్",
+ "operationalControls": "కార్యాచరణ నియంత్రణలు",
+ "switchCombo": "కాంబోను మార్చు",
+ "inactive": "నిష్క్రియం",
+ "active": "సక్రియం",
+ "activateCombo": "కాంబోను సక్రియం చేయి",
+ "deactivateCombo": "కాంబోను నిష్క్రియం చేయి",
+ "applyResilienceProfile": "స్థిరత్వ ప్రొఫైల్ను వర్తింపజేయి",
+ "profileAggressive": "తీవ్రమైన",
+ "profileBalanced": "సమతుల్యమైన",
+ "profileConservative": "సంప్రదాయబద్ధమైన",
+ "applyProfile": "ప్రొఫైల్ను వర్తింపజేయి",
+ "resetCircuitBreakers": "సర్క్యూట్ బ్రేకర్లను రీసెట్ చేయి",
+ "resetCircuitBreakersHelp": "ప్రొవైడర్ల ప్రస్తుత బ్రేకర్ స్థితి మరియు వైఫల్య కౌంటర్లను క్లియర్ చేస్తుంది.",
+ "resetAllBreakers": "అన్ని బ్రేకర్లను రీసెట్ చేయి",
+ "toolsAndScopes": "సాధనాలు మరియు స్కోప్లు",
+ "tableTool": "సాధనం",
+ "tableScopes": "స్కోప్లు",
+ "tablePhase": "దశ",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "ఆడిట్ లాగ్",
+ "auditSummary": "కాల్స్: {total} | {totalPages}లో {page}వ పేజీ",
+ "allTools": "అన్ని టూల్స్",
+ "allResults": "అన్ని ఫలితాలు",
+ "success": "విజయం",
+ "failure": "వైఫల్యం",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "ఆడిట్ నమోదులు లోడ్ అవుతున్నాయి...",
+ "noAuditEntriesForFilters": "ప్రస్తుత ఫిల్టర్లకు ఆడిట్ నమోదులు ఏవీ కనుగొనబడలేదు.",
+ "tableTimestamp": "సమయ ముద్ర",
+ "tableDuration": "వ్యవధి",
+ "tableResult": "ఫలితం",
+ "tableApiKey": "API కీ",
+ "failed": "విఫలమైంది",
+ "previous": "మునుపటి",
+ "next": "తదుపరి",
+ "apiKeyId": "Api కీ ID",
+ "offset": "ఆఫ్సెట్",
+ "limit": "పరిమితి",
+ "tool": "టూల్"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A డ్యాష్బోర్డ్ లోడ్ అవుతోంది...",
+ "confirmCancelTask": "టాస్క్ {taskId}ను రద్దు చేయాలా?",
+ "cancelTaskFailed": "టాస్క్ను రద్దు చేయడం విఫలమైంది.",
+ "cancelTaskSuccess": "టాస్క్ {taskId} రద్దు చేయబడింది.",
+ "smokeSendFailed": "message/send స్మోక్ టెస్ట్ విఫలమైంది.",
+ "smokeSendSuccessWithTask": "message/send సఫలమైంది (టాస్క్ {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream స్మోక్ టెస్ట్ విఫలమైంది.",
+ "smokeStreamSuccessWithTask": "message/stream సఫలమైంది (టాస్క్ {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "టాస్క్ ID లేకుండానే message/stream పూర్తయింది.",
+ "health": "స్థితి",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "మొత్తం టాస్క్లు",
+ "activeStreams": "యాక్టివ్ స్ట్రీమ్లు",
+ "lastTask": "చివరి టాస్క్",
+ "taskStateOverview": "టాస్క్ స్థితి అవలోకనం",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "సమర్పించబడింది",
+ "working": "పని చేస్తోంది",
+ "completed": "పూర్తయింది",
+ "failed": "విఫలమైంది",
+ "cancelled": "రద్దు చేయబడింది"
},
- "agentCard": "Agent card",
+ "agentCard": "ఏజెంట్ కార్డ్",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "వెర్షన్",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "సామర్థ్యాలు",
+ "agentCardNotAvailable": "ఏజెంట్ కార్డ్ అందుబాటులో లేదు.",
+ "quickValidation": "త్వరిత ధృవీకరణ",
+ "quickValidationDescription": "ప్రత్యక్ష `/a2a` ఎండ్పాయింట్ ద్వారా స్మోక్ కాల్లను అమలు చేస్తుంది.",
+ "runMessageSend": "message/send అమలు చేయండి",
+ "runMessageStream": "message/stream అమలు చేయండి",
+ "taskManagement": "టాస్క్ నిర్వహణ",
+ "taskSummary": "{total} టాస్క్లు | {totalPages}లో {page}వ పేజీ",
+ "allStates": "అన్నీ",
+ "allSkills": "అన్ని నైపుణ్యాలు",
+ "loadingTasks": "టాస్క్లు లోడ్ అవుతున్నాయి...",
+ "noTasksForFilters": "ప్రస్తుత ఫిల్టర్లకు టాస్క్లు ఏవీ కనుగొనబడలేదు.",
+ "tableTask": "టాస్క్",
+ "tableSkill": "నైపుణ్యం",
+ "tableState": "స్థితి",
+ "tableUpdated": "నవీకరించబడింది",
+ "tableActions": "చర్యలు",
+ "view": "వీక్షించండి",
+ "cancel": "రద్దు చేయండి",
+ "previous": "మునుపటి",
+ "next": "తదుపరి",
+ "taskDetail": "టాస్క్ వివరాలు",
+ "close": "మూసివేయండి",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "ఈవెంట్లు",
+ "artifacts": "ఆర్టిఫ్యాక్ట్లు",
+ "tablePhase": "పట్టిక దశ",
+ "offset": "ఆఫ్సెట్",
+ "limit": "పరిమితి",
+ "skill": "నైపుణ్యం",
"rpcEndpoint": "POST / a2a",
"rpcMethodSend": "సందేశం/పంపు",
"rpcMethodStream": "సందేశం/ప్రవాహం",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "చర్యలు",
+ "addMemory": "మెమరీని జోడించండి",
+ "allTypes": "అన్ని రకాలు",
"cancel": "రద్దు చేయి",
"checkHealth": "ఆరోగ్యాన్ని తనిఖీ చేయండి",
"checkingHealth": "తనిఖీ చేస్తోంది...",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "ఇది ఎలా పనిచేస్తుంది",
"howWorksContent": "1. ఆటోమేటిక్ ఎక్స్ట్రాక్షన్: ప్రతి ప్రతిస్పందన ముగింపులో, వాస్తవాలు మరియు ఎపిసోడ్లు స్వయంచాలకంగా గుర్తించబడతాయి మరియు సేవ్ చేయబడతాయి.\n2. రిట్రీవల్: ప్రతి ప్రతిస్పందనకు ముందు, అత్యంత సంబంధిత మెమరీలు FTS5 (ఖచ్చితమైన), వెక్టర్ (సెమాంటిక్) లేదా హైబ్రిడ్ RRF ద్వారా శోధించబడతాయి.\n3. ఇంజెక్షన్: ప్రతిస్పందన నాణ్యతను మెరుగుపరచడానికి సంబంధిత మెమరీలు అసిస్టెంట్ సందర్భంలోకి ఇంజెక్ట్ చేయబడతాయి.\n4. మేనేజ్మెంట్: పాత మెమరీలను వీక్షించడానికి, సవరించడానికి, ఎగుమతి చేయడానికి మరియు కుదించడానికి ఈ పేజీని ఉపయోగించండి."
},
- "content": "Content",
+ "content": "కంటెంట్",
"contentPlaceholder": "గుర్తుంచుకోవలసిన విలువ లేదా JSON కంటెంట్",
- "created": "Created",
- "delete": "Delete",
+ "created": "సృష్టించబడింది",
+ "delete": "తొలగించండి",
"deleteConfirmDesc": "ఈ చర్యను రద్దు చేయలేము. మెమరీ శాశ్వతంగా తీసివేయబడుతుంది.",
"deleteConfirmTitle": "మెమరీని తొలగించాలా?",
- "description": "View and manage stored memory entries",
+ "description": "నిల్వ చేసిన మెమరీ నమోదులను వీక్షించి నిర్వహించండి",
"editMemory": "మెమరీని సవరించండి",
"editModal": {
"title": "మెమరీని సవరించండి",
@@ -4440,20 +4444,20 @@
"configureCta": "కాన్ఫిగర్ చేయండి",
"vectorStoreInstallHint": "వెక్టర్ శోధనను ప్రారంభించడానికి: npm install sqlite-vec (స్థానిక Node.js అవసరం, WASM కాదు), ఆపై పునఃప్రారంభించండి."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "ఎపిసోడిక్",
+ "export": "ఎగుమతి",
+ "factual": "వాస్తవిక",
"healthUnknown": "ఆరోగ్యం తెలియదు",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "హిట్ రేట్",
+ "import": "దిగుమతి",
"importError": "ఫైల్ను దిగుమతి చేయడం విఫలమైంది",
"importResult": "{imported} దిగుమతి చేయబడ్డాయి, {skipped} దాటవేయబడ్డాయి",
- "key": "Key",
+ "key": "కీ",
"keyPlaceholder": "ఉదా user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "మెమరీలు",
"next": "తదుపరి",
- "noMemories": "No memories found",
+ "noMemories": "మెమరీలు ఏవీ కనుగొనబడలేదు",
"pageInfo": "{totalPages}లో {page} ({total} మొత్తం)",
"pipelineError": "పైప్లైన్ లోపం",
"pipelineOk": "పైప్లైన్ సరే ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "పరివ్యూను పొందడం విఫలమైంది"
},
"previous": "మునుపటి",
- "procedural": "Procedural",
+ "procedural": "ప్రక్రియాత్మక",
"qdrant": {
"title": "Qdrant (వెక్టర్ స్టోర్ టైర్ 2)",
"description": "స్కేలబుల్ సెమాంటిక్ శోధన కోసం ఐచ్ఛిక Qdrant ఇంటిగ్రేషన్",
@@ -4530,8 +4534,8 @@
},
"save": "సేవ్ చేయండి",
"saving": "సేవ్ చేస్తోంది...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "మెమరీలను శోధించండి...",
+ "semantic": "సెమాంటిక్",
"summarize": {
"title": "పాత మెమరీలను కుదించండి",
"noCandidates": "కుదించడానికి అర్హత ఉన్న మెమరీలు ఏవీ లేవు (నిబంధన: >30 రోజుల పాతవి).",
@@ -4543,8 +4547,8 @@
"playground": "ప్లేగ్రౌండ్",
"engine": "ఇంజిన్"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "మెమరీ నిర్వహణ",
+ "tokensUsed": "ఉపయోగించిన టోకెన్లు",
"tooltip": {
"totalEntries": "ఈ API కీ కోసం నిల్వ చేయబడిన మొత్తం జ్ఞాపకాలు",
"tokensUsed": "యాక్టివ్ జ్ఞాపకాల ద్వారా ఆక్రమించబడిన అంచనా వేసిన మొత్తం టోకెన్లు",
@@ -4554,15 +4558,15 @@
"procedural": "అసిస్టెంట్ అనుసరించాల్సిన విధానాలు, వర్క్ఫ్లోలు మరియు సూచనలు",
"semantic": "భావనలు, ప్రాధాన్యతలు మరియు డొమైన్ పరిజ్ఞానం"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "మొత్తం నమోదులు",
+ "type": "రకం",
"memoryEnabled": "మెమరీ ప్రారంభించబడింది"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "నైపుణ్యాలు",
+ "description": "AI నైపుణ్యాలను నిర్వహించండి మరియు పర్యవేక్షించండి",
+ "skillsTab": "నైపుణ్యాలు",
+ "executionsTab": "అమలులు",
"selectSkillToInspect": "పరిశీలించడానికి ఎడమ వైపున ఉన్న నైపుణ్యాన్ని ఎంచుకోండి.",
"schemaTab": "స్కీమా",
"handlerTab": "హ్యాండ్లర్",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "పరీక్షను రన్ చేయండి (ప్లేస్హోల్డర్)",
"setModeAria": "మోడ్ను {mode} కి సెట్ చేయండి",
"uninstallSkill": "నైపుణ్యాన్ని అన్ఇన్స్టాల్ చేయండి",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "శాండ్బాక్స్",
+ "loading": "నైపుణ్యాలు లోడ్ అవుతున్నాయి...",
+ "noSkills": "నైపుణ్యాలు ఏవీ కనుగొనబడలేదు",
+ "noExecutions": "అమలులు ఏవీ కనుగొనబడలేదు",
+ "enabled": "ప్రారంభించబడింది",
+ "disabled": "నిలిపివేయబడింది",
"delete": "తొలగించు",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "వెర్షన్",
+ "tableDescription": "వివరణ",
+ "skill": "నైపుణ్యం",
+ "status": "స్థితి",
+ "duration": "వ్యవధి",
+ "time": "సమయం",
+ "sandboxConfig": "శాండ్బాక్స్ కాన్ఫిగరేషన్",
+ "cpuLimit": "CPU పరిమితి",
+ "cpuLimitDesc": "ఒక్కో నైపుణ్యానికి గరిష్ఠ అమలు సమయం",
+ "memoryLimit": "మెమరీ పరిమితి",
+ "memoryLimitDesc": "గరిష్ఠ మెమరీ కేటాయింపు",
+ "timeout": "గడువు సమయం",
+ "timeoutDesc": "ప్రతిస్పందన కోసం గరిష్ఠ నిరీక్షణ సమయం",
+ "networkAccess": "నెట్వర్క్ యాక్సెస్",
+ "networkAccessDesc": "అవుట్బౌండ్ నెట్వర్క్ అభ్యర్థనలను అనుమతించండి",
+ "mode": "మోడ్",
"q": "Q",
"filterSkillsPlaceholder": "పేరు, వివరణ లేదా ట్యాగ్ ద్వారా నైపుణ్యాలను ఫిల్టర్ చేయండి",
"allModes": "అన్ని మోడ్లు",
@@ -4619,7 +4623,7 @@
"searchMarketplacePlaceholder": "నైపుణ్యాలను శోధించండి...",
"searchMarketplace": "మార్కెట్ప్లేస్ను శోధించండి",
"marketplaceEmpty": "మార్కెట్ప్లేస్లో ఎటువంటి నైపుణ్యాలు కనుగొనబడలేదు",
- "marketplaceError": "Search failed",
+ "marketplaceError": "శోధన విఫలమైంది",
"installingFromMarketplace": "మార్కెట్ప్లేస్ నుండి ఇన్స్టాల్ అవుతోంది...",
"popularSkills": "ప్రసిద్ధ నైపుణ్యాలు",
"skillsMarketplace": "నైపుణ్యాల మార్కెట్ ప్లేస్",
@@ -4638,90 +4642,90 @@
"installSkill": "నైపుణ్యాన్ని ఇన్స్టాల్ చేయండి"
},
"health": {
- "title": "System Health",
- "description": "Real-time monitoring of your OmniRoute instance",
- "healthy": "Healthy",
- "degraded": "Degraded",
- "down": "Down",
- "uptime": "Uptime",
- "memory": "Memory",
- "memoryRss": "Memory (RSS)",
- "heap": "Heap",
+ "title": "సిస్టమ్ ఆరోగ్యం",
+ "description": "మీ OmniRoute ఇన్స్టాన్స్ యొక్క రియల్-టైమ్ పర్యవేక్షణ",
+ "healthy": "ఆరోగ్యకరం",
+ "degraded": "పనితీరు క్షీణించింది",
+ "down": "నిలిచిపోయింది",
+ "uptime": "అప్టైమ్",
+ "memory": "మెమరీ",
+ "memoryRss": "మెమరీ (RSS)",
+ "heap": "హీప్",
"cpu": "CPU",
- "database": "Database",
- "version": "Version",
- "lastCheck": "Last Check",
- "providerHealth": "Provider Health",
- "systemMetrics": "System Metrics",
- "tokenHealth": "Token Health",
- "refreshAll": "Refresh All",
- "checkNow": "Check Now",
- "loadingHealth": "Loading health data...",
- "failedToLoad": "Failed to load health data: {error}",
- "retry": "Retry",
- "allOperational": "All systems operational",
- "issuesDetected": "System issues detected",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
- "updatedAt": "Updated {time}",
- "latency": "Latency",
+ "database": "డేటాబేస్",
+ "version": "వెర్షన్",
+ "lastCheck": "చివరి తనిఖీ",
+ "providerHealth": "ప్రొవైడర్ ఆరోగ్యం",
+ "systemMetrics": "సిస్టమ్ మెట్రిక్స్",
+ "tokenHealth": "టోకెన్ ఆరోగ్యం",
+ "refreshAll": "అన్నింటినీ రిఫ్రెష్ చేయండి",
+ "checkNow": "ఇప్పుడే తనిఖీ చేయండి",
+ "loadingHealth": "ఆరోగ్య డేటా లోడ్ అవుతోంది...",
+ "failedToLoad": "ఆరోగ్య డేటాను లోడ్ చేయడం విఫలమైంది: {error}",
+ "retry": "మళ్లీ ప్రయత్నించండి",
+ "allOperational": "అన్ని సిస్టమ్లు సక్రమంగా పనిచేస్తున్నాయి",
+ "issuesDetected": "సిస్టమ్ సమస్యలు గుర్తించబడ్డాయి",
+ "healthVerdictReady": "OmniRoute సిద్ధంగా ఉంది",
+ "healthVerdictActionRequired": "పూర్తి కార్యాచరణను పునరుద్ధరించడానికి చర్య అవసరం",
+ "healthVerdictCoolingDown": "ఇటీవలి మార్పుల తర్వాత కూల్డౌన్లో ఉంది",
+ "healthSubtitle": "సిస్టమ్ ఆరోగ్య తనిఖీ",
+ "advancedDiagnosticsTitle": "అధునాతన విశ్లేషణలు",
+ "hide": "దాచు",
+ "show": "చూపించు",
+ "updatedAt": "{time}కి నవీకరించబడింది",
+ "latency": "లేటెన్సీ",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
"millisecondsShort": "{value}ms",
"notAvailable": "—",
- "totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "promptCache": "Prompt Cache",
- "entries": "Entries",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "signatureCache": "Signature Cache",
- "signatureDefaults": "Defaults",
- "signatureTool": "Tool",
- "signatureFamily": "Family",
- "signatureSession": "Session",
- "recovering": "Recovering",
- "noCBData": "No circuit breaker data available. Make some requests first.",
- "providerHealthStatusAria": "Provider health status",
- "issuesLabel": "Issues Detected",
- "operational": "Operational",
- "providers": "Providers",
- "configuredProvidersLabel": "Configured in dashboard",
- "configuredProvidersHint": "Providers with credentials saved in /dashboard/providers, regardless of runtime state.",
- "activeProviders": "{count} active",
- "activeProvidersHint": "Configured providers currently enabled for routing requests.",
- "monitoredProviders": "{count} monitored",
- "monitoredProvidersHint": "Providers currently tracked by circuit-breaker health monitors.",
- "healthyCount": "{count} healthy",
+ "totalRequests": "మొత్తం అభ్యర్థనలు",
+ "noDataYet": "ఇంకా డేటా లేదు",
+ "promptCache": "ప్రాంప్ట్ క్యాష్",
+ "entries": "ఎంట్రీలు",
+ "hitRate": "హిట్ రేట్",
+ "hitsMisses": "హిట్లు / మిస్లు",
+ "signatureCache": "సిగ్నేచర్ క్యాష్",
+ "signatureDefaults": "డిఫాల్ట్లు",
+ "signatureTool": "టూల్",
+ "signatureFamily": "ఫ్యామిలీ",
+ "signatureSession": "సెషన్",
+ "recovering": "పునరుద్ధరిస్తోంది",
+ "noCBData": "సర్క్యూట్ బ్రేకర్ డేటా అందుబాటులో లేదు. ముందుగా కొన్ని అభ్యర్థనలు చేయండి.",
+ "providerHealthStatusAria": "ప్రొవైడర్ ఆరోగ్య స్థితి",
+ "issuesLabel": "సమస్యలు గుర్తించబడ్డాయి",
+ "operational": "కార్యాచరణలో ఉంది",
+ "providers": "ప్రొవైడర్లు",
+ "configuredProvidersLabel": "డ్యాష్బోర్డ్లో కాన్ఫిగర్ చేయబడ్డాయి",
+ "configuredProvidersHint": "రన్టైమ్ స్థితితో సంబంధం లేకుండా /dashboard/providersలో క్రెడెన్షియల్స్ సేవ్ చేయబడిన ప్రొవైడర్లు.",
+ "activeProviders": "{count} యాక్టివ్",
+ "activeProvidersHint": "రూటింగ్ అభ్యర్థనల కోసం ప్రస్తుతం ప్రారంభించబడిన కాన్ఫిగర్ చేసిన ప్రొవైడర్లు.",
+ "monitoredProviders": "{count} పర్యవేక్షణలో ఉన్నాయి",
+ "monitoredProvidersHint": "ప్రస్తుతం సర్క్యూట్-బ్రేకర్ ఆరోగ్య మానిటర్ల ద్వారా ట్రాక్ చేయబడుతున్న ప్రొవైడర్లు.",
+ "healthyCount": "{count} ఆరోగ్యకరంగా ఉన్నాయి",
"nodeVersion": "Node {version}",
- "failures": "{count} failure",
- "failuresPlural": "{count} failures",
- "lastFailure": "Last",
- "rateLimitStatus": "Rate Limit Status",
- "activeLimiters": "{count} active limiter",
- "activeLimitersPlural": "{count} active limiters",
- "queued": "Queued",
- "queuedCount": "{count} queued",
- "running": "running",
- "runningCount": "{count} running",
+ "failures": "{count} వైఫల్యం",
+ "failuresPlural": "{count} వైఫల్యాలు",
+ "lastFailure": "చివరిది",
+ "rateLimitStatus": "రేట్ పరిమితి స్థితి",
+ "activeLimiters": "{count} యాక్టివ్ లిమిటర్",
+ "activeLimitersPlural": "{count} యాక్టివ్ లిమిటర్లు",
+ "queued": "క్యూలో ఉన్నాయి",
+ "queuedCount": "{count} క్యూలో ఉన్నాయి",
+ "running": "రన్ అవుతున్నాయి",
+ "runningCount": "{count} రన్ అవుతున్నాయి",
"ok": "OK",
- "activeLockouts": "Active Lockouts",
- "resetConfirm": "Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.",
- "resetAllTitle": "Reset all circuit breakers to healthy state",
- "resetting": "Resetting...",
- "resetAll": "Reset All",
- "until": "Until {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "activeLockouts": "యాక్టివ్ లాకౌట్లు",
+ "resetConfirm": "అన్ని సర్క్యూట్ బ్రేకర్లను ఆరోగ్యకరమైన స్థితికి రీసెట్ చేయాలా? ఇది అన్ని వైఫల్య గణనలను క్లియర్ చేసి, ప్రొవైడర్లందరినీ కార్యాచరణ స్థితికి పునరుద్ధరిస్తుంది.",
+ "resetAllTitle": "అన్ని సర్క్యూట్ బ్రేకర్లను ఆరోగ్యకరమైన స్థితికి రీసెట్ చేయండి",
+ "resetting": "రీసెట్ చేస్తోంది...",
+ "resetAll": "అన్నింటినీ రీసెట్ చేయండి",
+ "until": "{time} వరకు",
+ "limitExhausted": "పరిమితి ముగిసింది",
+ "learnedFromHeaders": "హెడర్ల నుండి తెలుసుకున్నది",
+ "remainingOfLimit": "{limit}లో {remaining} మిగిలి ఉన్నాయి",
+ "throttleStatus": "థ్రాటిల్: {value}",
+ "lastHeaderUpdate": "హెడర్ నవీకరణ: {age}",
"databaseHealth": "డేటాబేస్ ఆరోగ్యం",
"databaseHealthDescription": "పాత కోటా/డొమైన్ వరుసలు మరియు విరిగిన కాంబో సూచనలను నిర్ధారించండి మరియు రిపేర్ చేయండి.",
"status": "స్థితి",
@@ -4847,65 +4851,65 @@
"noTargets": "లక్ష్య మార్గాలు ఏవీ కాన్ఫిగర్ చేయబడలేదు."
},
"limits": {
- "title": "Limits & Quotas",
- "rateLimit": "Rate Limit",
- "remaining": "Remaining",
- "requestsPerMinute": "Requests/min",
- "tokensPerMinute": "Tokens/min",
- "dailyLimit": "Daily Limit"
+ "title": "పరిమితులు & కోటాలు",
+ "rateLimit": "రేట్ పరిమితి",
+ "remaining": "మిగిలినవి",
+ "requestsPerMinute": "అభ్యర్థనలు/నిమి",
+ "tokensPerMinute": "టోకెన్లు/నిమి",
+ "dailyLimit": "రోజువారీ పరిమితి"
},
"logs": {
- "title": "Logs",
- "requestLogs": "Request Logs",
- "proxyLogs": "Proxy Logs",
- "auditLog": "Audit Log",
+ "title": "లాగ్లు",
+ "requestLogs": "అభ్యర్థన లాగ్లు",
+ "proxyLogs": "ప్రాక్సీ లాగ్లు",
+ "auditLog": "ఆడిట్ లాగ్",
"console": "Console",
- "auditLogDesc": "Administrative actions and security events",
- "loading": "Loading...",
- "refresh": "Refresh",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
- "showing": "Showing {count} entries (offset {offset})",
- "search": "Search",
- "timestamp": "Timestamp",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "details": "Details",
- "ipAddress": "IP Address",
+ "auditLogDesc": "పరిపాలనా చర్యలు మరియు భద్రతా ఈవెంట్లు",
+ "loading": "లోడ్ అవుతోంది...",
+ "refresh": "రిఫ్రెష్",
+ "filterByAction": "చర్య ఆధారంగా ఫిల్టర్ చేయండి...",
+ "filterByActor": "చర్య చేసిన వ్యక్తి ఆధారంగా ఫిల్టర్ చేయండి...",
+ "filterEntriesAria": "ఆడిట్ లాగ్ ఎంట్రీలను ఫిల్టర్ చేయండి",
+ "filterByActionTypeAria": "చర్య రకం ఆధారంగా ఫిల్టర్ చేయండి",
+ "filterByActorAria": "చర్య చేసిన వ్యక్తి ఆధారంగా ఫిల్టర్ చేయండి",
+ "refreshAuditLogAria": "ఆడిట్ లాగ్ను రిఫ్రెష్ చేయండి",
+ "tableAria": "ఆడిట్ లాగ్ ఎంట్రీలు",
+ "failedFetchAuditLog": "ఆడిట్ లాగ్ను పొందడం విఫలమైంది",
+ "showing": "{count} ఎంట్రీలను చూపుతోంది (ఆఫ్సెట్ {offset})",
+ "search": "శోధించండి",
+ "timestamp": "సమయ ముద్ర",
+ "action": "చర్య",
+ "actor": "చర్య చేసిన వ్యక్తి",
+ "target": "లక్ష్యం",
+ "details": "వివరాలు",
+ "ipAddress": "IP చిరునామా",
"notAvailable": "—",
- "noEntries": "No audit log entries found",
- "previous": "Previous",
- "next": "Next",
- "providerWarningTitle": "Provider Warnings",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
- "providerWarningDesc": "Some providers returned warnings during request processing",
+ "noEntries": "ఆడిట్ లాగ్ ఎంట్రీలు ఏవీ కనుగొనబడలేదు",
+ "previous": "మునుపటి",
+ "next": "తదుపరి",
+ "providerWarningTitle": "ప్రొవైడర్ హెచ్చరికలు",
+ "viewDetails": "వివరాలను చూడండి",
+ "eventMetadata": "ఈవెంట్ మెటాడేటా",
+ "eventPayload": "ఈవెంట్ పేలోడ్",
+ "requestId": "అభ్యర్థన Id",
+ "providerWarningDesc": "అభ్యర్థనను ప్రాసెస్ చేస్తున్నప్పుడు కొంతమంది ప్రొవైడర్లు హెచ్చరికలను అందించారు",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "offset": "ఆఫ్సెట్",
+ "limit": "పరిమితి",
+ "status": "స్థితి",
+ "resourceType": "వనరు రకం",
+ "totalEntries": "మొత్తం నమోదులు",
+ "tab": "ట్యాబ్",
+ "auditModalSubtitle": "ఈవెంట్ వివరాలు మరియు మెటాడేటా",
+ "close": "మూసివేయి",
+ "runningRequests": "సక్రియ అభ్యర్థనలు",
+ "runningRequestsDesc": "ప్రస్తుతం అమలవుతున్న అప్స్ట్రీమ్ అభ్యర్థనల రియల్-టైమ్ వీక్షణ",
"clearAll": "అన్నీ క్లియర్ చేయండి",
"confirmClearActiveRequests": "అన్ని సక్రియ అభ్యర్థనలను క్లియర్ చేయాలా?",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "మోడల్",
+ "provider": "ప్రొవైడర్",
+ "account": "ఖాతా",
+ "elapsed": "గడిచిన సమయం",
"activeStage": "దశ",
"activeStageUnknown": "ఇంకా అప్స్ట్రీమ్కు పంపబడలేదు",
"activeStageRegistered": "నమోదైంది",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "రేట్ లిమిట్ స్లాట్ పొందబడింది",
"activeStageSendingToProvider": "అప్స్ట్రీమ్కు పంపుతోంది",
"activeStageProviderResponseStarted": "అప్స్ట్రీమ్ ప్రతిస్పందన ప్రారంభమైంది",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "సంఖ్య",
+ "payloads": "పేలోడ్లు",
+ "viewPayloads": "వీక్షించు",
+ "activeCount": "{count} సక్రియంగా ఉన్నాయి",
+ "clientPayload": "క్లయింట్ అభ్యర్థన పేలోడ్",
+ "upstreamPayload": "అప్స్ట్రీమ్ ప్రొవైడర్ పేలోడ్",
+ "upstreamNotSentYet": "ఇంకా అప్స్ట్రీమ్కు పంపబడలేదు",
+ "runningRequestDetailMeta": "ఖాతా: {account} — గడిచిన సమయం: {elapsed}",
+ "export": "ఎగుమతి చేయి",
+ "exporting": "ఎగుమతి చేస్తోంది...",
+ "exportFailed": "ఎగుమతి విఫలమైంది",
"cleanHistoryButton": "చరిత్రను క్లియర్ చేయి",
"cleanHistoryTitle": "లాగ్ చరిత్రను క్లియర్ చేయాలా?",
"cleanHistoryMessage": "ఇది DATA_DIR/call_logs కింద ఉన్న అన్ని అభ్యర్థన లాగ్ వరుసలను, లెగసీ వివరాల వరుసలను మరియు స్థానిక ఆర్టిఫ్యాక్ట్ ఫైల్లను శాశ్వతంగా క్లియర్ చేస్తుంది. క్లీనప్ తర్వాత లైవ్ పేజీ రిఫ్రెష్ అవుతుంది.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "{deleted} లాగ్ ఎంట్రీలు, {deletedArtifacts} ఆర్టిఫ్యాక్ట్లు మరియు {deletedDetailedLogs} లెగసీ వివరాల వరుసలు క్లియర్ చేయబడ్డాయి.",
"cleanHistoryEmpty": "అభ్యర్థన లాగ్ చరిత్ర ఏదీ కనుగొనబడలేదు.",
"cleanHistoryFailed": "లాగ్ చరిత్రను క్లీన్ చేయడం విఫలమైంది.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "సమయ పరిధి",
+ "lastNHours": "గత {hours}",
+ "defaultRange": "డిఫాల్ట్",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "లాగ్లను పొందడంలో విఫలమైంది",
+ "copyFailed": "లాగ్ నమోదును కాపీ చేయడంలో విఫలమైంది",
+ "copyLogEntry": "లాగ్ నమోదును కాపీ చేయి",
"filterByLevel": "లాగ్ స్థాయి ఆధారంగా ఫిల్టర్ చేయండి",
"searchPlaceholder": "లాగ్లను శోధించండి…",
"searchAria": "లాగ్ ఎంట్రీలను శోధించండి",
@@ -4960,49 +4964,49 @@
"tokens": "టోకెన్లు"
},
"onboarding": {
- "welcome": "Welcome",
+ "welcome": "స్వాగతం",
"tiers": "శ్రేణులు",
- "security": "Security",
+ "security": "భద్రత",
"test": "Test",
- "ready": "Ready!",
- "setPassword": "Set Password",
- "addProvider": "Add your first provider",
- "getStarted": "Get Started",
- "skip": "Skip",
- "skipWizard": "Skip wizard entirely",
- "skipPassword": "Skip password setup",
- "skipAndContinue": "Skip & Continue",
- "passwordLabel": "Password",
- "confirmPassword": "Confirm Password",
- "enterPassword": "Enter password",
- "confirmPasswordPlaceholder": "Confirm password",
- "passwordsMismatch": "Passwords do not match",
- "setupComplete": "Setup Complete!",
- "goToDashboard": "Go to Dashboard →",
- "welcomeDesc": "OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "multiProvider": "Multi-Provider",
- "usageTracking": "Usage Tracking",
- "securityDesc": "Set a password to protect your dashboard, or skip for now.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
- "providerDesc": "Connect your first AI provider. You can add more later.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
- "apiKeyRequired": "API Key (required)",
- "customUrlOptional": "Custom URL (optional)",
- "testDesc": "Let's verify your provider connection works.",
- "runTest": "Run Connection Test",
- "testingConnection": "Testing connection...",
- "connectionSuccessful": "Connection successful! Your provider is ready.",
- "noProviderFound": "No provider found. You can add one from the dashboard later.",
- "testFailed": "Test failed, but you can configure this later.",
- "couldNotTest": "Could not test right now. You can test from the dashboard.",
- "doneDesc": "You're all set! Your OmniRoute instance is configured and ready to proxy AI requests.",
- "yourEndpoint": "Your endpoint:",
- "continue": "Continue",
- "retry": "Retry",
- "failedSetPassword": "Failed to set password. Try again.",
- "failedAddProvider": "Failed to add provider. Try again.",
- "connectionError": "Connection error. Please try again.",
- "provider": "Provider",
+ "ready": "సిద్ధం!",
+ "setPassword": "పాస్వర్డ్ను సెట్ చేయి",
+ "addProvider": "మీ మొదటి ప్రొవైడర్ను జోడించండి",
+ "getStarted": "ప్రారంభించండి",
+ "skip": "దాటవేయి",
+ "skipWizard": "విజార్డ్ను పూర్తిగా దాటవేయి",
+ "skipPassword": "పాస్వర్డ్ సెటప్ను దాటవేయండి",
+ "skipAndContinue": "దాటవేసి కొనసాగండి",
+ "passwordLabel": "పాస్వర్డ్",
+ "confirmPassword": "పాస్వర్డ్ను నిర్ధారించండి",
+ "enterPassword": "పాస్వర్డ్ను నమోదు చేయండి",
+ "confirmPasswordPlaceholder": "పాస్వర్డ్ను నిర్ధారించండి",
+ "passwordsMismatch": "పాస్వర్డ్లు సరిపోలడం లేదు",
+ "setupComplete": "సెటప్ పూర్తయింది!",
+ "goToDashboard": "డ్యాష్బోర్డ్కు వెళ్లండి →",
+ "welcomeDesc": "OmniRoute మీ స్థానిక AI API ప్రాక్సీ. ఇది లోడ్ బ్యాలెన్సింగ్, ఫెయిల్ఓవర్ మరియు వినియోగ ట్రాకింగ్తో అభ్యర్థనలను బహుళ AI ప్రొవైడర్లకు రూట్ చేస్తుంది.",
+ "multiProvider": "బహుళ ప్రొవైడర్లు",
+ "usageTracking": "వినియోగ ట్రాకింగ్",
+ "securityDesc": "మీ డ్యాష్బోర్డ్ను రక్షించడానికి పాస్వర్డ్ను సెట్ చేయండి లేదా ప్రస్తుతానికి దాటవేయండి.",
+ "securityDescSkipWarning": "⚠️ పాస్వర్డ్ లేకుండా, సెటప్ సమయంలో మీరు ప్రొవైడర్లను జోడించలేరు. పాస్వర్డ్ను సెట్ చేసిన తర్వాత డ్యాష్బోర్డ్ నుండి వాటిని జోడించవచ్చు.",
+ "providerDesc": "మీ మొదటి AI ప్రొవైడర్ను కనెక్ట్ చేయండి. తర్వాత మరిన్ని జోడించవచ్చు.",
+ "providerRequiresPassword": "ప్రొవైడర్లను జోడించడానికి మీరు ముందుగా పాస్వర్డ్ను సెట్ చేయాలి. దయచేసి భద్రతా దశకు తిరిగి వెళ్లి పాస్వర్డ్ను సెట్ చేయండి లేదా తర్వాత డ్యాష్బోర్డ్ నుండి ప్రొవైడర్లను జోడించండి.",
+ "apiKeyRequired": "API కీ (తప్పనిసరి)",
+ "customUrlOptional": "అనుకూల URL (ఐచ్ఛికం)",
+ "testDesc": "మీ ప్రొవైడర్ కనెక్షన్ పనిచేస్తుందో లేదో ధృవీకరిద్దాం.",
+ "runTest": "కనెక్షన్ పరీక్షను అమలు చేయండి",
+ "testingConnection": "కనెక్షన్ను పరీక్షిస్తోంది...",
+ "connectionSuccessful": "కనెక్షన్ విజయవంతమైంది! మీ ప్రొవైడర్ సిద్ధంగా ఉంది.",
+ "noProviderFound": "ప్రొవైడర్ కనుగొనబడలేదు. తర్వాత డ్యాష్బోర్డ్ నుండి ఒకదాన్ని జోడించవచ్చు.",
+ "testFailed": "పరీక్ష విఫలమైంది, కానీ మీరు దీన్ని తర్వాత కాన్ఫిగర్ చేయవచ్చు.",
+ "couldNotTest": "ప్రస్తుతం పరీక్షించలేకపోయాము. మీరు డ్యాష్బోర్డ్ నుండి పరీక్షించవచ్చు.",
+ "doneDesc": "అంతా సిద్ధమైంది! మీ OmniRoute ఇన్స్టాన్స్ కాన్ఫిగర్ చేయబడింది మరియు AI అభ్యర్థనలను ప్రాక్సీ చేయడానికి సిద్ధంగా ఉంది.",
+ "yourEndpoint": "మీ ఎండ్పాయింట్:",
+ "continue": "కొనసాగండి",
+ "retry": "మళ్లీ ప్రయత్నించండి",
+ "failedSetPassword": "పాస్వర్డ్ను సెట్ చేయడం విఫలమైంది. మళ్లీ ప్రయత్నించండి.",
+ "failedAddProvider": "ప్రొవైడర్ను జోడించడం విఫలమైంది. మళ్లీ ప్రయత్నించండి.",
+ "connectionError": "కనెక్షన్ లోపం. దయచేసి మళ్లీ ప్రయత్నించండి.",
+ "provider": "ప్రొవైడర్",
"apiKeyHelp": "API కీ అనేది AI సేవల కోసం పాస్వర్డ్. మీ ప్రొవైడర్ వెబ్సైట్ నుండి ఒకదాన్ని పొందండి (ఉదా., platform.openai.com, console.anthropic.com).",
"tier": {
"subtitle": "OmniRoute ప్రొవైడర్లను మూడు శ్రేణులుగా నిర్వహిస్తుంది కాబట్టి రౌటింగ్ ముందుగా అత్యంత విశ్వసనీయమైన, తక్కువ-ధర మార్గాన్ని ఇష్టపడుతుంది.",
@@ -5045,12 +5049,12 @@
}
},
"providers": {
- "title": "Providers",
+ "title": "ప్రొవైడర్లు",
"Account Deactivated": "ఖాతా నిష్క్రియం చేయబడింది",
"allProviders": "అందరు ప్రొవైడర్లు",
"audioProviders": "ఆడియో ప్రొవైడర్లు",
"showFreeOnly": "ఉచితం మాత్రమే",
- "addProvider": "Add Provider",
+ "addProvider": "ప్రొవైడర్ను జోడించండి",
"addFirstProvider": "మీ మొదటి ప్రొవైడర్ని జోడించండి",
"addFirstProviderDesc": "OmniRoute ద్వారా రూటింగ్ అభ్యర్థనలను ప్రారంభించడానికి AI ప్రొవైడర్ను కనెక్ట్ చేయండి. మీరు ఉచిత ప్రొవైడర్లు, API కీలు లేదా OAuth ఖాతాలను ఉపయోగించవచ్చు.",
"learnMore": "మరింత తెలుసుకోండి",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "ఇంపోర్ట్ అవుతోంది…",
"importFromFileImport": "{count} ప్రొవైడర్లను ఇంపోర్ట్ చేయండి",
"importFromFileResult": "{success} ప్రొవైడర్లు ఇంపోర్ట్ చేయబడ్డాయి ({failed} విఫలమయ్యాయి)",
+ "importFromFileDownloadTemplate": "CSV టెంప్లేట్ను డౌన్లోడ్ చేయండి",
+ "importFromFileMoreErrors": "మరో +{count}",
+ "importFromFileSchemaHint": "CSV కాలమ్లు స్థానానుసారంగా ఉంటాయి: provider, name, apiKey, baseUrl (ఐచ్ఛికం), priority (ఐచ్ఛికం). provider కాలమ్లో ఇప్పటికే ఉన్న నిర్వహిత ప్రొవైడర్ ID లేదా ఇప్పటికే నమోదు చేసిన OpenAI/Anthropic-అనుకూల నోడ్ ID ఉండాలి — ఈ దిగుమతి కొత్త ఎండ్పాయింట్ నోడ్లను సృష్టించదు.",
"adaptaTutorial": {
"title": "Adapta Webని ఎలా కనెక్ట్ చేయాలి",
"introPrefix": "Adapta Clerk ద్వారా ప్రామాణీకరిస్తుంది. టోకెన్",
@@ -5099,31 +5106,31 @@
"tipPrefix": "ఈ",
"tipSuffix": "కుకీ దీర్ఘకాలికమైనది, సాధారణంగా నెలల తరబడి ఉంటుంది. మీరు సైన్ అవుట్ చేసినా లేదా Adapta సెషన్ను చెల్లనిదిగా చేసినా మాత్రమే మీరు దీన్ని పునరుద్ధరించాల్సి ఉంటుంది."
},
- "editProvider": "Edit Provider",
- "deleteProvider": "Delete Provider",
- "noProviders": "No providers configured",
- "modelAvailability": "Model Availability",
- "accounts": "Accounts",
- "newAccount": "New Account",
- "deleteConfirm": "Are you sure you want to delete this provider?",
- "testing": "Testing...",
- "testConnection": "Test Connection",
- "testSuccess": "Connection successful",
- "testFailed": "Connection failed",
- "available": "Available",
- "cooldown": "Cooldown",
- "unavailable": "Unavailable",
- "unknown": "Unknown",
+ "editProvider": "ప్రొవైడర్ను సవరించండి",
+ "deleteProvider": "ప్రొవైడర్ను తొలగించండి",
+ "noProviders": "ప్రొవైడర్లు ఏవీ కాన్ఫిగర్ చేయబడలేదు",
+ "modelAvailability": "మోడల్ లభ్యత",
+ "accounts": "ఖాతాలు",
+ "newAccount": "కొత్త ఖాతా",
+ "deleteConfirm": "మీరు ఖచ్చితంగా ఈ ప్రొవైడర్ను తొలగించాలనుకుంటున్నారా?",
+ "testing": "పరీక్షిస్తోంది...",
+ "testConnection": "కనెక్షన్ను పరీక్షించండి",
+ "testSuccess": "కనెక్షన్ విజయవంతమైంది",
+ "testFailed": "కనెక్షన్ విఫలమైంది",
+ "available": "అందుబాటులో ఉంది",
+ "cooldown": "విరామ వ్యవధి",
+ "unavailable": "అందుబాటులో లేదు",
+ "unknown": "తెలియదు",
"oauthLabel": "OAuth",
- "compatibleLabel": "Compatible",
+ "compatibleLabel": "అనుకూలమైనది",
"chat": "Chat",
"responses": "Responses",
"messages": "Messages",
- "oauthProviders": "OAuth Providers",
- "freeProviders": "Free Providers",
- "apiKeyProviders": "API Key Providers",
- "compatibleProviders": "API Key Compatible Providers",
- "testAll": "Test All",
+ "oauthProviders": "OAuth ప్రొవైడర్లు",
+ "freeProviders": "ఉచిత ప్రొవైడర్లు",
+ "apiKeyProviders": "API Key ప్రొవైడర్లు",
+ "compatibleProviders": "API Key అనుకూల ప్రొవైడర్లు",
+ "testAll": "అన్నింటినీ పరీక్షించండి",
"reorderByAvailability": "మళ్లీ క్రమం చేయండి",
"reorderByAvailabilityTitle": "లభ్యత ఆధారంగా కనెక్షన్లను మళ్లీ క్రమం చేయండి",
"reorderByAvailabilityError": "లభ్యత ఆధారంగా కనెక్షన్లను మళ్లీ క్రమం చేయడంలో విఫలమైంది",
@@ -5131,10 +5138,10 @@
"distributing": "పంపిణీ చేస్తోంది...",
"selectedCount": "{count, plural, one {# ఎంపిక చేయబడింది} other {# ఎంపిక చేయబడ్డాయి}}",
"accountsCount": "{count, plural, one {# ఖాతా} other {# ఖాతాలు}}",
- "testAllOAuth": "Test all OAuth connections",
- "testAllFree": "Test all Free connections",
- "testAllApiKey": "Test all API Key connections",
- "testAllCompatible": "Test all Compatible connections",
+ "testAllOAuth": "అన్ని OAuth కనెక్షన్లను పరీక్షించండి",
+ "testAllFree": "అన్ని ఉచిత కనెక్షన్లను పరీక్షించండి",
+ "testAllApiKey": "అన్ని API Key కనెక్షన్లను పరీక్షించండి",
+ "testAllCompatible": "అన్ని అనుకూల కనెక్షన్లను పరీక్షించండి",
"testAllModels": "అన్ని మోడళ్లను పరీక్షించండి",
"testAllModelsConfirm": "కనిపించే అన్ని మోడళ్లను పరీక్షించాలా? ఆటో-హైడ్ ప్రారంభించబడి ఉంటే విఫలమైన మోడళ్లు దాచబడతాయి.",
"testingAllModels": "{done}/{total} పరీక్షిస్తోంది...",
@@ -5150,9 +5157,9 @@
"filterByVisibility": "దృశ్యత ఆధారంగా ఫిల్టర్ చేయండి",
"autoHideFailed": "విఫలమైన మోడళ్లను ఆటోమేటిక్గా దాచండి",
"autoHideFailedHint": "ప్రారంభించినప్పుడు, Test all అనేది /v1/models వంటి పబ్లిక్ కేటలాగ్ల నుండి తాత్కాలికం కాని వైఫల్యాలను దాచిపెడుతుంది. సింగిల్-మోడల్ పరీక్షలు ఎప్పటికీ ఆటోమేటిక్గా దాచబడవు.",
- "connected": "{count} Connected",
- "errorCount": "{count} Error ({code})",
- "errorCountNoCode": "{count} Error",
+ "connected": "{count} కనెక్ట్ అయ్యాయి",
+ "errorCount": "{count} లోపం ({code})",
+ "errorCountNoCode": "{count} లోపం",
"testAllCompleted": "{total} మోడళ్లు పరీక్షించబడ్డాయి: {ok} OK, {failed} విఫలమయ్యాయి",
"modelAutoHidden": "మోడల్ {model} ఆటోమేటిక్గా దాచబడింది (పరీక్ష విఫలమైంది)",
"filterAll": "అన్నీ",
@@ -5160,9 +5167,9 @@
"filterHidden": "దాచినవి మాత్రమే",
"modelsHiddenCount": "{count} దాచబడ్డాయి",
"warningCount": "{count} హెచ్చరిక",
- "noConnections": "No connections",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "noConnections": "కనెక్షన్లు లేవు",
+ "expiredBadge": "గడువు ముగిసింది",
+ "expiringSoonBadge": "త్వరలో గడువు ముగుస్తుంది",
"freeTier": "ఉచిత టైర్",
"freeTierAvailable": "ఉచిత టైర్ అందుబాటులో ఉంది",
"hasFreeTooltip": "ఉచిత శ్రేణి అందుబాటులో ఉంది",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "ఈ ప్రొవైడర్ నిలిపివేయబడింది",
"riskNotice": {
"title": "కొనసాగడానికి ముందు",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "వినియోగ పరిమితులు",
"tooltip": "వినియోగ హెచ్చరికలు ఉన్న ప్రొవైడర్ — వివరాల కోసం క్లిక్ చేయండి",
"oauth": "ఈ ప్రొవైడర్ మీ అధికారిక ప్రోడక్ట్ సెషన్/OAuthని ఉపయోగిస్తుంది, ఇది ప్రాక్సీ/రూటర్ వినియోగానికి అనుమతించబడలేదు. మేము తీవ్రమైన అటానమస్ ఏజెంట్ వినియోగాన్ని (OpenCloud-శైలి, సుదీర్ఘ బహుళ-దశల ఫ్లోలు, పెద్ద బ్యాచ్లు) సిఫార్సు చేయము — అప్స్ట్రీమ్ ఖాతాను పరిమితం చేయడం లేదా నిషేధించడం ద్వారా ప్రతిస్పందించవచ్చు. మీ స్వంత పూచీకత్తుపై ఉపయోగించండి.",
"webCookie": "ఈ ప్రొవైడర్ మీ వెబ్ సెషన్ కుకీల ద్వారా ప్రామాణీకరిస్తుంది. అప్స్ట్రీమ్ సేవ ఎప్పుడైనా సెషన్ను చెల్లనిదిగా చేయవచ్చు, దీని వలన మీరు మళ్లీ లాగిన్ అవ్వాల్సి ఉంటుంది. ఎక్కువసేపు పర్యవేక్షణ లేని ఆపరేషన్ల కోసం సిఫార్సు చేయబడదు. మీ స్వంత పూచీకత్తుపై ఉపయోగించండి.",
@@ -5184,95 +5191,95 @@
"cancel": "రద్దు చేయండి"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} కనెక్షన్(లు) ఫ్లాగ్ చేయబడ్డాయి — ఇటీవలి వైఫల్యాలు గరిష్ఠంగా {maxFailures}{lastFailureSuffix}. కనెక్షన్ స్థితిని చూడటానికి క్లిక్ చేయండి.",
+ "lastFailureSuffix": "(చివరి వైఫల్యం {time})",
+ "ariaLabel": "కనెక్షన్ స్థితి వివరాలను చూడండి, {count} హెచ్చరిక(లు)"
},
- "disabled": "Disabled",
- "enableProvider": "Enable provider",
- "disableProvider": "Disable provider",
- "testResults": "Test Results",
- "noCompatibleYet": "No compatible providers added yet",
- "compatibleHint": "Use the buttons above to add OpenAI or Anthropic compatible endpoints",
- "addOpenAICompatible": "Add OpenAI Compatible",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "addNewProvider": "Add New Provider",
- "backToProviders": "Back to Providers",
- "configureNewProvider": "Configure a new AI provider to use with your applications.",
- "providerLabel": "Provider",
- "selectProvider": "Select a provider",
- "selectedProvider": "Selected provider",
- "authMethod": "Authentication Method",
- "apiKeyLabel": "API Key",
- "apiKeyRequired": "API Key is required",
- "selectProviderRequired": "Please select a provider",
- "enterApiKey": "Enter your API key",
- "apiKeySecure": "Your API key will be encrypted and stored securely.",
- "oauth2Connect": "Connect with OAuth2",
+ "disabled": "నిలిపివేయబడింది",
+ "enableProvider": "ప్రొవైడర్ను ప్రారంభించండి",
+ "disableProvider": "ప్రొవైడర్ను నిలిపివేయండి",
+ "testResults": "పరీక్ష ఫలితాలు",
+ "noCompatibleYet": "అనుకూల ప్రొవైడర్లు ఇంకా జోడించబడలేదు",
+ "compatibleHint": "OpenAI లేదా Anthropic అనుకూల ఎండ్పాయింట్లను జోడించడానికి పైన ఉన్న బటన్లను ఉపయోగించండి",
+ "addOpenAICompatible": "OpenAI అనుకూల ప్రొవైడర్ను జోడించండి",
+ "addAnthropicCompatible": "Anthropic అనుకూల ప్రొవైడర్ను జోడించండి",
+ "addNewProvider": "కొత్త ప్రొవైడర్ను జోడించండి",
+ "backToProviders": "ప్రొవైడర్లకు తిరిగి వెళ్లండి",
+ "configureNewProvider": "మీ అప్లికేషన్లతో ఉపయోగించడానికి కొత్త AI ప్రొవైడర్ను కాన్ఫిగర్ చేయండి.",
+ "providerLabel": "ప్రొవైడర్",
+ "selectProvider": "ప్రొవైడర్ను ఎంచుకోండి",
+ "selectedProvider": "ఎంచుకున్న ప్రొవైడర్",
+ "authMethod": "ప్రమాణీకరణ పద్ధతి",
+ "apiKeyLabel": "API కీ",
+ "apiKeyRequired": "API కీ అవసరం",
+ "selectProviderRequired": "దయచేసి ప్రొవైడర్ను ఎంచుకోండి",
+ "enterApiKey": "మీ API కీని నమోదు చేయండి",
+ "apiKeySecure": "మీ API కీ ఎన్క్రిప్ట్ చేయబడి సురక్షితంగా నిల్వ చేయబడుతుంది.",
+ "oauth2Connect": "OAuth2తో కనెక్ట్ చేయండి",
"oauth2Label": "OAuth2",
- "oauth2Desc": "Connect your account using OAuth2 authentication.",
- "displayName": "Display Name",
- "displayNamePlaceholder": "e.g., Production API, Dev Environment",
- "displayNameHint": "Optional. A friendly name to identify this configuration.",
- "active": "Active",
- "activeDescription": "Enable this provider for use in your applications",
- "cancel": "Cancel",
- "createProvider": "Create Provider",
- "failedCreate": "Failed to create provider",
- "errorOccurred": "An error occurred. Please try again.",
- "modelStatus": "Model Status",
- "showConfiguredOnly": "Configured only",
- "allModelsOperational": "All models operational",
- "modelsWithIssues": "{count} model(s) with issues",
- "allModelsNormal": "All models are responding normally.",
- "cooldownCleared": "Cooldown cleared for {model}",
- "failedClearCooldown": "Failed to clear cooldown",
- "loadingAvailability": "Loading model availability...",
- "clearCooldown": "Clear",
- "clearing": "Clearing...",
- "until": "Until {time}",
- "providerTestFailed": "Provider test failed",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "oauth2Desc": "OAuth2 ప్రమాణీకరణను ఉపయోగించి మీ ఖాతాను కనెక్ట్ చేయండి.",
+ "displayName": "ప్రదర్శన పేరు",
+ "displayNamePlaceholder": "ఉదా., ప్రొడక్షన్ API, డెవ్ ఎన్విరాన్మెంట్",
+ "displayNameHint": "ఐచ్ఛికం. ఈ కాన్ఫిగరేషన్ను గుర్తించడానికి సులభమైన పేరు.",
+ "active": "సక్రియం",
+ "activeDescription": "మీ అప్లికేషన్లలో ఉపయోగించడానికి ఈ ప్రొవైడర్ను ప్రారంభించండి",
+ "cancel": "రద్దు చేయండి",
+ "createProvider": "ప్రొవైడర్ను సృష్టించండి",
+ "failedCreate": "ప్రొవైడర్ను సృష్టించడం విఫలమైంది",
+ "errorOccurred": "లోపం సంభవించింది. దయచేసి మళ్లీ ప్రయత్నించండి.",
+ "modelStatus": "మోడల్ స్థితి",
+ "showConfiguredOnly": "కాన్ఫిగర్ చేసినవి మాత్రమే",
+ "allModelsOperational": "అన్ని మోడల్లు పనిచేస్తున్నాయి",
+ "modelsWithIssues": "{count} మోడల్(లు)లో సమస్యలు ఉన్నాయి",
+ "allModelsNormal": "అన్ని మోడల్లు సాధారణంగా స్పందిస్తున్నాయి.",
+ "cooldownCleared": "{model} కోసం కూల్డౌన్ క్లియర్ చేయబడింది",
+ "failedClearCooldown": "కూల్డౌన్ను క్లియర్ చేయడం విఫలమైంది",
+ "loadingAvailability": "మోడల్ లభ్యతను లోడ్ చేస్తోంది...",
+ "clearCooldown": "క్లియర్ చేయండి",
+ "clearing": "క్లియర్ చేస్తోంది...",
+ "until": "{time} వరకు",
+ "providerTestFailed": "ప్రొవైడర్ పరీక్ష విఫలమైంది",
+ "providerTestTimeout": "ప్రొవైడర్ పరీక్ష సమయం ముగిసింది — ఒకేసారి పరీక్షించడానికి చాలా ఎక్కువ కనెక్షన్లు ఉన్నాయి",
"modeTest": "{mode} Test",
- "passedCount": "{count} passed",
- "failedCount": "{count} failed",
- "testedCount": "{count} tested",
+ "passedCount": "{count} ఉత్తీర్ణమయ్యాయి",
+ "failedCount": "{count} విఫలమయ్యాయి",
+ "testedCount": "{count} పరీక్షించబడ్డాయి",
"millisecondsAbbr": "{value}ms",
"okShort": "OK",
- "errorShort": "ERROR",
- "noActiveConnectionsInGroup": "No active connections found for this group.",
- "allTestsPassed": "All {total} tests passed",
- "testSummary": "{passed}/{total} passed, {failed} failed",
- "nameLabel": "Name",
+ "errorShort": "లోపం",
+ "noActiveConnectionsInGroup": "ఈ సమూహానికి సక్రియ కనెక్షన్లు ఏవీ కనుగొనబడలేదు.",
+ "allTestsPassed": "మొత్తం {total} పరీక్షలు విజయవంతమయ్యాయి",
+ "testSummary": "{passed}/{total} విజయవంతమయ్యాయి, {failed} విఫలమయ్యాయి",
+ "nameLabel": "పేరు",
"prefixLabel": "Prefix",
- "baseUrlLabel": "Base URL",
- "apiTypeLabel": "API Type",
- "prefixHint": "Required. Unique prefix for model names.",
- "nameHint": "Required. A friendly label for this node.",
- "baseUrlHint": "Required. Provider API base URL.",
+ "baseUrlLabel": "బేస్ URL",
+ "apiTypeLabel": "API రకం",
+ "prefixHint": "తప్పనిసరి. మోడల్ పేర్ల కోసం ప్రత్యేక ఉపసర్గ.",
+ "nameHint": "తప్పనిసరి. ఈ నోడ్కు సులభంగా గుర్తించగల లేబుల్.",
+ "baseUrlHint": "తప్పనిసరి. ప్రొవైడర్ API బేస్ URL.",
"iconUrlLabel": "ఐకాన్ URL",
"iconUrlHint": "ఐచ్ఛికం. ఈ ప్రొవైడర్ ఐకాన్గా చూపబడే చిత్రం URL.",
"iconUrlInvalid": "చెల్లని ఐకాన్ URL. http(s):// లేదా data:image/*;base64 URL ఉపయోగించండి.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "రోజువారీ కోటా రీసెట్ సమయ మండలం",
+ "dailyQuotaResetTimezoneHint": "అప్స్ట్రీమ్ X-RateLimit-Resetను అందించనప్పుడు ఉపయోగించే ఐచ్ఛిక IANA సమయ మండలం. స్వల్ప కూల్డౌన్ను కొనసాగించడానికి ఖాళీగా ఉంచండి.",
+ "dailyQuotaResetHourLabel": "రోజువారీ కోటా రీసెట్ గంట",
+ "dailyQuotaResetHourHint": "పైన ఉన్న సమయ మండలంలో స్థానిక గంట 0-23. ఖాళీగా ఉంటే నోడ్-స్థాయి గడియారం ఉండదు.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
- "validateConnection": "Validate Connection",
- "validating": "Validating...",
- "connectionValid": "Connection is valid!",
- "connectionFailed": "Connection failed. Check URL and key.",
- "testKeyLabel": "Test API Key",
- "testKeyPlaceholder": "sk-... (for validation only)",
- "providerNotFound": "Provider not found",
- "deleteConnectionConfirm": "Delete this connection?",
+ "validateConnection": "కనెక్షన్ను ధృవీకరించండి",
+ "validating": "ధృవీకరిస్తోంది...",
+ "connectionValid": "కనెక్షన్ చెల్లుబాటు అవుతోంది!",
+ "connectionFailed": "కనెక్షన్ విఫలమైంది. URL మరియు కీని తనిఖీ చేయండి.",
+ "testKeyLabel": "API కీని పరీక్షించండి",
+ "testKeyPlaceholder": "sk-... (ధృవీకరణ కోసం మాత్రమే)",
+ "providerNotFound": "ప్రొవైడర్ కనుగొనబడలేదు",
+ "deleteConnectionConfirm": "ఈ కనెక్షన్ను తొలగించాలా?",
"deleteConnectionConfirmNamed": "మీరు {name} ని తొలగించాలనుకుంటున్నారా? ఈ చర్యను వెనక్కి తీసుకోలేరు.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "ఎంచుకున్నవాటిని తొలగించండి ({count})",
+ "batchDeleteConfirm": "{count} కనెక్షన్(ల)ను తొలగించాలా? ఈ చర్యను రద్దు చేయడం సాధ్యం కాదు.",
+ "batchDeleteSuccess": "{count} కనెక్షన్(లు) తొలగించబడ్డాయి",
"batchActivateSelected": "యాక్టివేట్ చేయండి",
"batchDeactivateSelected": "డీయాక్టివేట్ చేయండి",
"batchRetestSelected": "మళ్లీ పరీక్షించండి",
@@ -5288,32 +5295,32 @@
"filterError": "లోపం",
"filterBanned": "నిషేధించబడింది",
"filterCreditsExhausted": "క్రెడిట్లు అయిపోయాయి",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "ఖాతాలను శోధించండి…",
"noFilteredConnections": "ప్రస్తుత ఫిల్టర్కు ఏ కనెక్షన్లు సరిపోలడం లేదు.",
- "failedSetAlias": "Failed to set alias",
+ "failedSetAlias": "మారుపేరును సెట్ చేయడం విఫలమైంది",
"setAliasSuccess": "అలియాస్ {alias} సెట్ చేయబడింది",
"deleteAliasSuccess": "అలియాస్ {alias} తొలగించబడింది",
- "failedSaveConnection": "Failed to save connection",
- "failedSaveConnectionRetry": "Failed to save connection. Please try again.",
- "failedRetestConnection": "Failed to retest connection",
- "deleteCompatibleNodeConfirm": "Delete this {type} Compatible node?",
- "anthropicCompatibleDetails": "Anthropic Compatible Details",
- "openaiCompatibleDetails": "OpenAI Compatible Details",
+ "failedSaveConnection": "కనెక్షన్ను సేవ్ చేయడం విఫలమైంది",
+ "failedSaveConnectionRetry": "కనెక్షన్ను సేవ్ చేయడం విఫలమైంది. దయచేసి మళ్లీ ప్రయత్నించండి.",
+ "failedRetestConnection": "కనెక్షన్ను మళ్లీ పరీక్షించడం విఫలమైంది",
+ "deleteCompatibleNodeConfirm": "ఈ {type} Compatible నోడ్ను తొలగించాలా?",
+ "anthropicCompatibleDetails": "Anthropic Compatible వివరాలు",
+ "openaiCompatibleDetails": "OpenAI Compatible వివరాలు",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "ఎంబెడ్డింగ్లు",
+ "audioTranscriptions": "ఆడియో లిప్యంతరీకరణలు",
+ "audioSpeech": "ఆడియో ప్రసంగం",
+ "imagesGenerations": "చిత్రాల సృష్టి",
"chatCompletions": "Chat Completions",
- "importingModels": "Importing...",
- "importFromModels": "Import from /models",
- "modelsImported": "{count} models imported",
- "allModelsAlreadyImported": "All models already imported",
- "noNewModelsToImport": "No new models to import — all models are already in the registry or custom models list",
- "skippingExistingModels": "Skipping {count} existing models",
- "autoSync": "Auto-Sync",
- "autoSyncShort": "Sync",
+ "importingModels": "దిగుమతి చేస్తోంది...",
+ "importFromModels": "/models నుండి దిగుమతి చేయండి",
+ "modelsImported": "{count} మోడళ్లు దిగుమతి చేయబడ్డాయి",
+ "allModelsAlreadyImported": "అన్ని మోడళ్లు ఇప్పటికే దిగుమతి చేయబడ్డాయి",
+ "noNewModelsToImport": "దిగుమతి చేయడానికి కొత్త మోడళ్లు లేవు — అన్ని మోడళ్లు ఇప్పటికే రిజిస్ట్రీ లేదా అనుకూల మోడళ్ల జాబితాలో ఉన్నాయి",
+ "skippingExistingModels": "ఇప్పటికే ఉన్న {count} మోడళ్లను దాటవేస్తోంది",
+ "autoSync": "ఆటో-సింక్",
+ "autoSyncShort": "సింక్ చేయండి",
"autoFetchModels": "ఆటో-ఫెచ్ అప్స్ట్రీమ్ మోడల్స్",
"autoFetchModelsTooltip": "అవసరమైనప్పుడు అప్స్ట్రీమ్ మోడల్స్ను పొందండి మరియు కాష్ చేయండి",
"autoFetchModelsEnabled": "అప్స్ట్రీమ్ మోడల్ ఆటో-ఫెచ్ ప్రారంభించబడింది",
@@ -5325,52 +5332,52 @@
"resetToUpstreamDefaults": "అప్స్ట్రీమ్ డిఫాల్ట్స్ను పునరుద్ధరించండి",
"resetToUpstreamDefaultsSuccess": "అప్స్ట్రీమ్ మోడల్ డిఫాల్ట్స్ పునరుద్ధరించబడ్డాయి",
"resetToUpstreamDefaultsFailed": "అప్స్ట్రీమ్ మోడల్ డిఫాల్ట్స్ను పునరుద్ధరించడంలో విఫలమైంది",
- "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)",
- "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically",
- "autoSyncDisabled": "Auto-sync disabled",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
- "autoSyncPartialFailure": "Auto-sync updated for some connections, but not all",
- "clearAllModels": "Clear All Models",
- "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.",
- "clearAllModelsSuccess": "All models cleared",
- "clearAllModelsFailed": "Failed to clear models",
- "addConnectionToImport": "Add a connection to enable importing.",
- "noModelsConfigured": "No models configured",
- "connectionCount": "{count} connection(s)",
- "fetchingModels": "Fetching available models...",
- "failedFetchModels": "Failed to fetch models",
+ "autoSyncTooltip": "ప్రతి 24 గంటలకు మోడళ్ల జాబితాను స్వయంచాలకంగా తాజా పరచండి (MODEL_SYNC_INTERVAL_HOURS ద్వారా కాన్ఫిగర్ చేయవచ్చు)",
+ "autoSyncEnabled": "ఆటో-సింక్ ప్రారంభించబడింది — మోడళ్లు క్రమానుగతంగా తాజా పరచబడతాయి",
+ "autoSyncDisabled": "ఆటో-సింక్ నిలిపివేయబడింది",
+ "autoSyncToggleFailed": "ఆటో-సింక్ను మార్చడం విఫలమైంది",
+ "autoSyncPartialFailure": "కొన్ని కనెక్షన్ల కోసం ఆటో-సింక్ నవీకరించబడింది, కానీ అన్నింటికీ కాదు",
+ "clearAllModels": "అన్ని మోడళ్లను తొలగించండి",
+ "clearAllModelsConfirm": "ఈ ప్రొవైడర్కు సంబంధించిన అన్ని మోడళ్లను తొలగించాలని మీరు ఖచ్చితంగా అనుకుంటున్నారా? దీన్ని రద్దు చేయడం సాధ్యం కాదు.",
+ "clearAllModelsSuccess": "అన్ని మోడళ్లు తొలగించబడ్డాయి",
+ "clearAllModelsFailed": "మోడళ్లను తొలగించడం విఫలమైంది",
+ "addConnectionToImport": "దిగుమతిని ప్రారంభించడానికి ఒక కనెక్షన్ను జోడించండి.",
+ "noModelsConfigured": "మోడళ్లు ఏవీ కాన్ఫిగర్ చేయబడలేదు",
+ "connectionCount": "{count} కనెక్షన్(లు)",
+ "fetchingModels": "అందుబాటులో ఉన్న మోడళ్లను పొందుతోంది...",
+ "failedFetchModels": "మోడళ్లను పొందడం విఫలమైంది",
"noFreeModelsFound": "ఈ ప్రొవైడర్ కోసం ఉచిత మోడళ్లు ఏవీ కనుగొనబడలేదు — ఏదీ దిగుమతి చేయబడలేదు.",
"fetchModelsSuccess": "{count} కొత్త మోడళ్లు కనుగొనబడ్డాయి",
"fetchModelsFailed": "మోడల్లను ఆటో-ఫెచ్ చేయడం సాధ్యపడలేదు (మీరు సెట్టింగ్ల నుండి మళ్లీ ప్రయత్నించవచ్చు)",
- "noModelsFound": "No models found",
- "importFailed": "Import failed",
- "noNewModelsAdded": "No new models were added.",
+ "noModelsFound": "మోడళ్లు ఏవీ కనుగొనబడలేదు",
+ "importFailed": "దిగుమతి విఫలమైంది",
+ "noNewModelsAdded": "కొత్త మోడళ్లు ఏవీ జోడించబడలేదు.",
"adding": "Adding...",
- "close": "Close",
- "importingModelsTitle": "Importing Models",
- "copyModel": "Copy model",
- "filterModels": "Filter models...",
+ "close": "మూసివేయండి",
+ "importingModelsTitle": "మోడళ్లను దిగుమతి చేస్తోంది",
+ "copyModel": "మోడల్ను కాపీ చేయండి",
+ "filterModels": "మోడళ్లను ఫిల్టర్ చేయండి...",
"testAllRateLimited": "రేట్ పరిమితి ముగిసింది, ముందుగానే ఆపివేయబడింది",
"hideFailedAuto": "విఫలమైన మోడల్లను ఆటో-హైడ్ చేయండి",
- "selectAllModels": "Select all",
+ "selectAllModels": "అన్నింటినీ ఎంచుకోండి",
"hideAllModels": "అన్నీ దాచండి",
- "modelsActive": "Active",
- "showModel": "Show model",
- "hideModel": "Hide model",
- "removeModel": "Remove model",
- "rateLimitProtected": "Protected",
- "rateLimitUnprotected": "Unprotected",
+ "modelsActive": "సక్రియం",
+ "showModel": "మోడల్ను చూపండి",
+ "hideModel": "మోడల్ను దాచండి",
+ "removeModel": "మోడల్ను తొలగించండి",
+ "rateLimitProtected": "రక్షితమైనది",
+ "rateLimitUnprotected": "రక్షణ లేనిది",
"providerQuotaShort": "కోటా",
"hideConnectionFromProviderQuota": "ప్రొవైడర్ కోటా నుండి ఈ ఖాతాను దాచండి",
"showConnectionInProviderQuota": "ప్రొవైడర్ కోటాలో ఈ ఖాతాను చూపించండి",
"quotaVisibilityUpdateFailed": "ప్రొవైడర్ కోటా విజిబిలిటీని అప్డేట్ చేయడం విఫలమైంది",
- "enableRateLimitProtection": "Click to enable rate limit protection",
- "disableRateLimitProtection": "Click to disable rate limit protection",
+ "enableRateLimitProtection": "రేట్ లిమిట్ రక్షణను ప్రారంభించడానికి క్లిక్ చేయండి",
+ "disableRateLimitProtection": "రేట్ లిమిట్ రక్షణను నిలిపివేయడానికి క్లిక్ చేయండి",
"testAllProgress": "{done}/{total} పరీక్షించబడ్డాయి",
"testAllFailedHidden": "{count} విఫలమైన మోడల్లు దాచబడ్డాయి",
"testAllDone": "అన్ని మోడల్లు పరీక్షించబడ్డాయి",
- "productionKey": "Production Key",
- "enterNewApiKey": "Enter new API key",
+ "productionKey": "ప్రొడక్షన్ కీ",
+ "enterNewApiKey": "కొత్త API కీని నమోదు చేయండి",
"codexApplyModalTitle": "స్థానిక కోడెక్స్కు వర్తించండి",
"codexApplyTargetLabel": "లక్ష్య మార్గం",
"codexApplyBackupLabel": "బ్యాకప్లు",
@@ -5382,77 +5389,77 @@
"bulkAddFormatHint": "పంక్తికి ఒక కీ. ఫార్మాట్: పేరు|apiKey లేదా కేవలం apiKey (ఇండెక్స్ ద్వారా స్వయంచాలకంగా పేరు పెట్టబడింది).",
"bulkValidateKeys": "సేవ్ చేయడానికి ముందు ప్రతి కీని ధృవీకరించండి (నెమ్మదిగా)",
"bulkAddAllKeys": "అన్ని కీలను జోడించండి",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
- "optional": "Optional",
+ "bulkAddedCount": "{count, plural, one {# కీ జోడించబడింది} other {# కీలు జోడించబడ్డాయి}}",
+ "bulkFailedCount": "{count, plural, one {# విఫలమైంది} other {# విఫలమయ్యాయి}}",
+ "optional": "ఐచ్ఛికం",
"anthropicCompatibleName": "Anthropic Compatible",
"openaiCompatibleName": "OpenAI Compatible",
"compatibleDefaultModelLabel": "డిఫాల్ట్ మోడల్",
"compatibleDefaultModelHint": "మీ అనుకూల ఎండ్పాయింట్ ఆశించిన విధంగానే మోడల్ IDని ఖచ్చితంగా నమోదు చేయండి. ఈ మోడల్ కనెక్షన్ డిఫాల్ట్గా సేవ్ చేయబడుతుంది.",
- "failedImportModels": "Failed to import models",
- "noModelsReturnedFromEndpoint": "No models returned from /models endpoint.",
- "importingModelsProgress": "Importing {current} of {total} models...",
- "foundModelsStartingImport": "Found {count} models. Starting import...",
- "importingModelById": "Importing {modelId}...",
- "importSuccessCount": "Successfully imported {count, plural, one {# model} other {# models}}!",
- "noNewModelsAddedExisting": "No new models were added (all already exist).",
- "importDoneCount": "✓ Done! {count, plural, one {# model imported.} other {# models imported.}}",
- "unexpectedErrorOccurred": "An unexpected error occurred",
+ "failedImportModels": "మోడల్లను దిగుమతి చేయడం విఫలమైంది",
+ "noModelsReturnedFromEndpoint": "/models ఎండ్పాయింట్ నుండి ఎలాంటి మోడల్లు తిరిగి రాలేదు.",
+ "importingModelsProgress": "{total} మోడల్లలో {current}వ మోడల్ను దిగుమతి చేస్తోంది...",
+ "foundModelsStartingImport": "{count} మోడల్లు కనుగొనబడ్డాయి. దిగుమతిని ప్రారంభిస్తోంది...",
+ "importingModelById": "{modelId}ను దిగుమతి చేస్తోంది...",
+ "importSuccessCount": "{count, plural, one {# మోడల్ విజయవంతంగా దిగుమతి చేయబడింది} other {# మోడల్లు విజయవంతంగా దిగుమతి చేయబడ్డాయి}}!",
+ "noNewModelsAddedExisting": "కొత్త మోడల్లు ఏవీ జోడించబడలేదు (అన్నీ ఇప్పటికే ఉన్నాయి).",
+ "importDoneCount": "✓ పూర్తయింది! {count, plural, one {# మోడల్ దిగుమతి చేయబడింది.} other {# మోడల్లు దిగుమతి చేయబడ్డాయి.}}",
+ "unexpectedErrorOccurred": "ఊహించని లోపం సంభవించింది",
"getApiKey": "API కీ పొందండి",
"getApiKeyDescription": "API కీ కోసం నమోదు చేసుకోండి లేదా సైన్ అప్ చేయండి",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# కనెక్షన్} other {# కనెక్షన్లు}}",
"messagesPath": "messages",
"responsesPath": "responses",
"chatCompletionsPath": "chat/completions",
- "add": "Add",
- "edit": "Edit",
- "delete": "Delete",
+ "add": "జోడించు",
+ "edit": "సవరించు",
+ "delete": "తొలగించు",
"anthropic": "Anthropic",
"openai": "OpenAI",
- "singleConnectionPerCompatible": "Only one connection is allowed per compatible node. Add another node if you need more connections.",
- "connections": "Connections",
- "providerProxyTitleConfigured": "Provider proxy: {host}",
- "configured": "configured",
- "providerProxyConfigureHint": "Configure proxy for all connections of this provider",
- "providerProxy": "Provider Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
- "noConnectionsYet": "No connections yet",
- "addFirstConnectionHint": "Add your first connection to get started",
- "addConnection": "Add Connection",
- "availableModels": "Available Models",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
- "pageAutoRefresh": "Page will refresh automatically...",
- "statusDisabled": "disabled",
- "statusConnected": "connected",
- "statusRuntimeIssue": "runtime issue",
- "statusAuthFailed": "auth failed",
- "statusRateLimited": "rate limited",
- "statusNetworkIssue": "network issue",
- "statusTestUnsupported": "test unsupported",
- "statusUnavailable": "unavailable",
- "statusFailed": "failed",
- "statusError": "error",
- "oauthAccount": "OAuth Account",
- "errorTypeRuntime": "Local runtime",
- "errorTypeUpstreamAuth": "Upstream auth",
- "errorTypeMissingCredential": "Missing credential",
- "errorTypeRefreshFailed": "Refresh failed",
- "errorTypeTokenExpired": "Token expired",
- "errorTypeRateLimited": "Rate limited",
- "errorTypeUpstreamUnavailable": "Upstream unavailable",
- "errorTypeNetworkError": "Network error",
- "errorTypeTestUnsupported": "Test unsupported",
- "errorTypeUpstreamError": "Upstream error",
+ "singleConnectionPerCompatible": "అనుకూలమైన ప్రతి నోడ్కు ఒక కనెక్షన్ మాత్రమే అనుమతించబడుతుంది. మరిన్ని కనెక్షన్లు అవసరమైతే మరొక నోడ్ను జోడించండి.",
+ "connections": "కనెక్షన్లు",
+ "providerProxyTitleConfigured": "ప్రొవైడర్ ప్రాక్సీ: {host}",
+ "configured": "కాన్ఫిగర్ చేయబడింది",
+ "providerProxyConfigureHint": "ఈ ప్రొవైడర్కు చెందిన అన్ని కనెక్షన్ల కోసం ప్రాక్సీని కాన్ఫిగర్ చేయండి",
+ "providerProxy": "ప్రొవైడర్ ప్రాక్సీ",
+ "repairEnv": "envను మరమ్మతు చేయి",
+ "repairEnvWorking": "మరమ్మతు చేస్తోంది...",
+ "repairEnvHint": "ఇప్పటికే ఉన్న విలువలను ఓవర్రైట్ చేయకుండా, లేని OAuth డిఫాల్ట్లను .envలో పునరుద్ధరించండి.",
+ "repairEnvSuccess": "OAuth డిఫాల్ట్లు పునరుద్ధరించబడ్డాయి",
+ "repairEnvFailed": ".envను మరమ్మతు చేయడం విఫలమైంది",
+ "noConnectionsYet": "ఇంకా కనెక్షన్లు లేవు",
+ "addFirstConnectionHint": "ప్రారంభించడానికి మీ మొదటి కనెక్షన్ను జోడించండి",
+ "addConnection": "కనెక్షన్ను జోడించు",
+ "availableModels": "అందుబాటులో ఉన్న మోడల్లు",
+ "builtInModels": "అంతర్నిర్మిత మోడల్లు",
+ "builtInModelsHint": "ఈ ప్రొవైడర్ కోసం రిజిస్ట్రీ మోడల్లు. అనుకూలత ఎంపికలను సెట్ చేయడానికి పెన్సిల్ను ఉపయోగించండి.",
+ "pageAutoRefresh": "పేజీ స్వయంచాలకంగా రిఫ్రెష్ అవుతుంది...",
+ "statusDisabled": "నిలిపివేయబడింది",
+ "statusConnected": "కనెక్ట్ చేయబడింది",
+ "statusRuntimeIssue": "రన్టైమ్ సమస్య",
+ "statusAuthFailed": "ప్రామాణీకరణ విఫలమైంది",
+ "statusRateLimited": "రేటు పరిమితం చేయబడింది",
+ "statusNetworkIssue": "నెట్వర్క్ సమస్య",
+ "statusTestUnsupported": "పరీక్షకు మద్దతు లేదు",
+ "statusUnavailable": "అందుబాటులో లేదు",
+ "statusFailed": "విఫలమైంది",
+ "statusError": "లోపం",
+ "oauthAccount": "OAuth ఖాతా",
+ "errorTypeRuntime": "స్థానిక రన్టైమ్",
+ "errorTypeUpstreamAuth": "అప్స్ట్రీమ్ ప్రమాణీకరణ",
+ "errorTypeMissingCredential": "క్రెడెన్షియల్ లేదు",
+ "errorTypeRefreshFailed": "రిఫ్రెష్ విఫలమైంది",
+ "errorTypeTokenExpired": "టోకెన్ గడువు ముగిసింది",
+ "errorTypeRateLimited": "రేట్ పరిమితం చేయబడింది",
+ "errorTypeUpstreamUnavailable": "అప్స్ట్రీమ్ అందుబాటులో లేదు",
+ "errorTypeNetworkError": "నెట్వర్క్ లోపం",
+ "errorTypeTestUnsupported": "పరీక్షకు మద్దతు లేదు",
+ "errorTypeUpstreamError": "అప్స్ట్రీమ్ లోపం",
"errorTypeCreditsExhausted": "క్రెడిట్లు లేవు",
"errorTypeBanned": "403 నిషేధించబడింది",
- "proxySourceGlobal": "Global",
- "proxySourceProvider": "Provider",
- "proxySourceKey": "Key",
+ "proxySourceGlobal": "గ్లోబల్",
+ "proxySourceProvider": "ప్రొవైడర్",
+ "proxySourceKey": "కీ",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"proxyOn": "ప్రాక్సీ ఆన్",
"proxyOff": "డైరెక్ట్ (ప్రాక్సీని బైపాస్ చేయండి)",
@@ -5464,31 +5471,31 @@
"perKeyProxyDisabledTitle": "ఈ ప్రొవైడర్ కోసం కీ వారీ ప్రాక్సీ కేటాయింపు నిలిపివేయబడింది",
"autoPriority": "Auto: {priority}",
"proxy": "Proxy",
- "retestAuthentication": "Retest authentication",
- "retest": "Retest",
- "disableConnection": "Disable connection",
- "enableConnection": "Enable connection",
- "reauthenticateConnection": "Re-authenticate this connection",
- "proxyConfig": "Proxy config",
- "aliasExistsAlert": "Alias \"{alias}\" already exists. Please use a different model or edit existing alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
- "openRouterAnyModelHint": "OpenRouter supports any model. Add models and create aliases for quick access.",
- "modelIdFromOpenRouter": "Model ID (from OpenRouter)",
+ "retestAuthentication": "ప్రమాణీకరణను మళ్లీ పరీక్షించండి",
+ "retest": "మళ్లీ పరీక్షించండి",
+ "disableConnection": "కనెక్షన్ను నిలిపివేయండి",
+ "enableConnection": "కనెక్షన్ను ప్రారంభించండి",
+ "reauthenticateConnection": "ఈ కనెక్షన్ను మళ్లీ ప్రమాణీకరించండి",
+ "proxyConfig": "ప్రాక్సీ కాన్ఫిగరేషన్",
+ "aliasExistsAlert": "\"{alias}\" అనే మారుపేరు ఇప్పటికే ఉంది. దయచేసి వేరే మోడల్ను ఉపయోగించండి లేదా ఇప్పటికే ఉన్న మారుపేరును సవరించండి.",
+ "aliasInputPlaceholder": "మారుపేరు",
+ "clickToSetAlias": "మారుపేరును సెట్ చేయడానికి క్లిక్ చేయండి",
+ "clickToEditAlias": "మారుపేరు: {alias} (సవరించడానికి క్లిక్ చేయండి)",
+ "openRouterAnyModelHint": "OpenRouter ఏ మోడల్కైనా మద్దతు ఇస్తుంది. త్వరిత యాక్సెస్ కోసం మోడళ్లను జోడించి మారుపేర్లను సృష్టించండి.",
+ "modelIdFromOpenRouter": "మోడల్ ID (OpenRouter నుండి)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
- "customModels": "Custom Models",
- "customModelsHint": "Add model IDs not in the default list. These will be available for routing.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "customModels": "అనుకూల మోడళ్లు",
+ "customModelsHint": "డిఫాల్ట్ జాబితాలో లేని మోడల్ IDలను జోడించండి. ఇవి రూటింగ్ కోసం అందుబాటులో ఉంటాయి.",
+ "normalizeToolCallIdLabel": "టూల్ కాల్ IDలను 9 అక్షరాలకు సాధారణీకరించండి (ఉదా. Mistral)",
+ "preserveDeveloperRoleLabel": "OpenAI Responses డెవలపర్ పాత్రను అలాగే ఉంచండి (systemకు మ్యాప్ చేయవద్దు)",
+ "compatAdjustmentsTitle": "అనుకూలత",
+ "compatButtonLabel": "అనుకూలత",
+ "compatToolIdShort": "టూల్ ID 9",
+ "compatDeveloperShort": "డెవలపర్ పాత్ర",
+ "compatDoNotPreserveDeveloper": "డెవలపర్ పాత్రను అలాగే ఉంచవద్దు",
+ "compatBadgeNoPreserve": "అలాగే ఉంచవద్దు",
+ "compatProtocolLabel": "క్లయింట్ అభ్యర్థన ప్రోటోకాల్",
+ "compatProtocolHint": "OmniRoute ఈ అభ్యర్థన ఆకృతిని (OpenAI Chat, Responses API లేదా Anthropic Messages) గుర్తించినప్పుడు ఈ ఎంపికలు వర్తిస్తాయి.",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,84 +5537,84 @@
"interceptFetchHint": "స్థానిక web_fetch టూల్ కాల్లను OmniRoute యొక్క /v1/web/fetch కి రీరైట్ చేయండి.",
"interceptionLoadError": "ఇంటర్సెప్షన్ సెట్టింగ్లను లోడ్ చేయడం విఫలమైంది: {error}",
"interceptionSaveError": "ఇంటర్సెప్షన్ సెట్టింగ్లను సేవ్ చేయడం విఫలమైంది: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
- "perModelQuotaLabel": "Per-Model Quota",
- "perModelQuotaDescription": "When enabled, 429/404 errors only lock the specific model, not the entire connection. Use for providers with per-model rate limits (e.g., ModelScope).",
+ "ccAliasSectionTitle": "Claude Codeలో బహిర్గతం చేయి (claude/…)",
+ "ccAliasSectionHint": "ఈ ప్రొవైడర్ మోడళ్లను claude/<provider>/<model> మిర్రర్ IDల కింద ప్రకటించండి, తద్వారా Claude Code గేట్వే మోడల్ డిస్కవరీ వాటిని జాబితా చేయగలదు. డిఫాల్ట్గా ఆఫ్లో ఉంటుంది — దీన్ని ప్రారంభిస్తే క్లయింట్లందరికీ కేటలాగ్ ఎంట్రీలు రెట్టింపు అవుతాయి.",
+ "ccAliasProviderLevelLabel": "ప్రొవైడర్ డిఫాల్ట్",
+ "ccAliasModelOverridesLabel": "ఒక్కో మోడల్కు ఓవర్రైడ్లు",
+ "ccAliasModelOverrideAriaLabel": "{modelId} కోసం ఓవర్రైడ్",
+ "ccAliasStateInherit": "వారసత్వంగా పొందు",
+ "ccAliasStateOn": "ఆన్",
+ "ccAliasStateOff": "ఆఫ్",
+ "ccAliasAddModelPlaceholder": "మోడల్ ID (ఉదా. gpt-4o)",
+ "ccAliasAddModelButton": "ఓవర్రైడ్ను జోడించు",
+ "ccAliasLoadError": "డిస్కవరీ-అలియాస్ సెట్టింగ్లను లోడ్ చేయడం విఫలమైంది: {error}",
+ "ccAliasSaveError": "డిస్కవరీ-అలియాస్ సెట్టింగ్ను సేవ్ చేయడం విఫలమైంది: {error}",
+ "compatUpstreamHeadersLabel": "అదనపు అప్స్ట్రీమ్ హెడర్లు",
+ "compatUpstreamHeadersHint": "అధిక-అధికార సెట్టింగ్ — ప్రొవైడర్ API క్రెడెన్షియల్స్ను సవరించడానికి ఉన్నదే దీనికీ నమ్మక స్థాయి; విశ్వసనీయ అడ్మిన్లు మాత్రమే దీన్ని ఉపయోగించాలి. ప్రొవైడర్ API కీ నుండి OmniRoute ప్రమాణీకరణను జోడించిన తర్వాత ఇవి విలీనం చేయబడతాయి. కస్టమ్ హెడర్ పేరు ఇప్పటికే ఉన్న హెడర్ పేరుతో ఒకేలా ఉంటే (ఉదా. Authorization), మీ విలువ స్వయంచాలకంగా రూపొందించిన హెడర్ను పూర్తిగా భర్తీ చేస్తుంది (Bearer టోకెన్తో సహా) — అప్స్ట్రీమ్కు మీరు టైప్ చేసినది మాత్రమే కనిపిస్తుంది, సెట్టింగ్లలోని కీ కనిపించదు. తప్పుగా కాన్ఫిగర్ చేస్తే 401 లోపం రావచ్చు లేదా అప్స్ట్రీమ్ ప్రమాణీకరణ పనిచేయకపోవచ్చు. ఒక్కో హెడర్కు ఒక్కో వరుస (ఉదా. కొన్ని గేట్వేల కోసం అదనపు Authentication). ప్రివ్యూ చూడటానికి విలువపై హోవర్ చేయండి లేదా ఫోకస్ చేయండి. ఫోకస్ తొలగినప్పుడు, బయట క్లిక్ చేసినప్పుడు లేదా ఈ ప్యానెల్ను మూసివేసినప్పుడు సేవ్ అవుతుంది.",
+ "compatUpstreamHeaderName": "హెడర్ పేరు",
+ "compatUpstreamHeaderValue": "విలువ",
+ "compatUpstreamAddRow": "హెడర్ను జోడించు",
+ "compatUpstreamRemoveRow": "వరుసను తొలగించు",
+ "compatBadgeUpstreamHeaders": "హెడర్లు",
+ "perModelQuotaLabel": "ఒక్కో మోడల్కు కోటా",
+ "perModelQuotaDescription": "దీన్ని ప్రారంభించినప్పుడు, 429/404 లోపాలు మొత్తం కనెక్షన్ను కాకుండా నిర్దిష్ట మోడల్ను మాత్రమే లాక్ చేస్తాయి. ఒక్కో మోడల్కు వేర్వేరు రేట్ పరిమితులు ఉన్న ప్రొవైడర్ల కోసం దీన్ని ఉపయోగించండి (ఉదా., ModelScope).",
"importFreeModelsOnlyLabel": "ఉచిత మోడల్లను మాత్రమే ఇంపోర్ట్ చేయండి",
"importFreeModelsOnlyHint": "ఎనేబుల్ చేసినప్పుడు, ఈ ప్రొవైడర్ యొక్క ఉచిత మోడల్లు మాత్రమే ఇంపోర్ట్ చేయబడతాయి. చెల్లింపు మోడల్లు దాటవేయబడతాయి.",
- "perModelQuotaToggle": "Per-Model Quota Toggle",
- "modelId": "Model ID",
- "customModelPlaceholder": "e.g. gpt-4.5-turbo",
- "loading": "Loading...",
- "removeCustomModel": "Remove custom model",
- "noCustomModels": "No custom models added yet.",
- "allSuggestedAliasesExist": "All suggested aliases already exist. Please choose a different model or remove conflicting aliases.",
- "failedSaveCustomModel": "Failed to save custom model",
- "modelAddedSuccess": "Model {modelId} added successfully",
- "failedAddModelTryAgain": "Failed to add model. Please try again.",
- "failedSaveImportedModel": "Failed to save imported model to custom database",
- "failedImportModelsTryAgain": "Failed to import models. Please try again.",
- "failedRemoveModelFromDatabase": "Failed to remove model from database",
- "modelRemovedSuccess": "Model removed successfully",
- "failedDeleteModelTryAgain": "Failed to delete model. Please try again.",
- "compatibleModelsDescription": "Add {type}-compatible models manually or import them from the /models endpoint.",
+ "perModelQuotaToggle": "ఒక్కో మోడల్ కోటా టాగుల్",
+ "modelId": "మోడల్ ID",
+ "customModelPlaceholder": "ఉదా. gpt-4.5-turbo",
+ "loading": "లోడ్ అవుతోంది...",
+ "removeCustomModel": "కస్టమ్ మోడల్ను తొలగించు",
+ "noCustomModels": "ఇంకా కస్టమ్ మోడళ్లు ఏవీ జోడించబడలేదు.",
+ "allSuggestedAliasesExist": "సూచించిన అలియాస్లన్నీ ఇప్పటికే ఉన్నాయి. దయచేసి వేరే మోడల్ను ఎంచుకోండి లేదా విరుద్ధమైన అలియాస్లను తొలగించండి.",
+ "failedSaveCustomModel": "కస్టమ్ మోడల్ను సేవ్ చేయడం విఫలమైంది",
+ "modelAddedSuccess": "మోడల్ {modelId} విజయవంతంగా జోడించబడింది",
+ "failedAddModelTryAgain": "మోడల్ను జోడించడం విఫలమైంది. దయచేసి మళ్లీ ప్రయత్నించండి.",
+ "failedSaveImportedModel": "దిగుమతి చేసిన మోడల్ను కస్టమ్ డేటాబేస్లో సేవ్ చేయడం విఫలమైంది",
+ "failedImportModelsTryAgain": "మోడళ్లను దిగుమతి చేయడం విఫలమైంది. దయచేసి మళ్లీ ప్రయత్నించండి.",
+ "failedRemoveModelFromDatabase": "డేటాబేస్ నుండి మోడల్ను తొలగించడం విఫలమైంది",
+ "modelRemovedSuccess": "మోడల్ విజయవంతంగా తొలగించబడింది",
+ "failedDeleteModelTryAgain": "మోడల్ను తొలగించడం విఫలమైంది. దయచేసి మళ్లీ ప్రయత్నించండి.",
+ "compatibleModelsDescription": "{type}-అనుకూల మోడళ్లను మాన్యువల్గా జోడించండి లేదా /models ఎండ్పాయింట్ నుండి వాటిని దిగుమతి చేయండి.",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
- "apiKeyValidationFailed": "API key validation failed. Please check your key and try again.",
- "addProviderApiKeyTitle": "Add {provider} API Key",
- "checking": "Checking...",
- "check": "Check",
- "valid": "Valid",
- "invalid": "Invalid",
- "creating": "Creating...",
- "validationChecksAnthropicCompatible": "Validation checks {provider} by verifying the API key.",
- "validationChecksOpenAiCompatible": "Validation checks {provider} via /models on your base URL.",
- "priorityLabel": "Priority",
- "saving": "Saving...",
- "save": "Save",
- "editConnection": "Edit Connection",
- "accountName": "Account name",
+ "apiKeyValidationFailed": "API కీ ధ్రువీకరణ విఫలమైంది. దయచేసి మీ కీని తనిఖీ చేసి మళ్లీ ప్రయత్నించండి.",
+ "addProviderApiKeyTitle": "{provider} API కీని జోడించు",
+ "checking": "తనిఖీ చేస్తోంది...",
+ "check": "తనిఖీ చేయండి",
+ "valid": "చెల్లుబాటు అవుతుంది",
+ "invalid": "చెల్లదు",
+ "creating": "సృష్టిస్తోంది...",
+ "validationChecksAnthropicCompatible": "API కీని ధృవీకరించడం ద్వారా {provider}ను తనిఖీ చేస్తుంది.",
+ "validationChecksOpenAiCompatible": "మీ బేస్ URLలోని /models ద్వారా {provider}ను తనిఖీ చేస్తుంది.",
+ "priorityLabel": "ప్రాధాన్యత",
+ "saving": "సేవ్ చేస్తోంది...",
+ "save": "సేవ్ చేయండి",
+ "editConnection": "కనెక్షన్ను సవరించండి",
+ "accountName": "ఖాతా పేరు",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "ఆరోగ్య తనిఖీ (నిమి)",
"healthCheckHint": "Proactive token refresh interval. 0 = disabled.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
- "failedTestConnection": "Failed to test connection",
- "failed": "Failed",
- "leaveBlankKeepCurrentApiKey": "Leave blank to keep the current API key.",
- "editCompatibleTitle": "Edit {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
- "apiKeyForCheck": "API Key (for Check)",
+ "deselectAllModels": "అన్నింటి ఎంపికను తీసివేయండి",
+ "modelsActiveCount": "{active}/{total} సక్రియంగా ఉన్నాయి",
+ "noModelsMatch": "\"{filter}\"కు సరిపోలే మోడళ్లు లేవు",
+ "groupLabel": "పర్యావరణం",
+ "groupPlaceholder": "ఉదా. eKaizen, వ్యక్తిగతం",
+ "failedTestConnection": "కనెక్షన్ను పరీక్షించడం విఫలమైంది",
+ "failed": "విఫలమైంది",
+ "leaveBlankKeepCurrentApiKey": "ప్రస్తుత API కీని ఉంచడానికి ఖాళీగా వదలండి.",
+ "editCompatibleTitle": "{type} అనుకూలతను సవరించండి",
+ "compatibleBaseUrlHint": "మీ {type}-అనుకూల API యొక్క రూట్ URL. అనుకూల ఎండ్పాయింట్ పాత్ల కోసం అధునాతన సెట్టింగ్లను ఉపయోగించండి.",
+ "apiKeyForCheck": "API కీ (తనిఖీ కోసం)",
"testModelIdLabel": "మోడల్ ID (ఐచ్ఛికం)",
"testModelIdPlaceholder": "ఉదా. my-model-id",
"testModelIdHint": "ప్రొవైడర్కు /models ఎండ్పాయింట్ లేకపోతే, బదులుగా /chat/completions ద్వారా ధృవీకరించడానికి మోడల్ IDని నమోదు చేయండి.",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "compatibleProdPlaceholder": "{type} అనుకూలం (ప్రొడ్)",
+ "tokenRefreshed": "టోకెన్ విజయవంతంగా రిఫ్రెష్ చేయబడింది",
+ "tokenRefreshFailed": "టోకెన్ రిఫ్రెష్ విఫలమైంది",
"cursorSessionUnchanged": "సెషన్ ఇప్పటికే ప్రస్తుతమైంది",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "ప్రమాణీకరణను వర్తింపజేయండి",
+ "exportCodexAuthFile": "ప్రమాణీకరణను ఎగుమతి చేయండి",
"applyClaudeAuthLocal": "ప్రమాణాన్ని వర్తింపజేయండి",
"exportClaudeAuthFile": "ఎగుమతి ప్రమాణం",
"importClaudeAuth": "ధృవీకరణను దిగుమతి చేయండి",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} విఫలమైంది",
"codexImportBulkZipExtracting": "జిప్ని సంగ్రహిస్తోంది…",
"codexImportBulkZipError": "జిప్ని సంగ్రహించడంలో విఫలమైంది",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "అధునాతన సెట్టింగ్లు",
+ "chatPathLabel": "చాట్ ఎండ్పాయింట్ పాత్",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "ప్రామాణికం కాని APIలు గల ప్రొవైడర్ల కోసం అనుకూల చాట్ పాత్ (ఉదా. /v4/chat/completions)",
+ "modelsPathLabel": "మోడళ్ల ఎండ్పాయింట్ పాత్",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "ధృవీకరణ కోసం అనుకూల మోడళ్ల పాత్ (ఉదా. /v4/models)",
"clientIdentityLabel": "క్లయింట్ గుర్తింపు",
"clientIdentityHint": "ఐచ్ఛికం. క్లయింట్ ఫింగర్ప్రింట్ హెడర్లను (ఉదా. User-Agent) జోడిస్తుంది, ఇది ఆశించే అనుకూల గేట్వేల కోసం తెలిసిన CLIకి సరిపోలుతుంది.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "నిష్క్రియం చేయబడింది (మాన్యువల్)",
+ "statusBanned": "నిషేధించబడింది / శాండ్బాక్స్ ఉల్లంఘన",
+ "statusCreditsExhausted": "తగినంత బ్యాలెన్స్ లేదు / కోటా అయిపోయింది",
+ "showEmails": "అన్ని ఇమెయిల్లను చూపించండి",
+ "hideEmails": "అన్ని ఇమెయిల్లను దాచండి",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "మరొక API కీని జోడించండి లేదా అనేక కీలను పేస్ట్ చేయండి",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "అగ్రిగేటర్లు గేట్వేలు",
"enterpriseCloud": "ఎంటర్ప్రైజ్ & క్లౌడ్",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "API ఫార్మాట్ లేబుల్",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "API ప్రాంతం చైనా",
+ "apiRegionHint": "API ప్రాంత సూచన",
+ "apiRegionInternational": "API ప్రాంతం అంతర్జాతీయం",
+ "apiRegionLabel": "API ప్రాంత లేబుల్",
+ "apikey": "API కీ",
+ "audio": "ఆడియో",
+ "audioProvidersHeading": "ఆడియో ప్రొవైడర్ల శీర్షిక",
"cloudAgentProviders": "క్లౌడ్ ఏజెంట్ ప్రొవైడర్లు",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "ఆడియో సంక్షిప్త లేబుల్",
+ "azureOpenAiBaseUrlHint": "Azure Open AI బేస్ URL సూచన",
+ "bailianBaseUrlHint": "Bailian బేస్ URL సూచన",
+ "claudeWebCookieHint": "claude.ai తెరవండి → DevTools → Application → Cookies → claude.aiకు వెళ్లి, 'sessionKey' విలువను కాపీ చేయండి. Cloudflare కోసం cf_clearance, __cf_bm, _cfuvid కూడా అవసరం.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web కుకీ సూచన",
+ "blackboxWebCookiePlaceholder": "Blackbox Web కుకీ ప్లేస్హోల్డర్",
"t3ChatWebCookieHint": "t3.chat → DevTools → అప్లికేషన్ → స్థానిక నిల్వ → https://t3.chat తెరవండి, 'convex-session-id'ని కాపీ చేయండి. తర్వాత DevTools → నెట్వర్క్ని తెరవండి, ఏదైనా చాట్ అభ్యర్థన నుండి పూర్తి కుకీ హెడర్ను కాపీ చేయండి. దిగువ ఫీల్డ్లలో రెండు విలువలను అతికించండి.",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web కుకీ సూచన",
"blockClaudeExtraUsageDescription": "సక్రియమైనప్పుడు, OmniRoute ఈ Claude కనెక్షన్ను అందుబాటులో లేనట్లుగా గుర్తిస్తుంది, ఉపయోగం API క్యూలో ఉన్న అదనపు ఉపయోగాన్ని నివేదించిన వెంటనే, కాబట్టి ఫాల్బ్యాక్ మరో కనెక్షన్కు మారుతుంది, పేమెంట్-అన్-యూ-గో అదనపు బిల్లింగ్ కొనసాగించకుండా.",
"blockClaudeExtraUsageLabel": "అతిరిక్త క్లాడ్ వినియోగాన్ని అడ్డుకోండి",
"disableCoolingDescription": "తాత్కాలిక కూల్డౌన్ను దాటవేయండి, తద్వారా రికవర్ చేయగల ఎర్రర్ల తర్వాత కూడా ఈ కనెక్షన్ అర్హత కలిగి ఉంటుంది (banned/expired వంటి టెర్మినల్ స్థితులు ఇప్పటికీ వర్తిస్తాయి).",
"disableCoolingLabel": "ఈ కనెక్షన్ కోసం కూల్డౌన్ను నిలిపివేయండి",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 కీ జోడించబడింది} other {# కీలు జోడించబడ్డాయి}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 నకలు దాటవేయబడింది} other {# నకళ్లు దాటవేయబడ్డాయి}}",
+ "bulkPasteHint": "ఒక్కో పంక్తిలో ఒక API కీని పేస్ట్ చేయండి. ఖాళీ పంక్తులు విస్మరించబడతాయి మరియు నకలు కీలు దాటవేయబడతాయి.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "దాచిన Claude థింకింగ్ స్ట్రీమ్లు అవసరమయ్యే CC Compatible అప్స్ట్రీమ్ల కోసం redact-thinking బీటా హెడర్ను జోడిస్తుంది.",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking బీటాను ప్రారంభించండి",
+ "ccCompatibleSummarizeThinkingDescription": "మద్దతు ఉన్న Claude మోడల్లు కనిపించే థింకింగ్ డెల్టాలను స్ట్రీమ్ చేసేలా CC Compatible థింకింగ్ అభ్యర్థనలకు `display: \"summarized\"`ను జోడిస్తుంది.",
+ "ccCompatibleSummarizeThinkingLabel": "సంగ్రహించిన థింకింగ్ ప్రదర్శనను ప్రారంభించండి",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "అందుబాటులో ఉన్నప్పుడు Codex అభ్యర్థనల కోసం ప్రాధాన్యత సేవా స్థాయిని ఉపయోగించండి.",
+ "codexFastServiceTierLabel": "Codex వేగవంతమైన సేవా స్థాయి",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "Compatible అప్స్ట్రీమ్ హెడర్ పేరు ప్లేస్హోల్డర్",
+ "compatUpstreamHeaderValuePlaceholder": "Compatible అప్స్ట్రీమ్ హెడర్ విలువ ప్లేస్హోల్డర్",
+ "compatible": "అనుకూలమైనది",
+ "configuredCount": "కాన్ఫిగర్ చేసిన సంఖ్య",
+ "consoleApiKeyOracleHint": "కన్సోల్ API కీ Oracle సూచన",
+ "consoleApiKeyOracleLabel": "కన్సోల్ API కీ Oracle లేబుల్",
+ "consoleApiKeyOraclePlaceholder": "కన్సోల్ API కీ Oracle ప్లేస్హోల్డర్",
+ "newApiUserIdLabel": "New-API వినియోగదారు ID",
+ "newApiUserIdPlaceholder": "ఉదా. 12345",
+ "newApiUserIdHint": "కోటా బ్యాలెన్స్ను పొందడానికి కన్సోల్ API కీతో కలిపి ఉపయోగించే AgentRouter New-Api-User హెడర్ విలువ.",
"newApiAggregatorToggleLabel": "అగ్రిగేటర్ గేట్వే",
"newApiAggregatorToggleHint": "New-API / One-API / Sub2API సమీకర్త నోడ్స్ కోసం బ్యాలెన్స్ గుర్తింపు ప్రారంభించండి. డాష్బోర్డ్ బ్యాలెన్స్ బ్యాడ్జ్ను చూపిస్తుంది మరియు క్వోటా-ప్రీఫ్లైట్ రూటింగ్ ఖర్చైన ఖాతాలను దాటిస్తుంది.",
"newApiAggregatorConsoleApiKeyHint": "అగ్రిగేటర్ యొక్క /api/user/self ఎండ్పాయింట్ కోసం సిస్టమ్ యాక్సెస్ టోకెన్. రౌటింగ్ API కీ కాదు.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "New-API / One-API / Sub2API సమ్మేళనానికి అనుకూలమైన నోడ్స్ కోసం బ్యాలెన్స్ గుర్తింపు ప్రారంభించండి",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "కస్టమ్ యూజర్ ఏజెంట్ సూచన",
+ "customUserAgentLabel": "కస్టమ్ యూజర్ ఏజెంట్ లేబుల్",
+ "databricksBaseUrlHint": "Databricks బేస్ URL సూచన",
+ "defaultThinkingStrengthHint": "అభ్యర్థనలో రీజనింగ్ ప్రయత్న స్థాయి పేర్కొననప్పుడు ఉపయోగించబడుతుంది.",
+ "defaultThinkingStrengthLabel": "డిఫాల్ట్ ఆలోచనా సామర్థ్యం",
+ "deleteAllExtraApiKeys": "అన్నింటినీ తొలగించు",
+ "excludedModelsHint": "మినహాయించిన మోడళ్ల సూచన",
+ "excludedModelsLabel": "మినహాయించిన మోడళ్ల లేబుల్",
+ "excludedModelsPlaceholder": "మినహాయించిన మోడళ్ల ప్లేస్హోల్డర్",
+ "expirationBannerExpired": "గడువు బ్యానర్ గడువు ముగిసింది",
+ "expirationBannerExpiredDesc": "గడువు బ్యానర్ గడువు ముగిసిన వివరణ",
+ "expirationBannerExpiringSoon": "గడువు బ్యానర్ త్వరలో ముగియనుంది",
+ "expirationBannerExpiringSoonDesc": "గడువు బ్యానర్ త్వరలో ముగియనున్న వివరణ",
+ "extraApiKeyMasked": "కీ {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "అదనపు API కీల సూచన",
+ "extraApiKeysLabel": "అదనపు API కీల లేబుల్",
+ "apiKeyHealthLabel": "API కీ స్థితి",
+ "apiKeyStatusActive": "సక్రియం",
+ "apiKeyStatusWarning": "హెచ్చరిక ({count} వైఫల్యాలు)",
+ "apiKeyStatusInvalid": "చెల్లదు",
+ "primaryKey": "ప్రాథమిక కీ",
+ "apiKeyInvalidAlert": "కనెక్షన్లలో ప్రామాణీకరణ వైఫల్యాల కారణంగా {count} API కీ(లు) చెల్లనివిగా గుర్తించబడ్డాయి: {connections}. రొటేషన్లో అవి దాటవేయబడతాయి. సమీక్షించడానికి క్లిక్ చేయండి.",
+ "apiKeyInvalidAlertTitle": "API కీ స్థితి హెచ్చరిక",
+ "apiKeyWarningAlert": "కనెక్షన్లలో అధిక వైఫల్య రేటు కారణంగా {count} API కీ(లు) హెచ్చరిక స్థితిలో ఉన్నాయి: {connections}. రొటేషన్ సమస్యలను నివారించడానికి సమీక్షించండి.",
+ "apiKeyWarningAlertTitle": "API కీ హెచ్చరిక",
+ "googlePseInfo": "Google Pse సమాచారం",
"antigravityProjectIdHint": "యాంటీగ్రావిటీ క్లౌడ్ కోడ్ అభ్యర్థనల కోసం ఐచ్ఛిక ఓవర్రైడ్. Google OAuth సమయంలో కనుగొనబడిన ప్రాజెక్ట్ను ఉపయోగించడానికి ఖాళీగా ఉంచండి.",
"antigravityClientProfileLabel": "క్లయింట్ ప్రొఫైల్",
"antigravityClientProfileHint": "APIకి OmniRoute ఏ Antigravity క్లయింట్ గుర్తింపును ప్రదర్శించాలో ఎంచుకోండి.",
@@ -5861,47 +5868,47 @@
"tierFast": "ఫాస్ట్",
"antigravityProjectIdLabel": "Google క్లౌడ్ ప్రాజెక్ట్ ID",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok వెబ్ కుకీ ప్లేస్హోల్డర్",
+ "herokuBaseUrlHint": "Heroku బేస్ URL సూచన",
+ "hideEmail": "ఇమెయిల్ను దాచు",
+ "imageProviders": "చిత్ర ప్రొవైడర్లు",
"videoProviders": "వీడియో జనరేషన్",
"embeddingRerankProviders": "ఎంబెడ్డింగ్లు & రీర్యాంక్",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "చిత్రాల సంక్షిప్త లేబుల్",
+ "llmProviders": "LLM ప్రొవైడర్లు",
+ "localProviderApiKeyOptionalHint": "స్థానిక ప్రొవైడర్ API కీ ఐచ్ఛిక సూచన",
+ "localProviderBaseUrlHint": "స్థానిక ప్రొవైడర్ బేస్ URL సూచన",
+ "localProviders": "స్థానిక ప్రొవైడర్లు",
+ "maxConcurrentWholeNumberError": "గరిష్ఠ సమాంతర విలువ పూర్ణ సంఖ్యగా ఉండాలి",
"m365TierLabel": "Copilot శ్రేణి",
"m365TierHint": "ఈ కనెక్షన్ ఏ Microsoft 365 Copilot సర్ఫేస్ను ఉపయోగిస్తుందో ఎంచుకోండి. Individual అనేది డిఫాల్ట్ వినియోగదారు BizChat; Education మరియు Enterprise (work) వాటి టెనెంట్ సర్ఫేస్లను ఎంచుకుంటాయి.",
"m365TierIndividualOption": "Individual (డిఫాల్ట్)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "విద్య",
+ "m365TierEnterpriseOption": "ఎంటర్ప్రైజ్ / పని",
"tierOverrideLabel": "శ్రేణి ఓవర్రైడ్",
"tierOverrideAuto": "ఆటో (రూటింగ్ నిర్ణయిస్తుంది)",
"tierOverrideFree": "ఉచితం",
"tierOverrideCheap": "చౌకైనది",
"tierOverridePremium": "ప్రీమియం",
"tierOverrideHelpText": "మోడల్ ధరల నుండి OmniRoute దానిని అంచనా వేయడానికి బదులుగా, ఈ ప్రొవైడర్ను రూటింగ్ శ్రేణికి పిన్ చేయండి.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark వెబ్ కుకీ సూచన",
+ "museSparkWebCookiePlaceholder": "Muse Spark వెబ్ కుకీ ప్లేస్హోల్డర్",
+ "oauth": "OAuth",
+ "openCliTools": "CLI సాధనాలను తెరవండి",
+ "openSettings": "సెట్టింగ్లను తెరవండి",
+ "openaiResponsesStoreDescription": "అనుకూల Responses API అభ్యర్థనలు నిల్వ చేసిన ప్రతిస్పందన స్థితిని సంరక్షించడానికి అనుమతించండి.",
+ "openaiResponsesStoreLabel": "OpenAI Responses నిల్వ",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search భాగస్వామ్య కీ సమాచారం",
+ "perplexityWebCookieHint": "Perplexity Web కుకీ సూచన",
+ "perplexityWebCookiePlaceholder": "Perplexity Web కుకీ ప్లేస్హోల్డర్",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "రేట్ పరిమితి ఓవర్రైడ్లు",
"rateLimitOverridesMaxConcurrentHint": "ఈ కనెక్షన్ కోసం గరిష్ట ఏకకాల అభ్యర్థనల ఓవర్రైడ్. ఖాతా-స్థాయి పరిమితిని ఓవర్రైడ్ చేస్తుంది.",
"rateLimitOverridesMaxConcurrentLabel": "గరిష్ట ఏకకాల అభ్యర్థనలు (రేట్ పరిమితి)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "రేట్-లిమిట్ స్లాట్ కోసం ఒక అభ్యర్థన విఫలమయ్యే ముందు వేచి ఉండగల గరిష్ఠ సమయం (ms). ఇది ఈ కనెక్షన్కు మాత్రమే గ్లోబల్ Resilience సెట్టింగ్ను భర్తీ చేస్తుంది.",
+ "rateLimitOverridesMaxWaitMsLabel": "గరిష్ఠ క్యూ నిరీక్షణ (ms)",
"rateLimitOverridesMinTimeHint": "అభ్యర్థనల మధ్య కనీస సమయం (ms). డిఫాల్ట్ రేట్ లిమిటర్ ఆలస్యాన్ని ఓవర్రైడ్ చేస్తుంది.",
"rateLimitOverridesMinTimeLabel": "కనీస విరామం (ms)",
"rateLimitOverridesRpdHint": "ఈ కనెక్షన్ కోసం రోజుకు గరిష్ట అభ్యర్థనలు. ప్రొవైడర్ డిఫాల్ట్ను భర్తీ చేస్తుంది.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (టోకెన్లు/రోజు)",
"rateLimitOverridesTpmHint": "ఈ కనెక్షన్ కోసం నిమిషానికి గరిష్ట టోకెన్లు. ప్రొవైడర్ డిఫాల్ట్ను ఓవర్రైడ్ చేస్తుంది.",
"rateLimitOverridesTpmLabel": "TPM (టోకెన్లు/నిమిషం)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
- "searchProviders": "Search Providers",
+ "refreshOauthTokenTitle": "OAuth టోకెన్ను రిఫ్రెష్ చేయండి",
+ "regionHint": "ప్రాంత సూచన",
+ "regionLabel": "ప్రాంత లేబుల్",
+ "removeThisKey": "ఈ కీని తొలగించండి",
+ "routingTagsHint": "రూటింగ్ ట్యాగ్ల సూచన",
+ "routingTagsLabel": "రూటింగ్ ట్యాగ్ల లేబుల్",
+ "routingTagsPlaceholder": "రూటింగ్ ట్యాగ్ల ప్లేస్హోల్డర్",
+ "search": "శోధన",
+ "searchEngineIdHint": "శోధన ఇంజిన్ ID సూచన",
+ "searchEngineIdLabel": "శోధన ఇంజిన్ ID లేబుల్",
+ "searchEngineIdRequired": "శోధన ఇంజిన్ ID అవసరం",
+ "searchProvider": "శోధన ప్రొవైడర్",
+ "searchProviderDesc": "శోధన ప్రొవైడర్ వివరణ",
+ "searchProviders": "శోధన ప్రొవైడర్లు",
"searchByModel": "మోడల్ ద్వారా శోధించండి…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "శోధన ప్రొవైడర్ల శీర్షిక",
+ "searxngBaseUrlHint": "Searxng బేస్ URL సూచన",
+ "searxngInfo": "Searxng సమాచారం",
+ "sessionCookieLabel": "సెషన్ కుకీ లేబుల్",
+ "showEmail": "ఇమెయిల్ను చూపించండి",
+ "snowflakeBaseUrlHint": "Snowflake బేస్ URL సూచన",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "ట్యాగ్ సమూహ సూచన",
+ "tagGroupLabel": "ట్యాగ్ సమూహ లేబుల్",
+ "tagGroupPlaceholder": "ట్యాగ్ సమూహ ప్లేస్హోల్డర్",
+ "testModel": "మోడల్ను పరీక్షించండి",
+ "testingModel": "మోడల్ను పరీక్షిస్తోంది",
"modelTestQuotaTooltip": "కోటా ముగిసింది — రేపు పునరుద్ధరించబడుతుంది లేదా టాప్-అప్ అవసరం",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "టోకెన్ గడువు ముగిసిన బ్యాడ్జ్",
+ "tokenExpiredTitle": "టోకెన్ గడువు ముగిసింది",
+ "tokenExpiresSoonTitle": "టోకెన్ గడువు త్వరలో ముగుస్తుంది",
+ "tokenShort": "సంక్షిప్త టోకెన్",
+ "totalKeysRotating": "{count, plural, one {1 కీ రొటేట్ అవుతోంది} other {# కీలు రొటేట్ అవుతున్నాయి}}",
+ "unhideModel": "మోడల్ను మళ్లీ చూపించు",
+ "upstreamProxyProviders": "అప్స్ట్రీమ్ ప్రాక్సీ ప్రొవైడర్లు",
"validationModelIdHint": "API కీని ధృవీకరించడానికి ఉపయోగించే మోడల్. ప్రొవైడర్ యొక్క మొదటి అందుబాటులో ఉన్న మోడల్ను ఉపయోగించడానికి ఖాళీగా ఉంచండి.",
"validationModelIdLabel": "ధృవీకరణ మోడల్",
"validationModelIdPlaceholder": "ఉదా. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "మీ Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) లేదా OAuth access_tokenను అతికించండి",
+ "webCookieProviders": "వెబ్ కుకీ ప్రొవైడర్లు",
+ "weeklyShort": "వారపు స్వల్ప పరిమితి",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo బేస్ URL సూచన",
"globalCodexServiceMode": "గ్లోబల్ Codex సర్వీస్ మోడ్",
"connect": "కనెక్ట్ చేయండి",
"manualApiKey": "మాన్యువల్ API కీ",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "OS కీచైన్లో Zed IDE నిల్వ చేసిన AI ప్రొవైడర్ ఆధారాలను (OpenAI, Anthropic, Google, Mistral, xAI) కనుగొని, వాటిని కనెక్షన్లుగా దిగుమతి చేయండి. ఈ మెషీన్లో Zed IDE ఇన్స్టాల్ చేయబడి ఉండాలి.",
"zedImportButton": "Zed నుండి దిగుమతి చేసుకోండి",
"zedImportFailed": "Zed దిగుమతి విఫలమైంది",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed దిగుమతి సూచన",
+ "zedImportNetworkError": "Zed దిగుమతి నెట్వర్క్ లోపం",
+ "zedImportNone": "Zed దిగుమతులు ఏవీ లేవు",
"zedImportSuccess": "{providers} ప్రొవైడర్(లు) కోసం Zed నుండి {credentials} క్రెడెన్షియల్(లు) దిగుమతి చేసుకున్నారు",
"zedImporting": "ఆమోదిస్తున్న…",
"zedNoCredentials": "కీచైన్లో Zed ఆధారాలు ఏవీ కనుగొనబడలేదు",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 తో సహా 40+ మోడల్ల కోసం డిస్కౌంట్ పొందిన API ప్రాక్సీ. https://freeaiapikey.com/dashboard వద్ద మీ API కీని పొందండి. బేస్ URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "https://freemodel.dev వద్ద $300 ఉచిత API క్రెడిట్లను పొందండి — చెల్లింపు సమాచారం అవసరం లేదు. OpenAI-అనుకూల ఎండ్పాయింట్. GPT-5.4 మరియు GPT-5.5 మోడల్లు అందుబాటులో ఉన్నాయి.",
"friendliai": "సర్వర్లెస్ ఇన్ఫరెన్స్ కోసం ఉచిత టైర్ — క్రెడిట్ కార్డ్ అవసరం లేదు",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio ద్వారా ఉచిత స్థాయి; ఒక్కో మోడల్ కోటాలు ఇకపై ప్రచురించబడవు (AI Studioలోని కోటా పేజీని తనిఖీ చేయండి) — క్రెడిట్ కార్డ్ అవసరం లేదు.",
"gigachat": "API కీతో GigaChat (Sber) ని కనెక్ట్ చేయండి.",
"gitlab": "పబ్లిక్ Code Suggestions API కోసం GitLab వ్యక్తిగత యాక్సెస్ టోకెన్. gitlab.com ని ఉపయోగించనప్పుడు సెల్ఫ్-హోస్టెడ్ బేస్ URLని కాన్ఫిగర్ చేయండి.",
"gitlawb-gmi": "Gitlawb Opengateway డ్యాష్బోర్డ్ నుండి మీ API కీని పొందండి.",
@@ -6180,7 +6187,7 @@
"glm-cn": "API కీతో GLM Coding (China) ని కనెక్ట్ చేయండి.",
"glmt": "ఎక్కువ టోకెన్ బడ్జెట్, థింకింగ్ ఎనేబుల్ చేయబడిన మరియు ఎక్కువ టైమ్అవుట్తో కూడిన ప్రీసెట్ GLM ప్రొఫైల్.",
"getgoapi": "API కీతో GoAPI ని కనెక్ట్ చేయండి.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "ఉచిత ప్లాన్: ఒక్కో మోడల్కు పరిమితులు (ఒక్కో చాట్ మోడల్కు రోజుకు 200K టోకెన్లు; RPM/RPD కోసం console.groq.com/docs/rate-limits చూడండి) — ఖాతాలో చెల్లింపు పద్ధతి లేదు.",
"haiper": "haiper.ai/haiper-api వద్ద API కీని పొందండి",
"heroku": "API కీతో Heroku AI ని కనెక్ట్ చేయండి.",
"hcnsec": "api.hcnsec.cn వద్ద API కీని పొందండి",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai వద్ద API కీని సృష్టించండి, ఆపై దానిని ఇక్కడ Bearer టోకెన్గా పేస్ట్ చేయండి. https://router.requesty.ai/v1 వద్ద లైవ్ /v1/models కేటలాగ్తో OpenAI-అనుకూల ఎండ్పాయింట్ ఉంది.",
"runwayml": "Runway వీడియో జనరేషన్ టాస్క్-ఆధారితమైనది. OmniRoute అనేది టెక్స్ట్-టు-వీడియో లేదా ఇమేజ్-టు-వీడియో జాబ్లను సమర్పిస్తుంది, /v1/tasks/[id] ని పోల్ చేస్తుంది మరియు పూర్తయిన వీడియో అవుట్పుట్లను తిరిగి OpenAI-వంటి /v1/videos/generations ప్రతిస్పందనగా సాధారణీకరిస్తుంది.",
"sambanova": "సైన్అప్ చేసినప్పుడు $5 ఉచిత క్రెడిట్లు (30 రోజుల చెల్లుబాటు), క్రెడిట్ కార్డ్ అవసరం లేదు",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.ccలో API కీని సృష్టించి, దాన్ని ఇక్కడ Bearer టోకెన్గా అతికించండి. OpenAI-అనుకూల బేస్ URL: https://seekai.cc/v1.",
"sap": "మోడల్ డిస్కవరీ AI_API_URL లో /v2/lm/scenarios/foundation-models/models ని ఉపయోగిస్తుంది. చాట్ అభ్యర్థనలు deploymentUrl/chat/completions ని ఉపయోగిస్తాయి మరియు AI-Resource-Group అవసరం.",
"sarvam": "Sarvam AI OpenAI-తో అనుకూలంగా ఉంది /v1. OmniRoute /v1/modelsని ప్రోబ్ చేస్తుంది మరియు చాట్ ట్రాఫిక్ను /v1/chat/completionsకి రూట్ చేస్తుంది. మోడల్స్ ఇండిక్ భాషల కోసం ట్యూన్ చేయబడ్డాయి.",
"scaleway": "కొత్త ఖాతాల కోసం 1M ఉచిత టోకెన్లు — EU/GDPR కంప్లైంట్ (పారిస్), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "ఇప్పటికే ఉన్న OAuth ఫ్లోతో Claude Codeని కనెక్ట్ చేయండి.",
"cline": "ఇప్పటికే ఉన్న OAuth ఫ్లోతో Clineని కనెక్ట్ చేయండి.",
"cursor": "ఇప్పటికే ఉన్న OAuth ఫ్లోతో Cursor IDEని కనెక్ట్ చేయండి.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "cursor.com/dashboard/api నుండి వినియోగదారు API కీ (crsr_...)తో Cursorను కనెక్ట్ చేయండి; IDE సెషన్ అవసరం లేదు.",
"github": "ఇప్పటికే ఉన్న OAuth ఫ్లోతో GitHub Copilotని కనెక్ట్ చేయండి.",
"gitlab-duo": "ai_features + read_user స్కోప్లతో కూడిన OAuth అప్లికేషన్. ఈ OmniRoute ఇన్స్టాన్స్లో GITLAB_DUO_OAUTH_CLIENT_ID మరియు ఐచ్ఛికంగా GITLAB_DUO_OAUTH_CLIENT_SECRETని కాన్ఫిగర్ చేయండి.",
"kilocode": "ఇప్పటికే ఉన్న OAuth ఫ్లోతో Kilo Codeని కనెక్ట్ చేయండి.",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "ప్రొవైడర్ స్వంత డొమైన్ నుండి అవసరమైన ఆధారాలను కాపీ చేయండి. కుక్కీల కోసం, కుకీ హెడర్ విలువను మాత్రమే కాపీ చేసి, కుకీని విస్మరించండి:.",
"webSessionGuideStep3Manual": "మాన్యువల్ మార్గం: బ్రౌజర్ డెవలపర్ టూల్స్ను తెరవండి (F12 → నెట్వర్క్), పేజీని రిఫ్రెష్ చేయండి, ఒక ప్రామాణిక అభ్యర్థనను తెరవండి, మరియు అభ్యర్థన హెడ్డర్ల నుండి కుకీ హెడ్డర్ విలువను కాపీ చేయండి — కుకీ: ప్రిఫిక్స్ను మిస్సు చేయండి.",
"webSessionGuideStep4": "దీన్ని ఇక్కడ అతికించండి మరియు కనెక్షన్ని తనిఖీ చేయండి. ఇది పని చేయడం ఆపివేస్తే, మళ్లీ సైన్ ఇన్ చేసి, దాన్ని తాజా విలువతో భర్తీ చేయండి.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har ఫైల్ను దిగుమతి చేయండి",
+ "harImportButtonBusy": "దిగుమతి చేస్తోంది…",
+ "harImportButtonHint": "కనీసం ఒక చాట్ సందేశాన్ని పంపిన తర్వాత DevTools Network ట్యాబ్ నుండి ఎగుమతి చేయండి.",
+ "harImportStatusValid": "దిగుమతి చేయబడింది — సుమారు {minutes}ని. వరకు చెల్లుబాటు అవుతుంది.",
+ "harImportStatusExpiringSoon": "దిగుమతి చేయబడింది — ఇంకా సుమారు {minutes}ని. మాత్రమే చెల్లుబాటు అవుతుంది.",
+ "harImportStatusExpired": "దిగుమతి చేయబడింది, కానీ ఈ టోకెన్ ఇప్పటికే {minutes}ని. క్రితం గడువు ముగిసింది — తాజా HARను ఎగుమతి చేయండి.",
+ "harImportStatusUnknownExpiry": "దిగుమతి చేయబడింది. దాని గడువు ముగింపు సమయాన్ని చదవలేకపోయాం.",
+ "harImportErrorNotJson": "ఆ ఫైల్ చెల్లుబాటు అయ్యే JSON కాదు — అది నిజంగా .har ఎగుమతేనా?",
+ "harImportErrorNoEntries": "ఈ HARలో రికార్డ్ చేసిన నెట్వర్క్ ఎంట్రీలు లేవు.",
+ "harImportErrorNoChathubUrl": "ఈ HARలో Copilot చాట్ కనెక్షన్ కనుగొనబడలేదు. ఎగుమతి చేసే ముందు m365.cloud.microsoftలో కనీసం ఒక చాట్ సందేశాన్ని పంపండి.",
+ "harImportErrorUnparsableUrl": "చాట్ కనెక్షన్ కనుగొనబడింది, కానీ దాని URLను చదవలేకపోయాం.",
+ "harImportErrorMissingFields": "చాట్ కనెక్షన్ కనుగొనబడింది, కానీ అందులో టోకెన్ లేదు.",
+ "harImportErrorReadFailed": "ఆ ఫైల్ను చదవలేకపోయాం.",
+ "harImportErrorUnknown": "ఆ HAR ఫైల్ నుండి ఆధార వివరాలను వెలికితీయలేకపోయాం.",
"webSessionSecurityHint": "దీన్ని పాస్వర్డ్ లాగా పరిగణించండి: ఇది గడువు ముగిసే వరకు లేదా ఉపసంహరించబడే వరకు మీ సైన్ ఇన్ చేసిన వెబ్ ఖాతాను యాక్సెస్ చేయవచ్చు.",
"webNoAuthGuideTitle": "ఆధారాలు అవసరం లేదు",
"webNoAuthGuideBody": "{provider}కి API కీ లేదా కుక్కీ అవసరం లేదు. దాని ఉచిత వెబ్ ఎండ్ పాయింట్ని ఉపయోగించడానికి కనెక్షన్ని సేవ్ చేయండి.",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "కమాండ్ కోడ్ ఆథ్ కాలం ముగిసింది",
"commandCodeConnected": "కమాండ్ కోడ్ కనెక్ట్ అయ్యింది",
"commandCodeConnectionAdded": "కమాండ్ కోడ్ కనెక్షన్ జోడించబడింది",
+ "clearConnectionCooldown": "కూల్డౌన్ను తొలగించండి",
+ "clearConnectionCooldownInProgress": "తొలగిస్తోంది…",
+ "clearConnectionCooldownTitle": "కూల్డౌన్ను ఇప్పుడే తొలగించండి — అప్స్ట్రీమ్లో కోటా ఇప్పటికే రిఫ్రెష్ అయినప్పుడు ఉపయోగించండి",
"commandCodeLinkExpired": "కమాండ్ కోడ్ లింక్ కాలం ముగిసింది",
"commandCodeOpeningStudio": "కమాండ్ కోడ్ స్టూడియోని తెరవడం…",
"commandCodePopupBlocked": "పాప్అప్ అడ్డుకోబడింది. దయచేసి పాప్అప్లను అనుమతించండి మరియు Command Code Connectని మళ్లీ ప్రయత్నించండి.",
"commandCodeStartFailed": "Command Code auth ప్రారంభించడంలో విఫలమైంది",
"connectionDeleted": "కనెక్షన్ తొలగించబడింది",
"connectionFallback": "కనెక్షన్",
+ "connectionCooldownCleared": "కూల్డౌన్ తొలగించబడింది — కనెక్షన్ మళ్లీ రూటింగ్లో చేరింది",
"coolingConnectionsDescription": "ఈ కనెక్షన్లు చివరి అభ్యర్థన తర్వాత చల్లబడుతున్నాయి. టైమర్ అయిపోయే వరకు OmniRoute వాటిని దాటవేస్తుంది — చేతితో ఆపాల్సిన అవసరం లేదు.",
"coolingConnectionsTitle": "ప్రస్తుతం కూలింగ్ ({count})",
+ "failedClearConnectionCooldown": "కూల్డౌన్ను తొలగించడం విఫలమైంది",
"failedDeleteAlias": "అలియాస్ను తొలగించడంలో విఫలమైంది",
"failedDeleteConnection": "కనెక్షన్ తొలగించడంలో విఫలమైంది",
"failedDistributeProxies": "ప్రాక్సీలను పంపిణీ చేయడంలో విఫలమైంది.",
@@ -6466,21 +6478,16 @@
"savedModelEndpointSettings": "సేవ్ చేసిన మోడల్ ఎండ్పాయింట్ సెట్టింగ్స్",
"searchByModelAria": "మోడల్ ద్వారా శోధించండి",
"selectSupportedEndpoint": "కమిషన్ చేయబడిన కనెక్ట్ చేయబడిన ఎండ్పాయింట్లలో కనీసం ఒకటి ఎంచుకోండి",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
- "title": "Settings",
- "general": "General",
- "security": "Security",
- "appearance": "Appearance",
- "routing": "Routing",
- "cache": "Cache",
- "resilience": "Resilience",
+ "title": "సెట్టింగ్లు",
+ "general": "సాధారణం",
+ "security": "భద్రత",
+ "appearance": "రూపురేఖలు",
+ "routing": "రూటింగ్",
+ "cache": "క్యాష్",
+ "resilience": "స్థితిస్థాపకత",
"description": "వివరణ",
"enable": "ప్రారంభించు",
"disable": "నిలిపివేయి",
@@ -6547,25 +6554,25 @@
"routingOpStatusSeparator": " ·",
"resilienceSettingsIntro": "ప్రొవైడర్లు విఫలమైనప్పుడు ఆటోమేటిక్ రీట్రీ, కూల్డౌన్ మరియు ఫాల్బ్యాక్.",
"aiSettingsIntro": "ఆలోచన బడ్జెట్, మోడల్ ప్రవర్తన మరియు కుదింపు కోసం AI-నిర్దిష్ట సెట్టింగ్లు.",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "సిస్టమ్ ప్రాంప్ట్",
+ "thinkingBudget": "ఆలోచనా బడ్జెట్",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP ప్రాక్సీ",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "ప్రాక్సీ విభాగాలు",
+ "requestBodyLimitTitle": "అభ్యర్థన బాడీ పరిమితి",
+ "requestBodyLimitDescription": "అభ్యర్థన బాడీని పార్స్ చేయడానికి ముందు ఆమోదించే గరిష్ఠ API పేలోడ్ పరిమాణం. ప్రత్యేక అప్లోడ్ రూట్లు కనీసం వాటి అంతర్నిర్మిత 100 MB పరిమితిని కొనసాగిస్తాయి.",
+ "requestBodyLimitInputLabel": "MBలో అభ్యర్థన బాడీ పరిమితి",
+ "requestBodyLimitEmptyError": "MBలో పరిమితిని నమోదు చేయండి",
+ "requestBodyLimitWholeNumberError": "పూర్ణ సంఖ్యను ఉపయోగించండి",
+ "requestBodyLimitMinimumError": "కనిష్ఠం {min} MB",
+ "requestBodyLimitMaximumError": "గరిష్ఠం {max} MB",
+ "requestBodyLimitLoadFailed": "అభ్యర్థన పరిమితి సెట్టింగ్లను లోడ్ చేయడం విఫలమైంది",
+ "requestBodyLimitSaveSuccess": "అభ్యర్థన బాడీ పరిమితి సేవ్ చేయబడింది",
+ "requestBodyLimitSaveFailed": "అభ్యర్థన బాడీ పరిమితిని సేవ్ చేయడం విఫలమైంది",
+ "requestBodyLimitSaving": "సేవ్ చేస్తోంది...",
+ "requestBodyLimitSave": "సేవ్ చేయండి",
+ "requestBodyLimitCurrent": "ప్రస్తుతం: {value}",
"cacheConfigLoadFailed": "కాష్ సెట్టింగ్స్ లోడ్ చేయడంలో విఫలమైంది",
"cacheConfigSaveSuccess": "కాష్ సెట్టింగ్స్ సేవ్ చేయబడ్డాయి",
"cacheConfigSaveFailed": "కాష్ సెట్టింగ్స్ సేవ్ చేయడంలో విఫలమైంది",
@@ -6579,69 +6586,69 @@
"modelCatalogCacheTtlSave": "సేవ్",
"modelCatalogCacheTtlCurrent": "ప్రస్తుత: {value} మి.సె.",
"mitmProxy": "MITM ప్రాక్సీ",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
- "comboDefaults": "Combo Defaults",
- "fallbackChains": "Fallback Chains",
- "changePassword": "Change Password",
- "enablePassword": "Enable Password",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "pricing": "ధర నిర్ణయం",
+ "storage": "నిల్వ",
+ "policies": "విధానాలు",
+ "ipFilter": "IP ఫిల్టర్",
+ "comboDefaults": "కాంబో డిఫాల్ట్లు",
+ "fallbackChains": "ఫాల్బ్యాక్ చైన్లు",
+ "changePassword": "పాస్వర్డ్ను మార్చండి",
+ "enablePassword": "పాస్వర్డ్ను ప్రారంభించండి",
+ "darkMode": "డార్క్ మోడ్",
+ "lightMode": "లైట్ మోడ్",
+ "memoryTitle": "మెమరీ",
+ "memoryDesc": "సెషన్ల మధ్య కొనసాగే సంభాషణాత్మక మెమరీ",
+ "memoryEnabled": "మెమరీని ప్రారంభించండి",
+ "memoryEnabledDesc": "ప్రారంభించినప్పుడు, OmniRoute సంబంధిత గత సందర్భాన్ని చేర్చుతుంది.",
"memoryTokenCostWarning": "గమనిక: మెమరీ ఎనేబుల్ చేయబడితే, OmniRoute ప్రతి చాట్ అభ్యర్థనలోకి తిరిగి పొందిన సందర్భం యొక్క {tokens} టోకెన్ల వరకు ఇంజెక్ట్ చేస్తుంది — ఇది టోకెన్ వినియోగాన్ని మరియు ఖర్చును పెంచుతుంది. నిర్దిష్ట అభ్యర్థన కోసం ఇంజెక్షన్ను దాటవేయడానికి, \"x-omniroute-no-memory: true\" హెడర్ను పంపండి.",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
- "justNow": "Just now",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
- "providers": "Providers",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
- "systemTheme": "System Theme",
- "debugToggle": "Enable Debug Mode",
+ "maxTokens": "గరిష్ఠ టోకెన్లు",
+ "retentionDays": "నిలుపుదల",
+ "recent": "ఇటీవలి",
+ "recentDesc": "కాలక్రమ విండో",
+ "semantic": "సెమాంటిక్",
+ "semanticDesc": "వెక్టర్ శోధన",
+ "hybrid": "హైబ్రిడ్",
+ "hybridDesc": "ఇటీవలి + అర్థసంబంధిత",
+ "skillsTitle": "నైపుణ్యాలు",
+ "skillsDesc": "మోడల్ల కోసం సాధనాలు",
+ "skillsEnabled": "నైపుణ్యాలను ప్రారంభించండి",
+ "skillsEnabledDesc": "ఏజెంట్లు ఫంక్షన్లను అమలు చేయడానికి అనుమతిస్తుంది.",
+ "skillsComingSoon": "నైపుణ్యాల మార్కెట్ప్లేస్ త్వరలో అందుబాటులోకి వస్తుంది.",
+ "memorySkillsTitle": "మెమరీ & నైపుణ్యాలు",
+ "memorySkillsDesc": "నిరంతర సందర్భం & సామర్థ్యాలు",
+ "modelsDevTitle": "మోడల్ డేటాబేస్",
+ "modelsDevDesc": "models.dev నుండి ధరలు, సామర్థ్యాలు & స్పెసిఫికేషన్లను స్వయంచాలకంగా సమకాలీకరించండి",
+ "modelsDevEnabled": "models.dev సమకాలీకరణను ప్రారంభించండి",
+ "modelsDevEnabledDesc": "ఓపెన్-సోర్స్ models.dev డేటాబేస్ నుండి మోడల్ ధరలు, సామర్థ్యాలు మరియు స్పెసిఫికేషన్లను పొందండి",
+ "modelsDevInterval": "సమకాలీకరణ విరామం",
+ "syncNow": "ఇప్పుడే సమకాలీకరించండి",
+ "syncing": "సమకాలీకరిస్తోంది...",
+ "lastSync": "చివరి సమకాలీకరణ",
+ "never": "ఎప్పుడూ లేదు",
+ "justNow": "ఇప్పుడే",
+ "modelsDevStats": "సమకాలీకరణ గణాంకాలు",
+ "modelsDevStatsDesc": "ప్రస్తుత models.dev డేటా కవరేజ్",
+ "providers": "ప్రొవైడర్లు",
+ "modelsWithPricing": "ధరలు కలిగిన మోడల్లు",
+ "capabilities": "సామర్థ్యాలు",
+ "lastSyncCount": "చివరి సమకాలీకరణ సంఖ్య",
+ "lastSyncFull": "చివరి పూర్తి సమకాలీకరణ",
+ "modelsDevInfo": "ఇది ఎలా పనిచేస్తుంది",
+ "modelsDevInfoDesc": "models.dev అనేది SST/OpenCode బృందం నిర్వహించే AI మోడల్ స్పెసిఫికేషన్ల ఓపెన్-సోర్స్ డేటాబేస్. ఇది 100+ ప్రొవైడర్లలోని 4,000+ మోడల్లకు ధరలు, సామర్థ్యాలు, సందర్భ పరిమితులు మరియు మోడాలిటీలను అందిస్తుంది.",
+ "modelsDevInfoResolution": "ధర నిర్ణయ ప్రాధాన్యత క్రమం (అత్యధిక ప్రాధాన్యత మొదట):",
+ "modelsDevInfoOrder": "వినియోగదారు ఓవర్రైడ్ → models.dev → LiteLLM → హార్డ్కోడ్ చేసిన డిఫాల్ట్",
+ "systemTheme": "సిస్టమ్ థీమ్",
+ "debugToggle": "డీబగ్ మోడ్ను ప్రారంభించండి",
"logToolSourcesToggle": "టూల్ మూలాలను లాగ్ చేయండి",
"logToolSourcesDescription": "టూల్ కౌంట్ మరియు MCP/హోస్ట్ చేయబడిన/క్లయింట్ మూలాల విభజనను సంగ్రహిస్తూ ప్రతి అభ్యర్థనకు ఒక విశ్లేషణ లాగ్ లైన్ను జారీ చేయండి.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "సమాచారాన్ని హోమ్ పేజీకి పిన్ చేయండి",
"homePinnedSectionsDesc": "హోమ్ పేజీ ఎగువన ఏ విభాగాలను పిన్ చేయాలో ఎంచుకోండి.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "ప్రొవైడర్ కోటా పరిమితులు",
+ "homeProviderQuotaLimitsDesc": "ప్రొవైడర్ కోటా స్థితి కంటైనర్ను (అన్నింటినీ రిఫ్రెష్ చేయి బటన్తో) హోమ్ పేజీ ఎగువన పిన్ చేయండి.",
+ "homeQuickStart": "త్వరిత ప్రారంభం",
+ "homeQuickStartDesc": "హోమ్ పేజీలో త్వరిత ప్రారంభ ప్యానెల్ను చూపండి.",
+ "homeProviderTopology": "ప్రొవైడర్ టోపాలజీ",
+ "homeProviderTopologyDesc": "హోమ్ పేజీలో ప్రొవైడర్ టోపాలజీని చూపండి.",
"accountEmailVisibility": "ఖాతా ఇమెయిల్ దృశ్యమానత",
"accountEmailVisibilityDesc": "ప్రొవైడర్లు, కాంబోలు, లాగ్లు, కోటా మరియు ప్లేగ్రౌండ్ స్క్రీన్లలో పూర్తి ఖాతా ఇమెయిల్లను చూపించండి. డిఫాల్ట్గా వాటిని దాచడానికి దీనిని ఆఫ్ చేయండి.",
"comboConfigMode": "కాంబో కాన్ఫిగరేషన్ మోడ్",
@@ -6657,89 +6664,89 @@
"providerQuotaAutoRefreshInterval": "రిఫ్రెష్ విరామం",
"providerQuotaAutoRefreshIntervalDesc": "కోటా వీక్షణ ఎంత తరచుగా రిఫ్రెష్ కావాలి, సెకన్లలో.",
"seconds": "సెకన్లు",
- "sidebarVisibilityToggle": "Show Sidebar Items",
- "enableCache": "Enable Cache",
- "cacheTTL": "Cache TTL",
- "maxCacheSize": "Max Cache Size",
- "clearCache": "Clear Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
- "cacheMisses": "Cache Misses",
- "hitRate": "Hit Rate",
- "cacheEntries": "Cache Entries",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "sidebarVisibilityToggle": "సైడ్బార్ అంశాలను చూపండి",
+ "enableCache": "క్యాష్ను ప్రారంభించండి",
+ "cacheTTL": "క్యాష్ TTL",
+ "maxCacheSize": "గరిష్ఠ క్యాష్ పరిమాణం",
+ "clearCache": "క్యాష్ను క్లియర్ చేయండి",
+ "cacheCleared": "క్యాష్ విజయవంతంగా క్లియర్ చేయబడింది",
+ "clearCacheFailed": "క్యాష్ను క్లియర్ చేయడం విఫలమైంది",
+ "cacheHits": "క్యాష్ హిట్లు",
+ "cacheMisses": "క్యాష్ మిస్లు",
+ "hitRate": "హిట్ రేటు",
+ "cacheEntries": "క్యాష్ ఎంట్రీలు",
+ "cacheSettings": "క్యాష్ సెట్టింగ్లు",
+ "semanticCache": "సెమాంటిక్ క్యాష్",
+ "maxEntries": "గరిష్ఠ ఎంట్రీలు",
+ "ttlMinutes": "TTL (నిమిషాలు)",
+ "promptCache": "ప్రాంప్ట్ క్యాష్",
+ "strategy": "వ్యూహం",
+ "preserveClientCache": "క్లయింట్ క్యాష్ను అలాగే ఉంచండి",
+ "enabled": "ప్రారంభించబడింది",
"loading": "Loading...",
- "saving": "Saving...",
- "save": "Save",
- "circuitBreaker": "Circuit Breaker",
- "retryPolicy": "Retry Policy",
- "maxRetries": "Max Retries",
- "retryDelay": "Retry Delay",
- "timeoutMs": "Timeout (ms)",
- "enableSystemPrompt": "Enable System Prompt",
- "systemPromptText": "System Prompt Text",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "saving": "సేవ్ చేస్తోంది...",
+ "save": "సేవ్ చేయండి",
+ "circuitBreaker": "సర్క్యూట్ బ్రేకర్",
+ "retryPolicy": "మళ్లీ ప్రయత్నించే విధానం",
+ "maxRetries": "గరిష్ఠ పునఃప్రయత్నాలు",
+ "retryDelay": "పునఃప్రయత్న ఆలస్యం",
+ "timeoutMs": "సమయ పరిమితి (ms)",
+ "enableSystemPrompt": "సిస్టమ్ ప్రాంప్ట్ను ప్రారంభించండి",
+ "systemPromptText": "సిస్టమ్ ప్రాంప్ట్ టెక్స్ట్",
+ "autoDisableBannedAccounts": "నిషేధించబడిన ఖాతాలను స్వయంచాలకంగా నిలిపివేయండి",
+ "autoDisableDescription": "నిర్దిష్ట తుది నిషేధ సంకేతాలను (ఉదా. HTTP 403 'verify your account') అందించినప్పుడు ప్రొవైడర్ కనెక్షన్లను శాశ్వతంగా నిష్క్రియంగా గుర్తించండి. దీనివల్ల అవి కాంబో రొటేషన్ నుండి తొలగించబడతాయి.",
+ "autoDisableThreshold": "నిషేధ పరిమితి",
+ "autoDisableThresholdDesc": "శాశ్వత నిష్క్రియీకరణకు ముందు అవసరమైన వరుస నిషేధ సంకేతాల సంఖ్య.",
+ "autoDisableBannedScope": "స్వయంచాలక నిలిపివేతను వీటికి వర్తింపజేయండి",
+ "autoDisableBannedScopeDesc": "నిషేధం తర్వాత OmniRoute మళ్లీ ప్రయత్నిస్తూనే ఉంటే, లాగిన్ సీట్లను (చెల్లింపు సబ్స్క్రిప్షన్లు మరియు ఉచిత ఖాతాలు) అప్స్ట్రీమ్ లాక్ చేయవచ్చు. చెల్లింపు ప్రీపెయిడ్ API కీలకు ఆ ప్రమాదం లేదు — తదుపరి కీని fill-first ఉపయోగించగలిగేలా వాటిని పూల్లో ఉంచండి.",
+ "autoDisableBannedScopeAll": "అన్ని కనెక్షన్లు",
+ "autoDisableBannedScopeAllDesc": "ప్రీపెయిడ్ API కీలతో సహా శాశ్వత నిషేధ సంకేతాన్ని అందించే ప్రతి కనెక్షన్ను నిష్క్రియం చేయండి.",
+ "autoDisableBannedScopeSubscription": "లాగిన్ / సబ్స్క్రిప్షన్ ఖాతాలు మాత్రమే",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth, కుకీ, సెషన్ మరియు వెబ్-లాగిన్ సీట్లను (చెల్లింపు లేదా ఉచితం) నిష్క్రియం చేయండి. రూటింగ్ ప్రత్యామ్నాయానికి మారగలిగేలా ప్రీపెయిడ్ API కీలు సక్రియంగానే ఉంటాయి.",
"customBannedSignals": "నిషేధించబడిన కీలకపదాలు",
"customBannedSignalsDesc": "శాశ్వత ఖాతా నిషేధ గుర్తింపును ప్రేరేపించే అదనపు కీలకపదాలు. అంతర్నిర్మిత కీలకపదాలు ఎల్లప్పుడూ వర్తిస్తాయి.",
"customBannedSignalsPlaceholder": "ఉదా. api key revoked",
"noCustomBannedSignals": "అనుకూల కీలకపదాలు లేవు. అంతర్నిర్మిత కీలకపదాలు మాత్రమే సక్రియంగా ఉన్నాయి.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "స్థితిస్థాపకత నిర్మాణం",
"resilienceStructureDesc": "ఈ పేజీ ప్రవర్తనను మాత్రమే కాన్ఫిగర్ చేస్తుంది. లైవ్ బ్రేకర్ స్థితి ఆరోగ్యం పేజీలో చూపబడింది. కాంబో-నిర్దిష్ట పునఃప్రయత్నం మరియు రౌండ్-రాబిన్ స్లాట్ నియంత్రణ కాంబో సెట్టింగ్లలో ఉంటాయి.",
- "enableThinking": "Enable Thinking",
- "maxThinkingTokens": "Max Thinking Tokens",
- "enableProxy": "Enable Proxy",
+ "enableThinking": "థింకింగ్ను ప్రారంభించండి",
+ "maxThinkingTokens": "గరిష్ఠ థింకింగ్ టోకెన్లు",
+ "enableProxy": "ప్రాక్సీని ప్రారంభించండి",
"perKeyProxyEnabled": "కీ-వారీగా ప్రాక్సీ కేటాయింపును ఎనేబుల్ చేయండి",
"perKeyProxyEnabledDesc": "ఎనేబుల్ చేసినప్పుడు, ప్రతి ప్రొవైడర్ కనెక్షన్ దాని స్వంత ప్రాక్సీ కేటాయింపును ఉపయోగించవచ్చు",
- "proxyUrl": "Proxy URL",
- "pricingRates": "Pricing Rates Format",
- "currentPricing": "Current Pricing Overview",
- "loadingPricing": "Loading pricing data...",
- "noPricing": "No pricing data available",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
+ "proxyUrl": "ప్రాక్సీ URL",
+ "pricingRates": "ధరల రేట్ల ఫార్మాట్",
+ "currentPricing": "ప్రస్తుత ధరల అవలోకనం",
+ "loadingPricing": "ధరల డేటా లోడ్ అవుతోంది...",
+ "noPricing": "ధరల డేటా అందుబాటులో లేదు",
+ "input": "ఇన్పుట్",
+ "output": "అవుట్పుట్",
+ "cached": "క్యాష్ చేయబడినవి",
"reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "customPricing": "Custom Pricing",
- "databaseSize": "Database Size",
- "backupDb": "Backup Database",
- "restoreDb": "Restore Database",
- "exportData": "Export Data",
- "importData": "Import Data",
- "clearData": "Clear All Data",
- "clearDataConfirm": "This will permanently delete all data. Are you sure?",
- "enableRequestLogs": "Enable Request Logs",
- "logRetention": "Log Retention",
- "ipWhitelist": "IP Whitelist",
- "ipBlacklist": "IP Blacklist",
- "addIP": "Add IP",
- "savedSuccessfully": "Settings saved successfully",
+ "cacheCreation": "క్యాష్ సృష్టి",
+ "customPricing": "అనుకూల ధరలు",
+ "databaseSize": "డేటాబేస్ పరిమాణం",
+ "backupDb": "డేటాబేస్ను బ్యాకప్ చేయండి",
+ "restoreDb": "డేటాబేస్ను పునరుద్ధరించండి",
+ "exportData": "డేటాను ఎగుమతి చేయండి",
+ "importData": "డేటాను దిగుమతి చేయండి",
+ "clearData": "మొత్తం డేటాను తొలగించండి",
+ "clearDataConfirm": "ఇది మొత్తం డేటాను శాశ్వతంగా తొలగిస్తుంది. మీరు ఖచ్చితంగా కొనసాగాలనుకుంటున్నారా?",
+ "enableRequestLogs": "అభ్యర్థన లాగ్లను ప్రారంభించండి",
+ "logRetention": "లాగ్ నిల్వ వ్యవధి",
+ "ipWhitelist": "IP అనుమతి జాబితా",
+ "ipBlacklist": "IP నిరోధ జాబితా",
+ "addIP": "IPని జోడించండి",
+ "savedSuccessfully": "సెట్టింగ్లు విజయవంతంగా సేవ్ చేయబడ్డాయి",
"ai": "AI",
- "advanced": "Advanced",
- "localMode": "Local Mode — All data stored on your machine",
- "settingsSectionsAria": "Settings sections",
- "switchThemes": "Switch between light and dark themes",
- "themeSelectionAria": "Theme selection",
- "themeLight": "Light",
- "themeDark": "Dark",
- "themeSystem": "System",
+ "advanced": "అధునాతన",
+ "localMode": "స్థానిక మోడ్ — మొత్తం డేటా మీ మెషీన్లో నిల్వ చేయబడుతుంది",
+ "settingsSectionsAria": "సెట్టింగ్ల విభాగాలు",
+ "switchThemes": "లైట్ మరియు డార్క్ థీమ్ల మధ్య మారండి",
+ "themeSelectionAria": "థీమ్ ఎంపిక",
+ "themeLight": "లైట్",
+ "themeDark": "డార్క్",
+ "themeSystem": "సిస్టమ్",
"endpointTunnelVisibility": "ఎండ్పాయింట్ టన్నెల్ దృశ్యమానత",
"endpointTunnelVisibilityDesc": "టన్నెల్ స్థితిని మార్చకుండా ఎండ్పాయింట్ పేజీ నుండి సొరంగం నియంత్రణలను దాచండి.",
"showCloudflareTunnel": "క్లౌడ్ఫ్లేర్ క్విక్ టన్నెల్",
@@ -6748,47 +6755,47 @@
"showTailscaleFunnelDesc": "ఎండ్పాయింట్ పేజీలో టెయిల్స్కేల్ ఫన్నెల్ నియంత్రణలను చూపండి.",
"showNgrokTunnel": "ngrok సొరంగం",
"showNgrokTunnelDesc": "ఎండ్పాయింట్ పేజీలో ngrok టన్నెల్ నియంత్రణలను చూపండి.",
- "sidebarVisibility": "Hide sidebar items",
- "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter without disabling any features",
- "sidebarVisibilityHint": "Any sidebar section is hidden automatically when all of its entries are hidden",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
- "hideHealthLogs": "Hide Health Check Logs",
- "hideHealthLogsDesc": "When ON, suppress [HealthCheck] messages in server console",
- "themeAccent": "Theme color",
- "themeAccentDesc": "Choose a preset color or create your own theme with one color",
- "themeCreate": "Create theme",
- "themeCustom": "Custom theme",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "sidebarVisibility": "సైడ్బార్ అంశాలను దాచండి",
+ "sidebarVisibilityDesc": "ఏ ఫీచర్నూ నిలిపివేయకుండా దృశ్యపరమైన రద్దీని తగ్గించడానికి ఏదైనా సైడ్బార్ నావిగేషన్ అంశాన్ని దాచండి",
+ "sidebarVisibilityHint": "ఒక సైడ్బార్ విభాగంలోని అన్ని అంశాలు దాచబడినప్పుడు, ఆ విభాగం స్వయంచాలకంగా దాచబడుతుంది",
+ "presetAll": "అన్నీ",
+ "presetAllDesc": "అన్నింటినీ చూపించండి",
+ "presetEssentials": "అత్యవసరమైనవి",
+ "presetEssentialsDesc": "ప్రారంభకుల మార్గం - అధునాతన సాధనాలను శోధించవచ్చు",
+ "presetMinimal": "కనిష్ఠ",
+ "presetMinimalDesc": "ప్రధాన పేజీలు మాత్రమే",
+ "presetDeveloper": "డెవలపర్",
+ "presetDeveloperDesc": "డెవలప్మెంట్ & ప్రాక్సీ సాధనాలు",
+ "presetAdmin": "అడ్మిన్",
+ "presetAdminDesc": "పర్యవేక్షణ & ఆడిట్",
+ "settingsSidebarTitle": "సైడ్బార్ అనుకూలీకరణ",
+ "settingsSidebarDesc": "ఏ సైడ్బార్ అంశాలను చూపించాలో ఎంచుకోండి. Essentialsలో అధునాతన సాధనాలను శోధించవచ్చు.",
+ "hideHealthLogs": "హెల్త్ చెక్ లాగ్లను దాచు",
+ "hideHealthLogsDesc": "ONలో ఉన్నప్పుడు, సర్వర్ కన్సోల్లోని [HealthCheck] సందేశాలను అణచివేస్తుంది",
+ "themeAccent": "థీమ్ రంగు",
+ "themeAccentDesc": "ముందే అమర్చిన రంగును ఎంచుకోండి లేదా ఒక రంగుతో మీ స్వంత థీమ్ను సృష్టించండి",
+ "themeCreate": "థీమ్ను సృష్టించు",
+ "themeCustom": "అనుకూల థీమ్",
+ "themeBlue": "నీలం",
+ "themeRed": "ఎరుపు",
+ "themeGreen": "ఆకుపచ్చ",
+ "themeViolet": "ఊదా",
+ "themeOrange": "నారింజ",
+ "themeCyan": "సయాన్",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "అప్లికేషన్ పేరు మరియు లోగోను అనుకూలీకరించండి",
+ "appName": "అప్లికేషన్ పేరు",
+ "appNameDesc": "సైడ్బార్ మరియు బ్రౌజర్ ట్యాబ్లో చూపబడే పేరు",
+ "customLogo": "అనుకూల లోగో URL",
+ "customLogoDesc": "మీ అనుకూల లోగో చిత్రానికి URL",
+ "uploadLogo": "లోగోను అప్లోడ్ చేయండి",
+ "resetLogo": "డిఫాల్ట్కు రీసెట్ చేయండి",
+ "logoPreview": "మునుజూపు",
+ "customFavicon": "బ్రౌజర్ ఫేవికాన్",
+ "customFaviconDesc": "మీ అనుకూల ఫేవికాన్కు URL (బ్రౌజర్ ట్యాబ్లో చూపబడుతుంది)",
+ "uploadFavicon": "ఫేవికాన్ను అప్లోడ్ చేయండి",
+ "resetFavicon": "ఫేవికాన్ను రీసెట్ చేయండి",
+ "faviconPreview": "ఫేవికాన్ మునుజూపు",
"logoFileTooLarge": "లోగో ఫైల్ 500KB కంటే తక్కువ ఉండాలి",
"faviconFileTooLarge": "ఫావికాన్ ఫైల్ 50KB కంటే తక్కువ ఉండాలి",
"invalidLogoFileType": "చెల్లని ఫైల్ రకం. దయచేసి PNG, JPG, SVG, GIF లేదా WebPని అప్లోడ్ చేయండి.",
@@ -6796,15 +6803,15 @@
"failedToReadFile": "ఫైల్ను చదవడం విఫలమైంది",
"startOnLogin": "లాగిన్ అయినప్పుడు ప్రారంభించండి",
"startOnLoginDesc": "సిస్టమ్ స్టార్టప్లో OmniRouteని స్వయంచాలకంగా ప్రారంభించండి మరియు బ్యాక్గ్రౌండ్ ట్రేలో నిశ్శబ్దంగా రన్ చేయండి.",
- "flushCache": "Flush Cache",
- "flushing": "Flushing…",
- "size": "Size",
- "hits": "Hits",
- "evictions": "Evictions",
- "loadingCacheStats": "Loading cache stats…",
- "globalProxy": "Global Proxy",
- "globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
- "noGlobalProxy": "No global proxy configured",
+ "flushCache": "క్యాష్ను ఖాళీ చేయండి",
+ "flushing": "ఖాళీ చేస్తోంది…",
+ "size": "పరిమాణం",
+ "hits": "హిట్లు",
+ "evictions": "తొలగింపులు",
+ "loadingCacheStats": "క్యాష్ గణాంకాలు లోడ్ అవుతున్నాయి…",
+ "globalProxy": "గ్లోబల్ ప్రాక్సీ",
+ "globalProxyDesc": "అన్ని API కాల్ల కోసం గ్లోబల్ అవుట్బౌండ్ ప్రాక్సీని కాన్ఫిగర్ చేయండి. వ్యక్తిగత ప్రొవైడర్లు, కాంబోలు మరియు కీలు దీనిని ఓవర్రైడ్ చేయగలవు.",
+ "noGlobalProxy": "గ్లోబల్ ప్రాక్సీ కాన్ఫిగర్ చేయబడలేదు",
"proxyPool": "ప్రాక్సీ పూల్",
"freePool": "ఉచిత పూల్",
"proxyDocumentation": "ప్రాక్సీ డాక్యుమెంటేషన్",
@@ -6892,21 +6899,21 @@
"refreshInterval": "రీఫ్రెష్ ఇంటర్వల్",
"ruleModeDescription": "నియమ మోడ్ వివరణ"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "బల్క్ హెల్త్చెక్",
+ "bulkHealthcheckDesc": "పని చేసే ప్రాక్సీలను గుర్తించడానికి కాన్ఫిగర్ చేసిన అన్ని ప్రాక్సీలను లక్ష్య URLతో పరీక్షించండి.",
+ "healthcheckTesting": "పరీక్షిస్తోంది...",
+ "healthcheckAll": "అన్నింటి హెల్త్చెక్",
+ "healthcheckFailed": "హెల్త్చెక్ను అమలు చేయడం విఫలమైంది",
+ "healthcheckTestingAll": "అన్ని ప్రాక్సీలను సమాంతరంగా పరీక్షిస్తోంది...",
+ "healthcheckTotal": "మొత్తం",
+ "healthcheckWorking": "పనిచేస్తున్నవి",
+ "healthcheckFailedLabel": "విఫలమైనవి",
+ "healthcheckStatus": "స్థితి",
+ "healthcheckProxyUrl": "ప్రాక్సీ URL",
+ "healthcheckLatency": "లేటెన్సీ",
"proxyDocumentationScopeTitle": "ప్రాక్సీ స్కోప్ రిజల్యూషన్",
"proxyDocumentationScopeDescBefore": "OmniRoute అవుట్బౌండ్ ప్రాక్సీని ప్రాధాన్యతా క్రమంలో పరిష్కరిస్తుంది:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "కాంబో → ఖాతా → ప్రొవైడర్ → గ్లోబల్",
"proxyDocumentationScopeDescAfter": ". అత్యంత నిర్దిష్టమైన స్కోప్ గెలుస్తుంది.",
"proxyDocumentationAddTitle": "అనుకూల ప్రాక్సీని జోడించడం",
"proxyDocumentationAddDescBefore": "దీనికి వెళ్ళండి",
@@ -6962,22 +6969,22 @@
"proxyFreePoolLoadMore": "మరిన్ని లోడ్ చేయండి",
"close": "మూసివేయి",
"cancel": "రద్దు చేయి",
- "globalLabel": "Global",
- "configure": "Configure",
- "globalSystemPrompt": "Global System Prompt",
- "saved": "Saved",
+ "globalLabel": "గ్లోబల్",
+ "configure": "కాన్ఫిగర్ చేయండి",
+ "globalSystemPrompt": "గ్లోబల్ సిస్టమ్ ప్రాంప్ట్",
+ "saved": "సేవ్ చేయబడింది",
"beforePromptLabel": "ప్రాంప్ట్కు ముందు",
"beforePromptDesc": "ఏజెంట్/ప్రొవైడర్ సిస్టమ్ సూచనలకు ముందు చొప్పించబడింది",
"beforePromptPlaceholder": "ఏజెంట్/ప్రొవైడర్ ప్రాంప్ట్కు ముందు సూచనలు చొప్పించబడ్డాయి...",
"afterPromptLabel": "ప్రాంప్ట్ తర్వాత",
"afterPromptDesc": "ఏజెంట్/ప్రొవైడర్ సిస్టమ్ సూచనల తర్వాత చొప్పించబడింది",
"afterPromptPlaceholder": "ఏజెంట్/ప్రొవైడర్ ప్రాంప్ట్ తర్వాత సూచనలు చొప్పించబడ్డాయి...",
- "chars": "{count} chars",
- "thinkingBudgetTitle": "Thinking Budget",
+ "chars": "{count} అక్షరాలు",
+ "thinkingBudgetTitle": "థింకింగ్ బడ్జెట్",
"thinkingBudgetDesc": "Control AI reasoning token usage across all requests",
"thinkingBudgetIndependenceHint": "సంకోచన, మార్గనిర్దేశం, మరియు టోకెన్-సరిహద్దు లక్షణాలు ప్రతి మోడ్లో పనిచేస్తున్నాయి. ఆటో అంటే \"ఆటో-చెప్పే ఆలోచన\" కాదు — ఇది క్లయింట్ తర్కం ఫీల్డ్స్ను తొలగిస్తుంది.",
- "passthrough": "Passthrough",
- "passthroughDesc": "No changes — client controls thinking budget",
+ "passthrough": "పాస్త్రూ",
+ "passthroughDesc": "మార్పులు లేవు — థింకింగ్ బడ్జెట్ను క్లయింట్ నియంత్రిస్తుంది",
"thinkingModePassthrough": "పాస్త్రూ",
"thinkingModePassthroughDesc": "క్లయింట్ కారణాలను మార్చకండి (ప్రయత్నం, సారాంశం, ఆలోచన బ్లాక్లు). కోడెక్స్/డెస్క్టాప్ దృశ్య ఆలోచనకు అవసరం. డిఫాల్ట్.",
"thinkingModeAuto": "ఆటో (స్ట్రిప్)",
@@ -6987,36 +6994,36 @@
"thinkingModeAdaptive": "అనుకూలమైన",
"thinkingModeAdaptiveDesc": "సందేశాల సంఖ్య, సాధనాలు, మరియు ప్రాంప్ట్ పొడవు ఉపయోగించి ప్రాథమిక శ్రమ నుండి ఆలోచన బడ్జెట్ను స్కేల్ చేయండి.",
"auto": "Auto Combo",
- "autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "custom": "Custom",
- "customDesc": "Set a fixed token budget for all requests",
- "adaptive": "Adaptive",
- "adaptiveDesc": "Scale budget based on request complexity",
- "effortNone": "None (0 tokens)",
- "effortLow": "Low (1K tokens)",
- "effortMedium": "Medium (10K tokens)",
- "effortHigh": "High (128K tokens)",
- "tokenBudget": "Token Budget",
- "tokens": "tokens",
- "baseEffortLevel": "Base Effort Level",
+ "autoDesc": "స్వీయ-పునరుద్ధరణ స్మార్ట్ రూటింగ్ పూల్ (పనితీరు కోసం ఆప్టిమైజ్ చేయబడింది)",
+ "custom": "అనుకూలం",
+ "customDesc": "అన్ని అభ్యర్థనలకు స్థిరమైన టోకెన్ బడ్జెట్ను సెట్ చేయండి",
+ "adaptive": "అనుకూలనీయమైనది",
+ "adaptiveDesc": "అభ్యర్థన సంక్లిష్టత ఆధారంగా బడ్జెట్ను సర్దుబాటు చేయండి",
+ "effortNone": "ఏదీ లేదు (0 టోకెన్లు)",
+ "effortLow": "తక్కువ (1K టోకెన్లు)",
+ "effortMedium": "మధ్యస్థం (10K టోకెన్లు)",
+ "effortHigh": "అధికం (128K టోకెన్లు)",
+ "tokenBudget": "టోకెన్ బడ్జెట్",
+ "tokens": "టోకెన్లు",
+ "baseEffortLevel": "ప్రాథమిక ప్రయత్న స్థాయి",
"adaptiveHint": "Adaptive mode scales from this base level based on message count, tool usage, and prompt length.",
- "requireLogin": "Require login",
- "requireLoginDesc": "When ON, dashboard requires password. When OFF, access without login.",
- "currentPassword": "Current Password",
- "enterCurrentPassword": "Enter current password",
- "newPassword": "New Password",
- "enterNewPassword": "Enter new password",
- "confirmPassword": "Confirm New Password",
- "confirmPasswordPlaceholder": "Confirm new password",
- "passwordsNoMatch": "Passwords do not match",
- "passwordUpdated": "Password updated successfully",
- "failedUpdatePassword": "Failed to update password",
- "errorOccurred": "An error occurred",
- "updatePassword": "Update Password",
- "setPassword": "Set Password",
- "apiEndpointProtection": "API Endpoint Protection",
- "requireAuthModels": "Require API key for /models",
- "requireAuthModelsDesc": "When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.",
+ "requireLogin": "లాగిన్ అవసరం",
+ "requireLoginDesc": "ONలో ఉన్నప్పుడు, డాష్బోర్డ్కు పాస్వర్డ్ అవసరం. OFFలో ఉన్నప్పుడు, లాగిన్ లేకుండా యాక్సెస్ చేయవచ్చు.",
+ "currentPassword": "ప్రస్తుత పాస్వర్డ్",
+ "enterCurrentPassword": "ప్రస్తుత పాస్వర్డ్ను నమోదు చేయండి",
+ "newPassword": "కొత్త పాస్వర్డ్",
+ "enterNewPassword": "కొత్త పాస్వర్డ్ను నమోదు చేయండి",
+ "confirmPassword": "కొత్త పాస్వర్డ్ను నిర్ధారించండి",
+ "confirmPasswordPlaceholder": "కొత్త పాస్వర్డ్ను నిర్ధారించండి",
+ "passwordsNoMatch": "పాస్వర్డ్లు సరిపోలడం లేదు",
+ "passwordUpdated": "పాస్వర్డ్ విజయవంతంగా నవీకరించబడింది",
+ "failedUpdatePassword": "పాస్వర్డ్ను నవీకరించడం విఫలమైంది",
+ "errorOccurred": "ఒక లోపం సంభవించింది",
+ "updatePassword": "పాస్వర్డ్ను నవీకరించండి",
+ "setPassword": "పాస్వర్డ్ను సెట్ చేయండి",
+ "apiEndpointProtection": "API ఎండ్పాయింట్ రక్షణ",
+ "requireAuthModels": "/models కోసం API కీని తప్పనిసరి చేయండి",
+ "requireAuthModelsDesc": "ఇది ఆన్లో ఉన్నప్పుడు, ప్రమాణీకరించని అభ్యర్థనలకు /v1/models ఎండ్పాయింట్ 404ను అందిస్తుంది. ఇది అనధికార వినియోగదారులు మోడళ్లను కనుగొనకుండా నిరోధిస్తుంది.",
"authModelHeading": "క్రియాశీల అధికార నమూనా",
"authModelClient": "క్లయింట్ API ముగింపు పాయింట్లకు (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) బేరర్ API కీ అవసరం.",
"authModelManagement": "నిర్వహణ ముగింపు పాయింట్లకు (/డ్యాష్బోర్డ్, /api/*) డాష్బోర్డ్ సెషన్ లేదా మేనేజ్మెంట్ క్రెడెన్షియల్ అవసరం.",
@@ -7025,16 +7032,16 @@
"bruteForceProtectionDesc": "అదే IP నుండి పదేపదే వైఫల్యాల తర్వాత /api/auth/login థ్రోటిల్ మరియు లాక్ చేయండి.",
"corsAllowedOrigins": "CORS అనుమతించిన మూలాలు",
"corsAllowedOriginsDesc": "ఈ సర్వర్కు కాల్ చేయడానికి అనుమతించబడిన కామాతో వేరు చేయబడిన బ్రౌజర్ మూలాల జాబితా. ఖాళీ జాబితా = బ్రౌజర్ CORS యాక్సెస్ లేదు (సర్వర్-టు-సర్వర్ ఇప్పటికీ పనిచేస్తుంది). అభివృద్ధి కోసం మాత్రమే CORS_ALLOW_ALL=true env varని ఉపయోగించండి.",
- "blockedProviders": "Blocked Providers",
- "blockedProvidersDesc": "Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.",
- "providersBlocked": "{count} provider(s) blocked from /models",
- "blockProviderTitle": "Block {provider}",
- "unblockProviderTitle": "Unblock {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "blockedProviders": "బ్లాక్ చేసిన ప్రొవైడర్లు",
+ "blockedProvidersDesc": "/v1/models ప్రతిస్పందన నుండి నిర్దిష్ట ప్రొవైడర్లను దాచండి. బ్లాక్ చేసిన ప్రొవైడర్లు మోడల్ జాబితాల్లో కనిపించరు.",
+ "providersBlocked": "/models నుండి {count} ప్రొవైడర్(లు) బ్లాక్ చేయబడ్డారు",
+ "blockProviderTitle": "{provider}ను బ్లాక్ చేయండి",
+ "unblockProviderTitle": "{provider}పై బ్లాక్ను తొలగించండి",
+ "cliFingerprint": "CLI ఫింగర్ప్రింట్ సరిపోలిక",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "CLI ఫింగర్ప్రింట్ సక్రియంగా ఉన్న {count} ప్రొవైడర్(లు)",
+ "enableFingerprintTitle": "{provider} కోసం ఫింగర్ప్రింట్ను ప్రారంభించండి",
+ "disableFingerprintTitle": "{provider} కోసం ఫింగర్ప్రింట్ను నిలిపివేయండి",
"systemTransforms": "సిస్టమ్-బ్లాక్ ట్రాన్స్ఫార్మ్ పైప్లైన్",
"systemTransformsDesc": "ఫార్వార్డ్ చేయడానికి ముందు రిక్వెస్ట్ బాడీకి వర్తింపజేయబడిన ట్రాన్స్ఫార్మ్ల పైప్లైన్ని ఒక్కో ప్రొవైడర్ ఆర్డర్ చేసారు. ఏదైనా ప్రొవైడర్ IDకి మద్దతు ఇస్తుంది.",
"systemTransformsAddProvider": "ప్రొవైడర్ని జోడించండి",
@@ -7045,29 +7052,29 @@
"systemTransformsOpMoveUp": "పైకి కదలండి",
"systemTransformsOpMoveDown": "క్రిందికి తరలించు",
"systemTransformsOpDelete": "ఆప్ ను తొలగించండి",
- "routingStrategy": "Routing Strategy",
- "routingAdvancedGuideTitle": "Advanced routing guidance",
+ "routingStrategy": "రూటింగ్ వ్యూహం",
+ "routingAdvancedGuideTitle": "అధునాతన రూటింగ్ మార్గదర్శకత్వం",
"routingAdvancedGuideHint1": "Use Fill First for predictable priority, Round Robin for fairness, and P2C for latency resilience.",
"routingAdvancedGuideHint2": "If providers vary in quality/cost, start with Cost Opt for background work and Least Used for balanced wear.",
- "fillFirst": "Fill First",
- "fillFirstDesc": "Use accounts in priority order",
+ "fillFirst": "మొదటిదాన్ని పూర్తిగా వినియోగించండి",
+ "fillFirstDesc": "ఖాతాలను ప్రాధాన్యత క్రమంలో ఉపయోగించండి",
"roundRobin": "Round Robin",
- "roundRobinDesc": "Cycle through all accounts",
+ "roundRobinDesc": "అన్ని ఖాతాలను వరుసగా చక్రీయంగా ఉపయోగించండి",
"p2c": "P2C",
- "p2cDesc": "Pick 2 random, use the healthier one",
- "random": "Random",
- "randomDesc": "Random account each request",
- "leastUsed": "Least Used",
- "leastUsedDesc": "Pick least recently used account",
- "costOpt": "Cost Opt",
- "costOptDesc": "Prefer cheapest available account",
+ "p2cDesc": "యాదృచ్ఛికంగా 2 ఖాతాలను ఎంచుకుని, మెరుగైన స్థితిలో ఉన్నదాన్ని ఉపయోగించండి",
+ "random": "యాదృచ్ఛికం",
+ "randomDesc": "ప్రతి అభ్యర్థనకు ఒక యాదృచ్ఛిక ఖాతా",
+ "leastUsed": "అతి తక్కువగా ఉపయోగించినది",
+ "leastUsedDesc": "ఇటీవల అతి తక్కువగా ఉపయోగించిన ఖాతాను ఎంచుకోండి",
+ "costOpt": "ఖర్చు ఆప్టిమైజేషన్",
+ "costOptDesc": "అందుబాటులో ఉన్న అత్యంత చవకైన ఖాతాకు ప్రాధాన్యత ఇవ్వండి",
"resetAware": "రీసెట్-అవేర్ RR",
"resetAwareDesc": "ఆరోగ్యకరమైన మిగిలిన కోటా మరియు సమీప రీసెట్లతో ఖాతాలకు ప్రాధాన్యత ఇవ్వండి",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "కోటా ఆధారిత వెయిటింగ్",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "ఖచ్చితమైన యాదృచ్ఛిక ఎంపిక",
+ "strictRandomDesc": "డెక్ను షఫుల్ చేయండి — మళ్లీ షఫుల్ చేయడానికి ముందు ప్రతి ఖాతాను ఒక్కసారి ఉపయోగిస్తుంది",
+ "stickyLimit": "స్థిర పరిమితి",
"stickyLimitDesc": "Calls per account before switching",
"routingStrategyTitle": "రూటింగ్ వ్యూహం",
"routingStrategySubtitle": "9router కు సరిపోల్చండి: ఖాతా రౌండ్-రాబిన్, స్టిక్కీ పరిమితులు మరియు కాంబో రొటేషన్",
@@ -7085,225 +7092,225 @@
"providerAccountRoutingDesc": "ఈ ప్రొవైడర్ కోసం గ్లోబల్ ఖాతా వ్యూహాన్ని భర్తీ చేయండి (9router పారిటీ).",
"providerRoutingStrategy": "ఖాతా వ్యూహం",
"providerRoutingInheritGlobal": "గ్లోబల్ డిఫాల్ట్ను వారసత్వంగా పొందండి",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
- "modelAliases": "Model Aliases",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
- "addCustomAlias": "Add Custom Alias",
- "deprecatedModelId": "Deprecated model ID",
- "newModelId": "New model ID",
- "customAliases": "Custom Aliases",
- "builtInAliases": "Built-in Aliases",
- "backgroundDegradationTitle": "Background Task Degradation",
- "backgroundDegradationDesc": "Auto-detect background tasks (titles, summaries) and route to cheaper models",
- "enableDegradation": "Enable Background Degradation",
- "enableDegradationHint": "When enabled, background tasks like title generation and summarization are routed to cheaper models automatically",
- "tasksDetected": "Tasks detected",
- "degradationMap": "Model Degradation Map",
- "premiumModel": "Premium model",
- "cheapModel": "Cheap model",
- "detectionPatterns": "Detection Patterns",
- "newPattern": "e.g. \"generate a title\"",
+ "quotaPreflightTitle": "కోటా ముందస్తు తనిఖీ పరిమితి",
+ "quotaPreflightSubtitle": "అప్స్ట్రీమ్కు అభ్యర్థనను పంపే ముందు కోటా అయిపోయిన ఖాతాలను దాటవేయండి",
+ "quotaPreflightEnable": "కోటా ముందస్తు తనిఖీని ప్రారంభించండి",
+ "quotaPreflightEnableDesc": "ప్రతి అభ్యర్థనకు ముందు, ఖాతాలో మిగిలి ఉన్న కోటాను (5గం / వారపు / నెలవారీ విండోలు) తనిఖీ చేయండి. కటాఫ్కు సమానంగా లేదా అంతకంటే తక్కువగా ఉన్న ఖాతాలు అప్స్ట్రీమ్ కాల్ చేయకుండానే దాటవేయబడతాయి. Provider Quota పేజీలో సెట్ చేసిన ప్రతి-విండో కటాఫ్లకే ఇక్కడి డిఫాల్ట్ కంటే ఎల్లప్పుడూ ప్రాధాన్యం ఉంటుంది.",
+ "quotaPreflightCutoff": "గ్లోబల్ కటాఫ్ (మిగిలి ఉండాల్సిన కనిష్ఠ %)",
+ "quotaPreflightCutoffDesc": "స్వంత కటాఫ్ లేని ప్రతి విండోలో, ఖాతా మిగిలిన కోటా ఈ శాతానికి లేదా అంతకంటే తక్కువకు పడిపోయినప్పుడు దాన్ని ఉపయోగించడం ఆపివేయండి. ఇది Provider Quota పేజీలోని మిగిలిన-% బార్లకు సరిపోలుతుంది.",
+ "quotaPreflightWindowsHint": "Provider Quota పేజీలోని Cutoff మోడల్లో సెట్ చేసిన స్వంత ప్రతి-విండో లేదా ప్రతి-ప్రొవైడర్ కటాఫ్ ఉన్న విండోలపై ఈ డిఫాల్ట్ ప్రభావం ఉండదు.",
+ "quotaPreflightLoadFailed": "కోటా ప్రీఫ్లైట్ సెట్టింగ్లను లోడ్ చేయడం సాధ్యపడలేదు.",
+ "modelAliases": "మోడల్ మారుపేర్లు",
+ "modelAliasesTitle": "మోడల్ మారుపేర్లు",
+ "modelAliasesDesc": "ఖచ్చితమైన సరిపోలికలు లేదా వైల్డ్కార్డ్ నమూనాలను ఉపయోగించి మోడల్ పేర్లను రీమ్యాప్ చేయండి.",
+ "addCustomAlias": "అనుకూల మారుపేరును జోడించండి",
+ "deprecatedModelId": "ఉపయోగం నిలిపివేయబడిన మోడల్ ID",
+ "newModelId": "కొత్త మోడల్ ID",
+ "customAliases": "అనుకూల మారుపేర్లు",
+ "builtInAliases": "అంతర్నిర్మిత మారుపేర్లు",
+ "backgroundDegradationTitle": "నేపథ్య టాస్క్ డీగ్రడేషన్",
+ "backgroundDegradationDesc": "నేపథ్య టాస్క్లను (శీర్షికలు, సారాంశాలు) స్వయంచాలకంగా గుర్తించి తక్కువ ఖర్చు మోడల్లకు రూట్ చేయండి",
+ "enableDegradation": "నేపథ్య డీగ్రడేషన్ను ప్రారంభించండి",
+ "enableDegradationHint": "ప్రారంభించినప్పుడు, శీర్షిక సృష్టి మరియు సారాంశీకరణ వంటి నేపథ్య టాస్క్లు స్వయంచాలకంగా తక్కువ ఖర్చు మోడల్లకు రూట్ చేయబడతాయి",
+ "tasksDetected": "గుర్తించిన టాస్క్లు",
+ "degradationMap": "మోడల్ డీగ్రడేషన్ మ్యాప్",
+ "premiumModel": "ప్రీమియం మోడల్",
+ "cheapModel": "తక్కువ ఖర్చు మోడల్",
+ "detectionPatterns": "గుర్తింపు నమూనాలు",
+ "newPattern": "ఉదా. \"ఒక శీర్షికను రూపొందించండి\"",
"aliasPatternPlaceholder": "claude-sonnet-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
- "pattern": "Pattern",
- "targetModel": "Target Model",
- "add": "+ Add",
- "session": "Session",
- "sessionDetailsAria": "Session details",
+ "pattern": "నమూనా",
+ "targetModel": "లక్ష్య మోడల్",
+ "add": "+ జోడించండి",
+ "session": "సెషన్",
+ "sessionDetailsAria": "సెషన్ వివరాలు",
"status": "Status",
- "authenticated": "Authenticated",
- "guest": "Guest",
- "loginTime": "Login Time",
- "sessionAge": "Session Age",
- "browser": "Browser",
- "clearLocalData": "Clear Local Data",
- "logout": "Logout",
- "clearLocalDataConfirm": "Clear all local data? This will reset your preferences.",
- "unknown": "Unknown",
- "systemActor": "system",
- "ipAccessControl": "IP Access Control",
- "ipAccessControlDesc": "Block or allow specific IP addresses",
- "ipModeDisabled": "Disabled",
- "ipModeBlacklist": "Blacklist",
- "ipModeWhitelist": "Whitelist",
- "ipModeWhitelistPriority": "WL Priority",
- "addIpAddress": "Add IP Address",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
- "block": "+ Block",
- "allow": "+ Allow",
- "blocked": "Blocked ({count})",
- "allowed": "Allowed ({count})",
- "temporaryBans": "Temporary Bans ({count})",
- "minLeft": "{min}m left",
- "auditLog": "Audit Log",
- "searchAuditLogs": "Search audit logs...",
- "failedLoadAuditLog": "Failed to load audit log",
- "noAuditEvents": "No audit events found",
- "action": "Action",
- "actor": "Actor",
- "details": "Details",
- "time": "Time",
- "fallbackChainsTitle": "Fallback Chains",
- "fallbackChainsDesc": "Define provider fallback order per model",
- "addChain": "+ Add Chain",
- "modelName": "Model Name",
+ "authenticated": "ప్రమాణీకరించబడింది",
+ "guest": "అతిథి",
+ "loginTime": "లాగిన్ సమయం",
+ "sessionAge": "సెషన్ వయస్సు",
+ "browser": "బ్రౌజర్",
+ "clearLocalData": "స్థానిక డేటాను క్లియర్ చేయండి",
+ "logout": "లాగ్ అవుట్",
+ "clearLocalDataConfirm": "స్థానిక డేటా మొత్తాన్ని క్లియర్ చేయాలా? ఇది మీ ప్రాధాన్యతలను రీసెట్ చేస్తుంది.",
+ "unknown": "తెలియదు",
+ "systemActor": "సిస్టమ్",
+ "ipAccessControl": "IP యాక్సెస్ నియంత్రణ",
+ "ipAccessControlDesc": "నిర్దిష్ట IP చిరునామాలను బ్లాక్ చేయండి లేదా అనుమతించండి",
+ "ipModeDisabled": "నిలిపివేయబడింది",
+ "ipModeBlacklist": "బ్లాక్లిస్ట్",
+ "ipModeWhitelist": "వైట్లిస్ట్",
+ "ipModeWhitelistPriority": "WL ప్రాధాన్యత",
+ "addIpAddress": "IP చిరునామాను జోడించండి",
+ "ipAddressPlaceholder": "192.168.1.0/24 లేదా 10.0.*.*",
+ "block": "+ బ్లాక్ చేయండి",
+ "allow": "+ అనుమతించండి",
+ "blocked": "బ్లాక్ చేయబడినవి ({count})",
+ "allowed": "అనుమతించబడినవి ({count})",
+ "temporaryBans": "తాత్కాలిక నిషేధాలు ({count})",
+ "minLeft": "{min}ని మిగిలి ఉంది",
+ "auditLog": "ఆడిట్ లాగ్",
+ "searchAuditLogs": "ఆడిట్ లాగ్లను శోధించండి...",
+ "failedLoadAuditLog": "ఆడిట్ లాగ్ను లోడ్ చేయడం విఫలమైంది",
+ "noAuditEvents": "ఆడిట్ ఈవెంట్లు ఏవీ కనుగొనబడలేదు",
+ "action": "చర్య",
+ "actor": "చర్య చేసిన వ్యక్తి",
+ "details": "వివరాలు",
+ "time": "సమయం",
+ "fallbackChainsTitle": "ఫాల్బ్యాక్ చైన్లు",
+ "fallbackChainsDesc": "ప్రతి మోడల్కు ప్రొవైడర్ ఫాల్బ్యాక్ క్రమాన్ని నిర్వచించండి",
+ "addChain": "+ చైన్ను జోడించండి",
+ "modelName": "మోడల్ పేరు",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
- "providersCommaSeparated": "Providers (comma-separated, in priority order)",
+ "providersCommaSeparated": "ప్రొవైడర్లు (కామాలతో వేరు చేసి, ప్రాధాన్యత క్రమంలో)",
"providersCommaSeparatedPlaceholder": "anthropic, openai, gemini",
- "createChain": "Create Chain",
- "noFallbackChains": "No Fallback Chains",
- "noFallbackChainsDesc": "Create a chain to define provider fallback order for a model.",
- "loadingFallbackChains": "Loading fallback chains...",
- "deleteChainConfirm": "Delete fallback chain for \"{model}\"?",
- "chainCreated": "Chain created for {model}",
- "chainDeleted": "Chain deleted for {model}",
- "failedCreateChain": "Failed to create chain",
- "failedDeleteChain": "Failed to delete chain",
- "deleteChain": "Delete chain",
- "fillModelAndProviders": "Please fill model name and providers",
- "addAtLeastOneProvider": "Add at least one provider",
- "comboDefaultsTitle": "Combo Defaults",
- "comboDefaultsGuideTitle": "How to tune combo defaults",
- "comboDefaultsGuideHint1": "Keep retries low in low-latency flows; increase timeout only for long generation tasks.",
- "comboDefaultsGuideHint2": "Use provider overrides when one provider needs different timeout/retry behavior than global defaults.",
- "globalComboConfig": "Global combo configuration",
+ "createChain": "చైన్ను సృష్టించండి",
+ "noFallbackChains": "ఫాల్బ్యాక్ చైన్లు లేవు",
+ "noFallbackChainsDesc": "ఒక మోడల్ కోసం ప్రొవైడర్ ఫాల్బ్యాక్ క్రమాన్ని నిర్వచించడానికి చైన్ను సృష్టించండి.",
+ "loadingFallbackChains": "ఫాల్బ్యాక్ చైన్లు లోడ్ అవుతున్నాయి...",
+ "deleteChainConfirm": "\"{model}\" కోసం ఫాల్బ్యాక్ చైన్ను తొలగించాలా?",
+ "chainCreated": "{model} కోసం చైన్ సృష్టించబడింది",
+ "chainDeleted": "{model} కోసం చైన్ తొలగించబడింది",
+ "failedCreateChain": "చైన్ను సృష్టించడం విఫలమైంది",
+ "failedDeleteChain": "చైన్ను తొలగించడం విఫలమైంది",
+ "deleteChain": "చైన్ను తొలగించండి",
+ "fillModelAndProviders": "దయచేసి మోడల్ పేరు మరియు ప్రొవైడర్లను పూరించండి",
+ "addAtLeastOneProvider": "కనీసం ఒక ప్రొవైడర్ను జోడించండి",
+ "comboDefaultsTitle": "కాంబో డిఫాల్ట్లు",
+ "comboDefaultsGuideTitle": "కాంబో డిఫాల్ట్లను ఎలా సర్దుబాటు చేయాలి",
+ "comboDefaultsGuideHint1": "తక్కువ లేటెన్సీ ప్రవాహాల్లో పునఃప్రయత్నాలను తక్కువగా ఉంచండి; దీర్ఘ జనరేషన్ టాస్క్ల కోసం మాత్రమే టైమ్అవుట్ను పెంచండి.",
+ "comboDefaultsGuideHint2": "ఒక ప్రొవైడర్కు గ్లోబల్ డిఫాల్ట్ల కంటే భిన్నమైన టైమ్అవుట్/రీట్రై ప్రవర్తన అవసరమైనప్పుడు ప్రొవైడర్ ఓవర్రైడ్లను ఉపయోగించండి.",
+ "globalComboConfig": "గ్లోబల్ కాంబో కాన్ఫిగరేషన్",
"moveUp": "పైకి తరలించండి",
"moveDown": "కిందికి తరలించండి",
"allProvidersAdded": "అన్ని ప్రొవైడర్లు జోడించబడ్డాయి",
"noProvidersFound": "ప్రొవైడర్లు ఏవీ కనుగొనబడలేదు",
- "defaultStrategy": "Default Strategy",
+ "defaultStrategy": "డిఫాల్ట్ వ్యూహం",
"defaultStrategyDesc": "Applied to new combos without explicit strategy",
- "comboStrategyAria": "Combo strategy",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Priority-style routing with automatic context handoffs when account rotation happens",
- "maxRetriesLabel": "Max Retries",
- "retryDelayLabel": "Retry Delay (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
- "healthCheckDesc": "Pre-check provider availability",
- "trackMetrics": "Track Metrics",
- "trackMetricsDesc": "Record per-combo request metrics",
- "providerOverrides": "Provider Overrides",
- "providerOverridesDesc": "Override timeout and retries per provider. Provider settings override global defaults.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
- "removeProviderOverrideAria": "Remove {provider} override",
+ "comboStrategyAria": "కాంబో వ్యూహం",
+ "priority": "ప్రాధాన్యత",
+ "weighted": "బరువు ఆధారితం",
+ "contextRelay": "కాంటెక్స్ట్ రిలే",
+ "contextRelayDesc": "ఖాతా రొటేషన్ జరిగినప్పుడు ఆటోమేటిక్ కాంటెక్స్ట్ హ్యాండాఫ్లతో ప్రాధాన్యత-శైలి రూటింగ్",
+ "maxRetriesLabel": "గరిష్ఠ రీట్రైలు",
+ "retryDelayLabel": "రీట్రై ఆలస్యం (ms)",
+ "timeoutLabel": "టైమ్అవుట్ (ms)",
+ "healthCheck": "హెల్త్ చెక్",
+ "healthCheckDesc": "ప్రొవైడర్ లభ్యతను ముందుగా తనిఖీ చేయండి",
+ "trackMetrics": "మెట్రిక్లను ట్రాక్ చేయండి",
+ "trackMetricsDesc": "ప్రతి కాంబోకు అభ్యర్థన మెట్రిక్లను నమోదు చేయండి",
+ "providerOverrides": "ప్రొవైడర్ ఓవర్రైడ్లు",
+ "providerOverridesDesc": "ప్రతి ప్రొవైడర్కు టైమ్అవుట్ మరియు రీట్రైలను ఓవర్రైడ్ చేయండి. ప్రొవైడర్ సెట్టింగ్లు గ్లోబల్ డిఫాల్ట్లను ఓవర్రైడ్ చేస్తాయి.",
+ "providerMaxRetriesAria": "{provider} గరిష్ఠ రీట్రైలు",
+ "providerTimeoutAria": "{provider} టైమ్అవుట్ ms",
+ "removeProviderOverrideAria": "{provider} ఓవర్రైడ్ను తొలగించండి",
"selectProviderPlaceholder": "ప్రొవైడర్ను ఎంచుకోండి...",
"searchProviderPlaceholder": "ప్రొవైడర్లను శోధించండి...",
"searchProviderAria": "ప్రొవైడర్లను శోధించండి",
- "newProviderNamePlaceholder": "e.g. google, openai...",
- "newProviderNameAria": "New provider name",
- "retries": "retries",
+ "newProviderNamePlaceholder": "ఉదా. google, openai...",
+ "newProviderNameAria": "కొత్త ప్రొవైడర్ పేరు",
+ "retries": "రీట్రైలు",
"ms": "ms",
- "saveComboDefaults": "Save Combo Defaults",
- "maxNestingDepth": "Max Nesting Depth",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
+ "saveComboDefaults": "కాంబో డిఫాల్ట్లను సేవ్ చేయండి",
+ "maxNestingDepth": "గరిష్ఠ నెస్టింగ్ లోతు",
+ "concurrencyPerModel": "కన్కరెన్సీ / మోడల్",
+ "queueTimeout": "క్యూ టైమ్అవుట్ (ms)",
"queueDepth": "క్యూ లోతు",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
- "providerProfiles": "Provider Profiles",
- "providerProfilesDesc": "Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
- "maxBackoffLevel": "Max Backoff Level",
- "cbThreshold": "CB Threshold",
- "cbResetTime": "CB Reset Time",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
- "defaultSafetyNet": "Default Safety Net",
+ "contextRelayHandoffThreshold": "హ్యాండాఫ్ థ్రెషోల్డ్",
+ "contextRelayMaxMessages": "సారాంశం కోసం గరిష్ఠ సందేశాలు",
+ "contextRelaySummaryModel": "సారాంశ మోడల్",
+ "contextRelayProviderNote": "కాంటెక్స్ట్ రిలే ప్రస్తుతం Codex ఖాతాల కోసం హ్యాండాఫ్లను రూపొందిస్తుంది మరియు కొత్త లేదా కాన్ఫిగర్ చేయని కాంబోల కోసం ఈ విలువలను గ్లోబల్ డిఫాల్ట్లుగా ఉపయోగిస్తుంది.",
+ "providerProfiles": "ప్రొవైడర్ ప్రొఫైల్లు",
+ "providerProfilesDesc": "OAuth (సెషన్-ఆధారిత) మరియు API Key (వినియోగ-ఆధారిత) ప్రొవైడర్ల కోసం వేర్వేరు స్థితిస్థాపకత సెట్టింగ్లు. తక్కువ రేట్ లిమిట్ల కారణంగా OAuth ప్రొవైడర్లకు మరింత కఠినమైన థ్రెషోల్డ్లు ఉంటాయి.",
+ "oauthProviders": "OAuth ప్రొవైడర్లు",
+ "apiKeyProviders": "API Key ప్రొవైడర్లు",
+ "transientCooldown": "తాత్కాలిక కూల్డౌన్",
+ "rateLimitCooldown": "రేట్ లిమిట్ కూల్డౌన్",
+ "maxBackoffLevel": "గరిష్ఠ బ్యాక్ఆఫ్ స్థాయి",
+ "cbThreshold": "CB థ్రెషోల్డ్",
+ "cbResetTime": "CB రీసెట్ సమయం",
+ "rateLimiting": "రేట్ పరిమితి",
+ "rateLimitingDesc": "API Key ప్రొవైడర్లకు సురక్షితమైన డిఫాల్ట్లతో స్వయంచాలకంగా రేట్ పరిమితి విధించబడుతుంది. ప్రతిస్పందన హెడర్ల నుండి పరిమితులు నేర్చుకోబడతాయి మరియు కాలక్రమేణా సర్దుబాటు అవుతాయి.",
+ "defaultSafetyNet": "డిఫాల్ట్ భద్రతా వలయం",
"rpm": "RPM",
- "minGap": "Min Gap",
- "maxConcurrent": "Max Concurrent",
- "activeLimiters": "Active Limiters",
- "noActiveLimiters": "No active rate limiters yet.",
- "reservoir": "Reservoir",
- "running": "Running",
- "queued": "Queued",
- "circuitBreakers": "Circuit Breakers",
- "breakerStateClosed": "Closed",
- "breakerStateOpen": "Open",
- "breakerStateHalfOpen": "Half-Open",
- "tripped": "{count} tripped",
- "healthy": "{count} healthy",
- "resetAll": "Reset All",
- "noCircuitBreakers": "No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.",
- "failures": "{count} failure(s)",
- "policiesLocked": "Policies & Locked Identifiers",
- "allOperational": "All systems operational — no lockouts or tripped breakers",
- "loadingPolicies": "Loading policies...",
- "lockedIdentifiers": "Locked Identifiers",
- "unlockedIdentifier": "Unlocked: {identifier}",
- "sinceDate": "since {date}",
- "forceUnlock": "Force Unlock",
- "unlocking": "Unlocking...",
- "failedUnlock": "Failed to unlock",
- "failedLoadWithStatus": "Failed to load: {status}",
- "failedLoadResilience": "Failed to load resilience status",
- "saveFailed": "Save failed",
- "resetFailed": "Reset failed",
- "loadingResilience": "Loading resilience status...",
- "retry": "Retry",
+ "minGap": "కనిష్ఠ విరామం",
+ "maxConcurrent": "గరిష్ఠ సమకాలీన అభ్యర్థనలు",
+ "activeLimiters": "సక్రియ రేట్ లిమిటర్లు",
+ "noActiveLimiters": "ఇంకా సక్రియ రేట్ లిమిటర్లు లేవు.",
+ "reservoir": "రిజర్వాయర్",
+ "running": "అమలవుతోంది",
+ "queued": "క్యూలో ఉన్నాయి",
+ "circuitBreakers": "సర్క్యూట్ బ్రేకర్లు",
+ "breakerStateClosed": "మూసివేయబడినవి",
+ "breakerStateOpen": "తెరిచి ఉన్నవి",
+ "breakerStateHalfOpen": "పాక్షికంగా తెరిచి ఉన్నవి",
+ "tripped": "{count} ట్రిప్ అయ్యాయి",
+ "healthy": "{count} సక్రమంగా ఉన్నాయి",
+ "resetAll": "అన్నింటినీ రీసెట్ చేయండి",
+ "noCircuitBreakers": "ఇంకా సక్రియ సర్క్యూట్ బ్రేకర్లు లేవు. కాంబో పైప్లైన్ ద్వారా అభ్యర్థనలు ప్రవహించినప్పుడు అవి స్వయంచాలకంగా సృష్టించబడతాయి.",
+ "failures": "{count} వైఫల్యం(లు)",
+ "policiesLocked": "విధానాలు & లాక్ చేయబడిన ఐడెంటిఫయర్లు",
+ "allOperational": "అన్ని సిస్టమ్లు సక్రమంగా పనిచేస్తున్నాయి — లాకౌట్లు లేదా ట్రిప్ అయిన బ్రేకర్లు లేవు",
+ "loadingPolicies": "విధానాలు లోడ్ అవుతున్నాయి...",
+ "lockedIdentifiers": "లాక్ చేయబడిన ఐడెంటిఫయర్లు",
+ "unlockedIdentifier": "అన్లాక్ చేయబడింది: {identifier}",
+ "sinceDate": "{date} నుండి",
+ "forceUnlock": "బలవంతంగా అన్లాక్ చేయండి",
+ "unlocking": "అన్లాక్ చేస్తోంది...",
+ "failedUnlock": "అన్లాక్ చేయడం విఫలమైంది",
+ "failedLoadWithStatus": "లోడ్ చేయడం విఫలమైంది: {status}",
+ "failedLoadResilience": "రెసిలియెన్స్ స్థితిని లోడ్ చేయడం విఫలమైంది",
+ "saveFailed": "సేవ్ చేయడం విఫలమైంది",
+ "resetFailed": "రీసెట్ చేయడం విఫలమైంది",
+ "loadingResilience": "రెసిలియెన్స్ స్థితి లోడ్ అవుతోంది...",
+ "retry": "మళ్లీ ప్రయత్నించండి",
"systemStorage": "System & Storage",
- "allDataLocal": "All data stored locally on your machine",
- "databasePath": "Database Path",
+ "allDataLocal": "మొత్తం డేటా మీ మెషీన్లో స్థానికంగా నిల్వ చేయబడుతుంది",
+ "databasePath": "డేటాబేస్ పాత్",
"export": "ఎగుమతి",
- "exportDatabase": "Export Database",
- "exportAll": "Export All (.tar.gz)",
- "importDatabase": "Import Database",
- "confirmDbImport": "Confirm Database Import",
- "confirmDbImportDesc": "This will replace all current data with the content from {file}. A backup will be created automatically before the import.",
- "yesImport": "Yes, Import",
- "lastBackup": "Last Backup",
- "noBackupYet": "No backup yet",
- "backupNow": "Backup Now",
- "backupRestore": "Backup & Restore",
- "viewBackups": "View Backups",
- "hide": "Hide",
- "backupRetentionDesc": "Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.",
- "loadingBackups": "Loading backups...",
- "noBackupsYet": "No backups available yet. Backups will be created automatically when data changes.",
- "backupsAvailable": "{count} backup(s) available",
- "refresh": "Refresh",
- "confirm": "Confirm?",
- "yes": "Yes",
- "no": "No",
- "restore": "Restore",
- "invalidFileType": "Invalid file type. Only .sqlite files are accepted.",
- "exportFailed": "Export failed",
- "exportFailedWithError": "Export failed: {error}",
- "fullExportFailedWithError": "Full export failed: {error}",
- "backupCreated": "Backup created: {file}",
- "restoreSuccess": "Restored! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "importSuccess": "Database imported! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "minutesAgo": "{count}m ago",
- "hoursAgo": "{count}h ago",
- "daysAgo": "{count}d ago",
- "backupReasonManual": "manual",
- "backupReasonPreRestore": "pre-restore",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
- "noChangesSinceBackup": "No changes since last backup",
- "backupFailed": "Backup failed",
- "restoreFailed": "Restore failed",
- "importFailed": "Import failed",
- "errorDuringRestore": "An error occurred during restore",
- "errorDuringImport": "An error occurred during import",
- "modelPricing": "Model Pricing",
- "modelPricingDesc": "Configure cost rates per model • All rates in $/1M tokens",
+ "exportDatabase": "డేటాబేస్ను ఎగుమతి చేయండి",
+ "exportAll": "అన్నింటినీ ఎగుమతి చేయండి (.tar.gz)",
+ "importDatabase": "డేటాబేస్ను దిగుమతి చేయండి",
+ "confirmDbImport": "డేటాబేస్ దిగుమతిని నిర్ధారించండి",
+ "confirmDbImportDesc": "ఇది ప్రస్తుత డేటా మొత్తాన్ని {file} లోని కంటెంట్తో భర్తీ చేస్తుంది. దిగుమతికి ముందు స్వయంచాలకంగా బ్యాకప్ సృష్టించబడుతుంది.",
+ "yesImport": "అవును, దిగుమతి చేయండి",
+ "lastBackup": "చివరి బ్యాకప్",
+ "noBackupYet": "ఇంకా బ్యాకప్ లేదు",
+ "backupNow": "ఇప్పుడే బ్యాకప్ చేయండి",
+ "backupRestore": "బ్యాకప్ & పునరుద్ధరణ",
+ "viewBackups": "బ్యాకప్లను చూడండి",
+ "hide": "దాచు",
+ "backupRetentionDesc": "పునరుద్ధరణకు ముందు, అలాగే డేటా మారినప్పుడు ప్రతి 15 నిమిషాలకు డేటాబేస్ స్నాప్షాట్లు స్వయంచాలకంగా సృష్టించబడతాయి. నిల్వ విధానం: స్మార్ట్ రొటేషన్తో గంటవారీగా 24 + రోజువారీగా 30 బ్యాకప్లు.",
+ "loadingBackups": "బ్యాకప్లు లోడ్ అవుతున్నాయి...",
+ "noBackupsYet": "ఇంకా బ్యాకప్లు అందుబాటులో లేవు. డేటా మారినప్పుడు బ్యాకప్లు స్వయంచాలకంగా సృష్టించబడతాయి.",
+ "backupsAvailable": "{count} బ్యాకప్(లు) అందుబాటులో ఉన్నాయి",
+ "refresh": "రిఫ్రెష్ చేయండి",
+ "confirm": "నిర్ధారించాలా?",
+ "yes": "అవును",
+ "no": "కాదు",
+ "restore": "పునరుద్ధరించండి",
+ "invalidFileType": "చెల్లని ఫైల్ రకం. .sqlite ఫైల్లు మాత్రమే ఆమోదించబడతాయి.",
+ "exportFailed": "ఎగుమతి విఫలమైంది",
+ "exportFailedWithError": "ఎగుమతి విఫలమైంది: {error}",
+ "fullExportFailedWithError": "పూర్తి ఎగుమతి విఫలమైంది: {error}",
+ "backupCreated": "బ్యాకప్ సృష్టించబడింది: {file}",
+ "restoreSuccess": "పునరుద్ధరించబడింది! {connections} కనెక్షన్లు, {nodes} నోడ్లు, {combos} కాంబోలు, {apiKeys} API కీలు.",
+ "importSuccess": "డేటాబేస్ దిగుమతి చేయబడింది! {connections} కనెక్షన్లు, {nodes} నోడ్లు, {combos} కాంబోలు, {apiKeys} API కీలు.",
+ "minutesAgo": "{count}ని క్రితం",
+ "hoursAgo": "{count}గం క్రితం",
+ "daysAgo": "{count}రోజుల క్రితం",
+ "backupReasonManual": "మాన్యువల్",
+ "backupReasonPreRestore": "పునరుద్ధరణకు ముందు",
+ "connectionsCount": "{count, plural, one {# కనెక్షన్} other {# కనెక్షన్లు}}",
+ "noChangesSinceBackup": "చివరి బ్యాకప్ నుంచి మార్పులు లేవు",
+ "backupFailed": "బ్యాకప్ విఫలమైంది",
+ "restoreFailed": "పునరుద్ధరణ విఫలమైంది",
+ "importFailed": "దిగుమతి విఫలమైంది",
+ "errorDuringRestore": "పునరుద్ధరణ సమయంలో లోపం సంభవించింది",
+ "errorDuringImport": "దిగుమతి సమయంలో లోపం సంభవించింది",
+ "modelPricing": "మోడల్ ధరలు",
+ "modelPricingDesc": "ప్రతి మోడల్కు ఖర్చు రేట్లను కాన్ఫిగర్ చేయండి • అన్ని రేట్లు $/1M టోకెన్లలో ఉంటాయి",
"pricingCoverage": "కవరేజ్",
"pricingAuth": "ప్రామాణీకరణ",
"pricingSort": "క్రమబద్ధీకరించండి",
@@ -7325,7 +7332,7 @@
"configured": "కాన్ఫిగర్ చేయబడింది",
"none": "ఏదీ లేదు",
"modelOverrideValuePlaceholder": "సంఖ్యా విలువ",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "ఆంగ్ల కామాలతో వేరు చేసినవి, ఉదా. low, medium, high",
"addKeyValue": "కీ విలువను జోడించండి",
"noModelOverrides": "ఈ మోడల్ కోసం ఎటువంటి ఓవర్రైడ్లు కాన్ఫిగర్ చేయబడలేదు.",
"modelOverrideLoadFailed": "మోడల్ ఓవర్రైడ్లను లోడ్ చేయడం విఫలమైంది",
@@ -7333,66 +7340,66 @@
"modelOverrideRemoved": "మోడల్ ఓవర్రైడ్ తీసివేయబడింది",
"modelOverrideSaveFailed": "మోడల్ ఓవర్రైడ్ను సేవ్ చేయడం విఫలమైంది",
"modelOverrideRemoveFailed": "మోడల్ ఓవర్రైడ్ను తీసివేయడం విఫలమైంది",
- "registry": "Registry",
- "priced": "Priced",
- "searchProvidersModels": "Search providers or models...",
- "showAll": "Show All",
- "noProvidersMatch": "No providers match your search.",
- "howPricingWorks": "How Pricing Works",
- "cacheWrite": "Cache Write",
- "unsaved": "unsaved",
+ "registry": "రిజిస్ట్రీ",
+ "priced": "ధర నిర్ణయించబడింది",
+ "searchProvidersModels": "ప్రొవైడర్లు లేదా మోడళ్లను శోధించండి...",
+ "showAll": "అన్నీ చూపించు",
+ "noProvidersMatch": "మీ శోధనకు సరిపోలే ప్రొవైడర్లు లేరు.",
+ "howPricingWorks": "ధర నిర్ణయం ఎలా పనిచేస్తుంది",
+ "cacheWrite": "క్యాష్ రైట్",
+ "unsaved": "సేవ్ చేయలేదు",
"resetDefaults": "డిఫాల్ట్లను పునఃసెట్టు",
- "saveProvider": "Save Provider",
+ "saveProvider": "ప్రొవైడర్ను సేవ్ చేయండి",
"model": "Model",
- "models": "models",
- "moreProviders": "{count} more providers",
- "withPricing": "with pricing configured",
- "policiesCircuitBreakers": "Policies & Circuit Breakers",
- "activeIssuesDetected": "Active issues detected",
- "off": "Off",
- "resetPricingConfirm": "Reset all pricing for {provider} to defaults?",
- "pricingDescInput": "Input: tokens sent to the model",
- "pricingDescOutput": "Output: tokens generated",
- "pricingDescCached": "Cached: reused input (~50% of input rate)",
- "pricingDescReasoning": "Reasoning: thinking tokens (falls back to Output)",
- "pricingDescCacheWrite": "Cache Write: creating cache entries (falls back to Input)",
- "pricingDescFormula": "Cost = (input × input_rate) + (output × output_rate) + (cached × cached_rate) per million tokens.",
- "pricingSettingsTitle": "Pricing Settings",
- "totalModels": "Total Models",
- "active": "Active",
- "costCalculation": "Cost Calculation",
- "costCalculationDesc": "Costs are calculated based on token usage and pricing rates configured for each model.",
- "pricingFormat": "Pricing Format",
- "pricingFormatDesc": "All rates are in $/1M tokens (dollars per million tokens).",
- "tokenTypes": "Token Types",
- "inputTokenDesc": "Standard prompt tokens",
- "outputTokenDesc": "Completion/response tokens",
- "cachedTokenDesc": "Cached input tokens (typically 50% of input rate)",
- "reasoningTokenDesc": "Special reasoning/thinking tokens (fallback to output rate)",
- "cacheCreationTokenDesc": "Tokens used to create cache entries (fallback to input rate)",
- "customPricingNote": "You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.",
- "editPricing": "Edit Pricing",
- "viewFullDetails": "View Full Details",
- "themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "models": "మోడళ్లు",
+ "moreProviders": "మరో {count} ప్రొవైడర్లు",
+ "withPricing": "ధరలు కాన్ఫిగర్ చేయబడినవి",
+ "policiesCircuitBreakers": "విధానాలు & సర్క్యూట్ బ్రేకర్లు",
+ "activeIssuesDetected": "యాక్టివ్ సమస్యలు గుర్తించబడ్డాయి",
+ "off": "ఆఫ్",
+ "resetPricingConfirm": "{provider} కోసం అన్ని ధరలను డిఫాల్ట్లకు రీసెట్ చేయాలా?",
+ "pricingDescInput": "ఇన్పుట్: మోడల్కు పంపిన టోకెన్లు",
+ "pricingDescOutput": "అవుట్పుట్: రూపొందించిన టోకెన్లు",
+ "pricingDescCached": "క్యాష్ చేయబడినవి: మళ్లీ ఉపయోగించిన ఇన్పుట్ (ఇన్పుట్ రేటులో సుమారు 50%)",
+ "pricingDescReasoning": "రీజనింగ్: ఆలోచనా టోకెన్లు (అవుట్పుట్ను ఫాల్బ్యాక్గా ఉపయోగిస్తుంది)",
+ "pricingDescCacheWrite": "క్యాష్ రైట్: క్యాష్ ఎంట్రీలను సృష్టించడం (ఇన్పుట్ను ఫాల్బ్యాక్గా ఉపయోగిస్తుంది)",
+ "pricingDescFormula": "ఖర్చు = (ఇన్పుట్ × ఇన్పుట్_రేట్) + (అవుట్పుట్ × అవుట్పుట్_రేట్) + (క్యాష్ చేయబడినవి × క్యాష్డ్_రేట్), ప్రతి మిలియన్ టోకెన్లకు.",
+ "pricingSettingsTitle": "ధర సెట్టింగ్లు",
+ "totalModels": "మొత్తం మోడళ్లు",
+ "active": "యాక్టివ్",
+ "costCalculation": "ఖర్చు గణన",
+ "costCalculationDesc": "ప్రతి మోడల్కు కాన్ఫిగర్ చేసిన టోకెన్ వినియోగం మరియు ధర రేట్ల ఆధారంగా ఖర్చులు లెక్కించబడతాయి.",
+ "pricingFormat": "ధర ఫార్మాట్",
+ "pricingFormatDesc": "అన్ని రేట్లు $/1M టోకెన్లలో ఉంటాయి (ప్రతి మిలియన్ టోకెన్లకు డాలర్లు).",
+ "tokenTypes": "టోకెన్ రకాలు",
+ "inputTokenDesc": "ప్రామాణిక ప్రాంప్ట్ టోకెన్లు",
+ "outputTokenDesc": "పూర్తి/ప్రతిస్పందన టోకెన్లు",
+ "cachedTokenDesc": "క్యాష్ చేసిన ఇన్పుట్ టోకెన్లు (సాధారణంగా ఇన్పుట్ రేటులో 50%)",
+ "reasoningTokenDesc": "ప్రత్యేక రీజనింగ్/ఆలోచనా టోకెన్లు (అవుట్పుట్ రేటును ఫాల్బ్యాక్గా ఉపయోగిస్తాయి)",
+ "cacheCreationTokenDesc": "క్యాష్ ఎంట్రీలను సృష్టించడానికి ఉపయోగించే టోకెన్లు (ఇన్పుట్ రేటును ఫాల్బ్యాక్గా ఉపయోగిస్తాయి)",
+ "customPricingNote": "నిర్దిష్ట మోడళ్ల కోసం మీరు డిఫాల్ట్ ధరలను ఓవర్రైడ్ చేయవచ్చు. కస్టమ్ ఓవర్రైడ్లకు ఆటోమేటిక్గా గుర్తించిన ధరల కంటే ప్రాధాన్యత ఉంటుంది.",
+ "editPricing": "ధరలను సవరించండి",
+ "viewFullDetails": "పూర్తి వివరాలను చూడండి",
+ "themeCoral": "కోరల్",
+ "adaptiveVolumeRouting": "అనుకూల వాల్యూమ్ రూటింగ్",
+ "adaptiveVolumeRoutingDesc": "పేలోడ్ వాల్యూమ్ మరియు త్రూపుట్ ఒత్తిడి ఆధారంగా కనెక్షన్లను డైనమిక్గా స్కేల్ చేయండి.",
+ "lkgpToggleTitle": "చివరిగా విజయవంతమైన ప్రొవైడర్ (LKGP)",
+ "lkgpToggleDesc": "ప్రారంభించినప్పుడు, చివరిగా విజయవంతమైన ప్రతిస్పందనను అందించిన ప్రొవైడర్ను రౌటర్ గుర్తుంచుకుని, తదుపరి అభ్యర్థనల్లో ముందుగా దానినే ప్రయత్నిస్తుంది.",
"echoRequestedModelTitle": "ప్రతిస్పందనలలో అభ్యర్థించిన మోడల్ పేరును ఎకో చేయండి",
"echoRequestedModelDesc": "ప్రారంభించినప్పుడు, ప్రతిస్పందన `model` ఫీల్డ్ అప్స్ట్రీమ్ మోడల్ పేరుకు బదులుగా క్లయింట్ అభ్యర్థించిన అలియాస్ లేదా కాంబో పేరును చూపుతుంది. అభ్యర్థనతో మోడల్ సరిపోలని ప్రతిస్పందనను తిరస్కరించే ఖచ్చితమైన క్లయింట్లను (ఉదా. Claude Desktop) ఇది పరిష్కరిస్తుంది.",
"webSearchRouteTitle": "వెబ్ శోధన రూటింగ్",
"webSearchRouteDesc": "అభ్యర్థనలో స్థానిక web_search సాధనం ఉన్నప్పుడు, డిఫాల్ట్కు బదులుగా మొత్తం అభ్యర్థనను ఈ మోడల్కు రూట్ చేయండి — Anthropic యొక్క web_search సర్వర్ సాధనాన్ని అమలు చేయని ప్రొవైడర్లకు ఇది ఉపయోగపడుతుంది. నిలిపివేయడానికి ఖాళీగా ఉంచండి.",
"webSearchRoutePlaceholder": "మోడల్ను శోధించండి లేదా ఎంచుకోండి…",
"paidModelPatternWarning": "ఈ నమూనా చెల్లింపు మోడళ్లకు మాత్రమే సరిపోలుతుంది — చెల్లింపు మోడళ్లను ప్రారంభించండి లేదా నమూనాను సర్దుబాటు చేయండి.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP క్యాష్ను క్లియర్ చేయి",
+ "lkgpCacheCleared": "LKGP క్యాష్ విజయవంతంగా క్లియర్ చేయబడింది",
+ "lkgpCacheClearFailed": "LKGP క్యాష్ను క్లియర్ చేయడం విఫలమైంది",
+ "days": "రోజులు",
+ "lkgp": "LKGP మోడ్",
+ "lkgpDesc": "చివరిగా విజయవంతమైన ప్రొవైడర్ (ఊహించదగిన స్థితిస్థాపకత)",
+ "maintenance": "నిర్వహణ",
+ "purgeExpiredLogs": "గడువు ముగిసిన లాగ్లను తొలగించు",
+ "purgeLogsFailed": "లాగ్లను తొలగించడం విఫలమైంది",
"logsDeleted": "{count, plural, =0 {గడువు ముగిసిన లాగ్లు ఏవీ తొలగించబడలేదు} one {# గడువు ముగిసిన లాగ్ తొలగించబడింది} other {# గడువు ముగిసిన లాగ్లు తొలగించబడ్డాయి}}",
"resetUsageData": "వినియోగ డేటాను రీసెట్ చేయండి",
"resetUsageDataDesc": "మీరు ఎంత మునుపటి వరకు వినియోగం, అభ్యర్థన లాగ్లు మరియు విశ్లేషణల డేటాను తొలగించాలనుకుంటున్నారో ఎంచుకోండి. ప్రొవైడర్ కాన్ఫిగరేషన్, కనెక్షన్లు, API కీలు, కాంబోలు మరియు సెట్టింగ్లు భద్రపరచబడతాయి. ఈ చర్యను రద్దు చేయడం సాధ్యం కాదు.",
@@ -7409,63 +7416,63 @@
"resetUsageFailed": "వినియోగ డేటాను రీసెట్ చేయడం విఫలమైంది",
"reset": "రీసెట్ చేయండి",
"resetting": "రీసెట్ చేస్తోంది...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
- "clearSyncedPricingConfirm": "Clear all synced pricing data? Provider defaults will be used instead.",
- "clearSyncedPricingFailed": "Failed to clear synced pricing",
- "pricingSourceUser": "User Override",
- "pageDescription": "Manage application settings, model aliases, pricing, and routing rules",
- "pricingSyncStatus": "Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
- "pricingLoadFailed": "Failed to load pricing data",
- "pricingSyncDescription": "Automatically sync model pricing from external sources to keep cost calculations accurate",
- "clearSyncedPricingSuccess": "Synced pricing data cleared",
- "clearSyncedPricingFailedWithReason": "Failed to clear pricing: {reason}",
- "pricingSourceDefault": "Built-in Default",
- "pricingSyncSuccess": "Pricing synced successfully",
- "enableSyncError": "Failed to toggle pricing sync",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "contextOpt": "సందర్భానికి అనుకూలీకరించబడింది",
+ "contextOptDesc": "సందర్భ విండో అవసరాలు మరియు సంభాషణ పొడవు ఆధారంగా రూట్ చేస్తుంది",
+ "cacheOpt": "క్యాష్కు అనుకూలీకరించబడింది",
+ "cacheOptDesc": "అదే పునర్వినియోగ ప్రాంప్ట్ ప్రిఫిక్స్ను అదే ప్రొవైడర్ ఖాతాలో ఉంచుతుంది",
+ "priorityDesc": "క్రమానుగత ఫాల్బ్యాక్ — మొదట ప్రొవైడర్ 1ను, ఆపై ప్రొవైడర్ 2ను, తదితరంగా ప్రయత్నిస్తుంది",
+ "weightedDesc": "ప్రొవైడర్ల మధ్య శాతపు వెయిట్ల ప్రకారం ట్రాఫిక్ను పంపిణీ చేస్తుంది",
+ "modelRoutingTitle": "మోడల్ రూటింగ్ నియమాలు",
+ "modelRoutingDesc": "గ్లోబ్ నమూనాలను ఉపయోగించి మోడళ్లను నిర్దిష్ట కాంబోలకు స్వయంచాలకంగా రూట్ చేస్తుంది",
+ "addRule": "నియమాన్ని జోడించు",
+ "routeToCombo": "కాంబోకు రూట్ చేయి",
+ "selectCombo": "కాంబోను ఎంచుకోండి...",
+ "priorityHint": "ఎక్కువ విలువ = ముందుగా తనిఖీ చేయబడుతుంది. నిర్దిష్ట నమూనాల కోసం 10+ ఉపయోగించండి.",
+ "patternHint": "ఏవైనా అక్షరాల కోసం *, ఒక్క అక్షరం కోసం ? ఉపయోగించండి. అక్షరాల కేస్ను పరిగణించదు.",
+ "noRoutingRules": "రూటింగ్ నియమాలు ఏవీ కాన్ఫిగర్ చేయబడలేదు. డిఫాల్ట్గా అభ్యర్థనలు గ్లోబల్ కాంబోను ఉపయోగిస్తాయి.",
+ "routingRuleHint": "అభ్యర్థనలను స్వయంచాలకంగా రూట్ చేయడానికి claude-opus* -> frontier-combo వంటి నియమాన్ని జోడించండి.",
+ "deleteRoutingRule": "ఈ మోడల్ రూటింగ్ నియమాన్ని తొలగించాలా?",
+ "exactMatchMode": "ఖచ్చితమైన సరిపోలిక",
+ "wildcardPatternMode": "వైల్డ్కార్డ్ నమూనా",
+ "exactMatchModeDesc": "వాడుకలో లేని లేదా పేరు మార్చబడిన మోడల్ IDల కోసం ఖచ్చితమైన అలియాస్లను ఉపయోగించండి.",
+ "wildcardPatternModeDesc": "మోడళ్ల సమూహాన్ని ఒకే లక్ష్యానికి మ్యాప్ చేయాల్సి ఉన్నప్పుడు * మరియు ?తో వైల్డ్కార్డ్ అలియాస్లను ఉపయోగించండి.",
+ "noExactAliasesConfigured": "ఖచ్చిత-సరిపోలిక అలియాస్లు ఏవీ కాన్ఫిగర్ చేయబడలేదు.",
+ "wildcardRulesTitle": "వైల్డ్కార్డ్ నియమాలు",
+ "noWildcardAliasesConfigured": "వైల్డ్కార్డ్ అలియాస్లు ఏవీ కాన్ఫిగర్ చేయబడలేదు.",
+ "overview": "అవలోకనం",
+ "unknownError": "తెలియని లోపం",
+ "pricingSourceLiteLLM": "LiteLLM (కమ్యూనిటీ)",
+ "clearSyncedPricingConfirm": "సింక్ చేసిన మొత్తం ధరల డేటాను క్లియర్ చేయాలా? బదులుగా ప్రొవైడర్ డిఫాల్ట్లు ఉపయోగించబడతాయి.",
+ "clearSyncedPricingFailed": "సింక్ చేసిన ధరలను క్లియర్ చేయడం విఫలమైంది",
+ "pricingSourceUser": "వినియోగదారు ఓవర్రైడ్",
+ "pageDescription": "అప్లికేషన్ సెట్టింగ్లు, మోడల్ మారుపేర్లు, ధరలు మరియు రూటింగ్ నియమాలను నిర్వహించండి",
+ "pricingSyncStatus": "సింక్ స్థితి",
+ "whitelist": "అనుమతి జాబితా",
+ "syncDisabled": "సింక్ నిలిపివేయబడింది",
+ "pricingLoadFailed": "ధరల డేటాను లోడ్ చేయడం విఫలమైంది",
+ "pricingSyncDescription": "ఖర్చు లెక్కింపులను ఖచ్చితంగా ఉంచడానికి బాహ్య మూలాల నుండి మోడల్ ధరలను స్వయంచాలకంగా సింక్ చేయండి",
+ "clearSyncedPricingSuccess": "సింక్ చేసిన ధరల డేటా తొలగించబడింది",
+ "clearSyncedPricingFailedWithReason": "ధరలను తొలగించడం విఫలమైంది: {reason}",
+ "pricingSourceDefault": "అంతర్నిర్మిత డిఫాల్ట్",
+ "pricingSyncSuccess": "ధరలు విజయవంతంగా సింక్ అయ్యాయి",
+ "enableSyncError": "ధరల సింక్ను టోగుల్ చేయడం విఫలమైంది",
+ "syncEnabled": "సింక్ ప్రారంభించబడింది",
+ "blacklist": "నిషేధిత జాబితా",
"pricingSourceModelsDev": "Models.dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
- "pricingSyncTitle": "Pricing Sync",
- "pricingResetFailedWithReason": "Failed to reset pricing: {reason}",
- "tab": "Tab",
- "pricingSavedProvider": "Pricing saved for {provider}",
- "pricingSyncFailed": "Pricing sync failed",
- "pricingSaveFailedWithReason": "Failed to save pricing: {reason}",
- "pricingResetProvider": "Pricing reset for {provider}",
- "nextSync": "Next Sync",
- "pricingSyncFailedWithReason": "Pricing sync failed: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "syncedModels": "సింక్ చేసిన మోడళ్లు",
+ "budget": "బడ్జెట్",
+ "pricingSyncTitle": "ధరల సింక్",
+ "pricingResetFailedWithReason": "ధరలను రీసెట్ చేయడం విఫలమైంది: {reason}",
+ "tab": "ట్యాబ్",
+ "pricingSavedProvider": "{provider} కోసం ధరలు సేవ్ చేయబడ్డాయి",
+ "pricingSyncFailed": "ధరల సింక్ విఫలమైంది",
+ "pricingSaveFailedWithReason": "ధరలను సేవ్ చేయడం విఫలమైంది: {reason}",
+ "pricingResetProvider": "{provider} కోసం ధరలు రీసెట్ చేయబడ్డాయి",
+ "nextSync": "తదుపరి సింక్",
+ "pricingSyncFailedWithReason": "ధరల సింక్ విఫలమైంది: {reason}",
+ "clearSyncedPricing": "సింక్ చేసిన ధరలను తొలగించండి",
+ "compressionTitle": "ప్రాంప్ట్ కుదింపు",
+ "compressionDesc": "ప్రొవైడర్లకు పంపే ముందు ప్రాంప్ట్లను కుదించడం ద్వారా టోకెన్ వినియోగాన్ని తగ్గించండి",
"compressionGuidanceFullGuideLink": "పూర్తి కంప్రెషన్ గైడ్",
"compressionGuidanceShow": "వివరాలు",
"compressionGuidanceHide": "వివరాలను దాచండి",
@@ -7481,13 +7488,13 @@
"tokenSaverInputCompressionDesc": "కోడ్, URLలు మరియు ఉద్దేశాన్ని భద్రపరుస్తూనే అర్హత ఉన్న చాట్ హిస్టరీని తిరిగి రాయండి.",
"tokenSaverFineTunePrefix": "ప్రతి ఇంజిన్ను ఇక్కడ ఫైన్-ట్యూన్ చేయండి",
"tokenSaverFineTuneSuffix": "లేదా ప్రతి అభ్యర్థనకు ఇంజిన్లను ఇక్కడ కలపండి",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
+ "compressionMode": "కుదింపు మోడ్",
+ "compressionModeOff": "ఆఫ్",
+ "compressionModeOffDesc": "ఎటువంటి కుదింపు వర్తించదు",
+ "compressionModeLite": "లైట్",
+ "compressionModeLiteDesc": "ఖాళీ స్థలాలు మరియు ఖాళీ పంక్తుల తగ్గింపు",
+ "compressionModeStandard": "ప్రామాణికం (Caveman)",
+ "compressionModeStandardDesc": "30+ నమూనాలతో నియమ-ఆధారిత కుదింపు; కోడ్ బ్లాక్లు మరియు URLsను యథాతథంగా ఉంచుతుంది",
"compressionModeAggressive": "దూకుడు",
"compressionModeAggressiveDesc": "గరిష్ట పొదుపు కోసం సారాంశం + సాధనం ఫలితం కుదింపు + ప్రగతిశీల వృద్ధాప్యం",
"compressionModeUltra": "అల్ట్రా",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "ప్రతి వృద్ధాప్య శ్రేణిలో ఉంచబడిన ఇటీవలి సందేశాల సంఖ్య (అధిక = మరింత సంరక్షించబడినది)",
"compressionToolStrategies": "సాధన ఫలితాల వ్యూహాలు",
"compressionToolStrategiesDesc": "విభిన్న సాధన ఫలితాల రకాల కోసం కుదింపు వ్యూహాలను టోగుల్ చేయండి",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "సాధారణ సెట్టింగ్లు",
+ "compressionAutoTrigger": "ఆటో-ట్రిగర్ పరిమితి",
+ "compressionCacheTTL": "క్యాష్ TTL",
+ "compressionPreserveSystem": "సిస్టమ్ ప్రాంప్ట్ను యథాతథంగా ఉంచండి",
"compressionPreserveSystemAlways": "ఎల్లప్పుడూ",
"compressionPreserveSystemWhenNoCache": "కాష్ లేనప్పుడు",
"compressionPreserveSystemNever": "ఎప్పుడూ వద్దు",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "సేవ్ చేయబడింది",
"compressionExclusionsCount": "{count, plural, one {# మినహాయింపు} other {# మినహాయింపులు}} కాన్ఫిగర్ చేయబడింది",
"compressionExclusionsEmpty": "ఎలాంటి మినహాయింపులు కాన్ఫిగర్ చేయబడలేదు — ప్రతి మోడల్/ఎండ్పాయింట్ కంప్రెషన్కు అర్హత కలిగి ఉంది (డిఫాల్ట్ ప్రవర్తన).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman ఇంజిన్ కాన్ఫిగరేషన్",
+ "compressionCavemanConfigDesc": "నియమ-ఆధారిత కంప్రెషన్ ఇంజిన్ను మెరుగ్గా సర్దుబాటు చేయండి",
"compressionCavemanPanelHint": "దీని ఆన్/ఆఫ్ మరియు స్థాయి ప్యానెల్లో సెట్ చేయబడతాయి:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "సందేశ పాత్రలను కంప్రెస్ చేయండి",
+ "compressionRoleUser": "వినియోగదారు",
+ "compressionRoleAssistant": "సహాయకుడు",
+ "compressionRoleSystem": "సిస్టమ్",
+ "compressionMinLength": "కనిష్ఠ సందేశ నిడివి",
+ "compressionSkipRules": "కంప్రెషన్ నియమాలను దాటవేయండి",
+ "compressionSkipRulesDesc": "కంప్రెషన్ సమయంలో నియమాలను దాటవేయడానికి వాటిపై క్లిక్ చేయండి",
+ "compressionPreservePatterns": "నమూనాలను యథాతథంగా ఉంచండి",
+ "compressionPreservePatternsDesc": "ఎప్పటికీ కంప్రెస్ చేయని Regex నమూనాలు (పంక్తికి ఒకటి)",
+ "compressionLogTitle": "కంప్రెషన్ లాగ్",
+ "compressionLogEmpty": "ఇంకా కంప్రెస్ చేసిన అభ్యర్థనలు లేవు. కంప్రెషన్ ప్రారంభించబడి అభ్యర్థనలు ప్రాసెస్ చేయబడినప్పుడు కంప్రెషన్ గణాంకాలు ఇక్కడ కనిపిస్తాయి.",
"minutes": "నిమిషాలు",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "కమాండ్-అవగాహనతో కూడిన టూల్ అవుట్పుట్ ఫిల్టరింగ్",
+ "compressionModeCodexResponses": "Responses టూల్ అవుట్పుట్",
+ "compressionModeCodexResponsesDesc": "అర్హత కలిగిన shell, patch, search, build మరియు JSON అవుట్పుట్ల కోసం పరిమిత కంప్రెషన్",
+ "compressionModeStacked": "స్టాక్డ్",
+ "compressionModeStackedDesc": "RTK టూల్-అవుట్పుట్ ఫిల్టరింగ్ తర్వాత Caveman సందేశ కంప్రెషన్",
+ "qdrantTitle": "Qdrant (వెక్టర్ మెమరీ)",
+ "qdrantDesc": "ఐచ్ఛికం. వేగవంతమైన రిట్రీవల్ కోసం బాహ్య వెక్టర్ డేటాబేస్లో సెమాంటిక్ మెమరీలను ఇండెక్స్ చేస్తుంది.",
+ "qdrantStatusActive": "సక్రియం",
+ "qdrantStatusError": "లోపం",
+ "qdrantStatusDisabled": "నిలిపివేయబడింది",
+ "qdrantEnable": "Qdrantను ప్రారంభించండి",
+ "qdrantEnableDesc": "ప్రారంభించినప్పుడు, మెమరీలను రిట్రీవ్ చేయడానికి సెమాంటిక్/హైబ్రిడ్ వ్యూహం Qdrantను ఉపయోగించగలదు.",
+ "qdrantTesting": "పరీక్షిస్తోంది...",
+ "qdrantTestConnection": "కనెక్షన్ను పరీక్షించండి",
+ "qdrantSaved": "కాన్ఫిగరేషన్ సేవ్ చేయబడింది",
+ "qdrantSaveError": "కాన్ఫిగరేషన్ను సేవ్ చేయడం విఫలమైంది",
+ "qdrantHostHint": "పోర్ట్ లేకుండా. ఉదాహరణ: 127.0.0.1 లేదా http://qdrant",
+ "qdrantPort": "పోర్ట్",
+ "qdrantPortHint": "Qdrant డిఫాల్ట్: 6333",
+ "qdrantCollectionHint": "మెమరీ పాయింట్లు నిల్వ చేయబడే స్థానం.",
+ "qdrantEmbeddingModel": "ఎంబెడింగ్ మోడల్",
+ "qdrantHelpTitle": "త్వరిత సెటప్ సహాయం",
+ "qdrantHelpQuickTitle": "త్వరిత సెటప్ (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. హోస్ట్: Qdrant IP/URL, పోర్ట్: 6333, కలెక్షన్: omniroute_memory.",
+ "qdrantHelpStep2": "2. nvidia/llama-nemotron-embed-vl-1b-v2:free ఉపయోగిస్తుంటే, కలెక్షన్ డైమెన్షన్ 2048ను ఉపయోగించండి.",
+ "qdrantHelpStep3": "3. మోడల్ ఫీల్డ్: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. సేవ్ చేసి, కనెక్షన్ను పరీక్షించి, ఆపై శోధనను పరీక్షించండి.",
+ "qdrantEmbeddingQuickSelect": "కనుగొన్న మోడళ్ల నుండి త్వరగా ఎంచుకోండి...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "ఫార్మాట్: provider/model. ప్రొవైడర్ క్రెడెన్షియల్ తప్పనిసరిగా కాన్ఫిగర్ చేయాలి.",
+ "qdrantApiKeyPlaceholderKeep": "(ప్రస్తుత కీని అలాగే ఉంచడానికి ఖాళీగా వదిలేయండి)",
+ "qdrantApiKeyPlaceholderOptional": "(ఉపయోగించకపోతే ఖాళీగా వదిలేయండి)",
+ "qdrantSaveHint": "చిట్కా: host/port/collection/modelను సవరించి, సేవ్ క్లిక్ చేయండి. API కీ ఐచ్ఛికం.",
+ "qdrantSearchTestTitle": "శోధన పరీక్ష",
+ "qdrantSearchTestDesc": "ఎంబెడింగ్ను రూపొందించి Qdrantలో శోధిస్తుంది.",
+ "qdrantSearchPlaceholder": "ఉదాహరణ: వినియోగదారు ప్రాధాన్యతలు, చరిత్ర మొదలైనవి",
+ "qdrantNoResults": "ఫలితాలు లేవు (లేదా Qdrant కాన్ఫిగర్ చేయబడలేదు).",
+ "qdrantCleanupTitle": "నిల్వ వ్యవధి మరియు శుభ్రపరచడం",
+ "qdrantCleanupDesc": "దీని ఆధారంగా గడువు ముగిసిన మరియు పాత పాయింట్లను తొలగిస్తుంది",
+ "searching": "శోధిస్తోంది...",
+ "cleaning": "శుభ్రపరుస్తోంది...",
+ "cleanNow": "ఇప్పుడే శుభ్రపరచండి",
"optional": "ఐచ్ఛికం",
"current": "ప్రస్తుత",
"remove": "తొలగించు",
@@ -7596,19 +7603,19 @@
"resilienceScope": "పరిధి:",
"resilienceTrigger": "ట్రిగ్గర్:",
"resilienceEffect": "ప్రభావం:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "అభ్యర్థన క్యూ & రేటు",
+ "resilienceAutoEnableApiKeyProviders": "API-key ప్రొవైడర్ల కోసం స్వయంచాలకంగా ప్రారంభించండి",
+ "resilienceRequestsPerMinute": "నిమిషానికి అభ్యర్థనలు",
+ "resilienceMinTimeBetweenRequests": "అభ్యర్థనల మధ్య కనిష్ఠ సమయం",
+ "resilienceConcurrentRequests": "ఏకకాల అభ్యర్థనలు",
+ "resilienceConnectionScopeConcurrentRequests": "కనెక్షన్/కోటా పరిధికి ఏకకాల అభ్యర్థనలు",
+ "resilienceGlobalConcurrentRequests": "గ్లోబల్ ఏకకాల అప్స్ట్రీమ్ అభ్యర్థనలు (0 = నిలిపివేయబడింది)",
"resilienceMaxQueueWaitTime": "గరిష్ట క్యూ నిరీక్షణ సమయం",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "ప్రాథమిక కూల్డౌన్",
+ "resilienceUseUpstreamRetryHints": "అప్స్ట్రీమ్ రీట్రై సూచనలను ఉపయోగించండి",
+ "resilienceDefaultPerProvider": "డిఫాల్ట్ (ప్రతి ప్రొవైడర్కు)",
+ "resilienceAlwaysOn": "ఎల్లప్పుడూ ఆన్",
+ "resilienceAlwaysOff": "ఎల్లప్పుడూ ఆఫ్",
"routingRemoveEntry": "ఎంట్రీని తీసివేయండి",
"routingNeedlesSubstrings": "సూదులు (సరిపోలడానికి సబ్స్ట్రింగ్లు)",
"routingCaseSensitive": "కేస్ సెన్సిటివ్",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "సంగ్రహించిన వివరణ అసలు అభ్యర్థనలోకి తిరిగి ఇంజెక్ట్ చేయడానికి ముందు విజన్ మోడల్కు పంపబడుతుంది.",
"visionBridgeTimeoutMs": "గడువు ముగిసింది (మిసె)",
"visionBridgeMaxImagesPerRequest": "ప్రతి అభ్యర్థనకు గరిష్ట చిత్రాలు",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "గరిష్ఠ బ్యాక్ఆఫ్ దశలు",
+ "resilienceProviderBreakerTitle": "ప్రతి ప్రొవైడర్కు సర్క్యూట్ బ్రేకర్",
+ "resilienceFailureThreshold": "వైఫల్య పరిమితి",
+ "resilienceDegradationThreshold": "క్షీణత పరిమితి",
"resilienceResetTimeout": "గడువు ముగిసింది",
"resilienceFailureThresholdLabel": "వైఫల్యం థ్రెషోల్డ్",
"resilienceResetTimeoutLabel": "గడువు ముగిసింది",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "కనెక్షన్ కూల్డౌన్",
"resilienceUseUpstreamRetryHintsLabel": "అప్స్ట్రీమ్ మళ్లీ ప్రయత్నించే సూచనలను ఉపయోగించండి",
"resilienceUseUpstream429BreakerLabel": "అప్స్ట్రీమ్ 429 సూచనలను ఉపయోగించండి (బ్రేకర్)",
"resilienceMaxBackoffStepsLabel": "గరిష్ట బ్యాక్ఆఫ్ దశలు",
"resilienceYes": "అవును",
"resilienceNo": "నం",
- "resilienceDefault": "Default",
+ "resilienceDefault": "డిఫాల్ట్",
"storageDatabaseBackupRetention": "డేటాబేస్ బ్యాకప్ నిలుపుదల",
"storageDatabaseBackups": "డేటాబేస్ బ్యాకప్లు",
"storageBackupRetentionDescription": "ఆటోమేటిక్ SQLite బ్యాకప్లు ఇందులో నిల్వ చేయబడతాయి",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "లెగసీ JSON విజయవంతంగా దిగుమతి చేయబడింది!",
"jsonImportFailed": "JSON దిగుమతి చేయడం విఫలమైంది",
"jsonImportError": "JSON దిగుమతి సమయంలో లోపం ఏర్పడింది",
+ "jsonImportAuthRequired": "పాత JSON కాన్ఫిగరేషన్ను దిగుమతి చేయడానికి ప్రామాణీకరణ అవసరం. దయచేసి ముందుగా సైన్ ఇన్ చేయండి లేదా సెటప్ను పూర్తి చేయండి.",
+ "databaseSettingsAuthRequiredTitle": "ప్రామాణీకరణ అవసరం",
+ "databaseSettingsAuthRequiredBody": "డేటాబేస్ సెట్టింగ్లు మరియు JSON దిగుమతి ప్రామాణీకరించబడిన అడ్మిన్కు మాత్రమే అందుబాటులో ఉంటాయి. వాటిని వీక్షించడానికి మరియు సవరించడానికి సైన్ ఇన్ చేయండి లేదా సెటప్ను పూర్తి చేయండి.",
+ "databaseSettingsAuthRequiredCta": "సైన్ ఇన్",
"storagePurgeData": "డేటాను ప్రక్షాళన చేయండి",
"storagePurgeDataDesc": "రిటెన్షన్ తనిఖీలను వర్తింపజేయకుండా వెంటనే అన్ని రికార్డులను తొలగించండి. జాగ్రత్తగా ఉపయోగించండి.",
"storageRetentionCleanup": "రిటెన్షన్ సెట్టింగ్లు",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "మోడ్: {mode}",
"compressionAdaptiveOff": "అడాప్టివ్ కాంటెక్స్ట్ బడ్జెట్: ఆఫ్ (లెగసీ ఆటో-ట్రిగ్గర్)",
"compressionAdaptiveTarget": "అడాప్టివ్ ({mode}, పాలసీ: {policy}) — టార్గెట్ ≈ {target, number} టోకెన్లు ({contextLimit, number}-టోకెన్ విండో కోసం)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "అనుకూల సందర్భ బడ్జెట్",
+ "compressionAdaptiveModeOff": "ఆఫ్ (పాత ఆటో-ట్రిగ్గర్)",
+ "compressionAdaptiveModeFloor": "కనిష్ఠ పరిమితి (ఎల్లప్పుడూ సరిపోవడాన్ని నిర్ధారిస్తుంది)",
+ "compressionAdaptiveModeReplace": "ఆటో-ట్రిగ్గర్ను భర్తీ చేయండి",
+ "compressionAdaptivePolicy": "బడ్జెట్ విధానం",
+ "compressionAdaptivePolicyReserve": "అవుట్పుట్ కోసం రిజర్వ్ చేయండి",
+ "compressionAdaptivePolicyPercentage": "విండో శాతం",
+ "compressionAdaptivePolicyAbsolute": "నిర్దిష్ట టోకెన్ బడ్జెట్",
"compressionOutputStylesDescription": "ప్రొవైడర్ అవుట్పుట్ను తిరిగి రాయకుండా రెస్పాన్స్-షేపింగ్ సూచనలను ఇంజెక్ట్ చేయండి. స్వేచ్ఛగా కలపండి.",
"mcpAccessibilityDescription": "MCP టూల్ అవుట్పుట్లను స్కోప్ చేస్తుంది (ప్రత్యేక స్టోర్).",
"compressionStylesTileSummary": "{tokens, number} టోకెన్లు ఆదా చేయబడ్డాయి · {runs, plural, one {# రన్ స్టైల్ చేయబడింది} other {# రన్లు స్టైల్ చేయబడ్డాయి}}",
@@ -7862,8 +7873,8 @@
"description": "కమాండ్-అవుట్పుట్ ఫిల్టరింగ్."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses టూల్ అవుట్పుట్",
+ "description": "మద్దతు ఉన్న Responses టూల్ అవుట్పుట్ల కోసం సురక్షిత కంప్రెషన్."
},
"headroom": {
"label": "హెడ్రూమ్",
@@ -7904,12 +7915,12 @@
"description": "YAGNI లాడర్: చిన్న పని మార్పు, అభ్యర్థించని అబ్స్ట్రాక్షన్లు లేవు."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (బద్ధకస్తుడైన సీనియర్ డెవలపర్)",
+ "description": "బద్ధకస్తుడైన సీనియర్ డెవలపర్ క్రమశిక్షణ: YAGNI నిచ్చెనను ఎక్కండి, మూల కారణాన్ని పరిష్కరించండి, పనిచేసే అతి చిన్న diffను ఉపయోగించండి."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "నాకు ADHD ఉంది (చర్య-ముందు)",
+ "description": "చర్య-ముందు అవుట్పుట్: తదుపరి చర్యను ముందుగా చూపించండి, దశలకు సంఖ్యలు ఇవ్వండి, ఒక స్పష్టమైన తదుపరి దశను ఇవ్వండి, ఉపోద్ఘాతం వద్దు."
},
"terse-cjk": {
"label": "సంక్షిప్త CJK (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI ఫాల్బ్యాక్",
"cliproxyapiEnableFallback": "CLIProxyAPI ఫాల్బ్యాక్ని ప్రారంభించండి",
"cliproxyapiUrl": "CLIProxyAPI URL",
+ "headroomProxyTitle": "Headroom ప్రాక్సీ",
+ "headroomProxyDesc": "ఐచ్ఛిక Headroom టోకెన్-సేవర్ ప్రాక్సీ URL. ఖాళీగా ఉంటే HEADROOM_URL లేదా http://localhost:8787 ఉపయోగించబడుతుంది.",
+ "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrlHint": "లూప్బ్యాక్ URLలను ఈ పేజీ నుండి ప్రారంభించవచ్చు. బాహ్య URLలు కేవలం తనిఖీ చేయబడతాయి.",
+ "headroomProxySave": "సేవ్ చేయండి",
+ "headroomProxyStart": "ప్రారంభించండి",
+ "headroomProxyStop": "ఆపండి",
+ "headroomProxyExternalHint": "ఈ URL లూప్బ్యాక్ కాదు, కాబట్టి OmniRoute స్థానిక CLIని ప్రారంభించదు.",
"cliproxyapiStatus": "CLIProxyAPI స్థితి",
"cliproxyapiNotDetected": "గుర్తించబడలేదు",
"cliproxyapiImportAuthTitle": "CLIProxyAPI నుండి ఖాతాలను దిగుమతి చేయండి",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "ప్రపంచవ్యాప్తంగా ఇంజెక్ట్ service_tier=OpenAI కోడెక్స్ అభ్యర్థనలకు ప్రాధాన్యత.",
"codexFastTierHint": "ప్రారంభించబడినప్పుడు, OmniRoute ఇప్పటికే టైర్ను పేర్కొనని కనెక్షన్ల కోసం అవుట్బౌండ్ కోడెక్స్ అభ్యర్థనలకు service_tier=ప్రాధాన్యతను జోడిస్తుంది. ప్రాధాన్యతా స్థాయికి OpenAI ఎంటర్ప్రైజ్ API కీ లేదా ChatGPT-auth కోడెక్స్ పాత్ అవసరం; ఇతర కీలక రకాలు OpenAI నుండి టైర్-సంబంధిత ఎర్రర్ను అందుకుంటాయి. కోడెక్స్ ప్రొవైడర్ పేజీలోని ప్రతి-కనెక్షన్ సెట్టింగ్లు ప్రాధాన్యతనిస్తాయి.",
"codexFastTierSaveError": "కోడెక్స్ ఫాస్ట్ టైర్ సెట్టింగ్ని అప్డేట్ చేయడంలో విఫలమైంది",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex కోటా ఆటో-పింగ్",
+ "codexAutoPingDesc": "ప్రతి కనెక్షన్కు ఎంపిక చేసుకోవచ్చు: Codex సెషన్ విండో రీసెట్ అయిన వెంటనే ఒక చిన్న అభ్యర్థనను పంపుతుంది, తద్వారా మీకు అవసరమైనప్పుడు అది కోల్డ్గా ఉండదు.",
+ "codexAutoPingWarning": "ప్రతి పింగ్కు కొద్దిపాటి వాస్తవ Codex కోటా వినియోగించబడుతుంది. డిఫాల్ట్గా ఆఫ్లో ఉంటుంది — మీరు చురుకుగా ఆధారపడే కనెక్షన్లకు మాత్రమే ప్రారంభించండి.",
+ "codexAutoPingSaveError": "Codex ఆటో-పింగ్ సెట్టింగ్ను నవీకరించడం విఫలమైంది",
+ "codexAutoPingToggleAria": "{connection} కోసం Codex కోటా ఆటో-పింగ్ను టాగుల్ చేయండి",
"codexFastTierTierLabel": "సర్వీస్ టైర్",
"codexFastTierTierPriority": "ప్రాధాన్యత",
"codexFastTierTierFlex": "ఫ్లెక్స్",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "గ్లోబల్ తనిఖీ విరామం",
"resilienceCredentialHealthEveryMinutes": "ప్రతి {minutes} నిమి",
"resilienceCredentialHealthHint": "0 నేపథ్య స్కాన్ను ఆపుతుంది (గరిష్ఠం 1440 నిమి = 24 గం). స్వంత ఆరోగ్య తనిఖీ విలువ ఉన్న కనెక్షన్లు ఈ గ్లోబల్ డిఫాల్ట్ను విస్మరిస్తాయి; ఒక కనెక్షన్పై 0 గ్లోబల్ స్కాన్ ఆన్లో ఉన్నా దాన్ని మినహాయిస్తుంది.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "{provider} కోసం ఎల్లప్పుడూ ప్రారంభించబడి ఉంటుంది — OAuth ఖాతా భద్రతకు ఇది అవసరం; దీన్ని ఆఫ్ చేయలేరు.",
+ "forcedFingerprintBadge": "అవసరం",
"sessionAffinityTitle": "సెషన్ అఫినిటీ",
"sessionAffinityDesc": "ఏదైనా ప్రొవైడర్ కోసం, ఇన్ని సెకన్ల పాటు ఒకే ఖాతాలో ఒక సంభాషణను ఉంచుతుంది. 0 దీనిని నిలిపివేస్తుంది.",
"sessionAffinityTtl": "అఫినిటీ TTL (సెకన్లు)",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "కూల్డౌన్ పెరగడం ఆగిపోయే ముందు గరిష్ట బ్యాక్ఆఫ్ దశల సంఖ్య. చాలా కాన్గ్రిగేషన్లలో Max Cooldown పరిమితి మొదట చేరుకుంటుంది, దీనివల్ల Max Cooldown పెంచినప్పుడు ఇది భద్రతా పరిమితిగా మారుతుంది.",
"disableSessionStickiness": "సెషన్ స్టిక్కీనెస్ను నిలిపివేయండి",
"disableSessionStickinessDesc": "రౌండ్-రాబిన్ మరియు యాదృచ్ఛిక కాంబోలు మొదటి-సందేశం హ్యాష్ ద్వారా మొత్తం సంభాషణను ఒకే కనెక్షన్కు పిన్ చేయడానికి బదులుగా ప్రతి అభ్యర్థనపై వేరే కనెక్షన్కు మారుతాయి. మల్టీ-టర్న్ చాట్ల కోసం ప్రాంప్ట్-క్యాచీ హిట్లను అలాగే ఉంచడానికి దీనిని నిలిపివేయండి. ప్రతి కాంబో ఓవర్రైడ్లు ప్రాధాన్యతను కలిగి ఉంటాయి.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "ప్రాంప్ట్-క్యాష్ లోకాలిటీ రూటింగ్",
+ "promptCacheAffinityDesc": "హెల్త్ మరియు కోటా ఫెయిల్ఓవర్ను కొనసాగిస్తూనే, సరిపోలే ప్రాంప్ట్-క్యాష్ కీల కోసం అదే ప్రొవైడర్ ఖాతాకు ప్రాధాన్యం ఇవ్వండి.",
+ "reasoningTokenBuffer": "రీజనింగ్ టోకెన్ బఫర్",
+ "reasoningTokenBufferDesc": "తెలిసిన అవుట్పుట్ పరిమితిలో పూర్తి బఫర్ సరిపోయినప్పుడు మాత్రమే, తెలిసిన రీజనింగ్ మోడల్లకు max_tokens హెడ్రూమ్ను జోడించడానికి కాంబో రూటింగ్ను అనుమతించండి.",
+ "zeroLatencyOptimizations": "జీరో-లేటెన్సీ ఆప్టిమైజేషన్లు",
+ "zeroLatencyOptimizationsDesc": "హెడ్జింగ్, ప్రిడిక్టివ్ TTFT స్కిప్లు మరియు ప్రోయాక్టివ్ ఫాల్బ్యాక్ కంప్రెషన్ను ప్రారంభించండి. ఈ లేటెన్సీ ఫీచర్లు లక్ష్యాలతో పోటీపడకుండా లేదా ఫాల్బ్యాక్ అభ్యర్థనలను కంప్రెస్ చేయకుండా నిరోధించడానికి ఆఫ్లో ఉంచండి.",
"credentialRedaction": "క్రెడెన్షియల్ రెడాక్షన్",
"credentialRedactionDesc": "ప్రొవైడర్లకు పంపిన సందర్భం నుండి మరియు ప్రతిస్పందనల నుండి API కీలు, టోకెన్లు మరియు రహస్యాలను తొలగించండి.",
"enableCredentialRedaction": "క్రెడెన్షియల్ రెడాక్షన్ను ప్రారంభించండి",
"enableCredentialRedactionDesc": "సందేశాలు, టూల్ కాల్లు మరియు ప్రతిస్పందనల నుండి API కీలు, టోకెన్లు, ప్రైవేట్ కీలు మరియు JWTలను తొలగిస్తుంది.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "ఆటోమేటిక్ సింక్ నిలిపివేయబడింది",
+ "pricingAutoSyncEnabled": "స్వయంచాలక సమకాలీకరణ ప్రారంభించబడింది",
"modalityBridgeIntro": "బహుళమాధ్యమ కంటెంట్ టెక్స్ట్-మాత్రమే మోడళ్లకు చేరకముందే దాన్ని టెక్స్ట్గా మార్చండి. విజన్, ఆడియో మరియు వీడియో బ్రిడ్జ్లు అందుబాటులో ఉన్నాయి మరియు కాన్ఫిగర్ చేయవచ్చు.",
"modalityBridgeVisionTab": "దృష్టి",
"modalityBridgeAudioTab": "ఆడియో",
@@ -8342,7 +8361,7 @@
"routingCcBridgeName": "క్లాడ్-కోడ్ బ్రిడ్జ్",
"routingCcBridgeDescription": "API కీలు ఉపయోగించి రీలే ఎండ్పాయింట్లు (anthropic-compatible-cc-*).",
"routingCustomProviderDescription": "కస్టమ్ ప్రొవైడర్.",
- "routingUnknownOpKind": "Unknown op kind: {kind}",
+ "routingUnknownOpKind": "తెలియని op రకం: {kind}",
"routingInvalidJson": "చెల్లని JSON: {error}",
"routingConfigMustBeObject": "కాన్ఫిగరేషన్ ఒక JSON వస్తువు కావాలి",
"routingEnabledMustBeBoolean": "`enabled` నిజం లేదా అబద్ధం కావాలి",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "ఆరోగ్యం",
"cliproxyapiPort": "పోర్ట్",
"qdrantHost": "హోస్ట్",
- "qdrantCollection": "సేకరణ",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "సేకరణ"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "RTK ఇంజిన్",
+ "description": "టూల్ అవుట్పుట్, టెర్మినల్ లాగ్లు మరియు బిల్డ్ ఫలితాల కోసం కమాండ్-అవగాహనతో కూడిన కంప్రెషన్.",
+ "enabled": "ప్రారంభించబడింది",
+ "intensity": "తీవ్రత",
+ "intensityMinimal": "కనిష్ఠం",
+ "intensityStandard": "ప్రామాణికం",
+ "intensityAggressive": "దూకుడు",
+ "toolResults": "టూల్ ఫలితాలు",
+ "assistantMessages": "అసిస్టెంట్ సందేశాలు",
+ "codeBlocks": "కోడ్ బ్లాక్లు",
"filterCatalog": "ఫిల్టర్ కేటలాగ్",
"filterCatalogDesc": "వర్గం వారీగా అవుట్పుట్ ఫిల్టర్లు అందుబాటులో ఉన్నాయి",
"guidedConfig": "ఆకృతీకరణ",
"guidedConfigDesc": "RTK మీ టెర్మినల్ అవుట్పుట్ని ఎలా ఫిల్టర్ చేస్తుందో సర్దుబాటు చేయండి",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "గరిష్ఠ పంక్తులు",
+ "maxChars": "గరిష్ఠ అక్షరాలు",
"deduplicateThreshold": "డూప్లికేట్ థ్రెషోల్డ్",
"customFilters": "కస్టమ్ ఫిల్టర్లు",
"detectedType": "గుర్తించబడిన రకం",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "వైఫల్యాలు",
"rawOutputAlways": "ఎల్లప్పుడూ",
"rawOutputMaxBytes": "ముడి అవుట్పుట్ గరిష్ట బైట్లు",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "ఫిల్టర్ పరీక్ష",
+ "pasteOutput": "ఫిల్టరింగ్ను పరీక్షించడానికి టూల్ అవుట్పుట్ను అతికించండి...",
"presetHigh": "దూకుడు",
"presetLow": "కాంతి",
"presetMaxChars": "గరిష్ట అవుట్పుట్ అక్షరాలు",
"presetMaxLines": "గరిష్ట అవుట్పుట్ లైన్లు",
"presetMedium": "ప్రామాణికం",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "అమలు చేయండి",
+ "result": "ఫలితం",
+ "previewEmpty": "RTK అవుట్పుట్ను ప్రివ్యూ చేయడానికి ఒక నమూనాను అమలు చేయండి.",
+ "detected": "గుర్తించబడింది",
"masterSwitchOffAlert": "Token Saver మాస్టర్ స్విచ్ ఆఫ్ చేయబడింది — మీరు దీనిని Endpoint పేజీ నుండి ఆన్ చేసే వరకు ఈ సెట్టింగ్లు అభ్యర్థనలపై ప్రభావం చూపవు.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "ఫిల్టర్ చేసిన టోకెన్లు",
+ "filtersActive": "సక్రియ ఫిల్టర్లు",
+ "requests": "అభ్యర్థనలు",
+ "avgSavings": "సగటు ఆదా",
"simpleMode": "సింపుల్",
"advancedMode": "అధునాతనమైనది",
"searchFilters": "ఫిల్టర్లను వెతకండి...",
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "కంప్రెషన్ కాంబోలు",
+ "description": "విభిన్న రూటింగ్ సందర్భాల కోసం ఇంజిన్లను ఎలా కలపాలో నిర్వచించండి.",
+ "createCombo": "కంప్రెషన్ కాంబోను సృష్టించండి",
+ "editCombo": "సవరించండి",
+ "deleteCombo": "తొలగించండి",
+ "deleteConfirm": "ఈ కంప్రెషన్ కాంబోను తొలగించాలా?",
+ "pipeline": "పైప్లైన్",
+ "addStep": "దశను జోడించండి",
+ "removeStep": "తీసివేయండి",
+ "name": "పేరు",
+ "descriptionField": "వివరణ",
+ "languagePacks": "భాషా ప్యాక్లు",
+ "outputMode": "అవుట్పుట్ మోడ్",
+ "assignToRouting": "రూటింగ్ కాంబోలకు కేటాయించండి",
+ "noAssignments": "అందుబాటులో రూటింగ్ కలయికలు లేవు",
+ "default": "డిఫాల్ట్",
+ "setAsDefault": "డిఫాల్ట్గా సెట్ చేయండి",
+ "save": "సేవ్ చేయండి",
+ "cancel": "రద్దు చేయండి",
+ "enabled": "ప్రారంభించబడింది",
"loading": "లోడ్ అవుతోంది…",
"hubTitle": "కంప్రెషన్ హబ్",
"hubDescription": "గ్లోబల్గా ఏ కంప్రెషన్ ప్రొఫైల్ రన్ అవ్వాలో ఎంచుకోండి.",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "ప్రస్తుతం Claude (Anthropic) కి మాత్రమే అందుబాటులో ఉంది. ఇది ఒక డెలిగేటెడ్ మోడ్: ప్రొవైడర్ సర్వర్-సైడ్లో పాత టూల్-యూజ్ బ్లాక్లను క్లియర్ చేస్తుంది — మేము మెసేజ్ను తిరిగి రాయము. ఇది ఇతర ప్రొవైడర్లపై ప్రభావం చూపదు.",
"namedCombos": "నేమ్డ్ కాంబోలు",
"namedCombosDescription": "విభిన్న పైప్లైన్లను సేవ్ చేయండి మరియు వాటిని నిర్దిష్ట రూటింగ్ కాంబోలకు కేటాయించండి.",
+ "activeProfileMasterSwitchOffWarning": "మాస్టర్ \"Prompt Compression\" స్విచ్ను ఆన్ చేసే వరకు దిగువనున్న యాక్టివ్ ప్రొఫైల్ అమలు కాదు.",
+ "activeProfileMasterSwitchOffCta": "Settingsలో దీన్ని ఆన్ చేయండి",
"comboNamePlaceholder": "కాంబో పేరు",
"descriptionPlaceholder": "వివరణ",
"nameRequired": "సేవ్ చేయడానికి ముందు కాంబో పేరును నమోదు చేయండి.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "భాషా ప్యాక్లు: {packs}",
"dragToReorder": "దశను క్రమబద్ధీకరించడానికి డ్రాగ్ చేయండి",
"engine": "ఇంజిన్",
- "intensity": "తీవ్రత",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "తీవ్రత"
},
"compressionStudio": {
"noRun": "ఎటువంటి కంప్రెషన్ రన్ అందుబాటులో లేదు.",
@@ -8701,7 +8712,7 @@
"run": "రన్ చేయండి",
"laneRejected": "తిరస్కరించబడింది: {reason}",
"error": "లోపం",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "కలిపిన పైప్లైన్ ప్రివ్యూ విఫలమైంది: {reason}",
"combinedFlow": "కంబైన్డ్ ఫ్లో",
"eachLayer": "ప్రతి లేయర్ విడివిడిగా",
"diff": "వ్యత్యాసం",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "ఇంజిన్ను ఎనేబుల్ చేయండి",
"enableDescription": "స్టాక్లో చివరిగా రన్ అవుతుంది (RTK/Caveman వచనాన్ని క్లీన్ చేసిన తర్వాత, OmniGlyph మిగిలిన భాగాన్ని చిత్రాలుగా మారుస్తుంది) మరియు omniglyph మోడ్ ద్వారా స్వతంత్రంగా కూడా రన్ అవుతుంది. ఇది ప్రివ్యూ మరియు ఎండ్-టు-ఎండ్ ధ్రువీకరణ పూర్తయ్యే వరకు డిఫాల్ట్గా ఆఫ్లోనే ఉంటుంది.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "కంప్రెషన్ ప్రొఫైల్",
+ "profileDescription": "ప్రొఫైల్ గరిష్ఠ పరిమితి మాత్రమే, కనిష్ఠ పరిమితి కాదు: మరింత కఠినమైన ప్రొఫైల్ను ఒక్కో దశ ఓవర్రైడ్తో సడలించలేరు. ఈ కోడ్బేస్పై కొలిచిన ప్రకారం: coding-safe లేదా balancedతో, ఇంకా హిస్టరీ పేరుకుపోని సెషన్ ఏదీ కంప్రెస్ చేయదు, ఎందుకంటే రెండూ కనిష్ఠ అక్షరాల థ్రెషోల్డ్ను పెంచి, సిస్టమ్ ప్రాంప్ట్, టూల్ స్కీమాలు మరియు టూల్ ఫలితాలను యథాతథంగా ఉంచుతాయి.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "దూకుడు (డిఫాల్ట్)",
+ "description": "ప్రచురించిన రసీదుల్లో కొలిచిన పాలసీ. సిస్టమ్ ప్రాంప్ట్, టూల్ డాక్యుమెంటేషన్ మరియు సాంద్రమైన హిస్టరీని ఇమేజ్ చేస్తుంది."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "సమతుల్యం",
+ "description": "లైవ్ స్థితిని యథాతథంగా ఉంచి, చివరి 8 మలుపులను రక్షిస్తుంది; పాత ముగిసిన హిస్టరీని మాత్రమే సంక్షిప్తం చేస్తుంది."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "కోడింగ్కు సురక్షితం",
+ "description": "అధికార సమాచారం, టూల్ స్కీమాలు మరియు లైవ్ టూల్ అవుట్పుట్ను యథాతథంగా ఉంచి, చివరి 12 మలుపులను రక్షిస్తుంది. సెషన్లో హిస్టరీ పేరుకుపోయే వరకు ఏదీ కంప్రెస్ చేయదు."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "పాస్త్రూ",
+ "description": "మార్పులు చేయకుండా రూట్ చేస్తుంది. ఇంజిన్ను దాటవేసి, అభ్యర్థనను యథాతథంగా ఫార్వర్డ్ చేస్తుంది."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph కంప్రెషన్ ప్రొఫైల్ను ఎంచుకోండి",
"saved": "సేవ్ చేయబడింది.",
"saveFailed": "సేవ్ చేయడం సాధ్యపడలేదు.",
"enableAria": "OmniGlyph ఇంజిన్ను ఎనేబుల్ చేయండి",
@@ -8897,38 +8908,38 @@
"save": "సేవ్ చేయండి"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Caveman ఇంజిన్",
+ "description": "నియమాల ఆధారిత సందేశ కంప్రెషన్, భాషా ప్యాక్లు, విశ్లేషణలు మరియు అవుట్పుట్ మోడ్ నియంత్రణలు.",
"advancedConfig": "అధునాతన కాన్ఫిగరేషన్",
"advancedConfigDesc": "ఫైన్-ట్యూన్ కంప్రెషన్ ప్రవర్తన",
"aggressiveSettings": "దూకుడు సెట్టింగ్లు",
"aggressiveSettingsDesc": "సంభావ్య నాణ్యత ట్రేడ్-ఆఫ్లతో గరిష్ట కుదింపు",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "అభ్యర్థనలు",
+ "tokensSaved": "ఆదా చేసిన టోకెన్లు",
+ "savingsPercent": "ఆదా %",
+ "avgLatency": "సగటు లేటెన్సీ",
+ "languagePacks": "భాషా ప్యాక్లు",
+ "languagePacksDesc": "నిర్దిష్ట భాషల కోసం కంప్రెషన్ నియమాలను ప్రారంభించండి.",
"labelAutoTrigger": "సందర్భం మించిపోయినప్పుడు స్వయంచాలకంగా కుదించండి",
"labelCompressionRate": "కుదింపు బలం",
"labelMaxTokens": "ప్రతి సందేశానికి లక్ష్య టోకెన్లు",
"labelMinLength": "కనిష్ట సందేశం పొడవు",
"labelMinSavings": "సేవ్ చేయడానికి కనీస టోకెన్లు",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "ప్రారంభించబడింది",
+ "autoDetect": "భాషను స్వయంచాలకంగా గుర్తించండి",
+ "rulesCount": "{count} నియమాలు",
"inputCompressionTitle": "ఇన్పుట్ కంప్రెషన్",
"inputCompressionDesc": "చాట్ హిస్టరీని తక్కువ పదాలతో తిరిగి రాయండి. ఇన్పుట్ టోకెన్లను ~50% తగ్గిస్తుంది.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "కంప్రెషన్ విశ్లేషణలు",
+ "noAnalytics": "ఇంకా కంప్రెషన్ విశ్లేషణలు లేవు.",
"masterDisabledWarning": "Token Saver మాస్టర్ స్విచ్ OFF లో ఉంది — మీరు దీన్ని Compression Settings నుండి ఆన్ చేసే వరకు లేదా ఇక్కడ మార్చే వరకు ఈ సెట్టింగ్లు అభ్యర్థనలపై ప్రభావం చూపవు.",
"outputMode": "అవుట్పుట్ మోడ్",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "అవుట్పుట్ మోడ్",
"quickSettings": "త్వరిత సెట్టింగ్లు",
"quickSettingsDesc": "ప్రారంభించడానికి ప్రాథమిక కుదింపు సెట్టింగ్లు",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "స్వయంచాలక స్పష్టత బైపాస్",
+ "bypassConditions": "బైపాస్ షరతులు",
"bypassConditionsList": "భద్రత, తిరుగులేని, స్పష్టీకరణ, ఆర్డర్-సెన్సిటివ్",
"simpleMode": "సింపుల్",
"advancedMode": "అధునాతనమైనది",
@@ -8940,52 +8951,52 @@
"ultraSettings": "అల్ట్రా సెట్టింగ్లు",
"ultraSettingsDesc": "SLM-శక్తితో కూడిన సెమాంటిక్ కంప్రెషన్",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "క్లుప్తంగా స్పందించండి. సాంకేతిక పదాలు, కోడ్, లోపాలు, URLs మరియు ఐడెంటిఫైయర్లను యథాతథంగా ఉంచండి.",
+ "full": "అతి సంక్షిప్తంగా, కుదింపుగా స్పందించండి. మొత్తం సాంకేతిక సారాన్ని పరిరక్షించండి.",
+ "ultra": "సాధారణ సాంకేతిక సంక్షిప్తాలతో అతి క్లుప్తంగా స్పందించండి. ఖచ్చితమైన చిహ్నాలను అలాగే ఉంచండి."
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "అనువాదకం",
+ "metaTitle": "అనువాదక ప్లేగ్రౌండ్ | OmniRoute",
+ "metaDescription": "ప్రొవైడర్ల మధ్య API ఫార్మాట్ అనువాదాలను డీబగ్ చేయండి, పరీక్షించండి, విజువలైజ్ చేయండి",
+ "playgroundTitle": "అనువాదక ప్లేగ్రౌండ్",
+ "playground": "ప్లేగ్రౌండ్",
+ "realtime": "రియల్-టైమ్ అనువాద కార్యకలాపం",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "టెస్ట్ బెంచ్",
+ "liveMonitor": "లైవ్ మానిటర్",
+ "modeDescriptionPlayground": "ఏదైనా API రిక్వెస్ట్ బాడీని పేస్ట్ చేసి, ప్రొవైడర్ ఫార్మాట్ల మధ్య OmniRoute దాన్ని ఎలా అనువదిస్తుందో చూడండి (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
+ "modeDescriptionChatTester": "OmniRoute ద్వారా నిజమైన చాట్ రిక్వెస్ట్లను పంపి, పూర్తి రౌండ్-ట్రిప్ను పరిశీలించండి: ఇన్పుట్, అనువదించిన రిక్వెస్ట్, ప్రొవైడర్ రెస్పాన్స్, అనువదించిన అవుట్పుట్.",
+ "modeDescriptionTestBench": "ముందే నిర్వచించిన సందర్భాలను అమలు చేసి, ప్రొవైడర్లు మరియు మోడళ్ల మధ్య అనుకూలతను పోల్చండి.",
+ "modeDescriptionLiveMonitor": "రిక్వెస్ట్లు OmniRoute ద్వారా ప్రవహిస్తున్నప్పుడు అనువాద ఈవెంట్లను రియల్ టైమ్లో చూడండి.",
+ "modeDescriptionFallback": "ప్రొవైడర్ల మధ్య API రిక్వెస్ట్లను OmniRoute ఎలా అనువదిస్తుందో డీబగ్ చేయండి, పరీక్షించండి, విజువలైజ్ చేయండి.",
+ "recentTranslations": "ఇటీవలి అనువాదాలు",
+ "noTranslations": "ఇంకా అనువాదాలు లేవు",
+ "source": "మూలం",
+ "target": "లక్ష్యం",
+ "time": "సమయం",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "జాప్యం",
+ "totalTranslations": "మొత్తం అనువాదాలు",
+ "successful": "విజయవంతమైనవి",
+ "errors": "లోపాలు",
+ "avgLatency": "సగటు జాప్యం",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "లైవ్ — ఆటో-రిఫ్రెష్ అవుతోంది",
+ "paused": "పాజ్ చేయబడింది",
+ "eventsAppearHint": "రిక్వెస్ట్లు OmniRoute ద్వారా ప్రవహిస్తున్నప్పుడు అనువాద ఈవెంట్లు ఇక్కడ కనిపిస్తాయి. ఈవెంట్లను రూపొందించడానికి వీటిలో ఏదైనా పద్ధతిని ఉపయోగించండి:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "బాహ్య API కాల్స్",
+ "ideCliIntegrations": "IDE/CLI ఇంటిగ్రేషన్లు",
+ "inMemoryNote": "గమనిక: ఈవెంట్లు ఇన్-మెమరీలో నిల్వ చేయబడతాయి, సర్వర్ రీస్టార్ట్ అయినప్పుడు రీసెట్ అవుతాయి.",
"ok": "OK",
"errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "formatConverter": "ఫార్మాట్ కన్వర్టర్",
+ "formatConverterDescription": "JSON రిక్వెస్ట్ బాడీని పేస్ట్ చేయండి లేదా టైప్ చేయండి. అనువాదకం మూల ఫార్మాట్ను ఆటో-డిటెక్ట్ చేసి, లక్ష్య ఫార్మాట్కు మారుస్తుంది. ఫార్మాట్ల మధ్య OmniRoute రిక్వెస్ట్లను ఎలా అనువదిస్తుందో డీబగ్ చేయడానికి దీన్ని ఉపయోగించండి (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
"translationPathHubSpoke": "{source} → OpenAI (ఇంటర్మీడియట్) → {target}",
"translationPathDirect": "{source} → {target} (ప్రత్యక్ష అనువాదకుడు)",
"translationPathPassthrough": "అదే ఫార్మాట్ — అనువాదం అవసరం లేదు",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "కొన్ని ఫార్మాట్ జంటలు (క్లాడ్→జెమిని) ప్రత్యక్ష అనువాదకులను కలిగి ఉంటాయి, ఇవి OpenAI హబ్ను దాటవేసి, మరింత ఖచ్చితమైన అవుట్పుట్ను ఉత్పత్తి చేస్తాయి.",
"featureImageMapping": "చిత్ర పరిమాణం మ్యాపింగ్",
"featureImageMappingDesc": "API ఫార్మాట్ల మధ్య ఇమేజ్ డైమెన్షన్ కన్వెన్షన్లను అనువదిస్తుంది (ఉదా., OpenAI వివరాల స్థాయిలు → జెమిని కొలతలు).",
- "input": "Input",
- "output": "Output",
+ "input": "ఇన్పుట్",
+ "output": "అవుట్పుట్",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "ఫార్మాట్లను మార్చండి",
+ "translateAction": "అనువదించండి",
+ "clear": "క్లియర్ చేయండి",
+ "inputPlaceholder": "రిక్వెస్ట్ బాడీని ఇక్కడ పేస్ట్ చేయండి లేదా దిగువన టెంప్లేట్ను ఎంచుకోండి...",
+ "exampleTemplates": "ఉదాహరణ టెంప్లేట్లు",
+ "exampleTemplatesHint": "— లోడ్ చేయడానికి క్లిక్ చేయండి",
+ "templateLoadHint": "టెంప్లేట్ అభ్యర్థనను {format} ఫార్మాట్లో లోడ్ చేస్తుంది. వేరే ఫార్మాట్లో లోడ్ చేయడానికి మూల ఫార్మాట్ను మార్చండి.",
+ "compatibilityTester": "అనుకూలత పరీక్షకం",
+ "compatibilityReport": "అనుకూలత నివేదిక",
+ "testBenchDescription": "అనువాదం మరియు ప్రొవైడర్ అనుకూలతను ధృవీకరించడానికి ముందే నిర్వచించిన సందర్భాలను (సాధారణ చాట్, టూల్ కాలింగ్ మొదలైనవి) అమలు చేయండి. ఒక మూల ఫార్మాట్ మరియు లక్ష్య ప్రొవైడర్ను ఎంచుకుని, అనుకూలత శాతాన్ని చూడటానికి అన్ని పరీక్షలను అమలు చేయండి. ప్రొవైడర్ల మధ్య ఏ ఫీచర్లు పనిచేస్తాయో తెలుసుకోవడానికి దీన్ని ఉపయోగించండి.",
+ "targetProvider": "లక్ష్య ప్రొవైడర్",
+ "runAllTests": "అన్ని పరీక్షలను అమలు చేయండి",
+ "runTest": "పరీక్షను అమలు చేయండి",
+ "reRun": "మళ్లీ అమలు చేయండి",
+ "running": "అమలవుతోంది...",
+ "passed": "ఉత్తీర్ణమైంది",
+ "failed": "విఫలమైంది",
+ "passedIconLabel": "✅ ఉత్తీర్ణమైంది",
+ "chunks": "భాగాలు",
+ "scenarioSimpleChat": "సాధారణ చాట్",
+ "scenarioToolCalling": "టూల్ కాలింగ్",
+ "scenarioMultiTurn": "బహుళ-దశల సంభాషణ",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "సిస్టమ్ ప్రాంప్ట్",
+ "scenarioStreaming": "స్ట్రీమింగ్",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "సాధారణ చాట్",
+ "tool-calling": "టూల్ కాలింగ్",
+ "multi-turn": "బహుళ-దశల సంభాషణ",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "సిస్టమ్ ప్రాంప్ట్",
+ "streaming": "స్ట్రీమింగ్",
"vision": "విజన్",
"schema-coercion": "స్కీమా బలవంతం"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "ప్రాథమిక టెక్స్ట్ సందేశం",
+ "tool-calling": "ఫంక్షన్/టూల్ అమలు",
+ "multi-turn": "చరిత్రతో కూడిన సంభాషణ",
+ "thinking": "విస్తృత ఆలోచన / తార్కిక విశ్లేషణ",
+ "system-prompt": "సంక్లిష్టమైన సిస్టమ్ సూచనలు",
+ "streaming": "SSE స్ట్రీమింగ్ అభ్యర్థన",
"vision": "చిత్రం ఇన్పుట్తో మల్టీమోడల్ అభ్యర్థన",
"schema-coercion": "నిర్మాణాత్మక-అవుట్పుట్ / JSON స్కీమా అమలు"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "మీరు సహాయకరమైన అసిస్టెంట్.",
+ "userGreeting": "హలో! ఈ రోజు మీరు ఎలా ఉన్నారు?"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "São Pauloలో వాతావరణం ఎలా ఉంది?",
+ "toolDescription": "ఒక ప్రదేశానికి ప్రస్తుత వాతావరణాన్ని పొందండి",
+ "cityNameDescription": "నగరం పేరు"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "మీరు కోడింగ్ అసిస్టెంట్.",
+ "userInitial": "Pythonలో ఒక అర్రేను క్రమబద్ధీకరించడానికి ఒక ఫంక్షన్ను రాయండి.",
+ "assistantExample": "ఇదిగో ఒక సరళమైన క్రమబద్ధీకరణ ఫంక్షన్: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "ఇప్పుడు అది అవరోహణ క్రమంలో క్రమబద్ధీకరించేలా చేయండి."
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "మొదటి 100 ప్రధాన సంఖ్యల మొత్తం ఎంత?"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "మీరు పంపిణీ వ్యవస్థల్లో నైపుణ్యం కలిగిన సీనియర్ సాఫ్ట్వేర్ ఇంజనీర్. పరిశ్రమలోని ఉత్తమ పద్ధతులను ఉపయోగిస్తూ ప్రశ్నలకు సంక్షిప్తంగా సమాధానం ఇవ్వండి. సందర్భోచితంగా ఉన్నప్పుడు ఎల్లప్పుడూ కోడ్ ఉదాహరణలను అందించండి. మీ సమాధానాలను markdown ఉపయోగించి ఫార్మాట్ చేయండి.",
+ "question": "సర్క్యూట్ బ్రేకర్ నమూనాను ఎలా అమలు చేయాలి?"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "చిత్రలేఖనం నేర్చుకుంటున్న ఒక రోబోట్ గురించి చిన్న కథ చెప్పండి."
},
"vision": {
"system": "మీరు చిత్రాలను ఖచ్చితంగా వివరించే సహాయకుడు.",
@@ -9093,12 +9104,12 @@
"cityDescription": "ప్రశ్నించాల్సిన నగరం, ఉదా. 'టోక్యో' లేదా 'న్యూయార్క్'."
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "OpenAI అనుకూలం",
+ "anthropicCompatibleLabel": "Anthropic అనుకూలం",
+ "noTemplateForFormat": "ఈ ఫార్మాట్కు టెంప్లేట్ లేదు",
+ "translationFailed": "అనువాదం విఫలమైంది: {error}",
+ "pipelineDebugger": "పైప్లైన్ డీబగ్గర్",
+ "translationPipeline": "అనువాద పైప్లైన్",
"loading": "లోడ్ అవుతోంది…",
"compressionOriginal": "ఒరిజినల్",
"compressionCompressed": "కంప్రెస్ చేయబడింది",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "పైప్లైన్ దశలు",
"copyIntermediateJson": "మధ్యంతర JSONని కాపీ చేయండి",
"copyOutputJson": "అవుట్పుట్ JSONని కాపీ చేయండి",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "పైప్లైన్ దృశ్యీకరణ",
+ "pipelineVisualizationHint": "గుర్తింపు → అనువాదం → ప్రొవైడర్ కాల్ ద్వారా మీ అభ్యర్థన ఎలా ప్రవహిస్తుందో చూడటానికి ఒక సందేశాన్ని పంపండి.",
+ "chatTesterDescription": "నిర్దిష్ట క్లయింట్ ఫార్మాట్లో సందేశాలను పంపి, అనువాద పైప్లైన్లోని ప్రతి దశను పరిశీలించండి.",
+ "chatTesterFlow": "క్లయింట్ అభ్యర్థన → ఫార్మాట్ గుర్తింపు → OpenAI మధ్యంతర రూపం → ప్రొవైడర్ ఫార్మాట్ → ప్రతిస్పందన",
+ "clickStepToInspect": "ఆ దశలోని డేటాను పరిశీలించడానికి ఏదైనా దశపై క్లిక్ చేయండి.",
+ "clientFormat": "క్లయింట్ ఫార్మాట్",
+ "provider": "ప్రొవైడర్",
+ "modelPlaceholder": "మోడల్ పేరును ఎంచుకోండి లేదా టైప్ చేయండి...",
+ "sendMessageToSeePipeline": "అనువాద పైప్లైన్ను చూడటానికి ఒక సందేశాన్ని పంపండి",
+ "chatMessageHintPrefix": "మీ సందేశం ఈ విధంగా ఫార్మాట్ చేయబడుతుంది:",
+ "chatMessageHintSuffix": "అభ్యర్థనగా రూపొందించబడి, పైప్లైన్ ద్వారా అనువదించబడి, ఎంచుకున్న ప్రొవైడర్కు పంపబడుతుంది.",
+ "youWithFormat": "మీరు ({format})",
+ "assistant": "సహాయకుడు",
+ "typeMessage": "సందేశాన్ని టైప్ చేయండి...",
+ "send": "పంపండి",
+ "clientRequest": "క్లయింట్ అభ్యర్థన",
+ "clientRequestDescription": "మీ క్లయింట్ పంపే విధంగా అభ్యర్థన బాడీ",
+ "formatDetected": "గుర్తించబడిన ఫార్మాట్",
+ "formatDetectedDescription": "అభ్యర్థన నిర్మాణం నుండి API ఫార్మాట్ను OmniRoute స్వయంచాలకంగా గుర్తిస్తుంది",
+ "openaiIntermediate": "OpenAI మధ్యంతర రూపం",
+ "openaiIntermediateDescription": "అన్ని ఫార్మాట్లు మొదట OpenAI ఫార్మాట్కు (సార్వత్రిక వారధి) సాధారణీకరించబడతాయి",
+ "providerFormat": "ప్రొవైడర్ ఫార్మాట్",
+ "providerFormatDescription": "OpenAI ఫార్మాట్ ప్రొవైడర్ యొక్క స్థానిక ఫార్మాట్కు అనువదించబడుతుంది",
+ "providerResponse": "ప్రొవైడర్ ప్రతిస్పందన",
+ "providerResponseRawDescription": "ప్రొవైడర్ API నుండి ముడి ప్రతిస్పందన",
+ "providerResponseSseDescription": "ప్రొవైడర్ API నుండి ముడి SSE స్ట్రీమ్",
+ "unexpectedError": "ఊహించని లోపం సంభవించింది",
+ "error": "లోపం",
+ "errorMessage": "లోపం: {message}",
+ "requestFailed": "అభ్యర్థన విఫలమైంది",
+ "noTextExtracted": "(టెక్స్ట్ ఏదీ సంగ్రహించబడలేదు)",
"liveMonitorMemoryNote": "ఈవెంట్లు మెమరీలో నిల్వ చేయబడతాయి మరియు పునఃప్రారంభించినప్పుడు పోతాయి.",
"liveMonitorMemoryCapNote": "గరిష్టంగా 200 ఈవెంట్లు ఉంచబడ్డాయి.",
"eventSourcesLabel": "ఈవెంట్ మూలాలు:",
"eventSourceTranslatorPage": "• అనువాదకుని పేజీ (చాట్ టెస్టర్, టెస్ట్ బెంచ్)",
"eventSourceMainPipeline": "• ప్రధాన అభ్యర్థన పైప్లైన్ (CLI/IDE/API ట్రాఫిక్)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "OmniRoute ద్వారా API కాల్లు ప్రవహిస్తున్నప్పుడు అనువాద ఈవెంట్లను చూపుతుంది. ఈవెంట్లు ఇన్-మెమరీ బఫర్ నుండి వస్తాయి (పునఃప్రారంభించినప్పుడు రీసెట్ అవుతుంది). ఉపయోగించండి",
+ "liveMonitorDescriptionSuffix": ", లేదా ఈవెంట్లను రూపొందించడానికి బాహ్య API కాల్లను ఉపయోగించండి.",
"streamTransformer": "స్ట్రీమ్ ట్రాన్స్ఫార్మర్",
"modeDescriptionStreamTransformer": "ప్రతిస్పందనల ట్రాన్స్ఫార్మర్ ద్వారా చాట్ పూర్తిల SSE స్ట్రీమ్లను అమలు చేయండి.",
"streamTransformerTitle": "ప్రతిస్పందనలు స్ట్రీమ్ ట్రాన్స్ఫార్మర్",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "మీ యాప్ ఒక API యొక్క \"భాష\"ను మాట్లాడుతుంది. మరొక ప్రొవైడర్ను ఉపయోగించడానికి ట్రాన్స్లేటర్ దానిని మారుస్తుంది.",
"conceptDiagramAppLabel": "మీ యాప్",
"conceptDiagramSourceLabel": "సోర్స్ ఫార్మాట్",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (హబ్)",
"conceptDiagramTargetLabel": "టార్గెట్ ప్రొవైడర్",
"conceptDiagramExampleApp": "ఉదా. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "స్ట్రీమ్ను మార్చడం విఫలమైంది"
},
"usage": {
- "title": "Usage",
+ "title": "వినియోగం",
"grokExtraUsageCredits": "అదనపు వినియోగ క్రెడిట్స్",
"grokAutoTopUp": "ఆటో టాప్-అప్",
"grokAutoTopUpUnavailable": "అందుబాటులో లేదు",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "మిగిలినది",
"kiloPassRenews": "{count} రోజుల్లో పునరుద్ధరించబడుతుంది",
"kiloPassUsageLabel": "ఈ నెల వినియోగం",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "అదనపు వినియోగ క్రెడిట్లు",
+ "kimiExtraUsage": "అదనపు వినియోగం",
+ "kimiExtraUsageEnabled": "ప్రారంభించబడింది",
+ "kimiExtraUsageDisabled": "నిలిపివేయబడింది",
+ "kimiExtraUsageFrozen": "స్తంభింపజేయబడింది",
+ "kimiExtraUsageUnavailable": "అందుబాటులో లేదు",
+ "kimiMonthlyUsed": "ఈ నెల ఉపయోగించినది",
+ "kimiMonthlyLimit": "నెలవారీ పరిమితి",
+ "kimiMonthlyLimitUnlimited": "అపరిమితం",
+ "kimiAdditionalCredits": "అదనపు క్రెడిట్లు",
+ "loggerTab": "లాగర్",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "బడ్జెట్ నిర్వహణ",
+ "budgetSaved": "బడ్జెట్ పరిమితులు సేవ్ చేయబడ్డాయి",
+ "budgetSaveFailed": "బడ్జెట్ను సేవ్ చేయడం విఫలమైంది",
+ "loadingBudgetData": "బడ్జెట్ డేటా లోడ్ అవుతోంది...",
+ "noApiKeysTitle": "API కీలు లేవు",
+ "noApiKeysDescription": "బడ్జెట్ పరిమితులను సెటప్ చేయడానికి ముందుగా API కీలను జోడించండి.",
+ "apiKey": "API కీ",
+ "todaysSpend": "ఈరోజు ఖర్చు",
+ "thisMonth": "ఈ నెల",
+ "setLimits": "పరిమితులను సెట్ చేయండి",
+ "dailyLimitUsd": "రోజువారీ పరిమితి (USD)",
+ "monthlyLimitUsd": "నెలవారీ పరిమితి (USD)",
+ "warningThresholdPercent": "హెచ్చరిక పరిమితి (%)",
+ "dailyLimitPlaceholder": "ఉదా. 5.00",
+ "monthlyLimitPlaceholder": "ఉదా. 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "పరిమితులను సేవ్ చేయండి",
+ "budgetOk": "బడ్జెట్ సరిగ్గా ఉంది — {remaining} మిగిలి ఉంది",
+ "budgetExceeded": "బడ్జెట్ మించిపోయింది — అభ్యర్థనలు నిరోధించబడవచ్చు",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "ఇంకా డేటా లేదు",
+ "latency": "జాప్యం",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "ప్రాంప్ట్ క్యాష్",
+ "systemHealth": "సిస్టమ్ ఆరోగ్యం",
+ "entries": "ఎంట్రీలు",
+ "activeCount": "{count} సక్రియంగా ఉన్నాయి",
+ "openCircuitBreakersDetected": "ఓపెన్ సర్క్యూట్ బ్రేకర్లు గుర్తించబడ్డాయి",
+ "hitRate": "హిట్ రేటు",
+ "hitsMisses": "హిట్లు / మిస్లు",
+ "circuitBreakers": "సర్క్యూట్ బ్రేకర్లు",
+ "lockedIPs": "లాక్ చేయబడిన IPలు",
+ "lockoutsAutoRefreshHint": "ప్రతి మోడల్కు రేట్ లిమిట్ లాక్లు • ప్రతి 10 సెకన్లకు ఆటో-రిఫ్రెష్",
+ "lockedCount": "{count, plural, one {# లాక్ చేయబడింది} other {# లాక్ చేయబడ్డాయి}}",
+ "timeLeft": "{time} మిగిలి ఉంది",
+ "howItWorks": "ఇది ఎలా పనిచేస్తుంది",
+ "howItWorksSubtitle": "మూల్యాంకనాలు మీ LLM ప్రతిస్పందనలను ఎలా ధ్రువీకరిస్తాయో తెలుసుకోండి",
+ "define": "నిర్వచించండి",
+ "defineStepDescription": "contains, regex లేదా exact match వంటి వ్యూహాలను ఉపయోగించి ఇన్పుట్ ప్రాంప్ట్లు మరియు ఆశించిన అవుట్పుట్ ప్రమాణాలతో పరీక్ష కేసులను సృష్టించండి.",
+ "run": "అమలు చేయండి",
+ "runStepDescription": "OmniRoute ద్వారా మీ LLM ఎండ్పాయింట్లపై పరీక్ష కేసులను అమలు చేయండి. ప్రతి కేసు నిజమైన API అభ్యర్థనగా పంపబడుతుంది.",
+ "evaluate": "మూల్యాంకనం చేయండి",
+ "evaluateStepDescription": "ప్రతిస్పందనలు ఆశించిన ప్రమాణాలతో పోల్చబడతాయి. లేటెన్సీ మెట్రిక్లు మరియు వివరణాత్మక ఫీడ్బ్యాక్తో ప్రతి కేసు యొక్క ఉత్తీర్ణత/వైఫల్యాన్ని చూడండి.",
"evalsStrategyContainsLabel": "కలిగి ఉంది",
"evalsStrategyExactLabel": "ఖచ్చితమైన సరిపోలిక",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "రెగ్యులర్ ఎక్స్ప్రెషన్",
"evalsStrategyCustomLabel": "అనుకూల లాజిక్",
"evalsStrategyContainsDescription": "LLM అవుట్పుట్ ఆశించిన సబ్స్ట్రింగ్ను కలిగి ఉందో లేదో తనిఖీ చేస్తుంది.",
"evalsStrategyExactDescription": "LLM అవుట్పుట్ ఆశించిన విలువతో ఖచ్చితంగా సరిపోలుతుందో లేదో తనిఖీ చేస్తుంది.",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "పాస్ రేట్",
"historyColumnAvgLatencyMs": "సగటు లేటెన్సీ",
"historyColumnCreatedAt": "అమలు చేయబడింది",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "మూల్యాంకన సూట్లు",
+ "evalSuitesHint": "పరీక్ష కేసులను వీక్షించడానికి ఒక సూట్పై క్లిక్ చేసి, ఆపై మీ LLM ఎండ్పాయింట్లను మూల్యాంకనం చేయడానికి అమలు చేయండి",
+ "evalsLoading": "మూల్యాంకన సూట్లు లోడ్ అవుతున్నాయి...",
+ "noEvalSuitesFound": "మూల్యాంకన సూట్లు ఏవీ కనుగొనబడలేదు",
+ "noEvalSuitesDescription": "మూల్యాంకన సూట్లను API ద్వారా లేదా కోడ్లో నిర్వచించవచ్చు. అవి contains, regex, exact match మరియు కస్టమ్ ఫంక్షన్ల వంటి వ్యూహాలను ఉపయోగించి మోడల్ అవుట్పుట్లను ఆశించిన ఫలితాలతో పోల్చి పరీక్షిస్తాయి.",
+ "columnCase": "కేసు",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "లేటెన్సీ",
+ "columnDetails": "వివరాలు",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "వ్యూహం",
+ "columnExpected": "ఆశించినది",
+ "statsSuites": "సూట్లు",
+ "statsTestCases": "పరీక్ష కేసులు",
+ "statsModels": "మోడల్లు",
+ "statsCoverage": "కవరేజ్",
+ "statsStrategiesCount": "{count} వ్యూహాలు",
+ "evaluationStrategies": "మూల్యాంకన వ్యూహాలు",
+ "modelsUnderTest": "పరీక్షలో ఉన్న మోడల్లు",
+ "searchSuitesPlaceholder": "సూట్లను శోధించండి...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# కేసు} other {# కేసులు}}",
+ "runEval": "మూల్యాంకనాన్ని అమలు చేయండి",
"runAllSuites": "అన్నీ అమలు చేయండి",
"runAllRunning": "అన్నీ నడుస్తోంది...",
"runAllProgress": "నడుస్తోంది {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# సూట్ విఫలమైంది} other {# సూట్లు విఫలమయ్యాయి}}",
"runAllCompleted": "{suites} సూట్లను అమలు చేసారు — {passed} ఉత్తీర్ణులయ్యారు, {failed} విఫలమైంది",
"runAllCompletedWithFailures": "{completed} సూట్లను అమలు చేసింది; {failedSuites} పూర్తి చేయడంలో విఫలమైంది",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "{current}/{total} అమలవుతోంది...",
+ "passRate": "ఉత్తీర్ణత రేటు",
+ "summaryBreakdown": "{passed} ఉత్తీర్ణం · {failed} విఫలం · మొత్తం {total}",
+ "passedIconLabel": "✅ ఉత్తీర్ణం",
+ "failedIconLabel": "❌ విఫలం",
"resultPassed": "ఉత్తీర్ణులయ్యారు",
"resultFailed": "విఫలమైంది",
"expandResult": "ఫలితాల వివరాలను విస్తరించండి",
"collapseResult": "ఫలిత వివరాలను కుదించు",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "దీనిని కలిగి ఉంది: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "ఆశించినది: \"{expected}\"",
"expectedOutputLabel": "ఆశించిన అవుట్పుట్",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "ఇంకా ఫలితాలు లేవు",
+ "testCasesCount": "పరీక్ష సందర్భాలు ({count})",
+ "noTestCasesDefined": "పరీక్ష సందర్భాలు నిర్వచించబడలేదు",
+ "runEvalHint": "మీ LLM ఎండ్పాయింట్పై అన్ని సందర్భాలను అమలు చేయడానికి \"Evalని అమలు చేయి\"ని క్లిక్ చేయండి. ప్రతి పరీక్ష OmniRoute ద్వారా నిజమైన అభ్యర్థనను పంపుతుంది.",
+ "notifyNoTestCases": "ఈ సూట్ కోసం పరీక్ష సందర్భాలు నిర్వచించబడలేదు",
+ "notifyAllCasesPassed": "మొత్తం {total} సందర్భాలు ఉత్తీర్ణమయ్యాయి ✅",
+ "notifySomeCasesFailed": "{passed}/{total} ఉత్తీర్ణం, {failed} విఫలం",
+ "notifyEvalRunFailed": "Eval అమలు విఫలమైంది",
+ "notifyEvalTitle": "మూల్యాంకనం: {name}",
+ "modelEvals": "మోడల్ మూల్యాంకనాలు",
+ "evalsHeroDescription": "ముందే నిర్వచించిన మూల్యాంకన సూట్లను అమలు చేయడం ద్వారా మీ LLM ఎండ్పాయింట్లను పరీక్షించి, ధృవీకరించండి. ప్రతి సూట్లో OmniRoute ద్వారా నిజమైన ప్రాంప్ట్లను పంపి, ప్రతిస్పందనలను ఆశించిన ప్రమాణాలతో పోల్చే పరీక్ష సందర్భాలు ఉంటాయి — ఇవి రిగ్రెషన్లను గుర్తించడానికి, మోడల్లను పోల్చడానికి, ప్రొవైడర్లన్నింటిలో ప్రతిస్పందన నాణ్యతను నిర్ధారించడానికి సహాయపడతాయి.",
+ "qualityValidation": "నాణ్యత ధృవీకరణ",
+ "modelComparison": "మోడల్ పోలిక",
+ "regressionDetection": "రిగ్రెషన్ గుర్తింపు",
+ "latencyBenchmarks": "లేటెన్సీ బెంచ్మార్క్లు",
+ "modelLockouts": "మోడల్ లాకౌట్లు",
+ "noLockouts": "ప్రస్తుతం లాక్ చేయబడిన మోడల్లు లేవు",
+ "activeSessions": "సక్రియ సెషన్లు",
+ "noSessions": "సక్రియ సెషన్లు లేవు",
+ "sessionsHint": "ప్రాక్సీ ద్వారా అభ్యర్థనలు ప్రవహించినప్పుడు సెషన్లు కనిపిస్తాయి",
+ "sessionsTrackedHint": "అభ్యర్థన ఫింగర్ప్రింటింగ్ ద్వారా ట్రాక్ చేయబడుతుంది • ప్రతి 5 సెకన్లకు స్వయంచాలక రిఫ్రెష్",
+ "session": "సెషన్",
+ "age": "వ్యవధి",
+ "requests": "అభ్యర్థనలు",
+ "connection": "కనెక్షన్",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "ప్రొవైడర్ పరిమితులు",
+ "noProviders": "ప్రొవైడర్లు ఏవీ కనెక్ట్ కాలేదు",
+ "connectProvidersForQuota": "మీ API కోటా పరిమితులు మరియు వినియోగాన్ని ట్రాక్ చేయడానికి OAuthతో ప్రొవైడర్లకు కనెక్ట్ అవ్వండి.",
+ "accountsCount": "{count, plural, one {# ఖాతా} other {# ఖాతాలు}}",
+ "filteredFromCount": "({count} నుండి ఫిల్టర్ చేయబడింది)",
+ "autoRefresh": "స్వయంచాలక రిఫ్రెష్",
+ "refreshAll": "అన్నింటినీ రిఫ్రెష్ చేయి",
+ "loadingQuotas": "లోడ్ అవుతోంది...",
"showMoreQuotas": "ఇంకా {count} చూపించు",
"showLessQuotas": "తక్కువ చూపించు",
"hideQuotaRow": "ఈ కోటా అడ్డు వరుసను దాచు",
"showQuotaRow": "ఈ కోటా అడ్డు వరుసను చూపించు",
"hiddenQuotaRowsLabel": "దాచబడింది:",
"quotaVisibilityUpdateFailed": "కోటా దృశ్యమానతను నవీకరించడం విఫలమైంది",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
+ "account": "ఖాతా",
+ "modelQuotas": "మోడల్ కోటాలు",
+ "lastUsed": "చివరిగా రిఫ్రెష్ చేసిన సమయం",
+ "actions": "చర్యలు",
+ "refreshQuota": "కోటాను రిఫ్రెష్ చేయండి",
+ "today": "ఈ రోజు",
+ "tomorrow": "రేపు",
"dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "inDuration": "{duration}లో",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "ముడి ప్లాన్: {plan}",
+ "noPlanFromProvider": "ప్రొవైడర్ నుండి ప్లాన్ లేదు",
"tokenExpiresIn": "టోకెన్ {time}లో గడువు ముగుస్తుంది",
"tokenExpired": "టోకెన్ గడువు ముగిసింది",
- "noQuotaData": "No quota data",
+ "noQuotaData": "కోటా డేటా లేదు",
"cardExpand": "విస్తరించు",
"cardCollapse": "కుదించు",
"moreQuotas": "+{count} మరిన్ని",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "సమూహీకరించనివి",
+ "viewFlat": "ఫ్లాట్",
+ "viewByEnvironment": "ఎన్విరాన్మెంట్ వారీగా",
+ "noQuotaDataAvailable": "కోటా డేటా అందుబాటులో లేదు",
+ "noAccountsForTierFilter": "టియర్ ఫిల్టర్కు సరిపోలే ఖాతాలు కనుగొనబడలేదు",
+ "tierAll": "అన్నీ",
+ "tierEnterprise": "ఎంటర్ప్రైజ్",
+ "tierTeam": "టీమ్",
+ "tierBusiness": "బిజినెస్",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "ఉచితం",
"tierLite": "లైట్",
- "tierUnknown": "Unknown",
+ "tierUnknown": "తెలియదు",
"statTotal": "మొత్తం",
"statCritical": "క్లిష్టమైనది",
"statAlert": "అలర్ట్",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "క్రెడిట్ను రీడీమ్ చేయండి",
"resetCreditRedeemed": "రీసెట్ రీడీమ్ చేయబడింది",
"resetCreditRedeemFailed": "రీసెట్ క్రెడిట్ను రీడీమ్ చేయడం విఫలమైంది",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "సూట్ను సేవ్ చేయడం విఫలమైంది",
"clone": "క్లోన్",
"exportSuite": "ఎగుమతి చేయండి",
"importSuite": "దిగుమతి",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "చెల్లని ఎవాల్ సూట్ JSON",
"suiteBuilderCloneSuffix": "కాపీ",
"suiteBuilderImportedSuite": "దిగుమతి చేసుకున్న సూట్",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "స్కోర్కార్డ్",
+ "evalApiKey": "API కీ",
+ "scorecardPassRate": "ఉత్తీర్ణత రేటు",
+ "targetTypeModel": "మోడల్",
+ "actualOutputLabel": "వాస్తవ అవుట్పుట్",
+ "evalTargetHint": "మూల్యాంకనం చేయడానికి మోడల్ లేదా కాంబోను ఎంచుకోండి.",
+ "suiteBuilderDeleted": "సూట్ విజయవంతంగా తొలగించబడింది",
+ "suiteBuilderCaseCardHint": "ఇన్పుట్ ప్రాంప్ట్ మరియు ఆశించిన అవుట్పుట్ ప్రమాణాలను నిర్వచించండి.",
+ "nextResetUtc": "తదుపరి రీసెట్ (UTC)",
+ "scorecardHint": "అన్ని మూల్యాంకన సూట్లలో సమగ్ర ఉత్తీర్ణత రేట్లు.",
+ "suiteLatestRunsHint": "ఈ సూట్కు సంబంధించిన అత్యంత ఇటీవలి మూల్యాంకన రన్లు.",
+ "saving": "సేవ్ అవుతోంది",
+ "suiteBuilderCaseModelLabel": "మోడల్ (ఐచ్ఛికం)",
+ "evalControlsTitle": "మూల్యాంకన నియంత్రణలు",
+ "suiteBuilderEditTitle": "మూల్యాంకన సూట్ను సవరించండి",
+ "suiteBuilderCaseStrategyLabel": "ధృవీకరణ వ్యూహం",
+ "notifySelectDifferentCompareTarget": "పోలిక కోసం దయచేసి వేరొక లక్ష్యాన్ని ఎంచుకోండి",
+ "recentRunsHint": "ఇటీవలి మూల్యాంకన అమలులను చూపుతోంది. వివరణాత్మక ఫలితాలను చూడటానికి ఒక అమలుపై క్లిక్ చేయండి.",
+ "evalCompareHint": "ఐచ్ఛికంగా ఫలితాలను రెండవ లక్ష్యంతో పోల్చండి.",
+ "suiteBuilderCaseInvalid": "ఈ కేసులో ధృవీకరణ లోపాలు ఉన్నాయి. సేవ్ చేయడానికి ముందు దయచేసి వాటిని సరిచేయండి.",
+ "historyEmpty": "ఇంకా మూల్యాంకన చరిత్ర లేదు",
+ "suiteBuilderUpdated": "సూట్ విజయవంతంగా నవీకరించబడింది",
+ "resetInterval": "విరామాన్ని రీసెట్ చేయండి",
+ "suiteBuilderCreateTitle": "మూల్యాంకన సూట్ను సృష్టించండి",
+ "activePeriodSpend": "సక్రియ వ్యవధి ఖర్చు",
+ "evalApiKeyHint": "మూల్యాంకన అభ్యర్థనల కోసం ఉపయోగించాల్సిన API కీని ఎంచుకోండి.",
+ "evalCompareOptional": "పోల్చండి (ఐచ్ఛికం)",
+ "suiteBuilderDeleteFailed": "సూట్ను తొలగించడం విఫలమైంది",
+ "suiteBuilderCaseSystemPromptPlaceholder": "ఐచ్ఛిక సిస్టమ్ సూచనలు...",
+ "scorecardCases": "కేసులు",
+ "runCompletedWithScore": "మూల్యాంకనం పూర్తయింది — {score}% ఉత్తీర్ణత రేటు",
+ "suiteBuilderCustomBadge": "అనుకూలం",
+ "targetSuiteDefaults": "సూట్ డిఫాల్ట్లు",
+ "suiteBuilderDeleteConfirm": "మీరు ఖచ్చితంగా ఈ సూట్ను తొలగించాలనుకుంటున్నారా? ఈ చర్యను రద్దు చేయడం సాధ్యం కాదు.",
+ "suiteBuilderNameLabel": "సూట్ పేరు",
+ "scorecardSuites": "సూట్లు",
+ "evalCompareTarget": "పోలిక లక్ష్యం",
+ "suiteBuilderCaseModelPlaceholder": "ఉదా. gpt-4o-mini",
+ "evalControlsHint": "మీ మూల్యాంకన లక్ష్యాన్ని మరియు API కీని కాన్ఫిగర్ చేసి, మోడల్ నాణ్యతను ధృవీకరించడానికి సూట్లను అమలు చేయండి.",
+ "recentRunsTitle": "ఇటీవలి అమలులు",
+ "suiteBuilderCaseSystemPromptLabel": "సిస్టమ్ ప్రాంప్ట్",
+ "suiteBuilderCaseExpectedPlaceholder": "ఉదా. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "ఉదా డెఫ్ ఫైబొనాక్సీ",
"suiteBuilderCaseExpectedPlaceholderExact": "ఖచ్చితమైన ఊహించిన ప్రతిస్పందనను అతికించండి",
"suiteBuilderCaseExpectedPlaceholderRegex": "ఉదా ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "స్లాష్లను చుట్టకుండా JavaScript సాధారణ వ్యక్తీకరణను ఉపయోగించండి.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "ఉదా. కోడింగ్ నాణ్యత సూట్",
+ "suiteBuilderAddCase": "కేసును జోడించండి",
+ "cancel": "రద్దు చేయండి",
+ "evalTarget": "లక్ష్యం",
+ "suiteBuilderCaseNameLabel": "కేసు పేరు",
+ "weeklyLimitUsd": "వారపు పరిమితి (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "ఉదా. Pythonలో fibonacci ఫంక్షన్ను వ్రాయండి",
+ "suiteBuilderNameRequired": "సూట్ పేరు తప్పనిసరి",
+ "suiteBuilderCaseUserPromptLabel": "వినియోగదారు ప్రాంప్ట్",
+ "daily": "రోజువారీ",
+ "resultErrorLabel": "లోపం",
+ "suiteBuilderBuiltInBadge": "అంతర్నిర్మితం",
+ "suiteBuilderCaseCardTitle": "పరీక్ష కేసు",
"suiteBuilderDuplicateCase": "నకిలీ",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "ఉదా. 50.00",
+ "suiteBuilderCaseTagsHint": "పరీక్ష సందర్భాలను నిర్వహించడానికి కామాలతో వేరు చేసిన ట్యాగ్లు.",
+ "notifyEvalRunFailedWithReason": "మూల్యాంకనం విఫలమైంది: {reason}",
+ "weekly": "వారానికొకసారి",
+ "runEvalRunning": "మూల్యాంకనం జరుగుతోంది...",
+ "delete": "తొలగించు",
+ "resetTimeUtc": "రీసెట్ సమయం (UTC)",
+ "evalApiKeyAuto": "స్వయంచాలకం (డిఫాల్ట్ను ఉపయోగించు)",
+ "suiteBuilderDescriptionPlaceholder": "ఈ సూట్ ఏమి పరీక్షిస్తుందో తెలిపే ఐచ్ఛిక వివరణ...",
+ "targetComparisonTitle": "లక్ష్య పోలిక",
+ "save": "సేవ్ చేయి",
+ "suiteBuilderCreated": "సూట్ విజయవంతంగా సృష్టించబడింది",
+ "suiteLatestRuns": "తాజా రన్లు",
+ "suiteBuilderCaseExpectedLabel": "ఆశించిన విలువ",
+ "historyLatency": "జాప్యం",
+ "suiteBuilderCaseTagsPlaceholder": "ఉదా. coding, python",
+ "targetTypeCombo": "కాంబో",
+ "scorecardPassed": "ఉత్తీర్ణమైంది",
+ "suiteBuilderCaseTagsLabel": "ట్యాగ్లు",
+ "suiteBuilderNewSuite": "కొత్త సూట్",
+ "notifyEvalLoadFailed": "మూల్యాంకన డేటాను లోడ్ చేయడం విఫలమైంది",
+ "notConfigured": "కాన్ఫిగర్ చేయబడలేదు",
+ "suiteBuilderCaseNamePlaceholder": "ఉదా. Python fibonacci పరీక్ష",
+ "intervalLabel": "విరామం",
+ "suiteBuilderCreateAction": "సూట్ను సృష్టించు",
+ "suiteBuilderCasesHint": "ప్రతి సందర్భం ఒక ప్రాంప్ట్ను పంపి, ప్రతిస్పందనను ధృవీకరిస్తుంది.",
+ "suiteBuilderUpdatedAt": "నవీకరించబడింది",
+ "errorBadge": "లోపం",
+ "suiteBuilderCasesTitle": "పరీక్ష సందర్భాలు",
+ "edit": "సవరించు",
+ "monthly": "నెలకొకసారి",
+ "suiteBuilderCasesRequired": "కనీసం ఒక పరీక్ష సందర్భం అవసరం",
+ "weeklyLimitSummary": "వారపు బడ్జెట్ పరిమితి సారాంశం",
+ "suiteBuilderDescriptionLabel": "వివరణ",
+ "targetComparisonHint": "లక్ష్యాల మధ్య మూల్యాంకన ఫలితాల పక్కపక్కన పోలిక.",
+ "compareCompletedWithScore": "పోలిక పూర్తయింది — {score}% ఉత్తీర్ణత రేటు",
+ "staleQuotaTooltip": "చివరి రిఫ్రెష్ విఫలమైంది — కాష్ చేసిన డేటా చూపబడుతోంది",
"quotaThresholdLabel": "నిమి మిగిలింది",
"quotaCutoffsColumnHelp": "మిగిలిన కోటా ఈ శాతానికి లేదా అంతకంటే తక్కువకు పడిపోయినప్పుడు అభ్యర్థనలను ఆపివేయండి.",
"quotaCutoffsButtonDefault": "డిఫాల్ట్",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "కనెక్ట్ చేయబడిన ఖాతాల ప్రత్యక్ష స్థితి"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "అధికార అనుమతి కోసం వేచి ఉంది",
+ "verificationUrl": "ధృవీకరణ URL",
+ "yourCode": "మీ కోడ్",
+ "remoteAccess": "రిమోట్ యాక్సెస్:",
+ "connectedSuccess": "విజయవంతంగా కనెక్ట్ అయింది!",
+ "connectionFailed": "కనెక్షన్ విఫలమైంది",
+ "chooseAuthMethod": "మీ ప్రామాణీకరణ పద్ధతిని ఎంచుకోండి:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Google ఖాతా",
+ "githubAccount": "GitHub ఖాతా",
+ "importToken": "టోకెన్ను దిగుమతి చేయండి",
+ "pasteToken": "Kiro IDE నుండి రిఫ్రెష్ టోకెన్ను అతికించండి.",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "టోకెన్లను స్వయంచాలకంగా గుర్తిస్తోంది...",
+ "readingFromCache": "AWS SSO క్యాష్ నుండి చదువుతోంది",
+ "readingFromCursor": "Cursor IDE డేటాబేస్ నుండి చదువుతోంది",
+ "initializing": "ప్రారంభిస్తోంది...",
+ "pricingConfig": "ధరల కాన్ఫిగరేషన్",
+ "loadingPricing": "ధరల డేటాను లోడ్ చేస్తోంది...",
+ "pricingRatesFormat": "ధరల రేట్ల ఫార్మాట్",
+ "noPricingData": "ధరల డేటా అందుబాటులో లేదు",
+ "noModelsFound": "మోడల్లు ఏవీ కనుగొనబడలేదు"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "అన్ని ప్రొవైడర్లు",
+ "allModels": "అన్ని మోడల్లు",
+ "allAccounts": "అన్ని ఖాతాలు",
+ "allApiKeys": "అన్ని API కీలు",
+ "allTypes": "అన్ని రకాలు",
+ "allLevels": "అన్ని స్థాయులు",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "లాగ్లను లోడ్ చేస్తోంది...",
+ "loadingProxyLogs": "ప్రాక్సీ లాగ్లను లోడ్ చేస్తోంది...",
+ "noLogEntries": "లాగ్ ఎంట్రీలు ఏవీ కనుగొనబడలేదు",
+ "noPayloadData": "ఈ లాగ్ ఎంట్రీకి పేలోడ్ డేటా అందుబాటులో లేదు.",
+ "proxyEvent": "ప్రాక్సీ ఈవెంట్",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "స్థాయి",
+ "directNative": "నేరుగా (స్థానికం)",
+ "combo": "కాంబో",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "వినియోగ అవలోకనం",
+ "outputTokens": "అవుట్పుట్ టోకెన్లు",
+ "totalCost": "మొత్తం ఖర్చు",
+ "usageByModel": "మోడల్ వారీగా వినియోగం",
+ "usageByAccount": "ఖాతా వారీగా వినియోగం",
+ "failedToLoad": "వినియోగ గణాంకాలను లోడ్ చేయడం విఫలమైంది.",
+ "tokenHealth": "టోకెన్ స్థితి",
+ "totalOAuth": "మొత్తం OAuth",
+ "healthy": "ఆరోగ్యంగా ఉంది",
+ "warning": "హెచ్చరిక",
+ "errored": "లోపం సంభవించింది",
+ "lastCheck": "చివరి తనిఖీ",
+ "noData": "డేటా లేదు",
+ "share": "షేర్ చేయండి",
+ "unableToLoad": "సిస్టమ్ మెట్రిక్లను లోడ్ చేయడం సాధ్యం కాలేదు",
+ "product": "ఉత్పత్తి",
+ "resources": "వనరులు",
+ "company": "కంపెనీ",
"tokenHealthTooltips": {
"allHealthy": "అన్ని టోకెన్లు ఆరోగ్యంగా ఉన్నాయి",
"needsAttention": "కొన్ని టోకెన్లు శ్రద్ధ అవసరం",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "ఇంకా ఖాతా-సంబంధిత వినియోగం నమోదు చేయబడలేదు. ఇక్కడ డేటా చూడటానికి OAuth ఖాతాలను ఉపయోగించి అభ్యర్థనలు చేయండి."
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "స్వాగతం",
+ "signIn": "సైన్ ఇన్ చేయండి",
+ "enterPassword": "కొనసాగించడానికి మీ పాస్వర్డ్ను నమోదు చేయండి",
+ "password": "పాస్వర్డ్",
+ "unifiedProxy": "ఏకీకృత AI API ప్రాక్సీ",
+ "unifiedAiApiProxy": "ఏకీకృత AI API ప్రాక్సీ",
+ "unifiedAiApiProxyDesc": "ఒకే ఎండ్పాయింట్ ద్వారా బహుళ AI ప్రొవైడర్లకు అభ్యర్థనలను రూట్ చేయండి. లోడ్ బ్యాలెన్సింగ్, ఫెయిల్ఓవర్ మరియు వినియోగ ట్రాకింగ్ అంతర్నిర్మితంగా ఉన్నాయి.",
+ "passwordNotEnabled": "పాస్వర్డ్ రక్షణ ప్రారంభించబడలేదు",
+ "loading": "లోడ్ అవుతోంది...",
+ "invalidPassword": "చెల్లని పాస్వర్డ్",
+ "errorOccurredRetry": "లోపం సంభవించింది. దయచేసి మళ్లీ ప్రయత్నించండి.",
+ "configureInstance": "మీ OmniRoute ఇన్స్టాన్స్ను కాన్ఫిగర్ చేద్దాం",
+ "runOnboardingWizard": "మీ పాస్వర్డ్ను సెటప్ చేయడానికి మరియు మీ మొదటి AI ప్రొవైడర్ను కనెక్ట్ చేయడానికి ఆన్బోర్డింగ్ విజార్డ్ను అమలు చేయండి.",
+ "startOnboarding": "ఆన్బోర్డింగ్ను ప్రారంభించండి",
+ "secureYourInstance": "మీ ఇన్స్టాన్స్ను సురక్షితం చేయండి",
+ "setPasswordDescription": "మీ డాష్బోర్డ్ను రక్షించడానికి మరియు అనధికార యాక్సెస్ నుండి మీ API ఎండ్పాయింట్లను సురక్షితం చేయడానికి పాస్వర్డ్ను సెట్ చేయండి.",
+ "configurePassword": "పాస్వర్డ్ను కాన్ఫిగర్ చేయండి",
+ "continue": "కొనసాగించండి",
+ "windowWillClose": "ఈ విండో స్వయంచాలకంగా మూసివేయబడుతుంది...",
+ "closeTabNow": "మీరు ఇప్పుడు ఈ ట్యాబ్ను మూసివేయవచ్చు.",
+ "copyUrlManual": "దయచేసి అడ్రస్ బార్ నుండి URLను కాపీ చేసి, అప్లికేషన్లో పేస్ట్ చేయండి.",
+ "accessDeniedDescription": "ఈ వనరును యాక్సెస్ చేయడానికి మీకు అనుమతి లేదు. మీ API కీని తనిఖీ చేయండి లేదా అడ్మినిస్ట్రేటర్ను సంప్రదించండి.",
+ "goToDashboard": "డాష్బోర్డ్కు వెళ్లండి",
+ "featureMultiProviderTitle": "బహుళ-ప్రొవైడర్",
+ "featureMultiProviderDesc": "OpenAI, Anthropic, Google మరియు మరిన్ని",
+ "featureLoadBalancingTitle": "లోడ్ బ్యాలెన్సింగ్",
+ "featureLoadBalancingDesc": "అభ్యర్థనలను తెలివిగా పంపిణీ చేయండి",
+ "featureUsageTrackingTitle": "వినియోగ ట్రాకింగ్",
+ "featureUsageTrackingDesc": "ఖర్చులు మరియు టోకెన్లను పర్యవేక్షించండి",
+ "resetPassword": "పాస్వర్డ్ను రీసెట్ చేయండి",
+ "resetDescription": "మీ డ్యాష్బోర్డ్కు యాక్సెస్ను పునరుద్ధరించడానికి ఒక పద్ధతిని ఎంచుకోండి",
+ "stopServer": "OmniRoute సర్వర్ను ఆపివేయండి",
+ "processing": "ప్రాసెస్ చేస్తోంది...",
+ "pleaseWait": "మేము అధికారీకరణను పూర్తి చేసే వరకు దయచేసి వేచి ఉండండి.",
+ "authSuccess": "అధికారీకరణ విజయవంతమైంది!",
+ "copyUrl": "ఈ URLను కాపీ చేయండి",
+ "accessDenied": "యాక్సెస్ నిరాకరించబడింది",
+ "methodCliTitle": "పద్ధతి 1: CLI రీసెట్",
+ "methodCliDescription": "OmniRoute నడుస్తున్న సర్వర్లో కింది కమాండ్ను అమలు చేయండి:",
+ "methodCliHint": "ఇది కొత్త పాస్వర్డ్ను సెట్ చేయమని మిమ్మల్ని అడుగుతుంది. ముందుగా సర్వర్ను ఆపివేయాలి.",
+ "methodManualTitle": "పద్ధతి 2: మాన్యువల్ రీసెట్",
+ "methodManualDescription": "డేటాబేస్ నుండి పాస్వర్డ్ను తొలగించి, ప్రారంభ సమయంలో కొత్తదాన్ని సెట్ చేయండి:",
+ "setPasswordInYour": "మీ",
+ "fileLabelSuffix": "ఫైల్లో కొత్త పాస్వర్డ్ను సెట్ చేయండి:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "తొలగించండి",
+ "orRemovePasswordHashField": "లేదా passwordHash ఫీల్డ్ను తొలగించండి",
+ "restartServerWithNewPassword": "సర్వర్ను పునఃప్రారంభించండి - అది కొత్త పాస్వర్డ్ను ఉపయోగిస్తుంది",
+ "backToLogin": "లాగిన్కు తిరిగి వెళ్లండి",
+ "forgotPassword": "పాస్వర్డ్ మర్చిపోయారా?",
"continueWithOidc": "OIDCతో కొనసాగండి",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "డిఫాల్ట్ పాస్వర్డ్: CHANGEME (INITIAL_PASSWORD సెట్ చేయకపోతే)",
+ "Authorization": "అధికారీకరణ",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "అధికారీకరణ కోసం వేచి ఉంది...",
+ "waitingForGoogleAuthorization": "Google అధికారీకరణ కోసం వేచి ఉంది...",
+ "waitingForOpenAIAuthorization": "OpenAI అధికారీకరణ కోసం వేచి ఉంది...",
+ "waitingForAntigravityAuthorization": "Antigravity అధికారీకరణ కోసం వేచి ఉంది...",
+ "waitingForQoderAuthorization": "Qoder అధికారీకరణ కోసం వేచి ఉంది...",
+ "exchangingCodeForTokens": "కోడ్ను టోకెన్ల కోసం మార్పిడి చేస్తోంది...",
+ "nodeIncompatibleTitle": "అనుకూలంగా లేని Node.js వెర్షన్",
+ "nodeIncompatibleDesc": "మీరు Node.js {version}ను అమలు చేస్తున్నారు, ఇది OmniRoute మద్దతిచ్చే సురక్షిత రన్టైమ్ విధాన పరిధికి వెలుపల ఉంది. ప్యాచ్ చేయబడిన Node.js 20.x లేదా 22.x LTS విడుదలను ఉపయోగించండి.",
+ "nodeIncompatibleFixLabel": "పరిష్కారం: ప్యాచ్ చేయబడిన Node.js 22 LTS విడుదలను ఇన్స్టాల్ చేయండి",
+ "nodeIncompatibleHint": "OmniRouteకు Node.js 22.22.2+ (22.x LTS) లేదా 24.0.0+ (24.x LTS) అవసరం. Node 24 LTS సిఫార్సు చేయబడింది.",
"resetViaAppDataTitle": "యాప్ డేటా ద్వారా పునఃసెట్టింగ్",
"resetViaAppDataDescription": "మీ పాస్వర్డ్ను పునఃసెట్ చేయడానికి యాప్ డేటా డైరెక్టరీ నుండి సెట్టింగ్స్ ఫైల్ను తొలగించండి:",
"quitDesktopApp": "OmniRoute డెస్క్టాప్ యాప్ను పూర్తిగా మూసివేయండి",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "హోమ్కు వెళ్లండి",
+ "toggleMenu": "మెనూను టాగుల్ చేయండి",
+ "featuresLink": "ఫీచర్లు",
+ "docsLink": "డాక్యుమెంటేషన్",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
- "howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "versionLive": "v1.0 ఇప్పుడు అందుబాటులో ఉంది",
+ "oneEndpoint": "వీటికోసం ఒకే ఎండ్పాయింట్",
+ "allProviders": "అన్ని AI ప్రొవైడర్లు",
+ "heroDescription": "వెబ్ డ్యాష్బోర్డ్తో కూడిన AI ఎండ్పాయింట్ ప్రాక్సీ — CLIProxyAPI యొక్క JavaScript పోర్ట్. Claude Code, OpenAI Codex, Cline, RooCode మరియు ఇతర CLI సాధనాలతో సజావుగా పనిచేస్తుంది.",
+ "getStarted": "ప్రారంభించండి",
+ "viewOnGithub": "GitHubలో చూడండి",
+ "powerfulFeatures": "శక్తివంతమైన ఫీచర్లు",
+ "featuresSubtitle": "మీ AI మౌలిక సదుపాయాలను ఒకే చోట నిర్వహించడానికి అవసరమైన ప్రతిదీ, విస్తృత స్థాయికి అనుగుణంగా రూపొందించబడింది.",
+ "featureUnifiedEndpointTitle": "ఏకీకృత ఎండ్పాయింట్",
+ "featureUnifiedEndpointDesc": "ఒకే ప్రామాణిక API URL ద్వారా అన్ని ప్రొవైడర్లను యాక్సెస్ చేయండి.",
+ "featureEasySetupTitle": "సులభమైన సెటప్",
+ "featureEasySetupDesc": "npx కమాండ్తో నిమిషాల్లో ప్రారంభించండి.",
+ "featureModelFallbackTitle": "మోడల్ ఫాల్బ్యాక్",
+ "featureModelFallbackDesc": "వైఫల్యం లేదా అధిక లేటెన్సీ ఏర్పడినప్పుడు ప్రొవైడర్లను స్వయంచాలకంగా మార్చండి.",
+ "featureUsageTrackingTitle": "వినియోగ ట్రాకింగ్",
+ "featureUsageTrackingDesc": "అన్ని మోడళ్లకు సంబంధించిన వివరణాత్మక విశ్లేషణలు మరియు వ్యయ పర్యవేక్షణ.",
+ "featureOAuthApiKeysTitle": "OAuth & API కీలు",
+ "featureOAuthApiKeysDesc": "ఒకే వాల్ట్లో క్రెడెన్షియల్స్ను సురక్షితంగా నిర్వహించండి.",
+ "featureCloudSyncTitle": "క్లౌడ్ సింక్",
+ "featureCloudSyncDesc": "మీ కాన్ఫిగరేషన్లను అన్ని పరికరాల్లో తక్షణమే సింక్ చేయండి.",
+ "featureCliSupportTitle": "CLI మద్దతు",
+ "featureCliSupportDesc": "Claude Code, Codex, Cline, Cursor మరియు మరిన్ని సాధనాలతో పనిచేస్తుంది.",
+ "featureDashboardTitle": "డ్యాష్బోర్డ్",
+ "featureDashboardDesc": "రియల్-టైమ్ ట్రాఫిక్ విశ్లేషణ కోసం విజువల్ డ్యాష్బోర్డ్.",
+ "howItWorks": "OmniRoute ఎలా పనిచేస్తుంది",
+ "howItWorksDescription": "మీ అప్లికేషన్ నుండి మా తెలివైన రూటింగ్ లేయర్ ద్వారా పనికి అత్యుత్తమమైన ప్రొవైడర్కు డేటా సజావుగా ప్రవహిస్తుంది.",
+ "howItWorksStep1Title": "1. CLI & SDKలు",
+ "howItWorksStep1Description": "మీ అభ్యర్థనలు మీకు ఇష్టమైన సాధనాలు లేదా మా ఏకీకృత SDK నుండి ప్రారంభమవుతాయి. కేవలం బేస్ URLను మార్చండి.",
+ "howItWorksStep2Title": "2. OmniRoute హబ్",
+ "howItWorksStep2Description": "మా ఇంజిన్ ప్రాంప్ట్ను విశ్లేషించి, ప్రొవైడర్ స్థితిని తనిఖీ చేసి, అత్యల్ప లేటెన్సీ లేదా వ్యయం కోసం రూట్ చేస్తుంది.",
+ "howItWorksStep3Title": "3. AI ప్రొవైడర్లు",
+ "howItWorksStep3Description": "అభ్యర్థనను OpenAI, Anthropic, Gemini లేదా ఇతర ప్రొవైడర్లు తక్షణమే నెరవేరుస్తారు.",
+ "getStartedIn30Seconds": "30 సెకన్లలో ప్రారంభించండి",
+ "getStartedDescription": "OmniRouteను ఇన్స్టాల్ చేసి, వెబ్ డ్యాష్బోర్డ్ ద్వారా మీ ప్రొవైడర్లను కాన్ఫిగర్ చేసి, AI అభ్యర్థనలను రూట్ చేయడం ప్రారంభించండి.",
+ "installOmniRoute": "OmniRouteను ఇన్స్టాల్ చేయండి",
+ "installStepDescription": "సర్వర్ను తక్షణమే ప్రారంభించడానికి npx కమాండ్ను అమలు చేయండి",
+ "openDashboard": "డ్యాష్బోర్డ్ను తెరవండి",
+ "openDashboardStepDescription": "వెబ్ ఇంటర్ఫేస్ ద్వారా ప్రొవైడర్లు మరియు API కీలను కాన్ఫిగర్ చేయండి",
+ "routeRequests": "అభ్యర్థనలను రూట్ చేయండి",
+ "routeRequestsStepDescription": "మీ CLI సాధనాలను {endpoint}కు మళ్లించండి",
+ "terminal": "టెర్మినల్",
+ "copy": "కాపీ చేయండి",
+ "copied": "✓ కాపీ చేయబడింది",
+ "startingOmniRoute": "OmniRoute ప్రారంభమవుతోంది...",
+ "serverRunningOnLabel": "సర్వర్ అమలవుతున్న చిరునామా",
+ "dashboardLabel": "డాష్బోర్డ్",
+ "readyToRoute": "రూట్ చేయడానికి సిద్ధం! ✓",
+ "configureProvidersNote": "📝 డాష్బోర్డ్లో ప్రొవైడర్లను కాన్ఫిగర్ చేయండి లేదా ఎన్విరాన్మెంట్ వేరియబుల్స్ను ఉపయోగించండి",
+ "dataLocation": "డేటా స్థానం:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "ఉత్పత్తి",
+ "dashboardLink": "డాష్బోర్డ్",
+ "changelog": "మార్పుల చిట్టా",
+ "resources": "వనరులు",
+ "documentation": "డాక్యుమెంటేషన్",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "చట్టపరమైన సమాచారం",
+ "mitLicense": "MIT లైసెన్స్",
+ "footerTagline": "AI జనరేషన్ కోసం ఏకీకృత ఎండ్పాయింట్. మీ AI ప్రొవైడర్లను సులభంగా కనెక్ట్ చేయండి, రూట్ చేయండి మరియు నిర్వహించండి.",
+ "copyright": "© {year} OmniRoute. అన్ని హక్కులు ప్రత్యేకించబడ్డాయి.",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "డెస్క్టాప్లో ఇంటరాక్టివ్ డయాగ్రామ్ కనిపిస్తుంది",
+ "ctaTitle": "మీ AI ఇన్ఫ్రాస్ట్రక్చర్ను సరళీకరించడానికి సిద్ధంగా ఉన్నారా?",
+ "ctaDescription": "OmniRouteతో తమ AI ఇంటిగ్రేషన్లను క్రమబద్ధీకరిస్తున్న డెవలపర్లతో చేరండి. ఇది ఓపెన్ సోర్స్ మరియు ఉచితంగా ప్రారంభించవచ్చు.",
+ "startFree": "ఉచితంగా ప్రారంభించండి",
+ "readDocumentation": "డాక్యుమెంటేషన్ చదవండి",
"company": "కంపెనీ",
"pricing": "ధరలు",
"apiReference": "API సూచిక",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "సమాజ చర్చలు"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "డాక్యుమెంటేషన్",
+ "quickStart": "త్వరిత ప్రారంభం",
"deploymentGuides": "విస్తరణ మార్గదర్శకాలు",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "ఫీచర్లు",
+ "supportedProviders": "మద్దతు ఉన్న ప్రొవైడర్లు",
+ "supportedProvidersToc": "ప్రొవైడర్లు",
+ "commonUseCases": "సాధారణ వినియోగ సందర్భాలు",
+ "clientCompatibility": "క్లయింట్ అనుకూలత",
+ "protocolsToc": "ప్రోటోకాల్లు",
+ "apiReference": "API రిఫరెన్స్",
+ "managementApiReference": "మేనేజ్మెంట్ API రిఫరెన్స్",
+ "managementApiDescription": "ప్రాక్సీ రిజిస్ట్రీ, స్కోప్ కేటాయింపులు మరియు లెగసీ ప్రాక్సీ మైగ్రేషన్ కోసం ఆటోమేషన్ ఎండ్పాయింట్లు.",
+ "method": "పద్ధతి",
+ "path": "పాత్",
+ "notes": "గమనికలు",
+ "modelPrefixes": "మోడల్ ప్రిఫిక్స్లు",
+ "prefix": "ప్రిఫిక్స్",
+ "troubleshooting": "సమస్య పరిష్కారం",
+ "supportsChat": "చాట్ మరియు రెస్పాన్సెస్ ఎండ్పాయింట్లు రెండింటికీ మద్దతు ఇస్తుంది.",
+ "oauthAutoRefresh": "ఆటోమేటిక్ టోకెన్ రిఫ్రెష్తో OAuth కనెక్షన్.",
+ "fullStreaming": "అన్ని మోడళ్లకు పూర్తి స్ట్రీమింగ్ మద్దతు.",
+ "docsLabel": "డాక్యుమెంటేషన్",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "డ్యాష్బోర్డ్ను తెరవండి",
+ "endpointPage": "ఎండ్పాయింట్ పేజీ",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "సమస్యను నివేదించండి",
+ "onThisPage": "ఈ పేజీలో",
+ "documentationVersion": "డాక్యుమెంటేషన్ - v{version}",
+ "quickStartStep1Title": "1. ఇన్స్టాల్ చేసి అమలు చేయండి",
+ "quickStartStep1Prefix": "అమలు చేయండి",
+ "quickStartStep1Middle": "లేదా GitHub నుండి క్లోన్ చేసి అమలు చేయండి",
+ "quickStartStep2Title": "2. API కీని సృష్టించండి",
+ "quickStartStep2Text": "Endpoint -> Registered Keysకు వెళ్లండి. ప్రతి ఎన్విరాన్మెంట్కు ఒక కీని రూపొందించండి.",
+ "quickStartStep3Title": "3. ప్రొవైడర్లను కనెక్ట్ చేయండి",
+ "quickStartStep3Text": "OAuth లాగిన్, API కీ లేదా ఫ్రీ-టియర్ ఆటో-కనెక్ట్ ద్వారా ప్రొవైడర్ ఖాతాలను జోడించండి.",
+ "quickStartStep4Title": "4. క్లయింట్ బేస్ URLను సెట్ చేయండి",
+ "quickStartStep4Prefix": "మీ IDE లేదా API క్లయింట్ను దీనికి మళ్లించండి",
+ "quickStartStep4Suffix": "ప్రొవైడర్ ప్రిఫిక్స్ను ఉపయోగించండి, ఉదాహరణకు",
"deploySetupTitle": "సెటప్ గైడ్",
"deploySetupText": "OmniRoute కోసం దశల వారీ ఇన్స్టాలేషన్, ఎన్విరాన్మెంట్ కాన్ఫిగరేషన్ మరియు ఫస్ట్-రన్ వాక్త్రూ.",
"deployElectronTitle": "ఎలక్ట్రాన్ డెస్క్టాప్",
@@ -10071,161 +10082,161 @@
"deployPwaTitle": "PWA",
"deployPwaText": "Android, iOS మరియు డెస్క్టాప్ బ్రౌజర్లలో ప్రోగ్రెసివ్ వెబ్ యాప్గా OmniRouteని ఇన్స్టాల్ చేయండి.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "Termux ద్వారా Androidలో OmniRouteను హెడ్లెస్గా అమలు చేయండి. మీ మొబైల్ బ్రౌజర్ నుండి డ్యాష్బోర్డ్ను యాక్సెస్ చేయండి.",
+ "featureRoutingTitle": "బహుళ-ప్రొవైడర్ రూటింగ్",
+ "featureRoutingText": "ఒకే OpenAI-అనుకూల ఎండ్పాయింట్ ద్వారా అభ్యర్థనలను 30+ AI ప్రొవైడర్లకు రూట్ చేయండి. చాట్, రెస్పాన్సెస్, ఆడియో మరియు ఇమేజ్ APIలకు మద్దతు ఇస్తుంది.",
+ "featureCombosTitle": "కాంబోలు మరియు బ్యాలెన్సింగ్",
+ "featureCombosText": "ఫాల్బ్యాక్ చైన్లు మరియు బ్యాలెన్సింగ్ వ్యూహాలతో మోడల్ కాంబోలను సృష్టించండి: రౌండ్-రాబిన్, ప్రాధాన్యత, యాదృచ్ఛికం, అత్యల్ప వినియోగం మరియు ఖర్చు-ఆప్టిమైజ్డ్.",
+ "featureUsageTitle": "వినియోగం మరియు ఖర్చు ట్రాకింగ్",
+ "featureUsageText": "రియల్-టైమ్ టోకెన్ లెక్కింపు, ప్రతి ప్రొవైడర్/మోడల్కు ఖర్చు గణన మరియు API కీ, ఖాతా వారీగా వివరణాత్మక వినియోగ విభజన.",
+ "featureAnalyticsTitle": "అనలిటిక్స్ డ్యాష్బోర్డ్",
+ "featureAnalyticsText": "కాలక్రమేణా అభ్యర్థనలు, టోకెన్లు, లోపాలు, లేటెన్సీ, ఖర్చులు మరియు మోడల్ ప్రజాదరణకు సంబంధించిన చార్ట్లతో విజువల్ అనలిటిక్స్.",
+ "featureHealthTitle": "హెల్త్ మానిటరింగ్",
+ "featureHealthText": "లైవ్ హెల్త్ చెక్లు, ప్రొవైడర్ స్థితి, సర్క్యూట్ బ్రేకర్ స్థితులు మరియు ఎక్స్పోనెన్షియల్ బ్యాక్ఆఫ్తో ఆటోమేటిక్ రేట్ లిమిట్ గుర్తింపు.",
+ "featureCliTitle": "CLI సాధనాలు",
+ "featureCliText": "IDE కాన్ఫిగరేషన్లను నిర్వహించండి, బ్యాకప్లను ఎక్స్పోర్ట్/ఇంపోర్ట్ చేయండి, codex ప్రొఫైల్లను కనుగొనండి మరియు డ్యాష్బోర్డ్ నుండి సెట్టింగ్లను కాన్ఫిగర్ చేయండి.",
+ "featureSecurityTitle": "భద్రత మరియు విధానాలు",
+ "featureSecurityText": "API కీ ప్రమాణీకరణ, IP ఫిల్టరింగ్, ప్రాంప్ట్ ఇంజెక్షన్ గార్డ్, డొమైన్ విధానాలు, సెషన్ నిర్వహణ మరియు ఆడిట్ లాగింగ్.",
+ "featureCloudSyncTitle": "క్లౌడ్ సింక్",
+ "featureCloudSyncText": "ఎన్క్రిప్ట్ చేసిన క్రెడెన్షియల్స్ మరియు ఆటోమేటిక్ ఫెయిల్ఓవర్తో రిమోట్ యాక్సెస్ కోసం మీ కాన్ఫిగరేషన్ను Cloudflare Workersకు సింక్ చేయండి.",
+ "providersAcrossConnectionTypes": "మూడు కనెక్షన్ రకాలలో {count} ప్రొవైడర్లు.",
+ "manageProviders": "ప్రొవైడర్లను నిర్వహించండి",
+ "providersCount": "{count} ప్రొవైడర్లు",
+ "providerTypeFree": "ఉచిత శ్రేణి",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "API కీ",
+ "useCaseSingleEndpointTitle": "అనేక ప్రొవైడర్ల కోసం ఒకే ఎండ్పాయింట్",
+ "useCaseSingleEndpointText": "క్లయింట్లను ఒకే బేస్ URLకు మళ్లించి, మోడల్ ప్రిఫిక్స్ ఆధారంగా రూట్ చేయండి (ఉదాహరణకు: gh/, cc/, kr/, openai/).",
+ "useCaseFallbackTitle": "కాంబోలతో ఫాల్బ్యాక్ మరియు మోడల్ మార్పిడి",
+ "useCaseFallbackText": "Dashboardలో కాంబో మోడళ్లను సృష్టించి, ప్రొవైడర్లు అంతర్గతంగా మారుతున్నప్పటికీ క్లయింట్ కాన్ఫిగరేషన్ను స్థిరంగా ఉంచండి.",
+ "useCaseUsageVisibilityTitle": "వినియోగం, ఖర్చు మరియు డీబగ్ వివరాలు",
+ "useCaseUsageVisibilityText": "Usage మరియు Analytics ట్యాబ్లలో ప్రొవైడర్, ఖాతా మరియు API కీ వారీగా టోకెన్లు, ఖర్చును ట్రాక్ చేయండి.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "బేస్ URL",
+ "chatEndpointLabel": "చాట్ ఎండ్పాయింట్",
+ "modelRecommendationLabel": "మోడల్ సిఫార్సు: స్పష్టమైన ప్రిఫిక్స్",
+ "clientCodexTitle": "Codex / GitHub Copilot మోడళ్లు",
+ "clientCodexBullet1": "మోడల్ IDలను దీనితో ఉపయోగించండి",
+ "clientCodexBullet2": "Codex-కుటుంబ మోడళ్లు స్వయంచాలకంగా దీనికి రూట్ అవుతాయి",
+ "clientCodexBullet3": "Codex కాని మోడళ్లు దీనిపైనే కొనసాగుతాయి",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "దీనిని ఉపయోగించండి",
+ "clientCursorBullet1Suffix": "Cursor మోడళ్ల కోసం ప్రిఫిక్స్.",
+ "clientCursorBullet2": "OAuth కనెక్షన్ — Providers పేజీ నుండి లాగిన్ చేయండి.",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "దీనిని ఉపయోగించండి",
+ "clientClaudeBullet1Middle": "(Claude) లేదా",
+ "clientClaudeBullet1Suffix": "(Antigravity) ప్రిఫిక్స్.",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "OmniRouteను OpenAI-అనుకూల బేస్ URLగా ఉపయోగించి, నిర్దిష్ట రూటింగ్ కోసం స్పష్టమైన ప్రొవైడర్ ప్రిఫిక్స్లను ఉంచండి.",
+ "clientWindsurfBullet2": "సాధారణ ట్రాఫిక్ కోసం మోడళ్లను `/v1/chat/completions`కు మళ్లించి, Codex-శైలి ఫ్లోల కోసం `/v1/responses`ను అలాగే ఉంచండి.",
+ "clientWindsurfBullet3": "సిద్ధంగా ఉన్న Windsurf కాన్ఫిగరేషన్ మార్గదర్శిని కోసం Dashboard -> CLI Toolsను ఉపయోగించండి.",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "స్పష్టమైన ప్రొవైడర్/మోడల్ ప్రిఫిక్స్లతో Cline ఉత్తమంగా పనిచేస్తుంది, తద్వారా రూటర్ బ్యాకెండ్ను ఊహించాల్సిన అవసరం ఉండదు.",
+ "clientClineBullet2": "సాధారణ మోడళ్ల కోసం `/v1/chat/completions`ను ఉపయోగించి, వేర్వేరు ఖాతాల్లో అదే OmniRoute బేస్ URLను తిరిగి ఉపయోగించండి.",
+ "clientClineBullet3": "Cline రన్టైమ్ సమస్యలను డీబగ్ చేయడానికి ముందు OAuth/API కీని ధృవీకరించేందుకు Providers డ్యాష్బోర్డ్ను ఉపయోగించండి.",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "అంతర్గతంగా ఖాతాలు లేదా ప్రొవైడర్ కాంబోలను మారుస్తూనే, OmniRouteను స్థిరమైన బేస్ URLగా ఉపయోగించండి.",
+ "clientKimiBullet2": "ఫాల్బ్యాక్ మరియు ఆడిట్ ట్రయల్ స్పష్టంగా ఉండేలా కోడింగ్ ఫ్లోలలో ప్రిఫిక్స్గల మోడళ్లకు ప్రాధాన్యం ఇవ్వండి.",
+ "clientKimiBullet3": "టూల్స్ను ఉపయోగించే క్లయింట్ల కోసం స్థానిక Responses-శైలి రూటింగ్ కావాలనుకున్నప్పుడు `/v1/responses`ను ఉపయోగించండి.",
+ "protocolsTitle": "ప్రోటోకాల్లు: MCP & A2A",
+ "protocolsDescription": "OpenAI-అనుకూల APIలతో పాటు OmniRoute రెండు కార్యాచరణ ప్రోటోకాల్లను అందిస్తుంది: టూల్ అమలు కోసం MCP మరియు ఏజెంట్-టు-ఏజెంట్ వర్క్ఫ్లోల కోసం A2A.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "ఆడిట్ విజిబిలిటీతో OmniRoute టూల్స్ను కనుగొని కాల్ చేయడానికి క్లయింట్లను అనుమతించేందుకు stdio ద్వారా MCPని ఉపయోగించండి.",
+ "protocolMcpStep1": "`omniroute --mcp`తో MCP ట్రాన్స్పోర్ట్ను ప్రారంభించండి.",
+ "protocolMcpStep2": "మీ MCP క్లయింట్ను stdio ట్రాన్స్పోర్ట్కు మళ్లించండి.",
+ "protocolMcpStep3": "కనెక్టివిటీని ధృవీకరించడానికి `omniroute_get_health` మరియు `omniroute_list_combos`లను కాల్ చేయండి.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "టాస్క్లను సమకాలికంగా లేదా SSE స్ట్రీమింగ్ ద్వారా సమర్పించడానికి A2A JSON-RPCని ఉపయోగించండి.",
+ "protocolA2aStep1": "ఏజెంట్ను కనుగొనడానికి `/.well-known/agent.json`ను చదవండి.",
+ "protocolA2aStep2": "`POST /a2a`కు `message/send` లేదా `message/stream` అభ్యర్థనలను పంపండి.",
+ "protocolA2aStep3": "`tasks/get` మరియు `tasks/cancel`తో టాస్క్ జీవితచక్రాన్ని నిర్వహించండి.",
+ "protocolTroubleshootingTitle": "ప్రోటోకాల్ సమస్యల పరిష్కారం",
+ "protocolTroubleshooting1": "MCP స్థితి ఆఫ్లైన్లో ఉంటే, stdio ప్రాసెస్ నడుస్తోందని మరియు హార్ట్బీట్ ఫైల్ అప్డేట్ అవుతోందని ధృవీకరించండి.",
+ "protocolTroubleshooting2": "A2A టాస్క్లు `working`లోనే ఉండిపోతే, `/api/a2a/tasks/:id`ను పరిశీలించి, తుది స్థితి కోసం ఈవెంట్లను స్ట్రీమ్ చేయండి.",
+ "protocolTroubleshooting3": "కార్యాచరణ నియంత్రణలు మరియు ఆడిట్ దృశ్యమానత కోసం `/dashboard/mcp` మరియు `/dashboard/a2a`లను ఉపయోగించండి.",
+ "endpointChatNote": "OpenAI-అనుకూల చాట్ ఎండ్పాయింట్ (డిఫాల్ట్).",
+ "endpointResponsesNote": "Responses API ఎండ్పాయింట్ (Codex, o-series).",
+ "endpointModelsNote": "కనెక్ట్ చేయబడిన అన్ని ప్రొవైడర్ల మోడల్ కేటలాగ్.",
+ "endpointAudioNote": "ఆడియో ట్రాన్స్క్రిప్షన్ (Deepgram, AssemblyAI).",
+ "endpointSpeechNote": "టెక్స్ట్-టు-స్పీచ్ జనరేషన్ (ElevenLabs, OpenAI TTS).",
+ "endpointEmbeddingsNote": "టెక్స్ట్ ఎంబెడ్డింగ్ జనరేషన్ (OpenAI, Cohere, Voyage).",
+ "endpointImagesNote": "చిత్ర సృష్టి (NanoBanana).",
+ "endpointRewriteChatNote": "/v1 లేని క్లయింట్ల కోసం రీరైట్ సహాయకం.",
+ "endpointRewriteResponsesNote": "/v1 లేని Responses కోసం రీరైట్ సహాయకం.",
+ "endpointRewriteModelsNote": "/v1 లేని మోడల్ డిస్కవరీ కోసం రీరైట్ సహాయకం.",
+ "mgmtProxiesListNote": "సేవ్ చేసిన ప్రాక్సీ రిజిస్ట్రీ అంశాలను జాబితా చేయండి (పేజినేషన్కు మద్దతు ఉంది).",
+ "mgmtProxiesCreateNote": "రిజిస్ట్రీలో మళ్లీ ఉపయోగించగల ప్రాక్సీ అంశాన్ని సృష్టించండి.",
+ "mgmtProxiesHealthNote": "ప్రాక్సీ లాగ్ల నుండి సేవ్ చేసిన ప్రతి ప్రాక్సీకి 24గం./రోలింగ్ హెల్త్ మెట్రిక్లను పొందండి.",
+ "mgmtProxiesBulkAssignNote": "ఒకే అభ్యర్థనలో అనేక స్కోప్ IDలకు ఒక ప్రాక్సీని కేటాయించండి లేదా తొలగించండి.",
+ "mgmtAssignmentsListNote": "scope, scope_id లేదా proxy_id ఆధారంగా ప్రాక్సీ కేటాయింపులను జాబితా చేయండి.",
+ "mgmtAssignmentsUpdateNote": "global/provider/account/combo స్కోప్కు ప్రాక్సీని కేటాయించండి లేదా తొలగించండి.",
+ "mgmtLegacyMigrationNote": "లెగసీ proxyConfig మ్యాప్లను రిజిస్ట్రీ కేటాయింపుల్లోకి దిగుమతి చేయండి.",
+ "modelPrefixesDescriptionStart": "నిర్దిష్ట ప్రొవైడర్కు రూట్ చేయడానికి మోడల్ పేరుకు ముందు ప్రొవైడర్ ప్రిఫిక్స్ను ఉపయోగించండి. ఉదాహరణ:",
+ "modelPrefixesDescriptionEnd": "GitHub Copilotకు రూట్ చేస్తుంది.",
+ "provider": "ప్రొవైడర్",
+ "type": "రకం",
+ "troubleshootingModelRouting": "మోడల్ రూటింగ్తో క్లయింట్ విఫలమైతే, స్పష్టమైన provider/modelను ఉపయోగించండి (ఉదాహరణకు: gh/gpt-5.1-codex).",
+ "troubleshootingAmbiguousModels": "అస్పష్టమైన మోడల్ లోపాలు వస్తే, కేవలం మోడల్ IDకు బదులుగా ప్రొవైడర్ ప్రిఫిక్స్ను ఎంచుకోండి.",
+ "troubleshootingCodexFamily": "GitHub Codex-కుటుంబ మోడల్ల కోసం, మోడల్ను gh/codex-modelగానే ఉంచండి; రౌటర్ స్వయంచాలకంగా /responsesను ఎంచుకుంటుంది.",
+ "troubleshootingTestConnection": "IDEలు లేదా బాహ్య క్లయింట్ల నుండి పరీక్షించే ముందు Dashboard > Providers > Test Connectionను ఉపయోగించండి.",
+ "troubleshootingCircuitBreaker": "ఒక ప్రొవైడర్లో సర్క్యూట్ బ్రేకర్ తెరిచి ఉన్నట్లు కనిపిస్తే, కూల్డౌన్ పూర్తయ్యే వరకు వేచి ఉండండి లేదా వివరాల కోసం Health పేజీని తనిఖీ చేయండి.",
+ "troubleshootingOAuth": "OAuth ప్రొవైడర్లకు టోకెన్ల గడువు ముగిస్తే, మళ్లీ ప్రామాణీకరించండి. ప్రొవైడర్ కార్డ్ స్థితి సూచికను తనిఖీ చేయండి.",
+ "endpointCompletionsNote": "టెక్స్ట్ జనరేషన్ కోసం లెగసీ కంప్లీషన్స్ ఎండ్పాయింట్.",
+ "endpointModerationsNote": "కంటెంట్ మోడరేషన్ మరియు భద్రతా వర్గీకరణ.",
+ "endpointRerankNote": "రిట్రీవల్-ఆగ్మెంటెడ్ జనరేషన్ కోసం డాక్యుమెంట్ రీర్యాంకింగ్ (Cohere, Jina).",
+ "endpointSearchNote": "5 ప్రొవైడర్లతో వెబ్ శోధన (Serper, Brave, Exa, Tavily, Perplexity).",
+ "endpointSearchAnalyticsNote": "శోధన అభ్యర్థనల కోసం విశ్లేషణలు మరియు మెట్రిక్లు.",
+ "endpointVideoNote": "వీడియో జనరేషన్ (ComfyUI, SD WebUI వర్క్ఫ్లోలు).",
+ "endpointMusicNote": "ComfyUI వర్క్ఫ్లోల ద్వారా సంగీత జనరేషన్.",
+ "endpointMessagesNote": "Anthropic-నేటివ్ సందేశాల ఎండ్పాయింట్.",
+ "endpointCountTokensNote": "ఇచ్చిన సందేశ పేలోడ్లోని టోకెన్లను లెక్కించండి.",
+ "endpointFilesNote": "మల్టీమోడల్ ఇన్పుట్ల కోసం ఫైల్ అప్లోడ్.",
+ "endpointBatchesNote": "పెద్ద మొత్తంలోని API అభ్యర్థనల కోసం బ్యాచ్ ప్రాసెసింగ్.",
+ "endpointWsNote": "రియల్-టైమ్ స్ట్రీమింగ్ కోసం WebSocket ఎండ్పాయింట్.",
+ "mgmtProvidersListNote": "నమోదైన అన్ని ప్రొవైడర్ కనెక్షన్లను జాబితా చేయండి.",
+ "mgmtProvidersCreateNote": "కొత్త ప్రొవైడర్ కనెక్షన్ను సృష్టించండి.",
+ "mgmtProvidersUpdateNote": "ఇప్పటికే ఉన్న ప్రొవైడర్ కనెక్షన్ను నవీకరించండి.",
+ "mgmtProvidersDeleteNote": "ప్రొవైడర్ కనెక్షన్ను తొలగించండి.",
+ "mgmtProvidersTestNote": "ప్రొవైడర్ కోసం కనెక్టివిటీ మరియు ప్రామాణీకరణను పరీక్షించండి.",
+ "mgmtProvidersModelsNote": "నిర్దిష్ట ప్రొవైడర్ కోసం అందుబాటులో ఉన్న మోడల్లను జాబితా చేయండి.",
+ "mgmtSettingsGetNote": "ప్రస్తుత అప్లికేషన్ సెట్టింగ్లను పొందండి.",
+ "mgmtSettingsUpdateNote": "అప్లికేషన్ సెట్టింగ్లను నవీకరించండి.",
+ "mgmtPayloadRulesGetNote": "పేలోడ్ పరివర్తన నియమాలను పొందండి.",
+ "mgmtPayloadRulesUpdateNote": "పేలోడ్ పరివర్తన నియమాలను నవీకరించండి.",
+ "mcpToolsTitle": "MCP సాధనాలు",
+ "mcpToolsDescription": "ఏజెంట్ ఆర్కెస్ట్రేషన్ కోసం Model Context Protocol ద్వారా OmniRoute {count} సాధనాలను అందుబాటులో ఉంచుతుంది.",
+ "mcpToolsCount": "{count} సాధనాలు",
+ "mcpToolsToc": "MCP సాధనాలు",
+ "mcpToolsRoutingTitle": "రూటింగ్ & అన్వేషణ",
+ "mcpToolsRoutingDesc": "స్థితి తనిఖీలు, కాంబో నిర్వహణ, కోటా పర్యవేక్షణ, ఖర్చు నివేదన మరియు మోడల్ కేటలాగ్ యాక్సెస్.",
+ "mcpToolsOperationsTitle": "కార్యకలాపాలు & వ్యూహం",
+ "mcpToolsOperationsDesc": "రూట్ సిమ్యులేషన్, బడ్జెట్ రక్షణలు, వ్యూహ మార్పిడి, స్థితిస్థాపకత ప్రొఫైల్లు మరియు ప్రొవైడర్ మెట్రిక్లు.",
+ "mcpToolsCacheTitle": "క్యాష్ నిర్వహణ",
+ "mcpToolsCacheDesc": "క్యాష్ గణాంకాలను వీక్షించండి మరియు సెమాంటిక్ లేదా సిగ్నేచర్ క్యాష్లను ఖాళీ చేయండి.",
"mcpToolsCompressionTitle": "కంప్రెషన్ ఇంజన్లు",
"mcpToolsCompressionDesc": "RTK/Brotli కంప్రెషన్, స్వాప్ ఇంజిన్లను కాన్ఫిగర్ చేయండి మరియు కాంబో ద్వారా కంప్రెషన్ అనలిటిక్స్ను తనిఖీ చేయండి.",
"mcpToolsOneProxyTitle": "1ప్రాక్సీ / టన్నెల్స్",
"mcpToolsOneProxyDesc": "అవుట్బౌండ్ ప్రాక్సీలను నిర్వహించండి, నివాస IPలను తిప్పండి మరియు ప్రాక్సీ ఆరోగ్యాన్ని తనిఖీ చేయండి.",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "మెమరీ",
+ "mcpToolsMemoryDesc": "శాశ్వత సంభాషణ మెమరీ ఎంట్రీలను శోధించండి, జోడించండి మరియు తొలగించండి.",
+ "mcpToolsSkillsTitle": "నైపుణ్యాలు",
+ "mcpToolsSkillsDesc": "అనుకూల నైపుణ్య అమలులను జాబితా చేయండి, ప్రారంభించండి, అమలు చేయండి మరియు పర్యవేక్షించండి.",
+ "featureAutoComboTitle": "ఆటో-కాంబో",
+ "featureAutoComboText": "మీ కనెక్ట్ చేసిన ప్రొవైడర్లు, వినియోగ విధానాలు మరియు మోడల్ సామర్థ్యాల ఆధారంగా ఆప్టిమైజ్ చేసిన కాంబోలను స్వయంచాలకంగా సృష్టించండి.",
+ "featureSearchTitle": "వెబ్ శోధన",
+ "featureSearchText": "విశ్లేషణలు మరియు ఖర్చు ట్రాకింగ్తో సహా 5 ప్రొవైడర్లతో (Serper, Brave, Exa, Tavily, Perplexity) సమీకృత వెబ్ శోధన.",
+ "featureMemoryTitle": "మెమరీ వ్యవస్థ",
+ "featureMemoryText": "సెషన్ల అంతటా సంగ్రహణ, చొప్పింపు, తిరిగి పొందడం మరియు సారాంశీకరణతో కూడిన శాశ్వత సంభాషణ మెమరీ.",
+ "featureSkillsTitle": "నైపుణ్యాల ఫ్రేమ్వర్క్",
+ "featureSkillsText": "అంతర్నిర్మిత మరియు అనుకూల నైపుణ్యాలు, శాండ్బాక్స్ అమలు, అభ్యర్థన అంతరాయనం మరియు సందర్భ చొప్పింపుతో కూడిన విస్తరించదగిన నైపుణ్య వ్యవస్థ.",
+ "featureAcpTitle": "ఏజెంట్ కమ్యూనికేషన్",
+ "featureAcpText": "ఏజెంట్ల మధ్య వర్క్ఫ్లోలు మరియు టూల్ ఆర్కెస్ట్రేషన్ను నిర్వహించడానికి ఏజెంట్ కమ్యూనికేషన్ ప్రోటోకాల్ (ACP) రిజిస్ట్రీ.",
+ "protocolAcpTitle": "ACP (ఏజెంట్ కమ్యూనికేషన్)",
+ "protocolAcpDesc": "ఏజెంట్ల మధ్య కమ్యూనికేషన్ మరియు టూల్ షేరింగ్ కోసం ACP రిజిస్ట్రీ ద్వారా ఏజెంట్లను నమోదు చేసి నిర్వహించండి.",
+ "protocolAcpStep1": "నమోదు చేసిన ACP ఏజెంట్లను చూడటానికి Dashboard → Agentsకు వెళ్లండి.",
+ "protocolAcpStep2": "సామర్థ్యాలు మరియు ఎండ్పాయింట్ కాన్ఫిగరేషన్తో కొత్త ఏజెంట్లను నమోదు చేయండి.",
+ "protocolAcpStep3": "ఏజెంట్ కమ్యూనికేషన్ ఛానెల్లను కాన్ఫిగర్ చేయడానికి CLI Toolsను ఉపయోగించండి.",
"metadataTitleTemplate": "%s — OmniRoute డాక్స్",
"metadataDefaultTitle": "ఒమ్నిరూట్ డాక్యుమెంటేషన్",
"metadataDescription": "OmniRoute AI గేట్వే కోసం సమగ్ర డాక్యుమెంటేషన్ — సెటప్, API, కంప్రెషన్, డిప్లాయ్మెంట్, మరియు మరింత.",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "గోప్యతా విధానం",
+ "termsOfService": "సేవా నిబంధనలు",
+ "providerConfigurations": "ప్రొవైడర్ కాన్ఫిగరేషన్లు",
+ "apiKeys": "API కీలు",
+ "usageLogs": "వినియోగ లాగ్లు",
+ "applicationSettings": "అప్లికేషన్ సెట్టింగ్లు",
+ "viewExportAnalytics": "వినియోగ విశ్లేషణలను వీక్షించి ఎగుమతి చేయండి",
+ "clearHistory": "వినియోగ చరిత్రను ఎప్పుడైనా తొలగించండి",
+ "configureRetention": "లాగ్ నిల్వ విధానాలను కాన్ఫిగర్ చేయండి",
+ "backupRestore": "మీ డేటాబేస్ను బ్యాకప్ చేసి పునరుద్ధరించండి",
+ "privacyMetadataTitle": "గోప్యతా విధానం | OmniRoute",
+ "privacyMetadataDescription": "OmniRoute AI API ప్రాక్సీ రౌటర్కు సంబంధించిన గోప్యతా విధానం.",
+ "termsMetadataTitle": "సేవా నిబంధనలు | OmniRoute",
+ "termsMetadataDescription": "OmniRoute AI API ప్రాక్సీ రౌటర్కు సంబంధించిన సేవా నిబంధనలు.",
+ "backToHome": "హోమ్కు తిరిగి వెళ్లండి",
+ "lastUpdated": "చివరిగా నవీకరించబడింది: {date}",
+ "policyLastUpdatedDate": "ఫిబ్రవరి 13, 2026",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "ప్రశ్నలు ఉన్నాయా? మా",
+ "githubRepository": "GitHub రిపాజిటరీని సందర్శించండి",
+ "privacySection1Title": "1. లోకల్-ఫస్ట్ ఆర్కిటెక్చర్",
+ "privacySection1Text": "OmniRoute లోకల్-ఫస్ట్ అప్లికేషన్గా రూపొందించబడింది. మొత్తం డేటా ప్రాసెసింగ్ మరియు నిల్వ పూర్తిగా మీ మెషీన్లోనే జరుగుతాయి. మీ సమాచారాన్ని సేకరించే కేంద్రీకృత సర్వర్ ఏదీ లేదు.",
+ "privacySection2Title": "2. మేము నిల్వ చేసే డేటా",
+ "privacyDataStoredIn": "కింది డేటా స్థానికంగా ఇందులో నిల్వ చేయబడుతుంది",
+ "privacyDataProviderConfigurationsDesc": "కనెక్షన్ URLలు, ప్రొవైడర్ రకాలు మరియు ప్రాధాన్యత సెట్టింగ్లు",
+ "privacyDataApiKeysDesc": "AI ప్రొవైడర్లతో ప్రమాణీకరణ కోసం ఎన్క్రిప్ట్ చేసి స్థానికంగా నిల్వ చేయబడతాయి",
+ "privacyDataUsageLogsDesc": "రిక్వెస్ట్ల సంఖ్య, టోకెన్ వినియోగం, మోడల్ పేర్లు, టైమ్స్టాంప్లు మరియు ప్రతిస్పందన సమయాలు",
+ "privacyDataApplicationSettingsDesc": "థీమ్ ప్రాధాన్యతలు, రౌటింగ్ వ్యూహం మరియు కాంబో కాన్ఫిగరేషన్లు",
+ "privacySection3Title": "3. టెలిమెట్రీ లేదు",
+ "privacySection3Text": "OmniRoute టెలిమెట్రీ, అనలిటిక్స్ లేదా క్రాష్ రిపోర్ట్లను సేకరించదు. మాకు లేదా మరే మూడవ పక్షానికీ ఎలాంటి డేటా పంపబడదు. మీ వినియోగ విధానాలు, API కాల్లు మరియు కాన్ఫిగరేషన్లు పూర్తిగా గోప్యంగా ఉంటాయి.",
+ "privacySection4Title": "4. మూడవ పక్ష AI ప్రొవైడర్లు",
+ "privacySection4Text": "మీరు OmniRoute ద్వారా API కాల్లు చేసినప్పుడు, మీ రిక్వెస్ట్లు మీరు కాన్ఫిగర్ చేసిన AI ప్రొవైడర్లకు ఫార్వర్డ్ చేయబడతాయి (ఉదాహరణకు: OpenAI, Anthropic, Google). ఈ ప్రొవైడర్లు మీ డేటాను ఎలా నిర్వహిస్తారో నియంత్రించే వారి స్వంత గోప్యతా విధానాలను కలిగి ఉంటారు. దయచేసి వీటిని సమీక్షించండి:",
+ "privacyOpenAiPolicy": "OpenAI గోప్యతా విధానం",
+ "privacyAnthropicPolicy": "Anthropic గోప్యతా విధానం",
+ "privacyGooglePolicy": "Google గోప్యతా విధానం",
+ "privacySection5Title": "5. క్లౌడ్ సింక్ (ఐచ్ఛికం)",
+ "privacySection5Text": "మీరు ఐచ్ఛిక క్లౌడ్ సింక్ ఫీచర్ను ప్రారంభిస్తే, ప్రొవైడర్ కాన్ఫిగరేషన్లు మరియు API కీలు కాన్ఫిగర్ చేసిన క్లౌడ్ ఎండ్పాయింట్కు ప్రసారం చేయబడవచ్చు. ఈ ఫీచర్ డిఫాల్ట్గా నిలిపివేయబడి ఉంటుంది మరియు దీన్ని స్పష్టంగా ఎంచుకుని ప్రారంభించాలి.",
+ "privacySection6Title": "6. లాగింగ్",
+ "privacyLoggingIntro": "డ్యాష్బోర్డ్ సెట్టింగ్ల ద్వారా అభ్యర్థన లాగ్లను కాన్ఫిగర్ చేయవచ్చు. మీరు వీటిని చేయవచ్చు:",
+ "privacySection7Title": "7. మీ హక్కులు",
+ "privacySection7TextStart": "డేటా అంతా స్థానికంగా నిల్వ చేయబడుతుంది కాబట్టి, దానిపై మీకు పూర్తి నియంత్రణ ఉంటుంది. మీరు ఏ సమయంలోనైనా ఈ క్రింది దాన్ని తొలగించడం ద్వారా మీ డేటాను తొలగించవచ్చు:",
+ "privacySection7TextEnd": "డైరెక్టరీ లేదా డ్యాష్బోర్డ్లోని డేటాబేస్ బ్యాకప్ మరియు పునరుద్ధరణ ఫీచర్లను ఉపయోగించడం ద్వారా.",
+ "termsSection1Title": "1. అవలోకనం",
+ "termsSection1Text": "OmniRoute అనేది పూర్తిగా మీ మెషీన్లో పనిచేసే, స్థానిక వినియోగానికి ప్రాధాన్యమిచ్చే AI API ప్రాక్సీ రౌటర్. ఇది లోడ్ బ్యాలెన్సింగ్, ఫెయిల్ఓవర్ మరియు వినియోగ ట్రాకింగ్తో అభ్యర్థనలను అనేక AI ప్రొవైడర్లకు రూట్ చేస్తుంది.",
+ "termsSection2Title": "2. వినియోగదారు బాధ్యతలు",
+ "termsResponsibilityApiKeys": "మూడవ పక్ష AI ప్రొవైడర్ల (OpenAI, Anthropic, Google మొదలైనవి) కోసం మీ స్వంత API కీలు మరియు ఆధారాలను నిర్వహించే పూర్తి బాధ్యత మీదే.",
+ "termsResponsibilityCompliance": "OmniRoute ద్వారా మీరు APIని యాక్సెస్ చేసే ప్రతి AI ప్రొవైడర్ సేవా నిబంధనలను తప్పనిసరిగా పాటించాలి.",
+ "termsResponsibilitySecurity": "పాస్వర్డ్ను సెట్ చేయడం మరియు నెట్వర్క్ యాక్సెస్ను పరిమితం చేయడంతో సహా, మీ స్థానిక OmniRoute ఇన్స్టాలేషన్ భద్రతకు మీరే బాధ్యత వహించాలి.",
+ "termsSection3Title": "3. ఇది ఎలా పనిచేస్తుంది",
+ "termsSection3Text": "OmniRoute మధ్యవర్తి ప్రాక్సీగా పనిచేస్తుంది. OmniRouteకు పంపిన API కాల్లు అనువదించబడి, మీరు కాన్ఫిగర్ చేసిన AI ప్రొవైడర్లకు ఫార్వర్డ్ చేయబడతాయి. అవసరమైన ప్రోటోకాల్ అనువాదం మినహా, మీ అభ్యర్థనలు లేదా ప్రతిస్పందనల కంటెంట్ను OmniRoute సవరించదు.",
+ "termsSection4Title": "4. డేటా నిర్వహణ",
+ "termsDataStoredLocally": "డేటా అంతా మీ మెషీన్లోని SQLite డేటాబేస్లో స్థానికంగా నిల్వ చేయబడుతుంది.",
+ "termsNoTransmission": "మీరు క్లౌడ్ సింక్ ఫీచర్లను స్పష్టంగా ప్రారంభించకపోతే, OmniRoute ఎటువంటి డేటానూ బాహ్య సర్వర్లకు ప్రసారం చేయదు.",
+ "termsDataLocationText": "వినియోగ లాగ్లు, API కీలు మరియు కాన్ఫిగరేషన్ ఇందులో నిల్వ చేయబడతాయి:",
+ "termsSection5Title": "5. బాధ్యత నిరాకరణ",
+ "termsSection5Text": "OmniRoute ఎటువంటి వారంటీ లేకుండా \"ఉన్నది ఉన్నట్లుగా\" అందించబడుతుంది. API వినియోగం వల్ల కలిగే ఖర్చులు, సేవా అంతరాయాలు లేదా డేటా నష్టానికి మేము బాధ్యత వహించము. మీ కాన్ఫిగరేషన్ బ్యాకప్లను ఎల్లప్పుడూ నిర్వహించండి.",
+ "termsSection6Title": "6. ఓపెన్ సోర్స్",
+ "termsSection6Text": "OmniRoute ఓపెన్ సోర్స్ సాఫ్ట్వేర్. దాని లైసెన్స్ నిబంధనల ప్రకారం దాన్ని పరిశీలించడానికి, సవరించడానికి మరియు పంపిణీ చేయడానికి మీకు స్వేచ్ఛ ఉంది."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI ఏజెంట్లు",
+ "description": "మీ సిస్టమ్లో ఇన్స్టాల్ చేసిన CLI ఏజెంట్లను కనుగొనండి. స్వయంచాలక గుర్తింపు కోసం అనుకూల ఏజెంట్లను జోడించండి.",
+ "refresh": "రిఫ్రెష్ చేయండి",
+ "installed": "ఇన్స్టాల్ చేయబడింది",
+ "notFound": "కనుగొనబడలేదు",
+ "builtIn": "అంతర్నిర్మితం",
+ "custom": "అనుకూలం",
+ "remove": "తొలగించండి",
+ "addCustomAgent": "అనుకూల ఏజెంట్ను జోడించండి",
+ "addCustomAgentDesc": "గుర్తింపు కోసం ఏదైనా CLI సాధనాన్ని నమోదు చేయండి. రిఫ్రెష్ చేసినప్పుడు అది స్వయంచాలకంగా స్కాన్ చేయబడుతుంది.",
+ "agentName": "ఏజెంట్ పేరు",
+ "binaryName": "బైనరీ పేరు",
+ "versionCommand": "వెర్షన్ కమాండ్",
+ "spawnArgs": "స్పాన్ ఆర్గ్యుమెంట్లు",
+ "addAgent": "ఏజెంట్ను జోడించండి",
+ "scanning": "CLI ఏజెంట్ల కోసం సిస్టమ్ను స్కాన్ చేస్తోంది...",
+ "opencodeIntegration": "OpenCode సమీకరణ",
+ "opencodeDetected": "opencode {version} గుర్తించబడింది",
+ "opencodeDesc": "మీ OmniRoute బేస్ URL మరియు అందుబాటులో ఉన్న అన్ని మోడళ్లతో ఉపయోగించడానికి సిద్ధంగా ఉన్న {configFile}ను రూపొందించండి — దాన్ని మీ ప్రాజెక్ట్ రూట్లో ఉంచి {command}ను అమలు చేయండి.",
+ "downloadConfig": "{file}ను డౌన్లోడ్ చేయండి",
+ "downloaded": "డౌన్లోడ్ అయింది!",
+ "setupGuideTitle": "సెటప్ మార్గదర్శిని",
+ "openCliTools": "CLI సాధనాలను తెరవండి",
+ "setupGuideDetectCliTitle": "ఇన్స్టాల్ చేసిన CLIలను గుర్తించండి",
+ "setupGuideDetectCliDesc": "CLIని ఇన్స్టాల్ చేసిన లేదా అప్డేట్ చేసిన తర్వాత Refreshపై క్లిక్ చేయండి, తద్వారా OmniRoute బైనరీలు మరియు వెర్షన్లను మళ్లీ స్కాన్ చేయగలదు.",
+ "setupGuideCustomAgentTitle": "అనుకూల బైనరీని నమోదు చేయండి",
+ "setupGuideCustomAgentDesc": "మీ CLI అంతర్నిర్మిత జాబితాలో లేనప్పుడు Add Custom Agentను ఉపయోగించండి. బైనరీ పేరు మరియు వెర్షన్ కమాండ్ను అందించండి.",
+ "setupGuideCommandMissingTitle": "'command not found' లోపాన్ని పరిష్కరించండి",
+ "setupGuideCommandMissingDesc": "CLI కమాండ్ PATHలో ఉందని నిర్ధారించుకోండి, కొత్త టెర్మినల్ సెషన్ను తెరిచి, Refreshను మళ్లీ అమలు చేయండి.",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10442,7 +10453,7 @@
"connected": "కనెక్ట్ చేయబడింది",
"notConnected": "కనెక్ట్ చేయబడలేదు",
"configure": "కాన్ఫిగర్ చేయండి",
- "settingsTitle": "Cloud Agent Settings",
+ "settingsTitle": "క్లౌడ్ ఏజెంట్ సెట్టింగ్లు",
"settingsDesc": "క్లౌడ్ ఏజెంట్ల కోసం స్థానిక ప్రాధాన్యతలను కాన్ఫిగర్ చేయండి.",
"settingEnableAgents": "క్లౌడ్ ఏజెంట్లను ప్రారంభించండి",
"settingEnableAgentsDesc": "స్వయంప్రతిపత్త కోడింగ్ ఏజెంట్లను ఆర్కెస్ట్రేట్ చేయడానికి OmniRouteని అనుమతించండి.",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "సరళమైన చాట్",
+ "streaming": "స్ట్రీమింగ్",
+ "system-prompt": "సిస్టమ్ ప్రాంప్ట్",
+ "thinking": "ఆలోచన",
+ "tool-calling": "సాధన కాలింగ్",
+ "multi-turn": "బహుళ-దశల సంభాషణ",
"vision": "విజన్",
"schema-coercion": "స్కీమా బలవంతం"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "సిస్టమ్ సందేశంతో ప్రాథమిక చాట్ టెంప్లేట్",
+ "streaming": "స్ట్రీమింగ్ ప్రతిస్పందనల కోసం టెంప్లేట్",
+ "system-prompt": "అనుకూల సిస్టమ్ ప్రాంప్ట్తో టెంప్లేట్",
+ "thinking": "రీజనింగ్/ఆలోచన బడ్జెట్తో టెంప్లేట్",
+ "tool-calling": "సాధనం/ఫంక్షన్ కాలింగ్ కోసం టెంప్లేట్",
+ "multi-turn": "బహుళ-దశల సంభాషణల కోసం టెంప్లేట్",
"vision": "చిత్రం ఇన్పుట్తో మల్టీమోడల్ టెంప్లేట్",
"schema-coercion": "నిర్మాణాత్మక-అవుట్పుట్ / JSON స్కీమా అమలు"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "మీరు సహాయకరమైన AI సహాయకులు.",
+ "userGreeting": "నమస్కారం! ఈ రోజు నేను మీకు ఎలా సహాయం చేయగలను?"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "దీని గురించి ఒక కథ రాయండి"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "జీవితం యొక్క అర్థం ఏమిటి?",
+ "systemInstruction": "ఆలోచనాత్మకమైన, తాత్విక సమాధానాన్ని అందించండి."
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "క్వాంటం కంప్యూటింగ్ను వివరించండి"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "వాతావరణ సమాచారం పొందాల్సిన నగరం పేరు",
+ "toolDescription": "ఒక ప్రదేశానికి ప్రస్తుత వాతావరణ సమాచారాన్ని పొందండి",
+ "userWeather": "Tokyoలో వాతావరణం ఎలా ఉంది?"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "మీరు సహాయకరమైన సహాయకులు.",
+ "assistantExample": "ఆ విషయంలో మీకు సహాయం చేయడానికి నేను సంతోషిస్తాను.",
+ "userInitial": "నాకు దీనితో సహాయం కావాలి",
+ "userFollowUp": "దాని గురించి మరింత వివరించగలరా?"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "క్యాష్ నిర్వహణ",
+ "description": "ప్రొవైడర్ ప్రాంప్ట్ క్యాష్ సామర్థ్యాన్ని మరియు స్థానిక సెమాంటిక్ ప్రతిస్పందన పునర్వినియోగాన్ని పర్యవేక్షించండి.",
+ "refresh": "రిఫ్రెష్ చేయండి",
+ "clearAll": "సెమాంటిక్ క్యాష్ను క్లియర్ చేయండి",
+ "memoryEntries": "మెమరీ ఎంట్రీలు",
+ "memoryEntriesSub": "ఇన్-మెమరీ LRU",
+ "dbEntries": "DB ఎంట్రీలు",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "క్యాష్ హిట్లు",
+ "cacheHitsSub": "మొత్తం {total}లో",
+ "tokensSaved": "ఆదా చేసిన టోకెన్లు",
+ "tokensSavedSub": "హిట్ల ఆధారంగా అంచనా వేయబడింది",
+ "hitRate": "హిట్ రేటు",
+ "performance": "క్యాష్ పనితీరు",
+ "autoRefresh": "ప్రతి {seconds}sకు ఆటోమేటిక్గా రిఫ్రెష్ అవుతుంది",
+ "hits": "హిట్లు",
+ "misses": "మిస్లు",
+ "total": "మొత్తం",
+ "behavior": "క్యాష్ ప్రవర్తన",
+ "behaviorDeterministic": "temperature=0 ఉన్న నాన్-స్ట్రీమింగ్ అభ్యర్థనలు మాత్రమే క్యాష్ చేయబడతాయి.",
+ "behaviorBypass": "{header} హెడర్తో బైపాస్ చేయండి.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "డిఫాల్ట్ TTL: 30 నిమిషాలు. {envVar} ద్వారా కాన్ఫిగర్ చేయండి.",
+ "idempotency": "ఐడెంపొటెన్సీ లేయర్",
+ "activeDedupKeys": "యాక్టివ్ డీడప్ కీలు",
+ "dedupWindow": "డీడప్ విండో",
+ "clearSuccess": "సెమాంటిక్ క్యాష్ క్లియర్ చేయబడింది. {count} ఎంట్రీలు తొలగించబడ్డాయి.",
+ "clearError": "క్యాష్ను క్లియర్ చేయడం విఫలమైంది.",
+ "unavailable": "క్యాష్ అందుబాటులో లేదు",
+ "unavailableDesc": "క్యాష్ గణాంకాలను పొందలేకపోయాము. సర్వర్ రన్ అవుతోందని నిర్ధారించుకోండి.",
"loadingCacheAria": "కాష్ లోడ్ అవుతోంది",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "ప్రాంప్ట్ క్యాష్ (ప్రొవైడర్ వైపు)",
+ "semanticCache": "సెమాంటిక్ క్యాష్",
+ "promptCacheSectionDesc": "వినియోగ చరిత్ర నుండి ప్రొవైడర్ వైపు ప్రాంప్ట్ క్యాషింగ్ కార్యకలాపాన్ని చూపిస్తుంది, తద్వారా క్యాష్ నియంత్రణ ఎక్కడ యాక్టివ్గా ఉందో మరియు మీరు ఎంత ఇన్పుట్ పునర్వినియోగాన్ని పొందుతున్నారో చూడవచ్చు.",
+ "promptTrendDesc": "గత 24 గంటల్లో గంటవారీ అభ్యర్థనల పరిమాణం, క్యాష్ కవరేజ్ మరియు క్యాష్ రీడ్ పరిమాణం.",
+ "cachedRequests": "క్యాష్ చేసిన అభ్యర్థనలు",
+ "cachedRequests24h": "క్యాష్ చేసిన అభ్యర్థనలు (24గం)",
+ "cacheHitRate": "క్యాష్ హిట్ రేటు",
+ "cacheRate": "క్యాష్ రేటు",
+ "cacheRateDesc": "మొత్తం అభ్యర్థనల్లో",
+ "cachedTokens": "క్యాష్ రీడ్ టోకెన్లు",
+ "cacheCreationTokens": "క్యాష్ రైట్ టోకెన్లు",
+ "cacheMetrics": "ప్రాంప్ట్ క్యాష్ మెట్రిక్లు",
+ "withCacheControl": "క్యాష్ నియంత్రణతో",
+ "cachedTokensRead": "క్యాష్ నుండి చదివినవి",
+ "cacheCreationWrite": "క్యాష్కు వ్రాసినవి",
+ "cacheReuseRatio": "క్యాష్ పునర్వినియోగ నిష్పత్తి",
+ "cacheReuseRatioDesc": "క్యాష్ రీడ్ టోకెన్లు / మొత్తం ఇన్పుట్ టోకెన్లు",
+ "estCostSaved": "అంచనా ఆదా అయిన ఖర్చు",
+ "lastUpdated": "చివరిగా నవీకరించబడింది",
+ "hoursTracked": "ట్రాక్ చేసిన గంటలు",
+ "busiestHour": "అత్యంత రద్దీ గంట",
+ "peakCacheRate": "గరిష్ఠ క్యాష్ రేటు",
+ "trendHour": "గంట",
+ "activityVolume": "కార్యాచరణ",
+ "requestsShort": "అభ్యర్థనలు",
+ "inputShort": "ఇన్పుట్",
+ "cachedShort": "క్యాష్ చేసినవి",
+ "writeShort": "వ్రాసినవి",
+ "resetting": "రీసెట్ చేస్తోంది...",
+ "resetMetrics": "మెట్రిక్లను రీసెట్ చేయండి",
+ "byProvider": "ప్రొవైడర్ వారీ విభజన",
+ "providerCacheRateDesc": "ప్రతి ప్రొవైడర్ మొత్తం ఇన్పుట్ టోకెన్లు, క్యాష్ రీడ్ టోకెన్లు మరియు క్యాష్ రైట్ టోకెన్లను చూపుతుంది, తద్వారా మీరు ముడి మొత్తాలతో పునర్వినియోగ నిష్పత్తిని ధృవీకరించవచ్చు.",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "అభ్యర్థనలు",
+ "inputTokens": "మొత్తం ఇన్పుట్ టోకెన్లు",
+ "cachedTokensCol": "క్యాష్ రీడ్",
+ "cacheCreation": "క్యాష్ రైట్",
+ "trend24h": "క్యాష్ ధోరణి (24గం)",
+ "peakCached": "గరిష్ఠంగా క్యాష్ చేసినవి",
+ "cached": "క్యాష్ చేసినవి",
+ "overview": "అవలోకనం",
"tableProvider": "ప్రొవైడర్",
"tableModel": "మోడల్",
"performanceTitle": "పనితీరు",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute యొక్క స్వంత నిర్దిష్ట ప్రతిస్పందన క్యాష్. దీన్ని ప్రారంభించినప్పుడు, పునరావృతమయ్యే నాన్-స్ట్రీమింగ్ temperature=0 అభ్యర్థనలను అప్స్ట్రీమ్ ప్రొవైడర్ను సంప్రదించకుండానే స్థానికంగా అందించవచ్చు.",
+ "semanticCacheDisabledDesc": "సెమాంటిక్ క్యాష్ నిలిపివేయబడింది. మీరు Settingsలో దాన్ని తిరిగి ప్రారంభించే వరకు OmniRoute స్థానిక ప్రతిస్పందన పునర్వినియోగాన్ని దాటవేస్తుంది.",
+ "semanticEntriesDesc": "ప్రస్తుతం SQLiteలో నిల్వ చేసిన స్థిరమైన సెమాంటిక్ క్యాష్ రికార్డులు. ప్రొవైడర్ వైపు ప్రాంప్ట్ క్యాష్ కార్యకలాపం ఇక్కడ జాబితా చేయబడదు.",
+ "searchEntries": "ఎంట్రీలను శోధించండి...",
+ "search": "శోధించండి",
+ "loading": "లోడ్ అవుతోంది...",
+ "entriesLoadError": "సెమాంటిక్ క్యాష్ ఎంట్రీలను లోడ్ చేయడం విఫలమైంది.",
+ "noEntries": "క్యాష్ ఎంట్రీలు ఏవీ కనుగొనబడలేదు",
+ "noPromptCacheData": "ప్రొవైడర్ వైపు ప్రాంప్ట్ క్యాష్ కార్యకలాపం ఇంకా నమోదు కాలేదు.",
+ "noTrendData": "గత 24 గంటల్లో ఎలాంటి ప్రాంప్ట్ క్యాష్ కార్యకలాపం నమోదు కాలేదు.",
+ "signature": "సంతకం",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "సృష్టించబడింది",
+ "expires": "గడువు ముగుస్తుంది",
+ "actions": "చర్యలు",
+ "deduplicatedRequests": "నకిలీలు తొలగించిన అభ్యర్థనలు",
+ "savedCalls": "ఆదా చేసిన API కాల్లు",
+ "totalProcessed": "ప్రాసెస్ చేసిన మొత్తం అభ్యర్థనలు",
+ "disabled": "నిలిపివేయబడింది",
+ "totalRequests": "మొత్తం అభ్యర్థనలు",
"reasoningCache": "రీజనింగ్ రీప్లే",
"reasoningCacheDesc": "మల్టీ-టర్న్ టూల్ కాలింగ్ ఫ్లోల కోసం మోడల్ థింకింగ్ను భద్రపరుస్తుంది",
"reasoningEntries": "యాక్టివ్ ఎంట్రీలు",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}నిమి. క్రితం",
"hoursAgo": "{hours}గం. క్రితం",
"daysAgo": "{days}రోజుల క్రితం",
- "entries": "Entries"
+ "entries": "నమోదులు"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
+ "levelGlobal": "గ్లోబల్",
+ "levelProvider": "ప్రొవైడర్",
+ "levelCombo": "కాంబో",
+ "levelKey": "కీ",
+ "levelDirect": "నేరుగా (ప్రాక్సీ లేకుండా)",
+ "titleGlobal": "గ్లోబల్ ప్రాక్సీ కాన్ఫిగరేషన్",
+ "titleLevel": "{level} ప్రాక్సీ — {label}",
+ "loading": "ప్రాక్సీ కాన్ఫిగరేషన్ లోడ్ అవుతోంది...",
+ "inheritingFrom": "దీని నుండి పొందుతోంది",
+ "source": "మూలం",
+ "savedProxy": "సేవ్ చేసిన ప్రాక్సీ",
+ "custom": "అనుకూలం",
+ "selectSavedProxyPlaceholder": "సేవ్ చేసిన ప్రాక్సీని ఎంచుకోండి...",
+ "proxyType": "ప్రాక్సీ రకం",
+ "host": "హోస్ట్",
+ "hostPlaceholder": "1.2.3.4 లేదా proxy.example.com",
+ "port": "పోర్ట్",
+ "authOptional": "ప్రమాణీకరణ (ఐచ్ఛికం)",
+ "username": "వినియోగదారు పేరు",
+ "usernamePlaceholder": "వినియోగదారు పేరు",
+ "password": "పాస్వర్డ్",
+ "passwordPlaceholder": "పాస్వర్డ్",
+ "connected": "కనెక్ట్ అయింది",
"ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "connectionFailed": "కనెక్షన్ విఫలమైంది",
+ "testConnection": "కనెక్షన్ను పరీక్షించండి",
+ "clear": "తొలగించండి",
+ "cancel": "రద్దు చేయండి",
+ "save": "సేవ్ చేయండి",
+ "errorSelectSavedProxy": "దయచేసి ముందుగా సేవ్ చేసిన ప్రాక్సీని ఎంచుకోండి.",
+ "errorSelectProxyFirst": "దయచేసి ముందుగా ఒక ప్రాక్సీని ఎంచుకోండి.",
+ "errorProxyNotFound": "ఎంచుకున్న ప్రాక్సీ కనుగొనబడలేదు.",
+ "errorClearSavedProxy": "సేవ్ చేసిన ప్రాక్సీని తొలగించడం విఫలమైంది",
+ "errorSaveProxy": "ప్రాక్సీ కాన్ఫిగరేషన్ను సేవ్ చేయడం విఫలమైంది",
+ "errorClearProxy": "ప్రాక్సీ కాన్ఫిగరేషన్ను క్లియర్ చేయడం విఫలమైంది",
+ "errorSocks5Hidden": "SOCKS5 కాన్ఫిగర్ చేయబడింది, కానీ NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false కావడంతో దాచబడింది."
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "{providerName}ను కనెక్ట్ చేయండి",
+ "waiting": "అధికారీకరణ కోసం వేచి ఉంది",
+ "completeAuthInPopup": "పాప్అప్లో అధికారీకరణను పూర్తి చేయండి.",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "పాప్అప్ బ్లాక్ అయిందా? URLను మాన్యువల్గా నమోదు చేయండి",
+ "deviceCodeVisitUrl": "దిగువ URLను సందర్శించి, కోడ్ను నమోదు చేయండి:",
+ "deviceCodeVerificationUrl": "ధృవీకరణ URL",
+ "deviceCodeYourCode": "మీ కోడ్",
+ "deviceCodeWaiting": "అధికారీకరణ కోసం వేచి ఉంది...",
"googleLoopbackTitle": "ఈ చిరునామా నుండి Google సైన్-ఇన్ పూర్తి చేయడం సాధ్యం కాదు",
"googleLoopbackWhatHappens": "గూగుల్ అనుమతి కోడ్ను కేవలం {redirectUri} బ్రౌజర్ ద్వారా సంతృప్తి పొందినప్పుడు మాత్రమే విడుదల చేస్తుంది. ఇక్కడ ఆ చిరునామా ఈ కంప్యూటర్ను సూచిస్తుంది, OmniRoute సర్వర్ను కాదు — కాబట్టి అనుమతి స్క్రీన్ తిరిగి దారితీసే బదులు నిలిచిపోతుంది, మరియు కాపీ చేయడానికి ఎలాంటి కాల్బ్యాక్ URL లేదు.",
"googleLoopbackRecommended": "సిఫార్సు చేయబడింది — మీ స్వంత కంప్యూటర్లో ఇది నడపండి, తరువాత ఫలితాన్ని కింద పేస్ట్ చేయండి:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "లేదా SSH ద్వారా డాష్బోర్డ్ పోర్ట్ను ముందుకు పంపించి, టన్నెల్ ద్వారా OmniRouteని పునఃలోడ్ చేయండి:",
"googleLoopbackTunnelNote": "{userPlaceholder}ని మీ SSH యూజర్ నామంతో మార్చండి, టెర్మినల్ తెరిచి ఉంచండి, తరువాత {localUrl}ని తెరిచి అక్కడ నుండి మళ్లీ కనెక్ట్ అవ్వండి.",
"googleLoopbackHeadlessAlt": "పూర్తిగా హెడ్లెస్ ఉపయోగానికి స్థానిక కాల్బ్యాక్ లేకుండా, మీ స్వంత Google OAuth క్రెడెన్షియల్స్ను కాన్ఫిగర్ చేయండి మరియు ఒక ప్రజా బేస్ URL.",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "రిమోట్ యాక్సెస్: మీరు OmniRouteను రిమోట్గా యాక్సెస్ చేస్తున్నందున, అధికారీకరణ తర్వాత మీకు ఒక ఎర్రర్ పేజీ (localhost కనుగొనబడలేదు) కనిపిస్తుంది. ఇది సాధారణమే — మీ బ్రౌజర్ అడ్రస్ బార్ నుండి పూర్తి URLను కాపీ చేసి, దిగువన అతికించండి.",
"loopbackMismatchTitle": "ఈ చిరునామా నుండి సైన్-ఇన్ పూర్తి చేయలేరు",
"loopbackMismatchWhatHappened": "ఏం జరుగుతోంది",
"loopbackMismatchExplanation": "మీరు లాగిన్ను ఆమోదించిన తర్వాత, {providerName} ఎప్పుడూ బ్రౌజర్ను {redirectUri} కు తిరిగి పంపుతుంది. ఆ చిరునామా ఈ బ్రౌజర్ను నడుపుతున్న కంప్యూటర్ను సూచిస్తుంది, OmniRoute సర్వర్ను కాదు — కాబట్టి ఆథరైజేషన్ కోడ్ OmniRoute కు చేరదు మరియు ప్రొవైడర్ ఎటువంటి పొరపాటు చూపించకుండా సైన్-ఇన్ను విఫలమవుతుంది.",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "ఈ బ్రౌజర్లో, టన్నెల్ ద్వారా OmniRouteని మళ్లీ తెరవండి:",
"loopbackMismatchStep3": "తర్వాత కొత్త టాబ్ నుండి {providerName} ను మళ్లీ కనెక్ట్ చేయండి. కallback ఇప్పుడు సర్వర్ కు చేరుకుంటుంది మరియు లాగిన్ సాధారణంగా పూర్తవుతుంది.",
"loopbackMismatchAlternative": "SSH యాక్సెస్ లేదు? ఈ ప్రొవైడర్ టోకెన్ దిగుమతి ట్యాబ్ను అందిస్తే, టోకెన్తో కనెక్ట్ అవ్వండి — ఆ మార్గం లూప్బ్యాక్ కాల్బ్యాక్ను ఉపయోగించదు.",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "దశ 1: ఈ URLను మీ బ్రౌజర్లో తెరవండి",
+ "copy": "కాపీ చేయండి",
+ "step2PasteCallback": "దశ 2: కాల్బ్యాక్ URL లేదా అధికారీకరణ కోడ్ను ఇక్కడ అతికించండి",
+ "step2Hint": "అధికారీకరణ తర్వాత, పూర్తి కాల్బ్యాక్ URLను అతికించండి. Claude Code మరియు Cline కోసం, మీరు ప్రామాణీకరణ కోడ్ను కూడా నేరుగా అతికించవచ్చు, ఉదా. code#state.",
+ "connect": "కనెక్ట్ చేయండి",
+ "cancel": "రద్దు చేయండి",
+ "success": "కనెక్షన్ విజయవంతమైంది!",
+ "successMessage": "మీ {providerName} ఖాతా కనెక్ట్ చేయబడింది.",
+ "done": "పూర్తయింది",
+ "error": "కనెక్షన్ విఫలమైంది",
+ "tryAgain": "మళ్లీ ప్రయత్నించండి",
"errorSessionIncomplete": "OAuth సెషన్ అసంపూర్ణం (రీడైరెక్ట్ URI లేదా కోడ్ వేరిఫైయర్ మిస్సింగ్). కనెక్షన్ను పునఃప్రారంభించి మళ్లీ ప్రయత్నించండి.",
"errorExchangeFailed": "మార్పిడి విఫలమైంది",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: డిఫాల్ట్ Google OAuth క్రెడెన్షియల్స్ కేవలం localhost పై మాత్రమే పనిచేస్తాయి. దూరంలో ఉపయోగించడానికి, మీ స్వంత OAuth క్రెడెన్షియల్స్ను పర్యావరణ చొరవల ద్వారా కాన్ఫిగర్ చేయండి: ANTIGRAVITY_OAUTH_CLIENT_ID మరియు ANTIGRAVITY_OAUTH_CLIENT_SECRET. 'ఒక దూర సర్వర్పై OAuth' అనే README విభాగాన్ని చూడండి.",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "ఒక ధృవీకరించిన Devin సెషన్ నుండి ఉన్న Devin API కీని పేస్ట్ చేయండి. కీ ఎగుమతి అందుబాటులో ఉండడం మరియు దశలు Devin వెర్షన్ మరియు ఖాతా ప్రకారం మారవచ్చు.",
"devinPasteDescription": "మీ WINDSURF_API_KEYని అందించండి (ఇది `devin auth login` ద్వారా లేదా Windsurf IDEలో \"Windsurf: Provide Auth Token\" ఆదేశం ద్వారా పొందవచ్చు).",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "Grok బిల్డ్ auth.json",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "API కీ / టోకెన్",
"saving": "సేవ్ చేస్తున్నది…",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Cursorతో లాగిన్ చేయండి",
+ "tabImport": "టోకెన్ను దిగుమతి చేయండి",
+ "loginDescription": "Cursor బ్రౌజర్ లాగిన్ను తెరుస్తుంది. Dockerలో పనిచేస్తుంది — మీ హోస్ట్ బ్రౌజర్లో ఆమోదించి, ఆపై ఇక్కడికి తిరిగి రండి.",
+ "loginWithCursor": "Cursorతో లాగిన్ చేయండి",
+ "startingLogin": "ప్రారంభిస్తోంది…",
+ "waitingApproval": "Cursor లాగిన్ ఆమోదం కోసం వేచి ఉంది…",
+ "openUrlHint": "బ్రౌజర్ తెరవకపోతే:",
+ "openLoginLink": "లాగిన్ పేజీని తెరవండి",
+ "cancelLogin": "లాగిన్ను రద్దు చేయండి",
+ "autoDetecting": "టోకెన్లను స్వయంచాలకంగా గుర్తిస్తోంది...",
+ "readingFromCursor": "Cursor IDE లేదా cursor-agent నుండి చదువుతోంది",
+ "tokensAutoDetected": "Cursor IDE నుండి టోకెన్లు విజయవంతంగా స్వయంచాలకంగా గుర్తించబడ్డాయి!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Dockerలో అమలు చేస్తున్నారా? Cursorతో లాగిన్ చేయడాన్ని ఎంచుకోండి. IDE స్వీయ-దిగుమతి మరియు cursor-agent సాధారణంగా కంటైనర్లో అందుబాటులో ఉండవు. docs/providers/CURSOR-DOCKER.md చూడండి.",
+ "accessToken": "యాక్సెస్ టోకెన్",
+ "refreshToken": "రిఫ్రెష్ టోకెన్",
+ "refreshTokenPlaceholder": "ఐచ్ఛికం — ఆటోమేటిక్ టోకెన్ రిఫ్రెష్ను ప్రారంభిస్తుంది",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "యాక్సెస్ టోకెన్ స్వయంచాలకంగా నమోదు అవుతుంది...",
+ "machineId": "మెషిన్ ID",
+ "optional": "(ఐచ్ఛికం)",
+ "machineIdPlaceholder": "మెషిన్ ID స్వయంచాలకంగా నమోదు అవుతుంది...",
+ "importing": "దిగుమతి చేస్తోంది...",
+ "importToken": "టోకెన్ను దిగుమతి చేయండి",
+ "cancel": "రద్దు చేయండి",
+ "errorAutoDetect": "టోకెన్లను స్వయంచాలకంగా గుర్తించడం సాధ్యం కాలేదు",
+ "errorAutoDetectFailed": "టోకెన్ల స్వయంచాలక గుర్తింపు విఫలమైంది",
+ "errorEnterToken": "దయచేసి యాక్సెస్ టోకెన్ను నమోదు చేయండి",
+ "errorImportFailed": "దిగుమతి విఫలమైంది",
+ "errorLoginStart": "Cursor లాగిన్ను ప్రారంభించడం విఫలమైంది",
+ "errorLoginPoll": "Cursor లాగిన్ విఫలమైంది",
+ "errorLoginTimeout": "Cursor లాగిన్ సమయం ముగిసింది — మళ్లీ ప్రయత్నించండి"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "ధరల కాన్ఫిగరేషన్",
+ "loading": "ధరల డేటాను లోడ్ చేస్తోంది...",
+ "pricingRatesFormat": "ధరల రేట్ల ఫార్మాట్",
+ "ratesDescription": "అన్ని రేట్లు మిలియన్ టోకెన్లకు డాలర్లలో ($/1M టోకెన్లు) ఉంటాయి. ఉదాహరణ: ఇన్పుట్ రేటు 2.50 అంటే 1,000,000 ఇన్పుట్ టోకెన్లకు $2.50.",
+ "model": "మోడల్",
+ "input": "ఇన్పుట్",
+ "output": "అవుట్పుట్",
+ "cached": "క్యాష్ చేయబడినవి",
+ "reasoning": "రీజనింగ్",
+ "cacheCreation": "క్యాష్ సృష్టి",
+ "noPricingData": "ధరల డేటా అందుబాటులో లేదు",
+ "resetToDefaults": "డిఫాల్ట్లకు రీసెట్ చేయండి",
+ "cancel": "రద్దు చేయండి",
+ "saving": "సేవ్ చేస్తోంది...",
+ "saveChanges": "మార్పులను సేవ్ చేయండి",
+ "resetConfirm": "అన్ని ధరలను డిఫాల్ట్లకు రీసెట్ చేయాలా? దీన్ని రద్దు చేయడం సాధ్యం కాదు.",
+ "errorSaveFailed": "ధరలను సేవ్ చేయడం విఫలమైంది",
+ "errorResetFailed": "ధరలను రీసెట్ చేయడం విఫలమైంది"
},
"proxyRegistry": {
"selectAllProxies": "అన్ని ప్రాక్సీలను ఎంచుకోండి",
"selectProxy": "{name}ని ఎంచుకోండి",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "ప్రాక్సీ రిజిస్ట్రీ",
+ "description": "పునర్వినియోగ ప్రాక్సీలను నిల్వ చేసి, కేటాయింపులను ట్రాక్ చేయండి.",
+ "importLegacy": "లెగసీని దిగుమతి చేయండి",
+ "bulkAssign": "బల్క్గా కేటాయించండి",
+ "addProxy": "ప్రాక్సీని జోడించండి",
+ "loading": "ప్రాక్సీలు లోడ్ అవుతున్నాయి...",
+ "noProxies": "ఇంకా సేవ్ చేసిన ప్రాక్సీలు లేవు.",
+ "tableName": "పేరు",
+ "tableEndpoint": "ఎండ్పాయింట్",
+ "tableStatus": "స్థితి",
+ "tableHealth": "ఆరోగ్యం (24గం)",
+ "tableUsage": "వినియోగం",
+ "tableActions": "చర్యలు",
+ "test": "పరీక్షించండి",
+ "edit": "సవరించండి",
+ "delete": "తొలగించండి",
+ "modalCreateTitle": "ప్రాక్సీని సృష్టించండి",
+ "modalEditTitle": "ప్రాక్సీని సవరించండి",
+ "labelName": "పేరు",
+ "labelType": "రకం",
"labelFamily": "IP ఫ్యామిలీ",
"familyAuto": "ఆటో (డ్యూయల్-స్టాక్)",
"familyIpv4": "IPv4 మాత్రమే",
"familyIpv6": "IPv6 మాత్రమే",
"familyHint": "ఎగ్రెస్ అడ్రస్ ఫ్యామిలీ. ఆటో డ్యూయల్-స్టాక్ను ఉంచుతుంది; IPv4/IPv6 ఈ ప్రాక్సీని ఆ ఫ్యామిలీకి పిన్ చేస్తుంది (IPv6-మాత్రమే ప్రాక్సీ కింద v4 లీక్ను నివారిస్తుంది).",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "హోస్ట్",
+ "labelPort": "పోర్ట్",
+ "labelUsername": "వినియోగదారు పేరు",
+ "labelPassword": "పాస్వర్డ్",
+ "labelRegion": "ప్రాంతం",
+ "labelStatus": "స్థితి",
+ "labelNotes": "గమనికలు",
+ "usernamePlaceholderEdit": "ప్రస్తుత వినియోగదారు పేరును అలాగే ఉంచడానికి ఖాళీగా వదిలేయండి",
+ "passwordPlaceholderEdit": "ప్రస్తుత పాస్వర్డ్ను అలాగే ఉంచడానికి ఖాళీగా వదిలేయండి",
+ "statusActive": "సక్రియం",
+ "statusInactive": "నిష్క్రియం",
+ "cancel": "రద్దు చేయండి",
+ "save": "సేవ్ చేయండి",
+ "bulkModalTitle": "బల్క్ ప్రాక్సీ కేటాయింపు",
+ "bulkLabelScope": "పరిధి",
+ "bulkLabelProxy": "ప్రాక్సీ",
+ "bulkClearAssignment": "(కేటాయింపును తొలగించండి)",
+ "bulkLabelScopeIds": "పరిధి IDలు (కామా లేదా కొత్త పంక్తితో వేరు చేయబడినవి)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "వర్తింపజేయండి",
"labelScope": "పరిధి",
"labelProxy": "ప్రాక్సీ",
"scopeGlobal": "గ్లోబల్",
@@ -10893,22 +10904,22 @@
"bulkImportErrorInvalidPort": "చెల్లని PORT (తప్పక 1-65535 అయి ఉండాలి)",
"bulkImportErrorInvalidType": "చెల్లని TYPE (http, https లేదా socks5ని ఉపయోగించండి)",
"bulkImportErrorInvalidStatus": "చెల్లని స్థితి (సక్రియ లేదా క్రియారహితంగా ఉపయోగించండి)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "ప్రాక్సీ రిజిస్ట్రీని లోడ్ చేయడం విఫలమైంది",
+ "errorNameHostRequired": "పేరు మరియు హోస్ట్ తప్పనిసరి",
+ "errorSaveFailed": "ప్రాక్సీని సేవ్ చేయడం విఫలమైంది",
+ "errorDeleteFailed": "ప్రాక్సీని తొలగించడం విఫలమైంది",
+ "errorForceDeleteConfirm": "ఈ ప్రాక్సీ ఇప్పటికీ కేటాయించబడి ఉంది. బలవంతంగా తొలగించి అన్ని కేటాయింపులను తీసివేయాలా?",
+ "errorMigrateFailed": "పాత ప్రాక్సీ కాన్ఫిగ్ను మైగ్రేట్ చేయడం విఫలమైంది",
+ "errorBulkFailed": "బల్క్ కేటాయింపును అమలు చేయడం విఫలమైంది",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "విఫలమైంది",
+ "successRate": "{rate}% విజయవంతం",
+ "avgLatency": "సగటు {latency}ms",
+ "assignmentsCount": "{count} కేటాయింపులు",
"noData": "—",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency}మి.సె.",
"testFailure": "✗ {error}",
"repair": "రిపేర్ చేయండి",
"relayAuthMissing": "అథెంటికేషన్ లేదు",
@@ -10957,6 +10968,9 @@
"strategyLatency": "లేటెన్సీ-ఆప్టిమైజ్డ్",
"poolMembersLabel": "పూల్ సభ్యులు ({count})",
"poolNoMembers": "ఈ పూల్లో ఇంకా ప్రాక్సీలు లేవు.",
+ "poolEgressObservation": "{connections, plural, one {# కనెక్షన్} other {# కనెక్షన్లు}} ఉపయోగించిన {exits, plural, one {# ఎగ్జిట్} other {# ఎగ్జిట్లు}} · ఒక ఎగ్జిట్లో గరిష్ఠంగా {max} · గత {hours} గం.",
+ "poolEgressObservationEmpty": "గత {hours} గంటల్లో ట్రాఫిక్ ఏదీ గమనించబడలేదు",
+ "poolEgressObservationHint": "ఈ విండో వ్యవధిలో ప్రాక్సీ లాగ్ నుంచి లెక్కించబడినవి: ఈ పూల్ సభ్యుల కోసం గమనించిన విభిన్న ఎగ్రెస్ IPలు మరియు వాటిని ఉపయోగించిన OmniRoute కనెక్షన్లు. \"ఒకే ఎగ్జిట్లో\" అంటే ఒకే సమయంలో అని కాకుండా, విండో వ్యవధిలో అని అర్థం. ఒక్కో IPకి వర్తించే 429 లాకౌట్ అదే ప్రొవైడర్ ఫ్యామిలీకి చెందిన కనెక్షన్లను మాత్రమే తాత్కాలికంగా నిలిపివేస్తుంది.",
"poolRemove": "తొలగించు",
"poolRemoveFailed": "పూల్ నుండి ప్రాక్సీని తొలగించడం విఫలమైంది",
"poolAddLabel": "ప్రాక్సీని జోడించండి",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "పూల్ అసైన్మెంట్ను సేవ్ చేయడం విఫలమైంది"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "మోడల్ ప్లేగ్రౌండ్",
+ "description": "డ్యాష్బోర్డ్ నుంచే ఏ మోడల్నైనా పరీక్షించండి. ప్రొవైడర్, మోడల్ మరియు ఎండ్పాయింట్ రకాన్ని ఎంచుకుని, ముడి ప్రతిస్పందనను చూడటానికి అభ్యర్థనను పంపండి.",
+ "endpoint": "ఎండ్పాయింట్",
+ "provider": "ప్రొవైడర్",
+ "model": "మోడల్",
+ "accountKey": "ఖాతా / కీ",
+ "autoAccounts": "ఆటో ({count} ఖాతాలు)",
+ "noAccounts": "ఖాతాలు లేవు",
+ "send": "పంపు",
+ "cancel": "రద్దు చేయి",
+ "audioFile": "ఆడియో ఫైల్",
+ "attachImages": "చిత్రాలను జోడించండి (విజన్)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "గరిష్ఠంగా 4 చిత్రాలు",
+ "selectAudioFile": "ట్రాన్స్క్రిప్షన్ కోసం ఆడియో ఫైల్ను ఎంచుకోండి (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "అన్నింటినీ క్లియర్ చేయి",
+ "request": "అభ్యర్థన",
+ "response": "ప్రతిస్పందన",
+ "transcription": "ట్రాన్స్క్రిప్షన్",
+ "copy": "కాపీ చేయి",
+ "resetToDefault": "డిఫాల్ట్కు రీసెట్ చేయి",
+ "downloadAudio": "ఆడియోను డౌన్లోడ్ చేయి",
+ "copyText": "టెక్స్ట్ను కాపీ చేయి",
+ "transcriptionHint": "ట్రాన్స్క్రిప్షన్ multipart/form-dataను ఉపయోగిస్తుంది. పైన ఆడియో ఫైల్ను అప్లోడ్ చేయండి — దిగువనున్న JSON అదనపు పారామీటర్లను (మోడల్, భాష) నియంత్రిస్తుంది.",
+ "imagesGenerated": "{count} చిత్రాలు రూపొందించబడ్డాయి",
+ "generatedImage": "రూపొందించిన చిత్రం {index}",
+ "save": "సేవ్ చేయి",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "చాట్ పూర్తీకరణలు",
+ "responses": "ప్రతిస్పందనలు",
"completions": "కంప్లీషన్స్",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "చిత్ర సృష్టి",
+ "embeddings": "ఎంబెడ్డింగ్లు",
+ "speech": "వచనం నుండి మాటకు",
+ "transcription": "ఆడియో లిప్యంతరీకరణ",
+ "video": "వీడియో సృష్టి",
+ "music": "సంగీత సృష్టి",
"moderations": "మోడరేషన్స్",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "పునఃర్యాంకింగ్",
+ "search": "వెబ్ శోధన",
"webFetch": "వెబ్ ఫెచ్"
},
"conversationalChat": "సంభాషణ చాట్",
"clearChat": "చాట్ని క్లియర్ చేయండి",
"typeMessagePlaceholder": "సందేశాన్ని టైప్ చేయండి... (కొత్త లైన్ కోసం Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "చాట్",
+ "tabCompare": "పోల్చండి",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "రూపొందించండి",
+ "configPane": "కాన్ఫిగరేషన్",
+ "systemPrompt": "సిస్టమ్ ప్రాంప్ట్",
+ "systemPromptPlaceholder": "మీరు సహాయకరమైన అసిస్టెంట్.",
+ "modelPlaceholder": "ఉదా. openai/gpt-4o",
+ "endpointLabel": "ఎండ్పాయింట్",
+ "parametersLabel": "పారామీటర్లు",
+ "collapseConfig": "కాన్ఫిగరేషన్ పేన్ను కుదించండి",
+ "expandConfig": "కాన్ఫిగరేషన్ పేన్ను విస్తరించండి",
+ "temperature": "ఉష్ణోగ్రత",
+ "maxTokens": "గరిష్ఠ టోకెన్లు",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "ఉనికి పెనాల్టీ",
+ "frequencyPenalty": "ఫ్రీక్వెన్సీ పెనాల్టీ",
"reasoningLabel": "రీజనింగ్",
"thinking": "ఆలోచన",
"effort": "ప్రయత్నం",
"effortDefault": "డిఫాల్ట్",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "యాదృచ్ఛికం (ఖాళీగా వదలండి)",
+ "presetsLabel": "ప్రీసెట్లు",
+ "loadPreset": "ప్రీసెట్ను లోడ్ చేయండి",
+ "savePreset": "ప్రీసెట్ను సేవ్ చేయండి",
+ "noPresets": "ప్రీసెట్లు లేవు",
+ "presetNamePlaceholder": "ప్రీసెట్ పేరు",
+ "savingPreset": "సేవ్ చేస్తోంది…",
+ "nameRequired": "పేరు అవసరం",
+ "failedToSavePreset": "ప్రీసెట్ను సేవ్ చేయడం విఫలమైంది",
+ "improvePrompt": "ప్రాంప్ట్ను మెరుగుపరచండి",
+ "improvingPrompt": "మెరుగుపరుస్తోంది…",
+ "improvePromptTitle": "AIతో మీ ప్రాంప్ట్ను మెరుగుపరచండి",
+ "setModelFirst": "ముందుగా ఒక మోడల్ను సెట్ చేయండి",
"setModelInConfigFirst": "ముందుగా కాన్ఫిగ్ పేన్లో ఒక మోడల్ను సెట్ చేయండి.",
"improvePromptFailed": "ప్రాంప్ట్ను మెరుగుపరచడం విఫలమైంది.",
"improvePromptAria": "AI ఉపయోగించి ప్రాంప్ట్ను మెరుగుపరచండి",
"confirmImprovePrompt": "ప్రాంప్ట్ను మెరుగుపరచడాన్ని నిర్ధారించండి",
"improvePromptDescription": "ఇది మెరుగైన సంస్కరణను రూపొందించడానికి మీ ప్రస్తుత సిస్టమ్ ప్రాంప్ట్ను trae.aiలో ఈ బ్రౌజర్లో లాగిన్ అయి ఉండాలి. అధికారం పేజీ కేవలం ఒక ఉన్న సెషన్ను నిర్ధారిస్తుంది — ఇది మీకు లాగిన్ చేయలదు. మీరు \"లాగిన్ విఫలమైంది\" అని చూస్తే, \"Open solo.trae.ai\" పై క్లిక్ చేయండి, లాగిన్ అవ్వండి, తరువాత ఇక్కడ తిరిగి రండి.",
"waitingForAuthorization": "trae.ai కోసం ఎదురుచూస్తున్నాం…",
"authorizeWithBrowser": "బ్రౌజర్తో ఆమోదించండి",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.aiని తెరవండి",
"orPasteManually": "లేదా ఒక టోకెన్ను చేతితో పేస్ట్ చేయండి",
"manualInstructions": "solo.trae.ai లో సైన్ ఇన్ అవ్వండి, DevTools → Network ను తెరవండి, ఏదైనా చాట్ సందేశాన్ని పంపండి, మరియు Authorization: Cloud-IDE-JWT {tokenPlaceholder} అభ్యర్థన శీర్షిక నుండి JWT ను కాపీ చేయండి. JWT జీవితకాలం ~14 రోజులు. ఐచ్ఛిక గుర్తింపు ఫీల్డ్స్ అదే అభ్యర్థన శరీరంలో common_params నుండి వస్తాయి.",
"accessTokenLabel": "అక్సెస్ టోకెన్ (క్లౌడ్-ఐడీఈ-జేడబ్ల్యూటీ)",
@@ -13945,7 +13978,7 @@
"runners": "రన్నర్స్",
"tasks": "పనులు",
"colName": "పేరు",
- "colClis": "CLIs",
+ "colClis": "CLIలు",
"colStatus": "స్థితి",
"colTask": "పని",
"colMode": "మోడ్",
@@ -14048,11 +14081,11 @@
"actionApprove": "ప్రణాళికను ఆమోదించండి",
"actionCancel": "రద్దు చేయండి",
"actionSeeInGraph": "గ్రాఫ్లో చూడండి",
+ "actionRepeat": "పునరావృతం చేయండి",
"actionDone": "చర్య వర్తింపజేయబడింది",
"actionFailed": "చర్య విఫలమైంది: {error}",
"detailFailed": "వివరాలను లోడ్ చేయడంలో విఫలమైంది: {error}",
"mirroredInA2A": "A2Aలో ప్రతిబింబించబడింది",
- "actionRepeat": "పునరావృతం చేయండి",
"repeatConfirm": "నిర్ధారించడానికి మళ్లీ క్లిక్ చేయండి",
"repeatDone": "కొత్త రన్ సృష్టించబడింది",
"repeatUnavailable": "అసలు ఇన్పుట్ అందుబాటులో లేదు"
@@ -14066,57 +14099,57 @@
"networkError": "నెట్వర్క్ లోపం — ప్రొవైడర్ ఎక్స్పోజర్ సెటింగ్ను నవీకరించలేకపోయింది"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "మద్దతుదారుల ఆఫర్లు",
+ "subtitle": "Radar నుండి అధికారిక తగ్గింపులు, క్రెడిట్లు, ట్రయల్లు మరియు సమీక్షించిన భాగస్వామి ప్రయోజనాలు.",
+ "backToRadar": "Radarకు తిరిగి వెళ్లండి",
+ "loading": "ఆఫర్లు లోడ్ అవుతున్నాయి...",
+ "refresh": "ఆఫర్లను రిఫ్రెష్ చేయండి",
+ "refreshing": "రిఫ్రెష్ అవుతోంది...",
+ "loadFailed": "మేము ఆఫర్లను రిఫ్రెష్ చేయలేకపోయాము. చివరిగా ధృవీకరించిన స్థానిక క్యాష్ అలాగే ఉంచబడింది.",
+ "empty": "ప్రస్తుతం సక్రియ ఆఫర్లు ఏవీ అందుబాటులో లేవు.",
+ "keyRequiredTitle": "మద్దతుదారు కీ అవసరం",
+ "keyRequiredDescription": "ఆఫర్లు ప్రత్యక్ష Radar ప్రయోజనం. Radar స్క్రీన్లో ఇప్పటికే ఉన్న మద్దతుదారు కీని జోడించండి, మీ కంట్రిబ్యూటర్ స్థితిని ధృవీకరించండి లేదా ఒక కీని పొందడానికి ప్రాజెక్ట్కు మద్దతు ఇవ్వండి.",
+ "contributorButton": "నేను కంట్రిబ్యూటర్ను",
+ "supporterButton": "ప్రాజెక్ట్కు మద్దతు ఇవ్వండి",
+ "partnerBadge": "భాగస్వామి",
+ "officialBadge": "అధికారికం",
+ "conditionsLabel": "షరతులు:",
+ "validUntil": "{date} వరకు చెల్లుబాటు అవుతుంది",
+ "noExpiry": "గడువు ముగింపు ప్రకటించబడలేదు",
+ "openOffer": "ఆఫర్ను చూడండి",
+ "trialDays": "{days, plural, one {# రోజు} other {# రోజులు}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "Radar ఇంటెల్",
+ "subtitle": "Radar యాజమాన్యంలోని ELO ర్యాంకింగ్లు మరియు వాస్తవాధారిత కాటలాగ్ మార్పులు.",
+ "backToRadar": "Radarకు తిరిగి వెళ్లండి",
+ "loading": "ఇంటెల్ లోడ్ అవుతోంది...",
+ "refresh": "ఇంటెల్ను రిఫ్రెష్ చేయండి",
+ "syncing": "రిఫ్రెష్ అవుతోంది...",
+ "loadFailed": "Intelను రిఫ్రెష్ చేయలేకపోయాము. చివరిగా ధృవీకరించిన స్థానిక క్యాష్ అలాగే ఉంచబడింది.",
+ "empty": "ధృవీకరించిన Intel స్నాప్షాట్ ఇంకా అందుబాటులో లేదు.",
+ "supporterBadge": "రాడార్ మద్దతుదారు",
+ "methodology": "పద్ధతి",
+ "eloMethod": "ELO, ప్రారంభ విలువ {initial}, K={factor}",
+ "freshness": "కేటలాగ్ తాజాదనం",
+ "ageDays": "{days, plural, one {# రోజు పాతది} other {# రోజుల పాతది}}",
+ "trend": "కేటలాగ్ ధోరణి",
+ "modelDelta": "{current} మోడళ్లు, +{added} / -{removed}",
+ "ranking": "మోడల్ ర్యాంకింగ్",
+ "noRankings": "ధృవీకరించిన పోలికలు ఇంకా అందుబాటులో లేవు.",
+ "model": "మోడల్",
+ "category": "వర్గం",
+ "rating": "రేటింగ్",
+ "matches": "మ్యాచ్లు",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "తాజా",
+ "aging": "పాతబడుతోంది",
+ "stale": "కాలం చెల్లినది"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "పెరుగుతోంది",
+ "stable": "స్థిరంగా ఉంది",
+ "shrinking": "తగ్గుతోంది"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "అనువర్తన ప్రదాత యొక్క సందర్భం కిటికీని మించు కోరింపు"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference ఒక OmniRoute ఓపెన్ సోర్స్ మిత్రుడు",
+ "description": "ఒకే OpenAI-అనుకూల ఎండ్పాయింట్ వెనుక డజన్ల కొద్దీ అత్యాధునిక మోడళ్లను తిరిగి విక్రయించే, ఖర్చు ఆధారంగా ర్యాంక్ చేసిన గేట్వే — ప్రతి అభ్యర్థనను అర్హత కలిగిన అత్యంత చౌక ప్రొవైడర్కు రూట్ చేస్తుంది, జాబితా ధరను ఎప్పుడూ మించదు.",
+ "cta": "API కీని పొందండి",
+ "partnerLinkNote": "భాగస్వామి లింక్",
+ "dismissAriaLabel": "మూసివేయి"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models కేటలాగ్లో ఆలోచనా స్థాయి వేరియంట్ల (ఉదా. -low, -medium, -high) సృష్టిని నిలిపివేయండి."
}
diff --git a/src/i18n/messages/th.json b/src/i18n/messages/th.json
index c86a8da842..8d512b93d4 100644
--- a/src/i18n/messages/th.json
+++ b/src/i18n/messages/th.json
@@ -31,7 +31,7 @@
"active": "ใช้งานอยู่",
"inactive": "ไม่ได้ใช้งาน",
"noData": "ไม่มีข้อมูล",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "ยังไม่มีอะไรที่นี่",
"configure": "กำหนดค่า",
"manualConfig": "กำหนดค่าด้วยตนเอง",
"manage": "จัดการ",
@@ -47,7 +47,7 @@
"time": "เวลา",
"details": "รายละเอียด",
"created": "สร้างแล้ว",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "รีเฟรชล่าสุด",
"loadMore": "โหลดเพิ่มเติม",
"noResults": "ไม่พบผลลัพธ์",
"reloadPage": "โหลดหน้าซ้ำ",
@@ -70,8 +70,8 @@
"note": "หมายเหตุ",
"free": "ฟรี",
"skipToContent": "ข้ามไปที่เนื้อหา",
- "maintenanceServerIssues": "Server is experiencing issues. Some features may be unavailable.",
- "maintenanceServerUnreachable": "Server is unreachable. Reconnecting...",
+ "maintenanceServerIssues": "เซิร์ฟเวอร์กำลังประสบปัญหา คุณลักษณะบางอย่างอาจไม่พร้อมใช้งาน",
+ "maintenanceServerUnreachable": "ไม่สามารถเชื่อมต่อเซิร์ฟเวอร์ได้ กำลังเชื่อมต่อใหม่...",
"accept": "ยอมรับ",
"accountId": "รหัสบัญชี",
"alias": "นามแฝง",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "ไม่สามารถรีเซ็ตราคาได้",
"apikey": "คีย์ API",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "ไปที่แดชบอร์ด",
+ "checkSystemStatus": "ตรวจสอบสถานะระบบ",
+ "selectModel": "เลือกโมเดล",
"addModel": "เพิ่มโมเดล",
"effortNone": "ไม่มี",
"effortLow": "ต่ำ",
@@ -164,10 +164,10 @@
"reasoningEffort": "ระดับการใช้เหตุผล",
"wireApi": "Wire API",
"modelAliases": "นามแฝงโมเดล",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "คอมโบ",
+ "noModelsFound": "ไม่พบโมเดล",
+ "clear": "ล้าง",
+ "done": "เสร็จสิ้น",
"selectAll": "เลือกทั้งหมด",
"unselectAll": "ยกเลิกการเลือกทั้งหมด",
"visibleModels": "ที่แสดง",
@@ -184,519 +184,519 @@
"selectAllProviders": "ตรวจสอบผู้ให้บริการทั้งหมด",
"clearProviderSelection": "ยกเลิกการเลือกผู้ให้บริการ",
"providersSelectedCount": "ตรวจสอบผู้ให้บริการ {count} ราย",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "เกิดข้อผิดพลาด",
+ "comboDeleted": "ลบคอมโบแล้ว",
+ "hide": "ซ่อน",
+ "creating": "กำลังสร้าง",
+ "comboCreated": "สร้างคอมโบแล้ว",
+ "swapFormats": "สลับรูปแบบ",
+ "daysAgo": "วันที่ผ่านมา",
+ "retries": "จำนวนครั้งที่ลองใหม่",
+ "errorDuringRestore": "เกิดข้อผิดพลาดระหว่างการกู้คืน",
+ "eventsAppearHint": "คำแนะนำเกี่ยวกับการแสดงเหตุการณ์",
+ "noLockouts": "ไม่มีการล็อก",
+ "webSearchDesc": "คำอธิบายการค้นหาเว็บ",
+ "audioProvidersHeading": "หัวข้อผู้ให้บริการเสียง",
"cloudAgentProviders": "ผู้ให้บริการตัวแทนระบบคลาวด์",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "นาทีที่ผ่านมา",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "กำลังรีเฟรชอัตโนมัติแบบสด",
+ "webSearch": "การค้นหาเว็บ",
+ "anthropicPrefixPlaceholder": "ตัวยึดตำแหน่งคำนำหน้า Anthropic",
+ "addModelToCombo": "เพิ่มโมเดลไปยังคอมโบ",
+ "failedToLoad": "โหลดไม่สำเร็จ",
+ "categoryMedia": "หมวดหมู่สื่อ",
+ "enableCloud": "เปิดใช้งานคลาวด์",
+ "expirationBannerExpiringSoon": "แบนเนอร์แจ้งว่าใกล้หมดอายุ",
+ "retry": "ลองใหม่",
+ "embeddings": "เวกเตอร์ฝังตัว",
+ "errorCount": "จำนวนข้อผิดพลาด",
+ "backupReasonManual": "เหตุผลในการสำรองข้อมูล: ดำเนินการด้วยตนเอง",
+ "safeSearchModerate": "การค้นหาปลอดภัยระดับปานกลาง",
+ "activeLimiters": "ตัวจำกัดที่ใช้งานอยู่",
+ "a2aCardTitle": "ชื่อการ์ด A2A",
+ "cloudWorkerUnreachable": "ไม่สามารถเข้าถึง Cloud Worker ได้",
+ "testFailed": "การทดสอบล้มเหลว",
+ "compatibleBaseUrlHint": "คำแนะนำ Base URL ที่เข้ากันได้",
+ "usageTracking": "การติดตามการใช้งาน",
+ "disableCloudTitle": "ชื่อเรื่องการปิดใช้งาน Cloud",
+ "noConnections": "ไม่มีการเชื่อมต่อ",
+ "providerHealth": "สถานะผู้ให้บริการ",
+ "confirmDbImport": "ยืนยันการนำเข้าฐานข้อมูล",
+ "notAvailableSymbol": "สัญลักษณ์ไม่พร้อมใช้งาน",
+ "backupsAvailable": "ข้อมูลสำรองที่พร้อมใช้งาน",
+ "providerAuto": "เลือกผู้ให้บริการอัตโนมัติ",
+ "newProviderNamePlaceholder": "ตัวยึดตำแหน่งชื่อผู้ให้บริการใหม่",
+ "a2aQuickStartStep2": "ขั้นตอนที่ 2 ของการเริ่มต้นใช้งาน A2A อย่างรวดเร็ว",
+ "ok": "ตกลง",
+ "available": "พร้อมใช้งาน",
+ "noBackupYet": "ยังไม่มีข้อมูลสำรอง",
+ "more": "เพิ่มเติม",
+ "noCompatibleYet": "ยังไม่มีรายการที่เข้ากันได้",
+ "multiProvider": "หลายผู้ให้บริการ",
+ "repairEnvHint": "คำแนะนำในการซ่อมแซม Env",
+ "disablingCloud": "กำลังปิดใช้งาน Cloud",
+ "testBench": "ชุดทดสอบ",
+ "valid": "ถูกต้อง",
+ "cloudBenefitShare": "แชร์ประโยชน์ของ Cloud",
+ "mcpCardTitle": "ชื่อการ์ด MCP",
+ "disableConfirm": "ยืนยันการปิดใช้งาน",
+ "filters": "ตัวกรอง",
+ "expirationBannerExpiredDesc": "คำอธิบายแบนเนอร์การหมดอายุเมื่อหมดอายุแล้ว",
+ "saveComboDefaults": "บันทึกค่าเริ่มต้นของ Combo",
+ "cloudConnectedVerified": "เชื่อมต่อและยืนยัน Cloud แล้ว",
+ "uptime": "ระยะเวลาทำงาน",
+ "compatibleProdPlaceholder": "ตัวยึดตำแหน่ง Compatible Prod",
+ "fallbackChainsTitle": "ชื่อเรื่องเชนสำรอง",
+ "oauthLabel": "ป้ายกำกับ OAuth",
+ "a2aCardDescription": "คำอธิบายการ์ด A2A",
+ "okShort": "ตกลง",
+ "maintenance": "การบำรุงรักษา",
+ "formatConverter": "ตัวแปลงรูปแบบ",
+ "zedImportNetworkError": "ข้อผิดพลาดเครือข่ายในการนำเข้า Zed",
+ "apiKeyLabel": "ป้ายกำกับคีย์ API",
+ "noModelsForProvider": "ไม่มีโมเดลสำหรับผู้ให้บริการ",
+ "mcpCardDescription": "คำอธิบายการ์ด MCP",
+ "apiTypeLabel": "ป้ายกำกับประเภท API",
+ "configuredProvidersLabel": "ป้ายกำกับผู้ให้บริการที่กำหนดค่าแล้ว",
+ "maxRetriesLabel": "ป้ายกำกับจำนวนครั้งสูงสุดในการลองใหม่",
+ "title": "ชื่อเรื่อง",
+ "output": "ผลลัพธ์",
+ "prefixHint": "คำแนะนำคำนำหน้า",
+ "skipWizard": "ข้ามตัวช่วยตั้งค่า",
+ "failedCount": "จำนวนที่ล้มเหลว",
+ "confirmDbImportDesc": "คำอธิบายการยืนยันการนำเข้าฐานข้อมูล",
+ "entries": "รายการ",
+ "until": "จนถึง",
+ "disableCombo": "ปิดใช้งาน Combo",
+ "liveMonitorDescriptionPrefix": "คำนำหน้าคำอธิบายการตรวจสอบแบบเรียลไทม์",
+ "runningCount": "จำนวนที่กำลังทำงาน",
+ "noActiveConnectionsInGroup": "ไม่มีการเชื่อมต่อที่ใช้งานอยู่ในกลุ่ม",
+ "savedSuccessfully": "บันทึกสำเร็จแล้ว",
+ "systemStorage": "พื้นที่จัดเก็บข้อมูลของระบบ",
+ "videoDesc": "คำอธิบายวิดีโอ",
+ "maxResults": "จำนวนผลลัพธ์สูงสุด",
+ "timeRangeMonth": "ช่วงเวลาหนึ่งเดือน",
+ "testSummary": "สรุปผลการทดสอบ",
+ "failedSetPassword": "ตั้งรหัสผ่านไม่สำเร็จ",
+ "audio": "เสียง",
+ "restore": "กู้คืน",
+ "disableWarning": "ปิดใช้งานคำเตือน",
+ "moderationsDesc": "คำอธิบายการตรวจสอบเนื้อหา",
+ "providerHealthStatusAria": "ARIA สำหรับสถานะความพร้อมใช้งานของผู้ให้บริการ",
+ "modelNamePlaceholder": "ข้อความตัวอย่างสำหรับชื่อโมเดล",
+ "mcpQuickStartStep2": "ขั้นตอนที่ 2 ของการเริ่มต้นใช้งาน MCP อย่างรวดเร็ว",
+ "quickStart": "เริ่มต้นใช้งานอย่างรวดเร็ว",
+ "fullExportFailedWithError": "การส่งออกทั้งหมดล้มเหลวโดยมีข้อผิดพลาด",
+ "loadingBackups": "กำลังโหลดข้อมูลสำรอง",
+ "anthropicBaseUrlPlaceholder": "ข้อความตัวอย่างสำหรับ URL ฐานของ Anthropic",
+ "description": "คำอธิบาย",
+ "noProviderFound": "ไม่พบผู้ให้บริการ",
+ "auto": "อัตโนมัติ",
+ "protocolsDescription": "คำอธิบายโปรโตคอล",
+ "cloudSessionNote": "หมายเหตุเกี่ยวกับเซสชันคลาวด์",
+ "advancedSettings": "การตั้งค่าขั้นสูง",
+ "defaultStrategy": "กลยุทธ์เริ่มต้น",
+ "purgeExpiredLogs": "ล้างบันทึกที่หมดอายุ",
+ "justNow": "เมื่อสักครู่",
+ "providerTestFailed": "การทดสอบผู้ให้บริการล้มเหลว",
+ "openaiBaseUrlPlaceholder": "ตัวอย่าง URL ฐานของ OpenAI",
+ "image": "รูปภาพ",
+ "failedCreateChain": "สร้างเชนไม่สำเร็จ",
+ "importDatabase": "นำเข้าฐานข้อมูล",
+ "allDataLocal": "ข้อมูลทั้งหมดอยู่ในเครื่อง",
+ "sectionTitle": "ชื่อส่วน",
+ "failedToggle": "สลับสถานะไม่สำเร็จ",
+ "editCombo": "แก้ไขคอมโบ",
+ "testResults": "ผลการทดสอบ",
+ "searchQuery": "คำค้นหา",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "ทำสำเนา",
+ "createCombo": "สร้างคอมโบ",
+ "searchTypeWeb": "ประเภทการค้นหา: เว็บ",
+ "addChain": "เพิ่มเชน",
+ "prefixLabel": "ป้ายกำกับคำนำหน้า",
+ "listModelsDesc": "คำอธิบายรายการโมเดล",
+ "databaseSize": "ขนาดฐานข้อมูล",
+ "chainCreated": "สร้างเชนแล้ว",
+ "providerTestTimeout": "การทดสอบผู้ให้บริการหมดเวลา",
+ "routingStrategy": "กลยุทธ์การกำหนดเส้นทาง",
+ "translateAction": "การดำเนินการแปล",
+ "exportFailed": "ส่งออกไม่สำเร็จ",
+ "connectedVerificationPending": "เชื่อมต่อแล้ว กำลังรอการยืนยัน",
+ "a2aQuickStartTitle": "เริ่มต้นใช้งาน A2A อย่างรวดเร็ว",
+ "couldNotTest": "ไม่สามารถทดสอบได้",
+ "testAllCompatible": "ทดสอบทั้งหมดที่เข้ากันได้",
+ "anthropicCompatibleName": "ชื่อที่เข้ากันได้กับ Anthropic",
+ "disabling": "กำลังปิดใช้งาน",
+ "failedEnable": "เปิดใช้งานไม่สำเร็จ",
+ "categoryUtility": "หมวดหมู่ยูทิลิตี",
+ "customUrlOptional": "URL กำหนดเอง (ไม่บังคับ)",
+ "localProviders": "ผู้ให้บริการภายในเครื่อง",
+ "comboNamePlaceholder": "ตัวอย่างชื่อคอมโบ",
+ "memoryRss": "หน่วยความจำ RSS",
+ "disableProvider": "ปิดใช้งานผู้ให้บริการ",
+ "welcomeDesc": "คำอธิบายการต้อนรับ",
+ "nameLabel": "ป้ายกำกับชื่อ",
+ "allOperational": "ระบบทั้งหมดทำงานปกติ",
+ "backupNow": "สำรองข้อมูลตอนนี้",
+ "providerMaxRetriesAria": "ARIA จำนวนครั้งสูงสุดในการลองใหม่ของผู้ให้บริการ",
+ "textToSpeechDesc": "คำอธิบายการแปลงข้อความเป็นเสียงพูด",
+ "machineId": "รหัสเครื่อง",
+ "globalProxy": "พร็อกซีส่วนกลาง",
+ "hitsMisses": "จำนวนครั้งที่พบและไม่พบ",
+ "testDesc": "คำอธิบายการทดสอบ",
+ "chatDesc": "คำอธิบายการแชต",
+ "importSuccess": "นำเข้าสำเร็จ",
+ "chat": "แชต",
+ "a2aQuickStartStep1": "ขั้นตอนที่ 1 ของการเริ่มต้นใช้งาน A2A อย่างรวดเร็ว",
+ "importFailed": "นำเข้าไม่สำเร็จ",
+ "inputPlaceholder": "ข้อความตัวอย่างในช่องป้อนข้อมูล",
+ "providerModelsTitle": "ชื่อโมเดลของผู้ให้บริการ",
+ "lastBackup": "การสำรองข้อมูลล่าสุด",
+ "yourEndpoint": "เอนด์พอยต์ของคุณ",
+ "autoDisableThresholdDesc": "คำอธิบายเกณฑ์การปิดใช้งานอัตโนมัติ",
+ "rerankDesc": "คำอธิบายการจัดอันดับใหม่",
+ "modelsPathPlaceholder": "ข้อความตัวอย่างสำหรับพาธของโมเดล",
+ "noCombosYet": "ยังไม่มีชุดค่าผสม",
+ "connectedVerificationPendingWithError": "เชื่อมต่อแล้ว กำลังรอการตรวจสอบพร้อมข้อผิดพลาด",
+ "comboDefaultsGuideHint1": "คำแนะนำที่ 1 สำหรับค่าเริ่มต้นของชุดค่าผสม",
+ "enableCloudTitle": "เปิดใช้งานคลาวด์",
+ "configuredProvidersHint": "คำแนะนำเกี่ยวกับผู้ให้บริการที่กำหนดค่าแล้ว",
+ "paused": "หยุดชั่วคราว",
+ "llmProviders": "ผู้ให้บริการ LLM",
+ "enableCombo": "เปิดใช้งานชุดค่าผสม",
+ "removeProviderOverrideAria": "ARIA ลบการแทนที่ค่าของผู้ให้บริการ",
+ "nodeVersion": "เวอร์ชัน Node",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "ส่งออกไม่สำเร็จพร้อมข้อผิดพลาด",
+ "proxyConfigured": "กำหนดค่าพร็อกซีแล้ว",
+ "concurrencyPerModel": "จำนวนงานพร้อมกันต่อโมเดล",
+ "protocolTasksLabel": "ป้ายกำกับงานของโปรโตคอล",
+ "oauthProviders": "ผู้ให้บริการ OAuth",
+ "lockedCount": "จำนวนที่ล็อก",
+ "deleteChainConfirm": "ยืนยันการลบเชน",
+ "recentTranslations": "คำแปลล่าสุด",
+ "zedImportButton": "ปุ่มนำเข้า Zed",
+ "responsesDesc": "คำอธิบายการตอบกลับ",
+ "testedCount": "จำนวนที่ทดสอบแล้ว",
+ "providersCommaSeparatedPlaceholder": "ข้อความตัวอย่างสำหรับผู้ให้บริการที่คั่นด้วยจุลภาค",
+ "signatureDefaults": "ค่าเริ่มต้นของลายเซ็น",
+ "errorCreating": "เกิดข้อผิดพลาดขณะสร้าง",
+ "timeRangeYear": "ช่วงเวลาหนึ่งปี",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "ปิดใช้งาน Cloud สำเร็จแล้ว",
+ "deleteConfirm": "ยืนยันการลบ",
+ "check": "ตรวจสอบ",
+ "safeSearch": "การค้นหาที่ปลอดภัย",
+ "protocolLastActivity": "กิจกรรมล่าสุดของโปรโตคอล",
+ "openMcpDashboard": "เปิดแดชบอร์ด Mcp",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "ป้ายกำกับพาธแชต",
+ "retryDelay": "ระยะเวลาก่อนลองใหม่",
+ "errorUpdating": "เกิดข้อผิดพลาดขณะอัปเดต",
+ "ideCliIntegrations": "การผสานรวม IDE และ CLI",
+ "imageGeneration": "การสร้างรูปภาพ",
+ "apiKeyRequired": "จำเป็นต้องใช้คีย์ API",
+ "resetAllTitle": "หัวข้อรีเซ็ตทั้งหมด",
+ "connectionError": "ข้อผิดพลาดในการเชื่อมต่อ",
+ "modelName": "ชื่อโมเดล",
+ "apiKeyForCheck": "คีย์ API สำหรับการตรวจสอบ",
+ "cloudRequestTimeout": "คำขอ Cloud หมดเวลา",
+ "showConfiguredOnly": "แสดงเฉพาะรายการที่กำหนดค่าแล้ว",
"showFreeOnly": "ฟรีเท่านั้น",
"addFirstProvider": "เพิ่มผู้ให้บริการรายแรกของคุณ",
"addFirstProviderDesc": "เชื่อมต่อผู้ให้บริการ AI เพื่อเริ่มคำขอกำหนดเส้นทางผ่าน OmniRoute คุณสามารถใช้ผู้ให้บริการฟรี, คีย์ API หรือบัญชี OAuth ได้",
"learnMore": "เรียนรู้เพิ่มเติม",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "รวมโดเมน",
+ "promptCache": "แคชพรอมต์",
+ "cloudConnected": "เชื่อมต่อ Cloud แล้ว",
+ "deleteChain": "ลบเชน",
+ "chatPathPlaceholder": "ข้อความตัวอย่างพาธแชต",
+ "databasePath": "พาธฐานข้อมูล",
+ "usingLocalServer": "กำลังใช้เซิร์ฟเวอร์ภายในเครื่อง",
+ "globalComboConfig": "การกำหนดค่าคอมโบส่วนกลาง",
+ "backupFailed": "การสำรองข้อมูลล้มเหลว",
+ "tabProtocols": "แท็บโปรโตคอล",
+ "continue": "ดำเนินการต่อ",
+ "categorySearch": "ค้นหาหมวดหมู่",
+ "rateLimitStatus": "สถานะขีดจำกัดอัตรา",
+ "repairEnvSuccess": "ซ่อมแซมสภาพแวดล้อมสำเร็จ",
+ "nameRequired": "จำเป็นต้องระบุชื่อ",
+ "country": "ประเทศ",
+ "trackMetricsDesc": "คำอธิบายการติดตามเมตริก",
+ "durationSecondsShort": "ระยะเวลาแบบย่อ (วินาที)",
+ "formatConverterDescription": "คำอธิบายตัวแปลงรูปแบบ",
+ "cloudBenefitAccess": "การเข้าถึงสิทธิประโยชน์ของคลาวด์",
+ "maxRetries": "จำนวนครั้งที่ลองใหม่สูงสุด",
+ "queueTimeout": "ระยะหมดเวลาของคิว",
"queueDepth": "ความลึกของคิว",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "เพิ่มผู้ให้บริการ",
+ "realtime": "เรียลไทม์",
+ "totalTranslations": "คำแปลทั้งหมด",
+ "protocolActiveStreamsLabel": "ป้ายกำกับสตรีมที่ใช้งานอยู่ของโปรโตคอล",
+ "repairEnv": "ซ่อมแซมสภาพแวดล้อม",
+ "modelsCount": "จำนวนโมเดล",
+ "viewBackups": "ดูข้อมูลสำรอง",
+ "responsesApi": "Responses API",
+ "copyComboName": "คัดลอกชื่อชุดค่าผสม",
+ "failures": "ความล้มเหลว",
+ "failedUpdate": "อัปเดตไม่สำเร็จ",
+ "imageDesc": "คำอธิบายรูปภาพ",
+ "failedCreate": "สร้างไม่สำเร็จ",
+ "remainingOfLimit": "เหลือจากขีดจำกัด",
+ "protocolsTitle": "โปรโตคอล",
+ "expirationBannerExpiringSoonDesc": "คำอธิบายแบนเนอร์การหมดอายุที่ใกล้จะหมดอายุ",
+ "source": "แหล่งที่มา",
+ "failed": "ล้มเหลว",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "ขั้นตอนที่ 1 ของการเริ่มต้นใช้งาน Mcp อย่างรวดเร็ว",
+ "runTest": "เรียกใช้การทดสอบ",
+ "loadingFallbackChains": "กำลังโหลดสายโซ่สำรอง",
+ "healthy": "ปกติ",
+ "version": "เวอร์ชัน",
+ "saveBlockWeighted": "บันทึกบล็อกแบบถ่วงน้ำหนัก",
+ "zedImportNone": "ไม่มีรายการนำเข้าจาก Zed",
+ "noBackupsYet": "ยังไม่มีข้อมูลสำรอง",
+ "noGlobalProxy": "ไม่มีพร็อกซีส่วนกลาง",
+ "noModels": "ไม่มีโมเดล",
+ "stickyLimit": "ขีดจำกัดแบบคงที่",
+ "passedCount": "จำนวนที่ผ่าน",
+ "zedImportFailed": "นำเข้าจาก Zed ไม่สำเร็จ",
+ "saving": "กำลังบันทึก",
+ "testAll": "ทดสอบทั้งหมด",
+ "globalProxyDesc": "คำอธิบายพร็อกซีส่วนกลาง",
+ "latencyP99": "เวลาแฝง P99",
+ "connectingToCloud": "กำลังเชื่อมต่อกับคลาวด์",
+ "responses": "การตอบกลับ",
+ "errorDeleting": "เกิดข้อผิดพลาดขณะลบ",
+ "openaiPrefixPlaceholder": "ข้อความตัวอย่างสำหรับคำนำหน้า Openai",
+ "enterPassword": "ป้อนรหัสผ่าน",
+ "openA2aDashboard": "เปิดแดชบอร์ด A2A",
+ "enableProvider": "เปิดใช้งานผู้ให้บริการ",
+ "modeTest": "ทดสอบโหมด",
+ "failedDeleteChain": "ลบเชนไม่สำเร็จ",
+ "providerDesc": "คำอธิบายผู้ให้บริการ",
+ "templateLoadHint": "คำแนะนำการโหลดเทมเพลต",
+ "lastFailure": "ความล้มเหลวล่าสุด",
+ "moveDown": "เลื่อนลง",
+ "providerLabel": "ป้ายกำกับผู้ให้บริการ",
+ "clearCacheFailed": "ล้างแคชไม่สำเร็จ",
+ "imagesGenerations": "การสร้างรูปภาพ",
+ "repairEnvWorking": "กำลังซ่อมแซมสภาพแวดล้อมการทำงาน",
+ "millisecondsShort": "มิลลิวินาที",
+ "globalLabel": "ป้ายกำกับส่วนกลาง",
+ "failuresPlural": "ความล้มเหลว",
+ "completionsLegacyDesc": "คำอธิบาย Completions แบบเดิม",
+ "searchProviders": "ค้นหาผู้ให้บริการ",
+ "chatPathHint": "คำแนะนำพาธแชต",
+ "defaultStrategyDesc": "คำอธิบายกลยุทธ์เริ่มต้น",
+ "latencyP95": "เวลาแฝง P95",
+ "textToSpeech": "แปลงข้อความเป็นเสียงพูด",
+ "searchType": "ประเภทการค้นหา",
+ "messages": "ข้อความ",
+ "aggregatorsGateways": "ตัวรวบรวมและเกตเวย์",
+ "comboStrategyAria": "กลยุทธ์แบบผสม Aria",
+ "input": "อินพุต",
+ "testingConnection": "กำลังทดสอบการเชื่อมต่อ",
+ "excludeDomains": "ยกเว้นโดเมน",
+ "webCookieProviders": "ผู้ให้บริการคุกกี้เว็บ",
+ "allTestsPassed": "ผ่านการทดสอบทั้งหมดแล้ว",
+ "openaiCompatibleName": "ชื่อที่เข้ากันได้กับ Openai",
+ "warningCostOptimizedPartialPricing": "คำเตือนเกี่ยวกับการกำหนดราคาบางส่วนที่ปรับต้นทุนให้เหมาะสม",
+ "comboDefaultsGuideTitle": "ชื่อคู่มือค่าเริ่มต้นแบบผสม",
+ "hoursAgo": "ชั่วโมงที่แล้ว",
+ "notAvailable": "ไม่พร้อมใช้งาน",
+ "skipAndContinue": "ข้ามและดำเนินการต่อ",
+ "moderations": "การตรวจสอบเนื้อหา",
+ "proxyConfig": "การกำหนดค่าพร็อกซี",
+ "upstreamProxyProviders": "ผู้ให้บริการพร็อกซีต้นทาง",
+ "exportAll": "ส่งออกทั้งหมด",
+ "queuedCount": "จำนวนที่อยู่ในคิว",
+ "resetAll": "รีเซ็ตทั้งหมด",
+ "noTranslations": "ไม่มีคำแปล",
+ "avgLatency": "เวลาแฝงเฉลี่ย",
+ "throttleStatus": "สถานะการจำกัดอัตรา",
+ "backupRetentionDesc": "คำอธิบายการเก็บรักษาข้อมูลสำรอง",
+ "noCBData": "ไม่มีข้อมูล Cb",
+ "chainDeleted": "ลบเชนแล้ว",
+ "timeLeft": "เวลาที่เหลือ",
+ "expirationBannerExpired": "แบนเนอร์การหมดอายุ: หมดอายุแล้ว",
+ "language": "ภาษา",
+ "invalidFileType": "ประเภทไฟล์ไม่ถูกต้อง",
+ "monitoredProviders": "ผู้ให้บริการที่ได้รับการตรวจสอบ",
+ "errors": "ข้อผิดพลาด",
+ "heap": "ฮีป",
+ "chatCompletions": "การเติมข้อความแชทให้สมบูรณ์",
+ "exampleTemplatesHint": "คำแนะนำสำหรับเทมเพลตตัวอย่าง",
+ "retryDelayLabel": "ป้ายกำกับการหน่วงเวลาก่อนลองใหม่",
+ "audioTranscription": "การถอดเสียงจากไฟล์เสียง",
+ "fallbackChainsDesc": "คำอธิบายเชนสำรอง",
+ "exampleTemplates": "เทมเพลตตัวอย่าง",
+ "connectionsCount": "จำนวนการเชื่อมต่อ",
+ "modelsPathLabel": "ป้ายกำกับพาธของโมเดล",
+ "activeProvidersHint": "คำแนะนำเกี่ยวกับผู้ให้บริการที่ใช้งานอยู่",
+ "activeLockouts": "การล็อกที่ใช้งานอยู่",
+ "invalid": "ไม่ถูกต้อง",
+ "skipPassword": "ข้ามรหัสผ่าน",
+ "moveUp": "เลื่อนขึ้น",
+ "timeRange": "ช่วงเวลา",
+ "stickyLimitDesc": "คำอธิบายขีดจำกัดแบบคงที่",
+ "cloudBenefitEdge": "ขอบเขตสิทธิประโยชน์ของคลาวด์",
+ "custom": "กำหนดเอง",
+ "verifying": "กำลังตรวจสอบ",
+ "baseUrlLabel": "ป้ายกำกับ URL ฐาน",
+ "setPassword": "ตั้งรหัสผ่าน",
+ "safeSearchStrict": "การค้นหาปลอดภัยแบบเข้มงวด",
+ "noChangesSinceBackup": "ไม่มีการเปลี่ยนแปลงนับจากการสำรองข้อมูล",
+ "modelsPathHint": "คำแนะนำพาธของโมเดล",
+ "audioTranscriptions": "การถอดเสียง",
+ "testCombo": "ทดสอบคอมโบ",
+ "mcpQuickStartTitle": "ชื่อเรื่องคู่มือเริ่มต้นใช้งาน MCP อย่างรวดเร็ว",
+ "comboUpdated": "อัปเดตคอมโบแล้ว",
+ "weighted": "ถ่วงน้ำหนัก",
+ "providers": "ผู้ให้บริการ",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "คำอธิบายเมื่อไม่มีเชนสำรอง",
+ "yesImport": "ใช่ นำเข้า",
+ "lockoutsAutoRefreshHint": "คำแนะนำการรีเฟรชอัตโนมัติสำหรับการล็อกบัญชี",
+ "tabApis": "แท็บ API",
+ "sectionDescription": "คำอธิบายส่วน",
+ "filter": "ตัวกรอง",
+ "purgeLogsFailed": "ล้างบันทึกไม่สำเร็จ",
+ "latency": "เวลาแฝง",
+ "testAllOAuth": "ทดสอบ OAuth ทั้งหมด",
+ "mcpQuickStartStep3": "ขั้นตอนที่ 3 ของคู่มือเริ่มต้นใช้งาน MCP อย่างรวดเร็ว",
+ "repairEnvFailed": "ซ่อมแซม Env ไม่สำเร็จ",
+ "zedImportHint": "คำแนะนำการนำเข้าจาก Zed",
+ "modelsAcrossEndpoints": "โมเดลในทุกเอนด์พอยต์",
+ "autoDisableBannedAccounts": "ปิดใช้งานบัญชีที่ถูกแบนโดยอัตโนมัติ",
+ "securityDesc": "คำอธิบายความปลอดภัย",
+ "listModels": "แสดงรายการโมเดล",
+ "backupRestore": "สำรองและกู้คืน",
+ "target": "เป้าหมาย",
+ "zedImportSuccess": "นำเข้าจาก Zed สำเร็จ",
+ "lastHeaderUpdate": "อัปเดตส่วนหัวล่าสุด",
+ "categoryCore": "หมวดหมู่หลัก",
+ "noFallbackChains": "ไม่มีเชนสำรอง",
+ "noSearchProviders": "ไม่มีผู้ให้บริการค้นหา",
+ "autoBalance": "ปรับสมดุลอัตโนมัติ",
+ "noModelsYet": "ยังไม่มีโมเดล",
+ "signatureFamily": "ตระกูลลายเซ็น",
+ "externalApiCalls": "การเรียกใช้ API ภายนอก",
+ "providerOverridesDesc": "คำอธิบายการแทนที่ผู้ให้บริการ",
+ "signatureTool": "เครื่องมือลายเซ็น",
+ "connectionFailed": "การเชื่อมต่อล้มเหลว",
+ "activeLimitersPlural": "ตัวจำกัดที่ใช้งานอยู่หลายรายการ",
+ "doneDesc": "คำอธิบายเมื่อเสร็จสิ้น",
+ "down": "ไม่พร้อมใช้งาน",
+ "noDataYet": "ยังไม่มีข้อมูล",
+ "activeProviders": "ผู้ให้บริการที่ใช้งานอยู่",
+ "nameInvalid": "ชื่อไม่ถูกต้อง",
+ "skip": "ข้าม",
+ "createChain": "สร้างเชน",
+ "audioSpeech": "เสียงพูด",
+ "cacheCleared": "ล้างแคชแล้ว",
+ "searchTypeNews": "ประเภทการค้นหา: ข่าว",
+ "durationMillisecondsShort": "มิลลิวินาที",
+ "addOpenAICompatible": "เพิ่มผู้ให้บริการที่เข้ากันได้กับ Open AI",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "อยู่ในคิว",
+ "domainPlaceholder": "ตัวยึดตำแหน่งโดเมน",
+ "durationMinutesShort": "นาที",
+ "verifyingConnection": "กำลังตรวจสอบการเชื่อมต่อ",
+ "imageProviders": "ผู้ให้บริการรูปภาพ",
+ "protocolToolsLabel": "เครื่องมือโปรโตคอล",
+ "queryPlaceholder": "ตัวยึดตำแหน่งคำค้นหา",
+ "videoGeneration": "การสร้างวิดีโอ",
+ "timeRangeWeek": "สัปดาห์ที่ผ่านมา",
+ "limitExhausted": "ถึงขีดจำกัดแล้ว",
+ "failedDisable": "ปิดใช้งานไม่สำเร็จ",
+ "inMemoryNote": "หมายเหตุเกี่ยวกับหน่วยความจำภายใน",
+ "compatibleHint": "คำแนะนำเกี่ยวกับความเข้ากันได้",
+ "errorShort": "ข้อผิดพลาด",
+ "advancedHint": "คำแนะนำขั้นสูง",
+ "restoreFailed": "กู้คืนไม่สำเร็จ",
+ "searchProvidersHeading": "ผู้ให้บริการค้นหา",
+ "comboName": "ชื่อชุดผสม",
+ "autoDisableDescription": "คำอธิบายการปิดใช้งานอัตโนมัติ",
+ "embeddingsDesc": "คำอธิบาย Embeddings",
+ "operational": "ทำงานเป็นปกติ",
+ "testAllApiKey": "ทดสอบ API Key ทั้งหมด",
+ "backupCreated": "สร้างข้อมูลสำรองแล้ว",
+ "errorDuringImport": "เกิดข้อผิดพลาดระหว่างการนำเข้า",
+ "comboDefaultsGuideHint2": "คำแนะนำเกี่ยวกับค่าเริ่มต้นของคอมโบ 2",
+ "connecting": "กำลังเชื่อมต่อ",
+ "fillModelAndProviders": "กรอกโมเดลและผู้ให้บริการ",
+ "syncing": "กำลังซิงค์",
+ "resetConfirm": "ยืนยันการรีเซ็ต",
+ "trackMetrics": "ติดตามเมตริก",
+ "successful": "สำเร็จ",
+ "recovering": "กำลังกู้คืน",
+ "autoDisableThreshold": "เกณฑ์การปิดใช้งานอัตโนมัติ",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "กำลังซิงค์ข้อมูล",
+ "cloudBenefitPorts": "พอร์ตสำหรับสิทธิประโยชน์ของคลาวด์",
+ "compatibleProviders": "ผู้ให้บริการที่เข้ากันได้",
"freeTierProviders": "ผู้ให้บริการระดับฟรี",
"freeTierLabel": "มีเทียร์ฟรี",
"freeTierProvidersDesc": "ผู้ให้บริการแบบฟรีเทียร์ — บางรายจำเป็นต้องลงทะเบียนคีย์ API ส่วนผู้ให้บริการรายอื่นไม่ต้องการข้อมูลรับรองเลย",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "ล้างแคช",
+ "reqs": "คำขอ",
+ "addAnthropicCompatible": "เพิ่มผู้ให้บริการที่เข้ากันได้กับ Anthropic",
+ "apiKeyProviders": "ผู้ให้บริการคีย์ API",
+ "tabsAria": "ARIA ของแท็บ",
+ "resetting": "กำลังรีเซ็ต",
+ "millisecondsAbbr": "มิลลิวินาที",
+ "backupReasonPreRestore": "เหตุผลในการสำรองข้อมูลก่อนกู้คืน",
+ "disableCloud": "ปิดใช้งานคลาวด์",
+ "newProviderNameAria": "ARIA ของชื่อผู้ให้บริการใหม่",
+ "passwordsMismatch": "รหัสผ่านไม่ตรงกัน",
+ "a2aQuickStartStep3": "ขั้นตอนที่ 3 ของการเริ่มต้นใช้งาน A2A อย่างรวดเร็ว",
+ "liveMonitorDescriptionSuffix": "คำต่อท้ายคำอธิบายการตรวจสอบแบบสด",
+ "failedAddProvider": "เพิ่มผู้ให้บริการไม่สำเร็จ",
+ "addAtLeastOneProvider": "เพิ่มผู้ให้บริการอย่างน้อยหนึ่งราย",
+ "reasonSeparator": "ตัวคั่นเหตุผล",
+ "zedImporting": "Zed กำลังนำเข้า",
+ "confirmPasswordPlaceholder": "ตัวยึดตำแหน่งสำหรับยืนยันรหัสผ่าน",
+ "whatYouGet": "สิ่งที่คุณจะได้รับ",
+ "signatureSession": "เซสชันลายเซ็น",
+ "errorCountNoCode": "จำนวนข้อผิดพลาดที่ไม่มีรหัส",
+ "testing": "กำลังทดสอบ",
+ "providersCommaSeparated": "ผู้ให้บริการที่คั่นด้วยจุลภาค",
+ "exportDatabase": "ส่งออกฐานข้อมูล",
+ "hitRate": "อัตราการพบข้อมูลในแคช",
+ "completionsLegacy": "Completions แบบเดิม",
+ "removeModel": "ลบโมเดล",
+ "timeRangeDay": "ช่วงเวลา: วัน",
+ "cloudRequestFailed": "คำขอไปยังคลาวด์ล้มเหลว",
+ "updatedAt": "อัปเดตเมื่อ",
+ "monitoredProvidersHint": "คำแนะนำเกี่ยวกับผู้ให้บริการที่ตรวจสอบ",
+ "connectionSuccessful": "เชื่อมต่อสำเร็จ",
+ "latencyP50": "เวลาแฝง P50",
+ "logsDeleted": "ลบล็อกแล้ว",
+ "chatTester": "เครื่องมือทดสอบแชต",
+ "safeSearchOff": "ปิดการค้นหาปลอดภัย",
+ "nameHint": "คำแนะนำเกี่ยวกับชื่อ",
+ "debugToggle": "สวิตช์ดีบัก",
+ "embedding": "การฝังเวกเตอร์",
+ "issuesLabel": "ป้ายกำกับปัญหา",
+ "optionAny": "ตัวเลือกใดก็ได้",
+ "maxNestingDepth": "ความลึกสูงสุดของการซ้อน",
+ "rerank": "จัดอันดับใหม่",
+ "checking": "กำลังตรวจสอบ",
+ "getStarted": "เริ่มต้นใช้งาน",
+ "restoreSuccess": "กู้คืนสำเร็จ",
+ "issuesDetected": "ตรวจพบปัญหา",
+ "signatureCache": "แคชลายเซ็น",
+ "modelLockouts": "การระงับโมเดล",
+ "usingCloudProxy": "กำลังใช้พร็อกซีคลาวด์",
+ "loadingHealth": "กำลังโหลดสถานะระบบ",
+ "providerOverrides": "การตั้งค่าแทนที่ของผู้ให้บริการ",
+ "audioTranscriptionDesc": "คำอธิบายการถอดเสียงจากไฟล์เสียง",
+ "learnedFromHeaders": "เรียนรู้จากส่วนหัว",
+ "totalRequests": "คำขอทั้งหมด",
+ "cloudUnstableNote": "หมายเหตุเกี่ยวกับความไม่เสถียรของคลาวด์",
"gamificationAdmin": "ผู้ดูแลระบบ Gamification",
"monitorAnomaliesAndHealth": "ตรวจสอบความผิดปกติและสุขภาพของระบบ",
"flaggedAnomalies": "ความผิดปกติที่ถูกตั้งค่าสถานะ",
@@ -704,7 +704,7 @@
"apiKey": "คีย์ API",
"xpLastHour": "ประสบการณ์ (1ชม.)",
"zScore": "Z-คะแนน",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "น่าสงสัย",
"tokensCommunityServers": "เซิร์ฟเวอร์ชุมชน",
"tokensServerNamePlaceholder": "ชื่อเซิร์ฟเวอร์",
"tokensApiKeyPlaceholder": "คีย์เอพีไอ",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "กำลังโหลดเพิ่มเติม...",
"recommended": "แนะนำ",
"understand": "ฉันเข้าใจแล้ว",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "การประมวลผลแบบกลุ่ม",
+ "batchConceptSubtitle": "ประมวลผลคำขอหลายพันรายการแบบอะซิงโครนัสด้วยค่าใช้จ่ายประมาณ 50% (ภายในกรอบเวลา 24 ชม.) เหมาะสำหรับการประเมินผล การจำแนกประเภท และการฝังเวกเตอร์",
+ "batchConceptHowItWorks": "วิธีการทำงาน",
+ "batchConceptBenefit50pct": "ส่วนลด 50% สำหรับโทเค็นอินพุตและเอาต์พุต",
+ "batchConceptAsync24h": "ทำงานแบบอะซิงโครนัส โดยดำเนินการเสร็จสิ้นภายใน 24 ชม.",
+ "batchConceptUseCases": "เหมาะที่สุดสำหรับการจำแนกประเภทจำนวนมาก การประเมินผล และการฝังเวกเตอร์",
+ "batchHeaderSubtitle": "เรียกใช้คำขอจำนวนมากเป็นงานเดียว",
+ "batchStep1": "1 · อัปโหลด JSONL",
+ "batchStep1Desc": "เพิ่มคำขอ",
+ "batchStep2": "2 · สร้างแบตช์",
+ "batchStep2Desc": "เรียกใช้งาน",
+ "batchStep3": "3 · รับผลลัพธ์",
+ "batchStep3Desc": "ดาวน์โหลดผลลัพธ์",
+ "filesConceptTitle": "ไฟล์แบตช์",
+ "filesConceptSubtitle": "ไฟล์ JSONL ที่แบตช์ใช้: คำขออินพุต ผลลัพธ์ และข้อผิดพลาด",
+ "filesConceptInput": "อินพุต — JSONL ของคุณ โดยมีหนึ่งคำขอต่อบรรทัด",
+ "filesConceptOutput": "เอาต์พุต — ผลลัพธ์จากคำขอที่เสร็จสมบูรณ์",
+ "filesConceptError": "ข้อผิดพลาด — คำขอที่ล้มเหลว",
+ "filesConceptRetention": "ระยะเวลาเก็บรักษา: ค่าเริ่มต้น 30 วัน (29 วันสำหรับ Anthropic)",
+ "wizardTitle": "แบตช์ใหม่",
+ "wizardClose": "ปิด",
+ "wizardNext": "ถัดไป",
+ "wizardBack": "ย้อนกลับ",
+ "wizardCancel": "ยกเลิก",
+ "wizardCreate": "สร้างแบตช์",
+ "wizardCreating": "กำลังสร้าง…",
+ "wizardStep1Destination": "ปลายทาง",
+ "wizardStep2Input": "อินพุต",
+ "wizardStep3Validate": "ตรวจสอบความถูกต้อง",
+ "wizardStep4Cost": "ค่าใช้จ่ายและสร้าง",
+ "wizardProviderLabel": "ผู้ให้บริการ",
+ "wizardEndpointLabel": "เอนด์พอยต์",
+ "wizardModelLabel": "โมเดล",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (เราจะแปลงให้)",
+ "wizardDropOrPick": "วางไฟล์หรือคลิกเพื่อเลือก",
+ "wizardCsvMappingTitle": "จับคู่คอลัมน์ CSV → ฟิลด์คำขอ",
+ "wizardCsvMappingAddField": "เพิ่มฟิลด์",
"wizardCsvNoColumns": "ตรวจไม่พบคอลัมน์ในส่วนหัว CSV.",
"wizardCsvIgnoreColumn": "— ละเว้น —",
"wizardCsvCustomIdMapped": "แมป custom_id แล้ว",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "แยกวิเคราะห์แล้ว {count} แถว",
"wizardCsvRowsSkipped": "ข้ามแล้ว {count} แถว",
"wizardCsvRowError": "แถว {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "ทุกบรรทัดถูกต้อง",
"wizardValidating": "กำลังตรวจสอบ…",
"wizardValidationParseFailed": "การตรวจสอบล้มเหลว — ไม่สามารถแยกวิเคราะห์เนื้อหาได้",
"wizardValidationSummary": "{lines} บรรทัด · {ids} custom_ids ที่ไม่ซ้ำกัน",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "ตรวจพบ custom_ids ที่ซ้ำกัน:",
"wizardValidationFirstErrors": "ข้อผิดพลาด ({count} รายการแรก):",
"wizardValidationLine": "บรรทัด {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "ข้อผิดพลาดในการตรวจสอบ",
+ "wizardValidationPreview": "ตัวอย่าง (5 คำขอแรก)",
+ "wizardValidationSamplingNote": "ไฟล์มีขนาดใหญ่ — ตรวจสอบความถูกต้องด้วยการสุ่มตัวอย่าง (1,000 บรรทัดแรก + 100 บรรทัดสุดท้าย) การตรวจสอบแบบเต็มจะทำงานบนเซิร์ฟเวอร์",
+ "wizardCostSync": "ค่าใช้จ่ายแบบซิงค์",
+ "wizardCostBatch": "ค่าใช้จ่ายแบบแบตช์ (-50%)",
+ "wizardCostSavings": "ประหยัด",
+ "wizardCostEstimatedNotice": "ค่าใช้จ่ายโดยประมาณ — ยอดเรียกเก็บเงินจริงอาจแตกต่างกัน",
+ "wizardErrorUpload": "อัปโหลดไฟล์ไม่สำเร็จ โปรดลองอีกครั้ง",
+ "wizardErrorCreate": "สร้างแบตช์ไม่สำเร็จ โปรดลองอีกครั้ง",
+ "wizardEmptyProviders": "เชื่อมต่อผู้ให้บริการที่รองรับแบตช์ (OpenAI, Anthropic หรือ Gemini) เพื่อสร้างแบตช์",
+ "uploadModalTitle": "อัปโหลดไฟล์แบตช์",
+ "uploadModalDropOrPick": "วางไฟล์ .jsonl หรือคลิกเพื่อเลือกไฟล์",
+ "uploadModalUpload": "อัปโหลด",
+ "uploadModalCancel": "ยกเลิก",
+ "uploadModalError": "อัปโหลดไม่สำเร็จ โปรดลองอีกครั้ง",
+ "uploadModalSuccess": "อัปโหลดแล้ว",
+ "uploadModalSizeLimit": "สูงสุด 512 MB",
+ "batchListNewButton": "แบตช์ใหม่",
+ "batchListAutoRefresh": "รีเฟรชอัตโนมัติทุก 30 วินาที",
+ "batchListCostColumn": "ค่าใช้จ่าย",
+ "batchActionCancel": "ยกเลิก",
+ "batchActionDownloadOutput": "ดาวน์โหลดผลลัพธ์",
+ "batchActionDownloadErrors": "ดาวน์โหลดข้อผิดพลาด",
+ "batchActionRetry": "ลองรายการที่ล้มเหลวอีกครั้ง",
+ "batchActionRetryConfirm": "ลองคำขอที่ล้มเหลว {n} รายการอีกครั้งหรือไม่ ค่าใช้จ่ายสุดท้ายขึ้นอยู่กับจำนวนโทเค็นที่ใช้จริง",
+ "expirationBadgeCritical": "วิกฤต",
+ "expirationBadgeWarning": "เร็ว ๆ นี้",
+ "expirationBadgeNormal": "รอดำเนินการ",
+ "expirationBadgeExpired": "หมดอายุแล้ว",
+ "filesListUploadButton": "อัปโหลด",
+ "filesListUsedByColumn": "ใช้โดย",
+ "filesListUsedByNone": "ไม่มี",
+ "filesListUsedByRoleInput": "อินพุต",
+ "filesListUsedByRoleOutput": "เอาต์พุต",
+ "filesListUsedByRoleError": "ข้อผิดพลาด",
+ "filesListSizeColumn": "ขนาด",
+ "batchListProgressPartial": "(บางส่วน)",
+ "batchListProviderColumn": "ผู้ให้บริการ",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
- "batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListProviderOther": "อื่น ๆ",
+ "batchListTitle": "แบตช์",
+ "batchListCount": "{count} แบตช์",
+ "batchListRemovingCompleted": "กำลังนำออก…",
+ "batchListRemoveCompleted": "นำออกเสร็จแล้ว",
+ "batchListTableStatus": "สถานะ",
+ "batchListTableId": "รหัส",
+ "batchListTableEndpoint": "ปลายทาง",
+ "batchListTableModel": "โมเดล",
+ "batchListTableProgress": "ความคืบหน้า",
+ "batchListTableCreated": "สร้างเมื่อ",
+ "batchListTableExpires": "หมดอายุ",
+ "batchListLoading": "กำลังโหลด…",
+ "batchListEmpty": "ไม่พบแบตช์",
+ "batchListValidating": "กำลังตรวจสอบความถูกต้อง…",
+ "batchStatusAll": "ทุกสถานะ",
+ "batchStatusInProgress": "กำลังดำเนินการ",
+ "batchStatusValidating": "กำลังตรวจสอบความถูกต้อง",
+ "batchStatusFinalizing": "กำลังดำเนินการขั้นสุดท้าย",
+ "batchStatusCompleted": "เสร็จสมบูรณ์",
+ "batchStatusFailed": "ล้มเหลว",
+ "batchStatusCancelled": "ยกเลิกแล้ว",
+ "batchStatusCancelling": "กำลังยกเลิก",
+ "batchStatusExpired": "หมดอายุแล้ว",
+ "batchStatusCompletedWithFailures": "เสร็จสมบูรณ์โดยมีบางรายการล้มเหลว",
+ "batchStatusInProgressWithFailures": "กำลังดำเนินการ (มีบางรายการล้มเหลว)",
+ "batchStatusFinalizingWithFailures": "กำลังดำเนินการขั้นสุดท้าย (มีบางรายการล้มเหลว)",
+ "batchStatusCancelledWithFailures": "ยกเลิกแล้วโดยมีบางรายการล้มเหลว",
+ "batchStatusExpiredWithFailures": "หมดอายุแล้ว (ดำเนินการบางส่วน)",
+ "wizardCostEstimating": "กำลังประเมินค่าใช้จ่าย…",
+ "wizardCostRequests": "คำขอ",
+ "wizardCostInputTok": "โทเค็นอินพุต",
+ "wizardCostOutputTok": "โทเค็นเอาต์พุต",
+ "wizardCostWindow": "กรอบเวลา",
+ "wizardDestinationSelectProvider": "เลือกผู้ให้บริการ…",
+ "wizardDestinationSelectModel": "เลือกโมเดล…",
+ "wizardDestinationConnectProvider": "เชื่อมต่อผู้ให้บริการ",
+ "batchListBatchCreated": "สร้างแบตช์ {id} แล้ว — กำลังรีเฟรชรายการ…",
+ "batchListBatchCreatedDismiss": "ปิด",
+ "batchListRefreshing": "กำลังรีเฟรช…",
+ "batchListRefresh": "รีเฟรช",
+ "uploadFileModalRemove": "นำออก",
+ "uploadFileModalUploading": "กำลังอัปโหลด…",
+ "wizardInputReading": "กำลังอ่านไฟล์…",
+ "wizardInputReady": "พร้อม",
+ "wizardInputLargeFileLabel": "ไฟล์ขนาดใหญ่ — กำลังตรวจสอบความถูกต้องด้วยการสุ่มตัวอย่าง",
+ "wizardInputCsvJsonlReady": "สร้าง JSONL แล้ว — พร้อมตรวจสอบความถูกต้อง",
+ "wizardInputLargeFileWarning": "ตรวจพบไฟล์ขนาดใหญ่ — การตรวจสอบความถูกต้องจะใช้การสุ่มตัวอย่าง (5 MB แรก + 100 KB สุดท้าย) การตรวจสอบแบบเต็มจะดำเนินการฝั่งเซิร์ฟเวอร์",
+ "wizardCostWindow24h": "กรอบเวลาดำเนินการให้เสร็จภายใน 24 ชม.",
+ "wizardValidationFieldsOk": "ฟิลด์ที่จำเป็นถูกต้อง",
+ "filesListDelete": "ลบ",
+ "filesListDownload": "ดาวน์โหลด",
+ "batchDetailActionCancel": "ยกเลิกชุดงาน",
+ "batchDetailActionRetry": "ลองส่งคำขอที่ล้มเหลวอีกครั้ง",
+ "batchDetailCancelling": "กำลังยกเลิก…",
+ "batchDetailRetrying": "กำลังเตรียมลองใหม่…",
+ "batchDetailCancelConfirm": "ยกเลิกชุดงานนี้หรือไม่? คำขอที่กำลังดำเนินการจะหยุดลง",
+ "batchActionCancelError": "ยกเลิกชุดงานไม่สำเร็จ โปรดลองอีกครั้ง",
+ "batchActionRetryError": "ลองส่งคำขอที่ล้มเหลวอีกครั้งไม่สำเร็จ โปรดลองอีกครั้ง",
+ "batchConceptRetentionNote": "ไฟล์ผลลัพธ์และไฟล์ข้อผิดพลาดจะถูกเก็บไว้เป็นเวลา 30 วัน (Anthropic: 29 วัน)",
"batchFilesSizeColumn": "ขนาด",
"toggleNoAuthProvider": "สลับผู้ให้บริการที่ไม่มีการรับรองตัวตน",
"loadingModels": "กำลังโหลดโมเดล…",
@@ -988,10 +988,14 @@
"disabled": "ปิดใช้งาน",
"featureFlagOmnirouteEmergencyFallbackDescription": "กำหนดเส้นทางคำขอที่งบประมาณหมดไปยังผู้ให้บริการ/โมเดลสำรองฟรีในกรณีฉุกเฉิน",
"featureFlagArenaEloSyncEnabledDescription": "เปิดใช้งานการซิงค์ ELO ของลีดเดอร์บอร์ด Arena AI เป็นระยะสำหรับการจัดอันดับความฉลาดของโมเดล",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "สร้างและแทรกข้อมูลสรุปการสนทนาเมื่อการกำหนดเส้นทางแบบคอมโบสลับโมเดล ปิดใช้งานเพื่อให้การสลับโมเดลทำงานแยกจากกัน และป้องกันคำขอส่งต่องานเบื้องหลังสำหรับคอมโบทั้งหมดทั้งที่มีอยู่และที่จะสร้างในอนาคต",
"featureFlagExposeCcDiscoveryAliasesDescription": "โฆษณา claude/<provider>/<model> mirror ids บน /v1/models เพื่อให้รายการการค้นหาโมเดลของ Claude Code แสดงโมเดลที่ไม่ใช่ Claude เตือน: จะทำให้มีรายการในแคตตาล็อกซ้ำสำหรับลูกค้าทุกคนเมื่อเปิดใช้งานทั่วโลก.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "สวิตช์หลักสำหรับนามแฝงเกตเวย์ no-think/<provider>/<model> เมื่อเปิด (ค่าเริ่มต้น): /v1/models จะแสดงตัวแปรแบบไม่ใช้การคิดสำหรับ Claude ทุกรุ่นที่รองรับการคิดและเข้าเกณฑ์ และรหัส no-think/ ที่ส่งมากับคำขอจะถูกแปลงกลับเป็นโมเดลจริงโดยระงับการให้เหตุผล เมื่อปิด: จะไม่มีการแสดงตัวแปรใด ๆ และรหัส no-think/ จะถูกปฏิบัติเช่นเดียวกับรหัสโมเดลอื่นที่ไม่รู้จัก ทั้งนี้ การเลือกเข้าร่วมหรือไม่เข้าร่วมด้วย ModelSpec.noThinkingAlias สำหรับแต่ละโมเดลยังคงมีผลขณะเปิดใช้งานตัวเลือกนี้",
"featureFlagChatVirtualLanesEnabledDescription": "เปิดใช้เลนรับเข้าเสมือนแบบปรับตัวต่อเทนแนนต์สำหรับการส่งไปยังผู้ให้บริการ (#9654): การพุ่งสูงของเทนแนนต์หนึ่งจะไม่ทำให้อีกเทนแนนต์ได้รับ 503 อีกต่อไป ตัวแปรสภาพแวดล้อม OMNIROUTE_CHAT_VIRTUAL_LANES มีผลเหนือการตั้งค่าแดชบอร์ดนี้ การเปลี่ยนแปลงมีผลเมื่อรีสตาร์ทเซิร์ฟเวอร์",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "หน้าผู้ให้บริการในแดชบอร์ด: แสดงป้าย ฟรี เฉพาะสัญญาณที่ผู้ให้บริการรองรับเท่านั้น — เลิกใช้การอนุมานจากชื่อที่แสดง ฟิลด์ฟรีที่ไม่ใช่ค่าบูลีน และคำต่อท้าย :free สำหรับผู้ให้บริการที่ลงทะเบียนแต่ไม่มีระดับใช้งานฟรีที่ระบุไว้ในเอกสาร เมื่อปิด จะยังคงใช้กฎการแสดงป้ายแบบเดิม",
+ "featureFlagProxySkipRecentlyFailedDescription": "พูลพร็อกซีและการหมุนเวียนต่อบัญชีของ opencode จะหยุดนำพร็อกซีที่เพิ่งล้มเหลว (ปฏิเสธการตรวจสอบ TCP หรือได้รับ 429 ผ่านพร็อกซีนั้น) กลับมาให้บริการซ้ำเป็นระยะเวลาต่อโปรเซส ซึ่งจะเพิ่มเป็นสองเท่าทุกครั้งที่เกิดซ้ำจนถึงขีดจำกัด โดยจะไม่มีการบันทึกสถานะพร็อกซี และหากตัวเลือกทั้งหมดถูกพักไว้ การเลือกจะไม่เปลี่ยนแปลง ปิดไว้โดยค่าเริ่มต้น: ลำดับการเลือกจะเป็นการหมุนเวียนแบบปกติทุกประการ",
+ "featureFlagProxyPoolEgressObservationDescription": "แสดงใต้พูลพร็อกซีในแดชบอร์ดว่ามี IP ขาออกที่ตรวจพบกี่รายการซึ่งให้บริการสมาชิกของพูลในช่วง 24 h ที่ผ่านมา มีการเชื่อมต่อผ่าน IP เหล่านั้นกี่ครั้ง และจำนวนสูงสุดที่พบหลัง IP เดียว ข้อมูลนี้เป็นแบบอ่านอย่างเดียว คำนวณจากบันทึกพร็อกซี และไม่เคยนำไปใช้กำหนดเส้นทาง ปิดไว้โดยค่าเริ่มต้น: ตัวแก้ไขพูลจะไม่เปลี่ยนแปลง และเส้นทางการสังเกตการณ์จะตอบกลับเป็น null",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "ในการกวาดตรวจสุขภาพพร็อกซี ให้การตรวจสอบที่ถูกเป้าหมายปฏิเสธ (401/403/429: พร็อกซีส่งต่อสำเร็จ แต่ปลายทางปฏิเสธ IP ขาออกนี้) รีเซ็ตจำนวนความล้มเหลวต่อเนื่องของพร็อกซีได้เช่นเดียวกับการตรวจสอบที่ได้รับการให้บริการ ปิดไว้โดยค่าเริ่มต้น: การปฏิเสธจะยังคงเป็นกลางและคงจำนวนความล้มเหลวต่อเนื่องไว้ 5xx ยังคงถือว่าไม่สามารถสรุปผลได้ในทั้งสองกรณี และการปฏิเสธจะไม่ลบ ปิดใช้งาน หรือเปิดใช้งานพร็อกซีอีกครั้ง",
"sidebar": {
"home": "บ้าน",
"dashboard": "แดชบอร์ด",
@@ -1007,12 +1011,12 @@
"media": "สื่อ",
"settings": "การตั้งค่า",
"translator": "นักแปล",
- "playground": "Playground",
- "searchTools": "Search Tools",
+ "playground": "พื้นที่ทดลอง",
+ "searchTools": "ค้นหาเครื่องมือ",
"agents": "เอเจนต์",
"cloudAgents": "ตัวแทนคลาวด์",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "หน่วยความจำ",
+ "skills": "ทักษะ",
"omniSkills": "OmniSkills",
"agentSkills": "ทักษะตัวแทน",
"chaosConfig": "โหมด Chaos",
@@ -1059,56 +1063,56 @@
"themeBlue": "สีฟ้า",
"themeRed": "สีแดง",
"themeGreen": "สีเขียว",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "themeViolet": "ม่วง",
+ "themeOrange": "ส้ม",
+ "themeCyan": "ฟ้าอมเขียว",
"cliToolsShort": "เครื่องมือ",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "งานแบบชุด",
+ "themeSystem": "ระบบธีม",
+ "whitelabelingDesc": "คำอธิบายการปรับแบรนด์",
+ "switchThemes": "สลับธีม",
+ "themeAccentDesc": "คำอธิบายสีเน้นของธีม",
+ "uploadFavicon": "อัปโหลด Favicon",
+ "themeDark": "ธีมมืด",
+ "customLogoDesc": "คำอธิบายโลโก้แบบกำหนดเอง",
+ "sidebarVisibilityToggle": "ปุ่มสลับการแสดงแถบด้านข้าง",
+ "themeAccent": "สีเน้นของธีม",
+ "resetFavicon": "รีเซ็ต Favicon",
+ "whitelabeling": "การปรับแบรนด์",
+ "darkMode": "โหมดมืด",
+ "uploadLogo": "อัปโหลดโลโก้",
+ "themeLight": "ธีมสว่าง",
+ "appName": "ชื่อแอป",
+ "appNameDesc": "คำอธิบายชื่อแอป",
+ "resetLogo": "รีเซ็ตโลโก้",
+ "customFavicon": "Favicon แบบกำหนดเอง",
+ "hideHealthLogs": "ซ่อนบันทึกสถานะระบบ",
+ "customLogo": "โลโก้แบบกำหนดเอง",
+ "appearance": "รูปลักษณ์",
+ "themeSelectionAria": "ป้ายกำกับ ARIA สำหรับการเลือกธีม",
+ "themeCreate": "สร้างธีม",
+ "customFaviconDesc": "คำอธิบายไอคอนเว็บไซต์แบบกำหนดเอง",
+ "logoPreview": "ตัวอย่างโลโก้",
+ "themeCustom": "ธีมแบบกำหนดเอง",
+ "hideHealthLogsDesc": "คำอธิบายการซ่อนบันทึกสถานะระบบ",
+ "faviconPreview": "ตัวอย่างไอคอนเว็บไซต์",
+ "changelog": "บันทึกการเปลี่ยนแปลง",
+ "contextSection": "บริบทและแคช",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "ชุดเอนจิน",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
- "contextUltra": "Ultra",
+ "contextUltra": "สูงสุด",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "การตั้งค่าการบีบอัด",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "สตูดิโอชุดผสม",
"combosLiveSubtitle": "Cascade การกำหนดเส้นทางแบบสด",
"compressionStudio": "Compression Studio",
"compressionExclusions": "การยกเว้น",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Cascade ของเอนจินแบบสด",
"compressionExclusionsSubtitle": "การข้ามแบบจำลอง/จุดสิ้นสุด",
"chaosConfigSubtitle": "การประมวลผลแบบขนานหลายโมเดล",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "การกำหนดเส้นทาง",
+ "protocolsSection": "โปรโตคอล",
+ "agentsAiSection": "เอเจนต์และ AI",
+ "cacheContextSection": "แคชและบริบท",
+ "analyticsSection": "การวิเคราะห์",
+ "costsSection": "ค่าใช้จ่าย",
+ "monitoringSection": "การเฝ้าติดตาม",
+ "auditSecuritySection": "การตรวจสอบและความปลอดภัย",
+ "devtoolsSection": "เครื่องมือสำหรับนักพัฒนา",
+ "configurationSection": "การกำหนดค่า",
+ "aiFeaturesSection": "ฟีเจอร์ AI",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "ปลั๊กอิน",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "ปลายทาง API",
+ "batchFiles": "ไฟล์",
+ "analyticsEvals": "การประเมินผล",
+ "analyticsSearch": "ค้นหา",
+ "analyticsUtilization": "การใช้งาน",
+ "analyticsComboHealth": "สถานะของคอมโบ",
+ "analyticsCompression": "การบีบอัด",
+ "costsBudget": "งบประมาณ",
"costsFreeTiers": "งบประมาณระดับฟรี",
"costsFreeTiersSubtitle": "โควตาโทเค็นฟรีรายเดือน",
"freeProviderRankings": "การจัดอันดับผู้ให้บริการฟรี",
"freeProviderRankingsSubtitle": "ผู้ให้บริการฟรีที่ดีที่สุดจัดอันดับตามคะแนน ELO ของโมเดล",
"radar": "แคตตาล็อกเรดาร์",
"radarSubtitle": "แคตตาล็อกโมเดลฟรีที่เสริมด้วยข้อมูลจากชุมชน",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "การแชร์โควตา",
+ "costsPricing": "การกำหนดราคา",
+ "logsProxy": "บันทึกของพร็อกซี",
+ "logsConsole": "คอนโซล",
+ "logsActivity": "กิจกรรม",
+ "auditMcp": "การตรวจสอบ MCP",
"auditA2a": "การตรวจสอบ A2A",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "รูปลักษณ์",
+ "settingsAi": "การตั้งค่า AI",
+ "settingsSecurity": "ความปลอดภัย",
"settingsAccessTokens": "โทเค็นการเข้าถึง",
"settingsFeatureFlags": "คุณลักษณะธง",
"settingsCache": "แคช",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "การให้สิทธิ์",
+ "settingsRouting": "การกำหนดเส้นทาง",
+ "settingsResilience": "ความยืดหยุ่น",
"modelLockout": "การล็อกโมเดล",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "ขั้นสูง",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "โควตาของผู้ให้บริการ",
+ "providerQuota": "โควตาของผู้ให้บริการ",
+ "runtime": "รันไทม์",
+ "consoleLogs": "บันทึกของคอนโซล",
+ "logsTimeline": "ไทม์ไลน์",
"logsTimelineSubtitle": "ไทม์ไลน์คำขอภาพ",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "บทสนทนา",
+ "conversationsSubtitle": "บทสนทนาแบบเอเจนต์หลายรอบ",
+ "globalRouting": "การกำหนดเส้นทางส่วนกลาง",
+ "mitmProxy": "พร็อกซี MITM",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "agenticFeaturesSection": "ฟีเจอร์แบบเอเจนต์",
+ "otherFeaturesSection": "ฟีเจอร์อื่น ๆ",
+ "compressionContextGroup": "บริบทการบีบอัด",
+ "gamificationGroup": "การใช้กลไกเกม",
+ "toolsGroup": "เครื่องมือ",
+ "integrationsGroup": "การผสานการทำงาน",
+ "proxyGroup": "พร็อกซี",
+ "costsParametersGroup": "พารามิเตอร์ค่าใช้จ่าย",
+ "auditGroup": "การตรวจสอบ",
+ "batchGroup": "แบตช์",
+ "homeSubtitle": "ภาพรวมแดชบอร์ด",
+ "providersSubtitle": "จัดการผู้ให้บริการ AI",
+ "quotaTrackerSubtitle": "ติดตามขีดจำกัดการใช้งาน",
+ "providerQuotaSubtitle": "ติดตามขีดจำกัดการใช้งานของผู้ให้บริการ",
+ "runtimeSubtitle": "ความยืดหยุ่นและเซสชันแบบเรียลไทม์",
+ "contextCombosSubtitle": "รวมเอนจินการบีบอัด",
+ "cliToolsSubtitle": "กำหนดค่ารันไทม์ CLI",
+ "agentsSubtitle": "จัดการเอเจนต์ภายในเครื่อง",
+ "cloudAgentsSubtitle": "จัดการเอเจนต์บนคลาวด์",
+ "apiEndpointsSubtitle": "เปิดใช้งานเอนด์พอยต์แบบกำหนดเอง",
+ "proxySubtitle": "การตั้งค่าพร็อกซี HTTP",
+ "mitmProxySubtitle": "การสกัดกั้นแบบ MITM",
+ "oneProxySubtitle": "เกตเวย์พร็อกซีสาธารณะ",
+ "leaderboard": "กระดานผู้นำ",
+ "profile": "โปรไฟล์",
+ "tokens": "โทเค็น",
+ "gamificationAdmin": "ผู้ดูแลระบบเกมมิฟิเคชัน",
+ "leaderboardSubtitle": "อันดับและความสำเร็จ",
+ "profileSubtitle": "บัญชีและการตั้งค่า",
+ "tokensSubtitle": "การใช้โทเค็นและงบประมาณ",
+ "gamificationAdminSubtitle": "การตรวจสอบความผิดปกติและการป้องกันการโกง",
+ "usageSubtitle": "สถิติทราฟฟิกและการใช้งาน",
+ "analyticsComboHealthSubtitle": "ความน่าเชื่อถือของเป้าหมายแบบคอมโบ",
+ "analyticsUtilizationSubtitle": "การใช้งานผู้ให้บริการ",
+ "costsSubtitle": "รายละเอียดค่าใช้จ่าย",
+ "cacheSubtitle": "อัตราการใช้แคชสำเร็จ",
+ "analyticsCompressionSubtitle": "สถิติการประหยัดโทเค็น",
+ "analyticsSearchSubtitle": "การวิเคราะห์เครื่องมือค้นหา",
+ "analyticsEvalsSubtitle": "ผลลัพธ์ชุดการประเมิน",
"providerStats": "สถิติผู้ให้บริการ",
"providerStatsSubtitle": "เมตริกเวลาแฝงและประสิทธิภาพ",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "บันทึกแอปพลิเคชัน",
+ "logsProxySubtitle": "บันทึกทราฟฟิกพร็อกซี",
+ "consoleLogsSubtitle": "เอาต์พุตคอนโซล",
+ "logsActivitySubtitle": "บันทึกกิจกรรมของผู้ใช้",
+ "healthSubtitle": "การตรวจสอบสถานะระบบ",
+ "costsPricingSubtitle": "กฎการกำหนดราคาต่อโมเดล",
+ "costsBudgetSubtitle": "ขีดจำกัดงบประมาณ",
+ "costsQuotaShareSubtitle": "แชร์โควตาของผู้ให้บริการระหว่างคีย์",
+ "auditLogSubtitle": "การตรวจสอบการให้สิทธิ์",
+ "auditMcpSubtitle": "การตรวจสอบเซิร์ฟเวอร์ MCP",
+ "auditA2aSubtitle": "การตรวจสอบโปรโตคอล A2A",
+ "translatorSubtitle": "การแปลงรูปแบบ",
+ "playgroundSubtitle": "ทดสอบพรอมต์แบบสด",
+ "searchToolsSubtitle": "รีจิสทรีเครื่องมือค้นหา",
+ "memorySubtitle": "หน่วยความจำถาวรของเอเจนต์",
+ "omniSkillsSubtitle": "รีจิสทรีสกิลของ Sandbox",
+ "agentSkillsSubtitle": "รีจิสทรีสกิลของ A2A",
+ "mcpSubtitle": "การควบคุมเซิร์ฟเวอร์ MCP",
+ "a2aSubtitle": "เซิร์ฟเวอร์โปรโตคอล A2A",
"pluginsSubtitle": "มาร์เก็ตเพลสปลั๊กอินและการติดตั้ง",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "ไฟล์สื่อที่แคชไว้",
+ "batchFilesSubtitle": "ไฟล์อินพุต/เอาต์พุตแบบแบตช์",
+ "settingsSubtitle": "การตั้งค่าทั้งหมด",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "ธีมและเค้าโครง",
+ "settingsAiSubtitle": "ค่าเริ่มต้นของพฤติกรรม AI",
+ "globalRoutingSubtitle": "กฎการกำหนดเส้นทางส่วนกลาง",
+ "settingsResilienceSubtitle": "การลองใหม่และเซอร์กิตเบรกเกอร์",
+ "settingsAdvancedSubtitle": "ตัวเลือกสำหรับผู้ใช้ขั้นสูง",
+ "settingsSecuritySubtitle": "การยืนยันตัวตนและการเข้ารหัส",
"settingsAccessTokensSubtitle": "โทเค็น CLI แบบกำหนดขอบเขตสำหรับโหมดระยะไกล",
"settingsFeatureFlagsSubtitle": "สลับความสามารถของระบบ",
"settingsCacheSubtitle": "แคตตาล็อกโมเดลและการแคชการตอบสนอง",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "แถบด้านข้าง",
+ "settingsSidebarSubtitle": "ปรับแต่งเค้าโครงแถบด้านข้าง",
"settingsAuthzSubtitle": "คลังเส้นทางและนโยบายบายพาส",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "เอกสารประกอบ",
+ "issuesSubtitle": "รายงานข้อบกพร่อง",
+ "changelogSubtitle": "บันทึกประจำรุ่น",
"costsQuotaPlans": "แผนและโควตา",
"costsQuotaPlansSubtitle": "กำหนดค่าแผนตามผู้ให้บริการ",
"activity": "กิจกรรม",
@@ -1274,8 +1278,8 @@
"agentBridge": "Agent Bridge",
"agentBridgeSubtitle": "ดักจับทราฟฟิกของ IDE agent",
"trafficInspector": "ตัวตรวจสอบทราฟฟิก",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "ตรวจสอบทราฟฟิกคำขอและการตอบกลับจากแอปของคุณ",
+ "trafficInspectorPurpose": "ดูอย่างละเอียดว่าแอปพลิเคชันของคุณส่งอะไรไปยังและได้รับอะไรจากผู้ให้บริการ AI ใช้งานได้กับไคลเอนต์ที่เข้ากันได้กับ OpenAI ทุกรายการ",
"cliCode": "โค้ด CLI",
"cliCodeSubtitle": "เครื่องมือโค้ดที่ชี้ไปยัง OmniRoute",
"cliAgents": "เอเจนต์ CLI",
@@ -1341,7 +1345,7 @@
"refresh": "รีเฟรช",
"loading": "กำลังโหลดเว็บฮุค...",
"never": "ไม่เคย",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {ไม่มีความล้มเหลว} one {ล้มเหลว # ครั้ง} other {ล้มเหลว # ครั้ง}}",
"testWebhook": "ส่งแบบทดสอบ",
"testSuccess": "ส่งเว็บฮุคทดสอบเรียบร้อยแล้ว",
"testFailed": "การทดสอบเว็บฮุคล้มเหลว",
@@ -1425,13 +1429,13 @@
"secretKeyHint": "ใช้สำหรับลงลายมือชื่อในส่วนหัวของเพย์โหลดเพื่อการตรวจสอบสิทธิ์"
},
"discord": {
- "webhookUrl": "Discord Webhook URL",
+ "webhookUrl": "URL ของเว็บฮุก Discord",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "URL ของ Webhook ที่คัดลอกมาจากตั้งค่าการเชื่อมต่อช่องทาง Discord ของคุณ",
"tutorial": "วิธีสร้าง Discord webhook:"
},
"slack": {
- "webhookUrl": "Slack Webhook URL",
+ "webhookUrl": "URL ของเว็บฮุก Slack",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "URL ของ Webhook ที่คัดลอกมาจากตั้งค่าการเชื่อมต่อ Slack Incoming Webhooks ของคุณ",
"tutorial": "วิธีสร้าง Slack webhook:"
@@ -1560,12 +1564,12 @@
},
"themesPage": {
"title": "ธีมส์",
- "description": "Choose a preset theme or create your own with a single color",
+ "description": "เลือกธีมที่กำหนดไว้ล่วงหน้าหรือสร้างธีมของคุณเองด้วยสีเดียว",
"presetColors": "สียอดนิยม",
- "customTheme": "Custom theme",
- "customThemeDesc": "Click create theme and pick one color",
+ "customTheme": "ธีมที่กำหนดเอง",
+ "customThemeDesc": "คลิกสร้างธีมแล้วเลือกหนึ่งสี",
"createTheme": "สร้างธีม",
- "activePreset": "Active theme"
+ "activePreset": "ธีมที่ใช้งานอยู่"
},
"header": {
"logout": "ออกจากระบบ",
@@ -1587,63 +1591,63 @@
"cliToolsDescription": "กำหนดค่าเครื่องมือ CLI",
"home": "บ้าน",
"homeDescription": "ยินดีต้อนรับสู่ OmniRoute",
- "endpoint": "Endpoints",
- "endpointDescription": "Manage proxy endpoints, MCP, A2A, and API endpoints",
+ "endpoint": "เอนด์พอยต์",
+ "endpointDescription": "จัดการปลายทางพร็อกซี, MCP, A2A และปลายทาง API",
"mcp": "MCP",
- "mcpDescription": "Model Context Protocol server management and tools",
+ "mcpDescription": "การจัดการเซิร์ฟเวอร์และเครื่องมือของ Model Context Protocol",
"a2a": "A2A",
- "a2aDescription": "Agent-to-Agent protocol tasks and observability",
+ "a2aDescription": "งานและการสังเกตการณ์ของโปรโตคอล Agent-to-Agent",
"settings": "การตั้งค่า",
"settingsDescription": "จัดการการตั้งค่าของคุณ",
"openaiCompatible": "รองรับ OpenAI",
"anthropicCompatible": "เข้ากันได้กับมานุษยวิทยา",
- "media": "Media",
- "mediaDescription": "Generate images, videos, and music",
+ "media": "สื่อ",
+ "mediaDescription": "สร้างรูปภาพ วิดีโอ และเพลง",
"themes": "ธีมส์",
- "themesDescription": "Choose a color theme for the whole dashboard panel",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "themesDescription": "เลือกธีมสีสำหรับแผงแดชบอร์ดทั้งหมด",
+ "costsDescription": "ติดตามค่าใช้จ่าย วิเคราะห์แนวโน้ม และจัดการงบประมาณ AI ของคุณในทุกผู้ให้บริการ",
+ "cacheDescription": "ตรวจสอบประสิทธิภาพแคชพรอมต์ของผู้ให้บริการและการนำการตอบกลับเชิงความหมายในระบบกลับมาใช้ใหม่",
+ "limitsDescription": "กำหนดขีดจำกัดอัตราและโควตาต่อคีย์ API และผู้ให้บริการ",
+ "runtimeDescription": "การสังเกตการณ์รันไทม์แบบสด — เซอร์กิตเบรกเกอร์ ระยะพัก การล็อกโมเดล เซสชัน และการแจ้งเตือนโควตา",
+ "apiManagerDescription": "จัดการคีย์ API และการควบคุมการเข้าถึงสำหรับอินสแตนซ์ OmniRoute ของคุณ",
+ "batchDescription": "ประมวลผลคำขอปริมาณมากแบบอะซิงโครนัสด้วยการเรียก API เป็นชุด",
+ "contextCavemanDescription": "การบีบอัดข้อความตามกฎ ชุดภาษา การวิเคราะห์ และการควบคุมโหมดเอาต์พุต",
+ "contextRtkDescription": "การบีบอัดที่เข้าใจคำสั่งสำหรับเอาต์พุตของเครื่องมือ บันทึกเทอร์มินัล และผลลัพธ์การบิลด์",
+ "contextCombosDescription": "กำหนดวิธีผสานเอนจินสำหรับสถานการณ์การกำหนดเส้นทางต่าง ๆ",
+ "changelogDescription": "ติดตามฟีเจอร์ล่าสุดของแพลตฟอร์มและประกาศต่าง ๆ",
+ "agentsDescription": "จัดการและกำหนดค่าเครื่องมือเอเจนต์ AI: Codex, Devin, Jules และเอเจนต์แบบกำหนดเอง",
+ "cloudAgentsDescription": "ประสานงานเอเจนต์ AI บนคลาวด์ พร้อมการติดตามงานแบบสดและการอนุมัติแผน",
+ "memoryDescription": "หน่วยความจำการสนทนาแบบถาวร พร้อมการค้นหาเชิงความหมายและการทำดัชนีข้อความแบบเต็มด้วย FTS5",
+ "skillsDescription": "ติดตั้งและจัดการทักษะแซนด์บ็อกซ์สำหรับการดำเนินการพรอมต์และเครื่องมือโดยอัตโนมัติ",
+ "agentSkillsDescription": "แค็ตตาล็อกทักษะที่พร้อมใช้งานกับเอเจนต์ พร้อมคัดลอก URL ในคลิกเดียวสำหรับการผสานรวมไคลเอนต์ AI",
+ "translatorDescription": "แปลและทดสอบพรอมต์ข้ามรูปแบบ API: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "ทดสอบพรอมต์แบบโต้ตอบ พร้อมการตอบกลับสดจากผู้ให้บริการและการตรวจสอบรูปแบบ",
+ "searchToolsDescription": "การวิเคราะห์การค้นหา การแจกแจงตามผู้ให้บริการ อัตราการใช้แคชสำเร็จ และการติดตามต้นทุน",
+ "logsDescription": "บันทึกคำขอแบบเรียลไทม์ ร่องรอยข้อผิดพลาด และตัวตรวจสอบเหตุการณ์แบบสตรีม",
+ "auditDescription": "บันทึกการตรวจสอบเพื่อการปฏิบัติตามข้อกำหนดสำหรับการใช้งานคีย์ API การเรียกเครื่องมือ MCP และเหตุการณ์ด้านนโยบาย",
+ "webhooksDescription": "กำหนดค่าปลายทางเว็บฮุกเพื่อรับการแจ้งเตือนเหตุการณ์แบบเรียลไทม์",
+ "healthDescription": "ภาพรวมสถานะระบบ: ผู้ให้บริการ เซอร์กิตเบรกเกอร์ ขีดจำกัดอัตรา และฐานข้อมูล",
+ "proxyDescription": "กำหนดค่าพร็อกซีต้นทางสำหรับการเชื่อมต่อขาออกไปยังผู้ให้บริการ",
+ "apiEndpointsDescription": "จัดการการกำหนดค่าปลายทาง API แบบกำหนดเองและการเขียนทับการกำหนดเส้นทาง",
+ "batchFilesDescription": "เรียกดูและจัดการไฟล์เอาต์พุตและผลลัพธ์ของงานแบบแบตช์",
+ "analyticsEvalsDescription": "ผลการประเมินโมเดลและเกณฑ์มาตรฐานประสิทธิภาพ",
+ "analyticsSearchDescription": "การวิเคราะห์คำค้นหา อัตราการใช้แคชสำเร็จ และการติดตามต้นทุน",
+ "analyticsUtilizationDescription": "เมตริกการใช้งานผู้ให้บริการและการวางแผนความจุ",
+ "analyticsComboHealthDescription": "สถานะและประสิทธิภาพแบบเรียลไทม์ของการกำหนดค่าการกำหนดเส้นทางแบบผสม",
+ "analyticsCompressionDescription": "การวิเคราะห์การบีบอัดบริบทและจำนวนโทเค็นที่ประหยัดได้",
+ "costsBudgetDescription": "ขีดจำกัดงบประมาณและการแจ้งเตือนค่าใช้จ่ายต่อคีย์ API และผู้ให้บริการ",
+ "costsPricingDescription": "การกำหนดราคาที่กำหนดเองสำหรับการคำนวณต้นทุนโทเค็น",
+ "logsProxyDescription": "บันทึกคำขอพร็อกซีต้นทางและการตรวจสอบทราฟฟิก",
+ "logsConsoleDescription": "เอาต์พุตคอนโซลของแอปพลิเคชันและบันทึกการดีบัก",
+ "logsActivityDescription": "บันทึกการตรวจสอบการดำเนินการของผู้ใช้และเหตุการณ์ของระบบ",
+ "auditMcpDescription": "บันทึกการตรวจสอบการเรียกใช้เครื่องมือ MCP และระเบียนการปฏิบัติตามข้อกำหนด",
"auditA2a": "การตรวจสอบ A2A",
"auditA2aDescription": "เส้นทางการตรวจสอบการปฏิบัติงานของ A2A การเปลี่ยนสถานะ และบันทึกการเรียกใช้ทักษะ",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "ธีม การสร้างแบรนด์ และการปรับแต่งรูปลักษณ์",
+ "settingsAiDescription": "ลักษณะการทำงานของ AI งบประมาณการคิด การมองเห็น และการตั้งค่าหน่วยความจำ",
"settingsCacheDescription": "TTL สำหรับรายการแคชของแคตตาล็อกโมเดล",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "การตั้งค่าการยืนยันตัวตน การให้สิทธิ์ และการควบคุมการเข้าถึง",
"featureFlags": "คุณลักษณะธง",
"featureFlagsDescription": "ความสามารถของระบบควบคุมและคุณสมบัติการทดลอง",
"featureFlagsActive": "{count} ใช้งานอยู่",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "ไม่มีธงที่ตรงกับการค้นหาของคุณ",
"featureFlagsSaved": "อัปเดตธงแล้ว",
"featureFlagsError": "อัปเดตแฟล็กไม่สำเร็จ",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "กฎการกำหนดเส้นทาง นามแฝงโมเดล ค่าเริ่มต้นของคอมโบ และการตั้งค่าการลดระดับ",
+ "settingsResilienceDescription": "การกำหนดค่าเซอร์กิตเบรกเกอร์ การลองใหม่ และการใช้ตัวเลือกสำรอง",
+ "settingsAdvancedDescription": "กฎเพย์โหลดขั้นสูง ขีดจำกัดคำขอ และการตั้งค่า Proxy API",
+ "mitmProxyDescription": "กำหนดค่าพร็อกซี MITM สำหรับการตรวจสอบทราฟฟิกและการดีบัก",
+ "oneProxyDescription": "กำหนดค่า 1Proxy สำหรับการเชื่อมต่อพร็อกซีแบบลูกโซ่ขั้นสูง",
"omniSkillsDescription": "ติดตั้งและจัดการทักษะแซนด์บ็อกซ์สำหรับการดำเนินการพรอมต์และเครื่องมือโดยอัตโนมัติ"
},
"cloudSyncStatus": {
@@ -1739,18 +1743,18 @@
"cache": "แคช",
"changelog": "บันทึกการเปลี่ยนแปลง",
"chaos": "Chaos",
- "cloudAgents": "Cloud Agents",
- "live": "Live",
- "studio": "Studio",
- "aggressive": "Aggressive",
+ "cloudAgents": "เอเจนต์บนคลาวด์",
+ "live": "สด",
+ "studio": "สตูดิโอ",
+ "aggressive": "เชิงรุก",
"caveman": "Caveman",
"ccr": "CCR",
- "headroom": "Headroom",
+ "headroom": "พื้นที่สำรอง",
"lite": "Lite",
"llmlingua": "LLMLingua",
"omniglyph": "OmniGlyph",
"rtk": "RTK",
- "sessionDedup": "Session Dedup",
+ "sessionDedup": "การขจัดรายการซ้ำของเซสชัน",
"ultra": "Ultra",
"budget": "งบประมาณ",
"pricing": "ราคา",
@@ -1758,7 +1762,7 @@
"discovery": "การค้นพบ",
"freeProviderRankings": "อันดับผู้ให้บริการฟรี",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "ตั้งค่า",
"freeTiers": "แพ็กเกจฟรี",
"gamification": "เกมมิฟิเคชัน",
"leaderboard": "กระดานผู้นำ",
@@ -1768,13 +1772,13 @@
"providerStats": "สถิติผู้ให้บริการ",
"new": "ใหม่",
"quota": "โควตา",
- "relay": "Relay",
+ "relay": "รีเลย์",
"searchTools": "เครื่องมือค้นหา",
"security": "ความปลอดภัย",
"sidebar": "แถบด้านข้าง",
"tokens": "โทเค็น",
"tools": "เครื่องมือ",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "บริดจ์เอเจนต์",
"trafficInspector": "ตัวตรวจสอบทราฟฟิก",
"usage": "การใช้งาน",
"orchestration": "ออร์เคสเตรชัน"
@@ -1808,7 +1812,7 @@
"reportIssue": "รายงานปัญหา",
"activeError": "{active} ใช้งานอยู่ · ข้อผิดพลาด {errors}",
"topologyLegendActive": "ใช้งานอยู่",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "ล่าสุด",
"topologyLegendError": "เกิดข้อผิดพลาด",
"oauthLabel": "OAuth",
"apiKeyLabel": "คีย์ API",
@@ -1822,11 +1826,11 @@
"updateStarted": "เริ่มการอัพเดต...",
"reloadingPageAutomatically": "กำลังโหลดหน้าซ้ำโดยอัตโนมัติ...",
"providerTopology": "โทโพโลยีของผู้ให้บริการ",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "คำขอล่าสุด",
+ "recentRequestsEmpty": "ยังไม่มีคำขอ",
+ "recentRequestsModel": "โมเดล",
+ "recentRequestsTokens": "ขาเข้า / ขาออก",
+ "recentRequestsWhen": "เวลา",
"downloadDmg": "ดาวน์โหลด DMG (macOS)",
"downloadDmgDescription": "มีเวอร์ชันใหม่ของแอปเดสก์ท็อป OmniRoute พร้อมใช้งาน กรุณาดาวน์โหลดและติดตั้งตัวติดตั้ง macOS DMG เพื่อทำการอัปเดต (ปัจจุบัน: v{version}).",
"downloadExe": "ดาวน์โหลด EXE (Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "หมายเหตุการปล่อย",
"readMore": "อ่านเพิ่มเติม",
"noAuthLabel": "ไม่มีการตรวจสอบสิทธิ์",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "เตรียมพร้อมสำหรับการกำหนดเส้นทาง",
+ "readinessTitle": "ส่งคำขอแรกของคุณ",
+ "readinessSubtitle": "เพียงสี่ขั้นตอนสั้น ๆ โดย OmniRoute จะตรวจสอบความพร้อมให้คุณในแต่ละขั้นตอน",
+ "readinessStep1": "เชื่อมต่อผู้ให้บริการ",
+ "readinessStep2": "กำหนดค่าการยืนยันตัวตนของเอ็นด์พอยต์",
+ "readinessStep3": "คัดลอกเอ็นด์พอยต์ของคุณ",
+ "readinessStep4": "ส่งคำขอทดสอบ",
+ "readinessContinue": "ดำเนินการตั้งค่าต่อ",
+ "readinessDismiss": "ปิดไว้ก่อน"
},
"analytics": {
"title": "การวิเคราะห์",
@@ -1963,7 +1967,7 @@
"period7D": "7 วัน",
"period30D": "30 วัน",
"period90D": "90 วัน",
- "periodYTD": "YTD",
+ "periodYTD": "ตั้งแต่ต้นปีถึงปัจจุบัน",
"periodAll": "ทั้งหมด",
"totalTokens": "โทเค็นทั้งหมด",
"inputTokens": "โทเค็นขาเข้า",
@@ -2001,8 +2005,8 @@
"modelStatusError": "เกิดข้อผิดพลาด",
"comboHealth": "สุขภาพคอมโบ",
"comboHealthDescription": "โควต้าระดับคอมโบ การกระจายการใช้งาน และตัวชั่งวัดประสิทธิภาพ",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "การวิเคราะห์การบีบอัด",
+ "compressionAnalyticsDescription": "การวิเคราะห์การบีบอัด — จำนวนโทเค็นที่ประหยัดได้ การแจกแจงตามโหมด และสถิติผู้ให้บริการ",
"autoRoutingTotalAutoRequests": "คำขออัตโนมัติทั้งหมด",
"autoRoutingAvgSelectionScore": "คะแนนการเลือกเฉลี่ย",
"autoRoutingExplorationRate": "อัตราการสำรวจ",
@@ -2206,7 +2210,7 @@
"combo": "คอมโบ",
"routeStep": "ขั้นตอน",
"tokens": "โทเค็น",
- "notAvailable": "n/a",
+ "notAvailable": "ไม่มีข้อมูล",
"routeTokenCounts": "{input} เข้า · {output} ออก",
"routeEvidence": "หลักฐาน",
"routeFactors": "ปัจจัยการกำหนดเส้นทาง",
@@ -2254,9 +2258,9 @@
"fullAccess": "การเข้าถึงแบบเต็ม",
"keyManagement": "การจัดการคีย์ API",
"keyManagementDesc": "สร้างและจัดการคีย์ API สำหรับการตรวจสอบคำขอไปยังปลายทางของคุณ",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "แอปของคุณส่งคำขอผ่านคีย์ API ไปยัง OmniRoute",
+ "requestFlowYourApp": "แอปของคุณ",
+ "requestFlowApiKey": "คีย์ API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "คีย์ทั้งหมด",
"restricted": "ถูกจำกัด",
@@ -2297,34 +2301,34 @@
"keyCreatedNote": "คัดลอกและจัดเก็บคีย์นี้ทันที ซึ่งจะไม่แสดงอีก",
"done": "เสร็จแล้ว",
"savePermissions": "บันทึกสิทธิ์",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
- "autoResolve": "Auto-Resolve",
- "autoResolveDesc": "Auto-resolve ambiguous model names to native provider for this API key.",
+ "endpointRestrictions": "เอ็นด์พอยต์ที่อนุญาต",
+ "allEndpointsAllowed": "คีย์นี้สามารถเข้าถึงเอ็นด์พอยต์ API ทั้งหมดได้",
+ "endpointsRestricted": "{count, plural, one {จำกัดไว้ที่ # เอ็นด์พอยต์} other {จำกัดไว้ที่ # เอ็นด์พอยต์}}",
+ "autoResolve": "แก้ไขอัตโนมัติ",
+ "autoResolveDesc": "แก้ไขชื่อโมเดลที่กำกวมไปยังผู้ให้บริการดั้งเดิมโดยอัตโนมัติสำหรับคีย์ API นี้",
"streamDefaultMode": "ความเข้ากันได้ของค่าเริ่มต้นสตรีม",
"streamDefaultModeDesc": "ควบคุมแฟล็ก `stream` ที่ละเว้นสำหรับคีย์นี้ โหมด JSON จะส่งคืนการตอบกลับแบบไม่สตรีม เว้นแต่ไคลเอนต์จะร้องขอ SSE อย่างชัดเจน.",
"streamDefaultLegacy": "เวอร์ชันเก่า",
"streamDefaultJson": "เข้ากันได้กับ JSON",
"streamDefaultBadge": "ค่าเริ่มต้นสตรีม JSON",
- "keyActive": "Key Active",
- "keyActiveDesc": "Enable or disable this API key. Disabled keys are immediately rejected with 403.",
- "accessSchedule": "Access Schedule",
- "accessScheduleDesc": "Restrict access to specific hours and days of the week.",
- "scheduleFrom": "From",
- "scheduleUntil": "Until",
- "scheduleDays": "Days",
- "scheduleTimezone": "Timezone",
- "scheduleTimezoneHint": "Use IANA timezone names, e.g. America/New_York, Europe/Berlin",
- "scheduleActive": "Schedule",
- "disabled": "Disabled",
- "daySun": "Sun",
- "dayMon": "Mon",
- "dayTue": "Tue",
- "dayWed": "Wed",
- "dayThu": "Thu",
- "dayFri": "Fri",
- "daySat": "Sat",
+ "keyActive": "คีย์เปิดใช้งานอยู่",
+ "keyActiveDesc": "เปิดหรือปิดใช้งานคีย์ API นี้ คีย์ที่ปิดใช้งานจะถูกปฏิเสธทันทีด้วย 403",
+ "accessSchedule": "กำหนดเวลาการเข้าถึง",
+ "accessScheduleDesc": "จำกัดการเข้าถึงเฉพาะชั่วโมงและวันในสัปดาห์ที่กำหนด",
+ "scheduleFrom": "ตั้งแต่",
+ "scheduleUntil": "จนถึง",
+ "scheduleDays": "วัน",
+ "scheduleTimezone": "เขตเวลา",
+ "scheduleTimezoneHint": "ใช้ชื่อเขตเวลาตาม IANA เช่น America/New_York, Europe/Berlin",
+ "scheduleActive": "กำหนดเวลา",
+ "disabled": "ปิดใช้งาน",
+ "daySun": "อา.",
+ "dayMon": "จ.",
+ "dayTue": "อ.",
+ "dayWed": "พ.",
+ "dayThu": "พฤ.",
+ "dayFri": "ศ.",
+ "daySat": "ส.",
"allowAll": "อนุญาตทั้งหมด",
"restrict": "จำกัด",
"allowAllInfo": "กุญแจนี้เข้าได้ทุกรุ่น",
@@ -2349,7 +2353,7 @@
"failedUpdatePermissionsRetry": "ไม่สามารถอัปเดตการอนุญาต โปรดลองอีกครั้ง",
"unknownProvider": "ไม่ทราบ",
"copyMaskedKey": "คัดลอกคีย์ที่ปกปิด",
- "keyOnlyAvailableAtCreation": "Full key available only at creation time — copy it when you first create the key",
+ "keyOnlyAvailableAtCreation": "คีย์แบบเต็มจะใช้ได้เฉพาะตอนสร้างเท่านั้น — โปรดคัดลอกเมื่อคุณสร้างคีย์เป็นครั้งแรก",
"modelsCount": "{count, plural, one {# model} other {# models}}",
"devicesCount": "{count, plural, one {# อุปกรณ์} other {# อุปกรณ์}}",
"devicesTooltip": "{count, plural, one {# อุปกรณ์ IP/User-Agent ที่ไม่ซ้ำกันที่พบด้วยคีย์นี้ (30 นาทีล่าสุด)} other {# อุปกรณ์ IP/User-Agent ที่ไม่ซ้ำกันที่พบด้วยคีย์นี้ (30 นาทีล่าสุด)}}",
@@ -2378,8 +2382,8 @@
"allowedCombos": "คอมโบที่อนุญาต",
"allCombosAllowed": "คีย์นี้สามารถใช้คอมโบใดก็ได้.",
"restrictedComboCount": "จำกัดไว้ที่ {count, plural, one {# คอมโบ} other {# คอมโบ}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {รายการที่จัดเก็บไว้ # รายการไม่ได้อยู่ในรายการแบบผสมนี้ (เช่น กฎการกำหนดเส้นทาง) และจะถูกเก็บไว้ตามที่บันทึก} other {รายการที่จัดเก็บไว้ # รายการไม่ได้อยู่ในรายการแบบผสมนี้ (เช่น กฎการกำหนดเส้นทาง) และจะถูกเก็บไว้ตามที่บันทึก}}",
+ "preservedComboRuleHint": "เก็บไว้ตามที่จัดเก็บ รายการนี้ไม่ใช่ตัวเลือกแบบผสมในรายการด้านบน จึงสามารถเปลี่ยนแปลงได้ผ่าน API เท่านั้น",
"apiManagerCustomRateLimits": "ขีดจำกัดอัตราที่กำหนดเอง",
"apiManagerCustomRateLimitsDesc": "แทนที่ขีดจำกัดเริ่มต้นส่วนกลาง เว้นว่างไว้เพื่อใช้ค่าเริ่มต้น",
"apiManagerRateLimitRequestsPlaceholder": "คำขอ",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "อนุญาตให้คีย์นี้ละเว้นนโยบายการตัดยอดของผู้ให้บริการ/บัญชีต้นทางระหว่างการกำหนดเส้นทาง โควตา USD ของคีย์ API ยังคงมีผลบังคับใช้",
"quotaPill": "โควตา",
"quotaModeOnly": "เฉพาะ qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "สิทธิ์เช่าแบบเอกสิทธิ์",
+ "exclusiveLeaseNoticeTitle": "สิทธิ์เช่าแบบเอกสิทธิ์",
+ "exclusiveLeaseNoticeDesc": "คีย์ API นี้มีสิทธิ์เช่าแบบเอกสิทธิ์สำหรับการกำหนดเส้นทางผ่านการเชื่อมต่อเฉพาะ",
+ "allConnections": "การเชื่อมต่อทั้งหมด",
+ "onlySelectedConnections": "เฉพาะการเชื่อมต่อที่เลือก",
+ "selectAtLeastOneConnection": "เลือกการเชื่อมต่ออย่างน้อยหนึ่งรายการ หรือเลือกการเชื่อมต่อทั้งหมด",
+ "allConnectionsDesc": "คีย์นี้สามารถใช้การเชื่อมต่อใดก็ได้ที่เปิดใช้งานอยู่",
+ "restrictedToConnections": "จำกัดไว้ที่ {count, plural, one {# การเชื่อมต่อ} other {# การเชื่อมต่อ}}"
},
"auditLog": {
"title": "บันทึกการตรวจสอบ",
@@ -2453,16 +2457,16 @@
"model": "Model",
"prompt": "Prompt",
"generate": "สร้าง",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "กำลังสร้าง...",
+ "loadingModels": "กำลังโหลดโมเดลที่พร้อมใช้งาน...",
+ "noModels": "ไม่มีโมเดลที่พร้อมใช้งาน โปรดกำหนดค่าผู้ให้บริการที่รองรับสื่อก่อน",
+ "error": "การสร้างล้มเหลว",
+ "result": "ผลลัพธ์",
+ "imageDescription": "สร้างรูปภาพจากพรอมต์ข้อความโดยใช้ OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI และอื่นๆ",
+ "videoDescription": "สร้างวิดีโอด้วย AnimateDiff, Stable Video Diffusion ผ่าน ComfyUI หรือ SD WebUI",
+ "musicDescription": "แต่งเพลงโดยใช้ Stable Audio Open หรือ MusicGen ผ่าน ComfyUI",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "การฝังข้อมูล",
"image": "รูปภาพ",
"imageToText": "รูปภาพเป็นข้อความ",
"tts": "ข้อความเป็นเสียงพูด",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "โมเดลแปลงเสียงเป็นข้อความของ OpenRouter ใช้การเชื่อมต่อ OpenRouter ที่คุณกำหนดไว้ ไม่มีการรับรองความถูกต้องแยกต่างหากที่จำเป็น."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "คำค้นหา",
+ "searchResults": "ผลการค้นหา",
+ "cachedResult": "แคชแล้ว",
+ "searchCost": "ค่าใช้จ่าย",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "การทดสอบการค้นหาขั้นสูงพร้อมเปรียบเทียบผู้ให้บริการ",
+ "compareProviders": "เปรียบเทียบผู้ให้บริการ",
+ "rerankResults": "จัดอันดับผลลัพธ์ใหม่",
+ "searchHistory": "ประวัติการค้นหา",
+ "urlOverlap": "URL ที่ซ้ำกัน",
+ "noSearchProviders": "ยังไม่ได้กำหนดค่าผู้ให้บริการค้นหา เพิ่มผู้ให้บริการในการตั้งค่า",
+ "noRerankModels": "ไม่มีโมเดลจัดอันดับใหม่ที่พร้อมใช้งาน",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "ผู้ให้บริการ",
+ "searchType": "ประเภทการค้นหา",
+ "maxResults": "จำนวนผลลัพธ์สูงสุด",
+ "filters": "ตัวกรอง",
+ "country": "ประเทศ",
+ "language": "ภาษา",
+ "timeRange": "ช่วงเวลา",
+ "includeDomains": "รวมโดเมน",
+ "excludeDomains": "ยกเว้นโดเมน",
+ "safeSearch": "การค้นหาปลอดภัย",
+ "safeSearchOff": "ปิด",
+ "safeSearchModerate": "ปานกลาง",
+ "safeSearchStrict": "เข้มงวด",
+ "queryPlaceholder": "ป้อนคำค้นหา...",
+ "providerAuto": "อัตโนมัติ (ถูกที่สุด)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "ข่าว",
+ "optionAny": "ใดก็ได้",
+ "timeRangeDay": "วันที่ผ่านมา",
+ "timeRangeWeek": "สัปดาห์ที่ผ่านมา",
+ "timeRangeMonth": "เดือนที่ผ่านมา",
+ "timeRangeYear": "ปีที่ผ่านมา",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "คำขอหมดเวลา ({seconds} วินาที)",
+ "networkError": "ข้อผิดพลาดของเครือข่าย",
+ "formatted": "จัดรูปแบบแล้ว",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "ไม่พบในแคช",
+ "cacheHit": "พบในแคช",
+ "latency": "เวลาแฝง",
+ "cost": "ค่าใช้จ่าย",
+ "results": "ผลลัพธ์",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "โมเดลจัดอันดับใหม่",
+ "positionDelta": "การเปลี่ยนแปลงของตำแหน่ง",
+ "emptyState": "ส่งคำค้นหาเพื่อดูผลลัพธ์",
"copy": "คัดลอก",
"resetToDefault": "รีเซ็ตเป็นค่าเริ่มต้น",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "ค้นหา",
+ "tabScrape": "ดึงข้อมูล",
+ "tabCompare": "เปรียบเทียบ",
+ "modalitiesGuide": "คู่มือรูปแบบการทำงาน",
+ "searchConceptTitle": "ค้นหา",
+ "searchConceptDesc": "ค้นหา = ดึงรายการผลลัพธ์จากเว็บ (ชื่อเรื่อง, URL, ข้อความตัวอย่าง, คะแนนความเกี่ยวข้อง)",
+ "scrapeConceptTitle": "ดึงข้อมูล",
+ "scrapeConceptDesc": "ดึงข้อมูล = แยกเนื้อหาทั้งหมดจาก URL (markdown, ข้อความ หรือ HTML)",
+ "compareConceptTitle": "เปรียบเทียบ",
+ "compareConceptDesc": "เปรียบเทียบ = เรียกใช้คำค้นหาเดียวกันกับผู้ให้บริการ N รายแบบเคียงข้างกัน เพื่อเปรียบเทียบเวลาแฝง ค่าใช้จ่าย และความซ้ำซ้อนของผลลัพธ์",
+ "rerankConceptTitle": "จัดอันดับใหม่",
+ "rerankConceptDesc": "จัดอันดับใหม่ = เรียงลำดับผลลัพธ์ใหม่ผ่าน LLM เพื่อเพิ่มความเกี่ยวข้องตามคำค้นหา",
+ "autoConceptTitle": "อัตโนมัติ (ถูกที่สุด)",
+ "autoConceptDesc": "อัตโนมัติ (ถูกที่สุด) = เลือกผู้ให้บริการที่พร้อมใช้งานและมีข้อมูลประจำตัวที่กำหนดค่าไว้ซึ่งมีราคาถูกที่สุดโดยอัตโนมัติ",
+ "providerCatalogTitle": "แค็ตตาล็อกผู้ให้บริการ",
+ "kindSearch": "ค้นหา",
+ "kindFetch": "ดึงข้อมูล/ดึงเนื้อหา",
+ "statusConfigured": "กำหนดค่าแล้ว",
+ "statusMissing": "ไม่มีข้อมูลรับรอง",
+ "statusRateLimited": "ถูกจำกัดอัตราการใช้งาน",
+ "configureProvider": "กำหนดค่าในผู้ให้บริการ",
+ "loadingProviders": "กำลังโหลดผู้ให้บริการ…",
+ "failedToLoadProviders": "โหลดผู้ให้บริการไม่สำเร็จ",
+ "costPerQuery": "ค่าใช้จ่าย/คำขอ",
+ "freeQuota": "โควตาฟรี/เดือน",
+ "scrapeUrl": "URL ที่จะดึงข้อมูล",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "จำเป็นต้องระบุ URL",
"scrapeUrlInvalid": "URL ไม่ถูกต้อง — ต้องเริ่มต้นด้วย http:// หรือ https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "ดึงข้อมูล",
+ "scrapeExtracting": "กำลังดึงข้อมูล…",
+ "scrapeFullPage": "ทั้งหน้า",
+ "scrapeFormat": "รูปแบบ",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "ข้อความ",
+ "scrapePreview": "ดูตัวอย่าง",
+ "scrapeRaw": "ข้อมูลดิบ",
+ "scrapeContentTruncated": "(ถูกตัดทอน โปรดดูข้อมูลดิบ)",
+ "scrapeMetadata": "ข้อมูลเมตา",
+ "scrapeProvider": "ผู้ให้บริการ",
+ "scrapeSize": "ขนาด",
"scrapeEmptyState": "ป้อน URL เพื่อดึงข้อมูลเนื้อหา",
"scrapeProvidersAvailable": "ผู้ให้บริการที่พร้อมใช้งาน: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "เปรียบเทียบ",
+ "compareRunning": "กำลังเปรียบเทียบ…",
+ "autoProvider": "อัตโนมัติ (ถูกที่สุด)",
+ "configuredStatus": "กำหนดค่าแล้ว",
+ "rateLimitedStatus": "ถูกจำกัดอัตราการใช้งาน",
+ "noCredential": "ไม่มีข้อมูลรับรอง",
+ "searchTypeLabel": "ประเภท",
+ "rerankModelLabel": "โมเดลจัดอันดับใหม่",
+ "noneOption": "ไม่มี",
+ "size": "ขนาด",
"configurationPane": "บานหน้าต่างการกำหนดค่า",
"configuration": "การกำหนดค่า",
"status": "สถานะ",
@@ -2677,7 +2681,7 @@
"ttsSample": "สวัสดี นี่คือการทดสอบการแปลงข้อความเป็นคำพูด",
"video": "วิดีโอ",
"videoSample": "ภาพไทม์แลปส์ของกลุ่มเมฆเหนือเทือกเขา",
- "webFetch": "Web Fetch",
+ "webFetch": "ดึงข้อมูลเว็บ",
"webSearchSample": "OmniRoute AI gateway คืออะไร?",
"noActiveProviderDescription": "ไม่มีผู้ให้บริการการค้นหาที่เปิดใช้งาน กำหนดค่าได้ใน Providers",
"configureProviders": "กำหนดค่าผู้ให้บริการ",
@@ -2739,7 +2743,7 @@
"effortExtraHigh": "สูงพิเศษ",
"effortMax": "สูงสุด",
"effortUltra": "อัลตรา",
- "wireApi": "Wire API",
+ "wireApi": "เชื่อมต่อ API",
"modelAliases": "นามแฝงโมเดล",
"addModel": "เพิ่มโมเดล",
"routeModelPlaceholder": "กำหนดเส้นทาง {model} ไปยัง...",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. เพิ่ม",
"antigravityStep2Suffix": "ไปยังไฟล์โฮสต์ของคุณเป็น 127.0.0.1",
"antigravityStep3": "3. เปิด Antigravity และคำขอจะถูกส่งผ่านพรอกซี",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} จะส่งคำขอไปยังปลายทางของผู้ให้บริการ โดย MITM จะดักจับและเปลี่ยนเส้นทางคำขอไปยัง OmniRoute",
+ "mitmStep1": "1. เริ่ม MITM เพื่อส่งคำขอผ่าน OmniRoute",
+ "mitmStep2Prefix": "2. เพิ่ม",
+ "mitmStep2Suffix": "ลงในไฟล์ hosts โดยกำหนดเป็น 127.0.0.1",
+ "mitmStep3": "3. เปิด {toolName} แล้วคำขอจะถูกส่งผ่านพร็อกซี",
"sudoPasswordRequiredTitle": "ต้องใช้รหัสผ่าน Sudo",
"sudoPasswordHint": "ต้องใช้รหัสผ่านผู้ดูแลระบบเพื่อแก้ไขไฟล์โฮสต์และการตั้งค่าพร็อกซีระบบ",
"enterSudoPassword": "ป้อนรหัสผ่าน sudo",
@@ -2904,7 +2908,7 @@
"continue": "ใช้เมื่อเรียกใช้ดำเนินการต่อใน IDE และคุณต้องกำหนดค่าผู้ให้บริการที่ใช้ JSON แบบพกพา",
"opencode": "ใช้เมื่อคุณต้องการเรียกใช้ Terminal-Native Agent และใช้สคริปต์อัตโนมัติผ่าน OpenCode",
"kiro": "ใช้เมื่อรวม Kiro และควบคุมการกำหนดเส้นทางโมเดลจากส่วนกลางจาก OmniRoute",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "ใช้เมื่อคุณต้องการ IDE ที่เน้น AI เป็นหลัก โดยใช้โมเดล Codeium/Windsurf ที่กำหนดเส้นทางผ่าน OmniRoute",
"antigravity": "ใช้เมื่อต้องสกัดกั้นการรับส่งข้อมูล Antigravity/Kiro ผ่าน MITM และกำหนดเส้นทางไปยัง OmniRoute",
"copilot": "ใช้เมื่อคุณต้องการ UX รูปแบบการแชทของ Copilot ในขณะที่บังคับใช้คีย์ OmniRoute และกฎการกำหนดเส้นทาง",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2924,11 +2928,11 @@
"qwen": "Qwen Code CLI",
"cursor": "ตัวแก้ไขรหัสเคอร์เซอร์ AI",
"continue": "ดำเนินการต่อผู้ช่วย AI",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "เอเจนต์เขียนโค้ด AI OpenCode (เทอร์มินัล)",
+ "kiro": "Amazon Kiro — IDE ที่ขับเคลื่อนด้วย AI",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "CLI ผู้ช่วยเขียนโค้ด Sourcegraph Amp",
"hermes": "ผู้ช่วยเทอร์มินัล Hermes AI",
"hermes-agent": "Hermes Agent (โดย Nousresearch) - AI บนเทอร์มินัลขั้นสูงที่รองรับหลายโมเดล (การมอบหมายงาน, การมองเห็น, การบีบอัด ฯลฯ)",
"custom": "ตัวสร้างการกำหนดค่า CLI หรือ SDK ที่เข้ากันได้กับ OpenAI ทั่วไป",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI เอเจนต์เขียนโค้ดอัตโนมัติ Open Interpreter",
"omp": "เอเจนต์เขียนโค้ดบนเทอร์มินัล Oh My Pi",
"letta": "เอเจนต์ Letta CLI พร้อมหน่วยความจำถาวรและการใช้เครื่องมือ",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — ระบบควบคุมการเขียนโค้ด RLM ที่พัฒนาตนเองได้ พร้อมรองรับผู้ให้บริการที่เข้ากันได้กับ OpenAI",
"warp": "เทอร์มินัล Warp AI ที่รองรับผู้ให้บริการแบบกำหนดเอง",
"agent-deck": "ตัวประสานงานหลายเอเจนต์ Agent Deck",
"5dive": "5dive — ฟลีตเอเจนต์เขียนโค้ดที่โฮสต์เอง; โปรไฟล์ auth เดียวชี้ทั้งหมดไปที่ OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "ติดตั้ง OpenCode",
+ "desc": "ติดตั้งผ่าน npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "คีย์ API"
},
"3": {
- "title": "Set Base URL",
+ "title": "ตั้งค่า URL ฐาน",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "เลือกโมเดล"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "ใช้รูปแบบ Thinking",
+ "desc": "สำหรับโมเดลที่ใช้การคิด ให้เรียกใช้ด้วย --variant high/low/max (ดูตัวอย่างคำสั่งด้านล่าง)"
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "เปิดการตั้งค่า Kiro",
+ "desc": "ไปที่ การตั้งค่า → ผู้ให้บริการ AI"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "URL ฐาน",
+ "desc": "วาง URL ปลายทาง OmniRoute ของคุณ"
},
"3": {
- "title": "API Key"
+ "title": "คีย์ API"
},
"4": {
- "title": "Select Model"
+ "title": "เลือกโมเดล"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "เปิดการตั้งค่า AI",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "เพิ่มผู้ให้บริการแบบกำหนดเอง",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "URL ฐาน",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "คีย์ API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "เลือกโมเดล",
+ "desc": "เลือกโมเดลจากเมนูแบบเลื่อนลง"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "CLI แบบกำหนดเอง",
- "toolCategories": "Tool Categories",
+ "toolCategories": "หมวดหมู่เครื่องมือ",
"visibleToolsCount": "มีเครื่องมือ {count} รายการ",
"customCliBuilderTitle": "เครื่องมือสร้าง CLI ที่เข้ากันได้กับ OpenAI",
"customCliBuilderDescription": "สร้าง env vars และข้อมูลโค้ด JSON สำหรับ CLI หรือ SDK ใดๆ ที่ยอมรับ URL พื้นฐาน, คีย์ API และรหัสโมเดลที่เข้ากันได้กับ OpenAI",
@@ -3128,11 +3132,11 @@
"hermesRoleTtsAudioTagsDesc": "การสร้างแท็กเสียง TTS",
"hermesRoleTriageSpecifier": "ตัวระบุการจัดลำดับความสำคัญ",
"hermesRoleTriageSpecifierDesc": "ข้อกำหนดการจัดการปัญหาและการขอการเปลี่ยนแปลง",
- "hermesRoleKanbanDecomposer": "Kanban Decomposer",
+ "hermesRoleKanbanDecomposer": "ตัวแยกงานแบบ Kanban",
"hermesRoleKanbanDecomposerDesc": "การแยกย่อยงานใน Kanban",
"hermesRoleProfileDescriber": "โปรไฟล์คำอธิบาย",
"hermesRoleProfileDescriberDesc": "คำอธิบายโปรไฟล์ผู้ใช้",
- "hermesRoleGoalJudge": "Goal Judge",
+ "hermesRoleGoalJudge": "ตัวประเมินเป้าหมาย",
"hermesRoleGoalJudgeDesc": "การตัดสินการบรรลุเป้าหมาย",
"hermesRoleCurator": "ผู้ดูแล",
"hermesRoleCuratorDesc": "การจัดการทักษะและความจำ",
@@ -3256,18 +3260,18 @@
"priorityDesc": "ทางเลือกสำรองตามลำดับ: ลองใช้โมเดล 1 ก่อน จากนั้นจึงใช้ 2 เป็นต้น",
"weightedDesc": "กระจายการรับส่งข้อมูลตามเปอร์เซ็นต์น้ำหนักพร้อมทางเลือกสำรอง",
"roundRobinDesc": "การกระจายแบบวงกลม: แต่ละคำขอจะส่งไปยังโมเดลถัดไปที่หมุนเวียนกัน",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "การส่งต่อบริบท",
+ "contextRelayDesc": "รักษาความต่อเนื่องของเซสชันด้วยสรุปการส่งต่องานเมื่อมีการสลับบัญชี",
"randomDesc": "การเลือกแบบสุ่มแบบสม่ำเสมอ จากนั้นจึงย้อนกลับไปยังโมเดลที่เหลือ",
"leastUsedDesc": "เลือกโมเดลที่มีคำขอน้อยที่สุด โดยจะปรับสมดุลการโหลดเมื่อเวลาผ่านไป",
"costOptimizedDesc": "กำหนดเส้นทางไปยังรุ่นที่ถูกที่สุดก่อนตามราคา",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "cacheOptimizedDesc": "กำหนดเส้นทางคำนำหน้าพรอมต์ที่ใช้ซ้ำแต่ละรายการไปยังบัญชีผู้ให้บริการเดิมอย่างสม่ำเสมอ",
"resetAware": "รีเซ็ต-Aware RR",
"resetAwareDesc": "ปรับโควต้าที่เหลือให้สมดุลกับการรีเซ็ต 5 ชม. และการรีเซ็ตรายสัปดาห์ จากนั้นจึงทำคะแนนแบบ Round-Robins ที่คล้ายกัน",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "ถ่วงน้ำหนักตามโควตา",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "สุ่มอย่างเคร่งครัด",
+ "strictRandomDesc": "สับสำรับ — ใช้แต่ละโมเดลหนึ่งครั้งก่อนสับใหม่",
"fusion": "การผสาน",
"fusionDesc": "ส่ง prompt ไปยังทุกโมเดลในพาเนลแบบขนาน จากนั้นโมเดลผู้ตัดสินจะสังเคราะห์คำตอบสุดท้ายขึ้นมาหนึ่งคำตอบ",
"fusionJudgeModel": "โมเดลผู้ตัดสิน",
@@ -3284,13 +3288,13 @@
"retryDelay": "ความล่าช้าในการลองอีกครั้ง (มิลลิวินาที)",
"concurrencyPerModel": "เห็นพ้องต้องกัน / รุ่น",
"queueTimeout": "คิวหมดเวลา (มิลลิวินาที)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "เกณฑ์การส่งต่องาน",
+ "contextRelayHandoffThresholdHelp": "เมื่อการใช้โควตาถึงเกณฑ์นี้ OmniRoute จะสร้างสรุปการส่งต่องานแบบมีโครงสร้างก่อนที่โควตาของบัญชีที่ใช้งานอยู่จะหมดลง",
+ "contextRelayMaxMessages": "จำนวนข้อความสูงสุดสำหรับสรุป",
+ "contextRelayMaxMessagesHelp": "จำกัดปริมาณประวัติล่าสุดที่จะย่อรวมไว้ในสรุปการส่งต่อ",
+ "contextRelaySummaryModel": "โมเดลสำหรับสรุป",
+ "contextRelaySummaryModelHelp": "โมเดลทดแทนที่เลือกใช้ได้ โดยใช้เฉพาะสำหรับสร้างสรุปการส่งต่องานเท่านั้น เว้นว่างไว้เพื่อใช้โมเดลคอมโบที่กำลังใช้งานอยู่",
+ "contextRelayProviderNote": "ขณะนี้ Context Relay สร้างการส่งต่อสำหรับการหมุนเวียนบัญชี Codex จับคู่กับหลายบัญชีจากผู้ให้บริการรายเดียวกันเพื่อความต่อเนื่องที่ดีที่สุด",
"advancedHint": "เว้นว่างไว้เพื่อใช้ค่าเริ่มต้นสากล เหล่านี้จะแทนที่การตั้งค่าต่อผู้ให้บริการ",
"failoverBeforeRetry": "เฟลโอเวอร์ก่อนที่จะลองอีกครั้ง",
"maxSetRetries": "ลองตั้งค่าสูงสุดใหม่",
@@ -3341,40 +3345,40 @@
"weighted": "ถ่วงน้ำหนัก",
"leastUsed": "ใช้น้อยที่สุด",
"costOpt": "ต้นทุน-การเลือก",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "strategyGuideTitle": "วิธีใช้กลยุทธ์นี้",
+ "strategyGuideWhen": "ควรใช้เมื่อ",
+ "strategyGuideAvoid": "หลีกเลี่ยงเมื่อ",
+ "strategyGuideExample": "ตัวอย่าง",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "คุณมีโมเดลที่ต้องการใช้เป็นหลักเพียงโมเดลเดียว และต้องการใช้โมเดลสำรองเฉพาะเมื่อเกิดข้อผิดพลาด",
+ "avoid": "คุณต้องกระจายคำขอไปยังหลายโมเดล",
+ "example": "โมเดลเขียนโค้ดหลัก พร้อมโมเดลสำรองที่มีต้นทุนต่ำกว่าสำหรับกรณีระบบขัดข้อง"
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "คุณต้องควบคุมสัดส่วนทราฟฟิกระหว่างโมเดล",
+ "avoid": "คุณไม่สามารถดูแลค่าน้ำหนักให้แม่นยำได้อย่างต่อเนื่อง",
+ "example": "เปิดตัวโดยใช้โมเดลเสถียร 80% + โมเดลคานารี 20%"
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "คุณต้องการการกระจายที่สม่ำเสมอและคาดการณ์ได้",
+ "avoid": "โมเดลมีเวลาแฝงหรือต้นทุนแตกต่างกันมากเกินไป",
+ "example": "ใช้โมเดลเดียวกันในหลายบัญชีเพื่อกระจายปริมาณงาน"
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "คุณต้องการการกระจายแบบเรียบง่ายและตั้งค่าให้น้อยที่สุด",
+ "avoid": "คุณต้องการการรับประกันทราฟฟิกอย่างเคร่งครัด",
+ "example": "การสร้างต้นแบบอย่างรวดเร็วด้วยโมเดลที่เทียบเท่ากัน"
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "คุณต้องการการปรับสมดุลแบบไดนามิกตามความต้องการแบบเรียลไทม์",
+ "avoid": "ทราฟฟิกต่ำเกินกว่าจะได้ประโยชน์จากการปรับสมดุลตามการใช้งาน",
+ "example": "เวิร์กโหลดแบบผสมที่โมเดลหนึ่งมักทำงานหนักเกินไป"
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "การลดต้นทุนคือสิ่งสำคัญที่สุดของคุณ",
+ "avoid": "ข้อมูลราคาขาดหายไปหรือล้าสมัย",
+ "example": "งานเบื้องหลังหรืองานแบบแบตช์ที่ให้ความสำคัญกับต้นทุนต่ำ"
},
"reset-aware": {
"when": "คุณกำหนดเส้นทางข้ามหลายบัญชีด้วยการวัดและส่งข้อมูลทางไกลโควต้าและหน้าต่างการรีเซ็ตที่แตกต่างกัน",
@@ -3382,19 +3386,19 @@
"example": "ต้องการให้บัญชีรายสัปดาห์ 60% รีเซ็ตในวันพรุ่งนี้ มากกว่าบัญชี 80% ที่จะรีเซ็ตในภายหลัง"
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "ใช้เมื่อคุณต้องการกระจายอย่างเท่าเทียมกันอย่างสมบูรณ์ โดยแต่ละโมเดลจะถูกใช้หนึ่งครั้งก่อนเริ่มวนซ้ำ",
+ "avoid": "หลีกเลี่ยงเมื่อโมเดลมีคุณภาพหรือเวลาแฝงแตกต่างกัน และลำดับมีความสำคัญ",
+ "example": "ตัวอย่าง: หลายบัญชีของโมเดลเดียวกันเพื่อกระจายการใช้งานอย่างเท่าเทียมกัน"
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "ใช้เมื่อคุณต้องการเลือกโมเดลที่มีเวลาแฝงต่ำด้วยอัลกอริทึม Power-of-Two-Choices",
+ "avoid": "หลีกเลี่ยงสำหรับชุดผสมขนาดเล็กที่มีไม่เกิน 2 โมเดล เพราะไม่มีข้อได้เปรียบเหนือการวนแบบรอบต่อรอบ",
+ "example": "ตัวอย่าง: การอนุมานที่มีปริมาณงานสูงผ่านเอนด์พอยต์โมเดลที่เทียบเท่ากันตั้งแต่ 4 จุดขึ้นไป"
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "ใช้เมื่อเซสชันที่ยาวนานต้องรองรับการหมุนเวียนบัญชีโดยไม่สูญเสียบริบทการทำงาน",
+ "avoid": "หลีกเลี่ยงเมื่อแทบไม่มีการสลับบัญชี หรือเมื่อคุณไม่ต้องการคำขอสรุปเพิ่มเติม",
+ "example": "ตัวอย่าง: เซสชัน Codex ที่หมุนเวียนผ่านหลายบัญชีเมื่อใกล้ใช้โควตาหมด"
},
"fill-first": {
"when": "ใช้เมื่อคุณต้องการใช้โควต้าของผู้ให้บริการรายหนึ่งจนหมดก่อนที่จะย้ายไปยังรายถัดไป",
@@ -3418,49 +3422,49 @@
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "จำนวนครั้งที่พยายามใหม่ก่อนกำหนดให้คำขอล้มเหลว",
+ "retryDelay": "ระยะเวลารอเริ่มต้นระหว่างการลองใหม่ ค่าที่สูงขึ้นช่วยลดแรงกดดันจากคำขอจำนวนมากในช่วงเวลาสั้นๆ",
+ "timeout": "ระยะเวลาสูงสุดของคำขอก่อนยกเลิก",
+ "healthcheck": "ข้ามโมเดล/ผู้ให้บริการที่ไม่พร้อมใช้งานในการตัดสินใจกำหนดเส้นทาง",
+ "concurrencyPerModel": "จำนวนคำขอพร้อมกันสูงสุดที่อนุญาตต่อโมเดลในการวนแบบรอบต่อรอบ",
+ "queueTimeout": "ระยะเวลาที่คำขอสามารถรอในคิวได้ก่อนหมดเวลา",
"failoverBeforeRetry": "เมื่อเปิดใช้งาน ข้อผิดพลาดอัปสตรีมจะทริกเกอร์การเฟลโอเวอร์ทันทีไปยังเป้าหมายคอมโบถัดไป โดยข้ามการลองใหม่ทั้งหมดและ URL สำรอง",
"maxSetRetries": "จำนวนครั้งในการลองเป้าหมายทั้งหมดที่ตั้งไว้อีกครั้งเมื่อทุกเป้าหมายล้มเหลว 0 = ไม่มีการลองใหม่ในระดับที่กำหนด",
"setRetryDelayMs": "ความล่าช้าระหว่างการพยายามลองใหม่ในระดับที่กำหนด ทำให้มีเวลาแก้ไขปัญหาชั่วคราว",
"disableSessionStickiness": "สลับไปยังการเชื่อมต่ออื่นในทุกๆ คำขอ แทนที่จะตรึงการสนทนาทั้งหมดไว้กับการเชื่อมต่อเดียวด้วยแฮชของข้อความแรก ซึ่งจะเขียนทับค่าเริ่มต้นส่วนกลาง ปล่อยไว้ที่ 'สืบทอด' (Inherit) เพื่อรักษาฮิตของแคชพรอมต์สำหรับการแชทแบบหลายเทิร์น"
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "เทมเพลตด่วน",
+ "templatesDescription": "ใช้โปรไฟล์เริ่มต้น แล้วปรับโมเดลและการกำหนดค่า",
+ "templateApply": "ใช้เทมเพลต",
+ "templateHighAvailability": "ความพร้อมใช้งานสูง",
+ "templateHighAvailabilityDesc": "กำหนดเส้นทางตามลำดับความสำคัญ พร้อมการตรวจสอบสถานะและการลองใหม่อย่างปลอดภัย",
+ "templateCostSaver": "ประหยัดค่าใช้จ่าย",
+ "templateCostSaverDesc": "การกำหนดเส้นทางที่ปรับให้คุ้มค่าที่สุดสำหรับเวิร์กโหลดที่ให้ความสำคัญกับงบประมาณ",
+ "templateBalanced": "กระจายโหลดอย่างสมดุล",
+ "templateBalancedDesc": "กำหนดเส้นทางไปยังโมเดลที่ถูกใช้งานน้อยที่สุด เพื่อกระจายความต้องการในระยะยาว",
+ "usageGuideHide": "ซ่อน",
+ "usageGuideDontShowAgain": "ไม่ต้องแสดงอีก",
+ "usageGuideShow": "แสดงคำแนะนำ",
+ "quickTestTitle": "คอมโบพร้อมสำหรับการตรวจสอบ",
+ "quickTestDescription": "เรียกใช้การทดสอบตอนนี้เพื่อยืนยันการทำงานของเส้นทางสำรองและเวลาแฝง",
+ "testNow": "ทดสอบตอนนี้",
+ "pricingCoverage": "ความครอบคลุมของข้อมูลราคา",
+ "pricingCoverageHint": "การปรับให้คุ้มค่าที่สุดทำงานได้ดีที่สุดเมื่อโมเดลทั้งหมดในคอมโบมีข้อมูลราคา",
+ "pricingAvailable": "มีข้อมูลราคา",
+ "pricingMissing": "ไม่มีข้อมูลราคา",
+ "pricingAvailableShort": "มีราคา",
+ "pricingMissingShort": "ไม่มีราคา",
"fallbackOnlyOnQuotaExhaustion": "เฉพาะเมื่อโควต้าหมดเท่านั้น",
"fallbackOnlyOnQuotaExhaustionShort": "การสำรองข้อมูลเฉพาะโควต้า",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "warningRoundRobinSingleModel": "การวนเลือกแบบ Round-robin มีประโยชน์สูงสุดเมื่อมีโมเดลอย่างน้อย 2 รายการ",
+ "warningCostOptimizedPartialPricing": "มีโมเดลที่มีข้อมูลราคาเพียง {priced} จาก {total} รายการ การกำหนดเส้นทางอาจพิจารณาต้นทุนได้เพียงบางส่วน",
+ "warningCostOptimizedNoPricing": "ไม่พบข้อมูลราคาสำหรับคอมโบนี้ การปรับให้คุ้มค่าที่สุดอาจกำหนดเส้นทางโดยไม่เป็นไปตามที่คาดไว้",
+ "filterAll": "ทั้งหมด",
+ "filterIntelligent": "อัจฉริยะ",
+ "filterDeterministic": "กำหนดแน่นอน",
+ "filterEmptyTitle": "ไม่มีคอมโบที่ตรงกับตัวกรองกลยุทธ์นี้",
+ "filterEmptyIntelligentDescription": "สร้างคอมโบ auto หรือ LKGP เพื่อแสดงข้อมูลในแดชบอร์ดการกำหนดเส้นทางอัจฉริยะ",
+ "filterEmptyDeterministicDescription": "ขณะนี้มีเพียงคอมโบ auto และ LKGP โปรดสลับกลับไปที่ทั้งหมด หรือสร้างคอมโบแบบกำหนดแน่นอน",
"readinessTitle": "พร้อมที่จะบันทึกแล้วหรือยัง?",
"readinessDescription": "ตรวจสอบรายการตรวจสอบก่อนที่จะสร้างหรืออัปเดตคำสั่งผสมนี้",
"readinessCheckName": "ชื่อคำสั่งผสมถูกต้อง",
@@ -3474,12 +3478,12 @@
"saveBlockModels": "เพิ่มอย่างน้อยหนึ่งรุ่น",
"saveBlockWeighted": "ตั้งค่าน้ำหนักเป็น 100% (ปัจจุบัน: {total}%)",
"saveBlockPricing": "เพิ่มราคาสำหรับรุ่นอย่างน้อยหนึ่งรุ่นหรือเลือกกลยุทธ์อื่น",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "การตั้งค่าที่แนะนำ",
+ "applyRecommendations": "ใช้คำแนะนำ",
+ "recommendationsUpdated": "อัปเดตคำแนะนำสำหรับ {strategy} แล้ว",
+ "recommendationsApplied": "ใช้คำแนะนำกับคอมโบนี้แล้ว",
+ "intelligentPanelTitle": "แดชบอร์ดการกำหนดเส้นทางอัจฉริยะ",
+ "intelligentPanelDesc": "คะแนนแบบเรียลไทม์และสถานะความพร้อมใช้งานของคอมโบกำหนดเส้นทางอัตโนมัตินี้",
"configOnlyStatus": "มุมมองการกำหนดค่า",
"configOnlyHint": "แผงนี้แสดงเฉพาะอินพุตการกำหนดเส้นทางเท่านั้น สถานะเบรกเกอร์แบบเรียลไทม์สามารถดูได้ที่หน้าสถานะการทำงาน (Health)",
"routingInputs": "อินพุตการกำหนดเส้นทาง",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "ไม่รู้จักคำนำหน้าผู้ให้บริการ",
"builderDynamicAccountShort": "บัญชีแบบไดนามิก",
"builderNeedValidName": "กำหนดชื่อคอมโบที่ถูกต้องก่อนดำเนินการต่อ",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "ภาพรวมสถานะ",
+ "normalOperation": "การทำงานปกติ",
+ "allProvidersHealthy": "ผู้ให้บริการรายงานว่าสภาวะการกำหนดเส้นทางเป็นปกติ",
+ "incidentMode": "โหมดเหตุขัดข้อง",
+ "highCircuitBreakerRate": "ตรวจพบอัตราการตัดวงจรของเซอร์กิตเบรกเกอร์สูง",
+ "activeModePack": "ชุดโหมดที่ใช้งานอยู่",
+ "modePackUpdated": "อัปเดตชุดโหมดเป็น {pack} แล้ว",
+ "modePackHint": "สลับค่าที่ตั้งไว้ล่วงหน้าเพื่อปรับแนวโน้มของกลไกการกำหนดเส้นทางโดยไม่ต้องสร้างคอมโบใหม่",
+ "providerScores": "คะแนนผู้ให้บริการ",
+ "allProvidersEvaluated": "ยังไม่ได้กำหนดพูลตัวเลือก ระบบจะประเมินผู้ให้บริการที่ใช้งานอยู่ทั้งหมดขณะรันไทม์",
+ "excludedProviders": "ผู้ให้บริการที่ถูกยกเว้น",
+ "excludedProvidersHint": "ผู้ให้บริการที่มีตัวตัดวงจรสถานะ OPEN จะถูกยกเว้นจากการกำหนดเส้นทางชั่วคราว",
+ "noExcludedProviders": "ขณะนี้ไม่มีผู้ให้บริการที่ถูกยกเว้น",
+ "cooldownMinutes": "ช่วงพัก: {minutes}m",
+ "builderIntelligentTitle": "การกำหนดค่าการกำหนดเส้นทางอัจฉริยะ",
+ "builderIntelligentDesc": "กำหนดค่ากลไกการให้คะแนนแบบหลายปัจจัยสำหรับคอมโบการกำหนดเส้นทางอัตโนมัตินี้",
+ "candidatePoolLabel": "พูลตัวเลือก",
+ "candidatePoolHint": "เลือกผู้ให้บริการที่ต้องการให้กลไกนี้ประเมิน เว้นว่างไว้เพื่อใช้ผู้ให้บริการที่ใช้งานอยู่ทั้งหมด",
+ "candidatePoolEmpty": "ยังไม่มีผู้ให้บริการที่ใช้งานอยู่",
+ "candidatePoolAllProviders": "ผู้ให้บริการทั้งหมด",
+ "modePackLabel": "ชุดโหมด",
+ "routerStrategyLabel": "กลยุทธ์เราเตอร์",
+ "strategyRules": "กฎ (การให้คะแนน 6 ปัจจัย)",
+ "explorationRateLabel": "อัตราการสำรวจ",
+ "explorationRateHint": "คำขอจำนวน {percent}% สามารถสำรวจผู้ให้บริการที่ไม่เหมาะสมที่สุดได้",
+ "budgetCapLabel": "เพดานงบประมาณ (USD / คำขอ)",
+ "budgetCapPlaceholder": "ไม่จำกัด",
+ "advancedWeightsTitle": "ขั้นสูง: น้ำหนักการให้คะแนน",
"nestedComboFlatten": "ยุบรวมคอมโบที่ซ้อนกัน",
"nestedComboExecute": "รันคอมโบที่ซ้อนกันเป็นเป้าหมาย",
"effectiveRoutingShare": "ส่วนแบ่งการกำหนดเส้นทางที่มีผลจริง (น้ำหนัก ÷ ทั้งหมด)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "โควตา",
+ "weightHealth": "สถานะการทำงาน",
+ "weightCostInv": "ต้นทุน",
+ "weightLatencyInv": "เวลาแฝง",
+ "weightTaskFit": "ความเหมาะสมกับงาน",
+ "weightStability": "ความเสถียร",
+ "weightTierPriority": "ระดับ",
+ "weightCacheAffinity": "ความสัมพันธ์กับการพบข้อมูลในแคช",
"weightSessionAvailability": "ความพร้อมใช้งานของเซสชัน",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "การกำหนดค่าการกำหนดเส้นทางอัจฉริยะ",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "ค่าพื้นฐานเพื่อความปลอดภัย",
+ "description": "ใช้โมเดลหลักหนึ่งโมเดลและรักษาลำดับการสำรองให้สั้นและเชื่อถือได้",
+ "tip1": "วางโมเดลที่เชื่อถือได้มากที่สุดไว้เป็นลำดับแรก",
+ "tip2": "เก็บโมเดลสำรอง 1-2 โมเดลที่มีคุณภาพใกล้เคียงกัน",
+ "tip3": "ใช้การลองใหม่ที่ปลอดภัยเพื่อรองรับความล้มเหลวชั่วคราวของผู้ให้บริการ"
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "การแบ่งทราฟฟิกแบบควบคุม",
+ "description": "เหมาะอย่างยิ่งสำหรับการทยอยเปิดใช้งานแบบ Canary และการย้ายระหว่างโมเดลอย่างค่อยเป็นค่อยไป",
+ "tip1": "เริ่มต้นด้วยการแบ่งแบบระมัดระวัง เช่น 90/10",
+ "tip2": "รักษาผลรวมไว้ที่ 100% และปรับสมดุลอัตโนมัติหลังการเปลี่ยนแปลง",
+ "tip3": "ตรวจสอบอัตราความสำเร็จและเวลาแฝงก่อนเพิ่มน้ำหนักของ Canary"
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "การกระจายโหลดที่คาดการณ์ได้",
+ "description": "เหมาะที่สุดเมื่อโมเดลมีประสิทธิภาพเทียบเท่ากันและคุณต้องการการกระจายที่ราบรื่น",
+ "tip1": "ใช้โมเดลอย่างน้อย 2 โมเดล",
+ "tip2": "กำหนดขีดจำกัดการทำงานพร้อมกันเพื่อหลีกเลี่ยงโอเวอร์โหลดจากโหลดที่พุ่งสูงฉับพลัน",
+ "tip3": "ใช้ระยะหมดเวลาของคิวเพื่อให้ล้มเหลวอย่างรวดเร็วเมื่อระบบอิ่มตัว"
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "กระจายอย่างรวดเร็วโดยตั้งค่าเพียงเล็กน้อย",
+ "description": "ใช้เมื่อคุณต้องการการกระจายแบบง่ายโดยไม่มีการรับประกันที่เข้มงวด",
+ "tip1": "ใช้โมเดลที่มีรูปแบบเวลาแฝงใกล้เคียงกัน",
+ "tip2": "เปิดใช้งานการลองใหม่ไว้เพื่อรองรับความล้มเหลวแบบสุ่ม",
+ "tip3": "เหมาะสำหรับการทดลองมากกว่า SLA ที่เข้มงวด"
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "การปรับสมดุลแบบปรับตัว",
+ "description": "กำหนดเส้นทางไปยังโมเดลที่ถูกใช้งานน้อยกว่าเพื่อลดจุดที่มีโหลดสูงเมื่อเวลาผ่านไป",
+ "tip1": "ทำงานได้ดีกว่าภายใต้ทราฟฟิกที่ต่อเนื่อง",
+ "tip2": "ใช้ร่วมกับการตรวจสอบสถานะเพื่อการปรับสมดุลที่ปลอดภัยยิ่งขึ้น",
+ "tip3": "ติดตามการใช้งานของแต่ละโมเดลเพื่อตรวจสอบประโยชน์จากการกระจาย"
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "การกำหนดเส้นทางโดยให้งบประมาณมาก่อน",
+ "description": "กำหนดเส้นทางไปยังโมเดลที่มีต้นทุนต่ำกว่าเมื่อมีข้อมูลเมตาด้านราคา",
+ "tip1": "ตรวจสอบให้แน่ใจว่ามีข้อมูลราคาครบถ้วนสำหรับโมเดลที่เลือกทั้งหมด",
+ "tip2": "เตรียมโมเดลสำรองที่มีคุณภาพไว้สำหรับพรอมต์ที่ยาก",
+ "tip3": "ใช้สำหรับงานแบบแบตช์/เบื้องหลังซึ่งมีต้นทุนเป็น KPI หลัก"
},
"reset-aware": {
"title": "รีเซ็ตการหมุนเวียนบัญชีที่ทราบ",
@@ -3593,11 +3597,11 @@
"tip3": "รักษาแถบผูกให้เล็กเพื่อให้บัญชีที่เทียบเท่ายังคงหมุนเวียนอย่างยุติธรรม"
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "การกระจายแบบสับสำรับ",
+ "description": "แต่ละโมเดลจะถูกใช้เพียงหนึ่งครั้งต่อรอบก่อนสับใหม่",
+ "tip1": "ใช้โมเดลอย่างน้อย 2 โมเดลเพื่อให้การกระจายมีประสิทธิผล",
+ "tip2": "ทำงานได้ดีที่สุดกับโมเดลที่มีประสิทธิภาพเทียบเท่ากัน",
+ "tip3": "เหมาะอย่างยิ่งสำหรับการปรับสมดุลโหลดระหว่างบัญชี API หลายบัญชี"
},
"fill-first": {
"description": "โควต้าผู้ให้บริการไอเสียตามลำดับก่อนถอยกลับ",
@@ -3642,86 +3646,86 @@
"title": "พลังแห่งสองทางเลือก"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "สแต็กฟรี ($0)",
+ "templateFreeStackDesc": "กระจายแบบ Round-robin ระหว่างผู้ให้บริการฟรีทั้งหมด: Kiro (Claude), Qoder (5 โมเดล), Qwen (4 โมเดล) ไม่มีค่าใช้จ่ายและเขียนโค้ดได้อย่างต่อเนื่อง",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "โหมด LKGP",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "เริ่มต้นใช้งาน Combo",
+ "wizardGuideDesc": "สร้าง Combo ของโมเดลเพื่อกำหนดเส้นทางทราฟฟิก AI อย่างชาญฉลาด",
+ "wizardGuideHint": "หรือคลิก + Create Combo ด้านบน",
+ "createFirstCombo": "สร้าง Combo แรกของคุณ",
+ "wizardStep1Title": "ตั้งชื่อ Combo ของคุณ",
+ "wizardStep1Desc": "ตั้งชื่อที่ไม่ซ้ำให้ Combo เพื่อใช้ระบุในกฎการกำหนดเส้นทาง",
+ "wizardStep2Title": "เพิ่มโมเดล",
+ "wizardStep2Desc": "เลือกโมเดล AI และจัดลำดับความสำคัญในการใช้โมเดลสำรอง",
+ "wizardStep3Title": "เลือกกลยุทธ์",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "ตรวจสอบและบันทึก",
+ "wizardStep4Desc": "ตรวจสอบการกำหนดค่าของคุณและเปิดใช้งาน Combo",
+ "usageGuideInvokeTitle": "วิธีเรียกใช้คอมโบนี้",
+ "usageGuideInvokeDesc": "ส่งชื่อคอมโบที่ตรงกันทุกประการเป็นโมเดล เช่น model: \"my-combo\" (หรือ combo/my-combo)",
+ "usageGuideInvokeAutoNote": "auto และ auto/* เป็นเราเตอร์แบบไม่ต้องกำหนดค่าแยกต่างหาก ซึ่งจะไม่ใช้คอมโบของคุณ (เว้นแต่จะมีคอมโบที่ใช้ชื่อว่า auto จริง ๆ)",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto เป็นผลิตภัณฑ์ OpenRouter แบบชำระเงินจริง (Auto Best Available) ไม่ใช่นามแฝงของ OmniRoute — ซ่อนได้ที่ การตั้งค่า → การกำหนดเส้นทาง → ซ่อนโมเดลแบบชำระเงิน",
+ "emailVisibilityStateOn": "เปิด",
+ "emailVisibilityStateOff": "ปิด",
+ "reorderHandle": "ลากเพื่อจัดลำดับใหม่",
+ "failedReorder": "จัดลำดับโมเดลใหม่ไม่สำเร็จ",
+ "builderFlowTitle": "ขั้นตอนการสร้างคอมโบ",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "ข้อมูลพื้นฐาน",
+ "description": "ชื่อและเทมเพลตเริ่มต้น"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "ขั้นตอน",
+ "description": "การเลือกผู้ให้บริการ โมเดล และบัญชี"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "กลยุทธ์",
+ "description": "พฤติกรรมการกำหนดเส้นทางและการตั้งค่าขั้นสูง"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "การกำหนดเส้นทางอัจฉริยะ",
+ "description": "กลุ่มตัวเลือกสำหรับการกำหนดเส้นทางอัตโนมัติ ค่าที่ตั้งไว้ และการให้คะแนน"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "ตรวจสอบ",
+ "description": "การตรวจสอบความถูกต้องขั้นสุดท้ายก่อนบันทึก"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderStageVisited": "ขั้นตอนเสร็จสมบูรณ์",
+ "builderStageCurrent": "ขั้นตอนปัจจุบัน",
+ "builderStagePending": "รอดำเนินการ",
+ "builderStageLocked": "ล็อกอยู่ — โปรดทำขั้นตอนก่อนหน้าให้เสร็จก่อน",
+ "builderTitle": "สร้างคอมโบ",
+ "builderBrowseCatalog": "เรียกดูแค็ตตาล็อก",
+ "builderProvider": "ผู้ให้บริการ",
+ "builderLoadingProviders": "กำลังโหลดผู้ให้บริการ...",
+ "builderSelectProvider": "เลือกผู้ให้บริการ",
+ "builderModel": "โมเดล",
+ "builderSelectModel": "เลือกโมเดล",
+ "builderProviderFirst": "เลือกผู้ให้บริการก่อน",
+ "builderAccount": "บัญชี",
+ "builderPreview": "ตัวอย่าง",
+ "builderAddStep": "เพิ่มขั้นตอน",
"builderDuplicateExact": "ขั้นตอนผู้ให้บริการ/รุ่น/บัญชีที่แน่นอนนี้มีอยู่ในคำสั่งผสมแล้ว",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "การอ้างอิงคอมโบ",
+ "builderAddComboRef": "เพิ่มการอ้างอิงคอมโบ",
+ "builderComboRefStep": "เพิ่มการอ้างอิงคอมโบ",
+ "builderPinnedAccount": "บัญชีที่ปักหมุด",
+ "builderLegacyEntry": "รายการแบบเดิม",
+ "reviewName": "ชื่อ",
+ "reviewStrategy": "กลยุทธ์",
+ "reviewSteps": "ขั้นตอน",
+ "reviewAccounts": "บัญชี",
+ "reviewProviders": "ผู้ให้บริการ",
+ "reviewComboRefs": "การอ้างอิงคอมโบ",
+ "reviewAdvanced": "การตั้งค่าขั้นสูง",
+ "reviewAgentFlags": "แฟล็กเอเจนต์",
+ "reviewSequence": "ลำดับโมเดล",
+ "reviewNoSteps": "ยังไม่ได้กำหนดค่าขั้นตอน",
"builderStagesDescription": "ทำแต่ละขั้นตอนให้เสร็จสิ้นเพื่อกำหนดคอมโบ สร้างขั้นตอน เลือกกลยุทธ์การกำหนดเส้นทาง และตรวจสอบผลลัพธ์",
"builderStepsDescription": "สร้างแต่ละขั้นตอนคอมโบตามลำดับ: ผู้ให้บริการ โมเดล และบัญชี ซึ่งช่วยให้สามารถนำผู้ให้บริการและโมเดลเดียวกันมาใช้ซ้ำในบัญชีต่างๆ ได้",
"selectProvider": "เลือกผู้ให้บริการ",
@@ -3796,27 +3800,27 @@
"range7d": "7 วัน",
"range30d": "30 วัน",
"range90d": "90 วัน",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 วัน",
+ "range365d": "365 วัน",
"rangeAll": "ตลอดเวลา",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "โมเดลที่ใช้งานอยู่",
+ "flatRateEstimateNotice": "รวมค่าใช้จ่ายโดยประมาณตามราคาโทเค็นสำหรับการสมัครสมาชิกแบบเหมาจ่าย ไม่ใช่ค่าใช้จ่ายที่เรียกเก็บจริง",
+ "flatRateEstimateForecast": "การคาดการณ์รวมค่าใช้จ่ายโดยประมาณแบบเหมาจ่าย",
+ "selectedWindow": "ช่วงเวลาที่เลือก",
+ "activeProviders": "ผู้ให้บริการที่ใช้งานอยู่",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "ค่าใช้จ่ายวันนี้",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "สัดส่วนผู้ให้บริการ",
+ "topProviders": "ผู้ให้บริการอันดับต้น",
+ "costTrend": "แนวโน้มค่าใช้จ่าย",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "โมเดลอันดับต้น",
"requestsInWindow": "Requests In Window",
"tokenUsage": "การใช้โทเค็น",
"totalTokens": "โทเค็นทั้งหมด",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "จุดสิ้นสุด API",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "ใช้เอนด์พอยต์ที่เข้ากันได้กับ OpenAI กับ SDK และเครื่องมือส่วนใหญ่",
+ "testEndpoint": "ทดสอบเอนด์พอยต์ →",
+ "advancedProtocols": "โปรโตคอลขั้นสูง",
"available": "จุดสิ้นสุดที่มีอยู่",
"cloudProxy": "พร็อกซีคลาวด์",
"disableConfirm": "คุณแน่ใจหรือไม่ว่าต้องการปิดใช้งานพร็อกซีระบบคลาวด์",
@@ -3896,7 +3900,7 @@
"disableCloud": "ปิดการใช้งานคลาวด์",
"enableCloud": "เปิดใช้งานคลาวด์",
"modelsAcrossEndpoints": "{models} โมเดลข้ามจุดสิ้นสุด {endpoints}",
- "loadingModels": "Loading available models...",
+ "loadingModels": "กำลังโหลดโมเดลที่พร้อมใช้งาน...",
"chatDesc": "การแชทแบบสตรีมมิงและไม่สตรีมกับผู้ให้บริการทั้งหมด",
"embeddings": "การฝัง",
"embeddingsDesc": "การฝังข้อความสำหรับการค้นหาและไปป์ไลน์ RAG",
@@ -3908,22 +3912,22 @@
"audioTranscriptionDesc": "ถอดเสียงไฟล์เสียงเป็นข้อความ (กระซิบ)",
"textToSpeech": "ข้อความเป็นคำพูด",
"textToSpeechDesc": "แปลงข้อความเป็นคำพูดที่ฟังดูเป็นธรรมชาติ",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "การสร้างเพลง",
+ "musicDesc": "สร้างเพลงและแทร็กเสียงผ่าน ComfyUI (Stable Audio, MusicGen)",
"moderations": "การกลั่นกรอง",
"moderationsDesc": "การกลั่นกรองเนื้อหาและการจำแนกความปลอดภัย",
"responsesDesc": "OpenAI Responses API สำหรับ Codex และเวิร์กโฟลว์เอเจนต์ขั้นสูง",
"listModelsDesc": "แสดงรายการโมเดลที่ใช้ได้ทั้งหมดจากผู้ให้บริการที่เชื่อมต่อ",
"settingsApiDesc": "อ่านและแก้ไขการกำหนดค่า OmniRoute ผ่าน API",
- "settingsApi": "Settings API",
+ "settingsApi": "API การตั้งค่า",
"categoryCore": "API หลัก",
"categoryMedia": "สื่อและมัลติโมดอล",
- "categorySearch": "Search & Discovery",
+ "categorySearch": "การค้นหาและการค้นพบ",
"categoryUtility": "ยูทิลิตี้และการจัดการ",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "การค้นหาเว็บ",
+ "webSearchDesc": "การค้นหาเว็บแบบรวมจากผู้ให้บริการหลายราย พร้อมการสลับไปใช้ระบบสำรองและการแคชโดยอัตโนมัติ",
+ "searchProvider": "ผู้ให้บริการค้นหา",
+ "searchProviderDesc": "ผู้ให้บริการนี้ใช้สำหรับการค้นหาเว็บผ่าน POST /v1/search โดยไม่จำเป็นต้องกำหนดค่าโมเดล — ผู้ให้บริการค้นหาพร้อมใช้งานทันทีเมื่อเชื่อมต่อคีย์ API แล้ว",
"enableCloudTitle": "เปิดใช้งานพร็อกซีคลาวด์",
"whatYouGet": "สิ่งที่คุณจะได้รับ",
"cloudBenefitAccess": "เข้าถึง API ของคุณได้จากทุกที่ในโลก",
@@ -3959,57 +3963,57 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "เปิดใช้งาน Tunnel",
+ "cloudflaredInstallAndEnable": "ติดตั้งและเปิดใช้งาน",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "กำลังทำงาน",
+ "cloudflaredStarting": "กำลังเริ่มต้น",
+ "cloudflaredStoppedState": "หยุดทำงานแล้ว",
+ "cloudflaredNotInstalled": "ยังไม่ได้ติดตั้ง",
+ "cloudflaredUnsupported": "ไม่รองรับ",
+ "cloudflaredError": "ข้อผิดพลาด",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "ข้อผิดพลาดล่าสุด: {error}",
"providerModelsTitle": "{provider} — โมเดล",
"noModelsForProvider": "ไม่มีรุ่นสำหรับผู้ให้บริการรายนี้",
"chat": "แชท",
"embedding": "การฝัง",
"image": "รูปภาพ",
"custom": "กำหนดเอง",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "modelsCount": "{count, plural, one {# โมเดล} other {# โมเดล}}",
+ "sectionTitle": "ส่วนติดต่อการผสานรวม",
+ "sectionDescription": "API ที่เข้ากันได้กับ OpenAI และปลายทางโปรโตคอลสำหรับการดำเนินงาน",
"tabApis": "API",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "โปรโตคอล",
+ "tabsAria": "ส่วนของปลายทาง",
+ "protocolsTitle": "โปรโตคอล",
+ "protocolsDescription": "MCP และ A2A เป็นปลายทางหลักที่มีระบบสังเกตการณ์และการควบคุมเฉพาะ",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "Model Context Protocol ผ่าน stdio",
+ "a2aCardTitle": "เซิร์ฟเวอร์ A2A",
+ "a2aCardDescription": "ปลายทาง Agent2Agent JSON-RPC",
+ "protocolToolsLabel": "เครื่องมือ",
+ "protocolTasksLabel": "งาน",
+ "protocolActiveStreamsLabel": "สตรีมที่ใช้งานอยู่",
+ "protocolLastActivity": "กิจกรรมล่าสุด",
+ "quickStart": "เริ่มต้นใช้งานอย่างรวดเร็ว",
+ "openMcpDashboard": "เปิดการจัดการ MCP",
+ "openA2aDashboard": "เปิดการจัดการ A2A",
+ "mcpQuickStartTitle": "เริ่มต้นใช้งาน MCP อย่างรวดเร็ว",
+ "mcpQuickStartStep1": "เรียกใช้เซิร์ฟเวอร์ MCP ผ่าน `omniroute --mcp`",
+ "mcpQuickStartStep2": "กำหนดค่าไคลเอนต์ MCP ให้เชื่อมต่อผ่านการรับส่งข้อมูลแบบ stdio",
+ "mcpQuickStartStep3": "เรียกใช้เครื่องมือ เช่น `omniroute_get_health` และ `omniroute_list_combos`",
+ "a2aQuickStartTitle": "เริ่มต้นใช้งาน A2A อย่างรวดเร็ว",
+ "a2aQuickStartStep1": "ค้นหาการ์ดเอเจนต์ได้ที่ `/.well-known/agent.json`",
+ "a2aQuickStartStep2": "ส่งคำขอ JSON-RPC ไปยัง `POST /a2a` โดยใช้ `message/send` หรือ `message/stream`",
+ "a2aQuickStartStep3": "ติดตามและควบคุมงานโดยใช้ `tasks/get` และ `tasks/cancel`",
+ "completionsLegacy": "การเติมข้อความให้สมบูรณ์ (แบบเดิม)",
+ "completionsLegacyDesc": "การเติมข้อความ OpenAI แบบเดิมให้สมบูรณ์ — รองรับทั้งสตริงพรอมต์และรูปแบบอาร์เรย์ข้อความ",
"messagesApi": "ข้อความ",
"messagesApiDesc": "รูปแบบ Native Anthropic Messages API สำหรับผู้ให้บริการที่เข้ากันได้กับ Claude",
"imageEdits": "การแก้ไขภาพ",
@@ -4018,40 +4022,40 @@
"batchApiDesc": "ประมวลผลคำขอจำนวนมากแบบอะซิงโครนัส (เข้ากันได้กับ OpenAI)",
"filesApi": "ไฟล์ API",
"filesApiDesc": "อัปโหลดและจัดการไฟล์สำหรับการประมวลผลเป็นชุด",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "การสร้างวิดีโอ",
+ "videoDesc": "สร้างวิดีโอโดยใช้โมเดล AI เช่น ComfyUI และ Stable Video Diffusion",
+ "tailscaleRequestFailed": "โหลดสถานะ Tailscale ไม่สำเร็จ",
+ "tailscaleEnableFailed": "เปิดใช้งาน Tailscale Funnel ไม่สำเร็จ",
+ "tailscaleWaitingForLogin": "เข้าสู่ระบบ Tailscale ให้เสร็จสมบูรณ์ในแท็บเบราว์เซอร์ที่เปิดขึ้น OmniRoute จะลองอีกครั้งโดยอัตโนมัติ",
+ "tailscaleLoginTimedOut": "หมดเวลารอการเข้าสู่ระบบ Tailscale",
+ "tailscaleWaitingForFunnel": "เปิดใช้งาน Funnel สำหรับอุปกรณ์นี้ในแท็บเบราว์เซอร์ที่เปิดขึ้น OmniRoute จะตรวจสอบสถานะต่อไป",
+ "tailscaleFunnelTimedOut": "หมดเวลารอการเปิดใช้งาน Tailscale Funnel",
+ "tailscaleStarted": "เปิดใช้งาน Tailscale Funnel แล้ว",
+ "tailscaleDisableFailed": "ปิดใช้งาน Tailscale Funnel ไม่สำเร็จ",
+ "tailscaleStopped": "ปิดใช้งาน Tailscale Funnel แล้ว",
+ "tailscaleInstallFailed": "ติดตั้ง Tailscale ไม่สำเร็จ",
+ "tailscaleInstallProgress": "กำลังดำเนินการ...",
+ "tailscaleInstalled": "ติดตั้ง Tailscale สำเร็จแล้ว",
+ "tailscaleRunning": "กำลังทำงาน",
+ "tailscaleNeedsLogin": "ต้องเข้าสู่ระบบ",
+ "tailscaleStoppedState": "หยุดทำงานแล้ว",
+ "tailscaleNotInstalled": "ยังไม่ได้ติดตั้ง",
+ "tailscaleUnsupported": "ไม่รองรับ",
+ "tailscaleError": "ข้อผิดพลาด",
+ "tailscaleDisable": "หยุด Funnel",
+ "tailscaleInstallAndEnable": "ติดตั้งและเปิดใช้งาน",
+ "tailscaleLoginAndEnable": "เข้าสู่ระบบและเปิดใช้งาน",
+ "tailscaleEnable": "เปิดใช้งาน Funnel",
+ "tailscaleUrlNotice": "ใช้ที่อยู่ .ts.net ของ Tailscale คุณ อาจต้องเข้าสู่ระบบและอนุมัติ Funnel ในการใช้งานครั้งแรก",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "ยืนยันตัวตนของเครื่องนี้กับ Tailscale แล้วเปิดใช้งาน Funnel",
+ "tailscaleBinaryPath": "ไฟล์ไบนารี: {path}",
+ "tailscaleLastError": "ข้อผิดพลาดล่าสุด: {error}",
+ "tailscaleInstallTitle": "ติดตั้ง Tailscale",
+ "tailscaleInstallIntro": "ติดตั้ง Tailscale บนเครื่องนี้และเตรียม OmniRoute ให้พร้อมสำหรับการเปิดใช้งาน Funnel",
+ "tailscaleInstallPasswordHint": "บน macOS และ Linux อาจต้องใช้ sudo เพื่อติดตั้งแพ็กเกจและเริ่มต้นดีมอน",
+ "tailscaleSudoPlaceholder": "รหัสผ่าน sudo (ไม่บังคับ)",
+ "tailscaleInstalling": "กำลังติดตั้ง",
"tailscaleSudoLabel": "รหัสผ่าน Sudo (จำเป็นบน macOS/Linux)",
"ngrokTitle": "อุโมงค์งรก",
"ngrokRunning": "วิ่ง",
@@ -4085,9 +4089,9 @@
"statusRunning": "กำลังทำงาน",
"tunnels": "ทันเนล",
"activeTunnelCount": "ใช้งานอยู่ {active} / {total}",
- "badgeLocal": "LOCAL",
- "badgeProtected": "PROTECTED",
- "badgeInternal": "INTERNAL",
+ "badgeLocal": "ภายในเครื่อง",
+ "badgeProtected": "ได้รับการป้องกัน",
+ "badgeInternal": "ภายใน",
"catalogLoadFailed": "การขอแค็ตตาล็อก API ล้มเหลวด้วย HTTP {status}",
"catalogLoadFailedGeneric": "โหลดแค็ตตาล็อก API ล้มเหลว",
"apiKeysLoadFailed": "โหลดคีย์ API ล้มเหลว ({status})",
@@ -4104,7 +4108,7 @@
"all": "ทั้งหมด",
"more": "อีก +{count}",
"showInternalTooltip": "แสดงหรือซ่อนเส้นทางภายใน (ซ่อนไว้โดยค่าเริ่มต้น)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "การยืนยันตัวตนแบบ Bearer",
"requestBody": "เนื้อหาคำขอ",
"close": "ปิด",
"tryIt": "ลองใช้งาน",
@@ -4114,7 +4118,7 @@
"enterManually": "ป้อนด้วยตนเอง",
"pasteApiKey": "วางคีย์ API ของคุณที่นี่",
"noActiveApiKeys": "ไม่พบคีย์ API ที่ใช้งานอยู่ สลับไปที่การป้อนข้อมูลด้วยตนเองเพื่อวางคีย์",
- "requestBodyJson": "Request Body (JSON)",
+ "requestBodyJson": "เนื้อหาคำขอ (JSON)",
"sending": "กำลังส่ง...",
"sendRequest": "ส่งคำขอ",
"dataSchemas": "สกีมาข้อมูล",
@@ -4124,7 +4128,7 @@
"vscodeAliasDescriptionLoading": "กำลังโหลดคีย์ CLI จะแสดง URL ตัวแทนจนกว่าจะมีคีย์พร้อมใช้งาน",
"vscodeAliasDescriptionPlaceholder": "กำลังแสดง URL ตัวแทน สร้างหรือเปิดใช้งานคีย์ API ในเครื่องมือ CLI เพื่อแทนที่ TOKEN",
"vscodeAliasManage": "เครื่องมือ CLI",
- "vscodeAliasBaseLabel": "VS Code base",
+ "vscodeAliasBaseLabel": "ฐาน VS Code",
"vscodeAliasModelsLabel": "โมเดล VS Code",
"vscodeAliasChatLabel": "แชท VS Code",
"localServer": "เซิร์ฟเวอร์ท้องถิ่น",
@@ -4135,14 +4139,14 @@
"badgeInternalTooltip": "นี่คือปลายทางระบบภายใน",
"tierAll": "ทั้งหมด",
"tierAuth": "ผ่านการตรวจสอบสิทธิ์แล้ว",
- "tierLoopback": "Loopback",
+ "tierLoopback": "ลูปแบ็ก",
"tierAlwaysProtected": "ได้รับการป้องกันเสมอ",
"tierPublic": "สาธารณะ",
"hideInternal": "ซ่อนระบบภายใน",
"showInternal": "แสดงระบบภายใน",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "พรอมต์ระบบแบบกำหนดเอง",
+ "customSystemPromptDescription": "แทรกพรอมต์ระบบแบบกำหนดเองลงในทุกคำขอไปยังโมเดล",
+ "customSystemPromptPlaceholder": "เช่น ตอบด้วยสำนวนโจรสลัดเสมอ...",
"obsidianEnterToken": "โปรดป้อนโทเค็น Obsidian API",
"obsidianConnectFailed": "เชื่อมต่อล้มเหลว",
"obsidianConnectionFailed": "การเชื่อมต่อล้มเหลว",
@@ -4172,7 +4176,7 @@
"obsidianDisable": "ปิดใช้งาน",
"obsidianConfigureMobile": "กำหนดค่า Obsidian บนมือถือ",
"obsidianMobileInstructions": "ใน Obsidian บนมือถือ: การตั้งค่า → ซิงค์ → WebDAV → ป้อนข้อมูลต่อไปนี้:",
- "obsidianWebdavUrl": "WebDAV URL",
+ "obsidianWebdavUrl": "URL ของ WebDAV",
"obsidianUsername": "ชื่อผู้ใช้",
"obsidianPassword": "รหัสผ่าน",
"obsidianTailscaleHint": "ใช้ Tailscale IP ของคุณแทน localhost หากเชื่อมต่อจากมือถือ อุปกรณ์ทั้งสองเครื่องต้องอยู่ในเครือข่าย Tailscale เดียวกัน",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "กำหนดค่าโทเค็นแล้ว เครื่องมือ Notion สามารถใช้งานได้ผ่าน MCP."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "พร็อกซีปลายทาง",
+ "tabApiEndpoints": "ปลายทาง API",
+ "apiEndpointsTitle": "ปลายทาง API",
+ "apiEndpointsDescription": "ปลายทาง API ของแบ็กเอนด์ที่แอปพลิเคชันและบริการอื่นสามารถเรียกใช้ได้ ส่วนนี้จะแสดง REST API ที่พร้อมใช้งานทั้งหมด พร้อมเอกสารประกอบและความสามารถในการทดสอบ",
+ "comingSoon": "เร็ว ๆ นี้",
+ "plannedFeatures": "ฟีเจอร์ที่วางแผนไว้",
+ "featureRestApi": "แคตตาล็อก REST API endpoint พร้อมเอกสารแบบโต้ตอบ",
+ "featureWebhooks": "การกำหนดค่า Webhook และการสมัครรับเหตุการณ์",
+ "featureSwagger": "การสร้างข้อกำหนด OpenAPI / Swagger โดยอัตโนมัติ",
+ "featureAuth": "การจัดการ API key และขอบเขต OAuth สำหรับแต่ละ endpoint"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "กำลังโหลดแดชบอร์ด MCP...",
+ "activate": "เปิดใช้งาน",
+ "deactivate": "ปิดใช้งาน",
+ "confirmSwitchCombo": "ยืนยันการ{action}คอมโบ \"{combo}\" หรือไม่",
+ "switchComboFailed": "ไม่สามารถเปลี่ยนสถานะคอมโบได้",
+ "switchComboSuccess": "อัปเดตคอมโบ \"{combo}\" แล้ว",
+ "confirmApplyProfile": "ใช้โปรไฟล์ความยืดหยุ่น \"{profile}\" หรือไม่",
+ "applyProfileFailed": "ไม่สามารถใช้โปรไฟล์ความยืดหยุ่นได้",
+ "applyProfileSuccess": "ใช้โปรไฟล์ \"{profile}\" แล้ว",
+ "confirmResetBreakers": "รีเซ็ต circuit breaker ทั้งหมดหรือไม่",
+ "resetBreakersFailed": "ไม่สามารถรีเซ็ต circuit breaker ได้",
+ "resetBreakersSuccess": "รีเซ็ต circuit breaker แล้ว",
+ "processStatus": "สถานะกระบวนการ",
"online": "Online",
"offline": "Offline",
"disableLabel": "ปิดใช้งาน {label}",
@@ -4233,119 +4237,119 @@
"mcpStep2": "กำหนดค่าไคลเอนต์ MCP ของคุณเพื่อเชื่อมต่อผ่านการรับส่งข้อมูล stdio",
"mcpStep3": "เรียกใช้เครื่องมือ เช่น {code1} และ {code2}",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "ระยะเวลาทำงานของเซสชัน",
+ "lastHeartbeat": "Heartbeat ล่าสุด",
+ "activity24h": "กิจกรรม (24 ชม.)",
+ "totalCalls": "จำนวนการเรียกทั้งหมด",
+ "successRate": "อัตราความสำเร็จ",
+ "avgLatency": "เวลาแฝงเฉลี่ย",
+ "topTools": "เครื่องมือที่ใช้มากที่สุด",
+ "noToolCalls24h": "ไม่มีการเรียกใช้เครื่องมือในช่วง 24 ชั่วโมงที่ผ่านมา",
+ "runtimeDetails": "รายละเอียดรันไทม์",
+ "transport": "การรับส่งข้อมูล",
+ "scopesEnforced": "บังคับใช้ขอบเขต",
+ "yes": "ใช่",
+ "no": "ไม่",
+ "lastCall": "การเรียกครั้งล่าสุด",
+ "heartbeatPath": "พาธ Heartbeat",
+ "operationalControls": "การควบคุมการทำงาน",
+ "switchCombo": "สลับคอมโบ",
+ "inactive": "ไม่ได้ใช้งาน",
+ "active": "ใช้งานอยู่",
+ "activateCombo": "เปิดใช้งานคอมโบ",
+ "deactivateCombo": "ปิดใช้งานคอมโบ",
+ "applyResilienceProfile": "ใช้โปรไฟล์ความทนทาน",
+ "profileAggressive": "เชิงรุก",
+ "profileBalanced": "สมดุล",
+ "profileConservative": "ระมัดระวัง",
+ "applyProfile": "ใช้โปรไฟล์",
+ "resetCircuitBreakers": "รีเซ็ตเซอร์กิตเบรกเกอร์",
+ "resetCircuitBreakersHelp": "ล้างสถานะเบรกเกอร์และตัวนับความล้มเหลวปัจจุบันสำหรับผู้ให้บริการ",
+ "resetAllBreakers": "รีเซ็ตเบรกเกอร์ทั้งหมด",
+ "toolsAndScopes": "เครื่องมือและขอบเขต",
+ "tableTool": "เครื่องมือ",
+ "tableScopes": "ขอบเขต",
+ "tablePhase": "ระยะ",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "บันทึกการตรวจสอบ",
+ "auditSummary": "การเรียก: {total} | หน้า {page} จาก {totalPages}",
+ "allTools": "เครื่องมือทั้งหมด",
+ "allResults": "ผลลัพธ์ทั้งหมด",
+ "success": "สำเร็จ",
+ "failure": "ล้มเหลว",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
+ "loadingAuditEntries": "กำลังโหลดรายการบันทึกการตรวจสอบ...",
+ "noAuditEntriesForFilters": "ไม่พบรายการบันทึกการตรวจสอบสำหรับตัวกรองปัจจุบัน",
+ "tableTimestamp": "ประทับเวลา",
+ "tableDuration": "ระยะเวลา",
"tableResult": "ผลลัพธ์",
"tableApiKey": "คีย์เอพีไอ",
"failed": "ล้มเหลว",
"previous": "ก่อนหน้า",
"next": "ต่อไป",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "apiKeyId": "รหัสคีย์ API",
+ "offset": "ออฟเซ็ต",
+ "limit": "ขีดจำกัด",
+ "tool": "เครื่องมือ"
},
"a2aDashboard": {
"loading": "กำลังโหลดแดชบอร์ด A2A...",
"confirmCancelTask": "ยกเลิกงาน {taskId}?",
"cancelTaskFailed": "ยกเลิกงานไม่สำเร็จ",
"cancelTaskSuccess": "งาน {taskId} ถูกยกเลิก",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "smokeSendFailed": "การทดสอบเบื้องต้นของ message/send ล้มเหลว",
+ "smokeSendSuccessWithTask": "message/send ทำงานปกติ (งาน {taskId})",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "การทดสอบเบื้องต้นของ message/stream ล้มเหลว",
+ "smokeStreamSuccessWithTask": "message/stream ทำงานปกติ (งาน {taskId}{stateSuffix})",
+ "smokeStreamNoTaskId": "message/stream เสร็จสิ้นโดยไม่มีรหัสงาน",
+ "health": "สถานะระบบ",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "งานทั้งหมด",
+ "activeStreams": "สตรีมที่ใช้งานอยู่",
+ "lastTask": "งานล่าสุด",
+ "taskStateOverview": "ภาพรวมสถานะงาน",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
+ "submitted": "ส่งแล้ว",
+ "working": "กำลังทำงาน",
+ "completed": "เสร็จสมบูรณ์",
"failed": "ล้มเหลว",
- "cancelled": "cancelled"
+ "cancelled": "ยกเลิกแล้ว"
},
- "agentCard": "Agent card",
+ "agentCard": "การ์ดเอเจนต์",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "เวอร์ชัน",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
+ "capabilities": "ความสามารถ",
+ "agentCardNotAvailable": "ไม่มีการ์ดเอเจนต์",
+ "quickValidation": "การตรวจสอบอย่างรวดเร็ว",
+ "quickValidationDescription": "ดำเนินการเรียกทดสอบเบื้องต้นผ่านปลายทาง `/a2a` ที่ใช้งานจริง",
+ "runMessageSend": "เรียกใช้ message/send",
+ "runMessageStream": "เรียกใช้ message/stream",
+ "taskManagement": "การจัดการงาน",
+ "taskSummary": "{total} งาน | หน้า {page} จาก {totalPages}",
+ "allStates": "ทั้งหมด",
+ "allSkills": "ทักษะทั้งหมด",
+ "loadingTasks": "กำลังโหลดงาน...",
+ "noTasksForFilters": "ไม่พบงานสำหรับตัวกรองปัจจุบัน",
+ "tableTask": "งาน",
+ "tableSkill": "ทักษะ",
+ "tableState": "สถานะ",
+ "tableUpdated": "อัปเดตเมื่อ",
+ "tableActions": "การดำเนินการ",
+ "view": "ดู",
+ "cancel": "ยกเลิก",
"previous": "ก่อนหน้า",
"next": "ต่อไป",
- "taskDetail": "Task detail",
- "close": "Close",
+ "taskDetail": "รายละเอียดงาน",
+ "close": "ปิด",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "เหตุการณ์",
+ "artifacts": "อาร์ติแฟกต์",
+ "tablePhase": "เฟสของตาราง",
+ "offset": "ออฟเซ็ต",
+ "limit": "ขีดจำกัด",
+ "skill": "ทักษะ",
"rpcEndpoint": "โพสต์ /a2a",
"rpcMethodSend": "ข้อความ/ส่ง",
"rpcMethodStream": "ข้อความ/สตรีม",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "การดำเนินการ",
+ "addMemory": "เพิ่มหน่วยความจำ",
+ "allTypes": "ทุกประเภท",
"cancel": "ยกเลิก",
"checkHealth": "ตรวจสุขภาพ",
"checkingHealth": "กำลังตรวจสอบ...",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "วิธีการทำงาน",
"howWorksContent": "1. การแยกข้อมูลอัตโนมัติ: เมื่อสิ้นสุดการตอบกลับแต่ละครั้ง ข้อเท็จจริงและเหตุการณ์จะถูกตรวจจับและบันทึกโดยอัตโนมัติ.\n2. การดึงข้อมูล: ก่อนการตอบกลับแต่ละครั้ง ความจำที่เกี่ยวข้องมากที่สุดจะถูกค้นหาผ่าน FTS5 (ตรงตัว), เวกเตอร์ (เชิงความหมาย) หรือ RRF แบบไฮบริด.\n3. การแทรกข้อมูล: ความจำที่เกี่ยวข้องจะถูกแทรกลงในบริบทของผู้ช่วยเพื่อปรับปรุงคุณภาพการตอบกลับ.\n4. การจัดการ: ใช้หน้านี้เพื่อดู แก้ไข ส่งออก และบีบอัดความจำเก่า."
},
- "content": "Content",
+ "content": "เนื้อหา",
"contentPlaceholder": "ค่าหรือเนื้อหา JSON ที่ต้องจดจำ",
- "created": "Created",
- "delete": "Delete",
+ "created": "สร้างเมื่อ",
+ "delete": "ลบ",
"deleteConfirmDesc": "การดำเนินการนี้ไม่สามารถยกเลิกได้. ความจำจะถูกลบออกอย่างถาวร.",
"deleteConfirmTitle": "ลบความจำหรือไม่?",
- "description": "View and manage stored memory entries",
+ "description": "ดูและจัดการรายการหน่วยความจำที่จัดเก็บไว้",
"editMemory": "แก้ไขความจำ",
"editModal": {
"title": "แก้ไขความจำ",
@@ -4429,7 +4433,7 @@
"reindexFailed": "เริ่มการสร้างดัชนีใหม่ไม่สำเร็จ",
"keywordLabel": "คีย์เวิร์ด (FTS5)",
"keywordReason": "การค้นหาด้วยคีย์เวิร์ดพร้อมใช้งานเสมอ",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "การฝังเวกเตอร์",
"vectorStoreLabel": "ที่จัดเก็บเวกเตอร์",
"qdrantLabel": "Qdrant",
"rerankLabel": "การจัดอันดับใหม่",
@@ -4440,20 +4444,20 @@
"configureCta": "กำหนดค่า",
"vectorStoreInstallHint": "หากต้องการเปิดใช้งานการค้นหาแบบเวกเตอร์: npm install sqlite-vec (ต้องใช้ Node.js แบบเนทีฟ ไม่ใช่ WASM) จากนั้นรีสตาร์ท"
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "เชิงเหตุการณ์",
+ "export": "ส่งออก",
+ "factual": "เชิงข้อเท็จจริง",
"healthUnknown": "สุขภาพไม่ทราบ",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "อัตราการค้นพบ",
+ "import": "นำเข้า",
"importError": "นำเข้าไฟล์ไม่สำเร็จ",
"importResult": "นำเข้าแล้ว {imported} รายการ, ข้าม {skipped} รายการ",
- "key": "Key",
+ "key": "คีย์",
"keyPlaceholder": "เช่น user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "หน่วยความจำ",
"next": "ถัดไป",
- "noMemories": "No memories found",
+ "noMemories": "ไม่พบหน่วยความจำ",
"pageInfo": "หน้า {page} จาก {totalPages} (รวม {total})",
"pipelineError": "ข้อผิดพลาดไปป์ไลน์",
"pipelineOk": "ไปป์ไลน์ตกลง ({latencyMs}ms)",
@@ -4470,7 +4474,7 @@
"simulate": "จำลอง",
"resultsTitle": "{count} ผลลัพธ์",
"resolutionTitle": "การประมวลผลการค้นหา",
- "resolutionEmbedding": "Embedding",
+ "resolutionEmbedding": "การฝังข้อมูล",
"resolutionStore": "ที่จัดเก็บเวกเตอร์",
"resolutionStrategy": "กลยุทธ์ที่ใช้",
"rerankApplied": "ใช้การจัดอันดับใหม่",
@@ -4481,7 +4485,7 @@
"errorFetch": "ดึงข้อมูลตัวอย่างไม่สำเร็จ"
},
"previous": "ก่อนหน้า",
- "procedural": "Procedural",
+ "procedural": "เชิงกระบวนการ",
"qdrant": {
"title": "Qdrant (ที่จัดเก็บเวกเตอร์ Tier 2)",
"description": "การผสานรวม Qdrant เสริมสำหรับการค้นหาเชิงความหมายที่ปรับขนาดได้",
@@ -4530,8 +4534,8 @@
},
"save": "บันทึก",
"saving": "กำลังบันทึก...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "ค้นหาหน่วยความจำ...",
+ "semantic": "เชิงความหมาย",
"summarize": {
"title": "บีบอัดความจำเก่า",
"noCandidates": "ไม่มีความจำที่เข้าเกณฑ์การบีบอัด (เกณฑ์: เก่ากว่า 30 วัน).",
@@ -4540,11 +4544,11 @@
},
"tabs": {
"memories": "ความจำ",
- "playground": "Playground",
+ "playground": "พื้นที่ทดลอง",
"engine": "เอนจิน"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "การจัดการหน่วยความจำ",
+ "tokensUsed": "โทเค็นที่ใช้",
"tooltip": {
"totalEntries": "ความทรงจำทั้งหมดที่จัดเก็บไว้สำหรับคีย์ API นี้",
"tokensUsed": "โทเค็นทั้งหมดโดยประมาณที่ใช้โดยความทรงจำที่ใช้งานอยู่",
@@ -4554,15 +4558,15 @@
"procedural": "ขั้นตอน เวิร์กโฟลว์ และคำแนะนำที่ผู้ช่วยควรปฏิบัติตาม",
"semantic": "แนวคิด ค่ากำหนด และความรู้เฉพาะโดเมน"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "รายการทั้งหมด",
+ "type": "ประเภท",
"memoryEnabled": "เปิดใช้งานความทรงจำแล้ว"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "ทักษะ",
+ "description": "จัดการและตรวจสอบทักษะ AI",
+ "skillsTab": "ทักษะ",
+ "executionsTab": "การดำเนินการ",
"selectSkillToInspect": "เลือกทักษะทางด้านซ้ายเพื่อตรวจสอบ",
"schemaTab": "สกีมา",
"handlerTab": "ตัวจัดการ",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "เรียกใช้การทดสอบ (ตัวยึดตำแหน่ง)",
"setModeAria": "ตั้งค่าโหมด {mode}",
"uninstallSkill": "ถอนการติดตั้งทักษะ",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "แซนด์บ็อกซ์",
+ "loading": "กำลังโหลดทักษะ...",
+ "noSkills": "ไม่พบทักษะ",
+ "noExecutions": "ไม่พบการดำเนินการ",
+ "enabled": "เปิดใช้งาน",
+ "disabled": "ปิดใช้งาน",
"delete": "ลบ",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "เวอร์ชัน",
+ "tableDescription": "คำอธิบาย",
+ "skill": "ทักษะ",
+ "status": "สถานะ",
+ "duration": "ระยะเวลา",
+ "time": "เวลา",
+ "sandboxConfig": "การกำหนดค่าแซนด์บ็อกซ์",
+ "cpuLimit": "ขีดจำกัด CPU",
+ "cpuLimitDesc": "เวลาดำเนินการสูงสุดต่อทักษะ",
+ "memoryLimit": "ขีดจำกัดหน่วยความจำ",
+ "memoryLimitDesc": "การจัดสรรหน่วยความจำสูงสุด",
+ "timeout": "หมดเวลา",
+ "timeoutDesc": "เวลารอสูงสุดสำหรับการตอบกลับ",
+ "networkAccess": "การเข้าถึงเครือข่าย",
+ "networkAccessDesc": "อนุญาตคำขอเครือข่ายขาออก",
+ "mode": "โหมด",
"q": "Q",
"filterSkillsPlaceholder": "กรองทักษะตามชื่อ คำอธิบาย หรือแท็ก",
"allModes": "ทุกโหมด",
@@ -4661,13 +4665,13 @@
"retry": "ลองอีกครั้ง",
"allOperational": "ใช้งานได้ทุกระบบ",
"issuesDetected": "ตรวจพบปัญหาของระบบ",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute พร้อมใช้งาน",
+ "healthVerdictActionRequired": "ต้องดำเนินการเพื่อให้ระบบกลับมาทำงานได้เต็มรูปแบบ",
+ "healthVerdictCoolingDown": "กำลังพักหลังจากการเปลี่ยนแปลงล่าสุด",
+ "healthSubtitle": "การตรวจสอบสถานะระบบ",
+ "advancedDiagnosticsTitle": "การวินิจฉัยขั้นสูง",
+ "hide": "ซ่อน",
+ "show": "แสดง",
"updatedAt": "อัปเดต {time}",
"latency": "เวลาแฝง",
"latencyP50": "หน้า 50",
@@ -4694,9 +4698,9 @@
"providers": "ผู้ให้บริการ",
"configuredProvidersLabel": "กำหนดค่าในแดชบอร์ด",
"configuredProvidersHint": "ผู้ให้บริการที่มีข้อมูลรับรองบันทึกไว้ใน /dashboard/providers โดยไม่คำนึงถึงสถานะรันไทม์",
- "activeProviders": "{count} active",
+ "activeProviders": "ใช้งานอยู่ {count} รายการ",
"activeProvidersHint": "ผู้ให้บริการที่กำหนดค่าไว้เปิดใช้งานอยู่สำหรับการร้องขอการกำหนดเส้นทาง",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "เฝ้าติดตาม {count} รายการ",
"monitoredProvidersHint": "ผู้ให้บริการในปัจจุบันได้รับการติดตามโดยเครื่องตรวจสุขภาพของเซอร์กิตเบรกเกอร์",
"healthyCount": "{count} สุขภาพแข็งแรง",
"nodeVersion": "โหนด {version}",
@@ -4717,11 +4721,11 @@
"resetting": "กำลังรีเซ็ต...",
"resetAll": "รีเซ็ตทั้งหมด",
"until": "จนถึง {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "ใช้หมดแล้ว",
+ "learnedFromHeaders": "เรียนรู้จากส่วนหัว",
+ "remainingOfLimit": "เหลือ {remaining}/{limit}",
+ "throttleStatus": "การจำกัดอัตรา: {value}",
+ "lastHeaderUpdate": "อัปเดตส่วนหัว: {age}",
"databaseHealth": "สุขภาพฐานข้อมูล",
"databaseHealthDescription": "วินิจฉัยและซ่อมแซมแถวโควตา/โดเมนที่ค้างอยู่และการอ้างอิงคอมโบที่เสียหาย.",
"status": "สถานะ",
@@ -4884,28 +4888,28 @@
"previous": "ก่อนหน้า",
"next": "ถัดไป",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "ดูรายละเอียด",
+ "eventMetadata": "ข้อมูลเมตาของเหตุการณ์",
+ "eventPayload": "เพย์โหลดของเหตุการณ์",
+ "requestId": "รหัสคำขอ",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
+ "offset": "ออฟเซ็ต",
+ "limit": "ขีดจำกัด",
+ "status": "สถานะ",
+ "resourceType": "ประเภททรัพยากร",
+ "totalEntries": "จำนวนรายการทั้งหมด",
+ "tab": "แท็บ",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "ปิด",
+ "runningRequests": "คำขอที่กำลังใช้งาน",
+ "runningRequestsDesc": "มุมมองแบบเรียลไทม์ของคำขอต้นทางที่กำลังทำงาน",
"clearAll": "ล้างทั้งหมด",
"confirmClearActiveRequests": "ล้างคำขอที่ทำงานอยู่ทั้งหมดใช่ไหม",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "โมเดล",
+ "provider": "ผู้ให้บริการ",
+ "account": "บัญชี",
+ "elapsed": "เวลาที่ผ่านไป",
"activeStage": "ขั้นตอน",
"activeStageUnknown": "ยังไม่ได้ส่งไปยังอัปสตรีม",
"activeStageRegistered": "ลงทะเบียนแล้ว",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "ได้รับสล็อต rate limit แล้ว",
"activeStageSendingToProvider": "กำลังส่งไปยังอัปสตรีม",
"activeStageProviderResponseStarted": "การตอบกลับจากอัปสตรีมเริ่มต้นแล้ว",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "จำนวน",
+ "payloads": "เพย์โหลด",
+ "viewPayloads": "ดู",
+ "activeCount": "ใช้งานอยู่ {count} รายการ",
+ "clientPayload": "เพย์โหลดคำขอของไคลเอนต์",
+ "upstreamPayload": "เพย์โหลดของผู้ให้บริการต้นทาง",
+ "upstreamNotSentYet": "ยังไม่ได้ส่งไปยังต้นทาง",
+ "runningRequestDetailMeta": "บัญชี: {account} — เวลาที่ผ่านไป: {elapsed}",
+ "export": "ส่งออก",
+ "exporting": "กำลังส่งออก...",
+ "exportFailed": "ส่งออกไม่สำเร็จ",
"cleanHistoryButton": "ล้างประวัติ",
"cleanHistoryTitle": "ล้างประวัติบันทึกหรือไม่?",
"cleanHistoryMessage": "การดำเนินการนี้จะล้างแถวบันทึกคำขอ แถวรายละเอียดเดิม และไฟล์อาร์ทิแฟกต์ในเครื่องทั้งหมดภายใต้ DATA_DIR/call_logs อย่างถาวร หน้าปัจจุบันจะรีเฟรชหลังจากการล้างข้อมูล",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "ล้างรายการบันทึก {deleted} รายการ, อาร์ทิแฟกต์ {deletedArtifacts} รายการ และแถวรายละเอียดเดิม {deletedDetailedLogs} แถวแล้ว",
"cleanHistoryEmpty": "ไม่พบประวัติบันทึกคำขอ",
"cleanHistoryFailed": "ล้างประวัติบันทึกไม่สำเร็จ",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "ช่วงเวลา",
+ "lastNHours": "{hours} ล่าสุด",
+ "defaultRange": "ค่าเริ่มต้น",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "ดึงบันทึกไม่สำเร็จ",
+ "copyFailed": "คัดลอกรายการบันทึกไม่สำเร็จ",
+ "copyLogEntry": "คัดลอกรายการบันทึก",
"filterByLevel": "กรองตามระดับบันทึก",
"searchPlaceholder": "ค้นหาบันทึก…",
"searchAria": "ค้นหารายการบันทึก",
@@ -4983,9 +4987,9 @@
"multiProvider": "ผู้ให้บริการหลายราย",
"usageTracking": "การติดตามการใช้งาน",
"securityDesc": "ตั้งรหัสผ่านเพื่อปกป้องแดชบอร์ดของคุณ หรือข้ามไปก่อน",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ หากไม่มีรหัสผ่าน คุณจะไม่สามารถเพิ่มผู้ให้บริการระหว่างการตั้งค่าได้ คุณสามารถเพิ่มได้ภายหลังจากแดชบอร์ดหลังจากตั้งรหัสผ่านแล้ว",
"providerDesc": "เชื่อมต่อผู้ให้บริการ AI รายแรกของคุณ คุณสามารถเพิ่มมากขึ้นในภายหลัง",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "คุณต้องตั้งรหัสผ่านก่อนจึงจะเพิ่มผู้ให้บริการได้ โปรดย้อนกลับไปยังขั้นตอนความปลอดภัยและตั้งรหัสผ่าน หรือเพิ่มผู้ให้บริการภายหลังจากแดชบอร์ด",
"apiKeyRequired": "คีย์ API (จำเป็น)",
"customUrlOptional": "URL ที่กำหนดเอง (ไม่บังคับ)",
"testDesc": "มาตรวจสอบการเชื่อมต่อผู้ให้บริการของคุณใช้งานได้",
@@ -5061,7 +5065,7 @@
"importFromFileSelectHint": "เลือกแล้ว {count} จาก {total}",
"importFromFileColProvider": "ผู้ให้บริการ",
"importFromFileColName": "ชื่อ",
- "importFromFileColBaseUrl": "Base URL",
+ "importFromFileColBaseUrl": "URL ฐาน",
"importFromFileErrorLine": "แถว {line}: {reason}",
"importErrorMissingProvider": "ไม่มีข้อมูลผู้ให้บริการ",
"importErrorMissingName": "ไม่มีข้อมูลชื่อ",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "กำลังนำเข้า…",
"importFromFileImport": "นำเข้าผู้ให้บริการ {count} ราย",
"importFromFileResult": "นำเข้าผู้ให้บริการสำเร็จ {success} ราย (ล้มเหลว {failed} ราย)",
+ "importFromFileDownloadTemplate": "ดาวน์โหลดเทมเพลต CSV",
+ "importFromFileMoreErrors": "อีก +{count} รายการ",
+ "importFromFileSchemaHint": "คอลัมน์ CSV เรียงตามตำแหน่งดังนี้: provider, name, apiKey, baseUrl (ไม่บังคับ), priority (ไม่บังคับ) คอลัมน์ provider ต้องเป็น ID ของผู้ให้บริการที่มีการจัดการอยู่แล้ว หรือ ID โหนดที่เข้ากันได้กับ OpenAI/Anthropic และลงทะเบียนไว้แล้ว — การนำเข้านี้จะไม่สร้างโหนดปลายทางใหม่",
"adaptaTutorial": {
"title": "วิธีเชื่อมต่อ Adapta Web",
"introPrefix": "Adapta ยืนยันตัวตนผ่าน Clerk โทเค็น",
@@ -5161,8 +5168,8 @@
"modelsHiddenCount": "ซ่อนอยู่ {count} รายการ",
"warningCount": "{count} คำเตือน",
"noConnections": "ไม่มีการเชื่อมต่อ",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "หมดอายุแล้ว",
+ "expiringSoonBadge": "ใกล้หมดอายุ",
"freeTier": "ฟรีเทียร์",
"freeTierAvailable": "มีเทียร์ฟรี",
"hasFreeTooltip": "มีระดับใช้งานฟรี",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "ผู้ให้บริการรายนี้เลิกใช้แล้ว",
"riskNotice": {
"title": "ก่อนดำเนินการต่อ",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "ข้อควรระวังในการใช้งาน",
"tooltip": "ผู้ให้บริการที่มีข้อควรระวังในการใช้งาน — คลิกเพื่อดูรายละเอียด",
"oauth": "ผู้ให้บริการรายนี้ใช้เซสชันผลิตภัณฑ์อย่างเป็นทางการ/OAuth ของคุณ ซึ่งไม่ได้รับอนุญาตให้ใช้กับพร็อกซี/เราเตอร์ เราไม่แนะนำให้ใช้งานเอเจนต์อัตโนมัติอย่างหนักหน่วง (เช่น สไตล์ OpenCloud, โฟลว์หลายขั้นตอนที่ยาวนาน, การประมวลผลแบบกลุ่มขนาดใหญ่) — ต้นทางอาจตอบสนองโดยการจำกัดหรือแบนบัญชี ใช้งานโดยยอมรับความเสี่ยงด้วยตนเอง",
"webCookie": "ผู้ให้บริการรายนี้ยืนยันตัวตนผ่านคุกกี้เซสชันเว็บของคุณ บริการต้นทางอาจทำให้เซสชันหมดอายุเมื่อใดก็ได้ ซึ่งจะทำให้คุณต้องเข้าสู่ระบบใหม่อีกครั้ง ไม่แนะนำสำหรับการทำงานระยะยาวที่ไม่มีการเฝ้าดูแล ใช้งานโดยยอมรับความเสี่ยงด้วยตนเอง",
@@ -5184,9 +5191,9 @@
"cancel": "ยกเลิก"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "มีการตั้งค่าสถานะการเชื่อมต่อ {count} รายการ — พบความล้มเหลวล่าสุดสูงสุด {maxFailures} ครั้ง{lastFailureSuffix} คลิกเพื่อดูสถานะการเชื่อมต่อ",
+ "lastFailureSuffix": "(ล้มเหลวล่าสุดเมื่อ {time})",
+ "ariaLabel": "ดูรายละเอียดสถานะการเชื่อมต่อ มีคำเตือน {count} รายการ"
},
"disabled": "ปิดการใช้งาน",
"enableProvider": "เปิดใช้งานผู้ให้บริการ",
@@ -5221,7 +5228,7 @@
"failedCreate": "ไม่สามารถสร้างผู้ให้บริการได้",
"errorOccurred": "เกิดข้อผิดพลาด โปรดลองอีกครั้ง",
"modelStatus": "สถานะโมเดล",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "เฉพาะที่กำหนดค่าไว้",
"allModelsOperational": "ใช้งานได้ทุกรุ่น",
"modelsWithIssues": "{count} โมเดลที่มีปัญหา",
"allModelsNormal": "ทุกรุ่นตอบสนองได้ปกติ",
@@ -5232,7 +5239,7 @@
"clearing": "กำลังล้างข้อมูล...",
"until": "จนถึง {time}",
"providerTestFailed": "การทดสอบผู้ให้บริการล้มเหลว",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "การทดสอบผู้ให้บริการหมดเวลา — มีการเชื่อมต่อที่ต้องทดสอบพร้อมกันมากเกินไป",
"modeTest": "{mode} ทดสอบ",
"passedCount": "{count} ผ่านไป",
"failedCount": "{count} ล้มเหลว",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "URL ไอคอน",
"iconUrlHint": "ไม่บังคับ URL รูปภาพที่จะแสดงเป็นไอคอนของผู้ให้บริการรายนี้",
"iconUrlInvalid": "URL ไอคอนไม่ถูกต้อง ใช้ http(s):// หรือ data:image/*;base64 URL.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "เขตเวลาสำหรับรีเซ็ตโควต้ารายวัน",
+ "dailyQuotaResetTimezoneHint": "เขตเวลา IANA ซึ่งไม่บังคับ ใช้เมื่อต้นทางไม่ได้ระบุ X-RateLimit-Reset เว้นว่างไว้เพื่อใช้ช่วงพักสั้น ๆ ต่อไป",
+ "dailyQuotaResetHourLabel": "ชั่วโมงที่รีเซ็ตโควต้ารายวัน",
+ "dailyQuotaResetHourHint": "ชั่วโมงท้องถิ่น 0-23 ในเขตเวลาด้านบน เว้นว่างหมายถึงไม่มีนาฬิการะดับโหนด",
"anthropicPrefixPlaceholder": "ac-ผลิตภัณฑ์",
"openaiPrefixPlaceholder": "oc-ผลิตภัณฑ์",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "ไม่พบผู้ให้บริการ",
"deleteConnectionConfirm": "ลบการเชื่อมต่อนี้ใช่ไหม",
"deleteConnectionConfirmNamed": "คุณแน่ใจหรือไม่ว่าต้องการลบ {name}? การกระทำนี้ไม่สามารถย้อนกลับได้",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "ลบรายการที่เลือก ({count})",
+ "batchDeleteConfirm": "ลบการเชื่อมต่อ {count} รายการหรือไม่ การดำเนินการนี้ไม่สามารถย้อนกลับได้",
+ "batchDeleteSuccess": "ลบการเชื่อมต่อแล้ว {count} รายการ",
"batchActivateSelected": "เปิดใช้งาน",
"batchDeactivateSelected": "ปิดใช้งาน",
"batchRetestSelected": "ทดสอบซ้ำ",
@@ -5288,7 +5295,7 @@
"filterError": "ข้อผิดพลาด",
"filterBanned": "ถูกแบน",
"filterCreditsExhausted": "เครดิตหมด",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "ค้นหาบัญชี…",
"noFilteredConnections": "ไม่มีการเชื่อมต่อที่ตรงกับตัวกรองปัจจุบัน",
"failedSetAlias": "ไม่สามารถตั้งชื่อแทนได้",
"setAliasSuccess": "ตั้งค่านามแฝง {alias} แล้ว",
@@ -5301,14 +5308,14 @@
"openaiCompatibleDetails": "รายละเอียดที่เข้ากันได้กับ OpenAI",
"messagesApi": "API ข้อความ",
"responsesApi": "API การตอบสนอง",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "การฝังเวกเตอร์",
+ "audioTranscriptions": "การถอดเสียงจากเสียง",
+ "audioSpeech": "การสังเคราะห์เสียงพูด",
+ "imagesGenerations": "การสร้างรูปภาพ",
"chatCompletions": "เสร็จสิ้นการแชท",
"importingModels": "กำลังนำเข้า...",
"importFromModels": "นำเข้าจาก /models",
- "modelsImported": "{count} models imported",
+ "modelsImported": "นำเข้าโมเดลแล้ว {count} รายการ",
"allModelsAlreadyImported": "นำเข้าโมเดลทั้งหมดแล้ว",
"noNewModelsToImport": "ไม่มีโมเดลใหม่ที่จะนำเข้า — โมเดลทั้งหมดมีอยู่แล้วในรีจิสทรีหรือรายการโมเดลที่กำหนดเอง",
"skippingExistingModels": "ข้าม {count} โมเดลที่มีอยู่",
@@ -5346,13 +5353,13 @@
"importFailed": "การนำเข้าล้มเหลว",
"noNewModelsAdded": "ไม่มีการเพิ่มโมเดลใหม่",
"adding": "กำลังเพิ่ม...",
- "close": "Close",
+ "close": "ปิด",
"importingModelsTitle": "การนำเข้าโมเดล",
"copyModel": "คัดลอกโมเดล",
"filterModels": "กรองโมเดล…",
"testAllRateLimited": "ถึงขีดจำกัดอัตราการใช้งานแล้ว หยุดทำงานก่อนกำหนด",
"hideFailedAuto": "ซ่อนโมเดลที่ล้มเหลวโดยอัตโนมัติ",
- "selectAllModels": "Select all",
+ "selectAllModels": "เลือกทั้งหมด",
"hideAllModels": "ซ่อนทั้งหมด",
"modelsActive": "ใช้งานอยู่",
"showModel": "แสดงโมเดล",
@@ -5382,8 +5389,8 @@
"bulkAddFormatHint": "หนึ่งคีย์ต่อบรรทัด รูปแบบ: name|apiKey หรือเพียง apiKey (ตั้งชื่ออัตโนมัติตามดัชนี)",
"bulkValidateKeys": "ตรวจสอบแต่ละคีย์ก่อนบันทึก (ช้ากว่า)",
"bulkAddAllKeys": "เพิ่มคีย์ทั้งหมด",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {เพิ่มคีย์แล้ว # รายการ} other {เพิ่มคีย์แล้ว # รายการ}}",
+ "bulkFailedCount": "{count, plural, one {ล้มเหลว # รายการ} other {ล้มเหลว # รายการ}}",
"optional": "ไม่จำเป็น",
"anthropicCompatibleName": "เข้ากันได้กับมานุษยวิทยา",
"openaiCompatibleName": "รองรับ OpenAI",
@@ -5400,7 +5407,7 @@
"unexpectedErrorOccurred": "เกิดข้อผิดพลาดที่ไม่คาดคิด",
"getApiKey": "รับคีย์ API",
"getApiKeyDescription": "ลงทะเบียนหรือสมัครสมาชิกเพื่อรับ API key",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# การเชื่อมต่อ} other {# การเชื่อมต่อ}}",
"messagesPath": "ข้อความ",
"responsesPath": "การตอบสนอง",
"chatCompletionsPath": "แชท/เสร็จสิ้น",
@@ -5415,17 +5422,17 @@
"configured": "กำหนดค่าแล้ว",
"providerProxyConfigureHint": "กำหนดค่าพร็อกซีสำหรับการเชื่อมต่อทั้งหมดของผู้ให้บริการรายนี้",
"providerProxy": "พร็อกซีของผู้ให้บริการ",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": "ซ่อมแซม env",
+ "repairEnvWorking": "กำลังซ่อมแซม...",
+ "repairEnvHint": "กู้คืนค่าเริ่มต้น OAuth ที่หายไปลงใน .env โดยไม่เขียนทับค่าที่มีอยู่",
+ "repairEnvSuccess": "กู้คืนค่าเริ่มต้น OAuth แล้ว",
+ "repairEnvFailed": "ซ่อมแซม .env ไม่สำเร็จ",
"noConnectionsYet": "ยังไม่มีการเชื่อมต่อ",
"addFirstConnectionHint": "เพิ่มการเชื่อมต่อครั้งแรกของคุณเพื่อเริ่มต้น",
"addConnection": "เพิ่มการเชื่อมต่อ",
"availableModels": "รุ่นที่มีจำหน่าย",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "โมเดลในตัว",
+ "builtInModelsHint": "โมเดลในรีจิสทรีสำหรับผู้ให้บริการรายนี้ ใช้ไอคอนดินสอเพื่อตั้งค่าตัวเลือกความเข้ากันได้",
"pageAutoRefresh": "หน้าจะรีเฟรชอัตโนมัติ...",
"statusDisabled": "ปิดการใช้งาน",
"statusConnected": "เชื่อมต่อแล้ว",
@@ -5471,24 +5478,24 @@
"reauthenticateConnection": "ตรวจสอบการเชื่อมต่อนี้อีกครั้ง",
"proxyConfig": "การกำหนดค่าพร็อกซี",
"aliasExistsAlert": "มีนามแฝง \"{alias}\" อยู่แล้ว โปรดใช้โมเดลอื่นหรือแก้ไขนามแฝงที่มีอยู่",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "ชื่อแฝง",
+ "clickToSetAlias": "คลิกเพื่อตั้งชื่อแฝง",
+ "clickToEditAlias": "ชื่อแฝง: {alias} (คลิกเพื่อแก้ไข)",
"openRouterAnyModelHint": "OpenRouter รองรับทุกรุ่น เพิ่มโมเดลและสร้างนามแฝงเพื่อการเข้าถึงที่รวดเร็ว",
"modelIdFromOpenRouter": "รหัสรุ่น (จาก OpenRouter)",
"openRouterModelPlaceholder": "มานุษยวิทยา / Claude-3-opus",
"customModels": "โมเดลที่กำหนดเอง",
"customModelsHint": "เพิ่มรหัสรุ่นที่ไม่ได้อยู่ในรายการเริ่มต้น สิ่งเหล่านี้จะพร้อมใช้งานสำหรับการกำหนดเส้นทาง",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "ปรับ ID การเรียกใช้เครื่องมือให้เป็น 9 อักขระ (เช่น Mistral)",
+ "preserveDeveloperRoleLabel": "คงบทบาท developer ของ OpenAI Responses ไว้ (ไม่แมปเป็น system)",
+ "compatAdjustmentsTitle": "ความเข้ากันได้",
+ "compatButtonLabel": "ความเข้ากันได้",
+ "compatToolIdShort": "ID เครื่องมือ 9 อักขระ",
+ "compatDeveloperShort": "บทบาท developer",
+ "compatDoNotPreserveDeveloper": "ไม่คงบทบาท developer ไว้",
+ "compatBadgeNoPreserve": "ไม่คงไว้",
+ "compatProtocolLabel": "โปรโตคอลคำขอของไคลเอนต์",
+ "compatProtocolHint": "ตัวเลือกเหล่านี้จะมีผลเมื่อ OmniRoute ตรวจพบรูปแบบคำขอนี้ (OpenAI Chat, Responses API หรือ Anthropic Messages)",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5509,7 +5516,7 @@
"paramFiltersSectionTitle": "ตัวกรองพารามิเตอร์",
"paramFiltersSectionHint": "ตัดออกหรือเพิ่มพารามิเตอร์คำขอกลับเข้าไปใหม่ก่อนส่งไปยังผู้ให้บริการนี้ ใช้เพื่อหลีกเลี่ยงข้อผิดพลาด 400 จากผู้ให้บริการที่ปฏิเสธพารามิเตอร์บางตัว (เช่น NVIDIA NIM ปฏิเสธ thinking)",
"paramFiltersBlockedLabel": "พารามิเตอร์ที่ถูกบล็อก",
- "paramFiltersBlockedHint": "These params are stripped from outgoing requests (denylist).",
+ "paramFiltersBlockedHint": "พารามิเตอร์เหล่านี้จะถูกนำออกจากคำขอขาออก (รายการปฏิเสธ)",
"paramFiltersAllowedLabel": "พารามิเตอร์ที่อนุญาต",
"paramFiltersAllowedHint": "พารามิเตอร์เหล่านี้จะถูกเพิ่มกลับเข้าไปใหม่หลังจากตัดรายการปฏิเสธออกแล้ว (เฉพาะในกรณีที่ไคลเอนต์ส่งมาเท่านั้น)",
"paramFiltersAutoLearnLabel": "เรียนรู้อัตโนมัติจากข้อผิดพลาด 400",
@@ -5530,25 +5537,25 @@
"interceptFetchHint": "เขียนทับการเรียกใช้เครื่องมือ web_fetch ดั้งเดิมไปยัง /v1/web/fetch ของ OmniRoute",
"interceptionLoadError": "โหลดการตั้งค่าการสกัดกั้นล้มเหลว: {error}",
"interceptionSaveError": "บันทึกการตั้งค่าการสกัดกั้นล้มเหลว: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "ccAliasSectionTitle": "แสดงใน Claude Code (claude/…)",
+ "ccAliasSectionHint": "ประกาศโมเดลของผู้ให้บริการรายนี้ภายใต้ ID มิเรอร์ claude/<provider>/<model> เพื่อให้การค้นหาโมเดลของเกตเวย์ Claude Code แสดงโมเดลเหล่านั้นได้ ค่าเริ่มต้นคือปิด — การเปิดใช้งานจะเพิ่มรายการในแค็ตตาล็อกเป็นสองเท่าสำหรับไคลเอนต์ทั้งหมด",
+ "ccAliasProviderLevelLabel": "ค่าเริ่มต้นของผู้ให้บริการ",
+ "ccAliasModelOverridesLabel": "การแทนที่สำหรับแต่ละโมเดล",
+ "ccAliasModelOverrideAriaLabel": "การแทนที่สำหรับ {modelId}",
+ "ccAliasStateInherit": "รับค่าที่สืบทอดมา",
+ "ccAliasStateOn": "เปิด",
+ "ccAliasStateOff": "ปิด",
+ "ccAliasAddModelPlaceholder": "ID โมเดล (เช่น gpt-4o)",
+ "ccAliasAddModelButton": "เพิ่มการแทนที่",
+ "ccAliasLoadError": "โหลดการตั้งค่านามแฝงสำหรับการค้นหาไม่สำเร็จ: {error}",
+ "ccAliasSaveError": "บันทึกการตั้งค่า discovery-alias ไม่สำเร็จ: {error}",
+ "compatUpstreamHeadersLabel": "ส่วนหัวต้นทางเพิ่มเติม",
+ "compatUpstreamHeadersHint": "การตั้งค่าที่มีสิทธิ์ระดับสูง — มีระดับความน่าเชื่อถือเทียบเท่ากับการแก้ไขข้อมูลรับรอง API ของผู้ให้บริการ จึงควรใช้โดยผู้ดูแลระบบที่เชื่อถือได้เท่านั้น โดยจะผสานหลังจาก OmniRoute เพิ่มข้อมูลยืนยันตัวตนจากคีย์ API ของผู้ให้บริการ หากส่วนหัวที่กำหนดเองใช้ชื่อเดียวกับส่วนหัวที่มีอยู่ (เช่น Authorization) ค่าของคุณจะแทนที่ส่วนหัวที่สร้างโดยอัตโนมัติทั้งหมด (รวมถึงโทเค็น Bearer) — ต้นทางจะเห็นเฉพาะค่าที่คุณป้อน ไม่ใช่คีย์จากการตั้งค่า การกำหนดค่าผิดพลาดอาจทำให้เกิดข้อผิดพลาด 401 หรือทำให้การยืนยันตัวตนกับต้นทางใช้งานไม่ได้ หนึ่งแถวต่อหนึ่งส่วนหัว (เช่น Authentication เพิ่มเติมสำหรับเกตเวย์บางแห่ง) วางเมาส์เหนือหรือโฟกัสที่ค่าเพื่อดูตัวอย่าง ระบบจะบันทึกเมื่อออกจากโฟกัส คลิกภายนอก หรือปิดแผงนี้",
+ "compatUpstreamHeaderName": "ชื่อส่วนหัว",
+ "compatUpstreamHeaderValue": "ค่า",
+ "compatUpstreamAddRow": "เพิ่มส่วนหัว",
+ "compatUpstreamRemoveRow": "ลบแถว",
+ "compatBadgeUpstreamHeaders": "ส่วนหัว",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
"importFreeModelsOnlyLabel": "นำเข้าเฉพาะโมเดลฟรี",
@@ -5588,26 +5595,26 @@
"email": "อีเมล",
"healthCheckMinutes": "ตรวจสุขภาพ (ขั้นต่ำ)",
"healthCheckHint": "ช่วงเวลาการรีเฟรชโทเค็นเชิงรุก 0 = ปิดการใช้งาน",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "deselectAllModels": "ยกเลิกการเลือกทั้งหมด",
+ "modelsActiveCount": "เปิดใช้งาน {active}/{total} รายการ",
+ "noModelsMatch": "ไม่มีโมเดลที่ตรงกับ \"{filter}\"",
+ "groupLabel": "สภาพแวดล้อม",
+ "groupPlaceholder": "เช่น eKaizen, ส่วนบุคคล",
"failedTestConnection": "ทดสอบการเชื่อมต่อไม่สำเร็จ",
"failed": "ล้มเหลว",
"leaveBlankKeepCurrentApiKey": "เว้นว่างไว้เพื่อเก็บคีย์ API ปัจจุบันไว้",
"editCompatibleTitle": "แก้ไข {type} เข้ากันได้",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "URL รากของ API ที่เข้ากันได้กับ {type} ของคุณ ใช้การตั้งค่าขั้นสูงสำหรับพาธปลายทางที่กำหนดเอง",
"apiKeyForCheck": "คีย์ API (สำหรับการตรวจสอบ)",
"testModelIdLabel": "ID โมเดล (ไม่บังคับ)",
"testModelIdPlaceholder": "เช่น my-model-id",
"testModelIdHint": "หากผู้ให้บริการไม่มีปลายทาง /models ให้ป้อน ID โมเดลเพื่อตรวจสอบความถูกต้องผ่าน /chat/completions แทน",
"compatibleProdPlaceholder": "{type} เข้ากันได้ (ผลิตภัณฑ์)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "รีเฟรชโทเค็นสำเร็จแล้ว",
+ "tokenRefreshFailed": "รีเฟรชโทเค็นไม่สำเร็จ",
"cursorSessionUnchanged": "เซสชันปัจจุบันอยู่แล้ว",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "ใช้การยืนยันตัวตน",
+ "exportCodexAuthFile": "ส่งออกข้อมูลยืนยันตัวตน",
"applyClaudeAuthLocal": "ใช้การรับรองความถูกต้อง",
"exportClaudeAuthFile": "รับรองการส่งออก",
"importClaudeAuth": "นำเข้าการรับรองความถูกต้อง",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} ล้มเหลว",
"codexImportBulkZipExtracting": "กำลังแตกไฟล์ ZIP...",
"codexImportBulkZipError": "ไม่สามารถแยก ZIP",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "การตั้งค่าขั้นสูง",
+ "chatPathLabel": "พาธปลายทางแชต",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "พาธแชตที่กำหนดเองสำหรับผู้ให้บริการที่ใช้ API ซึ่งไม่เป็นไปตามมาตรฐาน (เช่น /v4/chat/completions)",
+ "modelsPathLabel": "พาธปลายทางโมเดล",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "พาธโมเดลที่กำหนดเองสำหรับการตรวจสอบความถูกต้อง (เช่น /v4/models)",
"clientIdentityLabel": "ข้อมูลประจำตัวของไคลเอนต์",
"clientIdentityHint": "ไม่บังคับ เพิ่มส่วนหัวลายนิ้วมือของไคลเอนต์ (เช่น User-Agent) ที่ตรงกับ CLI ที่รู้จักสำหรับเกตเวย์ที่เข้ากันได้ซึ่งต้องการส่วนหัวนี้",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "ปิดใช้งาน (ด้วยตนเอง)",
+ "statusBanned": "ถูกแบน / ละเมิดข้อกำหนดของแซนด์บ็อกซ์",
+ "statusCreditsExhausted": "ยอดคงเหลือไม่เพียงพอ / โควตาหมด",
+ "showEmails": "แสดงอีเมลทั้งหมด",
+ "hideEmails": "ซ่อนอีเมลทั้งหมด",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "เพิ่มคีย์ API อื่นหรือวางหลายคีย์",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "เกตเวย์ตัวรวบรวม",
"enterpriseCloud": "องค์กรและคลาวด์",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "ป้ายกำกับรูปแบบ API",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "จีน",
+ "apiRegionHint": "คำแนะนำเกี่ยวกับภูมิภาค API",
+ "apiRegionInternational": "นานาชาติ",
+ "apiRegionLabel": "ป้ายกำกับภูมิภาค API",
+ "apikey": "คีย์ API",
+ "audio": "เสียง",
+ "audioProvidersHeading": "หัวข้อผู้ให้บริการเสียง",
"cloudAgentProviders": "ผู้ให้บริการตัวแทนระบบคลาวด์",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "ป้ายกำกับแบบสั้นสำหรับเสียง",
+ "azureOpenAiBaseUrlHint": "คำแนะนำ Base URL ของ Azure OpenAI",
+ "bailianBaseUrlHint": "คำแนะนำ Base URL ของ Bailian",
+ "claudeWebCookieHint": "เปิด claude.ai → DevTools → Application → Cookies → claude.ai แล้วคัดลอกค่าของ 'sessionKey' นอกจากนี้ ยังต้องใช้ cf_clearance, __cf_bm และ _cfuvid สำหรับ Cloudflare",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "คำแนะนำคุกกี้เว็บ Blackbox",
+ "blackboxWebCookiePlaceholder": "ตัวยึดตำแหน่งคุกกี้เว็บ Blackbox",
"t3ChatWebCookieHint": "เปิด t3.chat → DevTools → Application → Local Storage → https://t3.chat คัดลอก 'convex-session-id' จากนั้นเปิด DevTools → Network คัดลอกส่วนหัวคุกกี้แบบเต็มจากคำขอแชท วางทั้งสองค่าในช่องด้านล่าง",
"t3ChatWebCookiePlaceholder": "นูน-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "คำแนะนำคุกกี้เว็บ Grok",
"blockClaudeExtraUsageDescription": "เมื่อเปิดใช้งาน OmniRoute จะทำเครื่องหมายการเชื่อมต่อ Claude นี้ว่าไม่สามารถใช้งานได้ทันทีที่ API การใช้งานรายงานการใช้งานพิเศษที่รออยู่ ดังนั้นการสำรองข้อมูลจะเปลี่ยนไปยังการเชื่อมต่ออื่นแทนที่จะดำเนินการต่อในระบบการเรียกเก็บเงินพิเศษแบบจ่ายตามการใช้งาน",
"blockClaudeExtraUsageLabel": "บล็อกการใช้งาน Claude ที่เกินความจำเป็น",
"disableCoolingDescription": "ข้ามคูลดาวน์ชั่วคราวเพื่อให้การเชื่อมต่อนี้ยังคงมีสิทธิ์ใช้งานได้แม้หลังจากเกิดข้อผิดพลาดที่กู้คืนได้ (สถานะสิ้นสุด เช่น ถูกแบน/หมดอายุ ยังคงมีผลอยู่)",
"disableCoolingLabel": "ปิดใช้งานคูลดาวน์สำหรับการเชื่อมต่อนี้",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {เพิ่มคีย์แล้ว 1 คีย์} other {เพิ่มคีย์แล้ว # คีย์}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {ข้ามคีย์ที่ซ้ำ 1 คีย์} other {ข้ามคีย์ที่ซ้ำ # คีย์}}",
+ "bulkPasteHint": "วาง API key หนึ่งคีย์ต่อบรรทัด ระบบจะละเว้นบรรทัดว่างและข้ามคีย์ที่ซ้ำกัน",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "เพิ่มเฮดเดอร์เบต้า redact-thinking สำหรับอัปสตรีมที่เข้ากันได้กับ CC ซึ่งต้องใช้สตรีมการคิดของ Claude แบบซ่อน",
+ "ccCompatibleRedactThinkingLabel": "เปิดใช้ redact-thinking รุ่นเบต้า",
+ "ccCompatibleSummarizeThinkingDescription": "เพิ่ม `display: \"summarized\"` ไปยังคำขอการคิดที่เข้ากันได้กับ CC เพื่อให้โมเดล Claude ที่รองรับสามารถสตรีมส่วนต่างของกระบวนการคิดที่มองเห็นได้",
+ "ccCompatibleSummarizeThinkingLabel": "เปิดใช้การแสดงกระบวนการคิดแบบสรุป",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,16 +5811,16 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "ใช้ระดับบริการแบบมีลำดับความสำคัญสำหรับคำขอ Codex เมื่อพร้อมใช้งาน",
+ "codexFastServiceTierLabel": "ระดับบริการแบบรวดเร็วของ Codex",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
+ "compatUpstreamHeaderNamePlaceholder": "ตัวยึดตำแหน่งชื่อเฮดเดอร์อัปสตรีมที่เข้ากันได้",
+ "compatUpstreamHeaderValuePlaceholder": "ตัวยึดตำแหน่งค่าเฮดเดอร์อัปสตรีมที่เข้ากันได้",
+ "compatible": "เข้ากันได้",
+ "configuredCount": "จำนวนที่กำหนดค่าแล้ว",
+ "consoleApiKeyOracleHint": "คำแนะนำ Console API Key ของ Oracle",
+ "consoleApiKeyOracleLabel": "ป้ายกำกับ Console API Key ของ Oracle",
+ "consoleApiKeyOraclePlaceholder": "ตัวยึดตำแหน่ง Console API Key ของ Oracle",
"newApiUserIdLabel": "รหัสผู้ใช้ New-API",
"newApiUserIdPlaceholder": "เช่น 12345",
"newApiUserIdHint": "ค่าส่วนหัว New-Api-User ของ AgentRouter ใช้ร่วมกับคีย์ API ของคอนโซลเพื่อดึงยอดคงเหลือโควตา",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "เปิดใช้งานการตรวจจับยอดคงเหลือสำหรับโหนดที่เข้ากันได้กับ New-API / One-API / Sub2API aggregator",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "คำแนะนำ User Agent แบบกำหนดเอง",
+ "customUserAgentLabel": "ป้ายกำกับ User Agent แบบกำหนดเอง",
+ "databricksBaseUrlHint": "คำแนะนำ Base URL ของ Databricks",
+ "defaultThinkingStrengthHint": "ใช้เมื่อคำขอไม่ได้ระบุระดับความเข้มข้นในการให้เหตุผล",
+ "defaultThinkingStrengthLabel": "ระดับความเข้มข้นในการคิดเริ่มต้น",
+ "deleteAllExtraApiKeys": "ลบทั้งหมด",
+ "excludedModelsHint": "คำแนะนำโมเดลที่ยกเว้น",
+ "excludedModelsLabel": "ป้ายกำกับโมเดลที่ยกเว้น",
+ "excludedModelsPlaceholder": "ตัวยึดตำแหน่งโมเดลที่ยกเว้น",
+ "expirationBannerExpired": "หมดอายุแล้ว",
+ "expirationBannerExpiredDesc": "หมดอายุแล้ว",
+ "expirationBannerExpiringSoon": "ใกล้หมดอายุ",
+ "expirationBannerExpiringSoonDesc": "กำลังจะหมดอายุในเร็ว ๆ นี้",
+ "extraApiKeyMasked": "คีย์ {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "คำแนะนำ API key เพิ่มเติม",
+ "extraApiKeysLabel": "ป้ายกำกับ API key เพิ่มเติม",
+ "apiKeyHealthLabel": "สถานะของ API Key",
+ "apiKeyStatusActive": "ใช้งานอยู่",
+ "apiKeyStatusWarning": "คำเตือน ({count} ครั้งที่ล้มเหลว)",
+ "apiKeyStatusInvalid": "ไม่ถูกต้อง",
+ "primaryKey": "คีย์หลัก",
+ "apiKeyInvalidAlert": "คีย์ API จำนวน {count} คีย์ถูกทำเครื่องหมายว่าไม่ถูกต้อง เนื่องจากการยืนยันตัวตนล้มเหลวในการเชื่อมต่อ: {connections} คีย์เหล่านี้จะถูกข้ามในการหมุนเวียน คลิกเพื่อตรวจสอบ",
+ "apiKeyInvalidAlertTitle": "การแจ้งเตือนสถานะคีย์ API",
+ "apiKeyWarningAlert": "คีย์ API จำนวน {count} คีย์อยู่ในสถานะคำเตือน เนื่องจากมีอัตราความล้มเหลวสูงในการเชื่อมต่อ: {connections} โปรดตรวจสอบเพื่อป้องกันปัญหาในการหมุนเวียน",
+ "apiKeyWarningAlertTitle": "คำเตือนเกี่ยวกับคีย์ API",
+ "googlePseInfo": "ข้อมูล Google Pse",
"antigravityProjectIdHint": "การแทนที่ทางเลือกสำหรับคำขอ Antigravity Cloud Code เว้นว่างไว้เพื่อใช้โปรเจ็กต์ที่ค้นพบระหว่าง Google OAuth",
"antigravityClientProfileLabel": "โปรไฟล์ไคลเอนต์",
"antigravityClientProfileHint": "เลือกตัวตนไคลเอนต์ Antigravity ที่ OmniRoute จะแสดงต่อ API",
@@ -5861,18 +5868,18 @@
"tierFast": "เร็ว",
"antigravityProjectIdLabel": "รหัสโครงการ Google Cloud",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "ตัวยึดตำแหน่งคุกกี้เว็บ Grok",
+ "herokuBaseUrlHint": "คำแนะนำ URL ฐานของ Heroku",
+ "hideEmail": "ซ่อนอีเมล",
+ "imageProviders": "ผู้ให้บริการรูปภาพ",
"videoProviders": "การสร้างวิดีโอ",
"embeddingRerankProviders": "การฝังและการจัดอันดับใหม่",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "ป้ายชื่อแบบสั้นสำหรับรูปภาพ",
+ "llmProviders": "ผู้ให้บริการ LLM",
+ "localProviderApiKeyOptionalHint": "คำแนะนำคีย์ API ของผู้ให้บริการภายในเครื่อง (ไม่บังคับ)",
+ "localProviderBaseUrlHint": "คำแนะนำ URL ฐานของผู้ให้บริการภายในเครื่อง",
+ "localProviders": "ผู้ให้บริการภายในเครื่อง",
+ "maxConcurrentWholeNumberError": "ข้อผิดพลาด: จำนวนการทำงานพร้อมกันสูงสุดต้องเป็นจำนวนเต็ม",
"m365TierLabel": "ระดับ Copilot",
"m365TierHint": "เลือกอินเทอร์เฟซ Microsoft 365 Copilot ที่การเชื่อมต่อนี้ใช้ Individual คือ BizChat สำหรับผู้บริโภคทั่วไปที่เป็นค่าเริ่มต้น ส่วน Education และ Enterprise (งาน) จะเลือกใช้ตามอินเทอร์เฟซของเทแนนท์ของตน",
"m365TierIndividualOption": "ส่วนบุคคล (ค่าเริ่มต้น)",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "ราคาประหยัด",
"tierOverridePremium": "พรีเมียม",
"tierOverrideHelpText": "ปักหมุดผู้ให้บริการนี้ไว้กับระดับการกำหนดเส้นทาง แทนที่จะปล่อยให้ OmniRoute คาดเดาจากราคาของโมเดล",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "คำแนะนำคุกกี้เว็บ Muse Spark",
+ "museSparkWebCookiePlaceholder": "ตัวยึดตำแหน่งคุกกี้เว็บ Muse Spark",
+ "oauth": "OAuth",
+ "openCliTools": "เปิดเครื่องมือ CLI",
+ "openSettings": "เปิดการตั้งค่า",
+ "openaiResponsesStoreDescription": "อนุญาตให้คำขอ Responses API ที่เข้ากันได้เก็บรักษาสถานะการตอบกลับที่จัดเก็บไว้",
+ "openaiResponsesStoreLabel": "ที่เก็บ OpenAI Responses",
+ "perplexitySearchSharedKeyInfo": "ข้อมูลคีย์ที่ใช้ร่วมกันสำหรับ Perplexity Search",
+ "perplexityWebCookieHint": "คำแนะนำคุกกี้เว็บ Perplexity",
+ "perplexityWebCookiePlaceholder": "ตัวยึดตำแหน่งคุกกี้เว็บ Perplexity",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "การเขียนทับการจำกัดอัตรา",
"rateLimitOverridesMaxConcurrentHint": "การเขียนทับจำนวนคำขอพร้อมกันสูงสุดสำหรับการเชื่อมต่อนี้ ซึ่งจะเขียนทับขีดจำกัดในระดับบัญชี",
"rateLimitOverridesMaxConcurrentLabel": "จำนวนพร้อมกันสูงสุด (การจำกัดอัตรา)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "ระยะเวลาสูงสุด (ms) ที่คำขอสามารถรอช่องโควตาอัตราการใช้งานก่อนที่จะล้มเหลว โดยจะแทนที่การตั้งค่า Resilience ส่วนกลางสำหรับการเชื่อมต่อนี้เท่านั้น",
+ "rateLimitOverridesMaxWaitMsLabel": "เวลารอคิวสูงสุด (ms)",
"rateLimitOverridesMinTimeHint": "เวลาขั้นต่ำ (มิลลิวินาที) ระหว่างคำขอ ซึ่งจะเขียนทับการหน่วงเวลาของตัวจำกัดอัตราเริ่มต้น",
"rateLimitOverridesMinTimeLabel": "ช่วงเวลาขั้นต่ำ (มิลลิวินาที)",
"rateLimitOverridesRpdHint": "จำนวนคำขอสูงสุดต่อวันสำหรับการเชื่อมต่อนี้ แทนที่ค่าเริ่มต้นของผู้ให้บริการ",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (โทเค็น/วัน)",
"rateLimitOverridesTpmHint": "จำนวนโทเค็นสูงสุดต่อนาทีสำหรับการเชื่อมต่อนี้ ซึ่งจะเขียนทับค่าเริ่มต้นของผู้ให้บริการ",
"rateLimitOverridesTpmLabel": "TPM (โทเค็น/นาที)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "refreshOauthTokenTitle": "รีเฟรชโทเค็น OAuth",
+ "regionHint": "คำแนะนำเกี่ยวกับภูมิภาค",
+ "regionLabel": "ภูมิภาค",
+ "removeThisKey": "นำคีย์นี้ออก",
+ "routingTagsHint": "คำแนะนำเกี่ยวกับแท็กการกำหนดเส้นทาง",
+ "routingTagsLabel": "แท็กการกำหนดเส้นทาง",
+ "routingTagsPlaceholder": "ตัวยึดตำแหน่งแท็กการกำหนดเส้นทาง",
+ "search": "ค้นหา",
+ "searchEngineIdHint": "คำแนะนำสำหรับรหัสเครื่องมือค้นหา",
+ "searchEngineIdLabel": "รหัสเครื่องมือค้นหา",
+ "searchEngineIdRequired": "ต้องระบุรหัสเครื่องมือค้นหา",
+ "searchProvider": "ผู้ให้บริการค้นหา",
+ "searchProviderDesc": "คำอธิบายผู้ให้บริการค้นหา",
"searchProviders": "ค้นหาผู้ให้บริการ...",
"searchByModel": "ค้นหาตามโมเดล…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "ผู้ให้บริการค้นหา",
+ "searxngBaseUrlHint": "คำแนะนำสำหรับ URL ฐานของ Searxng",
+ "searxngInfo": "ข้อมูล Searxng",
+ "sessionCookieLabel": "คุกกี้เซสชัน",
+ "showEmail": "แสดงอีเมล",
+ "snowflakeBaseUrlHint": "คำแนะนำสำหรับ URL ฐานของ Snowflake",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "คำแนะนำสำหรับกลุ่มแท็ก",
+ "tagGroupLabel": "กลุ่มแท็ก",
+ "tagGroupPlaceholder": "กลุ่มแท็ก",
+ "testModel": "ทดสอบโมเดล",
+ "testingModel": "กำลังทดสอบโมเดล",
"modelTestQuotaTooltip": "โควต้าหมดแล้ว — จะรีเซ็ตในวันพรุ่งนี้หรือจำเป็นต้องเติมเงิน",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "โทเค็นหมดอายุแล้ว",
+ "tokenExpiredTitle": "โทเค็นหมดอายุแล้ว",
+ "tokenExpiresSoonTitle": "โทเค็นใกล้หมดอายุ",
+ "tokenShort": "โทเค็น",
+ "totalKeysRotating": "{count, plural, one {กำลังหมุนเวียน 1 คีย์} other {กำลังหมุนเวียน # คีย์}}",
+ "unhideModel": "เลิกซ่อนโมเดล",
+ "upstreamProxyProviders": "ผู้ให้บริการพร็อกซีต้นทาง",
"validationModelIdHint": "โมเดลที่ใช้ตรวจสอบคีย์ API เว้นว่างไว้เพื่อใช้โมเดลแรกที่พร้อมใช้งานของผู้ให้บริการ",
"validationModelIdLabel": "โมเดลสำหรับตรวจสอบ",
"validationModelIdPlaceholder": "เช่น meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "วาง Service Account JSON ของคุณ ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) หรือ OAuth access_token",
+ "webCookieProviders": "ผู้ให้บริการคุกกี้เว็บ",
+ "weeklyShort": "รายสัปดาห์",
+ "xiaomiMimoBaseUrlHint": "คำแนะนำสำหรับ URL ฐานของ Xiaomi Mimo",
"globalCodexServiceMode": "โหมดบริการ Codex ทั่วโลก",
"connect": "เชื่อมต่อ",
"manualApiKey": "คีย์ API แบบระบุเอง",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "ค้นหาข้อมูลประจำตัวของผู้ให้บริการ AI (OpenAI, Anthropic, Google, Mistral, xAI) ที่จัดเก็บโดย Zed IDE ในพวงกุญแจของระบบปฏิบัติการ (OS keychain) และนำเข้ามาเป็นรายการเชื่อมต่อ ต้องติดตั้ง Zed IDE บนเครื่องนี้",
"zedImportButton": "นำเข้าจาก Zed",
"zedImportFailed": "การนำเข้า Zed ล้มเหลว",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "คำแนะนำในการนำเข้าจาก Zed",
+ "zedImportNetworkError": "เกิดข้อผิดพลาดของเครือข่ายขณะนำเข้าจาก Zed",
+ "zedImportNone": "ไม่มีข้อมูลนำเข้าจาก Zed",
"zedImportSuccess": "นำเข้า {credentials} ข้อมูลรับรองจาก Zed สำหรับผู้ให้บริการ {providers}",
"zedImporting": "กำลังนำเข้า…",
"zedNoCredentials": "ไม่พบข้อมูลประจำตัวของ Zed ในพวงกุญแจ",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "พร็อกซี API ราคาพิเศษสำหรับโมเดลมากกว่า 40 โมเดล รวมถึง GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 รับคีย์ API ของคุณได้ที่ https://freeaiapikey.com/dashboard URL ฐาน: https://freeaiapikey.com/v1",
"freemodel-dev": "รับเครดิต API ฟรี $300 ที่ https://freemodel.dev — ไม่ต้องใช้ข้อมูลการชำระเงิน ปลายทางที่เข้ากันได้กับ OpenAI มีโมเดล GPT-5.4 และ GPT-5.5 ให้บริการ",
"friendliai": "ระดับการใช้งานฟรีสำหรับการอนุมานแบบ Serverless — ไม่ต้องใช้บัตรเครดิต",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "แพ็กเกจฟรีผ่าน Google AI Studio โดยไม่มีการเผยแพร่โควตาแยกตามโมเดลแล้ว (ตรวจสอบหน้าโควตาใน AI Studio) — ไม่ต้องใช้บัตรเครดิต",
"gigachat": "เชื่อมต่อ GigaChat (Sber) ด้วยคีย์ API",
"gitlab": "โทเค็นการเข้าถึงส่วนตัวของ GitLab สำหรับ Code Suggestions API สาธารณะ กำหนดค่า URL ฐานแบบโฮสต์เองเมื่อไม่ได้ใช้งาน gitlab.com",
"gitlawb-gmi": "รับคีย์ API ของคุณจากแดชบอร์ด Gitlawb Opengateway",
@@ -6180,7 +6187,7 @@
"glm-cn": "เชื่อมต่อ GLM Coding (China) ด้วยคีย์ API",
"glmt": "โปรไฟล์ GLM ที่ตั้งค่าไว้ล่วงหน้าพร้อมงบประมาณโทเค็นที่สูงขึ้น เปิดใช้งานการคิด และหมดเวลาการทำงานที่นานขึ้น",
"getgoapi": "เชื่อมต่อ GoAPI ด้วยคีย์ API",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "แพ็กเกจฟรี: จำกัดการใช้งานแยกตามโมเดล (200K โทเค็น/วันต่อโมเดลแชต โปรดดู RPM/RPD ที่ console.groq.com/docs/rate-limits) — ไม่มีวิธีการชำระเงินที่บันทึกไว้",
"haiper": "รับคีย์ API ได้ที่ haiper.ai/haiper-api",
"heroku": "เชื่อมต่อ Heroku AI ด้วยคีย์ API",
"hcnsec": "รับ API key ได้ที่ api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "สร้างคีย์ API ที่ https://app.requesty.ai จากนั้นวางที่นี่เป็นโทเค็น Bearer ปลายทางที่เข้ากันได้กับ OpenAI อยู่ที่ https://router.requesty.ai/v1 พร้อมแคตตาล็อก /v1/models แบบสด",
"runwayml": "การสร้างวิดีโอของ Runway เป็นแบบอิงตามงาน OmniRoute จะส่งงาน text-to-video หรือ image-to-video ดึงข้อมูลสถานะ /v1/tasks/[id] เป็นระยะ และปรับเอาต์พุตวิดีโอที่เสร็จสมบูรณ์ให้อยู่ในรูปแบบการตอบกลับ /v1/videos/generations ที่คล้ายกับ OpenAI",
"sambanova": "เครดิตฟรี $5 เมื่อลงทะเบียน (มีอายุ 30 วัน) ไม่ต้องใช้บัตรเครดิต",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "สร้างคีย์ API ที่ https://seekai.cc แล้ววางที่นี่ในรูปแบบ Bearer token URL ฐานที่เข้ากันได้กับ OpenAI: https://seekai.cc/v1",
"sap": "การค้นหาโมเดลใช้ /v2/lm/scenarios/foundation-models/models บน AI_API_URL คำขอแชทใช้ deploymentUrl/chat/completions และต้องระบุ AI-Resource-Group",
"sarvam": "Sarvam AI เข้ากันได้กับ OpenAI ที่ /v1. OmniRoute ตรวจสอบ /v1/models และจัดเส้นทางการสนทนาไปยัง /v1/chat/completions. โมเดลได้รับการปรับแต่งสำหรับภาษาอินดิก.",
"scaleway": "โทเค็นฟรี 1M สำหรับบัญชีใหม่ — สอดคล้องตาม EU/GDPR (ปารีส), Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "เชื่อมต่อ Claude Code ด้วยโฟลว์ OAuth ที่มีอยู่",
"cline": "เชื่อมต่อ Cline ด้วยโฟลว์ OAuth ที่มีอยู่",
"cursor": "เชื่อมต่อ Cursor IDE ด้วยโฟลว์ OAuth ที่มีอยู่",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "เชื่อมต่อ Cursor ด้วยคีย์ API ของผู้ใช้ (crsr_...) จาก cursor.com/dashboard/api โดยไม่ต้องใช้เซสชัน IDE",
"github": "เชื่อมต่อ GitHub Copilot ด้วยโฟลว์ OAuth ที่มีอยู่",
"gitlab-duo": "แอปพลิเคชัน OAuth ที่มีขอบเขต ai_features + read_user กำหนดค่า GITLAB_DUO_OAUTH_CLIENT_ID และ GITLAB_DUO_OAUTH_CLIENT_SECRET (ไม่บังคับ) บนอินสแตนซ์ OmniRoute นี้",
"kilocode": "เชื่อมต่อ Kilo Code ด้วยโฟลว์ OAuth ที่มีอยู่",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "คัดลอกข้อมูลรับรองที่จำเป็นจากโดเมนของผู้ให้บริการเอง สำหรับคุกกี้ ให้คัดลอกเฉพาะค่าส่วนหัวของคุกกี้และละเว้น Cookie:",
"webSessionGuideStep3Manual": "เส้นทางแบบแมนนวล: เปิดเครื่องมือพัฒนาเบราว์เซอร์ (F12 → Network), รีเฟรชหน้า, เปิดคำขอที่ได้รับการตรวจสอบสิทธิ์, และคัดลอกค่า Cookie header จาก Request Headers — ไม่รวมคำนำหน้า Cookie:",
"webSessionGuideStep4": "วางที่นี่และตรวจสอบการเชื่อมต่อ หากหยุดทำงาน ให้ลงชื่อเข้าใช้อีกครั้งและแทนที่ด้วยค่าใหม่",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "นำเข้าไฟล์ .har",
+ "harImportButtonBusy": "กำลังนำเข้า…",
+ "harImportButtonHint": "ส่งออกจากแท็บ Network ของ DevTools หลังจากส่งข้อความแชตอย่างน้อยหนึ่งข้อความ",
+ "harImportStatusValid": "นำเข้าแล้ว — ใช้ได้ประมาณ {minutes} นาที",
+ "harImportStatusExpiringSoon": "นำเข้าแล้ว — ใช้ได้อีกเพียงประมาณ {minutes} นาที",
+ "harImportStatusExpired": "นำเข้าแล้ว แต่โทเค็นนี้หมดอายุไปแล้ว ({minutes} นาทีที่แล้ว) — โปรดส่งออก HAR ใหม่",
+ "harImportStatusUnknownExpiry": "นำเข้าแล้ว แต่ไม่สามารถอ่านเวลาหมดอายุได้",
+ "harImportErrorNotJson": "ไฟล์นั้นไม่ใช่ JSON ที่ถูกต้อง — แน่ใจหรือว่าเป็นไฟล์ส่งออก .har?",
+ "harImportErrorNoEntries": "HAR นี้ไม่มีรายการเครือข่ายที่บันทึกไว้",
+ "harImportErrorNoChathubUrl": "ไม่พบการเชื่อมต่อแชต Copilot ใน HAR นี้ โปรดส่งข้อความแชตอย่างน้อยหนึ่งข้อความใน m365.cloud.microsoft ก่อนส่งออก",
+ "harImportErrorUnparsableUrl": "พบการเชื่อมต่อแชต แต่ไม่สามารถอ่าน URL ได้",
+ "harImportErrorMissingFields": "พบการเชื่อมต่อแชต แต่ไม่มีโทเค็นอยู่ในนั้น",
+ "harImportErrorReadFailed": "ไม่สามารถอ่านไฟล์นั้นได้",
+ "harImportErrorUnknown": "ไม่สามารถดึงข้อมูลรับรองจากไฟล์ HAR นั้นได้",
"webSessionSecurityHint": "ปฏิบัติต่อสิ่งนี้เหมือนเป็นรหัสผ่าน: มันอาจเข้าถึงบัญชีเว็บที่คุณลงชื่อเข้าใช้จนกว่ามันจะหมดอายุหรือถูกเพิกถอน",
"webNoAuthGuideTitle": "ไม่จำเป็นต้องมีหนังสือรับรอง",
"webNoAuthGuideBody": "{provider} ไม่จำเป็นต้องมีคีย์ API หรือคุกกี้ บันทึกการเชื่อมต่อเพื่อใช้จุดสิ้นสุดเว็บฟรี",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "รหัสคำสั่งหมดอายุ",
"commandCodeConnected": "คำสั่งรหัสเชื่อมต่อแล้ว",
"commandCodeConnectionAdded": "เพิ่มการเชื่อมต่อรหัสคำสั่ง",
+ "clearConnectionCooldown": "ล้างช่วงพักการใช้งาน",
+ "clearConnectionCooldownInProgress": "กำลังล้าง…",
+ "clearConnectionCooldownTitle": "ล้างช่วงพักการใช้งานทันที — ใช้เมื่อโควตาได้รับการรีเฟรชจากระบบต้นทางแล้ว",
"commandCodeLinkExpired": "ลิงก์รหัสคำสั่งหมดอายุ",
"commandCodeOpeningStudio": "กำลังเปิด Command Code Studio…",
"commandCodePopupBlocked": "ป๊อปอัพถูกบล็อก กรุณาอนุญาตป๊อปอัพและลองใช้ Command Code Connect อีกครั้ง.",
"commandCodeStartFailed": "ไม่สามารถเริ่มคำสั่ง Code auth ได้",
"connectionDeleted": "การเชื่อมต่อถูกลบแล้ว",
"connectionFallback": "การเชื่อมต่อ",
+ "connectionCooldownCleared": "ล้างช่วงพักการใช้งานแล้ว — การเชื่อมต่อกลับเข้าร่วมการกำหนดเส้นทางอีกครั้ง",
"coolingConnectionsDescription": "การเชื่อมต่อเหล่านี้กำลังพักหลังคำขอล่าสุด OmniRoute จะข้ามไปจนกว่าตัวจับเวลาจะหมด — ไม่ต้องปิดด้วยมือ",
"coolingConnectionsTitle": "กำลังทำความเย็นอยู่ ({count})",
+ "failedClearConnectionCooldown": "ล้างช่วงพักการใช้งานไม่สำเร็จ",
"failedDeleteAlias": "ไม่สามารถลบชื่อเล่นได้",
"failedDeleteConnection": "ไม่สามารถลบการเชื่อมต่อได้",
"failedDistributeProxies": "ไม่สามารถแจกจ่ายพร็อกซี่ได้。",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "การตั้งค่า endpoint ของโมเดลที่บันทึกไว้",
"searchByModelAria": "ค้นหาตามรุ่น",
"selectSupportedEndpoint": "เลือกจุดสิ้นสุดที่รองรับอย่างน้อยหนึ่งจุด",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "การตั้งค่า",
@@ -6550,22 +6557,22 @@
"systemPrompt": "พร้อมท์ระบบ",
"thinkingBudget": "คิดงบประมาณ",
"proxy": "หนังสือมอบฉันทะ",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "พร็อกซี HTTP",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "ส่วนพร็อกซี",
+ "requestBodyLimitTitle": "ขีดจำกัดเนื้อหาคำขอ",
+ "requestBodyLimitDescription": "ขนาดเพย์โหลด API สูงสุดที่ยอมรับก่อนแยกวิเคราะห์เนื้อหาคำขอ เส้นทางอัปโหลดเฉพาะจะยังคงใช้ขีดจำกัดในตัวอย่างน้อย 100 MB",
+ "requestBodyLimitInputLabel": "ขีดจำกัดเนื้อหาคำขอเป็น MB",
+ "requestBodyLimitEmptyError": "ป้อนขีดจำกัดเป็น MB",
+ "requestBodyLimitWholeNumberError": "ใช้จำนวนเต็ม",
+ "requestBodyLimitMinimumError": "ค่าต่ำสุดคือ {min} MB",
+ "requestBodyLimitMaximumError": "ค่าสูงสุดคือ {max} MB",
+ "requestBodyLimitLoadFailed": "โหลดการตั้งค่าขีดจำกัดคำขอไม่สำเร็จ",
+ "requestBodyLimitSaveSuccess": "บันทึกขีดจำกัดเนื้อหาคำขอแล้ว",
+ "requestBodyLimitSaveFailed": "บันทึกขีดจำกัดเนื้อหาคำขอไม่สำเร็จ",
+ "requestBodyLimitSaving": "กำลังบันทึก...",
+ "requestBodyLimitSave": "บันทึก",
+ "requestBodyLimitCurrent": "ปัจจุบัน: {value}",
"cacheConfigLoadFailed": "ไม่สามารถโหลดการตั้งค่าความจำได้",
"cacheConfigSaveSuccess": "บันทึกการตั้งค่าแคชแล้ว",
"cacheConfigSaveFailed": "ไม่สามารถบันทึกการตั้งค่าความจำได้",
@@ -6589,59 +6596,59 @@
"enablePassword": "เปิดใช้งานรหัสผ่าน",
"darkMode": "โหมดมืด",
"lightMode": "โหมดแสง",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "หน่วยความจำ",
+ "memoryDesc": "หน่วยความจำการสนทนาแบบถาวรข้ามเซสชัน",
+ "memoryEnabled": "เปิดใช้งานหน่วยความจำ",
+ "memoryEnabledDesc": "เมื่อเปิดใช้งาน OmniRoute จะแทรกบริบทที่เกี่ยวข้องจากการสนทนาก่อนหน้า",
"memoryTokenCostWarning": "ข้อควรทราบ: เมื่อเปิดใช้งานหน่วยความจำ OmniRoute จะแทรกบริบทที่ดึงมาสูงสุด {tokens} โทเค็นลงในทุกคำขอแชท — ซึ่งจะเพิ่มการใช้โทเค็นและค่าใช้จ่าย หากต้องการข้ามการแทรกสำหรับคำขอเฉพาะ ให้ส่งส่วนหัว \"x-omniroute-no-memory: true\"",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "maxTokens": "จำนวนโทเค็นสูงสุด",
+ "retentionDays": "การเก็บรักษา",
+ "recent": "ล่าสุด",
+ "recentDesc": "ช่วงเวลาตามลำดับเวลา",
+ "semantic": "เชิงความหมาย",
+ "semanticDesc": "การค้นหาแบบเวกเตอร์",
+ "hybrid": "แบบผสม",
+ "hybridDesc": "ล่าสุด + เชิงความหมาย",
+ "skillsTitle": "ทักษะ",
+ "skillsDesc": "เครื่องมือสำหรับโมเดล",
+ "skillsEnabled": "เปิดใช้งานทักษะ",
+ "skillsEnabledDesc": "อนุญาตให้เอเจนต์เรียกใช้ฟังก์ชัน",
+ "skillsComingSoon": "มาร์เก็ตเพลสสำหรับทักษะจะเปิดให้บริการเร็ว ๆ นี้",
+ "memorySkillsTitle": "หน่วยความจำและทักษะ",
+ "memorySkillsDesc": "บริบทและความสามารถแบบถาวร",
+ "modelsDevTitle": "ฐานข้อมูลโมเดล",
+ "modelsDevDesc": "ซิงค์ราคา ความสามารถ และข้อมูลจำเพาะจาก models.dev โดยอัตโนมัติ",
+ "modelsDevEnabled": "เปิดใช้งานการซิงค์ models.dev",
+ "modelsDevEnabledDesc": "ดึงข้อมูลราคา ความสามารถ และข้อมูลจำเพาะของโมเดลจากฐานข้อมูลโอเพนซอร์ส models.dev",
+ "modelsDevInterval": "ช่วงเวลาการซิงค์",
+ "syncNow": "ซิงค์ตอนนี้",
+ "syncing": "กำลังซิงค์...",
+ "lastSync": "ซิงค์ล่าสุด",
+ "never": "ไม่เคย",
"justNow": "แค่ตอนนี้",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "สถิติการซิงค์",
+ "modelsDevStatsDesc": "ความครอบคลุมของข้อมูล models.dev ในปัจจุบัน",
"providers": "ผู้ให้บริการ",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "โมเดลที่มีข้อมูลราคา",
+ "capabilities": "ความสามารถ",
+ "lastSyncCount": "จำนวนในการซิงค์ล่าสุด",
+ "lastSyncFull": "การซิงค์แบบเต็มล่าสุด",
+ "modelsDevInfo": "วิธีการทำงาน",
+ "modelsDevInfoDesc": "models.dev เป็นฐานข้อมูลโอเพนซอร์สสำหรับข้อมูลจำเพาะของโมเดล AI ซึ่งดูแลโดยทีม SST/OpenCode โดยให้ข้อมูลราคา ความสามารถ ขีดจำกัดบริบท และรูปแบบข้อมูลสำหรับโมเดลมากกว่า 4,000 รายการจากผู้ให้บริการมากกว่า 100 ราย",
+ "modelsDevInfoResolution": "ลำดับการเลือกใช้ข้อมูลราคา (เรียงจากลำดับความสำคัญสูงสุด):",
+ "modelsDevInfoOrder": "ค่าที่ผู้ใช้กำหนดเอง → models.dev → LiteLLM → ค่าเริ่มต้นที่กำหนดไว้ตายตัว",
"systemTheme": "ธีมของระบบ",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "เปิดใช้งานโหมดดีบัก",
"logToolSourcesToggle": "บันทึก Log แหล่งที่มาของเครื่องมือ",
"logToolSourcesDescription": "สร้างบรรทัดบันทึกการวินิจฉัยต่อคำขอเพื่อสรุปจำนวนเครื่องมือและการแจกแจงแหล่งที่มา MCP/hosted/client",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "ปักหมุดข้อมูลไว้ที่หน้าหลัก",
"homePinnedSectionsDesc": "เลือกส่วนที่ต้องการปักหมุดไว้ที่ด้านบนของหน้าแรก",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "ขีดจำกัดโควตาของผู้ให้บริการ",
+ "homeProviderQuotaLimitsDesc": "ตรึงคอนเทนเนอร์สถานะโควตาของ Provider (พร้อมปุ่ม Refresh All) ไว้ที่ด้านบนของหน้า Home",
+ "homeQuickStart": "เริ่มต้นใช้งานอย่างรวดเร็ว",
+ "homeQuickStartDesc": "แสดงแผงเริ่มต้นใช้งานอย่างรวดเร็วบนหน้า Home",
+ "homeProviderTopology": "โทโพโลยีของ Provider",
+ "homeProviderTopologyDesc": "แสดงโทโพโลยีของ Provider บนหน้า Home",
"accountEmailVisibility": "การแสดงอีเมลบัญชี",
"accountEmailVisibilityDesc": "แสดงอีเมลบัญชีแบบเต็มในหน้าผู้ให้บริการ, คอมโบ, บันทึก, โควตา และเพลย์กราวด์ ปิดตัวเลือกนี้เพื่อซ่อนอีเมลตามค่าเริ่มต้น",
"comboConfigMode": "โหมดการกำหนดค่าคอมโบ",
@@ -6657,28 +6664,28 @@
"providerQuotaAutoRefreshInterval": "ช่วงเวลารีเฟรช",
"providerQuotaAutoRefreshIntervalDesc": "ความถี่ในการรีเฟรชมุมมองโควตา เป็นวินาที",
"seconds": "วินาที",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "แสดงรายการในแถบด้านข้าง",
"enableCache": "เปิดใช้งานแคช",
"cacheTTL": "แคช TTL",
"maxCacheSize": "ขนาดแคชสูงสุด",
"clearCache": "ล้างแคช",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "ล้างแคชเรียบร้อยแล้ว",
+ "clearCacheFailed": "ล้างแคชไม่สำเร็จ",
"cacheHits": "การเข้าชมแคช",
"cacheMisses": "แคชพลาด",
"hitRate": "อัตราการเข้าชม",
"cacheEntries": "รายการแคช",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
+ "cacheSettings": "การตั้งค่าแคช",
+ "semanticCache": "แคชเชิงความหมาย",
+ "maxEntries": "จำนวนรายการสูงสุด",
+ "ttlMinutes": "TTL (นาที)",
"promptCache": "แคชพร้อมท์",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "strategy": "กลยุทธ์",
+ "preserveClientCache": "คงแคชของไคลเอนต์ไว้",
+ "enabled": "เปิดใช้งาน",
"loading": "Loading...",
"saving": "กำลังบันทึก...",
- "save": "Save",
+ "save": "บันทึก",
"circuitBreaker": "เบรกเกอร์",
"retryPolicy": "นโยบายการลองอีกครั้ง",
"maxRetries": "ลองใหม่สูงสุด",
@@ -6686,21 +6693,21 @@
"timeoutMs": "หมดเวลา (มิลลิวินาที)",
"enableSystemPrompt": "เปิดใช้งานพร้อมท์ระบบ",
"systemPromptText": "ข้อความแจ้งของระบบ",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedAccounts": "ปิดใช้งานบัญชีที่ถูกแบนโดยอัตโนมัติ",
+ "autoDisableDescription": "ทำเครื่องหมายการเชื่อมต่อ Provider ว่าปิดใช้งานอย่างถาวร หากได้รับสัญญาณการแบนขั้นสุดท้ายที่ระบุ (เช่น HTTP 403 'verify your account') ซึ่งจะนำการเชื่อมต่อเหล่านั้นออกจากการหมุนเวียนแบบคอมโบ",
+ "autoDisableThreshold": "เกณฑ์การแบน",
+ "autoDisableThresholdDesc": "จำนวนสัญญาณการแบนต่อเนื่องที่ต้องได้รับก่อนปิดใช้งานอย่างถาวร",
+ "autoDisableBannedScope": "ใช้การปิดใช้งานอัตโนมัติกับ",
+ "autoDisableBannedScopeDesc": "ที่นั่งสำหรับการเข้าสู่ระบบ (การสมัครสมาชิกแบบชำระเงินและบัญชีฟรี) อาจถูกต้นทางล็อกได้ หาก OmniRoute พยายามซ้ำต่อไปหลังจากถูกแบน คีย์ API แบบเติมเงินที่ชำระเงินไม่มีความเสี่ยงดังกล่าว — ให้คงไว้ในพูลเพื่อให้ fill-first ใช้คีย์ถัดไปได้",
+ "autoDisableBannedScopeAll": "การเชื่อมต่อทั้งหมด",
+ "autoDisableBannedScopeAllDesc": "ปิดใช้งานทุกการเชื่อมต่อที่ส่งคืนสัญญาณการแบนถาวร รวมถึงคีย์ API แบบเติมเงิน",
+ "autoDisableBannedScopeSubscription": "เฉพาะบัญชีเข้าสู่ระบบ / บัญชีสมัครสมาชิก",
+ "autoDisableBannedScopeSubscriptionDesc": "ปิดใช้งานที่นั่ง OAuth, คุกกี้, เซสชัน และการเข้าสู่ระบบผ่านเว็บ (แบบชำระเงินหรือฟรี) คีย์ API แบบเติมเงินจะยังคงใช้งานได้ เพื่อให้การกำหนดเส้นทางสลับไปใช้เส้นทางสำรองได้",
"customBannedSignals": "คีย์เวิร์ดที่ถูกแบน",
"customBannedSignalsDesc": "คีย์เวิร์ดเพิ่มเติมที่ทริกเกอร์การตรวจจับการแบนบัญชีถาวร คีย์เวิร์ดในตัวจะมีผลเสมอ",
"customBannedSignalsPlaceholder": "เช่น api key revoked",
"noCustomBannedSignals": "ไม่มีคีย์เวิร์ดที่กำหนดเอง มีเพียงคีย์เวิร์ดในตัวเท่านั้นที่ใช้งานอยู่",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "โครงสร้างความยืดหยุ่น",
"resilienceStructureDesc": "หน้านี้กำหนดค่าการทำงานเท่านั้น สถานะเบรกเกอร์สดจะแสดงอยู่ในหน้าสุขภาพ การลองซ้ำเฉพาะคอมโบและการควบคุมสล็อตแบบวนซ้ำยังคงอยู่ในการตั้งค่าคอมโบ",
"enableThinking": "เปิดใช้งานการคิด",
"maxThinkingTokens": "โทเค็นการคิดสูงสุด",
@@ -6748,21 +6755,21 @@
"showTailscaleFunnelDesc": "แสดงส่วนควบคุม Tailscale Funnel บนหน้าปลายทาง",
"showNgrokTunnel": "อุโมงค์งรก",
"showNgrokTunnelDesc": "แสดงการควบคุม ngrok Tunnel บนหน้า Endpoint",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "ซ่อนรายการในแถบด้านข้าง",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "ทั้งหมด",
+ "presetAllDesc": "แสดงทุกอย่าง",
+ "presetEssentials": "รายการจำเป็น",
+ "presetEssentialsDesc": "เส้นทางสำหรับผู้เริ่มต้น - เครื่องมือขั้นสูงยังคงค้นหาได้",
+ "presetMinimal": "น้อยที่สุด",
+ "presetMinimalDesc": "เฉพาะหน้าหลัก",
+ "presetDeveloper": "นักพัฒนา",
+ "presetDeveloperDesc": "เครื่องมือสำหรับนักพัฒนาและพร็อกซี",
+ "presetAdmin": "ผู้ดูแลระบบ",
+ "presetAdminDesc": "การตรวจสอบและการตรวจประเมิน",
+ "settingsSidebarTitle": "การปรับแต่งแถบด้านข้าง",
+ "settingsSidebarDesc": "เลือกรายการในแถบด้านข้างที่ต้องการแสดง โหมดรายการจำเป็นยังคงให้ค้นหาเครื่องมือขั้นสูงได้",
"hideHealthLogs": "ซ่อนบันทึกการตรวจสุขภาพ",
"hideHealthLogsDesc": "เมื่อเปิด ให้ระงับข้อความ [HealthCheck] ในคอนโซลเซิร์ฟเวอร์",
"themeAccent": "สีธีม",
@@ -6776,19 +6783,19 @@
"themeOrange": "ส้ม",
"themeCyan": "ไซแอน",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "ปรับแต่งชื่อและโลโก้ของแอปพลิเคชัน",
+ "appName": "ชื่อแอปพลิเคชัน",
+ "appNameDesc": "ชื่อที่แสดงในแถบด้านข้างและแท็บเบราว์เซอร์",
+ "customLogo": "URL โลโก้ที่กำหนดเอง",
+ "customLogoDesc": "URL ของรูปภาพโลโก้ที่กำหนดเอง",
+ "uploadLogo": "อัปโหลดโลโก้",
+ "resetLogo": "รีเซ็ตเป็นค่าเริ่มต้น",
+ "logoPreview": "ตัวอย่าง",
+ "customFavicon": "ไอคอนเว็บไซต์ในเบราว์เซอร์",
+ "customFaviconDesc": "URL ของไอคอนเว็บไซต์ที่กำหนดเอง (แสดงในแท็บเบราว์เซอร์)",
+ "uploadFavicon": "อัปโหลดไอคอนเว็บไซต์",
+ "resetFavicon": "รีเซ็ตไอคอนเว็บไซต์",
+ "faviconPreview": "ตัวอย่างไอคอนเว็บไซต์",
"logoFileTooLarge": "ไฟล์โลโก้ต้องมีขนาดน้อยกว่า 500KB",
"faviconFileTooLarge": "ไฟล์ Favicon ต้องมีขนาดน้อยกว่า 50KB",
"invalidLogoFileType": "ประเภทไฟล์ไม่ถูกต้อง โปรดอัปโหลด PNG, JPG, SVG, GIF หรือ WebP",
@@ -6892,21 +6899,21 @@
"refreshInterval": "ช่วงเวลาการรีเฟรช",
"ruleModeDescription": "คำอธิบายโหมดกฎ"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "ตรวจสอบสถานะพร้อมกันทั้งหมด",
+ "bulkHealthcheckDesc": "ทดสอบพร็อกซีที่กำหนดค่าทั้งหมดกับ URL เป้าหมาย เพื่อค้นหาพร็อกซีที่ใช้งานได้",
+ "healthcheckTesting": "กำลังทดสอบ...",
+ "healthcheckAll": "ตรวจสอบสถานะทั้งหมด",
+ "healthcheckFailed": "เรียกใช้การตรวจสอบสถานะไม่สำเร็จ",
+ "healthcheckTestingAll": "กำลังทดสอบพร็อกซีทั้งหมดพร้อมกัน...",
+ "healthcheckTotal": "ทั้งหมด",
+ "healthcheckWorking": "ใช้งานได้",
+ "healthcheckFailedLabel": "ล้มเหลว",
+ "healthcheckStatus": "สถานะ",
+ "healthcheckProxyUrl": "URL พร็อกซี",
+ "healthcheckLatency": "เวลาแฝง",
"proxyDocumentationScopeTitle": "การหาขอบเขตพร็อกซี",
"proxyDocumentationScopeDescBefore": "OmniRoute จะหาพร็อกซีขาออกตามลำดับความสำคัญดังนี้:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "คอมโบ → บัญชี → ผู้ให้บริการ → ส่วนกลาง",
"proxyDocumentationScopeDescAfter": ". ขอบเขตที่เฉพาะเจาะจงที่สุดจะมีผลก่อน",
"proxyDocumentationAddTitle": "การเพิ่มพร็อกซีแบบกำหนดเอง",
"proxyDocumentationAddDescBefore": "ไปที่",
@@ -7030,11 +7037,11 @@
"providersBlocked": "{count} ผู้ให้บริการถูกบล็อกจาก /models",
"blockProviderTitle": "บล็อก {provider}",
"unblockProviderTitle": "เลิกบล็อก {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "cliFingerprint": "การจับคู่ลายนิ้วมือ CLI",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "ผู้ให้บริการ {count} รายที่เปิดใช้ลายนิ้วมือ CLI",
+ "enableFingerprintTitle": "เปิดใช้ลายนิ้วมือสำหรับ {provider}",
+ "disableFingerprintTitle": "ปิดใช้ลายนิ้วมือสำหรับ {provider}",
"systemTransforms": "ไปป์ไลน์การแปลงบล็อกระบบ",
"systemTransformsDesc": "ไปป์ไลน์ของการแปลงที่สั่งต่อผู้ให้บริการที่นำไปใช้กับเนื้อหาคำขอก่อนที่จะส่งต่อ รองรับ ID ผู้ให้บริการใด ๆ",
"systemTransformsAddProvider": "เพิ่มผู้ให้บริการ",
@@ -7063,10 +7070,10 @@
"costOptDesc": "ต้องการบัญชีที่ถูกที่สุด",
"resetAware": "รีเซ็ต-Aware RR",
"resetAwareDesc": "ต้องการบัญชีที่มีโควต้าคงเหลือที่ดีและมีการรีเซ็ตที่ใกล้กว่า",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "ถ่วงน้ำหนักตามโควตา",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
+ "strictRandom": "สุ่มอย่างเคร่งครัด",
+ "strictRandomDesc": "สับสำรับ — ใช้แต่ละบัญชีหนึ่งครั้งก่อนสับใหม่",
"stickyLimit": "ขีด จำกัด เหนียว",
"stickyLimitDesc": "โทรต่อบัญชีก่อนที่จะเปลี่ยน",
"routingStrategyTitle": "กลยุทธ์การกำหนดเส้นทาง",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "เขียนทับกลยุทธ์บัญชีส่วนกลางสำหรับผู้ให้บริการรายนี้ (เทียบเท่า 9router)",
"providerRoutingStrategy": "กลยุทธ์บัญชี",
"providerRoutingInheritGlobal": "สืบทอดค่าเริ่มต้นส่วนกลาง",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "เกณฑ์ตัดโควตาก่อนส่งคำขอ",
+ "quotaPreflightSubtitle": "ข้ามบัญชีที่โควตาหมดก่อนส่งคำขอไปยังต้นทาง",
+ "quotaPreflightEnable": "เปิดใช้การตรวจสอบโควตาก่อนส่งคำขอ",
+ "quotaPreflightEnableDesc": "ก่อนส่งคำขอแต่ละครั้ง ให้ตรวจสอบโควตาคงเหลือของบัญชี (ช่วงเวลา 5 ชม. / รายสัปดาห์ / รายเดือน) ระบบจะข้ามบัญชีที่มีโควตาเท่ากับหรือต่ำกว่าเกณฑ์ตัดโดยไม่เรียกไปยังต้นทาง เกณฑ์ตัดของแต่ละช่วงเวลาที่ตั้งค่าไว้ในหน้าโควตาผู้ให้บริการจะมีผลเหนือกว่าค่าเริ่มต้นที่นี่เสมอ",
+ "quotaPreflightCutoff": "เกณฑ์ตัดส่วนกลาง (โควตาคงเหลือขั้นต่ำ %)",
+ "quotaPreflightCutoffDesc": "หยุดใช้บัญชีเมื่อโควตาคงเหลือลดลงถึงเปอร์เซ็นต์นี้หรือต่ำกว่า สำหรับทุกช่วงเวลาที่ไม่ได้กำหนดเกณฑ์ตัดของตนเอง ค่านี้ตรงกับแถบเปอร์เซ็นต์โควตาคงเหลือในหน้าโควตาผู้ให้บริการ",
+ "quotaPreflightWindowsHint": "หน้าต่างที่กำหนดเกณฑ์ตัดแยกตามหน้าต่างหรือผู้ให้บริการไว้เอง (ตั้งค่าในหน้าต่างเกณฑ์ตัดบนหน้าจอโควตาผู้ให้บริการ) จะไม่ได้รับผลกระทบจากค่าเริ่มต้นนี้",
+ "quotaPreflightLoadFailed": "ไม่สามารถโหลดการตั้งค่าการตรวจสอบโควตาล่วงหน้าได้",
"modelAliases": "นามแฝงของโมเดล",
"modelAliasesTitle": "นามแฝงโมเดล",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "แมปชื่อโมเดลใหม่โดยใช้การจับคู่แบบตรงทั้งหมดหรือรูปแบบไวลด์การ์ด",
"addCustomAlias": "เพิ่มนามแฝงที่กำหนดเอง",
"deprecatedModelId": "ID โมเดลที่เลิกใช้",
"newModelId": "ID โมเดลใหม่",
@@ -7184,7 +7191,7 @@
"comboStrategyAria": "กลยุทธ์คอมโบ",
"priority": "ลำดับความสำคัญ",
"weighted": "ถ่วงน้ำหนัก",
- "contextRelay": "Context Relay",
+ "contextRelay": "การส่งต่อบริบท",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "ลองใหม่สูงสุด",
"retryDelayLabel": "ความล่าช้าในการลองอีกครั้ง (มิลลิวินาที)",
@@ -7210,10 +7217,10 @@
"concurrencyPerModel": "เห็นพ้องต้องกัน / รุ่น",
"queueTimeout": "คิวหมดเวลา (มิลลิวินาที)",
"queueDepth": "ความลึกของคิว",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "เกณฑ์การส่งมอบ",
+ "contextRelayMaxMessages": "จำนวนข้อความสูงสุดสำหรับสรุป",
+ "contextRelaySummaryModel": "โมเดลสำหรับสรุป",
+ "contextRelayProviderNote": "ขณะนี้การส่งต่อบริบทจะสร้างการส่งมอบสำหรับบัญชี Codex และใช้ค่าเหล่านี้เป็นค่าเริ่มต้นส่วนกลางสำหรับคอมโบใหม่หรือคอมโบที่ยังไม่ได้กำหนดค่า",
"providerProfiles": "โปรไฟล์ผู้ให้บริการ",
"providerProfilesDesc": "แยกการตั้งค่าความยืดหยุ่นสำหรับผู้ให้บริการ OAuth (ตามเซสชัน) และคีย์ API (แบบมิเตอร์) ผู้ให้บริการ OAuth มีเกณฑ์ที่เข้มงวดมากขึ้นเนื่องจากมีขีดจำกัดอัตราที่ต่ำกว่า",
"oauthProviders": "ผู้ให้บริการ OAuth",
@@ -7295,7 +7302,7 @@
"daysAgo": "{count}d ที่แล้ว",
"backupReasonManual": "คู่มือ",
"backupReasonPreRestore": "คืนค่าล่วงหน้า",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
+ "connectionsCount": "{count, plural, one {# การเชื่อมต่อ} other {# การเชื่อมต่อ}}",
"noChangesSinceBackup": "ไม่มีการเปลี่ยนแปลงตั้งแต่การสำรองข้อมูลครั้งล่าสุด",
"backupFailed": "การสำรองข้อมูลล้มเหลว",
"restoreFailed": "การคืนค่าล้มเหลว",
@@ -7325,7 +7332,7 @@
"configured": "กำหนดค่าแล้ว",
"none": "ไม่มี",
"modelOverrideValuePlaceholder": "ค่าตัวเลข",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "คั่นด้วยเครื่องหมายจุลภาคภาษาอังกฤษ เช่น low, medium, high",
"addKeyValue": "เพิ่มคีย์-ค่า",
"noModelOverrides": "ไม่มีการกำหนดค่าการเขียนทับสำหรับโมเดลนี้",
"modelOverrideLoadFailed": "โหลดการเขียนทับโมเดลล้มเหลว",
@@ -7374,25 +7381,25 @@
"editPricing": "แก้ไขราคา",
"viewFullDetails": "ดูรายละเอียดทั้งหมด",
"themeCoral": "คอรัล",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "การกำหนดเส้นทางตามปริมาณแบบปรับตัว",
+ "adaptiveVolumeRoutingDesc": "ปรับจำนวนการเชื่อมต่อแบบไดนามิกตามปริมาณเพย์โหลดและแรงกดดันด้านอัตราการประมวลผล",
+ "lkgpToggleTitle": "ผู้ให้บริการล่าสุดที่ใช้งานได้ดี (LKGP)",
+ "lkgpToggleDesc": "เมื่อเปิดใช้งาน เราเตอร์จะจดจำว่าผู้ให้บริการรายใดส่งการตอบกลับสำเร็จล่าสุด และจะลองใช้ผู้ให้บริการรายนั้นก่อนสำหรับคำขอถัดไป",
"echoRequestedModelTitle": "สะท้อนชื่อโมเดลที่ร้องขอในคำตอบกลับ",
"echoRequestedModelDesc": "เมื่อเปิดใช้งาน ฟิลด์ `model` ในการตอบกลับจะแสดงชื่อนามแฝงหรือชื่อคอมโบที่ไคลเอนต์ร้องขอ แทนที่จะเป็นชื่อโมเดลต้นน้ำ ช่วยแก้ไขปัญหาสำหรับไคลเอนต์ที่เข้มงวด (เช่น Claude Desktop) ที่ปฏิเสธการตอบกลับที่โมเดลไม่ตรงกับคำขอ",
"webSearchRouteTitle": "การกำหนดเส้นทางการค้นหาเว็บ",
"webSearchRouteDesc": "เมื่อคำขอมีเครื่องมือ web_search แบบเนทีฟ ให้กำหนดเส้นทางคำขอทั้งหมดไปยังโมเดลนี้แทนค่าเริ่มต้น — มีประโยชน์สำหรับผู้ให้บริการที่ไม่ได้ใช้เครื่องมือเซิร์ฟเวอร์ web_search ของ Anthropic ปล่อยว่างไว้เพื่อปิดใช้งาน",
"webSearchRoutePlaceholder": "ค้นหาหรือเลือกโมเดล…",
"paidModelPatternWarning": "รูปแบบนี้ตรงกับโมเดลแบบชำระเงินเท่านั้น — เปิดใช้งานโมเดลแบบชำระเงินหรือปรับเปลี่ยนรูปแบบ",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "ล้างแคช LKGP",
+ "lkgpCacheCleared": "ล้างแคช LKGP สำเร็จแล้ว",
+ "lkgpCacheClearFailed": "ล้างแคช LKGP ไม่สำเร็จ",
+ "days": "วัน",
+ "lkgp": "โหมด LKGP",
+ "lkgpDesc": "ผู้ให้บริการล่าสุดที่ใช้งานได้ดี (ความยืดหยุ่นที่คาดการณ์ได้)",
+ "maintenance": "การบำรุงรักษา",
+ "purgeExpiredLogs": "ล้างบันทึกที่หมดอายุ",
+ "purgeLogsFailed": "ล้างบันทึกไม่สำเร็จ",
"logsDeleted": "{count, plural, =0 {ไม่มีบันทึกที่หมดอายุถูกล้าง} one {ล้างบันทึกที่หมดอายุแล้ว # รายการ} other {ล้างบันทึกที่หมดอายุแล้ว # รายการ}}",
"resetUsageData": "รีเซ็ตข้อมูลการใช้งาน",
"resetUsageDataDesc": "เลือกช่วงเวลาย้อนหลังที่คุณต้องการลบข้อมูลการใช้งาน บันทึกคำขอ และข้อมูลการวิเคราะห์ การกำหนดค่าผู้ให้บริการ การเชื่อมต่อ คีย์ API คอมโบ และการตั้งค่าต่างๆ จะยังคงอยู่ การดำเนินการนี้ไม่สามารถย้อนกลับได้",
@@ -7409,39 +7416,39 @@
"resetUsageFailed": "รีเซ็ตข้อมูลการใช้งานไม่สำเร็จ",
"reset": "รีเซ็ต",
"resetting": "กำลังรีเซ็ต...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "ปรับให้เหมาะกับบริบท",
+ "contextOptDesc": "กำหนดเส้นทางตามข้อกำหนดของหน้าต่างบริบทและความยาวของบทสนทนา",
+ "cacheOpt": "ปรับให้เหมาะกับแคช",
+ "cacheOptDesc": "เก็บคำนำหน้าพรอมต์ที่นำกลับมาใช้ซ้ำได้ไว้ในบัญชีผู้ให้บริการเดิม",
+ "priorityDesc": "การสลับสำรองตามลำดับ โดยลองผู้ให้บริการ 1 ก่อน จากนั้นจึงลองผู้ให้บริการ 2 และดำเนินต่อไปตามลำดับ",
+ "weightedDesc": "กระจายทราฟฟิกตามน้ำหนักเปอร์เซ็นต์ระหว่างผู้ให้บริการ",
+ "modelRoutingTitle": "กฎการกำหนดเส้นทางโมเดล",
+ "modelRoutingDesc": "กำหนดเส้นทางโมเดลไปยังคอมโบที่ระบุโดยอัตโนมัติด้วยรูปแบบ glob",
+ "addRule": "เพิ่มกฎ",
+ "routeToCombo": "กำหนดเส้นทางไปยังคอมโบ",
+ "selectCombo": "เลือกคอมโบ...",
+ "priorityHint": "ค่ายิ่งสูงจะยิ่งได้รับการตรวจสอบก่อน ใช้ 10+ สำหรับรูปแบบที่เฉพาะเจาะจง",
+ "patternHint": "ใช้ * แทนอักขระจำนวนเท่าใดก็ได้ และ ? แทนอักขระหนึ่งตัว โดยไม่คำนึงถึงตัวพิมพ์เล็ก-ใหญ่",
+ "noRoutingRules": "ยังไม่ได้กำหนดค่ากฎการกำหนดเส้นทาง คำขอจะใช้คอมโบส่วนกลางเป็นค่าเริ่มต้น",
+ "routingRuleHint": "เพิ่มกฎ เช่น claude-opus* -> frontier-combo เพื่อกำหนดเส้นทางคำขอโดยอัตโนมัติ",
+ "deleteRoutingRule": "ลบกฎการกำหนดเส้นทางโมเดลนี้หรือไม่",
+ "exactMatchMode": "การจับคู่แบบตรงทั้งหมด",
+ "wildcardPatternMode": "รูปแบบไวลด์การ์ด",
+ "exactMatchModeDesc": "ใช้นามแฝงแบบตรงกันทุกประการสำหรับ ID โมเดลที่เลิกใช้หรือเปลี่ยนชื่อแล้ว",
+ "wildcardPatternModeDesc": "ใช้นามแฝงแบบไวลด์การ์ดที่มี * และ ? เมื่อกลุ่มโมเดลควรถูกแมปไปยังเป้าหมายเดียวกัน",
+ "noExactAliasesConfigured": "ยังไม่ได้กำหนดค่านามแฝงแบบตรงกันทุกประการ",
+ "wildcardRulesTitle": "กฎไวลด์การ์ด",
+ "noWildcardAliasesConfigured": "ยังไม่ได้กำหนดค่านามแฝงแบบไวลด์การ์ด",
+ "overview": "ภาพรวม",
+ "unknownError": "ข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "รายการที่อนุญาต",
+ "syncDisabled": "ปิดใช้งานการซิงค์",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,23 +7456,23 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "เปิดใช้งานการซิงค์",
+ "blacklist": "รายการที่บล็อก",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
+ "syncedModels": "โมเดลที่ซิงค์แล้ว",
+ "budget": "งบประมาณ",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "ไม่สามารถรีเซ็ตราคา: {reason}",
- "tab": "Tab",
+ "tab": "แท็บ",
"pricingSavedProvider": "ราคาที่บันทึกไว้สำหรับ {provider}",
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "ไม่สามารถบันทึกราคา: {reason}",
"pricingResetProvider": "รีเซ็ตราคาสำหรับ {provider}",
- "nextSync": "Next Sync",
+ "nextSync": "การซิงค์ครั้งถัดไป",
"pricingSyncFailedWithReason": "การซิงค์ราคาล้มเหลว: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "ล้างราคาที่ซิงค์แล้ว",
+ "compressionTitle": "การบีบอัดพรอมต์",
+ "compressionDesc": "ลดการใช้โทเค็นด้วยการบีบอัดพรอมต์ก่อนส่งไปยังผู้ให้บริการ",
"compressionGuidanceFullGuideLink": "คู่มือการบีบอัดฉบับเต็ม",
"compressionGuidanceShow": "รายละเอียด",
"compressionGuidanceHide": "ซ่อนรายละเอียด",
@@ -7481,16 +7488,16 @@
"tokenSaverInputCompressionDesc": "เขียนประวัติการแชทที่มีสิทธิ์ใหม่ในขณะที่ยังคงรักษาโค้ด URL และเจตนาไว้",
"tokenSaverFineTunePrefix": "ปรับแต่งแต่ละเอนจินใน",
"tokenSaverFineTuneSuffix": "หรือรวมเอนจินต่อคำขอใน",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
- "compressionModeUltra": "Ultra",
+ "compressionMode": "โหมดการบีบอัด",
+ "compressionModeOff": "ปิด",
+ "compressionModeOffDesc": "ไม่มีการบีบอัด",
+ "compressionModeLite": "แบบเบา",
+ "compressionModeLiteDesc": "ลดช่องว่างและบรรทัดว่าง",
+ "compressionModeStandard": "มาตรฐาน (Caveman)",
+ "compressionModeStandardDesc": "การบีบอัดตามกฎด้วยรูปแบบมากกว่า 30 รูปแบบ โดยคงบล็อกโค้ดและ URL ไว้",
+ "compressionModeAggressive": "เข้มข้น",
+ "compressionModeAggressiveDesc": "การสรุป + การบีบอัดผลลัพธ์จากเครื่องมือ + การลดทอนแบบค่อยเป็นค่อยไป เพื่อประหยัดสูงสุด",
+ "compressionModeUltra": "สูงสุด",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "การกำหนดค่าเครื่องยนต์เชิงรุก",
"compressionAggressiveConfigDesc": "ปรับแต่งการสรุป การบีบอัดเครื่องมือ และขีดจำกัดอายุ",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "จำนวนข้อความล่าสุดที่เก็บไว้ในแต่ละระดับอายุ (สูงกว่า = เก็บรักษาไว้มากกว่า)",
"compressionToolStrategies": "กลยุทธ์ผลลัพธ์ของเครื่องมือ",
"compressionToolStrategiesDesc": "สลับกลยุทธ์การบีบอัดสำหรับผลลัพธ์เครื่องมือประเภทต่างๆ",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "การตั้งค่าทั่วไป",
+ "compressionAutoTrigger": "เกณฑ์การเรียกใช้โดยอัตโนมัติ",
+ "compressionCacheTTL": "TTL ของแคช",
+ "compressionPreserveSystem": "คงพรอมต์ระบบไว้",
"compressionPreserveSystemAlways": "เสมอ",
"compressionPreserveSystemWhenNoCache": "เมื่อไม่มีแคช",
"compressionPreserveSystemNever": "ไม่เคย",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "บันทึกแล้ว",
"compressionExclusionsCount": "กำหนด {count, plural, one {# การยกเว้น} other {# การยกเว้น}}",
"compressionExclusionsEmpty": "ยังไม่มีการกำหนดการยกเว้น — โมเดล/จุดสิ้นสุดทุกตัวมีสิทธิ์ได้รับการบีบอัด (พฤติกรรมเริ่มต้น)",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "การกำหนดค่าเอนจิน Caveman",
+ "compressionCavemanConfigDesc": "ปรับแต่งเอนจินการบีบอัดตามกฎอย่างละเอียด",
"compressionCavemanPanelHint": "การเปิด/ปิดและระดับของมันถูกตั้งค่าในแผงควบคุม:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "บีบอัดบทบาทของข้อความ",
+ "compressionRoleUser": "ผู้ใช้",
+ "compressionRoleAssistant": "ผู้ช่วย",
+ "compressionRoleSystem": "ระบบ",
+ "compressionMinLength": "ความยาวข้อความขั้นต่ำ",
+ "compressionSkipRules": "กฎการข้ามการบีบอัด",
+ "compressionSkipRulesDesc": "คลิกกฎเพื่อข้ามกฎเหล่านั้นระหว่างการบีบอัด",
+ "compressionPreservePatterns": "รูปแบบที่คงไว้",
+ "compressionPreservePatternsDesc": "รูปแบบ Regex ที่จะไม่ถูกบีบอัด (หนึ่งรายการต่อบรรทัด)",
+ "compressionLogTitle": "บันทึกการบีบอัด",
+ "compressionLogEmpty": "ยังไม่มีคำขอที่ถูกบีบอัด สถิติการบีบอัดจะแสดงที่นี่เมื่อมีการประมวลผลคำขอโดยเปิดใช้งานการบีบอัด",
"minutes": "นาที",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "การกรองเอาต์พุตของเครื่องมือโดยรับรู้คำสั่ง",
+ "compressionModeCodexResponses": "เอาต์พุตของเครื่องมือ Responses",
+ "compressionModeCodexResponsesDesc": "การบีบอัดแบบระมัดระวังสำหรับเอาต์พุตของเชลล์ แพตช์ การค้นหา การบิลด์ และ JSON ที่เข้าเกณฑ์",
+ "compressionModeStacked": "แบบซ้อน",
+ "compressionModeStackedDesc": "การกรองเอาต์พุตของเครื่องมือด้วย RTK ตามด้วยการบีบอัดข้อความด้วย Caveman",
+ "qdrantTitle": "Qdrant (หน่วยความจำเวกเตอร์)",
+ "qdrantDesc": "ไม่บังคับ จัดทำดัชนีหน่วยความจำเชิงความหมายในฐานข้อมูลเวกเตอร์ภายนอกเพื่อให้เรียกคืนได้รวดเร็วยิ่งขึ้น",
+ "qdrantStatusActive": "ใช้งานอยู่",
+ "qdrantStatusError": "ข้อผิดพลาด",
+ "qdrantStatusDisabled": "ปิดใช้งาน",
+ "qdrantEnable": "เปิดใช้งาน Qdrant",
+ "qdrantEnableDesc": "เมื่อเปิดใช้งาน กลยุทธ์เชิงความหมาย/แบบไฮบริดจะสามารถใช้ Qdrant เพื่อเรียกคืนหน่วยความจำได้",
+ "qdrantTesting": "กำลังทดสอบ...",
+ "qdrantTestConnection": "ทดสอบการเชื่อมต่อ",
+ "qdrantSaved": "บันทึกการกำหนดค่าแล้ว",
+ "qdrantSaveError": "บันทึกการกำหนดค่าไม่สำเร็จ",
+ "qdrantHostHint": "ไม่ต้องระบุพอร์ต ตัวอย่าง: 127.0.0.1 หรือ http://qdrant",
+ "qdrantPort": "พอร์ต",
+ "qdrantPortHint": "ค่าเริ่มต้นของ Qdrant: 6333",
+ "qdrantCollectionHint": "ตำแหน่งที่ใช้จัดเก็บพอยต์หน่วยความจำ",
+ "qdrantEmbeddingModel": "โมเดล Embedding",
+ "qdrantHelpTitle": "ความช่วยเหลือในการตั้งค่าด่วน",
+ "qdrantHelpQuickTitle": "การตั้งค่าด่วน (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. โฮสต์: IP/URL ของ Qdrant, พอร์ต: 6333, คอลเลกชัน: omniroute_memory",
+ "qdrantHelpStep2": "2. หากใช้ nvidia/llama-nemotron-embed-vl-1b-v2:free ให้กำหนดมิติของคอลเลกชันเป็น 2048",
+ "qdrantHelpStep3": "3. ช่องโมเดล: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free",
+ "qdrantHelpStep4": "4. บันทึก ทดสอบการเชื่อมต่อ แล้วทดสอบการค้นหา",
+ "qdrantEmbeddingQuickSelect": "เลือกอย่างรวดเร็วจากโมเดลที่ค้นพบ...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "รูปแบบ: provider/model ต้องกำหนดค่าข้อมูลรับรองของผู้ให้บริการไว้แล้ว",
+ "qdrantApiKeyPlaceholderKeep": "(เว้นว่างไว้เพื่อคงคีย์ปัจจุบัน)",
+ "qdrantApiKeyPlaceholderOptional": "(เว้นว่างไว้หากไม่ได้ใช้)",
+ "qdrantSaveHint": "เคล็ดลับ: แก้ไขโฮสต์/พอร์ต/คอลเลกชัน/โมเดล แล้วคลิกบันทึก API key เป็นตัวเลือกเสริม",
+ "qdrantSearchTestTitle": "ทดสอบการค้นหา",
+ "qdrantSearchTestDesc": "สร้าง embedding และค้นหาใน Qdrant",
+ "qdrantSearchPlaceholder": "ตัวอย่าง: ค่ากำหนดของผู้ใช้ ประวัติ ฯลฯ",
+ "qdrantNoResults": "ไม่พบผลลัพธ์ (หรือยังไม่ได้กำหนดค่า Qdrant)",
+ "qdrantCleanupTitle": "การเก็บรักษาและการล้างข้อมูล",
+ "qdrantCleanupDesc": "ลบจุดที่หมดอายุและเก่าโดยอิงตาม",
+ "searching": "กำลังค้นหา...",
+ "cleaning": "กำลังล้างข้อมูล...",
+ "cleanNow": "ล้างตอนนี้",
"optional": "ไม่จำเป็น",
"current": "ปัจจุบัน",
"remove": "ลบ",
@@ -7596,19 +7603,19 @@
"resilienceScope": "ขอบเขต:",
"resilienceTrigger": "ทริกเกอร์:",
"resilienceEffect": "ผล:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "คิวคำขอและอัตราการส่ง",
+ "resilienceAutoEnableApiKeyProviders": "เปิดใช้งานอัตโนมัติสำหรับผู้ให้บริการที่ใช้ API key",
+ "resilienceRequestsPerMinute": "จำนวนคำขอต่อนาที",
+ "resilienceMinTimeBetweenRequests": "ระยะเวลาขั้นต่ำระหว่างคำขอ",
+ "resilienceConcurrentRequests": "คำขอพร้อมกัน",
+ "resilienceConnectionScopeConcurrentRequests": "จำนวนคำขอพร้อมกันต่อการเชื่อมต่อ/ขอบเขตโควตา",
+ "resilienceGlobalConcurrentRequests": "จำนวนคำขอพร้อมกันไปยังต้นทางทั้งหมด (0 = ปิดใช้งาน)",
"resilienceMaxQueueWaitTime": "เวลารอคิวสูงสุด",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "ระยะพักพื้นฐาน",
+ "resilienceUseUpstreamRetryHints": "ใช้คำแนะนำการลองใหม่จากต้นทาง",
+ "resilienceDefaultPerProvider": "ค่าเริ่มต้น (ต่อผู้ให้บริการ)",
+ "resilienceAlwaysOn": "เปิดตลอดเวลา",
+ "resilienceAlwaysOff": "ปิดตลอดเวลา",
"routingRemoveEntry": "ลบรายการ",
"routingNeedlesSubstrings": "เข็ม (สายย่อยเพื่อให้ตรงกัน)",
"routingCaseSensitive": "คำนึงถึงขนาดตัวพิมพ์",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "ส่งไปยังโมเดลการมองเห็น (vision model) ก่อนที่คำอธิบายที่แยกออกมาจะถูกแทรกกลับเข้าไปในคำขอเดิม",
"visionBridgeTimeoutMs": "หมดเวลา (มิลลิวินาที)",
"visionBridgeMaxImagesPerRequest": "รูปภาพสูงสุดต่อคำขอ",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "จำนวนขั้นการหน่วงเวลาสูงสุด",
+ "resilienceProviderBreakerTitle": "เซอร์กิตเบรกเกอร์ตามผู้ให้บริการ",
+ "resilienceFailureThreshold": "เกณฑ์จำนวนความล้มเหลว",
+ "resilienceDegradationThreshold": "เกณฑ์การลดประสิทธิภาพ",
"resilienceResetTimeout": "รีเซ็ตการหมดเวลา",
"resilienceFailureThresholdLabel": "เกณฑ์ความล้มเหลว",
"resilienceResetTimeoutLabel": "รีเซ็ตการหมดเวลา",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "ระยะพักการเชื่อมต่อ",
"resilienceUseUpstreamRetryHintsLabel": "ใช้คำแนะนำในการลองอัปสตรีมอีกครั้ง",
"resilienceUseUpstream429BreakerLabel": "ใช้คำแนะนำอัปสตรีม 429 (เบรกเกอร์)",
"resilienceMaxBackoffStepsLabel": "ขั้นตอนการถอยหลังสูงสุด",
"resilienceYes": "ใช่",
"resilienceNo": "ไม่",
- "resilienceDefault": "Default",
+ "resilienceDefault": "ค่าเริ่มต้น",
"storageDatabaseBackupRetention": "การเก็บรักษาการสำรองฐานข้อมูล",
"storageDatabaseBackups": "การสำรองข้อมูลฐานข้อมูล",
"storageBackupRetentionDescription": "การสำรองข้อมูล SQLite อัตโนมัติจะถูกจัดเก็บไว้ใน",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "นำเข้า JSON แบบเก่าสำเร็จแล้ว!",
"jsonImportFailed": "นำเข้า JSON ล้มเหลว",
"jsonImportError": "เกิดข้อผิดพลาดระหว่างการนำเข้า JSON",
+ "jsonImportAuthRequired": "ต้องยืนยันตัวตนเพื่อนำเข้าการกำหนดค่า JSON แบบเดิม โปรดลงชื่อเข้าใช้หรือตั้งค่าให้เสร็จสิ้นก่อน",
+ "databaseSettingsAuthRequiredTitle": "ต้องยืนยันตัวตน",
+ "databaseSettingsAuthRequiredBody": "การตั้งค่าฐานข้อมูลและการนำเข้า JSON ใช้ได้เฉพาะผู้ดูแลระบบที่ยืนยันตัวตนแล้วเท่านั้น ลงชื่อเข้าใช้หรือตั้งค่าให้เสร็จสิ้นเพื่อดูและแก้ไข",
+ "databaseSettingsAuthRequiredCta": "ลงชื่อเข้าใช้",
"storagePurgeData": "ล้างข้อมูล",
"storagePurgeDataDesc": "ลบระเบียนทั้งหมดทันทีโดยไม่ต้องใช้การตรวจสอบการเก็บรักษาข้อมูล โปรดใช้ด้วยความระมัดระวัง",
"storageRetentionCleanup": "ตั้งค่าการเก็บรักษาข้อมูล",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "โหมด: {mode}",
"compressionAdaptiveOff": "งบประมาณบริบทแบบปรับตัว: ปิด (การทริกเกอร์อัตโนมัติแบบเก่า)",
"compressionAdaptiveTarget": "แบบปรับตัว ({mode}, นโยบาย: {policy}) — เป้าหมาย ≈ {target, number} โทเค็น (สำหรับหน้าต่าง {contextLimit, number} โทเค็น)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "งบประมาณบริบทแบบปรับเปลี่ยนได้",
+ "compressionAdaptiveModeOff": "ปิด (ทริกเกอร์อัตโนมัติแบบเดิม)",
+ "compressionAdaptiveModeFloor": "ค่าขั้นต่ำ (รับประกันว่าใส่ได้เสมอ)",
+ "compressionAdaptiveModeReplace": "แทนที่ทริกเกอร์อัตโนมัติ",
+ "compressionAdaptivePolicy": "นโยบายงบประมาณ",
+ "compressionAdaptivePolicyReserve": "สำรองไว้สำหรับเอาต์พุต",
+ "compressionAdaptivePolicyPercentage": "เปอร์เซ็นต์ของหน้าต่าง",
+ "compressionAdaptivePolicyAbsolute": "งบประมาณโทเค็นแบบค่าสัมบูรณ์",
"compressionOutputStylesDescription": "แทรกคำสั่งกำหนดรูปแบบการตอบกลับโดยไม่ต้องเขียนผลลัพธ์ของผู้ให้บริการใหม่ สามารถผสมผสานได้อย่างอิสระ",
"mcpAccessibilityDescription": "กำหนดขอบเขตผลลัพธ์เครื่องมือ MCP (แยกพื้นที่จัดเก็บ)",
"compressionStylesTileSummary": "{tokens, number} โทเค็นที่ประหยัดได้ · {runs, plural, one {จัดรูปแบบแล้ว # ครั้ง} other {จัดรูปแบบแล้ว # ครั้ง}}",
@@ -7840,9 +7851,9 @@
"minimal": "น้อยที่สุด",
"standard": "มาตรฐาน",
"aggressive": "เชิงรุก",
- "lite": "Lite",
- "full": "Full",
- "ultra": "Ultra"
+ "lite": "เบา",
+ "full": "เต็มรูปแบบ",
+ "ultra": "อัลตรา"
},
"compressionEngine": {
"session-dedup": {
@@ -7854,7 +7865,7 @@
"description": "ตัวทำเครื่องหมายการดึงข้อมูลตามที่อยู่เนื้อหา"
},
"lite": {
- "label": "Lite",
+ "label": "เบา",
"description": "การล้างช่องว่างและรูปแบบ"
},
"rtk": {
@@ -7862,8 +7873,8 @@
"description": "การกรองผลลัพธ์ของคำสั่ง"
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "เอาต์พุตเครื่องมือ Responses",
+ "description": "บีบอัดเอาต์พุตของเครื่องมือ Responses ที่รองรับอย่างระมัดระวัง"
},
"headroom": {
"label": "พื้นที่สำรอง",
@@ -7874,7 +7885,7 @@
"description": "การให้คะแนนประโยคแบบดึงข้อมูลเปรียบเทียบกับคำค้นหาล่าสุดของผู้ใช้"
},
"caveman": {
- "label": "Caveman",
+ "label": "มนุษย์ถ้ำ",
"description": "การบีบอัดข้อความตามกฎ"
},
"aggressive": {
@@ -7886,7 +7897,7 @@
"description": "การตัดแต่งเชิงความหมาย (ONNX)"
},
"ultra": {
- "label": "Ultra",
+ "label": "อัลตรา",
"description": "การตัดแต่งโทเค็นแบบฮิวริสติกพร้อม SLM ทางเลือก"
},
"omniglyph": {
@@ -7904,12 +7915,12 @@
"description": "บันได YAGNI: การเปลี่ยนแปลงที่เล็กที่สุดที่ใช้งานได้จริง โดยไม่มีการสร้าง Abstraction ที่ไม่ได้ร้องขอ"
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "หางม้า (นักพัฒนาอาวุโสสายขี้เกียจ)",
+ "description": "วินัยแบบนักพัฒนาอาวุโสสายขี้เกียจ: ไต่ระดับ YAGNI แก้ที่ต้นเหตุ และใช้ส่วนต่างที่เล็กที่สุดซึ่งทำงานได้"
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "ฉันมี ADHD (ลงมือก่อน)",
+ "description": "เอาต์พุตแบบลงมือก่อน: เริ่มด้วยสิ่งที่ต้องทำถัดไป ลำดับขั้นตอนด้วยตัวเลข ระบุขั้นตอนถัดไปที่ชัดเจนเพียงหนึ่งข้อ และไม่มีเกริ่นนำ"
},
"terse-cjk": {
"label": "CJK แบบกระชับ (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI ทางเลือก",
"cliproxyapiEnableFallback": "เปิดใช้งานทางเลือกสำรอง CLIProxyAPI",
"cliproxyapiUrl": "URL ของ CLIProxyAPI",
+ "headroomProxyTitle": "พร็อกซี Headroom",
+ "headroomProxyDesc": "URL ของพร็อกซีประหยัดโทเค็น Headroom ซึ่งเป็นตัวเลือก หากเว้นว่างจะใช้ HEADROOM_URL หรือ http://localhost:8787",
+ "headroomProxyUrl": "URL ของ Headroom",
+ "headroomProxyUrlHint": "สามารถเริ่ม URL แบบลูปแบ็กได้จากหน้านี้ ส่วน URL ภายนอกจะถูกตรวจสอบเท่านั้น",
+ "headroomProxySave": "บันทึก",
+ "headroomProxyStart": "เริ่ม",
+ "headroomProxyStop": "หยุด",
+ "headroomProxyExternalHint": "URL นี้ไม่ใช่ลูปแบ็ก ดังนั้น OmniRoute จะไม่เปิด CLI ภายในเครื่อง",
"cliproxyapiStatus": "สถานะ CLIProxyAPI",
"cliproxyapiNotDetected": "ตรวจไม่พบ",
"cliproxyapiImportAuthTitle": "นำเข้าบัญชีจาก CLIProxyAPI",
@@ -7985,14 +8004,14 @@
"codexFastTierDesc": "ฉีด service_tier=priority ทั่วโลกสำหรับคำขอ OpenAI Codex",
"codexFastTierHint": "เมื่อเปิดใช้งาน OmniRoute จะเพิ่ม service_tier=priority ไปยังคำขอ Codex ขาออกสำหรับการเชื่อมต่อที่ไม่ได้ระบุระดับ ระดับความสำคัญต้องใช้คีย์ OpenAI Enterprise API หรือเส้นทาง ChatGPT-auth Codex คีย์ประเภทอื่นๆ จะได้รับข้อผิดพลาดเกี่ยวกับระดับจาก OpenAI การตั้งค่าต่อการเชื่อมต่อในหน้าผู้ให้บริการ Codex จะมีความสำคัญ",
"codexFastTierSaveError": "ไม่สามารถอัปเดตการตั้งค่า Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "การปิงโควตา Codex อัตโนมัติ",
+ "codexAutoPingDesc": "เลือกเปิดใช้เป็นรายจุดเชื่อมต่อ: ส่งคำขอขนาดเล็กทันทีหลังจากหน้าต่างเซสชัน Codex รีเซ็ต เพื่อให้พร้อมใช้งานเมื่อคุณต้องการ",
+ "codexAutoPingWarning": "ใช้โควตา Codex จริงเล็กน้อยในการปิงทุกครั้ง ค่าเริ่มต้นคือปิด — เปิดใช้เฉพาะกับจุดเชื่อมต่อที่คุณใช้งานเป็นประจำเท่านั้น",
+ "codexAutoPingSaveError": "อัปเดตการตั้งค่าการปิงอัตโนมัติของ Codex ไม่สำเร็จ",
+ "codexAutoPingToggleAria": "สลับการปิงโควตา Codex อัตโนมัติสำหรับ {connection}",
"codexFastTierTierLabel": "ระดับบริการ",
"codexFastTierTierPriority": "ลำดับความสำคัญ",
- "codexFastTierTierFlex": "Flex",
+ "codexFastTierTierFlex": "ยืดหยุ่น",
"codexFastTierTierDefault": "ค่าเริ่มต้น",
"codexFastTierModelsLabel": "โมเดลระดับ Fast",
"codexFastTierModelsHint": "เฉพาะโมเดลที่เลือกไว้เท่านั้นที่จะได้รับ service_tier เมื่อเปิดใช้งาน Fast Tier",
@@ -8018,7 +8037,7 @@
"LOCAL_ONLY": "เฉพาะภายในเครื่อง",
"ALWAYS_PROTECTED": "ได้รับการปกป้องเสมอ",
"MANAGEMENT": "การจัดการ",
- "CLIENT_API": "Client API",
+ "CLIENT_API": "API ไคลเอนต์",
"PUBLIC": "สาธารณะ"
},
"bypass": {
@@ -8125,9 +8144,9 @@
"resilienceCredentialHealthInterval": "ช่วงตรวจส่วนกลาง",
"resilienceCredentialHealthEveryMinutes": "ทุก {minutes} นาที",
"resilienceCredentialHealthHint": "0 ปิดการกวาดพื้นหลัง (สูงสุด 1440 นาที = 24 ชม.) การเชื่อมต่อที่มีค่าการตรวจสุขภาพของตัวเองจะไม่ใช้ค่าเริ่มต้นส่วนกลางนี้ ค่า 0 บนการเชื่อมต่อหนึ่งรายการจะตัดออกแม้การกวาดส่วนกลางเปิดอยู่",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
- "sessionAffinityTitle": "Session affinity",
+ "forcedFingerprintTitle": "เปิดใช้งานเสมอสำหรับ {provider} — จำเป็นต่อความปลอดภัยของบัญชี OAuth และไม่สามารถปิดได้",
+ "forcedFingerprintBadge": "จำเป็น",
+ "sessionAffinityTitle": "การผูกเซสชัน",
"sessionAffinityDesc": "คงการสนทนาหนึ่งๆ ให้อยู่ในบัญชีเดิมเป็นเวลาตามจำนวนวินาทีนี้ สำหรับผู้ให้บริการใดๆ การตั้งค่าเป็น 0 จะเป็นการปิดใช้งาน",
"sessionAffinityTtl": "TTL ของ Affinity (วินาที)",
"resetAwareQuotaCacheTitle": "รีเซ็ตแคชโควต้าที่รับรู้",
@@ -8161,9 +8180,9 @@
"cloudflareRelayModalTitle": "ปรับใช้ Cloudflare Worker Relay",
"cloudflareRelayWarning": "ปรับใช้ Cloudflare Worker ที่ทำหน้าที่เป็นพร็อกซีคำขอ LLM ผ่านเครือข่าย Edge ของ Cloudflare — ซ่อน IP ของโฮสต์ไว้เบื้องหลังที่อยู่ Cloudflare แบบไดนามิก Worker จะบังคับใช้รหัสลับการตรวจสอบสิทธิ์แบบใช้ครั้งเดียว เพื่อไม่ให้ URL workers.dev สาธารณะถูกนำไปใช้ซ้ำเป็น Open Relay",
"cloudflareRelayTokenHowto": "สร้างโทเค็น API ภายใต้ My Profile -> API Tokens -> Create Token -> Custom Token -> Account / Workers Scripts / Edit",
- "cloudflareRelayAccountIdLabel": "Cloudflare Account ID",
+ "cloudflareRelayAccountIdLabel": "รหัสบัญชี Cloudflare",
"cloudflareRelayAccountIdHint": "ดูได้ที่ด้านขวาของหน้าภาพรวมแดชบอร์ด Cloudflare",
- "cloudflareRelayApiTokenLabel": "Cloudflare API Token",
+ "cloudflareRelayApiTokenLabel": "โทเค็น API ของ Cloudflare",
"cloudflareRelayApiTokenHint": "ต้องใช้สิทธิ์ 'Workers Scripts: Edit' โทเค็นนี้จะใช้เฉพาะตอนปรับใช้เท่านั้นและจะไม่มีการจัดเก็บไว้",
"cloudflareRelayProjectNameLabel": "ชื่อ Worker",
"cloudflareRelayFreeTierNote": "แพ็กเกจฟรี: 100,000 คำขอ/วัน ต่อบัญชี Cloudflare",
@@ -8183,33 +8202,33 @@
"removeErrorCode": "ลบ {code}",
"addErrorCode": "เพิ่มรหัสข้อผิดพลาด...",
"suggestions": "คำแนะนำ:",
- "modelLockoutMaxCooldownHint": "≥ Base Cooldown — 3,600,000ms",
+ "modelLockoutMaxCooldownHint": "≥ คูลดาวน์พื้นฐาน — 3,600,000ms",
"modelLockoutEnabled": "เปิดใช้งานการล็อกโมเดล",
"modelLockoutEnabledDescription": "เมื่อเปิดใช้งาน โมเดลที่ล้มเหลวด้วยรหัสข้อผิดพลาดที่กำหนดค่าไว้จะถูกล็อกชั่วคราวเพื่อป้องกันการวนซ้ำการลองใหม่",
"modelLockoutErrorCodes": "รหัสข้อผิดพลาด",
"modelLockoutErrorCodesDescription": "รหัสสถานะ HTTP ที่ทริกเกอร์การล็อกโมเดล พิมพ์รหัสแล้วคลิกเพิ่ม หรือเลือกจากคำแนะนำ",
- "modelLockoutBaseCooldown": "Base Cooldown (ms)",
+ "modelLockoutBaseCooldown": "คูลดาวน์พื้นฐาน (ms)",
"modelLockoutBaseCooldownDescription": "ระยะเวลาคูลดาวน์เริ่มต้นเป็นมิลลิวินาที ก่อนที่จะสามารถลองใช้โมเดลใหม่อีกครั้ง",
- "modelLockoutMaxCooldown": "Max Cooldown (ms)",
+ "modelLockoutMaxCooldown": "คูลดาวน์สูงสุด (ms)",
"modelLockoutMaxCooldownDescription": "ระยะเวลาคูลดาวน์สูงสุดในหน่วยมิลลิวินาที ป้องกันการล็อกที่ยาวนานเกินไป",
- "modelLockoutExponentialBackoff": "Exponential Backoff",
+ "modelLockoutExponentialBackoff": "การหน่วงเวลาแบบเอ็กซ์โพเนนเชียล",
"modelLockoutExponentialBackoffDescription": "เมื่อเปิดใช้งาน ความล้มเหลวติดต่อกันแต่ละครั้งจะเพิ่มระยะเวลาคูลดาวน์แบบเอ็กซ์โพเนนเชียล",
"modelLockoutMaxBackoffSteps": "จำนวนขั้นตอน Backoff สูงสุด",
"modelLockoutMaxBackoffStepsDescription": "จำนวนขั้นตอน backoff สูงสุดก่อนที่ระยะเวลาคูลดาวน์จะหยุดเพิ่มขึ้น ในการกำหนดค่าส่วนใหญ่จะถึงขีดจำกัด Max Cooldown ก่อน ทำให้ค่านี้เป็นเพดานความปลอดภัยเมื่อมีการเพิ่ม Max Cooldown",
"disableSessionStickiness": "ปิดใช้งาน Session Stickiness",
"disableSessionStickinessDesc": "คอมโบแบบ Round-robin และแบบสุ่มจะสลับไปยังการเชื่อมต่ออื่นในทุกคำขอ แทนที่จะตรึงการสนทนาทั้งหมดไว้กับการเชื่อมต่อเดียวตามแฮชของข้อความแรก ปิดไว้เพื่อรักษา prompt-cache hits สำหรับการแชทแบบหลายรอบ การแทนที่ระดับคอมโบจะมีผลเหนือกว่า",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "การกำหนดเส้นทางตามตำแหน่งแคชพรอมต์",
+ "promptCacheAffinityDesc": "เลือกใช้บัญชีผู้ให้บริการเดิมสำหรับคีย์แคชพรอมต์ที่ตรงกัน โดยยังคงรองรับการสลับเมื่อสถานะไม่พร้อมใช้งานหรือโควตาไม่เพียงพอ",
+ "reasoningTokenBuffer": "บัฟเฟอร์โทเค็นการให้เหตุผล",
+ "reasoningTokenBufferDesc": "อนุญาตให้การกำหนดเส้นทางแบบผสมเพิ่มพื้นที่สำรองของ max_tokens เฉพาะสำหรับโมเดลการให้เหตุผลที่รู้จัก เมื่อบัฟเฟอร์ทั้งหมดอยู่ภายในขีดจำกัดเอาต์พุตที่ทราบ",
+ "zeroLatencyOptimizations": "การเพิ่มประสิทธิภาพแบบไร้เวลาแฝง",
+ "zeroLatencyOptimizationsDesc": "เลือกใช้การส่งคำขอสำรองแบบแข่งขัน การข้ามตามการคาดการณ์ TTFT และการบีบอัดคำขอสำรองเชิงรุก ปิดไว้เพื่อป้องกันไม่ให้ฟีเจอร์ลดเวลาแฝงเหล่านี้แข่งกันส่งไปยังเป้าหมายหรือบีบอัดคำขอสำรอง",
"credentialRedaction": "การปกปิดข้อมูลรับรอง",
"credentialRedactionDesc": "ปกปิดคีย์ API, โทเค็น และข้อมูลลับจากบริบทที่ส่งไปยังผู้ให้บริการและจากการตอบกลับ",
"enableCredentialRedaction": "เปิดใช้งานการปกปิดข้อมูลรับรอง",
"enableCredentialRedactionDesc": "ล้างคีย์ API, โทเค็น, ไพรเวตคีย์ และ JWT ออกจากข้อความ, การเรียกใช้เครื่องมือ และการตอบกลับ",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "ปิดใช้งานการซิงค์อัตโนมัติ",
+ "pricingAutoSyncEnabled": "เปิดใช้งานการซิงค์อัตโนมัติ",
"modalityBridgeIntro": "แปลงเนื้อหาแบบหลายสื่อเป็นข้อความก่อนส่งถึงโมเดลที่รองรับเฉพาะข้อความ สะพานสำหรับภาพ เสียง และวิดีโอพร้อมใช้งานและกำหนดค่าได้",
"modalityBridgeVisionTab": "วิสัยทัศน์",
"modalityBridgeAudioTab": "เสียง",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "สุขภาพ",
"cliproxyapiPort": "พอร์ต",
"qdrantHost": "โฮสต์",
- "qdrantCollection": "การรวบรวม",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "การรวบรวม"
},
"contextRtk": {
"title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "description": "การบีบอัดที่รับรู้คำสั่งสำหรับเอาต์พุตของเครื่องมือ บันทึกเทอร์มินัล และผลลัพธ์การบิลด์",
+ "enabled": "เปิดใช้งาน",
+ "intensity": "ระดับความเข้มข้น",
+ "intensityMinimal": "น้อยที่สุด",
+ "intensityStandard": "มาตรฐาน",
+ "intensityAggressive": "เข้มข้น",
+ "toolResults": "ผลลัพธ์ของเครื่องมือ",
+ "assistantMessages": "ข้อความของผู้ช่วย",
+ "codeBlocks": "บล็อกโค้ด",
"filterCatalog": "แคตตาล็อกตัวกรอง",
"filterCatalogDesc": "ตัวกรองผลลัพธ์ที่มีอยู่ตามหมวดหมู่",
"guidedConfig": "การกำหนดค่า",
"guidedConfigDesc": "ปรับวิธีที่ RTK กรองเอาต์พุตเทอร์มินัลของคุณ",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "จำนวนบรรทัดสูงสุด",
+ "maxChars": "จำนวนอักขระสูงสุด",
"deduplicateThreshold": "เกณฑ์ที่ซ้ำกัน",
"customFilters": "ตัวกรองแบบกำหนดเอง",
"detectedType": "ประเภทที่ตรวจพบ",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "ความล้มเหลว",
"rawOutputAlways": "เสมอ",
"rawOutputMaxBytes": "ไบต์เอาต์พุตดิบสูงสุด",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "การทดสอบตัวกรอง",
+ "pasteOutput": "วางเอาต์พุตของเครื่องมือเพื่อทดสอบการกรอง...",
"presetHigh": "ก้าวร้าว",
"presetLow": "เบา",
"presetMaxChars": "อักขระเอาท์พุตสูงสุด",
"presetMaxLines": "เส้นเอาต์พุตสูงสุด",
"presetMedium": "มาตรฐาน",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "เรียกใช้",
+ "result": "ผลลัพธ์",
+ "previewEmpty": "เรียกใช้ตัวอย่างเพื่อดูตัวอย่างเอาต์พุต RTK",
+ "detected": "ตรวจพบ",
"masterSwitchOffAlert": "สวิตช์หลักของ Token Saver ปิดอยู่ — การตั้งค่าเหล่านี้จะไม่มีผลกับคำขอจนกว่าคุณจะเปิดใช้งานจากหน้า Endpoint",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "โทเค็นที่กรองออก",
+ "filtersActive": "ตัวกรองที่ทำงานอยู่",
+ "requests": "คำขอ",
+ "avgSavings": "การประหยัดโดยเฉลี่ย",
"simpleMode": "เรียบง่าย",
"advancedMode": "ขั้นสูง",
"searchFilters": "ตัวกรองการค้นหา...",
@@ -8477,7 +8488,7 @@
"savings": "ส่วนที่ประหยัดได้",
"original": "ต้นฉบับ",
"compressed": "บีบอัดแล้ว",
- "diff": "Diff",
+ "diff": "ความแตกต่าง",
"last7Days": "7 วันที่ผ่านมา",
"noDataYet": "ยังไม่มีข้อมูล",
"runs": "การรัน",
@@ -8495,7 +8506,7 @@
"description": "การบีบอัดข้อมูลแบบตารางของอาร์เรย์ JSON ที่เป็นเนื้อเดียวกันแบบไม่สูญเสียข้อมูล พร้อมตัวระบุจำนวนแถวที่ชัดเจน"
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "การขจัดข้อมูลซ้ำในเซสชัน",
"description": "การลบข้อมูลบล็อกที่ซ้ำกันข้ามเทิร์นพร้อมมาร์กเกอร์เนื้อหาที่กู้คืนได้"
},
"ccr": {
@@ -8511,11 +8522,11 @@
"description": "การลดช่องว่าง ผลลัพธ์ของเครื่องมือ และ URL รูปภาพอย่างรวดเร็ว"
},
"aggressive": {
- "name": "Aggressive",
+ "name": "เข้มข้น",
"description": "การสรุปย่อ การบีบอัดผลลัพธ์ของเครื่องมือ และการลดความสำคัญตามอายุแบบต่อเนื่อง"
},
"ultra": {
- "name": "Ultra",
+ "name": "สูงสุด",
"description": "การตัดแต่งโทเค็นตามหลักฮิวริสติกพร้อมการทำงานสำรองด้วย SLM ในเครื่อง (ไม่บังคับ)"
}
},
@@ -8597,9 +8608,9 @@
"bert-base": "BERT-base (710 MB, ความแม่นยำสูงกว่า)"
},
"intensity": {
- "lite": "Lite",
- "full": "Full",
- "ultra": "Ultra"
+ "lite": "เบา",
+ "full": "เต็มรูปแบบ",
+ "ultra": "อัลตรา"
}
},
"modeOptions": {
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "ชุดผสมการบีบอัด",
+ "description": "กำหนดวิธีผสานเอนจินสำหรับสถานการณ์การกำหนดเส้นทางต่างๆ",
+ "createCombo": "สร้างชุดผสมการบีบอัด",
+ "editCombo": "แก้ไข",
+ "deleteCombo": "ลบ",
+ "deleteConfirm": "ลบชุดผสมการบีบอัดนี้หรือไม่",
+ "pipeline": "ไปป์ไลน์",
+ "addStep": "เพิ่มขั้นตอน",
+ "removeStep": "นำออก",
+ "name": "ชื่อ",
+ "descriptionField": "คำอธิบาย",
+ "languagePacks": "แพ็กภาษา",
+ "outputMode": "โหมดเอาต์พุต",
+ "assignToRouting": "กำหนดให้กับชุดผสมการกำหนดเส้นทาง",
+ "noAssignments": "ไม่มีชุดผสมการกำหนดเส้นทางที่พร้อมใช้งาน",
+ "default": "ค่าเริ่มต้น",
+ "setAsDefault": "ตั้งเป็นค่าเริ่มต้น",
+ "save": "บันทึก",
+ "cancel": "ยกเลิก",
+ "enabled": "เปิดใช้งาน",
"loading": "กำลังโหลด…",
"hubTitle": "ศูนย์กลางการบีบอัด",
"hubDescription": "เลือกโปรไฟล์การบีบอัดที่จะทำงานทั่วโลก",
@@ -8657,22 +8668,22 @@
"contextEditingNote": "ปัจจุบันใช้งานได้สำหรับ Claude (Anthropic) เท่านั้น ซึ่งเป็นโหมดที่มอบหมายให้ผู้ให้บริการล้างบล็อกการใช้เครื่องมือเก่าที่ฝั่งเซิร์ฟเวอร์ — เราจะไม่เขียนข้อความใหม่ และไม่มีผลต่อผู้ให้บริการรายอื่น",
"namedCombos": "คอมโบที่ตั้งชื่อไว้",
"namedCombosDescription": "บันทึกไปป์ไลน์ที่แตกต่างกันและกำหนดให้กับคอมโบการกำหนดเส้นทางเฉพาะ",
+ "activeProfileMasterSwitchOffWarning": "โปรไฟล์ที่ใช้งานอยู่ด้านล่างจะไม่ทำงานจนกว่าจะเปิดสวิตช์หลัก \"การบีบอัดพรอมต์\"",
+ "activeProfileMasterSwitchOffCta": "เปิดสวิตช์ในการตั้งค่า",
"comboNamePlaceholder": "ชื่อคอมโบ",
"descriptionPlaceholder": "คำอธิบาย",
"nameRequired": "ป้อนชื่อคอมโบก่อนบันทึก",
"pipelineRequired": "เพิ่มขั้นตอนไปป์ไลน์อย่างน้อยหนึ่งขั้นตอนก่อนบันทึก",
"saveComboFailed": "บันทึกคอมโบไม่สำเร็จ (HTTP {status})",
"deleteNamedConfirm": "ลบคอมโบ “{name}” หรือไม่?",
- "intensityLite": "Lite",
- "intensityFull": "Full",
- "intensityUltra": "Ultra",
+ "intensityLite": "เบา",
+ "intensityFull": "เต็มรูปแบบ",
+ "intensityUltra": "อัลตรา",
"active": "ใช้งานอยู่",
"languagePacksList": "แพ็กภาษา: {packs}",
"dragToReorder": "ลากเพื่อจัดลำดับขั้นตอนใหม่",
"engine": "เอนจิน",
- "intensity": "ความเข้ม",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "ความเข้ม"
},
"compressionStudio": {
"noRun": "ไม่มีการรันการบีบอัดที่พร้อมใช้งาน",
@@ -8701,7 +8712,7 @@
"run": "รัน",
"laneRejected": "ถูกปฏิเสธ: {reason}",
"error": "ข้อผิดพลาด",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "ดูตัวอย่างไปป์ไลน์แบบรวมไม่สำเร็จ: {reason}",
"combinedFlow": "โฟลว์รวม",
"eachLayer": "แต่ละเลเยอร์แยกกัน",
"diff": "ความต่าง",
@@ -8710,7 +8721,7 @@
"input": "อินพุต",
"output": "เอาต์พุต",
"tokenCount": "{count, number} โทเค็น",
- "tokenShort": "tok",
+ "tokenShort": "โทเค็น",
"provider": "ผู้ให้บริการ",
"judgeModel": "โมเดลผู้ตัดสิน",
"judgeModelPlaceholder": "เช่น claude-haiku",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "เปิดใช้งานเอนจิน",
"enableDescription": "ทำงานเป็นลำดับสุดท้ายในสแตก (หลังจาก RTK/Caveman คลีนข้อความ และ OmniGlyph แปลงส่วนที่เหลือเป็นรูปภาพ) และยังทำงานแบบสแตนด์อโลนผ่านโหมด omniglyph นี่เป็นเวอร์ชันพรีวิวและจะยังคงปิดใช้งานไว้เป็นค่าเริ่มต้นจนกว่าการตรวจสอบความถูกต้องแบบครบวงจร (end-to-end) จะเสร็จสิ้น",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "โปรไฟล์การบีบอัด",
+ "profileDescription": "โปรไฟล์เป็นขีดจำกัดบน ไม่ใช่ขีดจำกัดล่าง กล่าวคือ โปรไฟล์ที่เข้มงวดกว่าจะไม่สามารถผ่อนคลายได้ด้วยการกำหนดค่าแทนในแต่ละขั้นตอน จากการวัดบนโค้ดเบสนี้: เมื่อใช้แบบปลอดภัยสำหรับการเขียนโค้ดหรือแบบสมดุล เซสชันที่ยังไม่มีประวัติสะสมจะไม่บีบอัดสิ่งใด เนื่องจากทั้งสองแบบจะเพิ่มเกณฑ์จำนวนอักขระขั้นต่ำ และคงพรอมต์ระบบ สคีมาเครื่องมือ และผลลัพธ์จากเครื่องมือไว้ในรูปแบบเดิม",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "เชิงรุก (ค่าเริ่มต้น)",
+ "description": "นโยบายที่ใช้วัดผลลัพธ์ที่เผยแพร่ โดยแปลงพรอมต์ระบบ เอกสารประกอบเครื่องมือ และประวัติที่มีเนื้อหาหนาแน่นเป็นรูปภาพ"
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "สมดุล",
+ "description": "คงสถานะปัจจุบันไว้ในรูปแบบเดิมและปกป้อง 8 รอบการสนทนาล่าสุด โดยยุบเฉพาะประวัติเก่าที่ปิดแล้ว"
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "ปลอดภัยสำหรับการเขียนโค้ด",
+ "description": "คงสิทธิ์ควบคุม สคีมาเครื่องมือ และเอาต์พุตปัจจุบันจากเครื่องมือไว้ในรูปแบบเดิม พร้อมปกป้อง 12 รอบการสนทนาล่าสุด โดยจะไม่บีบอัดสิ่งใดจนกว่าเซสชันจะมีประวัติสะสม"
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "ส่งผ่าน",
+ "description": "กำหนดเส้นทางโดยไม่แปลงข้อมูล ระบบจะข้ามเอนจินและส่งต่อคำขอโดยไม่มีการแก้ไข"
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "เลือกโปรไฟล์การบีบอัด OmniGlyph",
"saved": "บันทึกแล้ว",
"saveFailed": "ไม่สามารถบันทึกได้",
"enableAria": "เปิดใช้งานเอนจิน OmniGlyph",
@@ -8869,7 +8880,7 @@
"providerExposureHint": "เมื่อเปิดใช้งาน โมเดลที่พบจะปรากฏในตัวเลือกผู้ให้บริการทั่วทั้ง OmniRoute",
"providerExposureUpdateFailed": "อัปเดตล้มเหลว (HTTP {status})",
"providerExposureNetworkFailed": "ข้อผิดพลาดของเครือข่าย — ไม่สามารถอัปเดตการตั้งค่าการเปิดเผยผู้ให้บริการได้",
- "webUi": "9Router Web UI",
+ "webUi": "เว็บ UI ของ 9Router",
"openNewTab": "เปิดในแท็บใหม่",
"filterLogs": "กรองบันทึก…",
"resume": "ดำเนินการต่อ",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "การบีบอัดข้อความตามกฎ ชุดภาษา การวิเคราะห์ และการควบคุมโหมดเอาต์พุต",
"advancedConfig": "การกำหนดค่าขั้นสูง",
"advancedConfigDesc": "ปรับแต่งลักษณะการบีบอัด",
"aggressiveSettings": "การตั้งค่าเชิงรุก",
"aggressiveSettingsDesc": "การบีบอัดสูงสุดพร้อมการแลกเปลี่ยนคุณภาพที่อาจเกิดขึ้น",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "คำขอ",
+ "tokensSaved": "โทเค็นที่ประหยัดได้",
+ "savingsPercent": "ประหยัดได้ %",
+ "avgLatency": "เวลาแฝงเฉลี่ย",
+ "languagePacks": "ชุดภาษา",
+ "languagePacksDesc": "เปิดใช้กฎการบีบอัดสำหรับภาษาที่ระบุ",
"labelAutoTrigger": "บีบอัดอัตโนมัติเมื่อมีบริบทเกินขอบเขต",
"labelCompressionRate": "แรงอัด",
"labelMaxTokens": "โทเค็นเป้าหมายต่อข้อความ",
"labelMinLength": "ความยาวข้อความขั้นต่ำ",
"labelMinSavings": "โทเค็นขั้นต่ำที่จะบันทึก",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "เปิดใช้งาน",
+ "autoDetect": "ตรวจหาภาษาอัตโนมัติ",
+ "rulesCount": "{count} กฎ",
"inputCompressionTitle": "การบีบอัดอินพุต",
"inputCompressionDesc": "เขียนประวัติการแชทใหม่ด้วยคำที่สั้นลง ช่วยลดโทเค็นอินพุตลงประมาณ 50%",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "การวิเคราะห์การบีบอัด",
+ "noAnalytics": "ยังไม่มีข้อมูลวิเคราะห์การบีบอัด",
"masterDisabledWarning": "สวิตช์หลักของ Token Saver ปิดอยู่ — การตั้งค่าเหล่านี้จะไม่มีผลกับคำขอจนกว่าคุณจะเปิดใช้งานจากการตั้งค่าการบีบอัดหรือเปลี่ยนที่นี่",
"outputMode": "โหมดเอาท์พุต",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "โหมดเอาต์พุต",
"quickSettings": "การตั้งค่าด่วน",
"quickSettingsDesc": "การตั้งค่าการบีบอัดพื้นฐานเพื่อเริ่มต้น",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "ข้ามอัตโนมัติเมื่อเนื้อหาชัดเจน",
+ "bypassConditions": "เงื่อนไขการข้าม",
"bypassConditionsList": "การรักษาความปลอดภัย ย้อนกลับไม่ได้ การชี้แจง ละเอียดอ่อนต่อคำสั่งซื้อ",
"simpleMode": "เรียบง่าย",
"advancedMode": "ขั้นสูง",
@@ -8940,9 +8951,9 @@
"ultraSettings": "การตั้งค่าอัลตร้า",
"ultraSettingsDesc": "การบีบอัดความหมายที่ขับเคลื่อนด้วย SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "ตอบอย่างกระชับ คงคำศัพท์ทางเทคนิค โค้ด ข้อผิดพลาด URL และตัวระบุไว้",
+ "full": "ตอบให้สั้นและกะทัดรัด คงสาระสำคัญทางเทคนิคทั้งหมดไว้",
+ "ultra": "ตอบให้สั้นที่สุดโดยใช้คำย่อทางเทคนิคทั่วไป คงสัญลักษณ์ต่าง ๆ ไว้ตามต้นฉบับ"
}
},
"translator": {
@@ -9177,12 +9188,12 @@
"conceptHeadline": "แอปของคุณพูด \"ภาษา\" ของ API หนึ่ง ตัวแปลจะแปลงภาษานั้นเพื่อให้สามารถใช้กับผู้ให้บริการรายอื่นได้",
"conceptDiagramAppLabel": "แอปของคุณ",
"conceptDiagramSourceLabel": "รูปแบบต้นทาง",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (ศูนย์กลาง)",
"conceptDiagramTargetLabel": "ผู้ให้บริการปลายทาง",
"conceptDiagramExampleApp": "เช่น Anthropic SDK",
"conceptDiagramExampleSource": "claude",
"conceptDiagramExampleTarget": "Gemini",
- "conceptHowItWorksToggle": "How it works",
+ "conceptHowItWorksToggle": "วิธีการทำงาน",
"conceptHowItWorksBody": "แอปของคุณจะส่งคำขอในรูปแบบของตัวเอง ตัวแปลภาษาจะตรวจหารูปแบบ แปลงข้อมูลผ่าน OpenAI ในฐานะฮับกลาง (หรือแปลงโดยตรงเมื่อมีตัวแปลโดยตรงพร้อมใช้งาน) ส่งไปยังผู้ให้บริการที่เลือก และส่งคืนการตอบกลับที่แปลงกลับเป็นรูปแบบของแอปของคุณ",
"tabTranslate": "แปล",
"tabMonitor": "ติดตามการทำงาน",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "วางคำขอ JSON ระบบจะตรวจหารูปแบบโดยอัตโนมัติ",
"advancedPipelineTitle": "ไพป์ไลน์กลางของ OpenAI",
"advancedPipelineSubtitle": "แสดงภาพแต่ละขั้นตอนการแปล (hub-and-spoke)",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "ตัวแปลงสตรีม (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "แปลง Chat Completions SSE เป็น Responses API",
"advancedTestBenchTitle": "Test Bench (8 สถานการณ์)",
"advancedTestBenchSubtitle": "รันทุกสถานการณ์และรายงานผลผ่าน/ไม่ผ่าน + % ความเข้ากันได้",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "คงเหลือ",
"kiloPassRenews": "ต่ออายุในอีก {count} วัน",
"kiloPassUsageLabel": "การใช้งานเดือนนี้",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "เครดิตการใช้งานเพิ่มเติม",
+ "kimiExtraUsage": "การใช้งานเพิ่มเติม",
+ "kimiExtraUsageEnabled": "เปิดใช้งาน",
+ "kimiExtraUsageDisabled": "ปิดใช้งาน",
+ "kimiExtraUsageFrozen": "ระงับ",
+ "kimiExtraUsageUnavailable": "ไม่พร้อมใช้งาน",
+ "kimiMonthlyUsed": "ใช้ไปในเดือนนี้",
+ "kimiMonthlyLimit": "ขีดจำกัดรายเดือน",
+ "kimiMonthlyLimitUnlimited": "ไม่จำกัด",
+ "kimiAdditionalCredits": "เครดิตเพิ่มเติม",
"loggerTab": "คนตัดไม้",
"proxyTab": "หนังสือมอบฉันทะ",
"budgetManagement": "การจัดการงบประมาณ",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "เซอร์กิตเบรกเกอร์",
"lockedIPs": "IP ที่ถูกล็อค",
"lockoutsAutoRefreshHint": "การล็อคขีดจำกัดอัตราต่อรุ่น • รีเฟรชอัตโนมัติ 10 วินาที",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# รายการถูกล็อก} other {# รายการถูกล็อก}}",
"timeLeft": "{time} เหลือแล้ว",
"howItWorks": "มันทำงานอย่างไร",
"howItWorksSubtitle": "เรียนรู้ว่าการประเมินผลตรวจสอบการตอบสนอง LLM ของคุณอย่างไร",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "คำตอบจะถูกเปรียบเทียบกับเกณฑ์ที่คาดหวัง ดูผ่าน/ไม่ผ่านสำหรับแต่ละกรณีพร้อมตัววัดเวลาแฝงและข้อเสนอแนะโดยละเอียด",
"evalsStrategyContainsLabel": "ประกอบด้วย",
"evalsStrategyExactLabel": "ตรงกันทุกประการ",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "นิพจน์ทั่วไป",
"evalsStrategyCustomLabel": "ลอจิกที่กำหนดเอง",
"evalsStrategyContainsDescription": "ตรวจสอบว่าเอาต์พุตของ LLM มีสตริงย่อยที่คาดหวังหรือไม่",
"evalsStrategyExactDescription": "ตรวจสอบว่าเอาต์พุตของ LLM ตรงกับค่าที่คาดหวังทุกประการหรือไม่",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "รุ่นภายใต้การทดสอบ",
"searchSuitesPlaceholder": "ค้นหาห้องชุด...",
"passSuffix": "ผ่าน",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# กรณี} other {# กรณี}}",
"runEval": "วิ่งเอวาล",
"runAllSuites": "วิ่งทั้งหมด",
"runAllRunning": "วิ่งทั้งหมด...",
"runAllProgress": "กำลังรัน {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# ชุดล้มเหลว} other {# ชุดล้มเหลว}}",
"runAllCompleted": "เรียกใช้ชุดโปรแกรม {suites} — {passed} ผ่าน {failed} ล้มเหลว",
"runAllCompletedWithFailures": "รัน {completed} ห้องชุด; {failedSuites} ล้มเหลวในการดำเนินการให้เสร็จสิ้น",
"runningProgress": "กำลังรัน {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "ข้อจำกัดของผู้ให้บริการ",
"noProviders": "ไม่มีผู้ให้บริการที่เชื่อมต่อ",
"connectProvidersForQuota": "เชื่อมต่อกับผู้ให้บริการด้วย OAuth เพื่อติดตามขีดจำกัดโควต้า API และการใช้งานของคุณ",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# บัญชี} other {# บัญชี}}",
"filteredFromCount": "(กรองจาก {count})",
"autoRefresh": "รีเฟรชอัตโนมัติ",
"refreshAll": "รีเฟรชทั้งหมด",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "ไม่สามารถอัปเดตการแสดงผลโควตาได้",
"account": "บัญชี",
"modelQuotas": "โควต้าโมเดล",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "รีเฟรชล่าสุด",
"actions": "การดำเนินการ",
"refreshQuota": "รีเฟรชโควต้า",
"today": "วันนี้",
@@ -9448,9 +9459,9 @@
"cardExpand": "ขยาย",
"cardCollapse": "ยุบ",
"moreQuotas": "+อีก {count} รายการ",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
+ "ungrouped": "ไม่ได้จัดกลุ่ม",
+ "viewFlat": "แบบแบน",
+ "viewByEnvironment": "ตามสภาพแวดล้อม",
"noQuotaDataAvailable": "ไม่มีข้อมูลโควต้า",
"noAccountsForTierFilter": "ไม่พบบัญชีสำหรับตัวกรองระดับ",
"tierAll": "ทั้งหมด",
@@ -9471,8 +9482,8 @@
"filterTierLabel": "ระดับ",
"purchaseAll": "ทั้งหมด",
"purchaseOauthSub": "การสมัครสมาชิก",
- "purchaseOauthFree": "OAuth Free",
- "purchaseApiKey": "API Key",
+ "purchaseOauthFree": "ไม่ใช้ OAuth",
+ "purchaseApiKey": "คีย์ API",
"creditsLabel": "เครดิต",
"creditBalanceHint": "ยอดคงเหลือ",
"unlimitedLabel": "ไม่จำกัด",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "แลกรับเครดิต",
"resetCreditRedeemed": "แลกรับการรีเซ็ตแล้ว",
"resetCreditRedeemFailed": "แลกรับเครดิตรีเซ็ตไม่สำเร็จ",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "บันทึกชุดไม่สำเร็จ",
"clone": "โคลน",
"exportSuite": "ส่งออก",
"importSuite": "นำเข้า",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "JSON ของชุด eval ไม่ถูกต้อง",
"suiteBuilderCloneSuffix": "คัดลอก",
"suiteBuilderImportedSuite": "ชุดนำเข้า",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "ตารางคะแนน",
+ "evalApiKey": "คีย์ API",
+ "scorecardPassRate": "อัตราการผ่าน",
+ "targetTypeModel": "โมเดล",
+ "actualOutputLabel": "ผลลัพธ์จริง",
+ "evalTargetHint": "เลือกโมเดลหรือชุดผสมที่จะประเมิน",
+ "suiteBuilderDeleted": "ลบชุดสำเร็จแล้ว",
+ "suiteBuilderCaseCardHint": "กำหนดพรอมต์อินพุตและเกณฑ์ผลลัพธ์ที่คาดหวัง",
+ "nextResetUtc": "รีเซ็ตครั้งถัดไป (UTC)",
+ "scorecardHint": "อัตราการผ่านรวมจากชุดการประเมินทั้งหมด",
+ "suiteLatestRunsHint": "การเรียกใช้การประเมินล่าสุดสำหรับชุดนี้",
+ "saving": "กำลังบันทึก",
+ "suiteBuilderCaseModelLabel": "โมเดล (ไม่บังคับ)",
+ "evalControlsTitle": "การควบคุมการประเมิน",
+ "suiteBuilderEditTitle": "แก้ไขชุดการประเมิน",
+ "suiteBuilderCaseStrategyLabel": "กลยุทธ์การตรวจสอบความถูกต้อง",
+ "notifySelectDifferentCompareTarget": "โปรดเลือกเป้าหมายอื่นสำหรับการเปรียบเทียบ",
+ "recentRunsHint": "กำลังแสดงการเรียกใช้การประเมินล่าสุด คลิกการเรียกใช้เพื่อดูผลลัพธ์โดยละเอียด",
+ "evalCompareHint": "สามารถเปรียบเทียบผลลัพธ์กับเป้าหมายที่สองได้หากต้องการ",
+ "suiteBuilderCaseInvalid": "กรณีนี้มีข้อผิดพลาดในการตรวจสอบความถูกต้อง โปรดแก้ไขก่อนบันทึก",
+ "historyEmpty": "ยังไม่มีประวัติการประเมิน",
+ "suiteBuilderUpdated": "อัปเดตชุดสำเร็จแล้ว",
+ "resetInterval": "ช่วงเวลาการรีเซ็ต",
+ "suiteBuilderCreateTitle": "สร้างชุดการประเมิน",
+ "activePeriodSpend": "ยอดใช้จ่ายในช่วงเวลาปัจจุบัน",
+ "evalApiKeyHint": "เลือกคีย์ API ที่จะใช้สำหรับคำขอประเมิน",
+ "evalCompareOptional": "เปรียบเทียบ (ไม่บังคับ)",
+ "suiteBuilderDeleteFailed": "ลบชุดการทดสอบไม่สำเร็จ",
+ "suiteBuilderCaseSystemPromptPlaceholder": "คำสั่งระบบเพิ่มเติม...",
+ "scorecardCases": "กรณีทดสอบ",
+ "runCompletedWithScore": "ประเมินเสร็จสิ้น — อัตราการผ่าน {score}%",
+ "suiteBuilderCustomBadge": "กำหนดเอง",
+ "targetSuiteDefaults": "ค่าเริ่มต้นของชุดการทดสอบ",
+ "suiteBuilderDeleteConfirm": "คุณแน่ใจหรือไม่ว่าต้องการลบชุดการทดสอบนี้ การดำเนินการนี้ไม่สามารถย้อนกลับได้",
+ "suiteBuilderNameLabel": "ชื่อชุดการทดสอบ",
+ "scorecardSuites": "ชุดการทดสอบ",
+ "evalCompareTarget": "เป้าหมายสำหรับเปรียบเทียบ",
+ "suiteBuilderCaseModelPlaceholder": "เช่น gpt-4o-mini",
+ "evalControlsHint": "กำหนดค่าเป้าหมายการประเมินและคีย์ API จากนั้นเรียกใช้ชุดการทดสอบเพื่อตรวจสอบคุณภาพของโมเดล",
+ "recentRunsTitle": "การเรียกใช้ล่าสุด",
+ "suiteBuilderCaseSystemPromptLabel": "พรอมต์ระบบ",
+ "suiteBuilderCaseExpectedPlaceholder": "เช่น def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "เช่น ฟีโบนัชชีแน่นอน",
"suiteBuilderCaseExpectedPlaceholderExact": "วางคำตอบที่คาดหวังไว้ทุกประการ",
"suiteBuilderCaseExpectedPlaceholderRegex": "เช่น ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "ใช้นิพจน์ทั่วไปของ JavaScript โดยไม่มีเครื่องหมายทับ",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "เช่น ชุดทดสอบคุณภาพโค้ด",
+ "suiteBuilderAddCase": "เพิ่มกรณีทดสอบ",
+ "cancel": "ยกเลิก",
+ "evalTarget": "เป้าหมาย",
+ "suiteBuilderCaseNameLabel": "ชื่อกรณีทดสอบ",
+ "weeklyLimitUsd": "ขีดจำกัดรายสัปดาห์ (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "เช่น เขียนฟังก์ชัน fibonacci ด้วย Python",
+ "suiteBuilderNameRequired": "จำเป็นต้องระบุชื่อชุดการทดสอบ",
+ "suiteBuilderCaseUserPromptLabel": "พรอมต์ผู้ใช้",
+ "daily": "รายวัน",
+ "resultErrorLabel": "ข้อผิดพลาด",
+ "suiteBuilderBuiltInBadge": "มีมาให้ในระบบ",
+ "suiteBuilderCaseCardTitle": "กรณีทดสอบ",
"suiteBuilderDuplicateCase": "ทำซ้ำ",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "เช่น 50.00",
+ "suiteBuilderCaseTagsHint": "แท็กที่คั่นด้วยจุลภาคสำหรับจัดระเบียบกรณีทดสอบ",
+ "notifyEvalRunFailedWithReason": "การประเมินล้มเหลว: {reason}",
+ "weekly": "รายสัปดาห์",
+ "runEvalRunning": "กำลังดำเนินการประเมิน...",
+ "delete": "ลบ",
+ "resetTimeUtc": "เวลารีเซ็ต (UTC)",
+ "evalApiKeyAuto": "อัตโนมัติ (ใช้ค่าเริ่มต้น)",
+ "suiteBuilderDescriptionPlaceholder": "คำอธิบายเพิ่มเติมเกี่ยวกับสิ่งที่ชุดการทดสอบนี้ใช้ทดสอบ...",
+ "targetComparisonTitle": "การเปรียบเทียบเป้าหมาย",
+ "save": "บันทึก",
+ "suiteBuilderCreated": "สร้างชุดการทดสอบสำเร็จ",
+ "suiteLatestRuns": "การรันล่าสุด",
+ "suiteBuilderCaseExpectedLabel": "ค่าที่คาดหวัง",
+ "historyLatency": "เวลาแฝง",
+ "suiteBuilderCaseTagsPlaceholder": "เช่น coding, python",
+ "targetTypeCombo": "คอมโบ",
+ "scorecardPassed": "ผ่าน",
+ "suiteBuilderCaseTagsLabel": "แท็ก",
+ "suiteBuilderNewSuite": "ชุดทดสอบใหม่",
+ "notifyEvalLoadFailed": "โหลดข้อมูลการประเมินไม่สำเร็จ",
+ "notConfigured": "ยังไม่ได้กำหนดค่า",
+ "suiteBuilderCaseNamePlaceholder": "เช่น การทดสอบฟีโบนัชชีด้วย Python",
+ "intervalLabel": "ช่วงเวลา",
+ "suiteBuilderCreateAction": "สร้างชุดทดสอบ",
+ "suiteBuilderCasesHint": "แต่ละกรณีจะส่งพรอมต์และตรวจสอบความถูกต้องของคำตอบ",
+ "suiteBuilderUpdatedAt": "อัปเดตแล้ว",
+ "errorBadge": "ข้อผิดพลาด",
+ "suiteBuilderCasesTitle": "กรณีทดสอบ",
+ "edit": "แก้ไข",
+ "monthly": "รายเดือน",
+ "suiteBuilderCasesRequired": "ต้องมีกรณีทดสอบอย่างน้อยหนึ่งกรณี",
+ "weeklyLimitSummary": "สรุปขีดจำกัดงบประมาณรายสัปดาห์",
+ "suiteBuilderDescriptionLabel": "คำอธิบาย",
+ "targetComparisonHint": "การเปรียบเทียบผลการประเมินระหว่างเป้าหมายแบบเคียงข้างกัน",
+ "compareCompletedWithScore": "การเปรียบเทียบเสร็จสมบูรณ์ — อัตราการผ่าน {score}%",
+ "staleQuotaTooltip": "การรีเฟรชครั้งล่าสุดล้มเหลว — กำลังแสดงข้อมูลที่แคชไว้",
"quotaThresholdLabel": "มินออกไปแล้ว",
"quotaCutoffsColumnHelp": "หยุดคำขอเมื่อโควต้าที่เหลืออยู่เหลือเป็นเปอร์เซ็นต์นี้หรือต่ำกว่า",
"quotaCutoffsButtonDefault": "ค่าเริ่มต้น",
@@ -9859,7 +9870,7 @@
"backToLogin": "กลับไปที่เข้าสู่ระบบ",
"forgotPassword": "ลืมรหัสผ่าน?",
"continueWithOidc": "ดำเนินการต่อด้วย OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "รหัสผ่านเริ่มต้น: CHANGEME (เว้นแต่จะตั้งค่า INITIAL_PASSWORD ไว้)",
"Authorization": "การอนุญาต",
"Content-Disposition": "การจัดการเนื้อหา",
"waitingForAuthorization": "กำลังรอการอนุญาต...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "กำลังรอการอนุญาตต้านแรงโน้มถ่วง...",
"waitingForQoderAuthorization": "กำลังรอการอนุญาตจาก Qoder...",
"exchangingCodeForTokens": "การเปลี่ยนรหัสเป็นโทเค็น...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "เวอร์ชัน Node.js ไม่เข้ากัน",
+ "nodeIncompatibleDesc": "คุณกำลังใช้ Node.js {version} ซึ่งอยู่นอกนโยบายรันไทม์ที่ปลอดภัยที่ OmniRoute รองรับ โปรดใช้ Node.js รุ่น LTS 20.x หรือ 22.x ที่ได้รับแพตช์แล้ว",
+ "nodeIncompatibleFixLabel": "วิธีแก้ไข: ติดตั้ง Node.js 22 LTS รุ่นที่ได้รับแพตช์แล้ว",
+ "nodeIncompatibleHint": "OmniRoute ต้องใช้ Node.js 22.22.2+ (22.x LTS) หรือ 24.0.0+ (24.x LTS) แนะนำให้ใช้ Node 24 LTS",
"resetViaAppDataTitle": "รีเซ็ตผ่านข้อมูลแอป",
"resetViaAppDataDescription": "ลบไฟล์การตั้งค่าจากไดเรกทอรีข้อมูลแอปเพื่อรีเซ็ตรหัสผ่านของคุณ:",
"quitDesktopApp": "ออกจากแอปเดสก์ท็อป OmniRoute อย่างสมบูรณ์",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "ผู้ให้บริการ",
"commonUseCases": "กรณีการใช้งานทั่วไป",
"clientCompatibility": "ความเข้ากันได้ของไคลเอ็นต์",
- "protocolsToc": "Protocols",
+ "protocolsToc": "โปรโตคอล",
"apiReference": "การอ้างอิง API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "เอกสารอ้างอิง Management API",
+ "managementApiDescription": "เอนด์พอยต์สำหรับทำงานอัตโนมัติในการจัดการรีจิสทรีพร็อกซี การกำหนดขอบเขต และการย้ายพร็อกซีแบบเดิม",
"method": "วิธีการ",
"path": "เส้นทาง",
"notes": "หมายเหตุ",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "กปภ",
"deployPwaText": "ติดตั้ง OmniRoute เป็น Progressive Web App บนเบราว์เซอร์ Android, iOS และเดสก์ท็อป",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "เรียกใช้ OmniRoute แบบ headless บน Android ผ่าน Termux และเข้าถึงแดชบอร์ดจากเบราว์เซอร์บนมือถือของคุณ",
"featureRoutingTitle": "การกำหนดเส้นทางผู้ให้บริการหลายราย",
"featureRoutingText": "กำหนดเส้นทางคำขอไปยังผู้ให้บริการ AI กว่า 30 รายผ่านจุดสิ้นสุดที่เข้ากันได้กับ OpenAI จุดเดียว รองรับ API การแชท การตอบกลับ เสียง และรูปภาพ",
"featureCombosTitle": "คอมโบและการปรับสมดุล",
@@ -10128,22 +10139,22 @@
"clientKimiBullet1": "ใช้ OmniRoute เป็น URL ฐานที่มั่นคงขณะหมุนเวียนบัญชีหรือคอมโบผู้ให้บริการด้านล่าง",
"clientKimiBullet2": "ต้องการโมเดลที่นำหน้าในโฟลว์การเขียนโค้ด ดังนั้นทางเลือกสำรองและเส้นทางการตรวจสอบจึงยังคงชัดเจน",
"clientKimiBullet3": "ใช้ `/v1/responses` เมื่อคุณต้องการการกำหนดเส้นทางสไตล์ Responses ดั้งเดิมสำหรับไคลเอ็นต์ที่ใช้เครื่องมือ",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "โปรโตคอล: MCP และ A2A",
+ "protocolsDescription": "นอกเหนือจาก API ที่เข้ากันได้กับ OpenAI แล้ว OmniRoute ยังมีโปรโตคอลการทำงานสองแบบ ได้แก่ MCP สำหรับการเรียกใช้เครื่องมือ และ A2A สำหรับเวิร์กโฟลว์ระหว่างเอเจนต์",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "ใช้ MCP ผ่าน stdio เพื่อให้ไคลเอนต์ค้นหาและเรียกใช้เครื่องมือ OmniRoute พร้อมตรวจสอบย้อนหลังได้",
+ "protocolMcpStep1": "เริ่มการรับส่งข้อมูล MCP ด้วย `omniroute --mcp`",
+ "protocolMcpStep2": "กำหนดให้ไคลเอนต์ MCP ของคุณใช้การรับส่งข้อมูลผ่าน stdio",
+ "protocolMcpStep3": "เรียกใช้ `omniroute_get_health` และ `omniroute_list_combos` เพื่อตรวจสอบการเชื่อมต่อ",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "ใช้ A2A JSON-RPC เพื่อส่งงานแบบซิงโครนัสหรือผ่านการสตรีม SSE",
+ "protocolA2aStep1": "อ่าน `/.well-known/agent.json` เพื่อค้นหาเอเจนต์",
+ "protocolA2aStep2": "ส่งคำขอ `message/send` หรือ `message/stream` ไปยัง `POST /a2a`",
+ "protocolA2aStep3": "จัดการวงจรชีวิตของงานด้วย `tasks/get` และ `tasks/cancel`",
+ "protocolTroubleshootingTitle": "การแก้ไขปัญหาโปรโตคอล",
+ "protocolTroubleshooting1": "หากสถานะ MCP เป็นออฟไลน์ ให้ตรวจสอบว่าโปรเซส stdio กำลังทำงานและไฟล์ heartbeat ได้รับการอัปเดตอยู่",
+ "protocolTroubleshooting2": "หากงาน A2A ค้างอยู่ในสถานะ `working` ให้ตรวจสอบ `/api/a2a/tasks/:id` และเหตุการณ์ในสตรีมเพื่อดูสถานะสิ้นสุด",
+ "protocolTroubleshooting3": "ใช้ `/dashboard/mcp` และ `/dashboard/a2a` สำหรับการควบคุมการทำงานและการตรวจสอบย้อนหลัง",
"endpointChatNote": "จุดสิ้นสุดการแชทที่เข้ากันได้กับ OpenAI (ค่าเริ่มต้น)",
"endpointResponsesNote": "จุดสิ้นสุด API การตอบกลับ (Codex, o-series)",
"endpointModelsNote": "แค็ตตาล็อกโมเดลสำหรับผู้ให้บริการที่เชื่อมต่อทั้งหมด",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "เขียนตัวช่วยใหม่สำหรับลูกค้าที่ไม่มี /v1",
"endpointRewriteResponsesNote": "เขียนตัวช่วยใหม่สำหรับการตอบกลับโดยไม่มี /v1",
"endpointRewriteModelsNote": "เขียนตัวช่วยใหม่สำหรับการค้นหาโมเดลโดยไม่มี /v1",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "แสดงรายการพร็อกซีที่บันทึกไว้ในรีจิสทรี (รองรับการแบ่งหน้า)",
+ "mgmtProxiesCreateNote": "สร้างรายการพร็อกซีที่นำกลับมาใช้ซ้ำได้ในรีจิสทรี",
+ "mgmtProxiesHealthNote": "ดูเมตริกสถานะการทำงานในช่วง 24 ชั่วโมง/แบบต่อเนื่องของพร็อกซีแต่ละรายการที่บันทึกไว้จากบันทึกพร็อกซี",
+ "mgmtProxiesBulkAssignNote": "กำหนดหรือล้างพร็อกซีหนึ่งรายการสำหรับ ID ขอบเขตหลายรายการในคำขอเดียว",
+ "mgmtAssignmentsListNote": "แสดงรายการการกำหนดพร็อกซีตามขอบเขต, scope_id หรือ proxy_id",
+ "mgmtAssignmentsUpdateNote": "กำหนดหรือล้างพร็อกซีสำหรับขอบเขตส่วนกลาง/ผู้ให้บริการ/บัญชี/คอมโบ",
+ "mgmtLegacyMigrationNote": "นำเข้าแมป proxyConfig แบบเดิมไปยังการกำหนดในรีจิสทรี",
"modelPrefixesDescriptionStart": "ใช้คำนำหน้าผู้ให้บริการก่อนชื่อรุ่นเพื่อกำหนดเส้นทางไปยังผู้ให้บริการเฉพาะ ตัวอย่าง:",
"modelPrefixesDescriptionEnd": "เส้นทางไปยัง GitHub Copilot",
"provider": "ผู้ให้บริการ",
@@ -10247,9 +10258,9 @@
"nonTechUsersSubtitle": "เริ่มต้นได้อย่างรวดเร็ว — ไม่ต้องมีพื้นฐานทางเทคนิค",
"techUsersTitle": "สำหรับผู้ใช้เทคโนโลยี",
"techUsersSubtitle": "เจาะลึกสถาปัตยกรรม, APIs, และส่วนภายใน",
- "apiExplorerMetadataTitle": "API Explorer — OmniRoute Docs",
+ "apiExplorerMetadataTitle": "API Explorer — เอกสาร OmniRoute",
"apiExplorerMetadataDescription": "เครื่องมือสำรวจ API แบบโต้ตอบ — ลองใช้จุดสิ้นสุด OmniRoute แบบสดพร้อมการตอบสนองแบบเรียลไทม์",
- "apiExplorerTitle": "API Explorer",
+ "apiExplorerTitle": "เครื่องมือสำรวจ API",
"apiExplorerDescription": "ลองใช้จุดสิ้นสุด OmniRoute แบบสด เลือกจุดสิ้นสุด กำหนดค่าคำขอของคุณ และดูการตอบสนองแบบเรียลไทม์",
"apiExplorerSseStarted": "เริ่มการสตรีม SSE — ตรวจสอบเทอร์มินัล/devtools สำหรับผลลัพธ์แบบเรียลไทม์.",
"apiExplorerError": "ข้อผิดพลาด: {message}",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute เป็นซอฟต์แวร์โอเพ่นซอร์ส คุณมีอิสระที่จะตรวจสอบ แก้ไข และแจกจ่ายภายใต้เงื่อนไขของใบอนุญาต"
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "เอเจนต์ CLI",
+ "description": "ค้นหาเอเจนต์ CLI ที่ติดตั้งในระบบของคุณ เพิ่มเอเจนต์แบบกำหนดเองเพื่อให้ตรวจหาโดยอัตโนมัติ",
+ "refresh": "รีเฟรช",
+ "installed": "ติดตั้งแล้ว",
+ "notFound": "ไม่พบ",
+ "builtIn": "มีมาให้ในตัว",
+ "custom": "กำหนดเอง",
+ "remove": "นำออก",
+ "addCustomAgent": "เพิ่มเอเจนต์แบบกำหนดเอง",
+ "addCustomAgentDesc": "ลงทะเบียนเครื่องมือ CLI ใดก็ได้เพื่อให้ระบบตรวจหา ระบบจะสแกนโดยอัตโนมัติเมื่อรีเฟรช",
+ "agentName": "ชื่อเอเจนต์",
+ "binaryName": "ชื่อไบนารี",
+ "versionCommand": "คำสั่งตรวจสอบเวอร์ชัน",
+ "spawnArgs": "อาร์กิวเมนต์สำหรับเริ่มโปรเซส",
+ "addAgent": "เพิ่มเอเจนต์",
+ "scanning": "กำลังสแกนระบบเพื่อค้นหาเอเจนต์ CLI...",
+ "opencodeIntegration": "การผสานรวม OpenCode",
+ "opencodeDetected": "ตรวจพบ opencode {version}",
+ "opencodeDesc": "สร้าง {configFile} ที่พร้อมใช้งาน พร้อม URL ฐานของ OmniRoute และโมเดลที่พร้อมใช้งานทั้งหมดของคุณ — วางไฟล์ไว้ในรูทโปรเจกต์แล้วเรียกใช้ {command}",
+ "downloadConfig": "ดาวน์โหลด {file}",
+ "downloaded": "ดาวน์โหลดแล้ว!",
+ "setupGuideTitle": "คู่มือการตั้งค่า",
+ "openCliTools": "เปิดเครื่องมือ CLI",
+ "setupGuideDetectCliTitle": "ตรวจหา CLI ที่ติดตั้งไว้",
+ "setupGuideDetectCliDesc": "คลิกรีเฟรชหลังจากติดตั้งหรืออัปเดต CLI เพื่อให้ OmniRoute สแกนไบนารีและเวอร์ชันอีกครั้ง",
+ "setupGuideCustomAgentTitle": "ลงทะเบียนไบนารีแบบกำหนดเอง",
+ "setupGuideCustomAgentDesc": "ใช้เพิ่มเอเจนต์แบบกำหนดเองเมื่อ CLI ของคุณไม่อยู่ในรายการที่มีมาให้ ระบุชื่อไบนารีและคำสั่งตรวจสอบเวอร์ชัน",
+ "setupGuideCommandMissingTitle": "แก้ไขปัญหา 'ไม่พบคำสั่ง'",
+ "setupGuideCommandMissingDesc": "ตรวจสอบว่าคำสั่ง CLI มีอยู่ใน PATH เปิดเซสชันเทอร์มินัลใหม่ แล้วเรียกใช้รีเฟรชอีกครั้ง",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "การจัดการแคช",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "รีเฟรช",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "รายการในหน่วยความจำ",
+ "memoryEntriesSub": "LRU ในหน่วยความจำ",
+ "dbEntries": "รายการในฐานข้อมูล",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "แคชที่พบ",
+ "cacheHitsSub": "จากทั้งหมด {total} รายการ",
+ "tokensSaved": "โทเค็นที่ประหยัดได้",
+ "tokensSavedSub": "ค่าประมาณจากแคชที่พบ",
+ "hitRate": "อัตราการพบแคช",
+ "performance": "ประสิทธิภาพของแคช",
+ "autoRefresh": "รีเฟรชอัตโนมัติทุก {seconds} วินาที",
+ "hits": "พบแคช",
+ "misses": "ไม่พบแคช",
+ "total": "ทั้งหมด",
+ "behavior": "ลักษณะการทำงานของแคช",
+ "behaviorDeterministic": "จะแคชเฉพาะคำขอแบบไม่สตรีมที่มี temperature=0 เท่านั้น",
+ "behaviorBypass": "ข้ามแคชด้วยส่วนหัว {header}",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL เริ่มต้น: 30 นาที กำหนดค่าผ่าน {envVar}",
+ "idempotency": "เลเยอร์การทำงานแบบ Idempotency",
+ "activeDedupKeys": "คีย์ขจัดรายการซ้ำที่ใช้งานอยู่",
+ "dedupWindow": "ช่วงเวลาขจัดรายการซ้ำ",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "ล้างแคชไม่สำเร็จ",
+ "unavailable": "แคชไม่พร้อมใช้งาน",
+ "unavailableDesc": "ไม่สามารถดึงสถิติแคชได้ โปรดตรวจสอบว่าเซิร์ฟเวอร์กำลังทำงานอยู่",
"loadingCacheAria": "กำลังโหลดแคช",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "แคชพรอมต์ (ฝั่งผู้ให้บริการ)",
+ "semanticCache": "แคชเชิงความหมาย",
+ "promptCacheSectionDesc": "แสดงกิจกรรมการแคชพรอมต์ฝั่งผู้ให้บริการจากประวัติการใช้งาน เพื่อให้คุณเห็นว่าการควบคุมแคชทำงานอยู่ที่ใด และมีการนำอินพุตกลับมาใช้ซ้ำมากเพียงใด",
+ "promptTrendDesc": "ปริมาณคำขอรายชั่วโมง ความครอบคลุมของแคช และปริมาณการอ่านแคชในช่วง 24 ชั่วโมงที่ผ่านมา",
+ "cachedRequests": "คำขอที่แคชไว้",
+ "cachedRequests24h": "คำขอที่แคชไว้ (24 ชม.)",
+ "cacheHitRate": "อัตราการใช้แคชสำเร็จ",
+ "cacheRate": "อัตราการใช้แคช",
+ "cacheRateDesc": "จากคำขอทั้งหมด",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "เมตริกแคชพรอมต์",
+ "withCacheControl": "พร้อมการควบคุมแคช",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "อัตราส่วนการนำแคชกลับมาใช้",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "ค่าใช้จ่ายที่ประหยัดได้โดยประมาณ",
+ "lastUpdated": "อัปเดตล่าสุด",
+ "hoursTracked": "ชั่วโมงที่ติดตาม",
+ "busiestHour": "ชั่วโมงที่มีการใช้งานสูงสุด",
+ "peakCacheRate": "อัตราการใช้แคชสูงสุด",
+ "trendHour": "ชั่วโมง",
+ "activityVolume": "กิจกรรม",
+ "requestsShort": "คำขอ",
+ "inputShort": "อินพุต",
+ "cachedShort": "แคชแล้ว",
+ "writeShort": "เขียน",
+ "resetting": "กำลังรีเซ็ต...",
+ "resetMetrics": "รีเซ็ตเมตริก",
+ "byProvider": "รายละเอียดแยกตามผู้ให้บริการ",
+ "providerCacheRateDesc": "ผู้ให้บริการแต่ละรายจะแสดงจำนวนโทเค็นอินพุตทั้งหมด โทเค็นที่อ่านจากแคช และโทเค็นที่เขียนลงแคช เพื่อให้คุณตรวจสอบอัตราส่วนการนำกลับมาใช้เทียบกับยอดรวมดิบได้",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "คำขอ",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "แนวโน้มแคช (24 ชม.)",
+ "peakCached": "แคชสูงสุด",
+ "cached": "แคชแล้ว",
+ "overview": "ภาพรวม",
"tableProvider": "ผู้ให้บริการ",
"tableModel": "โมเดล",
"performanceTitle": "ประสิทธิภาพ",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "แคชการตอบกลับแบบกำหนดผลลัพธ์ได้ของ OmniRoute เอง เมื่อเปิดใช้งาน คำขอที่ไม่ใช่แบบสตรีมซึ่งส่งซ้ำและมี temperature=0 สามารถตอบกลับจากระบบภายในได้โดยไม่ต้องเรียกใช้ผู้ให้บริการต้นทาง",
+ "semanticCacheDisabledDesc": "แคชเชิงความหมายถูกปิดใช้งาน OmniRoute จะข้ามการนำการตอบกลับภายในกลับมาใช้จนกว่าคุณจะเปิดใช้งานอีกครั้งในการตั้งค่า",
+ "semanticEntriesDesc": "ระเบียนแคชเชิงความหมายที่จัดเก็บถาวรอยู่ใน SQLite ขณะนี้ กิจกรรมแคชพรอมต์ฝั่งผู้ให้บริการจะไม่แสดงอยู่ที่นี่",
+ "searchEntries": "ค้นหารายการ...",
+ "search": "ค้นหา",
+ "loading": "กำลังโหลด...",
+ "entriesLoadError": "โหลดรายการแคชเชิงความหมายไม่สำเร็จ",
+ "noEntries": "ไม่พบรายการแคช",
+ "noPromptCacheData": "ยังไม่มีการบันทึกกิจกรรมแคชพรอมต์ฝั่งผู้ให้บริการ",
+ "noTrendData": "ยังไม่มีการบันทึกกิจกรรมแคชพรอมต์ในช่วง 24 ชั่วโมงที่ผ่านมา",
+ "signature": "ลายเซ็น",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "สร้างเมื่อ",
+ "expires": "หมดอายุ",
+ "actions": "การดำเนินการ",
+ "deduplicatedRequests": "คำขอที่ขจัดรายการซ้ำแล้ว",
+ "savedCalls": "การเรียก API ที่ประหยัดได้",
+ "totalProcessed": "คำขอทั้งหมดที่ประมวลผลแล้ว",
+ "disabled": "ปิดใช้งาน",
+ "totalRequests": "คำขอทั้งหมด",
"reasoningCache": "เล่นซ้ำการใช้เหตุผล",
"reasoningCacheDesc": "รักษาการคิดแบบจำลองสำหรับโฟลว์การเรียกเครื่องมือแบบหลายเลี้ยว",
"reasoningEntries": "รายการที่ใช้งานอยู่",
@@ -10646,13 +10657,13 @@
"reasoningDetail": "เนื้อหาการให้เหตุผล",
"reasoningBehavior": "พฤติกรรม",
"reasoningBehaviorCapture": "รวบรวมเหตุผล _เนื้อหาจากการตอบกลับแบบสตรีม",
- "reasoningBehaviorReplay": "Re-injects on next turn when client omits it",
+ "reasoningBehaviorReplay": "แทรกซ้ำในรอบถัดไปเมื่อไคลเอนต์ไม่ได้ส่งมา",
"reasoningBehaviorFallback": "เน้นหน่วยความจำเป็นหลักพร้อมทางเลือก SQLite สำหรับการกู้คืนข้อขัดข้อง",
"reasoningBehaviorTtl": "TTL: 2 ชั่วโมง | Max entries: 2,000 (memory)",
- "reasoningBehaviorModels": "Supported: DeepSeek, Kimi, Qwen-Thinking, GLM",
+ "reasoningBehaviorModels": "รองรับ: DeepSeek, Kimi, Qwen-Thinking, GLM",
"reasoningClearAll": "ล้างแคชการใช้เหตุผล",
- "reasoningClearSuccess": "Cleared {count} reasoning cache entries",
- "reasoningClearError": "Failed to clear reasoning cache",
+ "reasoningClearSuccess": "ล้างรายการแคชการให้เหตุผลแล้ว {count} รายการ",
+ "reasoningClearError": "ล้างแคชการให้เหตุผลไม่สำเร็จ",
"reasoningNoData": "No reasoning entries cached yet. รายการจะปรากฏขึ้นเมื่อคิดแบบจำลองโดยใช้การเรียกเครื่องมือ",
"cachePerformanceRetry": "ลองอีกครั้ง",
"cachePerformanceHitRate": "อัตราการเข้าชม",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes} นาทีที่แล้ว",
"hoursAgo": "{hours} ชั่วโมงที่แล้ว",
"daysAgo": "{days} วันที่แล้ว",
- "entries": "Entries"
+ "entries": "รายการ"
},
"proxyConfigModal": {
"levelGlobal": "ทั่วโลก",
@@ -10673,9 +10684,9 @@
"levelCombo": "คอมโบ",
"levelKey": "คีย์",
"levelDirect": "โดยตรง (ไม่มีพร็อกซี)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
+ "titleGlobal": "การกำหนดค่าพร็อกซีส่วนกลาง",
+ "titleLevel": "พร็อกซี {level} — {label}",
+ "loading": "กำลังโหลดการกำหนดค่าพร็อกซี...",
"inheritingFrom": "สืบทอดมาจาก",
"source": "แหล่งที่มา",
"savedProxy": "พร็อกซีที่บันทึกไว้",
@@ -10765,7 +10776,7 @@
"devinDesktopPasteDescription": "วางคีย์ API ของ Devin ที่มีอยู่จากเซสชัน Devin ที่ได้รับการตรวจสอบสิทธิ์ ค่าคีย์ที่สามารถส่งออกได้และขั้นตอนจะแตกต่างกันไปตามเวอร์ชันและบัญชีของ Devin.",
"devinPasteDescription": "กรุณาให้ WINDSURF_API_KEY ของคุณ (ที่ได้รับจาก `devin auth login` หรือจากคำสั่ง \"Windsurf: Provide Auth Token\" ใน Windsurf IDE)",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "auth.json ของ Grok Build",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "คีย์ API / โทเค็น",
"saving": "กำลังบันทึก…",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "เชื่อมต่อเคอร์เซอร์ IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "เข้าสู่ระบบด้วย Cursor",
+ "tabImport": "นำเข้าโทเค็น",
+ "loginDescription": "เปิดหน้าเข้าสู่ระบบของ Cursor ในเบราว์เซอร์ ใช้งานได้ใน Docker — อนุมัติในเบราว์เซอร์บนโฮสต์ของคุณ แล้วกลับมาที่นี่",
+ "loginWithCursor": "เข้าสู่ระบบด้วย Cursor",
+ "startingLogin": "กำลังเริ่มต้น…",
+ "waitingApproval": "กำลังรอการอนุมัติการเข้าสู่ระบบ Cursor…",
+ "openUrlHint": "หากเบราว์เซอร์ไม่เปิด:",
+ "openLoginLink": "เปิดหน้าเข้าสู่ระบบ",
+ "cancelLogin": "ยกเลิกการเข้าสู่ระบบ",
"autoDetecting": "กำลังตรวจจับโทเค็นอัตโนมัติ...",
"readingFromCursor": "อ่านจากเคอร์เซอร์ IDE หรือเคอร์เซอร์เอเจนต์",
"tokensAutoDetected": "โทเค็นตรวจพบอัตโนมัติสำเร็จจาก Cursor IDE!",
"cursorNotDetected": "ตรวจไม่พบเคอร์เซอร์ IDE โปรดวางโทเค็นของคุณด้วยตนเอง",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "กำลังใช้งานใน Docker อยู่หรือไม่ แนะนำให้ใช้เข้าสู่ระบบด้วย Cursor โดยปกติการนำเข้าอัตโนมัติจาก IDE และ cursor-agent จะไม่พร้อมใช้งานภายในคอนเทนเนอร์ โปรดดู docs/providers/CURSOR-DOCKER.md",
"accessToken": "โทเค็นการเข้าถึง",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "รีเฟรชโทเค็น",
+ "refreshTokenPlaceholder": "ไม่บังคับ — เปิดใช้การรีเฟรชโทเค็นอัตโนมัติ",
"required": "*",
"accessTokenPlaceholder": "โทเค็นการเข้าถึงจะเติมข้อมูลอัตโนมัติ...",
"machineId": "หมายเลขเครื่อง",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "โทเค็นการตรวจจับอัตโนมัติล้มเหลว",
"errorEnterToken": "กรุณาใส่โทเค็นการเข้าถึง",
"errorImportFailed": "การนำเข้าล้มเหลว",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "เริ่มการเข้าสู่ระบบ Cursor ไม่สำเร็จ",
+ "errorLoginPoll": "การเข้าสู่ระบบ Cursor ล้มเหลว",
+ "errorLoginTimeout": "การเข้าสู่ระบบ Cursor หมดเวลา — โปรดลองอีกครั้ง"
},
"pricingModal": {
"title": "การกำหนดค่าราคา",
@@ -10839,9 +10850,9 @@
"selectProxy": "เลือก {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "นำเข้ารูปแบบเดิม",
+ "bulkAssign": "กำหนดแบบกลุ่ม",
+ "addProxy": "เพิ่มพร็อกซี",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "ทดสอบ",
+ "edit": "แก้ไข",
+ "delete": "ลบ",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "ล้มเหลว",
"successRate": "ความสำเร็จ {rate}%",
"avgLatency": "เฉลี่ย {latency} มิลลิวินาที",
"assignmentsCount": "{count} งาน",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} มิลลิวินาที",
"testFailure": "✗ {error}",
"repair": "ซ่อมแซม",
"relayAuthMissing": "ไม่มีข้อมูลการตรวจสอบสิทธิ์",
@@ -10943,20 +10954,23 @@
"managePool": "จัดการพูล",
"poolTitle": "พูลพร็อกซีและการหมุนเวียน",
"poolDescription": "แนบพร็อกซีหลายตัวเข้ากับขอบเขตและหมุนเวียน IP ขาออกระหว่างพร็อกซีเหล่านั้น ขอบเขตที่มีพร็อกซีเพียงตัวเดียวจะทำงานเหมือนกับการกำหนดค่าทั่วไปทุกประการ",
- "poolScopeIdLabel": "Scope ID",
- "poolScopeIdPlaceholder": "provider id / connection id / combo id",
+ "poolScopeIdLabel": "รหัสขอบเขต",
+ "poolScopeIdPlaceholder": "รหัสผู้ให้บริการ / รหัสการเชื่อมต่อ / รหัสชุดผสม",
"poolScopeIdRequired": "จำเป็นต้องมี Scope ID สำหรับขอบเขต provider, account หรือ combo",
"poolLoad": "โหลดพูล",
"poolLoadFailed": "โหลดพูลพร็อกซีไม่สำเร็จ",
"poolStrategyLabel": "กลยุทธ์การหมุนเวียน",
"poolStrategyHint": "round-robin จะวนสลับสมาชิกตามลำดับ; random จะสุ่มเลือกอย่างเท่าเทียมกัน; sticky จะยึดสมาชิกเดิมไว้ตามช่วงเวลาที่กำหนด; latency-optimized จะเลือกสมาชิกที่เร็วที่สุดโดยอิงจากบันทึก",
"poolStrategyFailed": "อัปเดตกลยุทธ์การหมุนเวียนไม่สำเร็จ",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "วนรอบ",
"strategyRandom": "สุ่ม",
- "strategySticky": "Sticky",
+ "strategySticky": "คงเส้นทางเดิม",
"strategyLatency": "ปรับตามเวลาแฝงให้เหมาะสม",
"poolMembersLabel": "สมาชิกในพูล ({count})",
"poolNoMembers": "ยังไม่มีพร็อกซีในพูลนี้",
+ "poolEgressObservation": "ใช้ทางออก {exits, plural, one {# รายการ} other {# รายการ}} โดยการเชื่อมต่อ {connections, plural, one {# รายการ} other {# รายการ}} · สูงสุด {max} รายการในทางออกเดียว · {hours} ชม. ที่ผ่านมา",
+ "poolEgressObservationEmpty": "ไม่พบทราฟฟิกในช่วง {hours} ชม. ที่ผ่านมา",
+ "poolEgressObservationHint": "นับจากบันทึกพร็อกซีในช่วงเวลาที่กำหนด: IP ขาออกที่ไม่ซ้ำกันซึ่งตรวจพบสำหรับสมาชิกของพูลนี้ และการเชื่อมต่อ OmniRoute ที่ใช้ IP เหล่านั้น \"ในทางออกเดียว\" หมายถึงตลอดช่วงเวลาที่กำหนด ไม่ใช่ในเวลาเดียวกัน การล็อกเอาต์ 429 ต่อ IP จะหยุดชั่วคราวเฉพาะการเชื่อมต่อของตระกูลผู้ให้บริการเดียวกันเท่านั้น",
"poolRemove": "ลบออก",
"poolRemoveFailed": "ลบพร็อกซีออกจากพูลไม่สำเร็จ",
"poolAddLabel": "เพิ่มพร็อกซี",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "เอนด์พอยต์",
+ "provider": "ผู้ให้บริการ",
+ "model": "โมเดล",
"accountKey": "Account Key",
"autoAccounts": "อัตโนมัติ ({count} บัญชี)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "ส่ง",
+ "cancel": "ยกเลิก",
+ "audioFile": "ไฟล์เสียง",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "ล้างทั้งหมด",
+ "request": "คำขอ",
+ "response": "การตอบกลับ",
+ "transcription": "การถอดเสียง",
+ "copy": "คัดลอก",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "สร้างภาพแล้ว {count} ภาพ",
"generatedImage": "รูปภาพที่สร้าง {index}",
- "save": "Save",
+ "save": "บันทึก",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "การตอบกลับ",
"completions": "การเติมเต็มข้อความ",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "เวกเตอร์ฝังตัว",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "การตรวจสอบเนื้อหา",
- "rerank": "Rerank",
+ "rerank": "จัดอันดับใหม่",
"search": "Search",
"webFetch": "ดึงข้อมูลเว็บ"
},
"conversationalChat": "สนทนาสนทนา",
- "clearChat": "Clear chat",
+ "clearChat": "ล้างแชต",
"typeMessagePlaceholder": "พิมพ์ข้อความ... (Shift+Enter ขึ้นบรรทัดใหม่)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "แชต",
+ "tabCompare": "เปรียบเทียบ",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "สร้าง",
+ "configPane": "การกำหนดค่า",
+ "systemPrompt": "พรอมต์ระบบ",
+ "systemPromptPlaceholder": "คุณคือผู้ช่วยที่พร้อมให้ความช่วยเหลือ",
+ "modelPlaceholder": "เช่น openai/gpt-4o",
+ "endpointLabel": "เอนด์พอยต์",
+ "parametersLabel": "พารามิเตอร์",
+ "collapseConfig": "ยุบแผงการกำหนดค่า",
+ "expandConfig": "ขยายแผงการกำหนดค่า",
+ "temperature": "อุณหภูมิ",
+ "maxTokens": "โทเค็นสูงสุด",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "ค่าปรับการปรากฏซ้ำ",
+ "frequencyPenalty": "ค่าปรับความถี่",
"reasoningLabel": "การให้เหตุผล",
"thinking": "การคิด",
"effort": "ความพยายาม",
"effortDefault": "ค่าเริ่มต้น",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "สุ่ม (เว้นว่างไว้)",
+ "presetsLabel": "ค่าที่ตั้งไว้ล่วงหน้า",
+ "loadPreset": "โหลดค่าที่ตั้งไว้ล่วงหน้า",
+ "savePreset": "บันทึกค่าที่ตั้งไว้ล่วงหน้า",
+ "noPresets": "ไม่มีค่าที่ตั้งไว้ล่วงหน้า",
+ "presetNamePlaceholder": "ชื่อค่าที่ตั้งไว้ล่วงหน้า",
+ "savingPreset": "กำลังบันทึก…",
+ "nameRequired": "จำเป็นต้องระบุชื่อ",
+ "failedToSavePreset": "บันทึกค่าที่ตั้งไว้ล่วงหน้าไม่สำเร็จ",
+ "improvePrompt": "ปรับปรุงพรอมต์",
+ "improvingPrompt": "กำลังปรับปรุง…",
+ "improvePromptTitle": "ปรับปรุงพรอมต์ของคุณด้วย AI",
+ "setModelFirst": "ตั้งค่าโมเดลก่อน",
"setModelInConfigFirst": "ตั้งค่าโมเดลในแผงการกำหนดค่าก่อน",
"improvePromptFailed": "ปรับปรุงพรอมต์ไม่สำเร็จ",
"improvePromptAria": "ปรับปรุงพรอมต์โดยใช้ AI",
"confirmImprovePrompt": "ยืนยันการปรับปรุงพรอมต์",
"improvePromptDescription": "การดำเนินการนี้จะส่งพรอมต์ระบบปัจจุบันของคุณไปยัง solo.trae.ai, เปิด DevTools → Network, ส่งข้อความแชทใด ๆ, และคัดลอก JWT จาก Authorization: Cloud-IDE-JWT {tokenPlaceholder} ในส่วนหัวของคำขอ. อายุการใช้งานของ JWT ประมาณ ~14 วัน. ฟิลด์ระบุตัวตนที่ไม่บังคับมาจาก common_params ในเนื้อหาคำขอเดียวกัน.",
- "accessTokenLabel": "Access Token (Cloud-IDE-JWT)",
+ "accessTokenLabel": "โทเค็นการเข้าถึง (Cloud-IDE-JWT)",
"webId": "รหัสเว็บ",
"optional": "ไม่บังคับ",
"bizUserId": "รหัสผู้ใช้ธุรกิจ",
@@ -13934,9 +13967,9 @@
"metadata": {
"compressionTitle": "การบีบอัด",
"compressionDescription": "กำหนดการตั้งค่าการบีบอัดบริบทเพื่อลดการใช้โทเค็นและค่าใช้จ่าย",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — รีเลย์พร็อกซี",
"relayDescription": "จุดสิ้นสุดพร็อกซีรีเลย์แบบไม่มีเซิร์ฟเวอร์สำหรับโครงสร้างพื้นฐาน AI ของคุณ",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "ตัวตรวจสอบทราฟฟิก — OmniRoute",
"trafficInspectorDescription": "ตรวจสอบการเรียก LLM + แก้ไขปัญหาการรับส่งข้อมูล HTTPS ของแอปพลิเคชันใด ๆ"
},
"conductor": {
@@ -13945,7 +13978,7 @@
"runners": "นักวิ่ง",
"tasks": "งาน",
"colName": "ชื่อ",
- "colClis": "CLIs",
+ "colClis": "CLI",
"colStatus": "สถานะ",
"colTask": "งาน",
"colMode": "โหมด",
@@ -14048,11 +14081,11 @@
"actionApprove": "อนุมัติแผน",
"actionCancel": "ยกเลิก",
"actionSeeInGraph": "ดูในกราฟ",
+ "actionRepeat": "ทำซ้ำ",
"actionDone": "ดำเนินการเรียบร้อยแล้ว",
"actionFailed": "การดำเนินการล้มเหลว: {error}",
"detailFailed": "โหลดรายละเอียดไม่สำเร็จ: {error}",
"mirroredInA2A": "สะท้อนใน A2A",
- "actionRepeat": "ทำซ้ำ",
"repeatConfirm": "คลิกอีกครั้งเพื่อยืนยัน",
"repeatDone": "สร้างการรันใหม่แล้ว",
"repeatUnavailable": "ไม่มีข้อมูลนำเข้าต้นฉบับ"
@@ -14066,57 +14099,57 @@
"networkError": "ข้อผิดพลาดของเครือข่าย — ไม่สามารถอัปเดตการตั้งค่าการเปิดเผยผู้ให้บริการได้"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "ข้อเสนอสำหรับผู้สนับสนุน",
+ "subtitle": "ส่วนลด เครดิต ช่วงทดลองใช้ฟรีอย่างเป็นทางการ และสิทธิประโยชน์จากพาร์ทเนอร์ที่ผ่านการตรวจสอบจาก Radar",
+ "backToRadar": "กลับไปที่ Radar",
+ "loading": "กำลังโหลดข้อเสนอ...",
+ "refresh": "รีเฟรชข้อเสนอ",
+ "refreshing": "กำลังรีเฟรช...",
+ "loadFailed": "เราไม่สามารถรีเฟรชข้อเสนอได้ โดยยังคงเก็บแคชในเครื่องล่าสุดที่ผ่านการตรวจสอบไว้",
+ "empty": "ขณะนี้ไม่มีข้อเสนอที่ใช้งานได้",
+ "keyRequiredTitle": "ต้องใช้คีย์ผู้สนับสนุน",
+ "keyRequiredDescription": "ข้อเสนอเป็นสิทธิประโยชน์แบบเรียลไทม์ของ Radar เพิ่มคีย์ผู้สนับสนุนที่มีอยู่ในหน้าจอ Radar ยืนยันสถานะผู้มีส่วนร่วมของคุณ หรือสนับสนุนโปรเจกต์เพื่อรับคีย์",
+ "contributorButton": "ฉันเป็นผู้มีส่วนร่วม",
+ "supporterButton": "สนับสนุนโปรเจกต์",
+ "partnerBadge": "พาร์ทเนอร์",
+ "officialBadge": "อย่างเป็นทางการ",
+ "conditionsLabel": "เงื่อนไข:",
+ "validUntil": "ใช้ได้ถึงวันที่ {date}",
+ "noExpiry": "ยังไม่มีการประกาศวันหมดอายุ",
+ "openOffer": "ดูข้อเสนอ",
+ "trialDays": "{days, plural, one {# วัน} other {# วัน}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "ข้อมูลเชิงลึกจาก Radar",
+ "subtitle": "การจัดอันดับ ELO ที่ Radar เป็นผู้ดูแลและความเคลื่อนไหวของแค็ตตาล็อกตามข้อเท็จจริง",
+ "backToRadar": "กลับไปที่ Radar",
+ "loading": "กำลังโหลดข้อมูลเชิงลึก...",
+ "refresh": "รีเฟรชข้อมูลเชิงลึก",
+ "syncing": "กำลังรีเฟรช...",
+ "loadFailed": "เราไม่สามารถรีเฟรชข้อมูลเชิงลึกได้ โดยยังคงเก็บแคชในเครื่องล่าสุดที่ผ่านการตรวจสอบไว้",
+ "empty": "ยังไม่มีสแนปช็อตข้อมูลเชิงลึกที่ผ่านการตรวจสอบ",
+ "supporterBadge": "ผู้สนับสนุน Radar",
+ "methodology": "ระเบียบวิธี",
+ "eloMethod": "ELO, ค่าเริ่มต้น {initial}, K={factor}",
+ "freshness": "ความใหม่ของแค็ตตาล็อก",
+ "ageDays": "{days, plural, one {อายุ # วัน} other {อายุ # วัน}}",
+ "trend": "แนวโน้มของแค็ตตาล็อก",
+ "modelDelta": "{current} โมเดล, +{added} / -{removed}",
+ "ranking": "อันดับโมเดล",
+ "noRankings": "ยังไม่มีข้อมูลการเปรียบเทียบที่ได้รับการยืนยัน",
+ "model": "โมเดล",
+ "category": "หมวดหมู่",
+ "rating": "คะแนน",
+ "matches": "การแข่งขัน",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "ใหม่",
+ "aging": "เริ่มเก่า",
+ "stale": "ล้าสมัย"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "เพิ่มขึ้น",
+ "stable": "คงที่",
+ "shrinking": "ลดลง"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "คำขอเกินขอบเขตบริบทของผู้ให้บริการ"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference เป็นเพื่อนโอเพนซอร์สของ OmniRoute",
+ "description": "เกตเวย์ที่จัดอันดับตามต้นทุน ซึ่งจำหน่ายโมเดลแนวหน้าหลายสิบรายการผ่านปลายทางเดียวที่เข้ากันได้กับ OpenAI โดยกำหนดเส้นทางคำขอแต่ละรายการไปยังผู้ให้บริการที่มีสิทธิ์และราคาถูกที่สุด และไม่เกินราคาปลีก",
+ "cta": "รับ API Key",
+ "partnerLinkNote": "ลิงก์พาร์ทเนอร์",
+ "dismissAriaLabel": "ปิด"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "ปิดใช้งานการสร้างตัวแปรระดับการคิด (เช่น -low, -medium, -high) ในแค็ตตาล็อก /v1/models"
}
diff --git a/src/i18n/messages/tr.json b/src/i18n/messages/tr.json
index 3a8bcaa0b8..8eef16e513 100644
--- a/src/i18n/messages/tr.json
+++ b/src/i18n/messages/tr.json
@@ -31,7 +31,7 @@
"active": "Aktif",
"inactive": "Etkin değil",
"noData": "Veri yok",
- "nothingHere": "Nothing here yet",
+ "nothingHere": "Henüz burada hiçbir şey yok",
"configure": "Yapılandır",
"manualConfig": "Manuel yapılandırma",
"manage": "Yönet",
@@ -47,7 +47,7 @@
"time": "Zaman",
"details": "Ayrıntılar",
"created": "Oluşturuldu",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Son Yenilenme",
"loadMore": "Daha Fazla Yükle",
"noResults": "Sonuç bulunamadı",
"reloadPage": "Sayfayı Yeniden Yükle",
@@ -83,13 +83,13 @@
"content-length": "İçerik Uzunluğu",
"cookie": "Çerez",
"file": "Dosya",
- "host": "Host",
+ "host": "Ana Makine",
"id": "ID",
"import": "İçe Aktar",
"limit": "Sınır",
"offset": "Ofset",
"open": "Aç",
- "origin": "Origin",
+ "origin": "Kaynak",
"promptTokens": "İstem Jetonları",
"completionTokens": "Tamamlama Jetonları",
"totalTokens": "Toplam Jetonlar",
@@ -113,8 +113,8 @@
"hex": "Hex",
"range": "Aralık",
"component": "Bileşen",
- "redirect_uri": "Redirect URI",
- "idempotency-key": "Idempotency Key",
+ "redirect_uri": "Yönlendirme URI'si",
+ "idempotency-key": "İdempotans Anahtarı",
"error_description": "Hata Açıklaması",
"code": "Kod",
"compatible": "Uyumlu",
@@ -150,9 +150,9 @@
"Failed to reset pricing": "Fiyatlandırma sıfırlanamadı",
"apikey": "API Anahtarı",
"http": "HTTP",
- "goToDashboard": "Go to Dashboard",
- "checkSystemStatus": "Check System Status",
- "selectModel": "Select Model",
+ "goToDashboard": "Kontrol Paneline Git",
+ "checkSystemStatus": "Sistem Durumunu Kontrol Et",
+ "selectModel": "Model Seç",
"addModel": "Model ekle",
"effortNone": "Hiçbiri",
"effortLow": "Düşük",
@@ -164,10 +164,10 @@
"reasoningEffort": "Akıl yürütme çabası",
"wireApi": "Wire API",
"modelAliases": "Model takma adları",
- "combos": "Combos",
- "noModelsFound": "No models found",
- "clear": "Clear",
- "done": "Done",
+ "combos": "Kombinasyonlar",
+ "noModelsFound": "Model bulunamadı",
+ "clear": "Temizle",
+ "done": "Bitti",
"selectAll": "Tümünü seç",
"unselectAll": "Seçimi kaldır",
"visibleModels": "görünür",
@@ -184,519 +184,519 @@
"selectAllProviders": "Tüm sağlayıcıları kontrol et",
"clearProviderSelection": "Sağlayıcıların işaretini kaldırın",
"providersSelectedCount": "{count} sağlayıcı kontrol edildi",
- "errorOccurred": "Error Occurred",
- "comboDeleted": "Combo Deleted",
- "hide": "Hide",
- "creating": "Creating",
- "comboCreated": "Combo Created",
- "swapFormats": "Swap Formats",
- "daysAgo": "Days Ago",
- "retries": "Retries",
- "errorDuringRestore": "Error During Restore",
- "eventsAppearHint": "Events Appear Hint",
- "noLockouts": "No Lockouts",
- "webSearchDesc": "Web Search Desc",
- "audioProvidersHeading": "Audio Providers Heading",
+ "errorOccurred": "Bir Hata Oluştu",
+ "comboDeleted": "Kombinasyon Silindi",
+ "hide": "Gizle",
+ "creating": "Oluşturuluyor",
+ "comboCreated": "Kombinasyon Oluşturuldu",
+ "swapFormats": "Biçimleri Değiştir",
+ "daysAgo": "Gün Önce",
+ "retries": "Yeniden Denemeler",
+ "errorDuringRestore": "Geri Yükleme Sırasında Hata",
+ "eventsAppearHint": "Etkinliklerin Görünmesiyle İlgili İpucu",
+ "noLockouts": "Kilitlenme Yok",
+ "webSearchDesc": "Web Araması Açıklaması",
+ "audioProvidersHeading": "Ses Sağlayıcıları Başlığı",
"cloudAgentProviders": "Bulut Aracısı Sağlayıcıları",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Dakika Önce",
"a": "A",
- "liveAutoRefreshing": "Live Auto Refreshing",
- "webSearch": "Web Search",
- "anthropicPrefixPlaceholder": "Anthropic Prefix Placeholder",
- "addModelToCombo": "Add Model To Combo",
- "failedToLoad": "Failed To Load",
- "categoryMedia": "Category Media",
- "enableCloud": "Enable Cloud",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "retry": "Retry",
- "embeddings": "Embeddings",
- "errorCount": "Error Count",
- "backupReasonManual": "Backup Reason Manual",
- "safeSearchModerate": "Safe Search Moderate",
- "activeLimiters": "Active Limiters",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "liveAutoRefreshing": "Canlı Otomatik Yenileme",
+ "webSearch": "Web Araması",
+ "anthropicPrefixPlaceholder": "Anthropic Önek Yer Tutucusu",
+ "addModelToCombo": "Kombinasyona Model Ekle",
+ "failedToLoad": "Yüklenemedi",
+ "categoryMedia": "Medya Kategorisi",
+ "enableCloud": "Bulutu Etkinleştir",
+ "expirationBannerExpiringSoon": "Süre Dolumu Yaklaşıyor Afişi",
+ "retry": "Yeniden Dene",
+ "embeddings": "Yerleştirmeler",
+ "errorCount": "Hata Sayısı",
+ "backupReasonManual": "Yedekleme Nedeni: Manuel",
+ "safeSearchModerate": "Güvenli Arama: Orta",
+ "activeLimiters": "Etkin Sınırlayıcılar",
+ "a2aCardTitle": "A2A Kart Başlığı",
+ "cloudWorkerUnreachable": "Bulut Çalışanına Ulaşılamıyor",
+ "testFailed": "Test Başarısız Oldu",
+ "compatibleBaseUrlHint": "Uyumlu Temel URL İpucu",
+ "usageTracking": "Kullanım Takibi",
+ "disableCloudTitle": "Bulutu Devre Dışı Bırak",
+ "noConnections": "Bağlantı Yok",
+ "providerHealth": "Sağlayıcı Durumu",
+ "confirmDbImport": "Veritabanı İçe Aktarımını Onayla",
+ "notAvailableSymbol": "Kullanılamıyor Sembolü",
+ "backupsAvailable": "Yedeklemeler Mevcut",
+ "providerAuto": "Otomatik Sağlayıcı",
+ "newProviderNamePlaceholder": "Yeni Sağlayıcı Adı Yer Tutucusu",
+ "a2aQuickStartStep2": "A2A Hızlı Başlangıç 2. Adım",
+ "ok": "Tamam",
+ "available": "Mevcut",
+ "noBackupYet": "Henüz Yedekleme Yok",
+ "more": "Daha Fazla",
+ "noCompatibleYet": "Henüz Uyumlu Seçenek Yok",
+ "multiProvider": "Çoklu Sağlayıcı",
+ "repairEnvHint": "Ortamı Onarma İpucu",
+ "disablingCloud": "Bulut Devre Dışı Bırakılıyor",
+ "testBench": "Test Tezgâhı",
+ "valid": "Geçerli",
+ "cloudBenefitShare": "Bulut Avantajı Paylaşımı",
+ "mcpCardTitle": "MCP Kart Başlığı",
+ "disableConfirm": "Devre Dışı Bırakmayı Onayla",
+ "filters": "Filtreler",
+ "expirationBannerExpiredDesc": "Süre Sonu Banner'ı Açıklaması",
+ "saveComboDefaults": "Kombinasyon Varsayılanlarını Kaydet",
+ "cloudConnectedVerified": "Bulut Bağlantısı Doğrulandı",
+ "uptime": "Çalışma Süresi",
+ "compatibleProdPlaceholder": "Uyumlu Üretim Yer Tutucusu",
+ "fallbackChainsTitle": "Yedek Zincirleri Başlığı",
+ "oauthLabel": "OAuth Etiketi",
+ "a2aCardDescription": "A2A Kart Açıklaması",
+ "okShort": "Tamam, Kısa",
+ "maintenance": "Bakım",
+ "formatConverter": "Biçim Dönüştürücü",
+ "zedImportNetworkError": "Zed İçe Aktarma Ağ Hatası",
+ "apiKeyLabel": "API Anahtarı Etiketi",
+ "noModelsForProvider": "Sağlayıcı İçin Model Yok",
+ "mcpCardDescription": "MCP Kartı Açıklaması",
+ "apiTypeLabel": "API Türü Etiketi",
+ "configuredProvidersLabel": "Yapılandırılmış Sağlayıcılar Etiketi",
+ "maxRetriesLabel": "Maksimum Yeniden Deneme Etiketi",
+ "title": "Başlık",
+ "output": "Çıktı",
+ "prefixHint": "Önek İpucu",
+ "skipWizard": "Sihirbazı Atla",
+ "failedCount": "Başarısız Sayısı",
+ "confirmDbImportDesc": "Veritabanı İçe Aktarma Onayı Açıklaması",
+ "entries": "Kayıtlar",
+ "until": "Bitiş",
+ "disableCombo": "Kombinasyonu Devre Dışı Bırak",
+ "liveMonitorDescriptionPrefix": "Canlı İzleme Açıklaması Öneki",
+ "runningCount": "Çalışan Sayısı",
+ "noActiveConnectionsInGroup": "Grupta Etkin Bağlantı Yok",
+ "savedSuccessfully": "Başarıyla Kaydedildi",
+ "systemStorage": "Sistem Depolama Alanı",
+ "videoDesc": "Video Açıklaması",
+ "maxResults": "Maksimum Sonuç Sayısı",
+ "timeRangeMonth": "Zaman Aralığı: Ay",
+ "testSummary": "Test Özeti",
+ "failedSetPassword": "Parola Ayarlanamadı",
+ "audio": "Ses",
+ "restore": "Geri Yükle",
+ "disableWarning": "Devre Dışı Bırakma Uyarısı",
+ "moderationsDesc": "Moderasyonlar Açıklaması",
+ "providerHealthStatusAria": "Sağlayıcı Sağlık Durumu ARIA Etiketi",
+ "modelNamePlaceholder": "Model Adı Yer Tutucusu",
+ "mcpQuickStartStep2": "MCP Hızlı Başlangıç 2. Adım",
+ "quickStart": "Hızlı Başlangıç",
+ "fullExportFailedWithError": "Tam Dışa Aktarma Hatayla Başarısız Oldu",
+ "loadingBackups": "Yedekler Yükleniyor",
+ "anthropicBaseUrlPlaceholder": "Anthropic Temel URL Yer Tutucusu",
+ "description": "Açıklama",
+ "noProviderFound": "Sağlayıcı Bulunamadı",
+ "auto": "Otomatik",
+ "protocolsDescription": "Protokol Açıklaması",
+ "cloudSessionNote": "Bulut Oturumu Notu",
+ "advancedSettings": "Gelişmiş Ayarlar",
+ "defaultStrategy": "Varsayılan Strateji",
+ "purgeExpiredLogs": "Süresi Dolmuş Günlükleri Temizle",
+ "justNow": "Az Önce",
+ "providerTestFailed": "Sağlayıcı Testi Başarısız Oldu",
+ "openaiBaseUrlPlaceholder": "Openai Temel URL Yer Tutucusu",
+ "image": "Görsel",
+ "failedCreateChain": "Zincir Oluşturulamadı",
+ "importDatabase": "Veritabanını İçe Aktar",
+ "allDataLocal": "Tüm Veriler Yerel",
+ "sectionTitle": "Bölüm Başlığı",
+ "failedToggle": "Değiştirme Başarısız Oldu",
+ "editCombo": "Kombinasyonu Düzenle",
+ "testResults": "Test Sonuçları",
+ "searchQuery": "Arama Sorgusu",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "Çoğalt",
+ "createCombo": "Kombinasyon Oluştur",
+ "searchTypeWeb": "Arama Türü: Web",
+ "addChain": "Zincir Ekle",
+ "prefixLabel": "Önek Etiketi",
+ "listModelsDesc": "Model Listesi Açıklaması",
+ "databaseSize": "Veritabanı Boyutu",
+ "chainCreated": "Zincir Oluşturuldu",
+ "providerTestTimeout": "Sağlayıcı Testi Zaman Aşımına Uğradı",
+ "routingStrategy": "Yönlendirme Stratejisi",
+ "translateAction": "Çevir",
+ "exportFailed": "Dışa Aktarma Başarısız Oldu",
+ "connectedVerificationPending": "Bağlandı, Doğrulama Bekleniyor",
+ "a2aQuickStartTitle": "A2A Hızlı Başlangıç Başlığı",
+ "couldNotTest": "Test Edilemedi",
+ "testAllCompatible": "Tüm Uyumlu Olanları Test Et",
+ "anthropicCompatibleName": "Anthropic Uyumlu Adı",
+ "disabling": "Devre Dışı Bırakılıyor",
+ "failedEnable": "Etkinleştirme Başarısız Oldu",
+ "categoryUtility": "Yardımcı Program Kategorisi",
+ "customUrlOptional": "Özel URL İsteğe Bağlı",
+ "localProviders": "Yerel Sağlayıcılar",
+ "comboNamePlaceholder": "Kombinasyon Adı Yer Tutucusu",
+ "memoryRss": "Bellek RSS",
+ "disableProvider": "Sağlayıcıyı Devre Dışı Bırak",
+ "welcomeDesc": "Karşılama Açıklaması",
+ "nameLabel": "Ad Etiketi",
+ "allOperational": "Tümü Çalışıyor",
+ "backupNow": "Şimdi Yedekle",
+ "providerMaxRetriesAria": "Sağlayıcı Maksimum Yeniden Deneme Sayısı ARIA",
+ "textToSpeechDesc": "Metinden Sese Açıklaması",
+ "machineId": "Makine Kimliği",
+ "globalProxy": "Genel Proxy",
+ "hitsMisses": "İsabetler ve Iskalamalar",
+ "testDesc": "Test Açıklaması",
+ "chatDesc": "Sohbet Açıklaması",
+ "importSuccess": "İçe Aktarma Başarılı",
+ "chat": "Sohbet",
+ "a2aQuickStartStep1": "A2A Hızlı Başlangıç Adımı 1",
+ "importFailed": "İçe Aktarma Başarısız",
+ "inputPlaceholder": "Giriş Yer Tutucusu",
+ "providerModelsTitle": "Sağlayıcı Modelleri Başlığı",
+ "lastBackup": "Son Yedekleme",
+ "yourEndpoint": "Uç Noktanız",
+ "autoDisableThresholdDesc": "Otomatik Devre Dışı Bırakma Eşiği Açıklaması",
+ "rerankDesc": "Yeniden Sıralama Açıklaması",
+ "modelsPathPlaceholder": "Model Yolu Yer Tutucusu",
+ "noCombosYet": "Henüz Kombinasyon Yok",
+ "connectedVerificationPendingWithError": "Bağlandı, Hata Nedeniyle Doğrulama Bekleniyor",
+ "comboDefaultsGuideHint1": "Kombinasyon Varsayılanları Kılavuzu İpucu 1",
+ "enableCloudTitle": "Bulutu Etkinleştir Başlığı",
+ "configuredProvidersHint": "Yapılandırılmış Sağlayıcılar İpucu",
+ "paused": "Duraklatıldı",
+ "llmProviders": "LLM Sağlayıcıları",
+ "enableCombo": "Kombinasyonu Etkinleştir",
+ "removeProviderOverrideAria": "Sağlayıcı Geçersiz Kılmasını Kaldır ARIA",
+ "nodeVersion": "Node Sürümü",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Hata Nedeniyle Dışa Aktarma Başarısız",
+ "proxyConfigured": "Proxy Yapılandırıldı",
+ "concurrencyPerModel": "Model Başına Eşzamanlılık",
+ "protocolTasksLabel": "Protokol Görevleri Etiketi",
+ "oauthProviders": "OAuth Sağlayıcıları",
+ "lockedCount": "Kilitli Sayısı",
+ "deleteChainConfirm": "Zinciri Silme Onayı",
+ "recentTranslations": "Son Çeviriler",
+ "zedImportButton": "Zed İçe Aktarma Düğmesi",
+ "responsesDesc": "Yanıtlar Açıklaması",
+ "testedCount": "Test Edilenlerin Sayısı",
+ "providersCommaSeparatedPlaceholder": "Virgülle Ayrılmış Sağlayıcılar Yer Tutucusu",
+ "signatureDefaults": "İmza Varsayılanları",
+ "errorCreating": "Oluşturma Hatası",
+ "timeRangeYear": "Zaman Aralığı: Yıl",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Bulut Başarıyla Devre Dışı Bırakıldı",
+ "deleteConfirm": "Silme Onayı",
+ "check": "Kontrol Et",
+ "safeSearch": "Güvenli Arama",
+ "protocolLastActivity": "Protokol Son Etkinliği",
+ "openMcpDashboard": "MCP Panosunu Aç",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Sohbet Yolu Etiketi",
+ "retryDelay": "Yeniden Deneme Gecikmesi",
+ "errorUpdating": "Güncelleme Hatası",
+ "ideCliIntegrations": "IDE ve CLI Entegrasyonları",
+ "imageGeneration": "Görsel Oluşturma",
+ "apiKeyRequired": "API Anahtarı Gerekli",
+ "resetAllTitle": "Tümünü Sıfırla Başlığı",
+ "connectionError": "Bağlantı Hatası",
+ "modelName": "Model Adı",
+ "apiKeyForCheck": "Kontrol İçin API Anahtarı",
+ "cloudRequestTimeout": "Bulut İsteği Zaman Aşımı",
+ "showConfiguredOnly": "Yalnızca Yapılandırılmış Olanları Göster",
"showFreeOnly": "Yalnızca ücretsiz",
"addFirstProvider": "İlk sağlayıcınızı ekleyin",
"addFirstProviderDesc": "OmniRoute aracılığıyla istekleri yönlendirmeye başlamak için bir yapay zeka sağlayıcısına bağlanın. Ücretsiz sağlayıcıları, API anahtarlarını veya OAuth hesaplarını kullanabilirsiniz.",
"learnMore": "Daha fazla bilgi edinin",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Alan Adlarını Dahil Et",
+ "promptCache": "İstem Önbelleği",
+ "cloudConnected": "Buluta Bağlandı",
+ "deleteChain": "Zinciri Sil",
+ "chatPathPlaceholder": "Sohbet Yolu Yer Tutucusu",
+ "databasePath": "Veritabanı Yolu",
+ "usingLocalServer": "Yerel Sunucu Kullanılıyor",
+ "globalComboConfig": "Genel Birleşik Yapılandırma",
+ "backupFailed": "Yedekleme Başarısız Oldu",
+ "tabProtocols": "Protokoller Sekmesi",
+ "continue": "Devam Et",
+ "categorySearch": "Kategori Arama",
+ "rateLimitStatus": "Hız Sınırı Durumu",
+ "repairEnvSuccess": "Ortam Onarıldı",
+ "nameRequired": "Ad Gerekli",
+ "country": "Ülke",
+ "trackMetricsDesc": "Metrik Takibi Açıklaması",
+ "durationSecondsShort": "Süre (sn.)",
+ "formatConverterDescription": "Biçim Dönüştürücü Açıklaması",
+ "cloudBenefitAccess": "Bulut Erişimi Avantajı",
+ "maxRetries": "Maksimum Yeniden Deneme Sayısı",
+ "queueTimeout": "Kuyruk Zaman Aşımı",
"queueDepth": "Kuyruk Derinliği",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Sağlayıcı Ekle",
+ "realtime": "Gerçek Zamanlı",
+ "totalTranslations": "Toplam Çeviri",
+ "protocolActiveStreamsLabel": "Protokol Etkin Akışları Etiketi",
+ "repairEnv": "Ortamı Onar",
+ "modelsCount": "Model Sayısı",
+ "viewBackups": "Yedekleri Görüntüle",
+ "responsesApi": "Responses API",
+ "copyComboName": "Kombinasyon Adını Kopyala",
+ "failures": "Başarısızlıklar",
+ "failedUpdate": "Güncelleme Başarısız Oldu",
+ "imageDesc": "Görsel Açıklaması",
+ "failedCreate": "Oluşturma Başarısız Oldu",
+ "remainingOfLimit": "Limitten Kalan",
+ "protocolsTitle": "Protokoller Başlığı",
+ "expirationBannerExpiringSoonDesc": "Süre Sonu Uyarısı Yakında Dolacak Açıklaması",
+ "source": "Kaynak",
+ "failed": "Başarısız",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "MCP Hızlı Başlangıç 1. Adım",
+ "runTest": "Testi Çalıştır",
+ "loadingFallbackChains": "Yedek Zincirleri Yükleniyor",
+ "healthy": "Sağlıklı",
+ "version": "Sürüm",
+ "saveBlockWeighted": "Ağırlıklı Bloğu Kaydet",
+ "zedImportNone": "Zed İçe Aktarma Yok",
+ "noBackupsYet": "Henüz Yedek Yok",
+ "noGlobalProxy": "Global Proxy Yok",
+ "noModels": "Model Yok",
+ "stickyLimit": "Kalıcı Limit",
+ "passedCount": "Başarılı Sayısı",
+ "zedImportFailed": "Zed İçe Aktarma Başarısız Oldu",
+ "saving": "Kaydediliyor",
+ "testAll": "Tümünü Test Et",
+ "globalProxyDesc": "Genel Proxy Açıklaması",
+ "latencyP99": "Gecikme P99",
+ "connectingToCloud": "Buluta Bağlanılıyor",
+ "responses": "Yanıtlar",
+ "errorDeleting": "Silme Hatası",
+ "openaiPrefixPlaceholder": "Openai Önek Yer Tutucusu",
+ "enterPassword": "Parolayı Girin",
+ "openA2aDashboard": "A2A Panosunu Aç",
+ "enableProvider": "Sağlayıcıyı Etkinleştir",
+ "modeTest": "Test Modu",
+ "failedDeleteChain": "Zincir Silinemedi",
+ "providerDesc": "Sağlayıcı Açıklaması",
+ "templateLoadHint": "Şablon Yükleme İpucu",
+ "lastFailure": "Son Hata",
+ "moveDown": "Aşağı Taşı",
+ "providerLabel": "Sağlayıcı Etiketi",
+ "clearCacheFailed": "Önbellek Temizlenemedi",
+ "imagesGenerations": "Görsel Oluşturmaları",
+ "repairEnvWorking": "Ortam Onarımı Sürüyor",
+ "millisecondsShort": "ms",
+ "globalLabel": "Genel Etiket",
+ "failuresPlural": "Hatalar",
+ "completionsLegacyDesc": "Eski Tamamlama Açıklaması",
+ "searchProviders": "Sağlayıcılarda Ara",
+ "chatPathHint": "Sohbet Yolu İpucu",
+ "defaultStrategyDesc": "Varsayılan Strateji Açıklaması",
+ "latencyP95": "Gecikme P95",
+ "textToSpeech": "Metinden Sese",
+ "searchType": "Arama Türü",
+ "messages": "Mesajlar",
+ "aggregatorsGateways": "Toplayıcılar ve Ağ Geçitleri",
+ "comboStrategyAria": "Aria Birleşik Stratejisi",
+ "input": "Girdi",
+ "testingConnection": "Bağlantı Test Ediliyor",
+ "excludeDomains": "Alan Adlarını Hariç Tut",
+ "webCookieProviders": "Web Çerezi Sağlayıcıları",
+ "allTestsPassed": "Tüm Testler Başarılı",
+ "openaiCompatibleName": "OpenAI Uyumlu Ad",
+ "warningCostOptimizedPartialPricing": "Uyarı: Maliyet İçin Optimize Edilmiş Kısmi Fiyatlandırma",
+ "comboDefaultsGuideTitle": "Kombinasyon Varsayılanları Kılavuzu Başlığı",
+ "hoursAgo": "Saat Önce",
+ "notAvailable": "Kullanılamıyor",
+ "skipAndContinue": "Atla ve Devam Et",
+ "moderations": "Moderasyonlar",
+ "proxyConfig": "Proxy Yapılandırması",
+ "upstreamProxyProviders": "Üst Proxy Sağlayıcıları",
+ "exportAll": "Tümünü Dışa Aktar",
+ "queuedCount": "Kuyruğa Alınanların Sayısı",
+ "resetAll": "Tümünü Sıfırla",
+ "noTranslations": "Çeviri Yok",
+ "avgLatency": "Ort. Gecikme",
+ "throttleStatus": "Kısıtlama Durumu",
+ "backupRetentionDesc": "Yedek Saklama Açıklaması",
+ "noCBData": "Devre Kesici Verisi Yok",
+ "chainDeleted": "Zincir Silindi",
+ "timeLeft": "Kalan Süre",
+ "expirationBannerExpired": "Süre Sonu Afişinin Süresi Doldu",
+ "language": "Dil",
+ "invalidFileType": "Geçersiz Dosya Türü",
+ "monitoredProviders": "İzlenen Sağlayıcılar",
+ "errors": "Hatalar",
+ "heap": "Yığın Bellek",
+ "chatCompletions": "Sohbet Tamamlamaları",
+ "exampleTemplatesHint": "Örnek Şablonlar İpucu",
+ "retryDelayLabel": "Yeniden Deneme Gecikmesi Etiketi",
+ "audioTranscription": "Ses Transkripsiyonu",
+ "fallbackChainsDesc": "Yedek Zincirler Açıklaması",
+ "exampleTemplates": "Örnek Şablonlar",
+ "connectionsCount": "Bağlantı Sayısı",
+ "modelsPathLabel": "Model Yolu Etiketi",
+ "activeProvidersHint": "Etkin Sağlayıcılar İpucu",
+ "activeLockouts": "Etkin Kilitlemeler",
+ "invalid": "Geçersiz",
+ "skipPassword": "Parolayı Atla",
+ "moveUp": "Yukarı Taşı",
+ "timeRange": "Zaman Aralığı",
+ "stickyLimitDesc": "Sabit Sınır Açıklaması",
+ "cloudBenefitEdge": "Bulut Avantajı Uç Noktası",
+ "custom": "Özel",
+ "verifying": "Doğrulanıyor",
+ "baseUrlLabel": "Temel URL Etiketi",
+ "setPassword": "Parola Belirle",
+ "safeSearchStrict": "Güvenli Arama: Katı",
+ "noChangesSinceBackup": "Yedeklemeden Bu Yana Değişiklik Yok",
+ "modelsPathHint": "Model Yolu İpucu",
+ "audioTranscriptions": "Ses Transkripsiyonları",
+ "testCombo": "Kombinasyonu Test Et",
+ "mcpQuickStartTitle": "Mcp Hızlı Başlangıç Başlığı",
+ "comboUpdated": "Kombinasyon Güncellendi",
+ "weighted": "Ağırlıklı",
+ "providers": "Sağlayıcılar",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Yedek Zinciri Yok Açıklaması",
+ "yesImport": "Evet, İçe Aktar",
+ "lockoutsAutoRefreshHint": "Kilitlemeleri Otomatik Yenileme İpucu",
+ "tabApis": "API'ler Sekmesi",
+ "sectionDescription": "Bölüm Açıklaması",
+ "filter": "Filtrele",
+ "purgeLogsFailed": "Günlükler Temizlenemedi",
+ "latency": "Gecikme",
+ "testAllOAuth": "Tüm OAuth Bağlantılarını Test Et",
+ "mcpQuickStartStep3": "Mcp Hızlı Başlangıç 3. Adım",
+ "repairEnvFailed": "Ortam Onarılamadı",
+ "zedImportHint": "Zed İçe Aktarma İpucu",
+ "modelsAcrossEndpoints": "Uç Noktalardaki Modeller",
+ "autoDisableBannedAccounts": "Engellenen Hesapları Otomatik Devre Dışı Bırak",
+ "securityDesc": "Güvenlik Açıklaması",
+ "listModels": "Modelleri Listele",
+ "backupRestore": "Yedekleme ve Geri Yükleme",
+ "target": "Hedef",
+ "zedImportSuccess": "Zed Başarıyla İçe Aktarıldı",
+ "lastHeaderUpdate": "Son Üstbilgi Güncellemesi",
+ "categoryCore": "Temel Kategorisi",
+ "noFallbackChains": "Yedek Zinciri Yok",
+ "noSearchProviders": "Arama Sağlayıcısı Yok",
+ "autoBalance": "Otomatik dengeleme",
+ "noModelsYet": "Henüz model yok",
+ "signatureFamily": "İmza ailesi",
+ "externalApiCalls": "Harici API çağrıları",
+ "providerOverridesDesc": "Sağlayıcı geçersiz kılmaları açıklaması",
+ "signatureTool": "İmza aracı",
+ "connectionFailed": "Bağlantı başarısız",
+ "activeLimitersPlural": "Etkin sınırlayıcılar çoğul",
+ "doneDesc": "Tamamlandı açıklaması",
+ "down": "Kapalı",
+ "noDataYet": "Henüz veri yok",
+ "activeProviders": "Etkin sağlayıcılar",
+ "nameInvalid": "Ad geçersiz",
+ "skip": "Atla",
+ "createChain": "Zincir oluştur",
+ "audioSpeech": "Sesli konuşma",
+ "cacheCleared": "Önbellek temizlendi",
+ "searchTypeNews": "Arama türü haberler",
+ "durationMillisecondsShort": "Süre milisaniye kısa",
+ "addOpenAICompatible": "Open Ai uyumlu ekle",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
- "embeddingsDesc": "Embeddings Desc",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "queued": "Kuyruğa alındı",
+ "domainPlaceholder": "Alan adı yer tutucusu",
+ "durationMinutesShort": "Süre dakika kısa",
+ "verifyingConnection": "Bağlantı doğrulanıyor",
+ "imageProviders": "Görsel sağlayıcıları",
+ "protocolToolsLabel": "Protokol araçları etiketi",
+ "queryPlaceholder": "Sorgu yer tutucusu",
+ "videoGeneration": "Video oluşturma",
+ "timeRangeWeek": "Zaman aralığı hafta",
+ "limitExhausted": "Limit tükendi",
+ "failedDisable": "Devre dışı bırakma başarısız",
+ "inMemoryNote": "Bellek içi not",
+ "compatibleHint": "Uyumluluk ipucu",
+ "errorShort": "Kısa hata",
+ "advancedHint": "Gelişmiş ipucu",
+ "restoreFailed": "Geri yükleme başarısız",
+ "searchProvidersHeading": "Arama sağlayıcıları başlığı",
+ "comboName": "Kombinasyon adı",
+ "autoDisableDescription": "Otomatik devre dışı bırakma açıklaması",
+ "embeddingsDesc": "Gömme modelleri açıklaması",
+ "operational": "Çalışır Durumda",
+ "testAllApiKey": "Tüm API Anahtarlarını Test Et",
+ "backupCreated": "Yedek Oluşturuldu",
+ "errorDuringImport": "İçe Aktarma Sırasında Hata",
+ "comboDefaultsGuideHint2": "Kombinasyon Varsayılanları Kılavuzu İpucu 2",
+ "connecting": "Bağlanıyor",
+ "fillModelAndProviders": "Model ve Sağlayıcıları Doldurun",
+ "syncing": "Senkronize Ediliyor",
+ "resetConfirm": "Sıfırlamayı Onayla",
+ "trackMetrics": "Metrikleri İzle",
+ "successful": "Başarılı",
+ "recovering": "Kurtarılıyor",
+ "autoDisableThreshold": "Otomatik Devre Dışı Bırakma Eşiği",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Veriler Senkronize Ediliyor",
+ "cloudBenefitPorts": "Bulut Avantajı Bağlantı Noktaları",
+ "compatibleProviders": "Uyumlu Sağlayıcılar",
"freeTierProviders": "Ücretsiz Katman Sağlayıcıları",
"freeTierLabel": "Ücretsiz katman mevcut",
"freeTierProvidersDesc": "Ücretsiz katmanlara sahip sağlayıcılar; bazıları API anahtarı kaydı gerektirir, diğerleri ise hiçbir kimlik bilgilerine ihtiyaç duymaz.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "Önbelleği Temizle",
+ "reqs": "İstekler",
+ "addAnthropicCompatible": "Anthropic Uyumlu Sağlayıcı Ekle",
+ "apiKeyProviders": "API Anahtarı Sağlayıcıları",
+ "tabsAria": "Sekmeler İçin ARIA",
+ "resetting": "Sıfırlanıyor",
+ "millisecondsAbbr": "ms",
+ "backupReasonPreRestore": "Geri Yükleme Öncesi Yedekleme Nedeni",
+ "disableCloud": "Bulutu Devre Dışı Bırak",
+ "newProviderNameAria": "Yeni Sağlayıcı Adı İçin ARIA",
+ "passwordsMismatch": "Parolalar Eşleşmiyor",
+ "a2aQuickStartStep3": "A2A Hızlı Başlangıç 3. Adım",
+ "liveMonitorDescriptionSuffix": "Canlı İzleme Açıklaması Son Eki",
+ "failedAddProvider": "Sağlayıcı Eklenemedi",
+ "addAtLeastOneProvider": "En Az Bir Sağlayıcı Ekleyin",
+ "reasonSeparator": "Neden Ayırıcı",
+ "zedImporting": "Zed İçe Aktarılıyor",
+ "confirmPasswordPlaceholder": "Parolayı Onaylayın",
+ "whatYouGet": "Elde Edecekleriniz",
+ "signatureSession": "İmza Oturumu",
+ "errorCountNoCode": "Kodsuz Hata Sayısı",
+ "testing": "Test Ediliyor",
+ "providersCommaSeparated": "Virgülle Ayrılmış Sağlayıcılar",
+ "exportDatabase": "Veritabanını Dışa Aktar",
+ "hitRate": "İsabet Oranı",
+ "completionsLegacy": "Eski Tamamlamalar",
+ "removeModel": "Modeli Kaldır",
+ "timeRangeDay": "Zaman Aralığı: Gün",
+ "cloudRequestFailed": "Bulut İsteği Başarısız Oldu",
+ "updatedAt": "Güncellenme Zamanı",
+ "monitoredProvidersHint": "İzlenen Sağlayıcılar İçin İpucu",
+ "connectionSuccessful": "Bağlantı Başarılı",
+ "latencyP50": "Gecikme P50",
+ "logsDeleted": "Günlükler Silindi",
+ "chatTester": "Sohbet Test Aracı",
+ "safeSearchOff": "Güvenli Arama Kapalı",
+ "nameHint": "Ad İpucu",
+ "debugToggle": "Hata Ayıklama Anahtarı",
+ "embedding": "Gömme",
+ "issuesLabel": "Sorunlar Etiketi",
+ "optionAny": "Herhangi Biri Seçeneği",
+ "maxNestingDepth": "Maksimum İç İçe Geçme Derinliği",
+ "rerank": "Yeniden Sıralama",
+ "checking": "Kontrol Ediliyor",
+ "getStarted": "Başlayın",
+ "restoreSuccess": "Geri Yükleme Başarılı",
+ "issuesDetected": "Sorunlar Tespit Edildi",
+ "signatureCache": "İmza Önbelleği",
+ "modelLockouts": "Model Kilitlenmeleri",
+ "usingCloudProxy": "Bulut Proxy'si Kullanılıyor",
+ "loadingHealth": "Sistem Durumu Yükleniyor",
+ "providerOverrides": "Sağlayıcı Geçersiz Kılmaları",
+ "audioTranscriptionDesc": "Ses Transkripsiyonu Açıklaması",
+ "learnedFromHeaders": "Başlıklardan Öğrenildi",
+ "totalRequests": "Toplam İstek",
+ "cloudUnstableNote": "Bulut Kararsızlığı Notu",
"gamificationAdmin": "Oyunlaştırma Yöneticisi",
"monitorAnomaliesAndHealth": "Anormallikleri ve sistem sağlığını izleyin",
"flaggedAnomalies": "İşaretlenen Anormallikler",
@@ -704,7 +704,7 @@
"apiKey": "API Anahtarı",
"xpLastHour": "Deneyim (1 saat)",
"zScore": "Z-Skoru",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Şüpheli",
"tokensCommunityServers": "Topluluk Sunucuları",
"tokensServerNamePlaceholder": "Sunucu adı",
"tokensApiKeyPlaceholder": "API anahtarı",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Daha fazlası yükleniyor…",
"recommended": "Önerilen",
"understand": "Anladım",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
+ "batchConceptTitle": "Toplu işleme",
+ "batchConceptSubtitle": "Binlerce isteği maliyetin yaklaşık %50'siyle eşzamansız olarak işleyin (24 saatlik zaman aralığı). Değerlendirmeler, sınıflandırma ve gömmeler için idealdir.",
+ "batchConceptHowItWorks": "Nasıl çalışır?",
+ "batchConceptBenefit50pct": "Girdi + çıktı tokenlarında %50 indirim",
+ "batchConceptAsync24h": "24 saatlik tamamlanma süresiyle eşzamansız",
+ "batchConceptUseCases": "Toplu sınıflandırma, değerlendirmeler ve gömmeler için idealdir",
+ "batchHeaderSubtitle": "Birçok isteği tek bir iş olarak çalıştırın",
+ "batchStep1": "1 · JSONL yükleyin",
+ "batchStep1Desc": "İstek ekleyin",
+ "batchStep2": "2 · Toplu işlem oluşturun",
+ "batchStep2Desc": "İşi çalıştırın",
+ "batchStep3": "3 · Sonuçları alın",
+ "batchStep3Desc": "Çıktıyı indirin",
+ "filesConceptTitle": "Toplu işlem dosyaları",
+ "filesConceptSubtitle": "Toplu işlemlerde kullanılan JSONL dosyaları: giriş istekleri, sonuçlar ve hatalar.",
+ "filesConceptInput": "Giriş — her satırda bir istek bulunan JSONL dosyanız",
+ "filesConceptOutput": "Çıktı — tamamlanan isteklerin sonuçları",
+ "filesConceptError": "Hatalar — başarısız olan istekler",
+ "filesConceptRetention": "Saklama süresi: varsayılan olarak 30 gün (Anthropic'te 29 gün)",
+ "wizardTitle": "Yeni toplu işlem",
+ "wizardClose": "Kapat",
+ "wizardNext": "İleri",
+ "wizardBack": "Geri",
+ "wizardCancel": "İptal",
+ "wizardCreate": "Toplu işlem oluştur",
+ "wizardCreating": "Oluşturuluyor…",
+ "wizardStep1Destination": "Hedef",
+ "wizardStep2Input": "Giriş",
+ "wizardStep3Validate": "Doğrula",
+ "wizardStep4Cost": "Maliyet ve oluşturma",
+ "wizardProviderLabel": "Sağlayıcı",
+ "wizardEndpointLabel": "Uç nokta",
"wizardModelLabel": "Model",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (dönüştüreceğiz)",
+ "wizardDropOrPick": "Bir dosyayı buraya bırakın veya seçmek için tıklayın",
+ "wizardCsvMappingTitle": "CSV sütunlarını → istek alanlarıyla eşleştirin",
+ "wizardCsvMappingAddField": "Alan ekle",
"wizardCsvNoColumns": "CSV başlığında hiçbir sütun algılanmadı.",
"wizardCsvIgnoreColumn": "— yoksay —",
"wizardCsvCustomIdMapped": "custom_id eşlendi",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} satır ayrıştırıldı",
"wizardCsvRowsSkipped": "{count} satır atlandı",
"wizardCsvRowError": "Satır {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Tüm satırlar geçerli",
"wizardValidating": "Doğrulanıyor…",
"wizardValidationParseFailed": "Doğrulama başarısız — içerik ayrıştırılamadı.",
"wizardValidationSummary": "{lines} satır · {ids} benzersiz custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Yinelenen custom_ids tespit edildi:",
"wizardValidationFirstErrors": "Hatalar (ilk {count}):",
"wizardValidationLine": "Satır {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Doğrulama hataları",
+ "wizardValidationPreview": "Önizleme (ilk 5 istek)",
+ "wizardValidationSamplingNote": "Dosya büyük — örnekleme yoluyla doğrulandı (ilk 1000 + son 100 satır). Tam doğrulama sunucu tarafında çalışır.",
+ "wizardCostSync": "Senkron maliyet",
+ "wizardCostBatch": "Toplu işlem maliyeti (-%50)",
+ "wizardCostSavings": "Tasarruf",
+ "wizardCostEstimatedNotice": "Tahmini maliyet — gerçek faturalandırma farklılık gösterebilir.",
+ "wizardErrorUpload": "Dosya yüklenemedi. Tekrar deneyin.",
+ "wizardErrorCreate": "Toplu işlem oluşturulamadı. Tekrar deneyin.",
+ "wizardEmptyProviders": "Toplu işlem oluşturmak için toplu işlem desteği olan bir sağlayıcıyı (OpenAI, Anthropic veya Gemini) bağlayın.",
+ "uploadModalTitle": "Toplu işlem dosyası yükle",
+ "uploadModalDropOrPick": "Bir .jsonl dosyasını buraya bırakın veya seçmek için tıklayın",
+ "uploadModalUpload": "Yükle",
+ "uploadModalCancel": "İptal",
+ "uploadModalError": "Yükleme başarısız oldu. Tekrar deneyin.",
+ "uploadModalSuccess": "Yüklendi",
+ "uploadModalSizeLimit": "Maks. 512 MB",
+ "batchListNewButton": "Yeni toplu işlem",
+ "batchListAutoRefresh": "Her 30 sn.'de otomatik yenile",
+ "batchListCostColumn": "Maliyet",
+ "batchActionCancel": "İptal",
+ "batchActionDownloadOutput": "Çıktıyı indir",
+ "batchActionDownloadErrors": "Hataları indir",
+ "batchActionRetry": "Başarısız olanları yeniden dene",
+ "batchActionRetryConfirm": "Başarısız olan {n} istek yeniden denensin mi? Nihai maliyet, kullanılan gerçek token sayısına bağlıdır.",
+ "expirationBadgeCritical": "Kritik",
+ "expirationBadgeWarning": "Yakında",
+ "expirationBadgeNormal": "Bekliyor",
+ "expirationBadgeExpired": "Süresi doldu",
+ "filesListUploadButton": "Yükleme",
+ "filesListUsedByColumn": "Kullanan",
+ "filesListUsedByNone": "Yok",
+ "filesListUsedByRoleInput": "girdi",
+ "filesListUsedByRoleOutput": "çıktı",
+ "filesListUsedByRoleError": "hata",
+ "filesListSizeColumn": "Boyut",
+ "batchListProgressPartial": "(kısmi)",
+ "batchListProviderColumn": "Sağlayıcı",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
- "batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListProviderOther": "Diğer",
+ "batchListTitle": "Toplu işlemler",
+ "batchListCount": "{count} toplu işlem",
+ "batchListRemovingCompleted": "Kaldırılıyor…",
+ "batchListRemoveCompleted": "Tamamlananları kaldır",
+ "batchListTableStatus": "Durum",
+ "batchListTableId": "Kimlik",
+ "batchListTableEndpoint": "Uç nokta",
"batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableProgress": "İlerleme",
+ "batchListTableCreated": "Oluşturulma",
+ "batchListTableExpires": "Bitiş",
+ "batchListLoading": "Yükleniyor…",
+ "batchListEmpty": "Toplu işlemler bulunamadı",
+ "batchListValidating": "Doğrulanıyor…",
+ "batchStatusAll": "Tüm durumlar",
+ "batchStatusInProgress": "Devam ediyor",
+ "batchStatusValidating": "Doğrulanıyor",
+ "batchStatusFinalizing": "Sonlandırılıyor",
+ "batchStatusCompleted": "Tamamlandı",
+ "batchStatusFailed": "Başarısız",
+ "batchStatusCancelled": "İptal edildi",
+ "batchStatusCancelling": "İptal ediliyor",
+ "batchStatusExpired": "Süresi doldu",
+ "batchStatusCompletedWithFailures": "hatalarla tamamlandı",
+ "batchStatusInProgressWithFailures": "devam ediyor (hatalarla)",
+ "batchStatusFinalizingWithFailures": "sonlandırılıyor (hatalarla)",
+ "batchStatusCancelledWithFailures": "hatalarla iptal edildi",
+ "batchStatusExpiredWithFailures": "süresi doldu (kısmi)",
+ "wizardCostEstimating": "Maliyet tahmin ediliyor…",
+ "wizardCostRequests": "İstekler",
+ "wizardCostInputTok": "girdi jetonu",
+ "wizardCostOutputTok": "çıktı jetonu",
+ "wizardCostWindow": "Zaman aralığı",
+ "wizardDestinationSelectProvider": "Bir sağlayıcı seçin…",
+ "wizardDestinationSelectModel": "Bir model seçin…",
+ "wizardDestinationConnectProvider": "Bir sağlayıcı bağlayın",
+ "batchListBatchCreated": "{id} toplu işlemi oluşturuldu — liste yenileniyor…",
+ "batchListBatchCreatedDismiss": "Kapat",
+ "batchListRefreshing": "Yenileniyor…",
+ "batchListRefresh": "Yenile",
+ "uploadFileModalRemove": "Kaldır",
+ "uploadFileModalUploading": "Yükleniyor…",
+ "wizardInputReading": "Dosya okunuyor…",
+ "wizardInputReady": "Hazır",
+ "wizardInputLargeFileLabel": "Büyük dosya — örneklemle doğrulanıyor",
+ "wizardInputCsvJsonlReady": "JSONL oluşturuldu — doğrulamaya hazır.",
+ "wizardInputLargeFileWarning": "Büyük dosya algılandı — doğrulama örnekleme yoluyla gerçekleştirilir (ilk 5 MB + son 100 KB). Tam doğrulama sunucu tarafında yapılır.",
+ "wizardCostWindow24h": "24 saatlik tamamlanma süresi",
+ "wizardValidationFieldsOk": "zorunlu alanlar geçerli",
+ "filesListDelete": "Sil",
+ "filesListDownload": "İndir",
+ "batchDetailActionCancel": "Toplu işi iptal et",
+ "batchDetailActionRetry": "Başarısız istekleri yeniden dene",
+ "batchDetailCancelling": "İptal ediliyor…",
+ "batchDetailRetrying": "Yeniden deneme hazırlanıyor…",
+ "batchDetailCancelConfirm": "Bu toplu iş iptal edilsin mi? Devam eden istekler durdurulacak.",
+ "batchActionCancelError": "Toplu iş iptal edilemedi. Tekrar deneyin.",
+ "batchActionRetryError": "Başarısız istekler yeniden denenemedi. Tekrar deneyin.",
+ "batchConceptRetentionNote": "Sonuç ve hata dosyaları 30 gün boyunca saklanır (Anthropic: 29 gün)",
"batchFilesSizeColumn": "Boyut",
"toggleNoAuthProvider": "Kimlik doğrulama gerektirmeyen sağlayıcıyı aç/kapat",
"loadingModels": "Modeller yükleniyor…",
@@ -988,10 +988,14 @@
"disabled": "Devre dışı",
"featureFlagOmnirouteEmergencyFallbackDescription": "Bütçesi tükenmiş istekleri acil durum ücretsiz yedek sağlayıcıya/modele yönlendirin.",
"featureFlagArenaEloSyncEnabledDescription": "Model zekası sıralamaları için periyodik Arena AI liderlik tablosu ELO senkronizasyonunu etkinleştirin.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Kombinasyon yönlendirmesi model değiştirdiğinde konuşma özetleri oluşturup ekleyin. Model değişikliklerini birbirinden bağımsız ele almak ve mevcut ve gelecekteki tüm kombinasyonlar için arka plandaki devir isteklerini önlemek üzere devre dışı bırakın.",
"featureFlagExposeCcDiscoveryAliasesDescription": "/v1/models üzerinde claude/<provider>/<model> ayna kimliklerini tanıtın, böylece Claude Code geçidi model keşfi, Claude olmayan modelleri listeler. Uyarı: Küresel olarak etkinleştirildiğinde tüm istemciler için katalog girişlerini iki katına çıkarır.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> ağ geçidi takma adları için ana anahtar. Açık (varsayılan): /v1/models, uygun olan ve düşünme yeteneğine sahip her Claude modeli için düşünmeyen bir varyant sunar ve istekte gönderilen bir no-think/ kimliği, muhakeme devre dışı bırakılarak gerçek modele çözümlenir. Kapalı: hiçbir varyant sunulmaz ve bir no-think/ kimliği, diğer bilinmeyen model kimlikleri gibi değerlendirilir. Bu seçenek açıkken model bazındaki ModelSpec.noThinkingAlias katılım/ayrılma ayarı geçerliliğini korur.",
"featureFlagChatVirtualLanesEnabledDescription": "Sağlayıcı gönderimi için kiracı başına uyarlanabilir sanal kabul şeritlerini etkinleştirin (#9654): bir kiracının ani yükü artık diğerinde 503 hatasına neden olmaz. OMNIROUTE_CHAT_VIRTUAL_LANES ortam değişkeni bu panel ayarına göre önceliklidir; değişiklikler sunucu yeniden başlatıldığında geçerli olur.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Kontrol paneli sağlayıcı sayfaları: Ücretsiz rozetini yalnızca sağlayıcının dikkate aldığı sinyallerde gösterir — belgelenmiş bir ücretsiz katmanı olmayan kayıtlı sağlayıcılarda görünen ad sezgisini, boole olmayan ücretsiz alanlarını ve :free son eklerini kullanmaz. Kapalı olduğunda geçmiş rozet kuralını korur.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy havuzları ve opencode'un hesap başına rotasyonu, henüz başarısız olmuş bir proxy'nin (reddedilen TCP yoklaması veya proxy üzerinden alınan 429 yanıtı) süreç başına belirlenen ve her tekrarda üst sınıra kadar iki katına çıkan bir süre boyunca yeniden kullanılmasını engeller. Proxy durumuna hiçbir şey yazılmaz; tüm adaylar kenara ayrıldığında seçim değişmeden kalır. Varsayılan olarak kapalıdır: seçim sırası normal rotasyonla tamamen aynıdır.",
+ "featureFlagProxyPoolEgressObservationDescription": "Kontrol panelinde bir proxy havuzunun altında, son 24 saatte üyelerine kaç farklı gözlemlenen çıkış IP'sinin hizmet verdiğini, bunları kaç bağlantının kullandığını ve tek bir IP'nin arkasında en fazla kaç bağlantı görüldüğünü gösterir. Salt okunurdur, proxy günlüğünden hesaplanır ve yönlendirme için asla kullanılmaz. Varsayılan olarak kapalıdır: havuz düzenleyicisi değişmeden kalır ve gözlem rotası null yanıtını verir.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Proxy sağlık taramasında, hedefin reddettiği bir yoklamanın (401/403/429: proxy isteği iletti, hedef bu çıkış IP'sini reddetti) proxy'nin ardışık başarısızlık serisini, başarılı bir yoklamada olduğu gibi sıfırlamasını sağlar. Varsayılan olarak kapalıdır: bir ret nötr kalır ve seriyi korur. 5xx her iki durumda da sonuçsuz kalır ve bir ret hiçbir zaman proxy'yi kaldırmaz, devre dışı bırakmaz veya yeniden etkinleştirmez.",
"sidebar": {
"home": "Ana Sayfa",
"dashboard": "Kontrol Paneli",
@@ -1001,7 +1005,7 @@
"analytics": "Analizler",
"costs": "Maliyetler",
"health": "Sağlık",
- "proxy": "Proxy",
+ "proxy": "Vekil Sunucu",
"limits": "Limitler ve Kotalar",
"cliTools": "CLI Araçları",
"media": "Medya",
@@ -1011,8 +1015,8 @@
"searchTools": "Arama Araçları",
"agents": "Ajanlar",
"cloudAgents": "Bulut Aracıları",
- "memory": "Memory",
- "skills": "Skills",
+ "memory": "Bellek",
+ "skills": "Beceriler",
"omniSkills": "OmniSkills",
"agentSkills": "Temsilci Becerileri",
"chaosConfig": "Kaos Modu",
@@ -1065,50 +1069,50 @@
"cliToolsShort": "Araçlar",
"cache": "Cache",
"cacheShort": "Cache",
- "batch": "Batch Jobs",
- "themeSystem": "Theme System",
- "whitelabelingDesc": "Whitelabeling Desc",
- "switchThemes": "Switch Themes",
- "themeAccentDesc": "Theme Accent Desc",
- "uploadFavicon": "Upload Favicon",
- "themeDark": "Theme Dark",
- "customLogoDesc": "Custom Logo Desc",
- "sidebarVisibilityToggle": "Sidebar Visibility Toggle",
- "themeAccent": "Theme Accent",
- "resetFavicon": "Reset Favicon",
- "whitelabeling": "Whitelabeling",
- "darkMode": "Dark Mode",
- "uploadLogo": "Upload Logo",
- "themeLight": "Theme Light",
- "appName": "App Name",
- "appNameDesc": "App Name Desc",
- "resetLogo": "Reset Logo",
- "customFavicon": "Custom Favicon",
- "hideHealthLogs": "Hide Health Logs",
- "customLogo": "Custom Logo",
- "appearance": "Appearance",
- "themeSelectionAria": "Theme Selection Aria",
- "themeCreate": "Theme Create",
- "customFaviconDesc": "Custom Favicon Desc",
- "logoPreview": "Logo Preview",
- "themeCustom": "Theme Custom",
- "hideHealthLogsDesc": "Hide Health Logs Desc",
- "faviconPreview": "Favicon Preview",
- "changelog": "Changelog",
- "contextSection": "Context & Cache",
+ "batch": "Toplu İşler",
+ "themeSystem": "Tema Sistemi",
+ "whitelabelingDesc": "Beyaz Etiketleme Açıklaması",
+ "switchThemes": "Tema Değiştir",
+ "themeAccentDesc": "Tema Vurgu Rengi Açıklaması",
+ "uploadFavicon": "Favicon Yükle",
+ "themeDark": "Koyu Tema",
+ "customLogoDesc": "Özel Logo Açıklaması",
+ "sidebarVisibilityToggle": "Kenar Çubuğu Görünürlük Anahtarı",
+ "themeAccent": "Tema Vurgu Rengi",
+ "resetFavicon": "Favicon'u Sıfırla",
+ "whitelabeling": "Beyaz Etiketleme",
+ "darkMode": "Koyu Mod",
+ "uploadLogo": "Logo Yükle",
+ "themeLight": "Açık Tema",
+ "appName": "Uygulama Adı",
+ "appNameDesc": "Uygulama Adı Açıklaması",
+ "resetLogo": "Logoyu Sıfırla",
+ "customFavicon": "Özel Favicon",
+ "hideHealthLogs": "Sağlık Günlüklerini Gizle",
+ "customLogo": "Özel Logo",
+ "appearance": "Görünüm",
+ "themeSelectionAria": "Tema Seçimi Aria",
+ "themeCreate": "Tema Oluştur",
+ "customFaviconDesc": "Özel Favicon Açıklaması",
+ "logoPreview": "Logo Önizlemesi",
+ "themeCustom": "Özel Tema",
+ "hideHealthLogsDesc": "Sağlık Günlüklerini Gizleme Açıklaması",
+ "faviconPreview": "Favicon Önizlemesi",
+ "changelog": "Değişiklik Günlüğü",
+ "contextSection": "Bağlam ve Önbellek",
"contextCaveman": "Caveman",
"contextRtk": "RTK",
- "contextCombos": "Engine Combos",
+ "contextCombos": "Motor Kombinasyonları",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
"contextUltra": "Ultra",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Sıkıştırma Ayarları",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
"contextLlmlingua": "LLMLingua",
- "combosLive": "Combo Studio",
+ "combosLive": "Kombinasyon Stüdyosu",
"combosLiveSubtitle": "Canlı yönlendirme kaskadı",
"compressionStudio": "Compression Studio",
"compressionExclusions": "Hariç Tutmalar",
@@ -1124,145 +1128,145 @@
"compressionStudioSubtitle": "Canlı motor kaskadı",
"compressionExclusionsSubtitle": "Model/endpoint başlatma dışlama",
"chaosConfigSubtitle": "Çoklu model paralel yürütme",
- "routingSection": "Routing",
- "protocolsSection": "Protocols",
- "agentsAiSection": "Agents & AI",
- "cacheContextSection": "Cache & Context",
- "analyticsSection": "Analytics",
- "costsSection": "Costs",
- "monitoringSection": "Monitoring",
- "auditSecuritySection": "Audit & Security",
- "devtoolsSection": "Dev Tools",
- "configurationSection": "Configuration",
- "aiFeaturesSection": "AI Features",
+ "routingSection": "Yönlendirme",
+ "protocolsSection": "Protokoller",
+ "agentsAiSection": "Ajanlar ve Yapay Zekâ",
+ "cacheContextSection": "Önbellek ve Bağlam",
+ "analyticsSection": "Analizler",
+ "costsSection": "Maliyetler",
+ "monitoringSection": "İzleme",
+ "auditSecuritySection": "Denetim ve Güvenlik",
+ "devtoolsSection": "Geliştirici Araçları",
+ "configurationSection": "Yapılandırma",
+ "aiFeaturesSection": "Yapay Zekâ Özellikleri",
"mcp": "MCP",
"a2a": "A2A",
"plugins": "Eklentiler",
- "apiEndpoints": "API Endpoints",
- "batchFiles": "Files",
- "analyticsEvals": "Evals",
- "analyticsSearch": "Search",
- "analyticsUtilization": "Utilization",
- "analyticsComboHealth": "Combo Health",
- "analyticsCompression": "Compression",
- "costsBudget": "Budget",
+ "apiEndpoints": "API Uç Noktaları",
+ "batchFiles": "Dosyalar",
+ "analyticsEvals": "Değerlendirmeler",
+ "analyticsSearch": "Arama",
+ "analyticsUtilization": "Kullanım",
+ "analyticsComboHealth": "Kombinasyon Sağlığı",
+ "analyticsCompression": "Sıkıştırma",
+ "costsBudget": "Bütçe",
"costsFreeTiers": "Ücretsiz Katman Bütçesi",
"costsFreeTiersSubtitle": "Aylık ücretsiz token hakları",
"freeProviderRankings": "Ücretsiz Sağlayıcı Sıralamaları",
"freeProviderRankingsSubtitle": "Model ELO puanlarına göre sıralanmış en iyi ücretsiz sağlayıcılar",
"radar": "Radar Kataloğu",
"radarSubtitle": "Topluluk zenginleştirilmiş ücretsiz model kataloğu",
- "costsQuotaShare": "Quota Sharing",
- "costsPricing": "Pricing",
- "logsProxy": "Proxy Logs",
- "logsConsole": "Console",
- "logsActivity": "Activity",
- "auditMcp": "MCP Audit",
+ "costsQuotaShare": "Kota Paylaşımı",
+ "costsPricing": "Fiyatlandırma",
+ "logsProxy": "Proxy Günlükleri",
+ "logsConsole": "Konsol",
+ "logsActivity": "Etkinlik",
+ "auditMcp": "MCP Denetimi",
"auditA2a": "A2A Denetimi",
"settingsGeneral": "General",
- "settingsAppearance": "Appearance",
- "settingsAi": "AI Settings",
- "settingsSecurity": "Security",
+ "settingsAppearance": "Görünüm",
+ "settingsAi": "Yapay Zekâ Ayarları",
+ "settingsSecurity": "Güvenlik",
"settingsAccessTokens": "Erişim Tokenları",
"settingsFeatureFlags": "Özellik Bayrakları",
"settingsCache": "Önbellek",
- "settingsAuthz": "Authz",
- "settingsRouting": "Routing",
- "settingsResilience": "Resilience",
+ "settingsAuthz": "Yetkilendirme",
+ "settingsRouting": "Yönlendirme",
+ "settingsResilience": "Dayanıklılık",
"modelLockout": "Model Kilitleme",
- "settingsAdvanced": "Advanced",
+ "settingsAdvanced": "Gelişmiş",
"omniProxySection": "OmniProxy",
- "quotaTracker": "Provider Quota",
- "providerQuota": "Provider Quota",
- "runtime": "Runtime",
- "consoleLogs": "Console Logs",
- "logsTimeline": "Timeline",
+ "quotaTracker": "Sağlayıcı Kotası",
+ "providerQuota": "Sağlayıcı Kotası",
+ "runtime": "Çalışma Zamanı",
+ "consoleLogs": "Konsol Günlükleri",
+ "logsTimeline": "Zaman Çizelgesi",
"logsTimelineSubtitle": "Görsel istek zaman çizelgesi",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
- "globalRouting": "Global Routing",
- "mitmProxy": "MITM Proxy",
+ "conversations": "Konuşmalar",
+ "conversationsSubtitle": "Çok turlu otonom aracı konuşmaları",
+ "globalRouting": "Genel Yönlendirme",
+ "mitmProxy": "MITM Vekil Sunucusu",
"oneProxy": "1Proxy",
- "agenticFeaturesSection": "Agentic Features",
- "otherFeaturesSection": "Other Features",
- "compressionContextGroup": "Compression Context",
- "gamificationGroup": "Gamification",
- "toolsGroup": "Tools",
- "integrationsGroup": "Integrations",
- "proxyGroup": "Proxy",
- "costsParametersGroup": "Costs Parameters",
- "auditGroup": "Audit",
- "batchGroup": "Batch",
- "homeSubtitle": "Dashboard overview",
- "providersSubtitle": "Manage AI providers",
- "quotaTrackerSubtitle": "Track usage limits",
- "providerQuotaSubtitle": "Track provider usage limits",
- "runtimeSubtitle": "Realtime resilience & sessions",
- "contextCombosSubtitle": "Combine compression engines",
- "cliToolsSubtitle": "Configure CLI runtimes",
- "agentsSubtitle": "Manage local agents",
- "cloudAgentsSubtitle": "Manage cloud-based agents",
- "apiEndpointsSubtitle": "Expose custom endpoints",
- "proxySubtitle": "HTTP proxy settings",
- "mitmProxySubtitle": "MITM interception",
- "oneProxySubtitle": "Public proxy gateway",
- "leaderboard": "Leaderboard",
- "profile": "Profile",
- "tokens": "Tokens",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
- "leaderboardSubtitle": "Rankings and achievements",
- "profileSubtitle": "Account and preferences",
- "tokensSubtitle": "Token usage and budgets",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
- "usageSubtitle": "Traffic and usage stats",
- "analyticsComboHealthSubtitle": "Combo target reliability",
- "analyticsUtilizationSubtitle": "Provider utilization",
- "costsSubtitle": "Spend breakdown",
- "cacheSubtitle": "Cache hit rates",
- "analyticsCompressionSubtitle": "Token savings stats",
- "analyticsSearchSubtitle": "Search tool analytics",
- "analyticsEvalsSubtitle": "Eval suite results",
+ "agenticFeaturesSection": "Otonom Aracı Özellikleri",
+ "otherFeaturesSection": "Diğer Özellikler",
+ "compressionContextGroup": "Bağlam Sıkıştırma",
+ "gamificationGroup": "Oyunlaştırma",
+ "toolsGroup": "Araçlar",
+ "integrationsGroup": "Entegrasyonlar",
+ "proxyGroup": "Vekil Sunucu",
+ "costsParametersGroup": "Maliyet Parametreleri",
+ "auditGroup": "Denetim",
+ "batchGroup": "Toplu İşlem",
+ "homeSubtitle": "Pano genel görünümü",
+ "providersSubtitle": "Yapay zekâ sağlayıcılarını yönetin",
+ "quotaTrackerSubtitle": "Kullanım sınırlarını izleyin",
+ "providerQuotaSubtitle": "Sağlayıcı kullanım sınırlarını izleyin",
+ "runtimeSubtitle": "Gerçek zamanlı dayanıklılık ve oturumlar",
+ "contextCombosSubtitle": "Sıkıştırma motorlarını birleştir",
+ "cliToolsSubtitle": "CLI çalışma ortamlarını yapılandır",
+ "agentsSubtitle": "Yerel ajanları yönet",
+ "cloudAgentsSubtitle": "Bulut tabanlı ajanları yönet",
+ "apiEndpointsSubtitle": "Özel uç noktaları kullanıma aç",
+ "proxySubtitle": "HTTP proxy ayarları",
+ "mitmProxySubtitle": "MITM müdahalesi",
+ "oneProxySubtitle": "Genel proxy ağ geçidi",
+ "leaderboard": "Liderlik tablosu",
+ "profile": "Profil",
+ "tokens": "Tokenlar",
+ "gamificationAdmin": "Oyunlaştırma Yönetimi",
+ "leaderboardSubtitle": "Sıralamalar ve başarımlar",
+ "profileSubtitle": "Hesap ve tercihler",
+ "tokensSubtitle": "Token kullanımı ve bütçeler",
+ "gamificationAdminSubtitle": "Anomali izleme ve hile önleme",
+ "usageSubtitle": "Trafik ve kullanım istatistikleri",
+ "analyticsComboHealthSubtitle": "Kombinasyon hedefi güvenilirliği",
+ "analyticsUtilizationSubtitle": "Sağlayıcı kullanımı",
+ "costsSubtitle": "Harcama dağılımı",
+ "cacheSubtitle": "Önbellek isabet oranları",
+ "analyticsCompressionSubtitle": "Token tasarrufu istatistikleri",
+ "analyticsSearchSubtitle": "Arama aracı analizleri",
+ "analyticsEvalsSubtitle": "Değerlendirme paketi sonuçları",
"providerStats": "Sağlayıcı İstatistikleri",
"providerStatsSubtitle": "Gecikme ve performans metrikleri",
- "logsSubtitle": "Application logs",
- "logsProxySubtitle": "Proxy traffic logs",
- "consoleLogsSubtitle": "Console output",
- "logsActivitySubtitle": "User activity log",
- "healthSubtitle": "System health check",
- "costsPricingSubtitle": "Per-model pricing rules",
- "costsBudgetSubtitle": "Budget limits",
- "costsQuotaShareSubtitle": "Share provider quotas across keys",
- "auditLogSubtitle": "Authorization audit",
- "auditMcpSubtitle": "MCP server audit",
- "auditA2aSubtitle": "A2A protocol audit",
- "translatorSubtitle": "Format conversion",
- "playgroundSubtitle": "Test prompts live",
- "searchToolsSubtitle": "Search tool registry",
- "memorySubtitle": "Persistent agent memory",
- "omniSkillsSubtitle": "Sandbox skill registry",
- "agentSkillsSubtitle": "A2A skill registry",
- "mcpSubtitle": "MCP server controls",
- "a2aSubtitle": "A2A protocol server",
+ "logsSubtitle": "Uygulama günlükleri",
+ "logsProxySubtitle": "Proxy trafik günlükleri",
+ "consoleLogsSubtitle": "Konsol çıktısı",
+ "logsActivitySubtitle": "Kullanıcı etkinlik günlüğü",
+ "healthSubtitle": "Sistem durum denetimi",
+ "costsPricingSubtitle": "Model bazında fiyatlandırma kuralları",
+ "costsBudgetSubtitle": "Bütçe sınırları",
+ "costsQuotaShareSubtitle": "Sağlayıcı kotalarını anahtarlar arasında paylaş",
+ "auditLogSubtitle": "Yetkilendirme denetimi",
+ "auditMcpSubtitle": "MCP sunucusu denetimi",
+ "auditA2aSubtitle": "A2A protokolü denetimi",
+ "translatorSubtitle": "Biçim dönüştürme",
+ "playgroundSubtitle": "İstemleri canlı olarak test et",
+ "searchToolsSubtitle": "Arama aracı kayıt defteri",
+ "memorySubtitle": "Kalıcı ajan belleği",
+ "omniSkillsSubtitle": "Sandbox beceri kaydı",
+ "agentSkillsSubtitle": "A2A beceri kaydı",
+ "mcpSubtitle": "MCP sunucu kontrolleri",
+ "a2aSubtitle": "A2A protokol sunucusu",
"pluginsSubtitle": "Eklenti mağazası ve kurulumlar",
- "mediaSubtitle": "Cached media files",
- "batchFilesSubtitle": "Batch input/output files",
- "settingsSubtitle": "All settings",
+ "mediaSubtitle": "Önbelleğe alınmış medya dosyaları",
+ "batchFilesSubtitle": "Toplu giriş/çıkış dosyaları",
+ "settingsSubtitle": "Tüm ayarlar",
"settingsGeneralSubtitle": "App basics",
- "settingsAppearanceSubtitle": "Theme and layout",
- "settingsAiSubtitle": "AI behavior defaults",
- "globalRoutingSubtitle": "Global routing rules",
- "settingsResilienceSubtitle": "Retries and breakers",
- "settingsAdvancedSubtitle": "Power user options",
- "settingsSecuritySubtitle": "Auth and encryption",
+ "settingsAppearanceSubtitle": "Tema ve düzen",
+ "settingsAiSubtitle": "Varsayılan AI davranışları",
+ "globalRoutingSubtitle": "Genel yönlendirme kuralları",
+ "settingsResilienceSubtitle": "Yeniden denemeler ve devre kesiciler",
+ "settingsAdvancedSubtitle": "İleri düzey kullanıcı seçenekleri",
+ "settingsSecuritySubtitle": "Kimlik doğrulama ve şifreleme",
"settingsAccessTokensSubtitle": "Uzak mod için kapsamlandırılmış CLI tokenları",
"settingsFeatureFlagsSubtitle": "Sistem yeteneklerini değiştir",
"settingsCacheSubtitle": "Model kataloğu ve yanıt önbellekleme",
- "settingsSidebar": "Sidebar",
- "settingsSidebarSubtitle": "Customize sidebar layout",
+ "settingsSidebar": "Kenar çubuğu",
+ "settingsSidebarSubtitle": "Kenar çubuğu düzenini özelleştir",
"settingsAuthzSubtitle": "Rota envanteri ve bypass politikası",
- "docsSubtitle": "Documentation",
- "issuesSubtitle": "Report a bug",
- "changelogSubtitle": "Release notes",
+ "docsSubtitle": "Belgeler",
+ "issuesSubtitle": "Hata bildir",
+ "changelogSubtitle": "Sürüm notları",
"costsQuotaPlans": "Planlar ve Kotalar",
"costsQuotaPlansSubtitle": "Sağlayıcıya göre planları yapılandırın",
"activity": "Etkinlik",
@@ -1274,8 +1278,8 @@
"agentBridge": "Ajan Köprüsü",
"agentBridgeSubtitle": "IDE ajan trafiğini yakalayın",
"trafficInspector": "Trafik Denetleyicisi",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Uygulamalarınızın istek ve yanıt trafiğini inceleyin",
+ "trafficInspectorPurpose": "Uygulamanızın AI sağlayıcılarına tam olarak ne gönderdiğini ve onlardan ne aldığını görün. OpenAI uyumlu tüm istemcilerle çalışır.",
"cliCode": "CLI Kodu",
"cliCodeSubtitle": "OmniRoute'a yönlendiren kod araçları",
"cliAgents": "CLI Ajanları",
@@ -1341,7 +1345,7 @@
"refresh": "Yenile",
"loading": "Web kancaları yükleniyor...",
"never": "Asla",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {hata yok} one {# hata} other {# hata}}",
"testWebhook": "Testi Gönder",
"testSuccess": "Web kancasını test etme başarıyla gönderildi.",
"testFailed": "Web kancasını test etme başarısız oldu.",
@@ -1374,54 +1378,54 @@
"step3": "Uç noktanın aldığından emin olmak için bir test yükü göndererek yapılandırmayı doğrulayın.",
"step4": "Webhook gizli anahtarını kullanarak X-Webhook-Signature HMAC-SHA256 üst bilgisini doğrulayın ve uç noktanızı güvenli hale getirin.",
"title": "Webhook'lar Nasıl Çalışır",
- "customOnly": "Only applicable for custom endpoint integrations.",
- "hmacRecipeTitle": "HMAC Verification Recipe",
- "hmacRecipe": "To verify webhook payloads in Node.js, compute the HMAC-SHA256 of the raw request body using your secret key. Compare it to the X-Webhook-Signature header using timingSafeEqual.",
- "timeoutNote": "Webhook deliveries have a timeout of 10 seconds.",
- "retryNote": "Failed deliveries are retried up to 5 times with exponential backoff.",
- "docsLink": "Read the full Webhooks developer guide",
- "hmacRecipePython": "Python HMAC verification: hmac.new(secret, body, hashlib.sha256).hexdigest()",
- "hmacRecipeBash": "Bash HMAC verification: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
+ "customOnly": "Yalnızca özel uç nokta entegrasyonları için geçerlidir.",
+ "hmacRecipeTitle": "HMAC Doğrulama Tarifi",
+ "hmacRecipe": "Node.js'de webhook yüklerini doğrulamak için gizli anahtarınızı kullanarak ham istek gövdesinin HMAC-SHA256 değerini hesaplayın. timingSafeEqual kullanarak bunu X-Webhook-Signature üstbilgisiyle karşılaştırın.",
+ "timeoutNote": "Webhook teslimatlarının zaman aşımı süresi 10 saniyedir.",
+ "retryNote": "Başarısız teslimatlar, üstel geri çekilme yöntemiyle en fazla 5 kez yeniden denenir.",
+ "docsLink": "Webhooks geliştirici kılavuzunun tamamını okuyun",
+ "hmacRecipePython": "Python HMAC doğrulaması: hmac.new(secret, body, hashlib.sha256).hexdigest()",
+ "hmacRecipeBash": "Bash HMAC doğrulaması: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
},
"deliveries": {
- "title": "Delivery Logs",
- "loadFailed": "Failed to load webhook delivery logs.",
- "empty": "No deliveries recorded yet. Trigger an event or send a test payload.",
- "status": "Status",
- "event": "Event",
- "latency": "Latency",
- "at": "Sent At"
+ "title": "Teslimat Günlükleri",
+ "loadFailed": "Webhook teslimat günlükleri yüklenemedi.",
+ "empty": "Henüz kaydedilmiş teslimat yok. Bir etkinlik tetikleyin veya test yükü gönderin.",
+ "status": "Durum",
+ "event": "Etkinlik",
+ "latency": "Gecikme",
+ "at": "Gönderilme Zamanı"
},
"kinds": {
- "comingSoon": "Coming Soon",
+ "comingSoon": "Çok Yakında",
"slack": "Slack",
- "slackDesc": "Post system events directly into a Slack channel",
+ "slackDesc": "Sistem etkinliklerini doğrudan bir Slack kanalında paylaşın",
"telegram": "Telegram",
- "telegramDesc": "Send event messages using a Telegram bot",
+ "telegramDesc": "Bir Telegram botu kullanarak etkinlik mesajları gönderin",
"discord": "Discord",
- "discordDesc": "Deliver real-time updates directly to a Discord server",
- "custom": "Custom Webhook",
- "customDesc": "Deliver system event payloads to any HTTPS endpoint",
- "email": "Email Notification",
- "emailDesc": "Receive summary updates via email",
+ "discordDesc": "Gerçek zamanlı güncellemeleri doğrudan bir Discord sunucusuna iletin",
+ "custom": "Özel Webhook",
+ "customDesc": "Sistem etkinliği yüklerini herhangi bir HTTPS uç noktasına iletin",
+ "email": "E-posta Bildirimi",
+ "emailDesc": "Özet güncellemelerini e-posta yoluyla alın",
"pagerduty": "PagerDuty",
- "pagerdutyDesc": "Trigger alerts on PagerDuty for critical system issues",
+ "pagerdutyDesc": "Kritik sistem sorunları için PagerDuty üzerinde uyarıları tetikleyin",
"teams": "Microsoft Teams",
- "teamsDesc": "Forward system notifications to Microsoft Teams channels"
+ "teamsDesc": "Sistem bildirimlerini Microsoft Teams kanallarına yönlendirin"
},
- "testPayloadSent": "Test Payload Sent",
- "testResponse": "Test Response",
+ "testPayloadSent": "Test Yükü Gönderildi",
+ "testResponse": "Test Yanıtı",
"validateUrl": {
- "checking": "Checking URL...",
- "ok": "URL is valid",
- "blockedPrivate": "URL is a blocked private address",
- "invalidUrl": "Invalid URL format"
+ "checking": "URL kontrol ediliyor...",
+ "ok": "URL geçerli",
+ "blockedPrivate": "URL, engellenmiş bir özel adres",
+ "invalidUrl": "Geçersiz URL biçimi"
},
"custom": {
- "endpointUrl": "Endpoint URL",
+ "endpointUrl": "Uç Nokta URL'si",
"endpointUrlPlaceholder": "https://api.yourdomain.com/webhook",
- "secretKey": "Secret Key",
- "secretKeyPlaceholder": "Enter secret key or leave blank to auto-generate",
+ "secretKey": "Gizli Anahtar",
+ "secretKeyPlaceholder": "Gizli anahtarı girin veya otomatik oluşturulması için boş bırakın",
"secretKeyHint": "Kimlik doğrulama için payload üst bilgisini imzalamak amacıyla kullanılır."
},
"discord": {
@@ -1601,49 +1605,49 @@
"mediaDescription": "Görüntüler, videolar ve müzik oluşturun",
"themes": "Temalar",
"themesDescription": "Kontrol panelinin tamamı için bir renk teması seçin",
- "costsDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "cacheDescription": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "limitsDescription": "Configure rate limits and quotas per API key and provider",
- "runtimeDescription": "Live runtime observability — circuit breakers, cooldowns, model lockouts, sessions and quota alerts",
- "apiManagerDescription": "Manage API keys and access control for your OmniRoute instance",
- "batchDescription": "Process large volumes of requests asynchronously with batched API calls",
- "contextCavemanDescription": "Rule-based message compression, language packs, analytics and output mode controls.",
- "contextRtkDescription": "Command-aware compression for tool output, terminal logs and build results.",
- "contextCombosDescription": "Define how engines are combined for different routing scenarios.",
- "changelogDescription": "Stay up to date with the latest platform features and announcements.",
- "agentsDescription": "Manage and configure AI agent tools: Codex, Devin, Jules, and custom agents",
- "cloudAgentsDescription": "Orchestrate cloud-based AI agents with live task tracking and plan approval",
- "memoryDescription": "Persistent conversational memory with semantic search and FTS5 full-text indexing",
- "skillsDescription": "Install and manage sandbox skills for automated prompt and tool execution",
- "agentSkillsDescription": "Agent-ready skills catalog with one-click URL copy for AI client integration",
- "translatorDescription": "Translate and test prompts across API formats: OpenAI ↔ Claude ↔ Gemini",
- "playgroundDescription": "Test prompts interactively with live provider responses and format inspection",
- "searchToolsDescription": "Search analytics, provider breakdown, cache hit rates, and cost tracking",
- "logsDescription": "Real-time request logs, error traces, and streaming event inspector",
- "auditDescription": "Compliance audit trail of API key usage, MCP tool calls, and policy events",
- "webhooksDescription": "Configure webhook endpoints to receive real-time event notifications",
- "healthDescription": "System health overview: providers, circuit breakers, rate limits, and database",
- "proxyDescription": "Configure upstream proxy settings for outbound provider connections",
- "apiEndpointsDescription": "Manage custom API endpoint configurations and routing overrides",
- "batchFilesDescription": "Browse and manage batch job output files and results",
- "analyticsEvalsDescription": "Model evaluation results and performance benchmarks",
- "analyticsSearchDescription": "Search query analytics, cache hit rates, and cost tracking",
- "analyticsUtilizationDescription": "Provider utilization metrics and capacity planning",
- "analyticsComboHealthDescription": "Real-time health and performance of combo routing configurations",
- "analyticsCompressionDescription": "Context compression analytics and token savings",
- "costsBudgetDescription": "Budget limits and spending alerts per API key and provider",
- "costsPricingDescription": "Custom pricing configuration for token cost calculations",
- "logsProxyDescription": "Upstream proxy request logs and traffic inspection",
- "logsConsoleDescription": "Application console output and debug logs",
- "logsActivityDescription": "Audit trail of user actions and system events",
- "auditMcpDescription": "MCP tool invocation audit trail and compliance records",
+ "costsDescription": "Tüm sağlayıcılardaki harcamaları takip edin, eğilimleri analiz edin ve AI bütçenizi yönetin",
+ "cacheDescription": "Sağlayıcı istem önbelleği verimliliğini ve yerel anlamsal yanıtların yeniden kullanımını izleyin.",
+ "limitsDescription": "API anahtarı ve sağlayıcı başına hız sınırlarını ve kotaları yapılandırın",
+ "runtimeDescription": "Canlı çalışma zamanı gözlemlenebilirliği — devre kesiciler, bekleme süreleri, model kilitlemeleri, oturumlar ve kota uyarıları",
+ "apiManagerDescription": "OmniRoute örneğiniz için API anahtarlarını ve erişim denetimini yönetin",
+ "batchDescription": "Toplu API çağrılarıyla büyük hacimli istekleri eşzamansız olarak işleyin",
+ "contextCavemanDescription": "Kural tabanlı mesaj sıkıştırma, dil paketleri, analizler ve çıktı modu denetimleri.",
+ "contextRtkDescription": "Araç çıktısı, terminal günlükleri ve derleme sonuçları için komut duyarlı sıkıştırma.",
+ "contextCombosDescription": "Farklı yönlendirme senaryoları için motorların nasıl birleştirileceğini tanımlayın.",
+ "changelogDescription": "En yeni platform özelliklerinden ve duyurularından haberdar olun.",
+ "agentsDescription": "AI ajan araçlarını yönetin ve yapılandırın: Codex, Devin, Jules ve özel ajanlar",
+ "cloudAgentsDescription": "Canlı görev takibi ve plan onayıyla bulut tabanlı AI ajanlarını yönetin",
+ "memoryDescription": "Anlamsal arama ve FTS5 tam metin indeksleme özellikli kalıcı konuşma belleği",
+ "skillsDescription": "Otomatik istem ve araç yürütme için korumalı alan becerilerini yükleyin ve yönetin",
+ "agentSkillsDescription": "AI istemcisi entegrasyonu için tek tıkla URL kopyalama özellikli, ajanlara hazır beceri kataloğu",
+ "translatorDescription": "İstemleri API biçimleri arasında dönüştürün ve test edin: OpenAI ↔ Claude ↔ Gemini",
+ "playgroundDescription": "İstemleri canlı sağlayıcı yanıtları ve biçim incelemesiyle etkileşimli olarak test edin",
+ "searchToolsDescription": "Arama analitiği, sağlayıcı dağılımı, önbellek isabet oranları ve maliyet takibi",
+ "logsDescription": "Gerçek zamanlı istek günlükleri, hata izleri ve akış olayı inceleyicisi",
+ "auditDescription": "API anahtarı kullanımı, MCP araç çağrıları ve politika olayları için uyumluluk denetim izi",
+ "webhooksDescription": "Gerçek zamanlı olay bildirimlerini almak için webhook uç noktalarını yapılandırın",
+ "healthDescription": "Sistem sağlığına genel bakış: sağlayıcılar, devre kesiciler, hız sınırları ve veritabanı",
+ "proxyDescription": "Giden sağlayıcı bağlantıları için üst akış proxy ayarlarını yapılandırın",
+ "apiEndpointsDescription": "Özel API uç noktası yapılandırmalarını ve yönlendirme geçersiz kılmalarını yönetin",
+ "batchFilesDescription": "Toplu iş çıktı dosyalarına ve sonuçlarına göz atın ve bunları yönetin",
+ "analyticsEvalsDescription": "Model değerlendirme sonuçları ve performans karşılaştırmaları",
+ "analyticsSearchDescription": "Arama sorgusu analitiği, önbellek isabet oranları ve maliyet takibi",
+ "analyticsUtilizationDescription": "Sağlayıcı kullanım metrikleri ve kapasite planlaması",
+ "analyticsComboHealthDescription": "Birleşik yönlendirme yapılandırmalarının gerçek zamanlı sağlığı ve performansı",
+ "analyticsCompressionDescription": "Bağlam sıkıştırma analitiği ve token tasarrufları",
+ "costsBudgetDescription": "API anahtarı ve sağlayıcı başına bütçe sınırları ve harcama uyarıları",
+ "costsPricingDescription": "Token maliyeti hesaplamaları için özel fiyatlandırma yapılandırması",
+ "logsProxyDescription": "Üst akış proxy istek günlükleri ve trafik incelemesi",
+ "logsConsoleDescription": "Uygulama konsolu çıktısı ve hata ayıklama günlükleri",
+ "logsActivityDescription": "Kullanıcı eylemleri ve sistem olayları için denetim izi",
+ "auditMcpDescription": "MCP araç çağırma denetim izi ve uyumluluk kayıtları",
"auditA2a": "A2A Denetimi",
"auditA2aDescription": "A2A görev yürütme denetim takibi, durum geçişleri ve beceri çağırma kayıtları",
"settingsGeneralDescription": "Storage, database, and general instance configuration",
- "settingsAppearanceDescription": "Theme, branding, and visual customization",
- "settingsAiDescription": "AI behaviors, thinking budgets, vision, and memory settings",
+ "settingsAppearanceDescription": "Tema, marka kimliği ve görsel özelleştirme",
+ "settingsAiDescription": "AI davranışları, düşünme bütçeleri, görsel algılama ve bellek ayarları",
"settingsCacheDescription": "Model kataloğu önbellek girdileri için TTL",
- "settingsSecurityDescription": "Authentication, authorization, and access control settings",
+ "settingsSecurityDescription": "Kimlik doğrulama, yetkilendirme ve erişim denetimi ayarları",
"featureFlags": "Özellik Bayrakları",
"featureFlagsDescription": "Kontrol sistemi yetenekleri ve deneysel özellikler",
"featureFlagsActive": "{count} aktif",
@@ -1667,11 +1671,11 @@
"featureFlagsNoResults": "Aramanızla eşleşen bayrak yok",
"featureFlagsSaved": "Bayrak güncellendi",
"featureFlagsError": "Bayrak güncellenemedi",
- "settingsRoutingDescription": "Routing rules, model aliases, combo defaults, and degradation settings",
- "settingsResilienceDescription": "Circuit breaker, retry, and fallback configuration",
- "settingsAdvancedDescription": "Advanced payload rules, request limits, and proxy API settings",
- "mitmProxyDescription": "Configure MITM proxy settings for traffic inspection and debugging",
- "oneProxyDescription": "Configure 1Proxy settings for advanced proxy chaining",
+ "settingsRoutingDescription": "Yönlendirme kuralları, model diğer adları, birleşik yönlendirme varsayılanları ve performans düşürme ayarları",
+ "settingsResilienceDescription": "Devre kesici, yeniden deneme ve geri dönüş yapılandırması",
+ "settingsAdvancedDescription": "Gelişmiş yük kuralları, istek sınırları ve proxy API ayarları",
+ "mitmProxyDescription": "Trafik incelemesi ve hata ayıklama için MITM proxy ayarlarını yapılandırın",
+ "oneProxyDescription": "Gelişmiş proxy zincirleme için 1Proxy ayarlarını yapılandırın",
"omniSkillsDescription": "Otomatik istem ve araç yürütme için korumalı alan becerilerini yükleyin ve yönetin"
},
"cloudSyncStatus": {
@@ -1758,7 +1762,7 @@
"discovery": "Keşif",
"freeProviderRankings": "Ücretsiz Sağlayıcı Sıralamaları",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "Kurulum",
"freeTiers": "Ücretsiz Katmanlar",
"gamification": "Oyunlaştırma",
"leaderboard": "Liderlik Tablosu",
@@ -1808,7 +1812,7 @@
"reportIssue": "Sorunu bildir",
"activeError": "{active} aktif · {errors} hata",
"topologyLegendActive": "Aktif",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Son",
"topologyLegendError": "Hata",
"oauthLabel": "OAuth",
"apiKeyLabel": "API Anahtarı",
@@ -1822,11 +1826,11 @@
"updateStarted": "Güncelleme başladı...",
"reloadingPageAutomatically": "Sayfa otomatik olarak yeniden yükleniyor...",
"providerTopology": "Sağlayıcı Topolojisi",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Son İstekler",
+ "recentRequestsEmpty": "Henüz istek yok.",
+ "recentRequestsModel": "Model",
+ "recentRequestsTokens": "Giriş / Çıkış",
+ "recentRequestsWhen": "Zaman",
"downloadDmg": "DMG İndir (macOS)",
"downloadDmgDescription": "OmniRoute masaüstü uygulamasının yeni bir sürümü mevcut. Lütfen güncellemek için macOS DMG yükleyicisini indirin ve kurun (mevcut: v{version}).",
"downloadExe": "EXE İndir (Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "Sürüm Notları",
"readMore": "Daha Fazla Oku",
"noAuthLabel": "Yetkisiz",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Yönlendirmeye hazırlanın",
+ "readinessTitle": "İlk isteğinizi gönderin",
+ "readinessSubtitle": "Dört küçük adım. Siz ilerledikçe OmniRoute hazır olup olmadığınızı kontrol eder.",
+ "readinessStep1": "Bir sağlayıcı bağlayın",
+ "readinessStep2": "Uç nokta kimlik doğrulamasını yapılandırın",
+ "readinessStep3": "Uç noktanızı kopyalayın",
+ "readinessStep4": "Bir test isteği gönderin",
+ "readinessContinue": "Kuruluma devam edin",
+ "readinessDismiss": "Şimdilik kapat"
},
"analytics": {
"title": "Analitik",
@@ -2001,8 +2005,8 @@
"modelStatusError": "Hata",
"comboHealth": "Kombo Sağlığı",
"comboHealthDescription": "Kombo düzeyinde kota, kullanım dağılımı ve performans metrikleri",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Sıkıştırma Analizleri",
+ "compressionAnalyticsDescription": "Sıkıştırma analizleri — token tasarrufu, mod dağılımı ve sağlayıcı istatistikleri.",
"autoRoutingTotalAutoRequests": "Toplam Otomatik İstekler",
"autoRoutingAvgSelectionScore": "Ortalama Seçim Puanı",
"autoRoutingExplorationRate": "Keşif Oranı",
@@ -2090,7 +2094,7 @@
"comboHealthExecutionTargetsDescription": "Yapılandırılmış kombo hedefleri için adım düzeyinde çalışma zamanı metrikleri ve kota görünürlüğü.",
"comboHealthRequestShort": "{count} ist",
"comboHealthQuotaScope": "Kota kapsamı: {scope}",
- "comboHealthTrendValue": "Trend: {trend}",
+ "comboHealthTrendValue": "Eğilim: {trend}",
"comboHealthFetchFailed": "Kombo sağlık verileri alınamadı",
"unknownError": "Bilinmeyen hata",
"comboHealthIntro": "Kombo bazında kota baskısını, dengesiz model kullanımını ve teslimat performansını izleyin.",
@@ -2206,7 +2210,7 @@
"combo": "Kombo",
"routeStep": "Adım",
"tokens": "Tokenlar",
- "notAvailable": "n/a",
+ "notAvailable": "yok",
"routeTokenCounts": "{input} girdi · {output} çıktı",
"routeEvidence": "Kanıt",
"routeFactors": "Yönlendirme faktörleri",
@@ -2254,9 +2258,9 @@
"fullAccess": "Tam Erişim",
"keyManagement": "API Anahtar Yönetimi",
"keyManagementDesc": "Uç noktanıza yönelik isteklerin kimliğini doğrulamak için API anahtarları oluşturun ve yönetin",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Uygulamanız, bir API anahtarı aracılığıyla OmniRoute'a istek gönderir",
+ "requestFlowYourApp": "Uygulamanız",
+ "requestFlowApiKey": "API anahtarı",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Toplam Anahtar",
"restricted": "Kısıtlı",
@@ -2297,9 +2301,9 @@
"keyCreatedNote": "Bu anahtarı şimdi kopyalayıp saklayın; bir daha gösterilmeyecek.",
"done": "Bitti",
"savePermissions": "İzinleri Kaydet",
- "endpointRestrictions": "Allowed Endpoints",
- "allEndpointsAllowed": "This key can access all API endpoints.",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
+ "endpointRestrictions": "İzin Verilen Uç Noktalar",
+ "allEndpointsAllowed": "Bu anahtar tüm API uç noktalarına erişebilir.",
+ "endpointsRestricted": "{count, plural, one {# uç noktayla} other {# uç noktayla}} sınırlı.",
"autoResolve": "Otomatik Çözümle",
"autoResolveDesc": "Bu API anahtarı için belirsiz model adlarını kaynak sağlayıcıya otomatik olarak çözümleyin.",
"streamDefaultMode": "Akış Varsayılan Uyumluluğu",
@@ -2378,8 +2382,8 @@
"allowedCombos": "İzin Verilen Kombinasyonlar",
"allCombosAllowed": "Bu anahtar herhangi bir kombinasyonu kullanabilir.",
"restrictedComboCount": "{count, plural, one {# kombinasyon} other {# kombinasyon}} ile sınırlandırıldı.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {# kayıtlı girdi} other {# kayıtlı girdi}} bu birleşik seçim listesinde değil (örneğin yönlendirme kuralları) ve kaydedildiği şekilde korunacak.",
+ "preservedComboRuleHint": "Kaydedildiği şekilde korundu. Bu girdi yukarıdaki listede bir birleşik seçim olmadığından yalnızca API üzerinden değiştirilebilir.",
"apiManagerCustomRateLimits": "Özel Fiyat Limitleri",
"apiManagerCustomRateLimitsDesc": "Genel varsayılan sınırları geçersiz kılın. Varsayılanları kullanmak için boş bırakın.",
"apiManagerRateLimitRequestsPlaceholder": "İstekler",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Bu anahtarın yönlendirme sırasında üst sağlayıcı/hesap sınır politikasını yoksaymasına izin verir. API anahtarı USD kotaları geçerliliğini korur.",
"quotaPill": "KOTA",
"quotaModeOnly": "yalnızca-qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Özel Kiralama",
+ "exclusiveLeaseNoticeTitle": "Özel Kiralama",
+ "exclusiveLeaseNoticeDesc": "Bu API anahtarı, tahsis edilmiş bağlantı yönlendirmesi için özel kiralama izinlerine sahiptir.",
+ "allConnections": "Tüm bağlantılar",
+ "onlySelectedConnections": "Yalnızca seçili bağlantılar",
+ "selectAtLeastOneConnection": "En az bir bağlantı seçin veya Tüm bağlantılar'ı seçin.",
+ "allConnectionsDesc": "Bu anahtar herhangi bir etkin bağlantıyı kullanabilir.",
+ "restrictedToConnections": "{count, plural, one {# bağlantıyla} other {# bağlantıyla}} sınırlandırıldı."
},
"auditLog": {
"title": "Denetim Günlüğü",
@@ -2589,60 +2593,60 @@
"emptyState": "Sonuçları görmek için bir arama sorgusu gönderin",
"copy": "Kopyala",
"resetToDefault": "Varsayılana sıfırla",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Arama",
+ "tabScrape": "İçerik çıkarma",
+ "tabCompare": "Karşılaştırma",
+ "modalitiesGuide": "Yöntemler kılavuzu",
+ "searchConceptTitle": "Arama",
+ "searchConceptDesc": "Arama = web sonuçlarının bir listesini getirir (başlık, URL, alıntı, alaka düzeyi puanı)",
+ "scrapeConceptTitle": "İçerik çıkarma",
+ "scrapeConceptDesc": "İçerik çıkarma = bir URL'nin tüm içeriğini çıkarır (markdown, metin veya HTML)",
+ "compareConceptTitle": "Karşılaştırma",
+ "compareConceptDesc": "Karşılaştırma = gecikme süresini, maliyeti ve sonuç örtüşmesini karşılaştırmak için aynı sorguyu N sağlayıcıda yan yana çalıştırır",
+ "rerankConceptTitle": "Yeniden sıralama",
+ "rerankConceptDesc": "Yeniden sıralama = sorguya göre alaka düzeyini iyileştirmek için sonuçları LLM aracılığıyla yeniden sıralar",
+ "autoConceptTitle": "Otomatik (en ucuz)",
+ "autoConceptDesc": "Otomatik (en ucuz) = yapılandırılmış kimlik bilgilerine sahip mevcut en ucuz sağlayıcıyı otomatik olarak seçer",
+ "providerCatalogTitle": "Sağlayıcı Kataloğu",
+ "kindSearch": "Arama",
+ "kindFetch": "Getirme/İçerik çıkarma",
+ "statusConfigured": "Yapılandırıldı",
+ "statusMissing": "Kimlik bilgisi yok",
+ "statusRateLimited": "Hız sınırına ulaşıldı",
+ "configureProvider": "Sağlayıcılar bölümünde yapılandırın",
+ "loadingProviders": "Sağlayıcılar yükleniyor…",
+ "failedToLoadProviders": "Sağlayıcılar yüklenemedi",
+ "costPerQuery": "Maliyet/sorgu",
+ "freeQuota": "Ücretsiz kota/ay",
+ "scrapeUrl": "İçeriği çıkarılacak URL",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL gerekli",
"scrapeUrlInvalid": "Geçersiz URL — http:// veya https:// ile başlamalıdır",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "Çıkar",
+ "scrapeExtracting": "Çıkarılıyor…",
+ "scrapeFullPage": "Tam sayfa",
+ "scrapeFormat": "Biçim",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "Metin",
+ "scrapePreview": "Önizleme",
+ "scrapeRaw": "Ham",
+ "scrapeContentTruncated": "(kısaltıldı, ham hâlini görüntüle)",
+ "scrapeMetadata": "Meta Veriler",
+ "scrapeProvider": "Sağlayıcı",
+ "scrapeSize": "Boyut",
"scrapeEmptyState": "İçeriğini çıkarmak için bir URL girin",
"scrapeProvidersAvailable": "Kullanılabilir sağlayıcılar: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Karşılaştır",
+ "compareRunning": "Karşılaştırılıyor…",
+ "autoProvider": "Otomatik (en ucuz)",
+ "configuredStatus": "Yapılandırıldı",
+ "rateLimitedStatus": "Hız sınırına ulaşıldı",
+ "noCredential": "Kimlik bilgisi yok",
+ "searchTypeLabel": "Tür",
+ "rerankModelLabel": "Yeniden sıralama modeli",
+ "noneOption": "Yok",
+ "size": "Boyut",
"configurationPane": "Yapılandırma bölmesi",
"configuration": "Yapılandırma",
"status": "Durum",
@@ -2739,7 +2743,7 @@
"effortExtraHigh": "Ekstra yüksek",
"effortMax": "Maks",
"effortUltra": "Ultra",
- "wireApi": "Wire API",
+ "wireApi": "API'yi Bağla",
"modelAliases": "Model takma adları",
"addModel": "Model ekle",
"routeModelPlaceholder": "{model} modelini şuraya yönlendir...",
@@ -2904,7 +2908,7 @@
"continue": "IDE'lerde Continue çalıştırırken taşınabilir, JSON tabanlı sağlayıcı yapılandırmasına ihtiyaç duyduğunuzda kullanın.",
"opencode": "Terminal yerel ajan çalıştırmaları ve OpenCode ile betik tabanlı otomasyon tercih ettiğinizde kullanın.",
"kiro": "Kiro'yu entegre ederken model yönlendirmesini OmniRoute üzerinden merkezi olarak yönetmek istediğinizde kullanın.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "OmniRoute üzerinden yönlendirilen Codeium/Windsurf modellerine sahip, yapay zekâ odaklı bir IDE kullanmak istediğinizde tercih edin.",
"antigravity": "Antigravity/Kiro trafiğinin MITM üzerinden yakalanıp OmniRoute'a yönlendirilmesi gerektiğinde kullanın.",
"copilot": "OmniRoute anahtarları ve yönlendirme kuralları uygulanırken Copilot sohbet tarzı bir UX istediğinizde kullanın.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2928,7 +2932,7 @@
"kiro": "Amazon Kiro - AI destekli IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
+ "amp": "Sourcegraph Amp kodlama asistanı CLI'si",
"hermes": "Hermes AI Terminal Asistanı",
"hermes-agent": "Hermes Agent (Nousresearch tarafından) - Çoklu model desteğine sahip gelişmiş terminal yapay zekası (delegasyon, görme, sıkıştırma vb.)",
"custom": "Genel OpenAI uyumlu CLI veya SDK yapılandırma oluşturucu",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter otonom kodlama aracısı CLI'sı",
"omp": "Oh My Pi terminal kodlama aracısı",
"letta": "Kalıcı bellek ve araç kullanımına sahip Letta CLI aracısı",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI uyumlu sağlayıcı desteğine sahip, kendini geliştiren RLM kodlama altyapısı",
"warp": "Özel sağlayıcı desteğine sahip Warp AI terminali",
"agent-deck": "Agent Deck çoklu aracı orkestratörü",
"5dive": "5dive — kendi sunucunuzda çalışan kodlama aracıları filosu; tek bir auth profili hepsini OmniRoute'a yönlendirir"
@@ -3019,8 +3023,8 @@
"title": "Modeli Seçin"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Düşünme Varyantını Kullan",
+ "desc": "Düşünme modellerini --variant high/low/max ile çalıştırın (aşağıdaki örnek komuta bakın)."
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Yapay Zekâ Ayarlarını Aç",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Özel Sağlayıcı Ekle",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Temel URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API Anahtarı",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Model Seç",
+ "desc": "Açılır listeden bir model seçin"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Özel CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Araç Kategorileri",
"visibleToolsCount": "{count} araç mevcut",
"customCliBuilderTitle": "OpenAI uyumlu CLI oluşturucu",
"customCliBuilderDescription": "OpenAI uyumlu bir temel URL, API anahtarı ve model kimliğini kabul eden herhangi bir CLI veya SDK için env değişkenleri ve JSON parçacıkları oluşturun.",
@@ -3182,7 +3186,7 @@
"cliproxyapiHealthy": "Sağlıklı",
"cliproxyapiInstall": "Kurulum",
"cliproxyapiNotInstalledValue": "Yüklenmedi",
- "cliproxyapiPort": "Port",
+ "cliproxyapiPort": "Bağlantı Noktası",
"cliproxyapiRequestFailed": "İstek başarısız oldu",
"cliproxyapiRestart": "Yeniden Başlat",
"cliproxyapiStart": "Başla",
@@ -3256,15 +3260,15 @@
"priorityDesc": "Sıralı yedekleme: önce model 1, sonra model 2, ardından diğerleri denenir.",
"weightedDesc": "Trafiği ağırlık yüzdelerine göre dağıtır ve hata durumunda yedek modele düşer.",
"roundRobinDesc": "Döngüsel dağıtım: her istek sıradaki modele yönlendirilir.",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "Bağlam Aktarımı",
+ "contextRelayDesc": "Hesaplar değiştirildiğinde devir özetleriyle oturum sürekliliğini korur",
"randomDesc": "Eşit olasılıklı rastgele seçim yapar, ardından kalan modellere yedeklenir.",
"leastUsedDesc": "En az istek alan modeli seçerek yükü zaman içinde dengeler.",
"costOptimizedDesc": "Fiyatlandırmaya göre önce en ucuz modele yönlendirir.",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "cacheOptimizedDesc": "Yeniden kullanılabilir her istem önekini tutarlı biçimde aynı sağlayıcı hesabına yönlendirir",
"resetAware": "Sıfırlamaya Duyarlı RR",
"resetAwareDesc": "Kalan kotayı 5 saatlik ve haftalık sıfırlamalara karşı dengeler, ardından benzer puanları bir kez eşleştirme",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Kota Ağırlıklı",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
"strictRandom": "Kesin Rastgele",
"strictRandomDesc": "Karıştırma destesi: yeniden karıştırmadan önce her modeli bir kez kullanır.",
@@ -3272,7 +3276,7 @@
"fusionDesc": "İstemi tüm panel modellerine paralel olarak dağıtır, ardından bir hakem model tek bir nihai yanıt sentezler",
"fusionJudgeModel": "Hakem model",
"fusionJudgeModelHelp": "Panel yanıtlarını tek bir nihai yanıtta sentezleyen model. İlk panel modelini kullanmak için boş bırakın.",
- "fusionMinPanel": "Min panel",
+ "fusionMinPanel": "Minimum panel",
"fusionMinPanelHelp": "Gecikenlere ek süre tanınmadan önce gereken başarılı panel yanıtı sayısı (varsayılan 2).",
"fusionStragglerGraceMs": "Gecikenler için ek süre (ms)",
"fusionStragglerGraceMsHelp": "Çoğunluk sağlandıktan sonra yavaş panel modelleri için ne kadar bekleneceği (varsayılan 8000).",
@@ -3284,13 +3288,13 @@
"retryDelay": "Yeniden Deneme Gecikmesi (ms)",
"concurrencyPerModel": "Eşzamanlılık / Model",
"queueTimeout": "Kuyruk Zaman Aşımı (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "Devir Eşiği",
+ "contextRelayHandoffThresholdHelp": "Kota kullanımı bu eşiğe ulaştığında OmniRoute, etkin hesabın kotası tükenmeden önce yapılandırılmış bir devir özeti oluşturur.",
+ "contextRelayMaxMessages": "Özet İçin Maksimum Mesaj Sayısı",
+ "contextRelayMaxMessagesHelp": "Yakın geçmişin ne kadarının aktarım özetinde yoğunlaştırılacağını sınırlar.",
+ "contextRelaySummaryModel": "Özet Modeli",
+ "contextRelaySummaryModelHelp": "Yalnızca devir özetini oluşturmak için kullanılan isteğe bağlı geçersiz kılma modeli. Etkin kombinasyon modelini yeniden kullanmak için boş bırakın.",
+ "contextRelayProviderNote": "Context Relay şu anda Codex hesap rotasyonu için devir özetleri oluşturur. En iyi devamlılık için aynı sağlayıcıya ait birden fazla hesapla eşleştirin.",
"advancedHint": "Genel varsayılanları kullanmak için boş bırakın. Bunlar, sağlayıcı başına ayarları geçersiz kılar.",
"failoverBeforeRetry": "Yeniden Denemeden Önce Yük Devretme",
"maxSetRetries": "Maksimum Set Yeniden Deneme Sayısı",
@@ -3382,19 +3386,19 @@
"example": "Daha sonra yapılacak %80'lik hesap sıfırlama yerine, haftalık %60'lık hesabın yarın sıfırlanmasını tercih edin."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Tamamen eşit dağılım istediğinizde kullanın — tekrara geçmeden önce her model bir kez kullanılır.",
+ "avoid": "Modellerin kalite veya gecikme değerleri farklıysa ve sıralama önemliyse kullanmayın.",
+ "example": "Örnek: Kullanımı eşit şekilde dağıtmak için aynı modele ait birden fazla hesap."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Power-of-Two-Choices algoritmasını kullanarak düşük gecikmeli seçim istediğinizde kullanın.",
+ "avoid": "2 veya daha az model içeren küçük kombinasyonlarda kullanmayın — sıralı seçim yöntemine göre bir avantaj sağlamaz.",
+ "example": "Örnek: 4 veya daha fazla eşdeğer model uç noktası arasında yüksek iş hacimli çıkarım."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Uzun oturumların çalışma bağlamını kaybetmeden hesap rotasyonundan sağ çıkması gerektiğinde kullanın.",
+ "avoid": "Hesap geçişi nadirse veya ek özetleme istekleri istemiyorsanız kullanmayın.",
+ "example": "Örnek: Kota tükenmek üzereyken birden fazla hesap arasında rotasyon yapan Codex oturumları."
},
"fill-first": {
"when": "Bir sonrakine geçmeden önce bir sağlayıcının kotasını tamamen tüketmek istediğinizde kullanın.",
@@ -3455,12 +3459,12 @@
"warningRoundRobinSingleModel": "Round-robin en az 2 modelle en iyi sonucu verir.",
"warningCostOptimizedPartialPricing": "{total} modelin yalnızca {priced} tanesinde fiyat bilgisi var. Yönlendirme kısmen maliyet odaklı olabilir.",
"warningCostOptimizedNoPricing": "Bu kombo için fiyatlandırma verisi bulunamadı. Maliyet odaklı yönlendirme beklenmedik davranabilir.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "filterAll": "Tümü",
+ "filterIntelligent": "Akıllı",
+ "filterDeterministic": "Deterministik",
+ "filterEmptyTitle": "Bu strateji filtresiyle eşleşen kombinasyon yok.",
+ "filterEmptyIntelligentDescription": "Akıllı yönlendirme panosunu doldurmak için bir auto veya LKGP kombinasyonu oluşturun.",
+ "filterEmptyDeterministicDescription": "Şu anda yalnızca auto ve LKGP kombinasyonları mevcut. Tümü'ne geri dönün veya deterministik bir kombinasyon oluşturun.",
"readinessTitle": "Kaydetmeye hazır mısınız?",
"readinessDescription": "Bu komboyu oluşturmadan veya güncellemeden önce kontrol listesini gözden geçirin.",
"readinessCheckName": "Kombo adı geçerli",
@@ -3478,8 +3482,8 @@
"applyRecommendations": "Önerileri Uygula",
"recommendationsUpdated": "{strategy} için öneriler güncellendi.",
"recommendationsApplied": "Öneriler bu komboya uygulandı.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "intelligentPanelTitle": "Akıllı Yönlendirme Panosu",
+ "intelligentPanelDesc": "Bu otomatik yönlendirme kombinasyonu için gerçek zamanlı puanlama ve sistem durumu.",
"configOnlyStatus": "Yapılandırma Görünümü",
"configOnlyHint": "Bu panel yalnızca yönlendirme girdilerini gösterir. Canlı devre kesici durumu Sağlık sayfasında mevcuttur.",
"routingInputs": "Yönlendirme Girdileri",
@@ -3501,47 +3505,47 @@
"manualModelUnknownProvider": "Bilinmeyen sağlayıcı öneki.",
"builderDynamicAccountShort": "Dinamik hesap",
"builderNeedValidName": "Devam etmeden önce geçerli bir kombo adı tanımlayın.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Durum Özeti",
+ "normalOperation": "Normal Çalışma",
+ "allProvidersHealthy": "Sağlayıcılar, yönlendirme koşullarının sağlıklı olduğunu bildiriyor.",
+ "incidentMode": "Olay Modu",
+ "highCircuitBreakerRate": "Yüksek devre kesici tetiklenme oranı algılandı.",
+ "activeModePack": "Etkin Mod Paketi",
+ "modePackUpdated": "Mod paketi {pack} olarak güncellendi.",
+ "modePackHint": "Kombinasyonu yeniden oluşturmadan yönlendirme motorunun eğilimini değiştirmek için ön ayarlar arasında geçiş yapın.",
+ "providerScores": "Sağlayıcı Puanları",
+ "allProvidersEvaluated": "Yapılandırılmış aday havuzu yok. Tüm etkin sağlayıcılar çalışma zamanında değerlendirilir.",
+ "excludedProviders": "Hariç Tutulan Sağlayıcılar",
+ "excludedProvidersHint": "Devre kesicisi OPEN durumunda olan sağlayıcılar geçici olarak yönlendirme dışında tutulur.",
+ "noExcludedProviders": "Şu anda hariç tutulan sağlayıcı yok.",
+ "cooldownMinutes": "Bekleme süresi: {minutes} dk.",
+ "builderIntelligentTitle": "Akıllı Yönlendirme Yapılandırması",
+ "builderIntelligentDesc": "Bu otomatik yönlendirme kombinasyonu için çok faktörlü puanlama motorunu yapılandırın.",
+ "candidatePoolLabel": "Aday Havuzu",
+ "candidatePoolHint": "Bu motorun hangi sağlayıcıları değerlendireceğini seçin. Tüm etkin sağlayıcıları kullanmak için boş bırakın.",
+ "candidatePoolEmpty": "Henüz etkin sağlayıcı yok.",
+ "candidatePoolAllProviders": "Tüm sağlayıcılar",
+ "modePackLabel": "Mod Paketi",
+ "routerStrategyLabel": "Yönlendirici Stratejisi",
+ "strategyRules": "Kurallar (6 Faktörlü Puanlama)",
+ "explorationRateLabel": "Keşif Oranı",
+ "explorationRateHint": "İsteklerin %{percent} kadarı optimal olmayan sağlayıcıları keşfedebilir.",
+ "budgetCapLabel": "Bütçe Sınırı (USD / istek)",
+ "budgetCapPlaceholder": "Sınır yok",
+ "advancedWeightsTitle": "Gelişmiş: Puanlama Ağırlıkları",
"nestedComboFlatten": "İç içe komboları düzleştir",
"nestedComboExecute": "İç içe komboları hedef olarak çalıştır",
"effectiveRoutingShare": "Geçerli yönlendirme payı (ağırlık ÷ toplam)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Kota",
+ "weightHealth": "Sağlık",
+ "weightCostInv": "Maliyet",
+ "weightLatencyInv": "Gecikme",
+ "weightTaskFit": "Göreve Uygunluk",
+ "weightStability": "Kararlılık",
+ "weightTierPriority": "Katman",
+ "weightCacheAffinity": "Önbellek İsabeti Yakınlığı",
"weightSessionAvailability": "Oturum Uygunluğu",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Akıllı Yönlendirme Yapılandırması",
"strategyRecommendations": {
"priority": {
"title": "Güvenli temel strateji",
@@ -3593,11 +3597,11 @@
"tip3": "Eşdeğer hesapların adil bir şekilde dönmeye devam etmesi için kravat bandını küçük tutun."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Deste karıştırma dağılımı",
+ "description": "Her model, yeniden karıştırmadan önce her döngüde tam olarak bir kez kullanılır.",
+ "tip1": "Anlamlı bir dağılım için en az 2 model kullanın.",
+ "tip2": "Eşdeğer performansa sahip modellerle en iyi şekilde çalışır.",
+ "tip3": "Birden fazla API hesabı arasında yük dengeleme için idealdir."
},
"fill-first": {
"description": "Geri çekilmeden önce sağlayıcı kotalarını sırayla tüketin.",
@@ -3646,82 +3650,82 @@
"templateFreeStackDesc": "Tüm ücretsiz sağlayıcılarda round-robin: Kiro (Claude), Qoder (5 model), Qwen (4 model). Sıfır maliyet, kodlama kesintisiz.",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "LKGP Modu",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "wizardGuideTitle": "Komboları Kullanmaya Başlama",
+ "wizardGuideDesc": "AI trafiğini akıllıca yönlendirmek için model komboları oluşturun",
+ "wizardGuideHint": "veya yukarıdaki + Kombo Oluştur seçeneğine tıklayın",
+ "createFirstCombo": "İlk Kombonuzu Oluşturun",
+ "wizardStep1Title": "Kombonuzu Adlandırın",
+ "wizardStep1Desc": "Yönlendirme kurallarında tanımlayabilmek için kombonuza benzersiz bir ad verin",
+ "wizardStep2Title": "Modeller Ekleyin",
+ "wizardStep2Desc": "AI modellerini seçin ve geri dönüş önceliği sıralarını düzenleyin",
+ "wizardStep3Title": "Strateji Seçin",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "İnceleyin ve Kaydedin",
+ "wizardStep4Desc": "Yapılandırmanızı inceleyin ve komboyu etkinleştirin",
+ "usageGuideInvokeTitle": "Bu kombo nasıl çağrılır?",
+ "usageGuideInvokeDesc": "Model olarak kombonun tam adını gönderin; ör. model: \"my-combo\" (veya combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto ve auto/*, kombolarınızı kullanmayan ayrı bir sıfır yapılandırmalı yönlendiricidir (bir kombonun adı tam olarak auto olmadığı sürece).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto gerçek bir ücretli OpenRouter ürünüdür (Otomatik En İyi Kullanılabilir), bir OmniRoute takma adı değildir — Ayarlar → Yönlendirme → Ücretli modelleri gizle yoluyla hariç tutun.",
+ "emailVisibilityStateOn": "Açık",
+ "emailVisibilityStateOff": "Kapalı",
+ "reorderHandle": "Yeniden sıralamak için sürükleyin",
+ "failedReorder": "Modeller yeniden sıralanamadı",
+ "builderFlowTitle": "Kombinasyon Oluşturucu Akışı",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Temel Bilgiler",
+ "description": "Ad ve başlangıç şablonu"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Adımlar",
+ "description": "Sağlayıcı, model ve hesap seçimi"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Strateji",
+ "description": "Yönlendirme davranışı ve gelişmiş ayarlar"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Akıllı Yönlendirme",
+ "description": "Otomatik yönlendirme aday havuzu, ön ayarlar ve puanlama"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Gözden Geçir",
+ "description": "Kaydetmeden önce son doğrulama"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
+ "builderStageVisited": "Aşama tamamlandı",
+ "builderStageCurrent": "Geçerli aşama",
+ "builderStagePending": "Beklemede",
+ "builderStageLocked": "Kilitli — önce önceki aşamayı tamamlayın",
+ "builderTitle": "Kombinasyon Oluştur",
+ "builderBrowseCatalog": "Kataloğa göz at",
+ "builderProvider": "Sağlayıcı",
+ "builderLoadingProviders": "Sağlayıcılar yükleniyor...",
+ "builderSelectProvider": "Sağlayıcı seçin",
"builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderSelectModel": "Model seçin",
+ "builderProviderFirst": "Önce sağlayıcıyı seçin",
+ "builderAccount": "Hesap",
+ "builderPreview": "Önizleme",
+ "builderAddStep": "Adım ekle",
"builderDuplicateExact": "Bu tam sağlayıcı/model/hesap adımı zaten kombinasyonda yer alıyor.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "Kombinasyon Referansı",
+ "builderAddComboRef": "Kombinasyon referansı ekle",
+ "builderComboRefStep": "Kombinasyon referansı ekle",
+ "builderPinnedAccount": "Sabitlenmiş Hesap",
+ "builderLegacyEntry": "Eski kayıt",
+ "reviewName": "Ad",
+ "reviewStrategy": "Strateji",
+ "reviewSteps": "Adımlar",
+ "reviewAccounts": "Hesaplar",
+ "reviewProviders": "Sağlayıcılar",
+ "reviewComboRefs": "Kombinasyon Referansları",
+ "reviewAdvanced": "Gelişmiş Ayarlar",
+ "reviewAgentFlags": "Aracı Bayrakları",
+ "reviewSequence": "Model Sıralaması",
+ "reviewNoSteps": "Yapılandırılmış adım yok",
"builderStagesDescription": "Kombinasyonları tanımlamak, adımları oluşturmak, yönlendirme stratejisini seçmek ve sonuçları incelemek için her aşamayı tamamlayın.",
"builderStepsDescription": "Her birleşik adımı sırayla oluşturun: sağlayıcı, model ve ardından hesap. Bu, aynı sağlayıcının ve modelin farklı hesaplarda yeniden kullanılmasına olanak tanır.",
"selectProvider": "Sağlayıcı Seçin",
@@ -3796,27 +3800,27 @@
"range7d": "7 Gün",
"range30d": "30 Gün",
"range90d": "90 Gün",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 Gün",
+ "range365d": "365 Gün",
"rangeAll": "Tüm Zamanlar",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "Etkin Modeller",
+ "flatRateEstimateNotice": "Sabit ücretli abonelikler için token fiyatı tahminlerini içerir; faturalandırılan maliyeti içermez.",
+ "flatRateEstimateForecast": "Projeksiyon, sabit ücret tahminlerini içerir.",
+ "selectedWindow": "Seçili Dönem",
+ "activeProviders": "Etkin Sağlayıcılar",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "Bugünkü Harcama",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "Sağlayıcı Payı",
+ "topProviders": "En İyi Sağlayıcılar",
+ "costTrend": "Maliyet Eğilimi",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "En İyi Modeller",
"requestsInWindow": "Requests In Window",
"tokenUsage": "Jeton Kullanımı",
"totalTokens": "Toplam Jetonlar",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "API Uç Noktası",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "Çoğu SDK ve araçla OpenAI uyumlu uç noktayı kullanın.",
+ "testEndpoint": "Uç noktayı test et →",
+ "advancedProtocols": "Gelişmiş protokoller",
"available": "Kullanılabilir Uç Noktalar",
"cloudProxy": "Cloud Proxy",
"disableConfirm": "Bulut proxy'sini devre dışı bırakmak istediğinizden emin misiniz?",
@@ -3908,8 +3912,8 @@
"audioTranscriptionDesc": "Ses dosyalarını metne dönüştürün (Whisper)",
"textToSpeech": "Metinden Konuşma",
"textToSpeechDesc": "Metni doğal sesli konuşmaya dönüştürün",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Müzik Oluşturma",
+ "musicDesc": "ComfyUI (Stable Audio, MusicGen) aracılığıyla müzik ve ses parçaları oluşturun",
"moderations": "Moderasyonlar",
"moderationsDesc": "İçerik denetimi ve güvenlik sınıflandırması",
"responsesDesc": "Codex ve gelişmiş aracılı iş akışları için OpenAI Responses API'si",
@@ -3959,29 +3963,29 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Tüneli Etkinleştir",
+ "cloudflaredInstallAndEnable": "Yükle ve Etkinleştir",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Çalışıyor",
+ "cloudflaredStarting": "Başlatılıyor",
+ "cloudflaredStoppedState": "Durduruldu",
+ "cloudflaredNotInstalled": "Yüklü değil",
+ "cloudflaredUnsupported": "Desteklenmiyor",
+ "cloudflaredError": "Hata",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Son hata: {error}",
"providerModelsTitle": "{provider} — Modeller",
"noModelsForProvider": "Bu sağlayıcı için kullanılabilir model yok.",
"chat": "Chat",
- "embedding": "Embedding",
+ "embedding": "Gömme",
"image": "Görsel",
"custom": "Özel",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
+ "modelsCount": "{count, plural, one {# model} other {# model}}",
"sectionTitle": "Entegrasyon Yüzeyi",
"sectionDescription": "OpenAI uyumlu API'ler ve operasyonel protokol uç noktaları",
"tabApis": "API'ler",
@@ -4018,40 +4022,40 @@
"batchApiDesc": "Büyük istek gruplarını eşzamansız olarak işleyin (OpenAI uyumlu)",
"filesApi": "Dosyalar API'sı",
"filesApiDesc": "Toplu işleme için dosyaları yükleyin ve yönetin",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Video Oluşturma",
+ "videoDesc": "ComfyUI ve Stable Video Diffusion gibi yapay zekâ modellerini kullanarak videolar oluşturun.",
+ "tailscaleRequestFailed": "Tailscale durumu yüklenemedi",
+ "tailscaleEnableFailed": "Tailscale Funnel etkinleştirilemedi",
+ "tailscaleWaitingForLogin": "Açılan tarayıcı sekmesinde Tailscale oturum açma işlemini tamamlayın. OmniRoute otomatik olarak yeniden deneyecektir.",
+ "tailscaleLoginTimedOut": "Tailscale oturumunun açılması beklenirken zaman aşımına uğradı",
+ "tailscaleWaitingForFunnel": "Açılan tarayıcı sekmesinde bu cihaz için Funnel'ı etkinleştirin. OmniRoute yoklamaya devam edecek.",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel'ın etkinleştirilmesi beklenirken zaman aşımına uğradı",
+ "tailscaleStarted": "Tailscale Funnel etkinleştirildi",
+ "tailscaleDisableFailed": "Tailscale Funnel devre dışı bırakılamadı",
+ "tailscaleStopped": "Tailscale Funnel devre dışı bırakıldı",
+ "tailscaleInstallFailed": "Tailscale yüklenemedi",
+ "tailscaleInstallProgress": "İşlem sürüyor...",
+ "tailscaleInstalled": "Tailscale başarıyla yüklendi",
+ "tailscaleRunning": "Çalışıyor",
+ "tailscaleNeedsLogin": "Oturum Açılması Gerekiyor",
+ "tailscaleStoppedState": "Durduruldu",
+ "tailscaleNotInstalled": "Yüklü değil",
+ "tailscaleUnsupported": "Desteklenmiyor",
+ "tailscaleError": "Hata",
+ "tailscaleDisable": "Funnel'ı Durdur",
+ "tailscaleInstallAndEnable": "Yükle ve Etkinleştir",
+ "tailscaleLoginAndEnable": "Oturum Aç ve Etkinleştir",
+ "tailscaleEnable": "Funnel'ı Etkinleştir",
+ "tailscaleUrlNotice": "Tailscale .ts.net adresinizi kullanır. İlk kullanımda oturum açmanız ve Funnel onayı vermeniz gerekebilir.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "Bu makinenin Tailscale kimlik doğrulamasını yapın, ardından Funnel'ı etkinleştirin.",
+ "tailscaleBinaryPath": "İkili dosya: {path}",
+ "tailscaleLastError": "Son hata: {error}",
+ "tailscaleInstallTitle": "Tailscale'i Yükle",
+ "tailscaleInstallIntro": "Tailscale'i bu makineye yükler ve OmniRoute'u Funnel'ı etkinleştirmeye hazırlar.",
+ "tailscaleInstallPasswordHint": "macOS ve Linux'ta paket kurulumu ve arka plan programının başlatılması için sudo gerekebilir.",
+ "tailscaleSudoPlaceholder": "İsteğe bağlı sudo parolası",
+ "tailscaleInstalling": "Yükleniyor",
"tailscaleSudoLabel": "Sudo Şifresi (macOS/Linux'ta gereklidir)",
"ngrokTitle": "Ngrok Tüneli",
"ngrokRunning": "Koşu",
@@ -4135,14 +4139,14 @@
"badgeInternalTooltip": "Bu dahili bir sistem uç noktasıdır",
"tierAll": "Tümü",
"tierAuth": "Kimliği Doğrulanmış",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Geri döngü",
"tierAlwaysProtected": "Her Zaman Korumalı",
"tierPublic": "Genel",
"hideInternal": "Dahili Olanları Gizle",
"showInternal": "Dahili Olanları Göster",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Özel Sistem İstemi",
+ "customSystemPromptDescription": "Her model isteğine özel bir sistem istemi ekle",
+ "customSystemPromptPlaceholder": "ör. Her zaman korsan ağzıyla yanıt ver...",
"obsidianEnterToken": "Lütfen bir Obsidian API belirteci girin",
"obsidianConnectFailed": "Bağlantı kurulamadı",
"obsidianConnectionFailed": "Bağlantı başarısız",
@@ -4242,7 +4246,7 @@
"topTools": "En çok kullanılan araçlar",
"noToolCalls24h": "Son 24 saatte araç çağrısı yapılmadı.",
"runtimeDetails": "Çalışma zamanı ayrıntıları",
- "transport": "Transport",
+ "transport": "Aktarım",
"scopesEnforced": "Kapsam zorlaması",
"yes": "Evet",
"no": "Hayır",
@@ -4283,10 +4287,10 @@
"failed": "başarısız",
"previous": "Önceki",
"next": "Sonraki",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "apiKeyId": "API Anahtarı Kimliği",
+ "offset": "Başlangıç",
+ "limit": "Sınır",
+ "tool": "Araç"
},
"a2aDashboard": {
"loading": "A2A kontrol paneli yükleniyor...",
@@ -4342,10 +4346,10 @@
"metadata": "Meta veriler",
"events": "Etkinlikler",
"artifacts": "Çıktılar",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "tablePhase": "Tablo Aşaması",
+ "offset": "Ofset",
+ "limit": "Sınır",
+ "skill": "Yetenek",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "mesaj/gönder",
"rpcMethodStream": "mesaj/akış",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Eylemler",
+ "addMemory": "Bellek Ekle",
+ "allTypes": "Tüm Türler",
"cancel": "İptal",
"checkHealth": "Sağlığı kontrol edin",
"checkingHealth": "Kontrol ediliyor…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "Nasıl çalışır",
"howWorksContent": "1. Otomatik çıkarma: Her yanıtın sonunda, gerçekler ve bölümler otomatik olarak algılanır ve kaydedilir.\n2. Geri getirme: Her yanıttan önce, en alakalı bellekler FTS5 (tam eşleşme), vektör (anlamsal) veya hibrit RRF aracılığıyla aranır.\n3. Enjeksiyon: Yanıt kalitesini artırmak için alakalı bellekler asistan bağlamına enjekte edilir.\n4. Yönetim: Eski bellekleri görüntülemek, düzenlemek, dışa aktarmak ve sıkıştırmak için bu sayfayı kullanın."
},
- "content": "Content",
+ "content": "İçerik",
"contentPlaceholder": "Hatırlanması gereken değer veya JSON içeriği",
- "created": "Created",
- "delete": "Delete",
+ "created": "Oluşturulma",
+ "delete": "Sil",
"deleteConfirmDesc": "Bu işlem geri alınamaz. Bellek kalıcı olarak silinecektir.",
"deleteConfirmTitle": "Bellek silinsin mi?",
- "description": "View and manage stored memory entries",
+ "description": "Saklanan bellek kayıtlarını görüntüleyin ve yönetin",
"editMemory": "Belleği düzenle",
"editModal": {
"title": "Belleği Düzenle",
@@ -4429,7 +4433,7 @@
"reindexFailed": "Yeniden dizine ekleme başlatılamadı",
"keywordLabel": "Anahtar kelime (FTS5)",
"keywordReason": "Anahtar kelime araması her zaman kullanılabilir",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Gömme",
"vectorStoreLabel": "Vektör Deposu",
"qdrantLabel": "Qdrant",
"rerankLabel": "Yeniden Sıralama",
@@ -4440,20 +4444,20 @@
"configureCta": "Yapılandır",
"vectorStoreInstallHint": "Vektör aramasını etkinleştirmek için: npm install sqlite-vec (WASM değil, yerel Node.js gerektirir), ardından yeniden başlatın."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Epizodik",
+ "export": "Dışa Aktar",
+ "factual": "Olgusal",
"healthUnknown": "Sağlığı bilinmiyor",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "İsabet Oranı",
+ "import": "İçe Aktar",
"importError": "Dosya içe aktarılamadı",
"importResult": "{imported} içe aktarıldı, {skipped} atlandı",
- "key": "Key",
+ "key": "Anahtar",
"keyPlaceholder": "örneğin user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Bellek Kayıtları",
"next": "Sonraki",
- "noMemories": "No memories found",
+ "noMemories": "Bellek kaydı bulunamadı",
"pageInfo": "{totalPages} sayfanın {page} sayfası ({total} toplam)",
"pipelineError": "Boru hattı hatası",
"pipelineOk": "İşlem Hattı Tamam ({latencyMs}ms)",
@@ -4470,7 +4474,7 @@
"simulate": "Simüle et",
"resultsTitle": "{count} sonuç",
"resolutionTitle": "Arama çözümlemesi",
- "resolutionEmbedding": "Embedding",
+ "resolutionEmbedding": "Gömme",
"resolutionStore": "Vektör deposu",
"resolutionStrategy": "Kullanılan strateji",
"rerankApplied": "Uygulanan yeniden sıralama",
@@ -4481,7 +4485,7 @@
"errorFetch": "Önizleme alınamadı"
},
"previous": "Önceki",
- "procedural": "Procedural",
+ "procedural": "Prosedürel",
"qdrant": {
"title": "Qdrant (Vektör Deposu Seviye 2)",
"description": "Ölçeklenebilir anlamsal arama için isteğe bağlı Qdrant entegrasyonu",
@@ -4500,7 +4504,7 @@
"healthError": "Bağlantı hatası",
"saved": "Ayarlar kaydedildi",
"saveError": "Kaydedilemedi",
- "portLabel": "Port",
+ "portLabel": "Bağlantı Noktası",
"embeddingModelLabel": "Embedding Modeli",
"optional": "isteğe bağlı",
"apiKeyKeepPlaceholder": "Mevcut anahtarı korumak için boş bırakın",
@@ -4530,8 +4534,8 @@
},
"save": "Kaydet",
"saving": "Kaydediliyor...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Bellek kayıtlarında ara...",
+ "semantic": "Semantik",
"summarize": {
"title": "Eski bellekleri sıkıştır",
"noCandidates": "Sıkıştırmaya uygun bellek yok (kriter: >30 günlük).",
@@ -4543,8 +4547,8 @@
"playground": "Oyun Alanı",
"engine": "Motor"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Bellek Yönetimi",
+ "tokensUsed": "Kullanılan Tokenlar",
"tooltip": {
"totalEntries": "Bu API anahtarı için saklanan toplam bellek",
"tokensUsed": "Aktif bellekler tarafından kaplanan tahmini toplam token sayısı",
@@ -4554,15 +4558,15 @@
"procedural": "Asistanın izlemesi gereken prosedürler, iş akışları ve talimatlar",
"semantic": "Kavramlar, tercihler ve alan bilgisi"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "Toplam Kayıt",
+ "type": "Tür",
"memoryEnabled": "Bellek etkinleştirildi"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Yetenekler",
+ "description": "Yapay zekâ yeteneklerini yönetin ve izleyin",
+ "skillsTab": "Yetenekler",
+ "executionsTab": "Yürütmeler",
"selectSkillToInspect": "İncelemek için soldan bir yetenek seçin.",
"schemaTab": "Şema",
"handlerTab": "İşleyici",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "Testi çalıştır (yer tutucu)",
"setModeAria": "Modu {mode} olarak ayarla",
"uninstallSkill": "Yeteneği kaldır",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "Korumalı Alan",
+ "loading": "Yetenekler yükleniyor...",
+ "noSkills": "Yetenek bulunamadı",
+ "noExecutions": "Yürütme bulunamadı",
+ "enabled": "Etkin",
+ "disabled": "Devre dışı",
"delete": "Sil",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "Sürüm",
+ "tableDescription": "Açıklama",
+ "skill": "Yetenek",
+ "status": "Durum",
+ "duration": "Süre",
+ "time": "Zaman",
+ "sandboxConfig": "Korumalı Alan Yapılandırması",
+ "cpuLimit": "CPU Sınırı",
+ "cpuLimitDesc": "Yetenek başına maksimum yürütme süresi",
+ "memoryLimit": "Bellek Sınırı",
+ "memoryLimitDesc": "Maksimum bellek tahsisi",
+ "timeout": "Zaman Aşımı",
+ "timeoutDesc": "Yanıt için maksimum bekleme süresi",
+ "networkAccess": "Ağ Erişimi",
+ "networkAccessDesc": "Giden ağ isteklerine izin ver",
+ "mode": "Mod",
"q": "Q",
"filterSkillsPlaceholder": "Becerileri ada, açıklamaya veya etikete göre filtreleyin",
"allModes": "Tüm modlar",
@@ -4661,13 +4665,13 @@
"retry": "Yeniden dene",
"allOperational": "Tüm sistemler çalışır durumda",
"issuesDetected": "Sistem sorunları algılandı",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute hazır",
+ "healthVerdictActionRequired": "Tam işleyişi geri yüklemek için işlem gerekli",
+ "healthVerdictCoolingDown": "Son değişikliklerden sonra bekleme sürecinde",
+ "healthSubtitle": "Sistem sağlık kontrolü",
+ "advancedDiagnosticsTitle": "Gelişmiş tanılama",
+ "hide": "Gizle",
+ "show": "Göster",
"updatedAt": "Güncellendi {time}",
"latency": "Gecikme",
"latencyP50": "p50",
@@ -4717,11 +4721,11 @@
"resetting": "Sıfırlanıyor...",
"resetAll": "Tümünü Sıfırla",
"until": "{time} saatine kadar",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "Tükendi",
+ "learnedFromHeaders": "Üstbilgilerden öğrenildi",
+ "remainingOfLimit": "{remaining}/{limit} kaldı",
+ "throttleStatus": "Hız sınırlaması: {value}",
+ "lastHeaderUpdate": "Üstbilgi güncellemesi: {age}",
"databaseHealth": "Veritabanı Sağlığı",
"databaseHealthDescription": "Eski kota/alan adı satırlarını ve bozuk kombo referanslarını teşhis edin ve onarın.",
"status": "Durum",
@@ -4754,14 +4758,14 @@
"providerHealthMatrixDescription": "Devre kesiciler, bekleme süreleri, kilitlemeler ve günlüklerden alınan sağlayıcı × hesap × model durumları.",
"healthMatrixRange": "Sağlık matrisi aralığı",
"providerFilter": "Sağlayıcı filtresi",
- "onlyIssues": "Only issues",
- "refresh": "Refresh",
- "accounts": "Accounts",
- "models": "Models",
- "issues": "Issues",
- "loadingProviderHealthMatrix": "Loading provider health matrix...",
- "failedProviderHealthMatrix": "Failed to load Provider Health Matrix: {error}",
- "noProvidersMatchedFilters": "No providers matched the current filters.",
+ "onlyIssues": "Yalnızca sorunlar",
+ "refresh": "Yenile",
+ "accounts": "Hesaplar",
+ "models": "Modeller",
+ "issues": "Sorunlar",
+ "loadingProviderHealthMatrix": "Sağlayıcı sağlık matrisi yükleniyor...",
+ "failedProviderHealthMatrix": "Sağlayıcı Sağlık Matrisi yüklenemedi: {error}",
+ "noProvidersMatchedFilters": "Geçerli filtrelerle eşleşen sağlayıcı bulunamadı.",
"modelPillSummary": "{requests} istek · {successRate} başarı · {latency} ort.",
"modelLockoutSummary": "{reason} · {duration} kaldı",
"locked": "kilitli",
@@ -4884,28 +4888,28 @@
"previous": "Önceki",
"next": "Sonraki",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "Ayrıntıları Görüntüle",
+ "eventMetadata": "Olay Meta Verileri",
+ "eventPayload": "Olay Yükü",
+ "requestId": "İstek Kimliği",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
+ "offset": "Ofset",
+ "limit": "Sınır",
+ "status": "Durum",
+ "resourceType": "Kaynak Türü",
+ "totalEntries": "Toplam Kayıt",
+ "tab": "Sekme",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "Kapat",
+ "runningRequests": "Etkin İstekler",
+ "runningRequestsDesc": "Şu anda çalışmakta olan üst sağlayıcı isteklerinin gerçek zamanlı görünümü",
"clearAll": "Tümünü Temizle",
"confirmClearActiveRequests": "Tüm etkin istekler temizlensin mi?",
"model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "provider": "Sağlayıcı",
+ "account": "Hesap",
+ "elapsed": "Geçen Süre",
"activeStage": "Aşama",
"activeStageUnknown": "Henüz upstream'e gönderilmedi",
"activeStageRegistered": "Kayıtlı",
@@ -4915,38 +4919,38 @@
"activeStageRateLimitSlotAcquired": "Hız sınırı yuvası alındı",
"activeStageSendingToProvider": "Upstream'e gönderiliyor",
"activeStageProviderResponseStarted": "Upstream yanıtı başladı",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "Sayı",
+ "payloads": "Yükler",
+ "viewPayloads": "Görüntüle",
+ "activeCount": "{count} etkin",
+ "clientPayload": "İstemci İstek Yükü",
+ "upstreamPayload": "Üst Sağlayıcı Yükü",
+ "upstreamNotSentYet": "Henüz üst sağlayıcıya gönderilmedi",
+ "runningRequestDetailMeta": "Hesap: {account} — Geçen süre: {elapsed}",
+ "export": "Dışa Aktar",
+ "exporting": "Dışa aktarılıyor...",
+ "exportFailed": "Dışa aktarma başarısız oldu",
"cleanHistoryButton": "Geçmişi temizle",
"cleanHistoryTitle": "Günlük geçmişi temizlensin mi?",
"cleanHistoryMessage": "Bu işlem; DATA_DIR/call_logs altındaki tüm istek günlüğü satırlarını, eski ayrıntı satırlarını ve yerel artefakt dosyalarını kalıcı olarak temizler. Temizlikten sonra canlı sayfa yenilenecektir.",
"cleanHistoryConfirm": "Geçmişi temizle",
"cleanHistoryCancel": "İptal",
"cleanHistorySuccess": "{deleted} günlük girdisi, {deletedArtifacts} artefakt ve {deletedDetailedLogs} eski ayrıntı satırı temizlendi.",
- "cleanHistoryEmpty": "No request log history was found.",
- "cleanHistoryFailed": "Failed to clean log history.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "cleanHistoryEmpty": "İstek günlüğü geçmişi bulunamadı.",
+ "cleanHistoryFailed": "Günlük geçmişi temizlenemedi.",
+ "timeRange": "Zaman Aralığı",
+ "lastNHours": "Son {hours}",
+ "defaultRange": "varsayılan",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
- "filterByLevel": "Filter by log level",
- "searchPlaceholder": "Search logs…",
- "searchAria": "Search log entries",
- "disableAutoScroll": "Disable auto-scroll",
- "enableAutoScroll": "Enable auto-scroll",
- "autoScroll": "Auto-scroll",
+ "fetchFailed": "Günlükler alınamadı",
+ "copyFailed": "Günlük kaydı kopyalanamadı",
+ "copyLogEntry": "Günlük kaydını kopyala",
+ "filterByLevel": "Günlük düzeyine göre filtrele",
+ "searchPlaceholder": "Günlüklerde ara…",
+ "searchAria": "Günlük kayıtlarında ara",
+ "disableAutoScroll": "Otomatik kaydırmayı devre dışı bırak",
+ "enableAutoScroll": "Otomatik kaydırmayı etkinleştir",
+ "autoScroll": "Otomatik kaydırma",
"entryCount": "{count, plural, one {# kayıt} other {# kayıt}}",
"lastHour": "Son 1 saat",
"updatedAt": "Güncellendi {time}",
@@ -4983,9 +4987,9 @@
"multiProvider": "Çoklu Sağlayıcı",
"usageTracking": "Kullanım Takibi",
"securityDesc": "Kontrol panelini korumak için bir şifre belirle veya şimdilik atla.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ Parola olmadan kurulum sırasında sağlayıcı ekleyemezsiniz. Parola belirledikten sonra sağlayıcıları kontrol panelinden ekleyebilirsiniz.",
"providerDesc": "İlk AI sağlayıcını bağla. Daha sonra daha fazlasını ekleyebilirsin.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "Sağlayıcı eklemek için önce bir parola belirlemeniz gerekir. Lütfen güvenlik adımına geri dönüp bir parola belirleyin veya sağlayıcıları daha sonra kontrol panelinden ekleyin.",
"apiKeyRequired": "API Anahtarı (gerekli)",
"customUrlOptional": "Özel URL (isteğe bağlı)",
"testDesc": "Sağlayıcı bağlantının çalıştığını doğrulayalım.",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "İçe aktarılıyor…",
"importFromFileImport": "{count} sağlayıcıyı içe aktar",
"importFromFileResult": "{success} sağlayıcı içe aktarıldı ({failed} başarısız)",
+ "importFromFileDownloadTemplate": "CSV şablonunu indir",
+ "importFromFileMoreErrors": "+{count} tane daha",
+ "importFromFileSchemaHint": "CSV sütunları konuma dayalıdır: provider, name, apiKey, baseUrl (isteğe bağlı), priority (isteğe bağlı). provider sütunu, mevcut bir yönetilen sağlayıcı kimliği veya önceden kaydedilmiş OpenAI/Anthropic uyumlu bir düğüm kimliği olmalıdır. Bu içe aktarma işlemi yeni uç nokta düğümleri oluşturmaz.",
"adaptaTutorial": {
"title": "Adapta Web'e nasıl bağlanılır",
"introPrefix": "Adapta, Clerk aracılığıyla kimlik doğrulaması yapar. Token",
@@ -5161,20 +5168,20 @@
"modelsHiddenCount": "{count} gizli",
"warningCount": "{count} Uyarı",
"noConnections": "Bağlantı yok",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "expiredBadge": "Süresi Dolmuş",
+ "expiringSoonBadge": "Süresi Yakında Dolacak",
"freeTier": "Ücretsiz Katman",
"freeTierAvailable": "Ücretsiz katman mevcut",
"hasFreeTooltip": "Ücretsiz katman mevcut",
"noAuthLabel": "Kimlik Doğrulama Yok",
"noAuthProviders": "Kimlik Doğrulamasız Sağlayıcılar",
- "upstreamProxyLabel": "Upstream Proxy",
+ "upstreamProxyLabel": "Yukarı Akış Proxy'si",
"freeAggregated": "Ücretsiz katmanı olan tüm sağlayıcılar (kendi yerel kategorilerinde de gösterilir)",
"deprecated": "Kullanımdan kaldırıldı",
"deprecatedProvider": "Bu sağlayıcı kullanımdan kaldırıldı",
"riskNotice": {
"title": "Devam etmeden önce",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Kullanım uyarıları",
"tooltip": "Kullanım uyarıları olan sağlayıcı — ayrıntılar için tıklayın",
"oauth": "Bu sağlayıcı, proxy/yönlendirici kullanımı için yetkilendirilmemiş resmi ürün oturumunuzu/OAuth'unuzu kullanır. Yoğun otonom ajan kullanımını (OpenCloud tarzı, uzun çok adımlı akışlar, büyük toplu işlemler) önermiyoruz — üst sağlayıcı hesabı kısıtlayarak veya yasaklayarak tepki verebilir. Kullanım riski size aittir.",
"webCookie": "Bu sağlayıcı, web oturumu çerezleriniz aracılığıyla kimlik doğrulaması yapar. Üst servis oturumu istediği zaman geçersiz kılabilir ve tekrar giriş yapmanızı gerektirebilir. Uzun süreli gözetimsiz işlemler için önerilmez. Kullanım riski size aittir.",
@@ -5184,9 +5191,9 @@
"cancel": "İptal"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} bağlantı işaretlendi — yakın zamanda en fazla {maxFailures} hata oluştu{lastFailureSuffix}. Bağlantı durumunu görüntülemek için tıklayın.",
+ "lastFailureSuffix": "(son hata {time})",
+ "ariaLabel": "Bağlantı durumu ayrıntılarını görüntüle, {count} uyarı"
},
"disabled": "Devre dışı",
"enableProvider": "Sağlayıcıyı etkinleştir",
@@ -5221,7 +5228,7 @@
"failedCreate": "Sağlayıcı oluşturulamadı",
"errorOccurred": "Bir hata oluştu. Lütfen tekrar deneyin.",
"modelStatus": "Model Durumu",
- "showConfiguredOnly": "Configured only",
+ "showConfiguredOnly": "Yalnızca yapılandırılanlar",
"allModelsOperational": "Tüm modeller çalışır durumda",
"modelsWithIssues": "{count} modelde sorun var",
"allModelsNormal": "Tüm modeller normal şekilde yanıt veriyor.",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "Simge URL'si",
"iconUrlHint": "İsteğe bağlı. Bu sağlayıcının simgesi olarak gösterilen görsel URL'si.",
"iconUrlInvalid": "Geçersiz simge URL'si. http(s):// veya data:image/*;base64 URL'si kullanın.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Günlük kota sıfırlama saat dilimi",
+ "dailyQuotaResetTimezoneHint": "Yukarı akış X-RateLimit-Reset değerini sağlamadığında kullanılan isteğe bağlı IANA saat dilimi. Kısa bir bekleme süresini korumak için boş bırakın.",
+ "dailyQuotaResetHourLabel": "Günlük kota sıfırlama saati",
+ "dailyQuotaResetHourHint": "Yukarıdaki saat diliminde 0-23 arası yerel saat. Boş bırakılırsa düğüm düzeyinde saat kullanılmaz.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "Sağlayıcı bulunamadı",
"deleteConnectionConfirm": "Bu bağlantı silinsin mi?",
"deleteConnectionConfirmNamed": "{name} öğesini silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Seçilenleri Sil ({count})",
+ "batchDeleteConfirm": "{count} bağlantı silinsin mi? Bu işlem geri alınamaz.",
+ "batchDeleteSuccess": "{count} bağlantı silindi",
"batchActivateSelected": "Etkinleştir",
"batchDeactivateSelected": "Devre dışı bırak",
"batchRetestSelected": "Yeniden test et",
@@ -5288,7 +5295,7 @@
"filterError": "Hata",
"filterBanned": "Yasaklandı",
"filterCreditsExhausted": "Krediler tükendi",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Hesaplarda ara…",
"noFilteredConnections": "Mevcut filtreyle eşleşen bağlantı yok.",
"failedSetAlias": "Takma ad ayarlanamadı",
"setAliasSuccess": "{alias} takma adı ayarlandı",
@@ -5301,14 +5308,14 @@
"openaiCompatibleDetails": "OpenAI Uyumlu Ayrıntılar",
"messagesApi": "Mesajlar API'si",
"responsesApi": "Yanıtlar API'si",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "Gömmeler",
+ "audioTranscriptions": "Ses Transkripsiyonları",
+ "audioSpeech": "Sesli Konuşma",
+ "imagesGenerations": "Görsel Oluşturma",
"chatCompletions": "Sohbet Tamamlamaları",
"importingModels": "İçe aktarılıyor...",
"importFromModels": "/models'ten içe aktar",
- "modelsImported": "{count} models imported",
+ "modelsImported": "{count} model içe aktarıldı",
"allModelsAlreadyImported": "Tüm modeller zaten içe aktarıldı",
"noNewModelsToImport": "İçe aktarılacak yeni model yok — tüm modeller zaten kayıt defterinde veya özel modeller listesinde",
"skippingExistingModels": "{count} mevcut model atlanıyor",
@@ -5336,7 +5343,7 @@
"clearAllModelsFailed": "Modeller temizlenemedi",
"addConnectionToImport": "İçe aktarmayı etkinleştirmek için bir bağlantı ekleyin.",
"noModelsConfigured": "Yapılandırılmış model yok",
- "connectionCount": "{count} connection(s)",
+ "connectionCount": "{count} bağlantı",
"fetchingModels": "Mevcut modeller getiriliyor...",
"failedFetchModels": "Modeller getirilemedi",
"noFreeModelsFound": "Bu sağlayıcı için ücretsiz model bulunamadı — hiçbir şey içe aktarılmadı.",
@@ -5346,13 +5353,13 @@
"importFailed": "İçe aktarma başarısız oldu",
"noNewModelsAdded": "Yeni model eklenmedi.",
"adding": "Ekleniyor...",
- "close": "Close",
+ "close": "Kapat",
"importingModelsTitle": "Modelleri İçe Aktarma",
"copyModel": "Modeli kopyala",
"filterModels": "Modelleri filtrele…",
"testAllRateLimited": "İstek sınırına ulaşıldı, erken durduruldu",
"hideFailedAuto": "Başarısız modelleri otomatik gizle",
- "selectAllModels": "Select all",
+ "selectAllModels": "Tümünü seç",
"hideAllModels": "Tümünü gizle",
"modelsActive": "etkin",
"showModel": "Modeli göster",
@@ -5382,8 +5389,8 @@
"bulkAddFormatHint": "Her satıra bir anahtar. Format: name|apiKey veya sadece apiKey (dizine göre otomatik olarak adlandırılır).",
"bulkValidateKeys": "Kaydetmeden önce her anahtarı doğrulayın (daha yavaş)",
"bulkAddAllKeys": "Tüm Anahtarları Ekle",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {# anahtar eklendi} other {# anahtar eklendi}}",
+ "bulkFailedCount": "{count, plural, one {# başarısız} other {# başarısız}}",
"optional": "İsteğe bağlı",
"anthropicCompatibleName": "Anthropic Uyumlu",
"openaiCompatibleName": "OpenAI Uyumlu",
@@ -5415,11 +5422,11 @@
"configured": "yapılandırıldı",
"providerProxyConfigureHint": "Bu sağlayıcının tüm bağlantıları için proxy'yi yapılandırın",
"providerProxy": "Sağlayıcı Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": "env dosyasını onar",
+ "repairEnvWorking": "Onarılıyor...",
+ "repairEnvHint": "Mevcut değerlerin üzerine yazmadan eksik OAuth varsayılanlarını .env dosyasına geri yükleyin.",
+ "repairEnvSuccess": "OAuth varsayılanları geri yüklendi",
+ "repairEnvFailed": ".env onarılamadı",
"noConnectionsYet": "Henüz bağlantı yok",
"addFirstConnectionHint": "Başlamak için ilk bağlantınızı ekleyin",
"addConnection": "Bağlantı Ekle",
@@ -5471,9 +5478,9 @@
"reauthenticateConnection": "Bu bağlantıyı yeniden kimlik doğrula",
"proxyConfig": "Proxy ayarları",
"aliasExistsAlert": "\"{alias}\" takma adı zaten mevcut. Lütfen farklı bir model kullanın veya mevcut takma adı düzenleyin.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "takma ad",
+ "clickToSetAlias": "Takma ad belirlemek için tıklayın",
+ "clickToEditAlias": "Takma ad: {alias} (düzenlemek için tıklayın)",
"openRouterAnyModelHint": "OpenRouter her modeli destekler. Hızlı erişim için modeller ekleyin ve takma adlar oluşturun.",
"modelIdFromOpenRouter": "Model Kimliği (OpenRouter'dan)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
@@ -5530,18 +5537,18 @@
"interceptFetchHint": "Yerel web_fetch araç çağrılarını OmniRoute'un /v1/web/fetch uç noktasına yeniden yazar.",
"interceptionLoadError": "Yakalama ayarları yüklenemedi: {error}",
"interceptionSaveError": "Yakalama ayarları kaydedilemedi: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
+ "ccAliasSectionTitle": "Claude Code'da göster (claude/…)",
+ "ccAliasSectionHint": "Bu sağlayıcının modellerini claude/<provider>/<model> yansıtma kimlikleri altında duyurarak Claude Code'un ağ geçidi model keşfinde listelenmelerini sağlayın. Varsayılan olarak kapalıdır — etkinleştirilmesi tüm istemciler için katalog girdilerini iki katına çıkarır.",
+ "ccAliasProviderLevelLabel": "Sağlayıcı varsayılanı",
+ "ccAliasModelOverridesLabel": "Modele özgü geçersiz kılmalar",
+ "ccAliasModelOverrideAriaLabel": "{modelId} için geçersiz kılma",
+ "ccAliasStateInherit": "Devral",
+ "ccAliasStateOn": "Açık",
+ "ccAliasStateOff": "Kapalı",
+ "ccAliasAddModelPlaceholder": "Model kimliği (ör. gpt-4o)",
+ "ccAliasAddModelButton": "Geçersiz kılma ekle",
+ "ccAliasLoadError": "Keşif takma adı ayarları yüklenemedi: {error}",
+ "ccAliasSaveError": "Keşif takma adı ayarı kaydedilemedi: {error}",
"compatUpstreamHeadersLabel": "Ek yukarı akış başlıkları",
"compatUpstreamHeadersHint": "Yüksek ayrıcalıklı ayar: sağlayıcı API kimlik bilgilerini düzenlemekle aynı güven düzeyine sahiptir; yalnızca güvenilir yöneticiler kullanmalıdır. OmniRoute, sağlayıcı API anahtarından kimlik doğrulama başlığını ekledikten sonra bu başlıklar birleştirilir. Özel bir başlık mevcut bir başlıkla aynı adı kullanıyorsa (ör. Authorization), verdiğiniz değer otomatik oluşturulan başlığın (Bearer token dahil) tamamının yerini alır; yukarı akış yalnızca sizin yazdığınız değeri görür. Hatalı yapılandırma 401 hatalarına veya bozuk yukarı akış kimlik doğrulamasına yol açabilir. Her başlık için bir satır kullanın (ör. bazı geçitler için ek Authentication başlığı). Önizlemek için değerin üzerine gelin veya odaklayın. Bu panelde bulanıklaştırma, dışarı tıklama veya paneli kapatma sırasında otomatik kaydedilir.",
"compatUpstreamHeaderName": "Başlık adı",
@@ -5588,9 +5595,9 @@
"email": "E-posta",
"healthCheckMinutes": "Sağlık Kontrolü (dk)",
"healthCheckHint": "Proaktif jeton yenileme aralığı. 0 = devre dışı.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
+ "deselectAllModels": "Tüm seçimleri kaldır",
+ "modelsActiveCount": "{active}/{total} etkin",
+ "noModelsMatch": "\"{filter}\" ile eşleşen model yok",
"groupLabel": "Ortam",
"groupPlaceholder": "örneğin eKaizen, Kişisel",
"failedTestConnection": "Bağlantı testi başarısız oldu",
@@ -5606,8 +5613,8 @@
"tokenRefreshed": "Jeton başarıyla yenilendi",
"tokenRefreshFailed": "Jeton yenileme başarısız oldu",
"cursorSessionUnchanged": "Oturum zaten geçerli",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Kimlik doğrulamayı uygula",
+ "exportCodexAuthFile": "Kimlik doğrulamayı dışa aktar",
"applyClaudeAuthLocal": "Kimlik doğrulamayı uygula",
"exportClaudeAuthFile": "Dışa aktarma kimlik doğrulaması",
"importClaudeAuth": "İçe aktarma kimlik doğrulaması",
@@ -5741,58 +5748,58 @@
"modelsPathHint": "Doğrulama için özel model yolu (ör. /v4/models)",
"clientIdentityLabel": "İstemci Kimliği",
"clientIdentityHint": "İsteğe bağlı. Bunu bekleyen uyumlu ağ geçitleri için bilinen bir CLI ile eşleşen istemci parmak izi başlıklarını (örn. User-Agent) ekler.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "Devre dışı bırakıldı (Manuel)",
+ "statusBanned": "Yasaklandı / Korumalı Alan İhlali",
+ "statusCreditsExhausted": "Yetersiz Bakiye / Kota Tükendi",
+ "showEmails": "Tüm e-posta adreslerini göster",
+ "hideEmails": "Tüm e-posta adreslerini gizle",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Başka bir API anahtarı ekleyin veya birden fazla anahtar yapıştırın",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "Toplayıcı Ağ Geçitleri",
"enterpriseCloud": "Kurumsal ve Bulut",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "API Biçimi Etiketi",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "API Bölgesi: Çin",
+ "apiRegionHint": "API Bölgesi İpucu",
+ "apiRegionInternational": "API Bölgesi: Uluslararası",
+ "apiRegionLabel": "API Bölgesi Etiketi",
+ "apikey": "API anahtarı",
+ "audio": "Ses",
+ "audioProvidersHeading": "Ses Sağlayıcıları Başlığı",
"cloudAgentProviders": "Bulut Aracısı Sağlayıcıları",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Kısa Ses Etiketi",
+ "azureOpenAiBaseUrlHint": "Azure Open AI Temel URL İpucu",
+ "bailianBaseUrlHint": "Bailian Temel URL İpucu",
+ "claudeWebCookieHint": "claude.ai'i açın → DevTools → Application → Cookies → claude.ai yolunu izleyin ve 'sessionKey' değerini kopyalayın. Cloudflare için ayrıca cf_clearance, __cf_bm ve _cfuvid gereklidir.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web Çerez İpucu",
+ "blackboxWebCookiePlaceholder": "Blackbox Web Çerez Yer Tutucusu",
"t3ChatWebCookieHint": "t3.chat → DevTools → Uygulama → Yerel Depolama → https://t3.chat'i açın, 'convex-session-id'yi kopyalayın. Ardından DevTools → Ağ'ı açın ve herhangi bir sohbet isteğindeki Çerez başlığının tamamını kopyalayın. Her iki değeri de aşağıdaki alanlara yapıştırın.",
"t3ChatWebCookiePlaceholder": "dışbükey-oturum-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web Çerez İpucu",
"blockClaudeExtraUsageDescription": "Etkinleştirildiğinde, OmniRoute bu Claude bağlantısını, kullanım API'si kuyrukta ek kullanım bildirdiği anda kullanılamaz olarak işaretler, böylece yedek bağlantıya geçilir ve ödeyerek kullanım ek faturalandırmasına devam edilmez.",
"blockClaudeExtraUsageLabel": "Ekstra Claude kullanımını engelleyin",
"disableCoolingDescription": "Geçici bekleme süresini atlayın; böylece bu bağlantı kurtarılabilir hatalardan sonra bile uygun kalmaya devam eder (yasaklandı/süresi doldu gibi nihai durumlar yine de geçerlidir).",
"disableCoolingLabel": "Bu bağlantı için bekleme süresini devre dışı bırak",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 anahtar eklendi} other {# anahtar eklendi}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 yinelenen atlandı} other {# yinelenen atlandı}}",
+ "bulkPasteHint": "Her satıra bir API anahtarı yapıştırın. Boş satırlar yok sayılır ve yinelenen anahtarlar atlanır.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Gizli Claude düşünme akışları gerektiren CC Compatible üst servisleri için redact-thinking beta üst bilgisini ekler.",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking betasını etkinleştir",
+ "ccCompatibleSummarizeThinkingDescription": "Desteklenen Claude modellerinin görünür düşünme farklarını akış halinde iletebilmesi için CC Compatible düşünme isteklerine `display: \"summarized\"` ekler.",
+ "ccCompatibleSummarizeThinkingLabel": "Özetlenmiş düşünme gösterimini etkinleştir",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,16 +5811,16 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "Kullanılabilir olduğunda Codex istekleri için öncelikli hizmet katmanını kullanır.",
+ "codexFastServiceTierLabel": "Codex hızlı hizmet katmanı",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
+ "compatUpstreamHeaderNamePlaceholder": "Uyumlu Üst Servis Üst Bilgisi Adı Yer Tutucusu",
+ "compatUpstreamHeaderValuePlaceholder": "Uyumlu Üst Servis Üst Bilgisi Değeri Yer Tutucusu",
+ "compatible": "Uyumlu",
+ "configuredCount": "Yapılandırılan Sayı",
+ "consoleApiKeyOracleHint": "Konsol API Anahtarı Oracle İpucu",
+ "consoleApiKeyOracleLabel": "Konsol API Anahtarı Oracle Etiketi",
+ "consoleApiKeyOraclePlaceholder": "Konsol API Anahtarı Oracle Yer Tutucusu",
"newApiUserIdLabel": "New-API Kullanıcı Kimliği",
"newApiUserIdPlaceholder": "örn. 12345",
"newApiUserIdHint": "AgentRouter'ın New-Api-User başlık değeri, kota bakiyesini almak için konsol API anahtarıyla birlikte kullanılır.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "Yeni-API / Tek-API / Sub2API toplayıcı uyumlu düğümler için denge tespiti etkinleştir",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Özel User Agent İpucu",
+ "customUserAgentLabel": "Özel User Agent Etiketi",
+ "databricksBaseUrlHint": "Databricks Temel URL İpucu",
+ "defaultThinkingStrengthHint": "Bir istekte akıl yürütme çabası belirtilmediğinde kullanılır.",
+ "defaultThinkingStrengthLabel": "Varsayılan düşünme gücü",
+ "deleteAllExtraApiKeys": "Tümünü sil",
+ "excludedModelsHint": "Hariç Tutulan Modeller İpucu",
+ "excludedModelsLabel": "Hariç Tutulan Modeller Etiketi",
+ "excludedModelsPlaceholder": "Hariç Tutulan Modeller Yer Tutucusu",
+ "expirationBannerExpired": "Süre Sonu Başlığı: Süresi Doldu",
+ "expirationBannerExpiredDesc": "Süre Sonu Başlığı Süresi Doldu Açıklaması",
+ "expirationBannerExpiringSoon": "Süre Sonu Başlığı: Süresi Yakında Dolacak",
+ "expirationBannerExpiringSoonDesc": "Süre Sonu Başlığı Süresi Yakında Dolacak Açıklaması",
+ "extraApiKeyMasked": "Anahtar {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Ek API Anahtarları İpucu",
+ "extraApiKeysLabel": "Ek API Anahtarları Etiketi",
+ "apiKeyHealthLabel": "API Anahtarı Durumu",
+ "apiKeyStatusActive": "Etkin",
+ "apiKeyStatusWarning": "Uyarı ({count} başarısızlık)",
+ "apiKeyStatusInvalid": "Geçersiz",
+ "primaryKey": "Birincil Anahtar",
+ "apiKeyInvalidAlert": "{connections} bağlantılarındaki kimlik doğrulama hataları nedeniyle {count} API anahtarı geçersiz olarak işaretlendi. Bu anahtarlar rotasyonda atlanacak. İncelemek için tıklayın.",
+ "apiKeyInvalidAlertTitle": "API Anahtarı Durum Uyarısı",
+ "apiKeyWarningAlert": "{connections} bağlantılarındaki yüksek hata oranı nedeniyle {count} API anahtarı uyarı durumunda. Rotasyon sorunlarını önlemek için inceleyin.",
+ "apiKeyWarningAlertTitle": "API Anahtarı Uyarısı",
+ "googlePseInfo": "Google Pse Bilgisi",
"antigravityProjectIdHint": "Yerçekimine Karşı Bulut Kodu istekleri için isteğe bağlı geçersiz kılma. Google OAuth sırasında keşfedilen projeyi kullanmak için boş bırakın.",
"antigravityClientProfileLabel": "İstemci profili",
"antigravityClientProfileHint": "OmniRoute'un API'ye hangi Antigravity istemci kimliğini sunacağını seçin.",
@@ -5861,18 +5868,18 @@
"tierFast": "Hızlı",
"antigravityProjectIdLabel": "Google Cloud Proje Kimliği",
"antigravityProjectIdPlaceholder": "benim-gcp-proje-kimliğim",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok Web Çerezi Yer Tutucusu",
+ "herokuBaseUrlHint": "Heroku Temel URL İpucu",
+ "hideEmail": "E-postayı Gizle",
+ "imageProviders": "Görsel Sağlayıcıları",
"videoProviders": "Video Oluşturma",
"embeddingRerankProviders": "Yerleştirmeler ve Yeniden Sıralama",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "Görseller Kısa Etiketi",
+ "llmProviders": "LLM Sağlayıcıları",
+ "localProviderApiKeyOptionalHint": "Yerel Sağlayıcı API Anahtarı İsteğe Bağlı İpucu",
+ "localProviderBaseUrlHint": "Yerel Sağlayıcı Temel URL İpucu",
+ "localProviders": "Yerel Sağlayıcılar",
+ "maxConcurrentWholeNumberError": "Maksimum Eşzamanlılık Tam Sayı Olmalıdır Hatası",
"m365TierLabel": "Copilot katmanı",
"m365TierHint": "Bu bağlantının hangi Microsoft 365 Copilot yüzeyini kullanacağını seçin. Bireysel, varsayılan tüketici BizChat'idir; Eğitim ve Kurumsal (iş) kendi kiracı yüzeylerini tercih eder.",
"m365TierIndividualOption": "Bireysel (varsayılan)",
@@ -5884,24 +5891,24 @@
"tierOverrideCheap": "Ucuz",
"tierOverridePremium": "Premium",
"tierOverrideHelpText": "OmniRoute'un model fiyatlandırmasından çıkarmasına izin vermek yerine bu sağlayıcıyı bir yönlendirme katmanına sabitleyin.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark Web Çerezi İpucu",
+ "museSparkWebCookiePlaceholder": "Muse Spark Web Çerezi Yer Tutucusu",
+ "oauth": "OAuth",
+ "openCliTools": "CLI Araçlarını Aç",
+ "openSettings": "Ayarları Aç",
+ "openaiResponsesStoreDescription": "Uyumlu Responses API isteklerinin depolanan yanıt durumunu korumasına izin verin.",
+ "openaiResponsesStoreLabel": "OpenAI Responses deposu",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search Paylaşılan Anahtar Bilgisi",
+ "perplexityWebCookieHint": "Perplexity Web Çerezi İpucu",
+ "perplexityWebCookiePlaceholder": "Perplexity Web Çerezi Yer Tutucusu",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Hız Sınırı Geçersiz Kılmaları",
"rateLimitOverridesMaxConcurrentHint": "Bu bağlantı için maksimum eşzamanlı istek geçersiz kılma değeri. Hesap düzeyindeki sınırı geçersiz kılar.",
"rateLimitOverridesMaxConcurrentLabel": "Maksimum Eşzamanlı (Hız Sınırı)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Bir isteğin başarısız olmadan önce hız sınırı yuvası için bekleyebileceği maksimum süre (ms). Yalnızca bu bağlantı için genel Dayanıklılık ayarını geçersiz kılar.",
+ "rateLimitOverridesMaxWaitMsLabel": "Maksimum Kuyruk Bekleme Süresi (ms)",
"rateLimitOverridesMinTimeHint": "İstekler arasındaki minimum süre (ms). Varsayılan hız sınırlayıcı gecikmesini geçersiz kılar.",
"rateLimitOverridesMinTimeLabel": "Min. Aralık (ms)",
"rateLimitOverridesRpdHint": "Bu bağlantı için günlük maksimum istek sayısı. Sağlayıcı varsayılanını geçersiz kılar.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (Token/gün)",
"rateLimitOverridesTpmHint": "Bu bağlantı için dakika başına maksimum token sayısı. Sağlayıcı varsayılanını geçersiz kılar.",
"rateLimitOverridesTpmLabel": "TPM (Token/dak)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "refreshOauthTokenTitle": "OAuth Belirtecini Yenile Başlığı",
+ "regionHint": "Bölge İpucu",
+ "regionLabel": "Bölge Etiketi",
+ "removeThisKey": "Bu Anahtarı Kaldır",
+ "routingTagsHint": "Yönlendirme Etiketleri İpucu",
+ "routingTagsLabel": "Yönlendirme Etiketleri Etiketi",
+ "routingTagsPlaceholder": "Yönlendirme Etiketleri Yer Tutucusu",
+ "search": "Ara",
+ "searchEngineIdHint": "Arama Motoru Kimliği İpucu",
+ "searchEngineIdLabel": "Arama Motoru Kimliği Etiketi",
+ "searchEngineIdRequired": "Arama Motoru Kimliği Gerekli",
+ "searchProvider": "Arama Sağlayıcısı",
+ "searchProviderDesc": "Arama Sağlayıcısı Açıklaması",
"searchProviders": "Sağlayıcı ara...",
"searchByModel": "Modele göre ara…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Arama Sağlayıcıları Başlığı",
+ "searxngBaseUrlHint": "Searxng Temel URL İpucu",
+ "searxngInfo": "Searxng Bilgisi",
+ "sessionCookieLabel": "Oturum Çerezi Etiketi",
+ "showEmail": "E-postayı Göster",
+ "snowflakeBaseUrlHint": "Snowflake Temel URL İpucu",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Etiket Grubu İpucu",
+ "tagGroupLabel": "Etiket Grubu Etiketi",
+ "tagGroupPlaceholder": "Etiket Grubu Yer Tutucusu",
+ "testModel": "Modeli Test Et",
+ "testingModel": "Model Test Ediliyor",
"modelTestQuotaTooltip": "Kota doldu — yarın sıfırlanacak veya yenileme gerekiyor",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Jetonun Süresi Doldu Rozeti",
+ "tokenExpiredTitle": "Jetonun Süresi Doldu Başlığı",
+ "tokenExpiresSoonTitle": "Jetonun Süresi Yakında Dolacak Başlığı",
+ "tokenShort": "Kısa Jeton",
+ "totalKeysRotating": "{count, plural, one {1 anahtar dönüşümlü kullanılıyor} other {# anahtar dönüşümlü kullanılıyor}}",
+ "unhideModel": "Modeli Göster",
+ "upstreamProxyProviders": "Üst Akış Proxy Sağlayıcıları",
"validationModelIdHint": "API anahtarını doğrulamak için kullanılan model. Sağlayıcının ilk kullanılabilir modelini kullanmak için boş bırakın.",
"validationModelIdLabel": "Doğrulama modeli",
"validationModelIdPlaceholder": "ör. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Service Account JSON'unuzu ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) veya bir OAuth access_token yapıştırın",
+ "webCookieProviders": "Web Çerezi Sağlayıcıları",
+ "weeklyShort": "Haftalık Kısa",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Temel URL İpucu",
"globalCodexServiceMode": "Genel Codex hizmet modu",
"connect": "Bağlan",
"manualApiKey": "Manuel API anahtarı",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Zed IDE tarafından işletim sistemi anahtar zincirinde saklanan yapay zeka sağlayıcı kimlik bilgilerini (OpenAI, Anthropic, Google, Mistral, xAI) keşfedin ve bunları bağlantı olarak içe aktarın. Zed IDE bu makinede yüklü olmalıdır.",
"zedImportButton": "Zed'den İçe Aktar",
"zedImportFailed": "Zed içe aktarma başarısız oldu",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed İçe Aktarma İpucu",
+ "zedImportNetworkError": "Zed İçe Aktarma Ağ Hatası",
+ "zedImportNone": "İçe Aktarılacak Zed Verisi Yok",
"zedImportSuccess": "{providers} sağlayıcı(ları) için Zed'den {credentials} kimlik bilgisi(lerini) içe aktarıldı",
"zedImporting": "İçe Aktarılıyor…",
"zedNoCredentials": "Anahtar zincirinde hiçbir Zed kimlik bilgisi bulunamadı",
@@ -6028,7 +6035,7 @@
"claudeImportEntryName": "kayıt {number}",
"claudeImportParseError": "ayrıştırma hatası",
"claudeImportNoValidEntries": "İçe aktarılacak geçerli kayıt yok",
- "webFetch": "Web Fetch",
+ "webFetch": "Web'den Getir",
"webFetchTooltip": "Web URL'lerinden içerik çıkaran sağlayıcılar (HTML → Markdown, kazıma, ekran görüntüsü)",
"webFetchProvidersHeading": "Web Fetch Sağlayıcıları",
"compatibleProvidersDesc": "Barındırdığınız veya yapılandırdığınız OpenAI uyumlu ve Anthropic uyumlu uç noktalar. Herhangi bir OpenAI SDK'sını kendi URL'nize yönlendirin ve istekleri buraya iletin.",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5 dahil 40'tan fazla model için indirimli API proxy'si. API anahtarınızı https://freeaiapikey.com/dashboard adresinden alın. Temel URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "https://freemodel.dev adresinden 300$ ücretsiz API kredisi alın — ödeme bilgisi gerekmez. OpenAI uyumlu uç nokta. GPT-5.4 ve GPT-5.5 modelleri mevcuttur.",
"friendliai": "Sunucusuz çıkarım için ücretsiz katman — kredi kartı gerekmez",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio üzerinden ücretsiz katman; model başına kotalar artık yayımlanmıyor (AI Studio'daki kota sayfasını kontrol edin) — kredi kartı gerekmez.",
"gigachat": "GigaChat'i (Sber) bir API anahtarı ile bağlayın.",
"gitlab": "Genel Code Suggestions API'si için GitLab kişisel erişim belirteci. gitlab.com kullanmadığınızda barındırılan bir temel URL yapılandırın.",
"gitlawb-gmi": "API anahtarınızı Gitlawb Opengateway panelinden alın.",
@@ -6180,7 +6187,7 @@
"glm-cn": "GLM Coding'i (Çin) bir API anahtarı ile bağlayın.",
"glmt": "Daha yüksek token bütçesi, düşünme etkinleştirilmiş ve daha uzun zaman aşımına sahip önceden ayarlanmış GLM profili.",
"getgoapi": "GoAPI'yi bir API anahtarı ile bağlayın.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Ücretsiz plan: model başına sınırlar (sohbet modeli başına günde 200 bin jeton; RPM/RPD için console.groq.com/docs/rate-limits adresine bakın) — kayıtlı ödeme yöntemi gerekmez.",
"haiper": "API anahtarını haiper.ai/haiper-api adresinden alın",
"heroku": "Heroku AI'ı bir API anahtarı ile bağlayın.",
"hcnsec": "API anahtarını api.hcnsec.cn adresinden alın",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai adresinde bir API anahtarı oluşturun, ardından buraya Bearer token olarak yapıştırın. OpenAI uyumlu uç nokta, canlı bir /v1/models kataloğu ile birlikte https://router.requesty.ai/v1 adresindedir.",
"runwayml": "Runway video üretimi görev tabanlıdır. OmniRoute, metinden videoya veya görselden videoya işleri gönderir, /v1/tasks/[id] uç noktasını sorgular ve tamamlanan video çıktılarını OpenAI benzeri /v1/videos/generations yanıtına normalleştirir.",
"sambanova": "Kayıt olunduğunda $5 ücretsiz kredi (30 gün geçerli), kredi kartı gerekmez",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.cc adresinde bir API anahtarı oluşturun, ardından buraya Bearer jetonu olarak yapıştırın. OpenAI uyumlu temel URL: https://seekai.cc/v1.",
"sap": "Model keşfi, AI_API_URL üzerindeki /v2/lm/scenarios/foundation-models/models yolunu kullanır. Sohbet istekleri deploymentUrl/chat/completions yolunu kullanır ve AI-Resource-Group gerektirir.",
"sarvam": "Sarvam AI, OpenAI ile uyumludur ve /v1 üzerinde çalışır. OmniRoute, /v1/models'ı sorgular ve sohbet trafiğini /v1/chat/completions'a yönlendirir. Modeller, Hint dilleri için ayarlanmıştır.",
"scaleway": "Yeni hesaplar için 1M ücretsiz token — AB/GDPR uyumlu (Paris), Qwen3 235B & Llama 70B",
@@ -6305,12 +6312,12 @@
"claude": "Mevcut OAuth akışıyla Claude Code'u bağlayın.",
"cline": "Mevcut OAuth akışıyla Cline'ı bağlayın.",
"cursor": "Mevcut OAuth akışıyla Cursor IDE'yi bağlayın.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "Cursor'ı cursor.com/dashboard/api adresinden alınan bir kullanıcı API anahtarıyla (crsr_...) bağlayın; IDE oturumu gerekmez.",
"github": "Mevcut OAuth akışıyla GitHub Copilot'ı bağlayın.",
"gitlab-duo": "ai_features + read_user kapsamlarına sahip OAuth uygulaması. Bu OmniRoute örneğinde GITLAB_DUO_OAUTH_CLIENT_ID ve isteğe bağlı olarak GITLAB_DUO_OAUTH_CLIENT_SECRET yapılandırın.",
"kilocode": "Mevcut OAuth akışıyla Kilo Code'u bağlayın.",
"kimi-coding": "Mevcut OAuth akışıyla Kimi Coding'i bağlayın.",
- "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.",
+ "kiro": "Ücretsiz katman: ayda 50 kredi (~25 bin–100 bin jeton). ⚠️ Kiro Kullanım Koşulları, üçüncü taraf proxy/çalıştırma düzeneği kullanımını yasaklar.",
"codex": "Mevcut OAuth akışı ile OpenAI Codex'i bağlayın.",
"qwen": "Mevcut OAuth akışı ile Qwen Code'u bağlayın.",
"github-models": "github.com/settings/tokens adresinde 'models: read' kapsamına sahip bir GitHub PAT oluşturun"
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "Gerekli kimlik bilgilerini sağlayıcının kendi alanından kopyalayın. Çerezler için yalnızca Cookie başlık değerini kopyalayın ve Cookie:'yi çıkartın.",
"webSessionGuideStep3Manual": "Manuel yol: tarayıcı geliştirici araçlarını açın (F12 → Ağ), sayfayı yenileyin, kimlik doğrulamalı bir isteği açın ve İstek Başlıkları'ndan Cookie başlık değerini kopyalayın — Cookie: ön ekini atlayın.",
"webSessionGuideStep4": "Buraya yapıştırın ve bağlantıyı kontrol edin. Çalışmayı durdurursa tekrar oturum açın ve yeni bir değerle değiştirin.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har dosyasını içe aktar",
+ "harImportButtonBusy": "İçe aktarılıyor…",
+ "harImportButtonHint": "En az bir sohbet mesajı gönderdikten sonra DevTools Network sekmesinden dışa aktarın.",
+ "harImportStatusValid": "İçe aktarıldı — yaklaşık {minutes} dk boyunca geçerli.",
+ "harImportStatusExpiringSoon": "İçe aktarıldı — yalnızca yaklaşık {minutes} dk daha geçerli.",
+ "harImportStatusExpired": "İçe aktarıldı, ancak bu tokenın süresi zaten dolmuş ({minutes} dk önce) — yeni bir HAR dışa aktarın.",
+ "harImportStatusUnknownExpiry": "İçe aktarıldı. Son kullanma süresi okunamadı.",
+ "harImportErrorNotJson": "Bu dosya geçerli bir JSON değil — gerçekten bir .har dışa aktarımı mı?",
+ "harImportErrorNoEntries": "Bu HAR'da kaydedilmiş ağ girdisi yok.",
+ "harImportErrorNoChathubUrl": "Bu HAR'da Copilot sohbet bağlantısı bulunamadı. Dışa aktarmadan önce m365.cloud.microsoft içinde en az bir sohbet mesajı gönderin.",
+ "harImportErrorUnparsableUrl": "Sohbet bağlantısı bulundu, ancak URL'si okunamadı.",
+ "harImportErrorMissingFields": "Sohbet bağlantısı bulundu, ancak token eksikti.",
+ "harImportErrorReadFailed": "Bu dosya okunamadı.",
+ "harImportErrorUnknown": "Bu HAR dosyasından kimlik bilgisi çıkarılamadı.",
"webSessionSecurityHint": "Buna bir şifre gibi davranın: Süresi dolana veya iptal edilene kadar oturum açmış olduğunuz web hesabınıza erişebilir.",
"webNoAuthGuideTitle": "Kimlik bilgisi gerekmez",
"webNoAuthGuideBody": "{provider} bir API anahtarına veya çereze ihtiyaç duymaz. Ücretsiz web uç noktasını kullanmak için bağlantıyı kaydedin.",
@@ -6417,7 +6424,7 @@
"codexServiceModeUpdated": "Codex hizmet modu güncellendi",
"codexServiceTierActive": "Codex {tier} hizmet katmanı aktiftir",
"codexTierFastLabel": "Hızlı",
- "codexTierFlexLabel": "Flex",
+ "codexTierFlexLabel": "Esnek",
"commandCodeApplyFailed": "Command Code auth uygulaması başarısız oldu",
"commandCodeApplyingApproval": "Tarayıcı onaylandı, uygulanıyor…",
"commandCodeApplyingKey": "Tarayıcı onaylı anahtar uygulanıyor…",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Komut Kodu yetkilendirmesi süresi doldu",
"commandCodeConnected": "Komut Kodu bağlı",
"commandCodeConnectionAdded": "Komut Kodu bağlantısı eklendi",
+ "clearConnectionCooldown": "Bekleme süresini temizle",
+ "clearConnectionCooldownInProgress": "Temizleniyor…",
+ "clearConnectionCooldownTitle": "Bekleme süresini şimdi temizleyin — kota üst sağlayıcıda zaten yenilendiyse kullanın",
"commandCodeLinkExpired": "Komut Kodu bağlantısı süresi doldu",
"commandCodeOpeningStudio": "Komut Kodu Stüdyosu Açılıyor…",
"commandCodePopupBlocked": "Açılır pencereler engellendi. Lütfen açılır pencerelere izin verin ve Command Code Connect'i tekrar deneyin.",
"commandCodeStartFailed": "Command Code auth başlatılamadı",
"connectionDeleted": "Bağlantı silindi",
"connectionFallback": "bağlantı",
+ "connectionCooldownCleared": "Bekleme süresi temizlendi — bağlantı yeniden yönlendirmeye katıldı",
"coolingConnectionsDescription": "Bu bağlantılar son istekten sonra soğuyor. OmniRoute zamanlayıcı bitene kadar onları atlayacak — elle kapatmaya gerek yok.",
"coolingConnectionsTitle": "Şu anda soğutma ({count})",
+ "failedClearConnectionCooldown": "Bekleme süresi temizlenemedi",
"failedDeleteAlias": "Alias silinemedi",
"failedDeleteConnection": "Bağlantı silinemedi",
"failedDistributeProxies": "Proxy'leri dağıtma başarısız oldu.",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "Kaydedilmiş model uç noktası ayarları",
"searchByModelAria": "Model ile ara",
"selectSupportedEndpoint": "En az bir desteklenen uç noktayı seçin",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "Ayarlar",
@@ -6550,22 +6557,22 @@
"systemPrompt": "Sistem İstemi",
"thinkingBudget": "Düşünme Bütçesi",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP Vekil Sunucusu",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "Proxy bölümleri",
+ "requestBodyLimitTitle": "İstek Gövdesi Sınırı",
+ "requestBodyLimitDescription": "Bir istek gövdesi ayrıştırılmadan önce kabul edilen maksimum API yükü boyutu. Özel yükleme rotaları, en az kendi yerleşik 100 MB sınırını korur.",
+ "requestBodyLimitInputLabel": "MB cinsinden istek gövdesi sınırı",
+ "requestBodyLimitEmptyError": "MB cinsinden bir sınır girin",
+ "requestBodyLimitWholeNumberError": "Tam sayı kullanın",
+ "requestBodyLimitMinimumError": "Minimum {min} MB'dir",
+ "requestBodyLimitMaximumError": "Maksimum {max} MB'dir",
+ "requestBodyLimitLoadFailed": "İstek sınırı ayarları yüklenemedi",
+ "requestBodyLimitSaveSuccess": "İstek gövdesi sınırı kaydedildi",
+ "requestBodyLimitSaveFailed": "İstek gövdesi sınırı kaydedilemedi",
+ "requestBodyLimitSaving": "Kaydediliyor...",
+ "requestBodyLimitSave": "Kaydet",
+ "requestBodyLimitCurrent": "Mevcut: {value}",
"cacheConfigLoadFailed": "Önbellek ayarları yüklenemedi",
"cacheConfigSaveSuccess": "Önbellek ayarları kaydedildi",
"cacheConfigSaveFailed": "Önbellek ayarlarını kaydetme başarısız oldu",
@@ -6589,59 +6596,59 @@
"enablePassword": "Şifreyi Etkinleştir",
"darkMode": "Karanlık Mod",
"lightMode": "Açık Mod",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "Bellek",
+ "memoryDesc": "Oturumlar arasında kalıcı konuşma belleği",
+ "memoryEnabled": "Belleği Etkinleştir",
+ "memoryEnabledDesc": "Etkinleştirildiğinde OmniRoute, geçmişteki ilgili bağlamı ekler.",
"memoryTokenCostWarning": "Bilginize: bellek etkinken OmniRoute, her sohbet isteğine geri çağrılan bağlamdan en fazla {tokens} belirteç ekler — bu, belirteç kullanımını ve maliyeti artırır. Belirli bir istek için eklemeyi atlamak için \"x-omniroute-no-memory: true\" üstbilgisini gönderin.",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "maxTokens": "Maksimum Token Sayısı",
+ "retentionDays": "Saklama",
+ "recent": "Yakın Geçmiş",
+ "recentDesc": "Kronolojik pencere",
+ "semantic": "Semantik",
+ "semanticDesc": "Vektör araması",
+ "hybrid": "Hibrit",
+ "hybridDesc": "Yakın Geçmiş + Semantik",
+ "skillsTitle": "Beceriler",
+ "skillsDesc": "Modeller için araçlar",
+ "skillsEnabled": "Becerileri Etkinleştir",
+ "skillsEnabledDesc": "Aracıların işlevleri tetiklemesine olanak tanır.",
+ "skillsComingSoon": "Beceri pazarı yakında geliyor.",
+ "memorySkillsTitle": "Bellek ve Beceriler",
+ "memorySkillsDesc": "Kalıcı bağlam ve yetenekler",
+ "modelsDevTitle": "Model Veritabanı",
+ "modelsDevDesc": "Fiyatlandırmayı, yetenekleri ve teknik özellikleri models.dev üzerinden otomatik olarak eşitleyin",
+ "modelsDevEnabled": "models.dev Eşitlemesini Etkinleştir",
+ "modelsDevEnabledDesc": "Model fiyatlandırmasını, yeteneklerini ve teknik özelliklerini açık kaynaklı models.dev veritabanından alın",
+ "modelsDevInterval": "Eşitleme Aralığı",
+ "syncNow": "Şimdi Eşitle",
+ "syncing": "Eşitleniyor...",
+ "lastSync": "Son eşitleme",
+ "never": "Hiçbir zaman",
"justNow": "az önce",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Eşitleme İstatistikleri",
+ "modelsDevStatsDesc": "Mevcut models.dev veri kapsamı",
"providers": "Sağlayıcılar",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Fiyatlandırma Bilgisi Olan Modeller",
+ "capabilities": "Yetenekler",
+ "lastSyncCount": "Son Eşitleme Sayısı",
+ "lastSyncFull": "Son tam eşitleme",
+ "modelsDevInfo": "Nasıl Çalışır?",
+ "modelsDevInfoDesc": "models.dev, SST/OpenCode ekibi tarafından sürdürülen açık kaynaklı bir yapay zekâ modeli özellikleri veritabanıdır. 100'den fazla sağlayıcıdaki 4.000'den fazla model için fiyatlandırma, yetenekler, bağlam sınırları ve modaliteler sunar.",
+ "modelsDevInfoResolution": "Fiyatlandırma çözümleme sırası (önceliği en yüksek olandan başlayarak):",
+ "modelsDevInfoOrder": "Kullanıcı Geçersiz Kılması → models.dev → LiteLLM → Sabit Kodlanmış Varsayılan",
"systemTheme": "Sistem Teması",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Hata Ayıklama Modunu Etkinleştir",
"logToolSourcesToggle": "Araç Kaynaklarını Günlüğe Kaydet",
"logToolSourcesDescription": "İstek başına araç sayısını ve MCP/barındırılan/istemci kaynak dağılımını özetleyen bir tanılama günlüğü satırı oluşturun.",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "Bilgileri Ana Sayfaya Sabitle",
"homePinnedSectionsDesc": "Ana sayfanın üst kısmına hangi bölümlerin sabitleneceğini seçin.",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "Sağlayıcı Kota Sınırları",
+ "homeProviderQuotaLimitsDesc": "Sağlayıcı Kota durumu kapsayıcısını (Tümünü Yenile düğmesiyle birlikte) Ana sayfanın üst kısmına sabitleyin.",
+ "homeQuickStart": "Hızlı Başlangıç",
+ "homeQuickStartDesc": "Hızlı Başlangıç panelini Ana sayfada gösterin.",
+ "homeProviderTopology": "Sağlayıcı Topolojisi",
+ "homeProviderTopologyDesc": "Sağlayıcı Topolojisini Ana sayfada gösterin.",
"accountEmailVisibility": "Hesap e-posta görünürlüğü",
"accountEmailVisibilityDesc": "Sağlayıcılar, kombolar, günlükler, kota ve oyun alanı ekranlarında tam hesap e-postalarını gösterin. Varsayılan olarak bunları maskelemek için bunu kapatın.",
"comboConfigMode": "Kombo yapılandırma modu",
@@ -6657,28 +6664,28 @@
"providerQuotaAutoRefreshInterval": "Yenileme aralığı",
"providerQuotaAutoRefreshIntervalDesc": "Kota görünümünün saniye cinsinden ne sıklıkla yenileneceği.",
"seconds": "saniye",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Kenar Çubuğu Öğelerini Göster",
"enableCache": "Önbelleği Etkinleştir",
"cacheTTL": "Önbellek TTL",
"maxCacheSize": "Maksimum Önbellek Boyutu",
"clearCache": "Önbelleği Temizle",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "Önbellek başarıyla temizlendi",
+ "clearCacheFailed": "Önbellek temizlenemedi",
"cacheHits": "Önbellek İsabetleri",
"cacheMisses": "Önbellek Iskalamaları",
"hitRate": "İsabet Oranı",
"cacheEntries": "Önbellek Girişleri",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
+ "cacheSettings": "Önbellek Ayarları",
+ "semanticCache": "Anlamsal Önbellek",
+ "maxEntries": "Maksimum Kayıt Sayısı",
+ "ttlMinutes": "TTL (dakika)",
"promptCache": "İstem Önbelleği",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "strategy": "Strateji",
+ "preserveClientCache": "İstemci Önbelleğini Koru",
+ "enabled": "Etkin",
"loading": "Loading...",
"saving": "Kaydediliyor...",
- "save": "Save",
+ "save": "Kaydet",
"circuitBreaker": "Devre Kesici",
"retryPolicy": "Yeniden Deneme Politikası",
"maxRetries": "Maksimum Yeniden Deneme Sayısı",
@@ -6686,21 +6693,21 @@
"timeoutMs": "Zaman Aşımı (ms)",
"enableSystemPrompt": "Sistem İstemini Etkinleştir",
"systemPromptText": "Sistem İstemi Metni",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedAccounts": "Yasaklanan Hesapları Otomatik Olarak Devre Dışı Bırak",
+ "autoDisableDescription": "Belirli kesin yasak sinyalleri (ör. HTTP 403 'verify your account') döndüren sağlayıcı bağlantılarını kalıcı olarak devre dışı şeklinde işaretleyin. Bu işlem, onları birleşik rotasyondan çıkarır.",
+ "autoDisableThreshold": "Yasak Eşiği",
+ "autoDisableThresholdDesc": "Kalıcı olarak devre dışı bırakma öncesinde gereken art arda yasak sinyali sayısı.",
+ "autoDisableBannedScope": "Otomatik devre dışı bırakmayı şunlara uygula",
+ "autoDisableBannedScopeDesc": "OmniRoute bir yasaktan sonra yeniden denemeye devam ederse giriş hesapları (ücretli abonelikler ve ücretsiz hesaplar) üst sağlayıcı tarafından kilitlenebilir. Ücretli ön ödemeli API anahtarlarında bu risk yoktur — önce doldurma işleminin sonraki anahtarı kullanabilmesi için bunları havuzda bırakın.",
+ "autoDisableBannedScopeAll": "Tüm bağlantılar",
+ "autoDisableBannedScopeAllDesc": "Ön ödemeli API anahtarları dâhil, kalıcı yasak sinyali döndüren tüm bağlantıları devre dışı bırakın.",
+ "autoDisableBannedScopeSubscription": "Yalnızca giriş / abonelik hesapları",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth, çerez, oturum ve web girişi hesaplarını (ücretli veya ücretsiz) devre dışı bırakın. Yönlendirmenin yedek bağlantıya geçebilmesi için ön ödemeli API anahtarları etkin kalır.",
"customBannedSignals": "Yasaklı Anahtar Kelimeler",
"customBannedSignalsDesc": "Kalıcı hesap engelleme algılamasını tetikleyen ek anahtar kelimeler. Yerleşik anahtar kelimeler her zaman geçerlidir.",
"customBannedSignalsPlaceholder": "örn. api key revoked",
"noCustomBannedSignals": "Özel anahtar kelime yok. Yalnızca yerleşik anahtar kelimeler etkindir.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Dayanıklılık Yapısı",
"resilienceStructureDesc": "Bu sayfa yalnızca davranışı yapılandırır. Canlı kesici durumu Sağlık sayfasında gösterilir. Komboya özgü yeniden deneme ve hepsini bir kez deneme slot kontrolü, kombo ayarlarında kalır.",
"enableThinking": "Düşünmeyi Etkinleştir",
"maxThinkingTokens": "Maksimum Düşünme Jetonları",
@@ -6748,21 +6755,21 @@
"showTailscaleFunnelDesc": "Uç Nokta sayfasında Tailscale Huni kontrollerini gösterin.",
"showNgrokTunnel": "Ngrok Tüneli",
"showNgrokTunnelDesc": "Uç Nokta sayfasında ngrok Tüneli kontrollerini gösterin.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Kenar çubuğu öğelerini gizle",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
+ "presetAll": "Tümü",
+ "presetAllDesc": "Her şeyi göster",
+ "presetEssentials": "Temel Öğeler",
+ "presetEssentialsDesc": "Başlangıç yolu - Gelişmiş araçlar aranabilir kalır",
"presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetMinimalDesc": "Yalnızca temel sayfalar",
+ "presetDeveloper": "Geliştirici",
+ "presetDeveloperDesc": "Geliştirici ve proxy araçları",
+ "presetAdmin": "Yönetici",
+ "presetAdminDesc": "İzleme ve denetim",
+ "settingsSidebarTitle": "Kenar Çubuğu Özelleştirme",
+ "settingsSidebarDesc": "Gösterilecek kenar çubuğu öğelerini seçin. Temel modda Gelişmiş araçlar aranabilir durumda kalır.",
"hideHealthLogs": "Sağlık Kontrolü Günlüklerini Gizle",
"hideHealthLogsDesc": "Açıkken, sunucu konsolundaki [HealthCheck] mesajlarını gizler.",
"themeAccent": "Tema rengi",
@@ -6776,19 +6783,19 @@
"themeOrange": "Turuncu",
"themeCyan": "Camgöbeği",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Uygulama adını ve logosunu özelleştirin",
+ "appName": "Uygulama Adı",
+ "appNameDesc": "Kenar çubuğunda ve tarayıcı sekmesinde gösterilen ad",
+ "customLogo": "Özel Logo URL'si",
+ "customLogoDesc": "Özel logo görselinizin URL'si",
+ "uploadLogo": "Logo Yükle",
+ "resetLogo": "Varsayılana Sıfırla",
+ "logoPreview": "Önizleme",
+ "customFavicon": "Tarayıcı Favicon'u",
+ "customFaviconDesc": "Özel favicon'unuzun URL'si (tarayıcı sekmesinde gösterilir)",
+ "uploadFavicon": "Favicon Yükle",
+ "resetFavicon": "Favicon'u Sıfırla",
+ "faviconPreview": "Favicon Önizlemesi",
"logoFileTooLarge": "Logo dosyası 500KB'tan küçük olmalıdır",
"faviconFileTooLarge": "Favicon dosyası 50KB'tan küçük olmalıdır",
"invalidLogoFileType": "Geçersiz dosya türü. Lütfen PNG, JPG, SVG, GIF veya WebP yükleyin.",
@@ -6892,21 +6899,21 @@
"refreshInterval": "Yenileme Aralığı",
"ruleModeDescription": "Kural Modu Açıklaması"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "Toplu Durum Denetimi",
+ "bulkHealthcheckDesc": "Hangilerinin çalıştığını belirlemek için yapılandırılmış tüm proxy'leri hedef bir URL'ye karşı test edin.",
+ "healthcheckTesting": "Test ediliyor...",
+ "healthcheckAll": "Tümünde Durum Denetimi Yap",
+ "healthcheckFailed": "Durum denetimi çalıştırılamadı",
+ "healthcheckTestingAll": "Tüm proxy'ler paralel olarak test ediliyor...",
+ "healthcheckTotal": "Toplam",
+ "healthcheckWorking": "Çalışıyor",
+ "healthcheckFailedLabel": "Başarısız",
+ "healthcheckStatus": "Durum",
+ "healthcheckProxyUrl": "Proxy URL'si",
+ "healthcheckLatency": "Gecikme",
"proxyDocumentationScopeTitle": "Proxy kapsam çözümlemesi",
"proxyDocumentationScopeDescBefore": "OmniRoute, giden proxy'yi öncelik sırasına göre çözümler:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "kombinasyon → hesap → sağlayıcı → genel",
"proxyDocumentationScopeDescAfter": ". En özel kapsam kazanır.",
"proxyDocumentationAddTitle": "Özel proxy ekleme",
"proxyDocumentationAddDescBefore": "Şu sekmeye gidin:",
@@ -6941,7 +6948,7 @@
"proxyFreePoolAddSelected": "Seçilenleri havuza ekle",
"proxyFreePoolAddVisible": "Görünen tümünü havuza ekle",
"proxyFreePoolSource": "Kaynak",
- "proxyFreePoolHostPort": "Host:Port",
+ "proxyFreePoolHostPort": "Ana Makine:Bağlantı Noktası",
"proxyFreePoolType": "Tür",
"proxyFreePoolCountry": "Ülke",
"proxyFreePoolQuality": "Kalite",
@@ -7063,7 +7070,7 @@
"costOptDesc": "Mevcut en uygun maliyetli hesabı tercih edin",
"resetAware": "Sıfırlamaya Duyarlı RR",
"resetAwareDesc": "Kalan kotası sağlıklı olan ve sıfırlamaya daha yakın olan hesapları tercih edin",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Kota Ağırlıklı",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
"strictRandom": "Katı Rastgele",
"strictRandomDesc": "Karıştırma destesi — yeniden karıştırmadan önce her hesabı bir kez kullanır",
@@ -7071,7 +7078,7 @@
"stickyLimitDesc": "Geçişten önce hesap başına çağrı sayısı",
"routingStrategyTitle": "Yönlendirme Stratejisi",
"routingStrategySubtitle": "9router ile eşleş: hesap round-robin, yapışkan limitler ve kombo rotasyonu",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Döngüsel Dağıtım",
"accountRoundRobinDesc": "Yükü dağıtmak için hesaplar arasında geçiş yapın",
"comboRoundRobin": "Kombo Round Robin",
"comboRoundRobinDesc": "Her zaman ilkiyle başlamak yerine kombo hedefleri arasında geçiş yapın",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "Bu sağlayıcı için genel hesap stratejisini geçersiz kıl (9router uyumluluğu).",
"providerRoutingStrategy": "Hesap stratejisi",
"providerRoutingInheritGlobal": "Genel varsayılanı devral",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Kota Ön Kontrol Eşiği",
+ "quotaPreflightSubtitle": "İsteği üst sunucuya göndermeden önce kotası tükenmiş hesapları atlayın",
+ "quotaPreflightEnable": "Kota ön kontrolünü etkinleştir",
+ "quotaPreflightEnableDesc": "Her istekten önce hesabın kalan kotasını (5 saatlik / haftalık / aylık dönemler) kontrol edin. Eşik değerinde veya altında olan hesaplar, üst sunucuya çağrı yapılmadan atlanır. Sağlayıcı Kotası sayfasında dönem bazında belirlenen eşikler her zaman buradaki varsayılan değerden önceliklidir.",
+ "quotaPreflightCutoff": "Genel eşik (min. kalan %)",
+ "quotaPreflightCutoffDesc": "Kalan kotası bu yüzdeye veya altına düştüğünde, kendine ait eşiği olmayan tüm dönemler için hesabı kullanmayı bırakın. Sağlayıcı Kotası sayfasındaki kalan yüzde çubuklarıyla eşleşir.",
+ "quotaPreflightWindowsHint": "Kendine ait dönem veya sağlayıcı bazlı eşiği olan dönemler (Sağlayıcı Kotası sayfasındaki Eşik penceresinden ayarlanır) bu varsayılandan etkilenmez.",
+ "quotaPreflightLoadFailed": "Kota ön kontrol ayarları yüklenemedi.",
"modelAliases": "Model Takma Adları",
"modelAliasesTitle": "Model Takma Adları",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "Tam eşleşmeleri veya joker karakter kalıplarını kullanarak model adlarını yeniden eşleyin.",
"addCustomAlias": "Özel Takma Ad Ekle",
"deprecatedModelId": "Kullanımdan kaldırılan model kimliği",
"newModelId": "Yeni model kimliği",
@@ -7184,7 +7191,7 @@
"comboStrategyAria": "Kombinasyon stratejisi",
"priority": "Öncelik",
"weighted": "Ağırlıklı",
- "contextRelay": "Context Relay",
+ "contextRelay": "Bağlam Aktarımı",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "Maksimum Yeniden Deneme Sayısı",
"retryDelayLabel": "Yeniden Deneme Gecikmesi (ms)",
@@ -7210,10 +7217,10 @@
"concurrencyPerModel": "Model Başına Eşzamanlılık",
"queueTimeout": "Kuyruk Zaman Aşımı (ms)",
"queueDepth": "Kuyruk Derinliği",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "Devir Eşiği",
+ "contextRelayMaxMessages": "Özet İçin Maksimum Mesaj Sayısı",
+ "contextRelaySummaryModel": "Özet Modeli",
+ "contextRelayProviderNote": "Bağlam Aktarımı şu anda Codex hesapları için devirler oluşturur ve bu değerleri yeni veya yapılandırılmamış kombinasyonlar için genel varsayılanlar olarak kullanır.",
"providerProfiles": "Sağlayıcı Profilleri",
"providerProfilesDesc": "OAuth (oturum tabanlı) ve API Anahtarı (kotalı) sağlayıcılar için ayrı dayanıklılık ayarları. OAuth sağlayıcılarında hız limitleri daha düşük olduğundan eşikler daha sıkıdır.",
"oauthProviders": "OAuth Sağlayıcıları",
@@ -7325,7 +7332,7 @@
"configured": "yapılandırıldı",
"none": "Yok",
"modelOverrideValuePlaceholder": "Sayısal değer",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "İngilizce, virgülle ayrılmış; ör. low, medium, high",
"addKeyValue": "Anahtar değer ekle",
"noModelOverrides": "Bu model için yapılandırılmış geçersiz kılma yok.",
"modelOverrideLoadFailed": "Model geçersiz kılmaları yüklenemedi",
@@ -7374,25 +7381,25 @@
"editPricing": "Fiyatlandırmayı Düzenle",
"viewFullDetails": "Tüm Ayrıntıları Görüntüle",
"themeCoral": "Mercan",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Uyarlanabilir Hacim Yönlendirmesi",
+ "adaptiveVolumeRoutingDesc": "Bağlantıları yük hacmine ve işleme kapasitesi baskısına göre dinamik olarak ölçeklendirin.",
+ "lkgpToggleTitle": "Son Bilinen İyi Sağlayıcı (LKGP)",
+ "lkgpToggleDesc": "Etkinleştirildiğinde yönlendirici, başarılı bir yanıtı en son hangi sağlayıcının sunduğunu hatırlar ve sonraki isteklerde önce onu dener.",
"echoRequestedModelTitle": "Yanıtlarda istenen model adını yansıt",
"echoRequestedModelDesc": "Etkinleştirildiğinde, yanıt `model` alanı yukarı akış model adı yerine istemcinin talep ettiği takma adı veya kombo adını yansıtır. Modeli istekle eşleşmeyen yanıtları reddeden katı istemcileri (örn. Claude Desktop) düzeltir.",
"webSearchRouteTitle": "Web araması yönlendirme",
"webSearchRouteDesc": "Bir istek yerel bir web_search aracı içerdiğinde, tüm isteği varsayılan yerine bu modele yönlendirin — Anthropic'in web_search sunucu aracını uygulamayan sağlayıcılar için kullanışlıdır. Devre dışı bırakmak için boş bırakın.",
"webSearchRoutePlaceholder": "Bir model arayın veya seçin…",
"paidModelPatternWarning": "Bu desen yalnızca ücretli modellerle eşleşir — ücretli modelleri etkinleştirin veya deseni ayarlayın.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP Önbelleğini Temizle",
+ "lkgpCacheCleared": "LKGP önbelleği başarıyla temizlendi",
+ "lkgpCacheClearFailed": "LKGP önbelleği temizlenemedi",
+ "days": "Gün",
+ "lkgp": "LKGP Modu",
+ "lkgpDesc": "Son Bilinen İyi Sağlayıcı (Öngörülebilir dayanıklılık)",
+ "maintenance": "Bakım",
+ "purgeExpiredLogs": "Süresi Dolmuş Günlükleri Temizle",
+ "purgeLogsFailed": "Günlükler temizlenemedi",
"logsDeleted": "{count, plural, =0 {Süresi dolmuş günlük temizlenmedi} one {# süresi dolmuş günlük temizlendi} other {# süresi dolmuş günlük temizlendi}}",
"resetUsageData": "Kullanım Verilerini Sıfırla",
"resetUsageDataDesc": "Kullanım, istek günlükleri ve analiz verilerini ne kadar geriye dönük silmek istediğinizi seçin. Sağlayıcı yapılandırması, bağlantılar, API anahtarları, kombolar ve ayarlar korunur. Bu işlem geri alınamaz.",
@@ -7409,39 +7416,39 @@
"resetUsageFailed": "Kullanım verileri sıfırlanamadı",
"reset": "Sıfırla",
"resetting": "Sıfırlanıyor...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "Bağlam İçin Optimize Edilmiş",
+ "contextOptDesc": "Bağlam penceresi gereksinimlerine ve konuşma uzunluğuna göre yönlendirir",
+ "cacheOpt": "Önbellek İçin Optimize Edilmiş",
+ "cacheOptDesc": "Yeniden kullanılabilir aynı istem ön ekini aynı sağlayıcı hesabında tutar",
+ "priorityDesc": "Sıralı geri dönüş - önce 1. sağlayıcıyı, ardından 2. sağlayıcıyı ve bu şekilde devam ederek diğerlerini dener",
+ "weightedDesc": "Trafiği, sağlayıcılar arasında yüzde ağırlıklarına göre dağıtır",
+ "modelRoutingTitle": "Model Yönlendirme Kuralları",
+ "modelRoutingDesc": "Glob kalıplarını kullanarak modelleri otomatik olarak belirli kombinasyonlara yönlendirin",
+ "addRule": "Kural Ekle",
+ "routeToCombo": "Kombinasyona Yönlendir",
+ "selectCombo": "Kombinasyon seçin...",
+ "priorityHint": "Daha yüksek değer = daha önce kontrol edilir. Belirli kalıplar için 10+ kullanın.",
+ "patternHint": "Herhangi bir karakter dizisi için *, tek bir karakter için ? kullanın. Büyük/küçük harfe duyarlı değildir.",
+ "noRoutingRules": "Yapılandırılmış yönlendirme kuralı yok. İstekler varsayılan olarak genel kombinasyonu kullanır.",
+ "routingRuleHint": "İstekleri otomatik olarak yönlendirmek için claude-opus* -> frontier-combo gibi bir kural ekleyin.",
+ "deleteRoutingRule": "Bu model yönlendirme kuralı silinsin mi?",
+ "exactMatchMode": "Tam Eşleşme",
+ "wildcardPatternMode": "Joker Karakter Kalıbı",
+ "exactMatchModeDesc": "Kullanımdan kaldırılmış veya yeniden adlandırılmış model kimlikleri için tam eşleşen takma adlar kullanın.",
+ "wildcardPatternModeDesc": "Bir model ailesinin tek bir hedefle eşleştirilmesi gerektiğinde * ve ? içeren joker karakterli takma adlar kullanın.",
+ "noExactAliasesConfigured": "Yapılandırılmış tam eşleşen takma ad yok.",
+ "wildcardRulesTitle": "Joker Karakter Kuralları",
+ "noWildcardAliasesConfigured": "Yapılandırılmış joker karakter takma adı yok.",
+ "overview": "Genel Bakış",
+ "unknownError": "Bilinmeyen Hata",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "İzin Listesi",
+ "syncDisabled": "Senkronizasyon Devre Dışı",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,23 +7456,23 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "Senkronizasyon Etkin",
+ "blacklist": "Engelleme Listesi",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
+ "syncedModels": "Senkronize Edilen Modeller",
+ "budget": "Bütçe",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "Fiyatlandırma sıfırlanamadı: {reason}",
- "tab": "Tab",
+ "tab": "Sekme",
"pricingSavedProvider": "{provider} için fiyatlandırma kaydedildi",
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "Fiyatlandırma kaydedilemedi: {reason}",
"pricingResetProvider": "{provider} için fiyatlandırma sıfırlandı",
- "nextSync": "Next Sync",
+ "nextSync": "Sonraki Senkronizasyon",
"pricingSyncFailedWithReason": "Fiyatlandırma senkronizasyonu başarısız oldu: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "Senkronize Edilen Fiyatlandırmayı Temizle",
+ "compressionTitle": "İstem Sıkıştırma",
+ "compressionDesc": "Sağlayıcılara göndermeden önce istemleri sıkıştırarak token kullanımını azaltın",
"compressionGuidanceFullGuideLink": "Tam sıkıştırma kılavuzu",
"compressionGuidanceShow": "Ayrıntılar",
"compressionGuidanceHide": "Ayrıntıları gizle",
@@ -7481,15 +7488,15 @@
"tokenSaverInputCompressionDesc": "Kodu, URL'leri ve amacı korurken uygun sohbet geçmişini yeniden yazın.",
"tokenSaverFineTunePrefix": "Her motora şurada ince ayar yapın",
"tokenSaverFineTuneSuffix": "veya istek başına motorları şurada birleştirin",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
+ "compressionMode": "Sıkıştırma Modu",
+ "compressionModeOff": "Kapalı",
+ "compressionModeOffDesc": "Sıkıştırma uygulanmaz",
+ "compressionModeLite": "Hafif",
+ "compressionModeLiteDesc": "Boşluk ve boş satır azaltma",
+ "compressionModeStandard": "Standart (Caveman)",
+ "compressionModeStandardDesc": "30'dan fazla kalıpla kural tabanlı sıkıştırma; kod bloklarını ve URL'leri korur",
+ "compressionModeAggressive": "Agresif",
+ "compressionModeAggressiveDesc": "Maksimum tasarruf için özetleme + araç sonucu sıkıştırma + aşamalı eskime",
"compressionModeUltra": "Ultra",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "Agresif Motor Yapılandırması",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "Her eskime katmanında saklanan son iletilerin sayısı (daha yüksek = daha fazla korunmuş)",
"compressionToolStrategies": "Araç Sonuç Stratejileri",
"compressionToolStrategiesDesc": "Farklı araç sonuç türleri için sıkıştırma stratejilerini değiştirin",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "Genel Ayarlar",
+ "compressionAutoTrigger": "Otomatik Tetikleme Eşiği",
+ "compressionCacheTTL": "Önbellek TTL'si",
+ "compressionPreserveSystem": "Sistem İstemini Koru",
"compressionPreserveSystemAlways": "Her zaman",
"compressionPreserveSystemWhenNoCache": "Önbellek olmadığında",
"compressionPreserveSystemNever": "Asla",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "Kaydedildi",
"compressionExclusionsCount": "{count, plural, one {# dışlama} other {# dışlama}} yapılandırıldı",
"compressionExclusionsEmpty": "Hiçbir hariç tutma yapılandırılmamış — her model/son nokta sıkıştırma için uygundur (varsayılan davranış).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman Motoru Yapılandırması",
+ "compressionCavemanConfigDesc": "Kural tabanlı sıkıştırma motoruna ince ayar yapın",
"compressionCavemanPanelHint": "Açık/kapalı durumu ve seviyesi panelden ayarlanır:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Mesaj Rollerini Sıkıştır",
+ "compressionRoleUser": "Kullanıcı",
+ "compressionRoleAssistant": "Asistan",
+ "compressionRoleSystem": "Sistem",
+ "compressionMinLength": "Minimum Mesaj Uzunluğu",
+ "compressionSkipRules": "Sıkıştırma Kurallarını Atla",
+ "compressionSkipRulesDesc": "Sıkıştırma sırasında atlamak istediğiniz kurallara tıklayın",
+ "compressionPreservePatterns": "Korunacak Kalıplar",
+ "compressionPreservePatternsDesc": "Asla sıkıştırılmayan regex kalıpları (her satıra bir tane)",
+ "compressionLogTitle": "Sıkıştırma Günlüğü",
+ "compressionLogEmpty": "Henüz sıkıştırılmış istek yok. Sıkıştırma etkinleştirilmiş istekler işlendiğinde sıkıştırma istatistikleri burada görünecektir.",
"minutes": "dakika",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "Komut farkındalıklı araç çıktısı filtreleme",
+ "compressionModeCodexResponses": "Responses araç çıktısı",
+ "compressionModeCodexResponsesDesc": "Uygun kabuk, yama, arama, derleme ve JSON çıktıları için ölçülü sıkıştırma",
+ "compressionModeStacked": "Yığınlı",
+ "compressionModeStackedDesc": "RTK araç çıktısı filtrelemesinin ardından Caveman mesaj sıkıştırması",
+ "qdrantTitle": "Qdrant (Vektör belleği)",
+ "qdrantDesc": "İsteğe bağlıdır. Daha hızlı erişim için anlamsal anıları harici bir vektör veritabanında dizine ekler.",
+ "qdrantStatusActive": "Etkin",
+ "qdrantStatusError": "Hata",
+ "qdrantStatusDisabled": "Devre dışı",
+ "qdrantEnable": "Qdrant'ı etkinleştir",
+ "qdrantEnableDesc": "Etkinleştirildiğinde anlamsal/hibrit strateji, anıları almak için Qdrant'ı kullanabilir.",
+ "qdrantTesting": "Test ediliyor...",
+ "qdrantTestConnection": "Bağlantıyı test et",
+ "qdrantSaved": "Yapılandırma kaydedildi",
+ "qdrantSaveError": "Yapılandırma kaydedilemedi",
+ "qdrantHostHint": "Bağlantı noktası olmadan. Örnek: 127.0.0.1 veya http://qdrant",
+ "qdrantPort": "Bağlantı noktası",
+ "qdrantPortHint": "Qdrant varsayılanı: 6333",
+ "qdrantCollectionHint": "Bellek noktalarının depolanacağı yer.",
+ "qdrantEmbeddingModel": "Gömme modeli",
+ "qdrantHelpTitle": "Hızlı kurulum yardımı",
+ "qdrantHelpQuickTitle": "Hızlı kurulum (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Ana makine: Qdrant IP/URL'si, Bağlantı noktası: 6333, Koleksiyon: omniroute_memory.",
+ "qdrantHelpStep2": "2. nvidia/llama-nemotron-embed-vl-1b-v2:free kullanıyorsanız koleksiyon boyutu olarak 2048 kullanın.",
+ "qdrantHelpStep3": "3. Model alanı: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Kaydedin, bağlantıyı test edin, ardından aramayı test edin.",
+ "qdrantEmbeddingQuickSelect": "Keşfedilen modellerden hızlı seçim yapın...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "Biçim: provider/model. Sağlayıcı kimlik bilgileri yapılandırılmış olmalıdır.",
+ "qdrantApiKeyPlaceholderKeep": "(mevcut anahtarı korumak için boş bırakın)",
+ "qdrantApiKeyPlaceholderOptional": "(kullanılmıyorsa boş bırakın)",
+ "qdrantSaveHint": "İpucu: Ana makineyi/bağlantı noktasını/koleksiyonu/modeli düzenleyip Kaydet'e tıklayın. API anahtarı isteğe bağlıdır.",
+ "qdrantSearchTestTitle": "Arama testi",
+ "qdrantSearchTestDesc": "Gömme oluşturur ve Qdrant'ta arama yapar.",
+ "qdrantSearchPlaceholder": "Örnek: kullanıcı tercihleri, geçmiş vb.",
+ "qdrantNoResults": "Sonuç yok (veya Qdrant yapılandırılmamış).",
+ "qdrantCleanupTitle": "Saklama ve temizleme",
+ "qdrantCleanupDesc": "Süresi dolmuş ve eski noktaları şuna göre kaldırır:",
+ "searching": "Aranıyor...",
+ "cleaning": "Temizleniyor...",
+ "cleanNow": "Şimdi temizle",
"optional": "İsteğe bağlı",
"current": "Mevcut",
"remove": "Kaldır",
@@ -7596,19 +7603,19 @@
"resilienceScope": "Kapsam:",
"resilienceTrigger": "Tetikleyici:",
"resilienceEffect": "Etki:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "İstek Kuyruğu ve Hız",
+ "resilienceAutoEnableApiKeyProviders": "API anahtarı sağlayıcıları için otomatik etkinleştir",
+ "resilienceRequestsPerMinute": "Dakika başına istek",
+ "resilienceMinTimeBetweenRequests": "İstekler arasındaki minimum süre",
+ "resilienceConcurrentRequests": "Eşzamanlı istekler",
+ "resilienceConnectionScopeConcurrentRequests": "Bağlantı/kota kapsamı başına eşzamanlı istekler",
+ "resilienceGlobalConcurrentRequests": "Genel eşzamanlı yukarı akış istekleri (0 = devre dışı)",
"resilienceMaxQueueWaitTime": "Maksimum kuyruk bekleme süresi",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Temel bekleme süresi",
+ "resilienceUseUpstreamRetryHints": "Yukarı akış yeniden deneme ipuçlarını kullan",
+ "resilienceDefaultPerProvider": "Varsayılan (sağlayıcı başına)",
+ "resilienceAlwaysOn": "Her zaman açık",
+ "resilienceAlwaysOff": "Her zaman kapalı",
"routingRemoveEntry": "Girişi kaldır",
"routingNeedlesSubstrings": "İğneler (eşleşecek alt dizeler)",
"routingCaseSensitive": "Büyük/küçük harfe duyarlı",
@@ -7665,7 +7672,7 @@
"routingAntigravitySignatureDesc": "OmniRoute'un yalnızca depolanan Gemini düşünce imzalarını mı yeniden kullanacağını yoksa Antigravity uyumlu araç çağırma akışlarında doğrulanmış istemci tarafından sağlanan imzaları mı kabul edeceğini kontrol edin.",
"routingAntigravitySignatureEnabledLabel": "Etkin",
"routingAntigravitySignatureEnabledDesc": "Mevcut davranış. İstemci tarafından sağlanan imzaları yoksayın ve depolanan OmniRoute akışını kullanmaya devam edin.",
- "routingAntigravitySignatureBypassLabel": "Bypass",
+ "routingAntigravitySignatureBypassLabel": "Atla",
"routingAntigravitySignatureBypassDesc": "Hafif bir doğrulamadan sonra istemci tarafından sağlanan imzaları kabul edin ve geçersiz olduğunda depolanan imzaya geri dönün.",
"routingAntigravitySignatureBypassStrictLabel": "Sıkı Bypass",
"routingAntigravitySignatureBypassStrictDesc": "İstemci tarafından sağlanan bir imzayı kabul etmeden önce tam protobuf doğrulaması gerektirin.",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "Ayıklanan açıklama orijinal isteğe geri eklenmeden önce görsel modeline gönderilir.",
"visionBridgeTimeoutMs": "Zaman aşımı (ms)",
"visionBridgeMaxImagesPerRequest": "İstek Başına Maksimum Görüntü",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Maksimum geri çekilme adımı",
+ "resilienceProviderBreakerTitle": "Sağlayıcı Başına Devre Kesici",
+ "resilienceFailureThreshold": "Hata eşiği",
+ "resilienceDegradationThreshold": "Bozulma eşiği",
"resilienceResetTimeout": "Zaman aşımını sıfırla",
"resilienceFailureThresholdLabel": "Arıza eşiği",
"resilienceResetTimeoutLabel": "Zaman aşımını sıfırla",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Bağlantı Bekleme Süresi",
"resilienceUseUpstreamRetryHintsLabel": "Yukarı akış yeniden deneme ipuçlarını kullanma",
"resilienceUseUpstream429BreakerLabel": "Yukarı akış 429 ipucunu kullanın (kırıcı)",
"resilienceMaxBackoffStepsLabel": "Maksimum geri çekilme adımları",
"resilienceYes": "Evet",
"resilienceNo": "Hayır",
- "resilienceDefault": "Default",
+ "resilienceDefault": "Varsayılan",
"storageDatabaseBackupRetention": "Veritabanı yedekleme saklama",
"storageDatabaseBackups": "Veritabanı yedekleri",
"storageBackupRetentionDescription": "Otomatik SQLite yedekleri şurada saklanır",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "Eski JSON başarıyla içe aktarıldı!",
"jsonImportFailed": "JSON içe aktarılamadı",
"jsonImportError": "JSON içe aktarma sırasında hata oluştu",
+ "jsonImportAuthRequired": "Eski bir JSON yapılandırmasını içe aktarmak için kimlik doğrulaması gereklidir. Lütfen önce oturum açın veya kurulumu tamamlayın.",
+ "databaseSettingsAuthRequiredTitle": "Kimlik doğrulaması gerekli",
+ "databaseSettingsAuthRequiredBody": "Veritabanı ayarları ve JSON içe aktarma yalnızca kimliği doğrulanmış bir yönetici tarafından kullanılabilir. Bunları görüntülemek ve düzenlemek için oturum açın veya kurulumu tamamlayın.",
+ "databaseSettingsAuthRequiredCta": "Oturum aç",
"storagePurgeData": "Verileri Temizle",
"storagePurgeDataDesc": "Saklama kontrollerini uygulamadan tüm kayıtları hemen silin. Dikkatli kullanın.",
"storageRetentionCleanup": "Saklama Ayarları",
@@ -7824,24 +7835,24 @@
"compressionDerivedMode": "mod: {mode}",
"compressionAdaptiveOff": "Uyarlanabilir bağlam bütçesi: kapalı (eski otomatik tetikleyici)",
"compressionAdaptiveTarget": "Uyarlanabilir ({mode}, politika: {policy}) — hedef ≈ {target, number} token ({contextLimit, number} tokenlık bir pencere için)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Uyarlanabilir bağlam bütçesi",
+ "compressionAdaptiveModeOff": "Kapalı (eski otomatik tetikleme)",
+ "compressionAdaptiveModeFloor": "Alt sınır (her zaman sığmasını garanti et)",
+ "compressionAdaptiveModeReplace": "Otomatik tetiklemeyi değiştir",
+ "compressionAdaptivePolicy": "Bütçe politikası",
+ "compressionAdaptivePolicyReserve": "Çıktı için ayır",
+ "compressionAdaptivePolicyPercentage": "Pencere yüzdesi",
+ "compressionAdaptivePolicyAbsolute": "Mutlak belirteç bütçesi",
"compressionOutputStylesDescription": "Sağlayıcı çıktısını yeniden yazmadan yanıt şekillendirme talimatları ekleyin. Serbestçe birleştirin.",
"mcpAccessibilityDescription": "MCP araç çıktılarını kapsama alır (ayrı depo).",
"compressionStylesTileSummary": "{tokens, number} token tasarruf edildi · {runs, plural, one {# çalıştırma stillendirildi} other {# çalıştırma stillendirildi}}",
"compressionStylesTileEmpty": "Henüz stillendirilmiş çalıştırma yok.",
"compressionLevel": {
- "minimal": "Minimal",
+ "minimal": "Asgari",
"standard": "Standart",
"aggressive": "Agresif",
- "lite": "Lite",
- "full": "Full",
+ "lite": "Hafif",
+ "full": "Tam",
"ultra": "Ultra"
},
"compressionEngine": {
@@ -7862,8 +7873,8 @@
"description": "Komut çıktısı filtreleme."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses Araç Çıktısı",
+ "description": "Desteklenen Responses araç çıktıları için ölçülü sıkıştırma."
},
"headroom": {
"label": "Pay",
@@ -7874,7 +7885,7 @@
"description": "Son kullanıcı sorgusuna göre çıkarımsal cümle puanlaması."
},
"caveman": {
- "label": "Caveman",
+ "label": "Mağara Adamı",
"description": "Kural tabanlı düz yazı sıkıştırma."
},
"aggressive": {
@@ -7904,12 +7915,12 @@
"description": "YAGNI merdiveni: çalışan en küçük değişiklik, talep edilmeyen soyutlamalar yok."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "At Kuyruğu (tembel kıdemli geliştirici)",
+ "description": "Tembel kıdemli geliştirici disiplini: YAGNI merdivenini tırman, kök nedeni düzelt, çalışan en küçük değişikliği yap."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "DEHB'im var (önce eylem)",
+ "description": "Önce eylem odaklı çıktı: ilk olarak sonraki eylem, numaralandırılmış adımlar, tek bir somut sonraki adım, giriş yok."
},
"terse-cjk": {
"label": "Kısa ve öz CJK (文言)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI Geri Dönüşü",
"cliproxyapiEnableFallback": "CLIProxyAPI Geri Dönüşünü Etkinleştir",
"cliproxyapiUrl": "CLIProxyAPI URL'si",
+ "headroomProxyTitle": "Headroom proxy'si",
+ "headroomProxyDesc": "İsteğe bağlı Headroom token tasarrufu proxy'sinin URL'si. Boş bırakılırsa HEADROOM_URL veya http://localhost:8787 kullanılır.",
+ "headroomProxyUrl": "Headroom URL'si",
+ "headroomProxyUrlHint": "Geri döngü URL'leri bu sayfadan başlatılabilir. Harici URL'ler yalnızca yoklanır.",
+ "headroomProxySave": "Kaydet",
+ "headroomProxyStart": "Başlat",
+ "headroomProxyStop": "Durdur",
+ "headroomProxyExternalHint": "Bu URL geri döngü adresi değil, dolayısıyla OmniRoute yerel CLI'yi başlatmayacak.",
"cliproxyapiStatus": "CLIProxyAPI Durumu",
"cliproxyapiNotDetected": "Algılanmadı",
"cliproxyapiImportAuthTitle": "Hesapları CLIProxyAPI'den aktar",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "OpenAI Codex istekleri için global olarak service_tier=priority'yi enjekte edin.",
"codexFastTierHint": "Etkinleştirildiğinde OmniRoute, halihazırda bir katman belirtmemiş bağlantılar için giden Codex isteklerine service_tier=priority ekler. Öncelik katmanı, bir OpenAI Enterprise API anahtarı veya ChatGPT-auth Codex yolunu gerektirir; diğer anahtar türleri OpenAI'den katmanla ilgili bir hata alacaktır. Codex sağlayıcı sayfasındaki bağlantı başına ayarlar önceliklidir.",
"codexFastTierSaveError": "Codex Hızlı Katman ayarı güncellenemedi",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex Kota Otomatik Pingi",
+ "codexAutoPingDesc": "Bağlantı başına isteğe bağlıdır: Bir Codex oturum penceresi sıfırlandıktan hemen sonra küçük bir istek gönderir; böylece ihtiyacınız olduğunda soğuk durumda olmaz.",
+ "codexAutoPingWarning": "Her pingde az miktarda gerçek Codex kotası tüketir. Varsayılan olarak kapalıdır — yalnızca etkin olarak güvendiğiniz bağlantılar için etkinleştirin.",
+ "codexAutoPingSaveError": "Codex Otomatik Ping ayarı güncellenemedi",
+ "codexAutoPingToggleAria": "{connection} için Codex kota otomatik pingini aç veya kapat",
"codexFastTierTierLabel": "Hizmet katmanı",
"codexFastTierTierPriority": "Öncelik",
"codexFastTierTierFlex": "Flex",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "Bekleme süresinin artması durmadan önceki maksimum geri çekilme adımı sayısı. Çoğu yapılandırmada önce Maksimum Bekleme Süresi sınırına ulaşılır, bu da bunu Maksimum Bekleme Süresi yükseltildiğinde bir güvenlik tavanı haline getirir.",
"disableSessionStickiness": "Oturum yapışkanlığını devre dışı bırak",
"disableSessionStickinessDesc": "Round-robin ve rastgele kombinasyonlar, tüm bir konuşmayı ilk mesaj karmasıyla tek bir bağlantıya sabitlemek yerine her istekte farklı bir bağlantıya döner. Çok turlu sohbetlerde prompt-cache isabetlerini korumak için kapalı bırakın. Kombinasyon bazlı geçersiz kılmalar önceliklidir.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "İstem önbelleği yerelliğine göre yönlendirme",
+ "promptCacheAffinityDesc": "Sağlık ve kota yük devretmesini korurken eşleşen istem önbelleği anahtarları için aynı sağlayıcı hesabını tercih et.",
+ "reasoningTokenBuffer": "Akıl yürütme token tamponu",
+ "reasoningTokenBufferDesc": "Kombine yönlendirmenin yalnızca bilinen akıl yürütme modelleri için ve tam tampon bilinen bir çıktı sınırına sığdığında max_tokens ek payı eklemesine izin ver.",
+ "zeroLatencyOptimizations": "Sıfır gecikme optimizasyonları",
+ "zeroLatencyOptimizationsDesc": "Hedging, öngörülü TTFT atlamaları ve proaktif geri dönüş sıkıştırmasını etkinleştirin. Bu gecikme özelliklerinin hedeflerle yarışmasını veya geri dönüş isteklerini sıkıştırmasını önlemek için kapalı bırakın.",
"credentialRedaction": "Kimlik Bilgisi Karartma",
"credentialRedactionDesc": "Sağlayıcılara gönderilen bağlamdan ve yanıtlardan API anahtarlarını, belirteçleri ve sırları karartın.",
"enableCredentialRedaction": "Kimlik bilgisi karartmayı etkinleştir",
"enableCredentialRedactionDesc": "Mesajlardan, araç çağrılarından ve yanıtlardan API anahtarlarını, belirteçleri, özel anahtarları ve JWT'leri temizler.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Otomatik Eşitleme Devre Dışı",
+ "pricingAutoSyncEnabled": "Otomatik Eşitleme Etkin",
"modalityBridgeIntro": "Çok modlu içeriği yalnızca metin işleyen modellere ulaşmadan önce metne dönüştürün. Görüntü, ses ve video köprüleri kullanılabilir ve yapılandırılabilir.",
"modalityBridgeVisionTab": "Görüş",
"modalityBridgeAudioTab": "Ses",
@@ -8358,35 +8377,27 @@
"cliproxyapiUnknown": "Bilinmiyor",
"cliproxyapiVersion": "Sürüm",
"cliproxyapiHealth": "Sağlık",
- "cliproxyapiPort": "Port",
+ "cliproxyapiPort": "Bağlantı Noktası",
"qdrantHost": "Ana Bilgisayar",
- "qdrantCollection": "Koleksiyon",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Koleksiyon"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
+ "title": "RTK Motoru",
+ "description": "Araç çıktıları, terminal günlükleri ve derleme sonuçları için komutları algılayan sıkıştırma.",
+ "enabled": "Etkin",
+ "intensity": "Yoğunluk",
"intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "intensityStandard": "Standart",
+ "intensityAggressive": "Agresif",
+ "toolResults": "Araç sonuçları",
+ "assistantMessages": "Asistan mesajları",
+ "codeBlocks": "Kod blokları",
"filterCatalog": "Kataloğu Filtrele",
"filterCatalogDesc": "Kategoriye göre mevcut çıkış filtreleri",
"guidedConfig": "Yapılandırma",
"guidedConfigDesc": "RTK'nın terminal çıkışınızı nasıl filtreleyeceğini ayarlayın",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "Maksimum satır",
+ "maxChars": "Maksimum karakter",
"deduplicateThreshold": "Tekilleştirme eşiği",
"customFilters": "Özel filtreler",
"detectedType": "Algılanan tür",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "Başarısızlıklar",
"rawOutputAlways": "Her zaman",
"rawOutputMaxBytes": "Ham çıktı maksimum bayt sayısı",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "Filtre Testi",
+ "pasteOutput": "Filtrelemeyi test etmek için araç çıktısını yapıştırın...",
"presetHigh": "Agresif",
"presetLow": "Işık",
"presetMaxChars": "Maksimum çıktı karakterleri",
"presetMaxLines": "Maksimum çıkış hatları",
"presetMedium": "Standart",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "Çalıştır",
+ "result": "Sonuç",
+ "previewEmpty": "RTK çıktısını önizlemek için bir örnek çalıştırın.",
+ "detected": "Algılanan",
"masterSwitchOffAlert": "Token Saver ana şalteri KAPALI — Endpoint sayfasından açana kadar bu ayarlar istekleri etkilemeyecektir.",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "Filtrelenen tokenlar",
+ "filtersActive": "Etkin filtreler",
+ "requests": "İstekler",
+ "avgSavings": "Ortalama tasarruf",
"simpleMode": "Basit",
"advancedMode": "Gelişmiş",
"searchFilters": "Arama filtreleri...",
@@ -8429,7 +8440,7 @@
"discoverSamples": "{count} örnek tarandı",
"discoverHits": "Örnekler genelinde {hits}×",
"learnHeading": "Bir komut için filtre öğren",
- "learnCommandPlaceholder": "e.g. npm install",
+ "learnCommandPlaceholder": "örn. npm install",
"learnButton": "Filtre öner",
"learnEmpty": "Henüz öneri yok. Çalıştırdığınız bir komutu yazın ve tarayın.",
"learnSamplesUsed": "Eşleşen {count} örnekten öğrenildi",
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "Sıkıştırma Kombinasyonları",
+ "description": "Farklı yönlendirme senaryoları için motorların nasıl birleştirileceğini tanımlayın.",
+ "createCombo": "Sıkıştırma Kombinasyonu Oluştur",
+ "editCombo": "Düzenle",
+ "deleteCombo": "Sil",
+ "deleteConfirm": "Bu sıkıştırma kombinasyonu silinsin mi?",
+ "pipeline": "İşlem Hattı",
+ "addStep": "Adım Ekle",
+ "removeStep": "Kaldır",
+ "name": "Ad",
+ "descriptionField": "Açıklama",
+ "languagePacks": "Dil Paketleri",
+ "outputMode": "Çıktı Modu",
+ "assignToRouting": "Yönlendirme Kombinasyonlarına Ata",
+ "noAssignments": "Kullanılabilir yönlendirme kombinasyonu yok",
+ "default": "Varsayılan",
+ "setAsDefault": "Varsayılan Olarak Ayarla",
+ "save": "Kaydet",
+ "cancel": "İptal",
+ "enabled": "Etkin",
"loading": "Yükleniyor…",
"hubTitle": "Sıkıştırma Merkezi",
"hubDescription": "Küresel olarak hangi sıkıştırma profilinin çalışacağını seçin.",
@@ -8657,22 +8668,22 @@
"contextEditingNote": "Şu anda yalnızca Claude (Anthropic) için kullanılabilir. Devredilmiş bir moddur: sağlayıcı eski araç kullanımı bloklarını sunucu tarafında temizler — mesajı yeniden yazmayız. Diğer sağlayıcıları etkilemez.",
"namedCombos": "Adlandırılmış kombinasyonlar",
"namedCombosDescription": "Farklı boru hatlarını kaydedin ve bunları belirli yönlendirme kombinasyonlarına atayın.",
+ "activeProfileMasterSwitchOffWarning": "Aşağıdaki etkin profil, ana \"İstem Sıkıştırma\" anahtarı açılana kadar çalışmaz.",
+ "activeProfileMasterSwitchOffCta": "Ayarlardan açın",
"comboNamePlaceholder": "Kombinasyon adı",
"descriptionPlaceholder": "Açıklama",
"nameRequired": "Kaydetmeden önce bir kombinasyon adı girin.",
"pipelineRequired": "Kaydetmeden önce en az bir boru hattı adımı ekleyin.",
"saveComboFailed": "Kombinasyon kaydedilemedi (HTTP {status}).",
"deleteNamedConfirm": "“{name}” kombinasyonu silinsin mi?",
- "intensityLite": "Lite",
+ "intensityLite": "Hafif",
"intensityFull": "Tam",
"intensityUltra": "Ultra",
"active": "Etkin",
"languagePacksList": "Dil paketleri: {packs}",
"dragToReorder": "Adımı yeniden sıralamak için sürükleyin",
"engine": "Motor",
- "intensity": "Yoğunluk",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Yoğunluk"
},
"compressionStudio": {
"noRun": "Kullanılabilir sıkıştırma çalışması yok.",
@@ -8701,7 +8712,7 @@
"run": "Çalıştır",
"laneRejected": "reddedildi: {reason}",
"error": "hata",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Birleşik işlem hattı önizlemesi başarısız oldu: {reason}",
"combinedFlow": "Birleşik akış",
"eachLayer": "Her katman ayrı ayrı",
"diff": "Fark",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Motoru etkinleştir",
"enableDescription": "Yığında en son çalışır (RTK/Caveman metni temizledikten sonra OmniGlyph geri kalanını görüntülere dönüştürür) ve ayrıca omniglyph modu aracılığıyla bağımsız olarak çalışır. Bu bir önizlemedir ve uçtan uca doğrulama tamamlanana kadar varsayılan olarak kapalı kalır.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Sıkıştırma profili",
+ "profileDescription": "Profil bir alt sınır değil, üst sınırdır: Daha katı bir profil, adım bazında geçersiz kılma ile yeniden gevşetilemez. Bu kod tabanında yapılan ölçümlere göre: Kodlama güvenli veya dengeli profilde, henüz geçmiş biriktirmemiş bir oturum hiçbir şeyi sıkıştırmaz; çünkü her ikisi de minimum karakter eşiğini yükseltir ve sistem istemini, araç şemalarını ve araç sonuçlarını özgün hâliyle korur.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Agresif (varsayılan)",
+ "description": "Yayımlanan makbuzların ölçtüğü politika. Sistem istemini, araç belgelerini ve yoğun geçmişi görüntüler."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Dengeli",
+ "description": "Canlı durumu özgün hâliyle korur ve son 8 etkileşimi muhafaza eder; yalnızca daha eski, kapanmış geçmişi daraltır."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Kodlama güvenli",
+ "description": "Yetkilendirmeyi, araç şemalarını ve canlı araç çıktısını özgün hâliyle koruyarak son 12 etkileşimi muhafaza eder. Oturum geçmiş biriktirene kadar hiçbir şeyi sıkıştırmaz."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Doğrudan aktarım",
+ "description": "Dönüştürmeden yönlendirir. Motor atlanır ve istek değiştirilmeden iletilir."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph sıkıştırma profilini seçin",
"saved": "Kaydedildi.",
"saveFailed": "Kaydedilemedi.",
"enableAria": "OmniGlyph motorunu etkinleştir",
@@ -8812,7 +8823,7 @@
"stateError": "Hata",
"stateNotInstalled": "Yüklü değil",
"stateUnknown": "Bilinmiyor",
- "port": "port {port}",
+ "port": "{port} numaralı bağlantı noktası",
"externalBadge": "Harici olarak yönetiliyor",
"externalTitle": "Harici 9Router algılandı",
"externalDescription": "OmniRoute, {host}:{port} adresinde 9Router buldu. Yaşam döngüsü, günlükleri, güncellemeleri ve servis anahtarı harici kurulum tarafından yönetilmeye devam eder.",
@@ -8847,7 +8858,7 @@
"install9RouterDescription": "9Router'ı npm aracılığıyla indirir ve kurar. Yaklaşık 500 MB disk alanı gerektirir.",
"version": "Sürüm",
"versionHint": "“latest” veya belirli bir sürüm girin (örneğin, 1.2.3).",
- "servicePort": "Port",
+ "servicePort": "Bağlantı Noktası",
"servicePortHint": "OmniRoute ve 9Router farklı portlar kullanmalıdır. Varsayılan 9Router portu 20130'dur.",
"installationFailed": "Kurulum başarısız oldu (HTTP {status})",
"installationSucceeded": "9Router başarıyla kuruldu. Başlatılıyor…",
@@ -8897,38 +8908,38 @@
"save": "Kaydet"
},
"contextCaveman": {
- "title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "title": "Caveman Motoru",
+ "description": "Kural tabanlı mesaj sıkıştırma, dil paketleri, analizler ve çıktı modu denetimleri.",
"advancedConfig": "Gelişmiş Yapılandırma",
"advancedConfigDesc": "Sıkıştırma davranışında ince ayar yapın",
"aggressiveSettings": "Agresif Ayarlar",
"aggressiveSettingsDesc": "Potansiyel kalite ödünleşimleriyle maksimum sıkıştırma",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "İstekler",
+ "tokensSaved": "Tasarruf edilen tokenlar",
+ "savingsPercent": "Tasarruf %",
+ "avgLatency": "Ort. gecikme",
+ "languagePacks": "Dil Paketleri",
+ "languagePacksDesc": "Belirli diller için sıkıştırma kurallarını etkinleştirin.",
"labelAutoTrigger": "Bağlam aşıldığında otomatik sıkıştır",
"labelCompressionRate": "Sıkıştırma gücü",
"labelMaxTokens": "Mesaj başına belirteçleri hedefleyin",
"labelMinLength": "Minimum mesaj uzunluğu",
"labelMinSavings": "Kaydedilecek minimum belirteçler",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Etkin",
+ "autoDetect": "Dili otomatik algıla",
+ "rulesCount": "{count} kural",
"inputCompressionTitle": "Girdi sıkıştırma",
"inputCompressionDesc": "Sohbet geçmişini daha kısa ifadelerle yeniden yazar. Girdi token'larını ~%50 oranında azaltır.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Sıkıştırma Analitiği",
+ "noAnalytics": "Henüz sıkıştırma analitiği yok.",
"masterDisabledWarning": "Token Saver ana anahtarı KAPALI — Sıkıştırma Ayarları'ndan açana veya buradan değiştirene kadar bu ayarlar istekleri etkilemeyecektir.",
"outputMode": "Çıkış Modu",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Çıktı Modu",
"quickSettings": "Hızlı Ayarlar",
"quickSettingsDesc": "Başlamak için temel sıkıştırma ayarları",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Otomatik Netlik Baypası",
+ "bypassConditions": "Baypas koşulları",
"bypassConditionsList": "güvenlik, geri döndürülemez, açıklama, düzene duyarlı",
"simpleMode": "Basit",
"advancedMode": "Gelişmiş",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ultra Ayarlar",
"ultraSettingsDesc": "SLM destekli anlamsal sıkıştırma",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Kısa yanıt ver. Teknik terimleri, kodu, hataları, URL'leri ve tanımlayıcıları koru.",
+ "full": "Kısa ve öz yanıt ver. Tüm teknik içeriği koru.",
+ "ultra": "Yaygın teknik kısaltmalarla son derece kısa yanıt ver. Sembolleri aynen koru."
}
},
"translator": {
@@ -9177,7 +9188,7 @@
"conceptHeadline": "Uygulamanız bir API'nin \"dilini\" konuşur. Çevirici, başka bir sağlayıcıyı kullanması için bunu dönüştürür.",
"conceptDiagramAppLabel": "Uygulamanız",
"conceptDiagramSourceLabel": "Kaynak formatı",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (merkez)",
"conceptDiagramTargetLabel": "Hedef sağlayıcı",
"conceptDiagramExampleApp": "ör. Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "Bir JSON isteği yapıştırın; biçim otomatik olarak algılanır.",
"advancedPipelineTitle": "OpenAI ara işlem hattı",
"advancedPipelineSubtitle": "Her çeviri adımını görselleştirin (hub-and-spoke).",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "Akış Dönüştürücü (Chat → Responses SSE)",
"advancedStreamTransformSubtitle": "Chat Completions SSE'yi Responses API'ye dönüştürür.",
"advancedTestBenchTitle": "Test Tezgahı (8 senaryo)",
"advancedTestBenchSubtitle": "Tüm senaryoları çalıştırır ve başarılı/başarısız durumunu + uyumluluk yüzdesini raporlar.",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Kalan",
"kiloPassRenews": "{count} gün içinde yenilenir",
"kiloPassUsageLabel": "Bu ayın kullanımı",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Ek Kullanım Kredileri",
+ "kimiExtraUsage": "Ek Kullanım",
+ "kimiExtraUsageEnabled": "Etkin",
+ "kimiExtraUsageDisabled": "Devre Dışı",
+ "kimiExtraUsageFrozen": "Dondurulmuş",
+ "kimiExtraUsageUnavailable": "Kullanılamıyor",
+ "kimiMonthlyUsed": "Bu ay kullanılan",
+ "kimiMonthlyLimit": "Aylık limit",
+ "kimiMonthlyLimitUnlimited": "Sınırsız",
+ "kimiAdditionalCredits": "Ek Krediler",
"loggerTab": "Günlükler",
"proxyTab": "Proxy",
"budgetManagement": "Bütçe Yönetimi",
@@ -9332,7 +9343,7 @@
"evaluateStepDescription": "Yanıtlar beklenen ölçütlerle karşılaştırılır. Her senaryonun başarılı/başarısız sonucu, gecikme metrikleri ve ayrıntılı geri bildirimle gösterilir.",
"evalsStrategyContainsLabel": "İçerir",
"evalsStrategyExactLabel": "Tam Eşleşme",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "Düzenli İfade",
"evalsStrategyCustomLabel": "Özel Mantık",
"evalsStrategyContainsDescription": "LLM çıktısının beklenen alt dizeyi içerip içermediğini kontrol eder.",
"evalsStrategyExactDescription": "LLM çıktısının beklenen değerle tam olarak eşleşip eşleşmediğini kontrol eder.",
@@ -9369,7 +9380,7 @@
"runAllSuites": "Tümünü Çalıştır",
"runAllRunning": "Hepsini çalıştırıyorum...",
"runAllProgress": "{current}/{total} çalıştırılıyor: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# paket başarısız oldu} other {# paket başarısız oldu}}",
"runAllCompleted": "{suites} paketlerini çalıştırdı — {passed} başarılı oldu, {failed} başarısız oldu",
"runAllCompletedWithFailures": "{completed} süit çalıştırdı; {failedSuites} tamamlanamadı",
"runningProgress": "Çalışıyor {current}/{total}...",
@@ -9432,7 +9443,7 @@
"quotaVisibilityUpdateFailed": "Kota görünürlüğü güncellenemedi",
"account": "Hesap",
"modelQuotas": "Model Kotaları",
- "lastUsed": "Last Refreshed",
+ "lastUsed": "Son Yenileme",
"actions": "Eylemler",
"refreshQuota": "Kotayı yenile",
"today": "Bugün",
@@ -9461,7 +9472,7 @@
"tierPro": "Profesyonel",
"tierPlus": "Artı",
"tierFree": "Ücretsiz",
- "tierLite": "Lite",
+ "tierLite": "Hafif",
"tierUnknown": "Bilinmiyor",
"statTotal": "Toplam",
"statCritical": "Kritik",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Krediyi kullan",
"resetCreditRedeemed": "Sıfırlama kullanıldı",
"resetCreditRedeemFailed": "Sıfırlama kredisi kullanılamadı",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Paket kaydedilemedi",
"clone": "Klon",
"exportSuite": "İhracat",
"importSuite": "İthalat",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Geçersiz değerlendirme paketi JSON",
"suiteBuilderCloneSuffix": "kopyala",
"suiteBuilderImportedSuite": "İçe Aktarılan Paket",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
+ "scorecardTitle": "Puan Kartı",
+ "evalApiKey": "API Anahtarı",
+ "scorecardPassRate": "Başarı Oranı",
"targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "actualOutputLabel": "Gerçek Çıktı",
+ "evalTargetHint": "Değerlendirmek için bir model veya kombinasyon seçin.",
+ "suiteBuilderDeleted": "Paket başarıyla silindi",
+ "suiteBuilderCaseCardHint": "Girdi istemini ve beklenen çıktı ölçütlerini tanımlayın.",
+ "nextResetUtc": "Sonraki sıfırlama (UTC)",
+ "scorecardHint": "Tüm değerlendirme paketlerindeki toplu başarı oranları.",
+ "suiteLatestRunsHint": "Bu paket için en son değerlendirme çalıştırmaları.",
+ "saving": "Kaydediliyor",
+ "suiteBuilderCaseModelLabel": "Model (isteğe bağlı)",
+ "evalControlsTitle": "Değerlendirme Kontrolleri",
+ "suiteBuilderEditTitle": "Değerlendirme Paketini Düzenle",
+ "suiteBuilderCaseStrategyLabel": "Doğrulama Stratejisi",
+ "notifySelectDifferentCompareTarget": "Lütfen karşılaştırma için farklı bir hedef seçin",
+ "recentRunsHint": "En son değerlendirme çalıştırmaları gösteriliyor. Ayrıntılı sonuçları görmek için bir çalıştırmaya tıklayın.",
+ "evalCompareHint": "İsteğe bağlı olarak sonuçları ikinci bir hedefle karşılaştırın.",
+ "suiteBuilderCaseInvalid": "Bu senaryoda doğrulama hataları var. Lütfen kaydetmeden önce bunları düzeltin.",
+ "historyEmpty": "Henüz değerlendirme geçmişi yok",
+ "suiteBuilderUpdated": "Paket başarıyla güncellendi",
+ "resetInterval": "Sıfırlama Aralığı",
+ "suiteBuilderCreateTitle": "Değerlendirme Paketi Oluştur",
+ "activePeriodSpend": "Etkin Dönem Harcaması",
+ "evalApiKeyHint": "Değerlendirme istekleri için kullanılacak API anahtarını seçin.",
+ "evalCompareOptional": "Karşılaştır (isteğe bağlı)",
+ "suiteBuilderDeleteFailed": "Paket silinemedi",
+ "suiteBuilderCaseSystemPromptPlaceholder": "İsteğe bağlı sistem talimatları...",
+ "scorecardCases": "Senaryolar",
+ "runCompletedWithScore": "Değerlendirme tamamlandı — %{score} başarı oranı",
+ "suiteBuilderCustomBadge": "Özel",
+ "targetSuiteDefaults": "Paket varsayılanları",
+ "suiteBuilderDeleteConfirm": "Bu paketi silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
+ "suiteBuilderNameLabel": "Paket Adı",
+ "scorecardSuites": "Paketler",
+ "evalCompareTarget": "Karşılaştırma Hedefi",
+ "suiteBuilderCaseModelPlaceholder": "örn. gpt-4o-mini",
+ "evalControlsHint": "Değerlendirme hedefinizi ve API anahtarınızı yapılandırın, ardından model kalitesini doğrulamak için paketleri çalıştırın.",
+ "recentRunsTitle": "Son Çalıştırmalar",
+ "suiteBuilderCaseSystemPromptLabel": "Sistem İstemi",
+ "suiteBuilderCaseExpectedPlaceholder": "örn. def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "örneğin def fibonacci",
"suiteBuilderCaseExpectedPlaceholderExact": "Beklenen yanıtı tam olarak yapıştırın",
"suiteBuilderCaseExpectedPlaceholderRegex": "örneğin ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Eğik çizgileri kaydırmadan bir JavaScript normal ifadesi kullanın.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "örn. Kodlama Kalitesi Paketi",
+ "suiteBuilderAddCase": "Senaryo Ekle",
+ "cancel": "İptal",
+ "evalTarget": "Hedef",
+ "suiteBuilderCaseNameLabel": "Senaryo Adı",
+ "weeklyLimitUsd": "Haftalık Limit (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "örn. Python'da bir fibonacci fonksiyonu yaz",
+ "suiteBuilderNameRequired": "Paket adı gereklidir",
+ "suiteBuilderCaseUserPromptLabel": "Kullanıcı İstemi",
+ "daily": "Günlük",
+ "resultErrorLabel": "Hata",
+ "suiteBuilderBuiltInBadge": "Yerleşik",
+ "suiteBuilderCaseCardTitle": "Test Senaryosu",
"suiteBuilderDuplicateCase": "Çoğalt",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "örn. 50.00",
+ "suiteBuilderCaseTagsHint": "Test senaryolarını düzenlemek için virgülle ayrılmış etiketler.",
+ "notifyEvalRunFailedWithReason": "Değerlendirme başarısız oldu: {reason}",
+ "weekly": "Haftalık",
+ "runEvalRunning": "Değerlendirme çalıştırılıyor...",
+ "delete": "Sil",
+ "resetTimeUtc": "Sıfırlama Zamanı (UTC)",
+ "evalApiKeyAuto": "Otomatik (varsayılanı kullan)",
+ "suiteBuilderDescriptionPlaceholder": "Bu paketin neyi test ettiğine ilişkin isteğe bağlı açıklama...",
+ "targetComparisonTitle": "Hedef Karşılaştırma",
+ "save": "Kaydet",
+ "suiteBuilderCreated": "Paket başarıyla oluşturuldu",
+ "suiteLatestRuns": "Son Çalıştırmalar",
+ "suiteBuilderCaseExpectedLabel": "Beklenen Değer",
+ "historyLatency": "Gecikme",
+ "suiteBuilderCaseTagsPlaceholder": "örn. kodlama, python",
+ "targetTypeCombo": "Kombinasyon",
+ "scorecardPassed": "Başarılı",
+ "suiteBuilderCaseTagsLabel": "Etiketler",
+ "suiteBuilderNewSuite": "Yeni Paket",
+ "notifyEvalLoadFailed": "Değerlendirme verileri yüklenemedi",
+ "notConfigured": "Yapılandırılmadı",
+ "suiteBuilderCaseNamePlaceholder": "örn. Python fibonacci testi",
+ "intervalLabel": "Aralık",
+ "suiteBuilderCreateAction": "Paket Oluştur",
+ "suiteBuilderCasesHint": "Her senaryo bir istem gönderir ve yanıtı doğrular.",
+ "suiteBuilderUpdatedAt": "Güncellendi",
+ "errorBadge": "Hata",
+ "suiteBuilderCasesTitle": "Test Senaryoları",
+ "edit": "Düzenle",
+ "monthly": "Aylık",
+ "suiteBuilderCasesRequired": "En az bir test senaryosu gereklidir",
+ "weeklyLimitSummary": "Haftalık bütçe sınırı özeti",
+ "suiteBuilderDescriptionLabel": "Açıklama",
+ "targetComparisonHint": "Hedefler arasındaki değerlendirme sonuçlarının yan yana karşılaştırması.",
+ "compareCompletedWithScore": "Karşılaştırma tamamlandı — %{score} başarı oranı",
+ "staleQuotaTooltip": "Son yenileme başarısız oldu — önbelleğe alınmış veriler gösteriliyor",
"quotaThresholdLabel": "Dakika kaldı",
"quotaCutoffsColumnHelp": "Kalan kota bu yüzdeye veya altına düştüğünde istekleri durdurun.",
"quotaCutoffsButtonDefault": "Varsayılan",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Sistem metrikleri",
"memory": "Hafıza",
- "memoryShort": "mem",
+ "memoryShort": "bellek",
"uptime": "Çalışma Süresi",
"ariaLabel": "Sistem izleme",
"title": "Sistem İzleyici",
@@ -9860,7 +9871,7 @@
"forgotPassword": "Şifrenizi mi unuttunuz?",
"continueWithOidc": "OIDC ile devam et",
"defaultPasswordHint": "Varsayılan şifre: CHANGEME (INITIAL_PASSWORD ayarlanmadığı sürece)",
- "Authorization": "Authorization",
+ "Authorization": "Yetkilendirme",
"Content-Disposition": "Content-Disposition",
"waitingForAuthorization": "Yetkilendirme bekleniyor...",
"waitingForGoogleAuthorization": "Google yetkilendirmesi bekleniyor...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Antigravity yetkilendirmesi bekleniyor...",
"waitingForQoderAuthorization": "Qoder yetkilendirmesi bekleniyor...",
"exchangingCodeForTokens": "Kod jetonlarla değiştiriliyor...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Uyumsuz Node.js Sürümü",
+ "nodeIncompatibleDesc": "Kullandığınız Node.js {version} sürümü, OmniRoute'un desteklenen güvenli çalışma zamanı politikasının dışındadır. Yama uygulanmış bir Node.js 20.x veya 22.x LTS sürümü kullanın.",
+ "nodeIncompatibleFixLabel": "Düzeltme: Yama uygulanmış bir Node.js 22 LTS sürümü yükleyin",
+ "nodeIncompatibleHint": "OmniRoute, Node.js 22.22.2+ (22.x LTS) veya 24.0.0+ (24.x LTS) gerektirir. Node 24 LTS önerilir.",
"resetViaAppDataTitle": "Uygulama Verileri ile Sıfırla",
"resetViaAppDataDescription": "Şifrenizi sıfırlamak için ayar dosyasını uygulama veri dizininden silin:",
"quitDesktopApp": "OmniRoute masaüstü uygulamasını tamamen kapatın",
@@ -10071,7 +10082,7 @@
"deployPwaTitle": "PWA",
"deployPwaText": "OmniRoute'u Android, iOS ve masaüstü tarayıcılara Progresif Web Uygulaması olarak yükleyin.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "OmniRoute'u Termux aracılığıyla Android'de başsız olarak çalıştırın. Kontrol paneline mobil tarayıcınızdan erişin.",
"featureRoutingTitle": "Çoklu Sağlayıcı Yönlendirme",
"featureRoutingText": "İstekleri tek bir OpenAI uyumlu uç nokta üzerinden 30+ AI sağlayıcısına yönlendirin. Chat, Responses, ses ve görsel API'lerini destekler.",
"featureCombosTitle": "Kombinasyonlar ve Dengeleme",
@@ -10090,7 +10101,7 @@
"featureCloudSyncText": "Şifrelenmiş kimlik bilgileri ve otomatik yük devretme ile uzaktan erişim için yapılandırmanızı Cloudflare Workers ile senkronize edin.",
"providersAcrossConnectionTypes": "Üç bağlantı türünde toplam {count} sağlayıcı.",
"manageProviders": "Sağlayıcıları Yönet",
- "providersCount": "{count} providers",
+ "providersCount": "{count} sağlayıcı",
"providerTypeFree": "Ücretsiz Katman",
"providerTypeOAuth": "OAuth",
"providerTypeApiKey": "API Anahtarı",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Önbellek Yönetimi",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Yenile",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Bellek Kayıtları",
+ "memoryEntriesSub": "Bellek içi LRU",
+ "dbEntries": "Veritabanı Kayıtları",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Önbellek İsabetleri",
+ "cacheHitsSub": "toplam {total} içinden",
+ "tokensSaved": "Tasarruf Edilen Token'lar",
+ "tokensSavedSub": "İsabetlere göre tahmin",
+ "hitRate": "İsabet Oranı",
+ "performance": "Önbellek Performansı",
+ "autoRefresh": "Her {seconds} sn.de bir otomatik yenilenir",
+ "hits": "İsabetler",
+ "misses": "Iskalar",
+ "total": "Toplam",
+ "behavior": "Önbellek Davranışı",
+ "behaviorDeterministic": "Yalnızca temperature=0 olan akışsız istekler önbelleğe alınır.",
+ "behaviorBypass": "{header} üst bilgisiyle atlayın.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "Varsayılan TTL: 30 dakika. {envVar} aracılığıyla yapılandırın.",
+ "idempotency": "İdempotans Katmanı",
+ "activeDedupKeys": "Etkin Tekilleştirme Anahtarları",
+ "dedupWindow": "Tekilleştirme Aralığı",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Önbellek temizlenemedi.",
+ "unavailable": "Önbellek kullanılamıyor",
+ "unavailableDesc": "Önbellek istatistikleri alınamadı. Sunucunun çalıştığından emin olun.",
"loadingCacheAria": "Önbellek yükleniyor",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "İstem Önbelleği (Sağlayıcı Tarafında)",
+ "semanticCache": "Anlamsal Önbellek",
+ "promptCacheSectionDesc": "Önbellek denetiminin nerede etkin olduğunu ve girdilerin ne kadar yeniden kullanıldığını görebilmeniz için kullanım geçmişindeki sağlayıcı taraflı istem önbelleğe alma etkinliğini gösterir.",
+ "promptTrendDesc": "Son 24 saatteki saatlik istek hacmi, önbellek kapsamı ve önbellekten okuma hacmi.",
+ "cachedRequests": "Önbelleğe Alınmış İstekler",
+ "cachedRequests24h": "Önbelleğe Alınmış İstekler (24 sa.)",
+ "cacheHitRate": "Önbellek İsabet Oranı",
+ "cacheRate": "Önbellek Oranı",
+ "cacheRateDesc": "toplam isteklerin",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "İstem Önbelleği Metrikleri",
+ "withCacheControl": "Önbellek Denetimli",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Önbelleği Yeniden Kullanma Oranı",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Tahm. Maliyet Tasarrufu",
+ "lastUpdated": "Son güncelleme",
+ "hoursTracked": "saat izlendi",
+ "busiestHour": "En Yoğun Saat",
+ "peakCacheRate": "En Yüksek Önbellek Oranı",
+ "trendHour": "Saat",
+ "activityVolume": "Etkinlik",
+ "requestsShort": "istek",
+ "inputShort": "Girdi",
+ "cachedShort": "Önbellekte",
+ "writeShort": "Yazma",
+ "resetting": "Sıfırlanıyor...",
+ "resetMetrics": "Metrikleri Sıfırla",
+ "byProvider": "Sağlayıcıya Göre Dağılım",
+ "providerCacheRateDesc": "Her sağlayıcı; yeniden kullanım oranını ham toplamlarla doğrulayabilmeniz için toplam girdi belirteçlerini, önbellekten okunan belirteçleri ve önbelleğe yazılan belirteçleri gösterir.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "İstekler",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Önbellek Eğilimi (24 sa.)",
+ "peakCached": "En yüksek önbelleğe alınan",
+ "cached": "Önbelleğe alınan",
+ "overview": "Genel Bakış",
"tableProvider": "Sağlayıcı",
"tableModel": "Model",
"performanceTitle": "Performans",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute'un kendi deterministik yanıt önbelleği. Etkinleştirildiğinde, tekrarlanan ve akış kullanmayan temperature=0 istekleri üst sağlayıcıya gönderilmeden yerel olarak yanıtlanabilir.",
+ "semanticCacheDisabledDesc": "Semantik önbellek devre dışı. Ayarlar'dan yeniden etkinleştirene kadar OmniRoute yerel yanıtların yeniden kullanımını atlayacak.",
+ "semanticEntriesDesc": "Şu anda SQLite'ta depolanan kalıcı semantik önbellek kayıtları. Sağlayıcı tarafındaki istem önbelleği etkinlikleri burada listelenmez.",
+ "searchEntries": "Kayıtlarda ara...",
+ "search": "Ara",
+ "loading": "Yükleniyor...",
+ "entriesLoadError": "Semantik önbellek kayıtları yüklenemedi.",
+ "noEntries": "Önbellek kaydı bulunamadı",
+ "noPromptCacheData": "Henüz sağlayıcı tarafında herhangi bir istem önbelleği etkinliği kaydedilmedi.",
+ "noTrendData": "Son 24 saat içinde herhangi bir istem önbelleği etkinliği kaydedilmedi.",
+ "signature": "İmza",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Oluşturulma",
+ "expires": "Geçerlilik Sonu",
+ "actions": "İşlemler",
+ "deduplicatedRequests": "Tekilleştirilen İstekler",
+ "savedCalls": "Tasarruf Edilen API Çağrıları",
+ "totalProcessed": "İşlenen Toplam İstek",
+ "disabled": "Devre Dışı",
+ "totalRequests": "Toplam İstek",
"reasoningCache": "Muhakeme Tekrarı",
"reasoningCacheDesc": "Çok turlu takım çağırma akışları için model düşüncesini korur",
"reasoningEntries": "Aktif Girişler",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes} dk önce",
"hoursAgo": "{hours} sa önce",
"daysAgo": "{days} gün önce",
- "entries": "Entries"
+ "entries": "Kayıtlar"
},
"proxyConfigModal": {
"levelGlobal": "Küresel",
@@ -10772,7 +10783,7 @@
"saveConnection": "Bağlantıyı Kaydet",
"gheDescription": "GitHub Enterprise örneğinizin temel URL'sini girin (örneğin, https://ghe.yourcompany.com).",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise URL'si",
"gheUrlRequired": "GitHub Enterprise URL'si gereklidir",
"gitlabDuoSetupTitle": "GitLab Duo OAuth kurulumu",
"gitlabDuoSetupMessage": "GitLab Duo OAuth yapılandırılmamış. {applicationsUrl} adresinde bir OAuth uygulaması kaydedin, yönlendirme URI'sı {redirectUri} ve kapsamlar \"{scopes}\" ile birlikte, ardından {clientIdEnv} (ve isteğe bağlı olarak {clientSecretEnv}) ayarlayın ve yeniden başlatın.",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "İmleç IDE'sini bağlayın",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Cursor ile giriş yap",
+ "tabImport": "Token'ı içe aktar",
+ "loginDescription": "Cursor'ın tarayıcı girişini açar. Docker'da çalışır — ana makinenizin tarayıcısında onaylayın, ardından buraya dönün.",
+ "loginWithCursor": "Cursor ile giriş yap",
+ "startingLogin": "Başlatılıyor…",
+ "waitingApproval": "Cursor giriş onayı bekleniyor…",
+ "openUrlHint": "Tarayıcı açılmadıysa:",
+ "openLoginLink": "Giriş sayfasını aç",
+ "cancelLogin": "Girişi iptal et",
"autoDetecting": "Belirteçler otomatik olarak algılanıyor...",
"readingFromCursor": "İmleç IDE'sinden veya imleç aracısından okuma",
"tokensAutoDetected": "Belirteçler Cursor IDE'den başarıyla otomatik olarak algılandı!",
"cursorNotDetected": "İmleç IDE'si algılanmadı. Lütfen jetonunuzu manuel olarak yapıştırın.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Docker'da mı çalışıyor? Cursor ile giriş yap seçeneğini tercih edin. IDE'den otomatik içe aktarma ve cursor-agent genellikle container içinde kullanılamaz. Bkz. docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Erişim Jetonu",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Yenileme Tokeni",
+ "refreshTokenPlaceholder": "İsteğe bağlı — otomatik token yenilemeyi etkinleştirir",
"required": "*",
"accessTokenPlaceholder": "Erişim belirteci otomatik olarak doldurulacak...",
"machineId": "Makine Kimliği",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Belirteçlerin otomatik algılanması başarısız oldu",
"errorEnterToken": "Lütfen erişim belirtecini girin",
"errorImportFailed": "İçe aktarma başarısız oldu",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Cursor oturumu başlatılamadı",
+ "errorLoginPoll": "Cursor oturum açma işlemi başarısız oldu",
+ "errorLoginTimeout": "Cursor oturum açma işlemi zaman aşımına uğradı — tekrar deneyin"
},
"pricingModal": {
"title": "Fiyatlandırma Yapılandırması",
@@ -10839,9 +10850,9 @@
"selectProxy": "{name} seç",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Eski Verileri İçe Aktar",
+ "bulkAssign": "Toplu Ata",
+ "addProxy": "Proxy Ekle",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Test Et",
+ "edit": "Düzenle",
+ "delete": "Sil",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10883,8 +10894,8 @@
"bulkScopeIdsPlaceholder": "sağlayıcı-openai,sağlayıcı-antropik",
"bulkApply": "Uygula",
"labelScope": "Kapsam",
- "labelProxy": "Proxy",
- "scopeGlobal": "global",
+ "labelProxy": "Vekil Sunucu",
+ "scopeGlobal": "genel",
"scopeProvider": "sağlayıcı",
"scopeAccount": "hesap",
"scopeCombo": "kombo",
@@ -10902,13 +10913,13 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Başarısız",
"successRate": "%{rate} başarı",
"avgLatency": "{latency}ms ortalama",
"assignmentsCount": "{count} atama",
"noData": "No Data",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ms",
"testFailure": "✗ {error}",
"repair": "Onar",
"relayAuthMissing": "kimlik doğrulaması eksik",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Rotasyon stratejisi",
"poolStrategyHint": "round-robin üyeleri sırayla döndürür; random tekdüze şekilde seçer; sticky bir üyeyi bir zaman penceresi boyunca tutar; latency-optimized günlüklere göre en hızlı olanı seçer.",
"poolStrategyFailed": "Rotasyon stratejisi güncellenemedi",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Dönüşümlü",
"strategyRandom": "Rastgele",
"strategySticky": "Yapışkan",
"strategyLatency": "Gecikme optimizasyonlu",
"poolMembersLabel": "Havuz üyeleri ({count})",
"poolNoMembers": "Bu havuzda henüz proxy yok.",
+ "poolEgressObservation": "{connections, plural, one {# bağlantı} other {# bağlantı}} tarafından kullanılan {exits, plural, one {# çıkış} other {# çıkış}} · tek bir çıkışta en fazla {max} · son {hours} sa.",
+ "poolEgressObservationEmpty": "Son {hours} sa. içinde trafik gözlemlenmedi",
+ "poolEgressObservationHint": "Pencere boyunca proxy günlüğünden hesaplanır: Bu havuzun üyeleri için gözlemlenen farklı çıkış IP'leri ve bunları kullanan OmniRoute bağlantıları. \"Tek bir çıkışta\", aynı anda değil, pencere boyunca anlamına gelir. IP başına 429 kilitlemesi yalnızca aynı sağlayıcı ailesinin bağlantılarını duraklatır.",
"poolRemove": "Kaldır",
"poolRemoveFailed": "Proxy havuzdan kaldırılamadı",
"poolAddLabel": "Proxy ekle",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
+ "endpoint": "Uç Nokta",
+ "provider": "Sağlayıcı",
"model": "Model",
"accountKey": "Account Key",
"autoAccounts": "Otomatik ({count} hesap)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Gönder",
+ "cancel": "İptal",
+ "audioFile": "Ses Dosyası",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Tümünü Temizle",
+ "request": "İstek",
+ "response": "Yanıt",
+ "transcription": "Transkripsiyon",
+ "copy": "Kopyala",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "{count} resim oluşturuldu",
"generatedImage": "Oluşturulan resim {index}",
- "save": "Save",
+ "save": "Kaydet",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Yanıtlar",
"completions": "Tamamlamalar",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Gömmeler",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Denetlemeler",
- "rerank": "Rerank",
+ "rerank": "Yeniden Sırala",
"search": "Search",
"webFetch": "Web getirme"
},
"conversationalChat": "Konuşmalı Sohbet",
"clearChat": "Sohbeti temizle",
"typeMessagePlaceholder": "Bir mesaj yazın... (Yeni satır için Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Sohbet",
+ "tabCompare": "Karşılaştır",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Oluştur",
+ "configPane": "Yapılandırma",
+ "systemPrompt": "Sistem istemi",
+ "systemPromptPlaceholder": "Yardımsever bir asistansınız.",
+ "modelPlaceholder": "örn. openai/gpt-4o",
+ "endpointLabel": "Uç nokta",
+ "parametersLabel": "Parametreler",
+ "collapseConfig": "Yapılandırma panelini daralt",
+ "expandConfig": "Yapılandırma panelini genişlet",
+ "temperature": "Sıcaklık",
+ "maxTokens": "Maksimum token sayısı",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Varlık cezası",
+ "frequencyPenalty": "Sıklık cezası",
"reasoningLabel": "Akıl yürütme",
"thinking": "Düşünme",
"effort": "Çaba",
"effortDefault": "Varsayılan",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Rastgele (boş bırakın)",
+ "presetsLabel": "Ön ayarlar",
+ "loadPreset": "Ön ayarı yükle",
+ "savePreset": "Ön ayarı kaydet",
+ "noPresets": "Ön ayar yok",
+ "presetNamePlaceholder": "Ön ayar adı",
+ "savingPreset": "Kaydediliyor…",
+ "nameRequired": "Ad gerekli",
+ "failedToSavePreset": "Ön ayar kaydedilemedi",
+ "improvePrompt": "İstemi iyileştir",
+ "improvingPrompt": "İyileştiriliyor…",
+ "improvePromptTitle": "İsteminizi yapay zekâyla iyileştirin",
+ "setModelFirst": "Önce bir model belirleyin",
"setModelInConfigFirst": "Öncelikle Yapılandırma panelinde bir model ayarlayın.",
"improvePromptFailed": "İstemi iyileştirme başarısız oldu.",
"improvePromptAria": "Yapay zeka kullanarak istemi iyileştir",
"confirmImprovePrompt": "İstemi iyileştirmeyi onayla",
"improvePromptDescription": "Bu işlem, iyileştirilmiş bir sürüm oluşturmak için mevcut sistem isteminizi trae.ai hesabınıza giriş yapmış olmalısınız. Yetkilendirme sayfası yalnızca mevcut bir oturumu onaylar — sizi giriş yaptıramaz. \"Giriş Başarısız\" mesajını görüyorsanız, \"solo.trae.ai'yi Aç\" seçeneğine tıklayın, giriş yapın ve ardından buraya geri dönün.",
"waitingForAuthorization": "trae.ai için bekleniyor…",
"authorizeWithBrowser": "Tarayıcı ile Yetkilendir",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai'yi aç",
"orPasteManually": "veya bir jetonu manuel olarak yapıştırın",
"manualInstructions": "solo.trae.ai hesabınıza giriş yapın, Geliştirici Araçları → Ağ'ı açın, herhangi bir sohbet mesajı gönderin ve Authorization: Cloud-IDE-JWT {tokenPlaceholder} istek başlığından JWT'yi kopyalayın. JWT ömrü ~14 gündür. Opsiyonel kimlik alanları, aynı istek gövdesindeki common_params içinden gelir.",
"accessTokenLabel": "Erişim Jetonu (Cloud-IDE-JWT)",
@@ -13854,7 +13887,7 @@
}
},
"providerTest": {
- "dialogLabel": "Test {provider}",
+ "dialogLabel": "{provider} sağlayıcısını test et",
"deprecated": "kullanımdan kaldırılmış",
"risk": "risk",
"close": "Kapat",
@@ -13864,7 +13897,7 @@
"clearConversation": "Sohbeti Temizle",
"clear": "Temizle",
"tabs": {
- "test": "Test",
+ "test": "Test et",
"logs": "Kayıtlar"
},
"loadingLogs": "Günlükler yükleniyor…",
@@ -13895,7 +13928,7 @@
"time": "Zaman",
"latency": "Gecikme",
"clientIp": "İstemci IP",
- "proxy": "Proxy",
+ "proxy": "Vekil Sunucu",
"direct": "Doğrudan",
"type": "Türü",
"level": "Seviye",
@@ -14048,11 +14081,11 @@
"actionApprove": "Planı onayla",
"actionCancel": "İptal et",
"actionSeeInGraph": "Grafikte gör",
+ "actionRepeat": "Tekrarla",
"actionDone": "İşlem uygulandı",
"actionFailed": "İşlem başarısız: {error}",
"detailFailed": "Ayrıntılar yüklenemedi: {error}",
"mirroredInA2A": "A2A'da yansıtıldı",
- "actionRepeat": "Tekrarla",
"repeatConfirm": "Onaylamak için tekrar tıklayın",
"repeatDone": "Yeni çalıştırma oluşturuldu",
"repeatUnavailable": "Orijinal girdi kullanılamıyor"
@@ -14066,57 +14099,57 @@
"networkError": "Ağ hatası — sağlayıcı maruziyet ayarı güncellenemedi"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "Destekçi teklifleri",
+ "subtitle": "Radar'dan resmî indirimler, krediler, deneme fırsatları ve incelenmiş iş ortağı avantajları.",
+ "backToRadar": "Radar'a dön",
+ "loading": "Teklifler yükleniyor...",
+ "refresh": "Teklifleri yenile",
+ "refreshing": "Yenileniyor...",
+ "loadFailed": "Teklifleri yenileyemedik. Son doğrulanmış yerel önbellek korunuyor.",
+ "empty": "Şu anda etkin teklif bulunmuyor.",
+ "keyRequiredTitle": "Destekçi anahtarı gerekli",
+ "keyRequiredDescription": "Teklifler, canlı bir Radar avantajıdır. Radar ekranında mevcut bir destekçi anahtarı ekleyin, katkıda bulunan durumunuzu doğrulayın veya bir anahtar edinmek için projeyi destekleyin.",
+ "contributorButton": "Katkıda bulunanım",
+ "supporterButton": "Projeyi destekle",
+ "partnerBadge": "İş ortağı",
+ "officialBadge": "Resmî",
+ "conditionsLabel": "Koşullar:",
+ "validUntil": "{date} tarihine kadar geçerli",
+ "noExpiry": "Duyurulmuş bir sona erme tarihi yok",
+ "openOffer": "Teklifi görüntüle",
+ "trialDays": "{days, plural, one {# gün} other {# gün}}"
},
"radarIntelPage": {
"title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
+ "subtitle": "Radar'a ait ELO sıralamaları ve doğrulanmış katalog değişimleri.",
+ "backToRadar": "Radar'a dön",
+ "loading": "Intel yükleniyor...",
+ "refresh": "Intel'i yenile",
+ "syncing": "Yenileniyor...",
+ "loadFailed": "Intel yenilenemedi. Son doğrulanmış yerel önbellek korunuyor.",
+ "empty": "Henüz doğrulanmış bir Intel anlık görüntüsü mevcut değil.",
+ "supporterBadge": "Radar Destekçisi",
+ "methodology": "Metodoloji",
+ "eloMethod": "ELO, başlangıç {initial}, K={factor}",
+ "freshness": "Katalog güncelliği",
+ "ageDays": "{days, plural, one {# günlük} other {# günlük}}",
+ "trend": "Katalog eğilimi",
+ "modelDelta": "{current} model, +{added} / -{removed}",
+ "ranking": "Model sıralaması",
+ "noRankings": "Henüz doğrulanmış bir karşılaştırma mevcut değil.",
"model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "category": "Kategori",
+ "rating": "Puan",
+ "matches": "Karşılaşmalar",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "Güncel",
+ "aging": "Eskimekte",
+ "stale": "Güncelliğini yitirmiş"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "Büyüyor",
+ "stable": "Sabit",
+ "shrinking": "Küçülüyor"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "Talep sağlayıcı bağlam penceresini aşıyor"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference, bir OmniRoute Açık Kaynak Dostu'dur",
+ "description": "Düzinelerce öncü modeli OpenAI uyumlu tek bir uç nokta üzerinden yeniden sunan, maliyete göre sıralanmış bir ağ geçidi — her isteği liste fiyatını asla aşmadan uygun olan en ucuz sağlayıcıya yönlendirir.",
+ "cta": "API Anahtarı Al",
+ "partnerLinkNote": "İş ortağı bağlantısı",
+ "dismissAriaLabel": "Kapat"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models kataloğunda düşünme düzeyi varyantlarının (ör. -low, -medium, -high) oluşturulmasını devre dışı bırakın."
}
diff --git a/src/i18n/messages/uk-UA.json b/src/i18n/messages/uk-UA.json
index b517d5bf0b..5b95cd89dd 100644
--- a/src/i18n/messages/uk-UA.json
+++ b/src/i18n/messages/uk-UA.json
@@ -190,7 +190,7 @@
"creating": "Створення",
"comboCreated": "Комбінацію створено",
"swapFormats": "Поміняти формати",
- "daysAgo": "Days Ago",
+ "daysAgo": "Днів тому",
"retries": "Повтори",
"errorDuringRestore": "Помилка під час відновлення",
"eventsAppearHint": "Події з'являться тут",
@@ -198,7 +198,7 @@
"webSearchDesc": "Пошук в Інтернеті",
"audioProvidersHeading": "Аудіопровайдери",
"cloudAgentProviders": "Постачальники хмарних агентів",
- "minutesAgo": "Minutes Ago",
+ "minutesAgo": "Хвилин тому",
"a": "A",
"liveAutoRefreshing": "Наживо · автооновлення",
"webSearch": "Веб-пошук",
@@ -214,489 +214,489 @@
"backupReasonManual": "Ручне резервне копіювання",
"safeSearchModerate": "Помірний",
"activeLimiters": "Активні обмежувачі",
- "a2aCardTitle": "A2A Card Title",
- "cloudWorkerUnreachable": "Cloud Worker Unreachable",
- "testFailed": "Test Failed",
- "compatibleBaseUrlHint": "Compatible Base Url Hint",
- "usageTracking": "Usage Tracking",
- "disableCloudTitle": "Disable Cloud Title",
- "noConnections": "No Connections",
- "providerHealth": "Provider Health",
- "confirmDbImport": "Confirm Db Import",
- "notAvailableSymbol": "Not Available Symbol",
- "backupsAvailable": "Backups Available",
- "providerAuto": "Provider Auto",
- "newProviderNamePlaceholder": "New Provider Name Placeholder",
- "a2aQuickStartStep2": "A2A Quick Start Step2",
- "ok": "Ok",
- "available": "Available",
- "noBackupYet": "No Backup Yet",
- "more": "More",
- "noCompatibleYet": "No Compatible Yet",
- "multiProvider": "Multi Provider",
- "repairEnvHint": "Repair Env Hint",
- "disablingCloud": "Disabling Cloud",
- "testBench": "Test Bench",
- "valid": "Valid",
- "cloudBenefitShare": "Cloud Benefit Share",
- "mcpCardTitle": "Mcp Card Title",
- "disableConfirm": "Disable Confirm",
- "filters": "Filters",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "saveComboDefaults": "Save Combo Defaults",
- "cloudConnectedVerified": "Cloud Connected Verified",
- "uptime": "Uptime",
- "compatibleProdPlaceholder": "Compatible Prod Placeholder",
- "fallbackChainsTitle": "Fallback Chains Title",
- "oauthLabel": "Oauth Label",
- "a2aCardDescription": "A2A Card Description",
- "okShort": "Ok Short",
- "maintenance": "Maintenance",
- "formatConverter": "Format Converter",
- "zedImportNetworkError": "Zed Import Network Error",
- "apiKeyLabel": "Api Key Label",
- "noModelsForProvider": "No Models For Provider",
- "mcpCardDescription": "Mcp Card Description",
- "apiTypeLabel": "Api Type Label",
- "configuredProvidersLabel": "Configured Providers Label",
- "maxRetriesLabel": "Max Retries Label",
- "title": "Title",
- "output": "Output",
- "prefixHint": "Prefix Hint",
- "skipWizard": "Skip Wizard",
- "failedCount": "Failed Count",
- "confirmDbImportDesc": "Confirm Db Import Desc",
- "entries": "Entries",
- "until": "Until",
- "disableCombo": "Disable Combo",
- "liveMonitorDescriptionPrefix": "Live Monitor Description Prefix",
- "runningCount": "Running Count",
- "noActiveConnectionsInGroup": "No Active Connections In Group",
- "savedSuccessfully": "Saved Successfully",
- "systemStorage": "System Storage",
- "videoDesc": "Video Desc",
- "maxResults": "Max Results",
- "timeRangeMonth": "Time Range Month",
- "testSummary": "Test Summary",
- "failedSetPassword": "Failed Set Password",
- "audio": "Audio",
- "restore": "Restore",
- "disableWarning": "Disable Warning",
- "moderationsDesc": "Moderations Desc",
- "providerHealthStatusAria": "Provider Health Status Aria",
- "modelNamePlaceholder": "Model Name Placeholder",
- "mcpQuickStartStep2": "Mcp Quick Start Step2",
- "quickStart": "Quick Start",
- "fullExportFailedWithError": "Full Export Failed With Error",
- "loadingBackups": "Loading Backups",
- "anthropicBaseUrlPlaceholder": "Anthropic Base Url Placeholder",
- "description": "Description",
- "noProviderFound": "No Provider Found",
- "auto": "Auto",
- "protocolsDescription": "Protocols Description",
- "cloudSessionNote": "Cloud Session Note",
- "advancedSettings": "Advanced Settings",
- "defaultStrategy": "Default Strategy",
- "purgeExpiredLogs": "Purge Expired Logs",
- "justNow": "Just Now",
- "providerTestFailed": "Provider Test Failed",
- "openaiBaseUrlPlaceholder": "Openai Base Url Placeholder",
- "image": "Image",
- "failedCreateChain": "Failed Create Chain",
- "importDatabase": "Import Database",
- "allDataLocal": "All Data Local",
- "sectionTitle": "Section Title",
- "failedToggle": "Failed Toggle",
- "editCombo": "Edit Combo",
- "testResults": "Test Results",
- "searchQuery": "Search Query",
+ "a2aCardTitle": "Заголовок картки A2A",
+ "cloudWorkerUnreachable": "Хмарний воркер недоступний",
+ "testFailed": "Тест не пройдено",
+ "compatibleBaseUrlHint": "Підказка щодо сумісної базової URL-адреси",
+ "usageTracking": "Відстеження використання",
+ "disableCloudTitle": "Заголовок вимкнення хмари",
+ "noConnections": "Немає підключень",
+ "providerHealth": "Стан провайдера",
+ "confirmDbImport": "Підтвердження імпорту БД",
+ "notAvailableSymbol": "Символ недоступності",
+ "backupsAvailable": "Доступні резервні копії",
+ "providerAuto": "Автоматичний вибір провайдера",
+ "newProviderNamePlaceholder": "Заповнювач назви нового провайдера",
+ "a2aQuickStartStep2": "Крок 2 швидкого старту A2A",
+ "ok": "Гаразд",
+ "available": "Доступно",
+ "noBackupYet": "Резервних копій ще немає",
+ "more": "Більше",
+ "noCompatibleYet": "Сумісних варіантів ще немає",
+ "multiProvider": "Кілька провайдерів",
+ "repairEnvHint": "Підказка щодо відновлення середовища",
+ "disablingCloud": "Вимкнення хмари",
+ "testBench": "Випробувальний стенд",
+ "valid": "Дійсне",
+ "cloudBenefitShare": "Перевага хмари: спільний доступ",
+ "mcpCardTitle": "Заголовок картки MCP",
+ "disableConfirm": "Підтвердити вимкнення",
+ "filters": "Фільтри",
+ "expirationBannerExpiredDesc": "Опис банера про завершення терміну дії",
+ "saveComboDefaults": "Зберегти типові значення комбінації",
+ "cloudConnectedVerified": "Підключення до хмари перевірено",
+ "uptime": "Час безвідмовної роботи",
+ "compatibleProdPlaceholder": "Заповнювач сумісного робочого середовища",
+ "fallbackChainsTitle": "Заголовок ланцюжків резервного перемикання",
+ "oauthLabel": "Мітка OAuth",
+ "a2aCardDescription": "Опис картки A2A",
+ "okShort": "Гаразд, коротко",
+ "maintenance": "Технічне обслуговування",
+ "formatConverter": "Конвертер форматів",
+ "zedImportNetworkError": "Помилка мережі під час імпорту Zed",
+ "apiKeyLabel": "Мітка ключа API",
+ "noModelsForProvider": "Немає моделей для провайдера",
+ "mcpCardDescription": "Опис картки MCP",
+ "apiTypeLabel": "Мітка типу API",
+ "configuredProvidersLabel": "Мітка налаштованих провайдерів",
+ "maxRetriesLabel": "Мітка максимальної кількості повторних спроб",
+ "title": "Заголовок",
+ "output": "Вивід",
+ "prefixHint": "Підказка для префікса",
+ "skipWizard": "Пропустити майстер налаштування",
+ "failedCount": "Кількість невдалих",
+ "confirmDbImportDesc": "Опис підтвердження імпорту БД",
+ "entries": "Записи",
+ "until": "До",
+ "disableCombo": "Вимкнути комбінацію",
+ "liveMonitorDescriptionPrefix": "Префікс опису моніторингу в реальному часі",
+ "runningCount": "Кількість запущених",
+ "noActiveConnectionsInGroup": "У групі немає активних з’єднань",
+ "savedSuccessfully": "Успішно збережено",
+ "systemStorage": "Системне сховище",
+ "videoDesc": "Опис відео",
+ "maxResults": "Максимальна кількість результатів",
+ "timeRangeMonth": "Часовий діапазон: місяць",
+ "testSummary": "Підсумок тестування",
+ "failedSetPassword": "Не вдалося встановити пароль",
+ "audio": "Аудіо",
+ "restore": "Відновити",
+ "disableWarning": "Попередження про вимкнення",
+ "moderationsDesc": "Опис модерацій",
+ "providerHealthStatusAria": "ARIA-мітка стану справності провайдера",
+ "modelNamePlaceholder": "Заповнювач назви моделі",
+ "mcpQuickStartStep2": "Крок 2 швидкого початку роботи з MCP",
+ "quickStart": "Швидкий початок",
+ "fullExportFailedWithError": "Не вдалося виконати повний експорт через помилку",
+ "loadingBackups": "Завантаження резервних копій",
+ "anthropicBaseUrlPlaceholder": "Заповнювач базової URL-адреси Anthropic",
+ "description": "Опис",
+ "noProviderFound": "Постачальника не знайдено",
+ "auto": "Автоматично",
+ "protocolsDescription": "Опис протоколів",
+ "cloudSessionNote": "Примітка про хмарний сеанс",
+ "advancedSettings": "Розширені налаштування",
+ "defaultStrategy": "Стратегія за замовчуванням",
+ "purgeExpiredLogs": "Очистити прострочені журнали",
+ "justNow": "Щойно",
+ "providerTestFailed": "Не вдалося перевірити постачальника",
+ "openaiBaseUrlPlaceholder": "Заповнювач базової URL-адреси Openai",
+ "image": "Зображення",
+ "failedCreateChain": "Не вдалося створити ланцюжок",
+ "importDatabase": "Імпортувати базу даних",
+ "allDataLocal": "Усі дані зберігаються локально",
+ "sectionTitle": "Заголовок розділу",
+ "failedToggle": "Не вдалося перемкнути",
+ "editCombo": "Редагувати комбінацію",
+ "testResults": "Результати перевірки",
+ "searchQuery": "Пошуковий запит",
"addCcCompatible": "Add Cc Compatible",
- "duplicate": "Duplicate",
- "createCombo": "Create Combo",
- "searchTypeWeb": "Search Type Web",
- "addChain": "Add Chain",
- "prefixLabel": "Prefix Label",
- "listModelsDesc": "List Models Desc",
- "databaseSize": "Database Size",
- "chainCreated": "Chain Created",
- "providerTestTimeout": "Provider Test Timeout",
- "routingStrategy": "Routing Strategy",
- "translateAction": "Translate Action",
- "exportFailed": "Export Failed",
- "connectedVerificationPending": "Connected Verification Pending",
- "a2aQuickStartTitle": "A2A Quick Start Title",
- "couldNotTest": "Could Not Test",
- "testAllCompatible": "Test All Compatible",
- "anthropicCompatibleName": "Anthropic Compatible Name",
- "disabling": "Disabling",
- "failedEnable": "Failed Enable",
- "categoryUtility": "Category Utility",
- "customUrlOptional": "Custom Url Optional",
- "localProviders": "Local Providers",
- "comboNamePlaceholder": "Combo Name Placeholder",
- "memoryRss": "Memory Rss",
- "disableProvider": "Disable Provider",
- "welcomeDesc": "Welcome Desc",
- "nameLabel": "Name Label",
- "allOperational": "All Operational",
- "backupNow": "Backup Now",
- "providerMaxRetriesAria": "Provider Max Retries Aria",
- "textToSpeechDesc": "Text To Speech Desc",
- "machineId": "Machine Id",
- "globalProxy": "Global Proxy",
- "hitsMisses": "Hits Misses",
- "testDesc": "Test Desc",
- "chatDesc": "Chat Desc",
- "importSuccess": "Import Success",
- "chat": "Chat",
- "a2aQuickStartStep1": "A2A Quick Start Step1",
- "importFailed": "Import Failed",
- "inputPlaceholder": "Input Placeholder",
- "providerModelsTitle": "Provider Models Title",
- "lastBackup": "Last Backup",
- "yourEndpoint": "Your Endpoint",
- "autoDisableThresholdDesc": "Auto Disable Threshold Desc",
- "rerankDesc": "Rerank Desc",
- "modelsPathPlaceholder": "Models Path Placeholder",
- "noCombosYet": "No Combos Yet",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
- "comboDefaultsGuideHint1": "Combo Defaults Guide Hint1",
- "enableCloudTitle": "Enable Cloud Title",
- "configuredProvidersHint": "Configured Providers Hint",
- "paused": "Paused",
- "llmProviders": "Llm Providers",
- "enableCombo": "Enable Combo",
- "removeProviderOverrideAria": "Remove Provider Override Aria",
- "nodeVersion": "Node Version",
+ "duplicate": "Дублювати",
+ "createCombo": "Створити комбінацію",
+ "searchTypeWeb": "Тип пошуку: веб",
+ "addChain": "Додати ланцюжок",
+ "prefixLabel": "Мітка префікса",
+ "listModelsDesc": "Опис списку моделей",
+ "databaseSize": "Розмір бази даних",
+ "chainCreated": "Ланцюжок створено",
+ "providerTestTimeout": "Час очікування перевірки постачальника вичерпано",
+ "routingStrategy": "Стратегія маршрутизації",
+ "translateAction": "Перекласти",
+ "exportFailed": "Не вдалося експортувати",
+ "connectedVerificationPending": "Підключено, очікується перевірка",
+ "a2aQuickStartTitle": "Заголовок швидкого старту A2A",
+ "couldNotTest": "Не вдалося перевірити",
+ "testAllCompatible": "Перевірити всі сумісні",
+ "anthropicCompatibleName": "Назва сумісного з Anthropic постачальника",
+ "disabling": "Вимкнення",
+ "failedEnable": "Не вдалося ввімкнути",
+ "categoryUtility": "Категорія «Службові»",
+ "customUrlOptional": "Власна URL-адреса (необов’язково)",
+ "localProviders": "Локальні провайдери",
+ "comboNamePlaceholder": "Заповнювач назви комбінації",
+ "memoryRss": "Резидентна пам’ять (RSS)",
+ "disableProvider": "Вимкнути провайдера",
+ "welcomeDesc": "Опис привітання",
+ "nameLabel": "Мітка назви",
+ "allOperational": "Усі системи працюють",
+ "backupNow": "Створити резервну копію зараз",
+ "providerMaxRetriesAria": "ARIA-мітка максимальної кількості повторних спроб провайдера",
+ "textToSpeechDesc": "Опис перетворення тексту на мовлення",
+ "machineId": "Ідентифікатор машини",
+ "globalProxy": "Глобальний проксі",
+ "hitsMisses": "Влучання та промахи",
+ "testDesc": "Опис тесту",
+ "chatDesc": "Опис чату",
+ "importSuccess": "Імпорт виконано успішно",
+ "chat": "Чат",
+ "a2aQuickStartStep1": "Крок 1 швидкого старту A2A",
+ "importFailed": "Не вдалося імпортувати",
+ "inputPlaceholder": "Заповнювач поля введення",
+ "providerModelsTitle": "Назва розділу моделей провайдера",
+ "lastBackup": "Остання резервна копія",
+ "yourEndpoint": "Ваша кінцева точка",
+ "autoDisableThresholdDesc": "Опис порога автоматичного вимкнення",
+ "rerankDesc": "Опис повторного ранжування",
+ "modelsPathPlaceholder": "Заповнювач шляху до моделей",
+ "noCombosYet": "Комбінацій ще немає",
+ "connectedVerificationPendingWithError": "Підключено, очікується перевірка з помилкою",
+ "comboDefaultsGuideHint1": "Підказка 1 посібника зі стандартних параметрів комбінації",
+ "enableCloudTitle": "Назва розділу ввімкнення хмари",
+ "configuredProvidersHint": "Підказка щодо налаштованих провайдерів",
+ "paused": "Призупинено",
+ "llmProviders": "Провайдери LLM",
+ "enableCombo": "Увімкнути комбінацію",
+ "removeProviderOverrideAria": "ARIA-мітка видалення перевизначення провайдера",
+ "nodeVersion": "Версія Node",
"openai": "Openai",
- "exportFailedWithError": "Export Failed With Error",
- "proxyConfigured": "Proxy Configured",
- "concurrencyPerModel": "Concurrency Per Model",
- "protocolTasksLabel": "Protocol Tasks Label",
- "oauthProviders": "Oauth Providers",
- "lockedCount": "Locked Count",
- "deleteChainConfirm": "Delete Chain Confirm",
- "recentTranslations": "Recent Translations",
- "zedImportButton": "Zed Import Button",
- "responsesDesc": "Responses Desc",
- "testedCount": "Tested Count",
- "providersCommaSeparatedPlaceholder": "Providers Comma Separated Placeholder",
- "signatureDefaults": "Signature Defaults",
- "errorCreating": "Error Creating",
- "timeRangeYear": "Time Range Year",
+ "exportFailedWithError": "Не вдалося експортувати через помилку",
+ "proxyConfigured": "Проксі налаштовано",
+ "concurrencyPerModel": "Паралельність для кожної моделі",
+ "protocolTasksLabel": "Мітка завдань протоколу",
+ "oauthProviders": "Провайдери OAuth",
+ "lockedCount": "Кількість заблокованих",
+ "deleteChainConfirm": "Підтвердження видалення ланцюжка",
+ "recentTranslations": "Нещодавні переклади",
+ "zedImportButton": "Кнопка імпорту Zed",
+ "responsesDesc": "Опис відповідей",
+ "testedCount": "Кількість протестованих",
+ "providersCommaSeparatedPlaceholder": "Заповнювач для провайдерів, розділених комами",
+ "signatureDefaults": "Типові значення підпису",
+ "errorCreating": "Помилка під час створення",
+ "timeRangeYear": "Часовий діапазон: рік",
"compatibleLabel": "Compatible Label",
- "cloudDisabledSuccess": "Cloud Disabled Success",
- "deleteConfirm": "Delete Confirm",
- "check": "Check",
- "safeSearch": "Safe Search",
- "protocolLastActivity": "Protocol Last Activity",
- "openMcpDashboard": "Open Mcp Dashboard",
+ "cloudDisabledSuccess": "Хмару успішно вимкнено",
+ "deleteConfirm": "Підтвердження видалення",
+ "check": "Перевірити",
+ "safeSearch": "Безпечний пошук",
+ "protocolLastActivity": "Остання активність протоколу",
+ "openMcpDashboard": "Відкрити панель керування MCP",
"testBenchTab": "Test Bench Tab",
- "chatPathLabel": "Chat Path Label",
- "retryDelay": "Retry Delay",
- "errorUpdating": "Error Updating",
- "ideCliIntegrations": "Ide Cli Integrations",
- "imageGeneration": "Image Generation",
- "apiKeyRequired": "Api Key Required",
- "resetAllTitle": "Reset All Title",
- "connectionError": "Connection Error",
- "modelName": "Model Name",
- "apiKeyForCheck": "Api Key For Check",
- "cloudRequestTimeout": "Cloud Request Timeout",
- "showConfiguredOnly": "Show Configured Only",
+ "chatPathLabel": "Мітка шляху чату",
+ "retryDelay": "Затримка повторної спроби",
+ "errorUpdating": "Помилка під час оновлення",
+ "ideCliIntegrations": "Інтеграції з IDE та CLI",
+ "imageGeneration": "Генерація зображень",
+ "apiKeyRequired": "Потрібен ключ API",
+ "resetAllTitle": "Заголовок скидання всіх налаштувань",
+ "connectionError": "Помилка підключення",
+ "modelName": "Назва моделі",
+ "apiKeyForCheck": "Ключ API для перевірки",
+ "cloudRequestTimeout": "Час очікування хмарного запиту",
+ "showConfiguredOnly": "Показувати лише налаштовані",
"showFreeOnly": "Тільки безкоштовно",
"addFirstProvider": "Додайте свого першого постачальника",
"addFirstProviderDesc": "Підключіть постачальника AI, щоб розпочати маршрутизацію запитів через OmniRoute. Ви можете використовувати безкоштовні постачальники, ключі API або облікові записи OAuth.",
"learnMore": "Дізнайтесь більше",
- "includeDomains": "Include Domains",
- "promptCache": "Prompt Cache",
- "cloudConnected": "Cloud Connected",
- "deleteChain": "Delete Chain",
- "chatPathPlaceholder": "Chat Path Placeholder",
- "databasePath": "Database Path",
- "usingLocalServer": "Using Local Server",
- "globalComboConfig": "Global Combo Config",
- "backupFailed": "Backup Failed",
- "tabProtocols": "Tab Protocols",
- "continue": "Continue",
- "categorySearch": "Category Search",
- "rateLimitStatus": "Rate Limit Status",
- "repairEnvSuccess": "Repair Env Success",
- "nameRequired": "Name Required",
- "country": "Country",
- "trackMetricsDesc": "Track Metrics Desc",
- "durationSecondsShort": "Duration Seconds Short",
- "formatConverterDescription": "Format Converter Description",
- "cloudBenefitAccess": "Cloud Benefit Access",
- "maxRetries": "Max Retries",
- "queueTimeout": "Queue Timeout",
+ "includeDomains": "Включити домени",
+ "promptCache": "Кеш промптів",
+ "cloudConnected": "Хмару підключено",
+ "deleteChain": "Видалити ланцюжок",
+ "chatPathPlaceholder": "Заповнювач шляху чату",
+ "databasePath": "Шлях до бази даних",
+ "usingLocalServer": "Використовується локальний сервер",
+ "globalComboConfig": "Глобальна конфігурація комбінацій",
+ "backupFailed": "Не вдалося створити резервну копію",
+ "tabProtocols": "Протоколи вкладок",
+ "continue": "Продовжити",
+ "categorySearch": "Пошук категорій",
+ "rateLimitStatus": "Стан обмеження частоти запитів",
+ "repairEnvSuccess": "Середовище успішно відновлено",
+ "nameRequired": "Ім’я обов’язкове",
+ "country": "Країна",
+ "trackMetricsDesc": "Опис відстеження метрик",
+ "durationSecondsShort": "Тривалість у секундах (скорочено)",
+ "formatConverterDescription": "Опис конвертера форматів",
+ "cloudBenefitAccess": "Доступ до переваг хмари",
+ "maxRetries": "Максимальна кількість повторних спроб",
+ "queueTimeout": "Час очікування черги",
"queueDepth": "Глибина черги",
- "addProvider": "Add Provider",
- "realtime": "Realtime",
- "totalTranslations": "Total Translations",
- "protocolActiveStreamsLabel": "Protocol Active Streams Label",
- "repairEnv": "Repair Env",
- "modelsCount": "Models Count",
- "viewBackups": "View Backups",
- "responsesApi": "Responses Api",
- "copyComboName": "Copy Combo Name",
- "failures": "Failures",
- "failedUpdate": "Failed Update",
- "imageDesc": "Image Desc",
- "failedCreate": "Failed Create",
- "remainingOfLimit": "Remaining Of Limit",
- "protocolsTitle": "Protocols Title",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "source": "Source",
- "failed": "Failed",
+ "addProvider": "Додати провайдера",
+ "realtime": "У реальному часі",
+ "totalTranslations": "Усього перекладів",
+ "protocolActiveStreamsLabel": "Позначка активних потоків протоколу",
+ "repairEnv": "Відновити середовище",
+ "modelsCount": "Кількість моделей",
+ "viewBackups": "Переглянути резервні копії",
+ "responsesApi": "API відповідей",
+ "copyComboName": "Копіювати назву комбінації",
+ "failures": "Невдачі",
+ "failedUpdate": "Не вдалося оновити",
+ "imageDesc": "Опис зображення",
+ "failedCreate": "Не вдалося створити",
+ "remainingOfLimit": "Залишок від ліміту",
+ "protocolsTitle": "Назва протоколів",
+ "expirationBannerExpiringSoonDesc": "Опис банера про завершення терміну дії найближчим часом",
+ "source": "Джерело",
+ "failed": "Не вдалося",
"apiKeyMgmt": "Api Key Mgmt",
- "mcpQuickStartStep1": "Mcp Quick Start Step1",
- "runTest": "Run Test",
- "loadingFallbackChains": "Loading Fallback Chains",
- "healthy": "Healthy",
- "version": "Version",
- "saveBlockWeighted": "Save Block Weighted",
- "zedImportNone": "Zed Import None",
- "noBackupsYet": "No Backups Yet",
- "noGlobalProxy": "No Global Proxy",
- "noModels": "No Models",
- "stickyLimit": "Sticky Limit",
- "passedCount": "Passed Count",
- "zedImportFailed": "Zed Import Failed",
- "saving": "Saving",
- "testAll": "Test All",
- "globalProxyDesc": "Global Proxy Desc",
- "latencyP99": "Latency P99",
- "connectingToCloud": "Connecting To Cloud",
- "responses": "Responses",
- "errorDeleting": "Error Deleting",
- "openaiPrefixPlaceholder": "Openai Prefix Placeholder",
- "enterPassword": "Enter Password",
- "openA2aDashboard": "Open A2A Dashboard",
- "enableProvider": "Enable Provider",
- "modeTest": "Mode Test",
- "failedDeleteChain": "Failed Delete Chain",
- "providerDesc": "Provider Desc",
- "templateLoadHint": "Template Load Hint",
- "lastFailure": "Last Failure",
- "moveDown": "Move Down",
- "providerLabel": "Provider Label",
- "clearCacheFailed": "Clear Cache Failed",
- "imagesGenerations": "Images Generations",
- "repairEnvWorking": "Repair Env Working",
- "millisecondsShort": "Milliseconds Short",
- "globalLabel": "Global Label",
- "failuresPlural": "Failures Plural",
- "completionsLegacyDesc": "Completions Legacy Desc",
- "searchProviders": "Search Providers",
- "chatPathHint": "Chat Path Hint",
- "defaultStrategyDesc": "Default Strategy Desc",
- "latencyP95": "Latency P95",
- "textToSpeech": "Text To Speech",
- "searchType": "Search Type",
- "messages": "Messages",
- "aggregatorsGateways": "Aggregators Gateways",
- "comboStrategyAria": "Combo Strategy Aria",
- "input": "Input",
- "testingConnection": "Testing Connection",
- "excludeDomains": "Exclude Domains",
- "webCookieProviders": "Web Cookie Providers",
- "allTestsPassed": "All Tests Passed",
- "openaiCompatibleName": "Openai Compatible Name",
- "warningCostOptimizedPartialPricing": "Warning Cost Optimized Partial Pricing",
- "comboDefaultsGuideTitle": "Combo Defaults Guide Title",
- "hoursAgo": "Hours Ago",
- "notAvailable": "Not Available",
- "skipAndContinue": "Skip And Continue",
- "moderations": "Moderations",
- "proxyConfig": "Proxy Config",
- "upstreamProxyProviders": "Upstream Proxy Providers",
- "exportAll": "Export All",
- "queuedCount": "Queued Count",
- "resetAll": "Reset All",
- "noTranslations": "No Translations",
- "avgLatency": "Avg Latency",
- "throttleStatus": "Throttle Status",
- "backupRetentionDesc": "Backup Retention Desc",
- "noCBData": "No Cb Data",
- "chainDeleted": "Chain Deleted",
- "timeLeft": "Time Left",
- "expirationBannerExpired": "Expiration Banner Expired",
- "language": "Language",
- "invalidFileType": "Invalid File Type",
- "monitoredProviders": "Monitored Providers",
- "errors": "Errors",
- "heap": "Heap",
- "chatCompletions": "Chat Completions",
- "exampleTemplatesHint": "Example Templates Hint",
- "retryDelayLabel": "Retry Delay Label",
- "audioTranscription": "Audio Transcription",
- "fallbackChainsDesc": "Fallback Chains Desc",
- "exampleTemplates": "Example Templates",
- "connectionsCount": "Connections Count",
- "modelsPathLabel": "Models Path Label",
- "activeProvidersHint": "Active Providers Hint",
- "activeLockouts": "Active Lockouts",
- "invalid": "Invalid",
- "skipPassword": "Skip Password",
- "moveUp": "Move Up",
- "timeRange": "Time Range",
- "stickyLimitDesc": "Sticky Limit Desc",
- "cloudBenefitEdge": "Cloud Benefit Edge",
- "custom": "Custom",
- "verifying": "Verifying",
- "baseUrlLabel": "Base Url Label",
- "setPassword": "Set Password",
- "safeSearchStrict": "Safe Search Strict",
- "noChangesSinceBackup": "No Changes Since Backup",
- "modelsPathHint": "Models Path Hint",
- "audioTranscriptions": "Audio Transcriptions",
- "testCombo": "Test Combo",
- "mcpQuickStartTitle": "Mcp Quick Start Title",
- "comboUpdated": "Combo Updated",
- "weighted": "Weighted",
- "providers": "Providers",
+ "mcpQuickStartStep1": "Крок 1 швидкого старту MCP",
+ "runTest": "Запустити тест",
+ "loadingFallbackChains": "Завантаження ланцюжків резервування",
+ "healthy": "Справний",
+ "version": "Версія",
+ "saveBlockWeighted": "Зберегти зважений блок",
+ "zedImportNone": "Немає імпорту Zed",
+ "noBackupsYet": "Резервних копій ще немає",
+ "noGlobalProxy": "Немає глобального проксі",
+ "noModels": "Немає моделей",
+ "stickyLimit": "Ліміт закріплення",
+ "passedCount": "Кількість успішних перевірок",
+ "zedImportFailed": "Не вдалося імпортувати з Zed",
+ "saving": "Збереження",
+ "testAll": "Перевірити все",
+ "globalProxyDesc": "Опис глобального проксі",
+ "latencyP99": "Затримка P99",
+ "connectingToCloud": "Підключення до хмари",
+ "responses": "Відповіді",
+ "errorDeleting": "Помилка видалення",
+ "openaiPrefixPlaceholder": "Заповнювач префікса Openai",
+ "enterPassword": "Введіть пароль",
+ "openA2aDashboard": "Відкрити панель A2A",
+ "enableProvider": "Увімкнути провайдера",
+ "modeTest": "Тестовий режим",
+ "failedDeleteChain": "Не вдалося видалити ланцюжок",
+ "providerDesc": "Опис провайдера",
+ "templateLoadHint": "Підказка щодо завантаження шаблону",
+ "lastFailure": "Останній збій",
+ "moveDown": "Перемістити вниз",
+ "providerLabel": "Мітка провайдера",
+ "clearCacheFailed": "Не вдалося очистити кеш",
+ "imagesGenerations": "Генерування зображень",
+ "repairEnvWorking": "Відновлення робочого середовища",
+ "millisecondsShort": "мс",
+ "globalLabel": "Глобальна мітка",
+ "failuresPlural": "Збої",
+ "completionsLegacyDesc": "Опис застарілих доповнень",
+ "searchProviders": "Пошук провайдерів",
+ "chatPathHint": "Підказка щодо шляху чату",
+ "defaultStrategyDesc": "Опис стратегії за замовчуванням",
+ "latencyP95": "Затримка P95",
+ "textToSpeech": "Перетворення тексту на мовлення",
+ "searchType": "Тип пошуку",
+ "messages": "Повідомлення",
+ "aggregatorsGateways": "Агрегатори та шлюзи",
+ "comboStrategyAria": "Комбінована стратегія Aria",
+ "input": "Вхідні дані",
+ "testingConnection": "Перевірка підключення",
+ "excludeDomains": "Виключити домени",
+ "webCookieProviders": "Провайдери веб-файлів cookie",
+ "allTestsPassed": "Усі тести пройдено",
+ "openaiCompatibleName": "Назва, сумісна з OpenAI",
+ "warningCostOptimizedPartialPricing": "Попередження: часткове ціноутворення з оптимізацією витрат",
+ "comboDefaultsGuideTitle": "Назва посібника зі стандартних налаштувань комбінацій",
+ "hoursAgo": "Годин тому",
+ "notAvailable": "Недоступно",
+ "skipAndContinue": "Пропустити й продовжити",
+ "moderations": "Модерації",
+ "proxyConfig": "Конфігурація проксі",
+ "upstreamProxyProviders": "Провайдери висхідних проксі",
+ "exportAll": "Експортувати все",
+ "queuedCount": "Кількість у черзі",
+ "resetAll": "Скинути все",
+ "noTranslations": "Перекладів немає",
+ "avgLatency": "Середня затримка",
+ "throttleStatus": "Стан обмеження частоти",
+ "backupRetentionDesc": "Опис терміну зберігання резервних копій",
+ "noCBData": "Дані Cb відсутні",
+ "chainDeleted": "Ланцюжок видалено",
+ "timeLeft": "Залишилося часу",
+ "expirationBannerExpired": "Термін дії банера минув",
+ "language": "Мова",
+ "invalidFileType": "Недійсний тип файлу",
+ "monitoredProviders": "Провайдери під моніторингом",
+ "errors": "Помилки",
+ "heap": "Купа",
+ "chatCompletions": "Завершення чатів",
+ "exampleTemplatesHint": "Підказка щодо шаблонів прикладів",
+ "retryDelayLabel": "Мітка затримки повторної спроби",
+ "audioTranscription": "Транскрибування аудіо",
+ "fallbackChainsDesc": "Опис резервних ланцюжків",
+ "exampleTemplates": "Шаблони прикладів",
+ "connectionsCount": "Кількість з’єднань",
+ "modelsPathLabel": "Мітка шляху до моделей",
+ "activeProvidersHint": "Підказка щодо активних провайдерів",
+ "activeLockouts": "Активні блокування",
+ "invalid": "Недійсне значення",
+ "skipPassword": "Пропустити пароль",
+ "moveUp": "Перемістити вгору",
+ "timeRange": "Часовий діапазон",
+ "stickyLimitDesc": "Опис закріпленого ліміту",
+ "cloudBenefitEdge": "Перевага хмари: периферійні обчислення",
+ "custom": "Власний",
+ "verifying": "Перевірка",
+ "baseUrlLabel": "Мітка базової URL-адреси",
+ "setPassword": "Установити пароль",
+ "safeSearchStrict": "Суворий безпечний пошук",
+ "noChangesSinceBackup": "Немає змін із моменту резервного копіювання",
+ "modelsPathHint": "Підказка щодо шляху до моделей",
+ "audioTranscriptions": "Транскрибування аудіо",
+ "testCombo": "Перевірити комбінацію",
+ "mcpQuickStartTitle": "Короткий посібник із початку роботи з MCP",
+ "comboUpdated": "Комбінацію оновлено",
+ "weighted": "Зважений",
+ "providers": "Провайдери",
"ccCompatibleLabel": "Cc Compatible Label",
- "noFallbackChainsDesc": "No Fallback Chains Desc",
- "yesImport": "Yes Import",
- "lockoutsAutoRefreshHint": "Lockouts Auto Refresh Hint",
- "tabApis": "Tab Apis",
- "sectionDescription": "Section Description",
- "filter": "Filter",
- "purgeLogsFailed": "Purge Logs Failed",
- "latency": "Latency",
- "testAllOAuth": "Test All O Auth",
- "mcpQuickStartStep3": "Mcp Quick Start Step3",
- "repairEnvFailed": "Repair Env Failed",
- "zedImportHint": "Zed Import Hint",
- "modelsAcrossEndpoints": "Models Across Endpoints",
- "autoDisableBannedAccounts": "Auto Disable Banned Accounts",
- "securityDesc": "Security Desc",
- "listModels": "List Models",
- "backupRestore": "Backup Restore",
- "target": "Target",
- "zedImportSuccess": "Zed Import Success",
- "lastHeaderUpdate": "Last Header Update",
- "categoryCore": "Category Core",
- "noFallbackChains": "No Fallback Chains",
- "noSearchProviders": "No Search Providers",
- "autoBalance": "Auto Balance",
- "noModelsYet": "No Models Yet",
- "signatureFamily": "Signature Family",
- "externalApiCalls": "External Api Calls",
- "providerOverridesDesc": "Provider Overrides Desc",
- "signatureTool": "Signature Tool",
- "connectionFailed": "Connection Failed",
- "activeLimitersPlural": "Active Limiters Plural",
- "doneDesc": "Done Desc",
- "down": "Down",
- "noDataYet": "No Data Yet",
- "activeProviders": "Active Providers",
- "nameInvalid": "Name Invalid",
- "skip": "Skip",
- "createChain": "Create Chain",
- "audioSpeech": "Audio Speech",
- "cacheCleared": "Cache Cleared",
- "searchTypeNews": "Search Type News",
- "durationMillisecondsShort": "Duration Milliseconds Short",
- "addOpenAICompatible": "Add Open Ai Compatible",
+ "noFallbackChainsDesc": "Опис відсутності ланцюжків резервного перемикання",
+ "yesImport": "Так, імпортувати",
+ "lockoutsAutoRefreshHint": "Підказка щодо автоматичного оновлення блокувань",
+ "tabApis": "Вкладка API",
+ "sectionDescription": "Опис розділу",
+ "filter": "Фільтр",
+ "purgeLogsFailed": "Не вдалося очистити журнали",
+ "latency": "Затримка",
+ "testAllOAuth": "Перевірити всі OAuth",
+ "mcpQuickStartStep3": "Крок 3 короткого посібника з MCP",
+ "repairEnvFailed": "Не вдалося відновити env",
+ "zedImportHint": "Підказка щодо імпорту Zed",
+ "modelsAcrossEndpoints": "Моделі в різних кінцевих точках",
+ "autoDisableBannedAccounts": "Автоматично вимикати заблоковані облікові записи",
+ "securityDesc": "Опис безпеки",
+ "listModels": "Список моделей",
+ "backupRestore": "Резервне копіювання та відновлення",
+ "target": "Ціль",
+ "zedImportSuccess": "Імпорт Zed успішно виконано",
+ "lastHeaderUpdate": "Останнє оновлення заголовка",
+ "categoryCore": "Категорія «Основне»",
+ "noFallbackChains": "Немає ланцюжків резервного перемикання",
+ "noSearchProviders": "Немає пошукових провайдерів",
+ "autoBalance": "Автоматичне балансування",
+ "noModelsYet": "Моделей ще немає",
+ "signatureFamily": "Сімейство підписів",
+ "externalApiCalls": "Зовнішні виклики API",
+ "providerOverridesDesc": "Опис перевизначень провайдера",
+ "signatureTool": "Інструмент підпису",
+ "connectionFailed": "Не вдалося підключитися",
+ "activeLimitersPlural": "Активні обмежувачі, множина",
+ "doneDesc": "Опис завершення",
+ "down": "Не працює",
+ "noDataYet": "Даних ще немає",
+ "activeProviders": "Активні провайдери",
+ "nameInvalid": "Недійсна назва",
+ "skip": "Пропустити",
+ "createChain": "Створити ланцюжок",
+ "audioSpeech": "Озвучення аудіо",
+ "cacheCleared": "Кеш очищено",
+ "searchTypeNews": "Тип пошуку: новини",
+ "durationMillisecondsShort": "Тривалість у мілісекундах, скорочено",
+ "addOpenAICompatible": "Додати сумісний з Open Ai",
"chatTesterTab": "Chat Tester Tab",
- "queued": "Queued",
- "domainPlaceholder": "Domain Placeholder",
- "durationMinutesShort": "Duration Minutes Short",
- "verifyingConnection": "Verifying Connection",
- "imageProviders": "Image Providers",
- "protocolToolsLabel": "Protocol Tools Label",
- "queryPlaceholder": "Query Placeholder",
- "videoGeneration": "Video Generation",
- "timeRangeWeek": "Time Range Week",
- "limitExhausted": "Limit Exhausted",
- "failedDisable": "Failed Disable",
- "inMemoryNote": "In Memory Note",
- "compatibleHint": "Compatible Hint",
- "errorShort": "Error Short",
- "advancedHint": "Advanced Hint",
- "restoreFailed": "Restore Failed",
- "searchProvidersHeading": "Search Providers Heading",
- "comboName": "Combo Name",
- "autoDisableDescription": "Auto Disable Description",
+ "queued": "У черзі",
+ "domainPlaceholder": "Заповнювач домену",
+ "durationMinutesShort": "Тривалість у хвилинах, скорочено",
+ "verifyingConnection": "Перевірка підключення",
+ "imageProviders": "Провайдери зображень",
+ "protocolToolsLabel": "Мітка інструментів протоколу",
+ "queryPlaceholder": "Заповнювач запиту",
+ "videoGeneration": "Генерування відео",
+ "timeRangeWeek": "Діапазон часу: тиждень",
+ "limitExhausted": "Ліміт вичерпано",
+ "failedDisable": "Не вдалося вимкнути",
+ "inMemoryNote": "Примітка щодо зберігання в пам’яті",
+ "compatibleHint": "Підказка щодо сумісності",
+ "errorShort": "Короткий опис помилки",
+ "advancedHint": "Розширена підказка",
+ "restoreFailed": "Не вдалося відновити",
+ "searchProvidersHeading": "Заголовок провайдерів пошуку",
+ "comboName": "Назва комбінації",
+ "autoDisableDescription": "Опис автоматичного вимкнення",
"embeddingsDesc": "Векторні представлення для семантичного пошуку",
- "operational": "Operational",
- "testAllApiKey": "Test All Api Key",
- "backupCreated": "Backup Created",
- "errorDuringImport": "Error During Import",
- "comboDefaultsGuideHint2": "Combo Defaults Guide Hint2",
- "connecting": "Connecting",
- "fillModelAndProviders": "Fill Model And Providers",
- "syncing": "Syncing",
- "resetConfirm": "Reset Confirm",
- "trackMetrics": "Track Metrics",
- "successful": "Successful",
- "recovering": "Recovering",
- "autoDisableThreshold": "Auto Disable Threshold",
+ "operational": "Працює",
+ "testAllApiKey": "Перевірити всі API-ключі",
+ "backupCreated": "Резервну копію створено",
+ "errorDuringImport": "Помилка під час імпорту",
+ "comboDefaultsGuideHint2": "Підказка 2 посібника зі стандартних налаштувань комбінацій",
+ "connecting": "Підключення",
+ "fillModelAndProviders": "Заповніть модель і постачальників",
+ "syncing": "Синхронізація",
+ "resetConfirm": "Підтвердьте скидання",
+ "trackMetrics": "Відстежувати метрики",
+ "successful": "Успішно",
+ "recovering": "Відновлення",
+ "autoDisableThreshold": "Поріг автоматичного вимкнення",
"anthropic": "Anthropic",
- "syncingData": "Syncing Data",
- "cloudBenefitPorts": "Cloud Benefit Ports",
- "compatibleProviders": "Compatible Providers",
+ "syncingData": "Синхронізація даних",
+ "cloudBenefitPorts": "Переваги хмарних портів",
+ "compatibleProviders": "Сумісні постачальники",
"freeTierProviders": "Безкоштовні постачальники рівня",
"freeTierLabel": "Доступний безкоштовний рівень",
"freeTierProvidersDesc": "Постачальники з безкоштовними рівнями — деякі вимагають реєстрації ключа API, інші взагалі не потребують облікових даних.",
- "clearCache": "Clear Cache",
- "reqs": "Reqs",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "apiKeyProviders": "Api Key Providers",
- "tabsAria": "Tabs Aria",
- "resetting": "Resetting",
- "millisecondsAbbr": "Milliseconds Abbr",
- "backupReasonPreRestore": "Backup Reason Pre Restore",
- "disableCloud": "Disable Cloud",
- "newProviderNameAria": "New Provider Name Aria",
- "passwordsMismatch": "Passwords Mismatch",
- "a2aQuickStartStep3": "A2A Quick Start Step3",
- "liveMonitorDescriptionSuffix": "Live Monitor Description Suffix",
- "failedAddProvider": "Failed Add Provider",
- "addAtLeastOneProvider": "Add At Least One Provider",
- "reasonSeparator": "Reason Separator",
- "zedImporting": "Zed Importing",
- "confirmPasswordPlaceholder": "Confirm Password Placeholder",
- "whatYouGet": "What You Get",
- "signatureSession": "Signature Session",
- "errorCountNoCode": "Error Count No Code",
- "testing": "Testing",
- "providersCommaSeparated": "Providers Comma Separated",
- "exportDatabase": "Export Database",
- "hitRate": "Hit Rate",
- "completionsLegacy": "Completions Legacy",
- "removeModel": "Remove Model",
- "timeRangeDay": "Time Range Day",
- "cloudRequestFailed": "Cloud Request Failed",
- "updatedAt": "Updated At",
- "monitoredProvidersHint": "Monitored Providers Hint",
- "connectionSuccessful": "Connection Successful",
- "latencyP50": "Latency P50",
- "logsDeleted": "Logs Deleted",
- "chatTester": "Chat Tester",
- "safeSearchOff": "Safe Search Off",
- "nameHint": "Name Hint",
- "debugToggle": "Debug Toggle",
- "embedding": "Embedding",
- "issuesLabel": "Issues Label",
- "optionAny": "Option Any",
- "maxNestingDepth": "Max Nesting Depth",
- "rerank": "Rerank",
- "checking": "Checking",
- "getStarted": "Get Started",
- "restoreSuccess": "Restore Success",
- "issuesDetected": "Issues Detected",
- "signatureCache": "Signature Cache",
- "modelLockouts": "Model Lockouts",
- "usingCloudProxy": "Using Cloud Proxy",
- "loadingHealth": "Loading Health",
- "providerOverrides": "Provider Overrides",
- "audioTranscriptionDesc": "Audio Transcription Desc",
- "learnedFromHeaders": "Learned From Headers",
- "totalRequests": "Total Requests",
- "cloudUnstableNote": "Cloud Unstable Note",
+ "clearCache": "Очистити кеш",
+ "reqs": "Запити",
+ "addAnthropicCompatible": "Додати сумісного з Anthropic постачальника",
+ "apiKeyProviders": "Постачальники API-ключів",
+ "tabsAria": "ARIA-мітка вкладок",
+ "resetting": "Скидання",
+ "millisecondsAbbr": "мс",
+ "backupReasonPreRestore": "Причина створення резервної копії перед відновленням",
+ "disableCloud": "Вимкнути хмару",
+ "newProviderNameAria": "ARIA-мітка назви нового постачальника",
+ "passwordsMismatch": "Паролі не збігаються",
+ "a2aQuickStartStep3": "Крок 3 швидкого старту A2A",
+ "liveMonitorDescriptionSuffix": "Суфікс опису моніторингу в реальному часі",
+ "failedAddProvider": "Не вдалося додати постачальника",
+ "addAtLeastOneProvider": "Додайте принаймні одного постачальника",
+ "reasonSeparator": "Роздільник причин",
+ "zedImporting": "Імпорт із Zed",
+ "confirmPasswordPlaceholder": "Підтвердьте пароль",
+ "whatYouGet": "Що ви отримаєте",
+ "signatureSession": "Підпис сеансу",
+ "errorCountNoCode": "Кількість помилок без коду",
+ "testing": "Тестування",
+ "providersCommaSeparated": "Постачальники, розділені комами",
+ "exportDatabase": "Експортувати базу даних",
+ "hitRate": "Частота влучань",
+ "completionsLegacy": "Застарілі завершення",
+ "removeModel": "Видалити модель",
+ "timeRangeDay": "Діапазон часу: день",
+ "cloudRequestFailed": "Помилка хмарного запиту",
+ "updatedAt": "Оновлено о",
+ "monitoredProvidersHint": "Підказка щодо відстежуваних провайдерів",
+ "connectionSuccessful": "З’єднання успішне",
+ "latencyP50": "Затримка P50",
+ "logsDeleted": "Журнали видалено",
+ "chatTester": "Тестер чату",
+ "safeSearchOff": "Безпечний пошук вимкнено",
+ "nameHint": "Підказка щодо назви",
+ "debugToggle": "Перемикач налагодження",
+ "embedding": "Вбудовування",
+ "issuesLabel": "Мітка проблем",
+ "optionAny": "Будь-який варіант",
+ "maxNestingDepth": "Максимальна глибина вкладеності",
+ "rerank": "Повторне ранжування",
+ "checking": "Перевірка",
+ "getStarted": "Розпочати",
+ "restoreSuccess": "Відновлення успішне",
+ "issuesDetected": "Виявлено проблеми",
+ "signatureCache": "Кеш сигнатур",
+ "modelLockouts": "Блокування моделей",
+ "usingCloudProxy": "Використовується хмарний проксі",
+ "loadingHealth": "Завантаження стану працездатності",
+ "providerOverrides": "Перевизначення провайдерів",
+ "audioTranscriptionDesc": "Опис транскрибування аудіо",
+ "learnedFromHeaders": "Вивчено із заголовків",
+ "totalRequests": "Усього запитів",
+ "cloudUnstableNote": "Примітка про нестабільність хмари",
"gamificationAdmin": "Адміністратор Gamification",
"monitorAnomaliesAndHealth": "Відстежуйте аномалії та стан системи",
"flaggedAnomalies": "Позначені аномалії",
@@ -704,7 +704,7 @@
"apiKey": "Ключ API",
"xpLastHour": "XP (1 год)",
"zScore": "Z-оцінка",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "Підозріле",
"tokensCommunityServers": "Сервери спільноти",
"tokensServerNamePlaceholder": "Ім'я сервера",
"tokensApiKeyPlaceholder": "Ключ API",
@@ -801,44 +801,44 @@
"batchPageLoadingMore": "Завантаження більше…",
"recommended": "Рекомендовано",
"understand": "Я розумію",
- "batchConceptTitle": "Batch processing",
- "batchConceptSubtitle": "Process thousands of requests asynchronously at ~50% of the cost (24h window). Ideal for evaluations, classification, and embeddings.",
- "batchConceptHowItWorks": "How it works",
- "batchConceptBenefit50pct": "50% discount on input + output tokens",
- "batchConceptAsync24h": "Async with a 24h completion window",
- "batchConceptUseCases": "Best for bulk classification, evaluations, and embeddings",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
- "filesConceptTitle": "Batch files",
- "filesConceptSubtitle": "JSONL files used by batches: input requests, results, and errors.",
- "filesConceptInput": "Input — your JSONL with one request per line",
- "filesConceptOutput": "Output — results from completed requests",
- "filesConceptError": "Errors — requests that failed",
- "filesConceptRetention": "Retention: 30 days by default (29 days on Anthropic)",
- "wizardTitle": "New batch",
- "wizardClose": "Close",
- "wizardNext": "Next",
- "wizardBack": "Back",
- "wizardCancel": "Cancel",
- "wizardCreate": "Create batch",
- "wizardCreating": "Creating…",
- "wizardStep1Destination": "Destination",
- "wizardStep2Input": "Input",
- "wizardStep3Validate": "Validate",
- "wizardStep4Cost": "Cost & create",
- "wizardProviderLabel": "Provider",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "batchConceptTitle": "Пакетна обробка",
+ "batchConceptSubtitle": "Асинхронно обробляйте тисячі запитів приблизно за 50% вартості (у межах 24 годин). Ідеально підходить для оцінювання, класифікації та вбудовувань.",
+ "batchConceptHowItWorks": "Як це працює",
+ "batchConceptBenefit50pct": "Знижка 50% на вхідні та вихідні токени",
+ "batchConceptAsync24h": "Асинхронне виконання з завершенням у межах 24 годин",
+ "batchConceptUseCases": "Найкраще підходить для масової класифікації, оцінювання та вбудовувань",
+ "batchHeaderSubtitle": "Виконуйте багато запитів як одне завдання",
+ "batchStep1": "1 · Завантажити JSONL",
+ "batchStep1Desc": "Додати запити",
+ "batchStep2": "2 · Створити пакет",
+ "batchStep2Desc": "Запустити завдання",
+ "batchStep3": "3 · Отримати результати",
+ "batchStep3Desc": "Завантажити результат",
+ "filesConceptTitle": "Файли пакетів",
+ "filesConceptSubtitle": "JSONL-файли, що використовуються пакетами: вхідні запити, результати та помилки.",
+ "filesConceptInput": "Вхідні дані — ваш JSONL з одним запитом у кожному рядку",
+ "filesConceptOutput": "Вихідні дані — результати виконаних запитів",
+ "filesConceptError": "Помилки — запити, які не вдалося виконати",
+ "filesConceptRetention": "Термін зберігання: 30 днів за замовчуванням (29 днів в Anthropic)",
+ "wizardTitle": "Новий пакет",
+ "wizardClose": "Закрити",
+ "wizardNext": "Далі",
+ "wizardBack": "Назад",
+ "wizardCancel": "Скасувати",
+ "wizardCreate": "Створити пакет",
+ "wizardCreating": "Створення…",
+ "wizardStep1Destination": "Призначення",
+ "wizardStep2Input": "Вхідні дані",
+ "wizardStep3Validate": "Перевірити",
+ "wizardStep4Cost": "Вартість і створення",
+ "wizardProviderLabel": "Провайдер",
+ "wizardEndpointLabel": "Кінцева точка",
+ "wizardModelLabel": "Модель",
"wizardInputKindJsonl": "JSONL",
- "wizardInputKindCsv": "CSV (we'll convert)",
- "wizardDropOrPick": "Drop a file or click to pick",
- "wizardCsvMappingTitle": "Map CSV columns → request fields",
- "wizardCsvMappingAddField": "Add field",
+ "wizardInputKindCsv": "CSV (ми конвертуємо)",
+ "wizardDropOrPick": "Перетягніть файл сюди або натисніть, щоб вибрати",
+ "wizardCsvMappingTitle": "Зіставити стовпці CSV → поля запиту",
+ "wizardCsvMappingAddField": "Додати поле",
"wizardCsvNoColumns": "У заголовку CSV не виявлено стовпців.",
"wizardCsvIgnoreColumn": "— ігнорувати —",
"wizardCsvCustomIdMapped": "custom_id зіставлено",
@@ -847,7 +847,7 @@
"wizardCsvRowsParsed": "{count} рядків розібрано",
"wizardCsvRowsSkipped": "{count} рядків пропущено",
"wizardCsvRowError": "Рядок {row}: {reason}",
- "wizardValidationOk": "All lines valid",
+ "wizardValidationOk": "Усі рядки дійсні",
"wizardValidating": "Перевірка…",
"wizardValidationParseFailed": "Помилка перевірки — не вдалося розібрати вміст.",
"wizardValidationSummary": "{lines} рядків · {ids} унікальних custom_ids",
@@ -855,105 +855,105 @@
"wizardValidationDuplicateIds": "Виявлено дублікати custom_ids:",
"wizardValidationFirstErrors": "Помилки (перші {count}):",
"wizardValidationLine": "Рядок {line}",
- "wizardValidationErrors": "Validation errors",
- "wizardValidationPreview": "Preview (first 5 requests)",
- "wizardValidationSamplingNote": "File is large — validated by sampling (first 1000 + last 100 lines). Full validation runs server-side.",
- "wizardCostSync": "Sync cost",
- "wizardCostBatch": "Batch cost (-50%)",
- "wizardCostSavings": "Savings",
- "wizardCostEstimatedNotice": "Estimated cost — real billing may vary.",
- "wizardErrorUpload": "Failed to upload file. Try again.",
- "wizardErrorCreate": "Failed to create batch. Try again.",
- "wizardEmptyProviders": "Connect a provider with batch support (OpenAI, Anthropic, or Gemini) to create a batch.",
- "uploadModalTitle": "Upload batch file",
- "uploadModalDropOrPick": "Drop a .jsonl file or click to pick",
- "uploadModalUpload": "Upload",
- "uploadModalCancel": "Cancel",
- "uploadModalError": "Upload failed. Try again.",
- "uploadModalSuccess": "Uploaded",
- "uploadModalSizeLimit": "Max 512 MB",
- "batchListNewButton": "New batch",
- "batchListAutoRefresh": "Auto-refresh 30s",
- "batchListCostColumn": "Cost",
- "batchActionCancel": "Cancel",
- "batchActionDownloadOutput": "Download output",
- "batchActionDownloadErrors": "Download errors",
- "batchActionRetry": "Retry failed",
- "batchActionRetryConfirm": "Retry {n} failed request(s)? Final cost depends on actual tokens consumed.",
- "expirationBadgeCritical": "Critical",
- "expirationBadgeWarning": "Soon",
- "expirationBadgeNormal": "Pending",
- "expirationBadgeExpired": "Expired",
- "filesListUploadButton": "Upload",
- "filesListUsedByColumn": "Used by",
- "filesListUsedByNone": "None",
- "filesListUsedByRoleInput": "input",
- "filesListUsedByRoleOutput": "output",
- "filesListUsedByRoleError": "error",
- "filesListSizeColumn": "Size",
- "batchListProgressPartial": "(partial)",
- "batchListProviderColumn": "Provider",
+ "wizardValidationErrors": "Помилки перевірки",
+ "wizardValidationPreview": "Попередній перегляд (перші 5 запитів)",
+ "wizardValidationSamplingNote": "Файл великий — перевірено за вибіркою (перші 1000 + останні 100 рядків). Повна перевірка виконується на сервері.",
+ "wizardCostSync": "Вартість синхронної обробки",
+ "wizardCostBatch": "Вартість пакетної обробки (-50%)",
+ "wizardCostSavings": "Економія",
+ "wizardCostEstimatedNotice": "Орієнтовна вартість — фактична сума може відрізнятися.",
+ "wizardErrorUpload": "Не вдалося завантажити файл. Спробуйте ще раз.",
+ "wizardErrorCreate": "Не вдалося створити пакет. Спробуйте ще раз.",
+ "wizardEmptyProviders": "Підключіть провайдера з підтримкою пакетної обробки (OpenAI, Anthropic або Gemini), щоб створити пакет.",
+ "uploadModalTitle": "Завантажити файл пакета",
+ "uploadModalDropOrPick": "Перетягніть файл .jsonl сюди або натисніть, щоб вибрати",
+ "uploadModalUpload": "Завантажити",
+ "uploadModalCancel": "Скасувати",
+ "uploadModalError": "Не вдалося завантажити. Спробуйте ще раз.",
+ "uploadModalSuccess": "Завантажено",
+ "uploadModalSizeLimit": "Макс. 512 МБ",
+ "batchListNewButton": "Новий пакет",
+ "batchListAutoRefresh": "Автооновлення кожні 30 с",
+ "batchListCostColumn": "Вартість",
+ "batchActionCancel": "Скасувати",
+ "batchActionDownloadOutput": "Завантажити результат",
+ "batchActionDownloadErrors": "Завантажити помилки",
+ "batchActionRetry": "Повторити невдалі",
+ "batchActionRetryConfirm": "Повторити {n} невдалих запитів? Остаточна вартість залежить від фактично використаних токенів.",
+ "expirationBadgeCritical": "Критично",
+ "expirationBadgeWarning": "Незабаром",
+ "expirationBadgeNormal": "Очікує",
+ "expirationBadgeExpired": "Термін дії минув",
+ "filesListUploadButton": "Завантажити",
+ "filesListUsedByColumn": "Використовується в",
+ "filesListUsedByNone": "Немає",
+ "filesListUsedByRoleInput": "вхідні дані",
+ "filesListUsedByRoleOutput": "вихідні дані",
+ "filesListUsedByRoleError": "помилка",
+ "filesListSizeColumn": "Розмір",
+ "batchListProgressPartial": "(частково)",
+ "batchListProviderColumn": "Провайдер",
"batchListProviderUnknown": "—",
- "batchListProviderOther": "Other",
- "batchListTitle": "Batches",
- "batchListCount": "{count} batches",
- "batchListRemovingCompleted": "Removing…",
- "batchListRemoveCompleted": "Remove completed",
- "batchListTableStatus": "Status",
+ "batchListProviderOther": "Інше",
+ "batchListTitle": "Пакети",
+ "batchListCount": "Пакетів: {count}",
+ "batchListRemovingCompleted": "Видалення…",
+ "batchListRemoveCompleted": "Видалити завершені",
+ "batchListTableStatus": "Статус",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
- "batchListTableModel": "Model",
- "batchListTableProgress": "Progress",
- "batchListTableCreated": "Created",
- "batchListTableExpires": "Expires",
- "batchListLoading": "Loading…",
- "batchListEmpty": "No batches found",
- "batchListValidating": "Validating…",
- "batchStatusAll": "All statuses",
- "batchStatusInProgress": "In progress",
- "batchStatusValidating": "Validating",
- "batchStatusFinalizing": "Finalizing",
- "batchStatusCompleted": "Completed",
- "batchStatusFailed": "Failed",
- "batchStatusCancelled": "Cancelled",
- "batchStatusCancelling": "Cancelling",
- "batchStatusExpired": "Expired",
- "batchStatusCompletedWithFailures": "completed with failures",
- "batchStatusInProgressWithFailures": "in progress (with failures)",
- "batchStatusFinalizingWithFailures": "finalizing (with failures)",
- "batchStatusCancelledWithFailures": "cancelled with failures",
- "batchStatusExpiredWithFailures": "expired (partial)",
- "wizardCostEstimating": "Estimating cost…",
- "wizardCostRequests": "Requests",
- "wizardCostInputTok": "input tok",
- "wizardCostOutputTok": "output tok",
- "wizardCostWindow": "Window",
- "wizardDestinationSelectProvider": "Select a provider…",
- "wizardDestinationSelectModel": "Select a model…",
- "wizardDestinationConnectProvider": "Connect a provider",
- "batchListBatchCreated": "Batch {id} created — refreshing list…",
- "batchListBatchCreatedDismiss": "Dismiss",
- "batchListRefreshing": "Refreshing…",
- "batchListRefresh": "Refresh",
- "uploadFileModalRemove": "Remove",
- "uploadFileModalUploading": "Uploading…",
- "wizardInputReading": "Reading file…",
- "wizardInputReady": "Ready",
- "wizardInputLargeFileLabel": "Large file — sampling validation",
- "wizardInputCsvJsonlReady": "JSONL generated — ready to validate.",
- "wizardInputLargeFileWarning": "Large file detected — validation runs by sampling (first 5 MB + last 100 KB). Full validation happens server-side.",
- "wizardCostWindow24h": "24h completion window",
- "wizardValidationFieldsOk": "required fields valid",
- "filesListDelete": "Delete",
- "filesListDownload": "Download",
- "batchDetailActionCancel": "Cancel batch",
- "batchDetailActionRetry": "Retry failed requests",
- "batchDetailCancelling": "Cancelling…",
- "batchDetailRetrying": "Preparing retry…",
- "batchDetailCancelConfirm": "Cancel this batch? In-progress requests will stop.",
- "batchActionCancelError": "Failed to cancel batch. Try again.",
- "batchActionRetryError": "Failed to retry failed requests. Try again.",
- "batchConceptRetentionNote": "Results and error files are retained for 30 days (Anthropic: 29 days)",
+ "batchListTableEndpoint": "Кінцева точка",
+ "batchListTableModel": "Модель",
+ "batchListTableProgress": "Прогрес",
+ "batchListTableCreated": "Створено",
+ "batchListTableExpires": "Термін дії закінчується",
+ "batchListLoading": "Завантаження…",
+ "batchListEmpty": "Пакетів не знайдено",
+ "batchListValidating": "Перевірка…",
+ "batchStatusAll": "Усі статуси",
+ "batchStatusInProgress": "Виконується",
+ "batchStatusValidating": "Перевіряється",
+ "batchStatusFinalizing": "Завершується",
+ "batchStatusCompleted": "Завершено",
+ "batchStatusFailed": "Не вдалося",
+ "batchStatusCancelled": "Скасовано",
+ "batchStatusCancelling": "Скасовується",
+ "batchStatusExpired": "Термін дії минув",
+ "batchStatusCompletedWithFailures": "завершено з помилками",
+ "batchStatusInProgressWithFailures": "виконується (з помилками)",
+ "batchStatusFinalizingWithFailures": "завершується (з помилками)",
+ "batchStatusCancelledWithFailures": "скасовано з помилками",
+ "batchStatusExpiredWithFailures": "термін дії минув (частково)",
+ "wizardCostEstimating": "Оцінювання вартості…",
+ "wizardCostRequests": "Запити",
+ "wizardCostInputTok": "вхідні токени",
+ "wizardCostOutputTok": "вихідні токени",
+ "wizardCostWindow": "Період",
+ "wizardDestinationSelectProvider": "Виберіть провайдера…",
+ "wizardDestinationSelectModel": "Виберіть модель…",
+ "wizardDestinationConnectProvider": "Підключити провайдера",
+ "batchListBatchCreated": "Пакет {id} створено — оновлення списку…",
+ "batchListBatchCreatedDismiss": "Закрити",
+ "batchListRefreshing": "Оновлення…",
+ "batchListRefresh": "Оновити",
+ "uploadFileModalRemove": "Видалити",
+ "uploadFileModalUploading": "Передавання…",
+ "wizardInputReading": "Читання файлу…",
+ "wizardInputReady": "Готово",
+ "wizardInputLargeFileLabel": "Великий файл — вибіркова перевірка",
+ "wizardInputCsvJsonlReady": "JSONL згенеровано — готово до перевірки.",
+ "wizardInputLargeFileWarning": "Виявлено великий файл — перевірка виконується вибірково (перші 5 МБ + останні 100 КБ). Повна перевірка виконується на сервері.",
+ "wizardCostWindow24h": "24-годинний період виконання",
+ "wizardValidationFieldsOk": "обов’язкові поля коректні",
+ "filesListDelete": "Видалити",
+ "filesListDownload": "Завантажити",
+ "batchDetailActionCancel": "Скасувати пакет",
+ "batchDetailActionRetry": "Повторити невдалі запити",
+ "batchDetailCancelling": "Скасування…",
+ "batchDetailRetrying": "Підготовка повторної спроби…",
+ "batchDetailCancelConfirm": "Скасувати цей пакет? Запити, що виконуються, буде зупинено.",
+ "batchActionCancelError": "Не вдалося скасувати пакет. Спробуйте ще раз.",
+ "batchActionRetryError": "Не вдалося повторити невдалі запити. Спробуйте ще раз.",
+ "batchConceptRetentionNote": "Файли результатів і помилок зберігаються протягом 30 днів (Anthropic: 29 днів)",
"batchFilesSizeColumn": "Розмір",
"toggleNoAuthProvider": "Перемкнути постачальника без авторизації",
"loadingModels": "Завантаження моделей…",
@@ -988,10 +988,14 @@
"disabled": "Вимкнено",
"featureFlagOmnirouteEmergencyFallbackDescription": "Перенаправляти запити з вичерпаним бюджетом на резервного безкоштовного провайдера/модель.",
"featureFlagArenaEloSyncEnabledDescription": "Увімкнути періодичну синхронізацію ELO з таблиці лідерів Arena AI для рейтингу інтелекту моделей.",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "Створюйте та додавайте підсумки розмов, коли комбінована маршрутизація перемикає моделі. Вимкніть, щоб обробляти перемикання моделей незалежно та запобігти фоновим запитам передавання контексту для всіх наявних і майбутніх комбінацій.",
"featureFlagExposeCcDiscoveryAliasesDescription": "Рекламуйте claude/<provider>/<model> mirror ids на /v1/models, щоб модель виявлення Claude Code gateway перераховувала не Claude моделі. Увага: подвоює записи каталогу для всіх клієнтів, коли увімкнено глобально.",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "Головний перемикач для псевдонімів шлюзу no-think/<provider>/<model>. Увімкнено (за замовчуванням): /v1/models оголошує варіант без міркувань для кожної сумісної моделі Claude із підтримкою міркувань, а ідентифікатор no-think/, надісланий у запиті, зіставляється зі справжньою моделлю з вимкненими міркуваннями. Вимкнено: варіанти не оголошуються, а ідентифікатор no-think/ обробляється як будь-який інший невідомий ідентифікатор моделі. Налаштування ModelSpec.noThinkingAlias для окремих моделей усе ще застосовується, доки цей перемикач увімкнено.",
"featureFlagChatVirtualLanesEnabledDescription": "Увімкніть адаптивні віртуальні смуги допуску для кожного тенанта під час надсилання провайдерам (#9654): сплеск навантаження одного тенанта більше не викликає 503 в іншого. Змінна середовища OMNIROUTE_CHAT_VIRTUAL_LANES має пріоритет над цим налаштуванням у панелі; зміни набувають чинності після перезапуску сервера.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Сторінки провайдерів на панелі керування: показувати позначку «Безкоштовно» лише за ознаками, які враховує провайдер. Це скасовує евристику на основі відображуваного імені, небулеві поля безкоштовності та суфікси :free для зареєстрованих провайдерів без документально підтвердженого безкоштовного рівня. Якщо вимкнено, використовується попереднє правило відображення позначки.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Пули проксі та ротація opencode для кожного облікового запису тимчасово припиняють повторно використовувати проксі, який щойно дав збій (відхилена перевірка TCP або отримана через нього відповідь 429), на період у межах процесу, що подвоюється після кожного повторного збою, аж до встановленої межі. Статус проксі не записується; якщо всі кандидати відкладені, вибір залишається незмінним. За замовчуванням вимкнено: порядок вибору точно відповідає звичайній ротації.",
+ "featureFlagProxyPoolEgressObservationDescription": "Показувати на інформаційній панелі під пулом проксі, скільки спостережуваних вихідних IP-адрес обслуговували його учасників протягом останніх 24 год, скільки з’єднань їх використовували та найбільшу кількість з’єднань через одну IP-адресу. Лише для читання, обчислюється з журналу проксі та ніколи не використовується для маршрутизації. За замовчуванням вимкнено: редактор пулу залишається без змін, а маршрут спостереження повертає null.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Під час перевірки працездатності проксі дозволити перевірці, яку відхилила ціль (401/403/429: проксі передав запит, а місце призначення відхилило цю вихідну IP-адресу), скидати лічильник послідовних збоїв проксі, як у разі успішно обслугованої перевірки. За замовчуванням вимкнено: відмова залишається нейтральною та не скидає лічильник. Відповідь 5xx в обох випадках залишається невизначеною, а відмова ніколи не призводить до видалення, вимкнення чи повторної активації проксі.",
"sidebar": {
"home": "додому",
"dashboard": "Приладова панель",
@@ -1101,9 +1105,9 @@
"contextCombos": "Комбінації двигунів",
"contextLite": "Lite",
"contextAggressive": "Aggressive",
- "contextUltra": "Ultra",
+ "contextUltra": "Ультра",
"contextOmniglyph": "OmniGlyph",
- "contextSettings": "Compression Settings",
+ "contextSettings": "Налаштування стиснення",
"contextHeadroom": "Headroom",
"contextSessionDedup": "Session Dedup",
"contextCcr": "CCR",
@@ -1176,17 +1180,17 @@
"providerQuota": "Квоти провайдерів",
"runtime": "Середовище виконання",
"consoleLogs": "Логи консолі",
- "logsTimeline": "Timeline",
+ "logsTimeline": "Хронологія",
"logsTimelineSubtitle": "Візуальний графік запитів",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
+ "conversations": "Розмови",
+ "conversationsSubtitle": "Багатоходові агентні розмови",
"globalRouting": "Глобальна маршрутизація",
"mitmProxy": "MITM-проксі",
"oneProxy": "1Proxy",
"agenticFeaturesSection": "Агентні функції",
"otherFeaturesSection": "Інші функції",
"compressionContextGroup": "Стиснення контексту",
- "gamificationGroup": "Gamification",
+ "gamificationGroup": "Гейміфікація",
"toolsGroup": "Інструменти",
"integrationsGroup": "Інтеграції",
"proxyGroup": "Проксі",
@@ -1209,11 +1213,11 @@
"leaderboard": "Рейтинг",
"profile": "Профіль",
"tokens": "Токени",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
+ "gamificationAdmin": "Адміністрування гейміфікації",
"leaderboardSubtitle": "Рейтинги та досягнення",
"profileSubtitle": "Акаунт і налаштування",
"tokensSubtitle": "Використання токенів і бюджети",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
+ "gamificationAdminSubtitle": "Моніторинг аномалій і протидія шахрайству",
"usageSubtitle": "Статистика трафіку та використання",
"analyticsComboHealthSubtitle": "Надійність маршрутів комбінацій",
"analyticsUtilizationSubtitle": "Завантаженість провайдерів",
@@ -1271,11 +1275,11 @@
"systemGroup": "Система",
"costsOverview": "Огляд",
"costsOverviewSubtitle": "Консолідований аналіз витрат",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Міст агентів",
"agentBridgeSubtitle": "Перехоплення трафіку агента IDE",
"trafficInspector": "Інспектор трафіку",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "Переглядайте трафік запитів і відповідей із ваших застосунків",
+ "trafficInspectorPurpose": "Переглядайте, що саме ваш застосунок надсилає постачальникам ШІ та отримує від них. Працює з будь-яким клієнтом, сумісним з OpenAI.",
"cliCode": "Код CLI",
"cliCodeSubtitle": "Інструменти коду, що вказують на OmniRoute",
"cliAgents": "Агенти CLI",
@@ -1341,7 +1345,7 @@
"refresh": "Оновити",
"loading": "Завантаження вебхуків...",
"never": "Ніколи",
- "failureCount": "{count, plural, =0 {no failures} one {# failure} other {# failures}}",
+ "failureCount": "{count, plural, =0 {немає помилок} one {# помилка} other {# помилок}}",
"testWebhook": "Надіслати тест",
"testSuccess": "Тестовий вебхук успішно надіслано.",
"testFailed": "Не вдалося перевірити вебхук.",
@@ -1751,14 +1755,14 @@
"omniglyph": "OmniGlyph",
"rtk": "RTK",
"sessionDedup": "Дедуплікація сесій",
- "ultra": "Ultra",
+ "ultra": "Ультра",
"budget": "Бюджет",
"pricing": "Тарифи",
"quotaShare": "Частка квоти",
"discovery": "Дослідження",
"freeProviderRankings": "Рейтинги безкоштовних провайдерів",
- "radar": "Radar",
- "setup": "Setup",
+ "radar": "Радар",
+ "setup": "Налаштування",
"freeTiers": "Безкоштовні тарифи",
"gamification": "Гейміфікація",
"leaderboard": "Таблиця лідерів",
@@ -1774,7 +1778,7 @@
"sidebar": "Бічна панель",
"tokens": "Токени",
"tools": "Інструменти",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Міст агентів",
"trafficInspector": "Інспектор трафіку",
"usage": "Використання",
"orchestration": "Оркестрація"
@@ -1808,7 +1812,7 @@
"reportIssue": "Повідомити про проблему",
"activeError": "{active} активний · {errors} помилка",
"topologyLegendActive": "Активний",
- "topologyLegendRecent": "__MISSING__:Recent",
+ "topologyLegendRecent": "Нещодавні",
"topologyLegendError": "Помилка",
"oauthLabel": "OAuth",
"apiKeyLabel": "Ключ API",
@@ -1822,11 +1826,11 @@
"updateStarted": "Оновлення розпочато...",
"reloadingPageAutomatically": "Автоматичне перезавантаження сторінки...",
"providerTopology": "Топологія провайдера",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "Нещодавні запити",
+ "recentRequestsEmpty": "Запитів ще немає.",
+ "recentRequestsModel": "Модель",
+ "recentRequestsTokens": "Вхід / вихід",
+ "recentRequestsWhen": "Коли",
"downloadDmg": "Завантажити DMG (macOS)",
"downloadDmgDescription": "Доступна нова версія настільного додатку OmniRoute. Будь ласка, завантажте та встановіть установник DMG для macOS, щоб оновити (поточна: v{version}).",
"downloadExe": "Завантажити EXE (Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "Примітки до випуску",
"readMore": "Читати далі",
"noAuthLabel": "Без автентифікації",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "Підготуйтеся до маршрутизації",
+ "readinessTitle": "Надішліть свій перший запит",
+ "readinessSubtitle": "Чотири прості кроки. OmniRoute перевірятиме готовність у процесі.",
+ "readinessStep1": "Підключіть провайдера",
+ "readinessStep2": "Налаштуйте автентифікацію кінцевої точки",
+ "readinessStep3": "Скопіюйте свою кінцеву точку",
+ "readinessStep4": "Надішліть тестовий запит",
+ "readinessContinue": "Продовжити налаштування",
+ "readinessDismiss": "Поки що відхилити"
},
"analytics": {
"title": "Аналітика",
@@ -2001,12 +2005,12 @@
"modelStatusError": "Помилка",
"comboHealth": "Здоров'я комбінації",
"comboHealthDescription": "Квота на рівні комбінації, розподіл використання та метрики продуктивності",
- "compressionAnalyticsTitle": "Compression Analytics",
- "compressionAnalyticsDescription": "Compression analytics — token savings, mode breakdown, and provider stats.",
+ "compressionAnalyticsTitle": "Аналітика стиснення",
+ "compressionAnalyticsDescription": "Аналітика стиснення — економія токенів, розподіл за режимами та статистика провайдерів.",
"autoRoutingTotalAutoRequests": "Загальна кількість автоматичних запитів",
"autoRoutingAvgSelectionScore": "Середня оцінка вибору",
"autoRoutingExplorationRate": "Швидкість розвідки",
- "autoRoutingLkgpHitRate": "LKGP Hit Rate",
+ "autoRoutingLkgpHitRate": "Частота влучань LKGP",
"autoRoutingRequestsByVariant": "Запити за варіантами",
"autoRoutingTopRoutedProviders": "Найпопулярніші постачальники",
"comboHealthWorstQuotaLeft": "Залишилася найгірша квота",
@@ -2254,9 +2258,9 @@
"fullAccess": "Повний доступ",
"keyManagement": "Керування ключами API",
"keyManagementDesc": "Створюйте та керуйте ключами API для автентифікації запитів до кінцевої точки",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "Ваш застосунок надсилає запити до OmniRoute за допомогою ключа API",
+ "requestFlowYourApp": "Ваш застосунок",
+ "requestFlowApiKey": "Ключ API",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "Всього ключів",
"restricted": "Обмежений",
@@ -2299,7 +2303,7 @@
"savePermissions": "Зберегти дозволи",
"endpointRestrictions": "Обмеження ендпоінтів",
"allEndpointsAllowed": "Дозволено всі ендпоінти",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
+ "endpointsRestricted": "Обмежено до {count} кінцевої точк{count, plural, one {и} other {ок}}.",
"autoResolve": "Автоматичне визначення",
"autoResolveDesc": "Автоматично визначати неоднозначні імена моделей до рідного провайдера для цього API-ключа.",
"streamDefaultMode": "Сумісність потокового передавання за замовчуванням",
@@ -2378,8 +2382,8 @@
"allowedCombos": "Дозволені комбінації",
"allCombosAllowed": "Цей ключ може використовувати будь-яку комбінацію.",
"restrictedComboCount": "Обмежено до {count, plural, one {# комбінації} few {# комбінацій} many {# комбінацій} other {# комбінацій}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "{count, plural, one {#} other {#}} — кількість збережених записів, яких немає в цьому списку комбінацій (наприклад, правил маршрутизації) і які буде залишено без змін.",
+ "preservedComboRuleHint": "Залишено без змін. Цей запис не є комбінацією з наведеного вище списку, тому його можна змінити лише через API.",
"apiManagerCustomRateLimits": "Спеціальні ліміти ставок",
"apiManagerCustomRateLimitsDesc": "Перевизначити глобальні обмеження за умовчанням. Залиште пустим, щоб використовувати значення за умовчанням.",
"apiManagerRateLimitRequestsPlaceholder": "Запити",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "Дозволяє цьому ключу ігнорувати політику обмежень висхідного провайдера/акаунта під час маршрутизації. Квоти API-ключа в USD все одно застосовуються.",
"quotaPill": "КВОТА",
"quotaModeOnly": "Лише qtSd",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "Ексклюзивна оренда",
+ "exclusiveLeaseNoticeTitle": "Ексклюзивна оренда",
+ "exclusiveLeaseNoticeDesc": "Цей ключ API має дозволи ексклюзивної оренди для маршрутизації через виділені з’єднання.",
+ "allConnections": "Усі з’єднання",
+ "onlySelectedConnections": "Лише вибрані з’єднання",
+ "selectAtLeastOneConnection": "Виберіть принаймні одне з’єднання або варіант «Усі з’єднання».",
+ "allConnectionsDesc": "Цей ключ може використовувати будь-яке активне з’єднання.",
+ "restrictedToConnections": "Обмежено до {count, plural, one {# з’єднання} other {# з’єднань}}."
},
"auditLog": {
"title": "Журнал аудиту",
@@ -2453,14 +2457,14 @@
"model": "Model",
"prompt": "Prompt",
"generate": "Згенерувати",
- "generating": "Generating...",
- "loadingModels": "Loading available models...",
- "noModels": "No models available. Configure providers with media capabilities first.",
- "error": "Generation Failed",
- "result": "Result",
- "imageDescription": "Generate images from text prompts using OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI and more.",
- "videoDescription": "Create videos with AnimateDiff, Stable Video Diffusion via ComfyUI or SD WebUI.",
- "musicDescription": "Compose music using Stable Audio Open or MusicGen via ComfyUI.",
+ "generating": "Генерування...",
+ "loadingModels": "Завантаження доступних моделей...",
+ "noModels": "Немає доступних моделей. Спочатку налаштуйте провайдерів із підтримкою медіафункцій.",
+ "error": "Не вдалося згенерувати",
+ "result": "Результат",
+ "imageDescription": "Генеруйте зображення з текстових запитів за допомогою OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI та інших сервісів.",
+ "videoDescription": "Створюйте відео за допомогою AnimateDiff, Stable Video Diffusion через ComfyUI або SD WebUI.",
+ "musicDescription": "Створюйте музику за допомогою Stable Audio Open або MusicGen через ComfyUI.",
"kinds": {
"embedding": "Вбудовування",
"image": "Зображення",
@@ -2538,111 +2542,111 @@
"openrouterSttDescription": "Моделі перетворення мови в текст OpenRouter використовують ваше налаштоване з'єднання OpenRouter. Окремі облікові дані не потрібні."
},
"search": {
- "searchQuery": "Search Query",
- "searchResults": "Search Results",
- "cachedResult": "Cached",
- "searchCost": "Cost",
+ "searchQuery": "Пошуковий запит",
+ "searchResults": "Результати пошуку",
+ "cachedResult": "Кешовано",
+ "searchCost": "Вартість",
"searchTools": "Search Tools",
- "searchToolsDesc": "Advanced search testing with provider comparison",
- "compareProviders": "Compare Providers",
- "rerankResults": "Rerank Results",
- "searchHistory": "Search History",
- "urlOverlap": "URL Overlap",
- "noSearchProviders": "No search providers configured. Add providers in Settings.",
- "noRerankModels": "No rerank model available",
+ "searchToolsDesc": "Розширене тестування пошуку з порівнянням провайдерів",
+ "compareProviders": "Порівняти провайдерів",
+ "rerankResults": "Переранжувати результати",
+ "searchHistory": "Історія пошуку",
+ "urlOverlap": "Перетин URL-адрес",
+ "noSearchProviders": "Провайдерів пошуку не налаштовано. Додайте провайдерів у налаштуваннях.",
+ "noRerankModels": "Немає доступної моделі переранжування",
"webSearch": "Web Search",
- "provider": "Provider",
- "searchType": "Search Type",
- "maxResults": "Max Results",
- "filters": "Filters",
- "country": "Country",
- "language": "Language",
- "timeRange": "Time Range",
- "includeDomains": "Include Domains",
- "excludeDomains": "Exclude Domains",
- "safeSearch": "Safe Search",
- "safeSearchOff": "Off",
- "safeSearchModerate": "Moderate",
- "safeSearchStrict": "Strict",
- "queryPlaceholder": "Enter search query...",
- "providerAuto": "auto (cheapest)",
+ "provider": "Провайдер",
+ "searchType": "Тип пошуку",
+ "maxResults": "Максимальна кількість результатів",
+ "filters": "Фільтри",
+ "country": "Країна",
+ "language": "Мова",
+ "timeRange": "Період часу",
+ "includeDomains": "Включити домени",
+ "excludeDomains": "Виключити домени",
+ "safeSearch": "Безпечний пошук",
+ "safeSearchOff": "Вимкнено",
+ "safeSearchModerate": "Помірний",
+ "safeSearchStrict": "Суворий",
+ "queryPlaceholder": "Введіть пошуковий запит...",
+ "providerAuto": "авто (найдешевший)",
"searchTypeWeb": "web",
- "searchTypeNews": "news",
- "optionAny": "any",
- "timeRangeDay": "Past day",
- "timeRangeWeek": "Past week",
- "timeRangeMonth": "Past month",
- "timeRangeYear": "Past year",
+ "searchTypeNews": "новини",
+ "optionAny": "будь-який",
+ "timeRangeDay": "Минула доба",
+ "timeRangeWeek": "Минулий тиждень",
+ "timeRangeMonth": "Минулий місяць",
+ "timeRangeYear": "Минулий рік",
"domainPlaceholder": "example.com",
- "requestTimedOut": "Request timed out ({seconds}s)",
- "networkError": "Network error",
- "formatted": "Formatted",
+ "requestTimedOut": "Час очікування запиту минув ({seconds} с)",
+ "networkError": "Помилка мережі",
+ "formatted": "Відформатовано",
"rawJson": "JSON",
- "cacheMiss": "cache miss",
- "cacheHit": "cache hit",
- "latency": "Latency",
- "cost": "Cost",
- "results": "Results",
+ "cacheMiss": "немає в кеші",
+ "cacheHit": "знайдено в кеші",
+ "latency": "Затримка",
+ "cost": "Вартість",
+ "results": "Результати",
"rerank": "Rerank",
- "rerankModel": "Rerank Model",
- "positionDelta": "Position Change",
- "emptyState": "Send a search query to see results",
+ "rerankModel": "Модель повторного ранжування",
+ "positionDelta": "Зміна позиції",
+ "emptyState": "Надішліть пошуковий запит, щоб переглянути результати",
"copy": "Копія",
"resetToDefault": "Скинути до замовчування",
- "tabSearch": "Search",
- "tabScrape": "Scrape",
- "tabCompare": "Compare",
- "modalitiesGuide": "Modalities guide",
- "searchConceptTitle": "Search",
- "searchConceptDesc": "Search = fetches a list of web results (title, URL, snippet, relevance score)",
- "scrapeConceptTitle": "Scrape",
- "scrapeConceptDesc": "Scrape = extracts the full content of a URL (markdown, text or HTML)",
- "compareConceptTitle": "Compare",
- "compareConceptDesc": "Compare = runs the same query across N providers side-by-side to compare latency, cost and result overlap",
- "rerankConceptTitle": "Rerank",
- "rerankConceptDesc": "Rerank = reorders results via LLM to improve relevance based on the query",
- "autoConceptTitle": "Auto (cheapest)",
- "autoConceptDesc": "Auto (cheapest) = automatically picks the cheapest available provider with configured credentials",
- "providerCatalogTitle": "Provider Catalog",
- "kindSearch": "Search",
- "kindFetch": "Fetch/Scrape",
- "statusConfigured": "Configured",
- "statusMissing": "No credential",
- "statusRateLimited": "Rate limited",
- "configureProvider": "Configure in Providers",
- "loadingProviders": "Loading providers…",
- "failedToLoadProviders": "Failed to load providers",
- "costPerQuery": "Cost/query",
- "freeQuota": "Free quota/mo",
- "scrapeUrl": "URL to scrape",
+ "tabSearch": "Пошук",
+ "tabScrape": "Збирання даних",
+ "tabCompare": "Порівняння",
+ "modalitiesGuide": "Посібник із модальностей",
+ "searchConceptTitle": "Пошук",
+ "searchConceptDesc": "Пошук = отримує список результатів з інтернету (заголовок, URL, фрагмент, оцінка релевантності)",
+ "scrapeConceptTitle": "Збирання даних",
+ "scrapeConceptDesc": "Збирання даних = витягує повний вміст URL (markdown, текст або HTML)",
+ "compareConceptTitle": "Порівняння",
+ "compareConceptDesc": "Порівняння = виконує той самий запит паралельно в N провайдерів, щоб порівняти затримку, вартість і збіг результатів",
+ "rerankConceptTitle": "Переранжування",
+ "rerankConceptDesc": "Переранжування = змінює порядок результатів за допомогою LLM, щоб підвищити релевантність відповідно до запиту",
+ "autoConceptTitle": "Авто (найдешевший)",
+ "autoConceptDesc": "Авто (найдешевший) = автоматично вибирає найдешевшого доступного провайдера з налаштованими обліковими даними",
+ "providerCatalogTitle": "Каталог провайдерів",
+ "kindSearch": "Пошук",
+ "kindFetch": "Отримання/скрейпінг",
+ "statusConfigured": "Налаштовано",
+ "statusMissing": "Немає облікових даних",
+ "statusRateLimited": "Ліміт запитів вичерпано",
+ "configureProvider": "Налаштувати в розділі «Провайдери»",
+ "loadingProviders": "Завантаження провайдерів…",
+ "failedToLoadProviders": "Не вдалося завантажити провайдерів",
+ "costPerQuery": "Вартість/запит",
+ "freeQuota": "Безкоштовна квота/міс.",
+ "scrapeUrl": "URL для скрейпінгу",
"scrapeUrlPlaceholder": "https://example.com",
"scrapeUrlRequired": "URL-адреса обов'язкова",
"scrapeUrlInvalid": "Недійсна URL-адреса — вона має починатися з http:// або https://",
- "scrapeExtract": "Extract",
- "scrapeExtracting": "Extracting…",
- "scrapeFullPage": "Full page",
- "scrapeFormat": "Format",
+ "scrapeExtract": "Видобути",
+ "scrapeExtracting": "Видобування…",
+ "scrapeFullPage": "Уся сторінка",
+ "scrapeFormat": "Формат",
"formatMarkdown": "Markdown",
"formatHtml": "HTML",
- "formatText": "Text",
- "scrapePreview": "Preview",
- "scrapeRaw": "Raw",
- "scrapeContentTruncated": "(truncated, view raw)",
- "scrapeMetadata": "Metadata",
- "scrapeProvider": "Provider",
- "scrapeSize": "Size",
+ "formatText": "Текст",
+ "scrapePreview": "Попередній перегляд",
+ "scrapeRaw": "Без обробки",
+ "scrapeContentTruncated": "(обрізано, переглянути без обробки)",
+ "scrapeMetadata": "Метадані",
+ "scrapeProvider": "Провайдер",
+ "scrapeSize": "Розмір",
"scrapeEmptyState": "Введіть URL-адресу, щоб вилучити її вміст",
"scrapeProvidersAvailable": "Доступні провайдери: Firecrawl, Jina Reader, Tavily, TinyFish.",
- "compareRun": "Compare",
- "compareRunning": "Comparing…",
- "autoProvider": "Auto (cheapest)",
- "configuredStatus": "Configured",
- "rateLimitedStatus": "Rate limited",
- "noCredential": "No credential",
- "searchTypeLabel": "Type",
- "rerankModelLabel": "Rerank model",
- "noneOption": "None",
- "size": "Size",
+ "compareRun": "Порівняти",
+ "compareRunning": "Порівняння…",
+ "autoProvider": "Авто (найдешевший)",
+ "configuredStatus": "Налаштовано",
+ "rateLimitedStatus": "Ліміт запитів вичерпано",
+ "noCredential": "Немає облікових даних",
+ "searchTypeLabel": "Тип",
+ "rerankModelLabel": "Модель переранжування",
+ "noneOption": "Немає",
+ "size": "Розмір",
"configurationPane": "Панель конфігурації",
"configuration": "Конфігурація",
"status": "Статус",
@@ -2748,7 +2752,7 @@
"configured": "Налаштовано",
"notConfigured": "Не налаштовано",
"notInstalled": "Не встановлено",
- "custom": "Custom",
+ "custom": "Власний",
"unknown": "Невідомий",
"lastSavedAt": "Востаннє збережено: {date}",
"never": "Ніколи",
@@ -2814,11 +2818,11 @@
"antigravityStep2Prefix": "2. Додайте",
"antigravityStep2Suffix": "у ваш файл hosts як 127.0.0.1.",
"antigravityStep3": "3. Відкрийте Антигравітацію, і запити будуть надсилатися через проксі.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
+ "mitmHowWorksDesc": "{toolName} надсилає запити до кінцевої точки свого провайдера. MITM перехоплює та перенаправляє їх до OmniRoute.",
+ "mitmStep1": "1. Запустіть MITM, щоб маршрутизувати запити через OmniRoute.",
+ "mitmStep2Prefix": "2. Додайте",
+ "mitmStep2Suffix": "до вашого файлу hosts як 127.0.0.1.",
+ "mitmStep3": "3. Відкрийте {toolName}, і запити передаватимуться через проксі.",
"sudoPasswordRequiredTitle": "Потрібен пароль Sudo",
"sudoPasswordHint": "Пароль адміністратора потрібен для зміни параметрів файлу хостів і проксі-сервера системи.",
"enterSudoPassword": "Введіть пароль sudo",
@@ -2904,7 +2908,7 @@
"continue": "Використовуйте під час запуску Продовжити в IDE і вам потрібна портативна конфігурація постачальника на основі JSON.",
"opencode": "Використовуйте, якщо ви віддаєте перевагу запуску агента на терміналі та автоматизації за сценарієм через OpenCode.",
"kiro": "Використовуйте під час інтеграції Kiro та централізованого керування маршрутизацією моделі з OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
+ "windsurf": "Використовуйте, якщо вам потрібне IDE, орієнтоване на ШІ, з моделями Codeium/Windsurf, маршрутизованими через OmniRoute.",
"antigravity": "Використовуйте, коли трафік Antigravity/Kiro потрібно перехопити через MITM і направити на OmniRoute.",
"copilot": "Використовуйте, коли вам потрібен UX у стилі чату Copilot із застосуванням ключів OmniRoute і правил маршрутизації.",
"amp": "Use when you want Amp CLI routed through OmniRoute with stable shorthand aliases and OpenAI-compatible setup.",
@@ -2917,19 +2921,19 @@
"claude": "Антропний код Клода CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "TUI-агент для кодування xAI Grok Build із підтримкою користувацьких провайдерів",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
+ "droid": "ШІ-помічник Factory Droid",
+ "openclaw": "ШІ-помічник Open Claw",
+ "cline": "CLI ШІ-помічника для програмування Cline",
"kilo": "Кіло Код AI Assistant CLI",
"qwen": "CLI Qwen Code",
"cursor": "Редактор коду Cursor AI",
"continue": "Продовжити AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "opencode": "ШІ-агент для програмування OpenCode (термінал)",
+ "kiro": "Amazon Kiro — IDE на базі ШІ",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "CLI помічника з програмування Sourcegraph Amp",
+ "hermes": "Термінальний ШІ-помічник Hermes",
"hermes-agent": "Hermes Agent (від Nousresearch) — просунутий термінальний AI з підтримкою мультимоделей (делегування, vision, стиснення тощо)",
"custom": "Generic OpenAI-сумісний CLI або SDK генератор конфігурації",
"aider": "CLI для парного програмування з ШІ Aider з OpenAI-сумісною базовою URL-адресою",
@@ -2946,7 +2950,7 @@
"interpreter": "CLI автономного агента для кодування Open Interpreter",
"omp": "Термінальний агент для кодування Oh My Pi",
"letta": "CLI-агент Letta з постійною пам'яттю та використанням інструментів",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — самовдосконалюваний RLM-інструментарій для програмування з підтримкою провайдерів, сумісних з OpenAI",
"warp": "ШІ-термінал Warp із підтримкою користувацьких провайдерів",
"agent-deck": "Мультиагентний оркестратор Agent Deck",
"5dive": "5dive — самостійно розміщений флот агентів для коду; один auth-профіль спрямовує їх усіх на OmniRoute"
@@ -3005,22 +3009,22 @@
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "Установити OpenCode",
+ "desc": "Установіть через npm: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "Ключ API"
},
"3": {
- "title": "Set Base URL",
+ "title": "Указати базову URL-адресу",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "Вибрати модель"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "Використовувати варіант із міркуванням",
+ "desc": "Для моделей із міркуванням запускайте з параметром --variant high/low/max (приклад команди наведено нижче)."
}
},
"notes": {
@@ -3031,18 +3035,18 @@
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Відкрити налаштування Kiro",
+ "desc": "Перейдіть до Налаштування → Провайдер ШІ"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "Базова URL-адреса",
+ "desc": "Вставте URL-адресу кінцевої точки OmniRoute"
},
"3": {
- "title": "API Key"
+ "title": "Ключ API"
},
"4": {
- "title": "Select Model"
+ "title": "Вибрати модель"
}
},
"notes": {
@@ -3052,24 +3056,24 @@
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "Відкрити налаштування ШІ",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "Додати власного провайдера",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "Базова URL-адреса",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "Ключ API",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "Вибрати модель",
+ "desc": "Виберіть модель із розкривного списку"
}
}
}
@@ -3080,7 +3084,7 @@
"guidedClientsTab": "Guided Clients Tab",
"mitmClientsTab": "Mitm Clients Tab",
"customCliTab": "Спеціальний CLI",
- "toolCategories": "Tool Categories",
+ "toolCategories": "Категорії інструментів",
"visibleToolsCount": "Доступні інструменти: {count}",
"customCliBuilderTitle": "Конструктор CLI, сумісний з OpenAI",
"customCliBuilderDescription": "Генеруйте змінні env і фрагменти JSON для будь-якого CLI або SDK, які приймають сумісну з OpenAI базову URL-адресу, ключ API та ідентифікатор моделі.",
@@ -3216,7 +3220,7 @@
"routingStrategy": "Стратегія маршрутизації",
"maxRetries": "Макс. повторних спроб",
"timeout": "Час очікування (мс)",
- "healthcheck": "Healthcheck",
+ "healthcheck": "Перевірка працездатності",
"priority": "Пріоритет",
"fallback": "Запасний варіант",
"roundRobin": "Кругова система",
@@ -3256,18 +3260,18 @@
"priorityDesc": "Послідовний резерв: спочатку пробує модель 1, потім 2 тощо.",
"weightedDesc": "Розподіляє трафік за ваговим відсотком із резервним варіантом",
"roundRobinDesc": "Циркулярний розподіл: кожен запит переходить до наступної моделі по черзі",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
+ "contextRelay": "Ретрансляція контексту",
+ "contextRelayDesc": "Зберігає безперервність сеансу за допомогою підсумків для передавання контексту під час перемикання облікових записів",
"randomDesc": "Рівномірний випадковий вибір, а потім повернення до інших моделей",
"leastUsedDesc": "Вибирає модель із найменшою кількістю запитів, балансуючи навантаження за часом",
"costOptimizedDesc": "Маршрути до найдешевшої моделі на основі ціни",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
- "resetAware": "Reset-Aware RR",
+ "cacheOptimizedDesc": "Послідовно спрямовує кожен повторно використовуваний префікс запиту до того самого облікового запису провайдера",
+ "resetAware": "RR з урахуванням скидання",
"resetAwareDesc": "Балансує квоту, що залишилася, із 5-годинним і щотижневим скиданням, а потім циклічними роботами з подібними результатами",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Зважування за квотою",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "Суворо випадковий",
+ "strictRandomDesc": "Перетасована колода — кожна модель використовується один раз перед повторним перетасуванням",
"fusion": "Злиття",
"fusionDesc": "Розсилає запит усім моделям панелі паралельно, після чого модель-суддя синтезує одну остаточну відповідь",
"fusionJudgeModel": "Модель-суддя",
@@ -3284,13 +3288,13 @@
"retryDelay": "Затримка повтору (мс)",
"concurrencyPerModel": "Одночасність / Модель",
"queueTimeout": "Час очікування черги (мс)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
+ "contextRelayHandoffThreshold": "Поріг передавання контексту",
+ "contextRelayHandoffThresholdHelp": "Коли використання квоти досягає цього порогу, OmniRoute створює структурований підсумок для передавання контексту до вичерпання ресурсів активного облікового запису.",
+ "contextRelayMaxMessages": "Максимальна кількість повідомлень для підсумку",
+ "contextRelayMaxMessagesHelp": "Обмежує обсяг нещодавньої історії, що стискається в підсумок ретрансляції.",
+ "contextRelaySummaryModel": "Модель для підсумку",
+ "contextRelaySummaryModelHelp": "Необов’язкова перевизначена модель, що використовується лише для створення підсумку передавання контексту. Залиште поле порожнім, щоб повторно використати активну модель комбінації.",
+ "contextRelayProviderNote": "Наразі ретрансляція контексту створює підсумки передавання для перемикання між обліковими записами Codex. Для найкращої безперервності використовуйте її з кількома обліковими записами того самого провайдера.",
"advancedHint": "Залиште пустим, щоб використовувати глобальні параметри за умовчанням. Вони замінюють налаштування кожного постачальника.",
"failoverBeforeRetry": "Відмова перед повторною спробою",
"maxSetRetries": "Максимальна кількість повторних спроб",
@@ -3340,41 +3344,41 @@
"playgroundCreateFirst": "Спочатку створіть одне",
"weighted": "Зважений",
"leastUsed": "Найменш використовуваний",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "costOpt": "Оптимізація вартості",
+ "strategyGuideTitle": "Як використовувати цю стратегію",
+ "strategyGuideWhen": "Коли використовувати",
+ "strategyGuideAvoid": "Коли не використовувати",
+ "strategyGuideExample": "Приклад",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "У вас є одна пріоритетна модель, і ви хочете використовувати резервну лише в разі збою.",
+ "avoid": "Вам потрібно розподіляти запити між моделями.",
+ "example": "Основна модель для програмування з дешевшою резервною моделлю на випадок збоїв."
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "Вам потрібен контрольований розподіл трафіку між моделями.",
+ "avoid": "Ви не можете постійно підтримувати точність вагових коефіцієнтів.",
+ "example": "Розгортання: 80% — стабільна модель, 20% — канаркова модель."
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "Вам потрібен передбачуваний і рівномірний розподіл.",
+ "avoid": "Моделі надто відрізняються за затримкою або вартістю.",
+ "example": "Однакова модель у кількох облікових записах для розподілу пропускної здатності."
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "Вам потрібен простий розподіл із мінімальним налаштуванням.",
+ "avoid": "Вам потрібні суворі гарантії розподілу трафіку.",
+ "example": "Швидке прототипування з рівноцінними моделями."
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "Вам потрібне адаптивне балансування на основі поточного попиту.",
+ "avoid": "Обсяг трафіку надто низький, щоб отримати переваги від балансування використання.",
+ "example": "Змішані робочі навантаження, за яких одна модель часто перевантажується."
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "Зниження вартості є вашим головним пріоритетом.",
+ "avoid": "Дані про ціни відсутні або застарілі.",
+ "example": "Фонові або пакетні завдання, для яких нижча вартість є пріоритетною."
},
"reset-aware": {
"when": "Ви маршрутизуєте між кількома обліковими записами за допомогою квотної телеметрії та різних вікон скидання.",
@@ -3382,19 +3386,19 @@
"example": "Віддавайте перевагу щотижневому скиданню облікових записів на 60% завтра, ніж оновленню на 80% пізніше."
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "Використовуйте, коли потрібен ідеально рівномірний розподіл — кожна модель використовується один раз перед повторенням.",
+ "avoid": "Не використовуйте, коли моделі відрізняються за якістю чи затримкою і порядок має значення.",
+ "example": "Приклад: кілька облікових записів однієї моделі для рівномірного розподілу використання."
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "Використовуйте, коли потрібен вибір із низькою затримкою за алгоритмом Power-of-Two-Choices.",
+ "avoid": "Не використовуйте для невеликих комбінацій із 2 або меншою кількістю моделей — це не має переваг над циклічним розподілом.",
+ "example": "Приклад: високопродуктивний інференс через 4+ рівноцінні кінцеві точки моделей."
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "Використовуйте, коли тривалі сеанси мають витримувати ротацію облікових записів без втрати робочого контексту.",
+ "avoid": "Не використовуйте, якщо перемикання облікових записів відбувається рідко або якщо ви не хочете надсилати додаткові запити на узагальнення.",
+ "example": "Приклад: сеанси Codex, які перемикаються між кількома обліковими записами, коли квота майже вичерпана."
},
"fill-first": {
"when": "Використовуйте, коли ви хочете повністю вичерпати квоту одного постачальника перед переходом до наступного.",
@@ -3418,49 +3422,49 @@
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "Кількість повторних спроб перед остаточною невдачею запиту.",
+ "retryDelay": "Початкова затримка між повторними спробами. Вищі значення зменшують пікове навантаження.",
+ "timeout": "Максимальна тривалість запиту до його переривання.",
+ "healthcheck": "Виключає несправні моделі та провайдерів із рішень щодо маршрутизації.",
+ "concurrencyPerModel": "Максимальна кількість одночасних запитів на модель за циклічного розподілу.",
+ "queueTimeout": "Максимальний час очікування запиту в черзі до завершення за тайм-аутом.",
"failoverBeforeRetry": "Якщо ввімкнено, будь-яка помилка висхідного потоку запускає негайне перемикання після відмови до наступної комбінованої цілі, пропускаючи всі повторні спроби та резервні URL-адреси.",
"maxSetRetries": "Кількість разів, щоб повторити повний набір цілей, коли кожна ціль не вдається. 0 = немає повторної спроби встановленого рівня.",
"setRetryDelayMs": "Затримка між повторними спробами встановленого рівня, що дає час для вирішення тимчасових проблем.",
"disableSessionStickiness": "Перемикатися на інше підключення при кожному запиті замість прив'язки всієї розмови до одного підключення за хешем першого повідомлення. Перевизначає глобальне значення за замовчуванням. Залиште «Inherit», щоб зберегти влучання в кеш промптів для багатокрокових чатів."
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
+ "templatesTitle": "Швидкі шаблони",
+ "templatesDescription": "Застосуйте початковий профіль, а потім налаштуйте моделі та конфігурацію.",
+ "templateApply": "Застосувати шаблон",
+ "templateHighAvailability": "Висока доступність",
+ "templateHighAvailabilityDesc": "Пріоритетна маршрутизація з перевірками стану та безпечними повторними спробами.",
+ "templateCostSaver": "Економія коштів",
+ "templateCostSaverDesc": "Маршрутизація з оптимізацією витрат для завдань із пріоритетом бюджету.",
+ "templateBalanced": "Збалансоване навантаження",
+ "templateBalancedDesc": "Маршрутизація до найменш використовуваних моделей для розподілу попиту в часі.",
"usageGuideHide": "Приховати",
"usageGuideDontShowAgain": "Більше не показувати",
"usageGuideShow": "Показати інструкцію",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "quickTestTitle": "Комбінація готова до перевірки",
+ "quickTestDescription": "Запустіть тест зараз, щоб перевірити резервне перемикання та затримку.",
+ "testNow": "Тестувати зараз",
+ "pricingCoverage": "Наявність цін",
+ "pricingCoverageHint": "Оптимізація витрат працює найкраще, коли для всіх моделей комбінації вказано ціни.",
+ "pricingAvailable": "Ціна доступна",
+ "pricingMissing": "Ціна відсутня",
+ "pricingAvailableShort": "із ціною",
+ "pricingMissingShort": "без ціни",
"fallbackOnlyOnQuotaExhaustion": "Тільки просуватися при вичерпанні квоти",
"fallbackOnlyOnQuotaExhaustionShort": "резервування лише для квоти",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
+ "warningRoundRobinSingleModel": "Циклічний розподіл найкорисніший за наявності принаймні 2 моделей.",
+ "warningCostOptimizedPartialPricing": "Ціни вказано лише для {priced} із {total} моделей. Маршрутизація може лише частково враховувати витрати.",
+ "warningCostOptimizedNoPricing": "Для цієї комбінації не знайдено даних про ціни. Оптимізація витрат може призвести до неочікуваної маршрутизації.",
"filterAll": "Усі",
"filterIntelligent": "Інтелектуальні",
"filterDeterministic": "Детерміновані",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
+ "filterEmptyTitle": "Жодна комбінація не відповідає цьому фільтру стратегій.",
+ "filterEmptyIntelligentDescription": "Створіть комбінацію auto або LKGP, щоб заповнити інформаційну панель інтелектуальної маршрутизації.",
+ "filterEmptyDeterministicDescription": "Наразі існують лише комбінації auto та LKGP. Поверніться до варіанта «Усі» або створіть детерміновану комбінацію.",
"readinessTitle": "Готові економити?",
"readinessDescription": "Перегляньте контрольний список, перш ніж створювати або оновлювати цю комбінацію.",
"readinessCheckName": "Ім'я комбінованого тексту дійсне",
@@ -3474,12 +3478,12 @@
"saveBlockModels": "Додайте хоча б одну модель.",
"saveBlockWeighted": "Встановити ваги на 100% (поточний: {total}%).",
"saveBlockPricing": "Додайте ціну принаймні на одну модель або виберіть іншу стратегію.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "recommendationsLabel": "Рекомендовані налаштування",
+ "applyRecommendations": "Застосувати рекомендації",
+ "recommendationsUpdated": "Рекомендації для {strategy} оновлено.",
+ "recommendationsApplied": "Рекомендації застосовано до цієї комбінації.",
+ "intelligentPanelTitle": "Панель інтелектуальної маршрутизації",
+ "intelligentPanelDesc": "Оцінювання в реальному часі та стан працездатності цієї комбінації автоматичної маршрутизації.",
"configOnlyStatus": "Перегляд конфігурації",
"configOnlyHint": "Ця панель показує лише вхідні дані маршрутизації. Стан запобіжника в реальному часі доступний на сторінці Стан системи.",
"routingInputs": "Параметри маршрутизації",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "Невідомий префікс провайдера.",
"builderDynamicAccountShort": "Динамічний акаунт",
"builderNeedValidName": "Введіть коректну назву комбо перед продовженням.",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "Огляд стану",
+ "normalOperation": "Нормальна робота",
+ "allProvidersHealthy": "Провайдери повідомляють про належні умови маршрутизації.",
+ "incidentMode": "Режим інциденту",
+ "highCircuitBreakerRate": "Виявлено високу частоту спрацювання автоматичного вимикача.",
+ "activeModePack": "Активний пакет режимів",
+ "modePackUpdated": "Пакет режимів оновлено до {pack}.",
+ "modePackHint": "Перемикайте пресети, щоб змінити пріоритети механізму маршрутизації без повторного створення комбінації.",
+ "providerScores": "Оцінки провайдерів",
+ "allProvidersEvaluated": "Пул кандидатів не налаштовано. Усі активні провайдери оцінюються під час виконання.",
+ "excludedProviders": "Виключені провайдери",
+ "excludedProvidersHint": "Провайдери з автоматичним вимикачем у стані OPEN тимчасово виключаються з маршрутизації.",
+ "noExcludedProviders": "Наразі немає виключених провайдерів.",
+ "cooldownMinutes": "Період відновлення: {minutes} хв",
+ "builderIntelligentTitle": "Конфігурація інтелектуальної маршрутизації",
+ "builderIntelligentDesc": "Налаштуйте багатофакторний механізм оцінювання для цієї комбінації автоматичної маршрутизації.",
+ "candidatePoolLabel": "Пул кандидатів",
+ "candidatePoolHint": "Виберіть провайдерів, яких має оцінювати цей механізм. Залиште поле порожнім, щоб використовувати всіх активних провайдерів.",
+ "candidatePoolEmpty": "Активних провайдерів поки немає.",
+ "candidatePoolAllProviders": "Усі провайдери",
+ "modePackLabel": "Пакет режимів",
+ "routerStrategyLabel": "Стратегія маршрутизатора",
+ "strategyRules": "Правила (6-факторне оцінювання)",
+ "explorationRateLabel": "Частота дослідження",
+ "explorationRateHint": "{percent}% запитів можуть спрямовуватися до неоптимальних провайдерів для дослідження.",
+ "budgetCapLabel": "Ліміт бюджету (USD / запит)",
+ "budgetCapPlaceholder": "Без обмежень",
+ "advancedWeightsTitle": "Розширені налаштування: ваги оцінювання",
"nestedComboFlatten": "Розгорнути вкладені комбо",
"nestedComboExecute": "Виконувати вкладені комбо як цілі",
"effectiveRoutingShare": "Ефективна частка маршрутизації (вага ÷ загалом)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "Квота",
+ "weightHealth": "Працездатність",
+ "weightCostInv": "Вартість",
+ "weightLatencyInv": "Затримка",
+ "weightTaskFit": "Відповідність завданню",
+ "weightStability": "Стабільність",
+ "weightTierPriority": "Рівень",
+ "weightCacheAffinity": "Пріоритет попадання в кеш",
"weightSessionAvailability": "Доступність сесії",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "Конфігурація інтелектуальної маршрутизації",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "Безпечний базовий варіант",
+ "description": "Використовуйте одну основну модель, а ланцюжок резервних моделей зробіть коротким і надійним.",
+ "tip1": "Поставте найнадійнішу модель першою.",
+ "tip2": "Залиште 1–2 резервні моделі зі схожою якістю.",
+ "tip3": "Використовуйте безпечні повторні спроби, щоб компенсувати тимчасові збої провайдера."
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "Керований розподіл трафіку",
+ "description": "Чудово підходить для канаркового розгортання та поступової міграції між моделями.",
+ "tip1": "Почніть із консервативного розподілу, наприклад 90/10.",
+ "tip2": "Підтримуйте загальну суму на рівні 100% і автоматично балансуйте її після змін.",
+ "tip3": "Стежте за успішністю та затримкою, перш ніж збільшувати частку канаркової моделі."
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "Передбачуваний розподіл навантаження",
+ "description": "Найкраще підходить, коли моделі рівноцінні й потрібен плавний розподіл.",
+ "tip1": "Використовуйте щонайменше 2 моделі.",
+ "tip2": "Установіть обмеження паралельності, щоб уникнути перевантаження через сплески.",
+ "tip3": "Використовуйте тайм-аут черги для швидкої відмови в разі перевантаження."
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "Швидкий розподіл із мінімальним налаштуванням",
+ "description": "Використовуйте, коли потрібен простий розподіл без суворих гарантій.",
+ "tip1": "Використовуйте моделі зі схожими профілями затримки.",
+ "tip2": "Залиште повторні спроби ввімкненими, щоб компенсувати випадкові невдачі.",
+ "tip3": "Віддавайте перевагу цьому варіанту для експериментів, а не для суворих SLA."
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "Адаптивне балансування",
+ "description": "Спрямовує запити до менш використовуваних моделей, щоб із часом зменшувати локальні перевантаження.",
+ "tip1": "Краще працює за безперервного трафіку.",
+ "tip2": "Поєднуйте з перевірками працездатності для безпечнішого балансування.",
+ "tip3": "Відстежуйте використання кожної моделі, щоб оцінити покращення розподілу."
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "Маршрутизація з пріоритетом бюджету",
+ "description": "Спрямовує запити до дешевших моделей, коли доступні метадані про ціни.",
+ "tip1": "Переконайтеся, що дані про ціни доступні для всіх вибраних моделей.",
+ "tip2": "Залиште якісну резервну модель для складних промптів.",
+ "tip3": "Використовуйте для пакетних або фонових завдань, де вартість є основним KPI."
},
"reset-aware": {
"title": "Ротація облікового запису з урахуванням скидання",
@@ -3593,11 +3597,11 @@
"tip3": "Тримайте зв’язок невеликим, щоб еквівалентні рахунки все одно справедливо чергувалися."
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "Розподіл за перетасованою колодою",
+ "description": "Кожна модель використовується рівно один раз за цикл перед повторним перетасуванням.",
+ "tip1": "Для змістовного розподілу використовуйте щонайменше 2 моделі.",
+ "tip2": "Найкраще працює з моделями еквівалентної продуктивності.",
+ "tip3": "Ідеально підходить для балансування навантаження між кількома обліковими записами API."
},
"fill-first": {
"description": "Послідовно вичерпайте квоти постачальника, перш ніж відступити.",
@@ -3642,11 +3646,11 @@
"title": "Сила двох виборів"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
+ "templateFreeStack": "Безкоштовний стек ($0)",
+ "templateFreeStackDesc": "Циклічний розподіл між усіма безкоштовними провайдерами: Kiro (Claude), Qoder (5 моделей), Qwen (4 моделі). Нульова вартість, кодування ніколи не зупиняється.",
"auto": "Auto Combo",
"autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "lkgp": "LKGP Mode",
+ "lkgp": "Режим LKGP",
"lkgpDesc": "Last Known Good Provider (Predictable resilience)",
"wizardGuideTitle": "Початок роботи з Комбо",
"wizardGuideDesc": "Створіть комбінації моделей для розумної маршрутизації AI-трафіку",
@@ -3660,68 +3664,68 @@
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
"wizardStep4Title": "Перевірте та збережіть",
"wizardStep4Desc": "Перегляньте конфігурацію та активуйте комбо",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "usageGuideInvokeTitle": "Як викликати цю комбінацію",
+ "usageGuideInvokeDesc": "Передайте точну назву комбінації як модель, наприклад model: \"my-combo\" (або combo/my-combo).",
+ "usageGuideInvokeAutoNote": "auto та auto/* — це окремий маршрутизатор із нульовим налаштуванням, який не використовує ваші комбінації (якщо тільки комбінація буквально не має назву auto).",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto — це справжній платний продукт OpenRouter (Auto Best Available), а не псевдонім OmniRoute — виключіть його через Налаштування → Маршрутизація → Приховати платні моделі.",
+ "emailVisibilityStateOn": "Увімкнено",
+ "emailVisibilityStateOff": "Вимкнено",
+ "reorderHandle": "Перетягніть, щоб змінити порядок",
+ "failedReorder": "Не вдалося змінити порядок моделей",
+ "builderFlowTitle": "Процес створення комбінації",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "Основи",
+ "description": "Назва та початковий шаблон"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "Кроки",
+ "description": "Вибір провайдера, моделі та облікового запису"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "Стратегія",
+ "description": "Поведінка маршрутизації та розширені налаштування"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "Розумна маршрутизація",
+ "description": "Пул кандидатів для автоматичної маршрутизації, пресети та оцінювання"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "Перевірка",
+ "description": "Остаточна перевірка перед збереженням"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
+ "builderStageVisited": "Етап завершено",
+ "builderStageCurrent": "Поточний етап",
+ "builderStagePending": "Очікує",
+ "builderStageLocked": "Заблоковано — спочатку завершіть попередній етап",
+ "builderTitle": "Створити комбінацію",
+ "builderBrowseCatalog": "Переглянути каталог",
+ "builderProvider": "Провайдер",
+ "builderLoadingProviders": "Завантаження провайдерів...",
+ "builderSelectProvider": "Виберіть провайдера",
+ "builderModel": "Модель",
+ "builderSelectModel": "Виберіть модель",
+ "builderProviderFirst": "Спочатку виберіть провайдера",
+ "builderAccount": "Обліковий запис",
+ "builderPreview": "Попередній перегляд",
+ "builderAddStep": "Додати крок",
"builderDuplicateExact": "Цей точний крок постачальника/моделі/облікового запису вже є в комбінації.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
+ "builderComboRef": "Посилання на комбінацію",
+ "builderAddComboRef": "Додати посилання на комбінацію",
+ "builderComboRefStep": "Додати посилання на комбінацію",
+ "builderPinnedAccount": "Закріплений обліковий запис",
+ "builderLegacyEntry": "Застарілий запис",
+ "reviewName": "Назва",
+ "reviewStrategy": "Стратегія",
+ "reviewSteps": "Кроки",
+ "reviewAccounts": "Облікові записи",
+ "reviewProviders": "Провайдери",
+ "reviewComboRefs": "Посилання на комбінації",
+ "reviewAdvanced": "Розширені налаштування",
+ "reviewAgentFlags": "Прапорці агента",
+ "reviewSequence": "Послідовність моделей",
+ "reviewNoSteps": "Кроки не налаштовано",
"builderStagesDescription": "Пройдіть кожен етап, щоб визначити комбінації, побудувати кроки, вибрати стратегію маршрутизації та переглянути результати.",
"builderStepsDescription": "Створюйте кожен комбінований крок у порядку: постачальник, модель, потім обліковий запис. Це дозволяє повторно використовувати того самого постачальника та модель для різних облікових записів.",
"selectProvider": "Виберіть Постачальник",
@@ -3730,7 +3734,7 @@
"selectModelPlaceholder": "Спочатку виберіть постачальника",
"selectAccount": "Виберіть обліковий запис",
"selectComboToReference": "Виберіть комбо для посилання",
- "comboReference": "Combo Reference",
+ "comboReference": "Посилання на комбінацію",
"addComboReference": "Додати комбіноване посилання",
"addStepBeforeContinue": "Будь ласка, додайте принаймні один крок, перш ніж перейти до наступного етапу.",
"previewNextStep": "Попередній перегляд наступного кроку",
@@ -3738,7 +3742,7 @@
"modePackBalanced": "Збалансований",
"modePackBudget": "Бюджет",
"modePackPerformance": "Продуктивність",
- "modePackCustom": "Custom",
+ "modePackCustom": "Власний",
"browseLegacyCatalog": "Перегляньте застарілий комбінований каталог",
"agentFeaturesTitle": "Особливості агента",
"agentFeaturesDescription": "Увімкніть розширені функції для агентів, які використовують цю комбінацію",
@@ -3796,27 +3800,27 @@
"range7d": "7 днів",
"range30d": "30 днів",
"range90d": "90 днів",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 днів",
+ "range365d": "365 днів",
"rangeAll": "Весь час",
"spend30d": "Spend30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
+ "activeModels": "Активні моделі",
+ "flatRateEstimateNotice": "Включає оцінки вартості токенів для підписок із фіксованою оплатою, а не фактичну суму рахунку.",
+ "flatRateEstimateForecast": "Прогноз включає оцінки для підписок із фіксованою оплатою.",
+ "selectedWindow": "Вибраний період",
+ "activeProviders": "Активні провайдери",
"overviewTitle": "Overview Title",
"spend7d": "Spend7D",
"avgCostPerRequest": "Avg Cost Per Request",
"noCostDataDescription": "No Cost Data Description",
- "spendToday": "Spend Today",
+ "spendToday": "Витрати сьогодні",
"overviewLoadFailed": "Overview Load Failed",
"overviewDescription": "Overview Description",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
+ "providerShare": "Частка провайдера",
+ "topProviders": "Провідні провайдери",
+ "costTrend": "Динаміка витрат",
"noCostDataTitle": "No Cost Data Title",
- "topModels": "Top Models",
+ "topModels": "Провідні моделі",
"requestsInWindow": "Requests In Window",
"tokenUsage": "Використання маркера",
"totalTokens": "Загальна кількість токенів",
@@ -3859,7 +3863,7 @@
"groupAccount": "Обліковий запис",
"groupServiceTier": "Рівень сервісу",
"serviceTierFast": "Швидкий",
- "serviceTierFlex": "Flex",
+ "serviceTierFlex": "Гнучкий режим",
"serviceTierStandard": "Стандартний",
"serviceTierBreakdownTitle": "Рівень сервісу",
"serviceTierBreakdownSubtitle": "Розподіл Fast / Flex / Standard",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "Кінцева точка API",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "Використовуйте OpenAI-сумісну кінцеву точку з більшістю SDK та інструментів.",
+ "testEndpoint": "Перевірити кінцеву точку →",
+ "advancedProtocols": "Розширені протоколи",
"available": "Доступні кінцеві точки",
"cloudProxy": "Хмарний проксі",
"disableConfirm": "Ви впевнені, що бажаєте вимкнути хмарний проксі?",
@@ -3896,7 +3900,7 @@
"disableCloud": "Вимкнути хмару",
"enableCloud": "Увімкнути хмару",
"modelsAcrossEndpoints": "{models} моделей через {endpoints} кінцевих точок",
- "loadingModels": "Loading available models...",
+ "loadingModels": "Завантаження доступних моделей...",
"chatDesc": "Потоковий і непотоковий чат з усіма провайдерами",
"embeddings": "Вбудовування",
"embeddingsDesc": "Вбудовування тексту для конвеєрів пошуку та RAG",
@@ -3908,22 +3912,22 @@
"audioTranscriptionDesc": "Транскрибувати аудіофайли в текст (Whisper)",
"textToSpeech": "Перетворення тексту в мовлення",
"textToSpeechDesc": "Перетворення тексту на природне мовлення",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
+ "musicGeneration": "Генерування музики",
+ "musicDesc": "Генеруйте музику й аудіодоріжки за допомогою ComfyUI (Stable Audio, MusicGen)",
"moderations": "Модерації",
"moderationsDesc": "Модерація контенту та класифікація безпеки",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
+ "responsesDesc": "OpenAI Responses API для Codex і розширених агентних робочих процесів",
+ "listModelsDesc": "Переглянути всі доступні моделі від усіх підключених провайдерів",
+ "settingsApiDesc": "Читати та змінювати конфігурацію OmniRoute через API",
+ "settingsApi": "API налаштувань",
"categoryCore": "Основні API",
"categoryMedia": "Медіа та мультимодальність",
- "categorySearch": "Search & Discovery",
+ "categorySearch": "Пошук і виявлення",
"categoryUtility": "Утиліти та управління",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
+ "webSearch": "Вебпошук",
+ "webSearchDesc": "Уніфікований вебпошук через кількох провайдерів з автоматичним перемиканням у разі збою та кешуванням",
+ "searchProvider": "Провайдер пошуку",
+ "searchProviderDesc": "Цей провайдер використовується для вебпошуку через POST /v1/search. Налаштування моделі не потрібне — провайдери пошуку готові до використання після підключення ключа API.",
"enableCloudTitle": "Увімкнути Cloud Proxy",
"whatYouGet": "Що ви отримаєте",
"cloudBenefitAccess": "Отримайте доступ до свого API з будь-якої точки світу",
@@ -3959,57 +3963,57 @@
"cloudflaredTitle": "Cloudflare Quick Tunnel",
"cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint to make it accessible from the internet without configuring DNS.",
"cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. URLs change after restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredEnable": "Увімкнути тунель",
+ "cloudflaredInstallAndEnable": "Установити й увімкнути",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "Працює",
+ "cloudflaredStarting": "Запускається",
+ "cloudflaredStoppedState": "Зупинено",
+ "cloudflaredNotInstalled": "Не встановлено",
+ "cloudflaredUnsupported": "Не підтримується",
+ "cloudflaredError": "Помилка",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
"cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after restart.",
"cloudflaredUnsupportedNote": "This platform is not supported for managed installation.",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
+ "cloudflaredLastError": "Остання помилка: {error}",
"providerModelsTitle": "{provider} — Моделі",
"noModelsForProvider": "Для цього постачальника немає доступних моделей.",
"chat": "Чат",
"embedding": "Вбудовування",
"image": "Зображення",
"custom": "звичай",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "modelsCount": "{count, plural, one {# модель} few {# моделі} many {# моделей} other {# моделі}}",
+ "sectionTitle": "Поверхня інтеграції",
+ "sectionDescription": "API, сумісні з OpenAI, та кінцеві точки операційних протоколів",
"tabApis": "APIи",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "Протоколи",
+ "tabsAria": "Розділи кінцевих точок",
+ "protocolsTitle": "Протоколи",
+ "protocolsDescription": "MCP і A2A є повноцінними кінцевими точками зі спеціалізованими засобами спостережуваності та керування.",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "Model Context Protocol через stdio",
+ "a2aCardTitle": "Сервер A2A",
+ "a2aCardDescription": "Кінцева точка Agent2Agent JSON-RPC",
+ "protocolToolsLabel": "Інструменти",
+ "protocolTasksLabel": "Завдання",
+ "protocolActiveStreamsLabel": "Активні потоки",
+ "protocolLastActivity": "Остання активність",
+ "quickStart": "Швидкий початок",
+ "openMcpDashboard": "Відкрити керування MCP",
+ "openA2aDashboard": "Відкрити керування A2A",
+ "mcpQuickStartTitle": "Швидкий початок роботи з MCP",
+ "mcpQuickStartStep1": "Запустіть сервер MCP за допомогою `omniroute --mcp`.",
+ "mcpQuickStartStep2": "Налаштуйте клієнт MCP для підключення через транспорт stdio.",
+ "mcpQuickStartStep3": "Викликайте такі інструменти, як `omniroute_get_health` і `omniroute_list_combos`.",
+ "a2aQuickStartTitle": "Швидкий початок роботи з A2A",
+ "a2aQuickStartStep1": "Знайдіть картку агента за адресою `/.well-known/agent.json`.",
+ "a2aQuickStartStep2": "Надсилайте запити JSON-RPC до `POST /a2a` за допомогою `message/send` або `message/stream`.",
+ "a2aQuickStartStep3": "Відстежуйте завдання та керуйте ними за допомогою `tasks/get` і `tasks/cancel`.",
+ "completionsLegacy": "Доповнення (застарілі)",
+ "completionsLegacyDesc": "Застарілі текстові доповнення OpenAI — приймають як рядок запиту, так і формат масиву повідомлень",
"messagesApi": "Повідомлення",
"messagesApiDesc": "Формат Native Anthropic Messages API для Claude-сумісних постачальників",
"imageEdits": "Редагування зображень",
@@ -4018,40 +4022,40 @@
"batchApiDesc": "Асинхронна обробка великих пакетів запитів (сумісний з OpenAI)",
"filesApi": "API файлів",
"filesApiDesc": "Завантажуйте та керуйте файлами для пакетної обробки",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "Генерування відео",
+ "videoDesc": "Генеруйте відео за допомогою моделей ШІ, як-от ComfyUI і Stable Video Diffusion.",
+ "tailscaleRequestFailed": "Не вдалося завантажити стан Tailscale",
+ "tailscaleEnableFailed": "Не вдалося ввімкнути Tailscale Funnel",
+ "tailscaleWaitingForLogin": "Завершіть вхід у Tailscale у відкритій вкладці браузера. OmniRoute автоматично повторить спробу.",
+ "tailscaleLoginTimedOut": "Час очікування входу в Tailscale вичерпано",
+ "tailscaleWaitingForFunnel": "Увімкніть Funnel для цього пристрою у відкритій вкладці браузера. OmniRoute продовжить опитування.",
+ "tailscaleFunnelTimedOut": "Час очікування ввімкнення Tailscale Funnel вичерпано",
+ "tailscaleStarted": "Tailscale Funnel увімкнено",
+ "tailscaleDisableFailed": "Не вдалося вимкнути Tailscale Funnel",
+ "tailscaleStopped": "Tailscale Funnel вимкнено",
+ "tailscaleInstallFailed": "Не вдалося встановити Tailscale",
+ "tailscaleInstallProgress": "Виконується...",
+ "tailscaleInstalled": "Tailscale успішно встановлено",
+ "tailscaleRunning": "Працює",
+ "tailscaleNeedsLogin": "Потрібен вхід",
+ "tailscaleStoppedState": "Зупинено",
+ "tailscaleNotInstalled": "Не встановлено",
+ "tailscaleUnsupported": "Не підтримується",
+ "tailscaleError": "Помилка",
+ "tailscaleDisable": "Зупинити Funnel",
+ "tailscaleInstallAndEnable": "Встановити й увімкнути",
+ "tailscaleLoginAndEnable": "Увійти й увімкнути",
+ "tailscaleEnable": "Увімкнути Funnel",
+ "tailscaleUrlNotice": "Використовує вашу адресу Tailscale .ts.net. Під час першого використання може знадобитися вхід і схвалення Funnel.",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
+ "tailscaleNeedsLoginHint": "Автентифікуйте цей комп’ютер у Tailscale, а потім увімкніть Funnel.",
+ "tailscaleBinaryPath": "Виконуваний файл: {path}",
+ "tailscaleLastError": "Остання помилка: {error}",
+ "tailscaleInstallTitle": "Встановити Tailscale",
+ "tailscaleInstallIntro": "Встановлює Tailscale на цей комп’ютер і готує OmniRoute до ввімкнення Funnel.",
+ "tailscaleInstallPasswordHint": "У macOS і Linux для встановлення пакета та запуску демона може знадобитися sudo.",
+ "tailscaleSudoPlaceholder": "Необов’язковий пароль sudo",
+ "tailscaleInstalling": "Встановлення",
"tailscaleSudoLabel": "Пароль Sudo (потрібний для macOS/Linux)",
"ngrokTitle": "тунель нгрок",
"ngrokRunning": "Біг",
@@ -4104,7 +4108,7 @@
"all": "Усі",
"more": "+{count} ще",
"showInternalTooltip": "Показати або приховати внутрішні маршрути (приховані за замовчуванням)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Bearer-автентифікація",
"requestBody": "Тіло запиту",
"close": "Закрити",
"tryIt": "Спробувати",
@@ -4128,7 +4132,7 @@
"vscodeAliasModelsLabel": "Моделі VS Code",
"vscodeAliasChatLabel": "Чат VS Code",
"localServer": "Локальний сервер",
- "cloudOmniroute": "Cloud OmniRoute",
+ "cloudOmniroute": "Хмарний OmniRoute",
"copyUrl": "Копіювати URL",
"badgeLoopbackTooltip": "Цей ендпоінт доступний лише локально (loopback)",
"badgeAlwaysProtectedTooltip": "Цей ендпоінт завжди захищений і потребує авторизації",
@@ -4140,9 +4144,9 @@
"tierPublic": "Публічні",
"hideInternal": "Приховати внутрішні",
"showInternal": "Показати внутрішні",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "Власна системна підказка",
+ "customSystemPromptDescription": "Додавати власну системну підказку до кожного запиту до моделі",
+ "customSystemPromptPlaceholder": "Наприклад, завжди відповідай як пірат...",
"obsidianEnterToken": "Будь ласка, введіть токен API Obsidian",
"obsidianConnectFailed": "Не вдалося підключитися",
"obsidianConnectionFailed": "Помилка підключення",
@@ -4191,29 +4195,29 @@
"notionTokenConfigured": "Токен налаштовано. Інструменти Notion доступні через MCP."
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "Проксі кінцевої точки",
+ "tabApiEndpoints": "Кінцеві точки API",
+ "apiEndpointsTitle": "Кінцеві точки API",
+ "apiEndpointsDescription": "Кінцеві точки серверного API, які можуть використовувати інші застосунки та служби. У цьому розділі буде наведено список усіх доступних REST API з документацією та можливостями тестування.",
+ "comingSoon": "Незабаром",
+ "plannedFeatures": "Заплановані функції",
+ "featureRestApi": "Каталог кінцевих точок REST API з інтерактивною документацією",
+ "featureWebhooks": "Налаштування вебхуків і підписок на події",
+ "featureSwagger": "Автоматичне створення специфікації OpenAPI / Swagger",
+ "featureAuth": "Керування ключами API та областями доступу OAuth для кожної кінцевої точки"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
+ "loading": "Завантаження панелі керування MCP...",
+ "activate": "активувати",
+ "deactivate": "деактивувати",
+ "confirmSwitchCombo": "Підтвердити дію «{action}» для комбінації «{combo}»?",
+ "switchComboFailed": "Не вдалося змінити стан комбінації.",
+ "switchComboSuccess": "Комбінацію «{combo}» оновлено.",
+ "confirmApplyProfile": "Застосувати профіль стійкості «{profile}»?",
+ "applyProfileFailed": "Не вдалося застосувати профіль стійкості.",
+ "applyProfileSuccess": "Профіль «{profile}» застосовано.",
+ "confirmResetBreakers": "Скинути всі автоматичні вимикачі?",
+ "resetBreakersFailed": "Не вдалося скинути автоматичні вимикачі.",
"resetBreakersSuccess": "Скидання автоматичних вимикачів.",
"processStatus": "Статус процесу",
"online": "Онлайн",
@@ -4239,113 +4243,113 @@
"totalCalls": "Всього дзвінків",
"successRate": "Коефіцієнт успішності",
"avgLatency": "Середня затримка",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "topTools": "Найпопулярніші інструменти",
+ "noToolCalls24h": "За останні 24 години викликів інструментів не було.",
+ "runtimeDetails": "Відомості про середовище виконання",
+ "transport": "Транспорт",
+ "scopesEnforced": "Області доступу застосовуються",
+ "yes": "так",
+ "no": "ні",
+ "lastCall": "Останній виклик",
+ "heartbeatPath": "Шлях перевірки працездатності",
+ "operationalControls": "Керування роботою",
+ "switchCombo": "Перемкнути комбінацію",
+ "inactive": "неактивна",
+ "active": "активна",
+ "activateCombo": "Активувати комбінацію",
+ "deactivateCombo": "Деактивувати комбінацію",
+ "applyResilienceProfile": "Застосувати профіль стійкості",
+ "profileAggressive": "агресивний",
+ "profileBalanced": "збалансований",
+ "profileConservative": "консервативний",
+ "applyProfile": "Застосувати профіль",
+ "resetCircuitBreakers": "Скинути автоматичні вимикачі",
+ "resetCircuitBreakersHelp": "Очищає поточний стан автоматичних вимикачів і лічильники збоїв для провайдерів.",
+ "resetAllBreakers": "Скинути всі автоматичні вимикачі",
+ "toolsAndScopes": "Інструменти та області доступу",
+ "tableTool": "Інструмент",
+ "tableScopes": "Області доступу",
+ "tablePhase": "Етап",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "Журнал аудиту",
+ "auditSummary": "Виклики: {total} | сторінка {page} з {totalPages}",
+ "allTools": "Усі інструменти",
+ "allResults": "Усі результати",
+ "success": "Успішно",
+ "failure": "Помилка",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "Завантаження записів аудиту...",
+ "noAuditEntriesForFilters": "Для поточних фільтрів записів аудиту не знайдено.",
+ "tableTimestamp": "Часова позначка",
+ "tableDuration": "Тривалість",
+ "tableResult": "Результат",
+ "tableApiKey": "Ключ API",
+ "failed": "помилка",
+ "previous": "Попередня",
+ "next": "Наступна",
+ "apiKeyId": "Ідентифікатор ключа API",
+ "offset": "Зміщення",
+ "limit": "Ліміт",
+ "tool": "Інструмент"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "Завантаження панелі A2A...",
+ "confirmCancelTask": "Скасувати завдання {taskId}?",
+ "cancelTaskFailed": "Не вдалося скасувати завдання.",
+ "cancelTaskSuccess": "Завдання {taskId} скасовано.",
+ "smokeSendFailed": "Не вдалося виконати димовий тест message/send.",
+ "smokeSendSuccessWithTask": "message/send виконано успішно (завдання {taskId}).",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "Не вдалося виконати димовий тест message/stream.",
+ "smokeStreamSuccessWithTask": "message/stream виконано успішно (завдання {taskId}{stateSuffix}).",
+ "smokeStreamNoTaskId": "message/stream завершено без ідентифікатора завдання.",
+ "health": "Стан",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "Усього завдань",
+ "activeStreams": "Активні потоки",
+ "lastTask": "Останнє завдання",
+ "taskStateOverview": "Огляд станів завдань",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "надіслано",
+ "working": "виконується",
+ "completed": "завершено",
+ "failed": "помилка",
+ "cancelled": "скасовано"
},
- "agentCard": "Agent card",
+ "agentCard": "Картка агента",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "Версія",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "Можливості",
+ "agentCardNotAvailable": "Картка агента недоступна.",
+ "quickValidation": "Швидка перевірка",
+ "quickValidationDescription": "Виконує тестові виклики через активну кінцеву точку `/a2a`.",
+ "runMessageSend": "Виконати message/send",
+ "runMessageStream": "Виконати message/stream",
+ "taskManagement": "Керування завданнями",
+ "taskSummary": "{total} завдань | сторінка {page} із {totalPages}",
+ "allStates": "усі",
+ "allSkills": "усі навички",
+ "loadingTasks": "Завантаження завдань...",
+ "noTasksForFilters": "Завдань за поточними фільтрами не знайдено.",
+ "tableTask": "Завдання",
+ "tableSkill": "Навичка",
+ "tableState": "Стан",
+ "tableUpdated": "Оновлено",
+ "tableActions": "Дії",
+ "view": "Переглянути",
+ "cancel": "Скасувати",
+ "previous": "Назад",
+ "next": "Далі",
+ "taskDetail": "Відомості про завдання",
+ "close": "Закрити",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "Події",
+ "artifacts": "Артефакти",
+ "tablePhase": "Фаза таблиці",
+ "offset": "Зміщення",
+ "limit": "Ліміт",
+ "skill": "Навичка",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "повідомлення/відправити",
"rpcMethodStream": "повідомлення/потік",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "Дії",
+ "addMemory": "Додати пам’ять",
+ "allTypes": "Усі типи",
"cancel": "Скасувати",
"checkHealth": "Перевір здоров'я",
"checkingHealth": "Перевірка…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "Як це працює",
"howWorksContent": "1. Автоматичне вилучення: наприкінці кожної відповіді факти та епізоди виявляються та зберігаються автоматично.\n2. Пошук: перед кожною відповіддю здійснюється пошук найбільш релевантних спогадів за допомогою FTS5 (точний), векторного (семантичний) або гібридного RRF.\n3. Впровадження: релевантні спогади додаються в контекст асистента для покращення якості відповідей.\n4. Керування: використовуйте цю сторінку для перегляду, редагування, експорту та стиснення старих спогадів."
},
- "content": "Content",
+ "content": "Вміст",
"contentPlaceholder": "Значення або вміст JSON, який слід запам’ятати",
- "created": "Created",
- "delete": "Delete",
+ "created": "Створено",
+ "delete": "Видалити",
"deleteConfirmDesc": "Цю дію неможливо скасувати. Спогад буде видалено назавжди.",
"deleteConfirmTitle": "Видалити спогад?",
- "description": "View and manage stored memory entries",
+ "description": "Перегляд і керування збереженими записами пам’яті",
"editMemory": "Редагувати спогад",
"editModal": {
"title": "Редагувати спогад",
@@ -4440,20 +4444,20 @@
"configureCta": "Налаштувати",
"vectorStoreInstallHint": "Щоб увімкнути векторний пошук: виконайте npm install sqlite-vec (потрібен native Node.js, не WASM), а потім перезапустіть."
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "Епізодична",
+ "export": "Експортувати",
+ "factual": "Фактологічна",
"healthUnknown": "Стан здоров'я невідомий",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "Частка влучань",
+ "import": "Імпортувати",
"importError": "Не вдалося імпортувати файл",
"importResult": "{imported} імпортовано, {skipped} пропущено",
- "key": "Key",
+ "key": "Ключ",
"keyPlaceholder": "напр. user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "Спогади",
"next": "Далі",
- "noMemories": "No memories found",
+ "noMemories": "Спогадів не знайдено",
"pageInfo": "Сторінка {page} з {totalPages} (усього {total})",
"pipelineError": "Помилка трубопроводу",
"pipelineOk": "Конвеєр OK ({latencyMs}ms)",
@@ -4465,7 +4469,7 @@
"strategyLabel": "Стратегія",
"strategyExact": "Точний (FTS5)",
"strategySemantic": "Семантичний (векторний)",
- "strategyHybrid": "Hybrid (RRF)",
+ "strategyHybrid": "Гібридний (RRF)",
"budgetLabel": "Бюджет (токени)",
"simulate": "Симулювати",
"resultsTitle": "{count} результат(ів)",
@@ -4481,7 +4485,7 @@
"errorFetch": "Не вдалося завантажити попередній перегляд"
},
"previous": "Попередній",
- "procedural": "Procedural",
+ "procedural": "Процедурна",
"qdrant": {
"title": "Qdrant (Векторне сховище рівня 2)",
"description": "Додаткова інтеграція Qdrant для масштабованого семантичного пошуку",
@@ -4530,8 +4534,8 @@
},
"save": "зберегти",
"saving": "Збереження...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "Шукати спогади...",
+ "semantic": "Семантична",
"summarize": {
"title": "Стиснути старі спогади",
"noCandidates": "Немає спогадів, які підлягають стисненню (критерій: вік >30 днів).",
@@ -4543,8 +4547,8 @@
"playground": "Пісочниця",
"engine": "Рушій"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "Керування пам’яттю",
+ "tokensUsed": "Використано токенів",
"tooltip": {
"totalEntries": "Всього спогадів, збережених для цього API-ключа",
"tokensUsed": "Оціночна загальна кількість токенів, зайнятих активними спогадами",
@@ -4554,15 +4558,15 @@
"procedural": "Процедури, робочі процеси та інструкції, яких повинен дотримуватися асистент",
"semantic": "Концепції, уподобання та знання предметної області"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "Усього записів",
+ "type": "Тип",
"memoryEnabled": "Пам'ять увімкнено"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "Навички",
+ "description": "Керування та моніторинг навичок ШІ",
+ "skillsTab": "Навички",
+ "executionsTab": "Виконання",
"selectSkillToInspect": "Виберіть навичку ліворуч для перегляду.",
"schemaTab": "Схема",
"handlerTab": "Обробник",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "Запустити тест (заповнювач)",
"setModeAria": "Встановити режим {mode}",
"uninstallSkill": "Видалити навичку",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "Пісочниця",
+ "loading": "Завантаження навичок...",
+ "noSkills": "Навичок не знайдено",
+ "noExecutions": "Виконань не знайдено",
+ "enabled": "Увімкнено",
+ "disabled": "Вимкнено",
"delete": "Видалити",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "Версія",
+ "tableDescription": "Опис",
+ "skill": "Навичка",
+ "status": "Стан",
+ "duration": "Тривалість",
+ "time": "Час",
+ "sandboxConfig": "Конфігурація пісочниці",
+ "cpuLimit": "Обмеження ЦП",
+ "cpuLimitDesc": "Максимальний час виконання для кожної навички",
+ "memoryLimit": "Обмеження пам’яті",
+ "memoryLimitDesc": "Максимальний обсяг виділеної пам’яті",
+ "timeout": "Час очікування",
+ "timeoutDesc": "Максимальний час очікування відповіді",
+ "networkAccess": "Доступ до мережі",
+ "networkAccessDesc": "Дозволити вихідні мережеві запити",
+ "mode": "Режим",
"q": "Q",
"filterSkillsPlaceholder": "Фільтруйте навички за назвою, описом або тегом",
"allModes": "Всі режими",
@@ -4661,13 +4665,13 @@
"retry": "Повторіть спробу",
"allOperational": "Всі системи в робочому стані",
"issuesDetected": "Виявлено системні проблеми",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute готовий до роботи",
+ "healthVerdictActionRequired": "Потрібна дія для відновлення повноцінної роботи",
+ "healthVerdictCoolingDown": "Період стабілізації після нещодавніх змін",
+ "healthSubtitle": "Перевірка стану системи",
+ "advancedDiagnosticsTitle": "Розширена діагностика",
+ "hide": "Приховати",
+ "show": "Показати",
"updatedAt": "Оновлено {time}",
"latency": "Затримка",
"latencyP50": "стор.50",
@@ -4694,9 +4698,9 @@
"providers": "Провайдери",
"configuredProvidersLabel": "Налаштовано на інформаційній панелі",
"configuredProvidersHint": "Постачальники з обліковими даними, збереженими в /dashboard/providers, незалежно від стану виконання.",
- "activeProviders": "{count} active",
+ "activeProviders": "Активні: {count}",
"activeProvidersHint": "Налаштовані постачальники наразі ввімкнено для запитів маршрутизації.",
- "monitoredProviders": "{count} monitored",
+ "monitoredProviders": "Відстежуються: {count}",
"monitoredProvidersHint": "Постачальники наразі відстежуються моніторами справності автоматичних вимикачів.",
"healthyCount": "{count} здоровий",
"nodeVersion": "Вузол {version}",
@@ -4717,11 +4721,11 @@
"resetting": "Скидання...",
"resetAll": "Скинути все",
"until": "До {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "limitExhausted": "Вичерпано",
+ "learnedFromHeaders": "Отримано із заголовків",
+ "remainingOfLimit": "Залишилося {remaining} із {limit}",
+ "throttleStatus": "Обмеження частоти: {value}",
+ "lastHeaderUpdate": "Оновлення заголовка: {age}",
"databaseHealth": "Справність бази даних",
"databaseHealthDescription": "Діагностувати та відновити застарілі рядки квот/доменів і пошкоджені посилання на комбінації.",
"status": "Статус",
@@ -4884,28 +4888,28 @@
"previous": "Попередній",
"next": "Далі",
"providerWarningTitle": "Provider Warning Title",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
+ "viewDetails": "Переглянути подробиці",
+ "eventMetadata": "Метадані події",
+ "eventPayload": "Дані події",
+ "requestId": "Ідентифікатор запиту",
"providerWarningDesc": "Provider Warning Desc",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
+ "offset": "Зміщення",
+ "limit": "Ліміт",
+ "status": "Статус",
+ "resourceType": "Тип ресурсу",
+ "totalEntries": "Усього записів",
+ "tab": "Вкладка",
"auditModalSubtitle": "Audit Modal Subtitle",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "close": "Закрити",
+ "runningRequests": "Активні запити",
+ "runningRequestsDesc": "Перегляд поточних вихідних запитів у реальному часі",
"clearAll": "Очистити все",
"confirmClearActiveRequests": "Очистити всі активні запити?",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "Модель",
+ "provider": "Провайдер",
+ "account": "Обліковий запис",
+ "elapsed": "Минуло",
"activeStage": "Етап",
"activeStageUnknown": "Ще не надіслано до провайдера",
"activeStageRegistered": "Зареєстровано",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "Слот обмеження швидкості отримано",
"activeStageSendingToProvider": "Надсилання до провайдера",
"activeStageProviderResponseStarted": "Відповідь провайдера почала надходити",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "Кількість",
+ "payloads": "Корисні навантаження",
+ "viewPayloads": "Переглянути",
+ "activeCount": "Активних: {count}",
+ "clientPayload": "Корисне навантаження запиту клієнта",
+ "upstreamPayload": "Корисне навантаження висхідного провайдера",
+ "upstreamNotSentYet": "Ще не надіслано висхідному провайдеру",
+ "runningRequestDetailMeta": "Обліковий запис: {account} — Минуло: {elapsed}",
+ "export": "Експортувати",
+ "exporting": "Експортування...",
+ "exportFailed": "Не вдалося експортувати",
"cleanHistoryButton": "Очистити історію",
"cleanHistoryTitle": "Очистити історію логів?",
"cleanHistoryMessage": "Це назавжди очистить усі рядки журналів запитів, застарілі рядки деталей та локальні файли артефактів у DATA_DIR/call_logs. Сторінка оновиться після очищення.",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "Очищено {deleted} записів логів, {deletedArtifacts} артефактів та {deletedDetailedLogs} застарілих рядків деталей.",
"cleanHistoryEmpty": "Історію логів запитів не знайдено.",
"cleanHistoryFailed": "Не вдалося очистити історію логів.",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "Діапазон часу",
+ "lastNHours": "Останні {hours}",
+ "defaultRange": "за замовчуванням",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "Не вдалося отримати журнали",
+ "copyFailed": "Не вдалося скопіювати запис журналу",
+ "copyLogEntry": "Копіювати запис журналу",
"filterByLevel": "Фільтрувати за рівнем логування",
"searchPlaceholder": "Пошук у логах…",
"searchAria": "Пошук записів логів",
@@ -4983,9 +4987,9 @@
"multiProvider": "Багатопровайдер",
"usageTracking": "Відстеження використання",
"securityDesc": "Встановіть пароль, щоб захистити свою інформаційну панель, або пропустіть наразі.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ Без пароля ви не зможете додати провайдерів під час налаштування. Їх можна буде додати пізніше з панелі керування після встановлення пароля.",
"providerDesc": "Підключіть свого першого постачальника AI. Ви можете додати більше пізніше.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "Щоб додати провайдерів, спочатку потрібно встановити пароль. Поверніться до кроку безпеки та встановіть пароль або додайте провайдерів пізніше з панелі керування.",
"apiKeyRequired": "Ключ API (обов'язково)",
"customUrlOptional": "Спеціальна URL-адреса (необов'язково)",
"testDesc": "Давайте перевіримо, чи працює підключення до вашого провайдера.",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "Імпортування…",
"importFromFileImport": "Імпортувати {count} провайдерів",
"importFromFileResult": "Імпортовано {success} провайдерів (не вдалося: {failed})",
+ "importFromFileDownloadTemplate": "Завантажити шаблон CSV",
+ "importFromFileMoreErrors": "Ще +{count}",
+ "importFromFileSchemaHint": "Стовпці CSV є позиційними: provider, name, apiKey, baseUrl (необов’язково), priority (необов’язково). Стовпець provider має містити ідентифікатор наявного керованого провайдера або вже зареєстрований ідентифікатор вузла, сумісного з OpenAI/Anthropic. Цей імпорт не створює нових вузлів кінцевих точок.",
"adaptaTutorial": {
"title": "Як підключити Adapta Web",
"introPrefix": "Adapta автентифікується через Clerk. Токен",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "Цей постачальник більше не підтримується",
"riskNotice": {
"title": "Перед тим, як продовжити",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "Застереження щодо використання",
"tooltip": "Провайдер із застереженнями щодо використання — натисніть для подробиць",
"oauth": "Цей провайдер використовує вашу офіційну продуктову сесію/OAuth, які не авторизовані для використання у проксі/маршрутизаторі. Ми не рекомендуємо інтенсивне автономне використання агентами (стиль OpenCloud, довгі багатокрокові потоки, великі пакети) — провайдер може у відповідь обмежити або заблокувати акаунт. Використовуйте на власний ризик.",
"webCookie": "Цей провайдер автентифікується через cookie вашої веб-сесії. Сервіс може в будь-який момент анулювати сесію, що вимагатиме повторного входу. Не рекомендовано для довгих автоматизованих операцій. Використовуйте на власний ризик.",
@@ -5184,9 +5191,9 @@
"cancel": "Скасувати"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "Позначено підключень: {count} — до {maxFailures} нещодавніх помилок{lastFailureSuffix}. Натисніть, щоб переглянути стан підключень.",
+ "lastFailureSuffix": "(остання помилка {time})",
+ "ariaLabel": "Переглянути відомості про стан підключень, попереджень: {count}"
},
"disabled": "Вимкнено",
"enableProvider": "Увімкнути провайдера",
@@ -5232,7 +5239,7 @@
"clearing": "Очищення...",
"until": "До {time}",
"providerTestFailed": "Тест постачальника не вдався",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "providerTestTimeout": "Час очікування перевірки провайдера минув — забагато підключень для одночасної перевірки",
"modeTest": "Тест {mode}",
"passedCount": "{count} пройдено",
"failedCount": "{count} не вдалося",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "URL-адреса іконки",
"iconUrlHint": "Необов'язково. URL-адреса зображення, що відображається як іконка цього провайдера.",
"iconUrlInvalid": "Недійсне URL-адреса значка. Використовуйте http(s):// або data:image/*;base64 URL.",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "Часовий пояс скидання добової квоти",
+ "dailyQuotaResetTimezoneHint": "Необов’язковий часовий пояс IANA, який використовується, коли висхідний сервіс не надає X-RateLimit-Reset. Залиште порожнім, щоб зберегти короткий період очікування.",
+ "dailyQuotaResetHourLabel": "Година скидання добової квоти",
+ "dailyQuotaResetHourHint": "Місцева година від 0 до 23 у вказаному вище часовому поясі. Порожнє значення означає відсутність годинника на рівні вузла.",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5270,9 +5277,9 @@
"providerNotFound": "Постачальник не знайдено",
"deleteConnectionConfirm": "Видалити це підключення?",
"deleteConnectionConfirmNamed": "Ви впевнені, що хочете видалити {name}? Цю дію не можна скасувати.",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "Видалити вибрані ({count})",
+ "batchDeleteConfirm": "Видалити підключення ({count})? Цю дію неможливо скасувати.",
+ "batchDeleteSuccess": "Видалено підключень: {count}",
"batchActivateSelected": "Активувати",
"batchDeactivateSelected": "Деактивувати",
"batchRetestSelected": "Повторно протестувати",
@@ -5288,7 +5295,7 @@
"filterError": "Помилка",
"filterBanned": "Заблоковано",
"filterCreditsExhausted": "Кредити вичерпано",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "Пошук облікових записів…",
"noFilteredConnections": "Жодне підключення не відповідає поточному фільтру.",
"failedSetAlias": "Не вдалося встановити псевдонім",
"setAliasSuccess": "Псевдонім {alias} встановлено",
@@ -5302,13 +5309,13 @@
"messagesApi": "API повідомлень",
"responsesApi": "API відповідей",
"embeddings": "Вбудовування",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "audioTranscriptions": "Транскрибування аудіо",
+ "audioSpeech": "Синтез мовлення",
+ "imagesGenerations": "Генерація зображень",
"chatCompletions": "Завершення чату",
"importingModels": "Імпорт...",
"importFromModels": "Імпортувати з /models",
- "modelsImported": "{count} models imported",
+ "modelsImported": "Імпортовано моделей: {count}",
"allModelsAlreadyImported": "Усі моделі вже імпортовано",
"noNewModelsToImport": "Немає нових моделей для імпорту — усі моделі вже є в реєстрі або списку користувацьких моделей",
"skippingExistingModels": "Пропуск {count} наявних моделей",
@@ -5346,13 +5353,13 @@
"importFailed": "Помилка імпорту",
"noNewModelsAdded": "Нові моделі не додано.",
"adding": "Додавання...",
- "close": "Close",
+ "close": "Закрити",
"importingModelsTitle": "Імпорт моделей",
"copyModel": "Копія моделі",
"filterModels": "Фільтрувати моделі…",
"testAllRateLimited": "Досягнуто ліміту запитів, зупинено достроково",
"hideFailedAuto": "Автоматично приховувати моделі з помилками",
- "selectAllModels": "Select all",
+ "selectAllModels": "Вибрати все",
"hideAllModels": "Приховати все",
"modelsActive": "активні",
"showModel": "Показати модель",
@@ -5382,8 +5389,8 @@
"bulkAddFormatHint": "Один ключ на рядок. Формат: ім’я|apiKey або просто apiKey (автоматична назва за індексом).",
"bulkValidateKeys": "Перевірте кожен ключ перед збереженням (повільніше)",
"bulkAddAllKeys": "Додати всі ключі",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
+ "bulkAddedCount": "{count, plural, one {Додано # ключ} few {Додано # ключі} many {Додано # ключів} other {Додано # ключа}}",
+ "bulkFailedCount": "{count, plural, one {# помилка} few {# помилки} many {# помилок} other {# помилки}}",
"optional": "Додатково",
"anthropicCompatibleName": "Антропна сумісність",
"openaiCompatibleName": "Сумісність з OpenAI",
@@ -5400,7 +5407,7 @@
"unexpectedErrorOccurred": "Сталася неочікувана помилка",
"getApiKey": "Отримати API ключ",
"getApiKeyDescription": "Зареєструйтеся або підпишіться на API-ключ",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# підключення} few {# підключення} many {# підключень} other {# підключення}}",
"messagesPath": "повідомлення",
"responsesPath": "відповіді",
"chatCompletionsPath": "чат/завершення",
@@ -5415,17 +5422,17 @@
"configured": "налаштовано",
"providerProxyConfigureHint": "Налаштувати проксі для всіх підключень цього провайдера",
"providerProxy": "Проксі-сервер постачальника",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
+ "repairEnv": "Відновити .env",
+ "repairEnvWorking": "Відновлення...",
+ "repairEnvHint": "Відновити відсутні стандартні значення OAuth у .env, не перезаписуючи наявні значення.",
+ "repairEnvSuccess": "Стандартні значення OAuth відновлено",
+ "repairEnvFailed": "Не вдалося відновити .env",
"noConnectionsYet": "Підключень ще немає",
"addFirstConnectionHint": "Щоб почати, додайте своє перше підключення",
"addConnection": "Додати підключення",
"availableModels": "Доступні моделі",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
+ "builtInModels": "Вбудовані моделі",
+ "builtInModelsHint": "Моделі цього постачальника з реєстру. Скористайтеся олівцем, щоб налаштувати параметри сумісності.",
"pageAutoRefresh": "Сторінка оновиться автоматично...",
"statusDisabled": "вимкнено",
"statusConnected": "підключений",
@@ -5471,24 +5478,24 @@
"reauthenticateConnection": "Повторно автентифікуйте це підключення",
"proxyConfig": "Конфігурація проксі",
"aliasExistsAlert": "Псевдонім \"{alias}\" вже існує. Використовуйте іншу модель або відредагуйте існуючий псевдонім.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "назва псевдоніма",
+ "clickToSetAlias": "Натисніть, щоб установити псевдонім",
+ "clickToEditAlias": "Псевдонім: {alias} (натисніть, щоб змінити)",
"openRouterAnyModelHint": "OpenRouter підтримує будь-яку модель. Додайте моделі та створіть псевдоніми для швидкого доступу.",
"modelIdFromOpenRouter": "ID моделі (з OpenRouter)",
"openRouterModelPlaceholder": "антропний/claude-3-opus",
"customModels": "Спеціальні моделі",
"customModelsHint": "Додайте ідентифікатори моделей, яких немає в списку за замовчуванням. Вони будуть доступні для маршрутизації.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "normalizeToolCallIdLabel": "Нормалізувати ідентифікатори викликів інструментів до 9 символів (наприклад, Mistral)",
+ "preserveDeveloperRoleLabel": "Зберігати роль developer у OpenAI Responses (не зіставляти із system)",
+ "compatAdjustmentsTitle": "Сумісність",
+ "compatButtonLabel": "Сумісність",
+ "compatToolIdShort": "Ідентифікатор інструмента — 9 символів",
+ "compatDeveloperShort": "Роль developer",
+ "compatDoNotPreserveDeveloper": "Не зберігати роль developer",
+ "compatBadgeNoPreserve": "Не зберігати",
+ "compatProtocolLabel": "Протокол запиту клієнта",
+ "compatProtocolHint": "Ці параметри застосовуються, коли OmniRoute виявляє таку структуру запиту (OpenAI Chat, Responses API або Anthropic Messages).",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,25 +5537,25 @@
"interceptFetchHint": "Перенаправляти виклики нативного інструмента web_fetch на /v1/web/fetch в OmniRoute.",
"interceptionLoadError": "Не вдалося завантажити налаштування перехоплення: {error}",
"interceptionSaveError": "Не вдалося зберегти налаштування перехоплення: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
+ "ccAliasSectionTitle": "Показувати в Claude Code (claude/…)",
+ "ccAliasSectionHint": "Публікувати моделі цього постачальника під дзеркальними ідентифікаторами claude/<provider>/<model>, щоб засіб виявлення моделей шлюзу Claude Code міг додати їх до списку. За замовчуванням вимкнено — увімкнення подвоює кількість записів у каталозі для всіх клієнтів.",
+ "ccAliasProviderLevelLabel": "За замовчуванням постачальника",
+ "ccAliasModelOverridesLabel": "Перевизначення для окремих моделей",
+ "ccAliasModelOverrideAriaLabel": "Перевизначення для {modelId}",
+ "ccAliasStateInherit": "Успадковувати",
+ "ccAliasStateOn": "Увімкнено",
+ "ccAliasStateOff": "Вимкнено",
+ "ccAliasAddModelPlaceholder": "Ідентифікатор моделі (наприклад, gpt-4o)",
+ "ccAliasAddModelButton": "Додати перевизначення",
+ "ccAliasLoadError": "Не вдалося завантажити налаштування псевдонімів виявлення: {error}",
+ "ccAliasSaveError": "Не вдалося зберегти налаштування псевдоніма виявлення: {error}",
+ "compatUpstreamHeadersLabel": "Додаткові заголовки висхідного сервера",
+ "compatUpstreamHeadersHint": "Налаштування з високим рівнем привілеїв — має такий самий рівень довіри, як і редагування облікових даних API постачальника; використовувати його мають лише довірені адміністратори. Об’єднується після того, як OmniRoute додає автентифікацію з ключа API постачальника. Якщо власний заголовок має таку саму назву, як уже наявний (наприклад, Authorization), ваше значення повністю замінить автоматично створений заголовок (разом із токеном Bearer) — висхідний сервер бачитиме лише введене вами значення, а не ключ із налаштувань. Неправильна конфігурація може спричинити помилку 401 або порушити автентифікацію на висхідному сервері. Один рядок на заголовок (наприклад, додаткова Authentication для деяких шлюзів). Наведіть вказівник або установіть фокус на значенні, щоб переглянути його. Зберігається після втрати фокуса, натискання поза полем або закриття цієї панелі.",
+ "compatUpstreamHeaderName": "Назва заголовка",
+ "compatUpstreamHeaderValue": "Значення",
+ "compatUpstreamAddRow": "Додати заголовок",
+ "compatUpstreamRemoveRow": "Видалити рядок",
+ "compatBadgeUpstreamHeaders": "Заголовки",
"perModelQuotaLabel": "Per Model Quota Label",
"perModelQuotaDescription": "Per Model Quota Description",
"importFreeModelsOnlyLabel": "Імпортувати лише безкоштовні моделі",
@@ -5588,26 +5595,26 @@
"email": "Електронна пошта",
"healthCheckMinutes": "Перевірка стану (хв.)",
"healthCheckHint": "Проактивний інтервал оновлення маркера. 0 = вимкнено.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
+ "deselectAllModels": "Зняти вибір з усіх",
+ "modelsActiveCount": "Активні: {active}/{total}",
+ "noModelsMatch": "Жодна модель не відповідає фільтру «{filter}»",
+ "groupLabel": "Середовище",
+ "groupPlaceholder": "наприклад, eKaizen, особисте",
"failedTestConnection": "Не вдалося перевірити з’єднання",
"failed": "Не вдалося",
"leaveBlankKeepCurrentApiKey": "Залиште поле порожнім, щоб зберегти поточний ключ API.",
"editCompatibleTitle": "Редагувати {type} Сумісний",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
+ "compatibleBaseUrlHint": "Коренева URL-адреса вашого API, сумісного з {type}. Використовуйте розширені налаштування для власних шляхів кінцевих точок.",
"apiKeyForCheck": "Ключ API (для перевірки)",
"testModelIdLabel": "ID моделі (необов'язково)",
"testModelIdPlaceholder": "наприклад, my-model-id",
"testModelIdHint": "Якщо у провайдера відсутній ендпоінт /models, введіть ID моделі для перевірки через /chat/completions.",
"compatibleProdPlaceholder": "{type} Сумісність (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "tokenRefreshed": "Токен успішно оновлено",
+ "tokenRefreshFailed": "Не вдалося оновити токен",
"cursorSessionUnchanged": "Сесія вже активна",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "Застосувати автентифікацію",
+ "exportCodexAuthFile": "Експортувати дані автентифікації",
"applyClaudeAuthLocal": "Застосувати авторизацію",
"exportClaudeAuthFile": "Аутентифікація експорту",
"importClaudeAuth": "Аутентифікація імпорту",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} не вдалося",
"codexImportBulkZipExtracting": "Розпакування ZIP…",
"codexImportBulkZipError": "Не вдалося розпакувати ZIP",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "Розширені налаштування",
+ "chatPathLabel": "Шлях кінцевої точки чату",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "Власний шлях чату для провайдерів із нестандартними API (наприклад, /v4/chat/completions)",
+ "modelsPathLabel": "Шлях кінцевої точки моделей",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "Власний шлях до моделей для перевірки (наприклад, /v4/models)",
"clientIdentityLabel": "Ідентифікація клієнта",
"clientIdentityHint": "Необов'язково. Додає заголовки цифрового відбитка клієнта (наприклад, User-Agent), що відповідають відомому CLI, для сумісних шлюзів, які їх очікують.",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
+ "statusDeactivated": "Деактивовано (вручну)",
+ "statusBanned": "Заблоковано / порушення правил пісочниці",
+ "statusCreditsExhausted": "Недостатній баланс / квоту вичерпано",
+ "showEmails": "Показати всі електронні адреси",
+ "hideEmails": "Приховати всі електронні адреси",
"a": "A",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "Додайте інший ключ API або вставте кілька ключів",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "Шлюзи агрегаторів",
"enterpriseCloud": "Підприємство та хмара",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "Мітка формату API",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "Регіон API: Китай",
+ "apiRegionHint": "Підказка щодо регіону API",
+ "apiRegionInternational": "Регіон API: міжнародний",
+ "apiRegionLabel": "Мітка регіону API",
+ "apikey": "Ключ API",
+ "audio": "Аудіо",
+ "audioProvidersHeading": "Заголовок провайдерів аудіо",
"cloudAgentProviders": "Постачальники хмарних агентів",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "Коротка мітка аудіо",
+ "azureOpenAiBaseUrlHint": "Підказка щодо базової URL-адреси Azure Open AI",
+ "bailianBaseUrlHint": "Підказка щодо базової URL-адреси Bailian",
+ "claudeWebCookieHint": "Відкрийте claude.ai → DevTools → Application → Cookies → claude.ai і скопіюйте значення 'sessionKey'. Для Cloudflare також потрібні cf_clearance, __cf_bm, _cfuvid.",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Підказка щодо файлу cookie Blackbox Web",
+ "blackboxWebCookiePlaceholder": "Заповнювач файлу cookie Blackbox Web",
"t3ChatWebCookieHint": "Відкрийте t3.chat → DevTools → Application → Local Storage → https://t3.chat, скопіюйте 'convex-session-id'. Потім відкрийте DevTools → Network, скопіюйте повний заголовок Cookie з будь-якого запиту чату. Вставте обидва значення в поля нижче.",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Підказка щодо файлу cookie Grok Web",
"blockClaudeExtraUsageDescription": "Коли увімкнено, OmniRoute позначає це з'єднання Claude як недоступне, щойно API використання повідомляє про чергу додаткового використання, тому резервне з'єднання перемикається на інше з'єднання замість продовження на оплату за фактом додаткового рахунку.",
"blockClaudeExtraUsageLabel": "Блокувати додаткове використання Claude",
"disableCoolingDescription": "Пропускати тимчасовий період очікування, щоб це підключення залишалося доступним навіть після відновлюваних помилок (термінальні стани, як-от banned/expired, все одно застосовуються).",
"disableCoolingLabel": "Вимкнути період очікування для цього підключення",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {Додано 1 ключ} other {Додано # ключів}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {Пропущено 1 дублікат} other {Пропущено # дублікатів}}",
+ "bulkPasteHint": "Вставте по одному API-ключу в кожному рядку. Порожні рядки ігноруються, а дублікати ключів пропускаються.",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "Додає бета-заголовок redact-thinking для сумісних із CC висхідних провайдерів, яким потрібні приховані потоки міркувань Claude.",
+ "ccCompatibleRedactThinkingLabel": "Увімкнути бета-функцію redact-thinking",
+ "ccCompatibleSummarizeThinkingDescription": "Додає `display: \"summarized\"` до запитів міркування, сумісних із CC, щоб підтримувані моделі Claude передавали видимі фрагменти міркувань у потоковому режимі.",
+ "ccCompatibleSummarizeThinkingLabel": "Увімкнути відображення підсумованих міркувань",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,16 +5811,16 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "Використовувати пріоритетний рівень обслуговування для запитів Codex, коли він доступний.",
+ "codexFastServiceTierLabel": "Швидкий рівень обслуговування Codex",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
+ "compatUpstreamHeaderNamePlaceholder": "Заповнювач назви заголовка сумісного висхідного провайдера",
+ "compatUpstreamHeaderValuePlaceholder": "Заповнювач значення заголовка сумісного висхідного провайдера",
"compatible": "Сумісні",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
+ "configuredCount": "Кількість налаштованих",
+ "consoleApiKeyOracleHint": "Підказка щодо API-ключа консолі Oracle",
+ "consoleApiKeyOracleLabel": "API-ключ консолі Oracle",
+ "consoleApiKeyOraclePlaceholder": "Заповнювач API-ключа консолі Oracle",
"newApiUserIdLabel": "ID користувача New-API",
"newApiUserIdPlaceholder": "напр. 12345",
"newApiUserIdHint": "Значення заголовка New-Api-User AgentRouter, використовується разом із ключем API консолі для отримання балансу квоти.",
@@ -5826,32 +5833,32 @@
"featureFlagNewApiAggregatorBalanceDescription": "Увімкніть виявлення балансу для сумісних вузлів New-API / One-API / Sub2API агрегатора",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "Підказка щодо власного User-Agent",
+ "customUserAgentLabel": "Власний User-Agent",
+ "databricksBaseUrlHint": "Підказка щодо базової URL-адреси Databricks",
+ "defaultThinkingStrengthHint": "Використовується, коли в запиті не вказано рівень інтенсивності міркувань.",
+ "defaultThinkingStrengthLabel": "Стандартна інтенсивність міркувань",
+ "deleteAllExtraApiKeys": "Видалити все",
+ "excludedModelsHint": "Підказка щодо виключених моделей",
+ "excludedModelsLabel": "Виключені моделі",
+ "excludedModelsPlaceholder": "Заповнювач виключених моделей",
+ "expirationBannerExpired": "Термін дії минув",
+ "expirationBannerExpiredDesc": "Опис завершення терміну дії",
+ "expirationBannerExpiringSoon": "Термін дії незабаром завершиться",
+ "expirationBannerExpiringSoonDesc": "Опис наближення завершення терміну дії",
+ "extraApiKeyMasked": "Ключ {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "Підказка щодо додаткових API-ключів",
+ "extraApiKeysLabel": "Додаткові API-ключі",
+ "apiKeyHealthLabel": "Стан API-ключа",
+ "apiKeyStatusActive": "Активний",
+ "apiKeyStatusWarning": "Попередження ({count} помилок)",
+ "apiKeyStatusInvalid": "Недійсний",
+ "primaryKey": "Основний ключ",
+ "apiKeyInvalidAlert": "Ключі API ({count}) позначено як недійсні через помилки автентифікації в підключеннях: {connections}. Їх буде пропущено під час ротації. Натисніть, щоб переглянути.",
+ "apiKeyInvalidAlertTitle": "Сповіщення про стан ключів API",
+ "apiKeyWarningAlert": "Ключі API ({count}) мають стан попередження через підвищену частоту помилок у підключеннях: {connections}. Перевірте їх, щоб запобігти проблемам із ротацією.",
+ "apiKeyWarningAlertTitle": "Попередження щодо ключів API",
+ "googlePseInfo": "Інформація про Google Pse",
"antigravityProjectIdHint": "Додаткове перевизначення для запитів на код Antigravity Cloud. Залиште поле порожнім, щоб використовувати проект, виявлений під час Google OAuth.",
"antigravityClientProfileLabel": "Профіль клієнта",
"antigravityClientProfileHint": "Виберіть, яку клієнтську ідентичність Antigravity OmniRoute представляє API.",
@@ -5861,47 +5868,47 @@
"tierFast": "Швидкий",
"antigravityProjectIdLabel": "Ідентифікатор проекту Google Cloud",
"antigravityProjectIdPlaceholder": "мій-gcp-ідентифікатор-проекту",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Заповнювач файлу cookie Grok Web",
+ "herokuBaseUrlHint": "Підказка щодо базової URL-адреси Heroku",
+ "hideEmail": "Приховати електронну адресу",
+ "imageProviders": "Провайдери зображень",
"videoProviders": "Генерація відео",
"embeddingRerankProviders": "Вбудовування та зміна рейтингу",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "Зображення",
+ "llmProviders": "Провайдери LLM",
+ "localProviderApiKeyOptionalHint": "Підказка щодо необов’язкового ключа API локального провайдера",
+ "localProviderBaseUrlHint": "Підказка щодо базової URL-адреси локального провайдера",
+ "localProviders": "Локальні провайдери",
+ "maxConcurrentWholeNumberError": "Максимальна кількість одночасних запитів має бути цілим числом",
"m365TierLabel": "Рівень Copilot",
"m365TierHint": "Виберіть, яку поверхню Microsoft 365 Copilot використовує це підключення. Individual — це стандартний споживчий BizChat; Education та Enterprise (робочий) підключаються до поверхонь своїх тенантів.",
"m365TierIndividualOption": "Individual (за замовчуванням)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "Освіта",
+ "m365TierEnterpriseOption": "Підприємство / робота",
"tierOverrideLabel": "Перевизначення рівня",
"tierOverrideAuto": "Авто (визначається маршрутизацією)",
"tierOverrideFree": "Безкоштовний",
"tierOverrideCheap": "Дешевий",
"tierOverridePremium": "Преміум",
"tierOverrideHelpText": "Закріпити цього провайдера за рівнем маршрутизації замість того, щоб дозволити OmniRoute визначати його на основі цін на моделі.",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Підказка щодо файлу cookie Muse Spark Web",
+ "museSparkWebCookiePlaceholder": "Заповнювач файлу cookie Muse Spark Web",
+ "oauth": "OAuth",
+ "openCliTools": "Відкрити інструменти CLI",
+ "openSettings": "Відкрити налаштування",
+ "openaiResponsesStoreDescription": "Дозволити сумісним запитам Responses API зберігати стан збережених відповідей.",
+ "openaiResponsesStoreLabel": "Сховище OpenAI Responses",
+ "perplexitySearchSharedKeyInfo": "Інформація про спільний ключ Perplexity Search",
+ "perplexityWebCookieHint": "Підказка щодо файлу cookie Perplexity Web",
+ "perplexityWebCookiePlaceholder": "Заповнювач файлу cookie Perplexity Web",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "Перевизначення лімітів запитів",
"rateLimitOverridesMaxConcurrentHint": "Перевизначення максимальної кількості одночасних запитів для цього підключення. Перевизначає обмеження на рівні облікового запису.",
"rateLimitOverridesMaxConcurrentLabel": "Макс. одночасних (ліміт запитів)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "Максимальний час (мс), протягом якого запит може очікувати на доступний слот обмеження частоти, перш ніж завершитися помилкою. Перевизначає глобальне налаштування Resilience лише для цього підключення.",
+ "rateLimitOverridesMaxWaitMsLabel": "Макс. очікування в черзі (мс)",
"rateLimitOverridesMinTimeHint": "Мінімальний час (мс) між запитами. Перевизначає стандартну затримку обмежувача частоти запитів.",
"rateLimitOverridesMinTimeLabel": "Мін. інтервал (мс)",
"rateLimitOverridesRpdHint": "Максимальна кількість запитів на день для цього з’єднання. Перевизначає стандартне значення постачальника.",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (Токенів/день)",
"rateLimitOverridesTpmHint": "Максимальна кількість токенів на хвилину для цього підключення. Перевизначає типове значення провайдера.",
"rateLimitOverridesTpmLabel": "TPM (Токенів/хв)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
+ "refreshOauthTokenTitle": "Оновити токен OAuth",
+ "regionHint": "Підказка щодо регіону",
+ "regionLabel": "Регіон",
+ "removeThisKey": "Видалити цей ключ",
+ "routingTagsHint": "Підказка щодо тегів маршрутизації",
+ "routingTagsLabel": "Теги маршрутизації",
+ "routingTagsPlaceholder": "Заповнювач тегів маршрутизації",
+ "search": "Пошук",
+ "searchEngineIdHint": "Підказка щодо ідентифікатора пошукової системи",
+ "searchEngineIdLabel": "Мітка ідентифікатора пошукової системи",
+ "searchEngineIdRequired": "Ідентифікатор пошукової системи обов’язковий",
+ "searchProvider": "Постачальник пошуку",
+ "searchProviderDesc": "Опис постачальника пошуку",
"searchProviders": "Пошук постачальників...",
"searchByModel": "Пошук за моделлю…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "Заголовок постачальників пошуку",
+ "searxngBaseUrlHint": "Підказка щодо базової URL-адреси Searxng",
+ "searxngInfo": "Інформація про Searxng",
+ "sessionCookieLabel": "Мітка файлу cookie сеансу",
+ "showEmail": "Показувати електронну адресу",
+ "snowflakeBaseUrlHint": "Підказка щодо базової URL-адреси Snowflake",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "Підказка щодо групи тегів",
+ "tagGroupLabel": "Мітка групи тегів",
+ "tagGroupPlaceholder": "Заповнювач групи тегів",
+ "testModel": "Протестувати модель",
+ "testingModel": "Тестування моделі",
"modelTestQuotaTooltip": "Квота вичерпана — скидання завтра або потрібне поповнення",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "Позначка простроченого токена",
+ "tokenExpiredTitle": "Заголовок про прострочений токен",
+ "tokenExpiresSoonTitle": "Заголовок про те, що термін дії токена незабаром закінчиться",
+ "tokenShort": "Короткий токен",
+ "totalKeysRotating": "{count, plural, one {1 ключ у ротації} other {# ключів у ротації}}",
+ "unhideModel": "Показати приховану модель",
+ "upstreamProxyProviders": "Постачальники проксі-сервісів вищого рівня",
"validationModelIdHint": "Модель, яка використовується для перевірки ключа API. Залиште порожнім, щоб використовувати першу доступну модель провайдера.",
"validationModelIdLabel": "Модель для перевірки",
"validationModelIdPlaceholder": "напр. meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "Вставте JSON облікового запису служби ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) або OAuth access_token",
+ "webCookieProviders": "Постачальники вебфайлів cookie",
+ "weeklyShort": "Тиж.",
+ "xiaomiMimoBaseUrlHint": "Підказка щодо базової URL-адреси Xiaomi Mimo",
"globalCodexServiceMode": "Глобальний режим служби Codex",
"connect": "Підключити",
"manualApiKey": "Ключ API вручну",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Знайти облікові дані провайдерів ШІ (OpenAI, Anthropic, Google, Mistral, xAI), збережені Zed IDE у зв'язці ключів ОС, та імпортувати їх як підключення. Zed IDE має бути встановлено на цьому комп'ютері.",
"zedImportButton": "Імпорт з Zed",
"zedImportFailed": "Не вдалося імпортувати Zed",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Підказка щодо імпорту Zed",
+ "zedImportNetworkError": "Помилка мережі під час імпорту Zed",
+ "zedImportNone": "Немає імпортованих даних Zed",
"zedImportSuccess": "Імпортовано {credentials} облікові дані з Zed для {providers} постачальників",
"zedImporting": "Імпортування…",
"zedNoCredentials": "У зв'язці ключів не знайдено облікових даних Zed",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "API-проксі зі знижкою для понад 40 моделей, включаючи GPT-5, Claude Opus 4.6, Claude Sonnet 4.6, Qwen 3.5. Отримайте свій API-ключ на https://freeaiapikey.com/dashboard. Базова URL-адреса: https://freeaiapikey.com/v1.",
"freemodel-dev": "Отримайте $300 безкоштовних API-кредитів на https://freemodel.dev — платіжна інформація не потрібна. Сумісна з OpenAI кінцева точка. Доступні моделі GPT-5.4 та GPT-5.5.",
"friendliai": "Безкоштовний тариф для безсерверного виведення — кредитна картка не потрібна",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Безкоштовний рівень через Google AI Studio; квоти для окремих моделей більше не публікуються (перевірте сторінку квот в AI Studio) — кредитна картка не потрібна.",
"gigachat": "Підключіть GigaChat (Сбер) за допомогою API-ключа.",
"gitlab": "Особистий токен доступу GitLab для публічного API Code Suggestions. Налаштуйте власну базову URL-адресу, якщо не використовуєте gitlab.com.",
"gitlawb-gmi": "Отримайте свій API-ключ на панелі керування Gitlawb Opengateway.",
@@ -6180,7 +6187,7 @@
"glm-cn": "Підключіть GLM Coding (Китай) за допомогою API-ключа.",
"glmt": "Попередньо встановлений профіль GLM із більшим бюджетом токенів, увімкненим мисленням та довшим таймаутом.",
"getgoapi": "Підключіть GoAPI за допомогою API-ключа.",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "Безкоштовний план: обмеження для окремих моделей (200 тис. токенів на день для кожної моделі чату; див. console.groq.com/docs/rate-limits щодо RPM/RPD) — без зазначеного способу оплати.",
"haiper": "Отримайте API-ключ на haiper.ai/haiper-api",
"heroku": "Підключіть Heroku AI за допомогою API-ключа.",
"hcnsec": "Отримайте API-ключ на api.hcnsec.cn",
@@ -6248,7 +6255,7 @@
"requesty": "Створіть API-ключ на https://app.requesty.ai, а потім вставте його сюди як Bearer-токен. OpenAI-сумісна кінцева точка на https://router.requesty.ai/v1, з живим каталогом /v1/models.",
"runwayml": "Генерація відео в Runway базується на завданнях. OmniRoute надсилає завдання text-to-video або image-to-video, опитує /v1/tasks/[id] та нормалізує готові відеофайли назад у відповідь типу OpenAI /v1/videos/generations.",
"sambanova": "$5 безкоштовних кредитів при реєстрації (дійсні 30 днів), кредитна картка не потрібна",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "Створіть ключ API на https://seekai.cc, а потім вставте його сюди як токен Bearer. Сумісна з OpenAI базова URL-адреса: https://seekai.cc/v1.",
"sap": "Виявлення моделей використовує /v2/lm/scenarios/foundation-models/models на AI_API_URL. Запити чату використовують deploymentUrl/chat/completions та потребують AI-Resource-Group.",
"sarvam": "Sarvam AI сумісний з OpenAI на /v1. OmniRoute перевіряє /v1/models і маршрутизує чат-трафік на /v1/chat/completions. Моделі налаштовані для індійських мов.",
"scaleway": "1 млн безкоштовних токенів для нових акаунтів — сумісно з EU/GDPR (Париж), Qwen3 235B та Llama 70B",
@@ -6273,53 +6280,53 @@
"upstage": "Підключіть Upstage за допомогою API-ключа.",
"v0-vercel": "Підключіть v0 (Vercel) за допомогою API-ключа.",
"venice": "Підключіть Venice.ai за допомогою API-ключа.",
- "vercel-ai-gateway": "Connect Vercel AI Gateway with an API key.",
- "vertex": "Provide Service Account JSON or OAuth access_token",
- "vertex-partner": "Provide the same Service Account JSON used for Vertex AI partner models.",
- "volcengine": "Connect Volcengine with an API key.",
- "voyage-ai": "Bearer API key for Voyage AI embeddings and rerank APIs.",
- "wafer": "API key from https://wafer.ai",
- "wandb": "Connect Weights & Biases Inference with an API key.",
+ "vercel-ai-gateway": "Підключіть Vercel AI Gateway за допомогою ключа API.",
+ "vertex": "Надайте JSON облікового запису служби або OAuth access_token",
+ "vertex-partner": "Надайте той самий JSON облікового запису служби, який використовується для партнерських моделей Vertex AI.",
+ "volcengine": "Підключіть Volcengine за допомогою ключа API.",
+ "voyage-ai": "Ключ API типу Bearer для API векторних представлень і повторного ранжування Voyage AI.",
+ "wafer": "Ключ API із https://wafer.ai",
+ "wandb": "Підключіть Weights & Biases Inference за допомогою ключа API.",
"writer": "Writer Palmyra є сумісним з OpenAI за адресою https://api.writer.com/v1. palmyra-x5 пропонує контекстне вікно на 1M-токенів.",
- "x5lab": "X5Lab exposes an OpenAI-compatible chat completions endpoint at https://api.x5lab.dev/v1/chat/completions, plus a live /v1/models catalog. OmniRoute uses the OpenAI protocol and lists models via passthrough.",
- "xai": "Connect xAI (Grok) with an API key.",
- "xiaomi-mimo": "Connect Xiaomi MiMo with an API key.",
- "yi": "Get API key at platform.lingyiwanwu.com",
- "zai": "API key from https://open.bigmodel.cn/usercenter/apikeys",
- "zenmux": "ZenMux exposes an OpenAI-compatible chat completions endpoint at /api/v1/chat/completions, plus Anthropic Messages (/api/anthropic/v1/messages) and Google Gemini (/api/vertex-ai) protocol surfaces. OmniRoute uses the OpenAI protocol.",
- "galadriel": "Connect Galadriel with an API key.",
- "predibase": "$25 free trial credits (30-day validity)",
- "chenzk": "OpenAI-compatible gateway with a live model catalog at chenzk.top.",
+ "x5lab": "X5Lab надає сумісну з OpenAI кінцеву точку для завершення чатів за адресою https://api.x5lab.dev/v1/chat/completions, а також актуальний каталог /v1/models. OmniRoute використовує протокол OpenAI та відображає моделі шляхом наскрізного передавання.",
+ "xai": "Підключіть xAI (Grok) за допомогою ключа API.",
+ "xiaomi-mimo": "Підключіть Xiaomi MiMo за допомогою ключа API.",
+ "yi": "Отримайте ключ API на platform.lingyiwanwu.com",
+ "zai": "Ключ API з https://open.bigmodel.cn/usercenter/apikeys",
+ "zenmux": "ZenMux надає сумісну з OpenAI кінцеву точку завершення чатів за адресою /api/v1/chat/completions, а також інтерфейси протоколів Anthropic Messages (/api/anthropic/v1/messages) і Google Gemini (/api/vertex-ai). OmniRoute використовує протокол OpenAI.",
+ "galadriel": "Підключіть Galadriel за допомогою ключа API.",
+ "predibase": "$25 безкоштовних кредитів на пробний період (дійсні 30 днів)",
+ "chenzk": "Сумісний з OpenAI шлюз із актуальним каталогом моделей на chenzk.top.",
"magnific": "Generate images with Magnific's Mystic API.",
- "freetheai": "Free OpenAI-compatible gateway with passthrough model support.",
+ "freetheai": "Безкоштовний сумісний з OpenAI шлюз із підтримкою наскрізної передачі моделей.",
"g4f-gemini": "Віддалений шлюз g4f.space до Gemini. Для анонімного доступу потрібні proof-of-work-кредити з g4f.dev/chat або API-ключ учасника з g4f.dev/members.html; ліміти змінюються.",
"g4f-groq": "Віддалений шлюз g4f.space до Groq. Для анонімного доступу потрібні proof-of-work-кредити з g4f.dev/chat або API-ключ учасника з g4f.dev/members.html; ліміти змінюються.",
"g4f-nvidia": "Віддалений шлюз g4f.space до NVIDIA NIM. Для анонімного доступу потрібні proof-of-work-кредити з g4f.dev/chat або API-ключ учасника з g4f.dev/members.html; ліміти змінюються.",
"g4f-ollama": "Віддалений шлюз g4f.space до Ollama. Для анонімного доступу потрібні proof-of-work-кредити з g4f.dev/chat або API-ключ учасника з g4f.dev/members.html; ліміти змінюються.",
"g4f-pollinations": "Віддалений шлюз g4f.space до Pollinations. Для анонімного доступу потрібні proof-of-work-кредити з g4f.dev/chat або API-ключ учасника з g4f.dev/members.html; ліміти змінюються.",
- "mixedbread": "Create embeddings with the Mixedbread API.",
- "segmind": "Generate images and videos with Segmind's hosted models.",
- "amazon-q": "Uses the same AWS Builder ID or imported refresh-token flow as Kiro, but keeps Amazon Q connections separate.",
- "antigravity": "Connect Antigravity with the existing OAuth flow.",
- "agy": "Import your Antigravity CLI (`agy`) login (paste/upload its token file), auto-detect a local CLI login, or sign in with Google. Shares the Antigravity backend (incl. Claude models).",
- "claude": "Connect Claude Code with the existing OAuth flow.",
- "cline": "Connect Cline with the existing OAuth flow.",
- "cursor": "Connect Cursor IDE with the existing OAuth flow.",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
- "github": "Connect GitHub Copilot with the existing OAuth flow.",
- "gitlab-duo": "OAuth application with ai_features + read_user scopes. Configure GITLAB_DUO_OAUTH_CLIENT_ID and optionally GITLAB_DUO_OAUTH_CLIENT_SECRET on this OmniRoute instance.",
- "kilocode": "Connect Kilo Code with the existing OAuth flow.",
- "kimi-coding": "Connect Kimi Coding with the existing OAuth flow.",
- "kiro": "Free tier: 50 credits/month (~25K–100K tokens). ⚠️ Kiro ToS prohibits third-party proxy/harness use.",
- "codex": "Connect OpenAI Codex with the existing OAuth flow.",
- "qwen": "Connect Qwen Code with the existing OAuth flow.",
+ "mixedbread": "Створюйте векторні представлення за допомогою API Mixedbread.",
+ "segmind": "Створюйте зображення та відео за допомогою розміщених моделей Segmind.",
+ "amazon-q": "Використовує той самий AWS Builder ID або процес з імпортованим токеном оновлення, що й Kiro, але зберігає підключення Amazon Q окремо.",
+ "antigravity": "Підключіть Antigravity за допомогою наявного процесу OAuth.",
+ "agy": "Імпортуйте дані входу Antigravity CLI (`agy`) (вставте або завантажте файл токена), автоматично виявіть локальний вхід через CLI або ввійдіть за допомогою Google. Використовує спільний серверний компонент Antigravity (зокрема моделі Claude).",
+ "claude": "Підключіть Claude Code за допомогою наявного процесу OAuth.",
+ "cline": "Підключіть Cline за допомогою наявного процесу OAuth.",
+ "cursor": "Підключіть Cursor IDE за допомогою наявного процесу OAuth.",
+ "cursor-api": "Підключіть Cursor за допомогою користувацького ключа API (crsr_...) із cursor.com/dashboard/api; сеанс IDE не потрібен.",
+ "github": "Підключіть GitHub Copilot за допомогою наявного процесу OAuth.",
+ "gitlab-duo": "Застосунок OAuth з областями доступу ai_features + read_user. Налаштуйте GITLAB_DUO_OAUTH_CLIENT_ID і, за потреби, GITLAB_DUO_OAUTH_CLIENT_SECRET у цьому екземплярі OmniRoute.",
+ "kilocode": "Підключіть Kilo Code за допомогою наявного процесу OAuth.",
+ "kimi-coding": "Підключіть Kimi Coding за допомогою наявного процесу OAuth.",
+ "kiro": "Безкоштовний рівень: 50 кредитів на місяць (~25K–100K токенів). ⚠️ Умови використання Kiro забороняють використання зі сторонніми проксі або оболонками.",
+ "codex": "Підключіть OpenAI Codex за допомогою наявного процесу OAuth.",
+ "qwen": "Підключіть Qwen Code за допомогою наявного процесу OAuth.",
"github-models": "Створіть GitHub PAT з областю видимості 'models: read' на github.com/settings/tokens"
},
"passthroughModelsDescription": "{provider} приймає власні ідентифікатори моделі постачальника. Імпортуйте з /models або додайте власні ідентифікатори для маршрутизації.",
"bedrockModelsDescription": "Моделі Amazon Bedrock залежать від регіону AWS. Імпортуйте з /models або додайте ідентифікатори моделі Bedrock, активовані у вибраному регіоні.",
"bedrockModelPlaceholder": "антропічний.claude-sonnet-4-6",
"addProviderSessionCookieTitle": "Додайте {provider} cookie сесії",
- "openWebProviderSite": "Open {host}",
+ "openWebProviderSite": "Відкрити {host}",
"addProviderWebTokenTitle": "Додайте веб-маркер {provider}",
"addProviderConnectionTitle": "Додайте підключення {provider}",
"webTokenCredentialLabel": "Маркер веб-сесії",
@@ -6338,27 +6345,27 @@
"webSessionGuideStep3": "Скопіюйте необхідні облікові дані з власного домену постачальника. Для файлів cookie скопіюйте лише значення заголовка Cookie і пропустіть Cookie:.",
"webSessionGuideStep3Manual": "Ручний шлях: відкрийте інструменти розробника браузера (F12 → Мережа), оновіть сторінку, відкрийте автентифікований запит і скопіюйте значення заголовка Cookie з заголовків запиту — пропустіть префікс Cookie:.",
"webSessionGuideStep4": "Вставте його сюди та перевірте з’єднання. Якщо він перестане працювати, увійдіть ще раз і замініть його новим значенням.",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "Імпортувати файл .har",
+ "harImportButtonBusy": "Імпортування…",
+ "harImportButtonHint": "Експортуйте з вкладки Network у DevTools після надсилання принаймні одного повідомлення в чаті.",
+ "harImportStatusValid": "Імпортовано — дійсний ще приблизно {minutes} хв.",
+ "harImportStatusExpiringSoon": "Імпортовано — залишилося лише приблизно {minutes} хв. дії.",
+ "harImportStatusExpired": "Імпортовано, але термін дії цього токена вже минув ({minutes} хв. тому) — експортуйте новий HAR.",
+ "harImportStatusUnknownExpiry": "Імпортовано. Не вдалося визначити термін дії.",
+ "harImportErrorNotJson": "Цей файл не є дійсним JSON — це справді експорт .har?",
+ "harImportErrorNoEntries": "У цьому HAR немає записаних мережевих запитів.",
+ "harImportErrorNoChathubUrl": "У цьому HAR не знайдено підключення до чату Copilot. Надішліть принаймні одне повідомлення в чаті на m365.cloud.microsoft перед експортуванням.",
+ "harImportErrorUnparsableUrl": "Підключення до чату знайдено, але не вдалося прочитати його URL-адресу.",
+ "harImportErrorMissingFields": "Підключення до чату знайдено, але в ньому відсутній токен.",
+ "harImportErrorReadFailed": "Не вдалося прочитати цей файл.",
+ "harImportErrorUnknown": "Не вдалося видобути облікові дані з цього файлу HAR.",
"webSessionSecurityHint": "Розглядайте це як пароль: він може отримати доступ до вашого веб-облікового запису, у який ви ввійшли, доки його термін дії не закінчиться або його не буде відкликано.",
"webNoAuthGuideTitle": "Облікові дані не потрібні",
"webNoAuthGuideBody": "{provider} не потребує ключа API або файлу cookie. Збережіть підключення, щоб використовувати його безкоштовну веб-кінцеву точку.",
"webSessionCredentialValidationFailed": "Помилка перевірки облікових даних сеансу. Увійдіть знову, скопіюйте нові облікові дані та повторіть спробу.",
"checkCookie": "Перевірте cookie",
"checkWebToken": "Чек жетона",
- "huggingchatLabel": "HuggingChat (Free)",
+ "huggingchatLabel": "HuggingChat (безкоштовно)",
"huggingchatDesc": "Безкоштовний чат LLM через huggingface.co/chat",
"poeWebLabel": "Poe Web",
"poeWebDesc": "Багатомодельний чат через poe.com",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "Термін дії коду команди auth закінчився",
"commandCodeConnected": "Команда Код підключено",
"commandCodeConnectionAdded": "Додано з'єднання командного коду",
+ "clearConnectionCooldown": "Скинути період очікування",
+ "clearConnectionCooldownInProgress": "Скидання…",
+ "clearConnectionCooldownTitle": "Скинути період очікування зараз — використовуйте, якщо квоту вже оновлено на стороні постачальника",
"commandCodeLinkExpired": "Посилання на код команди більше не дійсне",
"commandCodeOpeningStudio": "Відкриття Command Code Studio…",
"commandCodePopupBlocked": "Вікно спливаючого вмісту заблоковано. Будь ласка, дозволте спливаючі вікна та спробуйте знову Command Code Connect.",
"commandCodeStartFailed": "Не вдалося запустити команду Code auth",
"connectionDeleted": "З'єднання видалено",
"connectionFallback": "з'єднання",
+ "connectionCooldownCleared": "Період очікування скинуто — з’єднання знову додано до маршрутизації",
"coolingConnectionsDescription": "Ці з'єднання остигають після останнього запиту. OmniRoute пропустить їх, поки не скінчиться таймер — вимикати вручну не потрібно.",
"coolingConnectionsTitle": "Наразі охолодження ({count})",
+ "failedClearConnectionCooldown": "Не вдалося скинути період очікування",
"failedDeleteAlias": "Не вдалося видалити псевдонім",
"failedDeleteConnection": "Не вдалося видалити з'єднання",
"failedDistributeProxies": "Не вдалося розподілити проксі.",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "Налаштування кінцевої точки збереженої моделі",
"searchByModelAria": "Пошук за моделлю",
"selectSupportedEndpoint": "Виберіть принаймні одну підтримувану точку доступу",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "Налаштування",
@@ -6523,7 +6530,7 @@
"routingSummarizeDropParagraphContains": "видалити абзаци, що містять: {items}",
"routingSummarizeDropParagraphStartsWith": "видалити абзаци, що починаються з: {items}",
"routingSummarizeReplaceText": "замінити \"{match}\" → \"{replacement}\"",
- "routingSummarizeReplaceRegex": "regex /{pattern}/{flags} → \"{replacement}\"",
+ "routingSummarizeReplaceRegex": "регулярний вираз /{pattern}/{flags} → \"{replacement}\"",
"routingSummarizeDropBlockContains": "видалити блоки, що містять: {items}",
"routingSummarizePrependSystemBlock": "додати блок на початок: \"{text}\"",
"routingSummarizeAppendSystemBlock": "додати блок у кінець: \"{text}\"",
@@ -6550,22 +6557,22 @@
"systemPrompt": "Системна підказка",
"thinkingBudget": "Мислення про бюджет",
"proxy": "Проксі",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP-проксі",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "Розділи проксі",
+ "requestBodyLimitTitle": "Обмеження розміру тіла запиту",
+ "requestBodyLimitDescription": "Максимальний розмір корисного навантаження API, який приймається до розбору тіла запиту. Для спеціалізованих маршрутів завантаження зберігається щонайменше вбудоване обмеження у 100 МБ.",
+ "requestBodyLimitInputLabel": "Обмеження розміру тіла запиту в МБ",
+ "requestBodyLimitEmptyError": "Введіть обмеження в МБ",
+ "requestBodyLimitWholeNumberError": "Використовуйте ціле число",
+ "requestBodyLimitMinimumError": "Мінімум — {min} МБ",
+ "requestBodyLimitMaximumError": "Максимум — {max} МБ",
+ "requestBodyLimitLoadFailed": "Не вдалося завантажити налаштування обмеження запиту",
+ "requestBodyLimitSaveSuccess": "Обмеження розміру тіла запиту збережено",
+ "requestBodyLimitSaveFailed": "Не вдалося зберегти обмеження розміру тіла запиту",
+ "requestBodyLimitSaving": "Збереження...",
+ "requestBodyLimitSave": "Зберегти",
+ "requestBodyLimitCurrent": "Поточне значення: {value}",
"cacheConfigLoadFailed": "Не вдалося завантажити налаштування кешу",
"cacheConfigSaveSuccess": "Налаштування кешу збережено",
"cacheConfigSaveFailed": "Не вдалося зберегти налаштування кешу",
@@ -6589,49 +6596,49 @@
"enablePassword": "Увімкнути пароль",
"darkMode": "Темний режим",
"lightMode": "Світловий режим",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "memoryTitle": "Пам’ять",
+ "memoryDesc": "Постійна міжсеансова пам’ять розмов",
+ "memoryEnabled": "Увімкнути пам’ять",
+ "memoryEnabledDesc": "Якщо ввімкнено, OmniRoute додаватиме релевантний контекст із минулих розмов.",
"memoryTokenCostWarning": "Зверніть увагу: з увімкненою пам'яттю OmniRoute додає до {tokens} токенів отриманого контексту в кожен запит чату — це збільшує використання токенів та вартість. Щоб пропустити додавання для конкретного запиту, надішліть заголовок \"x-omniroute-no-memory: true\".",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
+ "maxTokens": "Максимальна кількість токенів",
+ "retentionDays": "Термін зберігання",
+ "recent": "Нещодавні",
+ "recentDesc": "Хронологічне вікно",
+ "semantic": "Семантичний пошук",
+ "semanticDesc": "Векторний пошук",
+ "hybrid": "Гібридний",
+ "hybridDesc": "Нещодавні + семантичні",
+ "skillsTitle": "Навички",
+ "skillsDesc": "Інструменти для моделей",
+ "skillsEnabled": "Увімкнути навички",
+ "skillsEnabledDesc": "Дозволяє агентам запускати функції.",
+ "skillsComingSoon": "Маркетплейс навичок незабаром стане доступним.",
+ "memorySkillsTitle": "Пам’ять і навички",
+ "memorySkillsDesc": "Постійний контекст і можливості",
+ "modelsDevTitle": "База даних моделей",
+ "modelsDevDesc": "Автоматично синхронізувати ціни, можливості та характеристики з models.dev",
+ "modelsDevEnabled": "Увімкнути синхронізацію з models.dev",
+ "modelsDevEnabledDesc": "Отримувати ціни, можливості та характеристики моделей із відкритої бази даних models.dev",
+ "modelsDevInterval": "Інтервал синхронізації",
+ "syncNow": "Синхронізувати зараз",
+ "syncing": "Синхронізація...",
+ "lastSync": "Остання синхронізація",
+ "never": "Ніколи",
"justNow": "тільки зараз",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
+ "modelsDevStats": "Статистика синхронізації",
+ "modelsDevStatsDesc": "Поточне покриття даними models.dev",
"providers": "Провайдери",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
+ "modelsWithPricing": "Моделі з інформацією про ціни",
+ "capabilities": "Можливості",
+ "lastSyncCount": "Кількість під час останньої синхронізації",
+ "lastSyncFull": "Остання повна синхронізація",
+ "modelsDevInfo": "Як це працює",
+ "modelsDevInfoDesc": "models.dev — це база даних специфікацій моделей ШІ із відкритим кодом, яку підтримує команда SST/OpenCode. Вона містить інформацію про ціни, можливості, обмеження контексту та модальності для понад 4 000 моделей від понад 100 постачальників.",
+ "modelsDevInfoResolution": "Порядок визначення цін (спочатку найвищий пріоритет):",
+ "modelsDevInfoOrder": "Перевизначення користувачем → models.dev → LiteLLM → Жорстко задане значення за замовчуванням",
"systemTheme": "Тема системи",
- "debugToggle": "Enable Debug Mode",
+ "debugToggle": "Увімкнути режим налагодження",
"logToolSourcesToggle": "Логувати джерела інструментів",
"logToolSourcesDescription": "Виводити діагностичний рядок логу для кожного запиту із підсумком кількості інструментів та розподілом джерел MCP/hosted/client.",
"homePinProviderQuotaToHome": "Закріпити інформацію на головній сторінці",
@@ -6657,28 +6664,28 @@
"providerQuotaAutoRefreshInterval": "Інтервал оновлення",
"providerQuotaAutoRefreshIntervalDesc": "Як часто має оновлюватися перегляд квот, у секундах.",
"seconds": "секунд",
- "sidebarVisibilityToggle": "Show Sidebar Items",
+ "sidebarVisibilityToggle": "Показувати елементи бічної панелі",
"enableCache": "Увімкнути кеш",
"cacheTTL": "Кеш TTL",
"maxCacheSize": "Максимальний розмір кешу",
"clearCache": "Очистити кеш",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
+ "cacheCleared": "Кеш успішно очищено",
+ "clearCacheFailed": "Не вдалося очистити кеш",
"cacheHits": "Звернення до кешу",
"cacheMisses": "Промахи кешу",
"hitRate": "Рейтинг попадань",
"cacheEntries": "Записи кешу",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
+ "cacheSettings": "Налаштування кешу",
+ "semanticCache": "Семантичний кеш",
+ "maxEntries": "Максимальна кількість записів",
+ "ttlMinutes": "Час життя (у хвилинах)",
"promptCache": "Кеш підказок",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "strategy": "Стратегія",
+ "preserveClientCache": "Зберігати кеш клієнта",
+ "enabled": "Увімкнено",
"loading": "Loading...",
"saving": "Збереження...",
- "save": "Save",
+ "save": "Зберегти",
"circuitBreaker": "Автоматичний вимикач",
"retryPolicy": "Політика повторних спроб",
"maxRetries": "Макс. повторних спроб",
@@ -6686,21 +6693,21 @@
"timeoutMs": "Час очікування (мс)",
"enableSystemPrompt": "Увімкнути системну підказку",
"systemPromptText": "Текст системної підказки",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
- "customBannedSignals": "Banned Keywords",
+ "autoDisableBannedAccounts": "Автоматично вимикати заблоковані облікові записи",
+ "autoDisableDescription": "Назавжди позначати підключення до провайдерів як деактивовані, якщо вони повертають певні остаточні сигнали блокування (наприклад, HTTP 403 «підтвердьте свій обліковий запис»). Це вилучає їх із ротації комбінацій.",
+ "autoDisableThreshold": "Поріг блокування",
+ "autoDisableThresholdDesc": "Кількість послідовних сигналів блокування, необхідна для остаточної деактивації.",
+ "autoDisableBannedScope": "Застосовувати автоматичне вимкнення до",
+ "autoDisableBannedScopeDesc": "Облікові записи для входу (платні підписки та безкоштовні облікові записи) можуть бути заблоковані зовнішнім сервісом, якщо OmniRoute продовжуватиме повторні спроби після блокування. Платні передплачені API-ключі не мають такого ризику — залиште їх у пулі, щоб fill-first міг використати наступний ключ.",
+ "autoDisableBannedScopeAll": "Усі підключення",
+ "autoDisableBannedScopeAllDesc": "Деактивувати кожне підключення, яке повертає сигнал остаточного блокування, включно з передплаченими API-ключами.",
+ "autoDisableBannedScopeSubscription": "Лише облікові записи для входу / підписки",
+ "autoDisableBannedScopeSubscriptionDesc": "Деактивувати облікові записи OAuth, cookie, сеансів і вебвходу (платні чи безкоштовні). Передплачені API-ключі залишаються активними, щоб маршрутизація могла перемикатися на резервні.",
+ "customBannedSignals": "Ключові слова блокування",
"customBannedSignalsDesc": "Додаткові ключові слова, які запускають виявлення постійного блокування акаунта. Вбудовані ключові слова застосовуються завжди.",
"customBannedSignalsPlaceholder": "наприклад, api key revoked",
"noCustomBannedSignals": "Немає власних ключових слів. Активні лише вбудовані ключові слова.",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "Структура відмовостійкості",
"resilienceStructureDesc": "Ця сторінка лише налаштовує поведінку. Стан живого вимикача відображається на сторінці «Справочинність». Повторна спроба комбінованого вибору та циклічний контроль слотів залишаються в налаштуваннях комбо.",
"enableThinking": "Увімкнути мислення",
"maxThinkingTokens": "Макс жетонів мислення",
@@ -6748,21 +6755,21 @@
"showTailscaleFunnelDesc": "Показати елементи керування воронкою Tailscale на сторінці кінцевої точки.",
"showNgrokTunnel": "тунель нгрок",
"showNgrokTunnelDesc": "Показати елементи керування тунелем ngrok на сторінці кінцевої точки.",
- "sidebarVisibility": "Hide sidebar items",
+ "sidebarVisibility": "Приховати елементи бічної панелі",
"sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter.",
"sidebarVisibilityHint": "Any sidebar section is hidden automatically when a...",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "Усі",
+ "presetAllDesc": "Показувати все",
+ "presetEssentials": "Основне",
+ "presetEssentialsDesc": "Шлях для початківців — розширені інструменти залишаються доступними через пошук",
+ "presetMinimal": "Мінімально",
+ "presetMinimalDesc": "Лише основні сторінки",
+ "presetDeveloper": "Розробник",
+ "presetDeveloperDesc": "Інструменти розробника та проксі",
+ "presetAdmin": "Адміністратор",
+ "presetAdminDesc": "Моніторинг і аудит",
+ "settingsSidebarTitle": "Налаштування бічної панелі",
+ "settingsSidebarDesc": "Виберіть, які елементи показувати на бічній панелі. У режимі «Основне» розширені інструменти залишаються доступними через пошук.",
"hideHealthLogs": "Приховати журнали перевірки справності",
"hideHealthLogsDesc": "Коли ввімкнено, блокувати повідомлення [HealthCheck] на консолі сервера",
"themeAccent": "Колір теми",
@@ -6776,19 +6783,19 @@
"themeOrange": "Помаранчевий",
"themeCyan": "Ціан",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "Налаштуйте назву та логотип застосунку",
+ "appName": "Назва застосунку",
+ "appNameDesc": "Відображувана назва на бічній панелі та вкладці браузера",
+ "customLogo": "URL власного логотипа",
+ "customLogoDesc": "URL зображення вашого логотипа",
+ "uploadLogo": "Завантажити логотип",
+ "resetLogo": "Відновити стандартні налаштування",
+ "logoPreview": "Попередній перегляд",
+ "customFavicon": "Фавікон браузера",
+ "customFaviconDesc": "URL вашого фавікона (відображається на вкладці браузера)",
+ "uploadFavicon": "Завантажити фавікон",
+ "resetFavicon": "Скинути фавікон",
+ "faviconPreview": "Попередній перегляд фавікона",
"logoFileTooLarge": "Файл логотипу має бути меншим за 500 КБ",
"faviconFileTooLarge": "Файл фавіконки має бути меншим за 50 КБ",
"invalidLogoFileType": "Недійсний тип файлу. Будь ласка, завантажте PNG, JPG, SVG, GIF або WebP.",
@@ -6892,21 +6899,21 @@
"refreshInterval": "Інтервал оновлення",
"ruleModeDescription": "Опис Режиму Правил"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "Масова перевірка стану",
+ "bulkHealthcheckDesc": "Перевірте всі налаштовані проксі-сервери за цільовою URL-адресою, щоб з’ясувати, які з них працюють.",
+ "healthcheckTesting": "Перевірка...",
+ "healthcheckAll": "Перевірити стан усіх",
+ "healthcheckFailed": "Не вдалося виконати перевірку стану",
+ "healthcheckTestingAll": "Паралельна перевірка всіх проксі-серверів...",
+ "healthcheckTotal": "Усього",
+ "healthcheckWorking": "Працюють",
+ "healthcheckFailedLabel": "Не працюють",
+ "healthcheckStatus": "Стан",
+ "healthcheckProxyUrl": "URL-адреса проксі",
+ "healthcheckLatency": "Затримка",
"proxyDocumentationScopeTitle": "Визначення області дії проксі",
"proxyDocumentationScopeDescBefore": "OmniRoute визначає вихідний проксі в порядку пріоритету:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "комбінація → обліковий запис → провайдер → глобально",
"proxyDocumentationScopeDescAfter": ". Перемагає найбільш специфічна область дії.",
"proxyDocumentationAddTitle": "Додавання власного проксі",
"proxyDocumentationAddDescBefore": "Перейдіть на",
@@ -6988,7 +6995,7 @@
"thinkingModeAdaptiveDesc": "Масштабуйте бюджет на роздуми з базовими зусиллями, використовуючи кількість повідомлень, інструменти та довжину запиту.",
"auto": "Авто",
"autoDesc": "Видаліть усі конфігурації мислення — дозвольте постачальнику вирішувати",
- "custom": "Custom",
+ "custom": "Власне значення",
"customDesc": "Встановіть фіксований бюджет токенів для всіх запитів",
"adaptive": "Адаптивний",
"adaptiveDesc": "Масштабуйте бюджет на основі складності запиту",
@@ -7014,7 +7021,7 @@
"errorOccurred": "Сталася помилка",
"updatePassword": "Оновити пароль",
"setPassword": "Встановити пароль",
- "apiEndpointProtection": "API Endpoint Protection",
+ "apiEndpointProtection": "Захист кінцевої точки API",
"requireAuthModels": "Вимагати ключ API для /models",
"requireAuthModelsDesc": "Якщо ON, кінцева точка /v1/models повертає 404 для неавтентифікованих запитів. Запобігає виявленню моделі неавторизованими користувачами.",
"authModelHeading": "Активна модель авторизації",
@@ -7030,11 +7037,11 @@
"providersBlocked": "{count} постачальник(ів) заблоковано для /models",
"blockProviderTitle": "Заблокувати {provider}",
"unblockProviderTitle": "Розблокувати {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "cliFingerprint": "Зіставлення відбитків CLI",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "Провайдерів з активним відбитком CLI: {count}",
+ "enableFingerprintTitle": "Увімкнути відбиток для {provider}",
+ "disableFingerprintTitle": "Вимкнути відбиток для {provider}",
"systemTransforms": "Системний блок Transform Pipeline",
"systemTransformsDesc": "Упорядкований постачальником конвеєр перетворень, застосованих до тіла запиту перед пересиланням. Підтримує будь-який ID провайдера.",
"systemTransformsAddProvider": "Додати провайдера",
@@ -7061,19 +7068,19 @@
"leastUsedDesc": "Виберіть нещодавно використовуваний обліковий запис",
"costOpt": "Вартість Opt",
"costOptDesc": "Віддайте перевагу найдешевшому доступному обліковому запису",
- "resetAware": "Reset-Aware RR",
+ "resetAware": "RR з урахуванням скидання",
"resetAwareDesc": "Віддавайте перевагу обліковим записам із достатньою квотою, що залишилася, і найближчими скиданнями",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "Зважування за квотою",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "Суворо випадковий вибір",
+ "strictRandomDesc": "Перетасована колода — кожен обліковий запис використовується один раз перед повторним перемішуванням",
+ "stickyLimit": "Ліміт закріплення",
"stickyLimitDesc": "Дзвінки на обліковий запис перед переходом",
"routingStrategyTitle": "Стратегія маршрутизації",
"routingStrategySubtitle": "Відповідність 9router: циклічний перебір акаунтів, липкі ліміти та комбінована ротація",
- "accountRoundRobin": "Round Robin",
+ "accountRoundRobin": "Циклічний перебір",
"accountRoundRobinDesc": "Циклічний перебір акаунтів для розподілу навантаження",
- "comboRoundRobin": "Combo Round Robin",
+ "comboRoundRobin": "Циклічний перебір комбінацій",
"comboRoundRobinDesc": "Циклічний перебір цілей комбо замість постійного старту з першої",
"comboStickyLimit": "Ліміт прив'язки комбо",
"comboStickyLimitDesc": "Запитів на ціль комбо перед перемиканням",
@@ -7085,17 +7092,17 @@
"providerAccountRoutingDesc": "Перевизначити глобальну стратегію акаунтів для цього провайдера (паритет 9router).",
"providerRoutingStrategy": "Стратегія акаунтів",
"providerRoutingInheritGlobal": "Успадкувати глобальне значення за замовчуванням",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "Порогове значення попередньої перевірки квоти",
+ "quotaPreflightSubtitle": "Пропускати облікові записи з вичерпаною квотою перед надсиланням запиту до висхідного сервера",
+ "quotaPreflightEnable": "Увімкнути попередню перевірку квоти",
+ "quotaPreflightEnableDesc": "Перед кожним запитом перевіряти залишок квоти облікового запису (за 5 год / тиждень / місяць). Облікові записи, що досягли порогового значення або опустилися нижче нього, пропускаються без звернення до висхідного сервера. Порогові значення для окремих періодів, установлені на сторінці «Квота провайдера», завжди мають пріоритет над цим стандартним значенням.",
+ "quotaPreflightCutoff": "Глобальне порогове значення (мін. залишок у %)",
+ "quotaPreflightCutoffDesc": "Припинити використовувати обліковий запис, коли залишок його квоти знизиться до цього відсотка або нижче, для кожного періоду без власного порогового значення. Відповідає індикаторам залишку у відсотках на сторінці «Квота провайдера».",
+ "quotaPreflightWindowsHint": "Це стандартне значення не впливає на періоди з власним пороговим значенням для періоду або провайдера, установленим у модальному вікні «Порогове значення» на сторінці «Квота провайдера».",
+ "quotaPreflightLoadFailed": "Не вдалося завантажити налаштування попередньої перевірки квоти.",
"modelAliases": "Псевдоніми моделі",
"modelAliasesTitle": "Псевдоніми моделей",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
+ "modelAliasesDesc": "Перепризначайте назви моделей за допомогою точних збігів або шаблонів із символами підстановки.",
"addCustomAlias": "Додати власний псевдонім",
"deprecatedModelId": "Застарілий ID моделі",
"newModelId": "Новий ID моделі",
@@ -7184,7 +7191,7 @@
"comboStrategyAria": "Комбінована стратегія",
"priority": "Пріоритет",
"weighted": "Зважений",
- "contextRelay": "Context Relay",
+ "contextRelay": "Передавання контексту",
"contextRelayDesc": "Hands off context between providers with automatic summarization",
"maxRetriesLabel": "Макс. повторних спроб",
"retryDelayLabel": "Затримка повтору (мс)",
@@ -7210,10 +7217,10 @@
"concurrencyPerModel": "Одночасність / Модель",
"queueTimeout": "Час очікування черги (мс)",
"queueDepth": "Глибина черги",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
+ "contextRelayHandoffThreshold": "Порогове значення передавання",
+ "contextRelayMaxMessages": "Максимальна кількість повідомлень для підсумку",
+ "contextRelaySummaryModel": "Модель для підсумку",
+ "contextRelayProviderNote": "Передавання контексту наразі створює передачі для облікових записів Codex і використовує ці значення як глобальні стандартні параметри для нових або неналаштованих комбінацій.",
"providerProfiles": "Профілі постачальників",
"providerProfilesDesc": "Окремі параметри стійкості для постачальників OAuth (на основі сеансу) і ключа API (з вимірюванням). Постачальники OAuth мають суворіші порогові значення через нижчі обмеження швидкості.",
"oauthProviders": "Постачальники OAuth",
@@ -7295,7 +7302,7 @@
"daysAgo": "{count} дн. тому",
"backupReasonManual": "посібник",
"backupReasonPreRestore": "попереднє відновлення",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
+ "connectionsCount": "{count, plural, one {# з’єднання} few {# з’єднання} many {# з’єднань} other {# з’єднання}}",
"noChangesSinceBackup": "Жодних змін з часу останнього резервного копіювання",
"backupFailed": "Помилка резервного копіювання",
"restoreFailed": "Не вдалося відновити",
@@ -7325,7 +7332,7 @@
"configured": "налаштовано",
"none": "Немає",
"modelOverrideValuePlaceholder": "Числове значення",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "Англійською, через кому, наприклад: low, medium, high",
"addKeyValue": "Додати ключ-значення",
"noModelOverrides": "Для цієї моделі не налаштовано перевизначень.",
"modelOverrideLoadFailed": "Не вдалося завантажити перевизначення моделі",
@@ -7374,25 +7381,25 @@
"editPricing": "Редагувати ціни",
"viewFullDetails": "Переглянути повну інформацію",
"themeCoral": "Корал",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "Адаптивна маршрутизація за обсягом",
+ "adaptiveVolumeRoutingDesc": "Динамічно масштабує з’єднання залежно від обсягу корисного навантаження та навантаження на пропускну здатність.",
+ "lkgpToggleTitle": "Останній відомий справний провайдер (LKGP)",
+ "lkgpToggleDesc": "Якщо ввімкнено, маршрутизатор запам’ятовує, який провайдер останнім надав успішну відповідь, і спочатку звертається до нього під час наступних запитів.",
"echoRequestedModelTitle": "Повертати запитану назву моделі у відповідях",
"echoRequestedModelDesc": "Якщо увімкнено, поле `model` у відповіді містить псевдонім або комбіновану назву, яку запитав клієнт, замість назви вихідної моделі. Виправляє роботу з суворими клієнтами (наприклад, Claude Desktop), які відхиляють відповідь, якщо модель не збігається із запитом.",
"webSearchRouteTitle": "Маршрутизація вебпошуку",
"webSearchRouteDesc": "Коли запит містить вбудований інструмент web_search, спрямовувати весь запит на цю модель замість стандартної — корисно для провайдерів, які не підтримують серверний інструмент web_search від Anthropic. Залиште порожнім, щоб вимкнути.",
"webSearchRoutePlaceholder": "Знайдіть або виберіть модель…",
"paidModelPatternWarning": "Цей шаблон відповідає лише платним моделям — увімкніть платні моделі або змініть шаблон.",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "Очистити кеш LKGP",
+ "lkgpCacheCleared": "Кеш LKGP успішно очищено",
+ "lkgpCacheClearFailed": "Не вдалося очистити кеш LKGP",
+ "days": "Дні",
+ "lkgp": "Режим LKGP",
+ "lkgpDesc": "Останній відомий справний провайдер (передбачувана відмовостійкість)",
+ "maintenance": "Обслуговування",
+ "purgeExpiredLogs": "Видалити прострочені журнали",
+ "purgeLogsFailed": "Не вдалося видалити журнали",
"logsDeleted": "{count, plural, =0 {Немає очищених застарілих журналів} one {Очищено # застарілий журнал} few {Очищено # застарілі журнали} many {Очищено # застарілих журналів} other {Очищено # застарілих журналів}}",
"resetUsageData": "Скинути дані про використання",
"resetUsageDataDesc": "Виберіть, за який період ви хочете видалити дані про використання, журнали запитів та аналітику. Налаштування провайдерів, підключення, API-ключі, комбінації та параметри буде збережено. Цю дію не можна скасувати.",
@@ -7409,39 +7416,39 @@
"resetUsageFailed": "Не вдалося скинути дані про використання",
"reset": "Скинути",
"resetting": "Скидання...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
+ "contextOpt": "Оптимізація за контекстом",
+ "contextOptDesc": "Маршрутизує на основі вимог до контекстного вікна та довжини розмови",
+ "cacheOpt": "Оптимізація кешу",
+ "cacheOptDesc": "Зберігає той самий повторно використовуваний префікс запиту в тому самому обліковому записі провайдера",
+ "priorityDesc": "Послідовне резервування — спочатку звертається до провайдера 1, потім до провайдера 2 і так далі",
+ "weightedDesc": "Розподіляє трафік між провайдерами відповідно до вагових коефіцієнтів у відсотках",
+ "modelRoutingTitle": "Правила маршрутизації моделей",
+ "modelRoutingDesc": "Автоматично спрямовує моделі до певних комбінацій за допомогою glob-шаблонів",
+ "addRule": "Додати правило",
+ "routeToCombo": "Спрямувати до комбінації",
+ "selectCombo": "Виберіть комбінацію...",
+ "priorityHint": "Що вище значення, то раніше виконується перевірка. Для конкретних шаблонів використовуйте 10 або більше.",
+ "patternHint": "Використовуйте * для будь-якої кількості символів, а ? — для одного символу. Регістр не враховується.",
+ "noRoutingRules": "Правила маршрутизації не налаштовано. За замовчуванням запити використовують глобальну комбінацію.",
+ "routingRuleHint": "Додайте правило на кшталт claude-opus* -> frontier-combo, щоб автоматично маршрутизувати запити.",
+ "deleteRoutingRule": "Видалити це правило маршрутизації моделі?",
+ "exactMatchMode": "Точний збіг",
+ "wildcardPatternMode": "Шаблон із символами підстановки",
+ "exactMatchModeDesc": "Використовуйте точні псевдоніми для застарілих або перейменованих ідентифікаторів моделей.",
+ "wildcardPatternModeDesc": "Використовуйте псевдоніми із символами підстановки * і ?, коли сімейство моделей має відповідати одній цільовій моделі.",
+ "noExactAliasesConfigured": "Псевдоніми з точним збігом не налаштовано.",
+ "wildcardRulesTitle": "Правила із символами підстановки",
+ "noWildcardAliasesConfigured": "Псевдоніми із символами підстановки не налаштовано.",
+ "overview": "Огляд",
+ "unknownError": "Невідома помилка",
"pricingSourceLiteLLM": "Pricing Source Lite Llm",
"clearSyncedPricingConfirm": "Clear Synced Pricing Confirm",
"clearSyncedPricingFailed": "Clear Synced Pricing Failed",
"pricingSourceUser": "Pricing Source User",
"pageDescription": "Page Description",
"pricingSyncStatus": "Pricing Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
+ "whitelist": "Білий список",
+ "syncDisabled": "Синхронізацію вимкнено",
"pricingLoadFailed": "Pricing Load Failed",
"pricingSyncDescription": "Pricing Sync Description",
"clearSyncedPricingSuccess": "Clear Synced Pricing Success",
@@ -7449,23 +7456,23 @@
"pricingSourceDefault": "Pricing Source Default",
"pricingSyncSuccess": "Pricing Sync Success",
"enableSyncError": "Enable Sync Error",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "syncEnabled": "Синхронізацію ввімкнено",
+ "blacklist": "Чорний список",
"pricingSourceModelsDev": "Pricing Source Models Dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
+ "syncedModels": "Синхронізовані моделі",
+ "budget": "Бюджет",
"pricingSyncTitle": "Pricing Sync Title",
"pricingResetFailedWithReason": "Не вдалося скинути ціни: {reason}",
- "tab": "Tab",
+ "tab": "Вкладка",
"pricingSavedProvider": "Ціни збережено для {provider}",
"pricingSyncFailed": "Pricing Sync Failed",
"pricingSaveFailedWithReason": "Не вдалося зберегти ціни: {reason}",
"pricingResetProvider": "Скидання цін для {provider}",
- "nextSync": "Next Sync",
+ "nextSync": "Наступна синхронізація",
"pricingSyncFailedWithReason": "Помилка синхронізації цін: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "clearSyncedPricing": "Очистити синхронізовані ціни",
+ "compressionTitle": "Стиснення запитів",
+ "compressionDesc": "Зменшуйте використання токенів, стискаючи запити перед надсиланням постачальникам",
"compressionGuidanceFullGuideLink": "Повний посібник із стиснення",
"compressionGuidanceShow": "Деталі",
"compressionGuidanceHide": "Приховати деталі",
@@ -7481,16 +7488,16 @@
"tokenSaverInputCompressionDesc": "Переписувати відповідну історію чату, зберігаючи код, URL-адреси та намір.",
"tokenSaverFineTunePrefix": "Тонко налаштовуйте кожен рушій на",
"tokenSaverFineTuneSuffix": "або комбінуйте рушії для кожного запиту на",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
- "compressionModeAggressive": "Aggressive",
- "compressionModeAggressiveDesc": "Summarization + tool result compression + progressive aging for maximum savings",
- "compressionModeUltra": "Ultra",
+ "compressionMode": "Режим стиснення",
+ "compressionModeOff": "Вимкнено",
+ "compressionModeOffDesc": "Стиснення не застосовується",
+ "compressionModeLite": "Легкий",
+ "compressionModeLiteDesc": "Скорочення пробілів і порожніх рядків",
+ "compressionModeStandard": "Стандартний (Caveman)",
+ "compressionModeStandardDesc": "Стиснення на основі правил із понад 30 шаблонами зі збереженням блоків коду та URL-адрес",
+ "compressionModeAggressive": "Агресивний",
+ "compressionModeAggressiveDesc": "Узагальнення + стиснення результатів інструментів + поступове старіння для максимальної економії",
+ "compressionModeUltra": "Ультра",
"compressionModeUltraDesc": "Maximum compression with all techniques including semantic deduplication",
"compressionAggressiveConfig": "Агресивна конфігурація двигуна",
"compressionAggressiveConfigDesc": "Точне налаштування підсумовування, стиснення інструменту та пороги старіння",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "Кількість останніх повідомлень, що зберігаються на кожному рівні старіння (вище = більше збережене)",
"compressionToolStrategies": "Інструмент Стратегії результату",
"compressionToolStrategiesDesc": "Перемикайте стратегії стиснення для різних типів результатів інструментів",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "Загальні налаштування",
+ "compressionAutoTrigger": "Поріг автозапуску",
+ "compressionCacheTTL": "TTL кешу",
+ "compressionPreserveSystem": "Зберігати системний запит",
"compressionPreserveSystemAlways": "Завжди",
"compressionPreserveSystemWhenNoCache": "Коли немає кешу",
"compressionPreserveSystemNever": "Ніколи",
@@ -7528,87 +7535,87 @@
"compressionExclusionsSaved": "Збережено",
"compressionExclusionsCount": "Налаштовано {count, plural, one {# виключення} other {# виключень}}",
"compressionExclusionsEmpty": "Не налаштовано виключень — кожна модель/кінцева точка підлягає стисненню (поведінка за замовчуванням).",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Конфігурація рушія Caveman",
+ "compressionCavemanConfigDesc": "Точне налаштування рушія стиснення на основі правил",
"compressionCavemanPanelHint": "Його стан увімкнення/вимкнення та рівень налаштовуються на панелі:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "Стискати ролі повідомлень",
+ "compressionRoleUser": "Користувач",
+ "compressionRoleAssistant": "Асистент",
+ "compressionRoleSystem": "Система",
+ "compressionMinLength": "Мінімальна довжина повідомлення",
+ "compressionSkipRules": "Правила пропуску стиснення",
+ "compressionSkipRulesDesc": "Натисніть правила, щоб пропускати їх під час стиснення",
+ "compressionPreservePatterns": "Збережені шаблони",
+ "compressionPreservePatternsDesc": "Регулярні вирази, які ніколи не стискаються (по одному на рядок)",
+ "compressionLogTitle": "Журнал стиснення",
+ "compressionLogEmpty": "Стиснених запитів ще немає. Статистика стиснення з’явиться тут після обробки запитів із увімкненим стисненням.",
"minutes": "хвилин",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "Фільтрування результатів інструментів з урахуванням команд",
+ "compressionModeCodexResponses": "Вивід інструмента відповідей",
+ "compressionModeCodexResponsesDesc": "Консервативне стиснення відповідних виводів оболонки, виправлень, пошуку, збірки та JSON",
+ "compressionModeStacked": "Послідовне",
+ "compressionModeStackedDesc": "Фільтрування виводу інструментів RTK із подальшим стисненням повідомлень Caveman",
+ "qdrantTitle": "Qdrant (векторна пам’ять)",
+ "qdrantDesc": "Необов’язково. Індексує семантичні спогади в зовнішній векторній базі даних для швидшого отримання.",
+ "qdrantStatusActive": "Активно",
+ "qdrantStatusError": "Помилка",
+ "qdrantStatusDisabled": "Вимкнено",
+ "qdrantEnable": "Увімкнути Qdrant",
+ "qdrantEnableDesc": "Якщо ввімкнено, семантична/гібридна стратегія може використовувати Qdrant для отримання спогадів.",
+ "qdrantTesting": "Тестування...",
+ "qdrantTestConnection": "Перевірити з’єднання",
+ "qdrantSaved": "Конфігурацію збережено",
+ "qdrantSaveError": "Не вдалося зберегти конфігурацію",
+ "qdrantHostHint": "Без порту. Приклад: 127.0.0.1 або http://qdrant",
+ "qdrantPort": "Порт",
+ "qdrantPortHint": "Типове значення Qdrant: 6333",
+ "qdrantCollectionHint": "Місце зберігання точок пам’яті.",
+ "qdrantEmbeddingModel": "Модель вбудовування",
+ "qdrantHelpTitle": "Довідка зі швидкого налаштування",
+ "qdrantHelpQuickTitle": "Швидке налаштування (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. Хост: IP/URL Qdrant, порт: 6333, колекція: omniroute_memory.",
+ "qdrantHelpStep2": "2. Якщо використовується nvidia/llama-nemotron-embed-vl-1b-v2:free, задайте розмірність колекції 2048.",
+ "qdrantHelpStep3": "3. Поле моделі: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
+ "qdrantHelpStep4": "4. Збережіть, перевірте з’єднання, а потім протестуйте пошук.",
+ "qdrantEmbeddingQuickSelect": "Швидкий вибір серед виявлених моделей...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "Формат: provider/model. Облікові дані постачальника мають бути налаштовані.",
+ "qdrantApiKeyPlaceholderKeep": "(залиште порожнім, щоб зберегти поточний ключ)",
+ "qdrantApiKeyPlaceholderOptional": "(залиште порожнім, якщо не використовується)",
+ "qdrantSaveHint": "Порада: відредагуйте хост/порт/колекцію/модель і натисніть «Зберегти». Ключ API необов’язковий.",
+ "qdrantSearchTestTitle": "Тестування пошуку",
+ "qdrantSearchTestDesc": "Створює векторне представлення та виконує пошук у Qdrant.",
+ "qdrantSearchPlaceholder": "Приклад: уподобання користувача, історія тощо",
+ "qdrantNoResults": "Результатів немає (або Qdrant не налаштовано).",
+ "qdrantCleanupTitle": "Зберігання й очищення",
+ "qdrantCleanupDesc": "Видаляє прострочені та старі точки на основі",
+ "searching": "Пошук...",
+ "cleaning": "Очищення...",
+ "cleanNow": "Очистити зараз",
"optional": "Додатково",
"current": "поточний",
"remove": "видалити",
"search": "Пошук",
- "oneproxyTitle": "1proxy Free Proxy Marketplace",
+ "oneproxyTitle": "1proxy — безкоштовний маркетплейс проксі",
"oneproxyTotalProxies": "Всього проксі",
"oneproxyAvgQuality": "Середня якість",
"resilienceScope": "Сфера застосування:",
"resilienceTrigger": "Тригер:",
"resilienceEffect": "Ефект:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "Черга запитів і ліміти",
+ "resilienceAutoEnableApiKeyProviders": "Автоматично вмикати для провайдерів із ключами API",
+ "resilienceRequestsPerMinute": "Запитів за хвилину",
+ "resilienceMinTimeBetweenRequests": "Мінімальний час між запитами",
+ "resilienceConcurrentRequests": "Одночасні запити",
+ "resilienceConnectionScopeConcurrentRequests": "Одночасні запити на підключення/область квоти",
+ "resilienceGlobalConcurrentRequests": "Глобальна кількість одночасних висхідних запитів (0 = вимкнено)",
"resilienceMaxQueueWaitTime": "Максимальний час очікування в черзі",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "Базовий період очікування",
+ "resilienceUseUpstreamRetryHints": "Використовувати підказки висхідного сервера щодо повторних спроб",
+ "resilienceDefaultPerProvider": "За замовчуванням (для кожного провайдера)",
+ "resilienceAlwaysOn": "Завжди ввімкнено",
+ "resilienceAlwaysOff": "Завжди вимкнено",
"routingRemoveEntry": "Видалити запис",
"routingNeedlesSubstrings": "Голки (підрядки для відповідності)",
"routingCaseSensitive": "Чутливий до регістру",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "Надсилається до vision-моделі перед тим, як отриманий опис вставляється назад до оригінального запиту.",
"visionBridgeTimeoutMs": "Час очікування (мс)",
"visionBridgeMaxImagesPerRequest": "Максимальна кількість зображень на запит",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "Максимальна кількість кроків затримки",
+ "resilienceProviderBreakerTitle": "Запобіжник для кожного провайдера",
+ "resilienceFailureThreshold": "Поріг помилок",
+ "resilienceDegradationThreshold": "Поріг деградації",
"resilienceResetTimeout": "Скинути час очікування",
"resilienceFailureThresholdLabel": "Поріг відмови",
"resilienceResetTimeoutLabel": "Скинути час очікування",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "Період очікування підключення",
"resilienceUseUpstreamRetryHintsLabel": "Використовуйте підказки щодо повторної спроби",
"resilienceUseUpstream429BreakerLabel": "Використовуйте підказки 429 вгору (розрив)",
"resilienceMaxBackoffStepsLabel": "Максимальний крок відступу",
"resilienceYes": "так",
"resilienceNo": "немає",
- "resilienceDefault": "Default",
+ "resilienceDefault": "За замовчуванням",
"storageDatabaseBackupRetention": "Зберігання резервної копії бази даних",
"storageDatabaseBackups": "Резервні копії бази даних",
"storageBackupRetentionDescription": "Автоматичні резервні копії SQLite зберігаються в",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "Застарілий JSON успішно імпортовано!",
"jsonImportFailed": "Не вдалося імпортувати JSON",
"jsonImportError": "Помилка під час імпорту JSON",
+ "jsonImportAuthRequired": "Для імпорту застарілої конфігурації JSON потрібна автентифікація. Спочатку ввійдіть або завершіть налаштування.",
+ "databaseSettingsAuthRequiredTitle": "Потрібна автентифікація",
+ "databaseSettingsAuthRequiredBody": "Налаштування бази даних та імпорт JSON доступні лише автентифікованому адміністратору. Увійдіть або завершіть налаштування, щоб переглядати й редагувати їх.",
+ "databaseSettingsAuthRequiredCta": "Увійти",
"storagePurgeData": "Очистити дані",
"storagePurgeDataDesc": "Негайно видалити всі записи без перевірки терміну зберігання. Використовуйте з обережністю.",
"storageRetentionCleanup": "Налаштування зберігання",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "режим: {mode}",
"compressionAdaptiveOff": "Адаптивний бюджет контексту: вимкнено (застарілий автотригер)",
"compressionAdaptiveTarget": "Адаптивний ({mode}, політика: {policy}) — ціль ≈ {target, number} токенів (для вікна в {contextLimit, number} токенів)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "Адаптивний бюджет контексту",
+ "compressionAdaptiveModeOff": "Вимкнено (застарілий автозапуск)",
+ "compressionAdaptiveModeFloor": "Мінімум (завжди гарантувати вміщення)",
+ "compressionAdaptiveModeReplace": "Замінити автозапуск",
+ "compressionAdaptivePolicy": "Політика бюджету",
+ "compressionAdaptivePolicyReserve": "Резерв для виведення",
+ "compressionAdaptivePolicyPercentage": "Відсоток вікна",
+ "compressionAdaptivePolicyAbsolute": "Абсолютний бюджет токенів",
"compressionOutputStylesDescription": "Впроваджуйте інструкції формування відповіді без перезапису виводу провайдера. Вільно комбінуйте.",
"mcpAccessibilityDescription": "Обмежує область виводу інструментів MCP (окреме сховище).",
"compressionStylesTileSummary": "{tokens, number} токенів збережено · {runs, plural, one {# стилізований запуск} few {# стилізовані запуски} many {# стилізованих запусків} other {# стилізованих запусків}}",
@@ -7862,23 +7873,23 @@
"description": "Фільтрація виводу команд."
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Виведення інструменту Responses",
+ "description": "Консервативне стиснення для підтримуваних результатів інструменту Responses."
},
"headroom": {
- "label": "Headroom",
+ "label": "Запас",
"description": "Ущільнення табличного JSON."
},
"relevance": {
- "label": "Relevance",
+ "label": "Релевантність",
"description": "Екстрактивна оцінка речень відносно останнього запиту користувача."
},
"caveman": {
- "label": "Caveman",
+ "label": "Печерна людина",
"description": "Стиснення прози на основі правил."
},
"aggressive": {
- "label": "Aggressive",
+ "label": "Агресивний",
"description": "Підсумовування та старіння старих реплік."
},
"llmlingua": {
@@ -7886,7 +7897,7 @@
"description": "Семантичне відсікання (ONNX)."
},
"ultra": {
- "label": "Ultra",
+ "label": "Ультра",
"description": "Евристичне відсікання токенів з необов'язковою SLM."
},
"omniglyph": {
@@ -7904,12 +7915,12 @@
"description": "Драбина YAGNI: найменша робоча зміна, жодних незапитуваних абстракцій."
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Кінський хвіст (лінивий старший розробник)",
+ "description": "Дисципліна лінивого старшого розробника: підіймайтеся драбиною YAGNI, усувайте першопричину, робіть найменшу робочу зміну."
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "У мене РДУГ (спочатку дія)",
+ "description": "Виведення за принципом «спочатку дія»: починайте з наступної дії, нумеруйте кроки, указуйте один конкретний наступний крок, без вступу."
},
"terse-cjk": {
"label": "Стисла CJK (文言)",
@@ -7920,13 +7931,21 @@
"resilienceEnableServerSideWait": "Увімкнути очікування на стороні сервера",
"resilienceMaximumRetries": "Максимальна кількість повторів",
"resilienceMaximumWaitPerRetry": "Максимальний час очікування на повторну спробу",
- "memorySkillsSkillsmpMarketplace": "SkillsMP Marketplace",
+ "memorySkillsSkillsmpMarketplace": "Маркетплейс SkillsMP",
"memorySkillsFailedToSave": "Не вдалося зберегти",
"memorySkillsApiKey": "Ключ API",
"memorySkillsActiveSkillsProvider": "Постачальник активних навичок",
"cliproxyapiFallback": "Запасний варіант CLIProxyAPI",
"cliproxyapiEnableFallback": "Увімкнути резервний варіант CLIProxyAPI",
"cliproxyapiUrl": "URL-адреса CLIProxyAPI",
+ "headroomProxyTitle": "Проксі Headroom",
+ "headroomProxyDesc": "URL необов’язкового проксі Headroom для заощадження токенів. Якщо поле порожнє, використовується HEADROOM_URL або http://localhost:8787.",
+ "headroomProxyUrl": "URL Headroom",
+ "headroomProxyUrlHint": "URL-адреси зворотного зв’язку можна запускати з цієї сторінки. Зовнішні URL-адреси лише перевіряються.",
+ "headroomProxySave": "Зберегти",
+ "headroomProxyStart": "Запустити",
+ "headroomProxyStop": "Зупинити",
+ "headroomProxyExternalHint": "Ця URL-адреса не є адресою зворотного зв’язку, тому OmniRoute не запускатиме локальний CLI.",
"cliproxyapiStatus": "Статус CLIProxyAPI",
"cliproxyapiNotDetected": "Не виявлено",
"cliproxyapiImportAuthTitle": "Імпорт облікових записів із CLIProxyAPI",
@@ -7981,15 +8000,15 @@
"responsesStateModePreserve": "Зберігати",
"responsesStateHint": "«Авто» вилучає previous_response_id, якщо з'єднання явно не вмикає сховище OpenAI Responses. «Вилучати» є найбезпечнішим для клієнтів без збереження стану, таких як VS Code Custom Endpoint; у такому разі контекст залежить від надсилання повної історії клієнтом.",
"responsesStateSaveError": "Не вдалося оновити налаштування стану Responses",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Швидкий тариф Codex",
"codexFastTierDesc": "Глобально ввести service_tier=пріоритет для запитів OpenAI Codex.",
"codexFastTierHint": "Якщо ввімкнено, OmniRoute додає service_tier=priority до вихідних запитів Codex для підключень, у яких ще не вказано рівень. Пріоритетний рівень потребує ключа OpenAI Enterprise API або шляху ChatGPT-auth Codex; інші типи ключів отримають від OpenAI повідомлення про помилку рівня. Налаштування кожного підключення на сторінці постачальника Codex мають перевагу.",
"codexFastTierSaveError": "Не вдалося оновити налаштування Codex Fast Tier",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Автоматичний пінг квоти Codex",
+ "codexAutoPingDesc": "Вмикається окремо для кожного з’єднання: надсилає крихітний запит одразу після скидання вікна сеансу Codex, щоб він не був «холодним», коли знадобиться.",
+ "codexAutoPingWarning": "Кожен пінг витрачає невелику частину реальної квоти Codex. Типово вимкнено — вмикайте лише для з’єднань, на які ви активно покладаєтеся.",
+ "codexAutoPingSaveError": "Не вдалося оновити налаштування автоматичного пінгу Codex",
+ "codexAutoPingToggleAria": "Увімкнути або вимкнути автоматичний пінг квоти Codex для {connection}",
"codexFastTierTierLabel": "Рівень сервісу",
"codexFastTierTierPriority": "Пріоритет",
"codexFastTierTierFlex": "Flex",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "Глобальний інтервал перевірки",
"resilienceCredentialHealthEveryMinutes": "Кожні {minutes} хв",
"resilienceCredentialHealthHint": "0 вимикає фонове сканування (макс. 1440 хв = 24 год). Підключення з власним значенням перевірки стану ігнорують цей глобальний параметр; 0 у конкретного підключення виключає його навіть коли глобальне сканування увімкнено.",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "Завжди ввімкнено для {provider} — необхідно для безпеки облікового запису OAuth; вимкнути неможливо.",
+ "forcedFingerprintBadge": "Обов’язково",
"sessionAffinityTitle": "Прив'язка сесії",
"sessionAffinityDesc": "Утримує одну розмову на одному обліковому записі протягом цієї кількості секунд для будь-якого провайдера. 0 вимикає це.",
"sessionAffinityTtl": "TTL прив'язки (секунди)",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "Максимальна кількість кроків затримки перед тим, як період охолодження припинить зростати. У більшості конфігурацій спочатку досягається ліміт Max Cooldown, що робить це безпечною межею на випадок збільшення Max Cooldown.",
"disableSessionStickiness": "Вимкнути закріплення сесій",
"disableSessionStickinessDesc": "Комбінації Round-robin та random перемикаються на інше з'єднання при кожному запиті замість закріплення всієї розмови за одним з'єднанням за хешем першого повідомлення. Залиште вимкненим, щоб зберегти влучання в кеш підказок (prompt-cache) для багатокрокових чатів. Перевизначення для конкретних комбінацій мають пріоритет.",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "Маршрутизація з урахуванням локальності кешу промптів",
+ "promptCacheAffinityDesc": "Віддавати перевагу тому самому обліковому запису провайдера для відповідних ключів кешу промптів, зберігаючи перемикання в разі проблем зі станом або квотою.",
+ "reasoningTokenBuffer": "Буфер токенів міркування",
+ "reasoningTokenBufferDesc": "Дозволити комбінованій маршрутизації додавати резерв max_tokens лише для відомих моделей міркування, коли весь буфер уміщується у відоме обмеження виведення.",
+ "zeroLatencyOptimizations": "Оптимізації з нульовою затримкою",
+ "zeroLatencyOptimizationsDesc": "Увімкніть хеджування, прогнозовані пропуски TTFT і проактивне стиснення резервних запитів. Залиште вимкненим, щоб ці функції зниження затримки не створювали перегонів між цільовими сервісами та не стискали резервні запити.",
"credentialRedaction": "Вилучення облікових даних",
"credentialRedactionDesc": "Вилучати API-ключі, токени та секрети з контексту, що надсилається провайдерам, та з відповідей.",
"enableCredentialRedaction": "Увімкнути вилучення облікових даних",
"enableCredentialRedactionDesc": "Очищає API-ключі, токени, приватні ключі та JWT з повідомлень, викликів інструментів та відповідей.",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "Автоматичну синхронізацію вимкнено",
+ "pricingAutoSyncEnabled": "Автоматичну синхронізацію ввімкнено",
"modalityBridgeIntro": "Перетворюйте мультимодальний вміст на текст до його передавання моделям, що працюють лише з текстом. Мости для зображень, аудіо та відео доступні й налаштовуються.",
"modalityBridgeVisionTab": "Візія",
"modalityBridgeAudioTab": "Аудіо",
@@ -8360,15 +8379,7 @@
"cliproxyapiHealth": "Здоров'я",
"cliproxyapiPort": "Порт",
"qdrantHost": "Хост",
- "qdrantCollection": "Колекція",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "Колекція"
},
"contextRtk": {
"title": "Двигун RTK",
@@ -8452,7 +8463,7 @@
"tomlTestPassed": "Пройдено",
"tomlTestFailed": "Не пройдено",
"tomlImportError": "Не вдалося обробити файл RTK TOML.",
- "tomlFileReadError": "Could not read the selected TOML file."
+ "tomlFileReadError": "Не вдалося прочитати вибраний файл TOML."
},
"compressionEngineConfig": {
"loading": "Завантаження…",
@@ -8507,15 +8518,15 @@
"description": "ONNX-based semantic token classification. Compresses prose only; code blocks and preserved constructs are protected. Продовжує роботу без стиснення у разі помилок моделі або воркера."
},
"lite": {
- "name": "Lite",
+ "name": "Легкий",
"description": "Швидке скорочення пробілів, результатів інструментів та URL-адрес зображень."
},
"aggressive": {
- "name": "Aggressive",
+ "name": "Агресивний",
"description": "Резюмування, стиснення результатів інструментів та прогресивне старіння."
},
"ultra": {
- "name": "Ultra",
+ "name": "Ультра",
"description": "Евристичне скорочення токенів з додатковим резервним використанням локальної SLM."
}
},
@@ -8597,9 +8608,9 @@
"bert-base": "BERT-base (710 МБ, вища точність)"
},
"intensity": {
- "lite": "Lite",
- "full": "Full",
- "ultra": "Ultra"
+ "lite": "Легкий",
+ "full": "Повний",
+ "ultra": "Ультра"
}
},
"modeOptions": {
@@ -8657,6 +8668,8 @@
"contextEditingNote": "Наразі доступно лише для Claude (Anthropic). Це делегований режим: провайдер очищає старі блоки використання інструментів на стороні сервера — ми не переписуємо повідомлення. Це не впливає на інших провайдерів.",
"namedCombos": "Іменовані комбінації",
"namedCombosDescription": "Зберігайте різні конвеєри та призначайте їх конкретним комбінаціям маршрутизації.",
+ "activeProfileMasterSwitchOffWarning": "Активний профіль нижче не працюватиме, доки не буде ввімкнено головний перемикач «Стиснення промптів».",
+ "activeProfileMasterSwitchOffCta": "Увімкнути в налаштуваннях",
"comboNamePlaceholder": "Назва комбінації",
"descriptionPlaceholder": "Опис",
"nameRequired": "Введіть назву комбінації перед збереженням.",
@@ -8670,9 +8683,7 @@
"languagePacksList": "Мовні пакети: {packs}",
"dragToReorder": "Перетягніть, щоб змінити порядок кроків",
"engine": "Рушій",
- "intensity": "Інтенсивність",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "Інтенсивність"
},
"compressionStudio": {
"noRun": "Немає доступних запусків стиснення.",
@@ -8681,16 +8692,16 @@
"canvas": "Полотно",
"waterfall": "Водоспад",
"replayDone": "Відтворення завершено",
- "pauseReplay": "Pause replay",
- "playReplay": "Play replay",
- "pause": "Pause",
- "replay": "Replay",
- "resetReplay": "Reset replay",
- "stepProgress": "step {current}/{total}",
- "inlineView": "Inline",
- "splitComingSoon": "Split view (coming soon)",
- "inputPlaceholder": "Paste a prompt, tool output, or context…",
- "activeCombined": "Active in the combined flow",
+ "pauseReplay": "Призупинити відтворення",
+ "playReplay": "Запустити відтворення",
+ "pause": "Пауза",
+ "replay": "Відтворити",
+ "resetReplay": "Скинути відтворення",
+ "stepProgress": "крок {current}/{total}",
+ "inlineView": "Вбудований режим",
+ "splitComingSoon": "Розділений перегляд (незабаром)",
+ "inputPlaceholder": "Вставте промпт, результат інструмента або контекст…",
+ "activeCombined": "Активний у комбінованому потоці",
"requiresOnnx": "потребує моделі ONNX",
"verifyFidelity": "Перевірити точність (відхилити будь-який шар, що пошкоджує вміст)",
"fuzzyDedup": "Неточне дедуплікування (майже дублікат → CCR)",
@@ -8701,7 +8712,7 @@
"run": "Запустити",
"laneRejected": "відхилено: {reason}",
"error": "помилка",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "Не вдалося переглянути комбінований конвеєр: {reason}",
"combinedFlow": "Комбінований потік",
"eachLayer": "Кожен шар окремо",
"diff": "Різниця",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "Увімкнути рушій",
"enableDescription": "Запускається останнім у стеку (після того, як RTK/Caveman очищає текст, а OmniGlyph конвертує решту в зображення), а також працює автономно в режимі omniglyph. Це попередня версія, яка залишається вимкненою за замовчуванням до завершення наскрізної перевірки.",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "Профіль стиснення",
+ "profileDescription": "Профіль задає верхню, а не нижню межу: суворіший профіль не можна послабити перевизначенням на рівні окремого кроку. Виміряно на цій кодовій базі: у режимі «Безпечний для коду» або «Збалансований» сеанс, у якому ще не накопичилася історія, нічого не стискає, оскільки обидва режими підвищують мінімальний поріг кількості символів і зберігають системний промпт, схеми інструментів і результати інструментів у початковому вигляді.",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "Агресивний (за замовчуванням)",
+ "description": "Політика, яку оцінювали в опублікованих звітах. Перетворює на зображення системний промпт, документацію інструментів і насичену історію."
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "Збалансований",
+ "description": "Зберігає поточний стан у початковому вигляді та захищає останні 8 ходів; згортає лише давнішу завершену історію."
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "Безпечний для коду",
+ "description": "Зберігає інструкції вищого рівня, схеми інструментів і поточний результат інструментів у початковому вигляді, захищаючи останні 12 ходів. Нічого не стискає, доки в сеансі не накопичиться історія."
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "Без змін",
+ "description": "Маршрутизує без перетворень. Рушій пропускається, а запит пересилається без змін."
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "Виберіть профіль стиснення OmniGlyph",
"saved": "Збережено.",
"saveFailed": "Не вдалося зберегти.",
"enableAria": "Увімкнути рушій OmniGlyph",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "Стиснення повідомлень на основі правил, мовні пакети, аналітика та керування режимом виведення.",
"advancedConfig": "Розширена конфігурація",
"advancedConfigDesc": "Точне налаштування стиснення",
"aggressiveSettings": "Агресивні налаштування",
"aggressiveSettingsDesc": "Максимальне стиснення з потенційними компромісами щодо якості",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "Запити",
+ "tokensSaved": "Заощаджено токенів",
+ "savingsPercent": "Заощадження, %",
+ "avgLatency": "Середня затримка",
+ "languagePacks": "Мовні пакети",
+ "languagePacksDesc": "Увімкніть правила стиснення для певних мов.",
"labelAutoTrigger": "Автоматичне стиснення, коли контекст перевищує",
"labelCompressionRate": "Міцність на стиск",
"labelMaxTokens": "Цільові маркери на повідомлення",
"labelMinLength": "Мінімальна довжина повідомлення",
"labelMinSavings": "Мінімальна кількість токенів для збереження",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "Увімкнено",
+ "autoDetect": "Автовизначення мови",
+ "rulesCount": "{count} правил",
"inputCompressionTitle": "Стиснення входу",
"inputCompressionDesc": "Переписує історію чату коротшими формулюваннями. Зменшує вхідні токени приблизно на 50%.",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "Аналітика стиснення",
+ "noAnalytics": "Даних аналітики стиснення ще немає.",
"masterDisabledWarning": "Головний перемикач Token Saver вимкнено — ці налаштування не впливатимуть на запити, доки ви не увімкнете його в Compression Settings або не зміните тут.",
"outputMode": "Режим виведення",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "Режим виведення",
"quickSettings": "Швидкі налаштування",
"quickSettingsDesc": "Основні налаштування стиснення для початку",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "Автоматичний обхід Clarity",
+ "bypassConditions": "Умови обходу",
"bypassConditionsList": "безпека, безповоротний, уточнення, чутливий до порядку",
"simpleMode": "просто",
"advancedMode": "Просунутий",
@@ -8940,9 +8951,9 @@
"ultraSettings": "Ультра налаштування",
"ultraSettingsDesc": "Семантичне стиснення на основі SLM",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "Відповідайте стисло. Зберігайте технічні терміни, код, помилки, URL-адреси та ідентифікатори.",
+ "full": "Відповідайте лаконічно й компактно. Зберігайте всю технічну суть.",
+ "ultra": "Відповідайте максимально стисло, використовуючи загальноприйняті технічні скорочення. Зберігайте точні символи."
}
},
"translator": {
@@ -8989,7 +9000,7 @@
"translationPathHubSpoke": "{source} → OpenAI (середній) → {target}",
"translationPathDirect": "{source} → {target} (прямий перекладач)",
"translationPathPassthrough": "Той же формат — переклад не потрібен",
- "openaiIntermediatePanel": "OpenAI Intermediate",
+ "openaiIntermediatePanel": "OpenAI Проміжний",
"autoFeaturesTitle": "Що OmniRoute робить автоматично",
"autoFeaturesCount": "8 особливостей",
"featureReasoningCache": "Кеш міркувань",
@@ -9126,7 +9137,7 @@
"clientRequestDescription": "Тіло запиту, як його надіслав би ваш клієнт",
"formatDetected": "Виявлено формат",
"formatDetectedDescription": "OmniRoute автоматично визначає формат API зі структури запиту",
- "openaiIntermediate": "OpenAI Intermediate",
+ "openaiIntermediate": "OpenAI Проміжний",
"openaiIntermediateDescription": "Усі формати спочатку нормалізуються до формату OpenAI (універсальний міст)",
"providerFormat": "Формат постачальника",
"providerFormatDescription": "Формат OpenAI перекладається на рідний формат постачальника",
@@ -9153,7 +9164,7 @@
"loadToolSample": "Завантажити зразок виклику інструменту",
"transformToResponses": "Перетворення на відповіді",
"rawChatSseInput": "Необроблені завершення чату SSE",
- "transformedResponsesSse": "Transformed Responses API SSE",
+ "transformedResponsesSse": "Перетворений SSE Responses API",
"noResultsYet": "Результатів ще немає",
"transformedEvents": "Трансформовані події",
"uniqueEventTypes": "Унікальні типи подій",
@@ -9273,16 +9284,16 @@
"kiloPassRemaining": "Залишилось",
"kiloPassRenews": "Оновлюється через {count} дн.",
"kiloPassUsageLabel": "Використання в цьому місяці",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
+ "kimiExtraUsageCredits": "Додаткові кредити на використання",
+ "kimiExtraUsage": "Додаткове використання",
+ "kimiExtraUsageEnabled": "Увімкнено",
+ "kimiExtraUsageDisabled": "Вимкнено",
+ "kimiExtraUsageFrozen": "Заморожено",
+ "kimiExtraUsageUnavailable": "Недоступно",
+ "kimiMonthlyUsed": "Використано цього місяця",
+ "kimiMonthlyLimit": "Місячний ліміт",
+ "kimiMonthlyLimitUnlimited": "Без обмежень",
+ "kimiAdditionalCredits": "Додаткові кредити",
"loggerTab": "Лісоруб",
"proxyTab": "Проксі",
"budgetManagement": "Управління бюджетом",
@@ -9320,7 +9331,7 @@
"circuitBreakers": "Автоматичні вимикачі",
"lockedIPs": "Заблоковані IP-адреси",
"lockoutsAutoRefreshHint": "Блокування обмеження швидкості для кожної моделі • Автоматичне оновлення 10 с",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
+ "lockedCount": "{count, plural, one {# заблоковано} other {# заблоковано}}",
"timeLeft": "Залишилося {time}",
"howItWorks": "Як це працює",
"howItWorksSubtitle": "Дізнайтеся, як оцінки підтверджують ваші відповіді LLM",
@@ -9364,12 +9375,12 @@
"modelsUnderTest": "Тестуються моделі",
"searchSuitesPlaceholder": "Пошук комплектів...",
"passSuffix": "пропуск",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
+ "casesCount": "{count, plural, one {# випадок} other {# випадків}}",
"runEval": "Запустіть Eval",
"runAllSuites": "Запустити все",
"runAllRunning": "Виконується все...",
"runAllProgress": "Виконується {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# набір не пройдено} other {# наборів не пройдено}}",
"runAllCompleted": "Виконано {suites} пакетів — {passed} пройдено, {failed} не виконано",
"runAllCompletedWithFailures": "Запустив {completed} пакетів; {failedSuites} не вдалося виконати",
"runningProgress": "Виконується {current}/{total}...",
@@ -9419,7 +9430,7 @@
"providerLimits": "Обмеження постачальника",
"noProviders": "Немає підключених постачальників",
"connectProvidersForQuota": "Підключайтеся до постачальників за допомогою OAuth, щоб відстежувати обмеження квоти та використання API.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "accountsCount": "{count, plural, one {# обліковий запис} other {# облікових записів}}",
"filteredFromCount": "(відфільтровано з {count})",
"autoRefresh": "Автооновлення",
"refreshAll": "Оновити все",
@@ -9461,7 +9472,7 @@
"tierPro": "Pro",
"tierPlus": "Плюс",
"tierFree": "безкоштовно",
- "tierLite": "Lite",
+ "tierLite": "Полегшений",
"tierUnknown": "Невідомий",
"statTotal": "Усього",
"statCritical": "Критично",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "Використати кредит",
"resetCreditRedeemed": "Скидання використано",
"resetCreditRedeemFailed": "Не вдалося використати кредит на скидання",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "Не вдалося зберегти набір",
"clone": "Клон",
"exportSuite": "Експорт",
"importSuite": "Імпорт",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "Недійсний JSON набору оцінок",
"suiteBuilderCloneSuffix": "копія",
"suiteBuilderImportedSuite": "Імпортна Люкс",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
+ "scorecardTitle": "Таблиця оцінок",
+ "evalApiKey": "Ключ API",
+ "scorecardPassRate": "Частка успішних проходжень",
+ "targetTypeModel": "Модель",
+ "actualOutputLabel": "Фактичний результат",
+ "evalTargetHint": "Виберіть модель або комбінацію для оцінювання.",
+ "suiteBuilderDeleted": "Набір успішно видалено",
+ "suiteBuilderCaseCardHint": "Визначте вхідний запит і критерії очікуваного результату.",
"nextResetUtc": "Наступне скидання (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardHint": "Сукупні показники успішності для всіх наборів оцінювання.",
+ "suiteLatestRunsHint": "Останні запуски оцінювання для цього набору.",
+ "saving": "Збереження",
+ "suiteBuilderCaseModelLabel": "Модель (необов’язково)",
+ "evalControlsTitle": "Параметри оцінювання",
+ "suiteBuilderEditTitle": "Редагувати набір оцінювання",
+ "suiteBuilderCaseStrategyLabel": "Стратегія перевірки",
+ "notifySelectDifferentCompareTarget": "Виберіть іншу ціль для порівняння",
+ "recentRunsHint": "Показано останні запуски оцінювання. Натисніть на запуск, щоб переглянути докладні результати.",
+ "evalCompareHint": "За бажанням порівняйте результати з другою ціллю.",
+ "suiteBuilderCaseInvalid": "Цей тестовий випадок містить помилки перевірки. Виправте їх перед збереженням.",
+ "historyEmpty": "Історії оцінювань ще немає",
+ "suiteBuilderUpdated": "Набір успішно оновлено",
+ "resetInterval": "Інтервал скидання",
+ "suiteBuilderCreateTitle": "Створити набір оцінювання",
+ "activePeriodSpend": "Витрати за активний період",
+ "evalApiKeyHint": "Виберіть API-ключ для запитів оцінювання.",
+ "evalCompareOptional": "Порівняти (необов’язково)",
+ "suiteBuilderDeleteFailed": "Не вдалося видалити набір",
+ "suiteBuilderCaseSystemPromptPlaceholder": "Необов’язкові системні інструкції...",
+ "scorecardCases": "Тестові випадки",
+ "runCompletedWithScore": "Оцінювання завершено — показник успішності: {score}%",
+ "suiteBuilderCustomBadge": "Власний",
+ "targetSuiteDefaults": "Типові налаштування набору",
+ "suiteBuilderDeleteConfirm": "Ви впевнені, що хочете видалити цей набір? Цю дію неможливо скасувати.",
+ "suiteBuilderNameLabel": "Назва набору",
+ "scorecardSuites": "Набори",
+ "evalCompareTarget": "Ціль для порівняння",
+ "suiteBuilderCaseModelPlaceholder": "напр., gpt-4o-mini",
+ "evalControlsHint": "Налаштуйте ціль оцінювання та API-ключ, а потім запустіть набори, щоб перевірити якість моделі.",
+ "recentRunsTitle": "Останні запуски",
+ "suiteBuilderCaseSystemPromptLabel": "Системний запит",
+ "suiteBuilderCaseExpectedPlaceholder": "напр., def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "напр. визначення фібоначчі",
"suiteBuilderCaseExpectedPlaceholderExact": "Вставте точну очікувану відповідь",
"suiteBuilderCaseExpectedPlaceholderRegex": "напр. ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "Використовуйте регулярний вираз JavaScript без похилих рис.",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "напр., набір оцінювання якості коду",
+ "suiteBuilderAddCase": "Додати тестовий випадок",
+ "cancel": "Скасувати",
+ "evalTarget": "Ціль",
+ "suiteBuilderCaseNameLabel": "Назва сценарію",
+ "weeklyLimitUsd": "Тижневий ліміт (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "напр., Напишіть функцію Фібоначчі мовою Python",
+ "suiteBuilderNameRequired": "Назва набору є обов’язковою",
+ "suiteBuilderCaseUserPromptLabel": "Запит користувача",
+ "daily": "Щодня",
+ "resultErrorLabel": "Помилка",
+ "suiteBuilderBuiltInBadge": "Вбудований",
+ "suiteBuilderCaseCardTitle": "Тестовий сценарій",
"suiteBuilderDuplicateCase": "дублікат",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "напр., 50.00",
+ "suiteBuilderCaseTagsHint": "Теги, розділені комами, для впорядкування тестових сценаріїв.",
+ "notifyEvalRunFailedWithReason": "Не вдалося виконати оцінювання: {reason}",
+ "weekly": "Щотижня",
+ "runEvalRunning": "Виконується оцінювання...",
+ "delete": "Видалити",
+ "resetTimeUtc": "Час скидання (UTC)",
+ "evalApiKeyAuto": "Автоматично (використовувати значення за замовчуванням)",
+ "suiteBuilderDescriptionPlaceholder": "Необов’язковий опис того, що перевіряє цей набір...",
+ "targetComparisonTitle": "Порівняння цілей",
+ "save": "Зберегти",
+ "suiteBuilderCreated": "Набір успішно створено",
+ "suiteLatestRuns": "Останні запуски",
+ "suiteBuilderCaseExpectedLabel": "Очікуване значення",
+ "historyLatency": "Затримка",
+ "suiteBuilderCaseTagsPlaceholder": "напр., програмування, python",
+ "targetTypeCombo": "Комбінований",
+ "scorecardPassed": "Пройдено",
+ "suiteBuilderCaseTagsLabel": "Теги",
+ "suiteBuilderNewSuite": "Новий набір",
+ "notifyEvalLoadFailed": "Не вдалося завантажити дані оцінювання",
+ "notConfigured": "Не налаштовано",
+ "suiteBuilderCaseNamePlaceholder": "напр., Тест функції Фібоначчі на Python",
+ "intervalLabel": "Інтервал",
+ "suiteBuilderCreateAction": "Створити набір",
+ "suiteBuilderCasesHint": "Кожен сценарій надсилає запит і перевіряє відповідь.",
+ "suiteBuilderUpdatedAt": "Оновлено",
+ "errorBadge": "Помилка",
+ "suiteBuilderCasesTitle": "Тестові сценарії",
+ "edit": "Редагувати",
+ "monthly": "Щомісяця",
+ "suiteBuilderCasesRequired": "Потрібен принаймні один тестовий випадок",
+ "weeklyLimitSummary": "Підсумок тижневого ліміту бюджету",
+ "suiteBuilderDescriptionLabel": "Опис",
+ "targetComparisonHint": "Паралельне порівняння результатів оцінювання між цільовими об’єктами.",
+ "compareCompletedWithScore": "Порівняння завершено — частка успішних результатів: {score}%",
+ "staleQuotaTooltip": "Останнє оновлення не вдалося — показано кешовані дані",
"quotaThresholdLabel": "Залишилося хв",
"quotaCutoffsColumnHelp": "Зупинити запити, коли залишок квоти зменшиться до цього відсотка або нижче.",
"quotaCutoffsButtonDefault": "За замовчуванням",
@@ -9618,7 +9629,7 @@
"accountActivated": "Обліковий запис активовано",
"accountDeactivated": "Обліковий запис деактивовано",
"toggleActiveFailed": "Не вдалося оновити статус облікового запису",
- "quotaCutoffsTitle": "Quota cutoffs for {name} ({provider})",
+ "quotaCutoffsTitle": "Порогові значення квоти для {name} ({provider})",
"quotaCutoffsExplainer": "Override the minimum remaining quota percentage where this account stops being selected for each quota window. Залиште поле порожнім, щоб успадкувати постачальника за замовчуванням.",
"quotaCutoffsDefaultHint": "Мінімальна кількість за умовчанням, що залишилася: {default}%",
"quotaCutoffsResetAll": "Скинути все",
@@ -9773,7 +9784,7 @@
"systemMonitor": {
"metricsAriaLabel": "Системні метрики",
"memory": "Пам'ять",
- "memoryShort": "mem",
+ "memoryShort": "пам’ять",
"uptime": "Час безвідмовної роботи",
"ariaLabel": "Моніторинг системи",
"title": "Монітор системи",
@@ -9812,8 +9823,8 @@
"signIn": "Увійдіть",
"enterPassword": "Введіть свій пароль, щоб продовжити",
"password": "Пароль",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
+ "unifiedProxy": "Уніфікований проксі-сервер AI API",
+ "unifiedAiApiProxy": "Уніфікований проксі-сервер AI API",
"unifiedAiApiProxyDesc": "Направляйте запити до кількох постачальників штучного інтелекту через одну кінцеву точку. Вбудоване балансування навантаження, відновлення після відмови та відстеження використання.",
"passwordNotEnabled": "Захист паролем не ввімкнено",
"loading": "Завантаження...",
@@ -9859,7 +9870,7 @@
"backToLogin": "Назад до входу",
"forgotPassword": "Забули пароль?",
"continueWithOidc": "Продовжити з OIDC",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
+ "defaultPasswordHint": "Пароль за замовчуванням: CHANGEME (якщо не було задано INITIAL_PASSWORD)",
"Authorization": "Авторизація",
"Content-Disposition": "Зміст-диспозиція",
"waitingForAuthorization": "Очікування авторизації...",
@@ -9868,10 +9879,10 @@
"waitingForAntigravityAuthorization": "Очікування авторизації Antigravity...",
"waitingForQoderAuthorization": "Очікування авторизації Qoder...",
"exchangingCodeForTokens": "Обмін коду на токени...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "nodeIncompatibleTitle": "Несумісна версія Node.js",
+ "nodeIncompatibleDesc": "Ви використовуєте Node.js {version}, що не відповідає політиці OmniRoute щодо підтримуваного безпечного середовища виконання. Використовуйте виправлений LTS-випуск Node.js 20.x або 22.x.",
+ "nodeIncompatibleFixLabel": "Виправлення: установіть виправлений LTS-випуск Node.js 22",
+ "nodeIncompatibleHint": "Для OmniRoute потрібна Node.js 22.22.2+ (22.x LTS) або 24.0.0+ (24.x LTS). Рекомендовано Node 24 LTS.",
"resetViaAppDataTitle": "Скинути через дані програми",
"resetViaAppDataDescription": "Видаліть файл налаштувань з каталогу даних програми, щоб скинути свій пароль:",
"quitDesktopApp": "Повністю вийти з настільного додатку OmniRoute",
@@ -10027,10 +10038,10 @@
"supportedProvidersToc": "Провайдери",
"commonUseCases": "Загальні випадки використання",
"clientCompatibility": "Сумісність клієнта",
- "protocolsToc": "Protocols",
+ "protocolsToc": "Протоколи",
"apiReference": "Довідник API",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
+ "managementApiReference": "Довідник Management API",
+ "managementApiDescription": "Кінцеві точки автоматизації для реєстру проксі-серверів, призначення областей і міграції застарілих проксі-серверів.",
"method": "метод",
"path": "шлях",
"notes": "Примітки",
@@ -10059,19 +10070,19 @@
"quickStartStep4Prefix": "Наведіть свій клієнт IDE або API на",
"quickStartStep4Suffix": "Використовуйте, наприклад, префікс провайдера",
"deploySetupTitle": "Посібник із налаштування",
- "deploySetupText": "Step-by-step installation, environment configuration, and first-run walkthrough for OmniRoute.",
+ "deploySetupText": "Покрокове встановлення, налаштування середовища та інструкція з першого запуску OmniRoute.",
"deployElectronTitle": "Електронний робочий стіл",
- "deployElectronText": "Run OmniRoute as a native desktop application on Windows, macOS, and Linux.",
+ "deployElectronText": "Запускайте OmniRoute як нативний настільний застосунок у Windows, macOS і Linux.",
"deployDockerTitle": "Докер",
"deployDockerText": "Контейнерне розгортання з Docker Compose; готові до виробництва стеки та Kubernetes.",
"deployVmTitle": "Віртуальна машина",
"deployVmText": "Саморозміщення на будь-якій віртуальній машині Linux. Includes systemd unit, log rotation, and backup tooling.",
"deployFlyTitle": "Fly.io",
- "deployFlyText": "Deploy to Fly.io edge runtime with one fly.toml and a single deploy command.",
+ "deployFlyText": "Розгорніть у середовищі виконання Fly.io edge за допомогою одного файлу fly.toml і єдиної команди розгортання.",
"deployPwaTitle": "PWA",
- "deployPwaText": "Install OmniRoute as a Progressive Web App on Android, iOS, and desktop browsers.",
+ "deployPwaText": "Установіть OmniRoute як прогресивний вебзастосунок на Android, iOS і в настільних браузерах.",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
+ "deployTermuxText": "Запускайте OmniRoute на Android без графічного інтерфейсу через Termux. Отримуйте доступ до панелі керування з мобільного браузера.",
"featureRoutingTitle": "Маршрутизація з кількома провайдерами",
"featureRoutingText": "Направляйте запити до 30+ постачальників штучного інтелекту через єдину кінцеву точку, сумісну з OpenAI. Підтримує чат, відповіді, аудіо та API зображень.",
"featureCombosTitle": "Комбо і балансування",
@@ -10117,33 +10128,33 @@
"clientClaudeBullet1Middle": "(Клод) або",
"clientClaudeBullet1Suffix": "(Антигравітація) префікс.",
"clientWindsurfTitle": "Віндсерфінг",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
+ "clientWindsurfBullet1": "Використовуйте OmniRoute як сумісну з OpenAI базову URL-адресу та зберігайте явні префікси провайдерів для детермінованої маршрутизації.",
+ "clientWindsurfBullet2": "Спрямовуйте моделі на `/v1/chat/completions` для загального трафіку та зберігайте `/v1/responses` для потоків у стилі Codex.",
"clientWindsurfBullet3": "Використовуйте Інформаційну панель -> Інструменти CLI, щоб отримати готовий посібник з налаштування Windsurf.",
"clientClineTitle": "Клайн",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "Cline найкраще працює з явними префіксами провайдера/моделі, щоб маршрутизатору ніколи не доводилося вгадувати серверну систему.",
+ "clientClineBullet2": "Використовуйте `/v1/chat/completions` для моделей загального призначення та повторно використовуйте ту саму базову URL-адресу OmniRoute для різних облікових записів.",
+ "clientClineBullet3": "Скористайтеся панеллю керування Providers, щоб перевірити OAuth/API key перед налагодженням проблем середовища виконання Cline.",
"clientKimiTitle": "Кодування Кімі",
"clientKimiBullet1": "Використовуйте OmniRoute як стабільну базову URL-адресу під час ротації облікових записів або комбінацій провайдерів.",
"clientKimiBullet2": "Віддавайте перевагу префіксованим моделям у потоках кодування, щоб резервний і контрольний слід залишався явним.",
"clientKimiBullet3": "Використовуйте `/v1/responses`, якщо вам потрібна власна маршрутизація у стилі відповідей для клієнтів, що використовують інструменти.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "protocolsTitle": "Протоколи: MCP і A2A",
+ "protocolsDescription": "На додаток до сумісних з OpenAI API, OmniRoute надає два операційні протоколи: MCP для виконання інструментів і A2A для робочих процесів між агентами.",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "Використовуйте MCP через stdio, щоб клієнти могли виявляти та викликати інструменти OmniRoute із можливістю аудиту.",
+ "protocolMcpStep1": "Запустіть транспорт MCP за допомогою `omniroute --mcp`.",
+ "protocolMcpStep2": "Налаштуйте свій клієнт MCP на використання транспорту stdio.",
+ "protocolMcpStep3": "Викличте `omniroute_get_health` і `omniroute_list_combos`, щоб перевірити з’єднання.",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
+ "protocolA2aDesc": "Використовуйте A2A JSON-RPC для синхронного надсилання завдань або через потокове передавання SSE.",
+ "protocolA2aStep1": "Перегляньте `/.well-known/agent.json` для виявлення агента.",
+ "protocolA2aStep2": "Надсилайте запити `message/send` або `message/stream` до `POST /a2a`.",
+ "protocolA2aStep3": "Керуйте життєвим циклом завдань за допомогою `tasks/get` і `tasks/cancel`.",
+ "protocolTroubleshootingTitle": "Усунення несправностей протоколу",
+ "protocolTroubleshooting1": "Якщо статус MCP — офлайн, переконайтеся, що процес stdio запущено, а файл сигналів активності оновлюється.",
+ "protocolTroubleshooting2": "Якщо завдання A2A залишаються у стані `working`, перевірте `/api/a2a/tasks/:id` і потокові події на наявність кінцевого стану.",
+ "protocolTroubleshooting3": "Використовуйте `/dashboard/mcp` і `/dashboard/a2a` для оперативного керування та перегляду аудиту.",
"endpointChatNote": "Кінцева точка чату, сумісна з OpenAI (за замовчуванням).",
"endpointResponsesNote": "Кінцева точка API відповідей (Codex, o-series).",
"endpointModelsNote": "Каталог моделей для всіх підключених провайдерів.",
@@ -10154,13 +10165,13 @@
"endpointRewriteChatNote": "Помічник перезапису для клієнтів без /v1.",
"endpointRewriteResponsesNote": "Переписати помічник для відповідей без /v1.",
"endpointRewriteModelsNote": "Переписати помічник для виявлення моделі без /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
+ "mgmtProxiesListNote": "Переглянути збережені елементи реєстру проксі (підтримується пагінація).",
+ "mgmtProxiesCreateNote": "Створити багаторазово використовуваний елемент проксі в реєстрі.",
+ "mgmtProxiesHealthNote": "Отримати метрики справності за 24 години або ковзний період для кожного збереженого проксі з журналів проксі.",
+ "mgmtProxiesBulkAssignNote": "Призначити або вилучити один проксі для багатьох ідентифікаторів областей одним запитом.",
+ "mgmtAssignmentsListNote": "Переглянути призначення проксі за областю, scope_id або proxy_id.",
+ "mgmtAssignmentsUpdateNote": "Призначити або вилучити проксі для глобальної області, постачальника, облікового запису чи комбінації.",
+ "mgmtLegacyMigrationNote": "Імпортувати застарілі мапи proxyConfig у призначення реєстру.",
"modelPrefixesDescriptionStart": "Використовуйте префікс постачальника перед назвою моделі, щоб маршрутизувати до певного постачальника. приклад:",
"modelPrefixesDescriptionEnd": "маршрути до GitHub Copilot.",
"provider": "Провайдер",
@@ -10194,25 +10205,25 @@
"mgmtPayloadRulesGetNote": "Отримати правила перетворення корисного навантаження.",
"mgmtPayloadRulesUpdateNote": "Оновити правила перетворення корисного навантаження.",
"mcpToolsTitle": "Інструменти MCP",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
+ "mcpToolsDescription": "OmniRoute надає {count} інструментів через Model Context Protocol для оркестрації агентів.",
"mcpToolsCount": "інструменти {count}",
"mcpToolsToc": "Інструменти MCP",
"mcpToolsRoutingTitle": "Маршрутизація та виявлення",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
+ "mcpToolsRoutingDesc": "Перевірки справності, керування комбінаціями, моніторинг квот, звітування про витрати та доступ до каталогу моделей.",
"mcpToolsOperationsTitle": "Операції та стратегія",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
+ "mcpToolsOperationsDesc": "Симуляція маршрутизації, обмеження бюджету, перемикання стратегій, профілі стійкості та метрики постачальників.",
"mcpToolsCacheTitle": "Керування кешем",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "mcpToolsCacheDesc": "Переглядати статистику кешу та очищати семантичні кеші або кеші сигнатур.",
"mcpToolsCompressionTitle": "Компресійні двигуни",
- "mcpToolsCompressionDesc": "Configure RTK/Brotli compression, swap engines, and inspect compression analytics by combo.",
+ "mcpToolsCompressionDesc": "Налаштовувати стиснення RTK/Brotli, змінювати рушії та переглядати аналітику стиснення за комбінаціями.",
"mcpToolsOneProxyTitle": "1Проксі / Тунелі",
- "mcpToolsOneProxyDesc": "Manage outbound proxies, rotate residential IPs, and inspect proxy health.",
+ "mcpToolsOneProxyDesc": "Керувати вихідними проксі, виконувати ротацію резидентських IP-адрес і перевіряти справність проксі.",
"mcpToolsMemoryTitle": "Пам'ять",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
+ "mcpToolsMemoryDesc": "Шукати, додавати й очищати записи постійної пам’яті розмов.",
"mcpToolsSkillsTitle": "Навички",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
+ "mcpToolsSkillsDesc": "Переглядати, вмикати, виконувати й відстежувати виконання користувацьких навичок.",
"featureAutoComboTitle": "Авто-комбо",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
+ "featureAutoComboText": "Автоматично створювати оптимізовані комбінації на основі підключених постачальників, шаблонів використання та можливостей моделей.",
"featureSearchTitle": "Пошук в Інтернеті",
"featureSearchText": "Інтегрований веб-пошук із 5 постачальниками (Serper, Brave, Exa, Tavily, Perplexity), включаючи аналітику та відстеження витрат.",
"featureMemoryTitle": "Система пам'яті",
@@ -10221,7 +10232,7 @@
"featureSkillsText": "Розширювана система навичок із вбудованими та користувальницькими навичками, виконанням ізольованого середовища, перехопленням запитів і впровадженням контексту.",
"featureAcpTitle": "Зв'язок агента",
"featureAcpText": "Реєстр Agent Communication Protocol (ACP) для керування робочими процесами між агентами та оркестровки інструментів.",
- "protocolAcpTitle": "ACP (Agent Communication)",
+ "protocolAcpTitle": "ACP (комунікація агентів)",
"protocolAcpDesc": "Реєструйте агентів і керуйте ними через реєстр ACP для спілкування між агентами та спільного використання інструментів.",
"protocolAcpStep1": "Перейдіть до Інформаційної панелі → Агенти, щоб переглянути зареєстрованих агентів ACP.",
"protocolAcpStep2": "Зареєструйте нових агентів із можливостями та конфігурацією кінцевої точки.",
@@ -10332,35 +10343,35 @@
"termsSection6Text": "OmniRoute — це програмне забезпечення з відкритим кодом. Ви можете вільно перевіряти, змінювати та поширювати його відповідно до умов його ліцензії."
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI-агенти",
+ "description": "Виявляйте встановлені у вашій системі CLI-агенти. Додавайте користувацькі агенти для автоматичного виявлення.",
+ "refresh": "Оновити",
+ "installed": "Встановлено",
+ "notFound": "Не знайдено",
+ "builtIn": "Вбудований",
+ "custom": "Користувацький",
+ "remove": "Видалити",
+ "addCustomAgent": "Додати користувацького агента",
+ "addCustomAgentDesc": "Зареєструйте будь-який інструмент CLI для виявлення. Він автоматично скануватиметься під час оновлення.",
+ "agentName": "Назва агента",
+ "binaryName": "Назва виконуваного файлу",
+ "versionCommand": "Команда версії",
+ "spawnArgs": "Аргументи запуску",
+ "addAgent": "Додати агента",
+ "scanning": "Сканування системи на наявність CLI-агентів...",
+ "opencodeIntegration": "Інтеграція з OpenCode",
+ "opencodeDetected": "Виявлено opencode {version}",
+ "opencodeDesc": "Згенеруйте готовий до використання файл {configFile} із базовою URL-адресою OmniRoute та всіма доступними моделями — помістіть його в кореневий каталог проєкту й виконайте {command}.",
+ "downloadConfig": "Завантажити {file}",
+ "downloaded": "Завантажено!",
+ "setupGuideTitle": "Посібник із налаштування",
+ "openCliTools": "Відкрити інструменти CLI",
+ "setupGuideDetectCliTitle": "Виявити встановлені CLI",
+ "setupGuideDetectCliDesc": "Після встановлення або оновлення CLI натисніть «Оновити», щоб OmniRoute повторно просканував виконувані файли та версії.",
+ "setupGuideCustomAgentTitle": "Зареєструвати власний виконуваний файл",
+ "setupGuideCustomAgentDesc": "Скористайтеся «Додати власного агента», якщо вашого CLI немає у вбудованому списку. Укажіть назву виконуваного файла та команду версії.",
+ "setupGuideCommandMissingTitle": "Виправити помилку «command not found»",
+ "setupGuideCommandMissingDesc": "Переконайтеся, що команда CLI доступна в PATH, відкрийте новий сеанс термінала та повторно натисніть «Оновити».",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10534,101 +10545,101 @@
}
},
"cache": {
- "title": "Cache Management",
+ "title": "Керування кешем",
"description": "Monitor and manage semantic response cache, hit rates, and token savings.",
- "refresh": "Refresh",
+ "refresh": "Оновити",
"clearAll": "Clear All",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "memoryEntries": "Записи в пам’яті",
+ "memoryEntriesSub": "LRU у пам’яті",
+ "dbEntries": "Записи в базі даних",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "Влучання в кеш",
+ "cacheHitsSub": "із {total} загалом",
+ "tokensSaved": "Заощаджено токенів",
+ "tokensSavedSub": "Оцінка на основі влучань",
+ "hitRate": "Частка влучань",
+ "performance": "Продуктивність кешу",
+ "autoRefresh": "Автоматично оновлюється кожні {seconds} с",
+ "hits": "Влучання",
+ "misses": "Промахи",
+ "total": "Усього",
+ "behavior": "Поведінка кешу",
+ "behaviorDeterministic": "Кешуються лише непотокові запити з temperature=0.",
+ "behaviorBypass": "Обхід за допомогою заголовка {header}.",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
+ "behaviorTtl": "TTL за замовчуванням: 30 хвилин. Налаштування через {envVar}.",
+ "idempotency": "Рівень ідемпотентності",
+ "activeDedupKeys": "Активні ключі дедуплікації",
+ "dedupWindow": "Вікно дедуплікації",
"clearSuccess": "Cache cleared. {count} expired entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "clearError": "Не вдалося очистити кеш.",
+ "unavailable": "Кеш недоступний",
+ "unavailableDesc": "Не вдалося отримати статистику кешу. Переконайтеся, що сервер запущено.",
"loadingCacheAria": "Завантаження кешу",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
+ "promptCache": "Кешування промптів (на стороні провайдера)",
+ "semanticCache": "Семантичний кеш",
+ "promptCacheSectionDesc": "Показує активність кешування промптів на стороні провайдера з історії використання, щоб ви могли бачити, де активне керування кешем і який обсяг вхідних даних використовується повторно.",
+ "promptTrendDesc": "Погодинна кількість запитів, охоплення кешем і обсяг читання з кешу за останні 24 години.",
+ "cachedRequests": "Кешовані запити",
+ "cachedRequests24h": "Кешовані запити (24 год)",
+ "cacheHitRate": "Частка влучань у кеш",
+ "cacheRate": "Рівень кешування",
+ "cacheRateDesc": "від загальної кількості запитів",
"cachedTokens": "Cached Tokens",
"cacheCreationTokens": "Cache Creation Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
+ "cacheMetrics": "Показники кешування промптів",
+ "withCacheControl": "З керуванням кешем",
"cachedTokensRead": "Cached Tokens (Read)",
"cacheCreationWrite": "Cache Creation (Write)",
- "cacheReuseRatio": "Cache Reuse Ratio",
+ "cacheReuseRatio": "Коефіцієнт повторного використання кешу",
"cacheReuseRatioDesc": "Cached tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "estCostSaved": "Орієнт. заощаджено",
+ "lastUpdated": "Останнє оновлення",
+ "hoursTracked": "годин відстежено",
+ "busiestHour": "Найактивніша година",
+ "peakCacheRate": "Піковий рівень кешування",
+ "trendHour": "Година",
+ "activityVolume": "Активність",
+ "requestsShort": "запитів",
+ "inputShort": "Вхідні",
+ "cachedShort": "Кешовано",
+ "writeShort": "Запис",
+ "resetting": "Скидання...",
+ "resetMetrics": "Скинути показники",
+ "byProvider": "Розподіл за провайдерами",
+ "providerCacheRateDesc": "Кожен провайдер показує загальну кількість вхідних токенів, токенів читання з кешу й токенів запису в кеш, щоб ви могли звірити коефіцієнт повторного використання з необробленими підсумковими даними.",
"provider": "Provider",
- "requests": "Requests",
+ "requests": "Запити",
"inputTokens": "Input Tokens",
"cachedTokensCol": "Cached",
"cacheCreation": "Creation",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "trend24h": "Динаміка кешування (24 год)",
+ "peakCached": "Пікове кешування",
+ "cached": "Кешовано",
+ "overview": "Огляд",
"tableProvider": "Провайдер",
"tableModel": "Модель",
"performanceTitle": "Продуктивність",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "Власний детермінований кеш відповідей OmniRoute. Коли його ввімкнено, повторні непотокові запити з temperature=0 можуть оброблятися локально без звернення до зовнішнього провайдера.",
+ "semanticCacheDisabledDesc": "Семантичний кеш вимкнено. OmniRoute не використовуватиме локальні відповіді повторно, доки ви не ввімкнете його знову в налаштуваннях.",
+ "semanticEntriesDesc": "Збережені записи семантичного кешу, які наразі містяться в SQLite. Активність кешування промптів на стороні провайдера тут не відображається.",
+ "searchEntries": "Пошук записів...",
+ "search": "Пошук",
+ "loading": "Завантаження...",
+ "entriesLoadError": "Не вдалося завантажити записи семантичного кешу.",
+ "noEntries": "Записів кешу не знайдено",
+ "noPromptCacheData": "Активності кешу промптів на стороні провайдера ще не зафіксовано.",
+ "noTrendData": "За останні 24 години активності кешу промптів не зафіксовано.",
+ "signature": "Підпис",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "Створено",
+ "expires": "Термін дії",
+ "actions": "Дії",
+ "deduplicatedRequests": "Дедупліковані запити",
+ "savedCalls": "Заощаджені виклики API",
+ "totalProcessed": "Усього оброблено запитів",
+ "disabled": "Вимкнено",
+ "totalRequests": "Усього запитів",
"reasoningCache": "Міркування Повторення",
"reasoningCacheDesc": "Зберігає модель мислення для потоків виклику багатооборотного інструменту",
"reasoningEntries": "Активні записи",
@@ -10665,7 +10676,7 @@
"minutesAgo": "{minutes} хв тому",
"hoursAgo": "{hours} год тому",
"daysAgo": "{days} дн тому",
- "entries": "Entries"
+ "entries": "Записи"
},
"proxyConfigModal": {
"levelGlobal": "Глобальний",
@@ -10679,7 +10690,7 @@
"inheritingFrom": "Успадкування від",
"source": "Джерело",
"savedProxy": "Збережений проксі",
- "custom": "Custom",
+ "custom": "Власний",
"selectSavedProxyPlaceholder": "Виберіть збережений проксі...",
"proxyType": "Тип проксі",
"host": "Хост",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Підключіть Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Увійти через Cursor",
+ "tabImport": "Імпортувати токен",
+ "loginDescription": "Відкриває сторінку входу Cursor у браузері. Працює в Docker — підтвердьте в браузері хоста, а потім поверніться сюди.",
+ "loginWithCursor": "Увійти через Cursor",
+ "startingLogin": "Запуск…",
+ "waitingApproval": "Очікування підтвердження входу в Cursor…",
+ "openUrlHint": "Якщо браузер не відкрився:",
+ "openLoginLink": "Відкрити сторінку входу",
+ "cancelLogin": "Скасувати вхід",
"autoDetecting": "Автоматичне визначення токенів...",
"readingFromCursor": "Читання з Cursor IDE або cursor-agent",
"tokensAutoDetected": "Маркери успішно автоматично виявлені в Cursor IDE!",
"cursorNotDetected": "Курсор IDE не виявлено. Вставте маркер вручну.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Працюєте в Docker? Радимо скористатися входом через Cursor. Автоімпорт з IDE та cursor-agent зазвичай недоступні всередині контейнера. Див. docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Маркер доступу",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Токен оновлення",
+ "refreshTokenPlaceholder": "Необов’язково — дає змогу автоматично оновлювати токен",
"required": "*",
"accessTokenPlaceholder": "Маркер доступу буде заповнено автоматично...",
"machineId": "ID машини",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "Помилка автоматичного визначення маркерів",
"errorEnterToken": "Будь ласка, введіть маркер доступу",
"errorImportFailed": "Помилка імпорту",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Не вдалося розпочати вхід через Cursor",
+ "errorLoginPoll": "Не вдалося ввійти через Cursor",
+ "errorLoginTimeout": "Час очікування входу через Cursor минув — спробуйте ще раз"
},
"pricingModal": {
"title": "Конфігурація ціни",
@@ -10839,9 +10850,9 @@
"selectProxy": "Вибрати {name}",
"title": "Title",
"description": "Description",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
+ "importLegacy": "Імпортувати застарілі дані",
+ "bulkAssign": "Масове призначення",
+ "addProxy": "Додати проксі",
"loading": "Loading",
"noProxies": "No Proxies",
"tableName": "Table Name",
@@ -10850,9 +10861,9 @@
"tableHealth": "Table Health",
"tableUsage": "Table Usage",
"tableActions": "Table Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
+ "test": "Тест",
+ "edit": "Редагувати",
+ "delete": "Видалити",
"modalCreateTitle": "Modal Create Title",
"modalEditTitle": "Modal Edit Title",
"labelName": "Label Name",
@@ -10902,7 +10913,7 @@
"errorBulkFailed": "Error Bulk Failed",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
+ "failed": "Не вдалося",
"successRate": "{rate}% успіху",
"avgLatency": "{latency} мс в середньому",
"assignmentsCount": "{count} завдань",
@@ -10938,7 +10949,7 @@
"batchSelectedCount": "{count} вибрано",
"batchDeleteSelected": "Видалити {count} вибраних",
"batchActivateSelected": "Увімкнути {count} вибраних",
- "testPassed": "✓ OK",
+ "testPassed": "✓ Гаразд",
"close": "Закрити",
"managePool": "Керувати пулом",
"poolTitle": "Пул проксі та ротація",
@@ -10951,12 +10962,15 @@
"poolStrategyLabel": "Стратегія ротації",
"poolStrategyHint": "round-robin перебирає учасників по черзі; random вибирає рівномірно; sticky утримує одного учасника протягом вікна; latency-optimized вибирає найшвидшого на основі журналів.",
"poolStrategyFailed": "Не вдалося оновити стратегію ротації",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Циклічний розподіл",
"strategyRandom": "Випадковий",
- "strategySticky": "Sticky",
+ "strategySticky": "Закріплений",
"strategyLatency": "Оптимізований за затримкою",
"poolMembersLabel": "Учасники пулу ({count})",
"poolNoMembers": "У цьому пулі ще немає проксі.",
+ "poolEgressObservation": "Використано {exits, plural, one {# вихід} few {# виходи} many {# виходів} other {# виходу}} для {connections, plural, one {# з’єднання} few {# з’єднань} many {# з’єднань} other {# з’єднання}} · до {max} на одному виході · за останні {hours} год",
+ "poolEgressObservationEmpty": "За останні {hours} год трафіку не виявлено",
+ "poolEgressObservationHint": "Підраховано за журналом проксі протягом цього періоду: унікальні вихідні IP-адреси, виявлені для учасників цього пулу, і з’єднання OmniRoute, які їх використовували. «На одному виході» означає протягом цього періоду, а не одночасно. Блокування 429 для окремої IP-адреси призупиняє лише з’єднання тієї самої родини постачальників.",
"poolRemove": "Видалити",
"poolRemoveFailed": "Не вдалося видалити проксі з пулу",
"poolAddLabel": "Додати проксі",
@@ -10968,94 +10982,94 @@
"playground": {
"title": "Title",
"description": "Description",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
+ "endpoint": "Кінцева точка",
+ "provider": "Провайдер",
+ "model": "Модель",
"accountKey": "Account Key",
"autoAccounts": "Автоматично ({count} облікових записів)",
"noAccounts": "No Accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
+ "send": "Надіслати",
+ "cancel": "Скасувати",
+ "audioFile": "Аудіофайл",
"attachImages": "Attach Images",
"multipartFormData": "Multipart Form Data",
"upToImages": "Up To Images",
"selectAudioFile": "Select Audio File",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
+ "clearAll": "Очистити все",
+ "request": "Запит",
+ "response": "Відповідь",
+ "transcription": "Транскрипція",
+ "copy": "Копіювати",
"resetToDefault": "Reset To Default",
"downloadAudio": "Download Audio",
"copyText": "Copy Text",
"transcriptionHint": "Transcription Hint",
"imagesGenerated": "Згенеровано {count} зображень",
"generatedImage": "Створене зображення {index}",
- "save": "Save",
+ "save": "Зберегти",
"endpointOptions": {
"chat": "Chat",
- "responses": "Responses",
+ "responses": "Відповіді",
"completions": "Доповнення",
"images": "Images",
- "embeddings": "Embeddings",
+ "embeddings": "Вбудовування",
"speech": "Speech",
"transcription": "Transcription",
"video": "Video",
"music": "Music",
"moderations": "Модерація",
- "rerank": "Rerank",
+ "rerank": "Переранжування",
"search": "Search",
"webFetch": "Отримання веб-даних"
},
"conversationalChat": "Розмовний чат",
"clearChat": "Очистити чат",
"typeMessagePlaceholder": "Введіть повідомлення... (Shift+Enter для нового рядка)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "Чат",
+ "tabCompare": "Порівняти",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "Збірка",
+ "configPane": "Конфігурація",
+ "systemPrompt": "Системна підказка",
+ "systemPromptPlaceholder": "Ви — корисний асистент.",
+ "modelPlaceholder": "напр. openai/gpt-4o",
+ "endpointLabel": "Кінцева точка",
+ "parametersLabel": "Параметри",
+ "collapseConfig": "Згорнути панель конфігурації",
+ "expandConfig": "Розгорнути панель конфігурації",
+ "temperature": "Температура",
+ "maxTokens": "Максимальна кількість токенів",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "Штраф за наявність",
+ "frequencyPenalty": "Штраф за частоту",
"reasoningLabel": "Міркування",
"thinking": "Міркування",
"effort": "Зусилля",
"effortDefault": "За замовчуванням",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "Випадково (залиште порожнім)",
+ "presetsLabel": "Пресети",
+ "loadPreset": "Завантажити пресет",
+ "savePreset": "Зберегти пресет",
+ "noPresets": "Немає пресетів",
+ "presetNamePlaceholder": "Назва пресету",
+ "savingPreset": "Збереження…",
+ "nameRequired": "Назва обов’язкова",
+ "failedToSavePreset": "Не вдалося зберегти пресет",
+ "improvePrompt": "Покращити промпт",
+ "improvingPrompt": "Покращення…",
+ "improvePromptTitle": "Покращте свій промпт за допомогою ШІ",
+ "setModelFirst": "Спочатку виберіть модель",
"setModelInConfigFirst": "Спочатку виберіть модель на панелі конфігурації.",
"improvePromptFailed": "Не вдалося покращити промпт.",
"improvePromptAria": "Покращити промпт за допомогою ШІ",
"confirmImprovePrompt": "Підтвердити покращення промпту",
"improvePromptDescription": "Це надішле ваш поточний системний промпт до --permission-mode auto سیکیورٹی کلاسیفائر کو ایک مصنوعی اجازت کے جواب کے ساتھ شارٹ سرکٹ کریں تاکہ فال بیک راستے بند ہونے پر ناکام نہ ہوں۔ ڈیفالٹ طور پر بند ہے۔",
"classifierCompatCycle": "سائیکل: بند → خودکار → ہمیشہ",
@@ -2723,14 +2727,14 @@
"codexProfilesDescription": "ماڈل کی دریافت کے بعد ~/.codex/*.config.toml کو دوبارہ تیار کریں۔",
"claudeProfiles": "Claude Code پروفائلز",
"claudeProfilesDescription": "ماڈل کی دریافت کے بعد ہر ~/.claude/profiles/…/settings.json کو دوبارہ تیار کریں۔",
- "noActiveProviders": "No active providers",
- "noActiveProvidersDesc": "Please add and connect providers first to configure CLI tools.",
- "mapModels": "Map Models",
- "testConnection": "Test Connection",
- "connectionStatus": "Connection Status",
- "configureEndpoint": "Configure Endpoint",
- "instructions": "Instructions",
- "modelMapping": "Model Mapping",
+ "noActiveProviders": "کوئی فعال فراہم کنندہ نہیں",
+ "noActiveProvidersDesc": "CLI ٹولز کو ترتیب دینے کے لیے براہِ کرم پہلے فراہم کنندگان شامل کریں اور منسلک کریں۔",
+ "mapModels": "ماڈلز میپ کریں",
+ "testConnection": "کنکشن کی جانچ کریں",
+ "connectionStatus": "کنکشن کی حالت",
+ "configureEndpoint": "اینڈ پوائنٹ ترتیب دیں",
+ "instructions": "ہدایات",
+ "modelMapping": "ماڈل میپنگ",
"reasoningEffort": "{model} کے لیے استدلال کی کوشش",
"effortNone": "کوئی نہیں",
"effortLow": "کم",
@@ -2743,62 +2747,62 @@
"modelAliases": "ماڈل کے عرفی نام",
"addModel": "ماڈل شامل کریں",
"routeModelPlaceholder": "{model} کو روٹ کریں...",
- "baseUrl": "Base URL",
- "apiKey": "API Key",
- "configured": "Configured",
- "notConfigured": "Not configured",
- "notInstalled": "Not installed",
- "custom": "Custom",
- "unknown": "Unknown",
- "lastSavedAt": "Last saved: {date}",
- "never": "Never",
- "justNow": "just now",
- "minutesAgoShort": "{count}m ago",
- "hoursAgoShort": "{count}h ago",
- "daysAgoShort": "{count}d ago",
- "monthsAgoShort": "{count}mo ago",
- "yearsAgoShort": "{count}y ago",
- "runtimeCheckFailed": "Runtime check failed",
+ "baseUrl": "بنیادی URL",
+ "apiKey": "API کلید",
+ "configured": "ترتیب شدہ",
+ "notConfigured": "ترتیب نہیں دیا گیا",
+ "notInstalled": "انسٹال نہیں ہے",
+ "custom": "حسبِ ضرورت",
+ "unknown": "نامعلوم",
+ "lastSavedAt": "آخری بار محفوظ کیا گیا: {date}",
+ "never": "کبھی نہیں",
+ "justNow": "ابھی ابھی",
+ "minutesAgoShort": "{count} منٹ پہلے",
+ "hoursAgoShort": "{count} گھنٹے پہلے",
+ "daysAgoShort": "{count} دن پہلے",
+ "monthsAgoShort": "{count} ماہ پہلے",
+ "yearsAgoShort": "{count} سال پہلے",
+ "runtimeCheckFailed": "رن ٹائم کی جانچ ناکام ہو گئی",
"yourApiKeyPlaceholder": "your-api-key",
"modelPlaceholder": "provider/model-id",
- "configurationSaved": "Configuration saved successfully.",
- "failedToSave": "Failed to save configuration.",
- "noApiKeysCreateOne": "No API keys - Create one in Keys page",
- "defaultOmnirouteKey": "sk_omniroute (default)",
- "selectModel": "Select Model",
- "selectModelForAlias": "Select model for {alias}",
- "selectModelForTool": "Select Model for {tool}",
- "select": "Select",
- "clear": "Clear",
- "comingSoon": "Coming soon",
- "checkingRuntime": "Checking runtime status...",
- "guideOnlyIntegration": "Guide-only integration (no local runtime required)",
- "cliRuntimeDetected": "CLI runtime detected and ready",
- "cliFoundNotRunnable": "CLI found but not runnable{reason}",
- "cliRuntimeNotDetected": "CLI runtime not detected",
- "binary": "Binary",
- "configPath": "Config path",
- "configPathShort": "Config",
- "failedCheckRuntimeStatus": "Failed to check runtime status.",
- "copy": "Copy",
- "copied": "Copied",
- "copyConfig": "Copy Config",
- "saveConfig": "Save Config",
- "selectionSaved": "Selection saved",
- "guide": "Guide",
- "detected": "Detected",
- "notReady": "Not ready",
- "active": "Active",
- "inactive": "Inactive",
+ "configurationSaved": "کنفیگریشن کامیابی سے محفوظ ہو گئی۔",
+ "failedToSave": "کنفیگریشن محفوظ نہیں ہو سکی۔",
+ "noApiKeysCreateOne": "کوئی API کلید نہیں — Keys صفحے پر ایک بنائیں",
+ "defaultOmnirouteKey": "sk_omniroute (طے شدہ)",
+ "selectModel": "ماڈل منتخب کریں",
+ "selectModelForAlias": "{alias} کے لیے ماڈل منتخب کریں",
+ "selectModelForTool": "{tool} کے لیے ماڈل منتخب کریں",
+ "select": "منتخب کریں",
+ "clear": "صاف کریں",
+ "comingSoon": "جلد آ رہا ہے",
+ "checkingRuntime": "رن ٹائم کی حالت جانچی جا رہی ہے...",
+ "guideOnlyIntegration": "صرف رہنمائی پر مبنی انضمام (مقامی رن ٹائم درکار نہیں)",
+ "cliRuntimeDetected": "CLI رن ٹائم کا پتا چل گیا اور تیار ہے",
+ "cliFoundNotRunnable": "CLI مل گیا لیکن چلانے کے قابل نہیں{reason}",
+ "cliRuntimeNotDetected": "CLI رن ٹائم کا پتا نہیں چلا",
+ "binary": "بائنری",
+ "configPath": "کنفیگ کا راستہ",
+ "configPathShort": "کنفیگ",
+ "failedCheckRuntimeStatus": "رن ٹائم کی حالت جانچنے میں ناکامی۔",
+ "copy": "کاپی کریں",
+ "copied": "کاپی ہو گیا",
+ "copyConfig": "کنفیگ کاپی کریں",
+ "saveConfig": "کنفیگ محفوظ کریں",
+ "selectionSaved": "انتخاب محفوظ ہو گیا",
+ "guide": "رہنما",
+ "detected": "پتا چل گیا",
+ "notReady": "تیار نہیں",
+ "active": "فعال",
+ "inactive": "غیرفعال",
"startMitm": "Start MITM",
"stopMitm": "Stop MITM",
- "mitmStarted": "MITM started successfully!",
- "mitmStopped": "MITM stopped successfully!",
- "failedStart": "Failed to start MITM",
- "failedStop": "Failed to stop MITM",
- "saveMappings": "Save Mappings",
- "mappingsSaved": "Mappings saved!",
- "failedSaveMappings": "Failed to save mappings",
+ "mitmStarted": "MITM کامیابی سے شروع ہو گیا!",
+ "mitmStopped": "MITM کامیابی سے رک گیا!",
+ "failedStart": "MITM شروع نہیں ہو سکا",
+ "failedStop": "MITM روکا نہیں جا سکا",
+ "saveMappings": "میپنگز محفوظ کریں",
+ "mappingsSaved": "میپنگز محفوظ ہو گئیں!",
+ "failedSaveMappings": "میپنگز محفوظ کرنے میں ناکامی",
"reasoningEffortDefault": "ڈیفالٹ",
"reasoningEffortHint": "ڈیفالٹ ایجنٹ کی طرف سے بھیجی گئی استدلال کی کوشش کو برقرار رکھتا ہے",
"reasoningEffortTier": {
@@ -2808,130 +2812,130 @@
"high": "زیادہ",
"xhigh": "ایکس ہائی"
},
- "howItWorks": "How it works:",
- "antigravityHowWorksDesc": "Antigravity sends requests to Google's endpoint. MITM intercepts and redirects them to OmniRoute.",
- "antigravityStep1": "1. Start MITM to route requests through OmniRoute.",
- "antigravityStep2Prefix": "2. Add",
- "antigravityStep2Suffix": "to your hosts file as 127.0.0.1.",
- "antigravityStep3": "3. Open Antigravity and requests will be proxied.",
- "mitmHowWorksDesc": "{toolName} sends requests to its provider endpoint. MITM intercepts and redirects them to OmniRoute.",
- "mitmStep1": "1. Start MITM to route requests through OmniRoute.",
- "mitmStep2Prefix": "2. Add",
- "mitmStep2Suffix": "to your hosts file as 127.0.0.1.",
- "mitmStep3": "3. Open {toolName} and requests will be proxied.",
- "sudoPasswordRequiredTitle": "Sudo Password Required",
- "sudoPasswordHint": "Administrator password is required to modify hosts file and system proxy settings.",
- "enterSudoPassword": "Enter sudo password",
- "sudoPasswordRequiredError": "Sudo password is required.",
- "cancel": "Cancel",
- "confirm": "Confirm",
- "settingsApplied": "Settings applied successfully!",
- "failedApplySettings": "Failed to apply settings",
- "settingsReset": "Settings reset successfully!",
- "failedResetSettings": "Failed to reset settings",
- "backupRestored": "Backup restored!",
- "failedRestore": "Failed to restore",
- "checkingCli": "Checking {tool} CLI...",
- "cliNotRunnable": "{tool} CLI installed but not runnable",
- "cliNotInstalled": "{tool} CLI not installed",
- "cliNotDetected": "{tool} CLI not detected",
- "cliDetectedReady": "{tool} CLI detected and ready",
- "cliFoundFailedHealthcheck": "{tool} CLI was found but failed runtime healthcheck{reason}.",
- "installCliPrompt": "Please install {tool} CLI to use this feature.",
- "installCodexPrompt": "Please install Codex CLI to use auto-apply feature.",
- "hide": "Hide",
- "howToInstall": "How to Install",
- "installationGuide": "Installation Guide",
+ "howItWorks": "یہ کیسے کام کرتا ہے:",
+ "antigravityHowWorksDesc": "Antigravity، Google کے اینڈ پوائنٹ پر درخواستیں بھیجتا ہے۔ MITM انہیں روک کر OmniRoute کی طرف ری ڈائریکٹ کرتا ہے۔",
+ "antigravityStep1": "1. درخواستوں کو OmniRoute کے ذریعے روٹ کرنے کے لیے MITM شروع کریں۔",
+ "antigravityStep2Prefix": "2. شامل کریں",
+ "antigravityStep2Suffix": "کو اپنی hosts فائل میں بطور 127.0.0.1۔",
+ "antigravityStep3": "3. Antigravity کھولیں اور درخواستیں پراکسی کے ذریعے بھیجی جائیں گی۔",
+ "mitmHowWorksDesc": "{toolName} اپنے provider اینڈ پوائنٹ پر درخواستیں بھیجتا ہے۔ MITM انہیں روک کر OmniRoute کی طرف ری ڈائریکٹ کرتا ہے۔",
+ "mitmStep1": "1. درخواستوں کو OmniRoute کے ذریعے روٹ کرنے کے لیے MITM شروع کریں۔",
+ "mitmStep2Prefix": "2. شامل کریں",
+ "mitmStep2Suffix": "کو اپنی hosts فائل میں بطور 127.0.0.1۔",
+ "mitmStep3": "3. {toolName} کھولیں اور درخواستیں پراکسی کے ذریعے بھیجی جائیں گی۔",
+ "sudoPasswordRequiredTitle": "Sudo پاس ورڈ درکار ہے",
+ "sudoPasswordHint": "hosts فائل اور سسٹم پراکسی کی ترتیبات میں ترمیم کرنے کے لیے ایڈمنسٹریٹر پاس ورڈ درکار ہے۔",
+ "enterSudoPassword": "sudo پاس ورڈ درج کریں",
+ "sudoPasswordRequiredError": "Sudo پاس ورڈ درکار ہے۔",
+ "cancel": "منسوخ کریں",
+ "confirm": "تصدیق کریں",
+ "settingsApplied": "ترتیبات کامیابی سے لاگو ہو گئیں!",
+ "failedApplySettings": "ترتیبات لاگو کرنے میں ناکامی",
+ "settingsReset": "ترتیبات کامیابی سے ری سیٹ ہو گئیں!",
+ "failedResetSettings": "ترتیبات ری سیٹ کرنے میں ناکامی",
+ "backupRestored": "بیک اپ بحال ہو گیا!",
+ "failedRestore": "بحال کرنے میں ناکامی",
+ "checkingCli": "{tool} CLI کی جانچ کی جا رہی ہے...",
+ "cliNotRunnable": "{tool} CLI انسٹال ہے لیکن چلنے کے قابل نہیں",
+ "cliNotInstalled": "{tool} CLI انسٹال نہیں ہے",
+ "cliNotDetected": "{tool} CLI کا پتا نہیں چلا",
+ "cliDetectedReady": "{tool} CLI کا پتا چل گیا اور تیار ہے",
+ "cliFoundFailedHealthcheck": "{tool} CLI مل گیا تھا لیکن رن ٹائم صحت کی جانچ ناکام ہو گئی{reason}۔",
+ "installCliPrompt": "اس خصوصیت کو استعمال کرنے کے لیے براہِ کرم {tool} CLI انسٹال کریں۔",
+ "installCodexPrompt": "خودکار اطلاق کی خصوصیت استعمال کرنے کے لیے براہِ کرم Codex CLI انسٹال کریں۔",
+ "hide": "چھپائیں",
+ "howToInstall": "انسٹال کرنے کا طریقہ",
+ "installationGuide": "انسٹالیشن گائیڈ",
"platforms": "macOS / Linux / Windows:",
- "afterInstallationRun": "After installation, run",
- "toVerify": "to verify.",
- "current": "Current",
+ "afterInstallationRun": "انسٹالیشن کے بعد، چلائیں",
+ "toVerify": "تصدیق کرنے کے لیے۔",
+ "current": "موجودہ",
"baseUrlPlaceholder": "https://.../v1",
- "resetToDefault": "Reset to default",
+ "resetToDefault": "ڈیفالٹ پر ری سیٹ کریں",
"providerModelPlaceholder": "provider/model-id",
- "apply": "Apply",
- "reset": "Reset",
- "manualConfig": "Manual Config",
- "backups": "Backups",
- "configBackups": "Config Backups",
- "noBackupsYet": "No backups yet. Backups are created automatically before each Apply or Reset.",
- "restore": "Restore",
- "backupRestoredReloading": "Backup restored! Reloading status...",
- "failedRestoreBackup": "Failed to restore backup",
- "applied": "Applied!",
- "failed": "Failed",
- "resetDone": "Reset!",
- "omnirouteConfiguredOpenAiCompatible": "OmniRoute is configured as OpenAI-compatible provider",
- "provider": "Provider",
+ "apply": "لاگو کریں",
+ "reset": "ری سیٹ کریں",
+ "manualConfig": "دستی کنفیگریشن",
+ "backups": "بیک اپس",
+ "configBackups": "کنفیگریشن بیک اپس",
+ "noBackupsYet": "ابھی تک کوئی بیک اپ نہیں ہے۔ ہر بار لاگو کرنے یا ری سیٹ کرنے سے پہلے بیک اپ خودکار طور پر بنائے جاتے ہیں۔",
+ "restore": "بحال کریں",
+ "backupRestoredReloading": "بیک اپ بحال ہو گیا! اسٹیٹس دوبارہ لوڈ ہو رہا ہے...",
+ "failedRestoreBackup": "بیک اپ بحال کرنے میں ناکامی",
+ "applied": "لاگو ہو گیا!",
+ "failed": "ناکام",
+ "resetDone": "ری سیٹ ہو گیا!",
+ "omnirouteConfiguredOpenAiCompatible": "OmniRoute کو OpenAI سے مطابقت رکھنے والے پرووائیڈر کے طور پر کنفیگر کیا گیا ہے",
+ "provider": "پرووائیڈر",
"model": "Model",
- "providers": "Providers",
- "auth": "Auth",
- "noApiKeysAvailable": "No API keys available",
- "usingDefaultOmniroute": "Using default: sk_omniroute",
- "updateConfig": "Update Config",
- "applyConfig": "Apply Config",
- "noBackupsAvailable": "No backups available.",
- "profileSaved": "Profile \"{name}\" saved!",
- "failedSaveProfile": "Failed to save profile",
- "profileActivated": "Profile activated!",
- "failedActivateProfile": "Failed to activate profile",
- "profiles": "Profiles",
- "savedProfiles": "Saved Profiles",
- "noProfilesYet": "No profiles saved yet. Save current config as a profile below.",
- "activate": "Activate",
- "deleteProfile": "Delete profile",
- "profileNamePlaceholder": "Profile name (e.g. Personal Account)",
- "saveCurrent": "Save Current",
- "codexAuthNotePrefix": "Codex uses",
- "codexAuthNoteMiddle": "with",
- "codexAuthNoteSuffix": "Click \"Apply\" to auto-configure.",
- "claudeManualConfiguration": "Claude CLI - Manual Configuration",
- "codexManualConfiguration": "Codex CLI - Manual Configuration",
- "droidManualConfiguration": "Factory Droid - Manual Configuration",
- "openClawManualConfiguration": "Open Claw - Manual Configuration",
- "clineManualConfiguration": "Cline Manual Configuration",
- "kiloManualConfiguration": "Kilo Code Manual Configuration",
- "whenToUseLabel": "When to use",
- "openToolDocs": "Open tool docs",
+ "providers": "پرووائیڈرز",
+ "auth": "تصدیق",
+ "noApiKeysAvailable": "کوئی API کلید دستیاب نہیں",
+ "usingDefaultOmniroute": "ڈیفالٹ استعمال ہو رہا ہے: sk_omniroute",
+ "updateConfig": "کنفیگریشن اپ ڈیٹ کریں",
+ "applyConfig": "کنفیگریشن لاگو کریں",
+ "noBackupsAvailable": "کوئی بیک اپ دستیاب نہیں۔",
+ "profileSaved": "پروفائل \"{name}\" محفوظ ہو گیا!",
+ "failedSaveProfile": "پروفائل محفوظ کرنے میں ناکامی",
+ "profileActivated": "پروفائل فعال ہو گیا!",
+ "failedActivateProfile": "پروفائل فعال کرنے میں ناکامی",
+ "profiles": "پروفائلز",
+ "savedProfiles": "محفوظ کردہ پروفائلز",
+ "noProfilesYet": "ابھی تک کوئی پروفائل محفوظ نہیں کیا گیا۔ ذیل میں موجودہ کنفیگریشن کو بطور پروفائل محفوظ کریں۔",
+ "activate": "فعال کریں",
+ "deleteProfile": "پروفائل حذف کریں",
+ "profileNamePlaceholder": "پروفائل کا نام (مثلاً ذاتی اکاؤنٹ)",
+ "saveCurrent": "موجودہ کو محفوظ کریں",
+ "codexAuthNotePrefix": "Codex استعمال کرتا ہے",
+ "codexAuthNoteMiddle": "کے ساتھ",
+ "codexAuthNoteSuffix": "خودکار کنفیگریشن کے لیے \"لاگو کریں\" پر کلک کریں۔",
+ "claudeManualConfiguration": "Claude CLI - دستی کنفیگریشن",
+ "codexManualConfiguration": "Codex CLI - دستی کنفیگریشن",
+ "droidManualConfiguration": "Factory Droid - دستی کنفیگریشن",
+ "openClawManualConfiguration": "Open Claw - دستی کنفیگریشن",
+ "clineManualConfiguration": "Cline کی دستی کنفیگریشن",
+ "kiloManualConfiguration": "Kilo Code کی دستی کنفیگریشن",
+ "whenToUseLabel": "کب استعمال کریں",
+ "openToolDocs": "ٹول کی دستاویزات کھولیں",
"toolUseCases": {
- "claude": "Use when you want strong planning workflows and long multi-file refactors with Claude Code.",
- "codex": "Use when your team is standardized on OpenAI Codex CLI flows and profile-based auth.",
- "droid": "Use when you need a lightweight terminal agent focused on fast coding and command execution loops.",
- "openclaw": "Use when you want an Open Claw style coding agent but routed through OmniRoute policies.",
- "cline": "Use when you configure coding agents inside editors and want guided setup with OmniRoute models.",
- "kilo": "Use when your workflow depends on Kilo Code commands and fast iterative edits.",
- "cursor": "Use when coding in Cursor and you need custom OpenAI-compatible models through OmniRoute.",
- "continue": "Use when running Continue in IDEs and you need portable JSON-based provider configuration.",
- "opencode": "Use when you prefer terminal-native agent runs and scripted automation via OpenCode.",
- "kiro": "Use when integrating Kiro and controlling model routing centrally from OmniRoute.",
- "windsurf": "Use when you want an AI-first IDE with Codeium/Windsurf models routed through OmniRoute.",
- "antigravity": "Use when Antigravity/Kiro traffic must be intercepted through MITM and routed to OmniRoute.",
- "copilot": "Use when you want Copilot chat style UX while enforcing OmniRoute keys and routing rules.",
- "amp": "Use when you want Amp shorthand workflows but still need OmniRoute alias and routing rules enforcement.",
- "hermes": "Use when you need a lightweight terminal-native AI assistant for quick tasks.",
+ "claude": "اس وقت استعمال کریں جب آپ Claude Code کے ساتھ مضبوط منصوبہ بندی کے ورک فلوز اور متعدد فائلوں پر مشتمل طویل ری فیکٹرنگ چاہتے ہوں۔",
+ "codex": "اس وقت استعمال کریں جب آپ کی ٹیم OpenAI Codex CLI فلوز اور پروفائل پر مبنی توثیق کو بطور معیار استعمال کرتی ہو۔",
+ "droid": "اس وقت استعمال کریں جب آپ کو تیز رفتار کوڈنگ اور کمانڈ پر عمل درآمد کے چکروں پر مرکوز ایک ہلکا پھلکا ٹرمینل ایجنٹ درکار ہو۔",
+ "openclaw": "اس وقت استعمال کریں جب آپ Open Claw طرز کا کوڈنگ ایجنٹ چاہتے ہوں، لیکن اسے OmniRoute کی پالیسیوں کے ذریعے روٹ کرنا ہو۔",
+ "cline": "اس وقت استعمال کریں جب آپ ایڈیٹرز کے اندر کوڈنگ ایجنٹس کنفیگر کرتے ہوں اور OmniRoute ماڈلز کے ساتھ رہنمائی پر مبنی سیٹ اپ چاہتے ہوں۔",
+ "kilo": "اس وقت استعمال کریں جب آپ کا ورک فلو Kilo Code کمانڈز اور تیز تکراری ترامیم پر منحصر ہو۔",
+ "cursor": "اس وقت استعمال کریں جب آپ Cursor میں کوڈنگ کر رہے ہوں اور OmniRoute کے ذریعے حسبِ ضرورت OpenAI-compatible ماڈلز درکار ہوں۔",
+ "continue": "اس وقت استعمال کریں جب آپ IDEs میں Continue چلا رہے ہوں اور آپ کو قابلِ منتقلی JSON پر مبنی پرووائیڈر کنفیگریشن درکار ہو۔",
+ "opencode": "اس وقت استعمال کریں جب آپ ٹرمینل میں براہِ راست ایجنٹ چلانے اور OpenCode کے ذریعے اسکرپٹ شدہ آٹومیشن کو ترجیح دیتے ہوں۔",
+ "kiro": "اس وقت استعمال کریں جب آپ Kiro کو انٹیگریٹ کر رہے ہوں اور OmniRoute سے ماڈل روٹنگ کو مرکزی طور پر کنٹرول کرنا چاہتے ہوں۔",
+ "windsurf": "اس وقت استعمال کریں جب آپ AI کو ترجیح دینے والا IDE چاہتے ہوں، جس میں Codeium/Windsurf ماڈلز کو OmniRoute کے ذریعے روٹ کیا گیا ہو۔",
+ "antigravity": "اس وقت استعمال کریں جب Antigravity/Kiro ٹریفک کو MITM کے ذریعے انٹرسیپٹ کرکے OmniRoute کی طرف روٹ کرنا ضروری ہو۔",
+ "copilot": "اس وقت استعمال کریں جب آپ Copilot چیٹ طرز کا صارف تجربہ چاہتے ہوں، جبکہ OmniRoute کیز اور روٹنگ کے قواعد بھی نافذ کرنا چاہتے ہوں۔",
+ "amp": "اس وقت استعمال کریں جب آپ Amp کے مختصر ورک فلوز چاہتے ہوں، لیکن پھر بھی OmniRoute کے عرفی نام اور روٹنگ کے قواعد کا نفاذ درکار ہو۔",
+ "hermes": "اس وقت استعمال کریں جب آپ کو فوری کاموں کے لیے ہلکا پھلکا، ٹرمینل میں براہِ راست چلنے والا AI اسسٹنٹ درکار ہو۔",
"hermes-agent": "تب استعمال کریں جب آپ کو Hermes Agent (از Nousresearch) کی ضرورت ہو جس میں ڈیفالٹ، ڈیلیگیشن، ویژن اور معاون ماڈلز OmniRoute کے ذریعے روٹ کیے گئے ہوں۔",
- "custom": "Use for custom tool implementations or generic OpenAI-compatible configurations."
+ "custom": "حسبِ ضرورت ٹول کے نفاذ یا عمومی OpenAI-compatible کنفیگریشنز کے لیے استعمال کریں۔"
},
"toolDescriptions": {
- "antigravity": "Google Antigravity IDE with MITM",
+ "antigravity": "MITM کے ساتھ Google Antigravity IDE",
"claude": "Anthropic Claude Code CLI",
"codex": "OpenAI Codex CLI",
"grok-build": "کسٹم پرووائیڈر سپورٹ کے ساتھ xAI Grok Build TUI کوڈنگ ایجنٹ",
- "droid": "Factory Droid AI Assistant",
- "openclaw": "Open Claw AI Assistant",
- "cline": "Cline AI Coding Assistant CLI",
- "kilo": "Kilo Code AI Assistant CLI",
+ "droid": "Factory Droid AI اسسٹنٹ",
+ "openclaw": "Open Claw AI اسسٹنٹ",
+ "cline": "Cline AI کوڈنگ اسسٹنٹ CLI",
+ "kilo": "Kilo Code AI اسسٹنٹ CLI",
"qwen": "Qwen Code CLI",
"cursor": "Cursor AI Code Editor",
- "continue": "Continue AI Assistant",
- "opencode": "OpenCode AI coding agent (Terminal)",
- "kiro": "Amazon Kiro — AI-powered IDE",
+ "continue": "Continue AI اسسٹنٹ",
+ "opencode": "OpenCode AI کوڈنگ ایجنٹ (ٹرمینل)",
+ "kiro": "Amazon Kiro — AI سے تقویت یافتہ IDE",
"windsurf": "Windsurf AI Code Editor",
"copilot": "GitHub Copilot AI Assistant",
- "amp": "Sourcegraph Amp coding assistant CLI",
- "hermes": "Hermes AI Terminal Assistant",
+ "amp": "Sourcegraph Amp کوڈنگ اسسٹنٹ CLI",
+ "hermes": "Hermes AI ٹرمینل اسسٹنٹ",
"hermes-agent": "Hermes Agent (از Nousresearch) - ملٹی ماڈل سپورٹ (ڈیلیگیشن، ویژن، کمپریشن، وغیرہ) کے ساتھ جدید ٹرمینل AI",
- "custom": "Generic OpenAI-compatible CLI or SDK configuration generator",
+ "custom": "عمومی OpenAI-compatible CLI یا SDK کنفیگریشن جنریٹر",
"aider": "OpenAI سے مطابقت رکھنے والے بیس URL کے ساتھ Aider AI پیئر پروگرامنگ CLI",
"forge": "کسٹم پرووائیڈر کے ساتھ ForgeCode کوڈنگ ایجنٹ CLI",
"cursor-cli": "ہیڈ لیس ایجنٹ موڈ میں Cursor Agent CLI",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter خود مختار کوڈنگ ایجنٹ CLI",
"omp": "Oh My Pi ٹرمینل کوڈنگ ایجنٹ",
"letta": "مستقل میموری اور ٹول کے استعمال کے ساتھ Letta CLI ایجنٹ",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — OpenAI-compatible پرووائیڈر سپورٹ کے ساتھ خود کو بہتر بنانے والا RLM کوڈنگ ہارنس",
"warp": "کسٹم پرووائیڈر سپورٹ کے ساتھ Warp AI ٹرمینل",
"agent-deck": "Agent Deck ملٹی ایجنٹ آرکیسٹریٹر",
"5dive": "5dive — خود میزبان کوڈنگ ایجنٹس کا بیڑا؛ ایک auth پروفائل ان سب کو OmniRoute کی طرف بھیجتی ہے"
@@ -2954,134 +2958,134 @@
"guides": {
"cursor": {
"notes": {
- "0": "Requires Cursor Pro account to use this feature.",
- "1": "Cursor routes requests through its own server, so local endpoint is not supported. Please enable Cloud Endpoint in Settings."
+ "0": "اس خصوصیت کو استعمال کرنے کے لیے Cursor Pro اکاؤنٹ درکار ہے۔",
+ "1": "Cursor درخواستوں کو اپنے سرور کے ذریعے روٹ کرتا ہے، اس لیے مقامی اینڈ پوائنٹ معاون نہیں ہے۔ براہِ کرم Settings میں Cloud Endpoint فعال کریں۔"
},
"steps": {
"1": {
- "title": "Open Settings",
- "desc": "Go to Settings -> Models"
+ "title": "Settings کھولیں",
+ "desc": "Settings -> Models پر جائیں"
},
"2": {
- "title": "Enable OpenAI API",
- "desc": "Enable \"OpenAI API key\" option"
+ "title": "OpenAI API فعال کریں",
+ "desc": "\"OpenAI API key\" کا آپشن فعال کریں"
},
"3": {
- "title": "Base URL"
+ "title": "بنیادی URL"
},
"4": {
- "title": "API Key"
+ "title": "API کلید"
},
"5": {
- "title": "Add Custom Model",
- "desc": "Click \"View All Model\" -> \"Add Custom Model\""
+ "title": "حسبِ ضرورت ماڈل شامل کریں",
+ "desc": "\"تمام ماڈلز دیکھیں\" پر کلک کریں → \"حسبِ ضرورت ماڈل شامل کریں\""
},
"6": {
- "title": "Select Model"
+ "title": "ماڈل منتخب کریں"
}
}
},
"continue": {
"steps": {
"1": {
- "title": "Open Config",
- "desc": "Open Continue configuration file"
+ "title": "کنفیگریشن کھولیں",
+ "desc": "Continue کی کنفیگریشن فائل کھولیں"
},
"2": {
- "title": "API Key"
+ "title": "API کلید"
},
"3": {
- "title": "Select Model"
+ "title": "ماڈل منتخب کریں"
},
"4": {
- "title": "Add Model Config",
- "desc": "Add the following configuration to your models array:"
+ "title": "ماڈل کنفیگریشن شامل کریں",
+ "desc": "اپنی models array میں درج ذیل کنفیگریشن شامل کریں:"
}
},
"notes": {
- "0": "Continue uses JSON config file."
+ "0": "Continue، JSON کنفیگریشن فائل استعمال کرتا ہے۔"
}
},
"opencode": {
"steps": {
"1": {
- "title": "Install OpenCode",
- "desc": "Install via npm: npm install -g opencode-ai"
+ "title": "OpenCode انسٹال کریں",
+ "desc": "npm کے ذریعے انسٹال کریں: npm install -g opencode-ai"
},
"2": {
- "title": "API Key"
+ "title": "API کلید"
},
"3": {
- "title": "Set Base URL",
+ "title": "بنیادی URL سیٹ کریں",
"desc": "opencode config set baseUrl {baseUrl}"
},
"4": {
- "title": "Select Model"
+ "title": "ماڈل منتخب کریں"
},
"5": {
- "title": "Use Thinking Variant",
- "desc": "For thinking models, run with --variant high/low/max (example command below)."
+ "title": "تھنکنگ ویریئنٹ استعمال کریں",
+ "desc": "تھنکنگ ماڈلز کے لیے --variant high/low/max کے ساتھ چلائیں (ذیل میں مثالی کمانڈ دیکھیں)۔"
}
},
"notes": {
- "0": "OpenCode requires API key configuration.",
- "1": "Set the base URL to your OmniRoute endpoint."
+ "0": "OpenCode کے لیے API کلید کی کنفیگریشن درکار ہے۔",
+ "1": "بنیادی URL کو اپنے OmniRoute اینڈ پوائنٹ پر سیٹ کریں۔"
}
},
"kiro": {
"steps": {
"1": {
- "title": "Open Kiro Settings",
- "desc": "Go to Settings → AI Provider"
+ "title": "Kiro کی ترتیبات کھولیں",
+ "desc": "ترتیبات → AI فراہم کنندہ پر جائیں"
},
"2": {
- "title": "Base URL",
- "desc": "Paste your OmniRoute endpoint URL"
+ "title": "بنیادی URL",
+ "desc": "اپنے OmniRoute اینڈ پوائنٹ کا URL پیسٹ کریں"
},
"3": {
- "title": "API Key"
+ "title": "API کلید"
},
"4": {
- "title": "Select Model"
+ "title": "ماڈل منتخب کریں"
}
},
"notes": {
- "0": "Kiro requires Amazon account."
+ "0": "Kiro کے لیے Amazon اکاؤنٹ درکار ہے۔"
}
},
"windsurf": {
"steps": {
"1": {
- "title": "Open AI Settings",
+ "title": "AI کی ترتیبات کھولیں",
"desc": "Click the AI Settings icon in Windsurf or go to Settings"
},
"2": {
- "title": "Add Custom Provider",
+ "title": "حسبِ ضرورت فراہم کنندہ شامل کریں",
"desc": "Select \"Add custom provider\" (OpenAI-compatible)"
},
"3": {
- "title": "Base URL",
+ "title": "بنیادی URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API کلید",
"desc": "Select your OmniRoute API key"
},
"5": {
- "title": "Select Model",
- "desc": "Choose a model from the dropdown"
+ "title": "ماڈل منتخب کریں",
+ "desc": "ڈراپ ڈاؤن سے ایک ماڈل منتخب کریں"
}
}
}
},
- "autoConfiguredTab": "Auto-Configured",
- "toolCategoriesDesc": "Configure AI coding assistants to route through OmniRoute",
- "allToolsTab": "All Tools",
- "guidedClientsTab": "Guided Clients",
- "mitmClientsTab": "MITM Clients",
+ "autoConfiguredTab": "خودکار طور پر کنفیگر شدہ",
+ "toolCategoriesDesc": "AI کوڈنگ معاونین کو OmniRoute کے ذریعے روٹ کرنے کے لیے کنفیگر کریں",
+ "allToolsTab": "تمام ٹولز",
+ "guidedClientsTab": "رہنمائی والے کلائنٹس",
+ "mitmClientsTab": "MITM کلائنٹس",
"customCliTab": "حسب ضرورت CLI",
- "toolCategories": "Tool Categories",
- "visibleToolsCount": "{count} tools available",
+ "toolCategories": "ٹول کے زمرے",
+ "visibleToolsCount": "{count} ٹولز دستیاب ہیں",
"customCliBuilderTitle": "OpenAI سے مطابقت رکھنے والا CLI بلڈر",
"customCliBuilderDescription": "کسی بھی CLI یا SDK کے لیے env vars اور JSON کے ٹکڑوں کو تخلیق کریں جو OpenAI سے مطابقت رکھنے والے بیس URL، API کلید، اور ماڈل ID کو قبول کرتا ہے۔",
"customCliNoModels": "ماڈل سلیکٹرز کو آباد کرنے کے لیے کم از کم ایک فراہم کنندہ سے رابطہ کریں۔",
@@ -3199,75 +3203,75 @@
"cliproxyapiVersion": "ورژن"
},
"combos": {
- "title": "Combos",
- "description": "Create model combos with weighted routing and fallback support",
+ "title": "کمبوز",
+ "description": "وزنی روٹنگ اور فال بیک سپورٹ کے ساتھ ماڈل کمبوز بنائیں",
"autoCatalogTitle": "آٹو روٹنگ کیٹلاگ",
"autoCatalogTemplateCount": "{count} ٹیمپلیٹس",
"autoCatalogDescription": "بلٹ ان آٹو/* کومبوز مربوط فراہم کنندگان سے متحرک طور پر حل ہوئے۔ ان میں سے کسی بھی ID کو بطور ماڈل فیلڈ استعمال کریں — کسی سیٹ اپ کی ضرورت نہیں۔",
"autoCatalogExpand": "آٹو روٹنگ کیٹلاگ کو پھیلائیں۔",
"autoCatalogCollapse": "آٹو روٹنگ کیٹلاگ کو سکیڑیں۔",
- "createCombo": "Create Combo",
- "editCombo": "Edit Combo",
- "deleteCombo": "Delete Combo",
- "noModels": "No models",
- "noModelsYet": "No models added yet",
- "addModel": "Add Model",
- "addModelToCombo": "Add Model to Combo",
- "routingStrategy": "Routing Strategy",
- "maxRetries": "Max Retries",
- "timeout": "Timeout (ms)",
- "healthcheck": "Healthcheck",
- "priority": "Priority",
- "fallback": "Fallback",
+ "createCombo": "کمبو بنائیں",
+ "editCombo": "کمبو میں ترمیم کریں",
+ "deleteCombo": "کمبو حذف کریں",
+ "noModels": "کوئی ماڈل نہیں",
+ "noModelsYet": "ابھی تک کوئی ماڈل شامل نہیں کیا گیا",
+ "addModel": "ماڈل شامل کریں",
+ "addModelToCombo": "کمبو میں ماڈل شامل کریں",
+ "routingStrategy": "روٹنگ کی حکمتِ عملی",
+ "maxRetries": "دوبارہ کوششوں کی زیادہ سے زیادہ تعداد",
+ "timeout": "ٹائم آؤٹ (ms)",
+ "healthcheck": "صحت کی جانچ",
+ "priority": "ترجیح",
+ "fallback": "فال بیک",
"roundRobin": "Round Robin",
- "random": "Random",
- "leastLatency": "Least Latency",
- "comboName": "Combo Name",
+ "random": "بے ترتیب",
+ "leastLatency": "کم ترین تاخیر",
+ "comboName": "کمبو کا نام",
"comboNamePlaceholder": "my-combo",
"comboDescription": "تفصیل",
"comboDescriptionPlaceholder": "اس کومبو کی وضاحت کرنے والا اختیاری نوٹ",
- "deleteConfirm": "Delete this combo?",
- "noCombosYet": "No combos yet",
- "comboCreated": "Combo created successfully",
- "comboUpdated": "Combo updated successfully",
- "comboDeleted": "Combo deleted",
- "failedCreate": "Failed to create combo",
- "failedUpdate": "Failed to update combo",
- "errorCreating": "Error creating combo",
- "errorUpdating": "Error updating combo",
- "errorDeleting": "Error deleting combo",
- "testFailed": "Test request failed",
- "failedToggle": "Failed to toggle combo",
- "testResults": "Test Results — {name}",
- "resolvedBy": "Resolved by:",
- "more": "+{count} more",
- "reqs": "reqs",
- "success": "success",
- "proxyConfigured": "Proxy configured",
- "copyComboName": "Copy combo name",
- "enableCombo": "Enable combo",
- "disableCombo": "Disable combo",
- "testCombo": "Test combo",
- "duplicate": "Duplicate",
- "proxyConfig": "Proxy configuration",
- "nameRequired": "Name is required",
- "nameInvalid": "Only letters, numbers, -, _, / and . allowed",
- "nameHint": "Letters, numbers, -, _, / and . allowed",
- "priorityDesc": "Sequential fallback: tries model 1 first, then 2, etc.",
- "weightedDesc": "Distributes traffic by weight percentage with fallback",
- "roundRobinDesc": "Circular distribution: each request goes to the next model in rotation",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Preserves session continuity with handoff summaries when accounts rotate",
- "randomDesc": "Uniform random selection, then fallback to remaining models",
- "leastUsedDesc": "Picks the model with fewest requests, balancing load over time",
- "costOptimizedDesc": "Routes to the cheapest model first based on pricing",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
- "resetAware": "Reset-Aware RR",
+ "deleteConfirm": "یہ کمبو حذف کریں؟",
+ "noCombosYet": "ابھی تک کوئی کمبو نہیں",
+ "comboCreated": "کمبو کامیابی سے بنا دیا گیا",
+ "comboUpdated": "کمبو کامیابی سے اپ ڈیٹ ہو گیا",
+ "comboDeleted": "کمبو حذف کر دیا گیا",
+ "failedCreate": "کمبو بنانے میں ناکامی",
+ "failedUpdate": "کمبو اپ ڈیٹ کرنے میں ناکامی",
+ "errorCreating": "کمبو بناتے وقت خرابی",
+ "errorUpdating": "کمبو اپ ڈیٹ کرتے وقت خرابی",
+ "errorDeleting": "کمبو حذف کرتے وقت خرابی",
+ "testFailed": "آزمائشی درخواست ناکام ہو گئی",
+ "failedToggle": "کمبو کو ٹوگل کرنے میں ناکامی",
+ "testResults": "ٹیسٹ کے نتائج — {name}",
+ "resolvedBy": "حل کنندہ:",
+ "more": "+{count} مزید",
+ "reqs": "درخواستیں",
+ "success": "کامیاب",
+ "proxyConfigured": "پراکسی کنفیگر ہو گئی",
+ "copyComboName": "کمبو کا نام کاپی کریں",
+ "enableCombo": "کومبو فعال کریں",
+ "disableCombo": "کومبو غیر فعال کریں",
+ "testCombo": "کومبو کی جانچ کریں",
+ "duplicate": "نقل بنائیں",
+ "proxyConfig": "پراکسی کی تشکیل",
+ "nameRequired": "نام درکار ہے",
+ "nameInvalid": "صرف حروف، اعداد، -, _, / اور . کی اجازت ہے",
+ "nameHint": "حروف، اعداد، -, _, / اور . کی اجازت ہے",
+ "priorityDesc": "ترتیبی متبادل: پہلے ماڈل 1، پھر 2، اور اسی طرح آزماتا ہے۔",
+ "weightedDesc": "متبادل کے ساتھ وزن کے فیصد کے لحاظ سے ٹریفک تقسیم کرتا ہے",
+ "roundRobinDesc": "دوری تقسیم: ہر درخواست باری کے مطابق اگلے ماڈل کو بھیجی جاتی ہے",
+ "contextRelay": "سیاق و سباق کی منتقلی",
+ "contextRelayDesc": "اکاؤنٹس کی تبدیلی کے وقت منتقلی کے خلاصوں کے ذریعے سیشن کا تسلسل برقرار رکھتا ہے",
+ "randomDesc": "یکساں بے ترتیب انتخاب، پھر باقی ماڈلز کو بطور متبادل آزماتا ہے",
+ "leastUsedDesc": "وقت کے ساتھ بوجھ کو متوازن کرتے ہوئے سب سے کم درخواستوں والا ماڈل منتخب کرتا ہے",
+ "costOptimizedDesc": "قیمتوں کی بنیاد پر پہلے سب سے سستے ماڈل کو درخواست بھیجتا ہے",
+ "cacheOptimizedDesc": "ہر دوبارہ قابلِ استعمال پرامپٹ سابقے کو مستقل طور پر اسی فراہم کنندہ کے اکاؤنٹ تک پہنچاتا ہے",
+ "resetAware": "ری سیٹ سے باخبر RR",
"resetAwareDesc": "بقیہ کوٹہ کو 5h اور ہفتہ وار ری سیٹ کے مقابلے میں بیلنس کریں، پھر راؤنڈ روبنز ملتے جلتے اسکورز",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "کوٹے کے لحاظ سے وزن شدہ",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each model once before reshuffling",
+ "strictRandom": "سخت بے ترتیب",
+ "strictRandomDesc": "شفل ڈیک — دوبارہ شفل کرنے سے پہلے ہر ماڈل کو ایک بار استعمال کرتا ہے",
"fusion": "فیوژن",
"fusionDesc": "پرامپٹ کو متوازی طور پر ہر پینل ماڈل کو بھیجتا ہے، پھر ایک جج ماڈل ایک حتمی جواب تیار کرتا ہے",
"fusionJudgeModel": "جج ماڈل",
@@ -3278,27 +3282,27 @@
"fusionStragglerGraceMsHelp": "کورم پورا ہونے کے بعد سست پینل ماڈلز کا کتنی دیر انتظار کرنا ہے (ڈیفالٹ 8000)۔",
"fusionPanelHardTimeoutMs": "پینل ہارڈ ٹائم آؤٹ (ms)",
"fusionPanelHardTimeoutMsHelp": "حتمی حد تاکہ ایک رکا ہوا ماڈل پورے پینل کو معطل نہ کر سکے (ڈیفالٹ 90000)۔",
- "models": "Models",
- "autoBalance": "Auto-balance",
- "advancedSettings": "Advanced Settings",
- "retryDelay": "Retry Delay (ms)",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayHandoffThresholdHelp": "When quota usage reaches this threshold, OmniRoute generates a structured handoff summary before the active account is exhausted.",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelayMaxMessagesHelp": "Limits how much recent history is condensed into the relay summary.",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelaySummaryModelHelp": "Optional override model used only for generating the handoff summary. Leave empty to reuse the active combo model.",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex account rotation. Pair it with multiple accounts of the same provider for the best continuity.",
- "advancedHint": "Leave empty to use global defaults. These override per-provider settings.",
+ "models": "ماڈلز",
+ "autoBalance": "خودکار توازن",
+ "advancedSettings": "اعلیٰ ترتیبات",
+ "retryDelay": "دوبارہ کوشش میں تاخیر (ms)",
+ "concurrencyPerModel": "ہم وقتی / ماڈل",
+ "queueTimeout": "قطار کا وقت ختم ہونے کی حد (ms)",
+ "contextRelayHandoffThreshold": "منتقلی کی حد",
+ "contextRelayHandoffThresholdHelp": "جب کوٹے کا استعمال اس حد تک پہنچ جاتا ہے تو فعال اکاؤنٹ ختم ہونے سے پہلے OmniRoute ایک منظم منتقلی خلاصہ تیار کرتا ہے۔",
+ "contextRelayMaxMessages": "خلاصے کے لیے زیادہ سے زیادہ پیغامات",
+ "contextRelayMaxMessagesHelp": "اس بات کو محدود کرتا ہے کہ حالیہ تاریخ کا کتنا حصہ منتقلی خلاصے میں مختصر کیا جائے۔",
+ "contextRelaySummaryModel": "خلاصے کا ماڈل",
+ "contextRelaySummaryModelHelp": "اختیاری متبادل ماڈل جو صرف منتقلی خلاصہ تیار کرنے کے لیے استعمال ہوتا ہے۔ فعال کومبو ماڈل کو دوبارہ استعمال کرنے کے لیے اسے خالی چھوڑ دیں۔",
+ "contextRelayProviderNote": "سیاق و سباق کی منتقلی فی الحال Codex اکاؤنٹس کی تبدیلی کے لیے منتقلیاں تیار کرتی ہے۔ بہترین تسلسل کے لیے اسے ایک ہی فراہم کنندہ کے متعدد اکاؤنٹس کے ساتھ استعمال کریں۔",
+ "advancedHint": "عالمی طے شدہ اقدار استعمال کرنے کے لیے خالی چھوڑ دیں۔ یہ فی فراہم کنندہ ترتیبات کو نظرانداز کرتی ہیں۔",
"failoverBeforeRetry": "دوبارہ کوشش کرنے سے پہلے فیل اوور",
"maxSetRetries": "زیادہ سے زیادہ سیٹ دوبارہ کوششیں",
"setRetryDelayMs": "دوبارہ کوشش میں تاخیر (ms) سیٹ کریں",
- "moveUp": "Move up",
- "moveDown": "Move down",
- "removeModel": "Remove",
- "saving": "Saving...",
+ "moveUp": "اوپر منتقل کریں",
+ "moveDown": "نیچے منتقل کریں",
+ "removeModel": "ہٹائیں",
+ "saving": "محفوظ کیا جا رہا ہے...",
"liveNoProviders": "ابھی تک کوئی فراہم کنندگان نہیں دیکھے گئے۔",
"liveFleetDataHint": "فلیٹ ڈیٹا لائیو کومبو ایونٹس کے ذریعے موصول ہوتا ہے۔",
"liveActiveCount": "فعال ({count})",
@@ -3338,43 +3342,43 @@
"playgroundEmptyHint": "ایک کومبو منتخب کریں اور روٹنگ کا راستہ دیکھنے کے لیے روٹ سمولیٹ کریں پر کلک کریں۔",
"playgroundNoCombosYet": "ابھی تک کوئی کومبوز کنفیگر نہیں کیے گئے۔",
"playgroundCreateFirst": "پہلے ایک بنائیں",
- "weighted": "Weighted",
- "leastUsed": "Least-Used",
- "costOpt": "Cost-Opt",
- "strategyGuideTitle": "How to use this strategy",
- "strategyGuideWhen": "When to use",
- "strategyGuideAvoid": "Avoid when",
- "strategyGuideExample": "Example",
+ "weighted": "وزن شدہ",
+ "leastUsed": "سب سے کم استعمال شدہ",
+ "costOpt": "لاگت کے لحاظ سے بہتر",
+ "strategyGuideTitle": "اس حکمتِ عملی کو کیسے استعمال کریں",
+ "strategyGuideWhen": "کب استعمال کریں",
+ "strategyGuideAvoid": "کب گریز کریں",
+ "strategyGuideExample": "مثال",
"strategyGuide": {
"priority": {
- "when": "You have one preferred model and only want fallback on failure.",
- "avoid": "You need request distribution across models.",
- "example": "Primary coding model with cheaper backup for outages."
+ "when": "آپ کا ایک ترجیحی ماڈل ہے اور آپ صرف ناکامی کی صورت میں متبادل استعمال کرنا چاہتے ہیں۔",
+ "avoid": "آپ کو درخواستیں مختلف ماڈلز میں تقسیم کرنے کی ضرورت ہے۔",
+ "example": "بنیادی کوڈنگ ماڈل، سروس کی بندش کے لیے کم لاگت والے متبادل کے ساتھ۔"
},
"weighted": {
- "when": "You need controlled traffic split across models.",
- "avoid": "You cannot maintain accurate weights over time.",
- "example": "80% stable model + 20% canary model rollout."
+ "when": "آپ کو مختلف ماڈلز کے درمیان ٹریفک کی تقسیم کو کنٹرول کرنے کی ضرورت ہے۔",
+ "avoid": "آپ وقت کے ساتھ درست اوزان برقرار نہیں رکھ سکتے۔",
+ "example": "80% مستحکم ماڈل + 20% کینری ماڈل رول آؤٹ۔"
},
"round-robin": {
- "when": "You want predictable and even distribution.",
- "avoid": "Models differ too much in latency or cost.",
- "example": "Same model on multiple accounts to spread throughput."
+ "when": "آپ قابلِ پیش گوئی اور یکساں تقسیم چاہتے ہیں۔",
+ "avoid": "ماڈلز تاخیر یا لاگت کے لحاظ سے بہت زیادہ مختلف ہیں۔",
+ "example": "تھروپٹ تقسیم کرنے کے لیے متعدد اکاؤنٹس پر ایک ہی ماڈل۔"
},
"random": {
- "when": "You want simple distribution with minimal setup.",
- "avoid": "You need strict traffic guarantees.",
- "example": "Quick prototyping with equivalent models."
+ "when": "آپ کم سے کم سیٹ اپ کے ساتھ سادہ تقسیم چاہتے ہیں۔",
+ "avoid": "آپ کو ٹریفک کی سخت ضمانتیں درکار ہیں۔",
+ "example": "یکساں ماڈلز کے ساتھ فوری پروٹوٹائپنگ۔"
},
"least-used": {
- "when": "You want adaptive balancing based on live demand.",
- "avoid": "Traffic is too low to benefit from usage balancing.",
- "example": "Mixed workloads where one model often gets overloaded."
+ "when": "آپ لائیو طلب کی بنیاد پر موافق توازن چاہتے ہیں۔",
+ "avoid": "استعمال کے توازن سے فائدہ اٹھانے کے لیے ٹریفک بہت کم ہے۔",
+ "example": "مخلوط ورک لوڈز، جہاں ایک ماڈل اکثر اوور لوڈ ہو جاتا ہے۔"
},
"cost-optimized": {
- "when": "Cost reduction is your top priority.",
- "avoid": "Pricing data is missing or outdated.",
- "example": "Background or batch jobs where lower cost is preferred."
+ "when": "لاگت میں کمی آپ کی اولین ترجیح ہے۔",
+ "avoid": "قیمتوں کا ڈیٹا غائب یا متروک ہے۔",
+ "example": "پسِ منظر یا بیچ جابز، جہاں کم لاگت کو ترجیح دی جاتی ہے۔"
},
"reset-aware": {
"when": "آپ کوٹہ ٹیلی میٹری اور مختلف ری سیٹ ونڈوز کے ساتھ متعدد اکاؤنٹس میں روٹ کرتے ہیں۔",
@@ -3382,104 +3386,104 @@
"example": "کل 60% ہفتہ وار اکاؤنٹ کو بعد میں دوبارہ ترتیب دینے والے 80% اکاؤنٹ پر ترجیح دیں۔"
},
"strict-random": {
- "when": "Use when you want perfectly even spread — each model used once before repeating.",
- "avoid": "Avoid when models have different quality or latency and order matters.",
- "example": "Example: Multiple accounts of the same model to distribute usage evenly."
+ "when": "اس وقت استعمال کریں جب آپ بالکل یکساں تقسیم چاہتے ہوں — دہرانے سے پہلے ہر ماڈل ایک بار استعمال ہو۔",
+ "avoid": "اس وقت گریز کریں جب ماڈلز کا معیار یا تاخیر مختلف ہو اور ترتیب اہم ہو۔",
+ "example": "مثال: استعمال کو یکساں طور پر تقسیم کرنے کے لیے ایک ہی ماڈل کے متعدد اکاؤنٹس۔"
},
"p2c": {
- "when": "Use when you want low-latency selection using Power-of-Two-Choices algorithm.",
- "avoid": "Avoid for small combos with 2 or fewer models — no benefit over round-robin.",
- "example": "Example: High-throughput inference across 4+ equivalent model endpoints."
+ "when": "اس وقت استعمال کریں جب آپ Power-of-Two-Choices الگورتھم کے ذریعے کم تاخیر والا انتخاب چاہتے ہوں۔",
+ "avoid": "2 یا اس سے کم ماڈلز والے چھوٹے مجموعوں کے لیے گریز کریں — راؤنڈ رابن کے مقابلے میں کوئی فائدہ نہیں۔",
+ "example": "مثال: 4+ مساوی ماڈل اینڈ پوائنٹس پر ہائی تھروپٹ انفرنس۔"
},
"context-relay": {
- "when": "Use when long sessions must survive account rotation without losing the working context.",
- "avoid": "Avoid when account switching is rare or when you do not want extra summarization requests.",
- "example": "Example: Codex sessions that rotate across multiple accounts near quota exhaustion."
+ "when": "اس وقت استعمال کریں جب طویل سیشنز کو مؤثر سیاق و سباق کھوئے بغیر اکاؤنٹ روٹیشن کے دوران برقرار رہنا ضروری ہو۔",
+ "avoid": "اس وقت گریز کریں جب اکاؤنٹ تبدیل کرنا شاذ و نادر ہو یا آپ اضافی خلاصہ سازی کی درخواستیں نہ چاہتے ہوں۔",
+ "example": "مثال: Codex سیشنز جو کوٹا تقریباً ختم ہونے پر متعدد اکاؤنٹس کے درمیان روٹیٹ ہوتے ہیں۔"
},
"fill-first": {
- "when": "Use when you want to fully exhaust one provider's quota before moving to the next.",
- "avoid": "Avoid when you need request-level load balancing across providers.",
- "example": "Example: Use all $200 Deepgram credits before falling back to Groq."
+ "when": "اس وقت استعمال کریں جب آپ اگلے فراہم کنندہ پر جانے سے پہلے ایک فراہم کنندہ کا کوٹا مکمل طور پر استعمال کرنا چاہتے ہوں۔",
+ "avoid": "اس وقت گریز کریں جب آپ کو فراہم کنندگان کے درمیان درخواست کی سطح پر لوڈ بیلنسنگ درکار ہو۔",
+ "example": "مثال: Groq کو متبادل کے طور پر استعمال کرنے سے پہلے تمام $200 Deepgram کریڈٹس استعمال کریں۔"
},
"auto": {
- "when": "Use when you need multi-factor scoring routing based on cost, latency, and quality.",
- "avoid": "Avoid when you need strict priority ordering or historical persistence.",
- "example": "Example: Balance requests across models with different strengths."
+ "when": "اس وقت استعمال کریں جب آپ کو لاگت، تاخیر اور معیار کی بنیاد پر کثیر عنصری اسکورنگ روٹنگ درکار ہو۔",
+ "avoid": "اس وقت گریز کریں جب آپ کو سخت ترجیحی ترتیب یا تاریخی تسلسل درکار ہو۔",
+ "example": "مثال: مختلف صلاحیتوں والے ماڈلز میں درخواستوں کو متوازن کریں۔"
},
"lkgp": {
- "when": "Use when you want to route based on historical success rates and performance.",
- "avoid": "Avoid when historical data is limited or unreliable.",
- "example": "Example: Route to models with a good track record on specific tasks."
+ "when": "اس وقت استعمال کریں جب آپ تاریخی کامیابی کی شرحوں اور کارکردگی کی بنیاد پر روٹنگ کرنا چاہتے ہوں۔",
+ "avoid": "جب تاریخی ڈیٹا محدود یا ناقابلِ اعتماد ہو تو استعمال نہ کریں۔",
+ "example": "مثال: مخصوص کاموں کے لیے اچھا سابقہ رکھنے والے ماڈلز کی طرف روٹ کریں۔"
},
"context-optimized": {
- "when": "Use when you need to optimize context window usage across models.",
- "avoid": "Avoid when models have similar context lengths or tasks are simple.",
- "example": "Example: Distribute long conversations across models with larger context windows."
+ "when": "جب آپ کو مختلف ماڈلز میں کانٹیکسٹ ونڈو کے استعمال کو بہتر بنانا ہو تو استعمال کریں۔",
+ "avoid": "جب ماڈلز کی کانٹیکسٹ لمبائیاں یکساں ہوں یا کام سادہ ہوں تو استعمال نہ کریں۔",
+ "example": "مثال: طویل گفتگوؤں کو بڑی کانٹیکسٹ ونڈوز والے ماڈلز میں تقسیم کریں۔"
}
},
"advancedHelp": {
- "maxRetries": "How many retries are attempted before failing a request.",
- "retryDelay": "Initial wait between retries. Higher values reduce burst pressure.",
- "timeout": "Maximum request duration before aborting.",
- "healthcheck": "Skips unhealthy models/providers from routing decisions.",
- "concurrencyPerModel": "Max simultaneous requests allowed per model in round-robin.",
- "queueTimeout": "How long a request can wait in queue before timing out.",
+ "maxRetries": "درخواست ناکام قرار دینے سے پہلے کتنی بار دوبارہ کوشش کی جاتی ہے۔",
+ "retryDelay": "دوبارہ کوششوں کے درمیان ابتدائی انتظار۔ زیادہ قدریں اچانک دباؤ کو کم کرتی ہیں۔",
+ "timeout": "منسوخ کرنے سے پہلے درخواست کی زیادہ سے زیادہ مدت۔",
+ "healthcheck": "روٹنگ کے فیصلوں میں غیر صحت مند ماڈلز/فراہم کنندگان کو نظر انداز کرتا ہے۔",
+ "concurrencyPerModel": "راؤنڈ رابن میں فی ماڈل بیک وقت اجازت یافتہ درخواستوں کی زیادہ سے زیادہ تعداد۔",
+ "queueTimeout": "ٹائم آؤٹ ہونے سے پہلے کوئی درخواست قطار میں کتنی دیر انتظار کر سکتی ہے۔",
"failoverBeforeRetry": "فعال ہونے پر، کوئی بھی اپ اسٹریم خرابی اگلے کومبو ہدف پر فوری ناکامی کو متحرک کرتی ہے، تمام دوبارہ کوششوں اور فال بیک URLs کو چھوڑ کر۔",
"maxSetRetries": "جب ہر ٹارگٹ ناکام ہوجاتا ہے تو مکمل ٹارگٹ سیٹ پر دوبارہ کوشش کرنے کی تعداد۔ 0 = کوئی سیٹ لیول دوبارہ کوشش نہیں۔",
"setRetryDelayMs": "سیٹ لیول کی دوبارہ کوشش کی کوششوں کے درمیان تاخیر، عارضی مسائل کو حل کرنے کا وقت دیتا ہے۔",
"disableSessionStickiness": "پہلے پیغام کے ہیش کے ذریعے پوری گفتگو کو ایک کنکشن پر پن کرنے کے بجائے ہر درخواست پر ایک مختلف کنکشن پر روٹیٹ کریں۔ یہ گلوبل ڈیفالٹ کو اوور رائیڈ کرتا ہے۔ ملٹی ٹرن چیٹس کے لیے پرامپٹ کیش ہٹس کو برقرار رکھنے کے لیے اسے Inherit پر چھوڑیں۔"
},
- "templatesTitle": "Quick templates",
- "templatesDescription": "Apply a starting profile, then adjust models and config.",
- "templateApply": "Apply template",
- "templateHighAvailability": "High availability",
- "templateHighAvailabilityDesc": "Priority routing with health checks and safe retries.",
- "templateCostSaver": "Cost saver",
- "templateCostSaverDesc": "Cost-optimized routing for budget-first workloads.",
- "templateBalanced": "Balanced load",
- "templateBalancedDesc": "Least-used routing to spread demand over time.",
- "usageGuideHide": "Hide",
- "usageGuideDontShowAgain": "Don't show again",
- "usageGuideShow": "Show guide",
- "quickTestTitle": "Combo ready to validate",
- "quickTestDescription": "Run a test now to confirm fallback and latency behavior.",
- "testNow": "Test now",
- "pricingCoverage": "Pricing coverage",
- "pricingCoverageHint": "Cost-optimized works best when all combo models have pricing.",
- "pricingAvailable": "Pricing available",
- "pricingMissing": "No pricing",
- "pricingAvailableShort": "priced",
- "pricingMissingShort": "no-price",
+ "templatesTitle": "فوری ٹیمپلیٹس",
+ "templatesDescription": "ابتدائی پروفائل لاگو کریں، پھر ماڈلز اور کنفیگریشن کو ایڈجسٹ کریں۔",
+ "templateApply": "ٹیمپلیٹ لاگو کریں",
+ "templateHighAvailability": "اعلیٰ دستیابی",
+ "templateHighAvailabilityDesc": "ہیلتھ چیکس اور محفوظ دوبارہ کوششوں کے ساتھ ترجیحی روٹنگ۔",
+ "templateCostSaver": "لاگت میں بچت",
+ "templateCostSaverDesc": "بجٹ کو ترجیح دینے والے ورک لوڈز کے لیے لاگت کے لحاظ سے موزوں روٹنگ۔",
+ "templateBalanced": "متوازن لوڈ",
+ "templateBalancedDesc": "وقت کے ساتھ طلب تقسیم کرنے کے لیے کم ترین استعمال والے ماڈل کی طرف روٹنگ۔",
+ "usageGuideHide": "چھپائیں",
+ "usageGuideDontShowAgain": "دوبارہ نہ دکھائیں",
+ "usageGuideShow": "رہنما دکھائیں",
+ "quickTestTitle": "کومبو توثیق کے لیے تیار ہے",
+ "quickTestDescription": "فال بیک اور لیٹنسی کے رویے کی تصدیق کے لیے ابھی ٹیسٹ چلائیں۔",
+ "testNow": "ابھی ٹیسٹ کریں",
+ "pricingCoverage": "قیمتوں کی کوریج",
+ "pricingCoverageHint": "لاگت کے لحاظ سے موزوں طریقہ اس وقت بہترین کام کرتا ہے جب کومبو کے تمام ماڈلز کی قیمتیں دستیاب ہوں۔",
+ "pricingAvailable": "قیمت دستیاب ہے",
+ "pricingMissing": "قیمت دستیاب نہیں",
+ "pricingAvailableShort": "قیمت موجود",
+ "pricingMissingShort": "بلا قیمت",
"fallbackOnlyOnQuotaExhaustion": "صرف کوٹہ ختم ہونے پر آگے بڑھیں",
"fallbackOnlyOnQuotaExhaustionShort": "کوٹہ صرف متبادل",
- "warningRoundRobinSingleModel": "Round-robin is most useful with at least 2 models.",
- "warningCostOptimizedPartialPricing": "Only {priced} of {total} models have pricing. Routing may be partially cost-aware.",
- "warningCostOptimizedNoPricing": "No pricing data found for this combo. Cost-optimized may route unexpectedly.",
- "filterAll": "All",
- "filterIntelligent": "Intelligent",
- "filterDeterministic": "Deterministic",
- "filterEmptyTitle": "No combos match this strategy filter.",
- "filterEmptyIntelligentDescription": "Create an auto or LKGP combo to populate the intelligent routing dashboard.",
- "filterEmptyDeterministicDescription": "Only auto and LKGP combos exist right now. Switch back to All or create a deterministic combo.",
- "readinessTitle": "Ready to save?",
- "readinessDescription": "Review the checklist before creating or updating this combo.",
- "readinessCheckName": "Combo name is valid",
- "readinessCheckModels": "At least one model is selected",
- "readinessCheckWeights": "Weighted total is 100%",
- "readinessCheckWeightsOptional": "Weight rule not required",
- "readinessCheckPricing": "Pricing data is available",
- "readinessCheckPricingOptional": "Pricing rule not required",
- "saveBlockedTitle": "Save is blocked until the following items are fixed:",
- "saveBlockName": "Define a combo name.",
- "saveBlockModels": "Add at least one model.",
- "saveBlockWeighted": "Set weights to 100% (current: {total}%).",
- "saveBlockPricing": "Add pricing for at least one model or choose a different strategy.",
- "recommendationsLabel": "Recommended setup",
- "applyRecommendations": "Apply recommendations",
- "recommendationsUpdated": "Recommendations updated for {strategy}.",
- "recommendationsApplied": "Recommendations applied to this combo.",
- "intelligentPanelTitle": "Intelligent Routing Dashboard",
- "intelligentPanelDesc": "Real-time scoring and health status for this auto-routing combo.",
+ "warningRoundRobinSingleModel": "راؤنڈ رابن کم از کم 2 ماڈلز کے ساتھ سب سے زیادہ مفید ہے۔",
+ "warningCostOptimizedPartialPricing": "{total} میں سے صرف {priced} ماڈلز کی قیمتیں دستیاب ہیں۔ روٹنگ جزوی طور پر لاگت سے آگاہ ہو سکتی ہے۔",
+ "warningCostOptimizedNoPricing": "اس کومبو کے لیے قیمتوں کا کوئی ڈیٹا نہیں ملا۔ لاگت کے لحاظ سے موزوں روٹنگ غیر متوقع انداز میں کام کر سکتی ہے۔",
+ "filterAll": "سبھی",
+ "filterIntelligent": "ذہین",
+ "filterDeterministic": "قطعی",
+ "filterEmptyTitle": "کوئی کومبو اس حکمتِ عملی کے فلٹر سے مطابقت نہیں رکھتا۔",
+ "filterEmptyIntelligentDescription": "ذہین روٹنگ ڈیش بورڈ کو پُر کرنے کے لیے auto یا LKGP کومبو بنائیں۔",
+ "filterEmptyDeterministicDescription": "فی الحال صرف auto اور LKGP کومبو موجود ہیں۔ واپس All پر جائیں یا ایک deterministic کومبو بنائیں۔",
+ "readinessTitle": "محفوظ کرنے کے لیے تیار ہیں؟",
+ "readinessDescription": "اس کومبو کو بنانے یا اپ ڈیٹ کرنے سے پہلے چیک لسٹ کا جائزہ لیں۔",
+ "readinessCheckName": "کومبو کا نام درست ہے",
+ "readinessCheckModels": "کم از کم ایک ماڈل منتخب ہے",
+ "readinessCheckWeights": "وزن کا مجموعہ 100% ہے",
+ "readinessCheckWeightsOptional": "وزن کا اصول درکار نہیں",
+ "readinessCheckPricing": "قیمتوں کا ڈیٹا دستیاب ہے",
+ "readinessCheckPricingOptional": "قیمت کا اصول درکار نہیں",
+ "saveBlockedTitle": "جب تک درج ذیل مسائل حل نہیں کیے جاتے، محفوظ کرنا ممکن نہیں:",
+ "saveBlockName": "کومبو کا نام متعین کریں۔",
+ "saveBlockModels": "کم از کم ایک ماڈل شامل کریں۔",
+ "saveBlockWeighted": "وزن 100% پر سیٹ کریں (موجودہ: {total}%)۔",
+ "saveBlockPricing": "کم از کم ایک ماڈل کے لیے قیمت شامل کریں یا کوئی مختلف حکمتِ عملی منتخب کریں۔",
+ "recommendationsLabel": "تجویز کردہ سیٹ اپ",
+ "applyRecommendations": "تجاویز لاگو کریں",
+ "recommendationsUpdated": "{strategy} کے لیے تجاویز اپ ڈیٹ کر دی گئی ہیں۔",
+ "recommendationsApplied": "اس کومبو پر تجاویز لاگو کر دی گئی ہیں۔",
+ "intelligentPanelTitle": "ذہین روٹنگ ڈیش بورڈ",
+ "intelligentPanelDesc": "اس auto-routing کومبو کے لیے ریئل ٹائم اسکورنگ اور صحت کی حالت۔",
"configOnlyStatus": "کنفیگریشن ویو",
"configOnlyHint": "یہ پینل صرف روٹنگ ان پٹس دکھاتا ہے۔ لائیو بریکر کی حالت Health صفحے پر دستیاب ہے۔",
"routingInputs": "روٹنگ ان پٹس",
@@ -3501,89 +3505,89 @@
"manualModelUnknownProvider": "نامعلوم فراہم کنندہ کا پریفکس۔",
"builderDynamicAccountShort": "ڈائنامک اکاؤنٹ",
"builderNeedValidName": "آگے بڑھنے سے پہلے ایک درست کومبو نام کی وضاحت کریں۔",
- "statusOverview": "Status Overview",
- "normalOperation": "Normal Operation",
- "allProvidersHealthy": "Providers are reporting healthy routing conditions.",
- "incidentMode": "Incident Mode",
- "highCircuitBreakerRate": "High circuit breaker trip rate detected.",
- "activeModePack": "Active Mode Pack",
- "modePackUpdated": "Mode pack updated to {pack}.",
- "modePackHint": "Switch presets to bias the routing engine without rebuilding the combo.",
- "providerScores": "Provider Scores",
- "allProvidersEvaluated": "No candidate pool configured. All active providers are evaluated at runtime.",
- "excludedProviders": "Excluded Providers",
- "excludedProvidersHint": "Providers with an OPEN circuit breaker are temporarily excluded from routing.",
- "noExcludedProviders": "No providers are currently excluded.",
- "cooldownMinutes": "Cooldown: {minutes}m",
- "builderIntelligentTitle": "Intelligent Routing Configuration",
- "builderIntelligentDesc": "Configure the multi-factor scoring engine for this auto-routing combo.",
- "candidatePoolLabel": "Candidate Pool",
- "candidatePoolHint": "Select which providers this engine should evaluate. Leave empty to use all active providers.",
- "candidatePoolEmpty": "No active providers available yet.",
- "candidatePoolAllProviders": "All providers",
- "modePackLabel": "Mode Pack",
- "routerStrategyLabel": "Router Strategy",
- "strategyRules": "Rules (6-Factor Scoring)",
- "explorationRateLabel": "Exploration Rate",
- "explorationRateHint": "{percent}% of requests can explore non-optimal providers.",
- "budgetCapLabel": "Budget Cap (USD / request)",
- "budgetCapPlaceholder": "No limit",
- "advancedWeightsTitle": "Advanced: Scoring Weights",
+ "statusOverview": "حالت کا جائزہ",
+ "normalOperation": "معمول کے مطابق کام",
+ "allProvidersHealthy": "فراہم کنندگان روٹنگ کے حالات صحت مند ہونے کی اطلاع دے رہے ہیں۔",
+ "incidentMode": "واقعہ موڈ",
+ "highCircuitBreakerRate": "سرکٹ بریکر کے ٹرپ ہونے کی بلند شرح کا پتا چلا ہے۔",
+ "activeModePack": "فعال موڈ پیک",
+ "modePackUpdated": "موڈ پیک کو {pack} پر اپ ڈیٹ کر دیا گیا ہے۔",
+ "modePackHint": "کومبو دوبارہ بنائے بغیر روٹنگ انجن کا رجحان تبدیل کرنے کے لیے پری سیٹس تبدیل کریں۔",
+ "providerScores": "فراہم کنندگان کے اسکورز",
+ "allProvidersEvaluated": "کوئی امیدوار پول ترتیب نہیں دیا گیا۔ رن ٹائم پر تمام فعال فراہم کنندگان کا جائزہ لیا جاتا ہے۔",
+ "excludedProviders": "خارج کردہ فراہم کنندگان",
+ "excludedProvidersHint": "OPEN سرکٹ بریکر والے فراہم کنندگان کو عارضی طور پر روٹنگ سے خارج کر دیا جاتا ہے۔",
+ "noExcludedProviders": "فی الحال کوئی فراہم کنندہ خارج نہیں ہے۔",
+ "cooldownMinutes": "کول ڈاؤن: {minutes} منٹ",
+ "builderIntelligentTitle": "ذہین روٹنگ کی ترتیب",
+ "builderIntelligentDesc": "اس auto-routing کومبو کے لیے کثیر العوامل اسکورنگ انجن ترتیب دیں۔",
+ "candidatePoolLabel": "امیدوار پول",
+ "candidatePoolHint": "منتخب کریں کہ اس انجن کو کن فراہم کنندگان کا جائزہ لینا چاہیے۔ تمام فعال فراہم کنندگان استعمال کرنے کے لیے اسے خالی چھوڑ دیں۔",
+ "candidatePoolEmpty": "ابھی تک کوئی فعال فراہم کنندہ دستیاب نہیں ہے۔",
+ "candidatePoolAllProviders": "تمام فراہم کنندگان",
+ "modePackLabel": "موڈ پیک",
+ "routerStrategyLabel": "راؤٹر کی حکمتِ عملی",
+ "strategyRules": "قواعد (6 عوامل پر مبنی اسکورنگ)",
+ "explorationRateLabel": "تجرباتی شرح",
+ "explorationRateHint": "درخواستوں میں سے {percent}% غیر موزوں فراہم کنندگان کو آزما سکتی ہیں۔",
+ "budgetCapLabel": "بجٹ کی حد (USD / درخواست)",
+ "budgetCapPlaceholder": "کوئی حد نہیں",
+ "advancedWeightsTitle": "اعلیٰ اختیارات: اسکورنگ کے اوزان",
"nestedComboFlatten": "نیسٹڈ کومبوز کو فلیٹن کریں",
"nestedComboExecute": "نیسٹڈ کومبوز کو اہداف کے طور پر چلائیں",
"effectiveRoutingShare": "مؤثر روٹنگ شیئر (وزن ÷ کل)",
- "weightQuota": "Quota",
- "weightHealth": "Health",
- "weightCostInv": "Cost",
- "weightLatencyInv": "Latency",
- "weightTaskFit": "Task Fit",
- "weightStability": "Stability",
- "weightTierPriority": "Tier",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightQuota": "کوٹہ",
+ "weightHealth": "صحت",
+ "weightCostInv": "لاگت",
+ "weightLatencyInv": "تاخیر",
+ "weightTaskFit": "کام سے مطابقت",
+ "weightStability": "استحکام",
+ "weightTierPriority": "درجہ",
+ "weightCacheAffinity": "کیش ہٹ سے وابستگی",
"weightSessionAvailability": "سیشن کی دستیابی",
- "reviewIntelligentTitle": "Intelligent Routing Config",
+ "reviewIntelligentTitle": "ذہین روٹنگ کی کنفیگریشن",
"strategyRecommendations": {
"priority": {
- "title": "Fail-safe baseline",
- "description": "Use one primary model and keep fallback chain short and reliable.",
- "tip1": "Put your most reliable model first.",
- "tip2": "Keep 1-2 backup models with similar quality.",
- "tip3": "Use safe retries to absorb transient provider failures."
+ "title": "محفوظ بنیادی ترتیب",
+ "description": "ایک بنیادی ماڈل استعمال کریں اور فال بیک سلسلے کو مختصر اور قابلِ اعتماد رکھیں۔",
+ "tip1": "اپنے سب سے قابلِ اعتماد ماڈل کو پہلے رکھیں۔",
+ "tip2": "یکساں معیار کے 1-2 بیک اپ ماڈلز رکھیں۔",
+ "tip3": "فراہم کنندہ کی عارضی ناکامیوں سے نمٹنے کے لیے محفوظ دوبارہ کوششیں استعمال کریں۔"
},
"weighted": {
- "title": "Controlled traffic split",
- "description": "Great for canary rollouts and gradual migration between models.",
- "tip1": "Start with conservative split like 90/10.",
- "tip2": "Keep the total at 100% and auto-balance after changes.",
- "tip3": "Monitor success and latency before increasing canary weight."
+ "title": "ٹریفک کی کنٹرول شدہ تقسیم",
+ "description": "کینری رول آؤٹس اور ماڈلز کے درمیان بتدریج منتقلی کے لیے بہترین ہے۔",
+ "tip1": "90/10 جیسی محتاط تقسیم سے آغاز کریں۔",
+ "tip2": "مجموعہ 100% پر رکھیں اور تبدیلیوں کے بعد خودکار طور پر توازن قائم کریں۔",
+ "tip3": "کینری کا وزن بڑھانے سے پہلے کامیابی اور تاخیر کی نگرانی کریں۔"
},
"round-robin": {
- "title": "Predictable load sharing",
- "description": "Best when models are equivalent and you need smooth distribution.",
- "tip1": "Use at least 2 models.",
- "tip2": "Set concurrency limits to avoid burst overload.",
- "tip3": "Use queue timeout to fail fast under saturation."
+ "title": "قابلِ پیش گوئی لوڈ شیئرنگ",
+ "description": "اس وقت بہترین ہے جب ماڈلز مساوی ہوں اور آپ کو ہموار تقسیم درکار ہو۔",
+ "tip1": "کم از کم 2 ماڈلز استعمال کریں۔",
+ "tip2": "اچانک حد سے زیادہ بوجھ سے بچنے کے لیے ہم وقتی کی حدود مقرر کریں۔",
+ "tip3": "انتہائی بوجھ کی صورت میں فوری ناکامی کے لیے قطار کی مہلت مقرر کریں۔"
},
"random": {
- "title": "Quick spread with low setup",
- "description": "Use when you need simple distribution without strict guarantees.",
- "tip1": "Use models with similar latency profiles.",
- "tip2": "Keep retries enabled to absorb random misses.",
- "tip3": "Prefer this for experimentation, not strict SLAs."
+ "title": "کم سیٹ اپ کے ساتھ فوری تقسیم",
+ "description": "اس وقت استعمال کریں جب سخت ضمانتوں کے بغیر سادہ تقسیم درکار ہو۔",
+ "tip1": "یکساں تاخیر کے پروفائل والے ماڈلز استعمال کریں۔",
+ "tip2": "بے ترتیب ناکامیوں سے نمٹنے کے لیے دوبارہ کوششیں فعال رکھیں۔",
+ "tip3": "سخت SLAs کے بجائے تجربات کے لیے اسے ترجیح دیں۔"
},
"least-used": {
- "title": "Adaptive balancing",
- "description": "Routes to less-used models to reduce hotspots over time.",
- "tip1": "Works better under continuous traffic.",
- "tip2": "Combine with health checks for safer balancing.",
- "tip3": "Track per-model usage to validate distribution gains."
+ "title": "حسبِ ضرورت توازن",
+ "description": "وقت کے ساتھ زیادہ بوجھ والے مقامات کو کم کرنے کے لیے درخواستوں کو کم استعمال شدہ ماڈلز کی طرف بھیجتا ہے۔",
+ "tip1": "مسلسل ٹریفک میں بہتر کام کرتا ہے۔",
+ "tip2": "زیادہ محفوظ توازن کے لیے ہیلتھ چیکس کے ساتھ یکجا کریں۔",
+ "tip3": "تقسیم میں بہتری کی توثیق کے لیے ہر ماڈل کے استعمال کو ٹریک کریں۔"
},
"cost-optimized": {
- "title": "Budget-first routing",
- "description": "Routes to lower-cost models when pricing metadata is available.",
- "tip1": "Ensure pricing coverage for all selected models.",
- "tip2": "Keep a quality fallback for hard prompts.",
- "tip3": "Use for batch/background jobs where cost is the main KPI."
+ "title": "بجٹ کو ترجیح دینے والی روٹنگ",
+ "description": "قیمتوں کا میٹا ڈیٹا دستیاب ہونے پر کم لاگت والے ماڈلز کی طرف روٹ کرتا ہے۔",
+ "tip1": "تمام منتخب ماڈلز کے لیے قیمتوں کی مکمل کوریج یقینی بنائیں۔",
+ "tip2": "مشکل پرامپٹس کے لیے معیاری فال بیک برقرار رکھیں۔",
+ "tip3": "ایسی بیچ/بیک گراؤنڈ جابز کے لیے استعمال کریں جہاں لاگت بنیادی KPI ہو۔"
},
"reset-aware": {
"title": "باخبر اکاؤنٹ کی گردش کو دوبارہ ترتیب دیں۔",
@@ -3593,155 +3597,155 @@
"tip3": "ٹائی بینڈ کو چھوٹا رکھیں تاکہ مساوی اکاؤنٹس اب بھی مناسب طریقے سے گھومیں۔"
},
"strict-random": {
- "title": "Shuffle deck distribution",
- "description": "Each model is used exactly once per cycle before reshuffling.",
- "tip1": "Use at least 2 models for meaningful distribution.",
- "tip2": "Works best with equivalent-performance models.",
- "tip3": "Ideal for load balancing across multiple API accounts."
+ "title": "شفل ڈیک تقسیم",
+ "description": "دوبارہ شفل ہونے سے پہلے ہر سائیکل میں ہر ماڈل بالکل ایک بار استعمال ہوتا ہے۔",
+ "tip1": "بامعنی تقسیم کے لیے کم از کم 2 ماڈلز استعمال کریں۔",
+ "tip2": "یکساں کارکردگی والے ماڈلز کے ساتھ بہترین کام کرتا ہے۔",
+ "tip3": "متعدد API اکاؤنٹس میں لوڈ بیلنسنگ کے لیے مثالی ہے۔"
},
"fill-first": {
- "description": "Exhaust provider quotas sequentially before falling back.",
- "tip1": "Use for quota-based routing with clear fallback chains.",
- "tip2": "Set quotas accurately to avoid premature fallback.",
- "tip3": "Works best with providers offering free tiers or credit buckets.",
- "title": "Quota Exhaustion"
+ "description": "فال بیک سے پہلے فراہم کنندہ کے کوٹے ترتیب وار مکمل طور پر استعمال کریں۔",
+ "tip1": "واضح فال بیک چینز کے ساتھ کوٹے پر مبنی روٹنگ کے لیے استعمال کریں۔",
+ "tip2": "قبل از وقت فال بیک سے بچنے کے لیے کوٹے درست طور پر مقرر کریں۔",
+ "tip3": "مفت ٹیئرز یا کریڈٹ بکٹس پیش کرنے والے فراہم کنندگان کے ساتھ بہترین کام کرتا ہے۔",
+ "title": "کوٹے کا خاتمہ"
},
"auto": {
- "description": "Route based on real-time scoring for cost, latency, quality, and health.",
- "tip1": "Let the engine balance multiple factors automatically.",
- "tip2": "Monitor which factors drive routing decisions in logs.",
- "tip3": "Use for complex workloads where no single factor dominates.",
- "title": "Multi-Factor Optimization"
+ "description": "لاگت، تاخیر، معیار اور صحت کی ریئل ٹائم اسکورنگ کی بنیاد پر روٹ کریں۔",
+ "tip1": "انجن کو متعدد عوامل میں خودکار طور پر توازن قائم کرنے دیں۔",
+ "tip2": "لاگز میں نگرانی کریں کہ کون سے عوامل روٹنگ کے فیصلوں پر اثر انداز ہوتے ہیں۔",
+ "tip3": "ایسے پیچیدہ ورک لوڈز کے لیے استعمال کریں جہاں کوئی ایک عامل غالب نہ ہو۔",
+ "title": "کثیر عاملی بہتری"
},
"lkgp": {
- "description": "Route based on historical performance and success patterns.",
- "tip1": "Requires sufficient request history for accurate predictions.",
- "tip2": "Good for workloads with consistent model performance patterns.",
- "tip3": "Monitor prediction accuracy and adjust weights as needed.",
- "title": "History-Based Routing"
+ "description": "تاریخی کارکردگی اور کامیابی کے نمونوں کی بنیاد پر روٹ کریں۔",
+ "tip1": "درست پیش گوئیوں کے لیے درخواستوں کی کافی تاریخ درکار ہے۔",
+ "tip2": "ماڈل کی کارکردگی کے مستقل نمونوں والے ورک لوڈز کے لیے موزوں ہے۔",
+ "tip3": "پیش گوئی کی درستگی کی نگرانی کریں اور ضرورت کے مطابق وزن ایڈجسٹ کریں۔",
+ "title": "تاریخ پر مبنی روٹنگ"
},
"context-optimized": {
- "description": "Optimize routing based on context window usage and token efficiency.",
- "tip1": "Route long conversations to models with larger context windows.",
- "tip2": "Monitor context utilization to avoid token waste.",
- "tip3": "Best for conversational AI requiring extensive context retention.",
- "title": "Context Optimization"
+ "description": "کانٹیکسٹ ونڈو کے استعمال اور ٹوکن کی کارکردگی کی بنیاد پر روٹنگ کو بہتر بنائیں۔",
+ "tip1": "طویل گفتگوؤں کو بڑی کانٹیکسٹ ونڈوز والے ماڈلز کی طرف روٹ کریں۔",
+ "tip2": "ٹوکن کے ضیاع سے بچنے کے لیے کانٹیکسٹ کے استعمال کی نگرانی کریں۔",
+ "tip3": "وسیع کانٹیکسٹ برقرار رکھنے والی مکالماتی AI کے لیے بہترین ہے۔",
+ "title": "کانٹیکسٹ کی بہتری"
},
"context-relay": {
- "description": "Best when account rotation is expected and the next account must inherit a simplified task summary.",
- "tip1": "Use with providers rotating accounts for the same model family.",
- "tip2": "Set handoff threshold below hard quota cutoffs for summary generation time.",
- "tip3": "Only set a dedicated summary model if the primary is too expensive or unstable.",
- "title": "Session Continuity Priority"
+ "description": "اس وقت بہترین ہے جب اکاؤنٹ کی تبدیلی متوقع ہو اور اگلے اکاؤنٹ کو کام کا ایک آسان خلاصہ وراثت میں ملنا ضروری ہو۔",
+ "tip1": "ایک ہی ماڈل فیملی کے لیے اکاؤنٹس تبدیل کرنے والے فراہم کنندگان کے ساتھ استعمال کریں۔",
+ "tip2": "خلاصہ تیار کرنے کے وقت کے لیے ہینڈ آف کی حد کو کوٹے کی قطعی حد سے کم مقرر کریں۔",
+ "tip3": "صرف اسی صورت میں مخصوص خلاصہ ماڈل مقرر کریں جب بنیادی ماڈل بہت مہنگا یا غیر مستحکم ہو۔",
+ "title": "سیشن کے تسلسل کی ترجیح"
},
"p2c": {
- "description": "Route to the provider with the lowest current load based on real-time metrics.",
- "tip1": "Monitor provider health metrics for accurate load assessment.",
- "tip2": "Works best with homogeneous provider pools.",
- "tip3": "Adjust sensitivity to avoid oscillation during traffic spikes.",
- "title": "Power of Two Choices"
+ "description": "ریئل ٹائم میٹرکس کی بنیاد پر اس فراہم کنندہ کی طرف روٹ کریں جس پر موجودہ لوڈ سب سے کم ہو۔",
+ "tip1": "لوڈ کے درست جائزے کے لیے فراہم کنندہ کے ہیلتھ میٹرکس کی نگرانی کریں۔",
+ "tip2": "یکساں نوعیت کے فراہم کنندہ پولز کے ساتھ بہترین کام کرتا ہے۔",
+ "tip3": "ٹریفک میں اچانک اضافے کے دوران ارتعاش سے بچنے کے لیے حساسیت کو ایڈجسٹ کریں۔",
+ "title": "دو انتخاب کی طاقت"
}
},
- "templateFreeStack": "Free Stack ($0)",
- "templateFreeStackDesc": "Round-robin across all free providers: Kiro (Claude), Qoder (5 models), Qwen (4 models). Zero cost, never stops coding.",
- "auto": "Intelligent Auto",
- "autoDesc": "Self-healing smart routing pool with multi-factor scoring",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Prioritizes the last provider that successfully completed a request",
- "wizardGuideTitle": "Getting Started with Combos",
- "wizardGuideDesc": "Create model combos to route AI traffic intelligently",
- "wizardGuideHint": "or click + Create Combo above",
- "createFirstCombo": "Create Your First Combo",
- "wizardStep1Title": "Name Your Combo",
- "wizardStep1Desc": "Give your combo a unique name to identify it in routing rules",
- "wizardStep2Title": "Add Models",
- "wizardStep2Desc": "Select AI models and arrange their fallback priority order",
- "wizardStep3Title": "Choose Strategy",
+ "templateFreeStack": "مفت اسٹیک ($0)",
+ "templateFreeStackDesc": "تمام مفت فراہم کنندگان میں باری باری تقسیم: Kiro (Claude)، Qoder (5 ماڈلز)، Qwen (4 ماڈلز)۔ کوئی لاگت نہیں، کوڈنگ کبھی نہیں رکتی۔",
+ "auto": "ذہین خودکار",
+ "autoDesc": "کثیر عنصری اسکورنگ کے ساتھ خود بحال ہونے والا اسمارٹ روٹنگ پول",
+ "lkgp": "LKGP موڈ",
+ "lkgpDesc": "اس آخری فراہم کنندہ کو ترجیح دیتا ہے جس نے کامیابی سے درخواست مکمل کی ہو",
+ "wizardGuideTitle": "کومبوز کے ساتھ شروعات",
+ "wizardGuideDesc": "AI ٹریفک کو ذہانت سے روٹ کرنے کے لیے ماڈل کومبوز بنائیں",
+ "wizardGuideHint": "یا اوپر + کومبو بنائیں پر کلک کریں",
+ "createFirstCombo": "اپنا پہلا کومبو بنائیں",
+ "wizardStep1Title": "اپنے کومبو کا نام رکھیں",
+ "wizardStep1Desc": "روٹنگ قواعد میں شناخت کے لیے اپنے کومبو کو ایک منفرد نام دیں",
+ "wizardStep2Title": "ماڈلز شامل کریں",
+ "wizardStep2Desc": "AI ماڈلز منتخب کریں اور ان کی فال بیک ترجیحی ترتیب مرتب کریں",
+ "wizardStep3Title": "حکمتِ عملی منتخب کریں",
"wizardStep3Desc": "Pick how requests are distributed across your models - 13 strategies available",
- "wizardStep4Title": "Review & Save",
- "wizardStep4Desc": "Review your configuration and activate the combo",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
- "emailVisibilityStateOn": "On",
- "emailVisibilityStateOff": "Off",
- "reorderHandle": "Drag to reorder",
- "failedReorder": "Failed to reorder models",
- "builderFlowTitle": "Combo Builder Flow",
+ "wizardStep4Title": "جائزہ لیں اور محفوظ کریں",
+ "wizardStep4Desc": "اپنی کنفیگریشن کا جائزہ لیں اور کومبو فعال کریں",
+ "usageGuideInvokeTitle": "اس کومبو کو کال کرنے کا طریقہ",
+ "usageGuideInvokeDesc": "ماڈل کے طور پر کومبو کا عین نام بھیجیں، مثلاً model: \"my-combo\" (یا combo/my-combo)۔",
+ "usageGuideInvokeAutoNote": "auto اور auto/* ایک علیحدہ زیرو کنفیگ راؤٹر ہیں جو آپ کے کومبوز استعمال نہیں کرتے (جب تک کسی کومبو کا نام واقعی auto نہ ہو)۔",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto ایک حقیقی بامعاوضہ OpenRouter پروڈکٹ (Auto Best Available) ہے، OmniRoute کا عرف نہیں — اسے Settings → Routing → Hide paid models کے ذریعے خارج کریں۔",
+ "emailVisibilityStateOn": "چالو",
+ "emailVisibilityStateOff": "بند",
+ "reorderHandle": "ترتیب بدلنے کے لیے گھسیٹیں",
+ "failedReorder": "ماڈلز کی ترتیب بدلنے میں ناکامی",
+ "builderFlowTitle": "کومبو بلڈر فلو",
"builderStage": {
"basics": {
- "label": "Basics",
- "description": "Name and starting template"
+ "label": "بنیادی امور",
+ "description": "نام اور ابتدائی ٹیمپلیٹ"
},
"steps": {
- "label": "Steps",
- "description": "Provider, model, and account selection"
+ "label": "مراحل",
+ "description": "فراہم کنندہ، ماڈل، اور اکاؤنٹ کا انتخاب"
},
"strategy": {
- "label": "Strategy",
- "description": "Routing behavior and advanced settings"
+ "label": "حکمتِ عملی",
+ "description": "روٹنگ کا طرزِ عمل اور اعلیٰ ترتیبات"
},
"intelligent": {
- "label": "Smart Routing",
- "description": "Auto-routing candidate pool, presets, and scoring"
+ "label": "اسمارٹ روٹنگ",
+ "description": "خودکار روٹنگ کا امیدوار پول، پری سیٹس، اور اسکورنگ"
},
"review": {
- "label": "Review",
- "description": "Final validation before saving"
+ "label": "جائزہ",
+ "description": "محفوظ کرنے سے پہلے حتمی توثیق"
}
},
- "builderStageVisited": "Stage completed",
- "builderStageCurrent": "Current stage",
- "builderStagePending": "Pending",
- "builderStageLocked": "Locked — complete previous stage first",
- "builderTitle": "Build a Combo",
- "builderBrowseCatalog": "Browse catalog",
- "builderProvider": "Provider",
- "builderLoadingProviders": "Loading providers...",
- "builderSelectProvider": "Select provider",
- "builderModel": "Model",
- "builderSelectModel": "Select model",
- "builderProviderFirst": "Pick provider first",
- "builderAccount": "Account",
- "builderPreview": "Preview",
- "builderAddStep": "Add step",
- "builderDuplicateExact": "This exact provider/model/account step is already in the combo.",
- "builderComboRef": "Combo Ref",
- "builderAddComboRef": "Add combo reference",
- "builderComboRefStep": "Add combo reference",
- "builderPinnedAccount": "Pinned Account",
- "builderLegacyEntry": "Legacy entry",
- "reviewName": "Name",
- "reviewStrategy": "Strategy",
- "reviewSteps": "Steps",
- "reviewAccounts": "Accounts",
- "reviewProviders": "Providers",
- "reviewComboRefs": "Combo References",
- "reviewAdvanced": "Advanced Settings",
- "reviewAgentFlags": "Agent Flags",
- "reviewSequence": "Model Sequence",
- "reviewNoSteps": "No steps configured",
- "builderStagesDescription": "Complete each stage in order to define combos, build steps, select routing strategy, and review results.",
- "builderStepsDescription": "Build each combo step in order: provider, model, then account. This allows reusing the same provider and model across different accounts.",
- "selectProvider": "Select Provider",
- "selectProviderPlaceholder": "Select a provider",
- "selectModel": "Select Model",
- "selectModelPlaceholder": "Select a provider first",
- "selectAccount": "Select Account",
- "selectComboToReference": "Select combo to reference",
- "comboReference": "Combo Reference",
- "addComboReference": "Add Combo Reference",
- "addStepBeforeContinue": "Please add at least one step before proceeding to the next stage.",
- "previewNextStep": "Preview next step",
- "autoSelectAccount": "Automatically select account at runtime",
- "modePackBalanced": "Balanced",
- "modePackBudget": "Budget",
- "modePackPerformance": "Performance",
- "modePackCustom": "Custom",
- "browseLegacyCatalog": "Browse legacy combo catalog",
- "agentFeaturesTitle": "Agent Features",
- "agentFeaturesDescription": "Enable advanced features for agents using this combo",
+ "builderStageVisited": "مرحلہ مکمل ہو گیا",
+ "builderStageCurrent": "موجودہ مرحلہ",
+ "builderStagePending": "زیرِ التوا",
+ "builderStageLocked": "مقفل — پہلے پچھلا مرحلہ مکمل کریں",
+ "builderTitle": "کومبو بنائیں",
+ "builderBrowseCatalog": "کیٹلاگ براؤز کریں",
+ "builderProvider": "فراہم کنندہ",
+ "builderLoadingProviders": "فراہم کنندگان لوڈ ہو رہے ہیں...",
+ "builderSelectProvider": "فراہم کنندہ منتخب کریں",
+ "builderModel": "ماڈل",
+ "builderSelectModel": "ماڈل منتخب کریں",
+ "builderProviderFirst": "پہلے فراہم کنندہ منتخب کریں",
+ "builderAccount": "اکاؤنٹ",
+ "builderPreview": "پیش منظر",
+ "builderAddStep": "مرحلہ شامل کریں",
+ "builderDuplicateExact": "فراہم کنندہ/ماڈل/اکاؤنٹ کا بالکل یہی مرحلہ پہلے ہی کومبو میں موجود ہے۔",
+ "builderComboRef": "کومبو حوالہ",
+ "builderAddComboRef": "کومبو حوالہ شامل کریں",
+ "builderComboRefStep": "کومبو حوالہ شامل کریں",
+ "builderPinnedAccount": "پن کیا گیا اکاؤنٹ",
+ "builderLegacyEntry": "پرانا اندراج",
+ "reviewName": "نام",
+ "reviewStrategy": "حکمتِ عملی",
+ "reviewSteps": "مراحل",
+ "reviewAccounts": "اکاؤنٹس",
+ "reviewProviders": "فراہم کنندگان",
+ "reviewComboRefs": "کومبو حوالہ جات",
+ "reviewAdvanced": "اعلیٰ ترتیبات",
+ "reviewAgentFlags": "ایجنٹ فلیگز",
+ "reviewSequence": "ماڈل کی ترتیب",
+ "reviewNoSteps": "کوئی مرحلہ ترتیب نہیں دیا گیا",
+ "builderStagesDescription": "کومبو کی وضاحت، مراحل کی تشکیل، روٹنگ کی حکمتِ عملی کے انتخاب اور نتائج کے جائزے کے لیے ہر مرحلہ بالترتیب مکمل کریں۔",
+ "builderStepsDescription": "کومبو کا ہر مرحلہ اس ترتیب سے بنائیں: فراہم کنندہ، ماڈل، پھر اکاؤنٹ۔ اس سے مختلف اکاؤنٹس میں ایک ہی فراہم کنندہ اور ماڈل دوبارہ استعمال کیے جا سکتے ہیں۔",
+ "selectProvider": "فراہم کنندہ منتخب کریں",
+ "selectProviderPlaceholder": "ایک فراہم کنندہ منتخب کریں",
+ "selectModel": "ماڈل منتخب کریں",
+ "selectModelPlaceholder": "پہلے ایک فراہم کنندہ منتخب کریں",
+ "selectAccount": "اکاؤنٹ منتخب کریں",
+ "selectComboToReference": "حوالہ دینے کے لیے کومبو منتخب کریں",
+ "comboReference": "کومبو حوالہ",
+ "addComboReference": "کومبو حوالہ شامل کریں",
+ "addStepBeforeContinue": "اگلے مرحلے پر جانے سے پہلے کم از کم ایک مرحلہ شامل کریں۔",
+ "previewNextStep": "اگلے مرحلے کا پیش منظر",
+ "autoSelectAccount": "رن ٹائم پر اکاؤنٹ خودکار طور پر منتخب کریں",
+ "modePackBalanced": "متوازن",
+ "modePackBudget": "بجٹ",
+ "modePackPerformance": "کارکردگی",
+ "modePackCustom": "حسبِ ضرورت",
+ "browseLegacyCatalog": "پرانا کومبو کیٹلاگ براؤز کریں",
+ "agentFeaturesTitle": "ایجنٹ کی خصوصیات",
+ "agentFeaturesDescription": "اس کومبو کو استعمال کرنے والے ایجنٹس کے لیے جدید خصوصیات فعال کریں",
"responseValidationTitle": "جواب کی توثیق",
"responseValidationHelp": "جب 200 OK باڈی ان جانچوں میں ناکام ہو جائے (معاون کا مواد) تو اگلے ہدف پر فیل اوور کریں۔",
"responseValidationForbidden": "ممنوعہ ذیلی سٹرنگز (فی سطر ایک)",
@@ -3749,13 +3753,13 @@
"responseValidationMinLength": "مواد کی کم از کم لمبائی (حروف)",
"responseValidationJsonPaths": "JSON-path کی جانچیں",
"responseValidationAddCheck": "+ جانچ شامل کریں",
- "agentFeaturesSystemMessageOverride": "Override system message",
- "agentFeaturesSystemMessagePlaceholder": "You are an expert assistant...",
- "agentFeaturesSystemMessageHint": "System message override for agents",
+ "agentFeaturesSystemMessageOverride": "سسٹم پیغام کو اوور رائیڈ کریں",
+ "agentFeaturesSystemMessagePlaceholder": "آپ ایک ماہر معاون ہیں...",
+ "agentFeaturesSystemMessageHint": "ایجنٹس کے لیے سسٹم پیغام کا اوور رائیڈ",
"agentFeaturesToolFilterRegex": "/regex-pattern/",
- "agentFeaturesToolFilterHint": "Tool filter regex for agents",
- "agentFeaturesContextCacheHint": "Enable in-context cache for agent tools",
- "agentFeaturesContextCacheProtection": "Protect cache from agent tool mutations",
+ "agentFeaturesToolFilterHint": "ایجنٹس کے لیے ٹول فلٹر ریجیکس",
+ "agentFeaturesContextCacheHint": "ایجنٹ ٹولز کے لیے اِن کانٹیکسٹ کیش فعال کریں",
+ "agentFeaturesContextCacheProtection": "کیش کو ایجنٹ ٹولز کی تبدیلیوں سے محفوظ رکھیں",
"agentFeaturesContextLength": "سیاق و سباق کی لمبائی",
"agentFeaturesContextLengthPlaceholder": "جیسے 128000",
"agentFeaturesContextLengthHint": "/v1/models میں اس کومبو کے لیے سیاق و سباق کی ونڈو کی وضاحت کرتا ہے۔",
@@ -3784,40 +3788,40 @@
"duplicateAutoComboTitle": "{name} سے ایک جامد کمبو بنائیں"
},
"costs": {
- "title": "Costs",
- "pageDescription": "Track spending, analyze trends, and manage your AI budget across all providers",
- "overview": "Overview",
- "budget": "Budget",
- "totalCost": "Total Cost",
- "breakdown": "Cost Breakdown",
- "noData": "No cost data",
- "byModel": "By Model",
- "byProvider": "By Provider",
- "range7d": "7 Days",
- "range30d": "30 Days",
- "range90d": "90 Days",
- "range180d": "180 Days",
- "range365d": "365 Days",
- "rangeAll": "All Time",
- "spend30d": "Spend 30D",
- "activeModels": "Active Models",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
- "selectedWindow": "Selected Window",
- "activeProviders": "Active Providers",
- "overviewTitle": "Cost Overview",
- "spend7d": "Spend 7D",
- "avgCostPerRequest": "Avg Cost / Request",
- "noCostDataDescription": "Start making requests to see cost data appear here. Costs are tracked automatically for all providers.",
- "spendToday": "Spend Today",
- "overviewLoadFailed": "Failed to load cost overview",
- "overviewDescription": "Real-time spending breakdown across all connected providers and models",
- "providerShare": "Provider Share",
- "topProviders": "Top Providers",
- "costTrend": "Cost Trend",
- "noCostDataTitle": "No cost data yet",
- "topModels": "Top Models",
- "requestsInWindow": "Requests in Window",
+ "title": "اخراجات",
+ "pageDescription": "تمام فراہم کنندگان پر اخراجات ٹریک کریں، رجحانات کا تجزیہ کریں، اور اپنے AI بجٹ کا انتظام کریں",
+ "overview": "جائزہ",
+ "budget": "بجٹ",
+ "totalCost": "کل لاگت",
+ "breakdown": "لاگت کی تفصیل",
+ "noData": "لاگت کا کوئی ڈیٹا نہیں",
+ "byModel": "ماڈل کے لحاظ سے",
+ "byProvider": "فراہم کنندہ کے لحاظ سے",
+ "range7d": "7 دن",
+ "range30d": "30 دن",
+ "range90d": "90 دن",
+ "range180d": "180 دن",
+ "range365d": "365 دن",
+ "rangeAll": "تمام مدت",
+ "spend30d": "30 دن کا خرچ",
+ "activeModels": "فعال ماڈلز",
+ "flatRateEstimateNotice": "فلیٹ ریٹ سبسکرپشنز کے لیے ٹوکن قیمت کے تخمینے شامل ہیں، بل کی گئی لاگت نہیں۔",
+ "flatRateEstimateForecast": "پیش گوئی میں فلیٹ ریٹ تخمینے شامل ہیں۔",
+ "selectedWindow": "منتخب مدت",
+ "activeProviders": "فعال فراہم کنندگان",
+ "overviewTitle": "لاگت کا جائزہ",
+ "spend7d": "7 دن کا خرچ",
+ "avgCostPerRequest": "اوسط لاگت / درخواست",
+ "noCostDataDescription": "لاگت کا ڈیٹا یہاں ظاہر کرنے کے لیے درخواستیں کرنا شروع کریں۔ تمام فراہم کنندگان کی لاگت خودکار طور پر ٹریک کی جاتی ہے۔",
+ "spendToday": "آج کا خرچ",
+ "overviewLoadFailed": "لاگت کا جائزہ لوڈ نہیں ہو سکا",
+ "overviewDescription": "تمام منسلک فراہم کنندگان اور ماڈلز کے اخراجات کی ریئل ٹائم تفصیل",
+ "providerShare": "فراہم کنندہ کا حصہ",
+ "topProviders": "سرفہرست فراہم کنندگان",
+ "costTrend": "لاگت کا رجحان",
+ "noCostDataTitle": "ابھی تک لاگت کا کوئی ڈیٹا نہیں ہے",
+ "topModels": "سرفہرست ماڈلز",
+ "requestsInWindow": "وقت کی مدت میں درخواستیں",
"tokenUsage": "ٹوکن کا استعمال",
"totalTokens": "کل ٹوکن",
"inputTokens": "ان پٹ ٹوکنز",
@@ -3877,139 +3881,139 @@
"showingTopCostRows": "مطابق {total} قطاروں میں سے {shown} دکھائی جا رہی ہیں (سرفہرست 50)۔"
},
"endpoint": {
- "title": "API Endpoint",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
- "available": "Available Endpoints",
+ "title": "API اینڈپوائنٹ",
+ "subtitle": "زیادہ تر SDKs اور ٹولز کے ساتھ OpenAI سے ہم آہنگ اینڈپوائنٹ استعمال کریں۔",
+ "testEndpoint": "اینڈپوائنٹ آزمائیں →",
+ "advancedProtocols": "جدید پروٹوکولز",
+ "available": "دستیاب اینڈپوائنٹس",
"cloudProxy": "Cloud Proxy",
- "disableConfirm": "Are you sure you want to disable cloud proxy?",
- "baseUrl": "Base URL",
- "apiKeyLabel": "API Key",
- "registeredKeys": "Registered Keys",
+ "disableConfirm": "کیا آپ واقعی کلاؤڈ پراکسی کو غیر فعال کرنا چاہتے ہیں؟",
+ "baseUrl": "بنیادی URL",
+ "apiKeyLabel": "API کلید",
+ "registeredKeys": "رجسٹرڈ کلیدیں",
"chatCompletions": "Chat Completions",
- "responses": "Responses",
- "listModels": "List Models",
- "usingCloudProxy": "Using Cloud Proxy",
- "usingLocalServer": "Using Local Server",
- "machineId": "Machine ID: {id}...",
- "disableCloud": "Disable Cloud",
- "enableCloud": "Enable Cloud",
- "modelsAcrossEndpoints": "{models} models across {endpoints} endpoints",
- "loadingModels": "Loading available models...",
- "chatDesc": "Streaming & non-streaming chat with all providers",
- "embeddings": "Embeddings",
- "embeddingsDesc": "Text embeddings for search & RAG pipelines",
- "imageGeneration": "Image Generation",
- "imageDesc": "Generate images from text prompts",
+ "responses": "جوابات",
+ "listModels": "ماڈلز کی فہرست",
+ "usingCloudProxy": "کلاؤڈ پراکسی استعمال ہو رہی ہے",
+ "usingLocalServer": "مقامی سرور استعمال ہو رہا ہے",
+ "machineId": "مشین ID: {id}...",
+ "disableCloud": "کلاؤڈ غیر فعال کریں",
+ "enableCloud": "کلاؤڈ فعال کریں",
+ "modelsAcrossEndpoints": "{endpoints} اینڈپوائنٹس پر {models} ماڈلز",
+ "loadingModels": "دستیاب ماڈلز لوڈ ہو رہے ہیں...",
+ "chatDesc": "تمام فراہم کنندگان کے ساتھ اسٹریمنگ اور نان اسٹریمنگ چیٹ",
+ "embeddings": "ایمبیڈنگز",
+ "embeddingsDesc": "تلاش اور RAG پائپ لائنز کے لیے ٹیکسٹ ایمبیڈنگز",
+ "imageGeneration": "تصویر سازی",
+ "imageDesc": "متنی پرامپٹس سے تصاویر بنائیں",
"rerank": "Rerank",
- "rerankDesc": "Rerank documents by relevance to a query",
- "audioTranscription": "Audio Transcription",
- "audioTranscriptionDesc": "Transcribe audio files to text (Whisper)",
- "textToSpeech": "Text to Speech",
- "textToSpeechDesc": "Convert text to natural-sounding speech",
- "musicGeneration": "Music Generation",
- "musicDesc": "Generate music and audio tracks via ComfyUI (Stable Audio, MusicGen)",
- "moderations": "Moderations",
- "moderationsDesc": "Content moderation and safety classification",
- "responsesDesc": "OpenAI Responses API for Codex and advanced agentic workflows",
- "listModelsDesc": "List all available models across all connected providers",
- "settingsApiDesc": "Read and modify OmniRoute configuration via API",
- "settingsApi": "Settings API",
- "categoryCore": "Core APIs",
- "categoryMedia": "Media & Multi-Modal",
- "categorySearch": "Search & Discovery",
- "categoryUtility": "Utility & Management",
- "webSearch": "Web Search",
- "webSearchDesc": "Unified web search across multiple providers with automatic failover and caching",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "This provider is used for web search via POST /v1/search. No model configuration needed — search providers are ready to use once an API key is connected.",
- "enableCloudTitle": "Enable Cloud Proxy",
- "whatYouGet": "What you will get",
- "cloudBenefitAccess": "Access your API from anywhere in the world",
- "cloudBenefitShare": "Share endpoint with your team easily",
- "cloudBenefitPorts": "No need to open ports or configure firewall",
- "cloudBenefitEdge": "Fast global edge network",
- "cloudSessionNote": "Cloud will keep your auth session for 1 day. If not used, it will be automatically deleted.",
- "cloudUnstableNote": "Cloud is currently unstable with Claude Code OAuth in some cases.",
- "cloudConnected": "Cloud Proxy connected!",
- "connectingToCloud": "Connecting to cloud...",
- "verifyingConnection": "Verifying connection...",
- "connecting": "Connecting...",
- "verifying": "Verifying...",
- "connected": "Connected!",
- "disableCloudTitle": "Disable Cloud Proxy",
- "disableWarning": "All auth sessions will be deleted from cloud.",
- "syncingData": "Syncing latest data...",
- "disablingCloud": "Disabling cloud...",
- "syncing": "Syncing...",
- "disabling": "Disabling...",
- "cloudConnectedVerified": "Cloud Proxy connected and verified!",
- "connectedVerificationPending": "Connected — verification pending",
- "connectedVerificationPendingWithError": "Connected — verification pending: {error}",
- "cloudDisabledSuccess": "Cloud disabled successfully",
- "syncedSuccess": "Synced successfully",
- "failedDisable": "Failed to disable cloud",
- "failedEnable": "Failed to enable cloud",
- "cloudRequestTimeout": "Cloud request timeout",
- "cloudRequestFailed": "Cloud request failed",
- "cloudWorkerUnreachable": "Could not reach cloud worker. Make sure the cloud service is running (npm run dev in /cloud).",
- "connectionFailed": "Connection failed",
- "syncFailed": "Failed to sync cloud data",
+ "rerankDesc": "استفسار سے مطابقت کے لحاظ سے دستاویزات کی دوبارہ درجہ بندی کریں",
+ "audioTranscription": "آڈیو کی نقل نویسی",
+ "audioTranscriptionDesc": "آڈیو فائلوں کو متن میں نقل کریں (Whisper)",
+ "textToSpeech": "متن سے آواز",
+ "textToSpeechDesc": "متن کو قدرتی انداز کی آواز میں تبدیل کریں",
+ "musicGeneration": "موسیقی سازی",
+ "musicDesc": "ComfyUI کے ذریعے موسیقی اور آڈیو ٹریکس بنائیں (Stable Audio, MusicGen)",
+ "moderations": "اعتدال",
+ "moderationsDesc": "مواد کی نگرانی اور حفاظتی درجہ بندی",
+ "responsesDesc": "Codex اور جدید ایجنٹ پر مبنی ورک فلو کے لیے OpenAI Responses API",
+ "listModelsDesc": "تمام منسلک فراہم کنندگان پر دستیاب تمام ماڈلز کی فہرست دکھائیں",
+ "settingsApiDesc": "API کے ذریعے OmniRoute کی کنفیگریشن پڑھیں اور اس میں ترمیم کریں",
+ "settingsApi": "ترتیبات API",
+ "categoryCore": "بنیادی APIs",
+ "categoryMedia": "میڈیا اور ملٹی موڈل",
+ "categorySearch": "تلاش اور دریافت",
+ "categoryUtility": "افادیتی اور انتظامی",
+ "webSearch": "ویب تلاش",
+ "webSearchDesc": "خودکار فیل اوور اور کیشنگ کے ساتھ متعدد فراہم کنندگان پر یکجا ویب تلاش",
+ "searchProvider": "تلاش کا فراہم کنندہ",
+ "searchProviderDesc": "یہ فراہم کنندہ POST /v1/search کے ذریعے ویب تلاش کے لیے استعمال ہوتا ہے۔ کسی ماڈل کی کنفیگریشن درکار نہیں — API کلید منسلک ہوتے ہی تلاش کے فراہم کنندگان استعمال کے لیے تیار ہو جاتے ہیں۔",
+ "enableCloudTitle": "Cloud Proxy فعال کریں",
+ "whatYouGet": "آپ کو کیا ملے گا",
+ "cloudBenefitAccess": "دنیا میں کہیں سے بھی اپنے API تک رسائی حاصل کریں",
+ "cloudBenefitShare": "اپنی ٹیم کے ساتھ اینڈ پوائنٹ آسانی سے شیئر کریں",
+ "cloudBenefitPorts": "پورٹس کھولنے یا فائر وال کنفیگر کرنے کی ضرورت نہیں",
+ "cloudBenefitEdge": "تیز عالمی ایج نیٹ ورک",
+ "cloudSessionNote": "Cloud آپ کا تصدیقی سیشن 1 دن تک برقرار رکھے گا۔ اگر اسے استعمال نہ کیا گیا تو یہ خودکار طور پر حذف ہو جائے گا۔",
+ "cloudUnstableNote": "Cloud فی الحال بعض صورتوں میں Claude Code OAuth کے ساتھ غیر مستحکم ہے۔",
+ "cloudConnected": "Cloud Proxy منسلک ہو گیا!",
+ "connectingToCloud": "Cloud سے منسلک ہو رہا ہے...",
+ "verifyingConnection": "کنکشن کی تصدیق ہو رہی ہے...",
+ "connecting": "منسلک ہو رہا ہے...",
+ "verifying": "تصدیق ہو رہی ہے...",
+ "connected": "منسلک ہو گیا!",
+ "disableCloudTitle": "Cloud Proxy غیر فعال کریں",
+ "disableWarning": "تمام تصدیقی سیشنز Cloud سے حذف کر دیے جائیں گے۔",
+ "syncingData": "تازہ ترین ڈیٹا مطابقت پذیر ہو رہا ہے...",
+ "disablingCloud": "Cloud غیر فعال ہو رہا ہے...",
+ "syncing": "مطابقت پذیری ہو رہی ہے...",
+ "disabling": "غیر فعال ہو رہا ہے...",
+ "cloudConnectedVerified": "Cloud Proxy منسلک اور تصدیق شدہ ہے!",
+ "connectedVerificationPending": "منسلک ہے — تصدیق زیر التوا ہے",
+ "connectedVerificationPendingWithError": "منسلک ہے — تصدیق زیر التوا ہے: {error}",
+ "cloudDisabledSuccess": "Cloud کامیابی سے غیر فعال کر دیا گیا",
+ "syncedSuccess": "کامیابی سے مطابقت پذیر ہو گیا",
+ "failedDisable": "Cloud کو غیر فعال کرنے میں ناکامی",
+ "failedEnable": "کلاؤڈ فعال کرنے میں ناکامی",
+ "cloudRequestTimeout": "کلاؤڈ کی درخواست کا وقت ختم ہو گیا",
+ "cloudRequestFailed": "کلاؤڈ کی درخواست ناکام ہو گئی",
+ "cloudWorkerUnreachable": "کلاؤڈ ورکر تک رسائی ممکن نہیں ہوئی۔ یقینی بنائیں کہ کلاؤڈ سروس چل رہی ہے (npm run dev in /cloud)۔",
+ "connectionFailed": "کنکشن ناکام ہو گیا",
+ "syncFailed": "کلاؤڈ ڈیٹا کی مطابقت پذیری ناکام ہو گئی",
"cloudflaredTitle": "Cloudflare Quick Tunnel",
- "cloudflaredDescription": "Create a Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredUrlNotice": "Creates a temporary Cloudflare Quick Tunnel. The URL changes after every restart.",
- "cloudflaredEnable": "Enable Tunnel",
- "cloudflaredInstallAndEnable": "Install & Enable",
+ "cloudflaredDescription": "اس اینڈ پوائنٹ کے لیے ایک Cloudflare Quick Tunnel بنائیں۔",
+ "cloudflaredUrlNotice": "ایک عارضی Cloudflare Quick Tunnel بناتا ہے۔ ہر بار دوبارہ شروع کرنے کے بعد URL تبدیل ہو جاتا ہے۔",
+ "cloudflaredEnable": "ٹنل فعال کریں",
+ "cloudflaredInstallAndEnable": "انسٹال اور فعال کریں",
"cloudflaredDisable": "Stop Tunnel",
- "cloudflaredRunning": "Running",
- "cloudflaredStarting": "Starting",
- "cloudflaredStoppedState": "Stopped",
- "cloudflaredNotInstalled": "Not installed",
- "cloudflaredUnsupported": "Unsupported",
- "cloudflaredError": "Error",
+ "cloudflaredRunning": "چل رہا ہے",
+ "cloudflaredStarting": "شروع ہو رہا ہے",
+ "cloudflaredStoppedState": "رکا ہوا ہے",
+ "cloudflaredNotInstalled": "انسٹال نہیں ہے",
+ "cloudflaredUnsupported": "غیر معاون",
+ "cloudflaredError": "خرابی",
"cloudflaredStarted": "Cloudflare tunnel started",
"cloudflaredStopped": "Cloudflare tunnel stopped",
"cloudflaredRequestFailed": "Failed to update Cloudflare tunnel",
- "cloudflaredTemporaryNote": "Quick Tunnel URLs are temporary and will change after every restart.",
- "cloudflaredUnsupportedNote": "This platform is not supported for managed installs. Install cloudflared manually or point CLOUDFLARED_BIN to an existing binary.",
+ "cloudflaredTemporaryNote": "Quick Tunnel کے URLs عارضی ہوتے ہیں اور ہر بار دوبارہ شروع کرنے کے بعد تبدیل ہو جائیں گے۔",
+ "cloudflaredUnsupportedNote": "یہ پلیٹ فارم منظم انسٹالیشنز کے لیے معاون نہیں ہے۔ cloudflared کو دستی طور پر انسٹال کریں یا CLOUDFLARED_BIN کو کسی موجودہ بائنری کی طرف متعین کریں۔",
"cloudflaredIdleNote": "Create a temporary Cloudflare Quick Tunnel for this endpoint.",
- "cloudflaredLastError": "Last error: {error}",
- "providerModelsTitle": "{provider} — Models",
- "noModelsForProvider": "No models available for this provider.",
+ "cloudflaredLastError": "آخری خرابی: {error}",
+ "providerModelsTitle": "{provider} — ماڈلز",
+ "noModelsForProvider": "اس فراہم کنندہ کے لیے کوئی ماڈل دستیاب نہیں ہے۔",
"chat": "Chat",
- "embedding": "Embedding",
- "image": "Image",
- "custom": "custom",
- "modelsCount": "{count, plural, one {# model} other {# models}}",
- "sectionTitle": "Integration Surface",
- "sectionDescription": "OpenAI-compatible APIs and operational protocol endpoints",
+ "embedding": "ایمبیڈنگ",
+ "image": "تصویر",
+ "custom": "حسبِ ضرورت",
+ "modelsCount": "{count, plural, one {# ماڈل} other {# ماڈلز}}",
+ "sectionTitle": "انضمام کی سطح",
+ "sectionDescription": "OpenAI سے مطابقت رکھنے والی APIs اور آپریشنل پروٹوکول اینڈ پوائنٹس",
"tabApis": "ای پی آئیز",
- "tabProtocols": "Protocols",
- "tabsAria": "Endpoint sections",
- "protocolsTitle": "Protocols",
- "protocolsDescription": "MCP and A2A are first-class endpoints with dedicated observability and controls.",
+ "tabProtocols": "پروٹوکولز",
+ "tabsAria": "اینڈ پوائنٹ کے حصے",
+ "protocolsTitle": "پروٹوکولز",
+ "protocolsDescription": "MCP اور A2A مخصوص مشاہدہ پذیری اور کنٹرولز کے ساتھ اولین درجے کے اینڈ پوائنٹس ہیں۔",
"mcpCardTitle": "MCP Server",
- "mcpCardDescription": "Model Context Protocol over stdio",
- "a2aCardTitle": "A2A Server",
- "a2aCardDescription": "Agent2Agent JSON-RPC endpoint",
- "protocolToolsLabel": "Tools",
- "protocolTasksLabel": "Tasks",
- "protocolActiveStreamsLabel": "Active streams",
- "protocolLastActivity": "Last activity",
- "quickStart": "Quick Start",
- "openMcpDashboard": "Open MCP management",
- "openA2aDashboard": "Open A2A management",
- "mcpQuickStartTitle": "MCP Quick Start",
- "mcpQuickStartStep1": "Run the MCP server via `omniroute --mcp`.",
- "mcpQuickStartStep2": "Configure your MCP client to connect over stdio transport.",
- "mcpQuickStartStep3": "Invoke tools such as `omniroute_get_health` and `omniroute_list_combos`.",
- "a2aQuickStartTitle": "A2A Quick Start",
- "a2aQuickStartStep1": "Discover the agent card at `/.well-known/agent.json`.",
- "a2aQuickStartStep2": "Send JSON-RPC requests to `POST /a2a` using `message/send` or `message/stream`.",
- "a2aQuickStartStep3": "Track and control tasks using `tasks/get` and `tasks/cancel`.",
- "completionsLegacy": "Completions (Legacy)",
- "completionsLegacyDesc": "Legacy OpenAI text completions — accepts both prompt string and messages array format",
+ "mcpCardDescription": "stdio کے ذریعے Model Context Protocol",
+ "a2aCardTitle": "A2A سرور",
+ "a2aCardDescription": "Agent2Agent JSON-RPC اینڈ پوائنٹ",
+ "protocolToolsLabel": "ٹولز",
+ "protocolTasksLabel": "ٹاسکس",
+ "protocolActiveStreamsLabel": "فعال اسٹریمز",
+ "protocolLastActivity": "آخری سرگرمی",
+ "quickStart": "فوری آغاز",
+ "openMcpDashboard": "MCP مینجمنٹ کھولیں",
+ "openA2aDashboard": "A2A مینجمنٹ کھولیں",
+ "mcpQuickStartTitle": "MCP فوری آغاز",
+ "mcpQuickStartStep1": "MCP سرور کو `omniroute --mcp` کے ذریعے چلائیں۔",
+ "mcpQuickStartStep2": "اپنے MCP کلائنٹ کو stdio ٹرانسپورٹ کے ذریعے منسلک ہونے کے لیے ترتیب دیں۔",
+ "mcpQuickStartStep3": "`omniroute_get_health` اور `omniroute_list_combos` جیسے ٹولز استعمال کریں۔",
+ "a2aQuickStartTitle": "A2A فوری آغاز",
+ "a2aQuickStartStep1": "ایجنٹ کارڈ کو `/.well-known/agent.json` پر دریافت کریں۔",
+ "a2aQuickStartStep2": "`message/send` یا `message/stream` استعمال کرتے ہوئے `POST /a2a` کو JSON-RPC درخواستیں بھیجیں۔",
+ "a2aQuickStartStep3": "`tasks/get` اور `tasks/cancel` استعمال کرتے ہوئے ٹاسکس کو ٹریک اور کنٹرول کریں۔",
+ "completionsLegacy": "تکمیلات (لیگیسی)",
+ "completionsLegacyDesc": "لیگیسی OpenAI متنی تکمیلات — پرامپٹ اسٹرنگ اور پیغامات کی اَرے، دونوں فارمیٹس قبول کرتی ہیں",
"messagesApi": "پیغامات",
"messagesApiDesc": "کلاڈ کے موافق فراہم کنندگان کے لیے مقامی انتھروپک پیغامات API فارمیٹ",
"imageEdits": "تصویری ترامیم",
@@ -4018,41 +4022,41 @@
"batchApiDesc": "درخواستوں کے بڑے بیچوں کو متضاد طور پر پروسیس کریں (اوپن اے آئی کے موافق)",
"filesApi": "فائلز API",
"filesApiDesc": "بیچ پروسیسنگ کے لیے فائلیں اپ لوڈ اور ان کا نظم کریں۔",
- "videoGeneration": "Video Generation",
- "videoDesc": "Generate videos using AI models like ComfyUI and Stable Video Diffusion.",
- "tailscaleRequestFailed": "Failed to load Tailscale status",
- "tailscaleEnableFailed": "Failed to enable Tailscale Funnel",
- "tailscaleWaitingForLogin": "Complete the Tailscale login in the opened browser tab. OmniRoute will retry automatically.",
- "tailscaleLoginTimedOut": "Timed out waiting for Tailscale login",
- "tailscaleWaitingForFunnel": "Enable Funnel for this device in the opened browser tab. OmniRoute will keep polling.",
- "tailscaleFunnelTimedOut": "Timed out waiting for Tailscale Funnel to be enabled",
- "tailscaleStarted": "Tailscale Funnel enabled",
- "tailscaleDisableFailed": "Failed to disable Tailscale Funnel",
- "tailscaleStopped": "Tailscale Funnel disabled",
- "tailscaleInstallFailed": "Failed to install Tailscale",
- "tailscaleInstallProgress": "Working...",
- "tailscaleInstalled": "Tailscale installed successfully",
- "tailscaleRunning": "Running",
- "tailscaleNeedsLogin": "Needs Login",
- "tailscaleStoppedState": "Stopped",
- "tailscaleNotInstalled": "Not installed",
- "tailscaleUnsupported": "Unsupported",
- "tailscaleError": "Error",
- "tailscaleDisable": "Stop Funnel",
- "tailscaleInstallAndEnable": "Install & Enable",
- "tailscaleLoginAndEnable": "Login & Enable",
- "tailscaleEnable": "Enable Funnel",
- "tailscaleUrlNotice": "Uses your Tailscale .ts.net address. Login and Funnel approval may be required on first use.",
+ "videoGeneration": "ویڈیو جنریشن",
+ "videoDesc": "ComfyUI اور Stable Video Diffusion جیسے AI ماڈلز استعمال کرتے ہوئے ویڈیوز بنائیں۔",
+ "tailscaleRequestFailed": "Tailscale کی حیثیت لوڈ کرنے میں ناکامی",
+ "tailscaleEnableFailed": "Tailscale Funnel فعال کرنے میں ناکامی",
+ "tailscaleWaitingForLogin": "کھولے گئے براؤزر ٹیب میں Tailscale لاگ اِن مکمل کریں۔ OmniRoute خودکار طور پر دوبارہ کوشش کرے گا۔",
+ "tailscaleLoginTimedOut": "Tailscale لاگ اِن کے انتظار کا وقت ختم ہو گیا",
+ "tailscaleWaitingForFunnel": "کھولے گئے براؤزر ٹیب میں اس ڈیوائس کے لیے Funnel فعال کریں۔ OmniRoute جانچ جاری رکھے گا۔",
+ "tailscaleFunnelTimedOut": "Tailscale Funnel کے فعال ہونے کے انتظار کا وقت ختم ہو گیا",
+ "tailscaleStarted": "Tailscale Funnel فعال ہو گیا",
+ "tailscaleDisableFailed": "Tailscale Funnel غیر فعال کرنے میں ناکامی",
+ "tailscaleStopped": "Tailscale Funnel غیر فعال ہو گیا",
+ "tailscaleInstallFailed": "Tailscale انسٹال کرنے میں ناکامی",
+ "tailscaleInstallProgress": "کام جاری ہے...",
+ "tailscaleInstalled": "Tailscale کامیابی سے انسٹال ہو گیا",
+ "tailscaleRunning": "چل رہا ہے",
+ "tailscaleNeedsLogin": "لاگ اِن درکار ہے",
+ "tailscaleStoppedState": "رکا ہوا ہے",
+ "tailscaleNotInstalled": "انسٹال نہیں ہے",
+ "tailscaleUnsupported": "غیر معاون",
+ "tailscaleError": "خرابی",
+ "tailscaleDisable": "Funnel روکیں",
+ "tailscaleInstallAndEnable": "انسٹال اور فعال کریں",
+ "tailscaleLoginAndEnable": "لاگ اِن اور فعال کریں",
+ "tailscaleEnable": "Funnel فعال کریں",
+ "tailscaleUrlNotice": "آپ کا Tailscale .ts.net ایڈریس استعمال کرتا ہے۔ پہلی بار استعمال پر لاگ اِن اور Funnel کی منظوری درکار ہو سکتی ہے۔",
"tailscaleTitle": "Tailscale Funnel",
- "tailscaleNeedsLoginHint": "Authenticate this machine with Tailscale, then enable Funnel.",
- "tailscaleBinaryPath": "Binary: {path}",
- "tailscaleLastError": "Last error: {error}",
- "tailscaleInstallTitle": "Install Tailscale",
- "tailscaleInstallIntro": "Installs Tailscale on this machine and prepares OmniRoute to enable Funnel.",
- "tailscaleInstallPasswordHint": "On macOS and Linux, sudo may be required for the package install and daemon start.",
- "tailscaleSudoPlaceholder": "Optional sudo password",
- "tailscaleInstalling": "Installing",
- "tailscaleSudoLabel": "Sudo Password (required on macOS/Linux)",
+ "tailscaleNeedsLoginHint": "اس مشین کی Tailscale کے ساتھ توثیق کریں، پھر Funnel فعال کریں۔",
+ "tailscaleBinaryPath": "بائنری: {path}",
+ "tailscaleLastError": "آخری خرابی: {error}",
+ "tailscaleInstallTitle": "Tailscale انسٹال کریں",
+ "tailscaleInstallIntro": "اس مشین پر Tailscale انسٹال کرتا ہے اور Funnel فعال کرنے کے لیے OmniRoute تیار کرتا ہے۔",
+ "tailscaleInstallPasswordHint": "macOS اور Linux پر پیکیج انسٹال کرنے اور ڈیمون شروع کرنے کے لیے sudo درکار ہو سکتا ہے۔",
+ "tailscaleSudoPlaceholder": "اختیاری sudo پاس ورڈ",
+ "tailscaleInstalling": "انسٹال ہو رہا ہے",
+ "tailscaleSudoLabel": "Sudo پاس ورڈ (macOS/Linux پر درکار ہے)",
"ngrokTitle": "ngrok ٹنل",
"ngrokRunning": "چل رہا ہے۔",
"ngrokStarting": "شروع ہو رہا ہے۔",
@@ -4104,7 +4108,7 @@
"all": "تمام",
"more": "+{count} مزید",
"showInternalTooltip": "اندرونی روٹس دکھائیں یا چھپائیں (طے شدہ طور پر پوشیدہ)",
- "bearerAuth": "Bearer Auth",
+ "bearerAuth": "Bearer توثیق",
"requestBody": "درخواست کی باڈی",
"close": "بند کریں",
"tryIt": "آزمائیں",
@@ -4123,7 +4127,7 @@
"vscodeAliasDescriptionError": "پلیس ہولڈر URLs دکھائے جا رہے ہیں کیونکہ اس سیشن میں CLI کلیدیں لوڈ نہیں کی جا سکیں۔",
"vscodeAliasDescriptionLoading": "CLI کلیدیں لوڈ ہو رہی ہیں۔ کلید دستیاب ہونے تک پلیس ہولڈر URLs دکھائے جاتے ہیں۔",
"vscodeAliasDescriptionPlaceholder": "پلیس ہولڈر URLs دکھائے جا رہے ہیں۔ TOKEN کو تبدیل کرنے کے لیے CLI Tools میں API کلید بنائیں یا فعال کریں۔",
- "vscodeAliasManage": "CLI Tools",
+ "vscodeAliasManage": "CLI ٹولز",
"vscodeAliasBaseLabel": "VS Code بیس",
"vscodeAliasModelsLabel": "VS Code ماڈلز",
"vscodeAliasChatLabel": "VS Code چیٹ",
@@ -4140,9 +4144,9 @@
"tierPublic": "عوامی",
"hideInternal": "اندرونی چھپائیں",
"showInternal": "اندرونی دکھائیں",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "حسبِ ضرورت سسٹم پرامپٹ",
+ "customSystemPromptDescription": "ہر ماڈل کی درخواست میں حسبِ ضرورت سسٹم پرامپٹ شامل کریں",
+ "customSystemPromptPlaceholder": "مثلاً ہمیشہ قزاقوں کے انداز میں جواب دیں...",
"obsidianEnterToken": "براہ کرم Obsidian API ٹوکن درج کریں",
"obsidianConnectFailed": "منسلک ہونے میں ناکام",
"obsidianConnectionFailed": "کنکشن ناکام ہو گیا",
@@ -4191,31 +4195,31 @@
"notionTokenConfigured": "ٹوکین ترتیب دیا گیا ہے۔ نوٹیشن کے ٹولز MCP کے ذریعے دستیاب ہیں۔"
},
"endpoints": {
- "tabProxy": "Endpoint Proxy",
- "tabApiEndpoints": "API Endpoints",
- "apiEndpointsTitle": "API Endpoints",
- "apiEndpointsDescription": "Backend API endpoints that can be consumed by other applications and services. This section will list all available REST APIs with documentation and testing capabilities.",
- "comingSoon": "Coming Soon",
- "plannedFeatures": "Planned Features",
- "featureRestApi": "REST API endpoint catalog with interactive documentation",
- "featureWebhooks": "Webhook configuration and event subscriptions",
- "featureSwagger": "OpenAPI / Swagger spec auto-generation",
- "featureAuth": "API key and OAuth scope management per endpoint"
+ "tabProxy": "اینڈ پوائنٹ پراکسی",
+ "tabApiEndpoints": "API اینڈ پوائنٹس",
+ "apiEndpointsTitle": "API اینڈ پوائنٹس",
+ "apiEndpointsDescription": "بیک اینڈ API اینڈ پوائنٹس جنہیں دیگر ایپلیکیشنز اور سروسز استعمال کر سکتی ہیں۔ اس حصے میں تمام دستیاب REST APIs کو دستاویزات اور جانچ کی سہولیات کے ساتھ درج کیا جائے گا۔",
+ "comingSoon": "جلد آ رہا ہے",
+ "plannedFeatures": "منصوبہ بند خصوصیات",
+ "featureRestApi": "انٹرایکٹو دستاویزات کے ساتھ REST API اینڈ پوائنٹ کیٹلاگ",
+ "featureWebhooks": "Webhook کی ترتیب اور ایونٹ سبسکرپشنز",
+ "featureSwagger": "OpenAPI / Swagger تفصیلات کی خودکار تخلیق",
+ "featureAuth": "ہر اینڈ پوائنٹ کے لیے API کلید اور OAuth اسکوپ کا نظم"
},
"mcpDashboard": {
- "loading": "Loading MCP dashboard...",
- "activate": "activate",
- "deactivate": "deactivate",
- "confirmSwitchCombo": "Confirm {action} combo \"{combo}\"?",
- "switchComboFailed": "Failed to switch combo state.",
- "switchComboSuccess": "Combo \"{combo}\" updated.",
- "confirmApplyProfile": "Apply resilience profile \"{profile}\"?",
- "applyProfileFailed": "Failed to apply resilience profile.",
- "applyProfileSuccess": "Profile \"{profile}\" applied.",
- "confirmResetBreakers": "Reset all circuit breakers?",
- "resetBreakersFailed": "Failed to reset circuit breakers.",
- "resetBreakersSuccess": "Circuit breakers reset.",
- "processStatus": "Process status",
+ "loading": "MCP ڈیش بورڈ لوڈ ہو رہا ہے...",
+ "activate": "فعال کریں",
+ "deactivate": "غیر فعال کریں",
+ "confirmSwitchCombo": "کیا آپ واقعی کومبو \"{combo}\" کو {action} کرنا چاہتے ہیں؟",
+ "switchComboFailed": "کومبو کی حالت تبدیل کرنے میں ناکامی۔",
+ "switchComboSuccess": "کومبو \"{combo}\" اپ ڈیٹ کر دیا گیا۔",
+ "confirmApplyProfile": "ریزِیلیئنس پروفائل \"{profile}\" لاگو کریں؟",
+ "applyProfileFailed": "ریزِیلیئنس پروفائل لاگو کرنے میں ناکامی۔",
+ "applyProfileSuccess": "پروفائل \"{profile}\" لاگو کر دیا گیا۔",
+ "confirmResetBreakers": "تمام سرکٹ بریکرز ری سیٹ کریں؟",
+ "resetBreakersFailed": "سرکٹ بریکرز ری سیٹ کرنے میں ناکامی۔",
+ "resetBreakersSuccess": "سرکٹ بریکرز ری سیٹ کر دیے گئے۔",
+ "processStatus": "پراسیس کی حالت",
"online": "Online",
"offline": "Offline",
"disableLabel": "{label} غیر فعال کریں",
@@ -4233,119 +4237,119 @@
"mcpStep2": "اپنے MCP کلائنٹ کو stdio ٹرانسپورٹ پر منسلک کرنے کے لیے کنفیگر کریں۔",
"mcpStep3": "{code1} اور {code2} جیسے ٹولز کو کال کریں۔",
"pid": "PID",
- "sessionUptime": "Session uptime",
- "lastHeartbeat": "Last heartbeat",
- "activity24h": "Activity (24h)",
- "totalCalls": "Total calls",
- "successRate": "Success rate",
- "avgLatency": "Avg latency",
- "topTools": "Top tools",
- "noToolCalls24h": "No tool calls in the last 24 hours.",
- "runtimeDetails": "Runtime details",
- "transport": "Transport",
- "scopesEnforced": "Scopes enforced",
- "yes": "yes",
- "no": "no",
- "lastCall": "Last call",
- "heartbeatPath": "Heartbeat path",
- "operationalControls": "Operational controls",
- "switchCombo": "Switch combo",
- "inactive": "inactive",
- "active": "active",
- "activateCombo": "Activate combo",
- "deactivateCombo": "Deactivate combo",
- "applyResilienceProfile": "Apply resilience profile",
- "profileAggressive": "aggressive",
- "profileBalanced": "balanced",
- "profileConservative": "conservative",
- "applyProfile": "Apply profile",
- "resetCircuitBreakers": "Reset circuit breakers",
- "resetCircuitBreakersHelp": "Clears current breaker state and failure counters for providers.",
- "resetAllBreakers": "Reset all breakers",
- "toolsAndScopes": "Tools and scopes",
- "tableTool": "Tool",
- "tableScopes": "Scopes",
- "tablePhase": "Phase",
+ "sessionUptime": "سیشن اپ ٹائم",
+ "lastHeartbeat": "آخری ہارٹ بیٹ",
+ "activity24h": "سرگرمی (24 گھنٹے)",
+ "totalCalls": "کل کالز",
+ "successRate": "کامیابی کی شرح",
+ "avgLatency": "اوسط تاخیر",
+ "topTools": "سرفہرست ٹولز",
+ "noToolCalls24h": "گزشتہ 24 گھنٹوں میں کوئی ٹول کال نہیں ہوئی۔",
+ "runtimeDetails": "رن ٹائم کی تفصیلات",
+ "transport": "ٹرانسپورٹ",
+ "scopesEnforced": "نافذ کردہ اسکوپس",
+ "yes": "ہاں",
+ "no": "نہیں",
+ "lastCall": "آخری کال",
+ "heartbeatPath": "ہارٹ بیٹ پاتھ",
+ "operationalControls": "آپریشنل کنٹرولز",
+ "switchCombo": "کومبو سوئچ کریں",
+ "inactive": "غیر فعال",
+ "active": "فعال",
+ "activateCombo": "کومبو فعال کریں",
+ "deactivateCombo": "کومبو غیر فعال کریں",
+ "applyResilienceProfile": "لچک پذیری پروفائل لاگو کریں",
+ "profileAggressive": "جارحانہ",
+ "profileBalanced": "متوازن",
+ "profileConservative": "محتاط",
+ "applyProfile": "پروفائل لاگو کریں",
+ "resetCircuitBreakers": "سرکٹ بریکرز ری سیٹ کریں",
+ "resetCircuitBreakersHelp": "فراہم کنندگان کے لیے موجودہ بریکر اسٹیٹ اور ناکامی کے کاؤنٹرز صاف کرتا ہے۔",
+ "resetAllBreakers": "تمام بریکرز ری سیٹ کریں",
+ "toolsAndScopes": "ٹولز اور اسکوپس",
+ "tableTool": "ٹول",
+ "tableScopes": "اسکوپس",
+ "tablePhase": "مرحلہ",
"tableAudit": "Audit",
- "auditLog": "Audit log",
- "auditSummary": "Calls: {total} | page {page} of {totalPages}",
- "allTools": "All tools",
- "allResults": "All results",
- "success": "Success",
- "failure": "Failure",
+ "auditLog": "آڈٹ لاگ",
+ "auditSummary": "کالز: {total} | صفحہ {page} از {totalPages}",
+ "allTools": "تمام ٹولز",
+ "allResults": "تمام نتائج",
+ "success": "کامیابی",
+ "failure": "ناکامی",
"apiKeyIdPlaceholder": "apiKeyId",
- "loadingAuditEntries": "Loading audit entries...",
- "noAuditEntriesForFilters": "No audit entries found for current filters.",
- "tableTimestamp": "Timestamp",
- "tableDuration": "Duration",
- "tableResult": "Result",
- "tableApiKey": "API key",
- "failed": "failed",
- "previous": "Previous",
- "next": "Next",
- "apiKeyId": "Api Key Id",
- "offset": "Offset",
- "limit": "Limit",
- "tool": "Tool"
+ "loadingAuditEntries": "آڈٹ اندراجات لوڈ ہو رہے ہیں...",
+ "noAuditEntriesForFilters": "موجودہ فلٹرز کے لیے کوئی آڈٹ اندراج نہیں ملا۔",
+ "tableTimestamp": "وقت کی مہر",
+ "tableDuration": "دورانیہ",
+ "tableResult": "نتیجہ",
+ "tableApiKey": "API کلید",
+ "failed": "ناکام",
+ "previous": "پچھلا",
+ "next": "اگلا",
+ "apiKeyId": "API کلید کی ID",
+ "offset": "آف سیٹ",
+ "limit": "حد",
+ "tool": "ٹول"
},
"a2aDashboard": {
- "loading": "Loading A2A dashboard...",
- "confirmCancelTask": "Cancel task {taskId}?",
- "cancelTaskFailed": "Failed to cancel task.",
- "cancelTaskSuccess": "Task {taskId} cancelled.",
- "smokeSendFailed": "message/send smoke test failed.",
- "smokeSendSuccessWithTask": "message/send ok (task {taskId}).",
+ "loading": "A2A ڈیش بورڈ لوڈ ہو رہا ہے...",
+ "confirmCancelTask": "ٹاسک {taskId} منسوخ کریں؟",
+ "cancelTaskFailed": "ٹاسک منسوخ کرنے میں ناکامی ہوئی۔",
+ "cancelTaskSuccess": "ٹاسک {taskId} منسوخ کر دیا گیا۔",
+ "smokeSendFailed": "message/send سموک ٹیسٹ ناکام ہو گیا۔",
+ "smokeSendSuccessWithTask": "message/send کامیاب رہا (ٹاسک {taskId})۔",
"smokeSendSuccess": "message/send ok.",
- "smokeStreamFailed": "message/stream smoke test failed.",
- "smokeStreamSuccessWithTask": "message/stream ok (task {taskId}{stateSuffix}).",
- "smokeStreamNoTaskId": "message/stream finished without task id.",
- "health": "Health",
+ "smokeStreamFailed": "message/stream سموک ٹیسٹ ناکام ہو گیا۔",
+ "smokeStreamSuccessWithTask": "message/stream کامیاب رہا (ٹاسک {taskId}{stateSuffix})۔",
+ "smokeStreamNoTaskId": "message/stream ٹاسک ID کے بغیر مکمل ہو گیا۔",
+ "health": "صحت",
"ok": "ok",
- "totalTasks": "Total tasks",
- "activeStreams": "Active streams",
- "lastTask": "Last task",
- "taskStateOverview": "Task state overview",
+ "totalTasks": "کل ٹاسکس",
+ "activeStreams": "فعال اسٹریمز",
+ "lastTask": "آخری ٹاسک",
+ "taskStateOverview": "ٹاسک کی حالت کا جائزہ",
"state": {
- "submitted": "submitted",
- "working": "working",
- "completed": "completed",
- "failed": "failed",
- "cancelled": "cancelled"
+ "submitted": "جمع شدہ",
+ "working": "زیرِ عمل",
+ "completed": "مکمل شدہ",
+ "failed": "ناکام",
+ "cancelled": "منسوخ شدہ"
},
- "agentCard": "Agent card",
+ "agentCard": "ایجنٹ کارڈ",
"agentCardPath": "/.well-known/agent.json",
- "version": "Version",
+ "version": "ورژن",
"url": "URL",
- "capabilities": "Capabilities",
- "agentCardNotAvailable": "Agent card not available.",
- "quickValidation": "Quick validation",
- "quickValidationDescription": "Executes smoke calls through the live `/a2a` endpoint.",
- "runMessageSend": "Run message/send",
- "runMessageStream": "Run message/stream",
- "taskManagement": "Task management",
- "taskSummary": "{total} tasks | page {page} of {totalPages}",
- "allStates": "all",
- "allSkills": "all skills",
- "loadingTasks": "Loading tasks...",
- "noTasksForFilters": "No tasks found for current filters.",
- "tableTask": "Task",
- "tableSkill": "Skill",
- "tableState": "State",
- "tableUpdated": "Updated",
- "tableActions": "Actions",
- "view": "View",
- "cancel": "Cancel",
- "previous": "Previous",
- "next": "Next",
- "taskDetail": "Task detail",
- "close": "Close",
+ "capabilities": "صلاحیتیں",
+ "agentCardNotAvailable": "ایجنٹ کارڈ دستیاب نہیں ہے۔",
+ "quickValidation": "فوری توثیق",
+ "quickValidationDescription": "لائیو `/a2a` اینڈ پوائنٹ کے ذریعے سموک کالز چلاتا ہے۔",
+ "runMessageSend": "message/send چلائیں",
+ "runMessageStream": "message/stream چلائیں",
+ "taskManagement": "ٹاسک کا انتظام",
+ "taskSummary": "{total} ٹاسکس | صفحہ {page} از {totalPages}",
+ "allStates": "سبھی",
+ "allSkills": "تمام مہارتیں",
+ "loadingTasks": "کام لوڈ ہو رہے ہیں...",
+ "noTasksForFilters": "موجودہ فلٹرز کے لیے کوئی کام نہیں ملا۔",
+ "tableTask": "کام",
+ "tableSkill": "مہارت",
+ "tableState": "حالت",
+ "tableUpdated": "اپ ڈیٹ شدہ",
+ "tableActions": "اقدامات",
+ "view": "دیکھیں",
+ "cancel": "منسوخ کریں",
+ "previous": "پچھلا",
+ "next": "اگلا",
+ "taskDetail": "کام کی تفصیل",
+ "close": "بند کریں",
"metadata": "Metadata",
- "events": "Events",
- "artifacts": "Artifacts",
- "tablePhase": "Table Phase",
- "offset": "Offset",
- "limit": "Limit",
- "skill": "Skill",
+ "events": "واقعات",
+ "artifacts": "نمونے",
+ "tablePhase": "ٹیبل مرحلہ",
+ "offset": "آف سیٹ",
+ "limit": "حد",
+ "skill": "مہارت",
"rpcEndpoint": "پوسٹ /a2a",
"rpcMethodSend": "پیغام / بھیجیں۔",
"rpcMethodStream": "پیغام/ سلسلہ",
@@ -4365,9 +4369,9 @@
},
"memory": {
"a": "A",
- "actions": "Actions",
- "addMemory": "Add Memory",
- "allTypes": "All Types",
+ "actions": "اقدامات",
+ "addMemory": "میموری شامل کریں",
+ "allTypes": "تمام اقسام",
"cancel": "منسوخ کریں۔",
"checkHealth": "صحت کی جانچ کریں۔",
"checkingHealth": "چیک کیا جا رہا ہے…",
@@ -4378,13 +4382,13 @@
"howWorksToggle": "یہ کیسے کام کرتا ہے",
"howWorksContent": "1. خودکار اخراج: ہر جواب کے آخر میں، حقائق اور واقعات کا پتہ لگایا جاتا ہے اور خود بخود محفوظ کیا جاتا ہے۔\n2. بازیافت: ہر جواب سے پہلے، FTS5 (عین مطابق)، ویکٹر (معنوی)، یا ہائبرڈ RRF کے ذریعے سب سے زیادہ متعلقہ یادداشتیں تلاش کی جاتی ہیں۔\n3. انجیکشن: جواب کے معیار کو بہتر بنانے کے لیے متعلقہ یادداشتوں کو اسسٹنٹ کے سیاق و سباق میں شامل کیا جاتا ہے۔\n4. انتظام: پرانی یادداشتوں کو دیکھنے، ترمیم کرنے، برآمد کرنے اور کمپیکٹ کرنے کے لیے اس صفحے کا استعمال کریں۔"
},
- "content": "Content",
+ "content": "مواد",
"contentPlaceholder": "یاد رکھنے کے لیے قدر یا JSON مواد",
- "created": "Created",
- "delete": "Delete",
+ "created": "تخلیق کی تاریخ",
+ "delete": "حذف کریں",
"deleteConfirmDesc": "اس عمل کو واپس نہیں لیا جا سکتا۔ یادداشت مستقل طور پر حذف کر دی جائے گی۔",
"deleteConfirmTitle": "یادداشت حذف کریں؟",
- "description": "View and manage stored memory entries",
+ "description": "محفوظ شدہ میموری اندراجات دیکھیں اور ان کا نظم کریں",
"editMemory": "یادداشت میں ترمیم کریں",
"editModal": {
"title": "یادداشت میں ترمیم کریں",
@@ -4440,20 +4444,20 @@
"configureCta": "کنفیگر کریں",
"vectorStoreInstallHint": "ویکٹر سرچ کو فعال کرنے کے لیے: npm install sqlite-vec (نیٹیو Node.js کی ضرورت ہے، WASM کی نہیں)، پھر دوبارہ شروع کریں۔"
},
- "episodic": "Episodic",
- "export": "Export",
- "factual": "Factual",
+ "episodic": "واقعاتی",
+ "export": "برآمد کریں",
+ "factual": "حقائق پر مبنی",
"healthUnknown": "صحت نامعلوم",
- "hitRate": "Hit Rate",
- "import": "Import",
+ "hitRate": "کامیابی کی شرح",
+ "import": "درآمد کریں",
"importError": "فائل امپورٹ کرنے میں ناکامی",
"importResult": "{imported} امپورٹ کیے گئے، {skipped} نظر انداز کیے گئے",
- "key": "Key",
+ "key": "کلید",
"keyPlaceholder": "جیسے user.preferences.theme",
"loading": "Loading memories...",
- "memories": "Memories",
+ "memories": "میموریز",
"next": "اگلا",
- "noMemories": "No memories found",
+ "noMemories": "کوئی میموری نہیں ملی",
"pageInfo": "صفحہ {page} از {totalPages} ({total} کل)",
"pipelineError": "پائپ لائن کی خرابی۔",
"pipelineOk": "پائپ لائن ٹھیک ہے ({latencyMs}ms)",
@@ -4481,7 +4485,7 @@
"errorFetch": "پیش نظارہ حاصل کرنے میں ناکامی"
},
"previous": "پچھلا",
- "procedural": "Procedural",
+ "procedural": "طریقۂ کار سے متعلق",
"qdrant": {
"title": "Qdrant (ویکٹر اسٹور ٹیئر 2)",
"description": "اسکیل ایبل سیمنٹک سرچ کے لیے اختیاری Qdrant انٹیگریشن",
@@ -4530,8 +4534,8 @@
},
"save": "محفوظ کریں۔",
"saving": "محفوظ ہو رہا ہے...",
- "search": "Search memories...",
- "semantic": "Semantic",
+ "search": "یادداشتیں تلاش کریں...",
+ "semantic": "معنوی",
"summarize": {
"title": "پرانی یادداشتوں کو مختصر کریں",
"noCandidates": "کوئی یادداشتیں مختصر کرنے کے اہل نہیں ہیں (معیار: 30 دن سے زیادہ پرانی)۔",
@@ -4543,8 +4547,8 @@
"playground": "پلے گراؤنڈ",
"engine": "انجن"
},
- "title": "Memory Management",
- "tokensUsed": "Tokens Used",
+ "title": "یادداشت کا انتظام",
+ "tokensUsed": "استعمال شدہ ٹوکنز",
"tooltip": {
"totalEntries": "اس API key کے لیے محفوظ کردہ کل یادیں",
"tokensUsed": "فعال یادوں کے زیر استعمال کل ٹوکنز کا تخمینہ",
@@ -4554,15 +4558,15 @@
"procedural": "طریقہ کار، ورک فلو، اور ہدایات جن پر اسسٹنٹ کو عمل کرنا چاہیے",
"semantic": "تصورات، ترجیحات، اور ڈومین کا علم"
},
- "totalEntries": "Total Entries",
- "type": "Type",
+ "totalEntries": "کل اندراجات",
+ "type": "قسم",
"memoryEnabled": "یادداشت فعال ہے"
},
"skills": {
- "title": "Skills",
- "description": "Manage and monitor AI skills",
- "skillsTab": "Skills",
- "executionsTab": "Executions",
+ "title": "مہارتیں",
+ "description": "AI مہارتوں کا نظم و نسق اور نگرانی کریں",
+ "skillsTab": "مہارتیں",
+ "executionsTab": "عمل درآمد",
"selectSkillToInspect": "معائنہ کرنے کے لیے بائیں جانب سے ایک مہارت منتخب کریں۔",
"schemaTab": "اسکیما",
"handlerTab": "ہینڈلر",
@@ -4573,29 +4577,29 @@
"runTestPlaceholder": "ٹیسٹ چلائیں (پلیس ہولڈر)",
"setModeAria": "موڈ {mode} سیٹ کریں",
"uninstallSkill": "مہارت کو غیر انسٹال کریں",
- "sandboxTab": "Sandbox",
- "loading": "Loading skills...",
- "noSkills": "No skills found",
- "noExecutions": "No executions found",
- "enabled": "Enabled",
- "disabled": "Disabled",
+ "sandboxTab": "سینڈ باکس",
+ "loading": "مہارتیں لوڈ ہو رہی ہیں...",
+ "noSkills": "کوئی مہارت نہیں ملی",
+ "noExecutions": "کوئی عمل درآمد نہیں ملا",
+ "enabled": "فعال",
+ "disabled": "غیر فعال",
"delete": "حذف کریں",
- "version": "Version",
- "tableDescription": "Description",
- "skill": "Skill",
- "status": "Status",
- "duration": "Duration",
- "time": "Time",
- "sandboxConfig": "Sandbox Configuration",
- "cpuLimit": "CPU Limit",
- "cpuLimitDesc": "Maximum execution time per skill",
- "memoryLimit": "Memory Limit",
- "memoryLimitDesc": "Maximum memory allocation",
- "timeout": "Timeout",
- "timeoutDesc": "Maximum wait time for response",
- "networkAccess": "Network Access",
- "networkAccessDesc": "Allow outbound network requests",
- "mode": "Mode",
+ "version": "ورژن",
+ "tableDescription": "تفصیل",
+ "skill": "مہارت",
+ "status": "حالت",
+ "duration": "دورانیہ",
+ "time": "وقت",
+ "sandboxConfig": "سینڈ باکس کی ترتیب",
+ "cpuLimit": "CPU کی حد",
+ "cpuLimitDesc": "فی مہارت عمل درآمد کا زیادہ سے زیادہ وقت",
+ "memoryLimit": "میموری کی حد",
+ "memoryLimitDesc": "میموری مختص کرنے کی زیادہ سے زیادہ حد",
+ "timeout": "ٹائم آؤٹ",
+ "timeoutDesc": "جواب کے انتظار کا زیادہ سے زیادہ وقت",
+ "networkAccess": "نیٹ ورک تک رسائی",
+ "networkAccessDesc": "بیرونی نیٹ ورک کی درخواستوں کی اجازت دیں",
+ "mode": "موڈ",
"q": "Q",
"filterSkillsPlaceholder": "نام، تفصیل، یا ٹیگ کے لحاظ سے مہارت کو فلٹر کریں۔",
"allModes": "تمام موڈز",
@@ -4638,90 +4642,90 @@
"installSkill": "مہارت کو انسٹال کریں۔"
},
"health": {
- "title": "System Health",
- "description": "Real-time monitoring of your OmniRoute instance",
- "healthy": "Healthy",
- "degraded": "Degraded",
- "down": "Down",
- "uptime": "Uptime",
- "memory": "Memory",
- "memoryRss": "Memory (RSS)",
- "heap": "Heap",
+ "title": "سسٹم کی صحت",
+ "description": "آپ کے OmniRoute انسٹینس کی حقیقی وقت میں نگرانی",
+ "healthy": "صحت مند",
+ "degraded": "متاثرہ",
+ "down": "بند",
+ "uptime": "فعال رہنے کا دورانیہ",
+ "memory": "میموری",
+ "memoryRss": "میموری (RSS)",
+ "heap": "ہیپ",
"cpu": "CPU",
- "database": "Database",
- "version": "Version",
- "lastCheck": "Last Check",
- "providerHealth": "Provider Health",
- "systemMetrics": "System Metrics",
- "tokenHealth": "Token Health",
- "refreshAll": "Refresh All",
- "checkNow": "Check Now",
- "loadingHealth": "Loading health data...",
- "failedToLoad": "Failed to load health data: {error}",
- "retry": "Retry",
- "allOperational": "All systems operational",
- "issuesDetected": "System issues detected",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
- "updatedAt": "Updated {time}",
- "latency": "Latency",
+ "database": "ڈیٹابیس",
+ "version": "ورژن",
+ "lastCheck": "آخری جانچ",
+ "providerHealth": "فراہم کنندہ کی صحت",
+ "systemMetrics": "سسٹم میٹرکس",
+ "tokenHealth": "ٹوکن کی صحت",
+ "refreshAll": "سب تازہ کریں",
+ "checkNow": "ابھی جانچیں",
+ "loadingHealth": "صحت کا ڈیٹا لوڈ ہو رہا ہے...",
+ "failedToLoad": "صحت کا ڈیٹا لوڈ کرنے میں ناکامی: {error}",
+ "retry": "دوبارہ کوشش کریں",
+ "allOperational": "تمام سسٹمز فعال ہیں",
+ "issuesDetected": "سسٹم کے مسائل کا پتا چلا ہے",
+ "healthVerdictReady": "OmniRoute تیار ہے",
+ "healthVerdictActionRequired": "مکمل فعالیت بحال کرنے کے لیے کارروائی درکار ہے",
+ "healthVerdictCoolingDown": "حالیہ تبدیلیوں کے بعد وقفۂ سکون جاری ہے",
+ "healthSubtitle": "سسٹم کی صحت کی جانچ",
+ "advancedDiagnosticsTitle": "اعلیٰ تشخیصی معلومات",
+ "hide": "چھپائیں",
+ "show": "دکھائیں",
+ "updatedAt": "{time} کو اپ ڈیٹ کیا گیا",
+ "latency": "تاخیر",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
"millisecondsShort": "{value}ms",
"notAvailable": "—",
- "totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "promptCache": "Prompt Cache",
- "entries": "Entries",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "signatureCache": "Signature Cache",
- "signatureDefaults": "Defaults",
- "signatureTool": "Tool",
- "signatureFamily": "Family",
- "signatureSession": "Session",
- "recovering": "Recovering",
- "noCBData": "No circuit breaker data available. Make some requests first.",
- "providerHealthStatusAria": "Provider health status",
- "issuesLabel": "Issues Detected",
- "operational": "Operational",
- "providers": "Providers",
- "configuredProvidersLabel": "Configured in dashboard",
- "configuredProvidersHint": "Providers with credentials saved in /dashboard/providers, regardless of runtime state.",
- "activeProviders": "{count} active",
- "activeProvidersHint": "Configured providers currently enabled for routing requests.",
- "monitoredProviders": "{count} monitored",
- "monitoredProvidersHint": "Providers currently tracked by circuit-breaker health monitors.",
- "healthyCount": "{count} healthy",
+ "totalRequests": "کل درخواستیں",
+ "noDataYet": "ابھی تک کوئی ڈیٹا نہیں",
+ "promptCache": "پرامپٹ کیش",
+ "entries": "اندراجات",
+ "hitRate": "ہٹ کی شرح",
+ "hitsMisses": "ہٹس / مِسز",
+ "signatureCache": "دستخطی کیش",
+ "signatureDefaults": "طے شدہ اقدار",
+ "signatureTool": "ٹول",
+ "signatureFamily": "فیملی",
+ "signatureSession": "سیشن",
+ "recovering": "بحال ہو رہا ہے",
+ "noCBData": "سرکٹ بریکر کا کوئی ڈیٹا دستیاب نہیں۔ پہلے کچھ درخواستیں کریں۔",
+ "providerHealthStatusAria": "فراہم کنندہ کی صحت کی حالت",
+ "issuesLabel": "مسائل کا پتا چلا",
+ "operational": "فعال",
+ "providers": "فراہم کنندگان",
+ "configuredProvidersLabel": "ڈیش بورڈ میں ترتیب شدہ",
+ "configuredProvidersHint": "وہ فراہم کنندگان جن کی اسناد /dashboard/providers میں محفوظ ہیں، چاہے ان کی رن ٹائم حالت کچھ بھی ہو۔",
+ "activeProviders": "{count} فعال",
+ "activeProvidersHint": "وہ ترتیب شدہ فراہم کنندگان جو فی الحال روٹنگ درخواستوں کے لیے فعال ہیں۔",
+ "monitoredProviders": "{count} زیرِ نگرانی",
+ "monitoredProvidersHint": "وہ فراہم کنندگان جن کی فی الحال سرکٹ بریکر صحت مانیٹرز کے ذریعے نگرانی کی جا رہی ہے۔",
+ "healthyCount": "{count} صحت مند",
"nodeVersion": "Node {version}",
- "failures": "{count} failure",
- "failuresPlural": "{count} failures",
- "lastFailure": "Last",
- "rateLimitStatus": "Rate Limit Status",
- "activeLimiters": "{count} active limiter",
- "activeLimitersPlural": "{count} active limiters",
- "queued": "Queued",
- "queuedCount": "{count} queued",
- "running": "running",
- "runningCount": "{count} running",
+ "failures": "{count} ناکامی",
+ "failuresPlural": "{count} ناکامیاں",
+ "lastFailure": "آخری",
+ "rateLimitStatus": "شرح کی حد کی حالت",
+ "activeLimiters": "{count} فعال حد کنندہ",
+ "activeLimitersPlural": "{count} فعال حد کنندگان",
+ "queued": "قطار میں",
+ "queuedCount": "{count} قطار میں",
+ "running": "چل رہا ہے",
+ "runningCount": "{count} چل رہے ہیں",
"ok": "OK",
- "activeLockouts": "Active Lockouts",
- "resetConfirm": "Reset all circuit breakers to healthy state? This will clear all failure counts and restore all providers to operational status.",
- "resetAllTitle": "Reset all circuit breakers to healthy state",
- "resetting": "Resetting...",
- "resetAll": "Reset All",
- "until": "Until {time}",
- "limitExhausted": "Exhausted",
- "learnedFromHeaders": "Learned from headers",
- "remainingOfLimit": "{remaining}/{limit} remaining",
- "throttleStatus": "Throttle: {value}",
- "lastHeaderUpdate": "Header update: {age}",
+ "activeLockouts": "فعال لاک آؤٹس",
+ "resetConfirm": "تمام سرکٹ بریکرز کو صحت مند حالت میں ری سیٹ کریں؟ اس سے ناکامیوں کی تمام تعداد صاف ہو جائے گی اور تمام فراہم کنندگان دوبارہ فعال حالت میں آ جائیں گے۔",
+ "resetAllTitle": "تمام سرکٹ بریکرز کو صحت مند حالت میں ری سیٹ کریں",
+ "resetting": "ری سیٹ ہو رہا ہے...",
+ "resetAll": "سبھی کو ری سیٹ کریں",
+ "until": "{time} تک",
+ "limitExhausted": "ختم شدہ",
+ "learnedFromHeaders": "ہیڈرز سے اخذ کردہ",
+ "remainingOfLimit": "{remaining}/{limit} باقی",
+ "throttleStatus": "تھروٹل: {value}",
+ "lastHeaderUpdate": "ہیڈر اپ ڈیٹ: {age}",
"databaseHealth": "ڈیٹا بیس ہیلتھ",
"databaseHealthDescription": "پرانی کوٹہ/ڈومین قطاروں اور ٹوٹی ہوئی کمبو حوالوں کی تشخیص اور مرمت کریں۔",
"status": "حالت",
@@ -4847,65 +4851,65 @@
"noTargets": "کوئی ہدف والے راستے کنفیگر نہیں ہیں۔"
},
"limits": {
- "title": "Limits & Quotas",
- "rateLimit": "Rate Limit",
- "remaining": "Remaining",
- "requestsPerMinute": "Requests/min",
- "tokensPerMinute": "Tokens/min",
- "dailyLimit": "Daily Limit"
+ "title": "حدود اور کوٹے",
+ "rateLimit": "شرح کی حد",
+ "remaining": "باقی",
+ "requestsPerMinute": "درخواستیں/منٹ",
+ "tokensPerMinute": "ٹوکنز/منٹ",
+ "dailyLimit": "یومیہ حد"
},
"logs": {
- "title": "Logs",
- "requestLogs": "Request Logs",
- "proxyLogs": "Proxy Logs",
- "auditLog": "Audit Log",
+ "title": "لاگز",
+ "requestLogs": "درخواست کے لاگز",
+ "proxyLogs": "پراکسی لاگز",
+ "auditLog": "آڈٹ لاگ",
"console": "Console",
- "auditLogDesc": "Administrative actions and security events",
- "loading": "Loading...",
- "refresh": "Refresh",
- "filterByAction": "Filter by action...",
- "filterByActor": "Filter by actor...",
- "filterEntriesAria": "Filter audit log entries",
- "filterByActionTypeAria": "Filter by action type",
- "filterByActorAria": "Filter by actor",
- "refreshAuditLogAria": "Refresh audit log",
- "tableAria": "Audit log entries",
- "failedFetchAuditLog": "Failed to fetch audit log",
- "showing": "Showing {count} entries (offset {offset})",
- "search": "Search",
- "timestamp": "Timestamp",
- "action": "Action",
- "actor": "Actor",
- "target": "Target",
- "details": "Details",
- "ipAddress": "IP Address",
+ "auditLogDesc": "انتظامی کارروائیاں اور سیکیورٹی واقعات",
+ "loading": "لوڈ ہو رہا ہے...",
+ "refresh": "تازہ کریں",
+ "filterByAction": "کارروائی کے لحاظ سے فلٹر کریں...",
+ "filterByActor": "کارروائی کرنے والے کے لحاظ سے فلٹر کریں...",
+ "filterEntriesAria": "آڈٹ لاگ اندراجات فلٹر کریں",
+ "filterByActionTypeAria": "کارروائی کی قسم کے لحاظ سے فلٹر کریں",
+ "filterByActorAria": "کارروائی کرنے والے کے لحاظ سے فلٹر کریں",
+ "refreshAuditLogAria": "آڈٹ لاگ تازہ کریں",
+ "tableAria": "آڈٹ لاگ اندراجات",
+ "failedFetchAuditLog": "آڈٹ لاگ حاصل کرنے میں ناکامی",
+ "showing": "{count} اندراجات دکھائے جا رہے ہیں (آف سیٹ {offset})",
+ "search": "تلاش کریں",
+ "timestamp": "وقت کی مہر",
+ "action": "کارروائی",
+ "actor": "کارروائی کرنے والا",
+ "target": "ہدف",
+ "details": "تفصیلات",
+ "ipAddress": "IP ایڈریس",
"notAvailable": "—",
- "noEntries": "No audit log entries found",
- "previous": "Previous",
- "next": "Next",
- "providerWarningTitle": "Provider Warnings",
- "viewDetails": "View Details",
- "eventMetadata": "Event Metadata",
- "eventPayload": "Event Payload",
- "requestId": "Request Id",
- "providerWarningDesc": "Some providers returned warnings during request processing",
+ "noEntries": "کوئی آڈٹ لاگ اندراج نہیں ملا",
+ "previous": "پچھلا",
+ "next": "اگلا",
+ "providerWarningTitle": "Provider انتباہات",
+ "viewDetails": "تفصیلات دیکھیں",
+ "eventMetadata": "واقعے کا میٹا ڈیٹا",
+ "eventPayload": "واقعے کا پے لوڈ",
+ "requestId": "درخواست کی شناخت",
+ "providerWarningDesc": "درخواست پر کارروائی کے دوران بعض providers نے انتباہات واپس کیے",
"a": "A",
- "offset": "Offset",
- "limit": "Limit",
- "status": "Status",
- "resourceType": "Resource Type",
- "totalEntries": "Total Entries",
- "tab": "Tab",
- "auditModalSubtitle": "Event details and metadata",
- "close": "Close",
- "runningRequests": "Active Requests",
- "runningRequestsDesc": "Real-time view of currently running upstream requests",
+ "offset": "آف سیٹ",
+ "limit": "حد",
+ "status": "حالت",
+ "resourceType": "وسیلے کی قسم",
+ "totalEntries": "کل اندراجات",
+ "tab": "ٹیب",
+ "auditModalSubtitle": "واقعے کی تفصیلات اور میٹا ڈیٹا",
+ "close": "بند کریں",
+ "runningRequests": "فعال درخواستیں",
+ "runningRequestsDesc": "اس وقت جاری upstream درخواستوں کا حقیقی وقت کا منظر",
"clearAll": "تمام صاف کریں۔",
"confirmClearActiveRequests": "تمام فعال درخواستوں کو صاف کریں؟",
- "model": "Model",
- "provider": "Provider",
- "account": "Account",
- "elapsed": "Elapsed",
+ "model": "ماڈل",
+ "provider": "فراہم کنندہ",
+ "account": "اکاؤنٹ",
+ "elapsed": "گزرا ہوا وقت",
"activeStage": "مرحلہ",
"activeStageUnknown": "ابھی تک اپ اسٹریم کو نہیں بھیجا گیا",
"activeStageRegistered": "رجسٹرڈ",
@@ -4915,17 +4919,17 @@
"activeStageRateLimitSlotAcquired": "ریٹ لمیٹ سلاٹ حاصل کر لی گئی",
"activeStageSendingToProvider": "اپ اسٹریم کو بھیجا جا رہا ہے",
"activeStageProviderResponseStarted": "اپ اسٹریم کا جواب شروع ہو گیا",
- "count": "Count",
- "payloads": "Payloads",
- "viewPayloads": "View",
- "activeCount": "{count} active",
- "clientPayload": "Client Request Payload",
- "upstreamPayload": "Upstream Provider Payload",
- "upstreamNotSentYet": "Not sent to upstream yet",
- "runningRequestDetailMeta": "Account: {account} — Elapsed: {elapsed}",
- "export": "Export",
- "exporting": "Exporting...",
- "exportFailed": "Export failed",
+ "count": "تعداد",
+ "payloads": "پے لوڈز",
+ "viewPayloads": "دیکھیں",
+ "activeCount": "{count} فعال",
+ "clientPayload": "کلائنٹ کی درخواست کا پے لوڈ",
+ "upstreamPayload": "اپ اسٹریم فراہم کنندہ کا پے لوڈ",
+ "upstreamNotSentYet": "ابھی تک اپ اسٹریم کو نہیں بھیجا گیا",
+ "runningRequestDetailMeta": "اکاؤنٹ: {account} — گزرا ہوا وقت: {elapsed}",
+ "export": "برآمد کریں",
+ "exporting": "برآمد کیا جا رہا ہے...",
+ "exportFailed": "برآمد ناکام ہو گئی",
"cleanHistoryButton": "ہسٹری صاف کریں",
"cleanHistoryTitle": "لاگ ہسٹری صاف کریں؟",
"cleanHistoryMessage": "یہ مستقل طور پر DATA_DIR/call_logs کے تحت تمام درخواست لاگ کی قطاریں، پرانی تفصیلی قطاریں، اور مقامی آرٹفیکٹ فائلیں صاف کر دے گا۔ صفائی کے بعد لائیو پیج ریفریش ہو جائے گا۔",
@@ -4934,13 +4938,13 @@
"cleanHistorySuccess": "{deleted} لاگ اندراجات، {deletedArtifacts} آرٹفیکٹس، اور {deletedDetailedLogs} پرانی تفصیلی قطاریں صاف کر دی گئیں۔",
"cleanHistoryEmpty": "درخواست لاگ کی کوئی ہسٹری نہیں ملی۔",
"cleanHistoryFailed": "لاگ ہسٹری صاف کرنے میں ناکامی ہوئی۔",
- "timeRange": "Time Range",
- "lastNHours": "Last {hours}",
- "defaultRange": "default",
+ "timeRange": "وقت کی حد",
+ "lastNHours": "گزشتہ {hours}",
+ "defaultRange": "طے شدہ",
"consoleViewer": {
- "fetchFailed": "Failed to fetch logs",
- "copyFailed": "Failed to copy log entry",
- "copyLogEntry": "Copy log entry",
+ "fetchFailed": "لاگز حاصل کرنے میں ناکامی",
+ "copyFailed": "لاگ اندراج نقل کرنے میں ناکامی",
+ "copyLogEntry": "لاگ اندراج نقل کریں",
"filterByLevel": "لاگ لیول کے لحاظ سے فلٹر کریں",
"searchPlaceholder": "لاگز تلاش کریں…",
"searchAria": "لاگ اندراجات تلاش کریں",
@@ -4960,49 +4964,49 @@
"tokens": "ٹوکنز"
},
"onboarding": {
- "welcome": "Welcome",
+ "welcome": "خوش آمدید",
"tiers": "ٹیرز",
- "security": "Security",
+ "security": "سیکیورٹی",
"test": "Test",
- "ready": "Ready!",
- "setPassword": "Set Password",
- "addProvider": "Add your first provider",
- "getStarted": "Get Started",
- "skip": "Skip",
- "skipWizard": "Skip wizard entirely",
- "skipPassword": "Skip password setup",
- "skipAndContinue": "Skip & Continue",
- "passwordLabel": "Password",
- "confirmPassword": "Confirm Password",
- "enterPassword": "Enter password",
- "confirmPasswordPlaceholder": "Confirm password",
- "passwordsMismatch": "Passwords do not match",
- "setupComplete": "Setup Complete!",
- "goToDashboard": "Go to Dashboard →",
- "welcomeDesc": "OmniRoute is your local AI API proxy. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "multiProvider": "Multi-Provider",
- "usageTracking": "Usage Tracking",
- "securityDesc": "Set a password to protect your dashboard, or skip for now.",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
- "providerDesc": "Connect your first AI provider. You can add more later.",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
- "apiKeyRequired": "API Key (required)",
- "customUrlOptional": "Custom URL (optional)",
- "testDesc": "Let's verify your provider connection works.",
- "runTest": "Run Connection Test",
- "testingConnection": "Testing connection...",
- "connectionSuccessful": "Connection successful! Your provider is ready.",
- "noProviderFound": "No provider found. You can add one from the dashboard later.",
- "testFailed": "Test failed, but you can configure this later.",
- "couldNotTest": "Could not test right now. You can test from the dashboard.",
- "doneDesc": "You're all set! Your OmniRoute instance is configured and ready to proxy AI requests.",
- "yourEndpoint": "Your endpoint:",
- "continue": "Continue",
- "retry": "Retry",
- "failedSetPassword": "Failed to set password. Try again.",
- "failedAddProvider": "Failed to add provider. Try again.",
- "connectionError": "Connection error. Please try again.",
- "provider": "Provider",
+ "ready": "تیار!",
+ "setPassword": "پاس ورڈ مقرر کریں",
+ "addProvider": "اپنا پہلا فراہم کنندہ شامل کریں",
+ "getStarted": "شروع کریں",
+ "skip": "چھوڑ دیں",
+ "skipWizard": "وزرڈ مکمل طور پر چھوڑ دیں",
+ "skipPassword": "پاس ورڈ سیٹ اپ چھوڑ دیں",
+ "skipAndContinue": "چھوڑیں اور جاری رکھیں",
+ "passwordLabel": "پاس ورڈ",
+ "confirmPassword": "پاس ورڈ کی تصدیق کریں",
+ "enterPassword": "پاس ورڈ درج کریں",
+ "confirmPasswordPlaceholder": "پاس ورڈ کی تصدیق کریں",
+ "passwordsMismatch": "پاس ورڈز مماثل نہیں ہیں",
+ "setupComplete": "سیٹ اپ مکمل ہو گیا!",
+ "goToDashboard": "ڈیش بورڈ پر جائیں →",
+ "welcomeDesc": "OmniRoute آپ کا مقامی AI API پراکسی ہے۔ یہ لوڈ بیلنسنگ، فیل اوور اور استعمال کی ٹریکنگ کے ساتھ درخواستوں کو متعدد AI فراہم کنندگان تک پہنچاتا ہے۔",
+ "multiProvider": "متعدد فراہم کنندگان",
+ "usageTracking": "استعمال کی ٹریکنگ",
+ "securityDesc": "اپنے ڈیش بورڈ کی حفاظت کے لیے پاس ورڈ مقرر کریں، یا فی الحال اسے چھوڑ دیں۔",
+ "securityDescSkipWarning": "⚠️ پاس ورڈ کے بغیر، آپ سیٹ اپ کے دوران فراہم کنندگان شامل نہیں کر سکیں گے۔ پاس ورڈ مقرر کرنے کے بعد آپ انہیں ڈیش بورڈ سے شامل کر سکتے ہیں۔",
+ "providerDesc": "اپنے پہلے AI فراہم کنندہ کو منسلک کریں۔ آپ بعد میں مزید شامل کر سکتے ہیں۔",
+ "providerRequiresPassword": "فراہم کنندگان شامل کرنے کے لیے پہلے پاس ورڈ مقرر کرنا ضروری ہے۔ براہِ کرم سیکیورٹی کے مرحلے پر واپس جا کر پاس ورڈ مقرر کریں، یا بعد میں ڈیش بورڈ سے فراہم کنندگان شامل کریں۔",
+ "apiKeyRequired": "API Key (درکار)",
+ "customUrlOptional": "حسبِ ضرورت URL (اختیاری)",
+ "testDesc": "آئیے تصدیق کریں کہ آپ کے فراہم کنندہ کا کنکشن کام کر رہا ہے۔",
+ "runTest": "کنکشن ٹیسٹ چلائیں",
+ "testingConnection": "کنکشن کی جانچ ہو رہی ہے...",
+ "connectionSuccessful": "کنکشن کامیاب رہا! آپ کا فراہم کنندہ تیار ہے۔",
+ "noProviderFound": "کوئی فراہم کنندہ نہیں ملا۔ آپ بعد میں ڈیش بورڈ سے ایک شامل کر سکتے ہیں۔",
+ "testFailed": "ٹیسٹ ناکام رہا، لیکن آپ اسے بعد میں ترتیب دے سکتے ہیں۔",
+ "couldNotTest": "اس وقت ٹیسٹ نہیں کیا جا سکا۔ آپ ڈیش بورڈ سے ٹیسٹ کر سکتے ہیں۔",
+ "doneDesc": "سب کچھ تیار ہے! آپ کا OmniRoute انسٹینس ترتیب دیا جا چکا ہے اور AI درخواستوں کو پراکسی کرنے کے لیے تیار ہے۔",
+ "yourEndpoint": "آپ کا اینڈ پوائنٹ:",
+ "continue": "جاری رکھیں",
+ "retry": "دوبارہ کوشش کریں",
+ "failedSetPassword": "پاس ورڈ مقرر نہیں کیا جا سکا۔ دوبارہ کوشش کریں۔",
+ "failedAddProvider": "فراہم کنندہ شامل نہیں کیا جا سکا۔ دوبارہ کوشش کریں۔",
+ "connectionError": "کنکشن میں خرابی۔ براہِ کرم دوبارہ کوشش کریں۔",
+ "provider": "فراہم کنندہ",
"apiKeyHelp": "ایک API کلید AI خدمات کے لیے ایک پاس ورڈ ہے۔ اپنے فراہم کنندہ کی ویب سائٹ سے ایک حاصل کریں (جیسے، platform.openai.com، console.anthropic.com)۔",
"tier": {
"subtitle": "OmniRoute فراہم کنندگان کو تین درجوں میں منظم کرتا ہے لہذا روٹنگ سب سے زیادہ قابل اعتماد، سب سے کم لاگت والے راستے کو ترجیح دیتی ہے۔",
@@ -5045,12 +5049,12 @@
}
},
"providers": {
- "title": "Providers",
+ "title": "فراہم کنندگان",
"Account Deactivated": "اکاؤنٹ غیر فعال کر دیا گیا",
"allProviders": "تمام فراہم کنندگان",
"audioProviders": "آڈیو فراہم کرنے والے",
"showFreeOnly": "صرف مفت",
- "addProvider": "Add Provider",
+ "addProvider": "فراہم کنندہ شامل کریں",
"addFirstProvider": "اپنا پہلا فراہم کنندہ شامل کریں۔",
"addFirstProviderDesc": "OmniRoute کے ذریعے درخواستوں کی روٹنگ شروع کرنے کے لیے AI فراہم کنندہ سے رابطہ کریں۔ آپ مفت فراہم کنندگان، API کیز، یا OAuth اکاؤنٹس استعمال کر سکتے ہیں۔",
"learnMore": "مزید جانیں",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "امپورٹ ہو رہا ہے…",
"importFromFileImport": "{count} فراہم کنندگان امپورٹ کریں",
"importFromFileResult": "{success} فراہم کنندگان امپورٹ ہو گئے ({failed} ناکام رہے)",
+ "importFromFileDownloadTemplate": "CSV ٹیمپلیٹ ڈاؤن لوڈ کریں",
+ "importFromFileMoreErrors": "+{count} مزید",
+ "importFromFileSchemaHint": "CSV کالمز کی ترتیب مقرر ہے: provider, name, apiKey, baseUrl (اختیاری), priority (اختیاری)۔ provider کالم میں موجودہ منظم فراہم کنندہ کی id یا پہلے سے رجسٹر شدہ OpenAI/Anthropic سے مطابقت رکھنے والے نوڈ کی id ہونی چاہیے — یہ درآمد نئے اینڈ پوائنٹ نوڈز تخلیق نہیں کرتی۔",
"adaptaTutorial": {
"title": "Adapta Web کو کیسے کنیکٹ کریں",
"introPrefix": "Adapta کی توثیق Clerk کے ذریعے ہوتی ہے۔ ٹوکن",
@@ -5099,31 +5106,31 @@
"tipPrefix": "یہ",
"tipSuffix": "کوکی طویل مدتی ہوتی ہے، عام طور پر مہینوں کے لیے۔ آپ کو اسے صرف اس صورت میں تجدید کرنے کی ضرورت ہے اگر آپ سائن آؤٹ کرتے ہیں یا Adapta سیشن کو باطل کر دیتا ہے۔"
},
- "editProvider": "Edit Provider",
- "deleteProvider": "Delete Provider",
- "noProviders": "No providers configured",
- "modelAvailability": "Model Availability",
- "accounts": "Accounts",
- "newAccount": "New Account",
- "deleteConfirm": "Are you sure you want to delete this provider?",
- "testing": "Testing...",
- "testConnection": "Test Connection",
- "testSuccess": "Connection successful",
- "testFailed": "Connection failed",
- "available": "Available",
- "cooldown": "Cooldown",
- "unavailable": "Unavailable",
- "unknown": "Unknown",
+ "editProvider": "فراہم کنندہ میں ترمیم کریں",
+ "deleteProvider": "فراہم کنندہ حذف کریں",
+ "noProviders": "کوئی فراہم کنندہ ترتیب نہیں دیا گیا",
+ "modelAvailability": "ماڈل کی دستیابی",
+ "accounts": "اکاؤنٹس",
+ "newAccount": "نیا اکاؤنٹ",
+ "deleteConfirm": "کیا آپ واقعی اس فراہم کنندہ کو حذف کرنا چاہتے ہیں؟",
+ "testing": "جانچ ہو رہی ہے...",
+ "testConnection": "کنکشن کی جانچ کریں",
+ "testSuccess": "کنکشن کامیاب رہا",
+ "testFailed": "کنکشن ناکام رہا",
+ "available": "دستیاب",
+ "cooldown": "وقفۂ بحالی",
+ "unavailable": "غیر دستیاب",
+ "unknown": "نامعلوم",
"oauthLabel": "OAuth",
- "compatibleLabel": "Compatible",
+ "compatibleLabel": "مطابقت پذیر",
"chat": "Chat",
"responses": "Responses",
"messages": "Messages",
- "oauthProviders": "OAuth Providers",
- "freeProviders": "Free Providers",
- "apiKeyProviders": "API Key Providers",
- "compatibleProviders": "API Key Compatible Providers",
- "testAll": "Test All",
+ "oauthProviders": "OAuth فراہم کنندگان",
+ "freeProviders": "مفت فراہم کنندگان",
+ "apiKeyProviders": "API Key فراہم کنندگان",
+ "compatibleProviders": "API Key سے مطابقت رکھنے والے فراہم کنندگان",
+ "testAll": "سب کی جانچ کریں",
"reorderByAvailability": "دوبارہ ترتیب دیں",
"reorderByAvailabilityTitle": "دستیابی کے مطابق کنکشنز کو دوبارہ ترتیب دیں",
"reorderByAvailabilityError": "دستیابی کے مطابق کنکشنز کو دوبارہ ترتیب دینے میں ناکامی",
@@ -5131,10 +5138,10 @@
"distributing": "تقسیم کیا جا رہا ہے...",
"selectedCount": "{count, plural, one {# منتخب شدہ} other {# منتخب شدہ}}",
"accountsCount": "{count, plural, one {# اکاؤنٹ} other {# اکاؤنٹس}}",
- "testAllOAuth": "Test all OAuth connections",
- "testAllFree": "Test all Free connections",
- "testAllApiKey": "Test all API Key connections",
- "testAllCompatible": "Test all Compatible connections",
+ "testAllOAuth": "تمام OAuth کنکشنز کی جانچ کریں",
+ "testAllFree": "تمام مفت کنکشنز کی جانچ کریں",
+ "testAllApiKey": "تمام API Key کنکشنز کی جانچ کریں",
+ "testAllCompatible": "تمام مطابقت پذیر کنکشنز کی جانچ کریں",
"testAllModels": "تمام ماڈلز ٹیسٹ کریں",
"testAllModelsConfirm": "تمام نظر آنے والے ماڈلز ٹیسٹ کریں؟ اگر خودکار طور پر چھپانا فعال ہے تو ناکام ماڈلز چھپ جائیں گے۔",
"testingAllModels": "ٹیسٹ کیا جا رہا ہے {done}/{total}...",
@@ -5150,9 +5157,9 @@
"filterByVisibility": "نمایانی کے لحاظ سے فلٹر کریں",
"autoHideFailed": "ناکام ماڈلز کو خودکار طور پر چھپائیں",
"autoHideFailedHint": "فعال ہونے پر، Test all عوامی کیٹلاگ جیسے /v1/models سے غیر عارضی ناکامیوں کو چھپا دیتا ہے۔ سنگل ماڈل ٹیسٹ کبھی بھی خودکار طور پر نہیں چھپتے۔",
- "connected": "{count} Connected",
- "errorCount": "{count} Error ({code})",
- "errorCountNoCode": "{count} Error",
+ "connected": "{count} منسلک",
+ "errorCount": "{count} خرابی ({code})",
+ "errorCountNoCode": "{count} خرابی",
"testAllCompleted": "{total} ماڈلز کا ٹیسٹ کیا گیا: {ok} ٹھیک، {failed} ناکام",
"modelAutoHidden": "ماڈل {model} خودکار طور پر چھپا دیا گیا (ٹیسٹ ناکام رہا)",
"filterAll": "سب",
@@ -5160,9 +5167,9 @@
"filterHidden": "صرف پوشیدہ",
"modelsHiddenCount": "{count} پوشیدہ",
"warningCount": "{count} وارننگ",
- "noConnections": "No connections",
- "expiredBadge": "Expired",
- "expiringSoonBadge": "Expiring Soon",
+ "noConnections": "کوئی کنکشن نہیں",
+ "expiredBadge": "میعاد ختم",
+ "expiringSoonBadge": "میعاد جلد ختم ہونے والی ہے",
"freeTier": "مفت درجے",
"freeTierAvailable": "مفت درجے دستیاب ہے۔",
"hasFreeTooltip": "مفت ٹیئر دستیاب ہے",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "اس فراہم کنندہ کو فرسودہ کر دیا گیا ہے۔",
"riskNotice": {
"title": "جاری رکھنے سے پہلے",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "استعمال کی احتیاطیں",
"tooltip": "استعمال کے انتباہات والا فراہم کنندہ — تفصیلات کے لیے کلک کریں",
"oauth": "یہ فراہم کنندہ آپ کے آفیشل پروڈکٹ سیشن/OAuth کا استعمال کرتا ہے، جو پراکسی/راؤٹر کے استعمال کے لیے مجاز نہیں ہے۔ ہم خود مختار ایجنٹ کے زیادہ استعمال (OpenCloud طرز، طویل کثیر مرحلہ جاتی فلو، بڑے بیچز) کی سفارش نہیں کرتے ہیں — اپ اسٹریم اکاؤنٹ کو محدود یا بین کر کے ردعمل ظاہر کر سکتا ہے۔ اپنے خطرے پر استعمال کریں۔",
"webCookie": "یہ فراہم کنندہ آپ کے ویب سیشن کوکیز کے ذریعے توثیق کرتا ہے۔ اپ اسٹریم سروس کسی بھی وقت سیشن کو باطل کر سکتی ہے، جس کے لیے آپ کو دوبارہ لاگ ان کرنے کی ضرورت ہوگی۔ طویل غیر حاضر کارروائیوں کے لیے تجویز نہیں کی جاتی ہے۔ اپنے خطرے پر استعمال کریں۔",
@@ -5184,95 +5191,95 @@
"cancel": "منسوخ کریں"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "{count} کنکشن نشان زد — حالیہ ناکامیاں زیادہ سے زیادہ {maxFailures}{lastFailureSuffix}۔ کنکشن کی حالت دیکھنے کے لیے کلک کریں۔",
+ "lastFailureSuffix": "(آخری ناکامی {time})",
+ "ariaLabel": "کنکشن کی حالت کی تفصیلات دیکھیں، {count} انتباہ"
},
- "disabled": "Disabled",
- "enableProvider": "Enable provider",
- "disableProvider": "Disable provider",
- "testResults": "Test Results",
- "noCompatibleYet": "No compatible providers added yet",
- "compatibleHint": "Use the buttons above to add OpenAI or Anthropic compatible endpoints",
- "addOpenAICompatible": "Add OpenAI Compatible",
- "addAnthropicCompatible": "Add Anthropic Compatible",
- "addNewProvider": "Add New Provider",
- "backToProviders": "Back to Providers",
- "configureNewProvider": "Configure a new AI provider to use with your applications.",
- "providerLabel": "Provider",
- "selectProvider": "Select a provider",
- "selectedProvider": "Selected provider",
- "authMethod": "Authentication Method",
- "apiKeyLabel": "API Key",
- "apiKeyRequired": "API Key is required",
- "selectProviderRequired": "Please select a provider",
- "enterApiKey": "Enter your API key",
- "apiKeySecure": "Your API key will be encrypted and stored securely.",
- "oauth2Connect": "Connect with OAuth2",
+ "disabled": "غیر فعال",
+ "enableProvider": "فراہم کنندہ فعال کریں",
+ "disableProvider": "فراہم کنندہ غیر فعال کریں",
+ "testResults": "جانچ کے نتائج",
+ "noCompatibleYet": "ابھی تک کوئی مطابقت پذیر فراہم کنندہ شامل نہیں کیا گیا",
+ "compatibleHint": "OpenAI یا Anthropic سے مطابقت رکھنے والے اینڈ پوائنٹس شامل کرنے کے لیے اوپر موجود بٹن استعمال کریں",
+ "addOpenAICompatible": "OpenAI سے مطابقت رکھنے والا شامل کریں",
+ "addAnthropicCompatible": "Anthropic سے مطابقت رکھنے والا شامل کریں",
+ "addNewProvider": "نیا فراہم کنندہ شامل کریں",
+ "backToProviders": "فراہم کنندگان پر واپس جائیں",
+ "configureNewProvider": "اپنی ایپلیکیشنز کے ساتھ استعمال کے لیے ایک نیا AI فراہم کنندہ ترتیب دیں۔",
+ "providerLabel": "فراہم کنندہ",
+ "selectProvider": "فراہم کنندہ منتخب کریں",
+ "selectedProvider": "منتخب فراہم کنندہ",
+ "authMethod": "توثیق کا طریقہ",
+ "apiKeyLabel": "API کلید",
+ "apiKeyRequired": "API Key درکار ہے",
+ "selectProviderRequired": "براہ کرم فراہم کنندہ منتخب کریں",
+ "enterApiKey": "اپنی API key درج کریں",
+ "apiKeySecure": "آپ کی API کلید کو خفیہ کر کے محفوظ طریقے سے ذخیرہ کیا جائے گا۔",
+ "oauth2Connect": "OAuth2 کے ذریعے مربوط کریں",
"oauth2Label": "OAuth2",
- "oauth2Desc": "Connect your account using OAuth2 authentication.",
- "displayName": "Display Name",
- "displayNamePlaceholder": "e.g., Production API, Dev Environment",
- "displayNameHint": "Optional. A friendly name to identify this configuration.",
- "active": "Active",
- "activeDescription": "Enable this provider for use in your applications",
- "cancel": "Cancel",
- "createProvider": "Create Provider",
- "failedCreate": "Failed to create provider",
- "errorOccurred": "An error occurred. Please try again.",
- "modelStatus": "Model Status",
- "showConfiguredOnly": "Configured only",
- "allModelsOperational": "All models operational",
- "modelsWithIssues": "{count} model(s) with issues",
- "allModelsNormal": "All models are responding normally.",
- "cooldownCleared": "Cooldown cleared for {model}",
- "failedClearCooldown": "Failed to clear cooldown",
- "loadingAvailability": "Loading model availability...",
- "clearCooldown": "Clear",
- "clearing": "Clearing...",
- "until": "Until {time}",
- "providerTestFailed": "Provider test failed",
- "providerTestTimeout": "Provider test timed out — too many connections to test at once",
+ "oauth2Desc": "OAuth2 توثیق کا استعمال کرتے ہوئے اپنا اکاؤنٹ مربوط کریں۔",
+ "displayName": "ظاہری نام",
+ "displayNamePlaceholder": "مثلاً، Production API، Dev Environment",
+ "displayNameHint": "اختیاری۔ اس کنفیگریشن کی شناخت کے لیے ایک آسان نام۔",
+ "active": "فعال",
+ "activeDescription": "اپنی ایپلیکیشنز میں استعمال کے لیے اس فراہم کنندہ کو فعال کریں",
+ "cancel": "منسوخ کریں",
+ "createProvider": "فراہم کنندہ بنائیں",
+ "failedCreate": "فراہم کنندہ بنانے میں ناکامی",
+ "errorOccurred": "ایک خرابی پیش آگئی۔ براہ کرم دوبارہ کوشش کریں۔",
+ "modelStatus": "ماڈل کی حیثیت",
+ "showConfiguredOnly": "صرف کنفیگر کردہ",
+ "allModelsOperational": "تمام ماڈلز فعال ہیں",
+ "modelsWithIssues": "{count} ماڈل میں مسائل ہیں",
+ "allModelsNormal": "تمام ماڈلز معمول کے مطابق جواب دے رہے ہیں۔",
+ "cooldownCleared": "{model} کے لیے کول ڈاؤن ختم کر دیا گیا",
+ "failedClearCooldown": "کول ڈاؤن ختم کرنے میں ناکامی",
+ "loadingAvailability": "ماڈل کی دستیابی لوڈ کی جا رہی ہے...",
+ "clearCooldown": "صاف کریں",
+ "clearing": "صاف کیا جا رہا ہے...",
+ "until": "{time} تک",
+ "providerTestFailed": "فراہم کنندہ کا ٹیسٹ ناکام ہوگیا",
+ "providerTestTimeout": "فراہم کنندہ کے ٹیسٹ کا وقت ختم ہوگیا — ایک ساتھ ٹیسٹ کرنے کے لیے بہت زیادہ کنکشنز ہیں",
"modeTest": "{mode} Test",
- "passedCount": "{count} passed",
- "failedCount": "{count} failed",
- "testedCount": "{count} tested",
+ "passedCount": "{count} کامیاب",
+ "failedCount": "{count} ناکام",
+ "testedCount": "{count} ٹیسٹ کیے گئے",
"millisecondsAbbr": "{value}ms",
"okShort": "OK",
- "errorShort": "ERROR",
- "noActiveConnectionsInGroup": "No active connections found for this group.",
- "allTestsPassed": "All {total} tests passed",
- "testSummary": "{passed}/{total} passed, {failed} failed",
- "nameLabel": "Name",
+ "errorShort": "خرابی",
+ "noActiveConnectionsInGroup": "اس گروپ کے لیے کوئی فعال کنکشن نہیں ملا۔",
+ "allTestsPassed": "تمام {total} ٹیسٹ کامیاب ہوئے",
+ "testSummary": "{passed}/{total} کامیاب، {failed} ناکام",
+ "nameLabel": "نام",
"prefixLabel": "Prefix",
- "baseUrlLabel": "Base URL",
- "apiTypeLabel": "API Type",
- "prefixHint": "Required. Unique prefix for model names.",
- "nameHint": "Required. A friendly label for this node.",
- "baseUrlHint": "Required. Provider API base URL.",
+ "baseUrlLabel": "بنیادی URL",
+ "apiTypeLabel": "API کی قسم",
+ "prefixHint": "لازمی۔ ماڈل کے ناموں کے لیے منفرد سابقہ۔",
+ "nameHint": "لازمی۔ اس نوڈ کے لیے ایک آسان لیبل۔",
+ "baseUrlHint": "لازمی۔ فراہم کنندہ کی API کا بنیادی URL۔",
"iconUrlLabel": "آئیکن URL",
"iconUrlHint": "اختیاری۔ تصویر کا URL جو اس فراہم کنندہ کے آئیکن کے طور پر دکھایا گیا ہے۔",
"iconUrlInvalid": "غلط آئیکن یو آر ایل۔ http(s):// یا data:image/*;base64 یو آر ایل استعمال کریں۔",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "یومیہ کوٹے کی ری سیٹ ٹائم زون",
+ "dailyQuotaResetTimezoneHint": "اختیاری IANA ٹائم زون، جو اس وقت استعمال ہوتا ہے جب اپ اسٹریم X-RateLimit-Reset فراہم نہ کرے۔ مختصر کول ڈاؤن برقرار رکھنے کے لیے اسے خالی چھوڑ دیں۔",
+ "dailyQuotaResetHourLabel": "روزانہ کوٹہ ری سیٹ ہونے کا گھنٹہ",
+ "dailyQuotaResetHourHint": "اوپر دیے گئے ٹائم زون میں مقامی گھنٹہ 0-23۔ خالی رکھنے کا مطلب ہے کہ نوڈ کی سطح پر کوئی گھڑی نہیں۔",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
"openaiBaseUrlPlaceholder": "https://api.openai.com/v1",
- "validateConnection": "Validate Connection",
- "validating": "Validating...",
- "connectionValid": "Connection is valid!",
- "connectionFailed": "Connection failed. Check URL and key.",
- "testKeyLabel": "Test API Key",
- "testKeyPlaceholder": "sk-... (for validation only)",
- "providerNotFound": "Provider not found",
- "deleteConnectionConfirm": "Delete this connection?",
+ "validateConnection": "کنکشن کی توثیق کریں",
+ "validating": "توثیق کی جا رہی ہے...",
+ "connectionValid": "کنکشن درست ہے!",
+ "connectionFailed": "کنکشن ناکام ہو گیا۔ URL اور کلید چیک کریں۔",
+ "testKeyLabel": "API کلید کی جانچ کریں",
+ "testKeyPlaceholder": "sk-... (صرف توثیق کے لیے)",
+ "providerNotFound": "فراہم کنندہ نہیں ملا",
+ "deleteConnectionConfirm": "یہ کنکشن حذف کریں؟",
"deleteConnectionConfirmNamed": "کیا آپ واقعی {name} کو حذف کرنا چاہتے ہیں؟ یہ عمل واپس نہیں لیا جا سکتا۔",
- "batchDeleteSelected": "Delete Selected ({count})",
- "batchDeleteConfirm": "Delete {count} connection(s)? This action cannot be undone.",
- "batchDeleteSuccess": "Deleted {count} connection(s)",
+ "batchDeleteSelected": "منتخب کردہ حذف کریں ({count})",
+ "batchDeleteConfirm": "{count} کنکشن حذف کریں؟ اس عمل کو واپس نہیں لیا جا سکتا۔",
+ "batchDeleteSuccess": "{count} کنکشن حذف کر دیے گئے",
"batchActivateSelected": "فعال کریں",
"batchDeactivateSelected": "غیر فعال کریں",
"batchRetestSelected": "دوبارہ ٹیسٹ کریں",
@@ -5288,32 +5295,32 @@
"filterError": "خرابی",
"filterBanned": "پابندی شدہ",
"filterCreditsExhausted": "کریڈٹ ختم",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "اکاؤنٹس تلاش کریں…",
"noFilteredConnections": "کوئی بھی کنکشن موجودہ فلٹر سے مماثل نہیں ہے۔",
- "failedSetAlias": "Failed to set alias",
+ "failedSetAlias": "عرف مقرر کرنے میں ناکامی",
"setAliasSuccess": "Alias {alias} سیٹ ہو گیا",
"deleteAliasSuccess": "Alias {alias} حذف کر دیا گیا",
- "failedSaveConnection": "Failed to save connection",
- "failedSaveConnectionRetry": "Failed to save connection. Please try again.",
- "failedRetestConnection": "Failed to retest connection",
- "deleteCompatibleNodeConfirm": "Delete this {type} Compatible node?",
- "anthropicCompatibleDetails": "Anthropic Compatible Details",
- "openaiCompatibleDetails": "OpenAI Compatible Details",
+ "failedSaveConnection": "کنکشن محفوظ کرنے میں ناکامی",
+ "failedSaveConnectionRetry": "کنکشن محفوظ کرنے میں ناکامی۔ براہ کرم دوبارہ کوشش کریں۔",
+ "failedRetestConnection": "کنکشن کی دوبارہ جانچ میں ناکامی",
+ "deleteCompatibleNodeConfirm": "یہ {type} ہم آہنگ نوڈ حذف کریں؟",
+ "anthropicCompatibleDetails": "Anthropic سے ہم آہنگ کنکشن کی تفصیلات",
+ "openaiCompatibleDetails": "OpenAI سے ہم آہنگ کنکشن کی تفصیلات",
"messagesApi": "Messages API",
"responsesApi": "Responses API",
- "embeddings": "Embeddings",
- "audioTranscriptions": "Audio Transcriptions",
- "audioSpeech": "Audio Speech",
- "imagesGenerations": "Images Generations",
+ "embeddings": "ایمبیڈنگز",
+ "audioTranscriptions": "آڈیو ٹرانسکرپشنز",
+ "audioSpeech": "آڈیو اسپیچ",
+ "imagesGenerations": "تصاویر کی تخلیق",
"chatCompletions": "Chat Completions",
- "importingModels": "Importing...",
- "importFromModels": "Import from /models",
- "modelsImported": "{count} models imported",
- "allModelsAlreadyImported": "All models already imported",
- "noNewModelsToImport": "No new models to import — all models are already in the registry or custom models list",
- "skippingExistingModels": "Skipping {count} existing models",
- "autoSync": "Auto-Sync",
- "autoSyncShort": "Sync",
+ "importingModels": "درآمد کیا جا رہا ہے...",
+ "importFromModels": "/models سے درآمد کریں",
+ "modelsImported": "{count} ماڈلز درآمد کر لیے گئے",
+ "allModelsAlreadyImported": "تمام ماڈلز پہلے ہی درآمد کیے جا چکے ہیں",
+ "noNewModelsToImport": "درآمد کرنے کے لیے کوئی نیا ماڈل نہیں — تمام ماڈلز پہلے ہی رجسٹری یا حسبِ ضرورت ماڈلز کی فہرست میں موجود ہیں",
+ "skippingExistingModels": "پہلے سے موجود {count} ماڈلز چھوڑے جا رہے ہیں",
+ "autoSync": "خودکار مطابقت پذیری",
+ "autoSyncShort": "مطابقت پذیری",
"autoFetchModels": "خودکار طور پر اپ اسٹریم ماڈلز حاصل کریں",
"autoFetchModelsTooltip": "جب ضرورت ہو تو اوپر کے ماڈلز کو حاصل کریں اور کیش کریں",
"autoFetchModelsEnabled": "اپ اسٹریم ماڈل خودکار حاصل کرنا فعال ہے",
@@ -5325,52 +5332,52 @@
"resetToUpstreamDefaults": "اپ اسٹریم ڈیفالٹس بحال کریں",
"resetToUpstreamDefaultsSuccess": "اپ اسٹریم ماڈل کے ڈیفالٹس بحال کر دیے گئے ہیں",
"resetToUpstreamDefaultsFailed": "اپ اسٹریم ماڈل کے ڈیفالٹس کو بحال کرنے میں ناکامی",
- "autoSyncTooltip": "Automatically refresh model list every 24h (configurable via MODEL_SYNC_INTERVAL_HOURS)",
- "autoSyncEnabled": "Auto-sync enabled — models will refresh periodically",
- "autoSyncDisabled": "Auto-sync disabled",
- "autoSyncToggleFailed": "Failed to toggle auto-sync",
- "autoSyncPartialFailure": "Auto-sync updated for some connections, but not all",
- "clearAllModels": "Clear All Models",
- "clearAllModelsConfirm": "Are you sure you want to remove all models for this provider? This cannot be undone.",
- "clearAllModelsSuccess": "All models cleared",
- "clearAllModelsFailed": "Failed to clear models",
- "addConnectionToImport": "Add a connection to enable importing.",
- "noModelsConfigured": "No models configured",
- "connectionCount": "{count} connection(s)",
- "fetchingModels": "Fetching available models...",
- "failedFetchModels": "Failed to fetch models",
+ "autoSyncTooltip": "ہر 24 گھنٹے بعد ماڈلز کی فہرست خودکار طور پر تازہ کریں (MODEL_SYNC_INTERVAL_HOURS کے ذریعے قابلِ ترتیب)",
+ "autoSyncEnabled": "خودکار مطابقت پذیری فعال ہے — ماڈلز وقتاً فوقتاً تازہ ہوتے رہیں گے",
+ "autoSyncDisabled": "خودکار مطابقت پذیری غیر فعال ہے",
+ "autoSyncToggleFailed": "خودکار مطابقت پذیری تبدیل کرنے میں ناکامی",
+ "autoSyncPartialFailure": "کچھ کنکشنز کے لیے خودکار مطابقت پذیری اپ ڈیٹ ہو گئی، مگر سب کے لیے نہیں",
+ "clearAllModels": "تمام ماڈلز صاف کریں",
+ "clearAllModelsConfirm": "کیا آپ واقعی اس فراہم کنندہ کے تمام ماڈلز ہٹانا چاہتے ہیں؟ اس عمل کو واپس نہیں لیا جا سکتا۔",
+ "clearAllModelsSuccess": "تمام ماڈلز صاف کر دیے گئے",
+ "clearAllModelsFailed": "ماڈلز صاف کرنے میں ناکامی",
+ "addConnectionToImport": "درآمد کو فعال کرنے کے لیے ایک کنکشن شامل کریں۔",
+ "noModelsConfigured": "کوئی ماڈل ترتیب نہیں دیا گیا",
+ "connectionCount": "{count} کنکشن",
+ "fetchingModels": "دستیاب ماڈلز حاصل کیے جا رہے ہیں...",
+ "failedFetchModels": "ماڈلز حاصل کرنے میں ناکامی",
"noFreeModelsFound": "اس فراہم کنندہ کے لیے کوئی مفت ماڈل نہیں ملا — کچھ بھی درآمد نہیں کیا گیا۔",
"fetchModelsSuccess": "{count} نئے ماڈلز ملے",
"fetchModelsFailed": "ماڈلز خودکار طور پر حاصل نہیں کیے جا سکے (آپ ترتیبات سے دوبارہ کوشش کر سکتے ہیں)",
- "noModelsFound": "No models found",
- "importFailed": "Import failed",
- "noNewModelsAdded": "No new models were added.",
+ "noModelsFound": "کوئی ماڈل نہیں ملا",
+ "importFailed": "درآمد ناکام ہو گئی",
+ "noNewModelsAdded": "کوئی نیا ماڈل شامل نہیں کیا گیا۔",
"adding": "Adding...",
- "close": "Close",
- "importingModelsTitle": "Importing Models",
- "copyModel": "Copy model",
- "filterModels": "Filter models...",
+ "close": "بند کریں",
+ "importingModelsTitle": "ماڈلز درآمد کیے جا رہے ہیں",
+ "copyModel": "ماڈل نقل کریں",
+ "filterModels": "ماڈلز فلٹر کریں...",
"testAllRateLimited": "شرح کی حد پوری ہو گئی، جلد روک دیا گیا",
"hideFailedAuto": "ناکام ماڈلز کو خودکار طور پر چھپائیں",
- "selectAllModels": "Select all",
+ "selectAllModels": "سب منتخب کریں",
"hideAllModels": "سبھی چھپائیں",
- "modelsActive": "Active",
- "showModel": "Show model",
- "hideModel": "Hide model",
- "removeModel": "Remove model",
- "rateLimitProtected": "Protected",
- "rateLimitUnprotected": "Unprotected",
+ "modelsActive": "فعال",
+ "showModel": "ماڈل دکھائیں",
+ "hideModel": "ماڈل چھپائیں",
+ "removeModel": "ماڈل ہٹائیں",
+ "rateLimitProtected": "محفوظ",
+ "rateLimitUnprotected": "غیر محفوظ",
"providerQuotaShort": "کوٹہ",
"hideConnectionFromProviderQuota": "اس اکاؤنٹ کو فراہم کنندہ کے کوٹہ سے چھپائیں",
"showConnectionInProviderQuota": "اس اکاؤنٹ کو فراہم کنندہ کے کوٹہ میں دکھائیں",
"quotaVisibilityUpdateFailed": "فراہم کنندہ کے کوٹہ کی مرئیت کو اپ ڈیٹ کرنے میں ناکامی",
- "enableRateLimitProtection": "Click to enable rate limit protection",
- "disableRateLimitProtection": "Click to disable rate limit protection",
+ "enableRateLimitProtection": "ریٹ لمٹ تحفظ فعال کرنے کے لیے کلک کریں",
+ "disableRateLimitProtection": "ریٹ لمٹ تحفظ غیر فعال کرنے کے لیے کلک کریں",
"testAllProgress": "جانچ شدہ {done}/{total}",
"testAllFailedHidden": "{count} ناکام ماڈلز چھپا دیے گئے",
"testAllDone": "تمام ماڈلز کی جانچ ہو گئی",
- "productionKey": "Production Key",
- "enterNewApiKey": "Enter new API key",
+ "productionKey": "پروڈکشن کلید",
+ "enterNewApiKey": "نئی API کلید درج کریں",
"codexApplyModalTitle": "لوکل کوڈیکس پر اپلائی کریں۔",
"codexApplyTargetLabel": "ہدف کا راستہ",
"codexApplyBackupLabel": "بیک اپس",
@@ -5382,77 +5389,77 @@
"bulkAddFormatHint": "فی لائن ایک کلید۔ فارمیٹ: نام|apiKey یا صرف apiKey (انڈیکس کے ذریعہ خودکار نام)۔",
"bulkValidateKeys": "محفوظ کرنے سے پہلے ہر کلید کی توثیق کریں (آہستہ)",
"bulkAddAllKeys": "تمام چابیاں شامل کریں۔",
- "bulkAddedCount": "{count, plural, one {# key added} other {# keys added}}",
- "bulkFailedCount": "{count, plural, one {# failed} other {# failed}}",
- "optional": "Optional",
+ "bulkAddedCount": "{count, plural, one {# کلید شامل کی گئی} other {# کلیدیں شامل کی گئیں}}",
+ "bulkFailedCount": "{count, plural, one {# ناکام} other {# ناکام}}",
+ "optional": "اختیاری",
"anthropicCompatibleName": "Anthropic Compatible",
"openaiCompatibleName": "OpenAI Compatible",
"compatibleDefaultModelLabel": "ڈیفالٹ ماڈل",
"compatibleDefaultModelHint": "ماڈل ID بالکل اسی طرح درج کریں جس طرح آپ کا ہم آہنگ اینڈ پوائنٹ توقع کرتا ہے۔ یہ ماڈل کنکشن کے ڈیفالٹ کے طور پر محفوظ ہو جائے گا۔",
- "failedImportModels": "Failed to import models",
- "noModelsReturnedFromEndpoint": "No models returned from /models endpoint.",
- "importingModelsProgress": "Importing {current} of {total} models...",
- "foundModelsStartingImport": "Found {count} models. Starting import...",
- "importingModelById": "Importing {modelId}...",
- "importSuccessCount": "Successfully imported {count, plural, one {# model} other {# models}}!",
- "noNewModelsAddedExisting": "No new models were added (all already exist).",
- "importDoneCount": "✓ Done! {count, plural, one {# model imported.} other {# models imported.}}",
- "unexpectedErrorOccurred": "An unexpected error occurred",
+ "failedImportModels": "ماڈلز درآمد کرنے میں ناکامی",
+ "noModelsReturnedFromEndpoint": "/models endpoint سے کوئی ماڈل موصول نہیں ہوا۔",
+ "importingModelsProgress": "{total} میں سے {current} ماڈلز درآمد کیے جا رہے ہیں...",
+ "foundModelsStartingImport": "{count} ماڈلز ملے۔ درآمد شروع کی جا رہی ہے...",
+ "importingModelById": "{modelId} درآمد کیا جا رہا ہے...",
+ "importSuccessCount": "{count, plural, one {# ماڈل کامیابی سے درآمد ہو گیا!} other {# ماڈلز کامیابی سے درآمد ہو گئے!}}",
+ "noNewModelsAddedExisting": "کوئی نیا ماڈل شامل نہیں کیا گیا (سب پہلے سے موجود ہیں)۔",
+ "importDoneCount": "✓ مکمل! {count, plural, one {# ماڈل درآمد ہو گیا۔} other {# ماڈلز درآمد ہو گئے۔}}",
+ "unexpectedErrorOccurred": "ایک غیر متوقع خرابی پیش آ گئی",
"getApiKey": "API کی چابی حاصل کریں",
"getApiKeyDescription": "API کی چابی کے لیے رجسٹر یا سائن اپ کریں",
- "connectionCountLabel": "{count, plural, one {# connection} other {# connections}}",
+ "connectionCountLabel": "{count, plural, one {# کنکشن} other {# کنکشنز}}",
"messagesPath": "messages",
"responsesPath": "responses",
"chatCompletionsPath": "chat/completions",
- "add": "Add",
- "edit": "Edit",
- "delete": "Delete",
+ "add": "شامل کریں",
+ "edit": "ترمیم کریں",
+ "delete": "حذف کریں",
"anthropic": "Anthropic",
"openai": "OpenAI",
- "singleConnectionPerCompatible": "Only one connection is allowed per compatible node. Add another node if you need more connections.",
- "connections": "Connections",
- "providerProxyTitleConfigured": "Provider proxy: {host}",
- "configured": "configured",
- "providerProxyConfigureHint": "Configure proxy for all connections of this provider",
- "providerProxy": "Provider Proxy",
- "repairEnv": "Repair env",
- "repairEnvWorking": "Repairing...",
- "repairEnvHint": "Restore missing OAuth defaults into .env without overwriting existing values.",
- "repairEnvSuccess": "OAuth defaults restored",
- "repairEnvFailed": "Failed to repair .env",
- "noConnectionsYet": "No connections yet",
- "addFirstConnectionHint": "Add your first connection to get started",
- "addConnection": "Add Connection",
- "availableModels": "Available Models",
- "builtInModels": "Built-in models",
- "builtInModelsHint": "Registry models for this provider. Use the pencil to set compatibility options.",
- "pageAutoRefresh": "Page will refresh automatically...",
- "statusDisabled": "disabled",
- "statusConnected": "connected",
- "statusRuntimeIssue": "runtime issue",
- "statusAuthFailed": "auth failed",
- "statusRateLimited": "rate limited",
- "statusNetworkIssue": "network issue",
- "statusTestUnsupported": "test unsupported",
- "statusUnavailable": "unavailable",
- "statusFailed": "failed",
- "statusError": "error",
- "oauthAccount": "OAuth Account",
- "errorTypeRuntime": "Local runtime",
- "errorTypeUpstreamAuth": "Upstream auth",
- "errorTypeMissingCredential": "Missing credential",
- "errorTypeRefreshFailed": "Refresh failed",
- "errorTypeTokenExpired": "Token expired",
- "errorTypeRateLimited": "Rate limited",
- "errorTypeUpstreamUnavailable": "Upstream unavailable",
- "errorTypeNetworkError": "Network error",
- "errorTypeTestUnsupported": "Test unsupported",
- "errorTypeUpstreamError": "Upstream error",
+ "singleConnectionPerCompatible": "ہر مطابقت پذیر نوڈ کے لیے صرف ایک کنکشن کی اجازت ہے۔ اگر آپ کو مزید کنکشنز درکار ہوں تو ایک اور نوڈ شامل کریں۔",
+ "connections": "کنکشنز",
+ "providerProxyTitleConfigured": "فراہم کنندہ پراکسی: {host}",
+ "configured": "ترتیب شدہ",
+ "providerProxyConfigureHint": "اس فراہم کنندہ کے تمام کنکشنز کے لیے پراکسی ترتیب دیں",
+ "providerProxy": "فراہم کنندہ پراکسی",
+ "repairEnv": "env کی مرمت کریں",
+ "repairEnvWorking": "مرمت جاری ہے...",
+ "repairEnvHint": "موجودہ اقدار کو اوور رائٹ کیے بغیر گمشدہ OAuth ڈیفالٹس کو .env میں بحال کریں۔",
+ "repairEnvSuccess": "OAuth ڈیفالٹس بحال ہو گئے",
+ "repairEnvFailed": ".env کی مرمت ناکام ہو گئی",
+ "noConnectionsYet": "ابھی تک کوئی کنکشن نہیں ہے",
+ "addFirstConnectionHint": "شروع کرنے کے لیے اپنا پہلا کنکشن شامل کریں",
+ "addConnection": "کنکشن شامل کریں",
+ "availableModels": "دستیاب ماڈلز",
+ "builtInModels": "بلٹ اِن ماڈلز",
+ "builtInModelsHint": "اس فراہم کنندہ کے لیے رجسٹری ماڈلز۔ مطابقت کے اختیارات مقرر کرنے کے لیے پنسل استعمال کریں۔",
+ "pageAutoRefresh": "صفحہ خودکار طور پر ریفریش ہو جائے گا...",
+ "statusDisabled": "غیر فعال",
+ "statusConnected": "منسلک",
+ "statusRuntimeIssue": "رن ٹائم کا مسئلہ",
+ "statusAuthFailed": "توثیق ناکام",
+ "statusRateLimited": "شرح محدود",
+ "statusNetworkIssue": "نیٹ ورک کا مسئلہ",
+ "statusTestUnsupported": "ٹیسٹ غیر معاون",
+ "statusUnavailable": "دستیاب نہیں",
+ "statusFailed": "ناکام",
+ "statusError": "خرابی",
+ "oauthAccount": "OAuth اکاؤنٹ",
+ "errorTypeRuntime": "مقامی رن ٹائم",
+ "errorTypeUpstreamAuth": "اپ اسٹریم توثیق",
+ "errorTypeMissingCredential": "سند موجود نہیں",
+ "errorTypeRefreshFailed": "ریفریش ناکام",
+ "errorTypeTokenExpired": "ٹوکن کی میعاد ختم ہو گئی",
+ "errorTypeRateLimited": "شرح محدود",
+ "errorTypeUpstreamUnavailable": "اپ اسٹریم دستیاب نہیں",
+ "errorTypeNetworkError": "نیٹ ورک کی خرابی",
+ "errorTypeTestUnsupported": "ٹیسٹ غیر معاون",
+ "errorTypeUpstreamError": "اپ اسٹریم خرابی",
"errorTypeCreditsExhausted": "کوئی کریڈٹ نہیں",
"errorTypeBanned": "403 ممنوع",
- "proxySourceGlobal": "Global",
- "proxySourceProvider": "Provider",
- "proxySourceKey": "Key",
+ "proxySourceGlobal": "عالمی",
+ "proxySourceProvider": "فراہم کنندہ",
+ "proxySourceKey": "کلید",
"proxyConfiguredBySource": "Proxy ({source}): {host}",
"proxyOn": "پراکسی آن",
"proxyOff": "براہ راست (پراکسی بائی پاس کریں)",
@@ -5464,31 +5471,31 @@
"perKeyProxyDisabledTitle": "اس فراہم کنندہ کے لیے فی کلید پراکسی تفویض غیر فعال ہے",
"autoPriority": "Auto: {priority}",
"proxy": "Proxy",
- "retestAuthentication": "Retest authentication",
- "retest": "Retest",
- "disableConnection": "Disable connection",
- "enableConnection": "Enable connection",
- "reauthenticateConnection": "Re-authenticate this connection",
- "proxyConfig": "Proxy config",
- "aliasExistsAlert": "Alias \"{alias}\" already exists. Please use a different model or edit existing alias.",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
- "openRouterAnyModelHint": "OpenRouter supports any model. Add models and create aliases for quick access.",
- "modelIdFromOpenRouter": "Model ID (from OpenRouter)",
+ "retestAuthentication": "توثیق دوبارہ جانچیں",
+ "retest": "دوبارہ جانچیں",
+ "disableConnection": "کنکشن غیر فعال کریں",
+ "enableConnection": "کنکشن فعال کریں",
+ "reauthenticateConnection": "اس کنکشن کی دوبارہ توثیق کریں",
+ "proxyConfig": "پراکسی کنفیگریشن",
+ "aliasExistsAlert": "عرف \"{alias}\" پہلے سے موجود ہے۔ براہِ کرم کوئی مختلف ماڈل استعمال کریں یا موجودہ عرف میں ترمیم کریں۔",
+ "aliasInputPlaceholder": "عرف کا نام",
+ "clickToSetAlias": "عرف مقرر کرنے کے لیے کلک کریں",
+ "clickToEditAlias": "عرف: {alias} (ترمیم کے لیے کلک کریں)",
+ "openRouterAnyModelHint": "OpenRouter کسی بھی ماڈل کو سپورٹ کرتا ہے۔ فوری رسائی کے لیے ماڈلز شامل کریں اور عرف بنائیں۔",
+ "modelIdFromOpenRouter": "ماڈل ID (OpenRouter سے)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
- "customModels": "Custom Models",
- "customModelsHint": "Add model IDs not in the default list. These will be available for routing.",
- "normalizeToolCallIdLabel": "Normalize tool call IDs to 9 characters (e.g. Mistral)",
- "preserveDeveloperRoleLabel": "Keep OpenAI Responses developer role (do not map to system)",
- "compatAdjustmentsTitle": "Compatibility",
- "compatButtonLabel": "Compatibility",
- "compatToolIdShort": "Tool ID 9",
- "compatDeveloperShort": "Developer role",
- "compatDoNotPreserveDeveloper": "Do not preserve developer role",
- "compatBadgeNoPreserve": "No preserve",
- "compatProtocolLabel": "Client request protocol",
- "compatProtocolHint": "These options apply when OmniRoute detects this request shape (OpenAI Chat, Responses API, or Anthropic Messages).",
+ "customModels": "حسبِ ضرورت ماڈلز",
+ "customModelsHint": "وہ ماڈل IDs شامل کریں جو ڈیفالٹ فہرست میں نہیں ہیں۔ یہ روٹنگ کے لیے دستیاب ہوں گے۔",
+ "normalizeToolCallIdLabel": "ٹول کال IDs کو 9 حروف پر معیاری بنائیں (مثلاً Mistral)",
+ "preserveDeveloperRoleLabel": "OpenAI Responses کا developer کردار برقرار رکھیں (اسے system سے میپ نہ کریں)",
+ "compatAdjustmentsTitle": "مطابقت",
+ "compatButtonLabel": "مطابقت",
+ "compatToolIdShort": "ٹول ID 9",
+ "compatDeveloperShort": "Developer کردار",
+ "compatDoNotPreserveDeveloper": "Developer کردار برقرار نہ رکھیں",
+ "compatBadgeNoPreserve": "برقرار نہ رکھیں",
+ "compatProtocolLabel": "کلائنٹ درخواست پروٹوکول",
+ "compatProtocolHint": "یہ اختیارات اس وقت لاگو ہوتے ہیں جب OmniRoute اس درخواست کی ساخت (OpenAI Chat، Responses API، یا Anthropic Messages) کا پتہ لگاتا ہے۔",
"compatProtocolOpenAI": "OpenAI Chat Completions",
"compatProtocolOpenAIResponses": "OpenAI Responses API",
"compatProtocolClaude": "Anthropic Messages",
@@ -5530,84 +5537,84 @@
"interceptFetchHint": "نیٹو web_fetch ٹول کالز کو OmniRoute کے /v1/web/fetch پر دوبارہ لکھیں۔",
"interceptionLoadError": "انٹرسیپشن کی ترتیبات لوڈ کرنے میں ناکامی: {error}",
"interceptionSaveError": "انٹرسیپشن کی ترتیبات محفوظ کرنے میں ناکامی: {error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
- "compatUpstreamHeadersLabel": "Extra upstream headers",
- "compatUpstreamHeadersHint": "High-privilege setting — same trust level as editing provider API credentials; only trusted admins should use it. Merged after OmniRoute adds auth from the provider API key. If a custom header uses the same name as an existing one (e.g. Authorization), your value fully replaces the auto-generated header (including the Bearer token) — the upstream only sees what you typed, not the key from settings. Misconfiguration can cause 401 or broken upstream auth. One row per header (e.g. extra Authentication for some gateways). Hover or focus the value to preview. Saves on blur, outside click, or closing this panel.",
- "compatUpstreamHeaderName": "Header name",
- "compatUpstreamHeaderValue": "Value",
- "compatUpstreamAddRow": "Add header",
- "compatUpstreamRemoveRow": "Remove row",
- "compatBadgeUpstreamHeaders": "Headers",
- "perModelQuotaLabel": "Per-Model Quota",
- "perModelQuotaDescription": "When enabled, 429/404 errors only lock the specific model, not the entire connection. Use for providers with per-model rate limits (e.g., ModelScope).",
+ "ccAliasSectionTitle": "Claude Code (claude/…) میں ظاہر کریں",
+ "ccAliasSectionHint": "اس فراہم کنندہ کے ماڈلز کو claude/<provider>/<model> مرر IDs کے تحت مشتہر کریں تاکہ Claude Code کی گیٹ وے ماڈل دریافت انہیں فہرست میں شامل کر سکے۔ ڈیفالٹ طور پر بند — اسے فعال کرنے سے تمام کلائنٹس کے لیے کیٹلاگ اندراجات دگنے ہو جاتے ہیں۔",
+ "ccAliasProviderLevelLabel": "فراہم کنندہ کا ڈیفالٹ",
+ "ccAliasModelOverridesLabel": "فی ماڈل اوور رائیڈز",
+ "ccAliasModelOverrideAriaLabel": "{modelId} کے لیے اوور رائیڈ",
+ "ccAliasStateInherit": "وراثت میں لیں",
+ "ccAliasStateOn": "فعال",
+ "ccAliasStateOff": "غیر فعال",
+ "ccAliasAddModelPlaceholder": "ماڈل ID (مثلاً gpt-4o)",
+ "ccAliasAddModelButton": "اوور رائیڈ شامل کریں",
+ "ccAliasLoadError": "دریافت-عرف کی ترتیبات لوڈ کرنے میں ناکامی: {error}",
+ "ccAliasSaveError": "ڈسکوری-الیاس کی ترتیب محفوظ کرنے میں ناکامی: {error}",
+ "compatUpstreamHeadersLabel": "اضافی اپ اسٹریم ہیڈرز",
+ "compatUpstreamHeadersHint": "اعلیٰ اختیارات والی ترتیب — اس کا اعتماد کا درجہ فراہم کنندہ کی API اسناد میں ترمیم کے برابر ہے؛ اسے صرف قابلِ اعتماد منتظمین استعمال کریں۔ OmniRoute کے فراہم کنندہ کی API کلید سے تصدیق شامل کرنے کے بعد انہیں ضم کیا جاتا ہے۔ اگر کسی حسبِ ضرورت ہیڈر کا نام پہلے سے موجود ہیڈر کے نام جیسا ہو (مثلاً Authorization)، تو آپ کی قدر خودکار طور پر بنائے گئے ہیڈر (بشمول Bearer ٹوکن) کو مکمل طور پر بدل دیتی ہے — اپ اسٹریم کو صرف وہی نظر آتا ہے جو آپ نے درج کیا، ترتیبات میں موجود کلید نہیں۔ غلط ترتیب 401 خرابی یا اپ اسٹریم تصدیق میں تعطل کا باعث بن سکتی ہے۔ ہر ہیڈر کے لیے ایک قطار استعمال کریں (مثلاً بعض گیٹ ویز کے لیے اضافی Authentication)۔ پیش منظر دیکھنے کے لیے قدر پر ماؤس لے جائیں یا اسے فوکس کریں۔ فوکس ختم ہونے، باہر کلک کرنے یا اس پینل کو بند کرنے پر محفوظ ہو جاتا ہے۔",
+ "compatUpstreamHeaderName": "ہیڈر کا نام",
+ "compatUpstreamHeaderValue": "قدر",
+ "compatUpstreamAddRow": "ہیڈر شامل کریں",
+ "compatUpstreamRemoveRow": "قطار ہٹائیں",
+ "compatBadgeUpstreamHeaders": "ہیڈرز",
+ "perModelQuotaLabel": "فی ماڈل کوٹہ",
+ "perModelQuotaDescription": "فعال ہونے پر، 429/404 خرابیاں پورے کنکشن کے بجائے صرف مخصوص ماڈل کو مقفل کرتی ہیں۔ فی ماڈل شرح کی حدود والے فراہم کنندگان (مثلاً ModelScope) کے لیے استعمال کریں۔",
"importFreeModelsOnlyLabel": "صرف مفت ماڈلز امپورٹ کریں",
"importFreeModelsOnlyHint": "فعال ہونے پر، صرف اس فراہم کنندہ کے مفت ماڈلز امپورٹ کیے جاتے ہیں۔ ادا شدہ ماڈلز کو چھوڑ دیا جاتا ہے۔",
- "perModelQuotaToggle": "Per-Model Quota Toggle",
- "modelId": "Model ID",
- "customModelPlaceholder": "e.g. gpt-4.5-turbo",
- "loading": "Loading...",
- "removeCustomModel": "Remove custom model",
- "noCustomModels": "No custom models added yet.",
- "allSuggestedAliasesExist": "All suggested aliases already exist. Please choose a different model or remove conflicting aliases.",
- "failedSaveCustomModel": "Failed to save custom model",
- "modelAddedSuccess": "Model {modelId} added successfully",
- "failedAddModelTryAgain": "Failed to add model. Please try again.",
- "failedSaveImportedModel": "Failed to save imported model to custom database",
- "failedImportModelsTryAgain": "Failed to import models. Please try again.",
- "failedRemoveModelFromDatabase": "Failed to remove model from database",
- "modelRemovedSuccess": "Model removed successfully",
- "failedDeleteModelTryAgain": "Failed to delete model. Please try again.",
- "compatibleModelsDescription": "Add {type}-compatible models manually or import them from the /models endpoint.",
+ "perModelQuotaToggle": "فی ماڈل کوٹہ ٹوگل",
+ "modelId": "ماڈل ID",
+ "customModelPlaceholder": "مثلاً gpt-4.5-turbo",
+ "loading": "لوڈ ہو رہا ہے...",
+ "removeCustomModel": "حسبِ ضرورت ماڈل ہٹائیں",
+ "noCustomModels": "ابھی تک کوئی حسبِ ضرورت ماڈل شامل نہیں کیا گیا۔",
+ "allSuggestedAliasesExist": "تمام تجویز کردہ عرف پہلے سے موجود ہیں۔ براہِ کرم کوئی مختلف ماڈل منتخب کریں یا متصادم عرف ہٹا دیں۔",
+ "failedSaveCustomModel": "حسبِ ضرورت ماڈل محفوظ کرنے میں ناکامی",
+ "modelAddedSuccess": "ماڈل {modelId} کامیابی سے شامل کر دیا گیا",
+ "failedAddModelTryAgain": "ماڈل شامل کرنے میں ناکامی۔ براہِ کرم دوبارہ کوشش کریں۔",
+ "failedSaveImportedModel": "درآمد شدہ ماڈل کو حسبِ ضرورت ڈیٹابیس میں محفوظ کرنے میں ناکامی",
+ "failedImportModelsTryAgain": "ماڈلز درآمد کرنے میں ناکامی۔ براہِ کرم دوبارہ کوشش کریں۔",
+ "failedRemoveModelFromDatabase": "ڈیٹابیس سے ماڈل ہٹانے میں ناکامی",
+ "modelRemovedSuccess": "ماڈل کامیابی سے ہٹا دیا گیا",
+ "failedDeleteModelTryAgain": "ماڈل حذف کرنے میں ناکامی۔ براہِ کرم دوبارہ کوشش کریں۔",
+ "compatibleModelsDescription": "{type} سے مطابقت رکھنے والے ماڈلز دستی طور پر شامل کریں یا انہیں /models اینڈ پوائنٹ سے درآمد کریں۔",
"anthropicCompatibleModelPlaceholder": "claude-3-opus-20240229",
"openaiCompatibleModelPlaceholder": "gpt-4o",
- "apiKeyValidationFailed": "API key validation failed. Please check your key and try again.",
- "addProviderApiKeyTitle": "Add {provider} API Key",
- "checking": "Checking...",
- "check": "Check",
- "valid": "Valid",
- "invalid": "Invalid",
- "creating": "Creating...",
- "validationChecksAnthropicCompatible": "Validation checks {provider} by verifying the API key.",
- "validationChecksOpenAiCompatible": "Validation checks {provider} via /models on your base URL.",
- "priorityLabel": "Priority",
- "saving": "Saving...",
- "save": "Save",
- "editConnection": "Edit Connection",
- "accountName": "Account name",
+ "apiKeyValidationFailed": "API کلید کی توثیق ناکام ہو گئی۔ براہِ کرم اپنی کلید جانچیں اور دوبارہ کوشش کریں۔",
+ "addProviderApiKeyTitle": "{provider} کی API کلید شامل کریں",
+ "checking": "جانچ جاری ہے...",
+ "check": "جانچیں",
+ "valid": "درست",
+ "invalid": "غلط",
+ "creating": "بنایا جا رہا ہے...",
+ "validationChecksAnthropicCompatible": "توثیق API کلید کی تصدیق کر کے {provider} کو جانچتی ہے۔",
+ "validationChecksOpenAiCompatible": "توثیق آپ کے بنیادی URL پر /models کے ذریعے {provider} کو جانچتی ہے۔",
+ "priorityLabel": "ترجیح",
+ "saving": "محفوظ ہو رہا ہے...",
+ "save": "محفوظ کریں",
+ "editConnection": "کنکشن میں ترمیم کریں",
+ "accountName": "اکاؤنٹ کا نام",
"email": "Email",
- "healthCheckMinutes": "Health Check (min)",
+ "healthCheckMinutes": "صحت کی جانچ (منٹ)",
"healthCheckHint": "Proactive token refresh interval. 0 = disabled.",
- "deselectAllModels": "Deselect all",
- "modelsActiveCount": "{active}/{total} active",
- "noModelsMatch": "No models match \"{filter}\"",
- "groupLabel": "Environment",
- "groupPlaceholder": "e.g. eKaizen, Personal",
- "failedTestConnection": "Failed to test connection",
- "failed": "Failed",
- "leaveBlankKeepCurrentApiKey": "Leave blank to keep the current API key.",
- "editCompatibleTitle": "Edit {type} Compatible",
- "compatibleBaseUrlHint": "Root URL of your {type}-compatible API. Use Advanced Settings for custom endpoint paths.",
- "apiKeyForCheck": "API Key (for Check)",
+ "deselectAllModels": "سب کا انتخاب ختم کریں",
+ "modelsActiveCount": "{active}/{total} فعال",
+ "noModelsMatch": "کوئی ماڈل \"{filter}\" سے مماثل نہیں",
+ "groupLabel": "ماحول",
+ "groupPlaceholder": "مثلاً eKaizen، ذاتی",
+ "failedTestConnection": "کنکشن کی جانچ ناکام رہی",
+ "failed": "ناکام",
+ "leaveBlankKeepCurrentApiKey": "موجودہ API کلید برقرار رکھنے کے لیے خالی چھوڑ دیں۔",
+ "editCompatibleTitle": "{type} سے ہم آہنگ میں ترمیم کریں",
+ "compatibleBaseUrlHint": "آپ کے {type} سے ہم آہنگ API کا بنیادی URL۔ حسبِ ضرورت اینڈ پوائنٹ پاتھز کے لیے اعلیٰ ترتیبات استعمال کریں۔",
+ "apiKeyForCheck": "API کلید (جانچ کے لیے)",
"testModelIdLabel": "ماڈل ID (اختیاری)",
"testModelIdPlaceholder": "مثلاً my-model-id",
"testModelIdHint": "اگر فراہم کنندہ کے پاس /models اینڈ پوائنٹ نہیں ہے، تو اس کے بجائے /chat/completions کے ذریعے توثیق کرنے کے لیے ماڈل ID درج کریں۔",
- "compatibleProdPlaceholder": "{type} Compatible (Prod)",
- "tokenRefreshed": "Token refreshed successfully",
- "tokenRefreshFailed": "Token refresh failed",
+ "compatibleProdPlaceholder": "{type} سے ہم آہنگ (پروڈکشن)",
+ "tokenRefreshed": "ٹوکن کامیابی سے ریفریش ہو گیا",
+ "tokenRefreshFailed": "ٹوکن ریفریش ناکام رہا",
"cursorSessionUnchanged": "سیشن پہلے ہی موجود ہے",
- "applyCodexAuthLocal": "Apply auth",
- "exportCodexAuthFile": "Export auth",
+ "applyCodexAuthLocal": "توثیق لاگو کریں",
+ "exportCodexAuthFile": "توثیق برآمد کریں",
"applyClaudeAuthLocal": "تصدیق کا اطلاق کریں۔",
"exportClaudeAuthFile": "تصدیق برآمد کریں۔",
"importClaudeAuth": "توثیق درآمد کریں۔",
@@ -5732,67 +5739,67 @@
"codexImportBulkFailed": "{count} ناکام ہوگیا۔",
"codexImportBulkZipExtracting": "زپ نکال رہا ہے…",
"codexImportBulkZipError": "زپ نکالنے میں ناکام",
- "advancedSettings": "Advanced Settings",
- "chatPathLabel": "Chat Endpoint Path",
+ "advancedSettings": "اعلیٰ ترتیبات",
+ "chatPathLabel": "چیٹ اینڈ پوائنٹ پاتھ",
"chatPathPlaceholder": "/chat/completions",
- "chatPathHint": "Custom chat path for providers with non-standard APIs (e.g. /v4/chat/completions)",
- "modelsPathLabel": "Models Endpoint Path",
+ "chatPathHint": "غیر معیاری APIs والے فراہم کنندگان کے لیے حسبِ ضرورت چیٹ پاتھ (مثلاً /v4/chat/completions)",
+ "modelsPathLabel": "ماڈلز اینڈ پوائنٹ پاتھ",
"modelsPathPlaceholder": "/models",
- "modelsPathHint": "Custom models path for validation (e.g. /v4/models)",
+ "modelsPathHint": "توثیق کے لیے حسبِ ضرورت ماڈلز پاتھ (مثلاً /v4/models)",
"clientIdentityLabel": "کلائنٹ کی شناخت",
"clientIdentityHint": "اختیاری۔ کلائنٹ فنگر پرنٹ ہیڈرز (مثلاً User-Agent) شامل کرتا ہے جو ایک معروف CLI سے مماثل ہوتے ہیں، ان ہم آہنگ گیٹ ویز کے لیے جو اس کی توقع رکھتے ہیں۔",
- "statusDeactivated": "Deactivated (Manual)",
- "statusBanned": "Banned / Sandbox Violation",
- "statusCreditsExhausted": "Insufficient Balance / Quota Exhausted",
- "showEmails": "Show all emails",
- "hideEmails": "Hide all emails",
- "a": "A",
+ "statusDeactivated": "غیر فعال (دستی)",
+ "statusBanned": "پابندی عائد / سینڈ باکس کی خلاف ورزی",
+ "statusCreditsExhausted": "ناکافی بیلنس / کوٹا ختم ہو گیا",
+ "showEmails": "تمام ای میلز دکھائیں",
+ "hideEmails": "تمام ای میلز چھپائیں",
+ "a": "اے",
"accountConcurrencyCapHint": "Account Concurrency Cap Hint",
"accountConcurrencyCapLabel": "Account Concurrency Cap Label",
"accountIdHint": "Account Id Hint",
"accountIdLabel": "Account Id Label",
"accountIdPlaceholder": "Account Id Placeholder",
- "addAnotherApiKey": "Add another API key or paste multiple keys",
+ "addAnotherApiKey": "ایک اور API کلید شامل کریں یا متعدد کلیدیں پیسٹ کریں",
"addCcCompatible": "Add Cc Compatible",
- "aggregatorsGateways": "Aggregators Gateways",
+ "aggregatorsGateways": "ایگریگیٹرز گیٹ ویز",
"enterpriseCloud": "انٹرپرائز اور کلاؤڈ",
- "apiFormatLabel": "Api Format Label",
+ "apiFormatLabel": "API فارمیٹ کا لیبل",
"apiKeyOptionalHint": "Api Key Optional Hint",
"apiKeyOptionalLabel": "Api Key Optional Label",
- "apiRegionChina": "Api Region China",
- "apiRegionHint": "Api Region Hint",
- "apiRegionInternational": "Api Region International",
- "apiRegionLabel": "Api Region Label",
- "apikey": "Apikey",
- "audio": "Audio",
- "audioProvidersHeading": "Audio Providers Heading",
+ "apiRegionChina": "API خطہ چین",
+ "apiRegionHint": "API خطے کا اشارہ",
+ "apiRegionInternational": "API خطہ بین الاقوامی",
+ "apiRegionLabel": "API خطے کا لیبل",
+ "apikey": "API کلید",
+ "audio": "آڈیو",
+ "audioProvidersHeading": "آڈیو فراہم کنندگان کی سرخی",
"cloudAgentProviders": "کلاؤڈ ایجنٹ فراہم کرنے والے",
- "audioShortLabel": "Audio Short Label",
- "azureOpenAiBaseUrlHint": "Azure Open Ai Base Url Hint",
- "bailianBaseUrlHint": "Bailian Base Url Hint",
- "claudeWebCookieHint": "Open claude.ai → DevTools → Application → Cookies → claude.ai, copy the 'sessionKey' value. Also need cf_clearance, __cf_bm, _cfuvid for Cloudflare.",
+ "audioShortLabel": "آڈیو کا مختصر لیبل",
+ "azureOpenAiBaseUrlHint": "Azure Open AI بنیادی URL کا اشارہ",
+ "bailianBaseUrlHint": "Bailian بنیادی URL کا اشارہ",
+ "claudeWebCookieHint": "claude.ai کھولیں → DevTools → Application → Cookies → claude.ai، اور 'sessionKey' کی قدر کاپی کریں۔ Cloudflare کے لیے cf_clearance، __cf_bm، _cfuvid بھی درکار ہیں۔",
"claudeWebCookiePlaceholder": "sessionKey=sk-ant-...",
- "blackboxWebCookieHint": "Blackbox Web Cookie Hint",
- "blackboxWebCookiePlaceholder": "Blackbox Web Cookie Placeholder",
+ "blackboxWebCookieHint": "Blackbox Web کوکی کا اشارہ",
+ "blackboxWebCookiePlaceholder": "Blackbox Web کوکی کا پلیس ہولڈر",
"t3ChatWebCookieHint": "t3.chat → DevTools → Application → Local Storage → https://t3.chat کھولیں، 'convex-session-id' کاپی کریں۔ پھر DevTools → نیٹ ورک کھولیں، کسی بھی چیٹ کی درخواست سے مکمل کوکی ہیڈر کاپی کریں۔ دونوں اقدار کو نیچے دیئے گئے فیلڈز میں چسپاں کریں۔",
"t3ChatWebCookiePlaceholder": "convex-session-id=abc123...",
- "grokWebCookieHint": "Grok Web Cookie Hint",
+ "grokWebCookieHint": "Grok Web کوکی کا اشارہ",
"blockClaudeExtraUsageDescription": "جب فعال ہو تو، OmniRoute اس Claude کنکشن کو غیر دستیاب نشان دیتا ہے جیسے ہی استعمال API قطار میں اضافی استعمال کی رپورٹ کرتی ہے، تاکہ متبادل کسی دوسرے کنکشن پر سوئچ ہو جائے بجائے اس کے کہ پی-ایز-یو اضافی بلنگ پر جاری رہے۔",
"blockClaudeExtraUsageLabel": "اضافی کلود کے استعمال کو بلاک کریں",
"disableCoolingDescription": "عارضی کول ڈاؤن کو چھوڑیں تاکہ یہ کنکشن قابلِ بحالی غلطیوں کے بعد بھی اہل رہے (حتمی حالتیں جیسے banned/expired اب بھی لاگو ہوں گی)۔",
"disableCoolingLabel": "اس کنکشن کے لیے کول ڈاؤن غیر فعال کریں",
- "bulkPasteAdded": "{count, plural, one {1 key added} other {# keys added}}",
- "bulkPasteDuplicatesIgnored": "{count, plural, one {1 duplicate skipped} other {# duplicates skipped}}",
- "bulkPasteHint": "Paste one API key per line. Empty lines are ignored and duplicate keys are skipped.",
+ "bulkPasteAdded": "{count, plural, one {1 کلید شامل کی گئی} other {# کلیدیں شامل کی گئیں}}",
+ "bulkPasteDuplicatesIgnored": "{count, plural, one {1 نقل نظر انداز کی گئی} other {# نقول نظر انداز کی گئیں}}",
+ "bulkPasteHint": "ہر سطر میں ایک API کلید چسپاں کریں۔ خالی سطروں کو نظر انداز کیا جاتا ہے اور نقلی کلیدیں چھوڑ دی جاتی ہیں۔",
"ccCompatibleBaseUrlHint": "Cc Compatible Base Url Hint",
"ccCompatibleBaseUrlPlaceholder": "Cc Compatible Base Url Placeholder",
"ccCompatibleChatPathHint": "Cc Compatible Chat Path Hint",
"ccCompatibleContext1mDescription": "Cc Compatible Context1M Description",
"ccCompatibleContext1mLabel": "Cc Compatible Context1M Label",
- "ccCompatibleRedactThinkingDescription": "Adds the redact-thinking beta header for CC Compatible upstreams that require hidden Claude thinking streams.",
- "ccCompatibleRedactThinkingLabel": "Enable redact-thinking beta",
- "ccCompatibleSummarizeThinkingDescription": "Adds `display: \"summarized\"` to CC Compatible thinking requests so supported Claude models stream visible thinking deltas.",
- "ccCompatibleSummarizeThinkingLabel": "Enable summarized thinking display",
+ "ccCompatibleRedactThinkingDescription": "ایسے CC Compatible اپ اسٹریمز کے لیے redact-thinking بیٹا ہیڈر شامل کرتا ہے جنہیں پوشیدہ Claude سوچ کے اسٹریمز درکار ہوتے ہیں۔",
+ "ccCompatibleRedactThinkingLabel": "redact-thinking بیٹا فعال کریں",
+ "ccCompatibleSummarizeThinkingDescription": "CC Compatible سوچ کی درخواستوں میں `display: \"summarized\"` شامل کرتا ہے تاکہ معاونت یافتہ Claude ماڈلز قابلِ مشاہدہ سوچ کے ڈیلٹاز اسٹریم کر سکیں۔",
+ "ccCompatibleSummarizeThinkingLabel": "خلاصہ شدہ سوچ کا ڈسپلے فعال کریں",
"ccCompatibleDetailsTitle": "Cc Compatible Details Title",
"ccCompatibleLabel": "Cc Compatible Label",
"ccCompatibleModelsDescription": "Cc Compatible Models Description",
@@ -5804,19 +5811,19 @@
"claudeExtraUsageShort": "Claude Extra Usage Short",
"claudeExtraUsageToggleTitle": "Claude Extra Usage Toggle Title",
"codex5hToggleTitle": "Codex5H Toggle Title",
- "codexFastServiceTierDescription": "Use the priority service tier for Codex requests when available.",
- "codexFastServiceTierLabel": "Codex fast service tier",
+ "codexFastServiceTierDescription": "دستیاب ہونے پر Codex درخواستوں کے لیے ترجیحی سروس ٹائر استعمال کریں۔",
+ "codexFastServiceTierLabel": "Codex تیز سروس ٹائر",
"codexWeeklyToggleTitle": "Codex Weekly Toggle Title",
- "compatUpstreamHeaderNamePlaceholder": "Compat Upstream Header Name Placeholder",
- "compatUpstreamHeaderValuePlaceholder": "Compat Upstream Header Value Placeholder",
- "compatible": "Compatible",
- "configuredCount": "Configured Count",
- "consoleApiKeyOracleHint": "Console Api Key Oracle Hint",
- "consoleApiKeyOracleLabel": "Console Api Key Oracle Label",
- "consoleApiKeyOraclePlaceholder": "Console Api Key Oracle Placeholder",
- "newApiUserIdLabel": "New-API User ID",
- "newApiUserIdPlaceholder": "e.g. 12345",
- "newApiUserIdHint": "AgentRouter New-Api-User header value, used together with the console API key to fetch quota balance.",
+ "compatUpstreamHeaderNamePlaceholder": "Compat اپ اسٹریم ہیڈر کے نام کا پلیس ہولڈر",
+ "compatUpstreamHeaderValuePlaceholder": "Compat اپ اسٹریم ہیڈر کی قدر کا پلیس ہولڈر",
+ "compatible": "ہم آہنگ",
+ "configuredCount": "ترتیب شدہ تعداد",
+ "consoleApiKeyOracleHint": "کنسول API کلید Oracle کا اشارہ",
+ "consoleApiKeyOracleLabel": "کنسول API کلید Oracle کا لیبل",
+ "consoleApiKeyOraclePlaceholder": "کنسول API کلید Oracle کا پلیس ہولڈر",
+ "newApiUserIdLabel": "New-API صارف ID",
+ "newApiUserIdPlaceholder": "مثلاً 12345",
+ "newApiUserIdHint": "AgentRouter New-Api-User ہیڈر کی قدر، جو کوٹہ بیلنس حاصل کرنے کے لیے کنسول API کلید کے ساتھ استعمال ہوتی ہے۔",
"newApiAggregatorToggleLabel": "ایگریگیٹر گیٹ وے",
"newApiAggregatorToggleHint": "نئے-API / ایک-API / سب2API ایگریگیٹر نوڈز کے لیے بیلنس کی شناخت کو فعال کریں۔ ڈیش بورڈ بیلنس بیج دکھائے گا اور کوٹہ-پری فلائٹ روٹنگ ختم شدہ اکاؤنٹس کو چھوڑ دے گی۔",
"newApiAggregatorConsoleApiKeyHint": "ایگریگیٹر کے /api/user/self اینڈپوائنٹ کے لیے سسٹم ایکسیس ٹوکن۔ روٹنگ API کلید نہیں۔",
@@ -5826,82 +5833,82 @@
"featureFlagNewApiAggregatorBalanceDescription": "نئے-API / ایک-API / سب2API ایگریگیٹر ہم آہنگ نوڈز کے لیے بیلنس کی شناخت فعال کریں",
"cpaModeDisabledTitle": "Cpa Mode Disabled Title",
"cpaModeEnabledTitle": "Cpa Mode Enabled Title",
- "customUserAgentHint": "Custom User Agent Hint",
- "customUserAgentLabel": "Custom User Agent Label",
- "databricksBaseUrlHint": "Databricks Base Url Hint",
- "defaultThinkingStrengthHint": "Used when a request does not specify reasoning effort.",
- "defaultThinkingStrengthLabel": "Default thinking strength",
- "deleteAllExtraApiKeys": "Delete all",
- "excludedModelsHint": "Excluded Models Hint",
- "excludedModelsLabel": "Excluded Models Label",
- "excludedModelsPlaceholder": "Excluded Models Placeholder",
- "expirationBannerExpired": "Expiration Banner Expired",
- "expirationBannerExpiredDesc": "Expiration Banner Expired Desc",
- "expirationBannerExpiringSoon": "Expiration Banner Expiring Soon",
- "expirationBannerExpiringSoonDesc": "Expiration Banner Expiring Soon Desc",
- "extraApiKeyMasked": "Key {index}: {prefix}••••{suffix}",
- "extraApiKeysHint": "Extra Api Keys Hint",
- "extraApiKeysLabel": "Extra Api Keys Label",
- "apiKeyHealthLabel": "API Key Health",
- "apiKeyStatusActive": "Active",
- "apiKeyStatusWarning": "Warning ({count} failures)",
- "apiKeyStatusInvalid": "Invalid",
- "primaryKey": "Primary Key",
- "apiKeyInvalidAlert": "{count} API key(s) marked as invalid due to authentication failures in connections: {connections}. They will be skipped in rotation. Click to review.",
- "apiKeyInvalidAlertTitle": "API Key Health Alert",
- "apiKeyWarningAlert": "{count} API key(s) in warning state due to elevated failure rate in connections: {connections}. Review to prevent rotation issues.",
- "apiKeyWarningAlertTitle": "API Key Warning",
- "googlePseInfo": "Google Pse Info",
+ "customUserAgentHint": "حسبِ ضرورت User Agent کا اشارہ",
+ "customUserAgentLabel": "حسبِ ضرورت User Agent کا لیبل",
+ "databricksBaseUrlHint": "Databricks بنیادی URL کا اشارہ",
+ "defaultThinkingStrengthHint": "اس وقت استعمال ہوتا ہے جب درخواست میں استدلال کی کوشش متعین نہ ہو۔",
+ "defaultThinkingStrengthLabel": "سوچ کی طے شدہ شدت",
+ "deleteAllExtraApiKeys": "سب حذف کریں",
+ "excludedModelsHint": "خارج کردہ ماڈلز کا اشارہ",
+ "excludedModelsLabel": "خارج کردہ ماڈلز کا لیبل",
+ "excludedModelsPlaceholder": "خارج کردہ ماڈلز کا پلیس ہولڈر",
+ "expirationBannerExpired": "میعاد ختم ہونے کا بینر: میعاد ختم ہو گئی",
+ "expirationBannerExpiredDesc": "میعاد ختم ہونے کے بینر کی تفصیل",
+ "expirationBannerExpiringSoon": "میعاد ختم ہونے کا بینر: میعاد جلد ختم ہو رہی ہے",
+ "expirationBannerExpiringSoonDesc": "میعاد جلد ختم ہونے کے بینر کی تفصیل",
+ "extraApiKeyMasked": "کلید {index}: {prefix}••••{suffix}",
+ "extraApiKeysHint": "اضافی API کلیدوں کا اشارہ",
+ "extraApiKeysLabel": "اضافی API کلیدوں کا لیبل",
+ "apiKeyHealthLabel": "API کلید کی صحت",
+ "apiKeyStatusActive": "فعال",
+ "apiKeyStatusWarning": "تنبیہ ({count} ناکامیاں)",
+ "apiKeyStatusInvalid": "غیر معتبر",
+ "primaryKey": "بنیادی کلید",
+ "apiKeyInvalidAlert": "تصدیقی ناکامیوں کی وجہ سے {count} API کلید(یں) ان کنکشنز میں غیر معتبر نشان زد کی گئی ہیں: {connections}۔ انہیں روٹیشن میں نظر انداز کر دیا جائے گا۔ جائزہ لینے کے لیے کلک کریں۔",
+ "apiKeyInvalidAlertTitle": "API کلید کی صحت کا انتباہ",
+ "apiKeyWarningAlert": "ان کنکشنز میں ناکامی کی بلند شرح کے باعث {count} API کلید(یں) تنبیہی حالت میں ہیں: {connections}۔ روٹیشن کے مسائل سے بچنے کے لیے جائزہ لیں۔",
+ "apiKeyWarningAlertTitle": "API کلید کی تنبیہ",
+ "googlePseInfo": "Google Pse کی معلومات",
"antigravityProjectIdHint": "اینٹی گریوٹی کلاؤڈ کوڈ کی درخواستوں کے لیے اختیاری اوور رائڈ۔ Google OAuth کے دوران دریافت ہونے والے پروجیکٹ کو استعمال کرنے کے لیے خالی چھوڑ دیں۔",
"antigravityClientProfileLabel": "کلائنٹ پروفائل",
"antigravityClientProfileHint": "منتخب کریں کہ OmniRoute، API کو کون سی Antigravity کلائنٹ شناخت پیش کرے۔",
"antigravityClientProfileIde": "IDE",
"antigravityClientProfileCli": "Harness / CLI",
"codexFastTierActiveChip": "Codex Fast ٹیئر فعال ہے",
- "tierFast": "Fast",
+ "tierFast": "تیز",
"antigravityProjectIdLabel": "گوگل کلاؤڈ پروجیکٹ ID",
"antigravityProjectIdPlaceholder": "my-gcp-project-id",
- "grokWebCookiePlaceholder": "Grok Web Cookie Placeholder",
- "herokuBaseUrlHint": "Heroku Base Url Hint",
- "hideEmail": "Hide Email",
- "imageProviders": "Image Providers",
+ "grokWebCookiePlaceholder": "Grok ویب کوکی کی مثال",
+ "herokuBaseUrlHint": "Heroku بنیادی URL کا اشارہ",
+ "hideEmail": "ای میل چھپائیں",
+ "imageProviders": "تصویری فراہم کنندگان",
"videoProviders": "ویڈیو جنریشن",
"embeddingRerankProviders": "ایمبیڈنگز اور رینک",
- "imagesShortLabel": "Images Short Label",
- "llmProviders": "Llm Providers",
- "localProviderApiKeyOptionalHint": "Local Provider Api Key Optional Hint",
- "localProviderBaseUrlHint": "Local Provider Base Url Hint",
- "localProviders": "Local Providers",
- "maxConcurrentWholeNumberError": "Max Concurrent Whole Number Error",
+ "imagesShortLabel": "تصاویر کا مختصر لیبل",
+ "llmProviders": "LLM فراہم کنندگان",
+ "localProviderApiKeyOptionalHint": "مقامی فراہم کنندہ کی اختیاری API کلید کا اشارہ",
+ "localProviderBaseUrlHint": "مقامی فراہم کنندہ کے بنیادی URL کا اشارہ",
+ "localProviders": "مقامی فراہم کنندگان",
+ "maxConcurrentWholeNumberError": "زیادہ سے زیادہ بیک وقت تعداد لازماً صحیح عدد ہونی چاہیے",
"m365TierLabel": "Copilot ٹیئر",
"m365TierHint": "منتخب کریں کہ یہ کنکشن کون سی Microsoft 365 Copilot سرفیس استعمال کرتا ہے۔ Individual پہلے سے طے شدہ صارف BizChat ہے؛ Education اور Enterprise (work) اپنی ٹیننٹ سرفیسز کا انتخاب کرتے ہیں۔",
"m365TierIndividualOption": "Individual (پہلے سے طے شدہ)",
- "m365TierEduOption": "Education",
- "m365TierEnterpriseOption": "Enterprise / Work",
+ "m365TierEduOption": "تعلیم",
+ "m365TierEnterpriseOption": "انٹرپرائز / کام",
"tierOverrideLabel": "ٹیئر اوور رائیڈ",
"tierOverrideAuto": "خودکار (روٹنگ فیصلہ کرتی ہے)",
"tierOverrideFree": "مفت",
"tierOverrideCheap": "سستا",
"tierOverridePremium": "پریمیم",
"tierOverrideHelpText": "اس فراہم کنندہ کو ماڈل کی قیمتوں سے OmniRoute کے ذریعے اخذ کرنے دینے کے بجائے ایک روٹنگ ٹیئر پر پن کریں۔",
- "museSparkWebCookieHint": "Muse Spark Web Cookie Hint",
- "museSparkWebCookiePlaceholder": "Muse Spark Web Cookie Placeholder",
- "oauth": "Oauth",
- "openCliTools": "Open Cli Tools",
- "openSettings": "Open Settings",
- "openaiResponsesStoreDescription": "Allow compatible Responses API requests to preserve stored response state.",
- "openaiResponsesStoreLabel": "OpenAI Responses store",
- "perplexitySearchSharedKeyInfo": "Perplexity Search Shared Key Info",
- "perplexityWebCookieHint": "Perplexity Web Cookie Hint",
- "perplexityWebCookiePlaceholder": "Perplexity Web Cookie Placeholder",
+ "museSparkWebCookieHint": "Muse Spark ویب کوکی کا اشارہ",
+ "museSparkWebCookiePlaceholder": "Muse Spark ویب کوکی کی مثال",
+ "oauth": "OAuth",
+ "openCliTools": "CLI ٹولز کھولیں",
+ "openSettings": "ترتیبات کھولیں",
+ "openaiResponsesStoreDescription": "مطابقت پذیر Responses API درخواستوں کو محفوظ شدہ جوابی حالت برقرار رکھنے کی اجازت دیں۔",
+ "openaiResponsesStoreLabel": "OpenAI Responses اسٹور",
+ "perplexitySearchSharedKeyInfo": "Perplexity Search مشترکہ کلید کی معلومات",
+ "perplexityWebCookieHint": "Perplexity ویب کوکی کا اشارہ",
+ "perplexityWebCookiePlaceholder": "Perplexity ویب کوکی کی مثال",
"personalAccessTokenLabel": "Personal Access Token Label",
"qoderPatHint": "Qoder Pat Hint",
"qoderPatPlaceholder": "Qoder Pat Placeholder",
"rateLimitOverridesSection": "ریٹ لمٹ اوور رائیڈز",
"rateLimitOverridesMaxConcurrentHint": "اس کنکشن کے لیے زیادہ سے زیادہ ہم وقتی درخواستوں کا اوور رائیڈ۔ اکاؤنٹ کی سطح کی حد کو اوور رائیڈ کرتا ہے۔",
"rateLimitOverridesMaxConcurrentLabel": "زیادہ سے زیادہ ہم وقتی (ریٹ لمٹ)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "زیادہ سے زیادہ وقت (ms) جس تک کوئی درخواست ناکام ہونے سے پہلے شرح کی حد کی جگہ کا انتظار کر سکتی ہے۔ یہ صرف اس کنکشن کے لیے عالمی Resilience ترتیب کو اوور رائیڈ کرتا ہے۔",
+ "rateLimitOverridesMaxWaitMsLabel": "قطار میں انتظار کی زیادہ سے زیادہ مدت (ms)",
"rateLimitOverridesMinTimeHint": "درخواستوں کے درمیان کم از کم وقت (ms)۔ پہلے سے طے شدہ ریٹ لمیٹر تاخیر کو اوور رائیڈ کرتا ہے۔",
"rateLimitOverridesMinTimeLabel": "کم از کم وقفہ (ms)",
"rateLimitOverridesRpdHint": "اس کنکشن کے لیے یومیہ زیادہ سے زیادہ درخواستیں۔ فراہم کنندہ کے ڈیفالٹ کو اوور رائڈ کرتا ہے۔",
@@ -5912,54 +5919,54 @@
"rateLimitOverridesTpdLabel": "TPD (ٹوکنز/دن)",
"rateLimitOverridesTpmHint": "اس کنکشن کے لیے فی منٹ زیادہ سے زیادہ ٹوکنز۔ فراہم کنندہ کے پہلے سے طے شدہ کو اوور رائیڈ کرتا ہے۔",
"rateLimitOverridesTpmLabel": "TPM (ٹوکنز/منٹ)",
- "refreshOauthTokenTitle": "Refresh Oauth Token Title",
- "regionHint": "Region Hint",
- "regionLabel": "Region Label",
- "removeThisKey": "Remove This Key",
- "routingTagsHint": "Routing Tags Hint",
- "routingTagsLabel": "Routing Tags Label",
- "routingTagsPlaceholder": "Routing Tags Placeholder",
- "search": "Search",
- "searchEngineIdHint": "Search Engine Id Hint",
- "searchEngineIdLabel": "Search Engine Id Label",
- "searchEngineIdRequired": "Search Engine Id Required",
- "searchProvider": "Search Provider",
- "searchProviderDesc": "Search Provider Desc",
- "searchProviders": "Search Providers",
+ "refreshOauthTokenTitle": "OAuth ٹوکن ریفریش کرنے کا عنوان",
+ "regionHint": "علاقے کا اشارہ",
+ "regionLabel": "علاقے کا لیبل",
+ "removeThisKey": "یہ کلید ہٹائیں",
+ "routingTagsHint": "روٹنگ ٹیگز کا اشارہ",
+ "routingTagsLabel": "روٹنگ ٹیگز کا لیبل",
+ "routingTagsPlaceholder": "روٹنگ ٹیگز کی مثال",
+ "search": "تلاش",
+ "searchEngineIdHint": "سرچ انجن آئی ڈی کا اشارہ",
+ "searchEngineIdLabel": "سرچ انجن آئی ڈی کا لیبل",
+ "searchEngineIdRequired": "سرچ انجن آئی ڈی درکار ہے",
+ "searchProvider": "تلاش کا فراہم کنندہ",
+ "searchProviderDesc": "تلاش کے فراہم کنندہ کی تفصیل",
+ "searchProviders": "تلاش کے فراہم کنندگان",
"searchByModel": "ماڈل کے لحاظ سے تلاش کریں…",
- "searchProvidersHeading": "Search Providers Heading",
- "searxngBaseUrlHint": "Searxng Base Url Hint",
- "searxngInfo": "Searxng Info",
- "sessionCookieLabel": "Session Cookie Label",
- "showEmail": "Show Email",
- "snowflakeBaseUrlHint": "Snowflake Base Url Hint",
+ "searchProvidersHeading": "تلاش کے فراہم کنندگان",
+ "searxngBaseUrlHint": "Searxng بنیادی URL کا اشارہ",
+ "searxngInfo": "Searxng کی معلومات",
+ "sessionCookieLabel": "سیشن کوکی کا لیبل",
+ "showEmail": "ای میل دکھائیں",
+ "snowflakeBaseUrlHint": "Snowflake بنیادی URL کا اشارہ",
"supportedEndpointAudio": "Supported Endpoint Audio",
"supportedEndpointChat": "Supported Endpoint Chat",
"supportedEndpointEmbeddings": "Supported Endpoint Embeddings",
"supportedEndpointImages": "Supported Endpoint Images",
"supportedEndpointsLabel": "Supported Endpoints Label",
- "tagGroupHint": "Tag Group Hint",
- "tagGroupLabel": "Tag Group Label",
- "tagGroupPlaceholder": "Tag Group Placeholder",
- "testModel": "Test Model",
- "testingModel": "Testing Model",
+ "tagGroupHint": "ٹیگ گروپ کا اشارہ",
+ "tagGroupLabel": "ٹیگ گروپ کا لیبل",
+ "tagGroupPlaceholder": "ٹیگ گروپ کی مثال",
+ "testModel": "ماڈل کی جانچ کریں",
+ "testingModel": "ماڈل کی جانچ جاری ہے",
"modelTestQuotaTooltip": "کوٹہ ختم ہو گیا — کل دوبارہ شروع ہوگا یا ٹاپ اپ کی ضرورت ہے",
"toggleOffShort": "Toggle Off Short",
"toggleOnShort": "Toggle On Short",
- "tokenExpiredBadge": "Token Expired Badge",
- "tokenExpiredTitle": "Token Expired Title",
- "tokenExpiresSoonTitle": "Token Expires Soon Title",
- "tokenShort": "Token Short",
- "totalKeysRotating": "{count, plural, one {1 key rotating} other {# keys rotating}}",
- "unhideModel": "Unhide Model",
- "upstreamProxyProviders": "Upstream Proxy Providers",
+ "tokenExpiredBadge": "ٹوکن کی میعاد ختم",
+ "tokenExpiredTitle": "ٹوکن کی میعاد ختم ہو گئی ہے",
+ "tokenExpiresSoonTitle": "ٹوکن کی میعاد جلد ختم ہو جائے گی",
+ "tokenShort": "مختصر ٹوکن",
+ "totalKeysRotating": "{count, plural, one {1 کلید تبدیل ہو رہی ہے} other {# کلیدیں تبدیل ہو رہی ہیں}}",
+ "unhideModel": "ماڈل دوبارہ دکھائیں",
+ "upstreamProxyProviders": "اپ اسٹریم پراکسی فراہم کنندگان",
"validationModelIdHint": "API کلید کی توثیق کے لیے استعمال ہونے والا ماڈل۔ فراہم کنندہ کا پہلا دستیاب ماڈل استعمال کرنے کے لیے خالی چھوڑ دیں۔",
"validationModelIdLabel": "توثیقی ماڈل",
"validationModelIdPlaceholder": "مثلاً meta-llama/llama-3.1-8b-instruct",
- "vertexServiceAccountPlaceholder": "Paste your Service Account JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) or an OAuth access_token",
- "webCookieProviders": "Web Cookie Providers",
- "weeklyShort": "Weekly Short",
- "xiaomiMimoBaseUrlHint": "Xiaomi Mimo Base Url Hint",
+ "vertexServiceAccountPlaceholder": "اپنے Service Account کا JSON ({\"type\":\"service_account\",\"project_id\":\"…\",\"client_email\":\"…\",\"private_key\":\"…\"}) یا OAuth access_token پیسٹ کریں",
+ "webCookieProviders": "ویب کوکی فراہم کنندگان",
+ "weeklyShort": "ہفتہ وار مختصر",
+ "xiaomiMimoBaseUrlHint": "Xiaomi Mimo بنیادی URL کا اشارہ",
"globalCodexServiceMode": "گلوبل Codex سروس موڈ",
"connect": "کنیکٹ کریں",
"manualApiKey": "دستی API کلید",
@@ -5971,9 +5978,9 @@
"zedImportDescription": "Zed IDE کی جانب سے OS کیچین میں محفوظ کردہ AI فراہم کنندہ کی اسناد (OpenAI، Anthropic، Google، Mistral، xAI) دریافت کریں اور انہیں کنکشنز کے طور پر درآمد کریں۔ اس مشین پر Zed IDE کا انسٹال ہونا ضروری ہے۔",
"zedImportButton": "Zed سے درآمد کریں",
"zedImportFailed": "Zed درآمد ناکام ہوگئی",
- "zedImportHint": "Zed Import Hint",
- "zedImportNetworkError": "Zed Import Network Error",
- "zedImportNone": "Zed Import None",
+ "zedImportHint": "Zed درآمد کا اشارہ",
+ "zedImportNetworkError": "Zed درآمد میں نیٹ ورک کی خرابی",
+ "zedImportNone": "Zed درآمد میں کچھ نہیں",
"zedImportSuccess": "{providers} فراہم کنندہ(وں) کے لیے Zed سے {credentials} سند(یں) درآمد کی گئیں",
"zedImporting": "درآمد کر رہا ہے…",
"zedNoCredentials": "کیچین میں Zed کی کوئی اسناد نہیں ملیں",
@@ -6028,7 +6035,7 @@
"claudeImportEntryName": "اندراج {number}",
"claudeImportParseError": "تجزیہ کی خرابی",
"claudeImportNoValidEntries": "درآمد کرنے کے لیے کوئی درست اندراجات نہیں ہیں",
- "webFetch": "Web Fetch",
+ "webFetch": "ویب سے حاصل کریں",
"webFetchTooltip": "وہ فراہم کنندگان جو ویب URLs سے مواد نکالتے ہیں (HTML → Markdown، اسکریپ، اسکرین شاٹ)",
"webFetchProvidersHeading": "Web Fetch فراہم کنندگان",
"compatibleProvidersDesc": "OpenAI-مطابق اور Anthropic-مطابق اینڈ پوائنٹس جن کی آپ میزبانی یا تشکیل کرتے ہیں۔ کسی بھی OpenAI SDK کو اپنے URL کی طرف اشارہ کریں اور درخواستوں کو یہاں روٹ کریں۔",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "GPT-5، Claude Opus 4.6، Claude Sonnet 4.6، Qwen 3.5 سمیت 40+ ماڈلز کے لیے رعایتی API پراکسی۔ اپنی API کی https://freeaiapikey.com/dashboard پر حاصل کریں۔ بیس URL: https://freeaiapikey.com/v1۔",
"freemodel-dev": "https://freemodel.dev پر $300 کے مفت API کریڈٹس حاصل کریں — ادائیگی کی معلومات درکار نہیں۔ OpenAI-compatible اینڈ پوائنٹ۔ GPT-5.4 اور GPT-5.5 ماڈلز دستیاب ہیں۔",
"friendliai": "سرور لیس انفیرنس کے لیے مفت ٹیر — کسی کریڈٹ کارڈ کی ضرورت نہیں",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "Google AI Studio کے ذریعے مفت درجہ؛ ہر ماڈل کے کوٹے اب شائع نہیں کیے جاتے (AI Studio میں کوٹے کا صفحہ دیکھیں) — کریڈٹ کارڈ درکار نہیں۔",
"gigachat": "GigaChat (Sber) کو ایک API کی کے ساتھ منسلک کریں۔",
"gitlab": "عوامی Code Suggestions API کے لیے GitLab پرسنل ایکسیس ٹوکن۔ جب gitlab.com استعمال نہ کر رہے ہوں تو ایک سیلف ہوسٹڈ بیس URL کنفیگر کریں۔",
"gitlawb-gmi": "Gitlawb Opengateway ڈیش بورڈ سے اپنی API کی حاصل کریں۔",
@@ -6180,7 +6187,7 @@
"glm-cn": "GLM Coding (China) کو ایک API کی کے ساتھ منسلک کریں۔",
"glmt": "زیادہ ٹوکن بجٹ، تھنکنگ فعال، اور طویل ٹائم آؤٹ کے ساتھ پہلے سے سیٹ کردہ GLM پروفائل۔",
"getgoapi": "GoAPI کو ایک API کی کے ساتھ منسلک کریں۔",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "مفت پلان: ہر ماڈل کی الگ حد (فی چیٹ ماڈل 200K ٹوکنز/دن؛ RPM/RPD کے لیے console.groq.com/docs/rate-limits دیکھیں) — فائل میں ادائیگی کا کوئی طریقہ موجود نہیں۔",
"haiper": "haiper.ai/haiper-api پر API کی حاصل کریں",
"heroku": "Heroku AI کو ایک API کی کے ساتھ منسلک کریں۔",
"hcnsec": "api.hcnsec.cn پر API کی حاصل کریں",
@@ -6248,7 +6255,7 @@
"requesty": "https://app.requesty.ai پر ایک API key بنائیں، پھر اسے یہاں Bearer ٹوکن کے طور پر پیسٹ کریں۔ OpenAI سے ہم آہنگ اینڈ پوائنٹ https://router.requesty.ai/v1 پر ہے، جس میں ایک لائیو /v1/models کیٹلاگ موجود ہے۔",
"runwayml": "Runway ویڈیو جنریشن ٹاسک پر مبنی ہے۔ OmniRoute، text-to-video یا image-to-video جابز جمع کراتا ہے، /v1/tasks/[id] کو پول کرتا ہے، اور مکمل شدہ ویڈیو آؤٹ پٹس کو واپس OpenAI جیسے /v1/videos/generations ریسپانس میں نارملائز کرتا ہے۔",
"sambanova": "سائن اپ کرنے پر $5 مفت کریڈٹس (30 دن کی میعاد)، کسی کریڈٹ کارڈ کی ضرورت نہیں ہے",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "https://seekai.cc پر ایک API کلید بنائیں، پھر اسے یہاں Bearer ٹوکن کے طور پر پیسٹ کریں۔ OpenAI سے ہم آہنگ بنیادی URL: https://seekai.cc/v1۔",
"sap": "ماڈل کی دریافت AI_API_URL پر /v2/lm/scenarios/foundation-models/models کا استعمال کرتی ہے۔ چیٹ کی درخواستیں deploymentUrl/chat/completions کا استعمال کرتی ہیں اور ان کے لیے AI-Resource-Group درکار ہوتا ہے۔",
"sarvam": "Sarvam AI OpenAI کے ساتھ ہم آہنگ ہے /v1 پر۔ OmniRoute /v1/models کی جانچ کرتا ہے اور چیٹ ٹریفک کو /v1/chat/completions پر بھیجتا ہے۔ ماڈلز کو انڈک زبانوں کے لیے ترتیب دیا گیا ہے۔",
"scaleway": "نئے اکاؤنٹس کے لیے 1M مفت ٹوکنز — EU/GDPR کے مطابق (پیرس)، Qwen3 235B اور Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "Claude Code کو موجودہ OAuth فلو کے ساتھ منسلک کریں۔",
"cline": "Cline کو موجودہ OAuth فلو کے ساتھ منسلک کریں۔",
"cursor": "Cursor IDE کو موجودہ OAuth فلو کے ساتھ منسلک کریں۔",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "cursor.com/dashboard/api سے صارف API کلید (crsr_...) کے ذریعے Cursor کو منسلک کریں؛ IDE سیشن درکار نہیں۔",
"github": "GitHub Copilot کو موجودہ OAuth فلو کے ساتھ منسلک کریں۔",
"gitlab-duo": "ai_features + read_user اسکوپس کے ساتھ OAuth ایپلیکیشن۔ اس OmniRoute انسٹنس پر GITLAB_DUO_OAUTH_CLIENT_ID اور اختیاری طور پر GITLAB_DUO_OAUTH_CLIENT_SECRET کنفیگر کریں۔",
"kilocode": "Kilo Code کو موجودہ OAuth فلو کے ساتھ منسلک کریں۔",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "فراہم کنندہ کے اپنے ڈومین سے مطلوبہ اسناد کاپی کریں۔ کوکیز کے لیے، صرف کوکی ہیڈر کی قدر کاپی کریں اور کوکی کو چھوڑ دیں:۔",
"webSessionGuideStep3Manual": "ہاتھ سے راستہ: براؤزر کے ڈویلپر ٹولز کھولیں (F12 → نیٹ ورک)، صفحہ کو تازہ کریں، ایک تصدیق شدہ درخواست کھولیں، اور درخواست کے ہیڈرز سے کوکی ہیڈر کی قیمت کاپی کریں — کوکی: پیشوند کو چھوڑ دیں۔",
"webSessionGuideStep4": "اسے یہاں چسپاں کریں اور کنکشن چیک کریں۔ اگر یہ کام کرنا بند کر دیتا ہے، تو دوبارہ سائن ان کریں اور اسے نئی قدر سے تبدیل کریں۔",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": ".har فائل درآمد کریں",
+ "harImportButtonBusy": "درآمد ہو رہی ہے…",
+ "harImportButtonHint": "کم از کم ایک چیٹ پیغام بھیجنے کے بعد DevTools کے Network ٹیب سے برآمد کریں۔",
+ "harImportStatusValid": "درآمد ہو گیا — تقریباً {minutes} منٹ تک مؤثر۔",
+ "harImportStatusExpiringSoon": "درآمد ہو گیا — صرف مزید تقریباً {minutes} منٹ تک مؤثر۔",
+ "harImportStatusExpired": "درآمد ہو گیا، لیکن یہ ٹوکن {minutes} منٹ پہلے ہی زائد المیعاد ہو چکا ہے — ایک تازہ HAR برآمد کریں۔",
+ "harImportStatusUnknownExpiry": "درآمد ہو گیا۔ اس کی میعاد ختم ہونے کا وقت پڑھا نہیں جا سکا۔",
+ "harImportErrorNotJson": "یہ فائل درست JSON نہیں ہے — کیا یہ واقعی .har برآمد ہے؟",
+ "harImportErrorNoEntries": "اس HAR میں کوئی نیٹ ورک اندراج ریکارڈ نہیں ہے۔",
+ "harImportErrorNoChathubUrl": "اس HAR میں Copilot چیٹ کنکشن نہیں ملا۔ برآمد کرنے سے پہلے m365.cloud.microsoft میں کم از کم ایک چیٹ پیغام بھیجیں۔",
+ "harImportErrorUnparsableUrl": "چیٹ کنکشن مل گیا، لیکن اس کا URL پڑھا نہیں جا سکا۔",
+ "harImportErrorMissingFields": "چیٹ کنکشن مل گیا، لیکن اس میں ٹوکن موجود نہیں تھا۔",
+ "harImportErrorReadFailed": "اس فائل کو پڑھا نہیں جا سکا۔",
+ "harImportErrorUnknown": "اس HAR فائل سے اسناد اخذ نہیں کی جا سکیں۔",
"webSessionSecurityHint": "اس کے ساتھ پاس ورڈ کی طرح سلوک کریں: یہ آپ کے سائن ان کردہ ویب اکاؤنٹ تک رسائی حاصل کر سکتا ہے جب تک کہ اس کی میعاد ختم نہ ہو جائے یا اسے منسوخ نہ کر دیا جائے۔",
"webNoAuthGuideTitle": "کسی سند کی ضرورت نہیں۔",
"webNoAuthGuideBody": "{provider} کو API کلید یا کوکی کی ضرورت نہیں ہے۔ اس کے مفت ویب اینڈ پوائنٹ کو استعمال کرنے کے لیے کنکشن کو محفوظ کریں۔",
@@ -6360,15 +6367,15 @@
"checkWebToken": "ٹوکن چیک کریں۔",
"huggingchatLabel": "HuggingChat (مفت)",
"huggingchatDesc": "huggingface.co/chat کے ذریعے مفت LLM چیٹ",
- "poeWebLabel": "Poe Web",
+ "poeWebLabel": "Poe ویب",
"poeWebDesc": "poe.com کے ذریعے ملٹی ماڈل چیٹ",
- "veniceWebLabel": "Venice Web",
+ "veniceWebLabel": "Venice ویب",
"veniceWebDesc": "پرائیویسی پر مرکوز AI چیٹ",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "v0 Vercel ویب",
"v0VercelWebDesc": "v0.dev کے ذریعے AI کوڈ جنریشن",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Kimi ویب",
"kimiWebDesc": "www.kimi.com کے ذریعے Moonshot AI کنزیومر چیٹ (بین الاقوامی، Connect-RPC API)",
- "doubaoWebLabel": "Dola Web",
+ "doubaoWebLabel": "Dola ویب",
"doubaoWebDesc": "dola.com کے ذریعے ByteDance AI چیٹ",
"overrideBaseUrlAdvanced": "ایڈوانسڈ: بیس URL کو اوور رائیڈ کریں",
"overrideBaseUrlHint": "ایڈوانسڈ: اس بلٹ ان پرووائیڈر کو کسٹم اینڈ پوائنٹ پر بھیجیں۔ ڈیفالٹ استعمال کرنے کے لیے خالی چھوڑ دیں۔",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "کمانڈ کوڈ کی توثیق ختم ہو گئی",
"commandCodeConnected": "کمانڈ کوڈ جڑا ہوا ہے",
"commandCodeConnectionAdded": "کمانڈ کوڈ کنکشن شامل کیا گیا",
+ "clearConnectionCooldown": "وقفہ ختم کریں",
+ "clearConnectionCooldownInProgress": "ختم کیا جا رہا ہے…",
+ "clearConnectionCooldownTitle": "وقفہ ابھی ختم کریں — جب اپ اسٹریم کوٹا پہلے ہی ریفریش ہو چکا ہو تو استعمال کریں",
"commandCodeLinkExpired": "کمانڈ کوڈ کا لنک ختم ہو گیا ہے",
"commandCodeOpeningStudio": "کمانڈ کوڈ اسٹوڈیو کھولنا…",
"commandCodePopupBlocked": "پاپ اپ بلاک کر دیا گیا ہے۔ براہ کرم پاپ اپس کی اجازت دیں اور دوبارہ Command Code Connect کو آزمائیں۔",
"commandCodeStartFailed": "کمانڈ کوڈ کی توثیق شروع کرنے میں ناکامی",
"connectionDeleted": "کنکشن حذف کر دیا گیا",
"connectionFallback": "کنکشن",
+ "connectionCooldownCleared": "وقفہ ختم کر دیا گیا — کنکشن دوبارہ روٹنگ میں شامل ہو گیا",
"coolingConnectionsDescription": "یہ کنکشن آخری درخواست کے بعد ٹھنڈے ہو رہے ہیں۔ ٹائمر ختم ہونے تک OmniRoute انہیں چھوڑ دے گا — ہاتھ سے بند کرنے کی ضرورت نہیں۔",
"coolingConnectionsTitle": "فی الحال ٹھنڈا کر رہا ہے ({count})",
+ "failedClearConnectionCooldown": "وقفہ ختم کرنے میں ناکامی",
"failedDeleteAlias": "ایلیاس کو حذف کرنے میں ناکامی",
"failedDeleteConnection": "کنکشن کو حذف کرنے میں ناکامی",
"failedDistributeProxies": "پراکسیز تقسیم کرنے میں ناکامی۔",
@@ -6466,21 +6478,16 @@
"savedModelEndpointSettings": "محفوظ شدہ ماڈل اینڈپوائنٹ کی ترتیبات",
"searchByModelAria": "ماڈل کے ذریعے تلاش کریں",
"selectSupportedEndpoint": "کم از کم ایک سپورٹ کردہ اینڈپوائنٹ منتخب کریں",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
- "title": "Settings",
- "general": "General",
- "security": "Security",
- "appearance": "Appearance",
- "routing": "Routing",
- "cache": "Cache",
- "resilience": "Resilience",
+ "title": "ترتیبات",
+ "general": "عمومی",
+ "security": "سیکیورٹی",
+ "appearance": "ظاہری شکل",
+ "routing": "روٹنگ",
+ "cache": "کیش",
+ "resilience": "لچک پذیری",
"description": "تفصیل",
"enable": "فعال کریں",
"disable": "غیر فعال کریں",
@@ -6547,25 +6554,25 @@
"routingOpStatusSeparator": " ·",
"resilienceSettingsIntro": "فراہم کنندگان کے ناکام ہونے پر خودکار دوبارہ کوشش، کولڈاؤن، اور فال بیک۔",
"aiSettingsIntro": "سوچنے کے بجٹ، ماڈل رویے، اور کمپریشن کے لیے AI مخصوص ترتیبات۔",
- "systemPrompt": "System Prompt",
- "thinkingBudget": "Thinking Budget",
+ "systemPrompt": "سسٹم پرامپٹ",
+ "thinkingBudget": "سوچنے کا بجٹ",
"proxy": "Proxy",
- "httpProxy": "HTTP Proxy",
+ "httpProxy": "HTTP پراکسی",
"1proxy": "1proxy",
- "proxySubTabsAria": "Proxy sections",
- "requestBodyLimitTitle": "Request Body Limit",
- "requestBodyLimitDescription": "Maximum API payload size accepted before a request body is parsed. Dedicated upload routes keep at least their built-in 100 MB limit.",
- "requestBodyLimitInputLabel": "Request body limit in MB",
- "requestBodyLimitEmptyError": "Enter a limit in MB",
- "requestBodyLimitWholeNumberError": "Use a whole number",
- "requestBodyLimitMinimumError": "Minimum is {min} MB",
- "requestBodyLimitMaximumError": "Maximum is {max} MB",
- "requestBodyLimitLoadFailed": "Failed to load request limit settings",
- "requestBodyLimitSaveSuccess": "Request body limit saved",
- "requestBodyLimitSaveFailed": "Failed to save request body limit",
- "requestBodyLimitSaving": "Saving...",
- "requestBodyLimitSave": "Save",
- "requestBodyLimitCurrent": "Current: {value}",
+ "proxySubTabsAria": "پراکسی سیکشنز",
+ "requestBodyLimitTitle": "درخواست کی باڈی کی حد",
+ "requestBodyLimitDescription": "درخواست کی باڈی پارس ہونے سے پہلے قابلِ قبول API پے لوڈ کا زیادہ سے زیادہ سائز۔ مخصوص اپ لوڈ روٹس میں کم از کم ان کی پہلے سے طے شدہ 100 MB کی حد برقرار رہتی ہے۔",
+ "requestBodyLimitInputLabel": "درخواست کی باڈی کی حد MB میں",
+ "requestBodyLimitEmptyError": "MB میں حد درج کریں",
+ "requestBodyLimitWholeNumberError": "صحیح عدد استعمال کریں",
+ "requestBodyLimitMinimumError": "کم از کم حد {min} MB ہے",
+ "requestBodyLimitMaximumError": "زیادہ سے زیادہ حد {max} MB ہے",
+ "requestBodyLimitLoadFailed": "درخواست کی حد کی ترتیبات لوڈ نہیں ہو سکیں",
+ "requestBodyLimitSaveSuccess": "درخواست کی باڈی کی حد محفوظ ہو گئی",
+ "requestBodyLimitSaveFailed": "درخواست کی باڈی کی حد محفوظ نہیں ہو سکی",
+ "requestBodyLimitSaving": "محفوظ کیا جا رہا ہے...",
+ "requestBodyLimitSave": "محفوظ کریں",
+ "requestBodyLimitCurrent": "موجودہ: {value}",
"cacheConfigLoadFailed": "کیچ سیٹنگز لوڈ کرنے میں ناکامی ہوئی",
"cacheConfigSaveSuccess": "کیچ سیٹنگز محفوظ کر لی گئیں",
"cacheConfigSaveFailed": "کیچ سیٹنگز محفوظ کرنے میں ناکامی",
@@ -6579,69 +6586,69 @@
"modelCatalogCacheTtlSave": "محفوظ کریں",
"modelCatalogCacheTtlCurrent": "موجودہ: {value} ملی سیکنڈ",
"mitmProxy": "MITM پراکسی",
- "pricing": "Pricing",
- "storage": "Storage",
- "policies": "Policies",
- "ipFilter": "IP Filter",
- "comboDefaults": "Combo Defaults",
- "fallbackChains": "Fallback Chains",
- "changePassword": "Change Password",
- "enablePassword": "Enable Password",
- "darkMode": "Dark Mode",
- "lightMode": "Light Mode",
- "memoryTitle": "Memory",
- "memoryDesc": "Persistent cross-session conversational memory",
- "memoryEnabled": "Enable Memory",
- "memoryEnabledDesc": "When enabled, OmniRoute will inject relevant past context.",
+ "pricing": "قیمتوں کا تعین",
+ "storage": "اسٹوریج",
+ "policies": "پالیسیاں",
+ "ipFilter": "IP فلٹر",
+ "comboDefaults": "کومبو کی طے شدہ ترتیبات",
+ "fallbackChains": "متبادل چینز",
+ "changePassword": "پاس ورڈ تبدیل کریں",
+ "enablePassword": "پاس ورڈ فعال کریں",
+ "darkMode": "ڈارک موڈ",
+ "lightMode": "لائٹ موڈ",
+ "memoryTitle": "میموری",
+ "memoryDesc": "مختلف سیشنز کے درمیان برقرار رہنے والی مکالماتی میموری",
+ "memoryEnabled": "میموری فعال کریں",
+ "memoryEnabledDesc": "فعال ہونے پر، OmniRoute ماضی کا متعلقہ سیاق و سباق شامل کرے گا۔",
"memoryTokenCostWarning": "توجہ فرمائیں: میموری فعال ہونے کے ساتھ، OmniRoute ہر چیٹ کی درخواست میں حاصل کردہ سیاق و سباق کے {tokens} ٹوکنز تک داخل کرتا ہے — اس سے ٹوکن کا استعمال اور لاگت بڑھ جاتی ہے۔ کسی مخصوص درخواست کے لیے انجیکشن کو چھوڑنے کے لیے، \"x-omniroute-no-memory: true\" ہیڈر بھیجیں۔",
- "maxTokens": "Max Tokens",
- "retentionDays": "Retention",
- "recent": "Recent",
- "recentDesc": "Chronological window",
- "semantic": "Semantic",
- "semanticDesc": "Vector search",
- "hybrid": "Hybrid",
- "hybridDesc": "Recent + Semantic",
- "skillsTitle": "Skills",
- "skillsDesc": "Tools for models",
- "skillsEnabled": "Enable Skills",
- "skillsEnabledDesc": "Allows agents to trigger functions.",
- "skillsComingSoon": "Skills marketplace coming soon.",
- "memorySkillsTitle": "Memory & Skills",
- "memorySkillsDesc": "Persistent context & capabilities",
- "modelsDevTitle": "Model Database",
- "modelsDevDesc": "Auto-sync pricing, capabilities & specs from models.dev",
- "modelsDevEnabled": "Enable models.dev Sync",
- "modelsDevEnabledDesc": "Fetch model pricing, capabilities, and specs from the open-source models.dev database",
- "modelsDevInterval": "Sync Interval",
- "syncNow": "Sync Now",
- "syncing": "Syncing...",
- "lastSync": "Last sync",
- "never": "Never",
- "justNow": "Just now",
- "modelsDevStats": "Sync Statistics",
- "modelsDevStatsDesc": "Current models.dev data coverage",
- "providers": "Providers",
- "modelsWithPricing": "Models with Pricing",
- "capabilities": "Capabilities",
- "lastSyncCount": "Last Sync Count",
- "lastSyncFull": "Last full sync",
- "modelsDevInfo": "How It Works",
- "modelsDevInfoDesc": "models.dev is an open-source database of AI model specifications maintained by the SST/OpenCode team. It provides pricing, capabilities, context limits, and modalities for 4,000+ models across 100+ providers.",
- "modelsDevInfoResolution": "Pricing resolution order (highest priority first):",
- "modelsDevInfoOrder": "User Override → models.dev → LiteLLM → Hardcoded Default",
- "systemTheme": "System Theme",
- "debugToggle": "Enable Debug Mode",
+ "maxTokens": "زیادہ سے زیادہ ٹوکنز",
+ "retentionDays": "برقرار رکھنے کی مدت",
+ "recent": "حالیہ",
+ "recentDesc": "ترتیبِ وقت کے مطابق ونڈو",
+ "semantic": "معنوی",
+ "semanticDesc": "ویکٹر تلاش",
+ "hybrid": "ہائبرڈ",
+ "hybridDesc": "حالیہ + معنوی",
+ "skillsTitle": "مہارتیں",
+ "skillsDesc": "ماڈلز کے لیے ٹولز",
+ "skillsEnabled": "اسکلز فعال کریں",
+ "skillsEnabledDesc": "ایجنٹس کو فنکشنز متحرک کرنے کی اجازت دیتا ہے۔",
+ "skillsComingSoon": "اسکلز مارکیٹ پلیس جلد آ رہی ہے۔",
+ "memorySkillsTitle": "میموری اور اسکلز",
+ "memorySkillsDesc": "مستقل سیاق و سباق اور صلاحیتیں",
+ "modelsDevTitle": "ماڈل ڈیٹابیس",
+ "modelsDevDesc": "models.dev سے قیمتوں، صلاحیتوں اور خصوصیات کو خودکار طور پر ہم وقت کریں",
+ "modelsDevEnabled": "models.dev ہم وقتی فعال کریں",
+ "modelsDevEnabledDesc": "اوپن سورس models.dev ڈیٹابیس سے ماڈل کی قیمتیں، صلاحیتیں اور خصوصیات حاصل کریں",
+ "modelsDevInterval": "ہم وقتی کا وقفہ",
+ "syncNow": "ابھی ہم وقت کریں",
+ "syncing": "ہم وقت کیا جا رہا ہے...",
+ "lastSync": "آخری ہم وقتی",
+ "never": "کبھی نہیں",
+ "justNow": "ابھی ابھی",
+ "modelsDevStats": "ہم وقتی کے اعداد و شمار",
+ "modelsDevStatsDesc": "موجودہ models.dev ڈیٹا کوریج",
+ "providers": "فراہم کنندگان",
+ "modelsWithPricing": "قیمتوں والے ماڈلز",
+ "capabilities": "صلاحیتیں",
+ "lastSyncCount": "آخری ہم وقتی کی تعداد",
+ "lastSyncFull": "آخری مکمل ہم وقتی",
+ "modelsDevInfo": "یہ کیسے کام کرتا ہے",
+ "modelsDevInfoDesc": "models.dev، SST/OpenCode ٹیم کے زیر انتظام AI ماڈل کی خصوصیات کا ایک اوپن سورس ڈیٹابیس ہے۔ یہ 100+ فراہم کنندگان کے 4,000+ ماڈلز کے لیے قیمتیں، صلاحیتیں، سیاق کی حدود اور طریقۂ کار فراہم کرتا ہے۔",
+ "modelsDevInfoResolution": "قیمت کے تعین کی ترتیب (سب سے زیادہ ترجیح پہلے):",
+ "modelsDevInfoOrder": "صارف کی اوور رائیڈ → models.dev → LiteLLM → ہارڈ کوڈ شدہ ڈیفالٹ",
+ "systemTheme": "سسٹم تھیم",
+ "debugToggle": "ڈیبگ موڈ فعال کریں",
"logToolSourcesToggle": "ٹول کے ذرائع لاگ کریں",
"logToolSourcesDescription": "ہر درخواست پر ایک تشخیصی لاگ لائن جاری کریں جو ٹول کی تعداد اور MCP/hosted/client کے ذرائع کی تفصیل کا خلاصہ پیش کرے۔",
- "homePinProviderQuotaToHome": "Pin Information to Home Page",
+ "homePinProviderQuotaToHome": "معلومات کو ہوم پیج پر پن کریں",
"homePinnedSectionsDesc": "منتخب کریں کہ ہوم پیج کے اوپری حصے میں کن حصوں کو پن کرنا ہے۔",
- "homeProviderQuotaLimits": "Provider Quota Limits",
- "homeProviderQuotaLimitsDesc": "Pin the Provider Quota status container (with Refresh All button) to the top of the Home page.",
- "homeQuickStart": "Quick Start",
- "homeQuickStartDesc": "Show the Quick Start panel on the Home page.",
- "homeProviderTopology": "Provider Topology",
- "homeProviderTopologyDesc": "Show the Provider Topology on the Home page.",
+ "homeProviderQuotaLimits": "فراہم کنندہ کے کوٹے کی حدود",
+ "homeProviderQuotaLimitsDesc": "فراہم کنندہ کے کوٹے کی حیثیت کا کنٹینر (Refresh All بٹن کے ساتھ) ہوم پیج کے اوپر پن کریں۔",
+ "homeQuickStart": "فوری آغاز",
+ "homeQuickStartDesc": "ہوم پیج پر فوری آغاز کا پینل دکھائیں۔",
+ "homeProviderTopology": "فراہم کنندگان کی ٹوپولوجی",
+ "homeProviderTopologyDesc": "ہوم پیج پر فراہم کنندگان کی ٹوپولوجی دکھائیں۔",
"accountEmailVisibility": "اکاؤنٹ ای میل کی نمائش",
"accountEmailVisibilityDesc": "پرووائیڈرز، کمبوز، لاگز، کوٹہ، اور پلے گراؤنڈ اسکرینز پر مکمل اکاؤنٹ ای میلز دکھائیں۔ انہیں پہلے سے طے شدہ طور پر چھپانے کے لیے اسے بند کریں۔",
"comboConfigMode": "کمبو کنفیگریشن موڈ",
@@ -6657,89 +6664,89 @@
"providerQuotaAutoRefreshInterval": "ریفریش کا وقفہ",
"providerQuotaAutoRefreshIntervalDesc": "کوٹہ ویو کو کتنی بار ریفریش ہونا چاہیے، سیکنڈز میں۔",
"seconds": "سیکنڈز",
- "sidebarVisibilityToggle": "Show Sidebar Items",
- "enableCache": "Enable Cache",
- "cacheTTL": "Cache TTL",
- "maxCacheSize": "Max Cache Size",
- "clearCache": "Clear Cache",
- "cacheCleared": "Cache cleared successfully",
- "clearCacheFailed": "Failed to clear cache",
- "cacheHits": "Cache Hits",
- "cacheMisses": "Cache Misses",
- "hitRate": "Hit Rate",
- "cacheEntries": "Cache Entries",
- "cacheSettings": "Cache Settings",
- "semanticCache": "Semantic Cache",
- "maxEntries": "Max Entries",
- "ttlMinutes": "TTL (minutes)",
- "promptCache": "Prompt Cache",
- "strategy": "Strategy",
- "preserveClientCache": "Preserve Client Cache",
- "enabled": "Enabled",
+ "sidebarVisibilityToggle": "سائیڈ بار آئٹمز دکھائیں",
+ "enableCache": "کیش فعال کریں",
+ "cacheTTL": "کیش TTL",
+ "maxCacheSize": "کیش کا زیادہ سے زیادہ سائز",
+ "clearCache": "کیش صاف کریں",
+ "cacheCleared": "کیش کامیابی سے صاف کر دیا گیا",
+ "clearCacheFailed": "کیش صاف کرنے میں ناکامی",
+ "cacheHits": "کیش ہٹس",
+ "cacheMisses": "کیش مِسز",
+ "hitRate": "ہٹ ریٹ",
+ "cacheEntries": "کیش اندراجات",
+ "cacheSettings": "کیش کی ترتیبات",
+ "semanticCache": "سیمنٹک کیش",
+ "maxEntries": "زیادہ سے زیادہ اندراجات",
+ "ttlMinutes": "TTL (منٹ)",
+ "promptCache": "پرامپٹ کیش",
+ "strategy": "حکمتِ عملی",
+ "preserveClientCache": "کلائنٹ کیش برقرار رکھیں",
+ "enabled": "فعال",
"loading": "Loading...",
- "saving": "Saving...",
- "save": "Save",
- "circuitBreaker": "Circuit Breaker",
- "retryPolicy": "Retry Policy",
- "maxRetries": "Max Retries",
- "retryDelay": "Retry Delay",
- "timeoutMs": "Timeout (ms)",
- "enableSystemPrompt": "Enable System Prompt",
- "systemPromptText": "System Prompt Text",
- "autoDisableBannedAccounts": "Auto-Disable Banned Accounts",
- "autoDisableDescription": "Permanently mark provider connections as deactivated if they return specific terminal ban signals (e.g. HTTP 403 'verify your account'). This removes them from the combo rotation.",
- "autoDisableThreshold": "Ban Threshold",
- "autoDisableThresholdDesc": "Consecutive ban signals required before permanent deactivation.",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "saving": "محفوظ کیا جا رہا ہے...",
+ "save": "محفوظ کریں",
+ "circuitBreaker": "سرکٹ بریکر",
+ "retryPolicy": "دوبارہ کوشش کی پالیسی",
+ "maxRetries": "دوبارہ کوششوں کی زیادہ سے زیادہ تعداد",
+ "retryDelay": "دوبارہ کوشش میں تاخیر",
+ "timeoutMs": "ٹائم آؤٹ (ms)",
+ "enableSystemPrompt": "سسٹم پرامپٹ فعال کریں",
+ "systemPromptText": "سسٹم پرامپٹ کا متن",
+ "autoDisableBannedAccounts": "پابندی زدہ اکاؤنٹس خودکار طور پر غیر فعال کریں",
+ "autoDisableDescription": "اگر پرووائیڈر کنکشنز مخصوص حتمی پابندی کے سگنلز واپس کریں (مثلاً HTTP 403 'اپنے اکاؤنٹ کی تصدیق کریں') تو انہیں مستقل طور پر غیر فعال نشان زد کریں۔ اس سے وہ کومبو روٹیشن سے ہٹا دیے جائیں گے۔",
+ "autoDisableThreshold": "پابندی کی حد",
+ "autoDisableThresholdDesc": "مستقل غیر فعالیت سے پہلے درکار مسلسل پابندی کے سگنلز۔",
+ "autoDisableBannedScope": "خودکار غیر فعالیت کا اطلاق کریں",
+ "autoDisableBannedScopeDesc": "اگر پابندی کے بعد OmniRoute دوبارہ کوششیں جاری رکھے تو اپ اسٹریم لاگ اِن سیٹس (بامعاوضہ سبسکرپشنز اور مفت اکاؤنٹس) کو لاک کر سکتا ہے۔ بامعاوضہ پری پیڈ API keys کو یہ خطرہ نہیں ہوتا—انہیں پول میں رہنے دیں تاکہ fill-first اگلی key استعمال کر سکے۔",
+ "autoDisableBannedScopeAll": "تمام کنکشنز",
+ "autoDisableBannedScopeAllDesc": "پری پیڈ API keys سمیت، مستقل پابندی کا سگنل واپس کرنے والے ہر کنکشن کو غیر فعال کریں۔",
+ "autoDisableBannedScopeSubscription": "صرف لاگ اِن / سبسکرپشن اکاؤنٹس",
+ "autoDisableBannedScopeSubscriptionDesc": "OAuth، کوکی، سیشن، اور ویب لاگ اِن سیٹس (بامعاوضہ یا مفت) کو غیر فعال کریں۔ پری پیڈ API keys فعال رہیں تاکہ روٹنگ فیل اوور کر سکے۔",
"customBannedSignals": "ممنوعہ الفاظ",
"customBannedSignalsDesc": "اضافی الفاظ جو مستقل اکاؤنٹ پر پابندی کی شناخت کو متحرک کرتے ہیں۔ پہلے سے موجود الفاظ ہمیشہ لاگو ہوتے ہیں۔",
"customBannedSignalsPlaceholder": "مثال کے طور پر api key revoked",
"noCustomBannedSignals": "کوئی حسب ضرورت الفاظ نہیں ہیں۔ صرف پہلے سے موجود الفاظ فعال ہیں۔",
- "resilienceStructureTitle": "Resilience Structure",
+ "resilienceStructureTitle": "لچک پذیری کا ڈھانچہ",
"resilienceStructureDesc": "یہ صفحہ صرف رویے کو ترتیب دیتا ہے۔ صحت کے صفحہ پر لائیو بریکر اسٹیٹ دکھایا گیا ہے۔ کومبو مخصوص دوبارہ کوشش اور راؤنڈ رابن سلاٹ کنٹرول کومبو سیٹنگز پر رہتا ہے۔",
- "enableThinking": "Enable Thinking",
- "maxThinkingTokens": "Max Thinking Tokens",
- "enableProxy": "Enable Proxy",
+ "enableThinking": "سوچنے کا عمل فعال کریں",
+ "maxThinkingTokens": "سوچنے کے ٹوکنز کی زیادہ سے زیادہ تعداد",
+ "enableProxy": "پراکسی فعال کریں",
"perKeyProxyEnabled": "فی کلید پراکسی تفویض فعال کریں",
"perKeyProxyEnabledDesc": "فعال ہونے پر، ہر پرووائیڈر کنکشن اپنی پراکسی تفویض استعمال کر سکتا ہے",
- "proxyUrl": "Proxy URL",
- "pricingRates": "Pricing Rates Format",
- "currentPricing": "Current Pricing Overview",
- "loadingPricing": "Loading pricing data...",
- "noPricing": "No pricing data available",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
+ "proxyUrl": "پراکسی URL",
+ "pricingRates": "قیمتوں کی شرحوں کا فارمیٹ",
+ "currentPricing": "موجودہ قیمتوں کا جائزہ",
+ "loadingPricing": "قیمتوں کا ڈیٹا لوڈ ہو رہا ہے...",
+ "noPricing": "قیمتوں کا کوئی ڈیٹا دستیاب نہیں",
+ "input": "اِن پٹ",
+ "output": "آؤٹ پٹ",
+ "cached": "کیش شدہ",
"reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "customPricing": "Custom Pricing",
- "databaseSize": "Database Size",
- "backupDb": "Backup Database",
- "restoreDb": "Restore Database",
- "exportData": "Export Data",
- "importData": "Import Data",
- "clearData": "Clear All Data",
- "clearDataConfirm": "This will permanently delete all data. Are you sure?",
- "enableRequestLogs": "Enable Request Logs",
- "logRetention": "Log Retention",
- "ipWhitelist": "IP Whitelist",
- "ipBlacklist": "IP Blacklist",
- "addIP": "Add IP",
- "savedSuccessfully": "Settings saved successfully",
+ "cacheCreation": "کیش کی تخلیق",
+ "customPricing": "حسبِ ضرورت قیمت بندی",
+ "databaseSize": "ڈیٹابیس کا حجم",
+ "backupDb": "ڈیٹابیس کا بیک اپ لیں",
+ "restoreDb": "ڈیٹابیس بحال کریں",
+ "exportData": "ڈیٹا برآمد کریں",
+ "importData": "ڈیٹا درآمد کریں",
+ "clearData": "تمام ڈیٹا صاف کریں",
+ "clearDataConfirm": "اس سے تمام ڈیٹا مستقل طور پر حذف ہو جائے گا۔ کیا آپ کو یقین ہے؟",
+ "enableRequestLogs": "درخواست کے لاگز فعال کریں",
+ "logRetention": "لاگ محفوظ رکھنے کی مدت",
+ "ipWhitelist": "IP وائٹ لسٹ",
+ "ipBlacklist": "IP بلیک لسٹ",
+ "addIP": "IP شامل کریں",
+ "savedSuccessfully": "ترتیبات کامیابی سے محفوظ ہو گئیں",
"ai": "AI",
- "advanced": "Advanced",
- "localMode": "Local Mode — All data stored on your machine",
- "settingsSectionsAria": "Settings sections",
- "switchThemes": "Switch between light and dark themes",
- "themeSelectionAria": "Theme selection",
- "themeLight": "Light",
- "themeDark": "Dark",
- "themeSystem": "System",
+ "advanced": "اعلیٰ اختیارات",
+ "localMode": "مقامی موڈ — تمام ڈیٹا آپ کی مشین پر محفوظ ہے",
+ "settingsSectionsAria": "ترتیبات کے حصے",
+ "switchThemes": "روشن اور تاریک تھیمز کے درمیان تبدیل کریں",
+ "themeSelectionAria": "تھیم کا انتخاب",
+ "themeLight": "روشن",
+ "themeDark": "تاریک",
+ "themeSystem": "سسٹم",
"endpointTunnelVisibility": "اختتامی سرنگ کی مرئیت",
"endpointTunnelVisibilityDesc": "سرنگ کی حالت کو تبدیل کیے بغیر اینڈ پوائنٹ پیج سے سرنگ کنٹرولز چھپائیں۔",
"showCloudflareTunnel": "Cloudflare کوئیک ٹنل",
@@ -6748,47 +6755,47 @@
"showTailscaleFunnelDesc": "اختتامی صفحہ پر ٹیل اسکیل فنل کنٹرولز دکھائیں۔",
"showNgrokTunnel": "ngrok ٹنل",
"showNgrokTunnelDesc": "اینڈ پوائنٹ پیج پر اینگروک ٹنل کنٹرولز دکھائیں۔",
- "sidebarVisibility": "Hide sidebar items",
- "sidebarVisibilityDesc": "Hide any sidebar navigation entry to reduce visual clutter without disabling any features",
- "sidebarVisibilityHint": "Any sidebar section is hidden automatically when all of its entries are hidden",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
- "hideHealthLogs": "Hide Health Check Logs",
- "hideHealthLogsDesc": "When ON, suppress [HealthCheck] messages in server console",
- "themeAccent": "Theme color",
- "themeAccentDesc": "Choose a preset color or create your own theme with one color",
- "themeCreate": "Create theme",
- "themeCustom": "Custom theme",
- "themeBlue": "Blue",
- "themeRed": "Red",
- "themeGreen": "Green",
- "themeViolet": "Violet",
- "themeOrange": "Orange",
- "themeCyan": "Cyan",
+ "sidebarVisibility": "سائیڈ بار آئٹمز چھپائیں",
+ "sidebarVisibilityDesc": "خصوصیات کو غیر فعال کیے بغیر بصری بے ترتیبی کم کرنے کے لیے سائیڈ بار کی کوئی بھی نیویگیشن انٹری چھپائیں",
+ "sidebarVisibilityHint": "جب کسی سائیڈ بار حصے کی تمام انٹریز چھپی ہوں تو وہ خودکار طور پر چھپ جاتا ہے",
+ "presetAll": "سبھی",
+ "presetAllDesc": "سب کچھ دکھائیں",
+ "presetEssentials": "ضروریات",
+ "presetEssentialsDesc": "ابتدائی راستہ - اعلیٰ ٹولز تلاش کیے جا سکتے ہیں",
+ "presetMinimal": "کم سے کم",
+ "presetMinimalDesc": "صرف بنیادی صفحات",
+ "presetDeveloper": "ڈیولپر",
+ "presetDeveloperDesc": "ڈیولپمنٹ اور پراکسی ٹولز",
+ "presetAdmin": "منتظم",
+ "presetAdminDesc": "نگرانی اور آڈٹ",
+ "settingsSidebarTitle": "سائیڈبار کی تخصیص",
+ "settingsSidebarDesc": "منتخب کریں کہ سائیڈبار میں کون سے آئٹمز دکھانے ہیں۔ ضروری آئٹمز، جدید ٹولز کو تلاش کے قابل رکھتے ہیں۔",
+ "hideHealthLogs": "ہیلتھ چیک لاگز چھپائیں",
+ "hideHealthLogsDesc": "فعال ہونے پر، سرور کنسول میں [HealthCheck] پیغامات کو روک دیں",
+ "themeAccent": "تھیم کا رنگ",
+ "themeAccentDesc": "پہلے سے طے شدہ رنگ منتخب کریں یا ایک رنگ سے اپنی تھیم بنائیں",
+ "themeCreate": "تھیم بنائیں",
+ "themeCustom": "حسبِ ضرورت تھیم",
+ "themeBlue": "نیلا",
+ "themeRed": "سرخ",
+ "themeGreen": "سبز",
+ "themeViolet": "بنفشی",
+ "themeOrange": "نارنجی",
+ "themeCyan": "فیروزی",
"whitelabeling": "Branding",
- "whitelabelingDesc": "Customize the application name and logo",
- "appName": "Application Name",
- "appNameDesc": "Display name shown in sidebar and browser tab",
- "customLogo": "Custom Logo URL",
- "customLogoDesc": "URL to your custom logo image",
- "uploadLogo": "Upload Logo",
- "resetLogo": "Reset to Default",
- "logoPreview": "Preview",
- "customFavicon": "Browser Favicon",
- "customFaviconDesc": "URL to your custom favicon (shown in browser tab)",
- "uploadFavicon": "Upload Favicon",
- "resetFavicon": "Reset Favicon",
- "faviconPreview": "Favicon Preview",
+ "whitelabelingDesc": "ایپلیکیشن کے نام اور لوگو کو حسبِ ضرورت بنائیں",
+ "appName": "ایپلیکیشن کا نام",
+ "appNameDesc": "سائیڈبار اور براؤزر ٹیب میں دکھایا جانے والا نام",
+ "customLogo": "حسبِ ضرورت لوگو کا URL",
+ "customLogoDesc": "آپ کے حسبِ ضرورت لوگو کی تصویر کا URL",
+ "uploadLogo": "لوگو اپ لوڈ کریں",
+ "resetLogo": "ڈیفالٹ پر ری سیٹ کریں",
+ "logoPreview": "پیش منظر",
+ "customFavicon": "براؤزر فیوی آئیکن",
+ "customFaviconDesc": "آپ کے حسبِ ضرورت فیوی آئیکن کا URL (براؤزر ٹیب میں دکھایا جاتا ہے)",
+ "uploadFavicon": "فیوی آئیکن اپ لوڈ کریں",
+ "resetFavicon": "فیوی آئیکن ری سیٹ کریں",
+ "faviconPreview": "فیوی آئیکن کا پیش منظر",
"logoFileTooLarge": "لوگو فائل 500KB سے کم ہونی چاہیے",
"faviconFileTooLarge": "فیو آئیکن فائل 50KB سے کم ہونی چاہیے",
"invalidLogoFileType": "فائل کی قسم غلط ہے۔ براہ کرم PNG، JPG، SVG، GIF، یا WebP اپ لوڈ کریں۔",
@@ -6796,15 +6803,15 @@
"failedToReadFile": "فائل پڑھنے میں ناکامی",
"startOnLogin": "لاگ ان پر شروع کریں",
"startOnLoginDesc": "سسٹم اسٹارٹ اپ پر خود بخود OmniRoute لانچ کریں اور پس منظر کی ٹرے میں خاموشی سے چلائیں۔",
- "flushCache": "Flush Cache",
- "flushing": "Flushing…",
- "size": "Size",
- "hits": "Hits",
- "evictions": "Evictions",
- "loadingCacheStats": "Loading cache stats…",
- "globalProxy": "Global Proxy",
- "globalProxyDesc": "Configure a global outbound proxy for all API calls. Individual providers, combos, and keys can override this.",
- "noGlobalProxy": "No global proxy configured",
+ "flushCache": "کیش صاف کریں",
+ "flushing": "صاف کیا جا رہا ہے…",
+ "size": "حجم",
+ "hits": "ہٹس",
+ "evictions": "اخراج",
+ "loadingCacheStats": "کیش کے اعدادوشمار لوڈ ہو رہے ہیں…",
+ "globalProxy": "عالمی پراکسی",
+ "globalProxyDesc": "تمام API کالز کے لیے ایک عالمی آؤٹ باؤنڈ پراکسی ترتیب دیں۔ انفرادی فراہم کنندگان، کومبوز اور کلیدیں اسے اوور رائیڈ کر سکتی ہیں۔",
+ "noGlobalProxy": "کوئی عالمی پراکسی ترتیب نہیں دی گئی",
"proxyPool": "پراکسی پول",
"freePool": "مفت پول",
"proxyDocumentation": "پراکسی دستاویزات",
@@ -6892,21 +6899,21 @@
"refreshInterval": "تازہ کاری کا وقفہ",
"ruleModeDescription": "قواعد وضع کی وضاحت"
},
- "bulkHealthcheck": "Bulk Healthcheck",
- "bulkHealthcheckDesc": "Test all configured proxies against a target URL to find which ones work.",
- "healthcheckTesting": "Testing...",
- "healthcheckAll": "Healthcheck All",
- "healthcheckFailed": "Failed to run healthcheck",
- "healthcheckTestingAll": "Testing all proxies in parallel...",
- "healthcheckTotal": "Total",
- "healthcheckWorking": "Working",
- "healthcheckFailedLabel": "Failed",
- "healthcheckStatus": "Status",
- "healthcheckProxyUrl": "Proxy URL",
- "healthcheckLatency": "Latency",
+ "bulkHealthcheck": "اجتماعی ہیلتھ چیک",
+ "bulkHealthcheckDesc": "تمام ترتیب شدہ پراکسیز کو ہدف URL کے مقابل جانچیں تاکہ معلوم ہو سکے کہ کون سی کام کرتی ہیں۔",
+ "healthcheckTesting": "جانچ جاری ہے...",
+ "healthcheckAll": "سب کی صحت جانچیں",
+ "healthcheckFailed": "صحت کی جانچ چلانے میں ناکامی",
+ "healthcheckTestingAll": "تمام پراکسیز کی متوازی جانچ جاری ہے...",
+ "healthcheckTotal": "کل",
+ "healthcheckWorking": "فعال",
+ "healthcheckFailedLabel": "ناکام",
+ "healthcheckStatus": "حالت",
+ "healthcheckProxyUrl": "پراکسی URL",
+ "healthcheckLatency": "تاخیر",
"proxyDocumentationScopeTitle": "پروکسی اسکوپ ریزولوشن",
"proxyDocumentationScopeDescBefore": "OmniRoute آؤٹ باؤنڈ پروکسی کو ترجیحی ترتیب میں حل کرتا ہے:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "کومبو → اکاؤنٹ → فراہم کنندہ → عالمی",
"proxyDocumentationScopeDescAfter": "۔ سب سے مخصوص اسکوپ غالب رہتا ہے۔",
"proxyDocumentationAddTitle": "حسب ضرورت پروکسی شامل کرنا",
"proxyDocumentationAddDescBefore": "پر جائیں",
@@ -6962,22 +6969,22 @@
"proxyFreePoolLoadMore": "مزید لوڈ کریں",
"close": "بند کریں",
"cancel": "منسوخ کریں",
- "globalLabel": "Global",
- "configure": "Configure",
- "globalSystemPrompt": "Global System Prompt",
- "saved": "Saved",
+ "globalLabel": "عالمی",
+ "configure": "ترتیب دیں",
+ "globalSystemPrompt": "عالمی سسٹم پرامپٹ",
+ "saved": "محفوظ ہو گیا",
"beforePromptLabel": "پرامپٹ سے پہلے",
"beforePromptDesc": "ایجنٹ/فراہم کنندہ کی سسٹم ہدایات سے پہلے شامل کیا گیا",
"beforePromptPlaceholder": "ایجنٹ/فراہم کنندہ کے پرامپٹ سے پہلے ہدایات داخل کی گئیں...",
"afterPromptLabel": "پرامپٹ کے بعد",
"afterPromptDesc": "ایجنٹ/فراہم کنندہ کی سسٹم ہدایات کے بعد شامل کیا گیا",
"afterPromptPlaceholder": "ایجنٹ/فراہم کنندہ کے پرامپٹ کے بعد ہدایات داخل کی گئیں...",
- "chars": "{count} chars",
- "thinkingBudgetTitle": "Thinking Budget",
+ "chars": "{count} حروف",
+ "thinkingBudgetTitle": "سوچنے کا بجٹ",
"thinkingBudgetDesc": "Control AI reasoning token usage across all requests",
"thinkingBudgetIndependenceHint": "کمپریشن، روٹنگ، اور ٹوکن-حد کی خصوصیات ہر موڈ میں کام کرتی رہتی ہیں۔ آٹو کا مطلب \"آٹو-شو سوچ\" نہیں ہے — یہ کلائنٹ کی سوچ کے شعبوں کو ہٹا دیتا ہے۔",
- "passthrough": "Passthrough",
- "passthroughDesc": "No changes — client controls thinking budget",
+ "passthrough": "بلا تبدیلی منتقلی",
+ "passthroughDesc": "کوئی تبدیلی نہیں — کلائنٹ سوچنے کے بجٹ کو کنٹرول کرتا ہے",
"thinkingModePassthrough": "پاس تھرو",
"thinkingModePassthroughDesc": "کلائنٹ کی وجہ کو بغیر تبدیلی کے چھوڑیں (محنت، خلاصہ، سوچنے کے بلاکس)۔ Codex/Desktop کے نظر آنے والے خیالات کے لیے ضروری۔ ڈیفالٹ۔",
"thinkingModeAuto": "خودکار (اسٹرپ)",
@@ -6987,36 +6994,36 @@
"thinkingModeAdaptive": "ایڈاپٹو",
"thinkingModeAdaptiveDesc": "پیغام کی تعداد، ٹولز، اور پرامپٹ کی لمبائی کا استعمال کرتے ہوئے بنیادی کوشش سے بجٹ کی پیمائش کریں۔",
"auto": "Auto Combo",
- "autoDesc": "Self-healing smart routing pool (Performance optimized)",
- "custom": "Custom",
- "customDesc": "Set a fixed token budget for all requests",
- "adaptive": "Adaptive",
- "adaptiveDesc": "Scale budget based on request complexity",
- "effortNone": "None (0 tokens)",
- "effortLow": "Low (1K tokens)",
- "effortMedium": "Medium (10K tokens)",
- "effortHigh": "High (128K tokens)",
- "tokenBudget": "Token Budget",
- "tokens": "tokens",
- "baseEffortLevel": "Base Effort Level",
+ "autoDesc": "خودکار بحالی والا اسمارٹ روٹنگ پول (کارکردگی کے لیے بہتر بنایا گیا)",
+ "custom": "حسبِ ضرورت",
+ "customDesc": "تمام درخواستوں کے لیے ٹوکنز کا مقررہ بجٹ طے کریں",
+ "adaptive": "موافقت پذیر",
+ "adaptiveDesc": "درخواست کی پیچیدگی کی بنیاد پر بجٹ کو ایڈجسٹ کریں",
+ "effortNone": "کوئی نہیں (0 ٹوکنز)",
+ "effortLow": "کم (1K ٹوکنز)",
+ "effortMedium": "درمیانہ (10K ٹوکنز)",
+ "effortHigh": "زیادہ (128K ٹوکنز)",
+ "tokenBudget": "ٹوکن بجٹ",
+ "tokens": "ٹوکنز",
+ "baseEffortLevel": "بنیادی محنت کی سطح",
"adaptiveHint": "Adaptive mode scales from this base level based on message count, tool usage, and prompt length.",
- "requireLogin": "Require login",
- "requireLoginDesc": "When ON, dashboard requires password. When OFF, access without login.",
- "currentPassword": "Current Password",
- "enterCurrentPassword": "Enter current password",
- "newPassword": "New Password",
- "enterNewPassword": "Enter new password",
- "confirmPassword": "Confirm New Password",
- "confirmPasswordPlaceholder": "Confirm new password",
- "passwordsNoMatch": "Passwords do not match",
- "passwordUpdated": "Password updated successfully",
- "failedUpdatePassword": "Failed to update password",
- "errorOccurred": "An error occurred",
- "updatePassword": "Update Password",
- "setPassword": "Set Password",
- "apiEndpointProtection": "API Endpoint Protection",
- "requireAuthModels": "Require API key for /models",
- "requireAuthModelsDesc": "When ON, the /v1/models endpoint returns 404 for unauthenticated requests. Prevents model discovery by unauthorized users.",
+ "requireLogin": "لاگ اِن لازمی کریں",
+ "requireLoginDesc": "آن ہونے پر، ڈیش بورڈ کے لیے پاس ورڈ درکار ہوگا۔ آف ہونے پر، لاگ اِن کے بغیر رسائی ممکن ہوگی۔",
+ "currentPassword": "موجودہ پاس ورڈ",
+ "enterCurrentPassword": "موجودہ پاس ورڈ درج کریں",
+ "newPassword": "نیا پاس ورڈ",
+ "enterNewPassword": "نیا پاس ورڈ درج کریں",
+ "confirmPassword": "نئے پاس ورڈ کی تصدیق کریں",
+ "confirmPasswordPlaceholder": "نئے پاس ورڈ کی تصدیق کریں",
+ "passwordsNoMatch": "پاس ورڈز مماثل نہیں ہیں",
+ "passwordUpdated": "پاس ورڈ کامیابی سے اپ ڈیٹ ہو گیا",
+ "failedUpdatePassword": "پاس ورڈ اپ ڈیٹ کرنے میں ناکامی ہوئی",
+ "errorOccurred": "ایک خرابی پیش آ گئی",
+ "updatePassword": "پاس ورڈ اپ ڈیٹ کریں",
+ "setPassword": "پاس ورڈ مقرر کریں",
+ "apiEndpointProtection": "API اینڈ پوائنٹ کا تحفظ",
+ "requireAuthModels": "/models کے لیے API کلید درکار کریں",
+ "requireAuthModelsDesc": "آن ہونے پر، /v1/models اینڈ پوائنٹ غیر مصدقہ درخواستوں کے لیے 404 واپس کرتا ہے۔ یہ غیر مجاز صارفین کو ماڈلز دریافت کرنے سے روکتا ہے۔",
"authModelHeading": "فعال اجازت ماڈل",
"authModelClient": "کلائنٹ API اینڈ پوائنٹ (/v1/*, /chat/*, /responses/*, /codex/*, /messages/*) کو ایک Bearer API کلید کی ضرورت ہوتی ہے۔",
"authModelManagement": "مینجمنٹ اینڈ پوائنٹس (/ڈیش بورڈ، /api/*) کو ڈیش بورڈ سیشن یا انتظامی اسناد کی ضرورت ہوتی ہے۔",
@@ -7025,16 +7032,16 @@
"bruteForceProtectionDesc": "ایک ہی IP سے بار بار ناکامی کے بعد تھروٹل اور لاک /api/auth/login۔",
"corsAllowedOrigins": "CORS کی اجازت ہے۔",
"corsAllowedOriginsDesc": "اس سرور کو کال کرنے کی اجازت براؤزر کی اصل کی کوما سے الگ کردہ فہرست۔ خالی فہرست = کوئی براؤزر CORS رسائی نہیں (سرور سے سرور اب بھی کام کرتا ہے)۔ CORS_ALLOW_ALL=true env var صرف ترقی کے لیے استعمال کریں۔",
- "blockedProviders": "Blocked Providers",
- "blockedProvidersDesc": "Hide specific providers from the /v1/models response. Blocked providers will not appear in model listings.",
- "providersBlocked": "{count} provider(s) blocked from /models",
- "blockProviderTitle": "Block {provider}",
- "unblockProviderTitle": "Unblock {provider}",
- "cliFingerprint": "CLI Fingerprint Matching",
+ "blockedProviders": "مسدود فراہم کنندگان",
+ "blockedProvidersDesc": "/v1/models کے جواب سے مخصوص فراہم کنندگان کو چھپائیں۔ مسدود فراہم کنندگان ماڈل فہرستوں میں ظاہر نہیں ہوں گے۔",
+ "providersBlocked": "{count} فراہم کنندہ/فراہم کنندگان /models سے مسدود ہیں",
+ "blockProviderTitle": "{provider} کو مسدود کریں",
+ "unblockProviderTitle": "{provider} سے پابندی ہٹائیں",
+ "cliFingerprint": "CLI فنگر پرنٹ کی مماثلت",
"cliFingerprintDesc": "Match native CLI binary signatures when proxying requests. Reorders headers and body fields to look identical to the official CLI tools. Your proxy IP is preserved.",
- "cliFingerprintEnabled": "{count} provider(s) with CLI fingerprint active",
- "enableFingerprintTitle": "Enable fingerprint for {provider}",
- "disableFingerprintTitle": "Disable fingerprint for {provider}",
+ "cliFingerprintEnabled": "{count} فراہم کنندہ/فراہم کنندگان کے لیے CLI فنگر پرنٹ فعال ہے",
+ "enableFingerprintTitle": "{provider} کے لیے فنگر پرنٹ فعال کریں",
+ "disableFingerprintTitle": "{provider} کے لیے فنگر پرنٹ غیر فعال کریں",
"systemTransforms": "سسٹم بلاک ٹرانسفارم پائپ لائن",
"systemTransformsDesc": "فی فراہم کنندہ نے فارورڈ کرنے سے پہلے درخواست کے باڈی پر لاگو ٹرانسفارمز کی پائپ لائن کا آرڈر دیا۔ کسی بھی فراہم کنندہ کی شناخت کی حمایت کرتا ہے۔",
"systemTransformsAddProvider": "فراہم کنندہ شامل کریں۔",
@@ -7045,29 +7052,29 @@
"systemTransformsOpMoveUp": "اوپر بڑھیں۔",
"systemTransformsOpMoveDown": "نیچے کی طرف بڑھیں۔",
"systemTransformsOpDelete": "آپشن کو حذف کریں۔",
- "routingStrategy": "Routing Strategy",
- "routingAdvancedGuideTitle": "Advanced routing guidance",
+ "routingStrategy": "روٹنگ کی حکمت عملی",
+ "routingAdvancedGuideTitle": "روٹنگ کی جدید رہنمائی",
"routingAdvancedGuideHint1": "Use Fill First for predictable priority, Round Robin for fairness, and P2C for latency resilience.",
"routingAdvancedGuideHint2": "If providers vary in quality/cost, start with Cost Opt for background work and Least Used for balanced wear.",
- "fillFirst": "Fill First",
- "fillFirstDesc": "Use accounts in priority order",
+ "fillFirst": "پہلے مکمل کریں",
+ "fillFirstDesc": "اکاؤنٹس کو ترجیحی ترتیب میں استعمال کریں",
"roundRobin": "Round Robin",
- "roundRobinDesc": "Cycle through all accounts",
+ "roundRobinDesc": "تمام اکاؤنٹس کو باری باری استعمال کریں",
"p2c": "P2C",
- "p2cDesc": "Pick 2 random, use the healthier one",
- "random": "Random",
- "randomDesc": "Random account each request",
- "leastUsed": "Least Used",
- "leastUsedDesc": "Pick least recently used account",
- "costOpt": "Cost Opt",
- "costOptDesc": "Prefer cheapest available account",
- "resetAware": "Reset-Aware RR",
+ "p2cDesc": "2 اکاؤنٹس بے ترتیب منتخب کریں، زیادہ صحت مند اکاؤنٹ استعمال کریں",
+ "random": "بے ترتیب",
+ "randomDesc": "ہر درخواست کے لیے بے ترتیب اکاؤنٹ",
+ "leastUsed": "سب سے کم استعمال شدہ",
+ "leastUsedDesc": "حال ہی میں سب سے کم استعمال ہونے والا اکاؤنٹ منتخب کریں",
+ "costOpt": "لاگت کی بہتری",
+ "costOptDesc": "دستیاب سستے ترین اکاؤنٹ کو ترجیح دیں",
+ "resetAware": "ری سیٹ سے آگاہ راؤنڈ رابن",
"resetAwareDesc": "صحت مند بقایا کوٹہ اور قریب تر ری سیٹ والے اکاؤنٹس کو ترجیح دیں۔",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "کوٹے کے لحاظ سے وزن یافتہ",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
- "strictRandom": "Strict Random",
- "strictRandomDesc": "Shuffle deck — uses each account once before reshuffling",
- "stickyLimit": "Sticky Limit",
+ "strictRandom": "سخت بے ترتیب",
+ "strictRandomDesc": "شفل ڈیک — دوبارہ شفل کرنے سے پہلے ہر اکاؤنٹ کو ایک بار استعمال کرتا ہے",
+ "stickyLimit": "مستقل حد",
"stickyLimitDesc": "Calls per account before switching",
"routingStrategyTitle": "روٹنگ کی حکمت عملی",
"routingStrategySubtitle": "9router سے مطابقت: اکاؤنٹ راؤنڈ رابن، اسٹکی لِمٹس، اور کومبو روٹیشن",
@@ -7085,225 +7092,225 @@
"providerAccountRoutingDesc": "اس فراہم کنندہ کے لیے عالمی اکاؤنٹ کی حکمت عملی کو اوور رائیڈ کریں (9router برابری)۔",
"providerRoutingStrategy": "اکاؤنٹ کی حکمت عملی",
"providerRoutingInheritGlobal": "گلوبل ڈیفالٹ اپنائیں",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
- "modelAliases": "Model Aliases",
- "modelAliasesTitle": "Model Aliases",
- "modelAliasesDesc": "Remap model names using exact matches or wildcard patterns.",
- "addCustomAlias": "Add Custom Alias",
- "deprecatedModelId": "Deprecated model ID",
- "newModelId": "New model ID",
- "customAliases": "Custom Aliases",
- "builtInAliases": "Built-in Aliases",
- "backgroundDegradationTitle": "Background Task Degradation",
- "backgroundDegradationDesc": "Auto-detect background tasks (titles, summaries) and route to cheaper models",
- "enableDegradation": "Enable Background Degradation",
- "enableDegradationHint": "When enabled, background tasks like title generation and summarization are routed to cheaper models automatically",
- "tasksDetected": "Tasks detected",
- "degradationMap": "Model Degradation Map",
- "premiumModel": "Premium model",
- "cheapModel": "Cheap model",
- "detectionPatterns": "Detection Patterns",
- "newPattern": "e.g. \"generate a title\"",
+ "quotaPreflightTitle": "کوٹے کی پیشگی جانچ کی حد",
+ "quotaPreflightSubtitle": "درخواست اپ اسٹریم بھیجنے سے پہلے ان اکاؤنٹس کو چھوڑ دیں جن کا کوٹہ ختم ہو چکا ہے",
+ "quotaPreflightEnable": "کوٹے کی پیشگی جانچ فعال کریں",
+ "quotaPreflightEnableDesc": "ہر درخواست سے پہلے اکاؤنٹ کا باقی کوٹہ (5 گھنٹے / ہفتہ وار / ماہانہ وقفے) چیک کریں۔ حد کے برابر یا اس سے کم کوٹے والے اکاؤنٹس کو اپ اسٹریم کال کے بغیر چھوڑ دیا جاتا ہے۔ Provider Quota صفحے پر مقرر کردہ ہر وقفے کی حدود کو یہاں موجود ڈیفالٹ پر ہمیشہ ترجیح حاصل ہوتی ہے۔",
+ "quotaPreflightCutoff": "عالمی حد (کم از کم باقی %)",
+ "quotaPreflightCutoffDesc": "جب کسی اکاؤنٹ کا باقی کوٹہ اس فیصد یا اس سے کم رہ جائے تو اسے استعمال کرنا بند کر دیں؛ یہ ان تمام ونڈوز پر لاگو ہوگا جن کی اپنی کٹ آف حد مقرر نہیں ہے۔ یہ Provider Quota صفحے پر باقی فیصد کی سلاخوں سے مطابقت رکھتا ہے۔",
+ "quotaPreflightWindowsHint": "اپنی فی ونڈو یا فی پرووائیڈر کٹ آف حد رکھنے والی ونڈوز (جو Provider Quota صفحے پر Cutoff موڈل میں مقرر کی گئی ہو) اس ڈیفالٹ سے متاثر نہیں ہوں گی۔",
+ "quotaPreflightLoadFailed": "کوٹہ پری فلائٹ کی ترتیبات لوڈ نہیں کی جا سکیں۔",
+ "modelAliases": "ماڈل عرفی نام",
+ "modelAliasesTitle": "ماڈل عرفی نام",
+ "modelAliasesDesc": "عین مماثلتوں یا وائلڈ کارڈ پیٹرنز کے ذریعے ماڈل کے نام دوبارہ میپ کریں۔",
+ "addCustomAlias": "حسبِ ضرورت عرفی نام شامل کریں",
+ "deprecatedModelId": "متروک ماڈل ID",
+ "newModelId": "نیا ماڈل ID",
+ "customAliases": "حسبِ ضرورت عرفی نام",
+ "builtInAliases": "بلٹ اِن عرفی نام",
+ "backgroundDegradationTitle": "پس منظر کے کاموں کی تخفیف",
+ "backgroundDegradationDesc": "پس منظر کے کاموں (عنوانات، خلاصوں) کا خودکار طور پر پتہ لگائیں اور انہیں کم قیمت ماڈلز کی طرف روٹ کریں",
+ "enableDegradation": "پس منظر کی تخفیف فعال کریں",
+ "enableDegradationHint": "فعال ہونے پر، عنوان بنانے اور خلاصہ تیار کرنے جیسے پس منظر کے کام خودکار طور پر کم قیمت ماڈلز کی طرف روٹ کیے جاتے ہیں",
+ "tasksDetected": "پتہ لگائے گئے کام",
+ "degradationMap": "ماڈل تخفیف میپ",
+ "premiumModel": "پریمیم ماڈل",
+ "cheapModel": "کم قیمت ماڈل",
+ "detectionPatterns": "شناختی پیٹرنز",
+ "newPattern": "مثلاً \"ایک عنوان بنائیں\"",
"aliasPatternPlaceholder": "claude-sonnet-*",
"aliasTargetPlaceholder": "claude-sonnet-4-20250514",
- "pattern": "Pattern",
- "targetModel": "Target Model",
- "add": "+ Add",
- "session": "Session",
- "sessionDetailsAria": "Session details",
+ "pattern": "پیٹرن",
+ "targetModel": "ہدف ماڈل",
+ "add": "+ شامل کریں",
+ "session": "سیشن",
+ "sessionDetailsAria": "سیشن کی تفصیلات",
"status": "Status",
- "authenticated": "Authenticated",
- "guest": "Guest",
- "loginTime": "Login Time",
- "sessionAge": "Session Age",
- "browser": "Browser",
- "clearLocalData": "Clear Local Data",
- "logout": "Logout",
- "clearLocalDataConfirm": "Clear all local data? This will reset your preferences.",
- "unknown": "Unknown",
- "systemActor": "system",
- "ipAccessControl": "IP Access Control",
- "ipAccessControlDesc": "Block or allow specific IP addresses",
- "ipModeDisabled": "Disabled",
- "ipModeBlacklist": "Blacklist",
- "ipModeWhitelist": "Whitelist",
- "ipModeWhitelistPriority": "WL Priority",
- "addIpAddress": "Add IP Address",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
- "block": "+ Block",
- "allow": "+ Allow",
- "blocked": "Blocked ({count})",
- "allowed": "Allowed ({count})",
- "temporaryBans": "Temporary Bans ({count})",
- "minLeft": "{min}m left",
- "auditLog": "Audit Log",
- "searchAuditLogs": "Search audit logs...",
- "failedLoadAuditLog": "Failed to load audit log",
- "noAuditEvents": "No audit events found",
- "action": "Action",
- "actor": "Actor",
- "details": "Details",
- "time": "Time",
- "fallbackChainsTitle": "Fallback Chains",
- "fallbackChainsDesc": "Define provider fallback order per model",
- "addChain": "+ Add Chain",
- "modelName": "Model Name",
+ "authenticated": "تصدیق شدہ",
+ "guest": "مہمان",
+ "loginTime": "لاگ اِن کا وقت",
+ "sessionAge": "سیشن کی مدت",
+ "browser": "براؤزر",
+ "clearLocalData": "مقامی ڈیٹا صاف کریں",
+ "logout": "لاگ آؤٹ",
+ "clearLocalDataConfirm": "تمام مقامی ڈیٹا صاف کریں؟ اس سے آپ کی ترجیحات ری سیٹ ہو جائیں گی۔",
+ "unknown": "نامعلوم",
+ "systemActor": "سسٹم",
+ "ipAccessControl": "IP رسائی کا کنٹرول",
+ "ipAccessControlDesc": "مخصوص IP پتے بلاک کریں یا ان کی اجازت دیں",
+ "ipModeDisabled": "غیر فعال",
+ "ipModeBlacklist": "بلیک لسٹ",
+ "ipModeWhitelist": "وائٹ لسٹ",
+ "ipModeWhitelistPriority": "وائٹ لسٹ کی ترجیح",
+ "addIpAddress": "IP ایڈریس شامل کریں",
+ "ipAddressPlaceholder": "192.168.1.0/24 یا 10.0.*.*",
+ "block": "+ بلاک کریں",
+ "allow": "+ اجازت دیں",
+ "blocked": "بلاک شدہ ({count})",
+ "allowed": "اجازت یافتہ ({count})",
+ "temporaryBans": "عارضی پابندیاں ({count})",
+ "minLeft": "{min} منٹ باقی",
+ "auditLog": "آڈٹ لاگ",
+ "searchAuditLogs": "آڈٹ لاگز تلاش کریں...",
+ "failedLoadAuditLog": "آڈٹ لاگ لوڈ کرنے میں ناکامی",
+ "noAuditEvents": "کوئی آڈٹ واقعہ نہیں ملا",
+ "action": "کارروائی",
+ "actor": "کارروائی کنندہ",
+ "details": "تفصیلات",
+ "time": "وقت",
+ "fallbackChainsTitle": "فال بیک چینز",
+ "fallbackChainsDesc": "ہر ماڈل کے لیے پرووائیڈرز کی فال بیک ترتیب متعین کریں",
+ "addChain": "+ چین شامل کریں",
+ "modelName": "ماڈل کا نام",
"modelNamePlaceholder": "claude-sonnet-4-20250514",
- "providersCommaSeparated": "Providers (comma-separated, in priority order)",
+ "providersCommaSeparated": "پرووائیڈرز (کوما سے علیحدہ، ترجیحی ترتیب میں)",
"providersCommaSeparatedPlaceholder": "anthropic, openai, gemini",
- "createChain": "Create Chain",
- "noFallbackChains": "No Fallback Chains",
- "noFallbackChainsDesc": "Create a chain to define provider fallback order for a model.",
- "loadingFallbackChains": "Loading fallback chains...",
- "deleteChainConfirm": "Delete fallback chain for \"{model}\"?",
- "chainCreated": "Chain created for {model}",
- "chainDeleted": "Chain deleted for {model}",
- "failedCreateChain": "Failed to create chain",
- "failedDeleteChain": "Failed to delete chain",
- "deleteChain": "Delete chain",
- "fillModelAndProviders": "Please fill model name and providers",
- "addAtLeastOneProvider": "Add at least one provider",
- "comboDefaultsTitle": "Combo Defaults",
- "comboDefaultsGuideTitle": "How to tune combo defaults",
- "comboDefaultsGuideHint1": "Keep retries low in low-latency flows; increase timeout only for long generation tasks.",
- "comboDefaultsGuideHint2": "Use provider overrides when one provider needs different timeout/retry behavior than global defaults.",
- "globalComboConfig": "Global combo configuration",
+ "createChain": "چین بنائیں",
+ "noFallbackChains": "کوئی فال بیک چین نہیں",
+ "noFallbackChainsDesc": "کسی ماڈل کے لیے پرووائیڈرز کی فال بیک ترتیب متعین کرنے کی خاطر ایک چین بنائیں۔",
+ "loadingFallbackChains": "فال بیک چینز لوڈ ہو رہی ہیں...",
+ "deleteChainConfirm": "\"{model}\" کے لیے فال بیک چین حذف کریں؟",
+ "chainCreated": "{model} کے لیے چین بنا دی گئی",
+ "chainDeleted": "{model} کے لیے چین حذف کر دی گئی",
+ "failedCreateChain": "چین بنانے میں ناکامی",
+ "failedDeleteChain": "چین حذف کرنے میں ناکامی",
+ "deleteChain": "چین حذف کریں",
+ "fillModelAndProviders": "براہ کرم ماڈل کا نام اور پرووائیڈرز درج کریں",
+ "addAtLeastOneProvider": "کم از کم ایک پرووائیڈر شامل کریں",
+ "comboDefaultsTitle": "کومبو ڈیفالٹس",
+ "comboDefaultsGuideTitle": "کومبو ڈیفالٹس کو کیسے ٹیون کریں",
+ "comboDefaultsGuideHint1": "کم تاخیر والے فلوز میں دوبارہ کوششوں کی تعداد کم رکھیں؛ صرف طویل جنریشن ٹاسکس کے لیے ٹائم آؤٹ بڑھائیں۔",
+ "comboDefaultsGuideHint2": "جب کسی ایک پرووائیڈر کو عالمی ڈیفالٹس سے مختلف ٹائم آؤٹ یا دوبارہ کوشش کے طرزِ عمل کی ضرورت ہو تو پرووائیڈر اوور رائیڈز استعمال کریں۔",
+ "globalComboConfig": "عالمی کومبو کنفیگریشن",
"moveUp": "اوپر لے جائیں",
"moveDown": "نیچے لے جائیں",
"allProvidersAdded": "تمام فراہم کنندگان شامل کر دیے گئے",
"noProvidersFound": "کوئی فراہم کنندہ نہیں ملا",
- "defaultStrategy": "Default Strategy",
+ "defaultStrategy": "طے شدہ حکمتِ عملی",
"defaultStrategyDesc": "Applied to new combos without explicit strategy",
- "comboStrategyAria": "Combo strategy",
- "priority": "Priority",
- "weighted": "Weighted",
- "contextRelay": "Context Relay",
- "contextRelayDesc": "Priority-style routing with automatic context handoffs when account rotation happens",
- "maxRetriesLabel": "Max Retries",
- "retryDelayLabel": "Retry Delay (ms)",
- "timeoutLabel": "Timeout (ms)",
- "healthCheck": "Health Check",
- "healthCheckDesc": "Pre-check provider availability",
- "trackMetrics": "Track Metrics",
- "trackMetricsDesc": "Record per-combo request metrics",
- "providerOverrides": "Provider Overrides",
- "providerOverridesDesc": "Override timeout and retries per provider. Provider settings override global defaults.",
- "providerMaxRetriesAria": "{provider} max retries",
- "providerTimeoutAria": "{provider} timeout ms",
- "removeProviderOverrideAria": "Remove {provider} override",
+ "comboStrategyAria": "کومبو حکمتِ عملی",
+ "priority": "ترجیح",
+ "weighted": "وزنی",
+ "contextRelay": "سیاق کی منتقلی",
+ "contextRelayDesc": "اکاؤنٹ کی تبدیلی کے وقت خودکار سیاقی منتقلی کے ساتھ ترجیحی طرز کی روٹنگ",
+ "maxRetriesLabel": "دوبارہ کوششوں کی زیادہ سے زیادہ تعداد",
+ "retryDelayLabel": "دوبارہ کوشش میں تاخیر (ms)",
+ "timeoutLabel": "ٹائم آؤٹ (ms)",
+ "healthCheck": "صحت کی جانچ",
+ "healthCheckDesc": "فراہم کنندہ کی دستیابی پہلے سے جانچیں",
+ "trackMetrics": "میٹرکس ٹریک کریں",
+ "trackMetricsDesc": "ہر کومبو کی درخواست کے میٹرکس ریکارڈ کریں",
+ "providerOverrides": "فراہم کنندہ کی اوور رائیڈز",
+ "providerOverridesDesc": "ہر فراہم کنندہ کے لیے ٹائم آؤٹ اور دوبارہ کوششوں کو اوور رائیڈ کریں۔ فراہم کنندہ کی ترتیبات عالمی طے شدہ ترتیبات کو اوور رائیڈ کرتی ہیں۔",
+ "providerMaxRetriesAria": "{provider} کی زیادہ سے زیادہ دوبارہ کوششیں",
+ "providerTimeoutAria": "{provider} کا ٹائم آؤٹ ms",
+ "removeProviderOverrideAria": "{provider} کی اوور رائیڈ ہٹائیں",
"selectProviderPlaceholder": "فراہم کنندہ منتخب کریں...",
"searchProviderPlaceholder": "فراہم کنندگان تلاش کریں...",
"searchProviderAria": "فراہم کنندگان تلاش کریں",
- "newProviderNamePlaceholder": "e.g. google, openai...",
- "newProviderNameAria": "New provider name",
- "retries": "retries",
+ "newProviderNamePlaceholder": "مثلاً google، openai...",
+ "newProviderNameAria": "نئے فراہم کنندہ کا نام",
+ "retries": "دوبارہ کوششیں",
"ms": "ms",
- "saveComboDefaults": "Save Combo Defaults",
- "maxNestingDepth": "Max Nesting Depth",
- "concurrencyPerModel": "Concurrency / Model",
- "queueTimeout": "Queue Timeout (ms)",
+ "saveComboDefaults": "کومبو کی طے شدہ ترتیبات محفوظ کریں",
+ "maxNestingDepth": "نیسٹنگ کی زیادہ سے زیادہ گہرائی",
+ "concurrencyPerModel": "ہم وقتی / ماڈل",
+ "queueTimeout": "قطار کا ٹائم آؤٹ (ms)",
"queueDepth": "قطار کی گہرائی",
- "contextRelayHandoffThreshold": "Handoff Threshold",
- "contextRelayMaxMessages": "Max Messages For Summary",
- "contextRelaySummaryModel": "Summary Model",
- "contextRelayProviderNote": "Context Relay currently generates handoffs for Codex accounts and uses these values as global defaults for new or unconfigured combos.",
- "providerProfiles": "Provider Profiles",
- "providerProfilesDesc": "Separate resilience settings for OAuth (session-based) and API Key (metered) providers. OAuth providers have stricter thresholds due to lower rate limits.",
- "oauthProviders": "OAuth Providers",
- "apiKeyProviders": "API Key Providers",
- "transientCooldown": "Transient Cooldown",
- "rateLimitCooldown": "Rate Limit Cooldown",
- "maxBackoffLevel": "Max Backoff Level",
- "cbThreshold": "CB Threshold",
- "cbResetTime": "CB Reset Time",
- "rateLimiting": "Rate Limiting",
- "rateLimitingDesc": "API Key providers are automatically rate-limited with safe defaults. Limits are learned from response headers and adapt over time.",
- "defaultSafetyNet": "Default Safety Net",
+ "contextRelayHandoffThreshold": "منتقلی کی حد",
+ "contextRelayMaxMessages": "خلاصے کے لیے پیغامات کی زیادہ سے زیادہ تعداد",
+ "contextRelaySummaryModel": "خلاصہ ماڈل",
+ "contextRelayProviderNote": "سیاق کی منتقلی فی الحال Codex اکاؤنٹس کے لیے ہینڈ آف بناتی ہے اور ان اقدار کو نئے یا غیر ترتیب شدہ کومبوز کے لیے عالمی طے شدہ ترتیبات کے طور پر استعمال کرتی ہے۔",
+ "providerProfiles": "فراہم کنندہ پروفائلز",
+ "providerProfilesDesc": "OAuth (سیشن پر مبنی) اور API Key (استعمال کے حساب سے قیمت والے) فراہم کنندگان کے لیے الگ لچک پذیری کی ترتیبات۔ کم شرح کی حدود کی وجہ سے OAuth فراہم کنندگان کے لیے حدیں زیادہ سخت ہیں۔",
+ "oauthProviders": "OAuth فراہم کنندگان",
+ "apiKeyProviders": "API Key فراہم کنندگان",
+ "transientCooldown": "عارضی کول ڈاؤن",
+ "rateLimitCooldown": "شرح کی حد کا کول ڈاؤن",
+ "maxBackoffLevel": "بیک آف کی زیادہ سے زیادہ سطح",
+ "cbThreshold": "CB کی حد",
+ "cbResetTime": "CB ری سیٹ کا وقت",
+ "rateLimiting": "شرح کی تحدید",
+ "rateLimitingDesc": "API Key فراہم کنندگان پر محفوظ طے شدہ ترتیبات کے ساتھ خودکار طور پر شرح کی حد لاگو ہوتی ہے۔ حدود رسپانس ہیڈرز سے سیکھی جاتی ہیں اور وقت کے ساتھ خود کو ڈھالتی ہیں۔",
+ "defaultSafetyNet": "طے شدہ حفاظتی جال",
"rpm": "RPM",
- "minGap": "Min Gap",
- "maxConcurrent": "Max Concurrent",
- "activeLimiters": "Active Limiters",
- "noActiveLimiters": "No active rate limiters yet.",
- "reservoir": "Reservoir",
- "running": "Running",
- "queued": "Queued",
- "circuitBreakers": "Circuit Breakers",
- "breakerStateClosed": "Closed",
- "breakerStateOpen": "Open",
- "breakerStateHalfOpen": "Half-Open",
- "tripped": "{count} tripped",
- "healthy": "{count} healthy",
- "resetAll": "Reset All",
- "noCircuitBreakers": "No circuit breakers active yet. They are created automatically when requests flow through the combo pipeline.",
- "failures": "{count} failure(s)",
- "policiesLocked": "Policies & Locked Identifiers",
- "allOperational": "All systems operational — no lockouts or tripped breakers",
- "loadingPolicies": "Loading policies...",
- "lockedIdentifiers": "Locked Identifiers",
- "unlockedIdentifier": "Unlocked: {identifier}",
- "sinceDate": "since {date}",
- "forceUnlock": "Force Unlock",
- "unlocking": "Unlocking...",
- "failedUnlock": "Failed to unlock",
- "failedLoadWithStatus": "Failed to load: {status}",
- "failedLoadResilience": "Failed to load resilience status",
- "saveFailed": "Save failed",
- "resetFailed": "Reset failed",
- "loadingResilience": "Loading resilience status...",
- "retry": "Retry",
+ "minGap": "کم از کم وقفہ",
+ "maxConcurrent": "زیادہ سے زیادہ بیک وقت",
+ "activeLimiters": "فعال شرح محدود کنندگان",
+ "noActiveLimiters": "ابھی تک کوئی شرح محدود کنندہ فعال نہیں ہے۔",
+ "reservoir": "ذخیرہ",
+ "running": "زیرِ عمل",
+ "queued": "قطار میں",
+ "circuitBreakers": "سرکٹ بریکرز",
+ "breakerStateClosed": "بند",
+ "breakerStateOpen": "کھلا",
+ "breakerStateHalfOpen": "نیم کھلا",
+ "tripped": "{count} ٹرپ شدہ",
+ "healthy": "{count} صحت مند",
+ "resetAll": "سب کو ری سیٹ کریں",
+ "noCircuitBreakers": "ابھی تک کوئی سرکٹ بریکر فعال نہیں ہے۔ جب درخواستیں کومبو پائپ لائن سے گزرتی ہیں تو یہ خودکار طور پر بنائے جاتے ہیں۔",
+ "failures": "{count} ناکامی(اں)",
+ "policiesLocked": "پالیسیاں اور مقفل شناخت کنندگان",
+ "allOperational": "تمام نظام فعال ہیں — کوئی لاک آؤٹ یا ٹرپ شدہ بریکر نہیں",
+ "loadingPolicies": "پالیسیاں لوڈ ہو رہی ہیں...",
+ "lockedIdentifiers": "مقفل شناخت کنندگان",
+ "unlockedIdentifier": "غیر مقفل: {identifier}",
+ "sinceDate": "از {date}",
+ "forceUnlock": "جبراً غیر مقفل کریں",
+ "unlocking": "غیر مقفل کیا جا رہا ہے...",
+ "failedUnlock": "غیر مقفل کرنے میں ناکامی",
+ "failedLoadWithStatus": "لوڈ کرنے میں ناکامی: {status}",
+ "failedLoadResilience": "لچک پذیری کی حالت لوڈ کرنے میں ناکامی",
+ "saveFailed": "محفوظ کرنے میں ناکامی",
+ "resetFailed": "ری سیٹ کرنے میں ناکامی",
+ "loadingResilience": "لچک پذیری کی حالت لوڈ ہو رہی ہے...",
+ "retry": "دوبارہ کوشش کریں",
"systemStorage": "System & Storage",
- "allDataLocal": "All data stored locally on your machine",
- "databasePath": "Database Path",
+ "allDataLocal": "تمام ڈیٹا آپ کی مشین پر مقامی طور پر محفوظ ہے",
+ "databasePath": "ڈیٹابیس کا راستہ",
"export": "برآمد کریں",
- "exportDatabase": "Export Database",
- "exportAll": "Export All (.tar.gz)",
- "importDatabase": "Import Database",
- "confirmDbImport": "Confirm Database Import",
- "confirmDbImportDesc": "This will replace all current data with the content from {file}. A backup will be created automatically before the import.",
- "yesImport": "Yes, Import",
- "lastBackup": "Last Backup",
- "noBackupYet": "No backup yet",
- "backupNow": "Backup Now",
- "backupRestore": "Backup & Restore",
- "viewBackups": "View Backups",
- "hide": "Hide",
- "backupRetentionDesc": "Database snapshots are created automatically before restore and every 15 minutes when data changes. Retention: 24 hourly + 30 daily backups with smart rotation.",
- "loadingBackups": "Loading backups...",
- "noBackupsYet": "No backups available yet. Backups will be created automatically when data changes.",
- "backupsAvailable": "{count} backup(s) available",
- "refresh": "Refresh",
- "confirm": "Confirm?",
- "yes": "Yes",
- "no": "No",
- "restore": "Restore",
- "invalidFileType": "Invalid file type. Only .sqlite files are accepted.",
- "exportFailed": "Export failed",
- "exportFailedWithError": "Export failed: {error}",
- "fullExportFailedWithError": "Full export failed: {error}",
- "backupCreated": "Backup created: {file}",
- "restoreSuccess": "Restored! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "importSuccess": "Database imported! {connections} connections, {nodes} nodes, {combos} combos, {apiKeys} API keys.",
- "minutesAgo": "{count}m ago",
- "hoursAgo": "{count}h ago",
- "daysAgo": "{count}d ago",
- "backupReasonManual": "manual",
- "backupReasonPreRestore": "pre-restore",
- "connectionsCount": "{count, plural, one {# connection} other {# connections}}",
- "noChangesSinceBackup": "No changes since last backup",
- "backupFailed": "Backup failed",
- "restoreFailed": "Restore failed",
- "importFailed": "Import failed",
- "errorDuringRestore": "An error occurred during restore",
- "errorDuringImport": "An error occurred during import",
- "modelPricing": "Model Pricing",
- "modelPricingDesc": "Configure cost rates per model • All rates in $/1M tokens",
+ "exportDatabase": "ڈیٹابیس برآمد کریں",
+ "exportAll": "سب برآمد کریں (.tar.gz)",
+ "importDatabase": "ڈیٹابیس درآمد کریں",
+ "confirmDbImport": "ڈیٹابیس کی درآمد کی تصدیق کریں",
+ "confirmDbImportDesc": "یہ تمام موجودہ ڈیٹا کو {file} کے مواد سے بدل دے گا۔ درآمد سے پہلے خودکار طور پر ایک بیک اپ بنایا جائے گا۔",
+ "yesImport": "ہاں، درآمد کریں",
+ "lastBackup": "آخری بیک اپ",
+ "noBackupYet": "ابھی تک کوئی بیک اپ نہیں",
+ "backupNow": "ابھی بیک اپ لیں",
+ "backupRestore": "بیک اپ اور بحالی",
+ "viewBackups": "بیک اپس دیکھیں",
+ "hide": "چھپائیں",
+ "backupRetentionDesc": "بحالی سے پہلے اور ڈیٹا تبدیل ہونے پر ہر 15 منٹ بعد ڈیٹا بیس اسنیپ شاٹس خودکار طور پر بنائے جاتے ہیں۔ محفوظ رکھنے کی مدت: اسمارٹ روٹیشن کے ساتھ 24 گھنٹہ وار + 30 روزانہ بیک اپس۔",
+ "loadingBackups": "بیک اپس لوڈ ہو رہے ہیں...",
+ "noBackupsYet": "ابھی تک کوئی بیک اپ دستیاب نہیں۔ ڈیٹا تبدیل ہونے پر بیک اپس خودکار طور پر بنائے جائیں گے۔",
+ "backupsAvailable": "{count} بیک اپ دستیاب",
+ "refresh": "تازہ کریں",
+ "confirm": "تصدیق کریں؟",
+ "yes": "ہاں",
+ "no": "نہیں",
+ "restore": "بحال کریں",
+ "invalidFileType": "فائل کی قسم درست نہیں۔ صرف .sqlite فائلیں قبول کی جاتی ہیں۔",
+ "exportFailed": "ایکسپورٹ ناکام ہو گیا",
+ "exportFailedWithError": "ایکسپورٹ ناکام ہو گیا: {error}",
+ "fullExportFailedWithError": "مکمل ایکسپورٹ ناکام ہو گیا: {error}",
+ "backupCreated": "بیک اپ بنا دیا گیا: {file}",
+ "restoreSuccess": "بحال ہو گیا! {connections} کنکشنز، {nodes} نوڈز، {combos} کومبوز، {apiKeys} API کیز۔",
+ "importSuccess": "ڈیٹا بیس امپورٹ ہو گیا! {connections} کنکشنز، {nodes} نوڈز، {combos} کومبوز، {apiKeys} API کیز۔",
+ "minutesAgo": "{count} منٹ پہلے",
+ "hoursAgo": "{count} گھنٹے پہلے",
+ "daysAgo": "{count} دن پہلے",
+ "backupReasonManual": "دستی",
+ "backupReasonPreRestore": "بحالی سے پہلے",
+ "connectionsCount": "{count, plural, one {# کنکشن} other {# کنکشنز}}",
+ "noChangesSinceBackup": "آخری بیک اپ کے بعد کوئی تبدیلی نہیں ہوئی",
+ "backupFailed": "بیک اپ ناکام ہو گیا",
+ "restoreFailed": "بحالی ناکام ہو گئی",
+ "importFailed": "امپورٹ ناکام ہو گیا",
+ "errorDuringRestore": "بحالی کے دوران ایک خرابی پیش آئی",
+ "errorDuringImport": "امپورٹ کے دوران ایک خرابی پیش آئی",
+ "modelPricing": "ماڈل کی قیمت بندی",
+ "modelPricingDesc": "ہر ماڈل کے لیے لاگت کی شرحیں ترتیب دیں • تمام شرحیں $/1M ٹوکنز میں ہیں",
"pricingCoverage": "کوریج",
"pricingAuth": "توثیق",
"pricingSort": "ترتیب دیں",
@@ -7325,7 +7332,7 @@
"configured": "کنفیگر شدہ",
"none": "کوئی نہیں",
"modelOverrideValuePlaceholder": "عددی قدر",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "انگریزی میں کوما سے علیحدہ، مثلاً low, medium, high",
"addKeyValue": "کی ویلیو شامل کریں",
"noModelOverrides": "اس ماڈل کے لیے کوئی اوور رائیڈز کنفیگر نہیں کیے گئے۔",
"modelOverrideLoadFailed": "ماڈل اوور رائیڈز لوڈ کرنے میں ناکامی",
@@ -7333,66 +7340,66 @@
"modelOverrideRemoved": "ماڈل اوور رائیڈ ہٹا دیا گیا",
"modelOverrideSaveFailed": "ماڈل اوور رائیڈ محفوظ کرنے میں ناکامی",
"modelOverrideRemoveFailed": "ماڈل اوور رائیڈ ہٹانے میں ناکامی",
- "registry": "Registry",
- "priced": "Priced",
- "searchProvidersModels": "Search providers or models...",
- "showAll": "Show All",
- "noProvidersMatch": "No providers match your search.",
- "howPricingWorks": "How Pricing Works",
- "cacheWrite": "Cache Write",
- "unsaved": "unsaved",
+ "registry": "رجسٹری",
+ "priced": "قیمت مقرر شدہ",
+ "searchProvidersModels": "فراہم کنندگان یا ماڈلز تلاش کریں...",
+ "showAll": "سب دکھائیں",
+ "noProvidersMatch": "کوئی فراہم کنندہ آپ کی تلاش سے مطابقت نہیں رکھتا۔",
+ "howPricingWorks": "قیمتوں کا تعین کیسے کام کرتا ہے",
+ "cacheWrite": "کیش رائٹ",
+ "unsaved": "غیر محفوظ شدہ",
"resetDefaults": "ڈیفالٹس کو ری سیٹ کریں",
- "saveProvider": "Save Provider",
+ "saveProvider": "فراہم کنندہ محفوظ کریں",
"model": "Model",
- "models": "models",
- "moreProviders": "{count} more providers",
- "withPricing": "with pricing configured",
- "policiesCircuitBreakers": "Policies & Circuit Breakers",
- "activeIssuesDetected": "Active issues detected",
- "off": "Off",
- "resetPricingConfirm": "Reset all pricing for {provider} to defaults?",
- "pricingDescInput": "Input: tokens sent to the model",
- "pricingDescOutput": "Output: tokens generated",
- "pricingDescCached": "Cached: reused input (~50% of input rate)",
- "pricingDescReasoning": "Reasoning: thinking tokens (falls back to Output)",
- "pricingDescCacheWrite": "Cache Write: creating cache entries (falls back to Input)",
- "pricingDescFormula": "Cost = (input × input_rate) + (output × output_rate) + (cached × cached_rate) per million tokens.",
- "pricingSettingsTitle": "Pricing Settings",
- "totalModels": "Total Models",
- "active": "Active",
- "costCalculation": "Cost Calculation",
- "costCalculationDesc": "Costs are calculated based on token usage and pricing rates configured for each model.",
- "pricingFormat": "Pricing Format",
- "pricingFormatDesc": "All rates are in $/1M tokens (dollars per million tokens).",
- "tokenTypes": "Token Types",
- "inputTokenDesc": "Standard prompt tokens",
- "outputTokenDesc": "Completion/response tokens",
- "cachedTokenDesc": "Cached input tokens (typically 50% of input rate)",
- "reasoningTokenDesc": "Special reasoning/thinking tokens (fallback to output rate)",
- "cacheCreationTokenDesc": "Tokens used to create cache entries (fallback to input rate)",
- "customPricingNote": "You can override default pricing for specific models. Custom overrides take priority over auto-detected pricing.",
- "editPricing": "Edit Pricing",
- "viewFullDetails": "View Full Details",
+ "models": "ماڈلز",
+ "moreProviders": "مزید {count} فراہم کنندگان",
+ "withPricing": "جن کے لیے قیمتیں ترتیب دی گئی ہیں",
+ "policiesCircuitBreakers": "پالیسیاں اور سرکٹ بریکرز",
+ "activeIssuesDetected": "فعال مسائل کا پتا چلا ہے",
+ "off": "بند",
+ "resetPricingConfirm": "کیا {provider} کے لیے تمام قیمتیں ڈیفالٹ پر ری سیٹ کر دی جائیں؟",
+ "pricingDescInput": "ان پٹ: ماڈل کو بھیجے گئے ٹوکنز",
+ "pricingDescOutput": "آؤٹ پٹ: تیار کردہ ٹوکنز",
+ "pricingDescCached": "کیش شدہ: دوبارہ استعمال کیا گیا ان پٹ (ان پٹ ریٹ کا تقریباً 50%)",
+ "pricingDescReasoning": "استدلال: سوچنے کے ٹوکنز (دستیاب نہ ہونے پر آؤٹ پٹ استعمال ہوتا ہے)",
+ "pricingDescCacheWrite": "کیش رائٹ: کیش اندراجات بنانا (دستیاب نہ ہونے پر ان پٹ استعمال ہوتا ہے)",
+ "pricingDescFormula": "لاگت = (ان پٹ × ان پٹ_ریٹ) + (آؤٹ پٹ × آؤٹ پٹ_ریٹ) + (کیش شدہ × کیش شدہ_ریٹ)، فی دس لاکھ ٹوکنز۔",
+ "pricingSettingsTitle": "قیمتوں کی ترتیبات",
+ "totalModels": "کل ماڈلز",
+ "active": "فعال",
+ "costCalculation": "لاگت کا حساب",
+ "costCalculationDesc": "لاگت کا حساب ٹوکن کے استعمال اور ہر ماڈل کے لیے ترتیب دی گئی قیمتوں کی شرحوں کی بنیاد پر کیا جاتا ہے۔",
+ "pricingFormat": "قیمتوں کی وضع",
+ "pricingFormatDesc": "تمام شرحیں $/1M ٹوکنز (فی دس لاکھ ٹوکنز ڈالر) میں ہیں۔",
+ "tokenTypes": "ٹوکن کی اقسام",
+ "inputTokenDesc": "معیاری پرامپٹ ٹوکنز",
+ "outputTokenDesc": "تکمیل/جواب کے ٹوکنز",
+ "cachedTokenDesc": "کیش شدہ ان پٹ ٹوکنز (عموماً ان پٹ ریٹ کا 50%)",
+ "reasoningTokenDesc": "خصوصی استدلال/سوچنے کے ٹوکنز (دستیاب نہ ہونے پر آؤٹ پٹ ریٹ استعمال ہوتا ہے)",
+ "cacheCreationTokenDesc": "کیش اندراجات بنانے کے لیے استعمال ہونے والے ٹوکنز (دستیاب نہ ہونے پر ان پٹ ریٹ استعمال ہوتا ہے)",
+ "customPricingNote": "آپ مخصوص ماڈلز کے لیے ڈیفالٹ قیمتوں کو اوور رائیڈ کر سکتے ہیں۔ حسبِ ضرورت اوور رائیڈز کو خودکار طور پر شناخت شدہ قیمتوں پر ترجیح حاصل ہوتی ہے۔",
+ "editPricing": "قیمتوں میں ترمیم کریں",
+ "viewFullDetails": "مکمل تفصیلات دیکھیں",
"themeCoral": "Coral",
- "adaptiveVolumeRouting": "Adaptive Volume Routing",
- "adaptiveVolumeRoutingDesc": "Scale connections dynamically based on payload volume and throughput pressure.",
- "lkgpToggleTitle": "Last Known Good Provider (LKGP)",
- "lkgpToggleDesc": "When enabled, the router remembers which provider last served a successful response and tries it first on subsequent requests.",
+ "adaptiveVolumeRouting": "حجم کے مطابق انکولی روٹنگ",
+ "adaptiveVolumeRoutingDesc": "پے لوڈ کے حجم اور تھروپٹ کے دباؤ کی بنیاد پر کنکشنز کو متحرک طور پر اسکیل کریں۔",
+ "lkgpToggleTitle": "آخری معلوم کامیاب فراہم کنندہ (LKGP)",
+ "lkgpToggleDesc": "فعال ہونے پر، راؤٹر یاد رکھتا ہے کہ آخری کامیاب جواب کس فراہم کنندہ نے دیا تھا اور بعد کی درخواستوں پر پہلے اسی کو آزماتا ہے۔",
"echoRequestedModelTitle": "جوابات میں درخواست کردہ ماڈل کا نام ایکو کریں",
"echoRequestedModelDesc": "فعال ہونے پر، جواب کا `model` فیلڈ اپ اسٹریم ماڈل کے نام کے بجائے کلائنٹ کی طرف سے درخواست کردہ عرفی نام یا کومبو کا نام ظاہر کرتا ہے۔ یہ ان سخت کلائنٹس (مثلاً Claude Desktop) کو درست کرتا ہے جو ایسے جواب کو مسترد کرتے ہیں جس کا ماڈل درخواست سے مماثل نہیں ہوتا۔",
"webSearchRouteTitle": "ویب سرچ روٹنگ",
"webSearchRouteDesc": "جب کسی درخواست میں مقامی web_search ٹول شامل ہو، تو ڈیفالٹ کے بجائے پوری درخواست کو اس ماڈل پر روٹ کریں — یہ ان فراہم کنندگان کے لیے مفید ہے جو Anthropic کے web_search سرور ٹول کو نافذ نہیں کرتے ہیں۔ غیر فعال کرنے کے لیے خالی چھوڑ دیں۔",
"webSearchRoutePlaceholder": "ماڈل تلاش کریں یا منتخب کریں…",
"paidModelPatternWarning": "یہ پیٹرن صرف ادا شدہ ماڈلز سے مماثل ہے — ادا شدہ ماڈلز کو فعال کریں یا پیٹرن کو ایڈجسٹ کریں۔",
- "clearLkgpCache": "Clear LKGP Cache",
- "lkgpCacheCleared": "LKGP cache cleared successfully",
- "lkgpCacheClearFailed": "Failed to clear LKGP cache",
- "days": "Days",
- "lkgp": "LKGP Mode",
- "lkgpDesc": "Last Known Good Provider (Predictable resilience)",
- "maintenance": "Maintenance",
- "purgeExpiredLogs": "Purge Expired Logs",
- "purgeLogsFailed": "Failed to purge logs",
+ "clearLkgpCache": "LKGP کیش صاف کریں",
+ "lkgpCacheCleared": "LKGP کیش کامیابی سے صاف کر دیا گیا",
+ "lkgpCacheClearFailed": "LKGP کیش صاف کرنے میں ناکامی",
+ "days": "دن",
+ "lkgp": "LKGP موڈ",
+ "lkgpDesc": "آخری معلوم اچھا فراہم کنندہ (قابلِ پیش گوئی لچک)",
+ "maintenance": "دیکھ بھال",
+ "purgeExpiredLogs": "میعاد ختم شدہ لاگز حذف کریں",
+ "purgeLogsFailed": "لاگز حذف کرنے میں ناکامی",
"logsDeleted": "{count, plural, =0 {کوئی میعاد ختم شدہ لاگ صاف نہیں کیا گیا} one {# میعاد ختم شدہ لاگ صاف کیا گیا} other {# میعاد ختم شدہ لاگز صاف کیے گئے}}",
"resetUsageData": "استعمال کا ڈیٹا ری سیٹ کریں",
"resetUsageDataDesc": "منتخب کریں کہ آپ کتنا پرانا استعمال، درخواست کے لاگز، اور تجزیاتی ڈیٹا حذف کرنا چاہتے ہیں۔ فراہم کنندہ کی کنفیگریشن، کنکشنز، API کیز، کومبوز، اور ترتیبات محفوظ رہتی ہیں۔ اس عمل کو کالعدم نہیں کیا جا سکتا۔",
@@ -7409,63 +7416,63 @@
"resetUsageFailed": "استعمال کا ڈیٹا ری سیٹ کرنے میں ناکامی",
"reset": "ری سیٹ کریں",
"resetting": "ری سیٹ کیا جا رہا ہے...",
- "contextOpt": "Context Optimized",
- "contextOptDesc": "Routes based on context window requirements and conversation length",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
- "priorityDesc": "Sequential fallback - tries provider 1 first, then provider 2, and so on",
- "weightedDesc": "Distributes traffic by percentage weights across providers",
- "modelRoutingTitle": "Model Routing Rules",
- "modelRoutingDesc": "Automatically route models to specific combos using glob patterns",
- "addRule": "Add Rule",
- "routeToCombo": "Route to Combo",
- "selectCombo": "Select combo...",
- "priorityHint": "Higher = checked first. Use 10+ for specific patterns.",
- "patternHint": "Use * for any chars, ? for single char. Case-insensitive.",
- "noRoutingRules": "No routing rules configured. Requests use the global combo by default.",
- "routingRuleHint": "Add a rule like claude-opus* -> frontier-combo to automatically route requests.",
- "deleteRoutingRule": "Delete this model routing rule?",
- "exactMatchMode": "Exact Match",
- "wildcardPatternMode": "Wildcard Pattern",
- "exactMatchModeDesc": "Use exact aliases for deprecated or renamed model IDs.",
- "wildcardPatternModeDesc": "Use wildcard aliases with * and ? when a family of models should map to one target.",
- "noExactAliasesConfigured": "No exact-match aliases configured.",
- "wildcardRulesTitle": "Wildcard Rules",
- "noWildcardAliasesConfigured": "No wildcard aliases configured.",
- "overview": "Overview",
- "unknownError": "Unknown Error",
- "pricingSourceLiteLLM": "LiteLLM (Community)",
- "clearSyncedPricingConfirm": "Clear all synced pricing data? Provider defaults will be used instead.",
- "clearSyncedPricingFailed": "Failed to clear synced pricing",
- "pricingSourceUser": "User Override",
- "pageDescription": "Manage application settings, model aliases, pricing, and routing rules",
- "pricingSyncStatus": "Sync Status",
- "whitelist": "Whitelist",
- "syncDisabled": "Sync Disabled",
- "pricingLoadFailed": "Failed to load pricing data",
- "pricingSyncDescription": "Automatically sync model pricing from external sources to keep cost calculations accurate",
- "clearSyncedPricingSuccess": "Synced pricing data cleared",
- "clearSyncedPricingFailedWithReason": "Failed to clear pricing: {reason}",
- "pricingSourceDefault": "Built-in Default",
- "pricingSyncSuccess": "Pricing synced successfully",
- "enableSyncError": "Failed to toggle pricing sync",
- "syncEnabled": "Sync Enabled",
- "blacklist": "Blacklist",
+ "contextOpt": "سیاق کے لیے موزوں",
+ "contextOptDesc": "سیاقی ونڈو کی ضروریات اور گفتگو کی طوالت کی بنیاد پر روٹس",
+ "cacheOpt": "کیش کے لیے موزوں",
+ "cacheOptDesc": "ایک ہی دوبارہ قابلِ استعمال پرامپٹ سابقے کو اسی فراہم کنندہ کے اکاؤنٹ پر برقرار رکھتا ہے",
+ "priorityDesc": "ترتیبی متبادل — پہلے فراہم کنندہ 1، پھر فراہم کنندہ 2، اور اسی طرح آزماتا ہے",
+ "weightedDesc": "فراہم کنندگان میں فیصدی اوزان کے مطابق ٹریفک تقسیم کرتا ہے",
+ "modelRoutingTitle": "ماڈل روٹنگ کے قواعد",
+ "modelRoutingDesc": "گلوب پیٹرنز استعمال کرتے ہوئے ماڈلز کو خودکار طور پر مخصوص کومبوز کی طرف روٹ کریں",
+ "addRule": "قاعدہ شامل کریں",
+ "routeToCombo": "کومبو کی طرف روٹ کریں",
+ "selectCombo": "کومبو منتخب کریں...",
+ "priorityHint": "زیادہ قدر = پہلے جانچ۔ مخصوص پیٹرنز کے لیے 10+ استعمال کریں۔",
+ "patternHint": "کسی بھی حروف کے لیے * اور ایک حرف کے لیے ? استعمال کریں۔ حروف کی حالت سے غیر حساس۔",
+ "noRoutingRules": "کوئی روٹنگ قواعد ترتیب نہیں دیے گئے۔ درخواستیں بطور ڈیفالٹ عالمی کومبو استعمال کرتی ہیں۔",
+ "routingRuleHint": "درخواستوں کو خودکار طور پر روٹ کرنے کے لیے claude-opus* -> frontier-combo جیسا قاعدہ شامل کریں۔",
+ "deleteRoutingRule": "کیا ماڈل روٹنگ کا یہ قاعدہ حذف کرنا ہے؟",
+ "exactMatchMode": "عین مماثلت",
+ "wildcardPatternMode": "وائلڈ کارڈ پیٹرن",
+ "exactMatchModeDesc": "متروک یا تبدیل شدہ ماڈل IDs کے لیے عین عرف استعمال کریں۔",
+ "wildcardPatternModeDesc": "جب ماڈلز کے ایک خاندان کو ایک ہدف سے میپ کرنا ہو تو * اور ? والے وائلڈ کارڈ عرف استعمال کریں۔",
+ "noExactAliasesConfigured": "عین مماثلت کا کوئی عرف ترتیب نہیں دیا گیا۔",
+ "wildcardRulesTitle": "وائلڈ کارڈ قواعد",
+ "noWildcardAliasesConfigured": "کوئی وائلڈ کارڈ عرف ترتیب نہیں دیا گیا۔",
+ "overview": "جائزہ",
+ "unknownError": "نامعلوم خرابی",
+ "pricingSourceLiteLLM": "LiteLLM (کمیونٹی)",
+ "clearSyncedPricingConfirm": "کیا تمام مطابقت پذیر قیمتوں کا ڈیٹا صاف کرنا ہے؟ اس کی بجائے فراہم کنندہ کی ڈیفالٹ قدریں استعمال ہوں گی۔",
+ "clearSyncedPricingFailed": "مطابقت پذیر قیمتیں صاف کرنے میں ناکامی",
+ "pricingSourceUser": "صارف کی مقرر کردہ قدر",
+ "pageDescription": "ایپلیکیشن کی ترتیبات، ماڈل عرف، قیمتوں اور روٹنگ قواعد کا نظم کریں",
+ "pricingSyncStatus": "مطابقت پذیری کی حالت",
+ "whitelist": "وائٹ لسٹ",
+ "syncDisabled": "ہم وقت سازی غیر فعال ہے",
+ "pricingLoadFailed": "قیمتوں کا ڈیٹا لوڈ کرنے میں ناکامی",
+ "pricingSyncDescription": "لاگت کے حساب کو درست رکھنے کے لیے بیرونی ذرائع سے ماڈل کی قیمتیں خودکار طور پر ہم وقت کریں",
+ "clearSyncedPricingSuccess": "ہم وقت شدہ قیمتوں کا ڈیٹا صاف کر دیا گیا",
+ "clearSyncedPricingFailedWithReason": "قیمتیں صاف کرنے میں ناکامی: {reason}",
+ "pricingSourceDefault": "پہلے سے موجود طے شدہ",
+ "pricingSyncSuccess": "قیمتیں کامیابی سے ہم وقت ہو گئیں",
+ "enableSyncError": "قیمتوں کی ہم وقت سازی کو فعال یا غیر فعال کرنے میں ناکامی",
+ "syncEnabled": "ہم وقت سازی فعال ہے",
+ "blacklist": "بلیک لسٹ",
"pricingSourceModelsDev": "Models.dev",
- "syncedModels": "Synced Models",
- "budget": "Budget",
- "pricingSyncTitle": "Pricing Sync",
- "pricingResetFailedWithReason": "Failed to reset pricing: {reason}",
- "tab": "Tab",
- "pricingSavedProvider": "Pricing saved for {provider}",
- "pricingSyncFailed": "Pricing sync failed",
- "pricingSaveFailedWithReason": "Failed to save pricing: {reason}",
- "pricingResetProvider": "Pricing reset for {provider}",
- "nextSync": "Next Sync",
- "pricingSyncFailedWithReason": "Pricing sync failed: {reason}",
- "clearSyncedPricing": "Clear Synced Pricing",
- "compressionTitle": "Prompt Compression",
- "compressionDesc": "Reduce token usage by compressing prompts before sending to providers",
+ "syncedModels": "ہم وقت شدہ ماڈلز",
+ "budget": "بجٹ",
+ "pricingSyncTitle": "قیمتوں کی ہم وقت سازی",
+ "pricingResetFailedWithReason": "قیمتیں دوبارہ ترتیب دینے میں ناکامی: {reason}",
+ "tab": "ٹیب",
+ "pricingSavedProvider": "{provider} کے لیے قیمتیں محفوظ کر دی گئیں",
+ "pricingSyncFailed": "قیمتوں کی ہم وقت سازی ناکام ہو گئی",
+ "pricingSaveFailedWithReason": "قیمتیں محفوظ کرنے میں ناکامی: {reason}",
+ "pricingResetProvider": "{provider} کے لیے قیمتیں دوبارہ ترتیب دے دی گئیں",
+ "nextSync": "اگلی ہم وقت سازی",
+ "pricingSyncFailedWithReason": "قیمتوں کی ہم وقت سازی ناکام ہو گئی: {reason}",
+ "clearSyncedPricing": "ہم وقت شدہ قیمتیں صاف کریں",
+ "compressionTitle": "پرامپٹ کمپریشن",
+ "compressionDesc": "فراہم کنندگان کو بھیجنے سے پہلے پرامپٹس کو کمپریس کر کے ٹوکن کا استعمال کم کریں",
"compressionGuidanceFullGuideLink": "مکمل کمپریشن گائیڈ",
"compressionGuidanceShow": "تفصیلات",
"compressionGuidanceHide": "تفصیلات چھپائیں",
@@ -7481,13 +7488,13 @@
"tokenSaverInputCompressionDesc": "کوڈ، URLs، اور مقصد کو برقرار رکھتے ہوئے اہل چیٹ ہسٹری کو دوبارہ لکھیں۔",
"tokenSaverFineTunePrefix": "ہر انجن کو فائن ٹیون کریں برائے",
"tokenSaverFineTuneSuffix": "یا فی درخواست انجنوں کو یکجا کریں برائے",
- "compressionMode": "Compression Mode",
- "compressionModeOff": "Off",
- "compressionModeOffDesc": "No compression applied",
- "compressionModeLite": "Lite",
- "compressionModeLiteDesc": "Whitespace and blank line reduction",
- "compressionModeStandard": "Standard (Caveman)",
- "compressionModeStandardDesc": "Rule-based compression with 30+ patterns, preserves code blocks and URLs",
+ "compressionMode": "کمپریشن موڈ",
+ "compressionModeOff": "بند",
+ "compressionModeOffDesc": "کوئی کمپریشن لاگو نہیں",
+ "compressionModeLite": "ہلکا",
+ "compressionModeLiteDesc": "خالی جگہوں اور خالی سطروں میں کمی",
+ "compressionModeStandard": "معیاری (Caveman)",
+ "compressionModeStandardDesc": "30+ پیٹرنز کے ساتھ قواعد پر مبنی کمپریشن، کوڈ بلاکس اور URLs کو محفوظ رکھتا ہے",
"compressionModeAggressive": "جارحانہ",
"compressionModeAggressiveDesc": "خلاصہ + ٹول نتیجہ کمپریشن + زیادہ سے زیادہ بچت کے لئے ترقی پسند عمر رسیدہ",
"compressionModeUltra": "الٹرا",
@@ -7512,10 +7519,10 @@
"compressionAgingThresholdsDesc": "ہر عمر رسیدہ درجے پر رکھے گئے حالیہ پیغامات کی تعداد (اعلی = زیادہ محفوظ)",
"compressionToolStrategies": "ٹول کے نتائج کی حکمت عملی",
"compressionToolStrategiesDesc": "مختلف ٹول کے نتائج کی اقسام کے لیے کمپریشن کی حکمت عملیوں کو ٹوگل کریں۔",
- "compressionGeneral": "General Settings",
- "compressionAutoTrigger": "Auto-Trigger Threshold",
- "compressionCacheTTL": "Cache TTL",
- "compressionPreserveSystem": "Preserve System Prompt",
+ "compressionGeneral": "عمومی ترتیبات",
+ "compressionAutoTrigger": "خودکار آغاز کی حد",
+ "compressionCacheTTL": "کیش TTL",
+ "compressionPreserveSystem": "سسٹم پرامپٹ محفوظ رکھیں",
"compressionPreserveSystemAlways": "ہمیشہ",
"compressionPreserveSystemWhenNoCache": "جب کیشے نہ ہو",
"compressionPreserveSystemNever": "کبھی نہیں",
@@ -7528,64 +7535,64 @@
"compressionExclusionsSaved": "محفوظ شدہ",
"compressionExclusionsCount": "{count, plural, one {# خارج} other {# خارجیاں}} ترتیب دی گئی ہیں",
"compressionExclusionsEmpty": "کوئی خارج کردہ چیزیں ترتیب نہیں دی گئی ہیں — ہر ماڈل/اینڈپوائنٹ کمپریشن کے لیے اہل ہے (ڈیفالٹ رویہ)۔",
- "compressionCavemanConfig": "Caveman Engine Configuration",
- "compressionCavemanConfigDesc": "Fine-tune the rule-based compression engine",
+ "compressionCavemanConfig": "Caveman انجن کی ترتیب",
+ "compressionCavemanConfigDesc": "قواعد پر مبنی کمپریشن انجن کو باریک بینی سے ایڈجسٹ کریں",
"compressionCavemanPanelHint": "اس کا آن/آف اور لیول پینل میں سیٹ کیا جاتا ہے:",
- "compressionRoles": "Compress Message Roles",
- "compressionRoleUser": "User",
- "compressionRoleAssistant": "Assistant",
- "compressionRoleSystem": "System",
- "compressionMinLength": "Minimum Message Length",
- "compressionSkipRules": "Skip Compression Rules",
- "compressionSkipRulesDesc": "Click rules to skip them during compression",
- "compressionPreservePatterns": "Preserve Patterns",
- "compressionPreservePatternsDesc": "Regex patterns that are never compressed (one per line)",
- "compressionLogTitle": "Compression Log",
- "compressionLogEmpty": "No compressed requests yet. Compression stats will appear here when requests are processed with compression enabled.",
+ "compressionRoles": "پیغام کے کرداروں کو کمپریس کریں",
+ "compressionRoleUser": "صارف",
+ "compressionRoleAssistant": "معاون",
+ "compressionRoleSystem": "سسٹم",
+ "compressionMinLength": "پیغام کی کم از کم لمبائی",
+ "compressionSkipRules": "کمپریشن کے قواعد نظر انداز کریں",
+ "compressionSkipRulesDesc": "کمپریشن کے دوران قواعد کو نظر انداز کرنے کے لیے ان پر کلک کریں",
+ "compressionPreservePatterns": "پیٹرنز محفوظ رکھیں",
+ "compressionPreservePatternsDesc": "Regex پیٹرنز جنہیں کبھی کمپریس نہیں کیا جاتا (ہر سطر میں ایک)",
+ "compressionLogTitle": "کمپریشن لاگ",
+ "compressionLogEmpty": "ابھی تک کوئی درخواست کمپریس نہیں کی گئی۔ کمپریشن فعال ہونے کے ساتھ درخواستوں پر کارروائی کیے جانے پر اعداد و شمار یہاں ظاہر ہوں گے۔",
"minutes": "منٹ",
"compressionModeRtk": "RTK",
- "compressionModeRtkDesc": "Command-aware tool output filtering",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
- "compressionModeStacked": "Stacked",
- "compressionModeStackedDesc": "RTK tool-output filtering followed by Caveman message compression",
- "qdrantTitle": "Qdrant (Vector memory)",
- "qdrantDesc": "Optional. Indexes semantic memories in an external vector database for faster retrieval.",
- "qdrantStatusActive": "Active",
- "qdrantStatusError": "Error",
- "qdrantStatusDisabled": "Disabled",
- "qdrantEnable": "Enable Qdrant",
- "qdrantEnableDesc": "When enabled, semantic/hybrid strategy can use Qdrant to retrieve memories.",
- "qdrantTesting": "Testing...",
- "qdrantTestConnection": "Test connection",
- "qdrantSaved": "Configuration saved",
- "qdrantSaveError": "Failed to save configuration",
- "qdrantHostHint": "Without port. Example: 127.0.0.1 or http://qdrant",
- "qdrantPort": "Port",
- "qdrantPortHint": "Qdrant default: 6333",
- "qdrantCollectionHint": "Where memory points will be stored.",
- "qdrantEmbeddingModel": "Embedding model",
- "qdrantHelpTitle": "Quick setup help",
- "qdrantHelpQuickTitle": "Quick setup (Qdrant + OpenRouter)",
- "qdrantHelpStep1": "1. Host: Qdrant IP/URL, Port: 6333, Collection: omniroute_memory.",
- "qdrantHelpStep2": "2. If using nvidia/llama-nemotron-embed-vl-1b-v2:free, use collection dimension 2048.",
- "qdrantHelpStep3": "3. Model field: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free.",
- "qdrantHelpStep4": "4. Save, test connection, then test search.",
- "qdrantEmbeddingQuickSelect": "Quick select from discovered models...",
+ "compressionModeRtkDesc": "کمانڈ سے آگاہ ٹول آؤٹ پٹ فلٹرنگ",
+ "compressionModeCodexResponses": "Responses ٹول کا آؤٹ پٹ",
+ "compressionModeCodexResponsesDesc": "اہل shell، patch، search، build، اور JSON آؤٹ پٹس کے لیے محتاط کمپریشن",
+ "compressionModeStacked": "اسٹیکڈ",
+ "compressionModeStackedDesc": "RTK ٹول آؤٹ پٹ فلٹرنگ، جس کے بعد Caveman پیغام کمپریشن ہوتا ہے",
+ "qdrantTitle": "Qdrant (ویکٹر میموری)",
+ "qdrantDesc": "اختیاری۔ تیز تر بازیافت کے لیے معنوی یادداشتوں کو ایک بیرونی ویکٹر ڈیٹابیس میں انڈیکس کرتا ہے۔",
+ "qdrantStatusActive": "فعال",
+ "qdrantStatusError": "خرابی",
+ "qdrantStatusDisabled": "غیر فعال",
+ "qdrantEnable": "Qdrant فعال کریں",
+ "qdrantEnableDesc": "فعال ہونے پر، معنوی/ہائبرڈ حکمتِ عملی یادداشتیں بازیافت کرنے کے لیے Qdrant استعمال کر سکتی ہے۔",
+ "qdrantTesting": "جانچ جاری ہے...",
+ "qdrantTestConnection": "کنکشن کی جانچ کریں",
+ "qdrantSaved": "کنفیگریشن محفوظ ہو گئی",
+ "qdrantSaveError": "کنفیگریشن محفوظ کرنے میں ناکامی",
+ "qdrantHostHint": "پورٹ کے بغیر۔ مثال: 127.0.0.1 یا http://qdrant",
+ "qdrantPort": "پورٹ",
+ "qdrantPortHint": "Qdrant کا ڈیفالٹ: 6333",
+ "qdrantCollectionHint": "وہ جگہ جہاں میموری پوائنٹس محفوظ کیے جائیں گے۔",
+ "qdrantEmbeddingModel": "ایمبیڈنگ ماڈل",
+ "qdrantHelpTitle": "فوری سیٹ اپ مدد",
+ "qdrantHelpQuickTitle": "فوری سیٹ اپ (Qdrant + OpenRouter)",
+ "qdrantHelpStep1": "1. ہوسٹ: Qdrant IP/URL، پورٹ: 6333، کلیکشن: omniroute_memory۔",
+ "qdrantHelpStep2": "2. اگر nvidia/llama-nemotron-embed-vl-1b-v2:free استعمال کر رہے ہیں، تو کلیکشن ڈائمینشن 2048 رکھیں۔",
+ "qdrantHelpStep3": "3. ماڈل فیلڈ: openrouter/nvidia/llama-nemotron-embed-vl-1b-v2:free۔",
+ "qdrantHelpStep4": "4. محفوظ کریں، کنکشن کی جانچ کریں، پھر تلاش کی جانچ کریں۔",
+ "qdrantEmbeddingQuickSelect": "دریافت شدہ ماڈلز میں سے فوری انتخاب کریں...",
"qdrantEmbeddingInputPlaceholder": "openai/text-embedding-3-small",
- "qdrantEmbeddingHint": "Format: provider/model. The provider credential must be configured.",
- "qdrantApiKeyPlaceholderKeep": "(leave empty to keep current key)",
- "qdrantApiKeyPlaceholderOptional": "(leave empty if not used)",
- "qdrantSaveHint": "Tip: edit host/port/collection/model and click Save. API key is optional.",
- "qdrantSearchTestTitle": "Search test",
- "qdrantSearchTestDesc": "Generates embedding and searches in Qdrant.",
- "qdrantSearchPlaceholder": "Example: user preferences, history, etc",
- "qdrantNoResults": "No results (or Qdrant is not configured).",
- "qdrantCleanupTitle": "Retention and cleanup",
- "qdrantCleanupDesc": "Removes expired and old points based on",
- "searching": "Searching...",
- "cleaning": "Cleaning...",
- "cleanNow": "Clean now",
+ "qdrantEmbeddingHint": "فارمیٹ: provider/model۔ پرووائیڈر کی اسناد لازماً تشکیل دی گئی ہوں۔",
+ "qdrantApiKeyPlaceholderKeep": "(موجودہ کلید برقرار رکھنے کے لیے خالی چھوڑ دیں)",
+ "qdrantApiKeyPlaceholderOptional": "(اگر استعمال نہ ہو تو خالی چھوڑ دیں)",
+ "qdrantSaveHint": "مشورہ: host/port/collection/model میں ترمیم کریں اور محفوظ کریں پر کلک کریں۔ API کلید اختیاری ہے۔",
+ "qdrantSearchTestTitle": "تلاش کی جانچ",
+ "qdrantSearchTestDesc": "ایمبیڈنگ تیار کرتا ہے اور Qdrant میں تلاش کرتا ہے۔",
+ "qdrantSearchPlaceholder": "مثال: صارف کی ترجیحات، سرگزشت وغیرہ",
+ "qdrantNoResults": "کوئی نتائج نہیں (یا Qdrant تشکیل نہیں دیا گیا)۔",
+ "qdrantCleanupTitle": "برقرار رکھنے اور صفائی کی ترتیبات",
+ "qdrantCleanupDesc": "اس بنیاد پر میعاد ختم شدہ اور پرانے پوائنٹس ہٹاتا ہے:",
+ "searching": "تلاش جاری ہے...",
+ "cleaning": "صفائی جاری ہے...",
+ "cleanNow": "ابھی صاف کریں",
"optional": "اختیاری",
"current": "کرنٹ",
"remove": "ہٹا دیں۔",
@@ -7596,19 +7603,19 @@
"resilienceScope": "دائرہ کار:",
"resilienceTrigger": "محرک:",
"resilienceEffect": "اثر:",
- "resilienceRequestQueueTitle": "Request Queue & Rate",
- "resilienceAutoEnableApiKeyProviders": "Auto-enable for API-key providers",
- "resilienceRequestsPerMinute": "Requests per minute",
- "resilienceMinTimeBetweenRequests": "Minimum time between requests",
- "resilienceConcurrentRequests": "Concurrent requests",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceRequestQueueTitle": "درخواستوں کی قطار اور شرح",
+ "resilienceAutoEnableApiKeyProviders": "API-key پرووائیڈرز کے لیے خودکار طور پر فعال کریں",
+ "resilienceRequestsPerMinute": "فی منٹ درخواستیں",
+ "resilienceMinTimeBetweenRequests": "درخواستوں کے درمیان کم از کم وقت",
+ "resilienceConcurrentRequests": "بیک وقت درخواستیں",
+ "resilienceConnectionScopeConcurrentRequests": "فی کنکشن/کوٹہ دائرہ بیک وقت درخواستیں",
+ "resilienceGlobalConcurrentRequests": "عالمی بیک وقت اپ اسٹریم درخواستیں (0 = غیر فعال)",
"resilienceMaxQueueWaitTime": "زیادہ سے زیادہ قطار انتظار کا وقت",
- "resilienceBaseCooldown": "Base cooldown",
- "resilienceUseUpstreamRetryHints": "Use upstream retry hints",
- "resilienceDefaultPerProvider": "Default (per provider)",
- "resilienceAlwaysOn": "Always on",
- "resilienceAlwaysOff": "Always off",
+ "resilienceBaseCooldown": "بنیادی وقفۂ انتظار",
+ "resilienceUseUpstreamRetryHints": "اپ اسٹریم کی دوبارہ کوشش کی ہدایات استعمال کریں",
+ "resilienceDefaultPerProvider": "طے شدہ (فی پرووائیڈر)",
+ "resilienceAlwaysOn": "ہمیشہ فعال",
+ "resilienceAlwaysOff": "ہمیشہ غیر فعال",
"routingRemoveEntry": "اندراج کو ہٹا دیں۔",
"routingNeedlesSubstrings": "سوئیاں (ملانے کے لیے ذیلی تاریں)",
"routingCaseSensitive": "کیس حساس",
@@ -7696,20 +7703,20 @@
"visionBridgePromptHint": "اصل درخواست میں نکالی گئی تفصیل کو دوبارہ شامل کرنے سے پہلے ویژن ماڈل کو بھیجا گیا۔",
"visionBridgeTimeoutMs": "ٹائم آؤٹ (ms)",
"visionBridgeMaxImagesPerRequest": "زیادہ سے زیادہ تصاویر فی درخواست",
- "resilienceMaxBackoffSteps": "Max backoff steps",
- "resilienceProviderBreakerTitle": "Circuit Breaker per Provider",
- "resilienceFailureThreshold": "Failure threshold",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceMaxBackoffSteps": "بیک آف کے زیادہ سے زیادہ مراحل",
+ "resilienceProviderBreakerTitle": "فی پرووائیڈر سرکٹ بریکر",
+ "resilienceFailureThreshold": "ناکامی کی حد",
+ "resilienceDegradationThreshold": "تنزلی کی حد",
"resilienceResetTimeout": "ٹائم آؤٹ ری سیٹ کریں۔",
"resilienceFailureThresholdLabel": "ناکامی کی حد",
"resilienceResetTimeoutLabel": "ٹائم آؤٹ ری سیٹ کریں۔",
- "resilienceConnectionCooldownTitle": "Connection Cooldown",
+ "resilienceConnectionCooldownTitle": "کنکشن کا وقفۂ انتظار",
"resilienceUseUpstreamRetryHintsLabel": "اپ اسٹریم دوبارہ کوشش کے اشارے استعمال کریں۔",
"resilienceUseUpstream429BreakerLabel": "اپ اسٹریم 429 اشارے استعمال کریں (بریکر)",
"resilienceMaxBackoffStepsLabel": "زیادہ سے زیادہ بیک آف اقدامات",
"resilienceYes": "جی ہاں",
"resilienceNo": "نہیں",
- "resilienceDefault": "Default",
+ "resilienceDefault": "طے شدہ",
"storageDatabaseBackupRetention": "ڈیٹا بیس کا بیک اپ برقرار رکھنا",
"storageDatabaseBackups": "ڈیٹا بیس بیک اپس",
"storageBackupRetentionDescription": "خودکار SQLite بیک اپس اس میں محفوظ کیے جاتے ہیں",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "لیگیسی JSON کامیابی سے امپورٹ ہو گیا!",
"jsonImportFailed": "JSON امپورٹ کرنے میں ناکامی ہوئی",
"jsonImportError": "JSON امپورٹ کے دوران خرابی",
+ "jsonImportAuthRequired": "پرانی JSON تشکیل درآمد کرنے کے لیے توثیق درکار ہے۔ براہ کرم پہلے سائن اِن کریں یا سیٹ اپ مکمل کریں۔",
+ "databaseSettingsAuthRequiredTitle": "توثیق درکار ہے",
+ "databaseSettingsAuthRequiredBody": "ڈیٹابیس کی ترتیبات اور JSON درآمد صرف توثیق شدہ منتظم کے لیے دستیاب ہیں۔ انہیں دیکھنے اور ان میں ترمیم کرنے کے لیے سائن اِن کریں یا سیٹ اپ مکمل کریں۔",
+ "databaseSettingsAuthRequiredCta": "سائن اِن کریں",
"storagePurgeData": "ڈیٹا صاف کریں۔",
"storagePurgeDataDesc": "ریٹینشن چیکس لاگو کیے بغیر فوری طور پر تمام ریکارڈز حذف کریں۔ احتیاط کے ساتھ استعمال کریں۔",
"storageRetentionCleanup": "ریٹینشن ترتیبات",
@@ -7824,14 +7835,14 @@
"compressionDerivedMode": "موڈ: {mode}",
"compressionAdaptiveOff": "اڈیپٹیو کانٹیکسٹ بجٹ: بند (لیگیسی آٹو ٹریگر)",
"compressionAdaptiveTarget": "اڈیپٹیو ({mode}, پالیسی: {policy}) — ہدف ≈ {target, number} ٹوکنز ({contextLimit, number}-ٹوکن ونڈو کے لیے)",
- "compressionAdaptiveMode": "__MISSING__:Adaptive context budget",
- "compressionAdaptiveModeOff": "__MISSING__:Off (legacy auto-trigger)",
- "compressionAdaptiveModeFloor": "__MISSING__:Floor (always guarantee fit)",
- "compressionAdaptiveModeReplace": "__MISSING__:Replace auto-trigger",
- "compressionAdaptivePolicy": "__MISSING__:Budget policy",
- "compressionAdaptivePolicyReserve": "__MISSING__:Reserve output",
- "compressionAdaptivePolicyPercentage": "__MISSING__:Percentage of window",
- "compressionAdaptivePolicyAbsolute": "__MISSING__:Absolute token budget",
+ "compressionAdaptiveMode": "حسبِ ضرورت سیاقی بجٹ",
+ "compressionAdaptiveModeOff": "بند (روایتی خودکار آغاز)",
+ "compressionAdaptiveModeFloor": "کم از کم حد (ہمیشہ فِٹ ہونے کی ضمانت)",
+ "compressionAdaptiveModeReplace": "خودکار آغاز کو تبدیل کریں",
+ "compressionAdaptivePolicy": "بجٹ پالیسی",
+ "compressionAdaptivePolicyReserve": "آؤٹ پٹ محفوظ رکھیں",
+ "compressionAdaptivePolicyPercentage": "ونڈو کا فیصد",
+ "compressionAdaptivePolicyAbsolute": "مطلق ٹوکن بجٹ",
"compressionOutputStylesDescription": "پرووائیڈر آؤٹ پٹ کو دوبارہ لکھے بغیر رسپانس شیپنگ ہدایات شامل کریں۔ آزادانہ طور پر یکجا کریں۔",
"mcpAccessibilityDescription": "MCP ٹول آؤٹ پٹس کو اسکوپ کرتا ہے (علیحدہ اسٹور)۔",
"compressionStylesTileSummary": "{tokens, number} ٹوکنز محفوظ کیے گئے · {runs, plural, one {# رن اسٹائل کیا گیا} other {# رنز اسٹائل کیے گئے}}",
@@ -7862,8 +7873,8 @@
"description": "کمانڈ آؤٹ پٹ فلٹرنگ۔"
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses ٹول آؤٹ پٹ",
+ "description": "معاونت یافتہ Responses ٹول آؤٹ پٹس کے لیے محتاط کمپریشن۔"
},
"headroom": {
"label": "ہیڈ روم",
@@ -7904,12 +7915,12 @@
"description": "YAGNI سیڑھی: سب سے چھوٹی کام کرنے والی تبدیلی، کوئی غیر مطلوبہ خلاصہ نہیں۔"
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "Ponytail (سست سینئر ڈویلپر)",
+ "description": "سست سینئر ڈویلپر کا نظم: YAGNI کی سیڑھی چڑھیں، بنیادی وجہ درست کریں، کم سے کم قابلِ عمل تبدیلی کریں۔"
},
"i-have-adhd": {
- "label": "I have ADHD (action-first)",
- "description": "Action-first output: next action leads, steps numbered, one concrete next step, no preamble."
+ "label": "مجھے ADHD ہے (پہلے عمل)",
+ "description": "پہلے عمل والا آؤٹ پٹ: اگلا عمل پہلے، مراحل نمبر وار، ایک ٹھوس اگلا قدم، کوئی تمہید نہیں۔"
},
"terse-cjk": {
"label": "مختصر CJK (文言)",
@@ -7926,7 +7937,15 @@
"memorySkillsActiveSkillsProvider": "فعال ہنر فراہم کنندہ",
"cliproxyapiFallback": "CLIProxyAPI فال بیک",
"cliproxyapiEnableFallback": "CLIProxyAPI فال بیک کو فعال کریں۔",
- "cliproxyapiUrl": "CLIProxyAPI URL",
+ "cliproxyapiUrl": "CLIProxyAPI یو آر ایل",
+ "headroomProxyTitle": "Headroom پراکسی",
+ "headroomProxyDesc": "اختیاری Headroom ٹوکن بچانے والی پراکسی کا URL۔ خالی ہونے پر HEADROOM_URL یا http://localhost:8787 استعمال ہوگا۔",
+ "headroomProxyUrl": "Headroom یو آر ایل",
+ "headroomProxyUrlHint": "لوپ بیک URLs کو اس صفحے سے شروع کیا جا سکتا ہے۔ بیرونی URLs کی صرف جانچ کی جاتی ہے۔",
+ "headroomProxySave": "محفوظ کریں",
+ "headroomProxyStart": "شروع کریں",
+ "headroomProxyStop": "روکیں",
+ "headroomProxyExternalHint": "یہ URL لوپ بیک نہیں ہے، اس لیے OmniRoute مقامی CLI شروع نہیں کرے گا۔",
"cliproxyapiStatus": "CLIProxyAPI اسٹیٹس",
"cliproxyapiNotDetected": "پتہ نہیں چلا",
"cliproxyapiImportAuthTitle": "CLIProxyAPI سے اکاؤنٹس درآمد کریں",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "OpenAI Codex کی درخواستوں کے لیے عالمی سطح پر service_tier=priority انجیکشن کریں۔",
"codexFastTierHint": "فعال ہونے پر، OmniRoute service_tier=priority کو آؤٹ باؤنڈ کوڈیکس کی درخواستوں میں ان کنکشنز کے لیے شامل کرتا ہے جو پہلے سے کسی درجے کی وضاحت نہیں کرتے ہیں۔ ترجیحی درجے کے لیے OpenAI Enterprise API کلید یا ChatGPT-auth Codex پاتھ کی ضرورت ہوتی ہے۔ دیگر کلیدی اقسام کو OpenAI سے درجے سے متعلق غلطی موصول ہوگی۔ کوڈیکس فراہم کنندہ صفحہ پر فی کنکشن کی ترتیبات کو فوقیت حاصل ہے۔",
"codexFastTierSaveError": "کوڈیکس فاسٹ ٹائر کی ترتیب کو اپ ڈیٹ کرنے میں ناکام",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex کوٹا آٹو پنگ",
+ "codexAutoPingDesc": "فی کنکشن اختیاری: Codex سیشن ونڈو ری سیٹ ہونے کے فوراً بعد ایک مختصر درخواست بھیجتا ہے تاکہ ضرورت کے وقت یہ کولڈ نہ ہو۔",
+ "codexAutoPingWarning": "ہر پنگ پر حقیقی Codex کوٹے کی معمولی مقدار استعمال ہوتی ہے۔ بطور ڈیفالٹ بند ہے — صرف ان کنکشنز کے لیے فعال کریں جن پر آپ واقعی انحصار کرتے ہیں۔",
+ "codexAutoPingSaveError": "Codex آٹو پنگ کی ترتیب اپ ڈیٹ کرنے میں ناکامی",
+ "codexAutoPingToggleAria": "{connection} کے لیے Codex کوٹا آٹو پنگ ٹوگل کریں",
"codexFastTierTierLabel": "سروس ٹیئر",
"codexFastTierTierPriority": "ترجیح",
"codexFastTierTierFlex": "فلیکس",
@@ -8125,8 +8144,8 @@
"resilienceCredentialHealthInterval": "عالمی جانچ وقفہ",
"resilienceCredentialHealthEveryMinutes": "ہر {minutes} منٹ",
"resilienceCredentialHealthHint": "0 پس منظر اسکین بند کرتا ہے (زیادہ سے زیادہ 1440 منٹ = 24 گھنٹے)۔ اپنی صحت کی جانچ کی قدر والے کنکشن اس عالمی ڈیفالٹ کو نظر انداز کرتے ہیں؛ کسی کنکشن پر 0 اسے عالمی اسکین چالو ہونے پر بھی باہر رکھتا ہے۔",
- "forcedFingerprintTitle": "Always enabled for {provider} — required for OAuth account safety; cannot be turned off.",
- "forcedFingerprintBadge": "Required",
+ "forcedFingerprintTitle": "{provider} کے لیے ہمیشہ فعال — OAuth اکاؤنٹ کی حفاظت کے لیے ضروری ہے؛ اسے بند نہیں کیا جا سکتا۔",
+ "forcedFingerprintBadge": "ضروری",
"sessionAffinityTitle": "سیشن افینیٹی",
"sessionAffinityDesc": "کسی بھی پرووائیڈر کے لیے، اتنے سیکنڈز تک ایک ہی اکاؤنٹ پر ایک گفتگو کو برقرار رکھتا ہے۔ 0 اسے غیر فعال کرتا ہے۔",
"sessionAffinityTtl": "افینیٹی TTL (سیکنڈز)",
@@ -8198,18 +8217,18 @@
"modelLockoutMaxBackoffStepsDescription": "کول ڈاؤن بڑھنے سے رکنے سے پہلے بیک آف مراحل کی زیادہ سے زیادہ تعداد۔ زیادہ تر کنفیگریشنز میں Max Cooldown کی حد پہلے پہنچ جاتی ہے، جس سے یہ Max Cooldown بڑھائے جانے کی صورت میں ایک حفاظتی حد بن جاتی ہے۔",
"disableSessionStickiness": "سیشن اسٹیکنیس کو غیر فعال کریں",
"disableSessionStickinessDesc": "راؤنڈ رابن اور رینڈم کمبوز پہلے پیغام کے ہیش کے ذریعے پوری گفتگو کو ایک کنکشن سے منسلک کرنے کے بجائے ہر درخواست پر ایک مختلف کنکشن پر منتقل ہو جاتے ہیں۔ ملٹی ٹرن چیٹس کے لیے پرامپٹ کیش ہٹس کو برقرار رکھنے کے لیے اسے بند رہنے دیں۔ فی کمبو اوور رائیڈز کو ترجیح حاصل ہوگی۔",
- "promptCacheAffinity": "Prompt-cache locality routing",
- "promptCacheAffinityDesc": "Prefer the same provider account for matching prompt-cache keys while preserving health and quota failover.",
- "reasoningTokenBuffer": "Reasoning token buffer",
- "reasoningTokenBufferDesc": "Allow combo routing to add max_tokens headroom only for known reasoning models when the full buffer fits inside a known output cap.",
- "zeroLatencyOptimizations": "Zero-latency optimizations",
- "zeroLatencyOptimizationsDesc": "Opt in to hedging, predictive TTFT skips, and proactive fallback compression. Leave off to prevent these latency features from racing targets or compressing fallback requests.",
+ "promptCacheAffinity": "پرامپٹ کیش لوکیلٹی روٹنگ",
+ "promptCacheAffinityDesc": "صحت اور کوٹا فیل اوور برقرار رکھتے ہوئے مماثل پرامپٹ کیش کلیدوں کے لیے اسی پرووائیڈر اکاؤنٹ کو ترجیح دیں۔",
+ "reasoningTokenBuffer": "ریزننگ ٹوکن بفر",
+ "reasoningTokenBufferDesc": "کومبو روٹنگ کو صرف معلوم ریزننگ ماڈلز کے لیے max_tokens ہیڈ روم شامل کرنے دیں، بشرطیکہ مکمل بفر معلوم آؤٹ پٹ حد کے اندر سما سکے۔",
+ "zeroLatencyOptimizations": "صفر تاخیر کی آپٹیمائزیشنز",
+ "zeroLatencyOptimizationsDesc": "ہیجنگ، پیش گوئی پر مبنی TTFT اسکیپس، اور پیشگی فال بیک کمپریشن کے لیے آپٹ اِن کریں۔ ان لیٹنسی خصوصیات کو اہداف کے ساتھ دوڑ لگانے یا فال بیک درخواستیں کمپریس کرنے سے روکنے کے لیے اسے بند رکھیں۔",
"credentialRedaction": "اسناد کی ریڈیکشن",
"credentialRedactionDesc": "فراہم کنندگان کو بھیجے گئے سیاق و سباق اور جوابات سے API کیز، ٹوکنز اور خفیہ معلومات کو سنسر کریں۔",
"enableCredentialRedaction": "اسناد کی سنسرشپ کو فعال کریں",
"enableCredentialRedactionDesc": "پیغامات، ٹول کالز اور جوابات سے API کیز، ٹوکنز، پرائیویٹ کیز اور JWTs کو صاف کرتا ہے۔",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "خودکار سنک غیر فعال ہے",
+ "pricingAutoSyncEnabled": "خودکار سنک فعال ہے",
"modalityBridgeIntro": "ملٹی موڈل مواد کو صرف ٹیکسٹ ماڈلز تک پہنچنے سے پہلے ٹیکسٹ میں تبدیل کریں۔ وژن، آڈیو اور ویڈیو برج دستیاب اور قابل ترتیب ہیں۔",
"modalityBridgeVisionTab": "نظریہ",
"modalityBridgeAudioTab": "آڈیو",
@@ -8360,33 +8379,25 @@
"cliproxyapiHealth": "صحت",
"cliproxyapiPort": "پورٹ",
"qdrantHost": "میزبان",
- "qdrantCollection": "اجتماع",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "اجتماع"
},
"contextRtk": {
- "title": "RTK Engine",
- "description": "Command-aware compression for tool output, terminal logs and build results.",
- "enabled": "Enabled",
- "intensity": "Intensity",
- "intensityMinimal": "Minimal",
- "intensityStandard": "Standard",
- "intensityAggressive": "Aggressive",
- "toolResults": "Tool results",
- "assistantMessages": "Assistant messages",
- "codeBlocks": "Code blocks",
+ "title": "RTK انجن",
+ "description": "ٹول آؤٹ پٹ، ٹرمینل لاگز اور بلڈ کے نتائج کے لیے کمانڈ سے آگاہ کمپریشن۔",
+ "enabled": "فعال",
+ "intensity": "شدت",
+ "intensityMinimal": "کم سے کم",
+ "intensityStandard": "معیاری",
+ "intensityAggressive": "جارحانہ",
+ "toolResults": "ٹول کے نتائج",
+ "assistantMessages": "اسسٹنٹ کے پیغامات",
+ "codeBlocks": "کوڈ بلاکس",
"filterCatalog": "فلٹر کیٹلاگ",
"filterCatalogDesc": "زمرہ کے لحاظ سے دستیاب آؤٹ پٹ فلٹرز",
"guidedConfig": "کنفیگریشن",
"guidedConfigDesc": "ایڈجسٹ کریں کہ کس طرح RTK آپ کے ٹرمینل آؤٹ پٹ کو فلٹر کرتا ہے۔",
- "maxLines": "Max lines",
- "maxChars": "Max chars",
+ "maxLines": "زیادہ سے زیادہ سطریں",
+ "maxChars": "زیادہ سے زیادہ حروف",
"deduplicateThreshold": "ڈپلیکیٹ حد",
"customFilters": "حسب ضرورت فلٹرز",
"detectedType": "دریافت شدہ قسم",
@@ -8398,22 +8409,22 @@
"rawOutputFailures": "ناکامیاں",
"rawOutputAlways": "ہمیشہ",
"rawOutputMaxBytes": "خام آؤٹ پٹ زیادہ سے زیادہ بائٹس",
- "filterTesting": "Filter Testing",
- "pasteOutput": "Paste tool output to test filtering...",
+ "filterTesting": "فلٹر کی جانچ",
+ "pasteOutput": "فلٹرنگ کی جانچ کے لیے ٹول آؤٹ پٹ یہاں پیسٹ کریں...",
"presetHigh": "جارحانہ",
"presetLow": "روشنی",
"presetMaxChars": "زیادہ سے زیادہ آؤٹ پٹ حروف",
"presetMaxLines": "زیادہ سے زیادہ آؤٹ پٹ لائنز",
"presetMedium": "معیاری",
- "run": "Run",
- "result": "Result",
- "previewEmpty": "Run a sample to preview RTK output.",
- "detected": "Detected",
+ "run": "چلائیں",
+ "result": "نتیجہ",
+ "previewEmpty": "RTK آؤٹ پٹ کا پیش منظر دیکھنے کے لیے ایک نمونہ چلائیں۔",
+ "detected": "شناخت شدہ",
"masterSwitchOffAlert": "Token Saver کا ماسٹر سوئچ بند ہے — جب تک آپ اسے Endpoint صفحہ سے آن نہیں کرتے، یہ ترتیبات درخواستوں پر اثر انداز نہیں ہوں گی۔",
- "tokensFiltered": "Tokens filtered",
- "filtersActive": "Filters active",
- "requests": "Requests",
- "avgSavings": "Avg savings",
+ "tokensFiltered": "فلٹر کیے گئے ٹوکنز",
+ "filtersActive": "فعال فلٹرز",
+ "requests": "درخواستیں",
+ "avgSavings": "اوسط بچت",
"simpleMode": "سادہ",
"advancedMode": "اعلی درجے کی",
"searchFilters": "فلٹرز تلاش کریں...",
@@ -8495,7 +8506,7 @@
"description": "واضح رو-کاؤنٹ مارکرز کے ساتھ ہم جنس JSON ارییز کا لوس لیس ٹیبلر کمپیکشن۔"
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "سیشن ڈی ڈپلیکیشن",
"description": "ریکوری کے قابل مواد کے مارکرز کے ساتھ کراس ٹرن بلاک ڈی ڈوپلی کیشن۔"
},
"ccr": {
@@ -8613,26 +8624,26 @@
}
},
"contextCombos": {
- "title": "Compression Combos",
- "description": "Define how engines are combined for different routing scenarios.",
- "createCombo": "Create Compression Combo",
- "editCombo": "Edit",
- "deleteCombo": "Delete",
- "deleteConfirm": "Delete this compression combo?",
- "pipeline": "Pipeline",
- "addStep": "Add Step",
- "removeStep": "Remove",
- "name": "Name",
- "descriptionField": "Description",
- "languagePacks": "Language Packs",
- "outputMode": "Output Mode",
- "assignToRouting": "Assign to Routing Combos",
- "noAssignments": "No routing combos available",
- "default": "Default",
- "setAsDefault": "Set as Default",
- "save": "Save",
- "cancel": "Cancel",
- "enabled": "Enabled",
+ "title": "کمپریشن کے مجموعے",
+ "description": "مختلف روٹنگ منظرناموں کے لیے انجنوں کو یکجا کرنے کا طریقہ متعین کریں۔",
+ "createCombo": "کمپریشن کا مجموعہ بنائیں",
+ "editCombo": "ترمیم کریں",
+ "deleteCombo": "حذف کریں",
+ "deleteConfirm": "کیا یہ کمپریشن مجموعہ حذف کرنا ہے؟",
+ "pipeline": "پائپ لائن",
+ "addStep": "مرحلہ شامل کریں",
+ "removeStep": "ہٹائیں",
+ "name": "نام",
+ "descriptionField": "تفصیل",
+ "languagePacks": "لینگویج پیکس",
+ "outputMode": "آؤٹ پٹ موڈ",
+ "assignToRouting": "روٹنگ کے مجموعوں کو تفویض کریں",
+ "noAssignments": "کوئی روٹنگ مجموعہ دستیاب نہیں",
+ "default": "طے شدہ",
+ "setAsDefault": "بطور ڈیفالٹ سیٹ کریں",
+ "save": "محفوظ کریں",
+ "cancel": "منسوخ کریں",
+ "enabled": "فعال",
"loading": "لوڈ ہو رہا ہے…",
"hubTitle": "کمپریشن ہب",
"hubDescription": "منتخب کریں کہ کون سا کمپریشن پروفائل عالمی سطح پر چلے گا۔",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "فی الحال صرف Claude (Anthropic) کے لیے دستیاب ہے۔ یہ ایک سپرد کردہ موڈ ہے: فراہم کنندہ سرور کی طرف پرانے ٹول کے استعمال کے بلاکس کو صاف کرتا ہے — ہم پیغام کو دوبارہ نہیں لکھتے ہیں۔ یہ دوسرے فراہم کنندگان کو متاثر نہیں کرتا ہے۔",
"namedCombos": "نامزد کمبوز",
"namedCombosDescription": "مختلف پائپ لائنز کو محفوظ کریں اور انہیں مخصوص روٹنگ کمبوز کے لیے تفویض کریں۔",
+ "activeProfileMasterSwitchOffWarning": "ذیل کا فعال پروفائل اس وقت تک نہیں چلے گا جب تک مرکزی \"Prompt Compression\" سوئچ آن نہ کیا جائے۔",
+ "activeProfileMasterSwitchOffCta": "اسے Settings میں آن کریں",
"comboNamePlaceholder": "کمبو کا نام",
"descriptionPlaceholder": "تفصیل",
"nameRequired": "محفوظ کرنے سے پہلے کمبو کا نام درج کریں۔",
@@ -8670,9 +8683,7 @@
"languagePacksList": "زبان کے پیک: {packs}",
"dragToReorder": "مرحلے کو دوبارہ ترتیب دینے کے لیے گھسیٹیں",
"engine": "انجن",
- "intensity": "شدت",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "شدت"
},
"compressionStudio": {
"noRun": "کوئی کمپریشن رن دستیاب نہیں ہے۔",
@@ -8701,7 +8712,7 @@
"run": "چلائیں",
"laneRejected": "مسترد شدہ: {reason}",
"error": "خرابی",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "مشترکہ پائپ لائن کے پیش منظر میں ناکامی: {reason}",
"combinedFlow": "مشترکہ بہاؤ",
"eachLayer": "ہر تہہ الگ سے",
"diff": "فرق",
@@ -8710,7 +8721,7 @@
"input": "ان پٹ",
"output": "آؤٹ پٹ",
"tokenCount": "{count, number} ٹوکنز",
- "tokenShort": "tok",
+ "tokenShort": "ٹوکن",
"provider": "فراہم کنندہ",
"judgeModel": "جج ماڈل",
"judgeModelPlaceholder": "مثلاً claude-haiku",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "انجن فعال کریں",
"enableDescription": "اسٹیک میں سب سے آخر میں چلتا ہے (RTK/Caveman کے متن صاف کرنے کے بعد، OmniGlyph باقی ماندہ کو تصاویر میں تبدیل کرتا ہے) اور omniglyph موڈ کے ذریعے اسٹینڈ الون بھی چلتا ہے۔ یہ ایک پیش نظارہ ہے اور اینڈ ٹو اینڈ توثیق مکمل ہونے تک ڈیفالٹ طور پر بند رہتا ہے۔",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "کمپریشن پروفائل",
+ "profileDescription": "پروفائل بالائی حد ہے، زیریں حد نہیں: زیادہ سخت پروفائل کو فی مرحلہ اوور رائیڈ کے ذریعے دوبارہ نرم نہیں کیا جا سکتا۔ اس کوڈ بیس پر پیمائش کے مطابق: coding-safe یا balanced کے ساتھ، ایسا سیشن جس میں ابھی ہسٹری جمع نہیں ہوئی، کچھ بھی کمپریس نہیں کرتا، کیونکہ دونوں کم از کم حروف کی حد بڑھاتے ہیں اور سسٹم پرامپٹ، ٹول اسکیماؤں اور ٹول نتائج کو اصل حالت میں رکھتے ہیں۔",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "جارحانہ (ڈیفالٹ)",
+ "description": "وہ پالیسی جس کی شائع شدہ رسیدوں نے پیمائش کی۔ سسٹم پرامپٹ، ٹول دستاویزات اور گہری ہسٹری کو تصویری شکل دیتی ہے۔"
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "متوازن",
+ "description": "لائیو حالت کو اصل حالت میں رکھتا ہے اور آخری 8 باریوں کو محفوظ رکھتا ہے؛ صرف پرانی مکمل شدہ ہسٹری کو سمیٹتا ہے۔"
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "کوڈنگ کے لیے محفوظ",
+ "description": "اختیارات، ٹول اسکیماؤں اور لائیو ٹول آؤٹ پٹ کو اصل حالت میں رکھتے ہوئے آخری 12 باریوں کو محفوظ رکھتا ہے۔ جب تک سیشن میں ہسٹری جمع نہ ہو، کچھ بھی کمپریس نہیں کرتا۔"
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "بلا تبدیلی منتقلی",
+ "description": "بغیر تبدیلی کے روٹ کرتا ہے۔ انجن کو چھوڑ دیا جاتا ہے اور درخواست کو بغیر چھیڑے آگے بھیج دیا جاتا ہے۔"
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "OmniGlyph کمپریشن پروفائل منتخب کریں",
"saved": "محفوظ ہو گیا۔",
"saveFailed": "محفوظ نہیں ہو سکا۔",
"enableAria": "OmniGlyph انجن فعال کریں",
@@ -8881,7 +8892,7 @@
"fallbackRouting": "فال بیک روٹنگ",
"fallbackRoutingDescription": "CLIProxyAPI کے ذریعے فراہم کنندہ کی ناکام درخواستوں کو دوبارہ آزمائیں",
"enableFallback": "فال بیک فعال کریں",
- "cliproxyUrl": "CLIProxyAPI URL",
+ "cliproxyUrl": "CLIProxyAPI یو آر ایل",
"fallbackCodes": "فال بیک اسٹیٹس کوڈز (کوما سے الگ کردہ)",
"invalidUrl": "غلط URL — http:// یا https:// سے شروع ہونا ضروری ہے",
"saved": "محفوظ ہو گیا",
@@ -8898,37 +8909,37 @@
},
"contextCaveman": {
"title": "Caveman Engine",
- "description": "Rule-based message compression, language packs, analytics and output mode controls.",
+ "description": "اصولوں پر مبنی پیغام کمپریشن، لینگویج پیکس، تجزیات اور آؤٹ پٹ موڈ کے کنٹرولز۔",
"advancedConfig": "اعلی درجے کی ترتیب",
"advancedConfigDesc": "ٹھیک ٹیون کمپریشن سلوک",
"aggressiveSettings": "جارحانہ ترتیبات",
"aggressiveSettingsDesc": "ممکنہ کوالٹی ٹریڈ آف کے ساتھ زیادہ سے زیادہ کمپریشن",
- "requests": "Requests",
- "tokensSaved": "Tokens saved",
- "savingsPercent": "Savings %",
- "avgLatency": "Avg latency",
- "languagePacks": "Language Packs",
- "languagePacksDesc": "Enable compression rules for specific languages.",
+ "requests": "درخواستیں",
+ "tokensSaved": "بچائے گئے ٹوکنز",
+ "savingsPercent": "بچت %",
+ "avgLatency": "اوسط تاخیر",
+ "languagePacks": "لینگویج پیکس",
+ "languagePacksDesc": "مخصوص زبانوں کے لیے کمپریشن کے اصول فعال کریں۔",
"labelAutoTrigger": "سیاق و سباق سے زیادہ ہونے پر آٹو کمپریس کریں۔",
"labelCompressionRate": "کمپریشن طاقت",
"labelMaxTokens": "ہدف ٹوکن فی پیغام",
"labelMinLength": "پیغام کی کم از کم لمبائی",
"labelMinSavings": "بچانے کے لیے کم از کم ٹوکن",
- "enabled": "Enabled",
- "autoDetect": "Auto-detect language",
- "rulesCount": "{count} rules",
+ "enabled": "فعال",
+ "autoDetect": "زبان کا خودکار پتہ لگائیں",
+ "rulesCount": "{count} اصول",
"inputCompressionTitle": "ان پٹ کمپریشن",
"inputCompressionDesc": "چیٹ ہسٹری کو مختصر الفاظ کے ساتھ دوبارہ لکھیں۔ ان پٹ ٹوکنز میں تقریباً 50% کمی کرتا ہے۔",
- "analyticsTitle": "Compression Analytics",
- "noAnalytics": "No compression analytics yet.",
+ "analyticsTitle": "کمپریشن کے تجزیات",
+ "noAnalytics": "ابھی تک کمپریشن کے کوئی تجزیات موجود نہیں۔",
"masterDisabledWarning": "Token Saver کا ماسٹر سوئچ OFF ہے — یہ ترتیبات درخواستوں پر اس وقت تک اثر انداز نہیں ہوں گی جب تک آپ اسے Compression Settings سے آن نہ کریں یا یہاں تبدیل نہ کریں۔",
"outputMode": "آؤٹ پٹ موڈ",
"outputModeDesc": "Instructs the LLM to respond in a terse, compact format.",
- "outputModeTitle": "Output Mode",
+ "outputModeTitle": "آؤٹ پٹ موڈ",
"quickSettings": "فوری ترتیبات",
"quickSettingsDesc": "شروع کرنے کے لیے بنیادی کمپریشن کی ترتیبات",
- "autoClarity": "Auto-Clarity Bypass",
- "bypassConditions": "Bypass conditions",
+ "autoClarity": "خودکار وضاحت بائی پاس",
+ "bypassConditions": "بائی پاس کی شرائط",
"bypassConditionsList": "سیکورٹی، ناقابل واپسی، وضاحت، آرڈر حساس",
"simpleMode": "سادہ",
"advancedMode": "اعلی درجے کی",
@@ -8940,59 +8951,59 @@
"ultraSettings": "الٹرا سیٹنگز",
"ultraSettingsDesc": "SLM سے چلنے والا سیمنٹک کمپریشن",
"preview": {
- "lite": "Respond concise. Preserve technical terms, code, errors, URLs, and identifiers.",
- "full": "Respond terse and compact. Preserve all technical substance.",
- "ultra": "Respond ultra terse with common technical abbreviations. Preserve exact symbols."
+ "lite": "مختصر جواب دیں۔ تکنیکی اصطلاحات، کوڈ، خرابیوں، URLs اور شناخت کنندگان کو برقرار رکھیں۔",
+ "full": "انتہائی مختصر اور جامع جواب دیں۔ تمام تکنیکی مواد برقرار رکھیں۔",
+ "ultra": "عام تکنیکی مخففات کے ساتھ انتہائی مختصر جواب دیں۔ عین علامات برقرار رکھیں۔"
}
},
"translator": {
- "title": "Translator",
- "metaTitle": "Translator Playground | OmniRoute",
- "metaDescription": "Debug, test, and visualize API format translations between providers",
- "playgroundTitle": "Translator Playground",
- "playground": "Playground",
- "realtime": "Real-Time Translation Activity",
+ "title": "مترجم",
+ "metaTitle": "مترجم پلے گراؤنڈ | OmniRoute",
+ "metaDescription": "فراہم کنندگان کے درمیان API فارمیٹ کے تراجم کو ڈیبگ، ٹیسٹ اور بصری شکل میں دیکھیں",
+ "playgroundTitle": "مترجم پلے گراؤنڈ",
+ "playground": "پلے گراؤنڈ",
+ "realtime": "ریئل ٹائم ترجمے کی سرگرمی",
"chatTester": "Chat Tester",
- "testBench": "Test Bench",
- "liveMonitor": "Live Monitor",
- "modeDescriptionPlayground": "Paste any API request body and see how OmniRoute translates it between provider formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
- "modeDescriptionChatTester": "Send real chat requests through OmniRoute and inspect the full round-trip: input, translated request, provider response, and translated output.",
- "modeDescriptionTestBench": "Run predefined scenarios and compare compatibility across providers and models.",
- "modeDescriptionLiveMonitor": "Watch translation events in real time as requests flow through OmniRoute.",
- "modeDescriptionFallback": "Debug, test, and visualize how OmniRoute translates API requests between providers.",
- "recentTranslations": "Recent Translations",
- "noTranslations": "No translations yet",
- "source": "Source",
- "target": "Target",
- "time": "Time",
+ "testBench": "ٹیسٹ بینچ",
+ "liveMonitor": "لائیو مانیٹر",
+ "modeDescriptionPlayground": "کوئی بھی API درخواست باڈی پیسٹ کریں اور دیکھیں کہ OmniRoute اسے فراہم کنندگان کے فارمیٹس کے درمیان کیسے تبدیل کرتا ہے (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)",
+ "modeDescriptionChatTester": "OmniRoute کے ذریعے حقیقی چیٹ درخواستیں بھیجیں اور مکمل راؤنڈ ٹرپ کا جائزہ لیں: ان پٹ، ترجمہ شدہ درخواست، فراہم کنندہ کا جواب، اور ترجمہ شدہ آؤٹ پٹ۔",
+ "modeDescriptionTestBench": "پہلے سے طے شدہ منظرنامے چلائیں اور فراہم کنندگان اور ماڈلز کے درمیان مطابقت کا موازنہ کریں۔",
+ "modeDescriptionLiveMonitor": "جب درخواستیں OmniRoute سے گزریں تو ترجمے کے واقعات کو ریئل ٹائم میں دیکھیں۔",
+ "modeDescriptionFallback": "ڈیبگ، ٹیسٹ اور بصری شکل میں دیکھیں کہ OmniRoute فراہم کنندگان کے درمیان API درخواستوں کا ترجمہ کیسے کرتا ہے۔",
+ "recentTranslations": "حالیہ تراجم",
+ "noTranslations": "ابھی تک کوئی ترجمہ نہیں",
+ "source": "ماخذ",
+ "target": "ہدف",
+ "time": "وقت",
"model": "Model",
"status": "Status",
- "latency": "Latency",
- "totalTranslations": "Total Translations",
- "successful": "Successful",
- "errors": "Errors",
- "avgLatency": "Avg Latency",
+ "latency": "تاخیر",
+ "totalTranslations": "کل تراجم",
+ "successful": "کامیاب",
+ "errors": "خرابیاں",
+ "avgLatency": "اوسط تاخیر",
"millisecondsShort": "{value}ms",
"notAvailableSymbol": "—",
- "liveAutoRefreshing": "Live — Auto-refreshing",
- "paused": "Paused",
- "eventsAppearHint": "Translation events appear here as requests flow through OmniRoute. Use any of these methods to generate events:",
+ "liveAutoRefreshing": "لائیو — خودکار طور پر تازہ ہو رہا ہے",
+ "paused": "موقوف",
+ "eventsAppearHint": "جب درخواستیں OmniRoute سے گزرتی ہیں تو ترجمے کے واقعات یہاں ظاہر ہوتے ہیں۔ واقعات پیدا کرنے کے لیے ان میں سے کوئی بھی طریقہ استعمال کریں:",
"chatTesterTab": "Chat Tester",
"testBenchTab": "Test Bench",
- "externalApiCalls": "External API calls",
- "ideCliIntegrations": "IDE/CLI integrations",
- "inMemoryNote": "Note: Events are stored in-memory and reset when the server restarts.",
+ "externalApiCalls": "بیرونی API کالز",
+ "ideCliIntegrations": "IDE/CLI انضمامات",
+ "inMemoryNote": "نوٹ: واقعات اِن میموری محفوظ ہوتے ہیں اور سرور دوبارہ شروع ہونے پر ری سیٹ ہو جاتے ہیں۔",
"ok": "OK",
"errorShort": "ERR",
- "formatConverter": "Format Converter",
- "formatConverterDescription": "Paste or type a JSON request body. The translator will auto-detect the source format and convert it to the target format. Use this to debug how OmniRoute translates requests between formats (OpenAI ↔ Claude ↔ Gemini ↔ Responses API).",
+ "formatConverter": "فارمیٹ کنورٹر",
+ "formatConverterDescription": "JSON درخواست باڈی پیسٹ یا ٹائپ کریں۔ مترجم خودکار طور پر ماخذ فارمیٹ کا پتہ لگائے گا اور اسے ہدف فارمیٹ میں تبدیل کرے گا۔ یہ جانچنے کے لیے اسے استعمال کریں کہ OmniRoute درخواستوں کو فارمیٹس کے درمیان کیسے تبدیل کرتا ہے (OpenAI ↔ Claude ↔ Gemini ↔ Responses API)۔",
"translationPathHubSpoke": "{source} → OpenAI (انٹرمیڈیٹ) → {target}",
"translationPathDirect": "{source} → {target} (براہ راست مترجم)",
"translationPathPassthrough": "ایک ہی شکل — ترجمہ کی ضرورت نہیں۔",
"openaiIntermediatePanel": "اوپن اے آئی انٹرمیڈیٹ",
"autoFeaturesTitle": "OmniRoute خود بخود کیا کرتا ہے۔",
"autoFeaturesCount": "8 خصوصیات",
- "featureReasoningCache": "Reasoning Cache",
+ "featureReasoningCache": "ریزننگ کیش",
"featureReasoningCacheDesc": "سوچنے کے موڈ ماڈلز (DeepSeek V4, Kimi K2, Qwen) کے لیے کیش شدہ استدلال_مواد کو دوبارہ انجیکٹ کرتا ہے جب کلائنٹ اسے گفتگو کی سرگزشت سے خارج کر دیتے ہیں۔",
"featureSchemaCoercion": "سکیما جبر",
"featureSchemaCoercionDesc": "ٹوٹے ہوئے ٹول اسکیموں کو ٹھیک کرتا ہے: اضافی پراپرٹیز غائب کرتا ہے، لمبی تفصیل کو صاف کرتا ہے، نیسٹڈ اشیاء کو معمول بناتا ہے۔",
@@ -9008,79 +9019,79 @@
"featureDirectPathsDesc": "کچھ فارمیٹ جوڑے (کلاڈ → جیمنی) میں براہ راست مترجم ہوتے ہیں جو OpenAI مرکز کو نظرانداز کرتے ہوئے زیادہ درست پیداوار پیدا کرتے ہیں۔",
"featureImageMapping": "امیج سائز میپنگ",
"featureImageMappingDesc": "API فارمیٹس کے درمیان امیج ڈائمینشن کنونشنز کا ترجمہ کرتا ہے (جیسے OpenAI ڈیٹیل لیولز → Gemini dimensions)۔",
- "input": "Input",
- "output": "Output",
+ "input": "ان پٹ",
+ "output": "آؤٹ پٹ",
"auto": "Auto",
- "swapFormats": "Swap formats",
- "translateAction": "Translate",
- "clear": "Clear",
- "inputPlaceholder": "Paste a request body here or select a template below...",
- "exampleTemplates": "Example Templates",
- "exampleTemplatesHint": "— Click to load",
- "templateLoadHint": "Template loads the request in {format} format. Change Source Format to load in a different format.",
- "compatibilityTester": "Compatibility Tester",
- "compatibilityReport": "Compatibility Report",
- "testBenchDescription": "Run predefined scenarios (Simple Chat, Tool Calling, etc.) to verify translation and provider compatibility. Select a source format and target provider, then run all tests to see a compatibility percentage. Use this to find which features work across providers.",
- "targetProvider": "Target Provider",
- "runAllTests": "Run All Tests",
- "runTest": "Run Test",
- "reRun": "Re-run",
- "running": "Running...",
- "passed": "passed",
- "failed": "failed",
- "passedIconLabel": "✅ Passed",
- "chunks": "chunks",
- "scenarioSimpleChat": "Simple Chat",
- "scenarioToolCalling": "Tool Calling",
- "scenarioMultiTurn": "Multi-turn",
+ "swapFormats": "فارمیٹس تبدیل کریں",
+ "translateAction": "ترجمہ کریں",
+ "clear": "صاف کریں",
+ "inputPlaceholder": "یہاں درخواست باڈی پیسٹ کریں یا ذیل میں کوئی ٹیمپلیٹ منتخب کریں...",
+ "exampleTemplates": "مثالی ٹیمپلیٹس",
+ "exampleTemplatesHint": "— لوڈ کرنے کے لیے کلک کریں",
+ "templateLoadHint": "ٹیمپلیٹ درخواست کو {format} فارمیٹ میں لوڈ کرتا ہے۔ کسی مختلف فارمیٹ میں لوڈ کرنے کے لیے ماخذ فارمیٹ تبدیل کریں۔",
+ "compatibilityTester": "مطابقت جانچنے والا",
+ "compatibilityReport": "مطابقت کی رپورٹ",
+ "testBenchDescription": "ترجمے اور فراہم کنندہ کی مطابقت کی تصدیق کے لیے پہلے سے طے شدہ منظرنامے (سادہ چیٹ، ٹول کالنگ وغیرہ) چلائیں۔ ماخذ فارمیٹ اور ہدف فراہم کنندہ منتخب کریں، پھر مطابقت کا فیصد دیکھنے کے لیے تمام ٹیسٹ چلائیں۔ اس سے معلوم کریں کہ کون سی خصوصیات مختلف فراہم کنندگان کے ساتھ کام کرتی ہیں۔",
+ "targetProvider": "ہدف فراہم کنندہ",
+ "runAllTests": "تمام ٹیسٹ چلائیں",
+ "runTest": "ٹیسٹ چلائیں",
+ "reRun": "دوبارہ چلائیں",
+ "running": "چل رہا ہے...",
+ "passed": "کامیاب",
+ "failed": "ناکام",
+ "passedIconLabel": "✅ کامیاب",
+ "chunks": "حصے",
+ "scenarioSimpleChat": "سادہ چیٹ",
+ "scenarioToolCalling": "ٹول کالنگ",
+ "scenarioMultiTurn": "کثیر مرحلہ",
"scenarioThinking": "Thinking",
- "scenarioSystemPrompt": "System Prompt",
- "scenarioStreaming": "Streaming",
+ "scenarioSystemPrompt": "سسٹم پرامپٹ",
+ "scenarioStreaming": "اسٹریمنگ",
"templateNames": {
- "simple-chat": "Simple Chat",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "سادہ چیٹ",
+ "tool-calling": "ٹول کالنگ",
+ "multi-turn": "کثیر مرحلہ",
"thinking": "Thinking",
- "system-prompt": "System Prompt",
- "streaming": "Streaming",
+ "system-prompt": "سسٹم پرامپٹ",
+ "streaming": "اسٹریمنگ",
"vision": "وژن",
"schema-coercion": "سکیما جبر"
},
"templateDescriptions": {
- "simple-chat": "Basic text message",
- "tool-calling": "Function/tool invocation",
- "multi-turn": "Conversation with history",
- "thinking": "Extended thinking / reasoning",
- "system-prompt": "Complex system instructions",
- "streaming": "SSE streaming request",
+ "simple-chat": "بنیادی متنی پیغام",
+ "tool-calling": "فنکشن/ٹول کا استعمال",
+ "multi-turn": "سابقہ گفتگو کے ساتھ بات چیت",
+ "thinking": "تفصیلی سوچ بچار / استدلال",
+ "system-prompt": "پیچیدہ سسٹم ہدایات",
+ "streaming": "SSE اسٹریمنگ درخواست",
"vision": "امیج ان پٹ کے ساتھ ملٹی موڈل درخواست",
"schema-coercion": "سٹرکچرڈ آؤٹ پٹ / JSON اسکیما انفورسمنٹ"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful assistant.",
- "userGreeting": "Hello! How are you today?"
+ "system": "آپ ایک مددگار معاون ہیں۔",
+ "userGreeting": "ہیلو! آج آپ کیسے ہیں؟"
},
"toolCalling": {
- "userWeather": "What's the weather in São Paulo?",
- "toolDescription": "Get current weather for a location",
- "cityNameDescription": "City name"
+ "userWeather": "São Paulo میں موسم کیسا ہے؟",
+ "toolDescription": "کسی مقام کا موجودہ موسم معلوم کریں",
+ "cityNameDescription": "شہر کا نام"
},
"multiTurn": {
- "system": "You are a coding assistant.",
- "userInitial": "Write a function to sort an array in Python.",
- "assistantExample": "Here's a simple sort function: ```python\ndef sort_array(arr): return sorted(arr)\n```",
- "userFollowUp": "Now make it sort in descending order."
+ "system": "آپ ایک کوڈنگ معاون ہیں۔",
+ "userInitial": "Python میں ایک array کو ترتیب دینے کے لیے function لکھیں۔",
+ "assistantExample": "یہ ایک سادہ sort function ہے: ```python\ndef sort_array(arr): return sorted(arr)\n```",
+ "userFollowUp": "اب اسے نزولی ترتیب میں sort کریں۔"
},
"thinking": {
- "question": "What is the sum of the first 100 prime numbers?"
+ "question": "پہلے 100 مفرد اعداد کا مجموعہ کیا ہے؟"
},
"systemPrompt": {
- "systemInstruction": "You are a senior software engineer specializing in distributed systems. Answer questions concisely using industry best practices. Always provide code examples when relevant. Format your responses using markdown.",
- "question": "How do I implement a circuit breaker pattern?"
+ "systemInstruction": "آپ تقسیم شدہ نظاموں میں مہارت رکھنے والے ایک سینئر سافٹ ویئر انجینئر ہیں۔ سوالات کے جواب صنعتی بہترین طریقوں کے مطابق مختصر انداز میں دیں۔ متعلقہ صورت میں ہمیشہ کوڈ کی مثالیں فراہم کریں۔ اپنے جوابات کو markdown کے ذریعے فارمیٹ کریں۔",
+ "question": "میں سرکٹ بریکر پیٹرن کیسے نافذ کروں؟"
},
"streaming": {
- "prompt": "Tell me a short story about a robot learning to paint."
+ "prompt": "مجھے پینٹنگ سیکھنے والے ایک روبوٹ کے بارے میں مختصر کہانی سنائیں۔"
},
"vision": {
"system": "آپ ایک اسسٹنٹ ہیں جو تصویروں کو درست طریقے سے بیان کرتا ہے۔",
@@ -9093,12 +9104,12 @@
"cityDescription": "استفسار کرنے کے لیے شہر، جیسے 'ٹوکیو' یا 'نیو یارک'۔"
}
},
- "openaiCompatibleLabel": "OpenAI Compatible",
- "anthropicCompatibleLabel": "Anthropic Compatible",
- "noTemplateForFormat": "No template for this format",
- "translationFailed": "Translation failed: {error}",
- "pipelineDebugger": "Pipeline Debugger",
- "translationPipeline": "Translation Pipeline",
+ "openaiCompatibleLabel": "OpenAI سے ہم آہنگ",
+ "anthropicCompatibleLabel": "Anthropic سے ہم آہنگ",
+ "noTemplateForFormat": "اس فارمیٹ کے لیے کوئی ٹیمپلیٹ نہیں ہے",
+ "translationFailed": "ترجمہ ناکام ہوگیا: {error}",
+ "pipelineDebugger": "پائپ لائن ڈیبگر",
+ "translationPipeline": "ترجمہ پائپ لائن",
"loading": "لوڈ ہو رہا ہے…",
"compressionOriginal": "اصل",
"compressionCompressed": "کمپریس شدہ",
@@ -9107,44 +9118,44 @@
"pipelineStepsAria": "پائپ لائن کے مراحل",
"copyIntermediateJson": "درمیانی JSON کاپی کریں",
"copyOutputJson": "آؤٹ پٹ JSON کاپی کریں",
- "pipelineVisualization": "Pipeline visualization",
- "pipelineVisualizationHint": "Send a message to see how your request flows through detection → translation → provider call.",
- "chatTesterDescription": "Send messages as a specific client format and inspect each step of the translation pipeline.",
- "chatTesterFlow": "Client Request → Format Detection → OpenAI Intermediate → Provider Format → Response",
- "clickStepToInspect": "Click any step to inspect the data at that stage.",
- "clientFormat": "Client Format",
- "provider": "Provider",
- "modelPlaceholder": "Select or type a model name...",
- "sendMessageToSeePipeline": "Send a message to see the translation pipeline",
- "chatMessageHintPrefix": "Your message will be formatted as a",
- "chatMessageHintSuffix": "request, translated through the pipeline, and sent to the selected provider.",
- "youWithFormat": "You ({format})",
- "assistant": "Assistant",
- "typeMessage": "Type a message...",
- "send": "Send",
- "clientRequest": "Client Request",
- "clientRequestDescription": "The request body as your client would send it",
- "formatDetected": "Format Detected",
- "formatDetectedDescription": "OmniRoute auto-detects the API format from the request structure",
- "openaiIntermediate": "OpenAI Intermediate",
- "openaiIntermediateDescription": "All formats are first normalized to OpenAI format (the universal bridge)",
- "providerFormat": "Provider Format",
- "providerFormatDescription": "OpenAI format is translated to the provider's native format",
- "providerResponse": "Provider Response",
- "providerResponseRawDescription": "The raw response from the provider API",
- "providerResponseSseDescription": "The raw SSE stream from the provider API",
- "unexpectedError": "An unexpected error occurred",
- "error": "Error",
- "errorMessage": "Error: {message}",
- "requestFailed": "Request failed",
- "noTextExtracted": "(No text extracted)",
+ "pipelineVisualization": "پائپ لائن کی بصری نمائندگی",
+ "pipelineVisualizationHint": "یہ دیکھنے کے لیے پیغام بھیجیں کہ آپ کی درخواست شناخت → ترجمہ → فراہم کنندہ کی کال کے مراحل سے کیسے گزرتی ہے۔",
+ "chatTesterDescription": "کسی مخصوص کلائنٹ فارمیٹ میں پیغامات بھیجیں اور ترجمہ پائپ لائن کے ہر مرحلے کا معائنہ کریں۔",
+ "chatTesterFlow": "کلائنٹ کی درخواست → فارمیٹ کی شناخت → OpenAI انٹرمیڈیٹ → فراہم کنندہ کا فارمیٹ → جواب",
+ "clickStepToInspect": "اس مرحلے کے ڈیٹا کا معائنہ کرنے کے لیے کسی بھی مرحلے پر کلک کریں۔",
+ "clientFormat": "کلائنٹ فارمیٹ",
+ "provider": "فراہم کنندہ",
+ "modelPlaceholder": "ماڈل کا نام منتخب کریں یا ٹائپ کریں...",
+ "sendMessageToSeePipeline": "ترجمہ پائپ لائن دیکھنے کے لیے پیغام بھیجیں",
+ "chatMessageHintPrefix": "آپ کا پیغام اس طرح فارمیٹ کیا جائے گا:",
+ "chatMessageHintSuffix": "درخواست، جس کا پائپ لائن کے ذریعے ترجمہ کرکے اسے منتخب فراہم کنندہ کو بھیجا جائے گا۔",
+ "youWithFormat": "آپ ({format})",
+ "assistant": "معاون",
+ "typeMessage": "پیغام ٹائپ کریں...",
+ "send": "بھیجیں",
+ "clientRequest": "کلائنٹ کی درخواست",
+ "clientRequestDescription": "درخواست کا متن، جیسا آپ کا کلائنٹ اسے بھیجے گا",
+ "formatDetected": "شناخت شدہ فارمیٹ",
+ "formatDetectedDescription": "OmniRoute درخواست کی ساخت سے API فارمیٹ کی خودکار طور پر شناخت کرتا ہے",
+ "openaiIntermediate": "OpenAI انٹرمیڈیٹ",
+ "openaiIntermediateDescription": "تمام فارمیٹس کو پہلے OpenAI فارمیٹ (عالمگیر رابطے) میں معمول پر لایا جاتا ہے",
+ "providerFormat": "فراہم کنندہ کا فارمیٹ",
+ "providerFormatDescription": "OpenAI فارمیٹ کا ترجمہ فراہم کنندہ کے مقامی فارمیٹ میں کیا جاتا ہے",
+ "providerResponse": "فراہم کنندہ کا جواب",
+ "providerResponseRawDescription": "فراہم کنندہ API کا خام جواب",
+ "providerResponseSseDescription": "فراہم کنندہ API کی خام SSE اسٹریم",
+ "unexpectedError": "ایک غیر متوقع خرابی پیش آگئی",
+ "error": "خرابی",
+ "errorMessage": "خرابی: {message}",
+ "requestFailed": "درخواست ناکام ہوگئی",
+ "noTextExtracted": "(کوئی متن اخذ نہیں کیا گیا)",
"liveMonitorMemoryNote": "واقعات میموری میں محفوظ ہوتے ہیں اور دوبارہ شروع ہونے پر کھو جاتے ہیں۔",
"liveMonitorMemoryCapNote": "زیادہ سے زیادہ 200 ایونٹس برقرار ہیں۔",
"eventSourcesLabel": "واقعہ کے ذرائع:",
"eventSourceTranslatorPage": "• مترجم صفحہ (چیٹ ٹیسٹر، ٹیسٹ بینچ)",
"eventSourceMainPipeline": "• مین درخواست پائپ لائن (CLI/IDE/API ٹریفک)",
- "liveMonitorDescriptionPrefix": "Shows translation events as API calls flow through OmniRoute. Events come from the in-memory buffer (resets on restart). Use",
- "liveMonitorDescriptionSuffix": ", or external API calls to generate events.",
+ "liveMonitorDescriptionPrefix": "OmniRoute سے API کالز کے گزرنے کے دوران ترجمے کے واقعات دکھاتا ہے۔ واقعات اِن میموری بفر سے آتے ہیں (دوبارہ شروع کرنے پر ری سیٹ ہو جاتا ہے)۔ استعمال کریں",
+ "liveMonitorDescriptionSuffix": "، یا واقعات تخلیق کرنے کے لیے بیرونی API کالز استعمال کریں۔",
"streamTransformer": "سٹریم ٹرانسفارمر",
"modeDescriptionStreamTransformer": "رسپانس ٹرانسفارمر کے ذریعے چیٹ کی تکمیل SSE اسٹریمز کو چلائیں۔",
"streamTransformerTitle": "جوابات سٹریم ٹرانسفارمر",
@@ -9177,7 +9188,7 @@
"conceptHeadline": "آپ کی ایپ ایک API کی \"زبان\" بولتی ہے۔ مترجم اسے دوسرے فراہم کنندہ کو استعمال کرنے کے لیے تبدیل کرتا ہے۔",
"conceptDiagramAppLabel": "آپ کی ایپ",
"conceptDiagramSourceLabel": "ماخذ فارمیٹ",
- "conceptDiagramHubLabel": "OpenAI (hub)",
+ "conceptDiagramHubLabel": "OpenAI (مرکز)",
"conceptDiagramTargetLabel": "ہدف فراہم کنندہ",
"conceptDiagramExampleApp": "مثلاً Anthropic SDK",
"conceptDiagramExampleSource": "claude",
@@ -9215,7 +9226,7 @@
"advancedRawJsonSubtitle": "ایک JSON درخواست پیسٹ کریں؛ فارمیٹ کا خود بخود پتہ چل جاتا ہے۔",
"advancedPipelineTitle": "OpenAI درمیانی پائپ لائن",
"advancedPipelineSubtitle": "ترجمے کے ہر مرحلے کا بصری جائزہ لیں (hub-and-spoke)۔",
- "advancedStreamTransformTitle": "Stream Transformer (Chat → Responses SSE)",
+ "advancedStreamTransformTitle": "اسٹریم ٹرانسفارمر (چیٹ → Responses SSE)",
"advancedStreamTransformSubtitle": "Chat Completions SSE کو Responses API میں تبدیل کرتا ہے۔",
"advancedTestBenchTitle": "ٹیسٹ بینچ (8 منظرنامے)",
"advancedTestBenchSubtitle": "تمام منظرناموں کو چلاتا ہے اور پاس/فیل + مطابقت کا % رپورٹ کرتا ہے۔",
@@ -9255,7 +9266,7 @@
"streamTransformFailed": "اسٹریم کو تبدیل کرنے میں ناکامی"
},
"usage": {
- "title": "Usage",
+ "title": "استعمال",
"grokExtraUsageCredits": "اضافی استعمال کے کریڈٹس",
"grokAutoTopUp": "خودکار ٹاپ اپ",
"grokAutoTopUpUnavailable": "دستیاب نہیں",
@@ -9273,66 +9284,66 @@
"kiloPassRemaining": "باقی",
"kiloPassRenews": "{count} دنوں میں تجدید ہوگی",
"kiloPassUsageLabel": "اس مہینے کا استعمال",
- "kimiExtraUsageCredits": "Extra Usage Credits",
- "kimiExtraUsage": "Extra Usage",
- "kimiExtraUsageEnabled": "Enabled",
- "kimiExtraUsageDisabled": "Disabled",
- "kimiExtraUsageFrozen": "Frozen",
- "kimiExtraUsageUnavailable": "Unavailable",
- "kimiMonthlyUsed": "Used this month",
- "kimiMonthlyLimit": "Monthly limit",
- "kimiMonthlyLimitUnlimited": "Unlimited",
- "kimiAdditionalCredits": "Additional Credits",
- "loggerTab": "Logger",
+ "kimiExtraUsageCredits": "اضافی استعمال کے کریڈٹس",
+ "kimiExtraUsage": "اضافی استعمال",
+ "kimiExtraUsageEnabled": "فعال",
+ "kimiExtraUsageDisabled": "غیر فعال",
+ "kimiExtraUsageFrozen": "منجمد",
+ "kimiExtraUsageUnavailable": "دستیاب نہیں",
+ "kimiMonthlyUsed": "اس ماہ استعمال شدہ",
+ "kimiMonthlyLimit": "ماہانہ حد",
+ "kimiMonthlyLimitUnlimited": "لامحدود",
+ "kimiAdditionalCredits": "اضافی کریڈٹس",
+ "loggerTab": "لاگر",
"proxyTab": "Proxy",
- "budgetManagement": "Budget Management",
- "budgetSaved": "Budget limits saved",
- "budgetSaveFailed": "Failed to save budget",
- "loadingBudgetData": "Loading budget data...",
- "noApiKeysTitle": "No API Keys",
- "noApiKeysDescription": "Add API keys first to set up budget limits.",
- "apiKey": "API Key",
- "todaysSpend": "Today's Spend",
- "thisMonth": "This Month",
- "setLimits": "Set Limits",
- "dailyLimitUsd": "Daily Limit (USD)",
- "monthlyLimitUsd": "Monthly Limit (USD)",
- "warningThresholdPercent": "Warning Threshold (%)",
- "dailyLimitPlaceholder": "e.g. 5.00",
- "monthlyLimitPlaceholder": "e.g. 50.00",
+ "budgetManagement": "بجٹ کا انتظام",
+ "budgetSaved": "بجٹ کی حدود محفوظ کر دی گئیں",
+ "budgetSaveFailed": "بجٹ محفوظ کرنے میں ناکامی",
+ "loadingBudgetData": "بجٹ کا ڈیٹا لوڈ ہو رہا ہے...",
+ "noApiKeysTitle": "کوئی API کلید نہیں",
+ "noApiKeysDescription": "بجٹ کی حدود مقرر کرنے کے لیے پہلے API کلیدیں شامل کریں۔",
+ "apiKey": "API کلید",
+ "todaysSpend": "آج کے اخراجات",
+ "thisMonth": "اس ماہ",
+ "setLimits": "حدود مقرر کریں",
+ "dailyLimitUsd": "یومیہ حد (USD)",
+ "monthlyLimitUsd": "ماہانہ حد (USD)",
+ "warningThresholdPercent": "انتباہی حد (%)",
+ "dailyLimitPlaceholder": "مثلاً 5.00",
+ "monthlyLimitPlaceholder": "مثلاً 50.00",
"warningThresholdPlaceholder": "80",
- "saveLimits": "Save Limits",
- "budgetOk": "Budget OK — {remaining} remaining",
- "budgetExceeded": "Budget exceeded — requests may be blocked",
+ "saveLimits": "حدود محفوظ کریں",
+ "budgetOk": "بجٹ درست ہے — {remaining} باقی",
+ "budgetExceeded": "بجٹ کی حد سے تجاوز ہو گیا — درخواستیں بلاک ہو سکتی ہیں",
"totalRequests": "Total requests",
- "noDataYet": "No data yet",
- "latency": "Latency",
+ "noDataYet": "ابھی کوئی ڈیٹا نہیں",
+ "latency": "تاخیر",
"latencyP50": "p50",
"latencyP95": "p95",
"latencyP99": "p99",
- "promptCache": "Prompt Cache",
- "systemHealth": "System Health",
- "entries": "Entries",
- "activeCount": "{count} active",
- "openCircuitBreakersDetected": "Open circuit breakers detected",
- "hitRate": "Hit Rate",
- "hitsMisses": "Hits / Misses",
- "circuitBreakers": "Circuit Breakers",
- "lockedIPs": "Locked IPs",
- "lockoutsAutoRefreshHint": "Per-model rate limit locks • Auto-refresh 10s",
- "lockedCount": "{count, plural, one {# locked} other {# locked}}",
- "timeLeft": "{time} left",
- "howItWorks": "How It Works",
- "howItWorksSubtitle": "Learn how evaluations validate your LLM responses",
- "define": "Define",
- "defineStepDescription": "Create test cases with input prompts and expected output criteria using strategies like contains, regex, or exact match.",
- "run": "Run",
- "runStepDescription": "Execute test cases against your LLM endpoints through OmniRoute. Each case is sent as a real API request.",
- "evaluate": "Evaluate",
- "evaluateStepDescription": "Responses are compared against expected criteria. See pass/fail for each case with latency metrics and detailed feedback.",
+ "promptCache": "پرامپٹ کیش",
+ "systemHealth": "سسٹم کی صحت",
+ "entries": "اندراجات",
+ "activeCount": "{count} فعال",
+ "openCircuitBreakersDetected": "کھلے سرکٹ بریکرز کا پتہ چلا ہے",
+ "hitRate": "ہِٹ ریٹ",
+ "hitsMisses": "ہِٹس / مِسز",
+ "circuitBreakers": "سرکٹ بریکرز",
+ "lockedIPs": "مقفل IPs",
+ "lockoutsAutoRefreshHint": "فی ماڈل شرح کی حد کے لاکس • خودکار ریفریش 10s",
+ "lockedCount": "{count, plural, one {# مقفل} other {# مقفل}}",
+ "timeLeft": "{time} باقی",
+ "howItWorks": "یہ کیسے کام کرتا ہے",
+ "howItWorksSubtitle": "جانیں کہ جائزے آپ کے LLM جوابات کی توثیق کیسے کرتے ہیں",
+ "define": "تعریف کریں",
+ "defineStepDescription": "ان پٹ پرامپٹس اور متوقع آؤٹ پٹ کے معیارات کے ساتھ ٹیسٹ کیسز بنائیں، جن میں contains، regex، یا exact match جیسی حکمت عملیاں استعمال ہوں۔",
+ "run": "چلائیں",
+ "runStepDescription": "OmniRoute کے ذریعے اپنے LLM اینڈ پوائنٹس پر ٹیسٹ کیسز چلائیں۔ ہر کیس ایک حقیقی API درخواست کے طور پر بھیجا جاتا ہے۔",
+ "evaluate": "جائزہ لیں",
+ "evaluateStepDescription": "جوابات کا متوقع معیارات سے موازنہ کیا جاتا ہے۔ ہر کیس کے لیے تاخیر کے میٹرکس اور تفصیلی آراء کے ساتھ کامیابی/ناکامی دیکھیں۔",
"evalsStrategyContainsLabel": "شامل ہے",
"evalsStrategyExactLabel": "عین مطابقت",
- "evalsStrategyRegexLabel": "Regex",
+ "evalsStrategyRegexLabel": "ریجیکس",
"evalsStrategyCustomLabel": "کسٹم لاجک",
"evalsStrategyContainsDescription": "چیک کرتا ہے کہ آیا LLM آؤٹ پٹ میں متوقع سب اسٹرنگ شامل ہے۔",
"evalsStrategyExactDescription": "چیک کرتا ہے کہ آیا LLM آؤٹ پٹ متوقع قدر سے بالکل مطابقت رکھتا ہے۔",
@@ -9343,126 +9354,126 @@
"historyColumnPassRate": "پاس کی شرح",
"historyColumnAvgLatencyMs": "اوسط تاخیر",
"historyColumnCreatedAt": "تعمیل شدہ",
- "evalSuites": "Evaluation Suites",
- "evalSuitesHint": "Click a suite to view test cases, then run to evaluate your LLM endpoints",
- "evalsLoading": "Loading eval suites...",
- "noEvalSuitesFound": "No Eval Suites Found",
- "noEvalSuitesDescription": "Eval suites can be defined via the API or in code. They test model outputs against expected results using strategies like contains, regex, exact match, and custom functions.",
- "columnCase": "Case",
+ "evalSuites": "جائزہ سوٹس",
+ "evalSuitesHint": "ٹیسٹ کیسز دیکھنے کے لیے کسی سوٹ پر کلک کریں، پھر اپنے LLM اینڈ پوائنٹس کا جائزہ لینے کے لیے اسے چلائیں",
+ "evalsLoading": "جائزہ سوٹس لوڈ ہو رہے ہیں...",
+ "noEvalSuitesFound": "کوئی جائزہ سوٹ نہیں ملا",
+ "noEvalSuitesDescription": "جائزہ سوٹس کی تعریف API یا کوڈ میں کی جا سکتی ہے۔ یہ contains، regex، exact match، اور حسب ضرورت فنکشنز جیسی حکمت عملیوں کے ذریعے ماڈل آؤٹ پٹس کو متوقع نتائج کے مقابل جانچتے ہیں۔",
+ "columnCase": "کیس",
"columnStatus": "Status",
- "columnLatency": "Latency",
- "columnDetails": "Details",
+ "columnLatency": "تاخیر",
+ "columnDetails": "تفصیلات",
"columnModel": "Model",
- "columnStrategy": "Strategy",
- "columnExpected": "Expected",
- "statsSuites": "Suites",
- "statsTestCases": "Test Cases",
- "statsModels": "Models",
- "statsCoverage": "Coverage",
- "statsStrategiesCount": "{count} strategies",
- "evaluationStrategies": "Evaluation Strategies",
- "modelsUnderTest": "Models Under Test",
- "searchSuitesPlaceholder": "Search suites...",
+ "columnStrategy": "حکمت عملی",
+ "columnExpected": "متوقع",
+ "statsSuites": "سوٹس",
+ "statsTestCases": "ٹیسٹ کیسز",
+ "statsModels": "ماڈلز",
+ "statsCoverage": "کوریج",
+ "statsStrategiesCount": "{count} حکمت عملیاں",
+ "evaluationStrategies": "جائزے کی حکمت عملیاں",
+ "modelsUnderTest": "زیرِ آزمائش ماڈلز",
+ "searchSuitesPlaceholder": "سوٹس تلاش کریں...",
"passSuffix": "pass",
- "casesCount": "{count, plural, one {# case} other {# cases}}",
- "runEval": "Run Eval",
+ "casesCount": "{count, plural, one {# کیس} other {# کیسز}}",
+ "runEval": "ایویلیو چلائیں",
"runAllSuites": "سب چلائیں۔",
"runAllRunning": "سب چل رہا ہے...",
"runAllProgress": "چل رہا ہے {current}/{total}: {name}",
- "runAllFailedSuites": "{count, plural, one {# suite failed} other {# suites failed}}",
+ "runAllFailedSuites": "{count, plural, one {# سوٹ ناکام ہوا} other {# سوٹس ناکام ہوئے}}",
"runAllCompleted": "{suites} سویٹس چلائے — {passed} پاس ہو گئے، {failed} ناکام ہو گئے",
"runAllCompletedWithFailures": "{completed} سویٹس چلائے؛ {failedSuites} مکمل ہونے میں ناکام",
- "runningProgress": "Running {current}/{total}...",
- "passRate": "pass rate",
- "summaryBreakdown": "{passed} passed · {failed} failed · {total} total",
- "passedIconLabel": "✅ Passed",
- "failedIconLabel": "❌ Failed",
+ "runningProgress": "چل رہا ہے {current}/{total}...",
+ "passRate": "کامیابی کی شرح",
+ "summaryBreakdown": "{passed} کامیاب · {failed} ناکام · کل {total}",
+ "passedIconLabel": "✅ کامیاب",
+ "failedIconLabel": "❌ ناکام",
"resultPassed": "پاس کیا۔",
"resultFailed": "ناکام",
"expandResult": "نتائج کی تفصیلات کو پھیلائیں۔",
"collapseResult": "نتائج کی تفصیلات کو سکیڑیں۔",
- "detailsContains": "Contains: \"{term}\"",
+ "detailsContains": "شامل ہے: \"{term}\"",
"detailsRegex": "Regex: {pattern}",
- "detailsExpected": "Expected: \"{expected}\"",
+ "detailsExpected": "متوقع: \"{expected}\"",
"expectedOutputLabel": "متوقع آؤٹ پٹ",
- "noResultsYet": "No results yet",
- "testCasesCount": "Test Cases ({count})",
- "noTestCasesDefined": "No test cases defined",
- "runEvalHint": "Click \"Run Eval\" to execute all cases against your LLM endpoint. Each test sends a real request through OmniRoute.",
- "notifyNoTestCases": "No test cases defined for this suite",
- "notifyAllCasesPassed": "All {total} cases passed ✅",
- "notifySomeCasesFailed": "{passed}/{total} passed, {failed} failed",
- "notifyEvalRunFailed": "Eval run failed",
- "notifyEvalTitle": "Eval: {name}",
- "modelEvals": "Model Evaluations",
- "evalsHeroDescription": "Test and validate your LLM endpoints by running predefined evaluation suites. Each suite contains test cases that send real prompts through OmniRoute and compare responses against expected criteria — helping you detect regressions, compare models, and ensure response quality across providers.",
- "qualityValidation": "Quality Validation",
- "modelComparison": "Model Comparison",
- "regressionDetection": "Regression Detection",
- "latencyBenchmarks": "Latency Benchmarks",
- "modelLockouts": "Model Lockouts",
- "noLockouts": "No models currently locked",
- "activeSessions": "Active Sessions",
- "noSessions": "No active sessions",
- "sessionsHint": "Sessions appear as requests flow through the proxy",
- "sessionsTrackedHint": "Tracked via request fingerprinting • Auto-refresh 5s",
- "session": "Session",
- "age": "Age",
- "requests": "Requests",
- "connection": "Connection",
+ "noResultsYet": "ابھی کوئی نتائج نہیں",
+ "testCasesCount": "ٹیسٹ کیسز ({count})",
+ "noTestCasesDefined": "کوئی ٹیسٹ کیس متعین نہیں",
+ "runEvalHint": "تمام کیسز کو اپنے LLM اینڈ پوائنٹ پر چلانے کے لیے \"ایویلیو چلائیں\" پر کلک کریں۔ ہر ٹیسٹ OmniRoute کے ذریعے ایک حقیقی درخواست بھیجتا ہے۔",
+ "notifyNoTestCases": "اس سوٹ کے لیے کوئی ٹیسٹ کیس متعین نہیں",
+ "notifyAllCasesPassed": "تمام {total} کیسز کامیاب ہوئے ✅",
+ "notifySomeCasesFailed": "{passed}/{total} کامیاب، {failed} ناکام",
+ "notifyEvalRunFailed": "ایویلیو چلانے میں ناکامی",
+ "notifyEvalTitle": "ایویلیو: {name}",
+ "modelEvals": "ماڈل کی جانچیں",
+ "evalsHeroDescription": "پہلے سے متعین ایویلیو سوٹس چلا کر اپنے LLM اینڈ پوائنٹس کی جانچ اور توثیق کریں۔ ہر سوٹ میں ایسے ٹیسٹ کیسز شامل ہیں جو OmniRoute کے ذریعے حقیقی پرامپٹس بھیجتے ہیں اور جوابات کا متوقع معیار سے موازنہ کرتے ہیں—اس طرح آپ رجعت کا پتا لگا سکتے ہیں، ماڈلز کا موازنہ کر سکتے ہیں، اور مختلف فراہم کنندگان پر جوابات کے معیار کو یقینی بنا سکتے ہیں۔",
+ "qualityValidation": "معیار کی توثیق",
+ "modelComparison": "ماڈلز کا موازنہ",
+ "regressionDetection": "رجعت کی نشاندہی",
+ "latencyBenchmarks": "تاخیر کے بینچ مارکس",
+ "modelLockouts": "ماڈل لاک آؤٹس",
+ "noLockouts": "فی الحال کوئی ماڈل لاک نہیں",
+ "activeSessions": "فعال سیشنز",
+ "noSessions": "کوئی فعال سیشن نہیں",
+ "sessionsHint": "پراکسی سے درخواستیں گزرنے پر سیشنز ظاہر ہوتے ہیں",
+ "sessionsTrackedHint": "درخواست کی فنگر پرنٹنگ کے ذریعے ٹریک کیا گیا • ہر 5 سیکنڈ بعد خودکار تازہ کاری",
+ "session": "سیشن",
+ "age": "عمر",
+ "requests": "درخواستیں",
+ "connection": "کنکشن",
"durationMillisecondsShort": "{value}ms",
"durationSecondsShort": "{value}s",
"durationMinutesShort": "{value}m",
"durationHoursShort": "{value}h",
"reasonSeparator": "-",
"notAvailableSymbol": "-",
- "providerLimits": "Provider Limits",
- "noProviders": "No Providers Connected",
- "connectProvidersForQuota": "Connect to providers with OAuth to track your API quota limits and usage.",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
- "filteredFromCount": "(filtered from {count})",
- "autoRefresh": "Auto-refresh",
- "refreshAll": "Refresh All",
- "loadingQuotas": "Loading...",
+ "providerLimits": "فراہم کنندگان کی حدود",
+ "noProviders": "کوئی فراہم کنندہ منسلک نہیں",
+ "connectProvidersForQuota": "اپنی API کوٹا حدود اور استعمال کو ٹریک کرنے کے لیے OAuth کے ذریعے فراہم کنندگان سے منسلک ہوں۔",
+ "accountsCount": "{count, plural, one {# اکاؤنٹ} other {# اکاؤنٹس}}",
+ "filteredFromCount": "({count} میں سے فلٹر شدہ)",
+ "autoRefresh": "خودکار تازہ کاری",
+ "refreshAll": "سب کو ریفریش کریں",
+ "loadingQuotas": "لوڈ ہو رہا ہے...",
"showMoreQuotas": "{count} مزید دکھائیں",
"showLessQuotas": "کم دکھائیں",
"hideQuotaRow": "اس کوٹہ کی قطار کو چھپائیں",
"showQuotaRow": "اس کوٹہ کی قطار کو دکھائیں",
"hiddenQuotaRowsLabel": "چھپا ہوا:",
"quotaVisibilityUpdateFailed": "کوٹہ کی نمائش کو اپ ڈیٹ کرنے میں ناکامی",
- "account": "Account",
- "modelQuotas": "Model Quotas",
- "lastUsed": "Last Refreshed",
- "actions": "Actions",
- "refreshQuota": "Refresh quota",
- "today": "Today",
- "tomorrow": "Tomorrow",
- "dayTimeFormat": "{day}, {time}",
- "inDuration": "in {duration}",
+ "account": "اکاؤنٹ",
+ "modelQuotas": "ماڈل کوٹاز",
+ "lastUsed": "آخری بار ریفریش کیا گیا",
+ "actions": "اقدامات",
+ "refreshQuota": "کوٹا ریفریش کریں",
+ "today": "آج",
+ "tomorrow": "کل",
+ "dayTimeFormat": "{day}، {time}",
+ "inDuration": "{duration} میں",
"notApplicable": "N/A",
- "rawPlanWithValue": "Raw plan: {plan}",
- "noPlanFromProvider": "No plan from provider",
+ "rawPlanWithValue": "خام پلان: {plan}",
+ "noPlanFromProvider": "فراہم کنندہ کی جانب سے کوئی پلان نہیں",
"tokenExpiresIn": "ٹوکن کی میعاد {time} میں ختم ہو جائے گی",
"tokenExpired": "ٹوکن کی میعاد ختم ہو گئی",
- "noQuotaData": "No quota data",
+ "noQuotaData": "کوٹے کا کوئی ڈیٹا نہیں",
"cardExpand": "پھیلائیں",
"cardCollapse": "سکیڑیں",
"moreQuotas": "+{count} مزید",
- "ungrouped": "Ungrouped",
- "viewFlat": "Flat",
- "viewByEnvironment": "By Environment",
- "noQuotaDataAvailable": "No quota data available",
- "noAccountsForTierFilter": "No accounts found for tier filter",
- "tierAll": "All",
- "tierEnterprise": "Enterprise",
- "tierTeam": "Team",
- "tierBusiness": "Business",
+ "ungrouped": "غیر گروپ شدہ",
+ "viewFlat": "سادہ فہرست",
+ "viewByEnvironment": "ماحول کے لحاظ سے",
+ "noQuotaDataAvailable": "کوٹے کا کوئی ڈیٹا دستیاب نہیں",
+ "noAccountsForTierFilter": "درجے کے فلٹر کے لیے کوئی اکاؤنٹ نہیں ملا",
+ "tierAll": "سبھی",
+ "tierEnterprise": "انٹرپرائز",
+ "tierTeam": "ٹیم",
+ "tierBusiness": "بزنس",
"tierUltra": "Ultra",
"tierPro": "Pro",
"tierPlus": "Plus",
- "tierFree": "Free",
+ "tierFree": "مفت",
"tierLite": "لائٹ",
- "tierUnknown": "Unknown",
+ "tierUnknown": "نامعلوم",
"statTotal": "کل",
"statCritical": "سنگین",
"statAlert": "انتباہ",
@@ -9500,7 +9511,7 @@
"confirmRedeemResetCreditButton": "کریڈٹ ریڈیم کریں",
"resetCreditRedeemed": "ری سیٹ ریڈیم کر دیا گیا",
"resetCreditRedeemFailed": "ری سیٹ کریڈٹ ریڈیم کرنے میں ناکام",
- "suiteBuilderSaveFailed": "Failed to save suite",
+ "suiteBuilderSaveFailed": "سوئٹ محفوظ کرنے میں ناکامی",
"clone": "کلون",
"exportSuite": "برآمد کریں۔",
"importSuite": "درآمد کریں۔",
@@ -9511,103 +9522,103 @@
"suiteImportInvalid": "غلط ایول سویٹ JSON",
"suiteBuilderCloneSuffix": "کاپی",
"suiteBuilderImportedSuite": "امپورٹڈ سویٹ",
- "scorecardTitle": "Scorecard",
- "evalApiKey": "API Key",
- "scorecardPassRate": "Pass Rate",
- "targetTypeModel": "Model",
- "actualOutputLabel": "Actual Output",
- "evalTargetHint": "Select a model or combo to evaluate.",
- "suiteBuilderDeleted": "Suite deleted successfully",
- "suiteBuilderCaseCardHint": "Define the input prompt and expected output criteria.",
- "nextResetUtc": "Next reset (UTC)",
- "scorecardHint": "Aggregated pass rates across all evaluation suites.",
- "suiteLatestRunsHint": "Most recent evaluation runs for this suite.",
- "saving": "Saving",
- "suiteBuilderCaseModelLabel": "Model (optional)",
- "evalControlsTitle": "Evaluation Controls",
- "suiteBuilderEditTitle": "Edit Eval Suite",
- "suiteBuilderCaseStrategyLabel": "Validation Strategy",
- "notifySelectDifferentCompareTarget": "Please select a different target for comparison",
- "recentRunsHint": "Showing the most recent evaluation runs. Click a run to see detailed results.",
- "evalCompareHint": "Optionally compare results against a second target.",
- "suiteBuilderCaseInvalid": "This case has validation errors. Please fix before saving.",
- "historyEmpty": "No evaluation history yet",
- "suiteBuilderUpdated": "Suite updated successfully",
- "resetInterval": "Reset Interval",
- "suiteBuilderCreateTitle": "Create Eval Suite",
- "activePeriodSpend": "Active Period Spend",
- "evalApiKeyHint": "Select which API key to use for evaluation requests.",
- "evalCompareOptional": "Compare (optional)",
- "suiteBuilderDeleteFailed": "Failed to delete suite",
- "suiteBuilderCaseSystemPromptPlaceholder": "Optional system instructions...",
- "scorecardCases": "Cases",
- "runCompletedWithScore": "Evaluation completed — {score}% pass rate",
- "suiteBuilderCustomBadge": "Custom",
- "targetSuiteDefaults": "Suite defaults",
- "suiteBuilderDeleteConfirm": "Are you sure you want to delete this suite? This action cannot be undone.",
- "suiteBuilderNameLabel": "Suite Name",
- "scorecardSuites": "Suites",
- "evalCompareTarget": "Compare Target",
- "suiteBuilderCaseModelPlaceholder": "e.g. gpt-4o-mini",
- "evalControlsHint": "Configure your evaluation target and API key, then run suites to validate model quality.",
- "recentRunsTitle": "Recent Runs",
- "suiteBuilderCaseSystemPromptLabel": "System Prompt",
- "suiteBuilderCaseExpectedPlaceholder": "e.g. def fibonacci",
+ "scorecardTitle": "اسکور کارڈ",
+ "evalApiKey": "API کلید",
+ "scorecardPassRate": "کامیابی کی شرح",
+ "targetTypeModel": "ماڈل",
+ "actualOutputLabel": "اصل آؤٹ پٹ",
+ "evalTargetHint": "جانچ کے لیے کوئی ماڈل یا کومبو منتخب کریں۔",
+ "suiteBuilderDeleted": "سوئٹ کامیابی سے حذف کر دی گئی",
+ "suiteBuilderCaseCardHint": "ان پٹ پرامپٹ اور متوقع آؤٹ پٹ کے معیارات متعین کریں۔",
+ "nextResetUtc": "اگلا ری سیٹ (UTC)",
+ "scorecardHint": "تمام جانچ سوئٹس میں مجموعی کامیابی کی شرحیں۔",
+ "suiteLatestRunsHint": "اس سوئٹ کے لیے حالیہ ترین جانچ کے رنز۔",
+ "saving": "محفوظ کیا جا رہا ہے",
+ "suiteBuilderCaseModelLabel": "ماڈل (اختیاری)",
+ "evalControlsTitle": "جانچ کے کنٹرولز",
+ "suiteBuilderEditTitle": "ایول سویٹ میں ترمیم کریں",
+ "suiteBuilderCaseStrategyLabel": "توثیق کی حکمتِ عملی",
+ "notifySelectDifferentCompareTarget": "براہِ کرم موازنے کے لیے کوئی مختلف ہدف منتخب کریں",
+ "recentRunsHint": "حالیہ ترین ایویلیوایشن رنز دکھائے جا رہے ہیں۔ تفصیلی نتائج دیکھنے کے لیے کسی رن پر کلک کریں۔",
+ "evalCompareHint": "اختیاری طور پر نتائج کا دوسرے ہدف سے موازنہ کریں۔",
+ "suiteBuilderCaseInvalid": "اس کیس میں توثیقی خامیاں ہیں۔ محفوظ کرنے سے پہلے براہِ کرم انہیں درست کریں۔",
+ "historyEmpty": "ابھی تک ایویلیوایشن کی کوئی سرگزشت نہیں ہے",
+ "suiteBuilderUpdated": "سویٹ کامیابی سے اپ ڈیٹ ہو گیا",
+ "resetInterval": "وقفہ ری سیٹ کریں",
+ "suiteBuilderCreateTitle": "ایول سویٹ بنائیں",
+ "activePeriodSpend": "فعال مدت کے اخراجات",
+ "evalApiKeyHint": "منتخب کریں کہ ایویلیوایشن کی درخواستوں کے لیے کون سی API کلید استعمال کرنی ہے۔",
+ "evalCompareOptional": "موازنہ کریں (اختیاری)",
+ "suiteBuilderDeleteFailed": "سویٹ حذف کرنے میں ناکامی ہوئی",
+ "suiteBuilderCaseSystemPromptPlaceholder": "اختیاری سسٹم ہدایات...",
+ "scorecardCases": "کیسز",
+ "runCompletedWithScore": "ایویلیوایشن مکمل ہو گئی — کامیابی کی شرح {score}%",
+ "suiteBuilderCustomBadge": "حسبِ ضرورت",
+ "targetSuiteDefaults": "سویٹ کی طے شدہ ترتیبات",
+ "suiteBuilderDeleteConfirm": "کیا آپ واقعی اس سویٹ کو حذف کرنا چاہتے ہیں؟ اس عمل کو واپس نہیں کیا جا سکتا۔",
+ "suiteBuilderNameLabel": "سویٹ کا نام",
+ "scorecardSuites": "سویٹس",
+ "evalCompareTarget": "موازنے کا ہدف",
+ "suiteBuilderCaseModelPlaceholder": "مثلاً gpt-4o-mini",
+ "evalControlsHint": "اپنا ایویلیوایشن ہدف اور API کلید ترتیب دیں، پھر ماڈل کے معیار کی توثیق کے لیے سویٹس چلائیں۔",
+ "recentRunsTitle": "حالیہ رنز",
+ "suiteBuilderCaseSystemPromptLabel": "سسٹم پرامپٹ",
+ "suiteBuilderCaseExpectedPlaceholder": "مثلاً def fibonacci",
"suiteBuilderCaseExpectedPlaceholderContains": "جیسے ڈیف فبونیکی",
"suiteBuilderCaseExpectedPlaceholderExact": "عین متوقع جواب چسپاں کریں۔",
"suiteBuilderCaseExpectedPlaceholderRegex": "جیسے ^\\\\s*\\\\{.*\\\\}\\\\s*$",
"suiteBuilderCaseExpectedHintRegex": "سلیشوں کو لپیٹے بغیر جاوا اسکرپٹ کا ریگولر ایکسپریشن استعمال کریں۔",
- "suiteBuilderNamePlaceholder": "e.g. Coding Quality Suite",
- "suiteBuilderAddCase": "Add Case",
- "cancel": "Cancel",
- "evalTarget": "Target",
- "suiteBuilderCaseNameLabel": "Case Name",
- "weeklyLimitUsd": "Weekly Limit (USD)",
- "suiteBuilderCaseUserPromptPlaceholder": "e.g. Write a fibonacci function in Python",
- "suiteBuilderNameRequired": "Suite name is required",
- "suiteBuilderCaseUserPromptLabel": "User Prompt",
- "daily": "Daily",
- "resultErrorLabel": "Error",
- "suiteBuilderBuiltInBadge": "Built-in",
- "suiteBuilderCaseCardTitle": "Test Case",
+ "suiteBuilderNamePlaceholder": "مثلاً کوڈنگ کوالٹی سویٹ",
+ "suiteBuilderAddCase": "کیس شامل کریں",
+ "cancel": "منسوخ کریں",
+ "evalTarget": "ہدف",
+ "suiteBuilderCaseNameLabel": "کیس کا نام",
+ "weeklyLimitUsd": "ہفتہ وار حد (USD)",
+ "suiteBuilderCaseUserPromptPlaceholder": "مثلاً Python میں fibonacci فنکشن لکھیں",
+ "suiteBuilderNameRequired": "سویٹ کا نام درکار ہے",
+ "suiteBuilderCaseUserPromptLabel": "صارف کا پرامپٹ",
+ "daily": "روزانہ",
+ "resultErrorLabel": "خرابی",
+ "suiteBuilderBuiltInBadge": "بلٹ اِن",
+ "suiteBuilderCaseCardTitle": "ٹیسٹ کیس",
"suiteBuilderDuplicateCase": "نقل",
- "weeklyLimitPlaceholder": "e.g. 50.00",
- "suiteBuilderCaseTagsHint": "Comma-separated tags for organizing test cases.",
- "notifyEvalRunFailedWithReason": "Evaluation failed: {reason}",
- "weekly": "Weekly",
- "runEvalRunning": "Running evaluation...",
- "delete": "Delete",
- "resetTimeUtc": "Reset Time (UTC)",
- "evalApiKeyAuto": "Auto (use default)",
- "suiteBuilderDescriptionPlaceholder": "Optional description of what this suite tests...",
- "targetComparisonTitle": "Target Comparison",
- "save": "Save",
- "suiteBuilderCreated": "Suite created successfully",
- "suiteLatestRuns": "Latest Runs",
- "suiteBuilderCaseExpectedLabel": "Expected Value",
- "historyLatency": "Latency",
- "suiteBuilderCaseTagsPlaceholder": "e.g. coding, python",
- "targetTypeCombo": "Combo",
- "scorecardPassed": "Passed",
- "suiteBuilderCaseTagsLabel": "Tags",
- "suiteBuilderNewSuite": "New Suite",
- "notifyEvalLoadFailed": "Failed to load evaluation data",
- "notConfigured": "Not Configured",
- "suiteBuilderCaseNamePlaceholder": "e.g. Python fibonacci test",
- "intervalLabel": "Interval",
- "suiteBuilderCreateAction": "Create Suite",
- "suiteBuilderCasesHint": "Each case sends a prompt and validates the response.",
- "suiteBuilderUpdatedAt": "Updated",
- "errorBadge": "Error",
- "suiteBuilderCasesTitle": "Test Cases",
- "edit": "Edit",
- "monthly": "Monthly",
- "suiteBuilderCasesRequired": "At least one test case is required",
- "weeklyLimitSummary": "Weekly budget limit summary",
- "suiteBuilderDescriptionLabel": "Description",
- "targetComparisonHint": "Side-by-side comparison of evaluation results between targets.",
- "compareCompletedWithScore": "Comparison completed — {score}% pass rate",
- "staleQuotaTooltip": "Last refresh failed — showing cached data",
+ "weeklyLimitPlaceholder": "مثلاً 50.00",
+ "suiteBuilderCaseTagsHint": "ٹیسٹ کیسز کو منظم کرنے کے لیے کوما سے جدا کردہ ٹیگز۔",
+ "notifyEvalRunFailedWithReason": "جانچ ناکام ہوگئی: {reason}",
+ "weekly": "ہفتہ وار",
+ "runEvalRunning": "جانچ جاری ہے...",
+ "delete": "حذف کریں",
+ "resetTimeUtc": "ری سیٹ کا وقت (UTC)",
+ "evalApiKeyAuto": "خودکار (ڈیفالٹ استعمال کریں)",
+ "suiteBuilderDescriptionPlaceholder": "یہ سوٹ کیا جانچتا ہے، اس کی اختیاری تفصیل...",
+ "targetComparisonTitle": "ہدف کا موازنہ",
+ "save": "محفوظ کریں",
+ "suiteBuilderCreated": "سوٹ کامیابی سے بنا دیا گیا",
+ "suiteLatestRuns": "تازہ ترین رنز",
+ "suiteBuilderCaseExpectedLabel": "متوقع قدر",
+ "historyLatency": "تاخیر",
+ "suiteBuilderCaseTagsPlaceholder": "مثلاً coding، python",
+ "targetTypeCombo": "مشترکہ",
+ "scorecardPassed": "کامیاب",
+ "suiteBuilderCaseTagsLabel": "ٹیگز",
+ "suiteBuilderNewSuite": "نیا سوٹ",
+ "notifyEvalLoadFailed": "جانچ کا ڈیٹا لوڈ نہیں ہو سکا",
+ "notConfigured": "کنفیگر نہیں کیا گیا",
+ "suiteBuilderCaseNamePlaceholder": "مثلاً Python fibonacci ٹیسٹ",
+ "intervalLabel": "وقفہ",
+ "suiteBuilderCreateAction": "سوٹ بنائیں",
+ "suiteBuilderCasesHint": "ہر کیس ایک پرامپٹ بھیجتا ہے اور جواب کی توثیق کرتا ہے۔",
+ "suiteBuilderUpdatedAt": "اپ ڈیٹ شدہ",
+ "errorBadge": "خرابی",
+ "suiteBuilderCasesTitle": "ٹیسٹ کیسز",
+ "edit": "ترمیم کریں",
+ "monthly": "ماہانہ",
+ "suiteBuilderCasesRequired": "کم از کم ایک ٹیسٹ کیس درکار ہے",
+ "weeklyLimitSummary": "ہفتہ وار بجٹ کی حد کا خلاصہ",
+ "suiteBuilderDescriptionLabel": "تفصیل",
+ "targetComparisonHint": "اہداف کے درمیان جانچ کے نتائج کا پہلو بہ پہلو موازنہ۔",
+ "compareCompletedWithScore": "موازنہ مکمل ہوگیا — کامیابی کی شرح {score}%",
+ "staleQuotaTooltip": "آخری ریفریش ناکام ہوگیا — کیش شدہ ڈیٹا دکھایا جا رہا ہے",
"quotaThresholdLabel": "منٹ باقی",
"quotaCutoffsColumnHelp": "جب باقی کوٹہ اس فیصد یا اس سے کم ہو جائے تو درخواستیں روک دیں۔",
"quotaCutoffsButtonDefault": "طے شدہ",
@@ -9700,70 +9711,70 @@
"providerQuotaHomeHint": "منسلک اکاؤنٹس میں لائیو اسٹیٹس"
},
"modals": {
- "waitingAuth": "Waiting for Authorization",
- "verificationUrl": "Verification URL",
- "yourCode": "Your Code",
- "remoteAccess": "Remote access:",
- "connectedSuccess": "Connected Successfully!",
- "connectionFailed": "Connection Failed",
- "chooseAuthMethod": "Choose your authentication method:",
+ "waitingAuth": "اجازت کا انتظار ہے",
+ "verificationUrl": "توثیقی URL",
+ "yourCode": "آپ کا کوڈ",
+ "remoteAccess": "ریموٹ رسائی:",
+ "connectedSuccess": "کامیابی سے منسلک ہو گیا!",
+ "connectionFailed": "کنکشن ناکام ہو گیا",
+ "chooseAuthMethod": "اپنا توثیقی طریقہ منتخب کریں:",
"awsBuilderId": "AWS Builder ID",
"awsIamIdentity": "AWS IAM Identity Center",
- "googleAccount": "Google Account",
- "githubAccount": "GitHub Account",
- "importToken": "Import Token",
- "pasteToken": "Paste refresh token from Kiro IDE.",
+ "googleAccount": "Google اکاؤنٹ",
+ "githubAccount": "GitHub اکاؤنٹ",
+ "importToken": "ٹوکن درآمد کریں",
+ "pasteToken": "Kiro IDE سے ریفریش ٹوکن چسپاں کریں۔",
"awsRegion": "AWS Region",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCache": "Reading from AWS SSO cache",
- "readingFromCursor": "Reading from Cursor IDE database",
- "initializing": "Initializing...",
- "pricingConfig": "Pricing Configuration",
- "loadingPricing": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "noPricingData": "No pricing data available",
- "noModelsFound": "No models found"
+ "autoDetecting": "ٹوکنز کی خودکار شناخت جاری ہے...",
+ "readingFromCache": "AWS SSO کیش سے پڑھا جا رہا ہے",
+ "readingFromCursor": "Cursor IDE ڈیٹابیس سے پڑھا جا رہا ہے",
+ "initializing": "ابتدائی کارروائی جاری ہے...",
+ "pricingConfig": "قیمتوں کی ترتیب",
+ "loadingPricing": "قیمتوں کا ڈیٹا لوڈ ہو رہا ہے...",
+ "pricingRatesFormat": "قیمتوں کی شرحوں کا فارمیٹ",
+ "noPricingData": "قیمتوں کا کوئی ڈیٹا دستیاب نہیں",
+ "noModelsFound": "کوئی ماڈل نہیں ملا"
},
"loggers": {
- "allProviders": "All Providers",
- "allModels": "All Models",
- "allAccounts": "All Accounts",
- "allApiKeys": "All API Keys",
- "allTypes": "All Types",
- "allLevels": "All Levels",
+ "allProviders": "تمام فراہم کنندگان",
+ "allModels": "تمام ماڈلز",
+ "allAccounts": "تمام اکاؤنٹس",
+ "allApiKeys": "تمام API کلیدیں",
+ "allTypes": "تمام اقسام",
+ "allLevels": "تمام سطحیں",
"modelAZ": "Model A-Z",
"modelZA": "Model Z-A",
- "loadingLogs": "Loading logs...",
- "loadingProxyLogs": "Loading proxy logs...",
- "noLogEntries": "No log entries found",
- "noPayloadData": "No payload data available for this log entry.",
- "proxyEvent": "Proxy Event",
+ "loadingLogs": "لاگز لوڈ ہو رہے ہیں...",
+ "loadingProxyLogs": "پراکسی لاگز لوڈ ہو رہے ہیں...",
+ "noLogEntries": "کوئی لاگ اندراج نہیں ملا",
+ "noPayloadData": "اس لاگ اندراج کے لیے کوئی پے لوڈ ڈیٹا دستیاب نہیں۔",
+ "proxyEvent": "پراکسی ایونٹ",
"proxy": "Proxy",
- "level": "Level",
- "directNative": "Direct (native)",
- "combo": "Combo",
+ "level": "سطح",
+ "directNative": "براہِ راست (مقامی)",
+ "combo": "مجموعہ",
"inputTokens": "I:",
"outputTokens": "O:"
},
"stats": {
- "usageOverview": "Usage Overview",
- "outputTokens": "Output Tokens",
- "totalCost": "Total Cost",
- "usageByModel": "Usage by Model",
- "usageByAccount": "Usage by Account",
- "failedToLoad": "Failed to load usage statistics.",
- "tokenHealth": "Token Health",
- "totalOAuth": "Total OAuth",
- "healthy": "Healthy",
- "warning": "Warning",
- "errored": "Errored",
- "lastCheck": "Last check",
- "noData": "No data",
- "share": "Share",
- "unableToLoad": "Unable to load system metrics",
- "product": "Product",
- "resources": "Resources",
- "company": "Company",
+ "usageOverview": "استعمال کا جائزہ",
+ "outputTokens": "آؤٹ پٹ ٹوکنز",
+ "totalCost": "کل لاگت",
+ "usageByModel": "ماڈل کے لحاظ سے استعمال",
+ "usageByAccount": "اکاؤنٹ کے لحاظ سے استعمال",
+ "failedToLoad": "استعمال کے اعداد و شمار لوڈ نہیں ہو سکے۔",
+ "tokenHealth": "ٹوکن کی صحت",
+ "totalOAuth": "کل OAuth",
+ "healthy": "صحت مند",
+ "warning": "انتباہ",
+ "errored": "خرابی کا شکار",
+ "lastCheck": "آخری جانچ",
+ "noData": "کوئی ڈیٹا نہیں",
+ "share": "شیئر کریں",
+ "unableToLoad": "سسٹم میٹرکس لوڈ نہیں ہو سکے",
+ "product": "پروڈکٹ",
+ "resources": "وسائل",
+ "company": "کمپنی",
"tokenHealthTooltips": {
"allHealthy": "تمام ٹوکن صحت مند ہیں",
"needsAttention": "کچھ ٹوکنز کو توجہ کی ضرورت ہے",
@@ -9808,70 +9819,70 @@
"noAccountUsage": "ابھی تک کوئی اکاؤنٹ مخصوص استعمال ریکارڈ نہیں ہوا۔ یہاں ڈیٹا دیکھنے کے لیے OAuth اکاؤنٹس کا استعمال کرتے ہوئے درخواستیں کریں۔"
},
"auth": {
- "welcome": "Welcome",
- "signIn": "Sign in",
- "enterPassword": "Enter your password to continue",
- "password": "Password",
- "unifiedProxy": "Unified AI API Proxy",
- "unifiedAiApiProxy": "Unified AI API Proxy",
- "unifiedAiApiProxyDesc": "Route requests to multiple AI providers through a single endpoint. Load balancing, failover, and usage tracking built in.",
- "passwordNotEnabled": "Password protection is not enabled",
- "loading": "Loading...",
- "invalidPassword": "Invalid password",
- "errorOccurredRetry": "An error occurred. Please try again.",
- "configureInstance": "Let's get your OmniRoute instance configured",
- "runOnboardingWizard": "Run the onboarding wizard to set up your password and connect your first AI provider.",
- "startOnboarding": "Start Onboarding",
- "secureYourInstance": "Secure Your Instance",
- "setPasswordDescription": "Set a password to protect your dashboard and secure your API endpoints from unauthorized access.",
- "configurePassword": "Configure Password",
- "continue": "Continue",
- "windowWillClose": "This window will close automatically...",
- "closeTabNow": "You can close this tab now.",
- "copyUrlManual": "Please copy the URL from the address bar and paste it in the application.",
- "accessDeniedDescription": "You don't have permission to access this resource. Check your API key or contact the administrator.",
- "goToDashboard": "Go to Dashboard",
- "featureMultiProviderTitle": "Multi-Provider",
- "featureMultiProviderDesc": "OpenAI, Anthropic, Google, and more",
- "featureLoadBalancingTitle": "Load Balancing",
- "featureLoadBalancingDesc": "Distribute requests intelligently",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Monitor costs and tokens",
- "resetPassword": "Reset Password",
- "resetDescription": "Choose a method to recover access to your dashboard",
- "stopServer": "Stop the OmniRoute server",
- "processing": "Processing...",
- "pleaseWait": "Please wait while we complete the authorization.",
- "authSuccess": "Authorization Successful!",
- "copyUrl": "Copy This URL",
- "accessDenied": "Access Denied",
- "methodCliTitle": "Method 1: CLI Reset",
- "methodCliDescription": "Run the following command on the server where OmniRoute is running:",
- "methodCliHint": "This will prompt you to set a new password. The server must be stopped first.",
- "methodManualTitle": "Method 2: Manual Reset",
- "methodManualDescription": "Delete the password from the database and set a new one on startup:",
- "setPasswordInYour": "Set a new password in your",
- "fileLabelSuffix": "file:",
+ "welcome": "خوش آمدید",
+ "signIn": "سائن اِن کریں",
+ "enterPassword": "جاری رکھنے کے لیے اپنا پاس ورڈ درج کریں",
+ "password": "پاس ورڈ",
+ "unifiedProxy": "متحدہ AI API پراکسی",
+ "unifiedAiApiProxy": "متحدہ AI API پراکسی",
+ "unifiedAiApiProxyDesc": "ایک ہی اینڈ پوائنٹ کے ذریعے متعدد AI فراہم کنندگان کو درخواستیں بھیجیں۔ لوڈ بیلنسنگ، فیل اوور، اور استعمال کی ٹریکنگ پہلے سے شامل ہیں۔",
+ "passwordNotEnabled": "پاس ورڈ کا تحفظ فعال نہیں ہے",
+ "loading": "لوڈ ہو رہا ہے...",
+ "invalidPassword": "غلط پاس ورڈ",
+ "errorOccurredRetry": "ایک خرابی پیش آگئی۔ براہ کرم دوبارہ کوشش کریں۔",
+ "configureInstance": "آئیے آپ کی OmniRoute انسٹینس کو ترتیب دیں",
+ "runOnboardingWizard": "اپنا پاس ورڈ سیٹ کرنے اور اپنے پہلے AI فراہم کنندہ کو منسلک کرنے کے لیے آن بورڈنگ وزرڈ چلائیں۔",
+ "startOnboarding": "آن بورڈنگ شروع کریں",
+ "secureYourInstance": "اپنی انسٹینس محفوظ بنائیں",
+ "setPasswordDescription": "اپنے ڈیش بورڈ کی حفاظت اور اپنے API اینڈ پوائنٹس کو غیر مجاز رسائی سے محفوظ رکھنے کے لیے پاس ورڈ سیٹ کریں۔",
+ "configurePassword": "پاس ورڈ ترتیب دیں",
+ "continue": "جاری رکھیں",
+ "windowWillClose": "یہ ونڈو خود بخود بند ہو جائے گی...",
+ "closeTabNow": "اب آپ یہ ٹیب بند کر سکتے ہیں۔",
+ "copyUrlManual": "براہ کرم ایڈریس بار سے URL کاپی کر کے ایپلیکیشن میں پیسٹ کریں۔",
+ "accessDeniedDescription": "آپ کو اس وسیلے تک رسائی کی اجازت نہیں ہے۔ اپنی API key چیک کریں یا منتظم سے رابطہ کریں۔",
+ "goToDashboard": "ڈیش بورڈ پر جائیں",
+ "featureMultiProviderTitle": "متعدد فراہم کنندگان",
+ "featureMultiProviderDesc": "OpenAI، Anthropic، Google، اور مزید",
+ "featureLoadBalancingTitle": "لوڈ بیلنسنگ",
+ "featureLoadBalancingDesc": "درخواستوں کو ذہانت سے تقسیم کریں",
+ "featureUsageTrackingTitle": "استعمال کی ٹریکنگ",
+ "featureUsageTrackingDesc": "اخراجات اور ٹوکنز کی نگرانی کریں",
+ "resetPassword": "پاس ورڈ ری سیٹ کریں",
+ "resetDescription": "اپنے ڈیش بورڈ تک رسائی بحال کرنے کے لیے ایک طریقہ منتخب کریں",
+ "stopServer": "OmniRoute سرور بند کریں",
+ "processing": "کارروائی جاری ہے...",
+ "pleaseWait": "براہِ کرم انتظار کریں، ہم اجازت دینے کا عمل مکمل کر رہے ہیں۔",
+ "authSuccess": "اجازت کامیاب رہی!",
+ "copyUrl": "یہ URL کاپی کریں",
+ "accessDenied": "رسائی مسترد کر دی گئی",
+ "methodCliTitle": "طریقہ 1: CLI کے ذریعے ری سیٹ",
+ "methodCliDescription": "اس سرور پر درج ذیل کمانڈ چلائیں جہاں OmniRoute چل رہا ہے:",
+ "methodCliHint": "یہ آپ سے نیا پاس ورڈ مقرر کرنے کو کہے گا۔ پہلے سرور کو بند کرنا ضروری ہے۔",
+ "methodManualTitle": "طریقہ 2: دستی ری سیٹ",
+ "methodManualDescription": "ڈیٹا بیس سے پاس ورڈ حذف کریں اور آغاز پر نیا پاس ورڈ مقرر کریں:",
+ "setPasswordInYour": "اپنی",
+ "fileLabelSuffix": "فائل میں نیا پاس ورڈ مقرر کریں:",
"newPasswordPlaceholder": "your_new_password",
- "deleteSettingsFile": "Delete",
- "orRemovePasswordHashField": "or remove the passwordHash field",
- "restartServerWithNewPassword": "Restart the server - it will use the new password",
- "backToLogin": "Back to Login",
- "forgotPassword": "Forgot password?",
+ "deleteSettingsFile": "حذف کریں",
+ "orRemovePasswordHashField": "یا passwordHash فیلڈ ہٹا دیں",
+ "restartServerWithNewPassword": "سرور دوبارہ شروع کریں — یہ نیا پاس ورڈ استعمال کرے گا",
+ "backToLogin": "لاگ اِن پر واپس جائیں",
+ "forgotPassword": "پاس ورڈ بھول گئے؟",
"continueWithOidc": "OIDC کے ساتھ جاری رکھیں",
- "defaultPasswordHint": "Default password: CHANGEME (unless INITIAL_PASSWORD was set)",
- "Authorization": "Authorization",
+ "defaultPasswordHint": "ڈیفالٹ پاس ورڈ: CHANGEME (جب تک INITIAL_PASSWORD مقرر نہ کیا گیا ہو)",
+ "Authorization": "اجازت",
"Content-Disposition": "Content-Disposition",
- "waitingForAuthorization": "Waiting for authorization...",
- "waitingForGoogleAuthorization": "Waiting for Google authorization...",
- "waitingForOpenAIAuthorization": "Waiting for OpenAI authorization...",
- "waitingForAntigravityAuthorization": "Waiting for Antigravity authorization...",
- "waitingForQoderAuthorization": "Waiting for Qoder authorization...",
- "exchangingCodeForTokens": "Exchanging code for tokens...",
- "nodeIncompatibleTitle": "Incompatible Node.js Version",
- "nodeIncompatibleDesc": "You are running Node.js {version}, which is outside OmniRoute's supported secure runtime policy. Use a patched Node.js 20.x or 22.x LTS release.",
- "nodeIncompatibleFixLabel": "Fix: install a patched Node.js 22 LTS release",
- "nodeIncompatibleHint": "OmniRoute requires Node.js 22.22.2+ (22.x LTS) or 24.0.0+ (24.x LTS). Node 24 LTS is recommended.",
+ "waitingForAuthorization": "اجازت کا انتظار ہے...",
+ "waitingForGoogleAuthorization": "Google کی اجازت کا انتظار ہے...",
+ "waitingForOpenAIAuthorization": "OpenAI کی اجازت کا انتظار ہے...",
+ "waitingForAntigravityAuthorization": "Antigravity کی اجازت کا انتظار ہے...",
+ "waitingForQoderAuthorization": "Qoder کی اجازت کا انتظار ہے...",
+ "exchangingCodeForTokens": "کوڈ کو ٹوکنز سے تبدیل کیا جا رہا ہے...",
+ "nodeIncompatibleTitle": "غیر موافق Node.js ورژن",
+ "nodeIncompatibleDesc": "آپ Node.js {version} چلا رہے ہیں، جو OmniRoute کی معاونت یافتہ محفوظ رَن ٹائم پالیسی کے دائرے سے باہر ہے۔ پیچ شدہ Node.js 20.x یا 22.x LTS ریلیز استعمال کریں۔",
+ "nodeIncompatibleFixLabel": "حل: پیچ شدہ Node.js 22 LTS ریلیز انسٹال کریں",
+ "nodeIncompatibleHint": "OmniRoute کے لیے Node.js 22.22.2+ (22.x LTS) یا 24.0.0+ (24.x LTS) درکار ہے۔ Node 24 LTS تجویز کردہ ہے۔",
"resetViaAppDataTitle": "ایپ ڈیٹا کے ذریعے ری سیٹ کریں",
"resetViaAppDataDescription": "اپلیکیشن ڈیٹا ڈائریکٹری سے سیٹنگز فائل کو حذف کریں تاکہ آپ کا پاس ورڈ ری سیٹ ہو سکے:",
"quitDesktopApp": "OmniRoute ڈیسک ٹاپ ایپ کو مکمل طور پر بند کریں",
@@ -9926,72 +9937,72 @@
},
"landing": {
"brandName": "OmniRoute",
- "navigateHome": "Navigate to home",
- "toggleMenu": "Toggle menu",
- "featuresLink": "Features",
- "docsLink": "Docs",
+ "navigateHome": "ہوم پر جائیں",
+ "toggleMenu": "مینو کھولیں یا بند کریں",
+ "featuresLink": "خصوصیات",
+ "docsLink": "دستاویزات",
"github": "GitHub",
- "versionLive": "v1.0 is now live",
- "oneEndpoint": "One Endpoint for",
- "allProviders": "All AI Providers",
- "heroDescription": "AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.",
- "getStarted": "Get Started",
- "viewOnGithub": "View on GitHub",
- "powerfulFeatures": "Powerful Features",
- "featuresSubtitle": "Everything you need to manage your AI infrastructure in one place, built for scale.",
- "featureUnifiedEndpointTitle": "Unified Endpoint",
- "featureUnifiedEndpointDesc": "Access all providers via a single standard API URL.",
- "featureEasySetupTitle": "Easy Setup",
- "featureEasySetupDesc": "Get up and running in minutes with npx command.",
- "featureModelFallbackTitle": "Model Fallback",
- "featureModelFallbackDesc": "Automatically switch providers on failure or high latency.",
- "featureUsageTrackingTitle": "Usage Tracking",
- "featureUsageTrackingDesc": "Detailed analytics and cost monitoring across all models.",
- "featureOAuthApiKeysTitle": "OAuth & API Keys",
- "featureOAuthApiKeysDesc": "Securely manage credentials in one vault.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncDesc": "Sync your configurations across devices instantly.",
- "featureCliSupportTitle": "CLI Support",
- "featureCliSupportDesc": "Works with Claude Code, Codex, Cline, Cursor, and more.",
- "featureDashboardTitle": "Dashboard",
- "featureDashboardDesc": "Visual dashboard for real-time traffic analysis.",
- "howItWorks": "How OmniRoute Works",
- "howItWorksDescription": "Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.",
- "howItWorksStep1Title": "1. CLI & SDKs",
- "howItWorksStep1Description": "Your requests start from your favorite tools or our unified SDK. Just change the base URL.",
+ "versionLive": "v1.0 اب دستیاب ہے",
+ "oneEndpoint": "ایک اینڈ پوائنٹ،",
+ "allProviders": "تمام AI فراہم کنندگان کے لیے",
+ "heroDescription": "ویب ڈیش بورڈ کے ساتھ AI اینڈ پوائنٹ پراکسی — CLIProxyAPI کا JavaScript پورٹ۔ Claude Code، OpenAI Codex، Cline، RooCode اور دیگر CLI ٹولز کے ساتھ بلارکاوٹ کام کرتا ہے۔",
+ "getStarted": "شروع کریں",
+ "viewOnGithub": "GitHub پر دیکھیں",
+ "powerfulFeatures": "طاقتور خصوصیات",
+ "featuresSubtitle": "اپنے AI انفراسٹرکچر کو ایک ہی جگہ منظم کرنے کے لیے درکار ہر چیز، بڑے پیمانے پر کام کرنے کے لیے تیار۔",
+ "featureUnifiedEndpointTitle": "متحدہ اینڈ پوائنٹ",
+ "featureUnifiedEndpointDesc": "ایک معیاری API URL کے ذریعے تمام فراہم کنندگان تک رسائی حاصل کریں۔",
+ "featureEasySetupTitle": "آسان سیٹ اپ",
+ "featureEasySetupDesc": "npx کمانڈ کے ساتھ چند منٹوں میں کام شروع کریں۔",
+ "featureModelFallbackTitle": "ماڈل فال بیک",
+ "featureModelFallbackDesc": "ناکامی یا زیادہ تاخیر کی صورت میں خودکار طور پر فراہم کنندہ تبدیل کریں۔",
+ "featureUsageTrackingTitle": "استعمال کی نگرانی",
+ "featureUsageTrackingDesc": "تمام ماڈلز کے لیے تفصیلی تجزیات اور لاگت کی نگرانی۔",
+ "featureOAuthApiKeysTitle": "OAuth اور API کیز",
+ "featureOAuthApiKeysDesc": "تمام اسناد کو ایک محفوظ والٹ میں منظم کریں۔",
+ "featureCloudSyncTitle": "کلاؤڈ سنک",
+ "featureCloudSyncDesc": "اپنی کنفیگریشنز کو تمام ڈیوائسز پر فوری طور پر ہم آہنگ کریں۔",
+ "featureCliSupportTitle": "CLI سپورٹ",
+ "featureCliSupportDesc": "Claude Code، Codex، Cline، Cursor اور مزید ٹولز کے ساتھ کام کرتا ہے۔",
+ "featureDashboardTitle": "ڈیش بورڈ",
+ "featureDashboardDesc": "ریئل ٹائم ٹریفک کے تجزیے کے لیے بصری ڈیش بورڈ۔",
+ "howItWorks": "OmniRoute کیسے کام کرتا ہے",
+ "howItWorksDescription": "ڈیٹا آپ کی ایپلیکیشن سے ہماری ذہین روٹنگ تہہ کے ذریعے بلارکاوٹ بہتا ہوا کام کے لیے موزوں ترین فراہم کنندہ تک پہنچتا ہے۔",
+ "howItWorksStep1Title": "1. CLI اور SDKs",
+ "howItWorksStep1Description": "آپ کی درخواستیں آپ کے پسندیدہ ٹولز یا ہماری متحدہ SDK سے شروع ہوتی ہیں۔ بس بنیادی URL تبدیل کریں۔",
"howItWorksStep2Title": "2. OmniRoute Hub",
- "howItWorksStep2Description": "Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.",
- "howItWorksStep3Title": "3. AI Providers",
- "howItWorksStep3Description": "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.",
- "getStartedIn30Seconds": "Get Started in 30 Seconds",
- "getStartedDescription": "Install OmniRoute, configure your providers via web dashboard, and start routing AI requests.",
- "installOmniRoute": "Install OmniRoute",
- "installStepDescription": "Run npx command to start the server instantly",
- "openDashboard": "Open Dashboard",
- "openDashboardStepDescription": "Configure providers and API keys via web interface",
- "routeRequests": "Route Requests",
- "routeRequestsStepDescription": "Point your CLI tools to {endpoint}",
- "terminal": "terminal",
- "copy": "Copy",
- "copied": "✓ Copied",
- "startingOmniRoute": "Starting OmniRoute...",
- "serverRunningOnLabel": "Server running on",
- "dashboardLabel": "Dashboard",
- "readyToRoute": "Ready to route! ✓",
- "configureProvidersNote": "📝 Configure providers in dashboard or use environment variables",
- "dataLocation": "Data Location:",
+ "howItWorksStep2Description": "ہمارا انجن پرامپٹ کا تجزیہ کرتا ہے، فراہم کنندہ کی حالت جانچتا ہے، اور کم ترین تاخیر یا لاگت کے مطابق روٹ کرتا ہے۔",
+ "howItWorksStep3Title": "3. AI فراہم کنندگان",
+ "howItWorksStep3Description": "درخواست کو OpenAI، Anthropic، Gemini یا دیگر فراہم کنندگان فوری طور پر مکمل کرتے ہیں۔",
+ "getStartedIn30Seconds": "30 سیکنڈ میں شروع کریں",
+ "getStartedDescription": "OmniRoute انسٹال کریں، ویب ڈیش بورڈ کے ذریعے اپنے فراہم کنندگان کنفیگر کریں، اور AI درخواستوں کی روٹنگ شروع کریں۔",
+ "installOmniRoute": "OmniRoute انسٹال کریں",
+ "installStepDescription": "سرور فوری طور پر شروع کرنے کے لیے npx کمانڈ چلائیں",
+ "openDashboard": "ڈیش بورڈ کھولیں",
+ "openDashboardStepDescription": "ویب انٹرفیس کے ذریعے فراہم کنندگان اور API کیز کنفیگر کریں",
+ "routeRequests": "درخواستیں روٹ کریں",
+ "routeRequestsStepDescription": "اپنے CLI ٹولز کو {endpoint} کی جانب بھیجیں",
+ "terminal": "ٹرمینل",
+ "copy": "کاپی کریں",
+ "copied": "✓ کاپی ہو گیا",
+ "startingOmniRoute": "OmniRoute شروع ہو رہا ہے...",
+ "serverRunningOnLabel": "سرور اس پتے پر چل رہا ہے",
+ "dashboardLabel": "ڈیش بورڈ",
+ "readyToRoute": "روٹنگ کے لیے تیار! ✓",
+ "configureProvidersNote": "📝 ڈیش بورڈ میں فراہم کنندگان کو ترتیب دیں یا ماحولیاتی متغیرات استعمال کریں",
+ "dataLocation": "ڈیٹا کا مقام:",
"dataLocationMacLinux": "macOS/Linux:",
"dataLocationWindows": "Windows:",
- "product": "Product",
- "dashboardLink": "Dashboard",
- "changelog": "Changelog",
- "resources": "Resources",
- "documentation": "Documentation",
+ "product": "پروڈکٹ",
+ "dashboardLink": "ڈیش بورڈ",
+ "changelog": "تبدیلیوں کی فہرست",
+ "resources": "وسائل",
+ "documentation": "دستاویزات",
"npm": "NPM",
- "legal": "Legal",
- "mitLicense": "MIT License",
- "footerTagline": "The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease.",
- "copyright": "© {year} OmniRoute. All rights reserved.",
+ "legal": "قانونی",
+ "mitLicense": "MIT لائسنس",
+ "footerTagline": "AI جنریشن کے لیے متحدہ اینڈ پوائنٹ۔ اپنے AI فراہم کنندگان کو آسانی سے مربوط، روٹ اور منظم کریں۔",
+ "copyright": "© {year} OmniRoute۔ جملہ حقوق محفوظ ہیں۔",
"flowToolClaudeCode": "Claude Code",
"flowToolOpenAICodex": "OpenAI Codex",
"flowToolCline": "Cline",
@@ -10000,11 +10011,11 @@
"flowProviderAnthropic": "Anthropic",
"flowProviderGemini": "Gemini",
"flowProviderGithubCopilot": "GitHub Copilot",
- "interactiveDiagram": "Interactive diagram visible on desktop",
- "ctaTitle": "Ready to Simplify Your AI Infrastructure?",
- "ctaDescription": "Join developers who are streamlining their AI integrations with OmniRoute. Open source and free to start.",
- "startFree": "Start Free",
- "readDocumentation": "Read Documentation",
+ "interactiveDiagram": "انٹرایکٹو خاکہ ڈیسک ٹاپ پر نظر آتا ہے",
+ "ctaTitle": "اپنے AI انفراسٹرکچر کو آسان بنانے کے لیے تیار ہیں؟",
+ "ctaDescription": "ان ڈویلپرز میں شامل ہوں جو OmniRoute کے ذریعے اپنے AI انضمامات کو ہموار بنا رہے ہیں۔ یہ اوپن سورس ہے اور آغاز مفت ہے۔",
+ "startFree": "مفت شروع کریں",
+ "readDocumentation": "دستاویزات پڑھیں",
"company": "کمپنی",
"pricing": "قیمتیں",
"apiReference": "API حوالہ",
@@ -10019,45 +10030,45 @@
"communityDiscussions": "کمیونٹی مباحثے"
},
"docs": {
- "title": "Documentation",
- "quickStart": "Quick Start",
+ "title": "دستاویزات",
+ "quickStart": "فوری آغاز",
"deploymentGuides": "تعیناتی کے رہنما",
- "features": "Features",
- "supportedProviders": "Supported Providers",
- "supportedProvidersToc": "Providers",
- "commonUseCases": "Common Use Cases",
- "clientCompatibility": "Client Compatibility",
- "protocolsToc": "Protocols",
- "apiReference": "API Reference",
- "managementApiReference": "Management API Reference",
- "managementApiDescription": "Automation endpoints for proxy registry, scope assignments, and legacy proxy migration.",
- "method": "Method",
- "path": "Path",
- "notes": "Notes",
- "modelPrefixes": "Model Prefixes",
- "prefix": "Prefix",
- "troubleshooting": "Troubleshooting",
- "supportsChat": "Supports both chat and responses endpoints.",
- "oauthAutoRefresh": "OAuth connection with automatic token refresh.",
- "fullStreaming": "Full streaming support for all models.",
- "docsLabel": "Docs",
+ "features": "خصوصیات",
+ "supportedProviders": "معاونت یافتہ فراہم کنندگان",
+ "supportedProvidersToc": "فراہم کنندگان",
+ "commonUseCases": "عام استعمال کے طریقے",
+ "clientCompatibility": "کلائنٹ کی مطابقت",
+ "protocolsToc": "پروٹوکولز",
+ "apiReference": "API حوالہ",
+ "managementApiReference": "مینجمنٹ API حوالہ",
+ "managementApiDescription": "پراکسی رجسٹری، اسکوپ تفویضات اور پرانی پراکسی کی منتقلی کے لیے خودکار اینڈ پوائنٹس۔",
+ "method": "طریقہ",
+ "path": "پاتھ",
+ "notes": "نوٹس",
+ "modelPrefixes": "ماڈل کے سابقے",
+ "prefix": "سابقہ",
+ "troubleshooting": "مسائل کا حل",
+ "supportsChat": "چیٹ اور ریسپانسز، دونوں اینڈ پوائنٹس کو سپورٹ کرتا ہے۔",
+ "oauthAutoRefresh": "خودکار ٹوکن ریفریش کے ساتھ OAuth کنکشن۔",
+ "fullStreaming": "تمام ماڈلز کے لیے مکمل اسٹریمنگ سپورٹ۔",
+ "docsLabel": "دستاویزات",
"docsHeroDescription": "AI gateway for multi-provider LLMs. One endpoint for OpenAI, Anthropic, Gemini, DeepSeek, GitHub Copilot, Claude Code, Cursor, and 100+ more providers.",
- "openDashboard": "Open Dashboard",
- "endpointPage": "Endpoint Page",
+ "openDashboard": "ڈیش بورڈ کھولیں",
+ "endpointPage": "اینڈ پوائنٹ کا صفحہ",
"github": "GitHub",
- "reportIssue": "Report Issue",
- "onThisPage": "On this page",
- "documentationVersion": "Documentation - v{version}",
- "quickStartStep1Title": "1. Install and run",
- "quickStartStep1Prefix": "Run",
- "quickStartStep1Middle": "or clone from GitHub and run",
- "quickStartStep2Title": "2. Create API key",
- "quickStartStep2Text": "Go to Endpoint -> Registered Keys. Generate one key per environment.",
- "quickStartStep3Title": "3. Connect providers",
- "quickStartStep3Text": "Add provider accounts via OAuth login, API key, or free-tier auto-connect.",
- "quickStartStep4Title": "4. Set client base URL",
- "quickStartStep4Prefix": "Point your IDE or API client to",
- "quickStartStep4Suffix": "Use provider prefix, for example",
+ "reportIssue": "مسئلہ رپورٹ کریں",
+ "onThisPage": "اس صفحے پر",
+ "documentationVersion": "دستاویزات - v{version}",
+ "quickStartStep1Title": "1. انسٹال کریں اور چلائیں",
+ "quickStartStep1Prefix": "چلائیں",
+ "quickStartStep1Middle": "یا GitHub سے کلون کر کے چلائیں",
+ "quickStartStep2Title": "2. API کلید بنائیں",
+ "quickStartStep2Text": "Endpoint -> Registered Keys پر جائیں۔ ہر ماحول کے لیے ایک کلید بنائیں۔",
+ "quickStartStep3Title": "3. فراہم کنندگان کو منسلک کریں",
+ "quickStartStep3Text": "OAuth لاگ اِن، API کلید، یا مفت درجے کے خودکار کنکشن کے ذریعے فراہم کنندگان کے اکاؤنٹس شامل کریں۔",
+ "quickStartStep4Title": "4. کلائنٹ کا بنیادی URL سیٹ کریں",
+ "quickStartStep4Prefix": "اپنے IDE یا API کلائنٹ کو اس جانب پوائنٹ کریں",
+ "quickStartStep4Suffix": "فراہم کنندہ کا سابقہ استعمال کریں، مثلاً",
"deploySetupTitle": "سیٹ اپ گائیڈ",
"deploySetupText": "OmniRoute کے لیے مرحلہ وار تنصیب، ماحول کی ترتیب، اور پہلی بار واک تھرو۔",
"deployElectronTitle": "الیکٹران ڈیسک ٹاپ",
@@ -10071,165 +10082,165 @@
"deployPwaTitle": "پی ڈبلیو اے",
"deployPwaText": "OmniRoute کو Android، iOS اور ڈیسک ٹاپ براؤزرز پر بطور پروگریسو ویب ایپ انسٹال کریں۔",
"deployTermuxTitle": "Termux (Android)",
- "deployTermuxText": "Run OmniRoute headless on Android via Termux. Access the dashboard from your mobile browser.",
- "featureRoutingTitle": "Multi-Provider Routing",
- "featureRoutingText": "Route requests to 30+ AI providers through a single OpenAI-compatible endpoint. Supports chat, responses, audio, and image APIs.",
- "featureCombosTitle": "Combos and Balancing",
- "featureCombosText": "Create model combos with fallback chains and balancing strategies: round-robin, priority, random, least-used, and cost-optimized.",
- "featureUsageTitle": "Usage and Cost Tracking",
- "featureUsageText": "Real-time token counting, cost calculation per provider/model, and detailed usage breakdown by API key and account.",
- "featureAnalyticsTitle": "Analytics Dashboard",
- "featureAnalyticsText": "Visual analytics with charts for requests, tokens, errors, latency, costs, and model popularity over time.",
- "featureHealthTitle": "Health Monitoring",
- "featureHealthText": "Live health checks, provider status, circuit breaker states, and automatic rate limit detection with exponential backoff.",
- "featureCliTitle": "CLI Tools",
- "featureCliText": "Manage IDE configurations, export/import backups, discover codex profiles, and configure settings from the dashboard.",
- "featureSecurityTitle": "Security and Policies",
- "featureSecurityText": "API key authentication, IP filtering, prompt injection guard, domain policies, session management, and audit logging.",
- "featureCloudSyncTitle": "Cloud Sync",
- "featureCloudSyncText": "Sync your configuration to Cloudflare Workers for remote access with encrypted credentials and automatic failover.",
- "providersAcrossConnectionTypes": "{count} providers across three connection types.",
- "manageProviders": "Manage Providers",
- "providersCount": "{count} providers",
- "providerTypeFree": "Free Tier",
+ "deployTermuxText": "Termux کے ذریعے Android پر OmniRoute کو ہیڈ لیس موڈ میں چلائیں۔ اپنے موبائل براؤزر سے ڈیش بورڈ تک رسائی حاصل کریں۔",
+ "featureRoutingTitle": "متعدد فراہم کنندگان کی روٹنگ",
+ "featureRoutingText": "ایک واحد OpenAI سے ہم آہنگ اینڈ پوائنٹ کے ذریعے 30+ AI فراہم کنندگان کو درخواستیں بھیجیں۔ چیٹ، ریسپانسز، آڈیو اور امیج APIs کو سپورٹ کرتا ہے۔",
+ "featureCombosTitle": "کمبوز اور توازن کاری",
+ "featureCombosText": "فال بیک چینز اور توازن کی حکمت عملیوں کے ساتھ ماڈل کمبوز بنائیں: راؤنڈ رابن، ترجیح، بے ترتیب، سب سے کم استعمال شدہ، اور لاگت کے لحاظ سے بہتر۔",
+ "featureUsageTitle": "استعمال اور لاگت کی ٹریکنگ",
+ "featureUsageText": "ریئل ٹائم ٹوکن گنتی، ہر فراہم کنندہ/ماڈل کے لیے لاگت کا حساب، اور API کلید و اکاؤنٹ کے لحاظ سے استعمال کی تفصیلی تقسیم۔",
+ "featureAnalyticsTitle": "تجزیاتی ڈیش بورڈ",
+ "featureAnalyticsText": "وقت کے ساتھ درخواستوں، ٹوکنز، خرابیوں، تاخیر، لاگتوں، اور ماڈلز کی مقبولیت کے لیے چارٹس پر مبنی بصری تجزیات۔",
+ "featureHealthTitle": "صحت کی نگرانی",
+ "featureHealthText": "لائیو صحت کی جانچ، فراہم کنندگان کی حیثیت، سرکٹ بریکر کی حالتیں، اور ایکسپونینشل بیک آف کے ساتھ شرح کی حد کی خودکار شناخت۔",
+ "featureCliTitle": "CLI ٹولز",
+ "featureCliText": "IDE کنفیگریشنز کا نظم کریں، بیک اپس ایکسپورٹ/امپورٹ کریں، codex پروفائلز دریافت کریں، اور ڈیش بورڈ سے سیٹنگز کنفیگر کریں۔",
+ "featureSecurityTitle": "سیکیورٹی اور پالیسیاں",
+ "featureSecurityText": "API کلید کی توثیق، IP فلٹرنگ، پرامپٹ انجیکشن سے تحفظ، ڈومین پالیسیاں، سیشن مینجمنٹ، اور آڈٹ لاگنگ۔",
+ "featureCloudSyncTitle": "کلاؤڈ مطابقت پذیری",
+ "featureCloudSyncText": "انکرپٹ شدہ اسناد اور خودکار فیل اوور کے ساتھ دور سے رسائی کے لیے اپنی کنفیگریشن کو Cloudflare Workers سے مطابقت پذیر کریں۔",
+ "providersAcrossConnectionTypes": "کنکشن کی تین اقسام میں {count} فراہم کنندگان۔",
+ "manageProviders": "پرووائیڈرز کا نظم کریں",
+ "providersCount": "{count} پرووائیڈرز",
+ "providerTypeFree": "مفت درجہ",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
- "useCaseSingleEndpointTitle": "Single endpoint for many providers",
- "useCaseSingleEndpointText": "Point clients to one base URL and route by model prefix (for example: gh/, cc/, kr/, openai/).",
- "useCaseFallbackTitle": "Fallback and model switching with combos",
- "useCaseFallbackText": "Create combo models in Dashboard and keep client config stable while providers rotate internally.",
- "useCaseUsageVisibilityTitle": "Usage, cost and debug visibility",
- "useCaseUsageVisibilityText": "Track tokens and cost by provider, account, and API key in Usage and Analytics tabs.",
+ "providerTypeApiKey": "API کلید",
+ "useCaseSingleEndpointTitle": "متعدد پرووائیڈرز کے لیے ایک اینڈ پوائنٹ",
+ "useCaseSingleEndpointText": "کلائنٹس کو ایک بنیادی URL کی طرف متوجہ کریں اور ماڈل کے سابقے کے لحاظ سے روٹ کریں (مثلاً: gh/، cc/، kr/، openai/)۔",
+ "useCaseFallbackTitle": "کومبوز کے ساتھ فال بیک اور ماڈل کی تبدیلی",
+ "useCaseFallbackText": "Dashboard میں کومبو ماڈلز بنائیں اور پرووائیڈرز کی اندرونی تبدیلی کے دوران کلائنٹ کنفیگریشن کو مستحکم رکھیں۔",
+ "useCaseUsageVisibilityTitle": "استعمال، لاگت اور ڈیبگ کی مرئیت",
+ "useCaseUsageVisibilityText": "Usage اور Analytics ٹیبز میں پرووائیڈر، اکاؤنٹ اور API کلید کے لحاظ سے ٹوکنز اور لاگت ٹریک کریں۔",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
- "chatEndpointLabel": "Chat endpoint",
- "modelRecommendationLabel": "Model recommendation: explicit prefix",
- "clientCodexTitle": "Codex / GitHub Copilot Models",
- "clientCodexBullet1": "Use model IDs with",
- "clientCodexBullet2": "Codex-family models auto-route to",
- "clientCodexBullet3": "Non-Codex models continue on",
+ "baseUrlLabel": "بنیادی URL",
+ "chatEndpointLabel": "چیٹ اینڈ پوائنٹ",
+ "modelRecommendationLabel": "ماڈل کی تجویز: واضح سابقہ",
+ "clientCodexTitle": "Codex / GitHub Copilot ماڈلز",
+ "clientCodexBullet1": "ایسی ماڈل IDs استعمال کریں جن کے ساتھ",
+ "clientCodexBullet2": "Codex فیملی کے ماڈلز خودکار طور پر اس طرف روٹ ہوتے ہیں",
+ "clientCodexBullet3": "غیر Codex ماڈلز بدستور اس پر چلتے ہیں",
"clientCursorTitle": "Cursor IDE",
- "clientCursorBullet1": "Use",
- "clientCursorBullet1Suffix": "prefix for Cursor models.",
- "clientCursorBullet2": "OAuth connection - login from the Providers page.",
+ "clientCursorBullet1": "استعمال کریں",
+ "clientCursorBullet1Suffix": "Cursor ماڈلز کے لیے سابقہ استعمال کریں۔",
+ "clientCursorBullet2": "OAuth کنکشن — Providers صفحے سے لاگ اِن کریں۔",
"clientClaudeTitle": "Claude Code / Antigravity",
- "clientClaudeBullet1Prefix": "Use",
- "clientClaudeBullet1Middle": "(Claude) or",
- "clientClaudeBullet1Suffix": "(Antigravity) prefix.",
+ "clientClaudeBullet1Prefix": "استعمال کریں",
+ "clientClaudeBullet1Middle": "(Claude) یا",
+ "clientClaudeBullet1Suffix": "(Antigravity) سابقہ۔",
"clientWindsurfTitle": "Windsurf",
- "clientWindsurfBullet1": "Use OmniRoute as an OpenAI-compatible base URL and keep explicit provider prefixes for deterministic routing.",
- "clientWindsurfBullet2": "Point models to `/v1/chat/completions` for general traffic and preserve `/v1/responses` for Codex-style flows.",
- "clientWindsurfBullet3": "Use Dashboard -> CLI Tools for a ready-made Windsurf configuration guide.",
+ "clientWindsurfBullet1": "OmniRoute کو OpenAI سے ہم آہنگ بنیادی URL کے طور پر استعمال کریں اور متعین روٹنگ کے لیے واضح پرووائیڈر سابقے برقرار رکھیں۔",
+ "clientWindsurfBullet2": "عمومی ٹریفک کے لیے ماڈلز کو `/v1/chat/completions` کی طرف متوجہ کریں اور Codex طرز کے فلوز کے لیے `/v1/responses` برقرار رکھیں۔",
+ "clientWindsurfBullet3": "تیار شدہ Windsurf کنفیگریشن گائیڈ کے لیے Dashboard -> CLI Tools استعمال کریں۔",
"clientClineTitle": "Cline",
- "clientClineBullet1": "Cline works best with explicit provider/model prefixes so the router never has to guess the backend.",
- "clientClineBullet2": "Use `/v1/chat/completions` for general models and reuse the same OmniRoute base URL across different accounts.",
- "clientClineBullet3": "Use the Providers dashboard to validate OAuth/API key before debugging Cline runtime issues.",
+ "clientClineBullet1": "Cline واضح پرووائیڈر/ماڈل سابقوں کے ساتھ بہترین کام کرتا ہے، تاکہ راؤٹر کو کبھی بیک اینڈ کا اندازہ نہ لگانا پڑے۔",
+ "clientClineBullet2": "عمومی ماڈلز کے لیے `/v1/chat/completions` استعمال کریں اور مختلف اکاؤنٹس میں وہی OmniRoute بنیادی URL دوبارہ استعمال کریں۔",
+ "clientClineBullet3": "Cline کے رن ٹائم مسائل کو ڈیبگ کرنے سے پہلے OAuth/API کلید کی توثیق کے لیے Providers ڈیش بورڈ استعمال کریں۔",
"clientKimiTitle": "Kimi Coding",
- "clientKimiBullet1": "Use OmniRoute as a stable base URL while rotating accounts or provider combos underneath.",
- "clientKimiBullet2": "Prefer prefixed models in coding flows so fallback and audit trail remain explicit.",
- "clientKimiBullet3": "Use `/v1/responses` when you want native Responses-style routing for tool-using clients.",
- "protocolsTitle": "Protocols: MCP & A2A",
- "protocolsDescription": "OmniRoute exposes two operational protocols in addition to OpenAI-compatible APIs: MCP for tool execution and A2A for agent-to-agent workflows.",
+ "clientKimiBullet1": "اکاؤنٹس یا پرووائیڈر کومبوز کو پسِ پردہ تبدیل کرتے ہوئے OmniRoute کو ایک مستحکم بنیادی URL کے طور پر استعمال کریں۔",
+ "clientKimiBullet2": "کوڈنگ فلوز میں سابقے والے ماڈلز کو ترجیح دیں تاکہ فال بیک اور آڈٹ ٹریل واضح رہیں۔",
+ "clientKimiBullet3": "جب آپ ٹولز استعمال کرنے والے کلائنٹس کے لیے مقامی Responses طرز کی روٹنگ چاہتے ہوں تو `/v1/responses` استعمال کریں۔",
+ "protocolsTitle": "پروٹوکولز: MCP اور A2A",
+ "protocolsDescription": "OmniRoute، OpenAI سے ہم آہنگ APIs کے علاوہ دو آپریشنل پروٹوکولز فراہم کرتا ہے: ٹولز چلانے کے لیے MCP اور ایجنٹ سے ایجنٹ ورک فلوز کے لیے A2A۔",
"protocolMcpTitle": "MCP (Model Context Protocol)",
- "protocolMcpDesc": "Use MCP over stdio to let clients discover and call OmniRoute tools with audit visibility.",
- "protocolMcpStep1": "Start MCP transport with `omniroute --mcp`.",
- "protocolMcpStep2": "Point your MCP client to stdio transport.",
- "protocolMcpStep3": "Call `omniroute_get_health` and `omniroute_list_combos` to validate connectivity.",
+ "protocolMcpDesc": "کلائنٹس کو آڈٹ کی مرئیت کے ساتھ OmniRoute ٹولز دریافت اور کال کرنے دینے کے لیے stdio پر MCP استعمال کریں۔",
+ "protocolMcpStep1": "MCP ٹرانسپورٹ کو `omniroute --mcp` کے ساتھ شروع کریں۔",
+ "protocolMcpStep2": "اپنے MCP کلائنٹ کو stdio ٹرانسپورٹ کی طرف متوجہ کریں۔",
+ "protocolMcpStep3": "کنیکٹیویٹی کی توثیق کے لیے `omniroute_get_health` اور `omniroute_list_combos` کو کال کریں۔",
"protocolA2aTitle": "A2A (Agent2Agent)",
- "protocolA2aDesc": "Use A2A JSON-RPC to submit tasks synchronously or via SSE streaming.",
- "protocolA2aStep1": "Read `/.well-known/agent.json` for agent discovery.",
- "protocolA2aStep2": "Send `message/send` or `message/stream` requests to `POST /a2a`.",
- "protocolA2aStep3": "Manage task lifecycle with `tasks/get` and `tasks/cancel`.",
- "protocolTroubleshootingTitle": "Protocol Troubleshooting",
- "protocolTroubleshooting1": "If MCP status is offline, verify the stdio process is running and heartbeat file is updating.",
- "protocolTroubleshooting2": "If A2A tasks stay in `working`, inspect `/api/a2a/tasks/:id` and stream events for terminal state.",
- "protocolTroubleshooting3": "Use `/dashboard/mcp` and `/dashboard/a2a` for operational controls and audit visibility.",
- "endpointChatNote": "OpenAI-compatible chat endpoint (default).",
- "endpointResponsesNote": "Responses API endpoint (Codex, o-series).",
- "endpointModelsNote": "Model catalog for all connected providers.",
- "endpointAudioNote": "Audio transcription (Deepgram, AssemblyAI).",
- "endpointSpeechNote": "Text-to-speech generation (ElevenLabs, OpenAI TTS).",
- "endpointEmbeddingsNote": "Text embedding generation (OpenAI, Cohere, Voyage).",
- "endpointImagesNote": "Image generation (NanoBanana).",
- "endpointRewriteChatNote": "Rewrite helper for clients without /v1.",
- "endpointRewriteResponsesNote": "Rewrite helper for Responses without /v1.",
- "endpointRewriteModelsNote": "Rewrite helper for model discovery without /v1.",
- "mgmtProxiesListNote": "List saved proxy registry items (supports pagination).",
- "mgmtProxiesCreateNote": "Create a reusable proxy item in the registry.",
- "mgmtProxiesHealthNote": "Get 24h/rolling health metrics per saved proxy from proxy logs.",
- "mgmtProxiesBulkAssignNote": "Assign or clear one proxy across many scope IDs in one request.",
- "mgmtAssignmentsListNote": "List proxy assignments by scope, scope_id, or proxy_id.",
- "mgmtAssignmentsUpdateNote": "Assign or clear proxy for global/provider/account/combo scope.",
- "mgmtLegacyMigrationNote": "Import legacy proxyConfig maps into registry assignments.",
- "modelPrefixesDescriptionStart": "Use the provider prefix before the model name to route to a specific provider. Example:",
- "modelPrefixesDescriptionEnd": "routes to GitHub Copilot.",
- "provider": "Provider",
- "type": "Type",
- "troubleshootingModelRouting": "If the client fails with model routing, use explicit provider/model (for example: gh/gpt-5.1-codex).",
- "troubleshootingAmbiguousModels": "If you receive ambiguous model errors, pick a provider prefix instead of a bare model ID.",
- "troubleshootingCodexFamily": "For GitHub Codex-family models, keep model as gh/codex-model; router selects /responses automatically.",
- "troubleshootingTestConnection": "Use Dashboard > Providers > Test Connection before testing from IDEs or external clients.",
- "troubleshootingCircuitBreaker": "If a provider shows circuit breaker open, wait for the cooldown or check Health page for details.",
- "troubleshootingOAuth": "For OAuth providers, re-authenticate if tokens expire. Check the provider card status indicator.",
- "endpointCompletionsNote": "Legacy completions endpoint for text generation.",
- "endpointModerationsNote": "Content moderation and safety classification.",
- "endpointRerankNote": "Document reranking for retrieval-augmented generation (Cohere, Jina).",
- "endpointSearchNote": "Web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity).",
- "endpointSearchAnalyticsNote": "Analytics and metrics for search requests.",
- "endpointVideoNote": "Video generation (ComfyUI, SD WebUI workflows).",
- "endpointMusicNote": "Music generation via ComfyUI workflows.",
- "endpointMessagesNote": "Anthropic-native messages endpoint.",
- "endpointCountTokensNote": "Count tokens for a given message payload.",
- "endpointFilesNote": "File upload for multimodal inputs.",
- "endpointBatchesNote": "Batch processing for bulk API requests.",
- "endpointWsNote": "WebSocket endpoint for real-time streaming.",
- "mgmtProvidersListNote": "List all registered provider connections.",
- "mgmtProvidersCreateNote": "Create a new provider connection.",
- "mgmtProvidersUpdateNote": "Update an existing provider connection.",
- "mgmtProvidersDeleteNote": "Delete a provider connection.",
- "mgmtProvidersTestNote": "Test connectivity and authentication for a provider.",
- "mgmtProvidersModelsNote": "List available models for a specific provider.",
- "mgmtSettingsGetNote": "Retrieve current application settings.",
- "mgmtSettingsUpdateNote": "Update application settings.",
- "mgmtPayloadRulesGetNote": "Get payload transformation rules.",
- "mgmtPayloadRulesUpdateNote": "Update payload transformation rules.",
- "mcpToolsTitle": "MCP Tools",
- "mcpToolsDescription": "OmniRoute exposes {count} tools via Model Context Protocol for agent orchestration.",
- "mcpToolsCount": "{count} tools",
- "mcpToolsToc": "MCP Tools",
- "mcpToolsRoutingTitle": "Routing & Discovery",
- "mcpToolsRoutingDesc": "Health checks, combo management, quota monitoring, cost reporting, and model catalog access.",
- "mcpToolsOperationsTitle": "Operations & Strategy",
- "mcpToolsOperationsDesc": "Route simulation, budget guards, strategy switching, resilience profiles, and provider metrics.",
- "mcpToolsCacheTitle": "Cache Management",
- "mcpToolsCacheDesc": "View cache statistics and flush semantic or signature caches.",
+ "protocolA2aDesc": "ٹاسکس کو ہم وقت یا SSE اسٹریمنگ کے ذریعے جمع کرانے کے لیے A2A JSON-RPC استعمال کریں۔",
+ "protocolA2aStep1": "ایجنٹ کی دریافت کے لیے `/.well-known/agent.json` پڑھیں۔",
+ "protocolA2aStep2": "`POST /a2a` پر `message/send` یا `message/stream` درخواستیں بھیجیں۔",
+ "protocolA2aStep3": "`tasks/get` اور `tasks/cancel` کے ذریعے ٹاسک کے لائف سائیکل کا نظم کریں۔",
+ "protocolTroubleshootingTitle": "پروٹوکول کی خرابیوں کا ازالہ",
+ "protocolTroubleshooting1": "اگر MCP اسٹیٹس آف لائن ہو تو تصدیق کریں کہ stdio پراسیس چل رہا ہے اور heartbeat فائل اپ ڈیٹ ہو رہی ہے۔",
+ "protocolTroubleshooting2": "اگر A2A ٹاسکس `working` میں رہیں تو `/api/a2a/tasks/:id` اور حتمی حالت کے لیے اسٹریم ایونٹس کا معائنہ کریں۔",
+ "protocolTroubleshooting3": "آپریشنل کنٹرولز اور آڈٹ کی مرئیت کے لیے `/dashboard/mcp` اور `/dashboard/a2a` استعمال کریں۔",
+ "endpointChatNote": "OpenAI سے ہم آہنگ چیٹ اینڈ پوائنٹ (ڈیفالٹ)۔",
+ "endpointResponsesNote": "Responses API اینڈ پوائنٹ (Codex، o-series)۔",
+ "endpointModelsNote": "تمام منسلک پرووائیڈرز کے لیے ماڈل کیٹلاگ۔",
+ "endpointAudioNote": "آڈیو ٹرانسکرپشن (Deepgram، AssemblyAI)۔",
+ "endpointSpeechNote": "متن سے آواز کی تیاری (ElevenLabs، OpenAI TTS)۔",
+ "endpointEmbeddingsNote": "ٹیکسٹ ایمبیڈنگ کی تیاری (OpenAI، Cohere، Voyage)۔",
+ "endpointImagesNote": "تصویر کی تیاری (NanoBanana)۔",
+ "endpointRewriteChatNote": "ان کلائنٹس کے لیے ری رائٹ معاون جن میں /v1 موجود نہیں۔",
+ "endpointRewriteResponsesNote": "ان Responses کے لیے ری رائٹ معاون جن میں /v1 موجود نہیں۔",
+ "endpointRewriteModelsNote": "ان ماڈل ڈسکوری درخواستوں کے لیے ری رائٹ معاون جن میں /v1 موجود نہیں۔",
+ "mgmtProxiesListNote": "محفوظ شدہ پراکسی رجسٹری آئٹمز کی فہرست دکھائیں (صفحہ بندی معاون ہے)۔",
+ "mgmtProxiesCreateNote": "رجسٹری میں دوبارہ قابلِ استعمال پراکسی آئٹم بنائیں۔",
+ "mgmtProxiesHealthNote": "پراکسی لاگز سے ہر محفوظ شدہ پراکسی کے لیے 24 گھنٹے/رولنگ ہیلتھ میٹرکس حاصل کریں۔",
+ "mgmtProxiesBulkAssignNote": "ایک درخواست میں متعدد اسکوپ IDs پر ایک پراکسی تفویض کریں یا ہٹائیں۔",
+ "mgmtAssignmentsListNote": "scope، scope_id، یا proxy_id کے لحاظ سے پراکسی تفویضات کی فہرست دکھائیں۔",
+ "mgmtAssignmentsUpdateNote": "global/provider/account/combo اسکوپ کے لیے پراکسی تفویض کریں یا ہٹائیں۔",
+ "mgmtLegacyMigrationNote": "پرانے proxyConfig میپس کو رجسٹری تفویضات میں درآمد کریں۔",
+ "modelPrefixesDescriptionStart": "کسی مخصوص پرووائیڈر کو روٹ کرنے کے لیے ماڈل کے نام سے پہلے پرووائیڈر کا سابقہ استعمال کریں۔ مثال:",
+ "modelPrefixesDescriptionEnd": "GitHub Copilot کو روٹ کرتا ہے۔",
+ "provider": "پرووائیڈر",
+ "type": "قسم",
+ "troubleshootingModelRouting": "اگر کلائنٹ ماڈل روٹنگ میں ناکام ہو تو واضح provider/model استعمال کریں (مثال کے طور پر: gh/gpt-5.1-codex)۔",
+ "troubleshootingAmbiguousModels": "اگر آپ کو مبہم ماڈل کی خرابیاں موصول ہوں تو صرف ماڈل ID کے بجائے پرووائیڈر کا سابقہ منتخب کریں۔",
+ "troubleshootingCodexFamily": "GitHub Codex فیملی کے ماڈلز کے لیے ماڈل کو gh/codex-model ہی رکھیں؛ راؤٹر خودکار طور پر /responses منتخب کرتا ہے۔",
+ "troubleshootingTestConnection": "IDEs یا بیرونی کلائنٹس سے ٹیسٹ کرنے سے پہلے Dashboard > Providers > Test Connection استعمال کریں۔",
+ "troubleshootingCircuitBreaker": "اگر کسی پرووائیڈر کا سرکٹ بریکر کھلا ہوا دکھائی دے تو کول ڈاؤن کا انتظار کریں یا تفصیلات کے لیے Health صفحہ دیکھیں۔",
+ "troubleshootingOAuth": "OAuth پرووائیڈرز کے لیے ٹوکنز کی میعاد ختم ہونے پر دوبارہ تصدیق کریں۔ پرووائیڈر کارڈ کا اسٹیٹس انڈیکیٹر چیک کریں۔",
+ "endpointCompletionsNote": "متن کی تیاری کے لیے پرانا completions اینڈ پوائنٹ۔",
+ "endpointModerationsNote": "مواد کی ماڈریشن اور حفاظتی درجہ بندی۔",
+ "endpointRerankNote": "ریٹریول سے بہتر بنائی گئی جنریشن کے لیے دستاویزات کی دوبارہ درجہ بندی (Cohere، Jina)۔",
+ "endpointSearchNote": "5 پرووائیڈرز کے ساتھ ویب تلاش (Serper، Brave، Exa، Tavily، Perplexity)۔",
+ "endpointSearchAnalyticsNote": "تلاش کی درخواستوں کے لیے تجزیات اور میٹرکس۔",
+ "endpointVideoNote": "ویڈیو جنریشن (ComfyUI، SD WebUI ورک فلوز)۔",
+ "endpointMusicNote": "ComfyUI ورک فلوز کے ذریعے موسیقی کی جنریشن۔",
+ "endpointMessagesNote": "Anthropic کا مقامی پیغامات اینڈ پوائنٹ۔",
+ "endpointCountTokensNote": "دیے گئے پیغام کے پے لوڈ کے ٹوکنز شمار کریں۔",
+ "endpointFilesNote": "ملٹی موڈل اِن پٹس کے لیے فائل اپ لوڈ۔",
+ "endpointBatchesNote": "بڑی تعداد میں API درخواستوں کے لیے بیچ پروسیسنگ۔",
+ "endpointWsNote": "ریئل ٹائم اسٹریمنگ کے لیے WebSocket اینڈ پوائنٹ۔",
+ "mgmtProvidersListNote": "تمام رجسٹرڈ پرووائیڈر کنکشنز کی فہرست دکھائیں۔",
+ "mgmtProvidersCreateNote": "نیا پرووائیڈر کنکشن بنائیں۔",
+ "mgmtProvidersUpdateNote": "موجودہ پرووائیڈر کنکشن اپ ڈیٹ کریں۔",
+ "mgmtProvidersDeleteNote": "پرووائیڈر کنکشن حذف کریں۔",
+ "mgmtProvidersTestNote": "پرووائیڈر کے لیے کنیکٹیویٹی اور توثیق کی جانچ کریں۔",
+ "mgmtProvidersModelsNote": "کسی مخصوص پرووائیڈر کے لیے دستیاب ماڈلز کی فہرست دکھائیں۔",
+ "mgmtSettingsGetNote": "ایپلیکیشن کی موجودہ سیٹنگز حاصل کریں۔",
+ "mgmtSettingsUpdateNote": "ایپلیکیشن کی سیٹنگز اپ ڈیٹ کریں۔",
+ "mgmtPayloadRulesGetNote": "پے لوڈ کی تبدیلی کے قواعد حاصل کریں۔",
+ "mgmtPayloadRulesUpdateNote": "پے لوڈ کی تبدیلی کے قواعد اپ ڈیٹ کریں۔",
+ "mcpToolsTitle": "MCP ٹولز",
+ "mcpToolsDescription": "OmniRoute ایجنٹ آرکیسٹریشن کے لیے Model Context Protocol کے ذریعے {count} ٹولز فراہم کرتا ہے۔",
+ "mcpToolsCount": "{count} ٹولز",
+ "mcpToolsToc": "MCP ٹولز",
+ "mcpToolsRoutingTitle": "راؤٹنگ اور دریافت",
+ "mcpToolsRoutingDesc": "ہیلتھ چیکس، کومبو مینجمنٹ، کوٹا مانیٹرنگ، لاگت کی رپورٹنگ، اور ماڈل کیٹلاگ تک رسائی۔",
+ "mcpToolsOperationsTitle": "آپریشنز اور حکمتِ عملی",
+ "mcpToolsOperationsDesc": "روٹ سیمولیشن، بجٹ گارڈز، حکمتِ عملی کی تبدیلی، لچک پذیری پروفائلز، اور پرووائیڈر میٹرکس۔",
+ "mcpToolsCacheTitle": "کیش مینجمنٹ",
+ "mcpToolsCacheDesc": "کیش کے اعداد و شمار دیکھیں اور سیمینٹک یا سگنیچر کیشز صاف کریں۔",
"mcpToolsCompressionTitle": "کمپریشن انجن",
"mcpToolsCompressionDesc": "RTK/Brotli کمپریشن کو ترتیب دیں، انجنوں کو تبدیل کریں، اور کومبو کے ذریعے کمپریشن اینالیٹکس کا معائنہ کریں۔",
"mcpToolsOneProxyTitle": "1 پراکسی / سرنگیں۔",
"mcpToolsOneProxyDesc": "آؤٹ باؤنڈ پراکسیز کا نظم کریں، رہائشی IPs کو گھمائیں، اور پراکسی ہیلتھ کا معائنہ کریں۔",
- "mcpToolsMemoryTitle": "Memory",
- "mcpToolsMemoryDesc": "Search, add, and clear persistent conversational memory entries.",
- "mcpToolsSkillsTitle": "Skills",
- "mcpToolsSkillsDesc": "List, enable, execute, and monitor custom skill executions.",
- "featureAutoComboTitle": "Auto-Combo",
- "featureAutoComboText": "Automatically create optimized combos based on your connected providers, usage patterns, and model capabilities.",
- "featureSearchTitle": "Web Search",
- "featureSearchText": "Integrated web search with 5 providers (Serper, Brave, Exa, Tavily, Perplexity) including analytics and cost tracking.",
- "featureMemoryTitle": "Memory System",
- "featureMemoryText": "Persistent conversational memory with extraction, injection, retrieval, and summarization across sessions.",
- "featureSkillsTitle": "Skills Framework",
- "featureSkillsText": "Extensible skill system with built-in and custom skills, sandbox execution, request interception, and context injection.",
- "featureAcpTitle": "Agent Communication",
- "featureAcpText": "Agent Communication Protocol (ACP) registry for managing agent-to-agent workflows and tool orchestration.",
- "protocolAcpTitle": "ACP (Agent Communication)",
- "protocolAcpDesc": "Register and manage agents via the ACP registry for inter-agent communication and tool sharing.",
- "protocolAcpStep1": "Navigate to Dashboard → Agents to view registered ACP agents.",
- "protocolAcpStep2": "Register new agents with capabilities and endpoint configuration.",
- "protocolAcpStep3": "Use CLI Tools to configure agent communication channels.",
+ "mcpToolsMemoryTitle": "میموری",
+ "mcpToolsMemoryDesc": "مستقل مکالماتی میموری کے اندراجات تلاش کریں، شامل کریں، اور صاف کریں۔",
+ "mcpToolsSkillsTitle": "اسکلز",
+ "mcpToolsSkillsDesc": "حسبِ ضرورت اسکلز کی کارروائیوں کی فہرست دیکھیں، انہیں فعال کریں، چلائیں، اور مانیٹر کریں۔",
+ "featureAutoComboTitle": "خودکار کومبو",
+ "featureAutoComboText": "اپنے منسلک پرووائیڈرز، استعمال کے پیٹرنز، اور ماڈل کی صلاحیتوں کی بنیاد پر خودکار طور پر موزوں کومبوز بنائیں۔",
+ "featureSearchTitle": "ویب تلاش",
+ "featureSearchText": "5 پرووائیڈرز (Serper، Brave، Exa، Tavily، Perplexity) کے ساتھ مربوط ویب تلاش، بشمول تجزیات اور لاگت کی ٹریکنگ۔",
+ "featureMemoryTitle": "میموری سسٹم",
+ "featureMemoryText": "مختلف سیشنز میں اخذ، شمولیت، بازیافت، اور خلاصہ سازی کے ساتھ مستقل مکالماتی میموری۔",
+ "featureSkillsTitle": "اسکلز فریم ورک",
+ "featureSkillsText": "بلٹ اِن اور حسبِ ضرورت اسکلز، سینڈ باکس ایگزیکیوشن، درخواستوں کی انٹرسیپشن، اور سیاق و سباق کی شمولیت کے ساتھ قابلِ توسیع اسکل سسٹم۔",
+ "featureAcpTitle": "ایجنٹ مواصلات",
+ "featureAcpText": "ایجنٹ سے ایجنٹ کے ورک فلوز اور ٹول آرکیسٹریشن کے انتظام کے لیے ایجنٹ کمیونیکیشن پروٹوکول (ACP) رجسٹری۔",
+ "protocolAcpTitle": "ACP (ایجنٹ مواصلات)",
+ "protocolAcpDesc": "ایجنٹس کے باہمی مواصلات اور ٹولز کے اشتراک کے لیے ACP رجسٹری کے ذریعے ایجنٹس کو رجسٹر اور منظم کریں۔",
+ "protocolAcpStep1": "رجسٹرڈ ACP ایجنٹس دیکھنے کے لیے ڈیش بورڈ → ایجنٹس پر جائیں۔",
+ "protocolAcpStep2": "صلاحیتوں اور اینڈ پوائنٹ کنفیگریشن کے ساتھ نئے ایجنٹس رجسٹر کریں۔",
+ "protocolAcpStep3": "ایجنٹ مواصلاتی چینلز کنفیگر کرنے کے لیے CLI ٹولز استعمال کریں۔",
"metadataTitleTemplate": "%s — OmniRoute دستاویزات",
"metadataDefaultTitle": "OmniRoute دستاویزات",
"metadataDescription": "OmniRoute AI گیٹ وے کے لیے جامع دستاویزات — سیٹ اپ، API، کمپریشن، تعیناتی، اور مزید۔",
- "layoutNavTitle": "OmniRoute Docs",
+ "layoutNavTitle": "OmniRoute دستاویزات",
"layoutHomeLink": "دستاویزات کا گھر",
"layoutDashboardLink": "← ڈیش بورڈ پر واپس جائیں",
"homeTitle": "OmniRoute دستاویزات",
@@ -10272,95 +10283,95 @@
}
},
"legal": {
- "privacyPolicy": "Privacy Policy",
- "termsOfService": "Terms of Service",
- "providerConfigurations": "Provider configurations",
- "apiKeys": "API keys",
- "usageLogs": "Usage logs",
- "applicationSettings": "Application settings",
- "viewExportAnalytics": "View and export usage analytics",
- "clearHistory": "Clear usage history at any time",
- "configureRetention": "Configure log retention policies",
- "backupRestore": "Back up and restore your database",
- "privacyMetadataTitle": "Privacy Policy | OmniRoute",
- "privacyMetadataDescription": "Privacy policy for the OmniRoute AI API proxy router.",
- "termsMetadataTitle": "Terms of Service | OmniRoute",
- "termsMetadataDescription": "Terms of service for the OmniRoute AI API proxy router.",
- "backToHome": "Back to home",
- "lastUpdated": "Last updated: {date}",
- "policyLastUpdatedDate": "February 13, 2026",
+ "privacyPolicy": "رازداری کی پالیسی",
+ "termsOfService": "سروس کی شرائط",
+ "providerConfigurations": "فراہم کنندگان کی کنفیگریشنز",
+ "apiKeys": "API کلیدیں",
+ "usageLogs": "استعمال کے لاگز",
+ "applicationSettings": "ایپلیکیشن کی ترتیبات",
+ "viewExportAnalytics": "استعمال کے تجزیات دیکھیں اور برآمد کریں",
+ "clearHistory": "استعمال کی سرگزشت کسی بھی وقت صاف کریں",
+ "configureRetention": "لاگ برقرار رکھنے کی پالیسیاں کنفیگر کریں",
+ "backupRestore": "اپنے ڈیٹابیس کا بیک اپ لیں اور اسے بحال کریں",
+ "privacyMetadataTitle": "رازداری کی پالیسی | OmniRoute",
+ "privacyMetadataDescription": "OmniRoute AI API پراکسی راؤٹر کے لیے رازداری کی پالیسی۔",
+ "termsMetadataTitle": "سروس کی شرائط | OmniRoute",
+ "termsMetadataDescription": "OmniRoute AI API پراکسی راؤٹر کے لیے سروس کی شرائط۔",
+ "backToHome": "ہوم پیج پر واپس جائیں",
+ "lastUpdated": "آخری بار اپ ڈیٹ کیا گیا: {date}",
+ "policyLastUpdatedDate": "13 فروری، 2026",
"listSeparator": "-",
- "questionsVisit": "Questions? Visit our",
- "githubRepository": "GitHub repository",
- "privacySection1Title": "1. Local-First Architecture",
- "privacySection1Text": "OmniRoute is designed as a local-first application. All data processing and storage occurs entirely on your machine. There is no centralized server collecting your information.",
- "privacySection2Title": "2. Data We Store",
- "privacyDataStoredIn": "The following data is stored locally in",
- "privacyDataProviderConfigurationsDesc": "connection URLs, provider types, and priority settings",
- "privacyDataApiKeysDesc": "encrypted and stored locally for authenticating with AI providers",
- "privacyDataUsageLogsDesc": "request counts, token usage, model names, timestamps, and response times",
- "privacyDataApplicationSettingsDesc": "theme preferences, routing strategy, and combo configurations",
- "privacySection3Title": "3. No Telemetry",
- "privacySection3Text": "OmniRoute does not collect telemetry, analytics, or crash reports. No data is sent to us or any third party. Your usage patterns, API calls, and configurations remain entirely private.",
- "privacySection4Title": "4. Third-Party AI Providers",
- "privacySection4Text": "When you make API calls through OmniRoute, your requests are forwarded to the AI providers you have configured (for example: OpenAI, Anthropic, Google). These providers have their own privacy policies that govern how they handle your data. Please review:",
- "privacyOpenAiPolicy": "OpenAI Privacy Policy",
- "privacyAnthropicPolicy": "Anthropic Privacy Policy",
- "privacyGooglePolicy": "Google Privacy Policy",
- "privacySection5Title": "5. Cloud Sync (Optional)",
- "privacySection5Text": "If you enable the optional cloud sync feature, provider configurations and API keys may be transmitted to a configured cloud endpoint. This feature is disabled by default and requires explicit opt-in.",
- "privacySection6Title": "6. Logging",
- "privacyLoggingIntro": "Request logs can be configured through the dashboard settings. You can:",
- "privacySection7Title": "7. Your Rights",
- "privacySection7TextStart": "Since all data is stored locally, you have full control. You can delete your data at any time by removing the",
- "privacySection7TextEnd": "directory or using the database backup and restore features in the dashboard.",
- "termsSection1Title": "1. Overview",
- "termsSection1Text": "OmniRoute is a local-first AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking.",
- "termsSection2Title": "2. User Responsibilities",
- "termsResponsibilityApiKeys": "You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.).",
- "termsResponsibilityCompliance": "You must comply with the terms of service of each AI provider whose API you access through OmniRoute.",
- "termsResponsibilitySecurity": "You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access.",
- "termsSection3Title": "3. How It Works",
- "termsSection3Text": "OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation.",
- "termsSection4Title": "4. Data Handling",
- "termsDataStoredLocally": "All data is stored locally on your machine in a SQLite database.",
- "termsNoTransmission": "OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features.",
- "termsDataLocationText": "Usage logs, API keys, and configuration are stored in",
- "termsSection5Title": "5. Disclaimer",
- "termsSection5Text": "OmniRoute is provided \"as is\" without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration.",
- "termsSection6Title": "6. Open Source",
- "termsSection6Text": "OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."
+ "questionsVisit": "سوالات ہیں؟ ہماری ملاحظہ کریں",
+ "githubRepository": "GitHub ریپوزٹری",
+ "privacySection1Title": "1. لوکل فرسٹ آرکیٹیکچر",
+ "privacySection1Text": "OmniRoute کو لوکل فرسٹ ایپلیکیشن کے طور پر ڈیزائن کیا گیا ہے۔ تمام ڈیٹا پراسیسنگ اور اسٹوریج مکمل طور پر آپ کی مشین پر ہوتا ہے۔ آپ کی معلومات جمع کرنے والا کوئی مرکزی سرور موجود نہیں ہے۔",
+ "privacySection2Title": "2. وہ ڈیٹا جو ہم محفوظ کرتے ہیں",
+ "privacyDataStoredIn": "درج ذیل ڈیٹا مقامی طور پر اس میں محفوظ کیا جاتا ہے",
+ "privacyDataProviderConfigurationsDesc": "کنکشن URLs، فراہم کنندگان کی اقسام، اور ترجیحی ترتیبات",
+ "privacyDataApiKeysDesc": "AI فراہم کنندگان کے ساتھ تصدیق کے لیے مرموز کر کے مقامی طور پر محفوظ کیا جاتا ہے",
+ "privacyDataUsageLogsDesc": "درخواستوں کی تعداد، ٹوکن کا استعمال، ماڈلز کے نام، ٹائم اسٹیمپس، اور جوابی اوقات",
+ "privacyDataApplicationSettingsDesc": "تھیم کی ترجیحات، روٹنگ کی حکمت عملی، اور کومبو کنفیگریشنز",
+ "privacySection3Title": "3. کوئی ٹیلی میٹری نہیں",
+ "privacySection3Text": "OmniRoute ٹیلی میٹری، تجزیاتی ڈیٹا، یا کریش رپورٹس جمع نہیں کرتا۔ کوئی ڈیٹا ہمیں یا کسی تیسرے فریق کو نہیں بھیجا جاتا۔ آپ کے استعمال کے انداز، API کالز، اور کنفیگریشنز مکمل طور پر نجی رہتے ہیں۔",
+ "privacySection4Title": "4. فریق ثالث کے AI فراہم کنندگان",
+ "privacySection4Text": "جب آپ OmniRoute کے ذریعے API کالز کرتے ہیں تو آپ کی درخواستیں آپ کے کنفیگر کردہ AI فراہم کنندگان کو بھیج دی جاتی ہیں (مثلاً: OpenAI، Anthropic، Google)۔ ان فراہم کنندگان کی اپنی رازداری کی پالیسیاں ہیں جو یہ طے کرتی ہیں کہ وہ آپ کے ڈیٹا کو کس طرح سنبھالتے ہیں۔ براہ کرم ان کا جائزہ لیں:",
+ "privacyOpenAiPolicy": "OpenAI کی رازداری کی پالیسی",
+ "privacyAnthropicPolicy": "Anthropic کی رازداری کی پالیسی",
+ "privacyGooglePolicy": "Google کی رازداری کی پالیسی",
+ "privacySection5Title": "5. کلاؤڈ سنک (اختیاری)",
+ "privacySection5Text": "اگر آپ اختیاری کلاؤڈ سنک فیچر فعال کرتے ہیں، تو فراہم کنندہ کی کنفیگریشنز اور API کلیدیں ایک کنفیگر کردہ کلاؤڈ اینڈ پوائنٹ پر منتقل کی جا سکتی ہیں۔ یہ فیچر بطورِ ڈیفالٹ غیر فعال ہے اور اسے فعال کرنے کے لیے واضح رضامندی درکار ہے۔",
+ "privacySection6Title": "6. لاگنگ",
+ "privacyLoggingIntro": "درخواستوں کے لاگز کو ڈیش بورڈ کی ترتیبات کے ذریعے کنفیگر کیا جا سکتا ہے۔ آپ یہ کر سکتے ہیں:",
+ "privacySection7Title": "7. آپ کے حقوق",
+ "privacySection7TextStart": "چونکہ تمام ڈیٹا مقامی طور پر محفوظ ہوتا ہے، اس لیے آپ کو مکمل اختیار حاصل ہے۔ آپ کسی بھی وقت درج ذیل کو حذف کر کے اپنا ڈیٹا مٹا سکتے ہیں:",
+ "privacySection7TextEnd": "ڈائریکٹری، یا ڈیش بورڈ میں ڈیٹابیس بیک اپ اور بحالی کی خصوصیات استعمال کر کے۔",
+ "termsSection1Title": "1. جائزہ",
+ "termsSection1Text": "OmniRoute ایک لوکل فرسٹ AI API پراکسی راؤٹر ہے جو مکمل طور پر آپ کی مشین پر چلتا ہے۔ یہ لوڈ بیلنسنگ، فیل اوور اور استعمال کی ٹریکنگ کے ساتھ درخواستوں کو متعدد AI فراہم کنندگان تک پہنچاتا ہے۔",
+ "termsSection2Title": "2. صارف کی ذمہ داریاں",
+ "termsResponsibilityApiKeys": "فریقِ ثالث کے AI فراہم کنندگان (OpenAI، Anthropic، Google وغیرہ) کے لیے اپنی API کلیدوں اور اسناد کا انتظام کرنے کے مکمل طور پر آپ خود ذمہ دار ہیں۔",
+ "termsResponsibilityCompliance": "آپ کو ہر اس AI فراہم کنندہ کی سروس کی شرائط کی پابندی کرنا ہوگی جس کے API تک آپ OmniRoute کے ذریعے رسائی حاصل کرتے ہیں۔",
+ "termsResponsibilitySecurity": "اپنی مقامی OmniRoute انسٹالیشن کی سیکیورٹی، بشمول پاس ورڈ مقرر کرنا اور نیٹ ورک تک رسائی محدود کرنا، آپ کی ذمہ داری ہے۔",
+ "termsSection3Title": "3. یہ کیسے کام کرتا ہے",
+ "termsSection3Text": "OmniRoute ایک درمیانی پراکسی کے طور پر کام کرتا ہے۔ OmniRoute کو بھیجی گئی API کالز کا ترجمہ کیا جاتا ہے اور انہیں آپ کے کنفیگر کردہ AI فراہم کنندگان کو فارورڈ کر دیا جاتا ہے۔ ضروری پروٹوکول ترجمے کے علاوہ OmniRoute آپ کی درخواستوں یا جوابات کے مواد میں کوئی تبدیلی نہیں کرتا۔",
+ "termsSection4Title": "4. ڈیٹا کا نظم",
+ "termsDataStoredLocally": "تمام ڈیٹا آپ کی مشین پر ایک SQLite ڈیٹابیس میں مقامی طور پر محفوظ ہوتا ہے۔",
+ "termsNoTransmission": "OmniRoute کسی بھی ڈیٹا کو بیرونی سرورز پر منتقل نہیں کرتا، جب تک کہ آپ واضح طور پر کلاؤڈ سنک کی خصوصیات فعال نہ کریں۔",
+ "termsDataLocationText": "استعمال کے لاگز، API کلیدیں اور کنفیگریشن یہاں محفوظ ہوتے ہیں:",
+ "termsSection5Title": "5. دست برداری",
+ "termsSection5Text": "OmniRoute کسی بھی قسم کی ضمانت کے بغیر \"جیسا ہے\" فراہم کیا جاتا ہے۔ API کے استعمال سے ہونے والے کسی بھی اخراجات، سروس میں تعطل یا ڈیٹا کے نقصان کے لیے ہم ذمہ دار نہیں ہیں۔ اپنی کنفیگریشن کے بیک اپ ہمیشہ محفوظ رکھیں۔",
+ "termsSection6Title": "6. اوپن سورس",
+ "termsSection6Text": "OmniRoute اوپن سورس سافٹ ویئر ہے۔ آپ اس کے لائسنس کی شرائط کے تحت اس کا معائنہ، اس میں ترمیم اور اسے تقسیم کرنے کے لیے آزاد ہیں۔"
},
"agents": {
- "title": "CLI Agents",
- "description": "Discover installed CLI agents on your system. Add custom agents for auto-detection.",
- "refresh": "Refresh",
- "installed": "Installed",
- "notFound": "Not Found",
- "builtIn": "Built-in",
- "custom": "Custom",
- "remove": "Remove",
- "addCustomAgent": "Add Custom Agent",
- "addCustomAgentDesc": "Register any CLI tool for detection. It will be scanned automatically on refresh.",
- "agentName": "Agent Name",
- "binaryName": "Binary Name",
- "versionCommand": "Version Command",
- "spawnArgs": "Spawn Args",
- "addAgent": "Add Agent",
- "scanning": "Scanning system for CLI agents...",
- "opencodeIntegration": "OpenCode Integration",
- "opencodeDetected": "opencode {version} detected",
- "opencodeDesc": "Generate a ready-to-use {configFile} with your OmniRoute base URL and all available models — drop it in your project root and run {command}.",
- "downloadConfig": "Download {file}",
- "downloaded": "Downloaded!",
- "setupGuideTitle": "Setup guide",
- "openCliTools": "Open CLI Tools",
- "setupGuideDetectCliTitle": "Detect installed CLIs",
- "setupGuideDetectCliDesc": "Click Refresh after installing or updating a CLI so OmniRoute can rescan binaries and versions.",
- "setupGuideCustomAgentTitle": "Register custom binary",
- "setupGuideCustomAgentDesc": "Use Add Custom Agent when your CLI is not in the built-in list. Provide binary name and version command.",
- "setupGuideCommandMissingTitle": "Fix 'command not found'",
- "setupGuideCommandMissingDesc": "Ensure the CLI command exists in PATH, open a new terminal session, and rerun Refresh.",
+ "title": "CLI ایجنٹس",
+ "description": "اپنے سسٹم پر انسٹال شدہ CLI ایجنٹس دریافت کریں۔ خودکار شناخت کے لیے حسبِ ضرورت ایجنٹس شامل کریں۔",
+ "refresh": "تازہ کریں",
+ "installed": "انسٹال شدہ",
+ "notFound": "نہیں ملا",
+ "builtIn": "بلٹ اِن",
+ "custom": "حسبِ ضرورت",
+ "remove": "ہٹائیں",
+ "addCustomAgent": "حسبِ ضرورت ایجنٹ شامل کریں",
+ "addCustomAgentDesc": "شناخت کے لیے کوئی بھی CLI ٹول رجسٹر کریں۔ تازہ کرنے پر اسے خودکار طور پر اسکین کیا جائے گا۔",
+ "agentName": "ایجنٹ کا نام",
+ "binaryName": "بائنری نام",
+ "versionCommand": "ورژن کمانڈ",
+ "spawnArgs": "اسپان آرگیومنٹس",
+ "addAgent": "ایجنٹ شامل کریں",
+ "scanning": "CLI ایجنٹس کے لیے سسٹم اسکین کیا جا رہا ہے...",
+ "opencodeIntegration": "OpenCode انضمام",
+ "opencodeDetected": "opencode {version} کا پتا چلا",
+ "opencodeDesc": "اپنے OmniRoute بیس URL اور تمام دستیاب ماڈلز کے ساتھ استعمال کے لیے تیار {configFile} بنائیں — اسے اپنے پروجیکٹ کی روٹ ڈائریکٹری میں رکھیں اور {command} چلائیں۔",
+ "downloadConfig": "{file} ڈاؤن لوڈ کریں",
+ "downloaded": "ڈاؤن لوڈ ہو گیا!",
+ "setupGuideTitle": "سیٹ اپ گائیڈ",
+ "openCliTools": "CLI ٹولز کھولیں",
+ "setupGuideDetectCliTitle": "انسٹال شدہ CLIs کا پتا لگائیں",
+ "setupGuideDetectCliDesc": "کسی CLI کو انسٹال یا اپ ڈیٹ کرنے کے بعد ریفریش پر کلک کریں تاکہ OmniRoute بائنریز اور ورژنز کو دوبارہ اسکین کر سکے۔",
+ "setupGuideCustomAgentTitle": "حسبِ ضرورت بائنری رجسٹر کریں",
+ "setupGuideCustomAgentDesc": "اگر آپ کا CLI پہلے سے موجود فہرست میں شامل نہیں ہے تو حسبِ ضرورت ایجنٹ شامل کریں استعمال کریں۔ بائنری کا نام اور ورژن کمانڈ فراہم کریں۔",
+ "setupGuideCommandMissingTitle": "'کمانڈ نہیں ملی' کو درست کریں",
+ "setupGuideCommandMissingDesc": "یقینی بنائیں کہ CLI کمانڈ PATH میں موجود ہے، نیا ٹرمینل سیشن کھولیں، اور ریفریش دوبارہ چلائیں۔",
"cliToolsRedirectTitle": "Cli Tools Redirect Title",
"cliToolsRedirectDesc": "Cli Tools Redirect Desc",
"spawnArgsPlaceholder": "Spawn Args Placeholder",
@@ -10487,148 +10498,148 @@
}
},
"templateNames": {
- "simple-chat": "Simple Chat",
- "streaming": "Streaming",
- "system-prompt": "System Prompt",
- "thinking": "Thinking",
- "tool-calling": "Tool Calling",
- "multi-turn": "Multi-turn",
+ "simple-chat": "سادہ چیٹ",
+ "streaming": "اسٹریمنگ",
+ "system-prompt": "سسٹم پرامپٹ",
+ "thinking": "غور و فکر",
+ "tool-calling": "ٹول کالنگ",
+ "multi-turn": "کثیر باری گفتگو",
"vision": "وژن",
"schema-coercion": "سکیما جبر"
},
"templateDescriptions": {
- "simple-chat": "Basic chat template with system message",
- "streaming": "Template for streaming responses",
- "system-prompt": "Template with custom system prompt",
- "thinking": "Template with reasoning/thinking budget",
- "tool-calling": "Template for tool/function calling",
- "multi-turn": "Template for multi-turn conversations",
+ "simple-chat": "سسٹم پیغام کے ساتھ بنیادی چیٹ ٹیمپلیٹ",
+ "streaming": "اسٹریمنگ جوابات کے لیے ٹیمپلیٹ",
+ "system-prompt": "حسبِ ضرورت سسٹم پرامپٹ کے ساتھ ٹیمپلیٹ",
+ "thinking": "استدلال/غور و فکر کے بجٹ کے ساتھ ٹیمپلیٹ",
+ "tool-calling": "ٹول/فنکشن کالنگ کے لیے ٹیمپلیٹ",
+ "multi-turn": "کثیر باری گفتگوؤں کے لیے ٹیمپلیٹ",
"vision": "امیج ان پٹ کے ساتھ ملٹی موڈل ٹیمپلیٹ",
"schema-coercion": "سٹرکچرڈ آؤٹ پٹ / JSON اسکیما انفورسمنٹ"
},
"templatePayloads": {
"simpleChat": {
- "system": "You are a helpful AI assistant.",
- "userGreeting": "Hello! How can I help you today?"
+ "system": "آپ ایک مددگار AI معاون ہیں۔",
+ "userGreeting": "السلام علیکم! آج میں آپ کی کیسے مدد کر سکتا ہوں؟"
},
"streaming": {
- "prompt": "Write a story about"
+ "prompt": "اس موضوع پر ایک کہانی لکھیں:"
},
"systemPrompt": {
- "question": "What is the meaning of life?",
- "systemInstruction": "Provide a thoughtful, philosophical answer."
+ "question": "زندگی کا مطلب کیا ہے؟",
+ "systemInstruction": "ایک سوچا سمجھا، فلسفیانہ جواب فراہم کریں۔"
},
"thinking": {
- "question": "Explain quantum computing"
+ "question": "کوانٹم کمپیوٹنگ کی وضاحت کریں"
},
"toolCalling": {
- "cityNameDescription": "The name of the city to get weather for",
- "toolDescription": "Get current weather for a location",
- "userWeather": "What's the weather in Tokyo?"
+ "cityNameDescription": "وہ شہر جس کے موسم کی معلومات حاصل کرنی ہیں",
+ "toolDescription": "کسی مقام کا موجودہ موسم معلوم کریں",
+ "userWeather": "ٹوکیو میں موسم کیسا ہے؟"
},
"multiTurn": {
- "system": "You are a helpful assistant.",
- "assistantExample": "I'd be happy to help you with that.",
- "userInitial": "I need help with",
- "userFollowUp": "Can you elaborate on that?"
+ "system": "آپ ایک مددگار معاون ہیں۔",
+ "assistantExample": "مجھے اس سلسلے میں آپ کی مدد کر کے خوشی ہوگی۔",
+ "userInitial": "مجھے اس معاملے میں مدد درکار ہے:",
+ "userFollowUp": "کیا آپ اس کی مزید وضاحت کر سکتے ہیں؟"
}
},
"cache": {
- "title": "Cache Management",
- "description": "Monitor provider prompt cache efficiency and local semantic response reuse.",
- "refresh": "Refresh",
- "clearAll": "Clear Semantic Cache",
- "memoryEntries": "Memory Entries",
- "memoryEntriesSub": "In-memory LRU",
- "dbEntries": "DB Entries",
+ "title": "کیش مینجمنٹ",
+ "description": "فراہم کنندہ کے پرامپٹ کیش کی کارکردگی اور مقامی معنوی جوابات کے دوبارہ استعمال کی نگرانی کریں۔",
+ "refresh": "تازہ کریں",
+ "clearAll": "معنوی کیش صاف کریں",
+ "memoryEntries": "میموری اندراجات",
+ "memoryEntriesSub": "اِن میموری LRU",
+ "dbEntries": "ڈیٹابیس اندراجات",
"dbEntriesSub": "Persisted (SQLite)",
- "cacheHits": "Cache Hits",
- "cacheHitsSub": "of {total} total",
- "tokensSaved": "Tokens Saved",
- "tokensSavedSub": "Estimated from hits",
- "hitRate": "Hit Rate",
- "performance": "Cache Performance",
- "autoRefresh": "Auto-refreshes every {seconds}s",
- "hits": "Hits",
- "misses": "Misses",
- "total": "Total",
- "behavior": "Cache Behavior",
- "behaviorDeterministic": "Only non-streaming requests with temperature=0 are cached.",
- "behaviorBypass": "Bypass with header {header}.",
+ "cacheHits": "کیش ہٹس",
+ "cacheHitsSub": "کل {total} میں سے",
+ "tokensSaved": "بچائے گئے ٹوکنز",
+ "tokensSavedSub": "ہٹس سے تخمینہ شدہ",
+ "hitRate": "ہٹ کی شرح",
+ "performance": "کیش کی کارکردگی",
+ "autoRefresh": "ہر {seconds} سیکنڈ میں خودکار طور پر تازہ ہوتا ہے",
+ "hits": "ہٹس",
+ "misses": "مِسز",
+ "total": "کل",
+ "behavior": "کیش کا طرزِ عمل",
+ "behaviorDeterministic": "صرف temperature=0 والی نان اسٹریمنگ درخواستیں کیش کی جاتی ہیں۔",
+ "behaviorBypass": "ہیڈر {header} کے ذریعے بائی پاس کریں۔",
"behaviorTwoTier": "Two-tier storage: in-memory LRU (fast) + SQLite (persistent across restarts).",
- "behaviorTtl": "Default TTL: 30 minutes. Configure via {envVar}.",
- "idempotency": "Idempotency Layer",
- "activeDedupKeys": "Active Dedup Keys",
- "dedupWindow": "Dedup Window",
- "clearSuccess": "Semantic cache cleared. {count} entries removed.",
- "clearError": "Failed to clear cache.",
- "unavailable": "Cache unavailable",
- "unavailableDesc": "Could not fetch cache statistics. Make sure the server is running.",
+ "behaviorTtl": "ڈیفالٹ TTL: 30 منٹ۔ {envVar} کے ذریعے ترتیب دیں۔",
+ "idempotency": "آئیڈیم پوٹینسی لیئر",
+ "activeDedupKeys": "فعال ڈی ڈپ کلیدیں",
+ "dedupWindow": "ڈی ڈپ ونڈو",
+ "clearSuccess": "معنوی کیش صاف کر دیا گیا۔ {count} اندراجات ہٹا دیے گئے۔",
+ "clearError": "کیش صاف کرنے میں ناکامی ہوئی۔",
+ "unavailable": "کیش دستیاب نہیں",
+ "unavailableDesc": "کیش کے اعداد و شمار حاصل نہیں کیے جا سکے۔ یقینی بنائیں کہ سرور چل رہا ہے۔",
"loadingCacheAria": "کیشے لوڈ ہو رہا ہے",
- "promptCache": "Prompt Cache (Provider-Side)",
- "semanticCache": "Semantic Cache",
- "promptCacheSectionDesc": "Shows provider-side prompt caching activity from usage history so you can see where cache control is active and how much input reuse you are getting.",
- "promptTrendDesc": "Hourly request volume, cache coverage, and cache read volume across the last 24 hours.",
- "cachedRequests": "Cached Requests",
- "cachedRequests24h": "Cached Requests (24h)",
- "cacheHitRate": "Cache Hit Rate",
- "cacheRate": "Cache Rate",
- "cacheRateDesc": "of total requests",
- "cachedTokens": "Cache Read Tokens",
- "cacheCreationTokens": "Cache Write Tokens",
- "cacheMetrics": "Prompt Cache Metrics",
- "withCacheControl": "With Cache Control",
- "cachedTokensRead": "Read from cache",
- "cacheCreationWrite": "Written to cache",
- "cacheReuseRatio": "Cache Reuse Ratio",
- "cacheReuseRatioDesc": "Cache read tokens / Total input tokens",
- "estCostSaved": "Est. Cost Saved",
- "lastUpdated": "Last updated",
- "hoursTracked": "hours tracked",
- "busiestHour": "Busiest Hour",
- "peakCacheRate": "Peak Cache Rate",
- "trendHour": "Hour",
- "activityVolume": "Activity",
- "requestsShort": "reqs",
- "inputShort": "In",
- "cachedShort": "Cached",
- "writeShort": "Write",
- "resetting": "Resetting...",
- "resetMetrics": "Reset Metrics",
- "byProvider": "Breakdown by Provider",
- "providerCacheRateDesc": "Each provider exposes total input tokens, cache read tokens, and cache write tokens so you can verify the reuse ratio against raw totals.",
+ "promptCache": "پرامپٹ کیش (فراہم کنندہ کی جانب)",
+ "semanticCache": "معنوی کیش",
+ "promptCacheSectionDesc": "استعمال کی سرگزشت سے فراہم کنندہ کی جانب پرامپٹ کیشنگ کی سرگرمی دکھاتا ہے، تاکہ آپ دیکھ سکیں کہ کیش کنٹرول کہاں فعال ہے اور آپ کو اِن پٹ کے دوبارہ استعمال سے کتنا فائدہ ہو رہا ہے۔",
+ "promptTrendDesc": "گزشتہ 24 گھنٹوں میں فی گھنٹہ درخواستوں کا حجم، کیش کوریج، اور کیش ریڈ کا حجم۔",
+ "cachedRequests": "کیش شدہ درخواستیں",
+ "cachedRequests24h": "کیش شدہ درخواستیں (24 گھنٹے)",
+ "cacheHitRate": "کیش ہٹ کی شرح",
+ "cacheRate": "کیش کی شرح",
+ "cacheRateDesc": "کل درخواستوں میں سے",
+ "cachedTokens": "کیش ریڈ ٹوکنز",
+ "cacheCreationTokens": "کیش رائٹ ٹوکنز",
+ "cacheMetrics": "پرامپٹ کیش میٹرکس",
+ "withCacheControl": "کیش کنٹرول کے ساتھ",
+ "cachedTokensRead": "کیش سے پڑھا گیا",
+ "cacheCreationWrite": "کیش میں لکھا گیا",
+ "cacheReuseRatio": "کیش کے دوبارہ استعمال کا تناسب",
+ "cacheReuseRatioDesc": "کیش سے پڑھے گئے ٹوکنز / کل اِن پٹ ٹوکنز",
+ "estCostSaved": "تخمینی لاگت کی بچت",
+ "lastUpdated": "آخری بار اپ ڈیٹ کیا گیا",
+ "hoursTracked": "گھنٹوں کا ریکارڈ",
+ "busiestHour": "مصروف ترین گھنٹہ",
+ "peakCacheRate": "کیش کی بلند ترین شرح",
+ "trendHour": "گھنٹہ",
+ "activityVolume": "سرگرمی",
+ "requestsShort": "درخواستیں",
+ "inputShort": "اِن پٹ",
+ "cachedShort": "کیش شدہ",
+ "writeShort": "تحریر",
+ "resetting": "ری سیٹ کیا جا رہا ہے...",
+ "resetMetrics": "میٹرکس ری سیٹ کریں",
+ "byProvider": "Provider کے لحاظ سے تفصیل",
+ "providerCacheRateDesc": "ہر Provider کل اِن پٹ ٹوکنز، کیش سے پڑھے گئے ٹوکنز، اور کیش میں لکھے گئے ٹوکنز ظاہر کرتا ہے تاکہ آپ خام مجموعوں کے مقابلے میں دوبارہ استعمال کے تناسب کی تصدیق کر سکیں۔",
"provider": "Provider",
- "requests": "Requests",
- "inputTokens": "Total Input Tokens",
- "cachedTokensCol": "Cache Read",
- "cacheCreation": "Cache Write",
- "trend24h": "Cache Trend (24h)",
- "peakCached": "Peak cached",
- "cached": "Cached",
- "overview": "Overview",
+ "requests": "درخواستیں",
+ "inputTokens": "کل اِن پٹ ٹوکنز",
+ "cachedTokensCol": "کیش سے پڑھا گیا",
+ "cacheCreation": "کیش میں لکھا گیا",
+ "trend24h": "کیش کا رجحان (24 گھنٹے)",
+ "peakCached": "سب سے زیادہ کیش شدہ",
+ "cached": "کیش شدہ",
+ "overview": "جائزہ",
"tableProvider": "فراہم کنندہ",
"tableModel": "ماڈل",
"performanceTitle": "کارکردگی",
- "semanticCacheSectionDesc": "OmniRoute's own deterministic response cache. When enabled, repeated non-streaming temperature=0 requests can be served locally without hitting the upstream provider.",
- "semanticCacheDisabledDesc": "Semantic cache is disabled. OmniRoute will skip local response reuse until you turn it back on in Settings.",
- "semanticEntriesDesc": "Persisted semantic cache records currently stored in SQLite. Provider-side prompt cache activity is not listed here.",
- "searchEntries": "Search entries...",
- "search": "Search",
- "loading": "Loading...",
- "entriesLoadError": "Failed to load semantic cache entries.",
- "noEntries": "No cache entries found",
- "noPromptCacheData": "No provider-side prompt cache activity has been recorded yet.",
- "noTrendData": "No prompt cache activity has been recorded over the last 24 hours.",
- "signature": "Signature",
+ "semanticCacheSectionDesc": "OmniRoute کا اپنا قطعی ریسپانس کیش۔ فعال ہونے پر، بار بار آنے والی نان اسٹریمنگ temperature=0 درخواستیں upstream Provider سے رابطہ کیے بغیر مقامی طور پر فراہم کی جا سکتی ہیں۔",
+ "semanticCacheDisabledDesc": "سیمینٹک کیش غیر فعال ہے۔ جب تک آپ اسے Settings میں دوبارہ فعال نہیں کرتے، OmniRoute مقامی ریسپانس کے دوبارہ استعمال کو نظر انداز کرے گا۔",
+ "semanticEntriesDesc": "مستقل طور پر محفوظ کیے گئے سیمینٹک کیش ریکارڈز جو فی الحال SQLite میں محفوظ ہیں۔ Provider کی جانب کی پرامپٹ کیش سرگرمی یہاں درج نہیں ہے۔",
+ "searchEntries": "اندراجات تلاش کریں...",
+ "search": "تلاش کریں",
+ "loading": "لوڈ ہو رہا ہے...",
+ "entriesLoadError": "سیمینٹک کیش کے اندراجات لوڈ کرنے میں ناکامی ہوئی۔",
+ "noEntries": "کیش کا کوئی اندراج نہیں ملا",
+ "noPromptCacheData": "Provider کی جانب کی پرامپٹ کیش سرگرمی ابھی تک ریکارڈ نہیں کی گئی۔",
+ "noTrendData": "گزشتہ 24 گھنٹوں کے دوران پرامپٹ کیش کی کوئی سرگرمی ریکارڈ نہیں کی گئی۔",
+ "signature": "دستخط",
"model": "Model",
- "created": "Created",
- "expires": "Expires",
- "actions": "Actions",
- "deduplicatedRequests": "Deduplicated Requests",
- "savedCalls": "Saved API Calls",
- "totalProcessed": "Total Requests Processed",
- "disabled": "Disabled",
- "totalRequests": "Total Requests",
+ "created": "تخلیق کیا گیا",
+ "expires": "میعاد ختم ہوتی ہے",
+ "actions": "اقدامات",
+ "deduplicatedRequests": "نقل سے پاک کی گئی درخواستیں",
+ "savedCalls": "محفوظ کردہ API کالز",
+ "totalProcessed": "پروسیس کی گئی کل درخواستیں",
+ "disabled": "غیر فعال",
+ "totalRequests": "کل درخواستیں",
"reasoningCache": "ریزننگ ری پلے",
"reasoningCacheDesc": "ملٹی ٹرن ٹول کالنگ فلو کے لیے ماڈل سوچ کو محفوظ رکھتا ہے۔",
"reasoningEntries": "فعال اندراجات",
@@ -10665,56 +10676,56 @@
"minutesAgo": "{minutes}m پہلے",
"hoursAgo": "{hours}h پہلے",
"daysAgo": "{days}d پہلے",
- "entries": "Entries"
+ "entries": "اندراجات"
},
"proxyConfigModal": {
- "levelGlobal": "Global",
- "levelProvider": "Provider",
- "levelCombo": "Combo",
- "levelKey": "Key",
- "levelDirect": "Direct (no proxy)",
- "titleGlobal": "Global Proxy Configuration",
- "titleLevel": "{level} Proxy — {label}",
- "loading": "Loading proxy configuration...",
- "inheritingFrom": "Inheriting from",
- "source": "Source",
- "savedProxy": "Saved Proxy",
- "custom": "Custom",
- "selectSavedProxyPlaceholder": "Select saved proxy...",
- "proxyType": "Proxy Type",
- "host": "Host",
- "hostPlaceholder": "1.2.3.4 or proxy.example.com",
- "port": "Port",
- "authOptional": "Authentication (optional)",
- "username": "Username",
- "usernamePlaceholder": "Username",
- "password": "Password",
- "passwordPlaceholder": "Password",
- "connected": "Connected",
- "ip": "IP:",
- "connectionFailed": "Connection failed",
- "testConnection": "Test connection",
- "clear": "Clear",
- "cancel": "Cancel",
- "save": "Save",
- "errorSelectSavedProxy": "Please select a saved proxy first.",
- "errorSelectProxyFirst": "Please select a proxy first.",
- "errorProxyNotFound": "Selected proxy not found.",
- "errorClearSavedProxy": "Failed to clear saved proxy",
- "errorSaveProxy": "Failed to save proxy configuration",
- "errorClearProxy": "Failed to clear proxy configuration",
- "errorSocks5Hidden": "SOCKS5 is configured but hidden because NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false."
+ "levelGlobal": "عالمی",
+ "levelProvider": "فراہم کنندہ",
+ "levelCombo": "امتزاج",
+ "levelKey": "کلید",
+ "levelDirect": "براہِ راست (بغیر پراکسی)",
+ "titleGlobal": "عالمی پراکسی کنفیگریشن",
+ "titleLevel": "{level} پراکسی — {label}",
+ "loading": "پراکسی کنفیگریشن لوڈ ہو رہی ہے...",
+ "inheritingFrom": "سے اخذ کیا جا رہا ہے",
+ "source": "ماخذ",
+ "savedProxy": "محفوظ کردہ پراکسی",
+ "custom": "حسبِ ضرورت",
+ "selectSavedProxyPlaceholder": "محفوظ کردہ پراکسی منتخب کریں...",
+ "proxyType": "پراکسی کی قسم",
+ "host": "ہوسٹ",
+ "hostPlaceholder": "1.2.3.4 یا proxy.example.com",
+ "port": "پورٹ",
+ "authOptional": "توثیق (اختیاری)",
+ "username": "صارف نام",
+ "usernamePlaceholder": "صارف نام",
+ "password": "پاس ورڈ",
+ "passwordPlaceholder": "پاس ورڈ",
+ "connected": "منسلک",
+ "ip": "آئی پی:",
+ "connectionFailed": "کنکشن ناکام ہو گیا",
+ "testConnection": "کنکشن کی جانچ کریں",
+ "clear": "صاف کریں",
+ "cancel": "منسوخ کریں",
+ "save": "محفوظ کریں",
+ "errorSelectSavedProxy": "براہِ کرم پہلے ایک محفوظ کردہ پراکسی منتخب کریں۔",
+ "errorSelectProxyFirst": "براہِ کرم پہلے ایک پراکسی منتخب کریں۔",
+ "errorProxyNotFound": "منتخب کردہ پراکسی نہیں ملی۔",
+ "errorClearSavedProxy": "محفوظ کردہ پراکسی صاف کرنے میں ناکامی ہوئی",
+ "errorSaveProxy": "پراکسی کنفیگریشن محفوظ نہیں ہو سکی",
+ "errorClearProxy": "پراکسی کنفیگریشن صاف نہیں کی جا سکی",
+ "errorSocks5Hidden": "SOCKS5 کنفیگر کیا گیا ہے لیکن NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=false کی وجہ سے پوشیدہ ہے۔"
},
"oauthModal": {
- "title": "Connect {providerName}",
- "waiting": "Waiting for authorization",
- "completeAuthInPopup": "Complete authorization in popup.",
+ "title": "{providerName} سے منسلک کریں",
+ "waiting": "اجازت کا انتظار ہے",
+ "completeAuthInPopup": "پاپ اَپ میں اجازت مکمل کریں۔",
"popupClosedHint": "If the popup closed without redirecting back (e.g. Qoder), this dialog will auto-switch to manual URL entry mode.",
- "popupBlocked": "Popup blocked? Enter URL manually",
- "deviceCodeVisitUrl": "Visit the URL below and enter code:",
- "deviceCodeVerificationUrl": "Verification URL",
- "deviceCodeYourCode": "Your code",
- "deviceCodeWaiting": "Waiting for authorization...",
+ "popupBlocked": "پاپ اَپ بلاک ہو گیا؟ URL دستی طور پر درج کریں",
+ "deviceCodeVisitUrl": "ذیل میں دیا گیا URL کھولیں اور کوڈ درج کریں:",
+ "deviceCodeVerificationUrl": "تصدیقی URL",
+ "deviceCodeYourCode": "آپ کا کوڈ",
+ "deviceCodeWaiting": "اجازت کا انتظار ہے...",
"googleLoopbackTitle": "اس پتے سے Google سائن ان مکمل نہیں ہو سکتا",
"googleLoopbackWhatHappens": "گوگل صرف اس وقت اختیار کوڈ جاری کرتا ہے جب {redirectUri} اس براؤزر سے قابل رسائی ہو جو سائن ان کی منظوری دیتا ہے۔ یہاں یہ پتہ اس کمپیوٹر کی طرف اشارہ کرتا ہے، نہ کہ OmniRoute سرور کی طرف — اس لیے رضامندی اسکرین لٹک جاتی ہے بجائے اس کے کہ ری ڈائریکٹ ہو، اور کاپی کرنے کے لیے کوئی کال بیک یو آر ایل نہیں ہے۔",
"googleLoopbackRecommended": "مجوزہ — یہ اپنے کمپیوٹر پر چلائیں، پھر نیچے نتیجہ پیسٹ کریں:",
@@ -10722,7 +10733,7 @@
"googleLoopbackTunnelLabel": "یا SSH کے ذریعے ڈیش بورڈ پورٹ کو آگے بڑھائیں اور سرنگ کے ذریعے OmniRoute کو دوبارہ لوڈ کریں:",
"googleLoopbackTunnelNote": "اپنے SSH صارف نام کے ساتھ {userPlaceholder} کو تبدیل کریں، ٹرمینل کو کھلا رکھیں، پھر {localUrl} کو کھولیں اور وہاں سے دوبارہ جڑیں۔",
"googleLoopbackHeadlessAlt": "مکمل ہیڈ لیس استعمال کے لیے بغیر کسی مقامی کال بیک کے، اپنے Google OAuth اسناد ترتیب دیں اور ایک عوامی بنیادی URL شامل کریں۔",
- "remoteAccessInfo": "Remote access: Since you're accessing OmniRoute remotely, after authorization you'll see an error page (localhost not found). This is normal — just copy the full URL from your browser address bar and paste it below.",
+ "remoteAccessInfo": "ریموٹ رسائی: چونکہ آپ OmniRoute تک ریموٹ طور پر رسائی حاصل کر رہے ہیں، اس لیے اجازت دینے کے بعد آپ کو ایک خرابی کا صفحہ دکھائی دے گا (localhost نہیں ملا)۔ یہ معمول کی بات ہے — بس اپنے براؤزر کے ایڈریس بار سے مکمل URL کاپی کریں اور اسے ذیل میں پیسٹ کریں۔",
"loopbackMismatchTitle": "اس پتے سے سائن ان مکمل نہیں ہو سکتا",
"loopbackMismatchWhatHappened": "کیا ہو رہا ہے",
"loopbackMismatchExplanation": "جب آپ لاگ ان کی منظوری دیتے ہیں، {providerName} ہمیشہ براؤزر کو {redirectUri} پر واپس بھیجتا ہے۔ یہ پتہ اس براؤزر کو چلانے والے کمپیوٹر کی طرف اشارہ کرتا ہے، نہ کہ OmniRoute سرور کی طرف — لہذا اختیار کوڈ کبھی OmniRoute تک نہیں پہنچتا اور فراہم کنندہ بغیر کسی غلطی دکھائے سائن ان میں ناکام ہو جاتا ہے۔",
@@ -10732,17 +10743,17 @@
"loopbackMismatchStep2": "اس براؤزر میں، ٹنل کے ذریعے OmniRoute دوبارہ کھولیں:",
"loopbackMismatchStep3": "پھر نئے ٹیب سے {providerName} دوبارہ جڑیں۔ کال بیک اب سرور تک پہنچتا ہے اور لاگ ان معمول کے مطابق مکمل ہوتا ہے۔",
"loopbackMismatchAlternative": "کوئی SSH رسائی نہیں؟ اگر یہ فراہم کنندہ ایک ٹوکن درآمد ٹیب پیش کرتا ہے تو، ایک ٹوکن کے ساتھ جڑیں — یہ راستہ لوپ بیک کال بیک کا استعمال نہیں کرتا۔",
- "step1OpenUrl": "Step 1: Open this URL in your browser",
- "copy": "Copy",
- "step2PasteCallback": "Step 2: Paste callback URL or authorization code here",
- "step2Hint": "After authorization, paste the full callback URL. For Claude Code and Cline, you can also paste the authentication code directly, e.g. code#state.",
- "connect": "Connect",
- "cancel": "Cancel",
- "success": "Connection successful!",
- "successMessage": "Your {providerName} account has been connected.",
- "done": "Done",
- "error": "Connection failed",
- "tryAgain": "Try again",
+ "step1OpenUrl": "مرحلہ 1: یہ URL اپنے براؤزر میں کھولیں",
+ "copy": "کاپی کریں",
+ "step2PasteCallback": "مرحلہ 2: کال بیک URL یا اجازت کا کوڈ یہاں پیسٹ کریں",
+ "step2Hint": "اجازت دینے کے بعد مکمل کال بیک URL پیسٹ کریں۔ Claude Code اور Cline کے لیے، آپ تصدیقی کوڈ بھی براہِ راست پیسٹ کر سکتے ہیں، مثلاً code#state۔",
+ "connect": "منسلک کریں",
+ "cancel": "منسوخ کریں",
+ "success": "کنکشن کامیاب ہو گیا!",
+ "successMessage": "آپ کا {providerName} اکاؤنٹ منسلک ہو گیا ہے۔",
+ "done": "مکمل",
+ "error": "کنکشن ناکام ہو گیا",
+ "tryAgain": "دوبارہ کوشش کریں",
"errorSessionIncomplete": "OAuth سیشن مکمل نہیں ہے (ری ڈائریکٹ URI یا کوڈ ویری فائر غائب ہے)۔ کنکشن کو دوبارہ شروع کریں اور دوبارہ کوشش کریں۔",
"errorExchangeFailed": "تبادلہ ناکام ہوا",
"errorGoogleRedirectMismatch": "redirect_uri_mismatch: ڈیفالٹ Google OAuth اسناد صرف localhost پر کام کرتی ہیں۔ دور دراز کے استعمال کے لیے، اپنے OAuth اسناد کو ماحول کے متغیرات کے ذریعے ترتیب دیں: ANTIGRAVITY_OAUTH_CLIENT_ID اور ANTIGRAVITY_OAUTH_CLIENT_SECRET۔ README کے سیکشن 'OAuth on a Remote Server' کو دیکھیں۔",
@@ -10772,7 +10783,7 @@
"saveConnection": "کنکشن محفوظ کریں",
"gheDescription": "اپنے GitHub Enterprise انسٹنس کا بنیادی URL درج کریں (جیسے https://ghe.yourcompany.com)۔",
"gheUrlPlaceholder": "https://ghe.yourcompany.com",
- "gheUrlLabel": "GitHub Enterprise URL",
+ "gheUrlLabel": "GitHub Enterprise یو آر ایل",
"gheUrlRequired": "GitHub Enterprise URL درکار ہے",
"gitlabDuoSetupTitle": "GitLab Duo OAuth سیٹ اپ",
"gitlabDuoSetupMessage": "GitLab Duo OAuth ترتیب نہیں دیا گیا ہے۔ {applicationsUrl} پر ایک OAuth ایپلیکیشن رجسٹر کریں جس میں ری ڈائریکٹ URI {redirectUri} اور اسکوپس \"{scopes}\" ہوں، پھر {clientIdEnv} (اور اختیاری طور پر {clientSecretEnv}) سیٹ کریں اور دوبارہ شروع کریں۔",
@@ -10781,107 +10792,107 @@
},
"cursorAuthModal": {
"title": "Connect Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
- "autoDetecting": "Auto-detecting tokens...",
- "readingFromCursor": "Reading from Cursor IDE or cursor-agent",
- "tokensAutoDetected": "Tokens successfully auto-detected from Cursor IDE!",
+ "tabLogin": "Cursor کے ذریعے لاگ اِن کریں",
+ "tabImport": "ٹوکن درآمد کریں",
+ "loginDescription": "Cursor کا براؤزر لاگ اِن کھولتا ہے۔ Docker میں کام کرتا ہے — اپنے ہوسٹ براؤزر میں منظوری دیں، پھر یہاں واپس آئیں۔",
+ "loginWithCursor": "Cursor کے ذریعے لاگ اِن کریں",
+ "startingLogin": "شروع کیا جا رہا ہے…",
+ "waitingApproval": "Cursor لاگ اِن کی منظوری کا انتظار ہے…",
+ "openUrlHint": "اگر براؤزر نہیں کھلا:",
+ "openLoginLink": "لاگ اِن صفحہ کھولیں",
+ "cancelLogin": "لاگ اِن منسوخ کریں",
+ "autoDetecting": "ٹوکنز کا خودکار طور پر پتہ لگایا جا رہا ہے...",
+ "readingFromCursor": "Cursor IDE یا cursor-agent سے پڑھا جا رہا ہے",
+ "tokensAutoDetected": "Cursor IDE سے ٹوکنز کا کامیابی سے خودکار طور پر پتہ لگا لیا گیا!",
"cursorNotDetected": "Cursor IDE not detected. Please manually paste your token.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "dockerImportHint": "Docker میں چلا رہے ہیں؟ Cursor کے ساتھ لاگ اِن کو ترجیح دیں۔ کنٹینر کے اندر IDE سے خودکار درآمد اور cursor-agent عموماً دستیاب نہیں ہوتے۔ docs/providers/CURSOR-DOCKER.md دیکھیں۔",
+ "accessToken": "رسائی ٹوکن",
+ "refreshToken": "ریفریش ٹوکن",
+ "refreshTokenPlaceholder": "اختیاری — ٹوکن کی خودکار تجدید فعال کرتا ہے",
"required": "*",
- "accessTokenPlaceholder": "Access token will auto-populate...",
- "machineId": "Machine ID",
- "optional": "(optional)",
- "machineIdPlaceholder": "Machine ID will auto-populate...",
- "importing": "Importing...",
- "importToken": "Import Token",
- "cancel": "Cancel",
- "errorAutoDetect": "Unable to auto-detect tokens",
- "errorAutoDetectFailed": "Auto-detect tokens failed",
- "errorEnterToken": "Please enter access token",
- "errorImportFailed": "Import failed",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "accessTokenPlaceholder": "رسائی ٹوکن خود بخود درج ہو جائے گا...",
+ "machineId": "مشین آئی ڈی",
+ "optional": "(اختیاری)",
+ "machineIdPlaceholder": "مشین آئی ڈی خود بخود درج ہو جائے گی...",
+ "importing": "درآمد کیا جا رہا ہے...",
+ "importToken": "ٹوکن درآمد کریں",
+ "cancel": "منسوخ کریں",
+ "errorAutoDetect": "ٹوکنز کا خودکار طور پر پتا نہیں لگایا جا سکا",
+ "errorAutoDetectFailed": "ٹوکنز کا خودکار طور پر پتا لگانے میں ناکامی",
+ "errorEnterToken": "براہِ کرم رسائی ٹوکن درج کریں",
+ "errorImportFailed": "درآمد ناکام ہو گئی",
+ "errorLoginStart": "Cursor لاگ اِن شروع کرنے میں ناکامی",
+ "errorLoginPoll": "Cursor لاگ اِن ناکام ہو گیا",
+ "errorLoginTimeout": "Cursor لاگ اِن کا وقت ختم ہو گیا — دوبارہ کوشش کریں"
},
"pricingModal": {
- "title": "Pricing Configuration",
- "loading": "Loading pricing data...",
- "pricingRatesFormat": "Pricing Rates Format",
- "ratesDescription": "All rates are in dollars per million tokens ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.",
- "model": "Model",
- "input": "Input",
- "output": "Output",
- "cached": "Cached",
- "reasoning": "Reasoning",
- "cacheCreation": "Cache Creation",
- "noPricingData": "No pricing data available",
- "resetToDefaults": "Reset to defaults",
- "cancel": "Cancel",
- "saving": "Saving...",
- "saveChanges": "Save changes",
- "resetConfirm": "Reset all pricing to defaults? This cannot be undone.",
- "errorSaveFailed": "Failed to save pricing",
- "errorResetFailed": "Failed to reset pricing"
+ "title": "قیمتوں کی ترتیب",
+ "loading": "قیمتوں کا ڈیٹا لوڈ ہو رہا ہے...",
+ "pricingRatesFormat": "قیمتوں کی شرحوں کا فارمیٹ",
+ "ratesDescription": "تمام شرحیں فی دس لاکھ ٹوکنز ڈالرز میں ہیں ($/1M tokens)۔ مثال: 2.50 کی اِن پٹ شرح کا مطلب فی 1,000,000 اِن پٹ ٹوکنز $2.50 ہے۔",
+ "model": "ماڈل",
+ "input": "اِن پٹ",
+ "output": "آؤٹ پٹ",
+ "cached": "کیش شدہ",
+ "reasoning": "استدلال",
+ "cacheCreation": "کیش کی تخلیق",
+ "noPricingData": "قیمتوں کا کوئی ڈیٹا دستیاب نہیں",
+ "resetToDefaults": "ڈیفالٹس پر ری سیٹ کریں",
+ "cancel": "منسوخ کریں",
+ "saving": "محفوظ کیا جا رہا ہے...",
+ "saveChanges": "تبدیلیاں محفوظ کریں",
+ "resetConfirm": "تمام قیمتوں کو ڈیفالٹس پر ری سیٹ کریں؟ اسے واپس نہیں کیا جا سکتا۔",
+ "errorSaveFailed": "قیمتیں محفوظ کرنے میں ناکامی",
+ "errorResetFailed": "قیمتیں ری سیٹ کرنے میں ناکامی"
},
"proxyRegistry": {
"selectAllProxies": "تمام پراکسیز منتخب کریں",
"selectProxy": "{name} منتخب کریں",
- "title": "Proxy Registry",
- "description": "Store reusable proxies and track assignments.",
- "importLegacy": "Import Legacy",
- "bulkAssign": "Bulk Assign",
- "addProxy": "Add Proxy",
- "loading": "Loading proxies...",
- "noProxies": "No saved proxies yet.",
- "tableName": "Name",
- "tableEndpoint": "Endpoint",
- "tableStatus": "Status",
- "tableHealth": "Health (24h)",
- "tableUsage": "Usage",
- "tableActions": "Actions",
- "test": "Test",
- "edit": "Edit",
- "delete": "Delete",
- "modalCreateTitle": "Create Proxy",
- "modalEditTitle": "Edit Proxy",
- "labelName": "Name",
- "labelType": "Type",
+ "title": "پراکسی رجسٹری",
+ "description": "دوبارہ قابلِ استعمال پراکسیز محفوظ کریں اور تفویضات کو ٹریک کریں۔",
+ "importLegacy": "لیگیسی درآمد کریں",
+ "bulkAssign": "اجتماعی تفویض",
+ "addProxy": "پراکسی شامل کریں",
+ "loading": "پراکسیاں لوڈ ہو رہی ہیں...",
+ "noProxies": "ابھی تک کوئی محفوظ شدہ پراکسی نہیں ہے۔",
+ "tableName": "نام",
+ "tableEndpoint": "اینڈ پوائنٹ",
+ "tableStatus": "حالت",
+ "tableHealth": "صحت (24 گھنٹے)",
+ "tableUsage": "استعمال",
+ "tableActions": "اقدامات",
+ "test": "جانچ کریں",
+ "edit": "ترمیم کریں",
+ "delete": "حذف کریں",
+ "modalCreateTitle": "پراکسی بنائیں",
+ "modalEditTitle": "پراکسی میں ترمیم کریں",
+ "labelName": "نام",
+ "labelType": "قسم",
"labelFamily": "IP فیملی",
"familyAuto": "خودکار (ڈوئل اسٹیک)",
"familyIpv4": "صرف IPv4",
"familyIpv6": "صرف IPv6",
"familyHint": "خارجی ایڈریس فیملی۔ خودکار ڈوئل اسٹیک رکھتا ہے؛ IPv4/IPv6 اس پراکسی کو اس فیملی سے منسلک کرتا ہے (صرف IPv6 پراکسی کے تحت v4 لیک کو روکتا ہے)۔",
- "labelHost": "Host",
- "labelPort": "Port",
- "labelUsername": "Username",
- "labelPassword": "Password",
- "labelRegion": "Region",
- "labelStatus": "Status",
- "labelNotes": "Notes",
- "usernamePlaceholderEdit": "Leave blank to keep current username",
- "passwordPlaceholderEdit": "Leave blank to keep current password",
- "statusActive": "Active",
- "statusInactive": "Inactive",
- "cancel": "Cancel",
- "save": "Save",
- "bulkModalTitle": "Bulk Proxy Assignment",
- "bulkLabelScope": "Scope",
- "bulkLabelProxy": "Proxy",
- "bulkClearAssignment": "(Clear assignment)",
- "bulkLabelScopeIds": "Scope IDs (comma or newline separated)",
+ "labelHost": "ہوسٹ",
+ "labelPort": "پورٹ",
+ "labelUsername": "صارف نام",
+ "labelPassword": "پاس ورڈ",
+ "labelRegion": "خطہ",
+ "labelStatus": "حالت",
+ "labelNotes": "نوٹس",
+ "usernamePlaceholderEdit": "موجودہ صارف نام برقرار رکھنے کے لیے خالی چھوڑ دیں",
+ "passwordPlaceholderEdit": "موجودہ پاس ورڈ برقرار رکھنے کے لیے خالی چھوڑ دیں",
+ "statusActive": "فعال",
+ "statusInactive": "غیر فعال",
+ "cancel": "منسوخ کریں",
+ "save": "محفوظ کریں",
+ "bulkModalTitle": "اجتماعی پراکسی تفویض",
+ "bulkLabelScope": "دائرۂ کار",
+ "bulkLabelProxy": "پراکسی",
+ "bulkClearAssignment": "(تفویض ختم کریں)",
+ "bulkLabelScopeIds": "دائرۂ کار کی IDs (کاما یا نئی سطر سے علیحدہ)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
- "bulkApply": "Apply",
+ "bulkApply": "لاگو کریں",
"labelScope": "دائرہ کار",
"labelProxy": "پراکسی",
"scopeGlobal": "عالمی",
@@ -10893,22 +10904,22 @@
"bulkImportErrorInvalidPort": "غلط PORT (1-65535 ہونا چاہیے)",
"bulkImportErrorInvalidType": "غلط TYPE (http، https، یا socks5 استعمال کریں)",
"bulkImportErrorInvalidStatus": "غلط STATUS (فعال یا غیر فعال استعمال کریں)",
- "errorLoadFailed": "Failed to load proxy registry",
- "errorNameHostRequired": "Name and host are required",
- "errorSaveFailed": "Failed to save proxy",
- "errorDeleteFailed": "Failed to delete proxy",
- "errorForceDeleteConfirm": "This proxy is still assigned. Force delete and remove all assignments?",
- "errorMigrateFailed": "Failed to migrate legacy proxy config",
- "errorBulkFailed": "Failed to execute bulk assignment",
+ "errorLoadFailed": "پراکسی رجسٹری لوڈ کرنے میں ناکامی",
+ "errorNameHostRequired": "نام اور ہوسٹ درکار ہیں",
+ "errorSaveFailed": "پراکسی محفوظ کرنے میں ناکامی",
+ "errorDeleteFailed": "پراکسی حذف کرنے میں ناکامی",
+ "errorForceDeleteConfirm": "یہ پراکسی اب بھی تفویض شدہ ہے۔ زبردستی حذف کر کے تمام تفویضات ہٹا دیں؟",
+ "errorMigrateFailed": "پرانی پراکسی کنفیگریشن منتقل کرنے میں ناکامی",
+ "errorBulkFailed": "بلک تفویض انجام دینے میں ناکامی",
"success": "✓",
"failure": "✗",
- "failed": "Failed",
- "successRate": "{rate}% success",
- "avgLatency": "{latency}ms average",
- "assignmentsCount": "{count} assignments",
+ "failed": "ناکام",
+ "successRate": "{rate}% کامیابی",
+ "avgLatency": "اوسط {latency}ms",
+ "assignmentsCount": "{count} تفویضات",
"noData": "—",
"testSuccess": "✓ {ip}",
- "testLatency": "{latency}ms",
+ "testLatency": "{latency} ملی سیکنڈ",
"testFailure": "✗ {error}",
"repair": "مرمت کریں",
"relayAuthMissing": "تصدیق غائب ہے",
@@ -10957,6 +10968,9 @@
"strategyLatency": "لیٹنسی-آپٹمائزڈ",
"poolMembersLabel": "پول کے ارکان ({count})",
"poolNoMembers": "اس پول میں ابھی تک کوئی پروکسی نہیں ہے۔",
+ "poolEgressObservation": "{connections, plural, one {# کنکشن} other {# کنکشنز}} کے زیرِ استعمال {exits, plural, one {# اخراج} other {# اخراج}} · ایک اخراج پر زیادہ سے زیادہ {max} · گزشتہ {hours} گھنٹے",
+ "poolEgressObservationEmpty": "گزشتہ {hours} گھنٹوں میں کوئی ٹریفک نہیں دیکھی گئی",
+ "poolEgressObservationHint": "اس دورانیے کے لیے پراکسی لاگ سے شمار کیا گیا: اس پول کے اراکین کے لیے دیکھے گئے منفرد اخراجی IPs، اور انہیں استعمال کرنے والے OmniRoute کنکشنز۔ \"ایک اخراج پر\" سے مراد پورا دورانیہ ہے، ایک ہی وقت نہیں۔ فی IP 429 لاک آؤٹ صرف اسی فراہم کنندہ خاندان کے کنکشنز کو عارضی طور پر روکتا ہے۔",
"poolRemove": "ہٹائیں",
"poolRemoveFailed": "پول سے پروکسی کو ہٹانے میں ناکامی",
"poolAddLabel": "ایک پروکسی شامل کریں",
@@ -10966,96 +10980,96 @@
"poolSaveFailed": "پول اسائنمنٹ کو محفوظ کرنے میں ناکامی"
},
"playground": {
- "title": "Model Playground",
- "description": "Test any model directly from the dashboard. Select provider, model, and endpoint type, then send a request to see the raw response.",
- "endpoint": "Endpoint",
- "provider": "Provider",
- "model": "Model",
- "accountKey": "Account / Key",
- "autoAccounts": "Auto ({count} accounts)",
- "noAccounts": "No accounts",
- "send": "Send",
- "cancel": "Cancel",
- "audioFile": "Audio File",
- "attachImages": "Attach Images (Vision)",
+ "title": "ماڈل پلے گراؤنڈ",
+ "description": "ڈیش بورڈ سے براہِ راست کسی بھی ماڈل کی جانچ کریں۔ فراہم کنندہ، ماڈل اور اینڈ پوائنٹ کی قسم منتخب کریں، پھر خام جواب دیکھنے کے لیے درخواست بھیجیں۔",
+ "endpoint": "اینڈ پوائنٹ",
+ "provider": "فراہم کنندہ",
+ "model": "ماڈل",
+ "accountKey": "اکاؤنٹ / کلید",
+ "autoAccounts": "خودکار ({count} اکاؤنٹس)",
+ "noAccounts": "کوئی اکاؤنٹ نہیں",
+ "send": "بھیجیں",
+ "cancel": "منسوخ کریں",
+ "audioFile": "آڈیو فائل",
+ "attachImages": "تصاویر منسلک کریں (وژن)",
"multipartFormData": "multipart/form-data",
- "upToImages": "Up to 4 images",
- "selectAudioFile": "Select audio file for transcription (mp3, wav, m4a, ogg, flac…)",
- "clearAll": "Clear All",
- "request": "Request",
- "response": "Response",
- "transcription": "Transcription",
- "copy": "Copy",
- "resetToDefault": "Reset to default",
- "downloadAudio": "Download audio",
- "copyText": "Copy text",
- "transcriptionHint": "Transcription uses multipart/form-data. Upload the audio file above — the JSON below controls extra parameters (model, language).",
- "imagesGenerated": "Generated {count} images",
- "generatedImage": "Generated image {index}",
- "save": "Save",
+ "upToImages": "زیادہ سے زیادہ 4 تصاویر",
+ "selectAudioFile": "ٹرانسکرپشن کے لیے آڈیو فائل منتخب کریں (mp3, wav, m4a, ogg, flac…)",
+ "clearAll": "سب صاف کریں",
+ "request": "درخواست",
+ "response": "جواب",
+ "transcription": "ٹرانسکرپشن",
+ "copy": "کاپی کریں",
+ "resetToDefault": "ڈیفالٹ پر ری سیٹ کریں",
+ "downloadAudio": "آڈیو ڈاؤن لوڈ کریں",
+ "copyText": "متن کاپی کریں",
+ "transcriptionHint": "ٹرانسکرپشن multipart/form-data استعمال کرتی ہے۔ اوپر آڈیو فائل اپ لوڈ کریں — نیچے موجود JSON اضافی پیرامیٹرز (model, language) کو کنٹرول کرتا ہے۔",
+ "imagesGenerated": "{count} تصاویر تیار کی گئیں",
+ "generatedImage": "تیار کردہ تصویر {index}",
+ "save": "محفوظ کریں",
"endpointOptions": {
- "chat": "Chat completions",
- "responses": "Responses",
+ "chat": "چیٹ کی تکمیلات",
+ "responses": "جوابات",
"completions": "تکمیلات",
- "images": "Image generation",
- "embeddings": "Embeddings",
- "speech": "Text-to-speech",
- "transcription": "Audio transcription",
- "video": "Video generation",
- "music": "Music generation",
+ "images": "تصویر بنانا",
+ "embeddings": "ایمبیڈنگز",
+ "speech": "متن سے آواز",
+ "transcription": "آڈیو کی نقل نویسی",
+ "video": "ویڈیو بنانا",
+ "music": "موسیقی بنانا",
"moderations": "ماڈریشنز",
- "rerank": "Rerank",
- "search": "Web search",
+ "rerank": "دوبارہ درجہ بندی",
+ "search": "ویب تلاش",
"webFetch": "ویب فیچ"
},
"conversationalChat": "مکالماتی چیٹ",
"clearChat": "چیٹ صاف کریں۔",
"typeMessagePlaceholder": "ایک پیغام ٹائپ کریں... (نئی لائن کے لیے Shift+Enter)",
- "tabChat": "Chat",
- "tabCompare": "Compare",
+ "tabChat": "چیٹ",
+ "tabCompare": "موازنہ کریں",
"tabApi": "API",
- "tabBuild": "Build",
- "configPane": "Config",
- "systemPrompt": "System prompt",
- "systemPromptPlaceholder": "You are a helpful assistant.",
- "modelPlaceholder": "e.g. openai/gpt-4o",
- "endpointLabel": "Endpoint",
- "parametersLabel": "Parameters",
- "collapseConfig": "Collapse config pane",
- "expandConfig": "Expand config pane",
- "temperature": "Temperature",
- "maxTokens": "Max tokens",
+ "tabBuild": "بنائیں",
+ "configPane": "ترتیبات",
+ "systemPrompt": "سسٹم پرامپٹ",
+ "systemPromptPlaceholder": "آپ ایک مددگار معاون ہیں۔",
+ "modelPlaceholder": "مثلاً openai/gpt-4o",
+ "endpointLabel": "اینڈ پوائنٹ",
+ "parametersLabel": "پیرامیٹرز",
+ "collapseConfig": "ترتیبات کا پین سمیٹیں",
+ "expandConfig": "ترتیبات کا پین پھیلائیں",
+ "temperature": "درجۂ حرارت",
+ "maxTokens": "زیادہ سے زیادہ ٹوکنز",
"topP": "Top-p",
- "presencePenalty": "Presence penalty",
- "frequencyPenalty": "Frequency penalty",
+ "presencePenalty": "موجودگی کا جرمانہ",
+ "frequencyPenalty": "تکرار کا جرمانہ",
"reasoningLabel": "استدلال",
"thinking": "سوچ",
"effort": "کوشش",
"effortDefault": "ڈیفالٹ",
- "seedPlaceholder": "Random (leave empty)",
- "presetsLabel": "Presets",
- "loadPreset": "Load preset",
- "savePreset": "Save preset",
- "noPresets": "No presets",
- "presetNamePlaceholder": "Preset name",
- "savingPreset": "Saving…",
- "nameRequired": "Name is required",
- "failedToSavePreset": "Failed to save preset",
- "improvePrompt": "Improve prompt",
- "improvingPrompt": "Improving…",
- "improvePromptTitle": "Improve your prompt with AI",
- "setModelFirst": "Set a model first",
+ "seedPlaceholder": "بے ترتیب (خالی چھوڑ دیں)",
+ "presetsLabel": "پیش سیٹ",
+ "loadPreset": "پیش سیٹ لوڈ کریں",
+ "savePreset": "پیش سیٹ محفوظ کریں",
+ "noPresets": "کوئی پیش سیٹ نہیں",
+ "presetNamePlaceholder": "پیش سیٹ کا نام",
+ "savingPreset": "محفوظ کیا جا رہا ہے…",
+ "nameRequired": "نام درکار ہے",
+ "failedToSavePreset": "پیش سیٹ محفوظ نہیں ہو سکا",
+ "improvePrompt": "پرامپٹ بہتر بنائیں",
+ "improvingPrompt": "بہتر بنایا جا رہا ہے…",
+ "improvePromptTitle": "AI کے ذریعے اپنا پرامپٹ بہتر بنائیں",
+ "setModelFirst": "پہلے ایک ماڈل سیٹ کریں",
"setModelInConfigFirst": "پہلے کنفیگ پینل میں ایک ماڈل سیٹ کریں۔",
"improvePromptFailed": "پراامپٹ کو بہتر بنانا ناکام رہا۔",
"improvePromptAria": "AI کا استعمال کرتے ہوئے پرامپٹ کو بہتر بنائیں",
"confirmImprovePrompt": "پرامپٹ کو بہتر بنانے کی تصدیق کریں",
"improvePromptDescription": "یہ ایک بہتر ورژن تیار کرنے کے لیے آپ کا موجودہ سسٹم پرامپٹ trae.ai میں لاگ ان ہونا ضروری ہے۔ اجازت دینے والا صفحہ صرف موجودہ سیشن کی تصدیق کرتا ہے — یہ آپ کو لاگ ان نہیں کر سکتا۔ اگر آپ کو \"لاگ ان ناکام\" نظر آتا ہے تو \"solo.trae.ai کھولیں\" پر کلک کریں، لاگ ان کریں، پھر یہاں واپس آئیں۔",
"waitingForAuthorization": "trae.ai کا انتظار کر رہے ہیں…",
"authorizeWithBrowser": "براؤزر کے ساتھ اجازت دیں",
- "openSoloTrae": "Open solo.trae.ai",
+ "openSoloTrae": "solo.trae.ai کھولیں",
"orPasteManually": "یا ٹوکن کو دستی طور پر پیسٹ کریں",
"manualInstructions": "solo.trae.ai میں سائن ان کریں، DevTools → Network کھولیں، کوئی بھی چیٹ پیغام بھیجیں، اور Authorization: Cloud-IDE-JWT {tokenPlaceholder} درخواست ہیڈر سے JWT کاپی کریں۔ JWT کی عمر تقریباً 14 دن ہے۔ اختیاری شناختی فیلڈز اسی درخواست کے جسم میں common_params سے آتی ہیں۔",
"accessTokenLabel": "ایکسس ٹوکن (Cloud-IDE-JWT)",
@@ -14048,11 +14081,11 @@
"actionApprove": "منصوبہ منظور کریں",
"actionCancel": "منسوخ کریں",
"actionSeeInGraph": "گراف میں دیکھیں",
+ "actionRepeat": "دہرائیں",
"actionDone": "اقدام لاگو ہو گیا",
"actionFailed": "اقدام ناکام: {error}",
"detailFailed": "تفصیلات لوڈ کرنے میں ناکامی: {error}",
"mirroredInA2A": "A2A میں مطابقت شدہ",
- "actionRepeat": "دہرائیں",
"repeatConfirm": "تصدیق کے لیے دوبارہ کلک کریں",
"repeatDone": "نئی رن بنائی گئی",
"repeatUnavailable": "اصل ان پٹ دستیاب نہیں ہے"
@@ -14066,57 +14099,57 @@
"networkError": "نیٹ ورک کی خرابی — فراہم کنندہ کی نمائش کی ترتیب کو اپ ڈیٹ نہیں کر سکا"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "حامیوں کی پیشکشیں",
+ "subtitle": "Radar کی جانب سے سرکاری رعایتیں، کریڈٹس، آزمائشی مدتیں اور جائزہ شدہ شراکت دار فوائد۔",
+ "backToRadar": "Radar پر واپس جائیں",
+ "loading": "پیشکشیں لوڈ ہو رہی ہیں...",
+ "refresh": "پیشکشیں ریفریش کریں",
+ "refreshing": "ریفریش ہو رہا ہے...",
+ "loadFailed": "ہم پیشکشیں ریفریش نہیں کر سکے۔ آخری تصدیق شدہ مقامی کیش برقرار رکھا گیا ہے۔",
+ "empty": "اس وقت کوئی فعال پیشکش دستیاب نہیں ہے۔",
+ "keyRequiredTitle": "ایک حمایتی کلید درکار ہے",
+ "keyRequiredDescription": "پیشکشیں Radar کا ایک لائیو فائدہ ہیں۔ Radar اسکرین پر موجودہ حمایتی کلید شامل کریں، اپنی شراکت کار کی حیثیت کی تصدیق کریں، یا کلید حاصل کرنے کے لیے پروجیکٹ کی حمایت کریں۔",
+ "contributorButton": "میں ایک شراکت کار ہوں",
+ "supporterButton": "پروجیکٹ کی حمایت کریں",
+ "partnerBadge": "شراکت دار",
+ "officialBadge": "آفیشل",
+ "conditionsLabel": "شرائط:",
+ "validUntil": "{date} تک مؤثر",
+ "noExpiry": "میعاد ختم ہونے کی کوئی تاریخ اعلان نہیں کی گئی",
+ "openOffer": "پیشکش دیکھیں",
+ "trialDays": "{days, plural, one {# دن} other {# دن}}"
},
"radarIntelPage": {
"title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "subtitle": "Radar کی ملکیتی ELO درجہ بندیاں اور کیٹلاگ میں حقائق پر مبنی تبدیلیاں۔",
+ "backToRadar": "Radar پر واپس جائیں",
+ "loading": "Intel لوڈ ہو رہا ہے...",
+ "refresh": "Intel ریفریش کریں",
+ "syncing": "ریفریش ہو رہا ہے...",
+ "loadFailed": "ہم Intel ریفریش نہیں کر سکے۔ آخری تصدیق شدہ مقامی کیش محفوظ رکھا گیا ہے۔",
+ "empty": "ابھی تک کوئی تصدیق شدہ Intel اسنیپ شاٹ دستیاب نہیں ہے۔",
+ "supporterBadge": "Radar حمایتی",
+ "methodology": "طریقۂ کار",
+ "eloMethod": "ELO، ابتدائی {initial}، K={factor}",
+ "freshness": "کیٹلاگ کی تازگی",
+ "ageDays": "{days, plural, one {# دن پرانا} other {# دن پرانا}}",
+ "trend": "کیٹلاگ کا رجحان",
+ "modelDelta": "{current} ماڈلز، +{added} / -{removed}",
+ "ranking": "ماڈل کی درجہ بندی",
+ "noRankings": "ابھی تک کوئی تصدیق شدہ موازنہ دستیاب نہیں ہے۔",
+ "model": "ماڈل",
+ "category": "زمرہ",
+ "rating": "ریٹنگ",
+ "matches": "مقابلے",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "تازہ",
+ "aging": "پرانا ہو رہا ہے",
+ "stale": "فرسودہ"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "بڑھ رہا ہے",
+ "stable": "مستحکم",
+ "shrinking": "سکڑ رہا ہے"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "درخواست فراہم کنندہ کے سیاق و سباق کی ونڈو سے تجاوز کر گئی ہے"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference، OmniRoute کا اوپن سورس دوست ہے",
+ "description": "لاگت کے لحاظ سے درجہ بند ایک گیٹ وے جو درجنوں جدید ترین ماڈلز کو ایک OpenAI سے ہم آہنگ اینڈ پوائنٹ کے ذریعے دوبارہ فروخت کرتا ہے — ہر درخواست کو فہرستی قیمت سے کبھی تجاوز کیے بغیر، سب سے سستے اہل فراہم کنندہ تک روٹ کرتا ہے۔",
+ "cta": "API کلید حاصل کریں",
+ "partnerLinkNote": "شراکت دار کا لنک",
+ "dismissAriaLabel": "مسترد کریں"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "/v1/models کیٹلاگ میں سوچنے کی سطح کی مختلف صورتوں (مثلاً -low، -medium، -high) کی تخلیق غیر فعال کریں۔"
}
diff --git a/src/i18n/messages/uz.json b/src/i18n/messages/uz.json
index 4e89d3abf3..af82ed364a 100644
--- a/src/i18n/messages/uz.json
+++ b/src/i18n/messages/uz.json
@@ -85,7 +85,7 @@
"file": "Fayl",
"host": "Xost",
"id": "ID",
- "import": "Import",
+ "import": "Import qilish",
"limit": "Cheklov",
"offset": "Siljish",
"open": "Ochish",
@@ -348,7 +348,7 @@
"testDesc": "Sinov tavsifi",
"chatDesc": "Chat tavsifi",
"importSuccess": "Import muvaffaqiyatli amalga oshirildi",
- "chat": "Chat",
+ "chat": "Suhbat",
"a2aQuickStartStep1": "A2A tezkor boshlash — 1-qadam",
"importFailed": "Import amalga oshmadi",
"inputPlaceholder": "Kiritish maydoni uchun joy tutuvchi",
@@ -679,7 +679,7 @@
"safeSearchOff": "Xavfsiz qidiruv oʻchiq",
"nameHint": "Nom boʻyicha maslahat",
"debugToggle": "Nosozliklarni tuzatish tugmasi",
- "embedding": "Embedding",
+ "embedding": "Vektorli ifoda",
"issuesLabel": "Muammolar yorligʻi",
"optionAny": "Istalgan variant",
"maxNestingDepth": "Maksimal ichki joylashuv chuqurligi",
@@ -761,7 +761,7 @@
"tierCoverageSubtitle": "Har bir zaxira darajasi uchun sozlangan provayderlar",
"batchDetailCopyId": "ID nusxalash",
"batchDetailClose": "Yopish",
- "batchDetailEndpoint": "Endpoint",
+ "batchDetailEndpoint": "Yakuniy nuqta",
"batchDetailModel": "Model",
"batchDetailWindow": "Kontekst oynasi",
"batchDetailCreated": "Yaratilgan",
@@ -832,7 +832,7 @@
"wizardStep3Validate": "Tekshirish",
"wizardStep4Cost": "Narx va yaratish",
"wizardProviderLabel": "Provayder",
- "wizardEndpointLabel": "Endpoint",
+ "wizardEndpointLabel": "Yakuniy nuqta",
"wizardModelLabel": "Model",
"wizardInputKindJsonl": "JSONL",
"wizardInputKindCsv": "CSV (biz o‘giramiz)",
@@ -901,7 +901,7 @@
"batchListRemoveCompleted": "Olib tashlash yakunlandi",
"batchListTableStatus": "Holat",
"batchListTableId": "ID",
- "batchListTableEndpoint": "Endpoint",
+ "batchListTableEndpoint": "Yakuniy nuqta",
"batchListTableModel": "Model",
"batchListTableProgress": "Jarayon",
"batchListTableCreated": "Yaratilgan",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Claude Code shlyuzidagi modelni aniqlash funksiyasi Claude boʻlmagan modellarni roʻyxatga olishi uchun /v1/models manzilida claude/<provider>/<model> akslantirma identifikatorlarini eʼlon qilish. Ogohlantirish: global miqyosda yoqilganda barcha mijozlar uchun katalog yozuvlari sonini ikki baravar oshiradi.",
"featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> shlyuz taxalluslari uchun asosiy kalit. Yoqilgan (standart): /v1/models fikrlash imkoniyatiga ega har bir mos Claude modeli uchun fikrlamaydigan variantni eʼlon qiladi va soʻrovda yuborilgan no-think/ identifikatori mulohaza yuritish bostirilgan holda haqiqiy modelga qayta moslanadi. Oʻchirilgan: hech qanday variant eʼlon qilinmaydi va no-think/ identifikatori boshqa nomaʼlum model identifikatorlari kabi qabul qilinadi. Bu sozlama yoqilgan paytda har bir modelga xos ModelSpec.noThinkingAlias orqali yoqish/oʻchirish tanlovi hamon amal qiladi.",
"featureFlagChatVirtualLanesEnabledDescription": "Provayderga joʻnatish uchun har bir ijarachiga moslashuvchan virtual qabul yoʻlaklarini yoqish (#9654): endi bir ijarachining keskin soʻrovlar oqimi boshqasida 503 xatosini keltirib chiqarmaydi. OMNIROUTE_CHAT_VIRTUAL_LANES muhit oʻzgaruvchisi boshqaruv panelidagi ushbu sozlamadan ustun turadi; oʻzgarishlar server qayta ishga tushirilganda kuchga kiradi.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Boshqaruv panelidagi provayder sahifalari: Bepul nishonini faqat provayder qo‘llab-quvvatlaydigan signallarda ko‘rsating — hujjatlashtirilgan bepul tarifi bo‘lmagan ro‘yxatdan o‘tgan provayderlar uchun ko‘rsatiladigan nomga asoslangan evristika, mantiqiy bo‘lmagan bepul maydonlar va :free suffikslari hisobga olinmaydi. O‘chirilsa, tarixiy nishon qoidasi saqlanadi.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proksi-pullar va opencode’ning har bir hisob bo‘yicha aylantirish mexanizmi hozirgina ishlamay qolgan proksini (TCP tekshiruvini rad etgan yoki u orqali 429 javobi olingan) har bir jarayon uchun takroriy urinish sayin ikki baravar oshib, belgilangan chegaragacha yetadigan muddat davomida qayta taqdim etmaydi. Proksi holati yozib qo‘yilmaydi; barcha nomzodlar chetga surilsa, tanlov o‘zgarmaydi. Standart holatda o‘chiq: tanlash tartibi oddiy aylantirish bilan aynan bir xil.",
+ "featureFlagProxyPoolEgressObservationDescription": "Boshqaruv panelida proksi-pul ostida so‘nggi 24 soat ichida uning a’zolariga nechta kuzatilgan chiquvchi IP xizmat ko‘rsatgani, ulardan nechta ulanish foydalangani va bitta IP ortida kuzatilgan eng katta sonni ko‘rsating. Faqat o‘qish uchun mo‘ljallangan, proksi jurnalidan hisoblanadi va yo‘naltirish uchun hech qachon ishlatilmaydi. Standart holatda o‘chiq: pul muharriri o‘zgarmaydi va kuzatuv marshruti null javobini qaytaradi.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Proksi holatini tekshirish jarayonida nishon rad etgan tekshiruv (401/403/429: proksi uzatdi, manzil esa ushbu chiquvchi IP’ni rad etdi) xizmat ko‘rsatilgan tekshiruv kabi proksining ketma-ket muvaffaqiyatsizliklar hisoblagichini tiklashiga ruxsat bering. Standart holatda o‘chiq: rad etish neytral bo‘lib qoladi va hisoblagichni saqlaydi. 5xx har ikki holatda ham noaniq bo‘lib qoladi, rad etish esa proksini hech qachon olib tashlamaydi, o‘chirib qo‘ymaydi yoki qayta faollashtirmaydi.",
"sidebar": {
"home": "Bosh sahifa",
"dashboard": "Boshqaruv paneli",
@@ -1271,7 +1275,7 @@
"systemGroup": "Tizim",
"costsOverview": "Umumiy koʻrinish",
"costsOverviewSubtitle": "Umumlashtirilgan xarajatlar tahlili",
- "agentBridge": "Agent Bridge",
+ "agentBridge": "Agent ko‘prigi",
"agentBridgeSubtitle": "IDE agenti trafigini tutib olish",
"trafficInspector": "Trafik inspektori",
"trafficInspectorSubtitle": "Ilovalaringizdan keladigan soʻrov va javob trafigini tekshirish",
@@ -1323,7 +1327,7 @@
"name": "Nomi",
"namePlaceholder": "Ishlab chiqarish muhitini kuzatish",
"unnamedWebhook": "Nomsiz vebhuk",
- "url": "Endpoint URL",
+ "url": "Endpoint URL manzili",
"events": "Hodisalar",
"allEvents": "Barcha hodisalar",
"secret": "Maxfiy kalit",
@@ -1712,7 +1716,7 @@
"cliCode": "CLI kodi",
"cliAgents": "CLI agentlari",
"acpAgents": "ACP agentlari",
- "endpoint": "Endpoint",
+ "endpoint": "Yakuniy nuqta",
"apiManager": "API menejeri",
"context": "Kontekst",
"compression": "Siqish",
@@ -1741,7 +1745,7 @@
"chaos": "Xaos",
"cloudAgents": "Bulut agentlari",
"live": "Jonli",
- "studio": "Studio",
+ "studio": "Studiya",
"aggressive": "Tajovuzkor",
"caveman": "G‘or odami",
"ccr": "CCR",
@@ -2203,7 +2207,7 @@
"model": "Model",
"account": "Hisob",
"connection": "Ulanish",
- "combo": "Combo",
+ "combo": "Kombinatsiya",
"routeStep": "Qadam",
"tokens": "Tokenlar",
"notAvailable": "mavjud emas",
@@ -2462,7 +2466,7 @@
"videoDescription": "ComfyUI yoki SD WebUI orqali AnimateDiff, Stable Video Diffusion yordamida videolar yarating.",
"musicDescription": "ComfyUI orqali Stable Audio Open yoki MusicGen yordamida musiqa yarating.",
"kinds": {
- "embedding": "Embedding",
+ "embedding": "Vektorlashtirish",
"image": "Tasvir",
"imageToText": "Tasvirdan matnga",
"tts": "Matndan nutqqa",
@@ -2660,7 +2664,7 @@
"httpError": "Xato {status}",
"failed": "Bajarilmadi",
"requestFailed": "So‘rov bajarilmadi",
- "embedding": "Embedding",
+ "embedding": "Vektorlashtirish",
"embeddingSample": "Salom, dunyo!",
"image": "Rasm",
"imageSample": "Quyosh botishidagi togʻlar aks etgan sokin manzara",
@@ -2713,7 +2717,7 @@
"ccOnboardingTitle": "Shlyuz modellarini aniqlash uchun settings.json",
"ccOnboardingCopy": "Nusxalash",
"ccOnboardingCopied": "Nusxalandi",
- "ccOnboardingKeyPlaceholder": "'https://ghe.yourcompany.com).",
@@ -10789,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "Kết nối Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "Đăng nhập bằng Cursor",
+ "tabImport": "Nhập token",
+ "loginDescription": "Mở trang đăng nhập của Cursor trong trình duyệt. Hoạt động trong Docker — phê duyệt trong trình duyệt trên máy chủ của bạn, sau đó quay lại đây.",
+ "loginWithCursor": "Đăng nhập bằng Cursor",
+ "startingLogin": "Đang bắt đầu…",
+ "waitingApproval": "Đang chờ phê duyệt đăng nhập Cursor…",
+ "openUrlHint": "Nếu trình duyệt không mở:",
+ "openLoginLink": "Mở trang đăng nhập",
+ "cancelLogin": "Hủy đăng nhập",
"autoDetecting": "Tự động phát hiện token...",
"readingFromCursor": "Đang đọc token từ Cursor IDE hoặc cursor-agent",
"tokensAutoDetected": "Đã tự động phát hiện token từ Cursor IDE thành công!",
"cursorNotDetected": "Không phát hiện thấy Cursor IDE. Vui lòng dán token của bạn thủ công.",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "Đang chạy trong Docker? Nên Đăng nhập bằng Cursor. Tính năng tự động nhập từ IDE và cursor-agent thường không khả dụng bên trong container. Xem docs/providers/CURSOR-DOCKER.md.",
"accessToken": "Token truy cập",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "Token làm mới",
+ "refreshTokenPlaceholder": "Không bắt buộc — cho phép tự động làm mới token",
"required": "*",
"accessTokenPlaceholder": "Token truy cập sẽ được tự động điền...",
"machineId": "Mã máy",
@@ -10818,9 +10821,9 @@
"errorAutoDetectFailed": "Tự động phát hiện token không thành công",
"errorEnterToken": "Vui lòng nhập token truy cập",
"errorImportFailed": "Nhập thất bại",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "Không thể bắt đầu đăng nhập Cursor",
+ "errorLoginPoll": "Đăng nhập Cursor không thành công",
+ "errorLoginTimeout": "Đăng nhập Cursor đã hết thời gian chờ — hãy thử lại"
},
"pricingModal": {
"title": "Cấu hình giá",
@@ -10853,7 +10856,7 @@
"loading": "Đang tải các proxy...",
"noProxies": "Chưa có proxy nào được lưu.",
"tableName": "Tên",
- "tableEndpoint": "Endpoint",
+ "tableEndpoint": "Điểm cuối",
"tableStatus": "Trạng thái",
"tableHealth": "Trạng thái hoạt động (24h)",
"tableUsage": "Mức sử dụng",
@@ -10895,7 +10898,7 @@
"scopeGlobal": "toàn cục",
"scopeProvider": "nhà cung cấp",
"scopeAccount": "tài khoản",
- "scopeCombo": "combo",
+ "scopeCombo": "kết hợp",
"bulkImportErrorMissingName": "Thiếu NAME",
"bulkImportErrorMissingHost": "Thiếu HOST",
"bulkImportErrorInvalidPort": "PORT không hợp lệ (phải từ 1-65535)",
@@ -10959,12 +10962,15 @@
"poolStrategyLabel": "Chiến lược xoay vòng",
"poolStrategyHint": "round-robin luân phiên các thành viên theo thứ tự; random chọn ngẫu nhiên đồng đều; sticky giữ một thành viên trong một khoảng thời gian; latency-optimized chọn thành viên nhanh nhất dựa trên nhật ký.",
"poolStrategyFailed": "Không thể cập nhật chiến lược xoay vòng",
- "strategyRoundRobin": "Round-robin",
+ "strategyRoundRobin": "Luân phiên",
"strategyRandom": "Ngẫu nhiên",
- "strategySticky": "Sticky",
+ "strategySticky": "Cố định",
"strategyLatency": "Tối ưu độ trễ (Latency-optimized)",
"poolMembersLabel": "Thành viên nhóm proxy ({count})",
"poolNoMembers": "Chưa có proxy nào trong nhóm này.",
+ "poolEgressObservation": "{exits, plural, other {# lối ra}} được dùng bởi {connections, plural, other {# kết nối}} · tối đa {max} trên một lối ra · {hours} giờ qua",
+ "poolEgressObservationEmpty": "Không ghi nhận lưu lượng trong {hours} giờ qua",
+ "poolEgressObservationHint": "Tính từ nhật ký proxy trong khoảng thời gian: số IP đầu ra khác nhau quan sát được của các thành viên nhóm proxy này và số kết nối OmniRoute đã dùng chúng. \"Trên một lối ra\" nghĩa là trong cả khoảng thời gian, không phải cùng lúc. Khóa 429 theo IP chỉ tạm dừng các kết nối cùng họ nhà cung cấp.",
"poolRemove": "Gỡ bỏ",
"poolRemoveFailed": "Không thể gỡ proxy khỏi nhóm",
"poolAddLabel": "Thêm proxy",
@@ -10976,7 +10982,7 @@
"playground": {
"title": "Khu thử nghiệm mô hình",
"description": "Thử nghiệm bất kỳ mô hình nào trực tiếp từ bảng điều khiển. Chọn nhà cung cấp, mô hình và loại endpoint, sau đó gửi một yêu cầu để xem phản hồi thô.",
- "endpoint": "Endpoint",
+ "endpoint": "Điểm cuối",
"provider": "Nhà cung cấp",
"model": "Mô hình",
"accountKey": "Tài khoản / Khóa",
@@ -11002,11 +11008,11 @@
"generatedImage": "Hình ảnh {index} đã được tạo",
"save": "Lưu",
"endpointOptions": {
- "chat": "Chat completions",
+ "chat": "Hoàn thành hội thoại",
"responses": "Phản hồi",
"completions": "Hoàn thành văn bản",
"images": "Tạo hình ảnh",
- "embeddings": "Embeddings",
+ "embeddings": "Vector nhúng",
"speech": "Chuyển văn bản thành giọng nói",
"transcription": "Chuyển âm thanh thành văn bản",
"video": "Tạo video",
@@ -11027,7 +11033,7 @@
"systemPrompt": "Prompt hệ thống",
"systemPromptPlaceholder": "Bạn là một trợ lý hữu ích.",
"modelPlaceholder": "Ví dụ: openai/gpt-4o",
- "endpointLabel": "Endpoint",
+ "endpointLabel": "Điểm cuối",
"parametersLabel": "Tham số",
"collapseConfig": "Thu gọn bảng cấu hình",
"expandConfig": "Mở rộng bảng cấu hình",
@@ -11037,7 +11043,7 @@
"presencePenalty": "Mức phạt hiện diện",
"frequencyPenalty": "Mức phạt tần suất",
"reasoningLabel": "Suy luận",
- "thinking": "Thinking",
+ "thinking": "Suy luận",
"effort": "Nỗ lực",
"effortDefault": "Mặc định",
"seedPlaceholder": "Ngẫu nhiên (để trống)",
@@ -11126,7 +11132,7 @@
"jsonSchemaEditor": "Trình sửa lược đồ JSON",
"schemaValidated": "Lược đồ hợp lệ",
"validateSchema": "Kiểm tra lược đồ",
- "seed": "Seed",
+ "seed": "Hạt giống",
"stopSequences": "Chuỗi dừng",
"stopSequencesPlaceholder": "Ví dụ: \"\\n\\n\" hoặc \"END\"",
"autoProvider": "Tự động",
@@ -11180,7 +11186,7 @@
}
},
"miniPlayground": {
- "endpoint": "Endpoint",
+ "endpoint": "Điểm cuối",
"apiKey": "Khóa API",
"model": "Mô hình",
"voice": "Giọng nói",
@@ -11208,7 +11214,7 @@
"play": "Phát",
"query": "Truy vấn",
"numResults": "Số kết quả tối đa",
- "prompt": "Prompt",
+ "prompt": "Lời nhắc",
"size": "Kích thước",
"duration": "Thời lượng",
"question": "Câu hỏi",
@@ -11266,7 +11272,7 @@
"total": "Tổng cộng",
"ok": "Thành công",
"err": "Lỗi",
- "combo": "Combo",
+ "combo": "Kết hợp",
"keys": "Khóa",
"shown": "Đang hiển thị",
"sortNewest": "Mới nhất",
@@ -11283,7 +11289,7 @@
"refresh": "Làm mới",
"columnsLabel": "Cột",
"cacheSem": "SEM",
- "cacheUp": "UP",
+ "cacheUp": "HOẠT ĐỘNG",
"semantic": "Ngữ nghĩa",
"upstream": "Thượng nguồn",
"semanticCacheHit": "Có kết quả khớp trong cache ngữ nghĩa (do OmniRoute phục vụ)",
@@ -11294,7 +11300,7 @@
"all": "Tất cả",
"error": "Lỗi",
"success": "Thành công",
- "combo": "Combo"
+ "combo": "Kết hợp"
},
"columns": {
"status": "Trạng thái",
@@ -11305,7 +11311,7 @@
"protocol": "Giao thức yêu cầu",
"account": "Tài khoản",
"apiKey": "Khóa API",
- "combo": "Combo",
+ "combo": "Kết hợp",
"tokens": "Token",
"compressed": "Nén",
"tps": "TPS",
@@ -11368,12 +11374,12 @@
},
"payloadMissing": "Không còn artifact payload chi tiết cho mục nhật ký này.",
"payloadCorrupt": "Không thể phân tích artifact payload chi tiết.",
- "notAvailable": "N/A",
- "semanticCache": "Semantic (OmniRoute)",
- "upstreamCache": "Upstream (Provider)",
+ "notAvailable": "Không áp dụng",
+ "semanticCache": "Ngữ nghĩa (OmniRoute)",
+ "upstreamCache": "Thượng nguồn (Nhà cung cấp)",
"ariaLabel": "Chi tiết nhật ký yêu cầu",
"completed": "Đã hoàn tất",
- "upstreamStatus": "Upstream: {status}",
+ "upstreamStatus": "Thượng nguồn: {status}",
"statusDiscrepancy": "OmniRoute trả về {status} mặc dù provider trả về {provider}",
"previousRequest": "Yêu cầu trước",
"nextRequest": "Yêu cầu tiếp theo",
@@ -11400,7 +11406,7 @@
"rotated": "Đã xoay vòng: {initial} -> {final}",
"apiKey": "Khóa API",
"noApiKey": "Không có khóa API",
- "combo": "Combo",
+ "combo": "Kết hợp",
"error": "Lỗi",
"unblockAll": "Bỏ chặn tất cả",
"cleared": "Đã xóa",
@@ -11418,8 +11424,8 @@
"correlationId": "ID tương quan",
"correlationIdValue": "ID tương quan: {id}",
"detailedPayloadInfo": "Hãy bật ghi nhật ký chi tiết trước nếu bạn muốn xem giao diện payload client/nhà cung cấp gồm 4 giai đoạn cho các yêu cầu mới.",
- "copyAll": "Copy all",
- "copiedAll": "Copied all"
+ "copyAll": "Sao chép tất cả",
+ "copiedAll": "Đã sao chép tất cả"
}
},
"proxyLogger": {
@@ -11445,8 +11451,8 @@
"allProviders": "Tất cả nhà cung cấp",
"total": "tổng cộng",
"ok": "OK",
- "err": "ERR",
- "timeoutShort": "TMO",
+ "err": "LỖI",
+ "timeoutShort": "HẾT GIỜ",
"direct": "trực tiếp",
"newest": "Mới nhất",
"oldest": "Cũ nhất",
@@ -11669,7 +11675,7 @@
"endpointsHint": "Gọi các mô hình ảo này bằng bất kỳ khóa API nào được phân bổ — việc định tuyến và hạn mức được xử lý theo từng nhóm.",
"previewForKey": "Xem trước cho khóa",
"previewKeyNone": "(tất cả các endpoint)",
- "endpointsBaseUrl": "Base URL",
+ "endpointsBaseUrl": "URL cơ sở",
"endpointsCollapse": "Thu gọn",
"endpointsExpand": "Mở rộng",
"endpointsAnthropicNote": "Chuẩn Anthropic",
@@ -11682,8 +11688,8 @@
"deleteGroupHasPools": "Nhóm này vẫn còn các pool — hãy gán lại hoặc xóa chúng trước.",
"ungroupedTitle": "Chưa phân nhóm",
"ungroupedHint": "Các pool này chưa được gán cho một nhóm mà hệ thống nhận diện. Hãy chỉnh sửa một pool để chuyển pool đó vào một nhóm hợp lệ.",
- "removeFailed": "Could not remove this pool.",
- "dismiss": "Dismiss"
+ "removeFailed": "Không thể xóa nhóm này.",
+ "dismiss": "Đóng"
},
"plugins": {
"title": "Plugin",
@@ -11720,7 +11726,7 @@
"enabled": "Đã bật",
"disabled": "Đã tắt",
"installedTab": "Đã cài đặt",
- "marketplaceTab": "Marketplace",
+ "marketplaceTab": "Kho ứng dụng",
"marketplaceUrlLabel": "URL Marketplace tùy chỉnh",
"marketplaceUrlPlaceholder": "Để trống để sử dụng kho plugin chính thức của OmniRoute",
"saveMarketplaceUrl": "Lưu & Tải lại",
@@ -11730,7 +11736,7 @@
"verified": "Đã xác minh",
"install": "Cài đặt",
"installedFromMarketplace": "Đã cài đặt plugin {name}!",
- "hooks": "Hooks"
+ "hooks": "Hook"
},
"quotaPlans": {
"title": "Gói dịch vụ & Hạn ngạch",
@@ -11746,7 +11752,7 @@
"unitOptions": {
"percent": "%",
"requests": "yêu cầu",
- "tokens": "tokens",
+ "tokens": "token",
"usd": "USD ($)"
},
"windowOptions": {
@@ -11772,7 +11778,7 @@
"yesterdayHeader": "Hôm qua",
"filterAll": "Tất cả",
"filterProviders": "Nhà cung cấp",
- "filterCombos": "Combos",
+ "filterCombos": "Các tổ hợp",
"filterApiKeys": "Khóa API",
"filterSettings": "Cài đặt",
"filterQuota": "Hạn mức",
@@ -12034,14 +12040,14 @@
"delete": "Xóa"
},
"trafficInspector": {
- "title": "Traffic Inspector",
+ "title": "Trình kiểm tra lưu lượng",
"subtitle": "Giám sát các cuộc gọi LLM và gỡ lỗi lưu lượng HTTPS của bất kỳ ứng dụng nào",
"captureModesTitle": "Chế độ thu thập",
"agentBridgeMode": "AgentBridge",
"agentBridgeModeDesc": "Thu thập lưu lượng truy cập từ tất cả tác nhân IDE đã kết nối",
"customHostsMode": "Máy chủ tùy chỉnh",
"customHostsModeDesc": "Thêm các máy chủ cụ thể để đánh chặn",
- "httpProxyMode": "HTTP Proxy",
+ "httpProxyMode": "Proxy HTTP",
"httpProxyModeDesc": "Sử dụng biến môi trường HTTP_PROXY",
"systemWideMode": "Toàn hệ thống",
"systemWideModeDesc": "Đánh chặn tất cả lưu lượng hệ thống (nâng cao)",
@@ -12058,7 +12064,7 @@
"resumeBtn": "Tiếp tục",
"clearBtn": "Xóa",
"exportHar": "Xuất tệp .har",
- "recordSession": "REC",
+ "recordSession": "GHI",
"stopSession": "Dừng",
"liveBadge": "trực tiếp",
"offlineBadge": "ngoại tuyến",
@@ -12066,7 +12072,7 @@
"noRequestsDesc": "Hãy đảm bảo AgentBridge đang chạy hoặc bật một chế độ thu thập khác.",
"selectRequest": "Chọn một yêu cầu để kiểm tra.",
"tabConversation": "Cuộc trò chuyện",
- "tabHeaders": "Headers",
+ "tabHeaders": "Tiêu đề",
"tabRequest": "Yêu cầu",
"tabResponse": "Phản hồi",
"tabTiming": "Thời gian",
@@ -12169,20 +12175,20 @@
"title": "Công cụ viết mã CLI",
"phrase": "Các công cụ viết mã mà bạn trỏ tới OmniRoute",
"flow": "Bạn → CLI Code → OmniRoute → Nhà cung cấp",
- "seeOther": "See →"
+ "seeOther": "Xem →"
},
"agent": {
"title": "Các tác nhân CLI",
"phrase": "Các tác nhân CLI tự trị đa dụng mà bạn trỏ tới OmniRoute",
"flow": "Bạn → CLI Agent → OmniRoute → Nhà cung cấp",
- "seeOther": "See →"
+ "seeOther": "Xem →"
},
"acp": {
"title": "Các tác nhân ACP",
"phrase": "Các CLI mà OmniRoute khởi chạy làm phần phụ trợ thực thi (luồng ngược)",
"warning": "Hầu hết người dùng có thể bỏ qua — chỉ dùng khi một tích hợp yêu cầu.",
"flow": "Ứng dụng khách → OmniRoute → khởi chạy CLI (stdio/ACP) → phản hồi",
- "seeOther": "See →"
+ "seeOther": "Xem →"
}
},
"comparison": {
@@ -12218,7 +12224,7 @@
"versionNotFound": "không tìm thấy",
"manualConfig": "Cấu hình thủ công",
"installGuide": "Hướng dẫn cài đặt",
- "endpointLabel": "Endpoint",
+ "endpointLabel": "Điểm cuối",
"baseUrlFull": "URL cơ sở đầy đủ",
"baseUrlPartial": "URL cơ sở một phần",
"refreshDetection": "Làm mới phát hiện",
@@ -12243,7 +12249,7 @@
}
},
"cliCode": {
- "pageTitle": "CLI Code's",
+ "pageTitle": "Mã của CLI",
"pageSubtitle": "Các công cụ lập trình trỏ đến OmniRoute",
"searchPlaceholder": "Tìm kiếm CLI…",
"filterDetectionLabel": "Phát hiện",
@@ -12256,7 +12262,7 @@
"baseUrlPartial": "Một phần"
},
"cliAgents": {
- "pageTitle": "CLI Agents",
+ "pageTitle": "Tác nhân CLI",
"pageSubtitle": "Các tác nhân CLI tự trị đa mục đích",
"refreshDetection": "Làm mới phát hiện",
"searchPlaceholder": "Tìm kiếm tác nhân…",
@@ -12268,7 +12274,7 @@
"emptyState": "Không tìm thấy tác nhân CLI nào với các bộ lọc hiện tại."
},
"acpAgents": {
- "pageTitle": "ACP Agents",
+ "pageTitle": "Tác nhân ACP",
"pageSubtitle": "Các CLI mà OmniRoute khởi chạy làm phụ trợ thực thi",
"scanning": "Đang phát hiện tác nhân…",
"refresh": "Làm mới",
@@ -12339,7 +12345,7 @@
"description": "Cấu hình proxy HTTP/HTTPS/SOCKS cho yêu cầu tới nhà cung cấp thượng nguồn. Đặt quy tắc theo nhà cung cấp hoặc toàn cục, kiểm tra kết nối và quản lý xoay vòng proxy."
},
"omni-cache": {
- "name": "Cache",
+ "name": "Bộ nhớ đệm",
"description": "Quản lý cache phản hồi LLM. Xem số liệu cache, xóa mục, cấu hình chính sách TTL và điều khiển ngưỡng cache theo độ tương đồng ngữ nghĩa."
},
"omni-compression": {
@@ -12347,7 +12353,7 @@
"description": "Cấu hình RTK cho đầu ra lệnh, Caveman cho văn xuôi và các chế độ nén xếp chồng. Quản lý gói ngôn ngữ, quy tắc tùy chỉnh và kiểm tra nén prompt giúp giảm 60–90% token."
},
"omni-context-rtk": {
- "name": "Context & RTK",
+ "name": "Ngữ cảnh & RTK",
"description": "Cấu hình bộ lọc RTK, quy tắc kỹ thuật context và cài đặt chuyển tiếp context. Kiểm tra nén bằng mẫu prompt thật và quản lý pipeline biến đổi context."
},
"omni-resilience": {
@@ -12536,7 +12542,7 @@
"categoryConfig": "Cấu hình",
"filterAll": "Tất cả",
"coverageLabel": "Độ bao phủ",
- "mcpUrl": "MCP URL",
+ "mcpUrl": "URL MCP",
"a2aLink": "A2A",
"mcpPrompt": "Thêm endpoint MCP này vào agent để cung cấp 37 công cụ OmniRoute.",
"a2aPrompt": "Đăng ký Agent Card này với bộ điều phối để bật khả năng ủy quyền tác vụ A2A.",
@@ -12847,7 +12853,7 @@
"security": "Bảo mật",
"network": "Mạng",
"policies": "Chính sách",
- "runtime": "Runtime",
+ "runtime": "Môi trường chạy",
"cli": "CLI",
"health": "Tình trạng",
"requiresRestart": "Cần khởi động lại"
@@ -12867,7 +12873,7 @@
"restartFailed": "Khởi động lại thất bại",
"resetOverridesFailedHttp": "Không thể đặt lại ghi đè: HTTP {status}",
"resetOverridesFailed": "Không thể đặt lại ghi đè",
- "restartRequiredCount": "{count, plural, one {# change requires} other {# changes require}} a server restart to take effect.",
+ "restartRequiredCount": "{count, plural, one {# thay đổi cần} other {# thay đổi cần}} khởi động lại máy chủ để có hiệu lực.",
"restartRequiredDescription": "Các cờ này chỉ được áp dụng sau khi tiến trình tải lại. Có thể khởi động lại ngay hoặc tiếp tục chỉnh sửa — các cờ đang chờ vẫn được giữ cho đến khi bạn xác nhận.",
"restartServer": "Khởi động lại máy chủ",
"cancel": "Hủy",
@@ -12985,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Cho phép khôi phục luồng bằng cách yêu cầu lại và ghép phản hồi sau khi dữ liệu đã bắt đầu được gửi tới ứng dụng khách."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Giúp việc tiếp tục luồng giữa chừng an toàn với lệnh gọi công cụ: không bao giờ tiếp tục một luồng bị ngắt sau khi đã gửi lệnh gọi công cụ (đang xử lý hoặc đã hoàn tất), và dừng sau một lần tiếp tục rỗng thay vì dùng hết số lần thử lại."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Chuyển dự phòng một lần sang kết nối anh em khi luồng dừng trước khi phát bất kỳ khung hữu ích nào và lần thử lại có giới hạn trên cùng kết nối đã cạn. Nếu không có kết nối anh em dùng được, lỗi early-EOF ban đầu sẽ được trả về. Tắt: early-EOF vẫn kết thúc sau lần thử lại."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Thêm trường tên dễ đọc vào phản hồi /v1/models. Tắt với các ứng dụng khách chỉ chấp nhận ID mô hình."
},
@@ -13021,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Vòng lặp công cụ do máy chủ sở hữu",
"description": "Tiếp tục các lời gọi công cụ do máy chủ sở hữu ở chế độ không streaming cho đến khi mô hình trả về phản hồi mà máy khách dùng được."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Nguồn gốc của Retry-After",
+ "description": "Với các phản hồi không khả dụng 429/503 tổng hợp, bỏ Retry-After khi không biết thời điểm thử lại cụ thể thay vì gửi giá trị giả 1 giây, thêm error.retry_after_provenance và đọc gợi ý thử lại dạng văn bản trên các đường thoát của combo."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Dừng ưu tiên được bảo vệ do hạ tầng trả 502",
+ "description": "Trả 502 thay vì 503 khi một mục tiêu ưu tiên chỉ dự phòng theo hạn mức dừng combo vì một nguyên nhân chắc chắn không phải hạn mức: bộ ngắt mạch của nhà cung cấp đang mở hoặc bỏ qua do dự đoán độ trễ."
}
}
},
@@ -13163,7 +13183,7 @@
"boost": "Mở khóa thêm khoảng {tokens}/tháng bằng một lần nạp $10 vào OpenRouter (50 → 1000 yêu cầu/ngày)",
"uncapped": "Miễn phí vĩnh viễn, không công bố giới hạn (bị giới hạn tốc độ) — quyền truy cập thực, không tính vào tổng nổi bật:",
"gated": "~{tokens}/tháng nữa nằm sau bước xác minh danh tính theo khu vực (ví dụ: xác thực tên thật ở Trung Quốc đại lục) — hạn mức thật, không tính vào con số chính:",
- "tosRestricted": "{count, plural, one {# model} other {# models}} flagged as ToS-restricted — you decide",
+ "tosRestricted": "{count, plural, one {# mô hình} other {# mô hình}} bị đánh dấu là bị hạn chế theo Điều khoản dịch vụ — bạn quyết định",
"provider": "Nhà cung cấp",
"model": "Mô hình",
"modelName": "Tên mô hình",
@@ -13261,80 +13281,80 @@
"viewFullHistory": "Xem toàn bộ lịch sử trên GitHub"
},
"reasoningRouting": {
- "title": "Reasoning routing policies",
- "apiKeyTitle": "Reasoning routing for this API key",
- "subtitle": "Reroute models and reasoning effort without requiring client support. Requests remain unchanged when no rule matches.",
- "loadError": "Reasoning rules could not be loaded.",
- "saveError": "The rule is invalid or could not be saved.",
- "saved": "Reasoning rule saved.",
- "deleteConfirm": "Delete this reasoning rule?",
- "deleteError": "The reasoning rule could not be deleted.",
- "empty": "No matching reasoning rules configured.",
- "all": "All",
- "any": "Any",
- "enabled": "Enabled",
- "disabled": "Disabled",
- "filterSearch": "Search rules",
- "filterScope": "Filter by scope",
- "filterStatus": "Filter by status",
- "allModels": "all models",
- "keepModel": "Keep model",
- "otherModel": "Other model",
- "combo": "Combo",
- "priorityShort": "priority {value}",
- "toggleAria": "Enable {name}",
- "edit": "Edit",
- "delete": "Delete",
- "name": "Name",
- "description": "Description",
- "scopeLabel": "Scope",
- "apiKey": "API key",
- "sourceCombo": "Source combo",
- "connection": "Connection",
- "sourceModel": "Source model or wildcard",
- "sourceModelOptional": "Empty = all models",
- "sourceModelExample": "e.g. gpt-5*",
- "sourceEffort": "Source effort",
- "missing": "Not specified",
- "signalOnly": "Non-discrete reasoning signal",
- "requestTags": "Request tags",
- "requestTagsExample": "coding, internal",
- "tagMode": "Tag matching",
- "effortMode": "Effort mode",
- "targetEffort": "Target effort",
- "routingTarget": "Routing target",
- "targetModel": "Target model",
- "targetCombo": "Target combo",
- "budgetAction": "Thinking budget",
- "budgetTokens": "Budget tokens",
- "priority": "Priority",
- "saveChanges": "Save changes",
- "add": "Add rule",
- "cancel": "Cancel",
- "simulateTitle": "Simulate rule",
- "model": "Model",
- "effort": "Effort",
- "transport": "Transport",
- "simulate": "Simulate without upstream",
- "extendedComboWarning": "Max/Ultra is validated separately for every combo target during routing.",
- "extendedUnknownWarning": "Enter a target model to verify Max/Ultra support.",
- "extendedUnsupportedWarning": "Max/Ultra is only known to be supported by suitable Codex GPT-5.6 models. Unknown custom models are accepted by the server with a warning.",
+ "title": "Chính sách định tuyến suy luận",
+ "apiKeyTitle": "Định tuyến suy luận cho khóa API này",
+ "subtitle": "Định tuyến lại mô hình và mức độ suy luận mà không cần phía máy khách hỗ trợ. Yêu cầu sẽ không thay đổi khi không có quy tắc nào khớp.",
+ "loadError": "Không thể tải các quy tắc suy luận.",
+ "saveError": "Quy tắc không hợp lệ hoặc không thể lưu.",
+ "saved": "Đã lưu quy tắc suy luận.",
+ "deleteConfirm": "Xóa quy tắc suy luận này?",
+ "deleteError": "Không thể xóa quy tắc suy luận.",
+ "empty": "Chưa cấu hình quy tắc suy luận nào khớp.",
+ "all": "Tất cả",
+ "any": "Bất kỳ",
+ "enabled": "Đã bật",
+ "disabled": "Đã tắt",
+ "filterSearch": "Tìm kiếm quy tắc",
+ "filterScope": "Lọc theo phạm vi",
+ "filterStatus": "Lọc theo trạng thái",
+ "allModels": "tất cả mô hình",
+ "keepModel": "Giữ nguyên mô hình",
+ "otherModel": "Mô hình khác",
+ "combo": "Tổ hợp",
+ "priorityShort": "mức ưu tiên {value}",
+ "toggleAria": "Bật {name}",
+ "edit": "Chỉnh sửa",
+ "delete": "Xóa",
+ "name": "Tên",
+ "description": "Mô tả",
+ "scopeLabel": "Phạm vi",
+ "apiKey": "Khóa API",
+ "sourceCombo": "Tổ hợp nguồn",
+ "connection": "Kết nối",
+ "sourceModel": "Mô hình nguồn hoặc ký tự đại diện",
+ "sourceModelOptional": "Để trống = tất cả mô hình",
+ "sourceModelExample": "ví dụ: gpt-5*",
+ "sourceEffort": "Mức suy luận nguồn",
+ "missing": "Không được chỉ định",
+ "signalOnly": "Tín hiệu suy luận không rời rạc",
+ "requestTags": "Thẻ yêu cầu",
+ "requestTagsExample": "lập trình, nội bộ",
+ "tagMode": "Khớp thẻ",
+ "effortMode": "Chế độ suy luận",
+ "targetEffort": "Mức suy luận đích",
+ "routingTarget": "Đích định tuyến",
+ "targetModel": "Mô hình đích",
+ "targetCombo": "Tổ hợp đích",
+ "budgetAction": "Ngân sách suy luận",
+ "budgetTokens": "Số token ngân sách",
+ "priority": "Mức ưu tiên",
+ "saveChanges": "Lưu thay đổi",
+ "add": "Thêm quy tắc",
+ "cancel": "Hủy",
+ "simulateTitle": "Mô phỏng quy tắc",
+ "model": "Mô hình",
+ "effort": "Mức suy luận",
+ "transport": "Phương thức truyền tải",
+ "simulate": "Mô phỏng mà không dùng upstream",
+ "extendedComboWarning": "Max/Ultra được xác thực riêng cho từng đích trong tổ hợp khi định tuyến.",
+ "extendedUnknownWarning": "Nhập mô hình đích để xác minh khả năng hỗ trợ Max/Ultra.",
+ "extendedUnsupportedWarning": "Max/Ultra chỉ được xác định là được hỗ trợ bởi các mô hình Codex GPT-5.6 phù hợp. Máy chủ vẫn chấp nhận các mô hình tùy chỉnh chưa xác định nhưng sẽ hiển thị cảnh báo.",
"scope": {
- "global": "Global",
- "apiKey": "API key",
- "combo": "Combo",
- "model": "Model",
- "connection": "Connection"
+ "global": "Toàn cục",
+ "apiKey": "Khóa API",
+ "combo": "Tổ hợp",
+ "model": "Mô hình",
+ "connection": "Kết nối"
},
"mode": {
- "inherit": "Inherit client",
- "default": "Use default",
- "force": "Force"
+ "inherit": "Kế thừa từ máy khách",
+ "default": "Dùng mặc định",
+ "force": "Bắt buộc"
},
"budget": {
- "preserve": "Preserve",
- "remove": "Remove",
- "set": "Set fixed value"
+ "preserve": "Giữ nguyên",
+ "remove": "Xóa",
+ "set": "Đặt giá trị cố định"
}
},
"chaosConfig": {
@@ -13343,7 +13363,7 @@
"enableChaos": "Bật Chế độ Chaos",
"enableChaosDesc": "Cho phép các khóa API đã bật Chế độ Chaos sử dụng tính năng này",
"mode": "Chế độ mặc định",
- "modeParallel": "Parallel",
+ "modeParallel": "Song song",
"modeCollaborative": "Cộng tác",
"modeParallelDesc": "Tất cả các mô hình chạy đồng thời — cho kết quả nhanh nhất",
"modeCollaborativeDesc": "Các mô hình liên kết chuỗi đầu ra — mỗi mô hình thấy kết quả của mô hình trước đó",
@@ -13386,8 +13406,8 @@
"foundingFriendTitle": "Kimi (Moonshot AI) là người bạn mã nguồn mở sáng lập của OmniRoute",
"description": "Người dùng mới nhận thêm 15% tín dụng API cho lần nạp đầu tiên. Dùng Kimi K3 trong OmniRoute qua Kimi API chính thức.",
"cta": "Nhận khóa Kimi API",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "partnerLinkNote": "Liên kết đối tác",
+ "dismissAriaLabel": "Đóng"
},
"vscodeCopilotBanner": {
"title": "OmniRoute giờ đây chạy ngay trong VS Code Copilot Chat",
@@ -13416,16 +13436,30 @@
"tierCommunity": "Cộng đồng (độ trễ 30 ngày)",
"activateTitle": "Kích hoạt Radar",
"activateDescription": "So sánh quyền truy cập Cộng đồng và trực tiếp, hiểu những gì bản cài đặt của bạn trao đổi, rồi chọn cách kích hoạt Radar.",
+ "accessScaleTitle": "Hiểu quyền truy cập Radar trước khi kích hoạt",
+ "accessScaleIntro": "Radar không trao đổi dữ liệu qua mạng cho đến khi bạn chọn tham gia. Hãy chọn quyền truy cập Cộng đồng hoặc kích hoạt khóa người ủng hộ cá nhân sau khi xem các quy tắc này.",
+ "accessCommunityRule": "Cộng đồng — không cần khóa: toàn bộ danh mục với độ trễ 30 ngày.",
+ "accessSingleUseRule": "Star + follow — sau khi GitHub OAuth xác minh cả hai, tài khoản GitHub của bạn được đọc danh mục trực tiếp một lần; sau đó quyền truy cập trở lại Cộng đồng. Quyền truy cập dùng một lần này không thể được cấp lại cho tài khoản đó.",
+ "accessContributorRule": "Người đóng góp — các PR đã merge, commit và số dòng chỉ dùng để xếp thứ hạng hằng tuần. Top 10 nhận 365 ngày; hạng 11–100 nhận 90 ngày; người đóng góp ngoài Top 100 không nhận quyền truy cập, bất kể số lượng PR. Rời bảng xếp hạng không bao giờ rút ngắn thời gian đã được cấp.",
+ "accessSupporterRule": "Người ủng hộ — các gói mua một lần cấp 6 tháng, 1 năm hoặc trọn đời, không tự động gia hạn. Thời hạn từ mua hàng, quyên góp, đóng góp và cấp thủ công được cộng dồn; trọn đời luôn được ưu tiên.",
+ "accessUseTitle": "Sử dụng cá nhân, khôi phục và xem xét",
+ "accessInstallationRule": "Giấy phép cá nhân — chỉ sử dụng khóa trên một bản cài đặt đang hoạt động tại một thời điểm. OmniRoute không tạo dấu vân phần cứng. Khôi phục sẽ thu hồi và thay thế khóa bị mất mà không đặt lại ngày hết hạn.",
+ "accessAbuseRule": "Xem xét lạm dụng — IP khác biệt thứ 4 trong 24 giờ chỉ tạo cờ để xem xét thủ công; hệ thống không bao giờ tự động chặn hoặc thu hồi khóa.",
+ "accessOffersRule": "Các ưu đãi trực tiếp được tuyển chọn thủ công và có thể thay đổi hoặc hết hạn.",
+ "privacyTitle": "Radar trao đổi những gì",
+ "privacyDownloadsRule": "Tải xuống — bản cài đặt của bạn nhận danh mục và siêu dữ liệu giới thiệu đã được ký bằng mật mã; khóa truy cập trực tiếp hợp lệ cũng mở khóa các ưu đãi đã ký và Intel.",
+ "privacySendsRule": "Gửi đi — quá trình đồng bộ phía máy chủ gửi khóa người ủng hộ dưới dạng Bearer token và hạ tầng HTTPS nhận địa chỉ IP kết nối. Việc ghi nhận yêu cầu feed không lưu thô cả hai giá trị: chỉ lưu hash của khóa, số liệu sử dụng tổng hợp và HMAC IP rút gọn luân phiên hằng ngày để xem xét lạm dụng.",
+ "privacyNeverRule": "Không bao giờ thu thập — lời nhắc, phản hồi, hội thoại, thông tin đăng nhập nhà cung cấp, lưu lượng mô hình, thời gian hoạt động, độ trễ và cấu hình nhà cung cấp cục bộ không bao giờ được gửi đến Radar.",
"activateButton": "Kích hoạt Cộng đồng",
"activating": "Đang kích hoạt...",
- "keySectionTitle": "Already have a supporter key?",
- "keyInvalidFormatError": "Invalid key format. It must start with \"omr_\" followed by 40 hex characters.",
- "activateWithKeyButton": "Activate supporter",
- "changeKeyButton": "Change key",
- "claimSectionTitle": "Don't have a supporter key yet?",
- "contributorButton": "I'm a contributor",
+ "keySectionTitle": "Bạn đã có khóa người ủng hộ?",
+ "keyInvalidFormatError": "Định dạng khóa không hợp lệ. Khóa phải bắt đầu bằng \"omr_\", theo sau là 40 ký tự thập lục phân.",
+ "activateWithKeyButton": "Kích hoạt quyền người ủng hộ",
+ "changeKeyButton": "Đổi khóa",
+ "claimSectionTitle": "Bạn chưa có khóa người ủng hộ?",
+ "contributorButton": "Tôi là người đóng góp",
"contributorHint": "GitHub OAuth kiểm tra bảng xếp hạng hằng tuần hiện tại: Top 10 nhận 365 ngày và hạng 11–100 nhận 90 ngày. Chỉ số lượng PR không bao giờ cấp quyền truy cập nếu nằm ngoài Top 100.",
- "supporterButton": "Support the project",
+ "supporterButton": "Ủng hộ dự án",
"supporterHint": "Các lựa chọn mua một lần 6 tháng, 1 năm và trọn đời không tự động gia hạn; các thời hạn đủ điều kiện được cộng dồn và quyền trọn đời luôn được ưu tiên.",
"colProvider": "Nhà cung cấp",
"colModel": "Mô hình",
@@ -13445,62 +13479,48 @@
"capTools": "Công cụ",
"capVision": "Tầm nhìn",
"capThinking": "Suy nghĩ",
- "catalogTab": "Catalog",
- "freeCreditsTab": "Free credits",
- "freeCreditsSubtitle": "Referral links from Radar-tracked providers — using them costs you nothing extra and helps support OmniRoute.",
- "fixedLinksEmpty": "No referral links available yet. Sync Radar to check for updates.",
- "requiredActionLabel": "What to do:",
- "claimButton": "Claim credits",
- "campaignsTitle": "Limited-time campaigns",
- "campaignsEmpty": "No active campaigns right now — check back later.",
- "campaignsUpsellCommunity": "Limited-time campaigns are a supporter extra. Everything on this page's fixed links stays free for everyone.",
- "campaignsValidUntil": "Valid until {date}",
- "colActions": "Actions",
- "localBadge": "local",
- "editModel": "Edit",
- "saveModel": "Save",
- "cancelEdit": "Cancel",
- "resetModel": "Reset local changes",
- "hideModel": "Hide",
- "restoreModel": "Restore",
- "hiddenModelsTitle": "Hidden models",
- "modelDisplayName": "Local display name",
- "modelEnabled": "Enabled locally",
- "localStateSaveFailed": "Failed to save local Radar settings",
- "guidedCombos": "Guided combos",
- "offers": "Offers",
- "intel": "Thông tin chuyên sâu",
- "accessScaleTitle": "Hiểu quyền truy cập Radar trước khi kích hoạt",
- "accessScaleIntro": "Radar không trao đổi dữ liệu qua mạng cho đến khi bạn chọn tham gia. Hãy chọn quyền truy cập Cộng đồng hoặc kích hoạt khóa người ủng hộ cá nhân sau khi xem các quy tắc này.",
- "accessCommunityRule": "Cộng đồng — không cần khóa: toàn bộ danh mục với độ trễ 30 ngày.",
- "accessSingleUseRule": "Star + follow — sau khi GitHub OAuth xác minh cả hai, tài khoản GitHub của bạn được đọc danh mục trực tiếp một lần; sau đó quyền truy cập trở lại Cộng đồng. Quyền truy cập dùng một lần này không thể được cấp lại cho tài khoản đó.",
- "accessContributorRule": "Người đóng góp — các PR đã merge, commit và số dòng chỉ dùng để xếp thứ hạng hằng tuần. Top 10 nhận 365 ngày; hạng 11–100 nhận 90 ngày; người đóng góp ngoài Top 100 không nhận quyền truy cập, bất kể số lượng PR. Rời bảng xếp hạng không bao giờ rút ngắn thời gian đã được cấp.",
- "accessSupporterRule": "Người ủng hộ — các gói mua một lần cấp 6 tháng, 1 năm hoặc trọn đời, không tự động gia hạn. Thời hạn từ mua hàng, quyên góp, đóng góp và cấp thủ công được cộng dồn; trọn đời luôn được ưu tiên.",
- "accessUseTitle": "Sử dụng cá nhân, khôi phục và xem xét",
- "accessInstallationRule": "Giấy phép cá nhân — chỉ sử dụng khóa trên một bản cài đặt đang hoạt động tại một thời điểm. OmniRoute không tạo dấu vân phần cứng. Khôi phục sẽ thu hồi và thay thế khóa bị mất mà không đặt lại ngày hết hạn.",
- "accessAbuseRule": "Xem xét lạm dụng — IP khác biệt thứ 4 trong 24 giờ chỉ tạo cờ để xem xét thủ công; hệ thống không bao giờ tự động chặn hoặc thu hồi khóa.",
- "accessOffersRule": "Các ưu đãi trực tiếp được tuyển chọn thủ công và có thể thay đổi hoặc hết hạn.",
- "privacyTitle": "Radar trao đổi những gì",
- "privacyDownloadsRule": "Tải xuống — bản cài đặt của bạn nhận danh mục và siêu dữ liệu giới thiệu đã được ký bằng mật mã; khóa truy cập trực tiếp hợp lệ cũng mở khóa các ưu đãi đã ký và Intel.",
- "privacySendsRule": "Gửi đi — quá trình đồng bộ phía máy chủ gửi khóa người ủng hộ dưới dạng Bearer token và hạ tầng HTTPS nhận địa chỉ IP kết nối. Việc ghi nhận yêu cầu feed không lưu thô cả hai giá trị: chỉ lưu hash của khóa, số liệu sử dụng tổng hợp và HMAC IP rút gọn luân phiên hằng ngày để xem xét lạm dụng.",
- "privacyNeverRule": "Không bao giờ thu thập — lời nhắc, phản hồi, hội thoại, thông tin đăng nhập nhà cung cấp, lưu lượng mô hình, thời gian hoạt động, độ trễ và cấu hình nhà cung cấp cục bộ không bao giờ được gửi đến Radar."
+ "catalogTab": "Danh mục",
+ "freeCreditsTab": "Tín dụng miễn phí",
+ "freeCreditsSubtitle": "Liên kết giới thiệu từ các nhà cung cấp được Radar theo dõi — việc sử dụng không khiến bạn tốn thêm chi phí và giúp hỗ trợ OmniRoute.",
+ "fixedLinksEmpty": "Chưa có liên kết giới thiệu nào. Hãy đồng bộ Radar để kiểm tra bản cập nhật.",
+ "requiredActionLabel": "Cách thực hiện:",
+ "claimButton": "Nhận tín dụng",
+ "campaignsTitle": "Chiến dịch có thời hạn",
+ "campaignsEmpty": "Hiện không có chiến dịch nào đang diễn ra — hãy quay lại sau.",
+ "campaignsUpsellCommunity": "Các chiến dịch có thời hạn là quyền lợi bổ sung dành cho người ủng hộ. Tất cả liên kết cố định trên trang này vẫn miễn phí cho mọi người.",
+ "campaignsValidUntil": "Có hiệu lực đến {date}",
+ "colActions": "Thao tác",
+ "localBadge": "cục bộ",
+ "editModel": "Chỉnh sửa",
+ "saveModel": "Lưu",
+ "cancelEdit": "Hủy",
+ "resetModel": "Đặt lại các thay đổi cục bộ",
+ "hideModel": "Ẩn",
+ "restoreModel": "Khôi phục",
+ "hiddenModelsTitle": "Các mô hình đã ẩn",
+ "modelDisplayName": "Tên hiển thị cục bộ",
+ "modelEnabled": "Được bật cục bộ",
+ "localStateSaveFailed": "Không thể lưu cài đặt Radar cục bộ",
+ "guidedCombos": "Tổ hợp có hướng dẫn",
+ "offers": "Ưu đãi",
+ "intel": "Thông tin chuyên sâu"
},
"radarCombosPage": {
- "title": "Radar guided combos",
- "subtitle": "Create priority fallbacks from equivalent free models curated by Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading combo suggestions...",
- "familyLabel": "Model family",
- "modelsLabel": "Priority order",
- "strategyReason": "Priority uses the largest recurring free budget first, then falls back across active providers.",
- "generateButton": "Generate combo",
- "generating": "Generating...",
- "alreadyCreated": "Already created",
- "created": "Combo created",
- "noSuggestions": "No eligible model family currently has active connections to at least two providers.",
- "catalogRequired": "Sync the Radar catalog first to load curated model families.",
- "loadFailed": "Failed to load Radar combo suggestions.",
- "createFailed": "Failed to create the combo. Review your provider connections and try again."
+ "title": "Tổ hợp có hướng dẫn của Radar",
+ "subtitle": "Tạo chuỗi dự phòng ưu tiên từ các mô hình miễn phí tương đương do Radar tuyển chọn.",
+ "backToRadar": "Quay lại Radar",
+ "loading": "Đang tải các đề xuất tổ hợp...",
+ "familyLabel": "Họ mô hình",
+ "modelsLabel": "Thứ tự ưu tiên",
+ "strategyReason": "Ưu tiên sử dụng ngân sách miễn phí định kỳ lớn nhất trước, sau đó chuyển sang các nhà cung cấp đang hoạt động khác khi cần.",
+ "generateButton": "Tạo tổ hợp",
+ "generating": "Đang tạo...",
+ "alreadyCreated": "Đã được tạo",
+ "created": "Đã tạo tổ hợp",
+ "noSuggestions": "Hiện không có họ mô hình đủ điều kiện nào có kết nối đang hoạt động với ít nhất hai nhà cung cấp.",
+ "catalogRequired": "Trước tiên, hãy đồng bộ danh mục Radar để tải các họ mô hình được tuyển chọn.",
+ "loadFailed": "Không thể tải các đề xuất tổ hợp của Radar.",
+ "createFailed": "Không thể tạo tổ hợp. Hãy kiểm tra các kết nối nhà cung cấp của bạn rồi thử lại."
},
"radarSetupPage": {
"title": "Thiết lập nhà cung cấp",
@@ -13542,11 +13562,11 @@
"connectionId": "Kết Nối",
"authType": "Xác Thực",
"backoffLevel": "Trì Hoãn",
- "cooldown": "Cooldown",
+ "cooldown": "Thời gian chờ",
"lastError": "Lỗi Gần Nhất",
"lockouts": "Khóa",
"healthy": "Khỏe Mạnh",
- "coolingDown": "Cooldown",
+ "coolingDown": "Thời gian chờ",
"circuitOpen": "Mạch Mở",
"recovering": "Đang Phục Hồi",
"degraded": "Suy Giảm",
@@ -13580,7 +13600,7 @@
"detail": {
"title": "Chi Tiết Kết Nối",
"metadata": "Siêu Dữ Liệu",
- "cooldown": "Cooldown",
+ "cooldown": "Thời gian chờ",
"lastError": "Lỗi Gần Nhất",
"breaker": "Cầu Dao Mạch",
"lockouts": "Khóa Mô Hình",
@@ -13634,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Từ chối yêu cầu trước khi gửi đi khi mô hình đích thiếu các khả năng bắt buộc (thị giác, công cụ, đầu ra có cấu trúc, cửa sổ ngữ cảnh). Bảo vệ các yêu cầu trực tiếp đến một nhà cung cấp khi chúng bỏ qua bộ lọc tương thích của combo.",
"featureFlagDisableContextWindowChecksDescription": "Bỏ qua kiểm tra cục bộ của OmniRoute về cửa sổ ngữ cảnh và giới hạn token đầu vào tối đa cho yêu cầu trực tiếp đến một mô hình đơn lẻ. Nhà cung cấp thượng nguồn vẫn áp dụng các giới hạn thực tế. Tính năng nén prompt và giới hạn token đầu ra vẫn hoạt động.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Thống kê tìm kiếm và các lượt tìm kiếm gần đây chỉ tính những nhà cung cấp vẫn còn kết nối hoạt động (các nhà cung cấp không cần khóa như duckduckgo-free luôn được tính). Khi tắt, mọi hàng tìm kiếm được lưu giữ có ID nhà cung cấp đều được giữ lại.",
"publicSystem": {
"notFound": {
"title": "Không tìm thấy trang",
@@ -13797,7 +13818,7 @@
"autoDetecting": "Đang tự động phát hiện token...",
"readingCredentials": "Đang đọc thông tin xác thực {providerLabel} từ bộ nhớ đệm AWS SSO",
"tokenNotDetected": "Không thể tự động phát hiện token {providerLabel}. Vui lòng dán refresh token theo cách thủ công.",
- "refreshToken": "Refresh Token",
+ "refreshToken": "Mã làm mới",
"tokenPlaceholder": "Token sẽ được tự động điền...",
"importing": "Đang nhập...",
"apiKeyPlaceholder": "Dán khóa API {providerLabel} của bạn...",
@@ -13846,14 +13867,14 @@
"openSoloTrae": "Mở solo.trae.ai",
"orPasteManually": "hoặc dán token theo cách thủ công",
"manualInstructions": "Đăng nhập vào solo.trae.ai, mở DevTools → Network, gửi bất kỳ tin nhắn trò chuyện nào và sao chép JWT từ header yêu cầu Authorization: Cloud-IDE-JWT {tokenPlaceholder}. JWT có thời hạn khoảng 14 ngày. Các trường nhận dạng tùy chọn lấy từ common_params trong cùng phần thân yêu cầu.",
- "accessTokenLabel": "Access Token (Cloud-IDE-JWT)",
- "webId": "Web ID",
+ "accessTokenLabel": "Mã truy cập (Cloud-IDE-JWT)",
+ "webId": "ID web",
"optional": "tùy chọn",
- "bizUserId": "Biz User ID",
- "userUniqueId": "User Unique ID",
- "scope": "Scope",
- "tenant": "Tenant",
- "region": "Region",
+ "bizUserId": "ID người dùng doanh nghiệp",
+ "userUniqueId": "ID duy nhất của người dùng",
+ "scope": "Phạm vi",
+ "tenant": "Đơn vị thuê",
+ "region": "Khu vực",
"importing": "Đang nhập…",
"importToken": "Nhập Token",
"cancel": "Hủy"
@@ -13907,7 +13928,7 @@
"time": "Thời gian",
"latency": "Độ trễ",
"clientIp": "IP client",
- "proxy": "Proxy",
+ "proxy": "Máy chủ proxy",
"direct": "Trực tiếp",
"type": "Loại",
"level": "Mức",
@@ -13944,11 +13965,11 @@
"pending": "đang chờ"
},
"metadata": {
- "compressionTitle": "Compression",
+ "compressionTitle": "Nén",
"compressionDescription": "Định cấu hình cài đặt nén ngữ cảnh để giảm mức sử dụng token và chi phí.",
- "relayTitle": "OmniRoute — Relay Proxies",
+ "relayTitle": "OmniRoute — Proxy chuyển tiếp",
"relayDescription": "Các endpoint proxy relay serverless cho hạ tầng AI của bạn",
- "trafficInspectorTitle": "Traffic Inspector — OmniRoute",
+ "trafficInspectorTitle": "Trình kiểm tra lưu lượng — OmniRoute",
"trafficInspectorDescription": "Theo dõi các lệnh gọi LLM và gỡ lỗi lưu lượng HTTPS của mọi ứng dụng"
},
"conductor": {
@@ -13957,7 +13978,7 @@
"runners": "Người Chạy",
"tasks": "Công Việc",
"colName": "Tên",
- "colClis": "CLIs",
+ "colClis": "CLI",
"colStatus": "Trạng Thái",
"colTask": "Nhiệm vụ",
"colMode": "Chế Độ",
@@ -14060,11 +14081,11 @@
"actionApprove": "Phê duyệt kế hoạch",
"actionCancel": "Hủy",
"actionSeeInGraph": "Xem trong sơ đồ",
+ "actionRepeat": "Lặp lại",
"actionDone": "Đã áp dụng hành động",
"actionFailed": "Hành động thất bại: {error}",
"detailFailed": "Không tải được chi tiết: {error}",
"mirroredInA2A": "Được phản chiếu trong A2A",
- "actionRepeat": "Lặp lại",
"repeatConfirm": "Nhấp lại để xác nhận",
"repeatDone": "Đã tạo lượt chạy mới",
"repeatUnavailable": "Không có dữ liệu đầu vào gốc"
@@ -14078,25 +14099,25 @@
"networkError": "Lỗi mạng — không thể cập nhật cài đặt hiển thị nhà cung cấp"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "Ưu đãi dành cho người ủng hộ",
+ "subtitle": "Các chương trình giảm giá, tín dụng, dùng thử chính thức và quyền lợi đối tác đã được Radar đánh giá.",
+ "backToRadar": "Quay lại Radar",
+ "loading": "Đang tải ưu đãi...",
+ "refresh": "Làm mới ưu đãi",
+ "refreshing": "Đang làm mới...",
+ "loadFailed": "Chúng tôi không thể làm mới ưu đãi. Bộ nhớ đệm cục bộ được xác minh gần nhất vẫn được giữ lại.",
+ "empty": "Hiện không có ưu đãi nào đang áp dụng.",
+ "keyRequiredTitle": "Cần có khóa dành cho người ủng hộ",
+ "keyRequiredDescription": "Ưu đãi là một quyền lợi trực tiếp của Radar. Hãy thêm khóa dành cho người ủng hộ hiện có trên màn hình Radar, xác minh trạng thái người đóng góp của bạn hoặc ủng hộ dự án để nhận khóa.",
+ "contributorButton": "Tôi là người đóng góp",
+ "supporterButton": "Ủng hộ dự án",
+ "partnerBadge": "Đối tác",
+ "officialBadge": "Chính thức",
+ "conditionsLabel": "Điều kiện:",
+ "validUntil": "Có hiệu lực đến {date}",
+ "noExpiry": "Chưa công bố ngày hết hạn",
+ "openOffer": "Xem ưu đãi",
+ "trialDays": "{days, plural, one {# ngày} other {# ngày}}"
},
"radarIntelPage": {
"title": "Thông tin chuyên sâu Radar",
@@ -14143,5 +14164,6 @@
"cta": "Lấy khóa API",
"partnerLinkNote": "Liên kết đối tác",
"dismissAriaLabel": "Đóng"
- }
+ },
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Tắt tính năng tạo biến thể cấp độ suy nghĩ (ví dụ: -low, -medium, -high) trong danh mục /v1/models."
}
diff --git a/src/i18n/messages/yo.json b/src/i18n/messages/yo.json
index fea5978234..4f404716f5 100644
--- a/src/i18n/messages/yo.json
+++ b/src/i18n/messages/yo.json
@@ -702,8 +702,8 @@
"flaggedAnomalies": "Àwọn Ohun Àjèjì Tí A Ṣàmì Sí",
"noAnomaliesDetected": "A kò ṣàwárí ohun àjèjì kankan",
"apiKey": "Kọ́kọ́rọ́ API",
- "xpLastHour": "XP (1h)",
- "zScore": "Z-Score",
+ "xpLastHour": "XP (wákàtí 1)",
+ "zScore": "Àmì-Z",
"suspicious": "Ó Fura",
"tokensCommunityServers": "Àwọn Sẹ́fà Àwùjọ",
"tokensServerNamePlaceholder": "Orúkọ sẹ́fà",
@@ -832,8 +832,8 @@
"wizardStep3Validate": "Fìdí rẹ̀ múlẹ̀",
"wizardStep4Cost": "Iye owó & ṣẹ̀dá",
"wizardProviderLabel": "Olùpèsè",
- "wizardEndpointLabel": "Endpoint",
- "wizardModelLabel": "Model",
+ "wizardEndpointLabel": "Ojú-ọ̀nà ìparí",
+ "wizardModelLabel": "Àwòṣe",
"wizardInputKindJsonl": "JSONL",
"wizardInputKindCsv": "CSV (a ó yí i padà)",
"wizardDropOrPick": "Ju fáìlì kan síbí tàbí tẹ̀ láti yàn án",
@@ -992,6 +992,10 @@
"featureFlagExposeCcDiscoveryAliasesDescription": "Polówó àwọn mirror ids claude/<provider>/<model> lórí /v1/models kí ìṣàwárí àwòṣe gateway Claude Code lè ṣàtòjọ àwọn àwòṣe tí kì í ṣe ti Claude. Ìkìlọ̀: èyí máa sọ iye àwọn àkọsílẹ̀ katalọ́ọ̀gù di ìlọ́po méjì fún gbogbo clients nígbà tí a bá mú un ṣiṣẹ́ kárí ayé.",
"featureFlagNoThinkingAliasEnabledDescription": "Yíyí àkọ́kọ́ fún àwọn gateway aliases no-think/<provider>/<model>. Títàn (àìyípadà): /v1/models máa ń polówó ẹ̀dà tí kò ronú fún gbogbo àwòṣe Claude tó lè ronú tí ó sì yẹ, no-think/ id tí a sì fi ránṣẹ́ pẹ̀lú ìbéèrè máa yanjú padà sí àwòṣe gidi pẹ̀lú fífi reasoning pamọ́. Pípa: a kì yóò polówó àwọn ẹ̀dà kankan, a ó sì ṣe no-think/ id bí model id àìmọ̀ mìíràn. Ìforúkọsílẹ̀/ìyọkúrò ModelSpec.noThinkingAlias ti àwòṣe kọ̀ọ̀kan ṣì wúlò nígbà tí èyí bá tàn.",
"featureFlagChatVirtualLanesEnabledDescription": "Mú àwọn ọ̀nà ìgbàwọlé aláfojúṣe tí ń mú ara wọn bá ipò mu fún tenant kọ̀ọ̀kan ṣiṣẹ́ fún provider dispatch (#9654): ìrujáde tenant kan kò ní fa 503 fún tenant mìíràn mọ́. env var OMNIROUTE_CHAT_VIRTUAL_LANES ni ó ṣáájú àtúnṣe dashboard yìí; àwọn ìyípadà yóò bẹ̀rẹ̀ sí í ṣiṣẹ́ nígbà tí server bá tún bẹ̀rẹ̀.",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "Àwọn ojú-ìwé olùpèsè lórí Dashboard: fi báàjì Ọ̀fẹ́ hàn lórí àwọn àmì tí olùpèsè náà fọwọ́ sí nìkan — èyí yọ ọ̀nà ìfojúrí orúkọ ìfihàn, àwọn ààyè ọ̀fẹ́ tí kì í ṣe Boolean àti àwọn ìparí :free kúrò lórí àwọn olùpèsè tí a forúkọsílẹ̀ tí kò ní ipele ọ̀fẹ́ tí a ṣàkọsílẹ̀. Pípa rẹ̀ yóò pa òfin báàjì ìṣáájú mọ́.",
+ "featureFlagProxySkipRecentlyFailedDescription": "Àwọn àkójọpọ̀ proxy àti yíyí opencode fún àkọọ́lẹ̀ kọ̀ọ̀kan máa ń dáwọ́ lílo proxy kan tí ó ṣẹ̀ṣẹ̀ kùnà dúró (ìdánwò TCP tí a kọ̀, tàbí 429 tí a gbà nípasẹ̀ rẹ̀) fún àkókò kan nínú process kọ̀ọ̀kan, èyí tí yóò di ìlọ́po méjì ní gbogbo ìgbà tí ó tún ṣẹlẹ̀, títí dé òpin tí a yàn. A kì í kọ ipò proxy sílẹ̀; bí a bá fi gbogbo olùdíje sí ẹ̀gbẹ́ kan, yíyan náà kì í yí padà. Ó wà ní pípa ní àkọ́kọ́: bí a ṣe ń yan tẹ̀ lé yíyí lasán náà gan-an.",
+ "featureFlagProxyPoolEgressObservationDescription": "Ṣàfihàn, lábẹ́ àkójọpọ̀ proxy kan nínú dashboard, iye àwọn IP egress tí a ṣàkíyèsí tí ó ṣiṣẹ́ fún àwọn ọmọ ẹgbẹ́ rẹ̀ láàárín wákàtí 24 tó kọjá, iye àwọn ìsopọ̀ tí ó lò wọ́n àti iye tó pọ̀ jù tí a rí lẹ́yìn IP kan. Fún kíkà nìkan, a ṣírò rẹ̀ láti inú àkọsílẹ̀ proxy, a kò sì lò ó fún routing láé. Ó wà ní pípa ní àkọ́kọ́: olóòtú àkójọpọ̀ náà kò yí padà, ipa-ọ̀nà àkíyèsí sì ń dá null padà.",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "Nínú àyẹ̀wò ìlera proxy, jẹ́ kí ìdánwò kan tí ibi àfojúsùn kọ̀ (401/403/429: proxy náà gbé e dé, ibi àfojúsùn sì kọ IP egress yìí) tún iye àwọn ìkùnà tẹ̀léra ti proxy náà bẹ̀rẹ̀, bí ìdánwò tí a ṣiṣẹ́ fún. Ó wà ní pípa ní àkọ́kọ́: ìkọ̀sílẹ̀ kan ṣì jẹ́ aláìdásí, ó sì ń pa iye tẹ̀léra náà mọ́. 5xx ṣì jẹ́ aláìdánilójú lọ́nà méjèèjì, ìkọ̀sílẹ̀ kò sì lè yọ proxy kan kúrò, mú un má ṣiṣẹ́, tàbí tún mú un ṣiṣẹ́ láé.",
"sidebar": {
"home": "Ilé",
"dashboard": "Pátákó Ìṣàkóso",
@@ -1096,12 +1100,12 @@
"faviconPreview": "Àwòtẹ́lẹ̀ Favicon",
"changelog": "Àkọsílẹ̀ Àwọn Àyípadà",
"contextSection": "Àyíká-ọ̀rọ̀ àti Kaṣe",
- "contextCaveman": "Caveman",
+ "contextCaveman": "Ènìyàn ihò",
"contextRtk": "RTK",
"contextCombos": "Àwọn Àkópọ̀ Ẹ́ńjìnnì",
"contextLite": "Lite",
"contextAggressive": "Kíkankíkan",
- "contextUltra": "Ultra",
+ "contextUltra": "Gíga jù",
"contextOmniglyph": "OmniGlyph",
"contextSettings": "Àwọn Ètò Ìfúnpọ̀",
"contextHeadroom": "Àlàfo Àfikún",
@@ -1314,7 +1318,7 @@
"noResults": "Kò sí àbájáde"
},
"webhooks": {
- "title": "Webhooks",
+ "title": "Àwọn Webhook",
"description": "Ṣètò àwọn ìpèpadà HTTP fún àwọn ìṣẹ̀lẹ̀ ètò.",
"configuredWebhooks": "Àwọn Webhook tí a ti ṣètò",
"configuredWebhooksDesc": "Ṣàkóso àwọn ibi ìfiránṣẹ́, àwọn ìṣẹ̀lẹ̀ tí a forúkọ sí, ipò, àti àwọn ìfiránṣẹ́ àdánwò.",
@@ -1420,7 +1424,7 @@
"custom": {
"endpointUrl": "URL Endpoint",
"endpointUrlPlaceholder": "https://api.yourdomain.com/webhook",
- "secretKey": "Secret Key",
+ "secretKey": "Kọ́kọ́rọ́ Àṣírí",
"secretKeyPlaceholder": "Tẹ kọ́kọ́rọ̀ àṣírí sílẹ̀ tàbí fi sílẹ̀ ní òfo kí ó lè ṣẹ̀dá fúnra rẹ̀",
"secretKeyHint": "A ń lò ó láti fọwọ́ sí àkọlé payload fún ìfàṣẹsí."
},
@@ -1746,12 +1750,12 @@
"caveman": "Ènìyàn Ihò",
"ccr": "CCR",
"headroom": "Àyè Àfikún",
- "lite": "Lite",
+ "lite": "Fúyẹ́",
"llmlingua": "LLMLingua",
"omniglyph": "OmniGlyph",
"rtk": "RTK",
"sessionDedup": "Yíyọ Àdáwòkọ Ìgbà",
- "ultra": "Ultra",
+ "ultra": "Gíga Jù",
"budget": "Ìnáwó",
"pricing": "Ìdíyelé",
"quotaShare": "Pípín Ìpín",
@@ -2203,7 +2207,7 @@
"model": "Àwòṣe",
"account": "Àkọọ́lẹ̀",
"connection": "Ìsopọ̀",
- "combo": "Combo",
+ "combo": "Àkópọ̀",
"routeStep": "Ìgbésẹ̀",
"tokens": "Àwọn token",
"notAvailable": "kò sí",
@@ -2776,9 +2780,9 @@
"cliRuntimeDetected": "A ti rí runtime CLI, ó sì ti ṣetán",
"cliFoundNotRunnable": "A rí CLI ṣùgbọ́n kò lè ṣiṣẹ́{reason}",
"cliRuntimeNotDetected": "A kò rí runtime CLI",
- "binary": "Binary",
+ "binary": "Oníméjì",
"configPath": "Ọ̀nà Config",
- "configPathShort": "Config",
+ "configPathShort": "Ìṣètò",
"failedCheckRuntimeStatus": "Àyẹ̀wò ipò runtime kùnà.",
"copy": "Dàkọ",
"copied": "A ti dà á kọ",
@@ -3172,8 +3176,8 @@
"copilotToolCalling": "Pípè Irinṣẹ́",
"copilotPasteInto": "Lẹ̀ mọ́ inú:",
"copilotReloadInstruction": "Lẹ́yìn náà, tún VS Code rù kí o sì ṣètò kọ́kọ́rọ́ API nínú ibi ìtẹ̀wọlé.",
- "wireApiChatCompletions": "Chat Completions (/chat/completions)",
- "wireApiResponses": "Responses API (/responses)",
+ "wireApiChatCompletions": "Àwọn Ìparí Ìfọ̀rọ̀wérọ̀ (/chat/completions)",
+ "wireApiResponses": "API Àwọn Ìdáhùn (/responses)",
"cliproxyapiActionFailed": "Ìṣe náà kùnà",
"cliproxyapiActionSucceeded": "Ìṣe náà ṣàṣeyọrí",
"cliproxyapiCheckUpdates": "Ṣàyẹ̀wò Àwọn Ìmúdójúìwọ̀n",
@@ -3270,7 +3274,7 @@
"strictRandomDesc": "Dà deck rú — ó máa ń lo model kọ̀ọ̀kan lẹ́ẹ̀kan kí ó tó tún wọn dà rú",
"fusion": "Àkópapọ̀",
"fusionDesc": "Ó ń fi prompt ránṣẹ́ sí gbogbo panel model lẹ́ẹ̀kan náà, lẹ́yìn náà judge model kan yóò ṣàkópọ̀ wọn sí ìdáhùn ìkẹyìn kan",
- "fusionJudgeModel": "Judge model",
+ "fusionJudgeModel": "Àwòṣe adájọ́",
"fusionJudgeModelHelp": "Model tó ń ṣàkópọ̀ àwọn ìdáhùn panel sí ìdáhùn ìkẹyìn kan. Fi sílẹ̀ ní òfo láti lo panel model àkọ́kọ́.",
"fusionMinPanel": "Pánẹ́lì tó kéré jù",
"fusionMinPanelHelp": "Àwọn ìdáhùn pánẹ́lì tó ṣàṣeyọrí tí a nílò kí àwọn àwòṣe tó ń fàṣẹ́yìn tó gba àkókò àfikún (àìpé 2).",
@@ -3832,7 +3836,7 @@
"outOfRequests": "nínú àwọn ìbéèrè {total}",
"costByApiKey": "Ìnáwó nípa API Key",
"costByAccount": "Ìnáwó nípa Àkọọ́lẹ̀",
- "apiKeyName": "API Key",
+ "apiKeyName": "Kọ́kọ́rọ́ API",
"account": "Àkọọ́lẹ̀",
"requests": "Àwọn ìbéèrè",
"cost": "Ìnáwó",
@@ -3853,9 +3857,9 @@
"legacyFreeLabel": "Ti Àtijọ́ / Ọ̀fẹ́",
"costExplorerTitle": "Olùṣàwárí Ìnáwó",
"costExplorerDescription": "Ṣàwárí ìnáwó nípa provider, àwòṣe, API key, àkọọ́lẹ̀, tàbí ipele iṣẹ́.",
- "groupProvider": "Provider",
+ "groupProvider": "Olùpèsè",
"groupModel": "Àwòṣe",
- "groupApiKey": "API Key",
+ "groupApiKey": "Kọ́kọ́rọ́ API",
"groupAccount": "Àkọọ́lẹ̀",
"groupServiceTier": "Ìpele Iṣẹ́",
"serviceTierFast": "Yára",
@@ -3978,7 +3982,7 @@
"providerModelsTitle": "{provider} — Àwọn àwòṣe",
"noModelsForProvider": "Kò sí àwòṣe kankan fún provider yìí.",
"chat": "Ìfọ̀rọ̀wérọ̀",
- "embedding": "Embedding",
+ "embedding": "Ìfisínú",
"image": "Àwòrán",
"custom": "àdáni",
"modelsCount": "{count, plural, one {# àwòṣe} other {# àwòṣe}}",
@@ -4014,9 +4018,9 @@
"messagesApiDesc": "Ìgbékalẹ̀ Messages API ìbílẹ̀ Anthropic fún àwọn olupèsè tó bá Claude mu",
"imageEdits": "Àwọn Àtúnṣe Àwòrán",
"imageEditsDesc": "Ṣàtúnṣe kí o sì yí àwọn àwòrán tó wà tẹ́lẹ̀ padà pẹ̀lú AI (inpainting, outpainting, variations)",
- "batchApi": "Batch API",
+ "batchApi": "API Ìdìpọ̀",
"batchApiDesc": "Ṣe àkóso ọ̀pọ̀lọpọ̀ ìbéèrè lọ́nà àìṣiṣẹ́pọ̀ (tó bá OpenAI mu)",
- "filesApi": "Files API",
+ "filesApi": "API Àwọn Fáìlì",
"filesApiDesc": "Ṣàgbérù kí o sì ṣàkóso àwọn fáìlì fún ṣíṣe àkójọpọ̀",
"videoGeneration": "Ṣíṣẹ̀dá Fídíò",
"videoDesc": "Ṣẹ̀dá àwọn fídíò ní lílo àwọn àwòṣe AI bíi ComfyUI àti Stable Video Diffusion.",
@@ -4045,7 +4049,7 @@
"tailscaleUrlNotice": "Ó ń lo àdírẹ́sì Tailscale .ts.net rẹ. Ó lè jẹ́ dandan láti wọlé àti láti fọwọ́sí Funnel nígbà lílò àkọ́kọ́.",
"tailscaleTitle": "Tailscale Funnel",
"tailscaleNeedsLoginHint": "Jẹ́rìí ìdánimọ̀ ẹ̀rọ yìí pẹ̀lú Tailscale, lẹ́yìn náà mú Funnel ṣiṣẹ́.",
- "tailscaleBinaryPath": "Binary: {path}",
+ "tailscaleBinaryPath": "Oníméjì: {path}",
"tailscaleLastError": "Àṣìṣe tó ṣẹ̀ṣẹ̀ ṣẹlẹ̀: {error}",
"tailscaleInstallTitle": "Fi Tailscale sori ẹrọ",
"tailscaleInstallIntro": "Ó máa fi Tailscale sori ẹ̀rọ yìí, yóò sì múra OmniRoute sílẹ̀ láti mú Funnel ṣiṣẹ́.",
@@ -4135,7 +4139,7 @@
"badgeInternalTooltip": "Ojú-ọ̀nà inú ètò ni èyí",
"tierAll": "Gbogbo rẹ̀",
"tierAuth": "Tí a ti fìdí ìdánimọ̀ rẹ̀ múlẹ̀",
- "tierLoopback": "Loopback",
+ "tierLoopback": "Ìpadà-sẹ́yìn",
"tierAlwaysProtected": "Ní Ààbò Nígbà Gbogbo",
"tierPublic": "Fún Gbogbo Èèyàn",
"hideInternal": "Fi Àwọn Ti Inú Ètò Pamọ́",
@@ -4343,8 +4347,8 @@
"events": "Àwọn ìṣẹ̀lẹ̀",
"artifacts": "Àwọn àbájáde",
"tablePhase": "Ìpele Tábìlì",
- "offset": "Offset",
- "limit": "Limit",
+ "offset": "Ìṣípò",
+ "limit": "Òpin",
"skill": "Ọgbọ́n",
"rpcEndpoint": "POST /a2a",
"rpcMethodSend": "message/send",
@@ -4388,7 +4392,7 @@
"editMemory": "Ṣàtúnṣe ìrántí",
"editModal": {
"title": "Ṣàtúnṣe Ìrántí",
- "metadataLabel": "Metadata (JSON)",
+ "metadataLabel": "Mẹ́tàdátà (JSON)",
"metadataInvalid": "JSON kò tọ́",
"saveFailed": "Kò ṣeé ṣe láti fi ìrántí pamọ́"
},
@@ -4429,7 +4433,7 @@
"reindexFailed": "Kùnà láti bẹ̀rẹ̀ ṣíṣe atọ́ka tuntun",
"keywordLabel": "Ọ̀rọ̀ pàtàkì (FTS5)",
"keywordReason": "Ìṣàwárí ọ̀rọ̀ pàtàkì wà nígbà gbogbo",
- "embeddingLabel": "Embedding",
+ "embeddingLabel": "Ìfìsínú",
"vectorStoreLabel": "Ibi Ìpamọ́ Vector",
"qdrantLabel": "Qdrant",
"rerankLabel": "Ṣètò ipò lẹ́ẹ̀kan sí i",
@@ -4646,7 +4650,7 @@
"uptime": "Àkókò Ìṣiṣẹ́",
"memory": "Ìrántí",
"memoryRss": "Ìrántí (RSS)",
- "heap": "Heap",
+ "heap": "Òkìtì",
"cpu": "CPU",
"database": "Àkójọ dátà",
"version": "Ẹ̀yà",
@@ -4798,7 +4802,7 @@
"partialData": "Apá kan tẹlímẹ́tírì nìkan ló wà: {error}"
},
"mitm": {
- "title": "MITM Proxy",
+ "title": "Aṣojú MITM",
"description": "Proxy aláìfarahàn fún dídá àwọn ìbéèrè oníbàárà dúró àti fífi wọn ránṣẹ́ sí ipa ọ̀nà tó yẹ.",
"enable": "Mú MITM Proxy ṣiṣẹ́",
"enableDesc": "Bẹ̀rẹ̀ tàbí dá ìlànà dídá ìbéèrè dúró ní agbègbè àti ìyípadà DNS dúró.",
@@ -5206,7 +5210,7 @@
"selectProvider": "Yan olupèsè kan",
"selectedProvider": "Olùpèsè tí a yàn",
"authMethod": "Ọ̀nà Ìjẹ́rìí Ìdánimọ̀",
- "apiKeyLabel": "API Key",
+ "apiKeyLabel": "Kọ́kọ́rọ́ API",
"apiKeyRequired": "API Key jẹ́ dandan",
"selectProviderRequired": "Jọ̀wọ́ yan olupèsè kan",
"enterApiKey": "Tẹ API key rẹ sí i",
@@ -5797,10 +5801,10 @@
"ccCompatibleSummarizeThinkingDescription": "Ó máa ń ṣàfikún `display: \"summarized\"` sí àwọn ìbéèrè ìrònú CC Compatible kí àwọn àwòṣe Claude tí ó ṣe àtìlẹ́yìn lè san àwọn àyípadà ìrònú tí a lè rí.",
"ccCompatibleSummarizeThinkingLabel": "Mú ìfihàn ìrònú àkótán ṣiṣẹ́",
"ccCompatibleDetailsTitle": "Àwọn àlàyé relay tó bá CC mu",
- "ccCompatibleLabel": "CC Compatible",
+ "ccCompatibleLabel": "Ó bá CC mu",
"ccCompatibleModelsDescription": "Àwọn relay tó bá CC mu kì í ṣàfihàn àtòjọ àwòṣe. Ṣàfikún àwọn ID àwòṣe Claude tí relay rẹ gbà.",
"ccCompatibleNameHint": "Orúkọ ìfihàn fún relay Claude Code-nìkan yìí.",
- "ccCompatibleNamePlaceholder": "CC Relay Production",
+ "ccCompatibleNamePlaceholder": "Ìmújáde CC Relay",
"ccCompatiblePrefixHint": "A máa ń lò ó nínú àwọn orúkọ àpèlé àwòṣe bíi prefix/model-id.",
"ccCompatiblePrefixPlaceholder": "cc",
"ccCompatibleValidationHint": "Lo olùpèsè yìí fún àwọn relay tí ó ń ṣe ìránṣẹ́ fún àwọn oníbàárà Claude Code nìkan. OmniRoute máa ń tún gbogbo ìbéèrè tó wọlé kọ sí ọ̀nà ìgbelewọ̀n tó bá Claude Code mu, kí àwọn relay wọ̀nyẹn lè gbà á. Tí o bá fẹ́ lo Claude Code CLI nìkan, tàbí tí o kò bá dá ọ lójú ohun tí irú relay yìí túmọ̀ sí, lo olùpèsè tó bá Anthropic mu déédé dípò rẹ̀.",
@@ -6363,15 +6367,15 @@
"checkWebToken": "Ṣàyẹ̀wò token",
"huggingchatLabel": "HuggingChat (Ọ̀fẹ́)",
"huggingchatDesc": "Ìjíròrò LLM ọ̀fẹ́ nípasẹ̀ huggingface.co/chat",
- "poeWebLabel": "Poe Web",
+ "poeWebLabel": "Wẹ́ẹ̀bù Poe",
"poeWebDesc": "Ìjíròrò onírúurú model nípasẹ̀ poe.com",
- "veniceWebLabel": "Venice Web",
+ "veniceWebLabel": "Wẹ́ẹ̀bù Venice",
"veniceWebDesc": "Ìjíròrò AI tó dá lórí àṣírí",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "Wẹ́ẹ̀bù v0 Vercel",
"v0VercelWebDesc": "Ṣíṣẹ̀dá code AI nípasẹ̀ v0.dev",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Wẹ́ẹ̀bù Kimi",
"kimiWebDesc": "Ìjíròrò oníbàárà Moonshot AI nípasẹ̀ www.kimi.com (àgbáyé, Connect-RPC API)",
- "doubaoWebLabel": "Dola Web",
+ "doubaoWebLabel": "Wẹ́ẹ̀bù Dola",
"doubaoWebDesc": "Ìjíròrò ByteDance AI nípasẹ̀ dola.com",
"overrideBaseUrlAdvanced": "Àgbàga: yí base URL padà",
"overrideBaseUrlHint": "Àgbàga: darí provider inú ẹ̀rọ yìí sí endpoint àkànṣe. Fi sílẹ̀ ní òfo láti lo èyí àìyípadà.",
@@ -6482,7 +6486,7 @@
"security": "Ààbò",
"appearance": "Ìrísí",
"routing": "Ìdarí ipa-ọ̀nà",
- "cache": "Cache",
+ "cache": "Ìpamọ́",
"resilience": "Ìfaradà",
"description": "Àpèjúwe",
"enable": "Mú ṣiṣẹ́",
@@ -6777,7 +6781,7 @@
"themeGreen": "Àwọ̀ ewé",
"themeViolet": "Àwọ̀ violet",
"themeOrange": "Ọsàn",
- "themeCyan": "Cyan",
+ "themeCyan": "Sáyánì",
"whitelabeling": "Ìdánimọ̀ àmì-ọjà",
"whitelabelingDesc": "Ṣe orúkọ àti logo ohun elo náà ní àdáni",
"appName": "Orúkọ Ohun Elo",
@@ -6909,7 +6913,7 @@
"healthcheckLatency": "Àkókò ìdádúró",
"proxyDocumentationScopeTitle": "Ìpinnu àyè iṣẹ́ proxy",
"proxyDocumentationScopeDescBefore": "OmniRoute ń yan proxy àbájáde ní ìtòlẹ́sẹẹsẹ ààyò yìí:",
- "proxyDocumentationScopeOrder": "combo → account → provider → global",
+ "proxyDocumentationScopeOrder": "àkójọpọ̀ → àkọọ́lẹ̀ → olùpèsè → àgbáyé",
"proxyDocumentationScopeDescAfter": ". Àyè iṣẹ́ tó ṣe pàtó jù lọ ni yóò borí.",
"proxyDocumentationAddTitle": "Fífi proxy àdáni kún un",
"proxyDocumentationAddDescBefore": "Lọ sí taabu",
@@ -6931,7 +6935,7 @@
"denoRelayTokenHint": "Token àjọ (tó bẹ̀rẹ̀ pẹ̀lú ddo_) láti console.deno.com → Organization → Settings → Organization Tokens. A máa lò ó lẹ́ẹ̀kan fún àgbékalẹ̀, a kì í sì í tọ́jú rẹ̀ láé.",
"denoRelayOrgDomainHint": "Domain àkọ́kọ́ ti àjọ Deno Deploy rẹ (fún àpẹẹrẹ, acme.deno.net). O lè dé ibi relay náà ní https://<app-name>.<org-slug>.deno.net.",
"proxyFreePoolFilterProtocol": "Ṣàlẹ̀mọ́ nípa protocol",
- "proxyFreePoolProtocol": "Protocol",
+ "proxyFreePoolProtocol": "Ìlànà ìbánisọ̀rọ̀",
"proxyFreePoolCountryPlaceholder": "Orílẹ̀-èdè (fún àpẹẹrẹ, US)",
"proxyFreePoolFilterCountry": "Ṣàlẹ̀mọ́ nípa orílẹ̀-èdè",
"proxyFreePoolMinQualityPlaceholder": "Didára tó kéré jù",
@@ -6944,7 +6948,7 @@
"proxyFreePoolAddSelected": "Fi àwọn tí a yàn kún pool",
"proxyFreePoolAddVisible": "Fi gbogbo èyí tó hàn kún pool",
"proxyFreePoolSource": "Orísun",
- "proxyFreePoolHostPort": "Host:Port",
+ "proxyFreePoolHostPort": "Olùgbàlejò:Pọ́ọ̀tì",
"proxyFreePoolType": "Irú",
"proxyFreePoolCountry": "Orílẹ̀-èdè",
"proxyFreePoolQuality": "Didára",
@@ -7052,7 +7056,7 @@
"routingAdvancedGuideTitle": "Ìtọ́sọ́nà ìdarí ọ̀nà onípele-gíga",
"routingAdvancedGuideHint1": "Ọgbọ́n yìí ni a múṣiṣẹ́pọ̀ pẹ̀lú àwọn àiyípadà àkọ́kọ́ fún àkójọpọ̀ tuntun àti ìdarí ọ̀nà àfẹ́yìntì àkọọ́lẹ̀ àgbáyé.",
"routingAdvancedGuideHint2": "Lo Fill First fún ààyò àkọọ́lẹ̀ tí ó ṣeé sọtẹ́lẹ̀, Round Robin pẹ̀lú Sticky Limit fún àwọn ìdìpọ̀ àkọọ́lẹ̀, àti P2C fún ìfaradà sí ìdádúró.",
- "fillFirst": "Fill First",
+ "fillFirst": "Kún un Kọ́kọ́",
"fillFirstDesc": "Lo àwọn àkọọ́lẹ̀ ní ìbámu pẹ̀lú bí a ṣe tò ààyò wọn",
"roundRobin": "Round Robin",
"roundRobinDesc": "Yí ká gbogbo àwọn àkọọ́lẹ̀",
@@ -7139,7 +7143,7 @@
"ipModeWhitelist": "Àtòjọ ìyọ̀ǹda",
"ipModeWhitelistPriority": "Àkọ́kọ́ WL",
"addIpAddress": "Ṣàfikún Àdírẹ́sì IP",
- "ipAddressPlaceholder": "192.168.1.0/24 or 10.0.*.*",
+ "ipAddressPlaceholder": "192.168.1.0/24 tàbí 10.0.*.*",
"block": "+ Dènà",
"allow": "+ Gba láàyè",
"blocked": "Ti dènà ({count})",
@@ -7376,7 +7380,7 @@
"customPricingNote": "O lè yí iye owó àkọ́kọ́ padà fún àwọn àwòṣe kan pàtó. Àwọn ìyípadà àdáni ló máa ní ààyò ju iye owó tí a ṣàwárí laifọwọ́yi lọ.",
"editPricing": "Ṣàtúnṣe Iye Owó",
"viewFullDetails": "Wo Àlàyé Kíkún",
- "themeCoral": "Coral",
+ "themeCoral": "Kọ́ráì",
"adaptiveVolumeRouting": "Ìtọ́sọ́nà Ìwọ̀n Tó Ń Múra Dọ́gba",
"adaptiveVolumeRoutingDesc": "Mú iye àwọn àsopọ̀ pọ̀ tàbí dín kù laifọwọ́yi ní ìbámu pẹ̀lú ìwọ̀n payload àti ìfúnpá ìṣàn iṣẹ́.",
"lkgpToggleTitle": "Olùpèsè Tó Ṣiṣẹ́ Dáadáa Kẹ́yìn (LKGP)",
@@ -7564,7 +7568,7 @@
"qdrantSaved": "A ti fi àtúnṣe pamọ́",
"qdrantSaveError": "Kò ṣeé ṣe láti fi àtúnṣe pamọ́",
"qdrantHostHint": "Láìsí port. Àpẹẹrẹ: 127.0.0.1 tàbí http://qdrant",
- "qdrantPort": "Port",
+ "qdrantPort": "Pọ́ọ̀tì",
"qdrantPortHint": "Àìyípadà Qdrant: 6333",
"qdrantCollectionHint": "Ibi tí a ó ti fi àwọn kókó ìrántí pamọ́.",
"qdrantEmbeddingModel": "Àwòṣe embedding",
@@ -7949,11 +7953,11 @@
"cliproxyapiImportAuthButton": "Ṣàgbéwọlé àwọn àkọọ́lẹ̀",
"payloadRulesTitle": "Àwọn Òfin Payload",
"payloadRulesDesc": "Ṣètò àwọn ìyípadà payload ìbéèrè gẹ́gẹ́ bí model àti protocol. Àwọn ìyípadà ni a máa ń tọ́jú sínú àwọn ètò, a sì máa ń tún wọn gbé sínú runtime lẹ́sẹ̀kẹsẹ̀ lẹ́yìn fífi wọ́n pamọ́.",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "àìyẹsẹ̀",
"payloadRuleDefaultDesc": "Ó máa ń lo àwọn params nìkan nígbà tí ipa-ọ̀nà àfojúsùn kò bá sí nínú payload tí ń jáde.",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "kọ rékọjá",
"payloadRuleOverrideDesc": "Ó fi àwọn iye sínú payload lọ́nà tipátipá, ó sì rọ́pò ohunkóhun tó ti wà ní ipa-ọ̀nà yẹn.",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "àsẹ̀",
"payloadRuleFilterDesc": "Ó yọ àwọn params tí a dènà kúrò nínú payload kí a tó fi ìbéèrè upstream ránṣẹ́.",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "Ó dàbí default, ṣùgbọ́n a kọ́kọ́ tú àwọn iye ọ̀rọ̀ sí JSON nígbà tí ó bá ṣeé ṣe. Àpèjúwe àtijọ́ fún input, default-raw, tún jẹ́ ìtẹ́wọ́gbà nígbà fífi pamọ́.",
@@ -7996,11 +8000,11 @@
"responsesStateModePreserve": "Pa mọ́",
"responsesStateHint": "Láìfọwọ́yí máa ń yọ previous_response_id kúrò àyàfi tí ìsopọ̀ kan bá tan ibi ìpamọ́ OpenAI Responses ní tààrà. Yíyọ ọ́ kúrò ló ní ààbò jù fún àwọn client tí kò ní state bíi VS Code Custom Endpoint; nígbà náà, context yóò dá lórí kí client náà fi gbogbo history ránṣẹ́.",
"responsesStateSaveError": "Ìmúdójúìwọ̀n ètò ipò Responses kùnà",
- "codexFastTierTitle": "Codex Fast Tier",
+ "codexFastTierTitle": "Ìpele Yíyára Codex",
"codexFastTierDesc": "Fi service_tier=priority kún gbogbo ìbéèrè OpenAI Codex káàkiri.",
"codexFastTierHint": "Nígbà tí a bá tan án, OmniRoute máa ń fi service_tier=priority kún àwọn ìbéèrè Codex tí a ń rán jáde fún àwọn ìsopọ̀ tí kò tíì sọ tier kan pàtó. Priority tier nílò OpenAI Enterprise API key tàbí ChatGPT-auth Codex path; àwọn irú key mìíràn yóò gba àṣìṣe tó ní í ṣe pẹ̀lú tier láti ọ̀dọ̀ OpenAI. Àwọn ètò ìsopọ̀ kọ̀ọ̀kan lórí ojú-ewé olupèsè Codex ló ní ààyò.",
"codexFastTierSaveError": "Ìmúdójúìwọ̀n ètò Codex Fast Tier kùnà",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
+ "codexAutoPingTitle": "Ìfọwọ́kàn Aládàáṣe fún Ìpín Codex",
"codexAutoPingDesc": "Yan láti tan án fún ìsopọ̀ kọ̀ọ̀kan: ó máa ń fi ìbéèrè kékeré kan ránṣẹ́ lẹ́sẹ̀kẹsẹ̀ lẹ́yìn tí fèrèsé session Codex bá tún bẹ̀rẹ̀, kí ó má bàa tutù nígbà tí o bá nílò rẹ̀.",
"codexAutoPingWarning": "Ó máa ń lo díẹ̀ lára quota Codex gidi ní gbogbo ping. Ó wà ní pípa láìyípadà — tan án fún àwọn ìsopọ̀ tí o gbára lé gan-an nìkan.",
"codexAutoPingSaveError": "Ìmúdójúìwọ̀n ètò Codex Auto-Ping kùnà",
@@ -8012,7 +8016,7 @@
"codexFastTierModelsLabel": "Àwọn model Fast-tier",
"codexFastTierModelsHint": "Àwọn model tí a sàmì sí nìkan ni yóò gba service_tier nígbà tí Fast Tier bá wà ní títàn.",
"codexFastTierModelCheckbox": "Tan Fast Tier fún {model}",
- "claudeFastModeTitle": "Claude Fast Mode",
+ "claudeFastModeTitle": "Ìpo Yíyára Claude",
"claudeFastModeDesc": "Fi àwọn ìbéèrè Claude tí a yàn sínú Anthropic Fast Mode (speed:\"fast\").",
"claudeFastModeHint": "Anthropic kò ṣe àtìlẹ́yìn Fast Mode lọ́nà òṣìṣẹ́ fún àwọn client ara-SDK. Nígbà tí a bá tan án, OmniRoute máa ń fi header X-CPA-Force-Fast-Mode ránṣẹ́ síwájú kí build CLIProxyAPI tí a so pọ̀ lè yan láti ṣe spoof entrypoint náà. Àwọn model Opus tí a tò sílẹ̀ nìkan ni àyẹ̀wò ẹ̀gbẹ́-client Anthropic kan sí. Subscription tier, Max plan, àti iye credit Fast Mode ṣì jẹ́ ohun tí server ń fipá mú — Anthropic lè dá out_of_credits padà kódà bí toggle náà bá wà ní títàn.",
"claudeFastModeModelsLabel": "Ti lò sí àwọn model ({count})",
@@ -9173,7 +9177,7 @@
"comboRouted": "Combo tí a darí sí ipa-ọ̀nà",
"uniqueEndpoints": "Àwọn ibi ìparí ọ̀tọ̀ọ̀tọ̀",
"routeDetails": "Àwọn àlàyé ipa-ọ̀nà",
- "comboBadge": "Combo",
+ "comboBadge": "Àkójọpọ̀",
"routeEndpointLabel": "Ibi ìparí",
"routeConnectionLabel": "Ìsopọ̀",
"scenarioVision": "Ìríran (ìlóye àwòrán)",
@@ -9400,7 +9404,7 @@
"notifyAllCasesPassed": "Gbogbo ìṣẹ̀lẹ̀ {total} ló yege ✅",
"notifySomeCasesFailed": "{passed}/{total} yege, {failed} kùnà",
"notifyEvalRunFailed": "Ṣíṣe Eval kùnà",
- "notifyEvalTitle": "Eval: {name}",
+ "notifyEvalTitle": "Ìdánwò: {name}",
"modelEvals": "Àwọn Ìṣàyẹ̀wò Àwòṣe",
"evalsHeroDescription": "Dán àwọn endpoint LLM rẹ wò kí o sì fìdí wọn múlẹ̀ nípa ṣíṣe àwọn àkójọpọ̀ ìṣàyẹ̀wò tí a ti ṣètò tẹ́lẹ̀. Àkójọpọ̀ kọ̀ọ̀kan ní àwọn ìṣẹ̀lẹ̀ ìdánwò tí ń fi àwọn ìbéèrè gidi ránṣẹ́ nípasẹ̀ OmniRoute, tí wọ́n sì ń fi àwọn ìdáhùn wé àwọn ààyè ìdíwọ̀n tí a retí — èyí ń ràn ọ́ lọ́wọ́ láti ṣàwárí ìfàsẹ́yìn, fi àwọn àwòṣe wé ara wọn, àti láti rí i dájú pé dídára ìdáhùn wà déédéé láàrín àwọn olùpèsè.",
"qualityValidation": "Ìfọwọ́sí Dídára",
@@ -9960,7 +9964,7 @@
"featureCloudSyncDesc": "Mú àwọn àtòpọ̀ rẹ dọ́gba láàárín àwọn ẹ̀rọ lẹ́sẹ̀kẹsẹ̀.",
"featureCliSupportTitle": "Àtìlẹ́yìn CLI",
"featureCliSupportDesc": "Ó ń ṣiṣẹ́ pẹ̀lú Claude Code, Codex, Cline, Cursor, àti àwọn mìíràn.",
- "featureDashboardTitle": "Dashboard",
+ "featureDashboardTitle": "Pátákó ìṣàkóso",
"featureDashboardDesc": "Dashboard àwòrán fún ìtúpalẹ̀ traffic ní àkókò gidi.",
"howItWorks": "Bí OmniRoute Ṣe Ń Ṣiṣẹ́",
"howItWorksDescription": "Data ń ṣàn láìsí ìṣòro láti inú ohun èlò rẹ, gba abala ìdarí ọlọ́gbọ́n wa kọjá, sí ọ̀dọ̀ olùpèsè tó dára jù lọ fún iṣẹ́ náà.",
@@ -10039,7 +10043,7 @@
"managementApiReference": "Ìtọ́kasí API Ìṣàkóso",
"managementApiDescription": "Àwọn endpoint fún ìṣiṣẹ́ aládàáṣe ti ìforúkọsílẹ̀ proxy, yíyan scope, àti ìṣípadà proxy àtijọ́.",
"method": "Ọ̀nà",
- "path": "Path",
+ "path": "Ọ̀nà",
"notes": "Àwọn Àkíyèsí",
"modelPrefixes": "Àwọn Ìṣáájú Model",
"prefix": "Ìṣáájú",
@@ -10100,7 +10104,7 @@
"providersCount": "Àwọn provider {count}",
"providerTypeFree": "Ìpele Ọ̀fẹ́",
"providerTypeOAuth": "OAuth",
- "providerTypeApiKey": "API Key",
+ "providerTypeApiKey": "Kọ́kọ́rọ́ API",
"useCaseSingleEndpointTitle": "Endpoint kan ṣoṣo fún ọ̀pọ̀ provider",
"useCaseSingleEndpointText": "Darí àwọn client sí base URL kan, kí o sì pín ipa nípasẹ̀ prefix model (fún àpẹẹrẹ: gh/, cc/, kr/, openai/).",
"useCaseFallbackTitle": "Ìpadàsẹ́yìn àti yíyí model padà pẹ̀lú àwọn combo",
@@ -10108,7 +10112,7 @@
"useCaseUsageVisibilityTitle": "Ìríran sí lílò, iye owó àti ìṣàtúnṣe àṣìṣe",
"useCaseUsageVisibilityText": "Tọpinpin àwọn token àti iye owó gẹ́gẹ́ bí provider, account, àti API key nínú àwọn taabu Usage àti Analytics.",
"clientCherryStudioTitle": "Cherry Studio",
- "baseUrlLabel": "Base URL",
+ "baseUrlLabel": "URL ìpìlẹ̀",
"chatEndpointLabel": "Endpoint ìfọ̀rọ̀wérọ̀",
"modelRecommendationLabel": "Àbá model: prefix tí a sọ ní kedere",
"clientCodexTitle": "Àwọn Model Codex / GitHub Copilot",
@@ -10477,7 +10481,7 @@
"statusCancelled": "Ti fagilé",
"repositoryName": "Orúkọ repository",
"repositoryUrl": "URL repository",
- "branch": "Branch",
+ "branch": "Ẹ̀ka",
"agentDescriptions": {
"jules": "Aṣojú ìkọ́kóòdù aládàáṣiṣẹ́ ti Google",
"devin": "Onímọ̀ ẹ̀rọ sọfitiwia AI ti Cognition",
@@ -10676,7 +10680,7 @@
},
"proxyConfigModal": {
"levelGlobal": "Àgbáyé",
- "levelProvider": "Provider",
+ "levelProvider": "Olùpèsè",
"levelCombo": "Àpapọ̀",
"levelKey": "Kọ́kọ́rọ́",
"levelDirect": "Tààrà (láìsí proxy)",
@@ -10772,7 +10776,7 @@
"devinDesktopPasteDescription": "Pèsè kọ́kọ́rọ́ API Devin tó ti wà tẹ́lẹ̀ láti inú ìgbà Devin tí a ti fìdí ìdánimọ̀ rẹ̀ múlẹ̀. Wíwà àti àwọn ìgbésẹ̀ fún fífi kọ́kọ́rọ́ jáde yàtọ̀ síra gẹ́gẹ́ bí ẹ̀yà Devin àti àkọọ́lẹ̀.",
"devinPasteDescription": "Pèsè WINDSURF_API_KEY rẹ (tí a rí gbà nípasẹ̀ `devin auth login`, tàbí nípasẹ̀ àṣẹ Windsurf IDE \"Windsurf: Provide Auth Token\").",
"grokAuthJsonPlaceholder": "{\"https://auth.x.ai::clientId\": {\"key\": \"eyJ...\", \"refresh_token\": \"...\"}}",
- "grokAuthJsonLabel": "Grok Build auth.json",
+ "grokAuthJsonLabel": "Kọ auth.json Grok",
"apiTokenPlaceholder": "ws-...",
"apiKeyTokenLabel": "Kọ́kọ́rọ́ API / Token",
"saving": "Ń fipamọ́…",
@@ -10802,8 +10806,8 @@
"tokensAutoDetected": "A ṣàwárí àwọn token láìfọwọ́yí láti Cursor IDE ní àṣeyọrí!",
"cursorNotDetected": "A kò rí Cursor IDE. Lẹ access token rẹ (àti refresh token tí ó bá wà).",
"dockerImportHint": "Ṣé o ń ṣiṣẹ́ nínú Docker? Ó dára jù láti lo Login with Cursor. IDE auto-import àti cursor-agent kì í sábà sí nínú container. Wo docs/providers/CURSOR-DOCKER.md.",
- "accessToken": "Access Token",
- "refreshToken": "Refresh Token",
+ "accessToken": "Tóókì ìwọlé",
+ "refreshToken": "Tóókì ìsọdọ̀tun",
"refreshTokenPlaceholder": "Àṣàyàn — ń mú ìsọdọ̀tun token aládàáṣe ṣiṣẹ́",
"required": "*",
"accessTokenPlaceholder": "Token ìráyè yóò kún fúnra rẹ̀...",
@@ -10852,7 +10856,7 @@
"loading": "Ń ṣàkójọpọ̀ àwọn proxy...",
"noProxies": "Kò tíì sí proxy tí a fipamọ́.",
"tableName": "Orúkọ",
- "tableEndpoint": "Endpoint",
+ "tableEndpoint": "Ojúami ìparí",
"tableStatus": "Ìpò",
"tableHealth": "Ìlera (wákàtí 24)",
"tableUsage": "Ìlò",
@@ -10870,7 +10874,7 @@
"familyIpv6": "IPv6 nìkan",
"familyHint": "Ẹbí àdírẹ́sì egress. Àdáṣe ń jẹ́ kí dual-stack wà; IPv4/IPv6 máa so proxy yìí mọ́ ẹbí yẹn (èyí ń dènà jíjò v4 lábẹ́ proxy IPv6-nìkan).",
"labelHost": "Olùgbàlejò",
- "labelPort": "Port",
+ "labelPort": "Èbúté",
"labelUsername": "Orúkọ aṣàmúlò",
"labelPassword": "Ọ̀rọ̀ aṣínà",
"labelRegion": "Ẹkùn",
@@ -10884,13 +10888,13 @@
"save": "Fipamọ́",
"bulkModalTitle": "Ìyànṣí Proxy Ní Ọ̀pọ̀lọpọ̀",
"bulkLabelScope": "Ààlà",
- "bulkLabelProxy": "Proxy",
+ "bulkLabelProxy": "Aṣojú",
"bulkClearAssignment": "(Pa ìyànṣí rẹ́)",
"bulkLabelScopeIds": "Àwọn ID ààlà (tí a fi àmì kọ́mà tàbí ìlà tuntun yà sọ́tọ̀)",
"bulkScopeIdsPlaceholder": "provider-openai,provider-anthropic",
"bulkApply": "Fi sílò",
"labelScope": "Ààlà",
- "labelProxy": "Proxy",
+ "labelProxy": "Aṣojú",
"scopeGlobal": "gbogbo àgbá",
"scopeProvider": "olùpèsè",
"scopeAccount": "àkọọ́lẹ̀",
@@ -10964,6 +10968,9 @@
"strategyLatency": "Èyí tí a mú kí ó dára jù fún àkókò ìdádúró",
"poolMembersLabel": "Àwọn ọmọ ẹgbẹ́ àkójọpọ̀ ({count})",
"poolNoMembers": "Kò tíì sí prọ́ṣì kankan nínú àkójọpọ̀ yìí.",
+ "poolEgressObservation": "{exits, plural, one {# àbájáde} other {# àwọn àbájáde}} tí {connections, plural, one {àsopọ̀ #} other {àwọn àsopọ̀ #}} lò · tó {max} lórí àbájáde kan · ní wákàtí {hours} sẹ́yìn",
+ "poolEgressObservationEmpty": "A kò rí ìrìnàjò dátà kankan ní wákàtí {hours} sẹ́yìn",
+ "poolEgressObservationHint": "A kà á láti inú àkọsílẹ̀ proxy láàárín àkókò náà: àwọn IP àbájáde ọ̀tọ̀ọ̀tọ̀ tí a rí fún àwọn ọmọ ẹgbẹ́ pool yìí, àti àwọn àsopọ̀ OmniRoute tí ó lò wọ́n. \"Lórí àbájáde kan\" túmọ̀ sí láàárín àkókò náà, kì í ṣe ní àkókò kan náà. Ìdènà 429 fún IP kọ̀ọ̀kan máa ń dá àwọn àsopọ̀ ti ìdílé provider kan náà dúró fún ìgbà díẹ̀ nìkan.",
"poolRemove": "Yọ kúrò",
"poolRemoveFailed": "Kò ṣeé ṣe láti yọ prọ́ṣì náà kúrò nínú àkójọpọ̀",
"poolAddLabel": "Ṣàfikún prọ́ṣì kan",
@@ -11282,7 +11289,7 @@
"refresh": "Sọ di tuntun",
"columnsLabel": "Àwọn ọ̀wọ̀n",
"cacheSem": "SEM",
- "cacheUp": "UP",
+ "cacheUp": "ṢÍṢẸ́",
"semantic": "Ìtumọ̀",
"upstream": "Orísun òkè",
"semanticCacheHit": "A rí i nínú kaṣe ìtumọ̀ (OmniRoute ló pèsè rẹ̀)",
@@ -11427,11 +11434,11 @@
"filterSuccess": "Àṣeyọrí",
"filterTimeout": "Àkókò ti parí",
"colStatus": "Ipò",
- "colProxy": "Proxy",
+ "colProxy": "Aṣojú",
"colTls": "TLS",
"colType": "Irú",
"colLevel": "Ìpele",
- "colProvider": "Provider",
+ "colProvider": "Olùpèsè",
"colTarget": "Ibi Àfojúsùn",
"colLatency": "Ìdádúró",
"colClientIp": "IP Client",
@@ -11443,9 +11450,9 @@
"allLevels": "Gbogbo Àwọn Ìpele",
"allProviders": "Gbogbo Àwọn Olùpèsè",
"total": "àpapọ̀",
- "ok": "OK",
- "err": "ERR",
- "timeoutShort": "TMO",
+ "ok": "Ó DÁRA",
+ "err": "ÀṢÌṢE",
+ "timeoutShort": "ÀKÓKÒ TÁN",
"direct": "tààrà",
"newest": "Èyí tó tuntun jù",
"oldest": "Èyí tó ti pẹ́ jù",
@@ -11549,7 +11556,7 @@
"title": "Pípín kótà",
"description": "Pín àwọn kótà olùpèsè láàárín àwọn kọ́kọ́rọ́ API pẹ̀lú àwọn ààlà %",
"newPool": "Àkójọpọ̀ tuntun",
- "betaTitle": "Beta",
+ "betaTitle": "Bẹ́tà",
"betaDescription": "A ti fi àtòjọ ìṣètò pamọ́ sínú localStorage (a kò tíì fi pamọ́ sórí server). A kò tíì so ìmúlò ààlà fún ìbéèrè kọ̀ọ̀kan mọ́ proxy pipeline. Ojú-ìwòye yìí jẹ́ kí o ṣe àpẹrẹ kí o sì rí bí a ṣe pín kótà; ìmúlò gidi yóò dé nínú àtúnṣe ọjọ́ iwájú pẹ̀lú ìfipamọ́ DB àti dídá àwọn ìpè upstream dúró.",
"kpiActivePools": "Àwọn àkójọpọ̀ tó ń ṣiṣẹ́",
"kpiKeysAllocated": "Àwọn kọ́kọ́rọ́ tí a pín",
@@ -11671,8 +11678,8 @@
"endpointsBaseUrl": "URL ìpìlẹ̀",
"endpointsCollapse": "Kó jọ",
"endpointsExpand": "Fẹ̀ sí i",
- "endpointsAnthropicNote": "Anthropic-native",
- "endpointsResponsesNote": "OpenAI Responses — codex/github",
+ "endpointsAnthropicNote": "Anthropic-abínibí",
+ "endpointsResponsesNote": "Àwọn Ìdáhùn OpenAI — codex/github",
"endpointsWsNote": "WebSocket — codex nìkan",
"betaText": "Ìpín Ìwọ̀n-ààlà ń ṣiṣẹ́, ṣùgbọ́n a retí àwọn àṣìṣe. Ṣé o rí ọ̀kan? Jọ̀wọ́ fi tó wa létí.",
"betaReportLink": "Jábọ̀ ìṣòro kan",
@@ -12297,7 +12304,7 @@
"versionCommandPlaceholder": "fún àpẹẹrẹ: myagent --version",
"spawnArgs": "Àwọn àríyànjiyàn ìpilẹ̀ṣẹ̀",
"spawnArgsPlaceholder": "fún àpẹẹrẹ: --quiet, --json",
- "cliCodeRedirectCta": "Open CLI Code"
+ "cliCodeRedirectCta": "Ṣí Kóòdù CLI"
},
"agentSkills": {
"catalog": {
@@ -12516,7 +12523,7 @@
"storage": {
"label": "Ibi ìpamọ́",
"agent": "Catalog aláyípadà (/api/agent-skills) → SKILL.md lórí GitHub",
- "omni": "SQLite (SkillsMP / skills.sh / local)"
+ "omni": "SQLite (SkillsMP / skills.sh / ti agbègbè)"
},
"tagline": {
"label": "Ọ̀rọ̀ àkànṣe",
@@ -12658,7 +12665,7 @@
"add": "Ṣàfikún",
"manualApiKey": "Lo kọ́kọ́rọ́ API afọwọ́ṣe",
"createDahlTokenFailed": "Ṣíṣẹ̀dá àmì Dahl kùnà",
- "providerProxy": "Proxy",
+ "providerProxy": "Aṣojú",
"providerProxyConfigureHint": "Ṣètò proxy",
"providerProxyTitleConfigured": "A ti ṣètò proxy: {host}"
},
@@ -12984,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "Gba ìmúpadàbọ̀ stream láàyè láti tún béèrè fún ìdáhùn náà kí ó sì so ó pọ̀ lẹ́yìn tí àwọn byte ti dé ọ̀dọ̀ client."
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "Mú kí ìtẹ̀síwájú láàárín ṣiṣan jẹ́ àìléwu fún ìpè irinṣẹ́: má ṣe tẹ̀síwájú ṣiṣan tí a gé lẹ́yìn tí a bá ti fi ìpè irinṣẹ́ ránṣẹ́ (yálà ó ṣì ń lọ tàbí ó ti parí), kí o sì dá dúró lẹ́yìn ìtẹ̀síwájú òfo kan dípò lílo gbogbo iye ìgbìyànjú-àtúnṣe."
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "Yí padà lẹ́ẹ̀kan sí ìsopọ̀ mìíràn tó jọra nígbà tí ṣiṣan kan bá ti pa kí ó tó fi férémù tó wúlò kankan jáde, tí àtúnṣègbìyànjú tó ní ààlà lórí ìsopọ̀ kan náà sì ti tán. Bí kò bá sí ìsopọ̀ mìíràn tó ṣeé lò, àṣìṣe early-EOF àkọ́kọ́ ni a ó dá padà. Pípa: early-EOF yóò ṣì jẹ́ ìkẹyìn lẹ́yìn àtúnṣègbìyànjú náà."
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "Fi àwọn field orúkọ tó rọrùn láti fi hàn sínú àwọn ìdáhùn /v1/models. Pa èyí fún àwọn client tí wọ́n gba ID àwòṣe nìkan."
},
@@ -13020,6 +13033,14 @@
"SERVER_OWNED_TOOL_LOOP_ENABLED": {
"label": "Àyíká Irinṣẹ́ Tí Sáfà Ń Ṣàkóso",
"description": "Tẹ̀síwájú pẹ̀lú àwọn ìpè irinṣẹ́ tí sáfà ń ṣàkóso tí kì í sanwọ́ títí àwòṣe yóò fi dá ìdáhùn tí oníbàárà lè lò padà."
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Ìpilẹ̀ṣẹ̀ Retry-After",
+ "description": "Lórí àwọn ìdáhùn àpapọ̀ 429/503 pé iṣẹ́ kò sí, má ṣe fi Retry-After kún un nígbà tí a kò mọ àkókò ìgbìyànjú-àtúnṣe ọjọ́ iwájú tó dájú, dípò fífi 1s àròsọ ránṣẹ́; fi error.retry_after_provenance kún un, kí o sì ka àwọn ìtọ́kasí ìgbìyànjú-àtúnṣe inú ọ̀rọ̀ lórí àwọn ọ̀nà ìsọfo combo."
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "Àwọn Ìdádúró Amáyédẹrùn Tó Ní Ààyò Ààbò Gẹ́gẹ́ Bí 502",
+ "description": "Dáhùn pẹ̀lú 502 dípò 503 nígbà tí ibi-àfojúsùn tó ní ààyò, tí ìfàsẹ́yìn rẹ̀ jẹ́ fún quota nìkan, bá dá combo dúró nítorí ohun tí a lè fi ẹ̀rí hàn pé kì í ṣe quota: olùdáwọ́lé àyíká olupèsè tó ṣí tàbí fífo ìdádúró asọtẹ́lẹ̀."
}
}
},
@@ -13372,8 +13393,8 @@
"maxTokensDesc": "Àwọn token tó pọ̀ jù fún ìdáhùn awoṣe kọ̀ọ̀kan. Àwọn iye tó ga máa ń náni sí i, wọ́n sì máa ń gba àkókò púpọ̀ sí i.",
"providerIdPlaceholder": "ID Olùpèsè (tẹ̀ sílẹ̀ tàbí yan)",
"modelIdPlaceholder": "ID Awoṣe (kì í ṣe dandan)",
- "on": "ON",
- "off": "OFF",
+ "on": "TAN",
+ "off": "PA",
"availableProviders": "Àwọn olùpèsè tó wà ({count})",
"noProviderOverrides": "Kò sí ìṣàtúnṣe — gbogbo àwọn olùpèsè tó ń ṣiṣẹ́ yóò kópa pẹ̀lú àwọn awoṣe àìyípadà wọn",
"resetFailed": "Ìtúnpadà kùnà",
@@ -13440,8 +13461,8 @@
"contributorHint": "GitHub OAuth ń yẹ ipò ọ̀sẹ̀ lọ́wọ́ wò: Àwọn Top 10 gba ọjọ́ 365, àwọn tó wà ní ipò 11–100 sì gba ọjọ́ 90. Iye PR nìkan kì í fúnni ní àyè láti wọlé ní òde Top 100.",
"supporterButton": "Ṣe àtìlẹ́yìn fún iṣẹ́ náà",
"supporterHint": "Àwọn àṣàyàn ẹ̀ẹ̀kan ṣoṣo ti oṣù mẹ́fà, ọdún kan àti títí láé kò ní ìtúnṣe aládàáṣe; àwọn àkókò tó yẹ ń kójọpọ̀, àṣàyàn títí láé sì ni ó borí.",
- "colProvider": "Provider",
- "colModel": "Model",
+ "colProvider": "Olùpèsè",
+ "colModel": "Àwòṣe",
"colQuota": "Ìpín",
"colLimits": "Àwọn ààlà",
"trainsOnPrompts": "Ń kọ́ model pẹ̀lú prompts",
@@ -13449,7 +13470,7 @@
"limitsUnknownHelp": "Àwọn ààlà tí feed Radar nìkan ròyìn; kò sí ààlà tí a tẹ̀ jáde fún àkọsílẹ̀ yìí",
"contextUnknownHelp": "Fèrèsé context jẹ́ àìmọ̀ fún àkọsílẹ̀ yìí",
"capabilityUnknownHelp": "Feed kò ròyìn agbára yìí",
- "colContext": "Context",
+ "colContext": "Àyíká",
"colCapabilities": "Àwọn agbára",
"colTos": "Ewu ToS",
"newBadge": "tuntun",
@@ -13556,9 +13577,9 @@
"timeline": {
"title": "Àwọn Ìyípadà Olùdáwọ́dúró",
"window": "Àárín àkókò",
- "window1h": "1h",
- "window6h": "6h",
- "window24h": "24h",
+ "window1h": "wákàtí 1",
+ "window6h": "wákàtí 6",
+ "window24h": "wákàtí 24",
"empty": "Kò sí ìyípadà ní àárín àkókò tí a yàn",
"currentState": "Ipò Lọ́wọ́lọ́wọ́",
"state": {
@@ -13588,7 +13609,7 @@
"remaining": "Tó Kù",
"noLockouts": "Kò sí ìdènà tó ń ṣiṣẹ́",
"provider": "Olùpèsè",
- "id": "ID",
+ "id": "Ìdánimọ̀",
"authType": "Irú Ìfàṣẹsí",
"priority": "Ààyò",
"isActive": "Ń Ṣiṣẹ́",
@@ -13633,6 +13654,7 @@
},
"featureFlagCapabilityFilterEnabledDescription": "Kọ àwọn ìbéèrè kí a tó fi wọ́n ránṣẹ́ nígbà tí àwòṣe àfojúsùn kò bá ní àwọn agbára tí a nílò (ìríran, irinṣẹ́, àbájáde tó ní ìṣètò, fèrèsé àyíká-ọ̀rọ̀). Èyí ń dáàbò bo àwọn ìbéèrè olùpèsè-kan tààrà tí ó ré àlẹ̀mọ́ ìbámu combo-layer kọjá.",
"featureFlagDisableContextWindowChecksDescription": "Fo àyẹ̀wò fèrèsé àyíká-ọ̀rọ̀ àti iye token ìṣàkóso tó pọ̀jù ti OmniRoute fún àwọn ìbéèrè àwòṣe-kan tààrà. Àwọn olùpèsè upstream ṣì ń fi àwọn ààlà gidi wọn múlẹ̀. Fúnpọ̀ prompt àti àwọn ààlà token àbájáde ṣì ń ṣiṣẹ́.",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "Àwọn ìṣirò ìṣàwárí àti àwọn ìṣàwárí àìpẹ́ yóò ka àwọn olùpèsè tí àsopọ̀ wọn ṣì ń ṣiṣẹ́ nìkan (àwọn olùpèsè tí kò nílò kọ́kọ́rọ́ bíi duckduckgo-free ni a máa ń kà nígbà gbogbo). Pípa yóò pa gbogbo ìlà ìṣàwárí tí a ti fi pamọ́ tí ó ní ID olùpèsè mọ́.",
"publicSystem": {
"notFound": {
"title": "A kò rí ojú-ewé náà",
@@ -14029,9 +14051,9 @@
"filterSources": "Àwọn orísun",
"filterProviders": "Àwọn olùpèsè",
"clearFilters": "Pa àwọn àlẹ̀mọ́ rẹ́",
- "sourceCloudAgent": "Cloud Agent",
+ "sourceCloudAgent": "Aṣojú Awọsanma",
"sourceA2A": "A2A",
- "sourceConductor": "Conductor",
+ "sourceConductor": "Olùdarí",
"sourceStale": "Kò tíì jẹ́ tuntun láti {since}",
"sourceOffline": "Kò sí lórí ayélujára",
"sourceCollapse": "Kó jọ",
@@ -14115,7 +14137,7 @@
"modelDelta": "Àwọn model {current}, +{added} / -{removed}",
"ranking": "Ipò model",
"noRankings": "Kò tíì sí ìfiwéra tí a ti fìdí rẹ̀ múlẹ̀.",
- "model": "Model",
+ "model": "Àwòṣe",
"category": "Ẹ̀ka",
"rating": "Ìwọ̀n",
"matches": "Àwọn ìbámu",
diff --git a/src/i18n/messages/zh-CN.json b/src/i18n/messages/zh-CN.json
index d5f97f5896..d1b93cb084 100644
--- a/src/i18n/messages/zh-CN.json
+++ b/src/i18n/messages/zh-CN.json
@@ -287,7 +287,7 @@
"modelNamePlaceholder": "模型名称",
"mcpQuickStartStep2": "MCP 快速开始步骤 2",
"quickStart": "快速开始",
- "fullExportFailedWithError": "Full Export Failed With Error",
+ "fullExportFailedWithError": "完整导出失败并出现错误",
"loadingBackups": "正在加载备份",
"anthropicBaseUrlPlaceholder": "Anthropic 基础 URL",
"description": "描述",
@@ -359,7 +359,7 @@
"rerankDesc": "重排说明",
"modelsPathPlaceholder": "Model 路径",
"noCombosYet": "暂无 Combo",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
+ "connectedVerificationPendingWithError": "已连接,验证待处理并出现错误",
"comboDefaultsGuideHint1": "配置 Combo 默认策略和目标。",
"enableCloudTitle": "启用云端",
"configuredProvidersHint": "仅显示已配置的 Provider。",
@@ -369,7 +369,7 @@
"removeProviderOverrideAria": "移除提供者覆盖",
"nodeVersion": "Node 版本",
"openai": "OpenAI",
- "exportFailedWithError": "Export Failed With Error",
+ "exportFailedWithError": "导出失败并出现错误",
"proxyConfigured": "代理已配置",
"concurrencyPerModel": "每个模型并发数",
"protocolTasksLabel": "协议任务标签",
@@ -704,7 +704,7 @@
"apiKey": "API密钥",
"xpLastHour": "XP(1 小时)",
"zScore": "Z 分数",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "可疑",
"tokensCommunityServers": "社区服务器",
"tokensServerNamePlaceholder": "服务器名称",
"tokensApiKeyPlaceholder": "API密钥",
@@ -807,13 +807,13 @@
"batchConceptBenefit50pct": "输入 + 输出令牌享受 50% 折扣",
"batchConceptAsync24h": "异步处理,24 小时完成窗口",
"batchConceptUseCases": "最适合批量分类、评估和嵌入",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
+ "batchHeaderSubtitle": "将多个请求作为一个作业运行",
+ "batchStep1": "1 · 上传 JSONL",
+ "batchStep1Desc": "添加请求",
+ "batchStep2": "2 · 创建批处理",
+ "batchStep2Desc": "运行作业",
+ "batchStep3": "3 · 获取结果",
+ "batchStep3Desc": "下载输出",
"filesConceptTitle": "批处理文件",
"filesConceptSubtitle": "批处理使用的 JSONL 文件:输入请求、结果和错误。",
"filesConceptInput": "输入 — 每行一个请求的 JSONL",
@@ -988,10 +988,14 @@
"disabled": "已禁用",
"featureFlagOmnirouteEmergencyFallbackDescription": "将预算耗尽的请求路由到紧急免费备用提供者/模型。",
"featureFlagArenaEloSyncEnabledDescription": "启用定期同步 Arena AI 排行榜 ELO,用于模型智能排名。",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "在组合路由切换模型时生成并注入对话摘要。禁用后会独立处理模型切换,并阻止所有现有及未来组合的后台交接请求。",
"featureFlagExposeCcDiscoveryAliasesDescription": "在 /v1/models 上发布 claude/<provider>/<model> 镜像 ID,让 Claude Code 网关模型发现能列出非 Claude 模型。警告:全局启用会使所有客户端的目录条目翻倍。",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> 网关别名的总开关。开启(默认):/v1/models 会为每个符合条件且支持思考的 Claude 模型公布一个无思考变体,请求中发送的 no-think/ ID 会解析回实际模型,并抑制推理。关闭:不会公布任何变体,no-think/ ID 会像其他未知模型 ID 一样处理。开启此开关时,每个模型的 ModelSpec.noThinkingAlias 选择启用/停用设置仍然适用。",
"featureFlagChatVirtualLanesEnabledDescription": "为提供者调度启用按租户的自适应虚拟准入通道(#9654):一个租户的突发流量不再导致另一个租户收到 503。OMNIROUTE_CHAT_VIRTUAL_LANES 环境变量优先于此仪表板设置;更改在服务器重启后生效。",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "控制面板提供者页面:仅在提供者明确支持的信号上显示“免费”徽章——不再对没有文档说明免费层级的已注册提供者使用显示名称启发式规则、非布尔型免费字段和 :free 后缀。关闭时沿用旧版徽章规则。",
+ "featureFlagProxySkipRecentlyFailedDescription": "代理池和 opencode 的按账户轮换会在每个进程的一段时间内,停止再次提供刚刚失败的代理(TCP 探测被拒绝,或通过该代理收到 429)。每次重复失败时,该时段都会翻倍,直至达到上限。不会写入代理状态;当所有候选代理都被暂时搁置时,选择保持不变。默认关闭:选择顺序与普通轮换完全相同。",
+ "featureFlagProxyPoolEgressObservationDescription": "在仪表板的代理池下显示:过去 24 小时内观察到多少个出口 IP 为其成员提供服务、使用这些 IP 的连接数,以及单个 IP 背后观察到的最大数量。此信息为只读,根据代理日志计算,绝不用于路由。默认关闭:代理池编辑器保持不变,观测路由返回 null。",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "在代理健康检查中,如果探测被目标拒绝(401/403/429:代理已转发,但目标拒绝了此出口 IP),则像探测成功一样重置代理的连续失败计数。默认关闭:拒绝保持中性,并保留当前连续失败计数。无论如何,5xx 均保持结果不确定,而且拒绝绝不会导致代理被移除、禁用或重新激活。",
"sidebar": {
"home": "首页",
"dashboard": "仪表板",
@@ -1178,8 +1182,8 @@
"consoleLogs": "控制台日志",
"logsTimeline": "时间线",
"logsTimelineSubtitle": "可视化请求时间线",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
+ "conversations": "对话",
+ "conversationsSubtitle": "多轮智能体对话",
"globalRouting": "全局路由",
"mitmProxy": "MITM 代理",
"oneProxy": "1Proxy",
@@ -1209,11 +1213,11 @@
"leaderboard": "排行榜",
"profile": "个人资料",
"tokens": "令牌",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
+ "gamificationAdmin": "游戏化管理",
"leaderboardSubtitle": "排名与成就",
"profileSubtitle": "账户与偏好",
"tokensSubtitle": "令牌使用和预算",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
+ "gamificationAdminSubtitle": "异常监控与反作弊",
"usageSubtitle": "流量和使用统计",
"analyticsComboHealthSubtitle": "组合目标可靠性",
"analyticsUtilizationSubtitle": "提供者利用率",
@@ -1274,8 +1278,8 @@
"agentBridge": "代理桥接",
"agentBridgeSubtitle": "拦截 IDE 代理流量",
"trafficInspector": "流量检查器",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "检查来自应用的请求与响应流量",
+ "trafficInspectorPurpose": "准确查看您的应用向 AI 提供者发送和接收的内容。适用于任何与 OpenAI 兼容的客户端。",
"cliCode": "CLI 代码的",
"cliCodeSubtitle": "指向 OmniRoute 的代码工具",
"cliAgents": "CLI 代理",
@@ -1721,7 +1725,7 @@
"costs": "费用",
"health": "健康状况",
"runtime": "运行时",
- "webhooks": "Webhooks",
+ "webhooks": "Webhook",
"home": "首页",
"activity": "动态",
"agentSkills": "Agent 技能",
@@ -1758,7 +1762,7 @@
"discovery": "发现",
"freeProviderRankings": "免费服务商排行",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "设置",
"freeTiers": "免费层级",
"gamification": "游戏化",
"leaderboard": "排行榜",
@@ -1822,11 +1826,11 @@
"updateStarted": "更新已开始...",
"reloadingPageAutomatically": "自动重新加载页面...",
"providerTopology": "提供者拓扑",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "最近的请求",
+ "recentRequestsEmpty": "暂无请求。",
+ "recentRequestsModel": "模型",
+ "recentRequestsTokens": "输入 / 输出",
+ "recentRequestsWhen": "时间",
"downloadDmg": "下载 DMG (macOS)",
"downloadDmgDescription": "OmniRoute 桌面应用程序的新版本可用。请下载并安装 macOS DMG 安装程序以进行更新(当前版本:v{version})。",
"downloadExe": "下载 EXE(Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "发布说明",
"readMore": "阅读更多",
"noAuthLabel": "无认证",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "准备开始路由",
+ "readinessTitle": "发送你的第一个请求",
+ "readinessSubtitle": "只需四个小步骤。OmniRoute 会在你操作时检查就绪状态。",
+ "readinessStep1": "连接提供者",
+ "readinessStep2": "配置端点身份验证",
+ "readinessStep3": "复制端点",
+ "readinessStep4": "发送测试请求",
+ "readinessContinue": "继续设置",
+ "readinessDismiss": "暂时忽略"
},
"analytics": {
"title": "分析",
@@ -2254,9 +2258,9 @@
"fullAccess": "完全访问",
"keyManagement": "API 密钥管理",
"keyManagementDesc": "创建和管理用于访问端点的 API 密钥",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "你的应用通过 API 密钥向 OmniRoute 发送请求",
+ "requestFlowYourApp": "你的应用",
+ "requestFlowApiKey": "API 密钥",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "密钥总数",
"restricted": "受限",
@@ -2299,7 +2303,7 @@
"savePermissions": "保存权限",
"endpointRestrictions": "允许的端点",
"allEndpointsAllowed": "此密钥可以访问所有 API 端点。",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
+ "endpointsRestricted": "仅限用于 {count} 个端点。",
"autoResolve": "自动解析",
"autoResolveDesc": "为这个 API 密钥自动将有歧义的模型名解析到原生提供者。",
"streamDefaultMode": "流默认兼容性",
@@ -2378,8 +2382,8 @@
"allowedCombos": "允许的组合",
"allCombosAllowed": "此密钥可以使用任何组合。",
"restrictedComboCount": "限制为 {count, plural, one {# 个组合} other {# 个组合}}。",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "preservedComboRules": "有 {count, plural, one {# 个已存储条目} other {# 个已存储条目}}不在此组合列表中(例如路由规则),将按已保存的内容保留。",
+ "preservedComboRuleHint": "按已存储的内容保留。此条目不是上方列表中的组合,因此只能通过 API 进行更改。",
"apiManagerCustomRateLimits": "自定义费率限制",
"apiManagerCustomRateLimitsDesc": "覆盖全局默认限制。留空以使用默认值。",
"apiManagerRateLimitRequestsPlaceholder": "要求",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "允许此密钥在路由期间忽略上游服务商/账户的截止策略。API 密钥的美元配额仍然适用。",
"quotaPill": "配额",
"quotaModeOnly": "仅配额",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "专属租约",
+ "exclusiveLeaseNoticeTitle": "专属租约",
+ "exclusiveLeaseNoticeDesc": "此 API 密钥拥有用于专用连接路由的专属租约权限。",
+ "allConnections": "所有连接",
+ "onlySelectedConnections": "仅选定的连接",
+ "selectAtLeastOneConnection": "请至少选择一个连接,或选择“所有连接”。",
+ "allConnectionsDesc": "此密钥可以使用任何活跃连接。",
+ "restrictedToConnections": "仅限用于 {count, plural, one {# 个连接} other {# 个连接}}。"
},
"auditLog": {
"title": "审核日志",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter 自主编程智能体 CLI",
"omp": "Oh My Pi 终端编程智能体",
"letta": "具备持久记忆和工具使用能力的 Letta CLI 智能体",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — 支持 OpenAI 兼容提供者的自我改进型 RLM 编码工具框架",
"warp": "支持自定义提供者的 Warp AI 终端",
"agent-deck": "Agent Deck 多智能体编排器",
"5dive": "5dive — 自托管的编码智能体集群;一个认证配置即可将全部指向 OmniRoute"
@@ -3264,7 +3268,7 @@
"cacheOptimizedDesc": "将每个可复用提示前缀一致地路由到同一提供者账户",
"resetAware": "复位感知RR",
"resetAwareDesc": "平衡剩余配额与 5 小时和每周重置,然后对相似分数进行循环赛",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "配额加权",
"quotaWeightedDesc": "踢掉没额度的账号,再按剩余额度除以在途请求数加权抽取。已有对话钉在原账号,空了才换。",
"strictRandom": "严格随机",
"strictRandomDesc": "洗牌池模式:每个模型使用一次后再重新洗牌",
@@ -3660,10 +3664,10 @@
"wizardStep3Desc": "选择请求在模型之间的分发方式 — 提供 13 种策略",
"wizardStep4Title": "审查并保存",
"wizardStep4Desc": "审查您的配置并激活组合",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
+ "usageGuideInvokeTitle": "如何调用此组合",
+ "usageGuideInvokeDesc": "将组合的确切名称作为模型发送,例如 model: \"my-combo\"(或 combo/my-combo)。",
+ "usageGuideInvokeAutoNote": "auto 和 auto/* 是一个独立的零配置路由器,不会使用你的组合(除非某个组合确实命名为 auto)。",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto 是真正的 OpenRouter 付费产品(Auto Best Available),并非 OmniRoute 别名——可通过“设置 → 路由 → 隐藏付费模型”将其排除。",
"emailVisibilityStateOn": "开启",
"emailVisibilityStateOff": "关闭",
"reorderHandle": "拖拽排序",
@@ -3801,8 +3805,8 @@
"rangeAll": "全部时间",
"spend30d": "30 天支出",
"activeModels": "活跃 Model",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
+ "flatRateEstimateNotice": "包含固定费率订阅的 Token 价格估算,而非实际计费成本。",
+ "flatRateEstimateForecast": "预测包含固定费率估算。",
"selectedWindow": "已选窗口",
"activeProviders": "活跃 Provider",
"overviewTitle": "概览",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "API 端点",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "可将 OpenAI 兼容端点与大多数 SDK 和工具配合使用。",
+ "testEndpoint": "测试端点 →",
+ "advancedProtocols": "高级协议",
"available": "可用端点",
"cloudProxy": "云代理",
"disableConfirm": "确定要禁用云代理吗?",
@@ -4172,7 +4176,7 @@
"obsidianDisable": "禁用",
"obsidianConfigureMobile": "配置 Obsidian 移动端",
"obsidianMobileInstructions": "在 Obsidian 移动端:设置 → 同步 → WebDAV → 输入以下内容:",
- "obsidianWebdavUrl": "WebDAV URL",
+ "obsidianWebdavUrl": "WebDAV 网址",
"obsidianUsername": "用户名",
"obsidianPassword": "密码",
"obsidianTailscaleHint": "如果从移动设备连接,请使用 Tailscale IP 而非 localhost。两台设备必须在同一 Tailscale 网络中。",
@@ -4564,7 +4568,7 @@
"skillsTab": "技能",
"executionsTab": "执行记录",
"selectSkillToInspect": "在左侧选择一个技能来查看。",
- "schemaTab": "Schema",
+ "schemaTab": "架构",
"handlerTab": "处理器",
"inputSchema": "输入 Schema",
"outputSchema": "输出 Schema",
@@ -4661,13 +4665,13 @@
"retry": "重试",
"allOperational": "所有系统均可运行",
"issuesDetected": "检测到系统问题",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute 已就绪",
+ "healthVerdictActionRequired": "需要采取操作以恢复完整运行",
+ "healthVerdictCoolingDown": "近期更改后正在冷却",
+ "healthSubtitle": "系统健康检查",
+ "advancedDiagnosticsTitle": "高级诊断",
+ "hide": "隐藏",
+ "show": "显示",
"updatedAt": "更新了 {time}",
"latency": "延迟",
"latencyP50": "p50",
@@ -4983,9 +4987,9 @@
"multiProvider": "多提供者",
"usageTracking": "使用情况追踪",
"securityDesc": "设置密码以保护您的仪表板,或暂时跳过。",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ 如果未设置密码,你将无法在设置过程中添加提供者。设置密码后,你可以稍后从仪表板添加提供者。",
"providerDesc": "连接你的第一个 AI 提供者。你之后还可以继续添加。",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "你需要先设置密码才能添加提供者。请返回安全设置步骤并设置密码,或稍后从仪表板添加提供者。",
"apiKeyRequired": "API 密钥(必填)",
"customUrlOptional": "自定义 URL(可选)",
"testDesc": "让我们验证您的提供者连接是否有效。",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "正在导入…",
"importFromFileImport": "导入 {count} 个服务商",
"importFromFileResult": "已导入 {success} 个服务商({failed} 个失败)",
+ "importFromFileDownloadTemplate": "下载 CSV 模板",
+ "importFromFileMoreErrors": "另有 +{count} 项",
+ "importFromFileSchemaHint": "CSV 列按位置排列:provider、name、apiKey、baseUrl(可选)、priority(可选)。provider 列必须是现有的托管提供者 ID,或已注册的 OpenAI/Anthropic 兼容节点 ID——此导入操作不会创建新的端点节点。",
"adaptaTutorial": {
"title": "如何连接 Adapta Web",
"introPrefix": "Adapta 通过 Clerk 进行身份验证。该令牌",
@@ -5129,8 +5136,8 @@
"reorderByAvailabilityError": "按可用性重新排序连接失败",
"distributeProxies": "分配代理",
"distributing": "分配中...",
- "selectedCount": "{count, plural, one {# selected} other {# selected}}",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "selectedCount": "{count, plural, one {已选择 # 项} other {已选择 # 项}}",
+ "accountsCount": "{count, plural, one {# 个账户} other {# 个账户}}",
"testAllOAuth": "测试所有 OAuth 连接",
"testAllFree": "测试所有免费连接",
"testAllApiKey": "测试所有 API 密钥连接",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "此提供者已弃用",
"riskNotice": {
"title": "继续之前",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "使用注意事项",
"tooltip": "该提供者有使用注意事项 —— 点击查看详情",
"oauth": "此提供者使用你官方产品的会话 / OAuth,这并未被授权用于代理或路由用途。 不建议进行高强度的自主代理使用(OpenCloud 风格、长链路多步流程、大批量请求)—— 上游可能因此限制甚至封禁账号。 使用风险自负。",
"webCookie": "此提供者通过你的网页会话 Cookie 进行鉴权。上游服务可能随时让会话失效,届时你需要重新登录。不建议用于长时间无人值守的操作。 使用风险自负。",
@@ -5184,9 +5191,9 @@
"cancel": "取消"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "已标记 {count} 个连接 — 最近最多有 {maxFailures} 次失败{lastFailureSuffix}。点击查看连接健康状况。",
+ "lastFailureSuffix": "(上次失败时间:{time})",
+ "ariaLabel": "查看连接健康状况详情,{count} 个警告"
},
"disabled": "已禁用",
"enableProvider": "启用提供者",
@@ -5530,18 +5537,18 @@
"interceptFetchHint": "将原生的 web_fetch 工具调用重写为 OmniRoute 的 /v1/web/fetch。",
"interceptionLoadError": "加载拦截设置失败:{error}",
"interceptionSaveError": "保存拦截设置失败:{error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
+ "ccAliasSectionTitle": "在 Claude Code 中公开(claude/…)",
+ "ccAliasSectionHint": "使用 claude/<provider>/<model> 镜像 ID 公布此提供者的模型,以便 Claude Code 的网关模型发现功能列出这些模型。默认关闭 — 启用后,所有客户端的目录条目数量将翻倍。",
+ "ccAliasProviderLevelLabel": "提供者默认设置",
+ "ccAliasModelOverridesLabel": "按模型覆盖",
+ "ccAliasModelOverrideAriaLabel": "覆盖 {modelId} 的设置",
+ "ccAliasStateInherit": "继承",
+ "ccAliasStateOn": "开启",
+ "ccAliasStateOff": "关闭",
+ "ccAliasAddModelPlaceholder": "模型 ID(例如 gpt-4o)",
+ "ccAliasAddModelButton": "添加覆盖设置",
+ "ccAliasLoadError": "无法加载发现别名设置:{error}",
+ "ccAliasSaveError": "无法保存发现别名设置:{error}",
"compatUpstreamHeadersLabel": "上游额外请求头",
"compatUpstreamHeadersHint": "与修改厂商连接/API 配置同属高权限能力,仅可信管理员应使用。这些头会在 OmniRoute 按厂商 API Key 自动加好鉴权头之后再合并。若「名称」与系统已加的头相同(例如都叫 Authorization),则以你填的值为准,会整段替换自动那条(含 Bearer 令牌),上游请求里不再使用面板里保存的密钥来生成 Authorization。填错可能导致 401,请谨慎。每个请求头单独一行;部分网关需要额外 Authentication 等可在此加。鼠标移入或聚焦「值」可暂时看明文。点空白处、关闭本面板或切走焦点即保存。",
"compatUpstreamHeaderName": "请求头名称",
@@ -5900,8 +5907,8 @@
"rateLimitOverridesSection": "速率限制覆盖",
"rateLimitOverridesMaxConcurrentHint": "此连接的最大并发请求覆盖。覆盖账户级别的上限。",
"rateLimitOverridesMaxConcurrentLabel": "最大并发(速率限制)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "请求在失败前等待速率限制可用名额的最长时间(毫秒)。仅对此连接覆盖全局的弹性设置。",
+ "rateLimitOverridesMaxWaitMsLabel": "最长队列等待时间(毫秒)",
"rateLimitOverridesMinTimeHint": "请求之间的最小时间(毫秒)。覆盖默认速率限制器延迟。",
"rateLimitOverridesMinTimeLabel": "最小间隔(毫秒)",
"rateLimitOverridesRpdHint": "此连接的每天最大请求数。覆盖提供者默认值。",
@@ -5974,7 +5981,7 @@
"zedImportHint": "从 Zed 配置中导入 Provider。",
"zedImportNetworkError": "Zed 导入网络错误",
"zedImportNone": "没有可从 Zed 导入的内容",
- "zedImportSuccess": "Imported {credentials} credential(s) from Zed for {providers} provider(s)",
+ "zedImportSuccess": "已从 Zed 导入 {credentials} 个凭据,适用于 {providers} 个提供者",
"zedImporting": "正在从Zed导入",
"zedNoCredentials": "在钥匙串中未找到 Zed 凭据",
"zedUnsupportedCredentials": "找到 {count} 个钥匙串凭据,但没有与支持的提供者匹配的凭据",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "适用于 40+ 种模型的折扣 API 代理,包括 GPT-5、Claude Opus 4.6、Claude Sonnet 4.6、Qwen 3.5。在 https://freeaiapikey.com/dashboard 获取您的 API 密钥。Base URL: https://freeaiapikey.com/v1.",
"freemodel-dev": "在 https://freemodel.dev 获取 $300 免费 API 额度 — 无需支付信息。兼容 OpenAI 的端点。提供 GPT-5.4 和 GPT-5.5 模型。",
"friendliai": "无服务器推理免费层 — 无需信用卡",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "通过 Google AI Studio 提供免费层级;不再公布各模型的配额(请在 AI Studio 中查看配额页面)— 无需信用卡。",
"gigachat": "使用 API 密钥连接 GigaChat (Sber)。",
"gitlab": "用于公共 Code Suggestions API 的 GitLab 个人访问令牌。不使用 gitlab.com 时请配置自托管 Base URL。",
"gitlawb-gmi": "从 Gitlawb Opengateway 控制面板获取您的 API 密钥。",
@@ -6180,7 +6187,7 @@
"glm-cn": "使用 API 密钥连接 GLM Coding (China)。",
"glmt": "预设 GLM 配置文件,具有更高的 Token 预算、启用思考功能以及更长的超时时间。",
"getgoapi": "使用 API 密钥连接 GoAPI。",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "免费方案:各模型均有上限(每个聊天模型每天 200K 个令牌;有关 RPM/RPD,请参阅 console.groq.com/docs/rate-limits)— 未绑定付款方式。",
"haiper": "在 haiper.ai/haiper-api 获取 API 密钥",
"heroku": "使用 API 密钥连接 Heroku AI。",
"hcnsec": "在 api.hcnsec.cn 获取 API 密钥",
@@ -6248,7 +6255,7 @@
"requesty": "在 https://app.requesty.ai 创建 API 密钥,然后将其作为 Bearer 令牌粘贴在此处。兼容 OpenAI 的端点位于 https://router.requesty.ai/v1,并提供实时的 /v1/models 目录。",
"runwayml": "Runway 视频生成基于任务。OmniRoute 提交文生视频或图生视频作业,轮询 /v1/tasks/[id],并将完成的视频输出规范化为类似 OpenAI 的 /v1/videos/generations 响应。",
"sambanova": "注册即送 $5 免费额度(30 天有效期),无需信用卡",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "在 https://seekai.cc 创建 API 密钥,然后将其作为 Bearer 令牌粘贴到此处。兼容 OpenAI 的基础 URL:https://seekai.cc/v1。",
"sap": "模型发现使用 AI_API_URL 上的 /v2/lm/scenarios/foundation-models/models。Chat 请求使用 deploymentUrl/chat/completions 并需要 AI-Resource-Group。",
"sarvam": "Sarvam AI 在 /v1 上兼容 OpenAI。OmniRoute 探测 /v1/models 并将聊天流量路由到 /v1/chat/completions。模型针对印度语言进行了优化。",
"scaleway": "新账户可获 1M 免费 Token — 符合 EU/GDPR 规范(巴黎),Qwen3 235B & Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "使用现有的 OAuth 流程连接 Claude Code。",
"cline": "使用现有的 OAuth 流程连接 Cline。",
"cursor": "使用现有的 OAuth 流程连接 Cursor IDE。",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "使用 cursor.com/dashboard/api 中的用户 API 密钥(crsr_...)连接 Cursor;无需 IDE 会话。",
"github": "使用现有的 OAuth 流程连接 GitHub Copilot。",
"gitlab-duo": "具有 ai_features + read_user 作用域的 OAuth 应用程序。在此 OmniRoute 实例上配置 GITLAB_DUO_OAUTH_CLIENT_ID 以及可选的 GITLAB_DUO_OAUTH_CLIENT_SECRET。",
"kilocode": "使用现有的 OAuth 流程连接 Kilo Code。",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "从提供者自己的域复制所需的凭据。对于 cookie,仅复制 Cookie 标头值并省略 Cookie:。",
"webSessionGuideStep3Manual": "手动路径:打开浏览器开发者工具 (F12 → 网络),刷新页面,打开一个经过身份验证的请求,然后从请求头中复制 Cookie 头的值 — 省略 Cookie: 前缀。",
"webSessionGuideStep4": "将其粘贴到此处并检查连接。如果它停止工作,请重新登录并将其替换为新值。",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "导入 .har 文件",
+ "harImportButtonBusy": "正在导入…",
+ "harImportButtonHint": "发送至少一条聊天消息后,从 DevTools 的 Network 标签页导出。",
+ "harImportStatusValid": "已导入 — 有效期约为 {minutes} 分钟。",
+ "harImportStatusExpiringSoon": "已导入 — 仅剩约 {minutes} 分钟有效期。",
+ "harImportStatusExpired": "已导入,但此令牌已于 {minutes} 分钟前过期 — 请导出新的 HAR。",
+ "harImportStatusUnknownExpiry": "已导入,但无法读取其到期时间。",
+ "harImportErrorNotJson": "该文件不是有效的 JSON — 它确实是导出的 .har 文件吗?",
+ "harImportErrorNoEntries": "此 HAR 中没有记录任何网络条目。",
+ "harImportErrorNoChathubUrl": "在此 HAR 中未找到 Copilot 聊天连接。请先在 m365.cloud.microsoft 中发送至少一条聊天消息,然后再导出。",
+ "harImportErrorUnparsableUrl": "已找到聊天连接,但无法读取其 URL。",
+ "harImportErrorMissingFields": "已找到聊天连接,但其中缺少令牌。",
+ "harImportErrorReadFailed": "无法读取该文件。",
+ "harImportErrorUnknown": "无法从该 HAR 文件中提取凭据。",
"webSessionSecurityHint": "将其视为密码:它可以访问您登录的网络帐户,直到其过期或被撤销。",
"webNoAuthGuideTitle": "无需任何凭证",
"webNoAuthGuideBody": "{provider} 不需要 API 密钥或 cookie。保存连接以使用其免费 Web 端点。",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "命令代码认证已过期",
"commandCodeConnected": "命令代码已连接",
"commandCodeConnectionAdded": "命令代码连接已添加",
+ "clearConnectionCooldown": "清除冷却状态",
+ "clearConnectionCooldownInProgress": "正在清除…",
+ "clearConnectionCooldownTitle": "立即清除冷却状态——当上游配额已刷新时使用",
"commandCodeLinkExpired": "命令代码链接已过期",
"commandCodeOpeningStudio": "正在打开 Command Code Studio…",
"commandCodePopupBlocked": "弹出窗口被阻止。请允许弹出窗口,然后再次尝试 Command Code Connect。",
"commandCodeStartFailed": "无法启动命令代码 auth",
"connectionDeleted": "连接已删除",
"connectionFallback": "连接",
+ "connectionCooldownCleared": "冷却状态已清除——连接已重新加入路由",
"coolingConnectionsDescription": "这些连接在上次请求后正在冷却。计时器到期前 OmniRoute 会跳过它们 — 无需手动禁用。",
"coolingConnectionsTitle": "当前冷却中 ({count})",
+ "failedClearConnectionCooldown": "清除冷却状态失败",
"failedDeleteAlias": "删除别名失败",
"failedDeleteConnection": "无法删除连接",
"failedDistributeProxies": "无法分配代理。",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "已保存的模型端点设置",
"searchByModelAria": "按型号搜索",
"selectSupportedEndpoint": "请选择至少一个支持的端点",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "设置",
@@ -6690,12 +6697,12 @@
"autoDisableDescription": "若提供者连接返回特定的永久封禁信号(如 HTTP 403\"请验证您的账户\"),则将其永久标记为停用。这会将其从组合轮换中移除。",
"autoDisableThreshold": "封禁阈值",
"autoDisableThresholdDesc": "触发永久停用所需的连续封禁信号次数。",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedScope": "自动停用应用于",
+ "autoDisableBannedScopeDesc": "如果 OmniRoute 在被封禁后持续重试,登录席位(付费订阅和免费账户)可能会被上游锁定。付费预付费 API 密钥没有此风险——请将其保留在池中,以便优先填充策略使用下一个密钥。",
+ "autoDisableBannedScopeAll": "所有连接",
+ "autoDisableBannedScopeAllDesc": "停用所有返回永久封禁信号的连接,包括预付费 API 密钥。",
+ "autoDisableBannedScopeSubscription": "仅登录 / 订阅账户",
+ "autoDisableBannedScopeSubscriptionDesc": "停用 OAuth、Cookie、会话和网页登录席位(付费或免费)。预付费 API 密钥保持启用,以便路由进行故障转移。",
"customBannedSignals": "封禁关键词",
"customBannedSignalsDesc": "触发永久封号检测的附加关键词。内置关键词始终生效。",
"customBannedSignalsPlaceholder": "例如 api key revoked",
@@ -6751,18 +6758,18 @@
"sidebarVisibility": "隐藏侧边栏项目",
"sidebarVisibilityDesc": "可以隐藏任意侧边栏导航项,以减少视觉负担,但不会禁用任何功能",
"sidebarVisibilityHint": "当某个侧边栏分组中的所有项目都被隐藏时,该分组会自动隐藏",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "全部",
+ "presetAllDesc": "显示所有内容",
+ "presetEssentials": "基础",
+ "presetEssentialsDesc": "新手路径 - 高级工具仍可通过搜索找到",
+ "presetMinimal": "精简",
+ "presetMinimalDesc": "仅核心页面",
+ "presetDeveloper": "开发者",
+ "presetDeveloperDesc": "开发与代理工具",
+ "presetAdmin": "管理员",
+ "presetAdminDesc": "监控与审计",
+ "settingsSidebarTitle": "侧边栏自定义",
+ "settingsSidebarDesc": "选择要显示的侧边栏项目。“基础”模式下仍可通过搜索找到高级工具。",
"hideHealthLogs": "隐藏健康检查日志",
"hideHealthLogsDesc": "开启后,将抑制服务器控制台中的 [HealthCheck] 消息",
"themeAccent": "主题颜色",
@@ -7063,7 +7070,7 @@
"costOptDesc": "优先选择成本最低的可用账户",
"resetAware": "复位感知RR",
"resetAwareDesc": "优先选择剩余配额正常且重置时间较近的账户",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "按配额加权",
"quotaWeightedDesc": "踢掉没额度的账号,再按剩余额度除以在途请求数加权抽取。已有对话钉在原账号,空了才换。",
"strictRandom": "严格随机",
"strictRandomDesc": "洗牌池模式:每个账户使用一次后再重新洗牌",
@@ -7085,14 +7092,14 @@
"providerAccountRoutingDesc": "覆盖此提供者的全局账户策略(与 9router 保持一致)。",
"providerRoutingStrategy": "账户策略",
"providerRoutingInheritGlobal": "继承全局默认值",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "配额预检阈值",
+ "quotaPreflightSubtitle": "在将请求发送到上游之前,跳过配额已耗尽的账户",
+ "quotaPreflightEnable": "启用配额预检",
+ "quotaPreflightEnableDesc": "每次请求前,检查账户的剩余配额(5 小时 / 每周 / 每月窗口)。配额等于或低于阈值的账户将被跳过,且不会调用上游。在“提供者配额”页面设置的各窗口阈值始终优先于此处的默认值。",
+ "quotaPreflightCutoff": "全局截止阈值(最低剩余百分比)",
+ "quotaPreflightCutoffDesc": "当账户的剩余额度降至此百分比或更低时,停止使用该账户;适用于所有未单独设置截止阈值的窗口。此值与 Provider Quota 页面上的剩余百分比进度条一致。",
+ "quotaPreflightWindowsHint": "已设置窗口级或提供者级截止阈值的窗口(在 Provider Quota 页面的 Cutoff 弹窗中设置)不受此默认值影响。",
+ "quotaPreflightLoadFailed": "无法加载额度预检设置。",
"modelAliases": "模型别名",
"modelAliasesTitle": "模型别名",
"modelAliasesDesc": "使用精确匹配或通配符模式重映射模型名称。",
@@ -7325,7 +7332,7 @@
"configured": "已配置",
"none": "无",
"modelOverrideValuePlaceholder": "数字值",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "使用英文逗号分隔,例如 low, medium, high",
"addKeyValue": "添加键值",
"noModelOverrides": "该模型尚未配置覆盖。",
"modelOverrideLoadFailed": "加载模型覆盖失败",
@@ -7601,8 +7608,8 @@
"resilienceRequestsPerMinute": "每分钟请求数",
"resilienceMinTimeBetweenRequests": "请求之间的最小时间",
"resilienceConcurrentRequests": "并发请求数",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceConnectionScopeConcurrentRequests": "每个连接/额度范围的并发请求数",
+ "resilienceGlobalConcurrentRequests": "全局上游并发请求数(0 = 禁用)",
"resilienceMaxQueueWaitTime": "最大队列等待时间",
"resilienceBaseCooldown": "基础冷却时间",
"resilienceUseUpstreamRetryHints": "使用上游重试提示",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "旧版 JSON 导入成功!",
"jsonImportFailed": "导入 JSON 失败",
"jsonImportError": "导入 JSON 时出错",
+ "jsonImportAuthRequired": "导入旧版 JSON 配置需要身份验证。请先登录或完成设置。",
+ "databaseSettingsAuthRequiredTitle": "需要身份验证",
+ "databaseSettingsAuthRequiredBody": "数据库设置和 JSON 导入仅对已通过身份验证的管理员开放。请登录或完成设置以查看和编辑这些内容。",
+ "databaseSettingsAuthRequiredCta": "登录",
"storagePurgeData": "清除数据",
"storagePurgeDataDesc": "立即删除所有记录,不进行保留检查。请谨慎使用。",
"storageRetentionCleanup": "保留设置",
@@ -7926,7 +7937,15 @@
"memorySkillsActiveSkillsProvider": "主动技能供应商",
"cliproxyapiFallback": "CLIProxyAPI 后备",
"cliproxyapiEnableFallback": "启用 CLIProxyAPI 回退",
- "cliproxyapiUrl": "CLIProxyAPI URL",
+ "cliproxyapiUrl": "CLIProxyAPI 网址",
+ "headroomProxyTitle": "Headroom 代理",
+ "headroomProxyDesc": "可选 Headroom 令牌节省代理的 URL。留空时使用 HEADROOM_URL 或 http://localhost:8787。",
+ "headroomProxyUrl": "Headroom 网址",
+ "headroomProxyUrlHint": "可以从此页面启动回环 URL。外部 URL 仅会被探测。",
+ "headroomProxySave": "保存",
+ "headroomProxyStart": "启动",
+ "headroomProxyStop": "停止",
+ "headroomProxyExternalHint": "此 URL 不是回环地址,因此 OmniRoute 不会启动本地 CLI。",
"cliproxyapiStatus": "CLIProxyAPI 状态",
"cliproxyapiNotDetected": "未检测到",
"cliproxyapiImportAuthTitle": "从 CLIProxyAPI 导入账户",
@@ -8360,15 +8379,7 @@
"cliproxyapiHealth": "健康",
"cliproxyapiPort": "端口",
"qdrantHost": "主机",
- "qdrantCollection": "集合",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "集合"
},
"contextRtk": {
"title": "命令输出过滤引擎",
@@ -8657,6 +8668,8 @@
"contextEditingNote": "目前仅适用于 Claude (Anthropic)。这是一种委托模式:提供者在服务端清除旧的工具使用块 — 我们不会重写消息。这不会影响其他提供者。",
"namedCombos": "命名组合",
"namedCombosDescription": "保存不同的流水线并将其分配给特定的路由组合。",
+ "activeProfileMasterSwitchOffWarning": "在主“提示词压缩”开关开启之前,下方的活动配置文件不会运行。",
+ "activeProfileMasterSwitchOffCta": "在“设置”中开启",
"comboNamePlaceholder": "组合名称",
"descriptionPlaceholder": "描述",
"nameRequired": "保存前请输入组合名称。",
@@ -8670,9 +8683,7 @@
"languagePacksList": "语言包:{packs}",
"dragToReorder": "拖动以重新排序步骤",
"engine": "引擎",
- "intensity": "强度",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "强度"
},
"compressionStudio": {
"noRun": "没有可用的压缩运行记录。",
@@ -8701,7 +8712,7 @@
"run": "运行",
"laneRejected": "已拒绝: {reason}",
"error": "错误",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "组合管线预览失败:{reason}",
"combinedFlow": "组合流程",
"eachLayer": "单独各层",
"diff": "差异",
@@ -8710,7 +8721,7 @@
"input": "输入",
"output": "输出",
"tokenCount": "{count, number} 个 token",
- "tokenShort": "tok",
+ "tokenShort": "词元",
"provider": "提供者",
"judgeModel": "裁判模型",
"judgeModelPlaceholder": "例如 claude-haiku",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "启用引擎",
"enableDescription": "在堆栈中最后运行(在 RTK/Caveman 清理文本、OmniGlyph 将剩余部分转换为图像之后),也可以通过 omniglyph 模式独立运行。此功能为预览版,在端到端验证完成前默认保持关闭。",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "压缩配置文件",
+ "profileDescription": "配置文件是上限,而不是下限:更严格的配置文件无法通过单个步骤的覆盖设置重新放宽。基于此代码库的测量结果:使用“编码安全”或“均衡”时,尚未积累历史记录的会话不会压缩任何内容,因为两者都会提高最小字符数阈值,并将系统提示词、工具架构和工具结果保持为原生形式。",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "激进(默认)",
+ "description": "已发布的回执所衡量的策略。将系统提示词、工具文档和密集历史记录转为图像。"
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "均衡",
+ "description": "将实时状态保持为原生形式并保护最近 8 轮对话;仅折叠更早的已结束历史记录。"
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "编码安全",
+ "description": "将权限指令、工具架构和实时工具输出保持为原生形式,并保护最近 12 轮对话。在会话积累历史记录之前不会压缩任何内容。"
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "直通",
+ "description": "无需转换即可路由。引擎会被跳过,请求将原样转发。"
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "选择 OmniGlyph 压缩配置文件",
"saved": "已保存。",
"saveFailed": "无法保存。",
"enableAria": "启用 OmniGlyph 引擎",
@@ -8881,7 +8892,7 @@
"fallbackRouting": "回退路由",
"fallbackRoutingDescription": "通过 CLIProxyAPI 重试失败的服务商请求",
"enableFallback": "启用回退",
- "cliproxyUrl": "CLIProxyAPI URL",
+ "cliproxyUrl": "CLIProxyAPI 网址",
"fallbackCodes": "回退状态码(逗号分隔)",
"invalidUrl": "无效的 URL — 必须以 http:// 或 https:// 开头",
"saved": "已保存",
@@ -10211,7 +10222,7 @@
"mcpToolsMemoryDesc": "搜索、添加和清除持久化对话记忆条目。",
"mcpToolsSkillsTitle": "技能",
"mcpToolsSkillsDesc": "列出、启用、执行和监控自定义技能执行。",
- "featureAutoComboTitle": "Auto-Combo",
+ "featureAutoComboTitle": "自动组合",
"featureAutoComboText": "根据你连接的提供者、使用模式和模型能力,自动创建优化组合。",
"featureSearchTitle": "网页搜索",
"featureSearchText": "集成 5 个提供者的网页搜索(Serper、Brave、Exa、Tavily、Perplexity),并包含分析和成本跟踪。",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "连接 Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "使用 Cursor 登录",
+ "tabImport": "导入令牌",
+ "loginDescription": "打开 Cursor 的浏览器登录页面。支持在 Docker 中使用——在宿主机浏览器中批准,然后返回此处。",
+ "loginWithCursor": "使用 Cursor 登录",
+ "startingLogin": "正在启动…",
+ "waitingApproval": "正在等待批准 Cursor 登录…",
+ "openUrlHint": "如果浏览器未打开:",
+ "openLoginLink": "打开登录页面",
+ "cancelLogin": "取消登录",
"autoDetecting": "自动检测令牌中...",
"readingFromCursor": "正在从 Cursor IDE 或 cursor-agent 读取",
"tokensAutoDetected": "已成功从 Cursor IDE 自动检测到令牌!",
"cursorNotDetected": "未检测到 Cursor IDE。请手动粘贴您的令牌。",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "正在 Docker 中运行?建议使用 Cursor 登录。IDE 自动导入和 cursor-agent 通常在容器内不可用。请参阅 docs/providers/CURSOR-DOCKER.md。",
"accessToken": "访问令牌",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "刷新令牌",
+ "refreshTokenPlaceholder": "可选——启用令牌自动刷新",
"required": "*",
"accessTokenPlaceholder": "访问令牌将自动填充...",
"machineId": "机器 ID",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "自动检测令牌失败",
"errorEnterToken": "请输入访问令牌",
"errorImportFailed": "导入失败",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "无法启动 Cursor 登录",
+ "errorLoginPoll": "Cursor 登录失败",
+ "errorLoginTimeout": "Cursor 登录超时——请重试"
},
"pricingModal": {
"title": "定价配置",
@@ -10957,6 +10968,9 @@
"strategyLatency": "延迟优化",
"poolMembersLabel": "池成员 ({count})",
"poolNoMembers": "此池中尚无代理。",
+ "poolEgressObservation": "{exits, plural, one {# 个出口} other {# 个出口}},由 {connections, plural, one {# 个连接} other {# 个连接}}使用 · 单个出口最多 {max} 个连接 · 过去 {hours} 小时",
+ "poolEgressObservationEmpty": "过去 {hours} 小时内未观察到流量",
+ "poolEgressObservationHint": "根据此时间窗口内的代理日志统计:观察到此池成员使用的不同出口 IP,以及使用这些 IP 的 OmniRoute 连接。“单个出口”是指整个时间窗口内,而不是同一时刻。每个 IP 的 429 锁定仅会暂停同一提供者系列的连接。",
"poolRemove": "移除",
"poolRemoveFailed": "从池中移除代理失败",
"poolAddLabel": "添加代理",
@@ -11303,7 +11317,7 @@
"tps": "TPS",
"duration": "时长",
"time": "时间",
- "conversation": "Conversation",
+ "conversation": "对话",
"ttft": "TTFT"
},
"loadingLogs": "正在加载日志...",
@@ -11410,8 +11424,8 @@
"correlationId": "关联 ID",
"correlationIdValue": "关联 ID: {id}",
"detailedPayloadInfo": "如果您想要新请求的四阶段客户端/提供者负载视图,请先启用详细日志记录。",
- "copyAll": "Copy all",
- "copiedAll": "Copied all"
+ "copyAll": "全部复制",
+ "copiedAll": "已全部复制"
}
},
"proxyLogger": {
@@ -12172,7 +12186,7 @@
"acp": {
"title": "ACP 代理",
"phrase": "OmniRoute 作为执行后端(反向流)生成的 CLI",
- "warning": "Most users can ignore this — use only when an integration requires it.",
+ "warning": "大多数用户可以忽略此项——仅在集成需要时使用。",
"flow": "客户端 → OmniRoute → 生成 CLI (stdio/ACP) → 响应",
"seeOther": "查看 →"
}
@@ -12363,8 +12377,8 @@
"description": "触发系统备份、从备份文件恢复,并管理 SQLite 数据库生命周期。支持导出、导入和增量快照策略。"
},
"omni-webhooks": {
- "name": "Webhooks",
- "description": "__MISSING__:Register, list, test, and remove webhook endpoints. Configure event subscriptions (request.completed, request.failed, quota.exceeded, etc.) and manage delivery retries."
+ "name": "Webhook",
+ "description": "注册、列出、测试和移除 Webhook 端点。配置事件订阅(request.completed、request.failed、quota.exceeded 等)并管理递送重试。"
},
"omni-mcp": {
"name": "MCP 服务器",
@@ -12582,14 +12596,14 @@
"typeApikey": "API 密钥",
"sortTypeFirst": "最简优先",
"sortTypeFirstHelp": "按注册难度分组(免注册 → OAuth 登录 → API 密钥),并在每个组内保持质量排序",
- "sortByReliability": "__MISSING__:Most reliable first",
- "sortByReliabilityHelp": "__MISSING__:Order providers by the share of calls that succeeded in the selected window. Providers with too few calls to state a rate keep their score order, below the measured ones.",
+ "sortByReliability": "最可靠的优先",
+ "sortByReliabilityHelp": "根据所选时间范围内调用成功率对提供者进行排序。调用次数过少、无法确定成功率的提供者将保留其评分顺序,并排在有统计数据的提供者之后。",
"typeLegend": "免注册 = 零设置 · OAuth 登录 = 使用您自己的账户登录 · API 密钥 = 自备密钥或使用该服务商的免费额度",
- "colReliability": "__MISSING__:Reliability",
- "colReliabilityHelp": "__MISSING__:Share of calls this provider actually answered over the last 24 hours. A dash means it served too little traffic to state a rate.",
- "reliabilitySample": "__MISSING__:{successes} of {requests} calls succeeded in the last {hours}h",
- "reliabilityTooFew": "__MISSING__:Only {requests} calls in the last {hours}h — too few to state a rate",
- "reliabilityNoTraffic": "__MISSING__:No calls recorded in the last 24h"
+ "colReliability": "可靠性",
+ "colReliabilityHelp": "过去 24 小时内此提供者实际响应的调用占比。破折号表示其处理的流量过少,无法确定比率。",
+ "reliabilitySample": "过去 {hours} 小时内,{requests} 次调用中有 {successes} 次成功",
+ "reliabilityTooFew": "过去 {hours} 小时内仅有 {requests} 次调用——调用次数太少,无法给出成功率",
+ "reliabilityNoTraffic": "过去 24 小时内未记录任何调用"
},
"discovery": {
"title": "服务商探索",
@@ -12712,9 +12726,9 @@
},
"badges": {
"radar-supporter": {
- "name": "Radar Supporter",
- "description": "Verified a live OmniRoute Radar supporter feed",
- "criteria": "Verify a signed live Radar supporter feed."
+ "name": "Radar 支持者",
+ "description": "已验证实时 OmniRoute Radar 支持者源",
+ "criteria": "验证经过签名的实时 Radar 支持者源。"
},
"first-token": {
"name": "首个 Token",
@@ -12941,8 +12955,8 @@
"description": "允许每个兼容性节点有多个连接。"
},
"DISABLE_CONTEXT_WINDOW_CHECKS": {
- "label": "Disable Context Window Checks",
- "description": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active."
+ "label": "禁用上下文窗口检查",
+ "description": "对于直接的单模型请求,跳过 OmniRoute 的本地上下文窗口和最大输入令牌数检查。上游提供者仍会强制执行其实际限制。提示词压缩和输出令牌数上限仍然有效。"
},
"RESPONSES_PASSTHROUGH_DROP_COMMENTARY": {
"description": "在将 Responses API 透传流转发给客户端之前,从中移除内部注释阶段的输出项。禁用此标志以接收原始上游注释。"
@@ -12977,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "允许流恢复在字节已到达客户端后重新请求响应并进行拼接。"
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "确保流中途续传的工具调用安全:发送工具调用后(无论仍在进行中还是已完成),绝不恢复被中断的流;若一次续传为空,则停止,而不是耗尽全部重试次数。"
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "当流在发出任何有用帧之前关闭,且同一连接上的有限重试已用尽时,故障转移一次到同级连接。若没有可用的同级连接,则返回原始的 early-EOF 错误。关闭:重试后 early-EOF 仍为终止结果。"
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "在 /v1/models 响应中包含易于显示的名称字段。对于仅接受模型 ID 的客户端,请禁用此项。"
},
@@ -13009,6 +13029,18 @@
},
"SKILLS_SANDBOX_NETWORK_ENABLED": {
"description": "在技能沙箱中启用网络访问。"
+ },
+ "SERVER_OWNED_TOOL_LOOP_ENABLED": {
+ "label": "服务器托管的工具循环",
+ "description": "继续执行非流式的服务器托管工具调用,直到模型返回客户端可用的响应。"
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After 来源",
+ "description": "对于聚合的 429/503 不可用响应,如果无法确定具体的未来重试时间,则省略 Retry-After,而不是发送人为设定的 1 秒;添加 error.retry_after_provenance,并读取组合耗尽路径中的文本重试提示。"
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "受保护优先级基础设施停止返回 502",
+ "description": "当仅配额回退的优先级目标因可证实并非配额的原因(提供者断路器处于打开状态或预测性延迟跳过)而停止组合时,返回 502 而不是 503。"
}
}
},
@@ -13087,7 +13119,7 @@
"comboHealth": "组合健康状况",
"callLogs": "调用日志",
"costs": "费用",
- "playground": "Playground",
+ "playground": "试验场",
"nestedCombo": "嵌套组合",
"modelTarget": "模型目标",
"weight": "{value}% 权重",
@@ -13150,7 +13182,7 @@
"segmentHint": "每个分段 = 一个免费池 · 池去重,真实统计(无虚高的速率限制上限)。",
"boost": "一次性充值 $10 OpenRouter 即可每月多解锁约 ~{tokens}(50 → 1000 次请求/天)",
"uncapped": "永久免费,无公开上限(受速率限制)— 实际可用,未计入总览:",
- "gated": "__MISSING__:~{tokens}/mo more behind a regional identity check (e.g. mainland-China real-name verification) — real quota, not counted in the headline:",
+ "gated": "通过区域身份验证(例如中国大陆实名认证)后,每月还可获得约 {tokens} 个令牌——这是实际配额,但不计入标题所示额度:",
"tosRestricted": "{count, plural, one {# 个模型} other {# 个模型}}被标记为受 ToS 限制 — 由您决定",
"provider": "提供者",
"model": "模型",
@@ -13286,7 +13318,7 @@
"missing": "未指定",
"signalOnly": "非离散推理信号",
"requestTags": "请求标签",
- "requestTagsExample": "coding, internal",
+ "requestTagsExample": "编程、内部",
"tagMode": "标签匹配",
"effortMode": "推理模式",
"targetEffort": "目标推理",
@@ -13403,92 +13435,92 @@
"tierLive": "实时",
"tierCommunity": "社区(30天延迟)",
"activateTitle": "激活雷达",
- "activateDescription": "__MISSING__:Compare Community and live access, understand what your installation exchanges, and then choose how to activate Radar.",
- "activateButton": "__MISSING__:Activate Community",
+ "activateDescription": "比较社区访问权限和实时访问权限,了解您的安装实例会交换哪些信息,然后选择如何激活 Radar。",
+ "accessScaleTitle": "激活前了解 Radar 访问权限",
+ "accessScaleIntro": "在您主动选择加入之前,Radar 不会进行任何网络活动。请在查看这些规则后,选择社区访问权限或激活个人支持者密钥。",
+ "accessCommunityRule": "社区版——无需密钥:可访问完整目录,但有 30 天延迟。",
+ "accessSingleUseRule": "加星并关注——GitHub OAuth 验证两项操作后,您的 GitHub 账户将获得一次实时目录读取权限;之后访问权限将恢复为社区版。该账户无法再次获得此一次性访问权限。",
+ "accessContributorRule": "贡献者——已合并的 PR、提交和代码行数仅用于确定每周排名。前 10 名可获得 365 天;第 11–100 名可获得 90 天;前 100 名之外的贡献者无论 PR 数量多少都不会获得授权。退出排名绝不会缩短已授予的期限。",
+ "accessSupporterRule": "支持者——一次性购买可获得 6 个月、1 年或终身权限,且不会自动续订。购买、捐赠、贡献者期限和手动授权可累加;终身权限始终优先。",
+ "accessUseTitle": "个人使用、恢复与审核",
+ "accessInstallationRule": "个人许可证——同一时间只能在一个活跃安装实例上使用该密钥。OmniRoute 不会采集硬件指纹。恢复操作会撤销并替换丢失的密钥,但不会重置其到期时间。",
+ "accessAbuseRule": "滥用审核——24 小时内出现第 4 个不同的 IP 只会触发人工审核标记;绝不会自动阻止或撤销密钥。",
+ "accessOffersRule": "实时优惠由人工策划,可能会变更或过期。",
+ "privacyTitle": "Radar 会交换哪些信息",
+ "privacyDownloadsRule": "下载——您的安装实例会接收经过加密签名的目录和推荐元数据;有效的实时密钥还可解锁经过签名的优惠和 Intel。",
+ "privacySendsRule": "发送——服务器端同步会将支持者密钥作为 Bearer token 发送,HTTPS 基础设施也会接收到连接 IP。源请求统计不会以原始形式存储这两项数据:仅保留密钥哈希、汇总用量,以及用于滥用审核且每日轮换的截断 IP HMAC。",
+ "privacyNeverRule": "绝不收集——提示词、响应、对话、提供者凭据、模型流量、正常运行时间、延迟和本地提供者配置绝不会发送到 Radar。",
+ "activateButton": "激活社区版",
"activating": "正在激活...",
- "keySectionTitle": "Already have a supporter key?",
- "keyInvalidFormatError": "Invalid key format. It must start with \"omr_\" followed by 40 hex characters.",
- "activateWithKeyButton": "Activate supporter",
- "changeKeyButton": "Change key",
- "claimSectionTitle": "Don't have a supporter key yet?",
- "contributorButton": "I'm a contributor",
- "contributorHint": "__MISSING__:GitHub OAuth checks the current weekly ranking: Top 10 get 365 days and ranks 11–100 get 90 days. PR count alone never grants access outside the Top 100.",
- "supporterButton": "Support the project",
- "supporterHint": "__MISSING__:One-time 6-month, 1-year, and lifetime options have no automatic renewal; eligible periods accumulate and lifetime prevails.",
+ "keySectionTitle": "已经有支持者密钥?",
+ "keyInvalidFormatError": "密钥格式无效。必须以 \"omr_\" 开头,后跟 40 个十六进制字符。",
+ "activateWithKeyButton": "激活支持者权限",
+ "changeKeyButton": "更改密钥",
+ "claimSectionTitle": "还没有支持者密钥?",
+ "contributorButton": "我是贡献者",
+ "contributorHint": "GitHub OAuth 会检查当前每周排名:前 10 名可获得 365 天,第 11–100 名可获得 90 天。仅凭 PR 数量无法让前 100 名之外的贡献者获得访问权限。",
+ "supporterButton": "支持此项目",
+ "supporterHint": "一次性的 6 个月、1 年和终身选项不会自动续订;符合条件的期限可累加,且终身权限优先。",
"colProvider": "提供者",
"colModel": "模型",
"colQuota": "配额",
+ "colLimits": "速率限制",
+ "trainsOnPrompts": "使用提示词进行训练",
+ "trainsOnPromptsHelp": "此提供者的条款表明,其可能会使用您发送的提示词进行训练。没有此标记的模型要么声明不会这样做,要么未对此进行说明——未作声明并不构成保证。",
+ "limitsUnknownHelp": "限制仅由 Radar 数据源报告;此条目没有已发布的限制",
+ "contextUnknownHelp": "此条目的上下文窗口未知",
+ "capabilityUnknownHelp": "数据源未报告此能力",
"colContext": "上下文",
"colCapabilities": "能力",
"colTos": "ToS风险",
- "colLimits": "__MISSING__:Rate limits",
- "trainsOnPrompts": "__MISSING__:Trains on prompts",
- "trainsOnPromptsHelp": "__MISSING__:This provider's terms state it may train on the prompts you send. Models without this badge either state they do not, or do not document it — an absent statement is not a guarantee.",
- "limitsUnknownHelp": "__MISSING__:Limits reported by Radar feed only; no published limits for this entry",
- "contextUnknownHelp": "__MISSING__:Context window unknown for this entry",
- "capabilityUnknownHelp": "__MISSING__:Capability not reported by the feed",
"newBadge": "新",
"setupGuide": "设置指南",
"disabledByFeed": "被雷达数据源禁用",
"capTools": "工具",
"capVision": "视觉",
"capThinking": "思考",
- "catalogTab": "Catalog",
- "freeCreditsTab": "Free credits",
- "freeCreditsSubtitle": "Referral links from Radar-tracked providers — using them costs you nothing extra and helps support OmniRoute.",
- "fixedLinksEmpty": "No referral links available yet. Sync Radar to check for updates.",
- "requiredActionLabel": "What to do:",
- "claimButton": "Claim credits",
- "campaignsTitle": "Limited-time campaigns",
- "campaignsEmpty": "No active campaigns right now — check back later.",
- "campaignsUpsellCommunity": "Limited-time campaigns are a supporter extra. Everything on this page's fixed links stays free for everyone.",
- "campaignsValidUntil": "Valid until {date}",
- "colActions": "Actions",
- "localBadge": "local",
- "editModel": "Edit",
- "saveModel": "Save",
- "cancelEdit": "Cancel",
- "resetModel": "Reset local changes",
- "hideModel": "Hide",
- "restoreModel": "Restore",
- "hiddenModelsTitle": "Hidden models",
- "modelDisplayName": "Local display name",
- "modelEnabled": "Enabled locally",
- "localStateSaveFailed": "Failed to save local Radar settings",
- "guidedCombos": "Guided combos",
- "offers": "Offers",
- "intel": "Intel",
- "accessScaleTitle": "__MISSING__:Understand Radar access before activating",
- "accessScaleIntro": "__MISSING__:Radar stays network-inert until you opt in. Choose Community access or activate a personal supporter key after reviewing these rules.",
- "accessCommunityRule": "__MISSING__:Community — no key required: the complete catalog with a 30-day delay.",
- "accessSingleUseRule": "__MISSING__:Star + follow — after GitHub OAuth verifies both, your GitHub account receives one live catalog read; then access returns to Community. This one-time access cannot be reissued for that account.",
- "accessContributorRule": "__MISSING__:Contributors — merged PRs, commits, and lines only order the weekly ranking. Top 10 receive 365 days; ranks 11–100 receive 90 days; contributors outside the Top 100 receive no grant regardless of PR count. Leaving the ranking never shortens time already granted.",
- "accessSupporterRule": "__MISSING__:Supporters — one-time purchases grant 6 months, 1 year, or lifetime with no automatic renewal. Purchases, donations, contributor periods, and manual grants accumulate; lifetime always prevails.",
- "accessUseTitle": "__MISSING__:Personal use, recovery, and review",
- "accessInstallationRule": "__MISSING__:Personal license — use the key on one active installation at a time. OmniRoute does not fingerprint hardware. Recovery revokes and replaces a lost key without resetting its expiration.",
- "accessAbuseRule": "__MISSING__:Abuse review — the 4th distinct IP in 24 hours creates a manual review flag only; it never blocks or revokes a key automatically.",
- "accessOffersRule": "__MISSING__:Live offers are manually curated and may change or expire.",
- "privacyTitle": "__MISSING__:What Radar exchanges",
- "privacyDownloadsRule": "__MISSING__:Downloads — your installation receives cryptographically signed catalog and referral metadata; a valid live key also unlocks signed offers and Intel.",
- "privacySendsRule": "__MISSING__:Sends — server-side sync sends the supporter key as a Bearer token, and the HTTPS infrastructure receives the connection IP. Feed-request accounting stores neither value raw: it keeps key hashes, aggregate usage, and a daily rotating truncated IP HMAC for abuse review.",
- "privacyNeverRule": "__MISSING__:Never collected — prompts, responses, conversations, provider credentials, model traffic, uptime, latency, and local provider configuration are never sent to Radar."
+ "catalogTab": "目录",
+ "freeCreditsTab": "免费额度",
+ "freeCreditsSubtitle": "来自 Radar 跟踪的提供者的推荐链接——使用这些链接不会产生任何额外费用,同时还能帮助支持 OmniRoute。",
+ "fixedLinksEmpty": "暂无可用的推荐链接。同步 Radar 以检查更新。",
+ "requiredActionLabel": "操作步骤:",
+ "claimButton": "领取额度",
+ "campaignsTitle": "限时活动",
+ "campaignsEmpty": "目前没有进行中的活动——请稍后再来查看。",
+ "campaignsUpsellCommunity": "限时活动是支持者专享福利。此页面上的所有固定链接仍对所有人免费开放。",
+ "campaignsValidUntil": "有效期至 {date}",
+ "colActions": "操作",
+ "localBadge": "本地",
+ "editModel": "编辑",
+ "saveModel": "保存",
+ "cancelEdit": "取消",
+ "resetModel": "重置本地更改",
+ "hideModel": "隐藏",
+ "restoreModel": "恢复",
+ "hiddenModelsTitle": "已隐藏的模型",
+ "modelDisplayName": "本地显示名称",
+ "modelEnabled": "在本地启用",
+ "localStateSaveFailed": "无法保存本地 Radar 设置",
+ "guidedCombos": "引导式组合",
+ "offers": "优惠",
+ "intel": "情报"
},
"radarCombosPage": {
- "title": "Radar guided combos",
- "subtitle": "Create priority fallbacks from equivalent free models curated by Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading combo suggestions...",
- "familyLabel": "Model family",
- "modelsLabel": "Priority order",
- "strategyReason": "Priority uses the largest recurring free budget first, then falls back across active providers.",
- "generateButton": "Generate combo",
- "generating": "Generating...",
- "alreadyCreated": "Already created",
- "created": "Combo created",
- "noSuggestions": "No eligible model family currently has active connections to at least two providers.",
- "catalogRequired": "Sync the Radar catalog first to load curated model families.",
- "loadFailed": "Failed to load Radar combo suggestions.",
- "createFailed": "Failed to create the combo. Review your provider connections and try again."
+ "title": "Radar 引导式组合",
+ "subtitle": "使用 Radar 精选的同等免费模型创建按优先级排列的回退方案。",
+ "backToRadar": "返回 Radar",
+ "loading": "正在加载组合建议...",
+ "familyLabel": "模型系列",
+ "modelsLabel": "优先级顺序",
+ "strategyReason": "优先使用周期性免费额度最大的模型,然后在可用的提供者之间依次回退。",
+ "generateButton": "生成组合",
+ "generating": "正在生成...",
+ "alreadyCreated": "已创建",
+ "created": "组合已创建",
+ "noSuggestions": "目前没有任何符合条件的模型系列与至少两个提供者建立有效连接。",
+ "catalogRequired": "请先同步 Radar 目录以加载精选模型系列。",
+ "loadFailed": "无法加载 Radar 组合建议。",
+ "createFailed": "无法创建组合。请检查您的提供者连接,然后重试。"
},
"radarSetupPage": {
"title": "提供者设置",
@@ -13517,12 +13549,12 @@
},
"resilienceConnections": {
"title": "连接韧性",
- "reassuranceTitle": "Your connections recover automatically",
- "reassuranceDetail": "Usually no action is needed. OmniRoute temporarily rests a connection after failures, then safely tries it again.",
+ "reassuranceTitle": "您的连接会自动恢复",
+ "reassuranceDetail": "通常无需执行任何操作。连接失败后,OmniRoute 会暂时停用该连接,之后再安全地重试。",
"plainStates": {
- "healthy": "Requests can be sent",
- "coolingDown": "Trying again soon",
- "lockedOut": "Needs your attention"
+ "healthy": "可以发送请求",
+ "coolingDown": "即将重试",
+ "lockedOut": "需要您处理"
},
"table": {
"status": "状态",
@@ -13621,7 +13653,8 @@
}
},
"featureFlagCapabilityFilterEnabledDescription": "在目标模型缺少所需能力(视觉、工具、结构化输出、上下文窗口)时,拒绝调度前的请求。保护绕过组合层兼容性过滤器的直接单一提供者请求。",
- "featureFlagDisableContextWindowChecksDescription": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active.",
+ "featureFlagDisableContextWindowChecksDescription": "对于直接发送到单个模型的请求,跳过 OmniRoute 本地的上下文窗口和最大输入令牌检查。上游提供者仍会强制执行其实际限制。提示词压缩和输出令牌上限仍然有效。",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "搜索统计信息和最近搜索仅统计仍保持实时连接的提供者(无需密钥的提供者,如 duckduckgo-free,始终会被统计)。关闭时,将保留每一条包含提供者 ID 的搜索记录。",
"publicSystem": {
"notFound": {
"title": "页面未找到",
@@ -13677,7 +13710,7 @@
"maintenanceInfo": "维护信息",
"service": "服务",
"unknown": "未知",
- "notAvailable": "n/a",
+ "notAvailable": "不适用",
"providersTracked": "已跟踪的提供者",
"circuitBreakerState": "提供者电路断路器状态",
"lastUpdate": "最后更新:{timestamp}",
@@ -14048,11 +14081,11 @@
"actionApprove": "批准计划",
"actionCancel": "取消",
"actionSeeInGraph": "在图中查看",
+ "actionRepeat": "重复",
"actionDone": "操作已应用",
"actionFailed": "操作失败:{error}",
"detailFailed": "加载详情失败:{error}",
"mirroredInA2A": "已在 A2A 中镜像",
- "actionRepeat": "重复",
"repeatConfirm": "再次点击以确认",
"repeatDone": "已创建新的运行",
"repeatUnavailable": "原始输入不可用"
@@ -14066,57 +14099,57 @@
"networkError": "网络错误 — 无法更新提供者曝光设置"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "支持者优惠",
+ "subtitle": "来自 Radar 的官方折扣、额度、试用和经审核的合作伙伴权益。",
+ "backToRadar": "返回 Radar",
+ "loading": "正在加载优惠...",
+ "refresh": "刷新优惠",
+ "refreshing": "正在刷新...",
+ "loadFailed": "无法刷新优惠。已保留最近一次验证的本地缓存。",
+ "empty": "目前没有可用的有效优惠。",
+ "keyRequiredTitle": "需要支持者密钥",
+ "keyRequiredDescription": "优惠是 Radar 的实时权益。请在 Radar 页面添加现有的支持者密钥、验证您的贡献者身份,或支持此项目以获取密钥。",
+ "contributorButton": "我是贡献者",
+ "supporterButton": "支持此项目",
+ "partnerBadge": "合作伙伴",
+ "officialBadge": "官方",
+ "conditionsLabel": "条件:",
+ "validUntil": "有效期至 {date}",
+ "noExpiry": "未公布到期时间",
+ "openOffer": "查看优惠",
+ "trialDays": "{days, plural, one {# 天} other {# 天}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "Radar 情报",
+ "subtitle": "Radar 自有的 ELO 排名和基于事实的目录变动。",
+ "backToRadar": "返回 Radar",
+ "loading": "正在加载情报...",
+ "refresh": "刷新情报",
+ "syncing": "正在刷新...",
+ "loadFailed": "无法刷新情报。已保留上次验证的本地缓存。",
+ "empty": "目前尚无已验证的情报快照。",
+ "supporterBadge": "Radar 支持者",
+ "methodology": "方法论",
+ "eloMethod": "ELO,初始值 {initial},K={factor}",
+ "freshness": "目录新鲜度",
+ "ageDays": "{days, plural, one {# 天前} other {# 天前}}",
+ "trend": "目录趋势",
+ "modelDelta": "{current} 个模型,+{added} / -{removed}",
+ "ranking": "模型排名",
+ "noRankings": "目前尚无已确认的比较结果。",
+ "model": "模型",
+ "category": "类别",
+ "rating": "评分",
+ "matches": "对局数",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "新鲜",
+ "aging": "逐渐老化",
+ "stale": "陈旧"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "增长中",
+ "stable": "稳定",
+ "shrinking": "缩减中"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "请求超出提供者上下文窗口"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference 是 OmniRoute 的开源合作伙伴",
+ "description": "一个按成本排序的网关,通过单一 OpenAI 兼容端点转售数十种前沿模型——将每个请求路由至符合条件且价格最低的提供者,并且绝不高于标价。",
+ "cta": "获取 API 密钥",
+ "partnerLinkNote": "合作伙伴链接",
+ "dismissAriaLabel": "关闭"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "禁止在 /v1/models 目录中生成思考级别变体(例如 -low、-medium、-high)。"
}
diff --git a/src/i18n/messages/zh-TW.json b/src/i18n/messages/zh-TW.json
index 0a0b64d4b8..4ed7fbecce 100644
--- a/src/i18n/messages/zh-TW.json
+++ b/src/i18n/messages/zh-TW.json
@@ -287,7 +287,7 @@
"modelNamePlaceholder": "模型名稱",
"mcpQuickStartStep2": "MCP 快速開始步驟 2",
"quickStart": "快速開始",
- "fullExportFailedWithError": "Full Export Failed With Error",
+ "fullExportFailedWithError": "完整匯出失敗並發生錯誤",
"loadingBackups": "正在載入備份",
"anthropicBaseUrlPlaceholder": "Anthropic Base URL",
"description": "描述",
@@ -359,7 +359,7 @@
"rerankDesc": "重排說明",
"modelsPathPlaceholder": "Model 路徑",
"noCombosYet": "暫無 Combo",
- "connectedVerificationPendingWithError": "Connected Verification Pending With Error",
+ "connectedVerificationPendingWithError": "已連線,驗證待處理並發生錯誤",
"comboDefaultsGuideHint1": "設定 Combo 預設策略和目標。",
"enableCloudTitle": "啟用雲端",
"configuredProvidersHint": "僅顯示已設定的 Provider。",
@@ -369,7 +369,7 @@
"removeProviderOverrideAria": "移除提供者覆蓋",
"nodeVersion": "Node 版本",
"openai": "OpenAI",
- "exportFailedWithError": "Export Failed With Error",
+ "exportFailedWithError": "匯出失敗並發生錯誤",
"proxyConfigured": "代理已設定",
"concurrencyPerModel": "每個模型併發數",
"protocolTasksLabel": "協議任務標籤",
@@ -704,7 +704,7 @@
"apiKey": "API金鑰",
"xpLastHour": "XP(1 小時)",
"zScore": "Z 分數",
- "suspicious": "__MISSING__:Suspicious",
+ "suspicious": "可疑",
"tokensCommunityServers": "社群伺服器",
"tokensServerNamePlaceholder": "伺服器名稱",
"tokensApiKeyPlaceholder": "API金鑰",
@@ -807,13 +807,13 @@
"batchConceptBenefit50pct": "輸入 + 輸出權杖享受 50% 折扣",
"batchConceptAsync24h": "非同步處理,24 小時完成視窗",
"batchConceptUseCases": "最適合批次分類、評估和嵌入",
- "batchHeaderSubtitle": "Run many requests as one job",
- "batchStep1": "1 · Upload JSONL",
- "batchStep1Desc": "Add requests",
- "batchStep2": "2 · Create batch",
- "batchStep2Desc": "Run job",
- "batchStep3": "3 · Get results",
- "batchStep3Desc": "Download output",
+ "batchHeaderSubtitle": "將多個請求作為單一作業執行",
+ "batchStep1": "1 · 上傳 JSONL",
+ "batchStep1Desc": "新增請求",
+ "batchStep2": "2 · 建立批次",
+ "batchStep2Desc": "執行作業",
+ "batchStep3": "3 · 取得結果",
+ "batchStep3Desc": "下載輸出",
"filesConceptTitle": "批處理檔案",
"filesConceptSubtitle": "批處理使用的 JSONL 檔案:輸入請求、結果和錯誤。",
"filesConceptInput": "輸入 — 每行一個請求的 JSONL",
@@ -988,10 +988,14 @@
"disabled": "已停用",
"featureFlagOmnirouteEmergencyFallbackDescription": "將預算耗盡的請求路由到緊急免費備用提供者/模型。",
"featureFlagArenaEloSyncEnabledDescription": "啟用定期 Arena AI 排行榜 ELO 同步,用於模型智慧排名。",
- "featureFlagUniversalContextHandoffEnabledDescription": "__MISSING__:Generate and inject conversation summaries when combo routing switches models. Disable to treat model switches independently and prevent background handoff requests for all existing and future combos.",
+ "featureFlagUniversalContextHandoffEnabledDescription": "當組合路由切換模型時,產生並注入對話摘要。停用後,模型切換將各自獨立處理,並防止所有現有及未來的組合發出背景交接請求。",
"featureFlagExposeCcDiscoveryAliasesDescription": "在 /v1/models 上廣告 claude/<provider>/<model> 鏡像 ID,以便 Claude Code 閘道模型發現列出非 Claude 模型。警告:當全域啟用時,會為所有客戶端重複目錄條目。",
- "featureFlagNoThinkingAliasEnabledDescription": "__MISSING__:Master switch for the no-think/<provider>/<model> gateway aliases. On (default): /v1/models advertises a no-thinking variant for every eligible thinking-capable Claude model, and a no-think/ id sent on a request resolves back to the real model with reasoning suppressed. Off: no variants are advertised and a no-think/ id is treated like any other unknown model id. The per-model ModelSpec.noThinkingAlias opt-in/opt-out still applies while this is on.",
+ "featureFlagNoThinkingAliasEnabledDescription": "no-think/<provider>/<model> 閘道別名的主開關。開啟(預設):/v1/models 會為每個符合資格且支援思考的 Claude 模型提供不思考變體,而請求中傳送的 no-think/ ID 會解析回實際模型並抑制推理。關閉:不會提供任何變體,且 no-think/ ID 會像其他未知模型 ID 一樣處理。開啟此選項時,每個模型的 ModelSpec.noThinkingAlias 選擇加入/退出設定仍然適用。",
"featureFlagChatVirtualLanesEnabledDescription": "為提供者調度啟用按租戶的自適應虛擬准入通道(#9654):一個租戶的突發流量不再導致另一個租戶收到 503。OMNIROUTE_CHAT_VIRTUAL_LANES 環境變數優先於此儀表板設定;變更在伺服器重新啟動後生效。",
+ "featureFlagFreeBadgeRequiresProviderFreeTierDescription": "儀表板提供者頁面:僅在提供者認可的訊號上顯示「免費」徽章——不再對沒有已記錄免費方案的已註冊提供者使用顯示名稱啟發法、非布林值免費欄位及 :free 後綴。關閉時會沿用過往的徽章規則。",
+ "featureFlagProxySkipRecentlyFailedDescription": "Proxy 集區以及 opencode 的每帳戶輪替機制,會在每個處理程序的一段期間內,停止再次使用剛失敗的 Proxy(TCP 探測遭拒,或透過該 Proxy 收到 429)。每次重複失敗時,這段期間都會加倍,直到達到上限。不會寫入任何 Proxy 狀態;即使所有候選項目都被暫時擱置,選擇結果仍維持不變。預設關閉:選擇順序與一般輪替完全相同。",
+ "featureFlagProxyPoolEgressObservationDescription": "在儀表板的 Proxy 集區下方,顯示過去 24 小時內觀察到多少個出口 IP 為其成員提供服務、使用這些 IP 的連線數,以及單一 IP 後方觀察到的最高數量。唯讀,根據 Proxy 記錄計算,絕不會用於路由。預設關閉:集區編輯器維持不變,觀察路由會回傳 null。",
+ "featureFlagProxyHealthBlockedResetsStreakDescription": "在 Proxy 健康狀態掃描中,讓遭目標拒絕的探測(401/403/429:Proxy 已轉送,但目的地拒絕此出口 IP)能像已提供服務的探測一樣,重設 Proxy 的連續失敗次數。預設關閉:拒絕仍視為中性,並保留目前的連續失敗次數。無論此設定為何,5xx 仍視為無法判定,而且拒絕絕不會移除、停用或重新啟用 Proxy。",
"sidebar": {
"home": "首頁",
"dashboard": "儀表板",
@@ -1176,17 +1180,17 @@
"providerQuota": "提供者配額",
"runtime": "執行時",
"consoleLogs": "控制台日誌",
- "logsTimeline": "Timeline",
+ "logsTimeline": "時間軸",
"logsTimelineSubtitle": "視覺請求時間線",
- "conversations": "Conversations",
- "conversationsSubtitle": "Multi-turn agentic conversations",
+ "conversations": "對話",
+ "conversationsSubtitle": "多輪代理式對話",
"globalRouting": "全域性路由",
"mitmProxy": "MITM 代理",
"oneProxy": "1Proxy",
"agenticFeaturesSection": "代理功能",
"otherFeaturesSection": "其他功能",
"compressionContextGroup": "壓縮上下文",
- "gamificationGroup": "Gamification",
+ "gamificationGroup": "遊戲化",
"toolsGroup": "工具",
"integrationsGroup": "整合",
"proxyGroup": "代理",
@@ -1209,11 +1213,11 @@
"leaderboard": "排行榜",
"profile": "個人資料",
"tokens": "權杖",
- "gamificationAdmin": "__MISSING__:Gamification Admin",
+ "gamificationAdmin": "遊戲化管理",
"leaderboardSubtitle": "排名與成就",
"profileSubtitle": "帳戶與偏好",
"tokensSubtitle": "權杖使用和預算",
- "gamificationAdminSubtitle": "__MISSING__:Anomaly monitoring and anti-cheat",
+ "gamificationAdminSubtitle": "異常監控與防作弊",
"usageSubtitle": "流量和使用統計",
"analyticsComboHealthSubtitle": "組合目標可靠性",
"analyticsUtilizationSubtitle": "提供者利用率",
@@ -1274,8 +1278,8 @@
"agentBridge": "代理橋接",
"agentBridgeSubtitle": "攔截 IDE 代理流量",
"trafficInspector": "流量檢查器",
- "trafficInspectorSubtitle": "__MISSING__:Inspect request and response traffic from your apps",
- "trafficInspectorPurpose": "See exactly what your application sends to and receives from AI providers. Works with any OpenAI-compatible client.",
+ "trafficInspectorSubtitle": "檢查來自您應用程式的請求與回應流量",
+ "trafficInspectorPurpose": "精確查看您的應用程式傳送給 AI 提供者及從中接收的內容。適用於任何與 OpenAI 相容的用戶端。",
"cliCode": "CLI 程式碼的",
"cliCodeSubtitle": "指向 OmniRoute 的程式碼工具",
"cliAgents": "CLI 代理",
@@ -1709,7 +1713,7 @@
"edit": "編輯",
"apiKeys": "API 金鑰",
"models": "模型",
- "cliCode": "CLI Code",
+ "cliCode": "CLI 程式碼",
"cliAgents": "CLI 代理",
"acpAgents": "ACP 代理",
"endpoint": "端點",
@@ -1758,7 +1762,7 @@
"discovery": "探索",
"freeProviderRankings": "免費提供者排名",
"radar": "Radar",
- "setup": "Setup",
+ "setup": "設定",
"freeTiers": "免費方案",
"gamification": "遊戲化",
"leaderboard": "排行榜",
@@ -1822,11 +1826,11 @@
"updateStarted": "更新已開始...",
"reloadingPageAutomatically": "自動重新載入頁面...",
"providerTopology": "提供者拓撲",
- "recentRequests": "__MISSING__:Recent Requests",
- "recentRequestsEmpty": "__MISSING__:No requests yet.",
- "recentRequestsModel": "__MISSING__:Model",
- "recentRequestsTokens": "__MISSING__:In / Out",
- "recentRequestsWhen": "__MISSING__:When",
+ "recentRequests": "最近的請求",
+ "recentRequestsEmpty": "尚無請求。",
+ "recentRequestsModel": "模型",
+ "recentRequestsTokens": "輸入/輸出",
+ "recentRequestsWhen": "時間",
"downloadDmg": "下載 DMG (macOS)",
"downloadDmgDescription": "OmniRoute 桌面應用程式的新版本已經可用。請下載並安裝 macOS DMG 安裝程式以進行更新(目前版本:v{version})。",
"downloadExe": "下載 EXE (Windows)",
@@ -1884,15 +1888,15 @@
"releaseNotes": "發佈說明",
"readMore": "閱讀更多",
"noAuthLabel": "無認證",
- "readinessEyebrow": "Get ready to route",
- "readinessTitle": "Send your first request",
- "readinessSubtitle": "Four small steps. OmniRoute checks readiness as you go.",
- "readinessStep1": "Connect a provider",
- "readinessStep2": "Configure endpoint authentication",
- "readinessStep3": "Copy your endpoint",
- "readinessStep4": "Send a test request",
- "readinessContinue": "Continue setup",
- "readinessDismiss": "Dismiss for now"
+ "readinessEyebrow": "準備開始路由",
+ "readinessTitle": "傳送您的第一個請求",
+ "readinessSubtitle": "只需四個小步驟。OmniRoute 會在您進行時檢查就緒狀態。",
+ "readinessStep1": "連接提供者",
+ "readinessStep2": "設定端點驗證",
+ "readinessStep3": "複製您的端點",
+ "readinessStep4": "傳送測試請求",
+ "readinessContinue": "繼續設定",
+ "readinessDismiss": "暫時略過"
},
"analytics": {
"title": "分析",
@@ -2254,9 +2258,9 @@
"fullAccess": "完全訪問",
"keyManagement": "API 金鑰管理",
"keyManagementDesc": "建立和管理用於訪問端點的 API 金鑰",
- "requestFlowAria": "Your app sends requests through an API key to OmniRoute",
- "requestFlowYourApp": "Your app",
- "requestFlowApiKey": "API key",
+ "requestFlowAria": "您的應用程式透過 API 金鑰將請求傳送至 OmniRoute",
+ "requestFlowYourApp": "您的應用程式",
+ "requestFlowApiKey": "API 金鑰",
"requestFlowOmniRoute": "OmniRoute",
"totalKeys": "金鑰總數",
"restricted": "受限",
@@ -2299,7 +2303,7 @@
"savePermissions": "儲存許可權",
"endpointRestrictions": "允許的端點",
"allEndpointsAllowed": "此金鑰可以訪問所有 API 端點。",
- "endpointsRestricted": "Restricted to {count} endpoint{count, plural, one {} other {s}}.",
+ "endpointsRestricted": "僅限用於 {count} 個端點。",
"autoResolve": "自動解析",
"autoResolveDesc": "為這個 API 金鑰自動將有歧義的模型名解析到原生提供者。",
"streamDefaultMode": "流預設相容性",
@@ -2377,9 +2381,9 @@
"removeClaudeCodeDefault": "移除 Claude Code 預設",
"allowedCombos": "允許的組合",
"allCombosAllowed": "此金鑰可使用任何組合。",
- "restrictedComboCount": "Restricted to {count, plural, one {# combo} other {# combos}}.",
- "preservedComboRules": "__MISSING__:{count, plural, one {# stored entry is} other {# stored entries are}} not in this combo list (for example routing rules) and will be kept as saved.",
- "preservedComboRuleHint": "__MISSING__:Kept as stored. This entry is not a combo in the list above, so it can only be changed through the API.",
+ "restrictedComboCount": "僅限用於 {count, plural, one {# 個組合} other {# 個組合}}。",
+ "preservedComboRules": "{count, plural, one {# 個已儲存的項目} other {# 個已儲存的項目}}不在此組合清單中(例如路由規則),並將依已儲存的內容保留。",
+ "preservedComboRuleHint": "依已儲存的內容保留。此項目不是上述清單中的組合,因此只能透過 API 變更。",
"apiManagerCustomRateLimits": "自定義費率限制",
"apiManagerCustomRateLimitsDesc": "覆蓋全域性預設限制。留空以使用預設值。",
"apiManagerRateLimitRequestsPlaceholder": "要求",
@@ -2416,14 +2420,14 @@
"bypassProviderQuotaDescription": "允許此金鑰在路由期間忽略上游提供者/帳戶的限制政策。API 金鑰的美元配額仍然適用。",
"quotaPill": "配額",
"quotaModeOnly": "僅配額",
- "exclusiveLease": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeTitle": "__MISSING__:Exclusive Lease",
- "exclusiveLeaseNoticeDesc": "__MISSING__:This API key has exclusive lease permissions for dedicated connection routing.",
- "allConnections": "__MISSING__:All connections",
- "onlySelectedConnections": "__MISSING__:Only selected connections",
- "selectAtLeastOneConnection": "__MISSING__:Select at least one connection or choose All connections.",
- "allConnectionsDesc": "__MISSING__:This key can use any active connection.",
- "restrictedToConnections": "__MISSING__:Restricted to {count, plural, one {# connection} other {# connections}}."
+ "exclusiveLease": "專屬租約",
+ "exclusiveLeaseNoticeTitle": "專屬租約",
+ "exclusiveLeaseNoticeDesc": "此 API 金鑰具有專用連線路由的專屬租約權限。",
+ "allConnections": "所有連線",
+ "onlySelectedConnections": "僅限選取的連線",
+ "selectAtLeastOneConnection": "請至少選取一個連線,或選擇「所有連線」。",
+ "allConnectionsDesc": "此金鑰可使用任何作用中的連線。",
+ "restrictedToConnections": "僅限使用 {count, plural, one {# 個連線} other {# 個連線}}。"
},
"auditLog": {
"title": "稽核日誌",
@@ -2946,7 +2950,7 @@
"interpreter": "Open Interpreter 自主程式代理 CLI",
"omp": "Oh My Pi 終端機程式代理",
"letta": "Letta CLI 代理,具備持久記憶與工具使用能力",
- "prime-agent": "Prime Agent — self-improving RLM coding harness with OpenAI-compatible provider support",
+ "prime-agent": "Prime Agent — 支援 OpenAI 相容提供者、可自我改進的 RLM 程式設計框架",
"warp": "Warp AI 終端機,支援自訂提供者",
"agent-deck": "Agent Deck 多代理協調器",
"5dive": "5dive — 自架的編碼代理機群;一個認證設定檔即可將全部指向 OmniRoute"
@@ -2967,7 +2971,7 @@
"desc": "開啟 “OpenAI API key” 選項"
},
"3": {
- "title": "Base URL"
+ "title": "基礎 URL"
},
"4": {
"title": "API金鑰"
@@ -3035,7 +3039,7 @@
"desc": "前往 Settings → AI Provider"
},
"2": {
- "title": "Base URL",
+ "title": "基礎 URL",
"desc": "貼上你的 OmniRoute 端點 URL"
},
"3": {
@@ -3060,11 +3064,11 @@
"desc": "選擇 \"Add custom provider\" (OpenAI 相容)"
},
"3": {
- "title": "Base URL",
+ "title": "基礎 URL",
"desc": "http://127.0.0.1:20128/v1"
},
"4": {
- "title": "API Key",
+ "title": "API 金鑰",
"desc": "選擇你的 OmniRoute API 金鑰"
},
"5": {
@@ -3165,7 +3169,7 @@
"loadingModels": "正在載入模型...",
"advancedOptions": "進階選項",
"vision": "視覺",
- "copilotCopyConfigForModels": "Copy config ({count, plural, one {# model} other {# models}})",
+ "copilotCopyConfigForModels": "複製設定({count, plural, one {# 個模型} other {# 個模型}})",
"copilotFilterModelsPlaceholder": "過濾器型號...",
"copilotMaxInputTokens": "最大輸入權杖數",
"copilotMaxOutputTokens": "最大輸出代幣",
@@ -3261,10 +3265,10 @@
"randomDesc": "均勻隨機選擇,失敗後回退到剩餘模型",
"leastUsedDesc": "優先選擇請求數最少的模型,隨時間平衡負載",
"costOptimizedDesc": "根據定價優先路由到最便宜的模型",
- "cacheOptimizedDesc": "Routes each reusable prompt prefix consistently to the same provider account",
+ "cacheOptimizedDesc": "將每個可重複使用的提示詞前綴一致地路由至同一個提供者帳戶",
"resetAware": "復位感知RR",
"resetAwareDesc": "平衡剩餘配額與 5 小時和每週重置,然後對相似分數進行迴圈賽",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "配額加權",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
"strictRandom": "嚴格隨機",
"strictRandomDesc": "洗牌池模式:每個模型使用一次後再重新洗牌",
@@ -3318,7 +3322,7 @@
"playgroundStatusError": "錯誤",
"playgroundStatusUnknown": "未知",
"playgroundNetworkError": "模擬期間發生網路錯誤",
- "playgroundTitle": "Combo Playground",
+ "playgroundTitle": "組合測試場",
"playgroundDescription": "模擬請求如何透過您的 combos 進行路由",
"playgroundConfiguration": "設定",
"playgroundNoCombosConfigured": "未設定任何 combos",
@@ -3539,7 +3543,7 @@
"weightTaskFit": "任務適配",
"weightStability": "穩定性",
"weightTierPriority": "層級",
- "weightCacheAffinity": "Cache Hit Affinity",
+ "weightCacheAffinity": "快取命中親和性",
"weightSessionAvailability": "會議可用性",
"reviewIntelligentTitle": "智慧路由設定",
"strategyRecommendations": {
@@ -3660,10 +3664,10 @@
"wizardStep3Desc": "選擇請求在模型之間的分發方式 — 提供 13 種策略",
"wizardStep4Title": "審查並儲存",
"wizardStep4Desc": "審查您的設定並啟用組合",
- "usageGuideInvokeTitle": "How to call this combo",
- "usageGuideInvokeDesc": "Send the combo's exact name as the model, e.g. model: \"my-combo\" (or combo/my-combo).",
- "usageGuideInvokeAutoNote": "auto and auto/* are a separate zero-config router that does not use your combos (unless a combo is literally named auto).",
- "usageGuideInvokeOpenrouterNote": "openrouter/auto is a real paid OpenRouter product (Auto Best Available), not an OmniRoute alias — exclude it via Settings → Routing → Hide paid models.",
+ "usageGuideInvokeTitle": "如何呼叫此組合",
+ "usageGuideInvokeDesc": "將組合的確切名稱作為模型傳送,例如 model: \"my-combo\"(或 combo/my-combo)。",
+ "usageGuideInvokeAutoNote": "auto 和 auto/* 是獨立的零設定路由器,不會使用您的組合(除非某個組合的名稱確實為 auto)。",
+ "usageGuideInvokeOpenrouterNote": "openrouter/auto 是真正的付費 OpenRouter 產品(Auto Best Available),並非 OmniRoute 別名——可透過「設定 → 路由 → 隱藏付費模型」將其排除。",
"emailVisibilityStateOn": "開啟",
"emailVisibilityStateOff": "關閉",
"reorderHandle": "拖拽排序",
@@ -3796,13 +3800,13 @@
"range7d": "7 天",
"range30d": "30 天",
"range90d": "90 天",
- "range180d": "180 Days",
- "range365d": "365 Days",
+ "range180d": "180 天",
+ "range365d": "365 天",
"rangeAll": "全部時間",
"spend30d": "30 天支出",
"activeModels": "活躍 Model",
- "flatRateEstimateNotice": "__MISSING__:Includes token-price estimates for flat-rate subscriptions, not billed cost.",
- "flatRateEstimateForecast": "__MISSING__:Projection includes flat-rate estimates.",
+ "flatRateEstimateNotice": "包含固定費率訂閱的 Token 價格估算,而非實際計費成本。",
+ "flatRateEstimateForecast": "預測包含固定費率估算。",
"selectedWindow": "已選視窗",
"activeProviders": "活躍 Provider",
"overviewTitle": "概覽",
@@ -3878,9 +3882,9 @@
},
"endpoint": {
"title": "API 端點",
- "subtitle": "Use the OpenAI-compatible endpoint with most SDKs and tools.",
- "testEndpoint": "Test endpoint →",
- "advancedProtocols": "Advanced protocols",
+ "subtitle": "搭配大多數 SDK 與工具使用 OpenAI 相容端點。",
+ "testEndpoint": "測試端點 →",
+ "advancedProtocols": "進階通訊協定",
"available": "可用端點",
"cloudProxy": "雲代理",
"disableConfirm": "確定要停用雲代理嗎?",
@@ -4140,9 +4144,9 @@
"tierPublic": "公開",
"hideInternal": "隱藏內部端點",
"showInternal": "顯示內部端點",
- "customSystemPromptTitle": "Custom System Prompt",
- "customSystemPromptDescription": "Inject a custom system prompt into every model request",
- "customSystemPromptPlaceholder": "e.g. Always respond in pirate speak...",
+ "customSystemPromptTitle": "自訂系統提示詞",
+ "customSystemPromptDescription": "在每個模型請求中注入自訂系統提示詞",
+ "customSystemPromptPlaceholder": "例如:一律使用海盜口吻回覆……",
"obsidianEnterToken": "請輸入 Obsidian API Token",
"obsidianConnectFailed": "連線失敗",
"obsidianConnectionFailed": "連線失敗",
@@ -4156,7 +4160,7 @@
"obsidianNotConnected": "未連線",
"obsidianWebdavSync": "WebDAV 同步",
"obsidianDescription": "透過路由 AI 模型搜尋、讀取、寫入和管理 Obsidian 筆記",
- "obsidianRestToken": "Obsidian Local REST API Token",
+ "obsidianRestToken": "Obsidian Local REST API 權杖",
"obsidianApiKeyPlaceholder": "Obsidian API 金鑰",
"obsidianConnect": "連線",
"obsidianBaseUrlOptional": "基礎 URL(選填)",
@@ -4661,13 +4665,13 @@
"retry": "重試",
"allOperational": "所有系統均可執行",
"issuesDetected": "檢測到系統問題",
- "healthVerdictReady": "OmniRoute is ready",
- "healthVerdictActionRequired": "Action required to restore full operation",
- "healthVerdictCoolingDown": "Cooling down after recent changes",
- "healthSubtitle": "System health check",
- "advancedDiagnosticsTitle": "Advanced diagnostics",
- "hide": "Hide",
- "show": "Show",
+ "healthVerdictReady": "OmniRoute 已就緒",
+ "healthVerdictActionRequired": "需要採取動作以恢復完整運作",
+ "healthVerdictCoolingDown": "近期變更後正在冷卻",
+ "healthSubtitle": "系統健康狀況檢查",
+ "advancedDiagnosticsTitle": "進階診斷",
+ "hide": "隱藏",
+ "show": "顯示",
"updatedAt": "更新了 {time}",
"latency": "延遲",
"latencyP50": "p50",
@@ -4732,7 +4736,7 @@
"repairBackupCreated": "在變更前已建立修復備份。",
"sessionActivity": "工作階段活動",
"activeCount": "{count} 個作用中",
- "requestCount": "{count, plural, one {# request} other {# requests}}",
+ "requestCount": "{count, plural, one {# 個請求} other {# 個請求}}",
"idleSeconds": "閒置 {count} 秒",
"ageSeconds": "已存在 {count} 秒",
"quotaMonitors": "配額監控",
@@ -4947,7 +4951,7 @@
"disableAutoScroll": "停用自動捲動",
"enableAutoScroll": "啟用自動捲動",
"autoScroll": "自動捲動",
- "entryCount": "{count, plural, one {# entry} other {# entries}}",
+ "entryCount": "{count, plural, one {# 筆項目} other {# 筆項目}}",
"lastHour": "過去 1 小時",
"updatedAt": "更新於 {time}",
"fileLoggingRequired": "確保應用程式正在將日誌寫入檔案(APP_LOG_TO_FILE=true)",
@@ -4983,9 +4987,9 @@
"multiProvider": "多提供者",
"usageTracking": "使用情況追蹤",
"securityDesc": "設定密碼以保護您的儀表板,或暫時跳過。",
- "securityDescSkipWarning": "⚠️ Without a password, you won't be able to add providers during setup. You can add them later from the dashboard after setting a password.",
+ "securityDescSkipWarning": "⚠️ 若未設定密碼,您將無法在設定期間新增提供者。您可以稍後在設定密碼後,從儀表板新增提供者。",
"providerDesc": "連線你的第一個 AI 提供者。你之後還可以繼續新增。",
- "providerRequiresPassword": "You need to set a password first to add providers. Please go back to the security step and set a password, or add providers later from the dashboard.",
+ "providerRequiresPassword": "您必須先設定密碼才能新增提供者。請返回安全性步驟並設定密碼,或稍後從儀表板新增提供者。",
"apiKeyRequired": "API 金鑰(必填)",
"customUrlOptional": "自定義 URL(可選)",
"testDesc": "讓我們驗證您的提供者連線是否有效。",
@@ -5072,6 +5076,9 @@
"importFromFileImporting": "正在匯入…",
"importFromFileImport": "匯入 {count} 個提供者",
"importFromFileResult": "已匯入 {success} 個提供者({failed} 個失敗)",
+ "importFromFileDownloadTemplate": "下載 CSV 範本",
+ "importFromFileMoreErrors": "另有 {count} 個",
+ "importFromFileSchemaHint": "CSV 欄位依位置排列:provider、name、apiKey、baseUrl(選填)、priority(選填)。provider 欄位必須是現有的受管理提供者 ID,或已註冊且與 OpenAI/Anthropic 相容的節點 ID;此匯入不會建立新的端點節點。",
"adaptaTutorial": {
"title": "如何連線 Adapta Web",
"introPrefix": "Adapta 透過 Clerk 進行驗證。該令牌",
@@ -5129,8 +5136,8 @@
"reorderByAvailabilityError": "依可用性重新排序連線失敗",
"distributeProxies": "分配代理",
"distributing": "分配中...",
- "selectedCount": "{count, plural, one {# selected} other {# selected}}",
- "accountsCount": "{count, plural, one {# account} other {# accounts}}",
+ "selectedCount": "{count, plural, one {已選取 # 個} other {已選取 # 個}}",
+ "accountsCount": "{count, plural, one {# 個帳戶} other {# 個帳戶}}",
"testAllOAuth": "測試所有 OAuth 連線",
"testAllFree": "測試所有免費連線",
"testAllApiKey": "測試所有 API 金鑰連線",
@@ -5174,7 +5181,7 @@
"deprecatedProvider": "此提供者已棄用",
"riskNotice": {
"title": "繼續之前",
- "detailsTitle": "Usage caveats",
+ "detailsTitle": "用量注意事項",
"tooltip": "該提供者有使用注意事項 —— 點選檢視詳情",
"oauth": "此提供者使用你官方產品的會話 / OAuth,這並未被授權用於代理或路由用途。 不建議進行高強度的自主代理使用(OpenCloud 風格、長鏈路多步流程、大批次請求)—— 上游可能因此限制甚至封禁帳號。 使用風險自負。",
"webCookie": "此提供者通過你的網頁會話 Cookie 進行鑑權。上游服務可能隨時讓會話失效,屆時你需要重新登入。不建議用於長時間無人值守的操作。 使用風險自負。",
@@ -5184,9 +5191,9 @@
"cancel": "取消"
},
"warningNotice": {
- "tooltip": "{count} connection(s) flagged — up to {maxFailures} recent failures{lastFailureSuffix}. Click to view connection health.",
- "lastFailureSuffix": " (last failure {time})",
- "ariaLabel": "View connection health details, {count} warning(s)"
+ "tooltip": "已標記 {count} 個連線 — 最近最多發生 {maxFailures} 次失敗{lastFailureSuffix}。按一下以檢視連線健康狀況。",
+ "lastFailureSuffix": "(上次失敗時間:{time})",
+ "ariaLabel": "檢視連線健康狀況詳細資料,{count} 個警告"
},
"disabled": "已停用",
"enableProvider": "啟用提供者",
@@ -5253,10 +5260,10 @@
"iconUrlLabel": "圖示網址",
"iconUrlHint": "選用。顯示為此提供者圖示的圖片網址。",
"iconUrlInvalid": "無效的圖示網址。請使用 http(s):// 或 data:image/*;base64 URL。",
- "dailyQuotaResetTimezoneLabel": "Daily quota reset timezone",
- "dailyQuotaResetTimezoneHint": "Optional IANA timezone used when the upstream omits X-RateLimit-Reset. Leave empty to keep a short cooldown.",
- "dailyQuotaResetHourLabel": "Daily quota reset hour",
- "dailyQuotaResetHourHint": "Local hour 0-23 in the timezone above. Empty means no node-level clock.",
+ "dailyQuotaResetTimezoneLabel": "每日配額重設時區",
+ "dailyQuotaResetTimezoneHint": "當上游未提供 X-RateLimit-Reset 時使用的選填 IANA 時區。留空則維持短暫冷卻。",
+ "dailyQuotaResetHourLabel": "每日配額重設小時",
+ "dailyQuotaResetHourHint": "上述時區中的當地小時(0–23)。留空表示不使用節點層級時鐘。",
"anthropicPrefixPlaceholder": "ac-prod",
"openaiPrefixPlaceholder": "oc-prod",
"anthropicBaseUrlPlaceholder": "https://api.anthropic.com/v1",
@@ -5288,7 +5295,7 @@
"filterError": "錯誤",
"filterBanned": "封禁",
"filterCreditsExhausted": "額度耗盡",
- "accountSearchPlaceholder": "Search accounts…",
+ "accountSearchPlaceholder": "搜尋帳戶…",
"noFilteredConnections": "沒有符合當前篩選條件的連線。",
"failedSetAlias": "設定別名失敗",
"setAliasSuccess": "別名 {alias} 已設定",
@@ -5471,9 +5478,9 @@
"reauthenticateConnection": "重新驗證此連線",
"proxyConfig": "代理設定",
"aliasExistsAlert": "別名“{alias}”已存在。請使用不同的模型或編輯現有別名。",
- "aliasInputPlaceholder": "alias name",
- "clickToSetAlias": "Click to set alias",
- "clickToEditAlias": "Alias: {alias} (click to edit)",
+ "aliasInputPlaceholder": "別名",
+ "clickToSetAlias": "按一下以設定別名",
+ "clickToEditAlias": "別名:{alias}(按一下以編輯)",
"openRouterAnyModelHint": "OpenRouter 支援任意模型。新增模型並建立別名後即可快速訪問。",
"modelIdFromOpenRouter": "模型 ID(來自 OpenRouter)",
"openRouterModelPlaceholder": "anthropic/claude-3-opus",
@@ -5530,18 +5537,18 @@
"interceptFetchHint": "將原生的 web_fetch 工具呼叫重新導向至 OmniRoute 的 /v1/web/fetch。",
"interceptionLoadError": "載入攔截設定失敗:{error}",
"interceptionSaveError": "儲存攔截設定失敗:{error}",
- "ccAliasSectionTitle": "Expose in Claude Code (claude/…)",
- "ccAliasSectionHint": "Advertise this provider's models under claude/<provider>/<model> mirror ids so Claude Code's gateway model discovery can list them. Off by default — enabling this doubles catalog entries for all clients.",
- "ccAliasProviderLevelLabel": "Provider default",
- "ccAliasModelOverridesLabel": "Per-model overrides",
- "ccAliasModelOverrideAriaLabel": "Override for {modelId}",
- "ccAliasStateInherit": "Inherit",
- "ccAliasStateOn": "On",
- "ccAliasStateOff": "Off",
- "ccAliasAddModelPlaceholder": "Model id (e.g. gpt-4o)",
- "ccAliasAddModelButton": "Add override",
- "ccAliasLoadError": "Failed to load discovery-alias settings: {error}",
- "ccAliasSaveError": "Failed to save discovery-alias setting: {error}",
+ "ccAliasSectionTitle": "在 Claude Code 中公開(claude/…)",
+ "ccAliasSectionHint": "以 claude/<provider>/<model> 鏡像 ID 公開此提供者的模型,讓 Claude Code 的閘道模型探索功能可以列出這些模型。預設為關閉;啟用後,所有用戶端的目錄項目數量都會加倍。",
+ "ccAliasProviderLevelLabel": "提供者預設值",
+ "ccAliasModelOverridesLabel": "各模型覆寫設定",
+ "ccAliasModelOverrideAriaLabel": "覆寫 {modelId}",
+ "ccAliasStateInherit": "繼承",
+ "ccAliasStateOn": "開啟",
+ "ccAliasStateOff": "關閉",
+ "ccAliasAddModelPlaceholder": "模型 ID(例如 gpt-4o)",
+ "ccAliasAddModelButton": "新增覆寫設定",
+ "ccAliasLoadError": "無法載入探索別名設定:{error}",
+ "ccAliasSaveError": "無法儲存探索別名設定:{error}",
"compatUpstreamHeadersLabel": "上游額外請求頭",
"compatUpstreamHeadersHint": "與修改廠商連線/API 設定同屬高許可權能力,僅可信管理員應使用。這些頭會在 OmniRoute 按廠商 API Key 自動加好鑑權頭之後再合併。若「名稱」與系統已加的頭相同(例如都叫 Authorization),則以你填的值為準,會整段替換自動那條(含 Bearer 權杖),上游請求裡不再使用面板裡儲存的金鑰來生成 Authorization。填錯可能導致 401,請謹慎。每個請求頭單獨一行;部分閘道器需要額外 Authentication 等可在此加。滑鼠移入或聚焦「值」可暫時看明文。點空白處、關閉本面板或切走焦點即儲存。",
"compatUpstreamHeaderName": "請求頭名稱",
@@ -5750,7 +5757,7 @@
"accountConcurrencyCapHint": "限制此 Account 可同時處理的請求數。",
"accountConcurrencyCapLabel": "Account 併發上限",
"accountIdHint": "用於區分同一 Provider 下的多個 Account。",
- "accountIdLabel": "Account ID",
+ "accountIdLabel": "帳戶 ID",
"accountIdPlaceholder": "Account ID 佔位符",
"addAnotherApiKey": "新增另一個 API 金鑰或貼上多個金鑰",
"addCcCompatible": "新增 CC 相容",
@@ -5900,8 +5907,8 @@
"rateLimitOverridesSection": "速率限制覆蓋",
"rateLimitOverridesMaxConcurrentHint": "此連線的最大併發請求覆蓋。覆蓋帳戶級別的上限。",
"rateLimitOverridesMaxConcurrentLabel": "最大併發(速率限制)",
- "rateLimitOverridesMaxWaitMsHint": "__MISSING__:Maximum time (ms) a request may wait for a rate-limit slot before failing. Overrides the global Resilience setting for this connection only.",
- "rateLimitOverridesMaxWaitMsLabel": "__MISSING__:Max Queue Wait (ms)",
+ "rateLimitOverridesMaxWaitMsHint": "請求在失敗前等待速率限制可用名額的最長時間(毫秒)。僅針對此連線覆寫全域恢復能力設定。",
+ "rateLimitOverridesMaxWaitMsLabel": "佇列最長等待時間(毫秒)",
"rateLimitOverridesMinTimeHint": "請求之間的最小時間(毫秒)。覆蓋預設速率限制器延遲。",
"rateLimitOverridesMinTimeLabel": "最小間隔(毫秒)",
"rateLimitOverridesRpdHint": "此連線的每天最大請求數。覆蓋提供者預設值。",
@@ -5974,7 +5981,7 @@
"zedImportHint": "從 Zed 設定中匯入 Provider。",
"zedImportNetworkError": "Zed 匯入網路錯誤",
"zedImportNone": "沒有可從 Zed 匯入的內容",
- "zedImportSuccess": "Imported {credentials} credential(s) from Zed for {providers} provider(s)",
+ "zedImportSuccess": "已從 Zed 匯入 {providers} 個提供者的 {credentials} 個憑證",
"zedImporting": "正在從Zed導入",
"zedNoCredentials": "在鑰匙圈中找不到 Zed 憑證",
"zedUnsupportedCredentials": "找到 {count} 個鑰匙圈憑證,但均未匹配支援的提供者",
@@ -6171,7 +6178,7 @@
"freeaiapikey": "40+ 種模型的折扣 API 代理,包括 GPT-5、Claude Opus 4.6、Claude Sonnet 4.6、Qwen 3.5。在 https://freeaiapikey.com/dashboard 取得 API 金鑰。基本 URL:https://freeaiapikey.com/v1。",
"freemodel-dev": "在 https://freemodel.dev 取得 $300 美元免費 API 額度 — 無需付款資訊。OpenAI 相容端點。提供 GPT-5.4 和 GPT-5.5 模型。",
"friendliai": "無伺服器推論的免費方案 — 無需信用卡",
- "gemini": "__MISSING__:Free tier through Google AI Studio; per-model quotas are no longer published (check the quota page in AI Studio) — no credit card.",
+ "gemini": "透過 Google AI Studio 使用免費方案;不再公布各模型的配額(請查看 AI Studio 中的配額頁面)— 無需信用卡。",
"gigachat": "使用 API 金鑰連線 GigaChat(Sber)。",
"gitlab": "用於公開 Code Suggestions API 的 GitLab 個人存取權杖。不使用 gitlab.com 時,請設定自託管的基本 URL。",
"gitlawb-gmi": "從 Gitlawb Opengateway 儀表板取得 API 金鑰。",
@@ -6180,7 +6187,7 @@
"glm-cn": "使用 API 金鑰連線 GLM Coding(中國)。",
"glmt": "預設 GLM 設定檔,具有較高的 token 預算、啟用思考功能,以及更長的超時時間。",
"getgoapi": "使用 API 金鑰連線 GoAPI。",
- "groq": "__MISSING__:Free plan: per-model caps (200K tokens/day per chat model; see console.groq.com/docs/rate-limits for RPM/RPD) — no payment method on file.",
+ "groq": "免費方案:各模型有用量上限(每個聊天模型每日 200K 個權杖;RPM/RPD 請參閱 console.groq.com/docs/rate-limits)— 未綁定付款方式。",
"haiper": "在 haiper.ai/haiper-api 取得 API 金鑰",
"heroku": "使用 API 金鑰連線 Heroku AI。",
"hcnsec": "在 api.hcnsec.cn 取得 API 金鑰",
@@ -6248,7 +6255,7 @@
"requesty": "在 https://app.requesty.ai 建立 API 金鑰,然後以 Bearer token 形式貼上。OpenAI 相容端點為 https://router.requesty.ai/v1,附即時 /v1/models 目錄。",
"runwayml": "Runway 影片生成為任務導向。OmniRoute 提交文字轉影片或圖片轉影片作業,輪詢 /v1/tasks/[id],並將完成的影片輸出正規化為類似 OpenAI 的 /v1/videos/generations 回應。",
"sambanova": "註冊即贈 $5 美元免費額度(30 天有效期),無需信用卡",
- "seekai": "Create an API key at https://seekai.cc, then paste it here as a Bearer token. OpenAI-compatible base URL: https://seekai.cc/v1.",
+ "seekai": "請在 https://seekai.cc 建立 API 金鑰,然後將其作為 Bearer 權杖貼到此處。與 OpenAI 相容的基礎 URL:https://seekai.cc/v1。",
"sap": "模型探索使用 AI_API_URL 上的 /v2/lm/scenarios/foundation-models/models。聊天請求使用 deploymentUrl/chat/completions,並需要 AI-Resource-Group。",
"sarvam": "使用API Key連接Sarvam AI。",
"scaleway": "新帳戶贈送 100 萬免費 tokens — 符合歐盟/GDPR 規範(巴黎),Qwen3 235B 和 Llama 70B",
@@ -6305,7 +6312,7 @@
"claude": "使用現有的 OAuth 流程連線 Claude Code。",
"cline": "使用現有的 OAuth 流程連線 Cline。",
"cursor": "使用現有的 OAuth 流程連線 Cursor IDE。",
- "cursor-api": "Connect Cursor with a user API key (crsr_...) from cursor.com/dashboard/api; no IDE session needed.",
+ "cursor-api": "使用 cursor.com/dashboard/api 中的使用者 API 金鑰(crsr_...)連線至 Cursor;不需要 IDE 工作階段。",
"github": "使用現有的 OAuth 流程連線 GitHub Copilot。",
"gitlab-duo": "具有 ai_features + read_user 範圍的 OAuth 應用程式。在此 OmniRoute 實例上設定 GITLAB_DUO_OAUTH_CLIENT_ID 和可選的 GITLAB_DUO_OAUTH_CLIENT_SECRET。",
"kilocode": "使用現有的 OAuth 流程連線 Kilo Code。",
@@ -6338,20 +6345,20 @@
"webSessionGuideStep3": "從提供者自己的域複製所需的憑據。對於 cookie,僅複製 Cookie 標頭值並省略 Cookie:。",
"webSessionGuideStep3Manual": "手動路徑:打開瀏覽器開發者工具 (F12 → 網路),刷新頁面,打開一個經過身份驗證的請求,並從請求標頭中複製 Cookie 標頭值 — 省略 Cookie: 前綴。",
"webSessionGuideStep4": "將其貼上到此處並檢查連線。如果它停止工作,請重新登入並將其替換為新值。",
- "harImportButtonLabel": "Import .har file",
- "harImportButtonBusy": "Importing…",
- "harImportButtonHint": "Export from DevTools Network tab after sending at least one chat message.",
- "harImportStatusValid": "Imported — valid for ~{minutes}m.",
- "harImportStatusExpiringSoon": "Imported — valid for only ~{minutes}m more.",
- "harImportStatusExpired": "Imported, but this token already expired ({minutes}m ago) — export a fresh HAR.",
- "harImportStatusUnknownExpiry": "Imported. Couldn't read its expiry.",
- "harImportErrorNotJson": "That file isn't valid JSON — is it really a .har export?",
- "harImportErrorNoEntries": "This HAR has no network entries recorded.",
- "harImportErrorNoChathubUrl": "No Copilot chat connection found in this HAR. Send at least one chat message in m365.cloud.microsoft before exporting.",
- "harImportErrorUnparsableUrl": "Found the chat connection, but couldn't read its URL.",
- "harImportErrorMissingFields": "Found the chat connection, but the token was missing from it.",
- "harImportErrorReadFailed": "Couldn't read that file.",
- "harImportErrorUnknown": "Couldn't extract a credential from that HAR file.",
+ "harImportButtonLabel": "匯入 .har 檔案",
+ "harImportButtonBusy": "正在匯入…",
+ "harImportButtonHint": "傳送至少一則聊天訊息後,從 DevTools 的 Network 分頁匯出。",
+ "harImportStatusValid": "已匯入 — 約可使用 {minutes} 分鐘。",
+ "harImportStatusExpiringSoon": "已匯入 — 僅剩約 {minutes} 分鐘有效。",
+ "harImportStatusExpired": "已匯入,但此權杖已於 {minutes} 分鐘前過期 — 請匯出新的 HAR。",
+ "harImportStatusUnknownExpiry": "已匯入,但無法讀取其到期時間。",
+ "harImportErrorNotJson": "該檔案不是有效的 JSON — 確定它是 .har 匯出檔嗎?",
+ "harImportErrorNoEntries": "此 HAR 未記錄任何網路項目。",
+ "harImportErrorNoChathubUrl": "在此 HAR 中找不到 Copilot 聊天連線。請先在 m365.cloud.microsoft 傳送至少一則聊天訊息再匯出。",
+ "harImportErrorUnparsableUrl": "已找到聊天連線,但無法讀取其 URL。",
+ "harImportErrorMissingFields": "已找到聊天連線,但其中缺少權杖。",
+ "harImportErrorReadFailed": "無法讀取該檔案。",
+ "harImportErrorUnknown": "無法從該 HAR 檔案擷取憑證。",
"webSessionSecurityHint": "將其視為密碼:它可以訪問您登入的網路帳戶,直到其過期或被撤銷。",
"webNoAuthGuideTitle": "無需任何憑證",
"webNoAuthGuideBody": "{provider} 不需要 API 金鑰或 cookie。儲存連線以使用其免費 Web 端點。",
@@ -6364,11 +6371,11 @@
"poeWebDesc": "通過 poe.com 進行多模型聊天",
"veniceWebLabel": "威尼斯網路",
"veniceWebDesc": "隱私專注的 AI 聊天",
- "v0VercelWebLabel": "v0 Vercel Web",
+ "v0VercelWebLabel": "v0 Vercel 網頁版",
"v0VercelWebDesc": "通過 v0.dev 的 AI 程式碼生成",
- "kimiWebLabel": "Kimi Web",
+ "kimiWebLabel": "Kimi 網頁版",
"kimiWebDesc": "通過 www.kimi.com 訪問 Moonshot AI 聊天(國際版,Connect-RPC API)",
- "doubaoWebLabel": "Dola Web",
+ "doubaoWebLabel": "Dola 網頁版",
"doubaoWebDesc": "通過 dola.com 訪問字節跳動 AI 聊天",
"overrideBaseUrlAdvanced": "進階:覆寫基礎 URL",
"overrideBaseUrlHint": "進階:將此內建提供者指向自訂端點。留空以使用預設值。",
@@ -6425,14 +6432,19 @@
"commandCodeAuthExpired": "命令碼授權已過期",
"commandCodeConnected": "命令碼已連接",
"commandCodeConnectionAdded": "命令碼連接已添加",
+ "clearConnectionCooldown": "清除冷卻",
+ "clearConnectionCooldownInProgress": "正在清除…",
+ "clearConnectionCooldownTitle": "立即清除冷卻——當上游配額已重新整理時使用",
"commandCodeLinkExpired": "命令碼連結已過期",
"commandCodeOpeningStudio": "正在開啟 Command Code Studio…",
"commandCodePopupBlocked": "彈出窗口被阻止。請允許彈出窗口並再次嘗試 Command Code Connect。",
"commandCodeStartFailed": "無法啟動 Command Code auth",
"connectionDeleted": "連線已刪除",
"connectionFallback": "連接",
+ "connectionCooldownCleared": "冷卻已清除——連線已重新加入路由",
"coolingConnectionsDescription": "這些連線在上次請求後正在冷卻。計時器到期前 OmniRoute 會跳過它們 — 無需手動停用。",
"coolingConnectionsTitle": "目前冷卻中 ({count})",
+ "failedClearConnectionCooldown": "清除冷卻失敗",
"failedDeleteAlias": "無法刪除別名",
"failedDeleteConnection": "無法刪除連接",
"failedDistributeProxies": "無法分配代理。",
@@ -6466,12 +6478,7 @@
"savedModelEndpointSettings": "已儲存的模型端點設定",
"searchByModelAria": "按型號搜尋",
"selectSupportedEndpoint": "請選擇至少一個受支持的端點",
- "antigravityClientProfileHarness": "Harness / CLI",
- "clearConnectionCooldown": "Clear cooldown",
- "clearConnectionCooldownInProgress": "Clearing…",
- "clearConnectionCooldownTitle": "Clear the cooldown now — use when the quota has already refreshed upstream",
- "connectionCooldownCleared": "Cooldown cleared — connection rejoined routing",
- "failedClearConnectionCooldown": "Failed to clear cooldown"
+ "antigravityClientProfileHarness": "Harness / CLI"
},
"settings": {
"title": "設定",
@@ -6690,12 +6697,12 @@
"autoDisableDescription": "若提供者連線返回特定的永久封禁訊號(如 HTTP 403\"請驗證您的帳戶\"),則將其永久標記為停用。這會將其從組合輪換中移除。",
"autoDisableThreshold": "封禁閾值",
"autoDisableThresholdDesc": "觸發永久停用所需的連續封禁訊號次數。",
- "autoDisableBannedScope": "Apply auto-disable to",
- "autoDisableBannedScopeDesc": "Login seats (paid subscriptions and free accounts) can be locked by the upstream if OmniRoute keeps retrying after a ban. Paid prepaid API keys do not have that risk — leave them in the pool so fill-first can use the next key.",
- "autoDisableBannedScopeAll": "All connections",
- "autoDisableBannedScopeAllDesc": "Deactivate every connection that returns a permanent ban signal, including prepaid API keys.",
- "autoDisableBannedScopeSubscription": "Login / subscription accounts only",
- "autoDisableBannedScopeSubscriptionDesc": "Deactivate OAuth, cookie, session, and web-login seats (paid or free). Prepaid API keys stay active so routing can fail over.",
+ "autoDisableBannedScope": "套用自動停用至",
+ "autoDisableBannedScopeDesc": "如果 OmniRoute 在遭封鎖後持續重試,登入席位(付費訂閱和免費帳戶)可能會被上游鎖定。付費預付 API 金鑰沒有此風險——請將它們保留在集區中,讓優先填滿策略可以使用下一把金鑰。",
+ "autoDisableBannedScopeAll": "所有連線",
+ "autoDisableBannedScopeAllDesc": "停用所有傳回永久封鎖訊號的連線,包括預付 API 金鑰。",
+ "autoDisableBannedScopeSubscription": "僅限登入/訂閱帳戶",
+ "autoDisableBannedScopeSubscriptionDesc": "停用 OAuth、Cookie、工作階段和網頁登入席位(付費或免費)。預付 API 金鑰會保持啟用,以便路由可進行容錯移轉。",
"customBannedSignals": "禁止關鍵字",
"customBannedSignalsDesc": "觸發永久帳戶封鎖偵測的額外關鍵字。內建關鍵字始終適用。",
"customBannedSignalsPlaceholder": "例如:api key revoked",
@@ -6751,18 +6758,18 @@
"sidebarVisibility": "隱藏側邊欄專案",
"sidebarVisibilityDesc": "可以隱藏任意側邊欄導航項,以減少視覺負擔,但不會停用任何功能",
"sidebarVisibilityHint": "當某個側邊欄分組中的所有專案都被隱藏時,該分組會自動隱藏",
- "presetAll": "All",
- "presetAllDesc": "Show everything",
- "presetEssentials": "Essentials",
- "presetEssentialsDesc": "Beginner path - Advanced tools stay searchable",
- "presetMinimal": "Minimal",
- "presetMinimalDesc": "Core pages only",
- "presetDeveloper": "Developer",
- "presetDeveloperDesc": "Dev & proxy tools",
- "presetAdmin": "Admin",
- "presetAdminDesc": "Monitoring & audit",
- "settingsSidebarTitle": "Sidebar Customization",
- "settingsSidebarDesc": "Choose which sidebar items to show. Essentials keeps Advanced tools searchable.",
+ "presetAll": "全部",
+ "presetAllDesc": "顯示所有項目",
+ "presetEssentials": "基本項目",
+ "presetEssentialsDesc": "新手模式——進階工具仍可透過搜尋找到",
+ "presetMinimal": "最精簡",
+ "presetMinimalDesc": "僅核心頁面",
+ "presetDeveloper": "開發人員",
+ "presetDeveloperDesc": "開發與 Proxy 工具",
+ "presetAdmin": "管理員",
+ "presetAdminDesc": "監控與稽核",
+ "settingsSidebarTitle": "自訂側邊欄",
+ "settingsSidebarDesc": "選擇要顯示的側邊欄項目。「基本項目」模式仍可透過搜尋找到進階工具。",
"hideHealthLogs": "隱藏健康檢查日誌",
"hideHealthLogsDesc": "開啟後,將抑制伺服器控制台中的 [HealthCheck] 訊息",
"themeAccent": "主題顏色",
@@ -7063,7 +7070,7 @@
"costOptDesc": "優先選擇成本最低的可用帳戶",
"resetAware": "復位感知RR",
"resetAwareDesc": "優先選擇剩餘配額正常且重置時間較近的帳戶",
- "quotaWeighted": "Quota-Weighted",
+ "quotaWeighted": "配額加權",
"quotaWeightedDesc": "Skip exhausted accounts, then pick among the rest in proportion to reset-aware leftover.",
"strictRandom": "嚴格隨機",
"strictRandomDesc": "洗牌池模式:每個帳戶使用一次後再重新洗牌",
@@ -7085,14 +7092,14 @@
"providerAccountRoutingDesc": "覆寫此提供者的全域帳號策略(9router 對等)。",
"providerRoutingStrategy": "帳號策略",
"providerRoutingInheritGlobal": "繼承全域預設",
- "quotaPreflightTitle": "Quota Preflight Cutoff",
- "quotaPreflightSubtitle": "Skip accounts that are out of quota before sending the request upstream",
- "quotaPreflightEnable": "Enable quota preflight",
- "quotaPreflightEnableDesc": "Before each request, check the account's remaining quota (5h / weekly / monthly windows). Accounts at or below the cutoff are skipped without an upstream call. Per-window cutoffs set on the Provider Quota page always win over the default here.",
- "quotaPreflightCutoff": "Global cutoff (min remaining %)",
- "quotaPreflightCutoffDesc": "Stop using an account when its remaining quota drops to this percent or below, for every window without its own cutoff. Matches the remaining-% bars on the Provider Quota page.",
- "quotaPreflightWindowsHint": "Windows with their own per-window or per-provider cutoff (set in the Cutoff modal on the Provider Quota page) are unaffected by this default.",
- "quotaPreflightLoadFailed": "Unable to load quota preflight settings.",
+ "quotaPreflightTitle": "配額預檢截止值",
+ "quotaPreflightSubtitle": "在將請求傳送至上游前,略過配額已用盡的帳戶",
+ "quotaPreflightEnable": "啟用配額預檢",
+ "quotaPreflightEnableDesc": "在每次請求前,檢查帳戶的剩餘配額(5 小時/每週/每月時段)。達到或低於截止值的帳戶將被略過,不會呼叫上游。在「提供者配額」頁面設定的各時段截止值,一律優先於此處的預設值。",
+ "quotaPreflightCutoff": "全域截止值(最低剩餘 %)",
+ "quotaPreflightCutoffDesc": "對於沒有個別截止值的所有時段,當帳戶的剩餘配額降至此百分比或更低時,停止使用該帳戶。此數值與「提供者配額」頁面上的剩餘百分比長條圖一致。",
+ "quotaPreflightWindowsHint": "具有各時段或各提供者專屬截止值(在「提供者配額」頁面的「截止值」對話方塊中設定)的時段不受此預設值影響。",
+ "quotaPreflightLoadFailed": "無法載入配額預檢設定。",
"modelAliases": "模型別名",
"modelAliasesTitle": "模型別名",
"modelAliasesDesc": "使用精確匹配或萬用字元模式重對映模型名稱。",
@@ -7325,7 +7332,7 @@
"configured": "已設定",
"none": "無",
"modelOverrideValuePlaceholder": "數值",
- "modelOverrideReasoningEffortsPlaceholder": "English comma-separated, e.g. low, medium, high",
+ "modelOverrideReasoningEffortsPlaceholder": "以英文逗號分隔,例如 low, medium, high",
"addKeyValue": "新增鍵值",
"noModelOverrides": "此模型未設定任何覆寫。",
"modelOverrideLoadFailed": "載入模型覆寫設定失敗",
@@ -7411,8 +7418,8 @@
"resetting": "正在重設⋯",
"contextOpt": "上下文最佳化",
"contextOptDesc": "根據上下文視窗需求和對話長度進行路由",
- "cacheOpt": "Cache Optimized",
- "cacheOptDesc": "Keeps the same reusable prompt prefix on the same provider account",
+ "cacheOpt": "快取最佳化",
+ "cacheOptDesc": "讓相同的可重複使用提示詞前綴固定使用同一個提供者帳戶",
"priorityDesc": "順序回退——先嚐試提供者 1,再嘗試提供者 2,依此類推",
"weightedDesc": "按百分比權重在各提供者之間分配流量",
"modelRoutingTitle": "模型路由規則",
@@ -7471,7 +7478,7 @@
"compressionGuidanceHide": "隱藏詳細資訊",
"compressionGuidanceSafeDefault": "安全預設",
"compressionGuidanceCacheImpact": "快取影響",
- "tokenSaverTitle": "Token Saver",
+ "tokenSaverTitle": "權杖節省器",
"tokenSaverSubtitle": "讓每次請求消耗更少 token。",
"tokenSaverToolOutput": "工具輸出",
"tokenSaverToolOutputDesc": "在傳送給提供者前清理 git、grep、ls、tree 和日誌輸出。",
@@ -7526,7 +7533,7 @@
"compressionExclusionsPlaceholder": "例如claude-opus*",
"compressionExclusionsSave": "保存排除規則",
"compressionExclusionsSaved": "排除規則已保存。",
- "compressionExclusionsCount": "{count, plural, one {# exclusion} other {# exclusions}} configured",
+ "compressionExclusionsCount": "已設定 {count, plural, one {# 個排除項目} other {# 個排除項目}}",
"compressionExclusionsEmpty": "尚未設定排除規則—所有模型和端點均可壓縮。",
"compressionCavemanConfig": "Caveman 引擎設定",
"compressionCavemanConfigDesc": "微調基於規則的壓縮引擎",
@@ -7545,8 +7552,8 @@
"minutes": "分鐘",
"compressionModeRtk": "RTK",
"compressionModeRtkDesc": "感知命令的工具輸出過濾",
- "compressionModeCodexResponses": "Responses tool output",
- "compressionModeCodexResponsesDesc": "Conservative compression for eligible shell, patch, search, build, and JSON outputs",
+ "compressionModeCodexResponses": "Responses 工具輸出",
+ "compressionModeCodexResponsesDesc": "針對符合條件的 shell、修補、搜尋、建置及 JSON 輸出進行保守壓縮",
"compressionModeStacked": "堆疊",
"compressionModeStackedDesc": "先進行 RTK 工具輸出過濾,再進行 Caveman 訊息壓縮",
"qdrantTitle": "Qdrant(向量記憶體)",
@@ -7601,8 +7608,8 @@
"resilienceRequestsPerMinute": "每分鐘請求數",
"resilienceMinTimeBetweenRequests": "請求之間的最小時間",
"resilienceConcurrentRequests": "併發請求數",
- "resilienceConnectionScopeConcurrentRequests": "__MISSING__:Concurrent requests per connection/quota scope",
- "resilienceGlobalConcurrentRequests": "__MISSING__:Global concurrent upstream requests (0 = disabled)",
+ "resilienceConnectionScopeConcurrentRequests": "每個連線/配額範圍的並行請求數",
+ "resilienceGlobalConcurrentRequests": "全域並行上游請求數(0 = 停用)",
"resilienceMaxQueueWaitTime": "最大佇列等待時間",
"resilienceBaseCooldown": "基礎冷卻時間",
"resilienceUseUpstreamRetryHints": "使用上游重試提示",
@@ -7699,7 +7706,7 @@
"resilienceMaxBackoffSteps": "最大退避步數",
"resilienceProviderBreakerTitle": "按提供者的斷路器",
"resilienceFailureThreshold": "失敗閾值",
- "resilienceDegradationThreshold": "Degradation threshold",
+ "resilienceDegradationThreshold": "降級閾值",
"resilienceResetTimeout": "重置超時",
"resilienceFailureThresholdLabel": "失敗閾值",
"resilienceResetTimeoutLabel": "重置超時",
@@ -7741,6 +7748,10 @@
"legacyJsonImportSuccess": "舊版 JSON 匯入成功!",
"jsonImportFailed": "匯入 JSON 失敗",
"jsonImportError": "JSON 匯入時發生錯誤",
+ "jsonImportAuthRequired": "匯入舊版 JSON 設定需要驗證身分。請先登入或完成設定。",
+ "databaseSettingsAuthRequiredTitle": "需要驗證身分",
+ "databaseSettingsAuthRequiredBody": "資料庫設定和 JSON 匯入功能僅供已驗證身分的管理員使用。請登入或完成設定,以檢視及編輯這些內容。",
+ "databaseSettingsAuthRequiredCta": "登入",
"storagePurgeData": "清除資料",
"storagePurgeDataDesc": "立即刪除所有記錄,不套用保留檢查。請謹慎使用。",
"storageRetentionCleanup": "保留設定",
@@ -7834,7 +7845,7 @@
"compressionAdaptivePolicyAbsolute": "絕對 token 預算",
"compressionOutputStylesDescription": "注入回應塑形指令,無需改寫提供者輸出。可自由組合。",
"mcpAccessibilityDescription": "限定 MCP 工具輸出範圍(獨立儲存區)。",
- "compressionStylesTileSummary": "{tokens, number} tokens saved · {runs, plural, one {# run styled} other {# runs styled}}",
+ "compressionStylesTileSummary": "已節省 {tokens, number} 個權杖 · {runs, plural, one {# 次執行已套用樣式} other {# 次執行已套用樣式}}",
"compressionStylesTileEmpty": "尚無已套用風格的執行。",
"compressionLevel": {
"minimal": "最小",
@@ -7862,8 +7873,8 @@
"description": "命令輸出過濾。"
},
"codex-responses": {
- "label": "Responses Tool Output",
- "description": "Conservative compression for supported Responses tool outputs."
+ "label": "Responses 工具輸出",
+ "description": "針對支援的 Responses 工具輸出進行保守壓縮。"
},
"headroom": {
"label": "精簡",
@@ -7904,8 +7915,8 @@
"description": "YAGNI 階梯:最小可行變更,不建立未要求的抽象層。"
},
"ponytail": {
- "label": "Ponytail (lazy senior dev)",
- "description": "Lazy senior-dev discipline: climb the YAGNI ladder, fix root cause, smallest working diff."
+ "label": "馬尾(懶惰的資深開發者)",
+ "description": "懶惰資深開發者的紀律:逐步攀登 YAGNI 階梯、修正根本原因,並採用可運作的最小差異。"
},
"i-have-adhd": {
"label": "我有 ADHD(行動優先)",
@@ -7927,6 +7938,14 @@
"cliproxyapiFallback": "CLIProxyAPI 後備",
"cliproxyapiEnableFallback": "啟用 CLIProxyAPI 回退",
"cliproxyapiUrl": "CLIProxyAPI URL",
+ "headroomProxyTitle": "Headroom Proxy",
+ "headroomProxyDesc": "選用 Headroom 權杖節省 Proxy 的 URL。留空時使用 HEADROOM_URL 或 http://localhost:8787。",
+ "headroomProxyUrl": "Headroom URL",
+ "headroomProxyUrlHint": "可從此頁面啟動迴送 URL。外部 URL 則只會進行探測。",
+ "headroomProxySave": "儲存",
+ "headroomProxyStart": "啟動",
+ "headroomProxyStop": "停止",
+ "headroomProxyExternalHint": "此 URL 並非迴送位址,因此 OmniRoute 不會啟動本機 CLI。",
"cliproxyapiStatus": "CLIProxyAPI 狀態",
"cliproxyapiNotDetected": "未檢測到",
"cliproxyapiImportAuthTitle": "從 CLIProxyAPI 匯入帳戶",
@@ -7934,11 +7953,11 @@
"cliproxyapiImportAuthButton": "匯入帳戶",
"payloadRulesTitle": "負載規則",
"payloadRulesDesc": "按模型與協議設定請求 payload 的變更。修改會持久化到設定中,並在儲存後立即熱載入到執行時。",
- "payloadRuleDefaultTitle": "default",
+ "payloadRuleDefaultTitle": "預設",
"payloadRuleDefaultDesc": "僅在外發 payload 缺少目標路徑時應用引數。",
- "payloadRuleOverrideTitle": "override",
+ "payloadRuleOverrideTitle": "覆寫",
"payloadRuleOverrideDesc": "強制將值寫入 payload,替換該路徑上已存在的任何內容。",
- "payloadRuleFilterTitle": "filter",
+ "payloadRuleFilterTitle": "篩選",
"payloadRuleFilterDesc": "在向上游發起請求前,從 payload 中移除被遮蔽的引數。",
"payloadRuleDefaultRawTitle": "defaultRaw",
"payloadRuleDefaultRawDesc": "與 default 類似,但會先嚐試將字串值解析為 JSON。儲存時也接受舊的輸入別名 default-raw。",
@@ -7985,11 +8004,11 @@
"codexFastTierDesc": "為 OpenAI Codex 請求全域性注入 service_tier=priority。",
"codexFastTierHint": "啟用後,OmniRoute 會將 service_tier=priority 新增到尚未指定層的連線的出站 Codex 請求中。優先順序需要 OpenAI Enterprise API 金鑰或 ChatGPT-auth Codex 路徑;其他金鑰類型將從 OpenAI 收到與層相關的錯誤。 Codex 提供程式頁面上的每個連線設定優先。",
"codexFastTierSaveError": "無法更新 Codex Fast Tier 設定",
- "codexAutoPingTitle": "Codex Quota Auto-Ping",
- "codexAutoPingDesc": "Opt-in per connection: sends a tiny request right after a Codex session window resets so it isn't cold when you need it.",
- "codexAutoPingWarning": "Consumes a small amount of real Codex quota on every ping. Off by default — enable only for connections you actively rely on.",
- "codexAutoPingSaveError": "Failed to update Codex Auto-Ping setting",
- "codexAutoPingToggleAria": "Toggle Codex quota auto-ping for {connection}",
+ "codexAutoPingTitle": "Codex 配額自動 Ping",
+ "codexAutoPingDesc": "可為每個連線選擇啟用:在 Codex 工作階段視窗重設後立即傳送一個極小的請求,避免在您需要使用時處於冷啟動狀態。",
+ "codexAutoPingWarning": "每次 Ping 都會消耗少量實際 Codex 配額。預設關閉——請只為您經常仰賴的連線啟用。",
+ "codexAutoPingSaveError": "無法更新 Codex 自動 Ping 設定",
+ "codexAutoPingToggleAria": "切換 {connection} 的 Codex 配額自動 Ping",
"codexFastTierTierLabel": "服務層級",
"codexFastTierTierPriority": "優先順序",
"codexFastTierTierFlex": "彈性",
@@ -8208,8 +8227,8 @@
"credentialRedactionDesc": "從傳送給提供者的上下文和回應中編輯 API 金鑰、令牌和機密。",
"enableCredentialRedaction": "啟用憑證遮蔽",
"enableCredentialRedactionDesc": "從訊息、工具呼叫和回應中清除 API 金鑰、令牌、私鑰和 JWT。",
- "pricingAutoSyncDisabled": "Automatic Sync Disabled",
- "pricingAutoSyncEnabled": "Automatic Sync Enabled",
+ "pricingAutoSyncDisabled": "自動同步已停用",
+ "pricingAutoSyncEnabled": "自動同步已啟用",
"modalityBridgeIntro": "在多模態內容送達純文字模型之前將其轉換為文字。視覺、音訊和影片橋接均可使用及設定。",
"modalityBridgeVisionTab": "視覺",
"modalityBridgeAudioTab": "音訊",
@@ -8360,15 +8379,7 @@
"cliproxyapiHealth": "健康",
"cliproxyapiPort": "埠",
"qdrantHost": "主機",
- "qdrantCollection": "集合",
- "headroomProxyTitle": "__MISSING__:Headroom proxy",
- "headroomProxyDesc": "__MISSING__:URL of the optional Headroom token-saver proxy. Empty uses HEADROOM_URL or http://localhost:8787.",
- "headroomProxyUrl": "__MISSING__:Headroom URL",
- "headroomProxyUrlHint": "__MISSING__:Loopback URLs can be started from this page. External URLs are probed only.",
- "headroomProxySave": "__MISSING__:Save",
- "headroomProxyStart": "__MISSING__:Start",
- "headroomProxyStop": "__MISSING__:Stop",
- "headroomProxyExternalHint": "__MISSING__:This URL is not loopback, so OmniRoute will not spawn the local CLI."
+ "qdrantCollection": "集合"
},
"contextRtk": {
"title": "RTK 引擎",
@@ -8495,7 +8506,7 @@
"description": "同質 JSON 陣列的無損表格壓縮,具備明確的行數標記。"
},
"session-dedup": {
- "name": "Session Dedup",
+ "name": "工作階段去重",
"description": "跨輪次的重複區塊去重,具備可復原的內容標記。"
},
"ccr": {
@@ -8657,6 +8668,8 @@
"contextEditingNote": "目前僅適用於 Claude(Anthropic)。這是一種委託模式:提供者會在伺服器端清除舊的工具使用區塊 — 我們不會重寫訊息。不影響其他提供者。",
"namedCombos": "命名組合",
"namedCombosDescription": "儲存不同的管道並將其指派給特定的路由組合。",
+ "activeProfileMasterSwitchOffWarning": "在開啟主「提示詞壓縮」開關之前,以下啟用中的設定檔不會執行。",
+ "activeProfileMasterSwitchOffCta": "前往「設定」開啟",
"comboNamePlaceholder": "組合名稱",
"descriptionPlaceholder": "說明",
"nameRequired": "請在儲存前輸入組合名稱。",
@@ -8670,9 +8683,7 @@
"languagePacksList": "語言包:{packs}",
"dragToReorder": "拖曳以重新排序步驟",
"engine": "引擎",
- "intensity": "強度",
- "activeProfileMasterSwitchOffWarning": "__MISSING__:The active profile below will not run until the master \"Prompt Compression\" switch is turned on.",
- "activeProfileMasterSwitchOffCta": "__MISSING__:Turn it on in Settings"
+ "intensity": "強度"
},
"compressionStudio": {
"noRun": "無可用的壓縮執行記錄。",
@@ -8701,7 +8712,7 @@
"run": "執行",
"laneRejected": "已拒絕:{reason}",
"error": "錯誤",
- "combinedError": "__MISSING__:Combined pipeline preview failed: {reason}",
+ "combinedError": "合併管線預覽失敗:{reason}",
"combinedFlow": "組合流程",
"eachLayer": "各圖層分開",
"diff": "差異",
@@ -8776,27 +8787,27 @@
},
"enableTitle": "啟用引擎",
"enableDescription": "在堆疊中最後執行(RTK/Caveman 清理文字後,OmniGlyph 將剩餘部分轉換為圖片),也可透過 omniglyph 模式獨立執行。此為預覽功能,預設為關閉,待端到端驗證完成後才會預設開啟。",
- "profileTitle": "Compression profile",
- "profileDescription": "The profile is a ceiling, not a floor: a stricter profile cannot be reopened by a per-step override. Measured on this codebase: with coding-safe or balanced, a session that has not accumulated history yet compresses nothing, because both raise the minimum-characters threshold and keep the system prompt, tool schemas and tool results native.",
+ "profileTitle": "壓縮設定檔",
+ "profileDescription": "設定檔是上限,而非下限:個別步驟的覆寫無法重新放寬更嚴格的設定檔。根據此程式碼庫的測量結果:使用程式設計安全或平衡模式時,尚未累積歷史記錄的工作階段不會壓縮任何內容,因為兩者都會提高最低字元數門檻,並讓系統提示詞、工具結構描述及工具結果維持原生格式。",
"profiles": {
"aggressive": {
- "label": "Aggressive (default)",
- "description": "The policy the published receipts measured. Images the system prompt, tool documentation and dense history."
+ "label": "積極(預設)",
+ "description": "已發布收據所測量的原則。將系統提示詞、工具文件及密集歷史記錄映像化。"
},
"balanced": {
- "label": "Balanced",
- "description": "Keeps live state native and protects the last 8 turns; only collapses older closed history."
+ "label": "平衡",
+ "description": "讓即時狀態維持原生格式,並保護最近 8 輪對話;僅摺疊較舊且已結束的歷史記錄。"
},
"codingSafe": {
- "label": "Coding-safe",
- "description": "Keeps authority, tool schemas and live tool output native, protecting the last 12 turns. Compresses nothing until the session accumulates history."
+ "label": "程式設計安全",
+ "description": "讓權限指令、工具結構描述及即時工具輸出維持原生格式,並保護最近 12 輪對話。在工作階段累積歷史記錄之前,不會壓縮任何內容。"
},
"passthrough": {
- "label": "Passthrough",
- "description": "Routes without transforming. The engine is skipped and the request is forwarded untouched."
+ "label": "直接傳遞",
+ "description": "進行路由但不轉換。系統會略過引擎,並原封不動地轉送請求。"
}
},
- "profileAria": "Select the OmniGlyph compression profile",
+ "profileAria": "選取 OmniGlyph 壓縮設定檔",
"saved": "已儲存。",
"saveFailed": "無法儲存。",
"enableAria": "啟用 OmniGlyph 引擎",
@@ -8854,7 +8865,7 @@
"networkInstallFailed": "網路錯誤 — 無法連線至安裝端點",
"availableModels": "可用模型",
"modelsLoading": "載入中…",
- "modelsDiscovered": "{count, plural, one {# model discovered} other {# models discovered}}",
+ "modelsDiscovered": "{count, plural, one {探索到 # 個模型} other {探索到 # 個模型}}",
"modelsLoadFailed": "載入模型失敗",
"refreshing": "重新整理中…",
"refreshNow": "立即重新整理",
@@ -8869,7 +8880,7 @@
"providerExposureHint": "啟用後,發現的模型會出現在 OmniRoute 各處的提供者選擇器中。",
"providerExposureUpdateFailed": "更新失敗(HTTP {status})",
"providerExposureNetworkFailed": "網路錯誤 — 無法更新提供者曝光設定",
- "webUi": "9Router Web UI",
+ "webUi": "9Router 網頁介面",
"openNewTab": "在新分頁中開啟",
"filterLogs": "篩選日誌…",
"resume": "繼續",
@@ -9246,7 +9257,7 @@
"compressionPreviewButton": "預覽壓縮",
"compressionPreviewing": "正在預覽…",
"compressionPreviewFailed": "壓縮預覽失敗",
- "tokens": "tokens",
+ "tokens": "權杖",
"pauseAutoRefresh": "暫停自動重新整理",
"resumeAutoRefresh": "繼續自動重新整理",
"live": "即時",
@@ -9632,18 +9643,18 @@
"budgetKpiActiveKeys": "活動鍵",
"budgetPageTitle": "預算",
"budgetPageDescription": "為每個 API 金鑰設定每日、每週和每月的支出限制。",
- "budgetTemplateStorageHint": "{count, plural, one {# template} other {# templates}} · edit via localStorage:",
+ "budgetTemplateStorageHint": "{count, plural, one {# 個範本} other {# 個範本}} · 透過 localStorage 編輯:",
"budgetAboveLimitShort": "超出限制 ⚠",
"budgetOnTrackShort": "正常範圍",
"budgetAtOrAboveWarning": "≥ 警告閾值",
"budgetTemplates": "模板",
"budgetSelectKeysFirst": "請先選取金鑰再套用",
- "budgetApplyToSelected": "Apply to {count, plural, one {# selected key} other {# selected keys}}",
- "budgetSelectedTemplateHint": "{count, plural, one {# selected} other {# selected}} · click a template to apply",
+ "budgetApplyToSelected": "套用至 {count, plural, one {# 個已選取的金鑰} other {# 個已選取的金鑰}}",
+ "budgetSelectedTemplateHint": "{count, plural, one {已選取 # 個} other {已選取 # 個}} · 按一下範本以套用",
"budgetTemplateMonthlyAmount": "${amount}/月",
"budgetTemplateDailyAmount": "${amount}/天",
"budgetNoKeysSelected": "未選取任何金鑰",
- "budgetTemplateApplied": "Applied \"{template}\" to {count, plural, one {# key} other {# keys}}",
+ "budgetTemplateApplied": "已將「{template}」套用至 {count, plural, one {# 個金鑰} other {# 個金鑰}}",
"budgetTemplateApplyFailed": "套用模板失敗",
"budgetTemplateNames": {
"tpl-prod": "生產",
@@ -10781,23 +10792,23 @@
},
"cursorAuthModal": {
"title": "連線 Cursor IDE",
- "tabLogin": "Login with Cursor",
- "tabImport": "Import token",
- "loginDescription": "Opens Cursor's browser login. Works in Docker — approve in your host browser, then return here.",
- "loginWithCursor": "Login with Cursor",
- "startingLogin": "Starting…",
- "waitingApproval": "Waiting for Cursor login approval…",
- "openUrlHint": "If the browser did not open:",
- "openLoginLink": "Open login page",
- "cancelLogin": "Cancel login",
+ "tabLogin": "使用 Cursor 登入",
+ "tabImport": "匯入權杖",
+ "loginDescription": "開啟 Cursor 的瀏覽器登入頁面。可在 Docker 中使用——請在主機瀏覽器中核准,然後返回此處。",
+ "loginWithCursor": "使用 Cursor 登入",
+ "startingLogin": "正在啟動…",
+ "waitingApproval": "正在等待核准 Cursor 登入…",
+ "openUrlHint": "如果瀏覽器未開啟:",
+ "openLoginLink": "開啟登入頁面",
+ "cancelLogin": "取消登入",
"autoDetecting": "自動檢測權杖中...",
"readingFromCursor": "正在從 Cursor IDE 或 cursor-agent 讀取",
"tokensAutoDetected": "已成功從 Cursor IDE 自動檢測到權杖!",
"cursorNotDetected": "未檢測到 Cursor IDE。請手動貼上您的權杖。",
- "dockerImportHint": "Running in Docker? Prefer Login with Cursor. IDE auto-import and cursor-agent are usually unavailable inside the container. See docs/providers/CURSOR-DOCKER.md.",
+ "dockerImportHint": "在 Docker 中執行?建議使用「使用 Cursor 登入」。IDE 自動匯入和 cursor-agent 通常無法在容器內使用。請參閱 docs/providers/CURSOR-DOCKER.md。",
"accessToken": "訪問權杖",
- "refreshToken": "Refresh Token",
- "refreshTokenPlaceholder": "Optional — enables automatic token refresh",
+ "refreshToken": "重新整理權杖",
+ "refreshTokenPlaceholder": "選填——啟用權杖自動重新整理",
"required": "*",
"accessTokenPlaceholder": "訪問權杖將自動填充...",
"machineId": "機器 ID",
@@ -10810,9 +10821,9 @@
"errorAutoDetectFailed": "自動檢測權杖失敗",
"errorEnterToken": "請輸入訪問權杖",
"errorImportFailed": "匯入失敗",
- "errorLoginStart": "Failed to start Cursor login",
- "errorLoginPoll": "Cursor login failed",
- "errorLoginTimeout": "Cursor login timed out — try again"
+ "errorLoginStart": "無法啟動 Cursor 登入",
+ "errorLoginPoll": "Cursor 登入失敗",
+ "errorLoginTimeout": "Cursor 登入逾時——請再試一次"
},
"pricingModal": {
"title": "定價設定",
@@ -10957,6 +10968,9 @@
"strategyLatency": "延遲最佳化",
"poolMembersLabel": "池成員({count})",
"poolNoMembers": "此池中尚無代理。",
+ "poolEgressObservation": "已使用 {exits, plural, one {# 個出口} other {# 個出口}},由 {connections, plural, one {# 個連線} other {# 個連線}} 使用 · 單一出口最多 {max} 個 · 過去 {hours} 小時",
+ "poolEgressObservationEmpty": "過去 {hours} 小時內未觀察到流量",
+ "poolEgressObservationHint": "根據代理伺服器記錄在此時間範圍內計算:觀察到此集區成員使用的不同出口 IP,以及使用這些 IP 的 OmniRoute 連線。「單一出口」是指整個時間範圍內,而非同一時間。每個 IP 的 429 鎖定只會暫停同一提供者系列的連線。",
"poolRemove": "移除",
"poolRemoveFailed": "從池中移除代理失敗",
"poolAddLabel": "新增代理",
@@ -10998,13 +11012,13 @@
"responses": "回應",
"completions": "補全",
"images": "圖片生成",
- "embeddings": "Embeddings",
+ "embeddings": "嵌入",
"speech": "文本轉語音",
"transcription": "音訊轉錄",
"video": "影片生成",
"music": "音樂生成",
"moderations": "審核",
- "rerank": "Rerank",
+ "rerank": "重新排序",
"search": "網頁搜尋",
"webFetch": "網頁擷取"
},
@@ -11129,9 +11143,9 @@
"regenerate": "重新生成",
"startConversation": "開始對話 — 請在下方輸入訊息",
"role": {
- "system": "system",
- "user": "user",
- "assistant": "assistant"
+ "system": "系統",
+ "user": "使用者",
+ "assistant": "助理"
},
"generating": "正在生成...",
"typeMessageWithShortcut": "輸入訊息...(Enter 傳送,Shift+Enter 換行)",
@@ -11298,12 +11312,12 @@
"account": "帳戶",
"apiKey": "API金鑰",
"combo": "組合",
- "tokens": "Tokens",
+ "tokens": "權杖數",
"compressed": "壓縮",
"tps": "TPS",
"duration": "時長",
"time": "時間",
- "conversation": "Conversation",
+ "conversation": "對話",
"ttft": "TTFT"
},
"loadingLogs": "正在載入日誌...",
@@ -11410,8 +11424,8 @@
"correlationId": "關聯 ID",
"correlationIdValue": "關聯 ID: {id}",
"detailedPayloadInfo": "如果您想要新請求的四階段客戶端/提供者有效載荷視圖,請先啟用詳細日誌記錄。",
- "copyAll": "Copy all",
- "copiedAll": "Copied all"
+ "copyAll": "全部複製",
+ "copiedAll": "已全部複製"
}
},
"proxyLogger": {
@@ -11674,8 +11688,8 @@
"deleteGroupHasPools": "該組仍然有池 — 請先重新分配或刪除它們。",
"ungroupedTitle": "未分組",
"ungroupedHint": "這些池未分配給已知組。編輯一個池以將其移動到真實組中。",
- "removeFailed": "Could not remove this pool.",
- "dismiss": "Dismiss"
+ "removeFailed": "無法移除此集區。",
+ "dismiss": "關閉"
},
"plugins": {
"title": "外掛",
@@ -12172,7 +12186,7 @@
"acp": {
"title": "ACP 代理",
"phrase": "OmniRoute 作為執行後端(反向流)生成的 CLI",
- "warning": "Most users can ignore this — use only when an integration requires it.",
+ "warning": "大多數使用者可忽略此項目——僅在整合需要時使用。",
"flow": "客戶端 → OmniRoute → 生成 CLI (stdio/ACP) → 回應",
"seeOther": "檢視 →"
}
@@ -12196,7 +12210,7 @@
"acp": {
"title": "Omni 使用的後端 CLI",
"desc": "反向執行",
- "flow": "Omni → spawn CLI → resp",
+ "flow": "Omni → 啟動 CLI → 回應",
"examples": "例如:claude,codex (ACP)"
}
},
@@ -12364,7 +12378,7 @@
},
"omni-webhooks": {
"name": "Webhook",
- "description": "__MISSING__:Register, list, test, and remove webhook endpoints. Configure event subscriptions (request.completed, request.failed, quota.exceeded, etc.) and manage delivery retries."
+ "description": "註冊、列出、測試及移除 Webhook 端點。設定事件訂閱(request.completed、request.failed、quota.exceeded 等)並管理傳送重試。"
},
"omni-mcp": {
"name": "MCP 伺服器",
@@ -12509,7 +12523,7 @@
"storage": {
"label": "儲存",
"agent": "動態目錄 (/api/agent-skills) → GitHub 上的 SKILL.md",
- "omni": "SQLite (SkillsMP / skills.sh / local)"
+ "omni": "SQLite(SkillsMP / skills.sh / 本機)"
},
"tagline": {
"label": "標語",
@@ -12582,14 +12596,14 @@
"typeApikey": "API 金鑰",
"sortTypeFirst": "最簡單優先",
"sortTypeFirstHelp": "按註冊難度分組(無需註冊 → OAuth 登入 → API 金鑰),在各組內保持品質順序",
- "sortByReliability": "__MISSING__:Most reliable first",
- "sortByReliabilityHelp": "__MISSING__:Order providers by the share of calls that succeeded in the selected window. Providers with too few calls to state a rate keep their score order, below the measured ones.",
+ "sortByReliability": "最可靠者優先",
+ "sortByReliabilityHelp": "依所選時段內呼叫成功的比例排列提供者。呼叫次數太少而無法計算成功率的提供者,會保留其評分順序,並列於已有統計結果的提供者之後。",
"typeLegend": "無需註冊 = 零設定 · OAuth 登入 = 使用自己的帳戶登入 · API 金鑰 = 自帶金鑰或使用該提供者的免費方案",
- "colReliability": "__MISSING__:Reliability",
- "colReliabilityHelp": "__MISSING__:Share of calls this provider actually answered over the last 24 hours. A dash means it served too little traffic to state a rate.",
- "reliabilitySample": "__MISSING__:{successes} of {requests} calls succeeded in the last {hours}h",
- "reliabilityTooFew": "__MISSING__:Only {requests} calls in the last {hours}h — too few to state a rate",
- "reliabilityNoTraffic": "__MISSING__:No calls recorded in the last 24h"
+ "colReliability": "可靠性",
+ "colReliabilityHelp": "此提供者在過去 24 小時內實際回應的呼叫比例。破折號表示其處理的流量太少,無法計算成功率。",
+ "reliabilitySample": "過去 {hours} 小時內,{requests} 次呼叫中有 {successes} 次成功",
+ "reliabilityTooFew": "過去 {hours} 小時內僅有 {requests} 次呼叫——數量太少,無法計算成功率",
+ "reliabilityNoTraffic": "過去 24 小時內沒有呼叫記錄"
},
"discovery": {
"title": "提供者探索",
@@ -12712,9 +12726,9 @@
},
"badges": {
"radar-supporter": {
- "name": "Radar Supporter",
- "description": "Verified a live OmniRoute Radar supporter feed",
- "criteria": "Verify a signed live Radar supporter feed."
+ "name": "Radar 支援者",
+ "description": "已驗證即時 OmniRoute Radar 支援者資料來源",
+ "criteria": "驗證已簽署的即時 Radar 支持者資訊來源。"
},
"first-token": {
"name": "第一個代幣",
@@ -12859,7 +12873,7 @@
"restartFailed": "重新啟動失敗",
"resetOverridesFailedHttp": "重設覆寫失敗:HTTP {status}",
"resetOverridesFailed": "重設覆寫失敗",
- "restartRequiredCount": "{count, plural, one {# change requires} other {# changes require}} a server restart to take effect.",
+ "restartRequiredCount": "{count, plural, one {# 項變更需要} other {# 項變更需要}}重新啟動伺服器才能生效。",
"restartRequiredDescription": "這些旗標僅在程序重新載入後才生效。立即重新啟動或繼續編輯——待處理的旗標會保留在佇列中,直到您確認。",
"restartServer": "重新啟動伺服器",
"cancel": "取消",
@@ -12941,8 +12955,8 @@
"description": "允許每個相容性節點的多重連線。"
},
"DISABLE_CONTEXT_WINDOW_CHECKS": {
- "label": "Disable Context Window Checks",
- "description": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active."
+ "label": "停用內容視窗檢查",
+ "description": "針對直接的單一模型請求,略過 OmniRoute 的本機內容視窗與輸入權杖上限檢查。上游提供者仍會強制執行其實際限制。提示詞壓縮與輸出權杖上限仍然有效。"
},
"RESPONSES_PASSTHROUGH_DROP_COMMENTARY": {
"description": "在將 Responses API 穿透串流轉發至用戶端之前,移除內部註解階段的輸出項目。停用此旗標以接收原始上游註解。"
@@ -12977,6 +12991,12 @@
"STREAM_RECOVERY_MIDSTREAM_ENABLED": {
"description": "允許串流復原在位元組已到達用戶端後再次請求回應並將其拼接。"
},
+ "STREAM_RECOVERY_TOOLCALL_ORDER_FIX": {
+ "description": "確保串流中途接續的工具呼叫安全:傳送工具呼叫後(無論仍在進行中或已完成),絕不恢復遭中斷的串流,並在一次空白接續後停止,而非用盡整個重試額度。"
+ },
+ "STREAM_EARLY_EOF_SIBLING_FAILOVER_ENABLED": {
+ "description": "當串流在送出任何有用訊框之前關閉,且同一連線上的有限重試已用盡時,容錯移轉一次到同級連線。若沒有可用的同級連線,則回傳原始的 early-EOF 錯誤。關閉:重試後 early-EOF 仍為終止結果。"
+ },
"MODEL_CATALOG_INCLUDE_NAMES": {
"description": "在 /v1/models 回應中包含顯示友善的名稱欄位。對於僅接受模型 ID 的用戶端請停用此項。"
},
@@ -13009,6 +13029,18 @@
},
"SKILLS_SANDBOX_NETWORK_ENABLED": {
"description": "在技能沙盒中啟用網路存取。"
+ },
+ "SERVER_OWNED_TOOL_LOOP_ENABLED": {
+ "label": "伺服器端工具迴圈",
+ "description": "持續執行由伺服器端管理的非串流工具呼叫,直到模型傳回用戶端可用的回應。"
+ },
+ "RETRY_AFTER_PROVENANCE_ENABLED": {
+ "label": "Retry-After 來源",
+ "description": "對彙總的 429/503 無法使用回應,若無法得知明確的未來重試時間,則省略 Retry-After,而非傳送虛構的 1 秒;新增 error.retry_after_provenance,並讀取組合排空路徑上的文字重試提示。"
+ },
+ "PROTECTED_PRIORITY_INFRA_502_ENABLED": {
+ "label": "受保護優先級基礎設施停止時回傳 502",
+ "description": "當僅限配額備援的優先目標因可證明並非配額的原因(提供者斷路器開啟或預測性延遲略過)而停止組合時,回應 502 而非 503。"
}
}
},
@@ -13025,7 +13057,7 @@
}
},
"comboControl": {
- "title": "Combo Control Center",
+ "title": "組合控制中心",
"unavailable": "Combo Control Center 無法使用",
"backToCombos": "返回 Combos",
"loadFailed": "載入 Combo Control Center 失敗",
@@ -13150,8 +13182,8 @@
"segmentHint": "每個區段 = 一個免費池 · 池間去重、誠實計數(無膨脹的速率限制上限)。",
"boost": "一次性 $10 OpenRouter 充值即可解鎖約 {tokens}/月(50 → 1000 請求/天)",
"uncapped": "永久免費,無公佈上限(有速率限制)——真實存取,不計入標題數字:",
- "gated": "__MISSING__:~{tokens}/mo more behind a regional identity check (e.g. mainland-China real-name verification) — real quota, not counted in the headline:",
- "tosRestricted": "{count, plural, one {# model} other {# models}} flagged as ToS-restricted — you decide",
+ "gated": "在區域身分驗證(例如中國大陸實名認證)後,每月可多獲得約 {tokens}——這是實際配額,但不計入醒目標示的數字:",
+ "tosRestricted": "有 {count, plural, one {# 個模型} other {# 個模型}}被標示為受服務條款限制——由您決定",
"provider": "提供者",
"model": "模型",
"modelName": "模型名稱",
@@ -13286,7 +13318,7 @@
"missing": "未指定",
"signalOnly": "非離散思考訊號",
"requestTags": "請求標籤",
- "requestTagsExample": "coding, internal",
+ "requestTagsExample": "程式設計、內部使用",
"tagMode": "標籤匹配模式",
"effortMode": "思考強度模式",
"targetEffort": "目標思考強度",
@@ -13403,92 +13435,92 @@
"tierLive": "實時",
"tierCommunity": "社群(30天延遲)",
"activateTitle": "啟用雷達",
- "activateDescription": "__MISSING__:Compare Community and live access, understand what your installation exchanges, and then choose how to activate Radar.",
- "activateButton": "__MISSING__:Activate Community",
+ "activateDescription": "比較 Community 與即時存取權、瞭解您的安裝環境會交換哪些資料,然後選擇如何啟用 Radar。",
+ "accessScaleTitle": "啟用前先瞭解 Radar 存取權",
+ "accessScaleIntro": "在您選擇加入前,Radar 不會進行任何網路活動。請在檢閱這些規則後,選擇 Community 存取權或啟用個人支持者金鑰。",
+ "accessCommunityRule": "Community——無需金鑰:可存取延遲 30 天的完整目錄。",
+ "accessSingleUseRule": "加星號並追蹤——GitHub OAuth 驗證兩者後,您的 GitHub 帳戶將獲得一次即時目錄讀取權;之後存取權將恢復為 Community。此一次性存取權無法再次發放給該帳戶。",
+ "accessContributorRule": "貢獻者——已合併的 PR、提交與程式碼行數只會用於排列每週排名。前 10 名可獲得 365 天;第 11–100 名可獲得 90 天;前 100 名以外的貢獻者無論 PR 數量多少,都不會獲得存取權。離開排名絕不會縮短已獲得的期限。",
+ "accessSupporterRule": "支持者——一次性購買可獲得 6 個月、1 年或終身存取權,且不會自動續訂。購買、捐款、貢獻者期限與手動授予的期限可累計;終身存取權永遠優先。",
+ "accessUseTitle": "個人使用、復原與審查",
+ "accessInstallationRule": "個人授權——一次只能在一個使用中的安裝環境上使用該金鑰。OmniRoute 不會建立硬體指紋。復原程序會撤銷並替換遺失的金鑰,且不會重設其到期日。",
+ "accessAbuseRule": "濫用審查——24 小時內出現第 4 個不同的 IP 時,只會建立人工審查標記;絕不會自動封鎖或撤銷金鑰。",
+ "accessOffersRule": "即時優惠由人工精選,可能會變更或到期。",
+ "privacyTitle": "Radar 會交換哪些資料",
+ "privacyDownloadsRule": "下載——您的安裝環境會接收經密碼學簽署的目錄與推薦中繼資料;有效的即時金鑰也會解鎖已簽署的優惠與 Intel。",
+ "privacySendsRule": "傳送——伺服器端同步會將支持者金鑰作為 Bearer 權杖傳送,HTTPS 基礎架構也會接收到連線 IP。資訊來源請求的計量不會以原始形式儲存這兩項資料:只會保留金鑰雜湊、彙總用量,以及每日輪替且經截短的 IP HMAC,以供濫用審查。",
+ "privacyNeverRule": "絕不收集——提示詞、回應、對話、提供者憑證、模型流量、運作時間、延遲與本機提供者設定絕不會傳送至 Radar。",
+ "activateButton": "啟用 Community",
"activating": "正在啟用...",
- "keySectionTitle": "Already have a supporter key?",
- "keyInvalidFormatError": "Invalid key format. It must start with \"omr_\" followed by 40 hex characters.",
- "activateWithKeyButton": "Activate supporter",
- "changeKeyButton": "Change key",
- "claimSectionTitle": "Don't have a supporter key yet?",
- "contributorButton": "I'm a contributor",
- "contributorHint": "__MISSING__:GitHub OAuth checks the current weekly ranking: Top 10 get 365 days and ranks 11–100 get 90 days. PR count alone never grants access outside the Top 100.",
- "supporterButton": "Support the project",
- "supporterHint": "__MISSING__:One-time 6-month, 1-year, and lifetime options have no automatic renewal; eligible periods accumulate and lifetime prevails.",
+ "keySectionTitle": "已經有支持者金鑰了嗎?",
+ "keyInvalidFormatError": "金鑰格式無效。金鑰必須以「omr_」開頭,後接 40 個十六進位字元。",
+ "activateWithKeyButton": "啟用支持者存取權",
+ "changeKeyButton": "變更金鑰",
+ "claimSectionTitle": "還沒有支持者金鑰嗎?",
+ "contributorButton": "我是貢獻者",
+ "contributorHint": "GitHub OAuth 會檢查目前的每週排名:前 10 名可獲得 365 天,第 11–100 名可獲得 90 天。僅憑 PR 數量,前 100 名以外的貢獻者絕不會獲得存取權。",
+ "supporterButton": "支持此專案",
+ "supporterHint": "一次性的 6 個月、1 年與終身選項均不會自動續訂;符合資格的期限可累計,且終身存取權優先。",
"colProvider": "提供者",
"colModel": "模型",
"colQuota": "配額",
+ "colLimits": "速率限制",
+ "trainsOnPrompts": "使用提示詞進行訓練",
+ "trainsOnPromptsHelp": "此提供者的條款指出,其可能會使用您傳送的提示詞進行訓練。沒有此徽章的模型可能明確表示不會這麼做,也可能未加以說明——未作聲明並不代表有所保證。",
+ "limitsUnknownHelp": "僅由 Radar 資料來源回報限制;此項目沒有已公布的限制",
+ "contextUnknownHelp": "此項目的內容窗口未知",
+ "capabilityUnknownHelp": "資料來源未回報此功能",
"colContext": "上下文",
"colCapabilities": "能力",
"colTos": "服務條款風險",
- "colLimits": "__MISSING__:Rate limits",
- "trainsOnPrompts": "__MISSING__:Trains on prompts",
- "trainsOnPromptsHelp": "__MISSING__:This provider's terms state it may train on the prompts you send. Models without this badge either state they do not, or do not document it — an absent statement is not a guarantee.",
- "limitsUnknownHelp": "__MISSING__:Limits reported by Radar feed only; no published limits for this entry",
- "contextUnknownHelp": "__MISSING__:Context window unknown for this entry",
- "capabilityUnknownHelp": "__MISSING__:Capability not reported by the feed",
"newBadge": "新的",
"setupGuide": "設置指南",
"disabledByFeed": "被雷達數據源禁用",
"capTools": "工具",
"capVision": "視覺",
"capThinking": "思考",
- "catalogTab": "Catalog",
- "freeCreditsTab": "Free credits",
- "freeCreditsSubtitle": "Referral links from Radar-tracked providers — using them costs you nothing extra and helps support OmniRoute.",
- "fixedLinksEmpty": "No referral links available yet. Sync Radar to check for updates.",
- "requiredActionLabel": "What to do:",
- "claimButton": "Claim credits",
- "campaignsTitle": "Limited-time campaigns",
- "campaignsEmpty": "No active campaigns right now — check back later.",
- "campaignsUpsellCommunity": "Limited-time campaigns are a supporter extra. Everything on this page's fixed links stays free for everyone.",
- "campaignsValidUntil": "Valid until {date}",
- "colActions": "Actions",
- "localBadge": "local",
- "editModel": "Edit",
- "saveModel": "Save",
- "cancelEdit": "Cancel",
- "resetModel": "Reset local changes",
- "hideModel": "Hide",
- "restoreModel": "Restore",
- "hiddenModelsTitle": "Hidden models",
- "modelDisplayName": "Local display name",
- "modelEnabled": "Enabled locally",
- "localStateSaveFailed": "Failed to save local Radar settings",
- "guidedCombos": "Guided combos",
- "offers": "Offers",
- "intel": "Intel",
- "accessScaleTitle": "__MISSING__:Understand Radar access before activating",
- "accessScaleIntro": "__MISSING__:Radar stays network-inert until you opt in. Choose Community access or activate a personal supporter key after reviewing these rules.",
- "accessCommunityRule": "__MISSING__:Community — no key required: the complete catalog with a 30-day delay.",
- "accessSingleUseRule": "__MISSING__:Star + follow — after GitHub OAuth verifies both, your GitHub account receives one live catalog read; then access returns to Community. This one-time access cannot be reissued for that account.",
- "accessContributorRule": "__MISSING__:Contributors — merged PRs, commits, and lines only order the weekly ranking. Top 10 receive 365 days; ranks 11–100 receive 90 days; contributors outside the Top 100 receive no grant regardless of PR count. Leaving the ranking never shortens time already granted.",
- "accessSupporterRule": "__MISSING__:Supporters — one-time purchases grant 6 months, 1 year, or lifetime with no automatic renewal. Purchases, donations, contributor periods, and manual grants accumulate; lifetime always prevails.",
- "accessUseTitle": "__MISSING__:Personal use, recovery, and review",
- "accessInstallationRule": "__MISSING__:Personal license — use the key on one active installation at a time. OmniRoute does not fingerprint hardware. Recovery revokes and replaces a lost key without resetting its expiration.",
- "accessAbuseRule": "__MISSING__:Abuse review — the 4th distinct IP in 24 hours creates a manual review flag only; it never blocks or revokes a key automatically.",
- "accessOffersRule": "__MISSING__:Live offers are manually curated and may change or expire.",
- "privacyTitle": "__MISSING__:What Radar exchanges",
- "privacyDownloadsRule": "__MISSING__:Downloads — your installation receives cryptographically signed catalog and referral metadata; a valid live key also unlocks signed offers and Intel.",
- "privacySendsRule": "__MISSING__:Sends — server-side sync sends the supporter key as a Bearer token, and the HTTPS infrastructure receives the connection IP. Feed-request accounting stores neither value raw: it keeps key hashes, aggregate usage, and a daily rotating truncated IP HMAC for abuse review.",
- "privacyNeverRule": "__MISSING__:Never collected — prompts, responses, conversations, provider credentials, model traffic, uptime, latency, and local provider configuration are never sent to Radar."
+ "catalogTab": "目錄",
+ "freeCreditsTab": "免費額度",
+ "freeCreditsSubtitle": "來自 Radar 追蹤之提供者的推薦連結——使用這些連結不會產生任何額外費用,並有助於支持 OmniRoute。",
+ "fixedLinksEmpty": "目前尚無可用的推薦連結。請同步 Radar 以檢查更新。",
+ "requiredActionLabel": "操作方式:",
+ "claimButton": "領取額度",
+ "campaignsTitle": "限時活動",
+ "campaignsEmpty": "目前沒有進行中的活動——請稍後再回來查看。",
+ "campaignsUpsellCommunity": "限時活動是支持者的額外福利。此頁面上的所有固定連結仍可供所有人免費使用。",
+ "campaignsValidUntil": "有效期至 {date}",
+ "colActions": "操作",
+ "localBadge": "本機",
+ "editModel": "編輯",
+ "saveModel": "儲存",
+ "cancelEdit": "取消",
+ "resetModel": "重設本機變更",
+ "hideModel": "隱藏",
+ "restoreModel": "還原",
+ "hiddenModelsTitle": "隱藏的模型",
+ "modelDisplayName": "本機顯示名稱",
+ "modelEnabled": "已在本機啟用",
+ "localStateSaveFailed": "無法儲存本機 Radar 設定",
+ "guidedCombos": "引導式組合",
+ "offers": "優惠",
+ "intel": "情報"
},
"radarCombosPage": {
- "title": "Radar guided combos",
- "subtitle": "Create priority fallbacks from equivalent free models curated by Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading combo suggestions...",
- "familyLabel": "Model family",
- "modelsLabel": "Priority order",
- "strategyReason": "Priority uses the largest recurring free budget first, then falls back across active providers.",
- "generateButton": "Generate combo",
- "generating": "Generating...",
- "alreadyCreated": "Already created",
- "created": "Combo created",
- "noSuggestions": "No eligible model family currently has active connections to at least two providers.",
- "catalogRequired": "Sync the Radar catalog first to load curated model families.",
- "loadFailed": "Failed to load Radar combo suggestions.",
- "createFailed": "Failed to create the combo. Review your provider connections and try again."
+ "title": "Radar 引導式組合",
+ "subtitle": "使用 Radar 精選的同等免費模型建立優先備援。",
+ "backToRadar": "返回 Radar",
+ "loading": "正在載入組合建議...",
+ "familyLabel": "模型系列",
+ "modelsLabel": "優先順序",
+ "strategyReason": "優先使用最大的定期免費額度,然後在可用的提供者之間進行備援。",
+ "generateButton": "產生組合",
+ "generating": "正在產生...",
+ "alreadyCreated": "已建立",
+ "created": "組合已建立",
+ "noSuggestions": "目前沒有任何符合資格的模型系列與至少兩個提供者建立有效連線。",
+ "catalogRequired": "請先同步 Radar 目錄,以載入精選模型系列。",
+ "loadFailed": "無法載入 Radar 組合建議。",
+ "createFailed": "無法建立組合。請檢查您的提供者連線,然後再試一次。"
},
"radarSetupPage": {
"title": "提供者設置",
@@ -13517,12 +13549,12 @@
},
"resilienceConnections": {
"title": "連線韌性",
- "reassuranceTitle": "Your connections recover automatically",
- "reassuranceDetail": "Usually no action is needed. OmniRoute temporarily rests a connection after failures, then safely tries it again.",
+ "reassuranceTitle": "您的連線會自動恢復",
+ "reassuranceDetail": "通常不需要採取任何動作。OmniRoute 會在連線失敗後暫停使用該連線,稍後再安全地重試。",
"plainStates": {
- "healthy": "Requests can be sent",
- "coolingDown": "Trying again soon",
- "lockedOut": "Needs your attention"
+ "healthy": "可以傳送請求",
+ "coolingDown": "即將重試",
+ "lockedOut": "需要您處理"
},
"table": {
"status": "狀態",
@@ -13621,7 +13653,8 @@
}
},
"featureFlagCapabilityFilterEnabledDescription": "在目標模型缺乏所需功能(視覺、工具、結構化輸出、上下文窗口)時,拒絕發送前的請求。保護繞過組合層兼容性過濾器的直接單一提供者請求。",
- "featureFlagDisableContextWindowChecksDescription": "Skip OmniRoute's local context-window and max-input-token check for direct single-model requests. Upstream providers still enforce their actual limits. Prompt compression and output-token caps remain active.",
+ "featureFlagDisableContextWindowChecksDescription": "對直接的單一模型請求,略過 OmniRoute 的本機上下文視窗與輸入權杖上限檢查。上游提供者仍會強制執行其實際限制。提示詞壓縮與輸出權杖上限仍會生效。",
+ "featureFlagSearchStatsHideDeletedConnectionsDescription": "搜尋統計資料與最近的搜尋只會計入仍有有效連線的提供者(不需要金鑰的提供者,例如 duckduckgo-free,則一律會計入)。關閉後,將保留每一筆含有提供者 ID 的搜尋記錄。",
"publicSystem": {
"notFound": {
"title": "找不到頁面",
@@ -13677,7 +13710,7 @@
"maintenanceInfo": "維護資訊",
"service": "服務",
"unknown": "未知",
- "notAvailable": "n/a",
+ "notAvailable": "不適用",
"providersTracked": "已追蹤的提供者",
"circuitBreakerState": "提供者電路斷路器狀態",
"lastUpdate": "最後更新:{timestamp}",
@@ -14048,11 +14081,11 @@
"actionApprove": "核准計畫",
"actionCancel": "取消",
"actionSeeInGraph": "在圖中檢視",
+ "actionRepeat": "重複",
"actionDone": "動作已套用",
"actionFailed": "動作失敗:{error}",
"detailFailed": "載入詳細資料失敗:{error}",
"mirroredInA2A": "已在 A2A 中鏡射",
- "actionRepeat": "重複",
"repeatConfirm": "再次點擊以確認",
"repeatDone": "已建立新的執行",
"repeatUnavailable": "原始輸入無法使用"
@@ -14066,57 +14099,57 @@
"networkError": "網絡錯誤 — 無法更新提供者曝光設置"
},
"radarOffersPage": {
- "title": "Supporter offers",
- "subtitle": "Official discounts, credits, trials, and reviewed partner benefits from Radar.",
- "backToRadar": "Back to Radar",
- "loading": "Loading offers...",
- "refresh": "Refresh offers",
- "refreshing": "Refreshing...",
- "loadFailed": "We couldn't refresh offers. The last verified local cache is kept.",
- "empty": "No active offers are available right now.",
- "keyRequiredTitle": "A supporter key is required",
- "keyRequiredDescription": "Offers are a live Radar benefit. Add an existing supporter key on the Radar screen, verify your contributor status, or support the project to obtain one.",
- "contributorButton": "I'm a contributor",
- "supporterButton": "Support the project",
- "partnerBadge": "Partner",
- "officialBadge": "Official",
- "conditionsLabel": "Conditions:",
- "validUntil": "Valid until {date}",
- "noExpiry": "No announced expiry",
- "openOffer": "View offer",
- "trialDays": "{days, plural, one {# day} other {# days}}"
+ "title": "支持者優惠",
+ "subtitle": "來自 Radar 的官方折扣、點數、試用方案與經審核的合作夥伴福利。",
+ "backToRadar": "返回 Radar",
+ "loading": "正在載入優惠...",
+ "refresh": "重新整理優惠",
+ "refreshing": "正在重新整理...",
+ "loadFailed": "我們無法重新整理優惠。已保留上次驗證的本機快取。",
+ "empty": "目前沒有可用的有效優惠。",
+ "keyRequiredTitle": "需要支持者金鑰",
+ "keyRequiredDescription": "優惠是 Radar 的即時福利。請在 Radar 畫面新增現有的支持者金鑰、驗證您的貢獻者身分,或支持此專案以取得金鑰。",
+ "contributorButton": "我是貢獻者",
+ "supporterButton": "支持此專案",
+ "partnerBadge": "合作夥伴",
+ "officialBadge": "官方",
+ "conditionsLabel": "條件:",
+ "validUntil": "有效期限至 {date}",
+ "noExpiry": "未公告到期日",
+ "openOffer": "查看優惠",
+ "trialDays": "{days, plural, one {# 天} other {# 天}}"
},
"radarIntelPage": {
- "title": "Radar Intel",
- "subtitle": "Radar-owned ELO rankings and factual catalog movement.",
- "backToRadar": "Back to Radar",
- "loading": "Loading Intel...",
- "refresh": "Refresh Intel",
- "syncing": "Refreshing...",
- "loadFailed": "We could not refresh Intel. The last verified local cache is kept.",
- "empty": "No verified Intel snapshot is available yet.",
- "supporterBadge": "Radar Supporter",
- "methodology": "Methodology",
- "eloMethod": "ELO, initial {initial}, K={factor}",
- "freshness": "Catalog freshness",
- "ageDays": "{days, plural, one {# day old} other {# days old}}",
- "trend": "Catalog trend",
- "modelDelta": "{current} models, +{added} / -{removed}",
- "ranking": "Model ranking",
- "noRankings": "No confirmed comparisons are available yet.",
- "model": "Model",
- "category": "Category",
- "rating": "Rating",
- "matches": "Matches",
+ "title": "Radar 情報",
+ "subtitle": "Radar 自有的 ELO 排名與基於事實的目錄變動資訊。",
+ "backToRadar": "返回 Radar",
+ "loading": "正在載入情報...",
+ "refresh": "重新整理情報",
+ "syncing": "正在重新整理...",
+ "loadFailed": "無法重新整理情報。已保留最後驗證的本機快取。",
+ "empty": "目前尚無可用的已驗證情報快照。",
+ "supporterBadge": "雷達支持者",
+ "methodology": "方法論",
+ "eloMethod": "ELO,初始值 {initial},K={factor}",
+ "freshness": "目錄新鮮度",
+ "ageDays": "{days, plural, one {# 天前} other {# 天前}}",
+ "trend": "目錄趨勢",
+ "modelDelta": "{current} 個模型,+{added} / -{removed}",
+ "ranking": "模型排名",
+ "noRankings": "目前尚無已確認的比較結果。",
+ "model": "模型",
+ "category": "類別",
+ "rating": "評分",
+ "matches": "對戰次數",
"freshnessValues": {
- "fresh": "Fresh",
- "aging": "Aging",
- "stale": "Stale"
+ "fresh": "最新",
+ "aging": "逐漸過時",
+ "stale": "已過時"
},
"trendValues": {
- "growing": "Growing",
- "stable": "Stable",
- "shrinking": "Shrinking"
+ "growing": "成長中",
+ "stable": "穩定",
+ "shrinking": "縮減中"
}
},
"capabilityFilter": {
@@ -14126,11 +14159,11 @@
"contextWindowMismatch": "請求超出提供者上下文窗口"
},
"cheaperInferenceSponsorBanner": {
- "title": "Cheaper Inference is an OmniRoute Open Source Friend",
- "description": "A cost-ranked gateway reselling dozens of frontier models behind one OpenAI-compatible endpoint — routing each request to the cheapest eligible provider, never above list price.",
- "cta": "Get an API Key",
- "partnerLinkNote": "Partner link",
- "dismissAriaLabel": "Dismiss"
+ "title": "Cheaper Inference 是 OmniRoute 的開源夥伴",
+ "description": "一個按成本排名的閘道,透過單一 OpenAI 相容端點轉售數十種前沿模型——將每個請求路由至符合資格且最便宜的提供者,價格絕不高於定價。",
+ "cta": "取得 API 金鑰",
+ "partnerLinkNote": "合作夥伴連結",
+ "dismissAriaLabel": "關閉"
},
- "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "Disable the generation of thinking level variants (e.g. -low, -medium, -high) in the /v1/models catalog."
+ "featureFlagOmnirouteDisableThinkingLevelVariantsDescription": "停用在 /v1/models 目錄中產生思考層級變體(例如 -low、-medium、-high)。"
}
diff --git a/src/lib/combos/controlCenter.ts b/src/lib/combos/controlCenter.ts
index 92a87b2738..3c16a03e8a 100644
--- a/src/lib/combos/controlCenter.ts
+++ b/src/lib/combos/controlCenter.ts
@@ -1,6 +1,6 @@
import { normalizeComboModels, type ComboStep } from "./steps";
import { resolveComboTargetModelStr } from "../../../open-sse/services/combo/opencodeTargetAlias.ts";
-import { resolveProviderAlias } from "../../../open-sse/services/model.ts";
+import { resolveProviderAlias } from "../../../open-sse/services/providerAlias.ts";
type JsonRecord = Record